Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl -w
- use strict;
- use warnings;
- use IO::Socket::SSL;
- print qq{
- ===============================================
- SSL/TLS BEAST Vulnerability Check
- by YGN Ethical Hacker Group, http://yehg.net/
- ===============================================
- };
- if ($#ARGV != 0) {
- print qq{
- Usage: beast.pl host [port]
- port = 443 by default \{optional\}
- };
- exit;
- }
- my $host = $ARGV[0];
- my $port = 443;
- if ($#ARGV == 1) {$port = $ARGV[1];}
- print qq{
- Target: $host:$port
- };
- my $client = new IO::Socket::SSL(
- PeerAddr => $host,
- PeerPort => $port,
- Proto => 'tcp',
- SSL_honor_cipher_order => 1,
- SSL_version => 'TLSv1'
- );
- if (defined $client) {
- my $v_beast = 'PRONE to BEAST attack.';
- my $s_beast = 'YES';
- my $cipher = $client->get_cipher();
- if ($cipher =~ /RC4/){
- $v_beast = 'NOT vulnerable to BEAST attack.';
- $s_beast = 'NO';
- }
- print qq{
- ## The target is $v_beast ##
- Protocol: TLS v1
- Server Preferred Cipher: $cipher
- Vulnerable: $s_beast
- -----------------------------------------------
- N.B. This check assumes no workaround
- (i.e. EMPTY FRAGMENT) applied in target server.
- };
- print $client "GET / HTTP/1.0\r\n\r\n";
- close $client;
- } else {
- warn "\nERROR:\nConnecting to the taget\n\nDETAILS:\n",
- IO::Socket::SSL::errstr();
- }
- warn $! if not defined($client);
Add Comment
Please, Sign In to add comment