/[scripts]/trunk/mitm-ssl.pl
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/mitm-ssl.pl

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 130 by dpavlin, Wed Jan 6 23:19:29 2010 UTC revision 131 by dpavlin, Wed Jan 6 23:47:52 2010 UTC
# Line 4  Line 4 
4    
5  use strict;  use strict;
6  use POSIX;  use POSIX;
7  use IO::Socket::SSL;  use IO::Socket::SSL qw(debug3);
8    $Net::SSLeay::trace = 4;
9  use Getopt::Long;  use Getopt::Long;
10    use Time::HiRes qw(time);
11    
12    my $localport = 8080;
13    my $localaddr = "127.0.0.1";
14    my $port      = 80;
15    my $host      = "127.0.0.1";
16    my $logdir    = "$localaddr:$localport-$host:$port";
17    
 my $localport;  
 my $localaddr;  
18  my $help;  my $help;
 my $host;  
 my $port;  
19  my $daemon;  my $daemon;
20  my $buffersize = 2048;  my $buffersize = 2048;
21  my $logtype;  my $logtype;
 my $logdir;  
22  my $daemon;  my $daemon;
23  my $serverkey;  my $serverkey = "$logdir/ssl.key";
24  my $servercert;  my $servercert = "$logdir/ssl.cert";
25  my $serverdh;  my $serverdh;
26    
27  $| = 1;  $| = 1;
# Line 59  END Line 62  END
62          exit;          exit;
63  }  }
64    
 # set default values  
 $localport = 8080        unless ($localport);  
 $localaddr = "127.0.0.1" unless ($localaddr);  
 $port      = 80          unless ($port);  
 $host      = "127.0.0.1" unless ($host);  
 $logdir    = "dump"         unless ($logdir);  
   
65  mkdir $logdir;  mkdir $logdir;
66    
67    system "openssl req -new -x509 -days 365 -nodes -out $servercert -keyout $serverkey"
68            if ! -e $serverkey && ! -e $servercert;
69    
70    
71  my %o = (  my %o = (
72          'dir'    => $logdir,          'dir'    => $logdir,
73          'port'   => $localport,          'port'   => $localport,
# Line 91  my $ah = IO::Socket::SSL->new( Line 91  my $ah = IO::Socket::SSL->new(
91          'SSLdhfile'       => $serverdh,          'SSLdhfile'       => $serverdh,
92          'SSL_cert_file'   => $servercert,          'SSL_cert_file'   => $servercert,
93          'SSL_key_file'    => $serverkey,          'SSL_key_file'    => $serverkey,
94          'Listen'          => 10          'Listen'          => 10,
95    #       'SSL_version' => 'SSLv3',    # SSLv3, SSLv2, TLSv1
96    #       'SSL_cipher_list' => 'RC4-MD5',
97  ) || die "$!";  ) || die "$!";
98    
99  $SIG{'CHLD'} = 'IGNORE';  $SIG{'CHLD'} = 'IGNORE';
# Line 121  sub Run { Line 123  sub Run {
123          my $th = IO::Socket::SSL->new(          my $th = IO::Socket::SSL->new(
124                  'PeerAddr'        => $o->{'tohost'},                  'PeerAddr'        => $o->{'tohost'},
125                  'PeerPort'        => $o->{'toport'},                  'PeerPort'        => $o->{'toport'},
126                  'SSL_use_cert'    => '0',  #               'SSL_use_cert'    => '0',
127                  'SSL_verify_mode' => '0',  #               'SSL_verify_mode' => '0',
128    
                 #       'SSL_cipher_list' => 'NUL:LOW:EXP:ADH',  
129                  'SSL_version' => 'SSLv3',    # SSLv3, SSLv2, TLSv1                  'SSL_version' => 'SSLv3',    # SSLv3, SSLv2, TLSv1
130                    'SSL_cipher_list' => 'RC4-MD5',
131                  'Proto'       => 'tcp'                  'Proto'       => 'tcp'
132          );          );
133          if ( !$th ) { print "cannot connect th: $!"; exit 0; }          if ( !$th ) { print "cannot connect th: $!"; exit 0; }
# Line 133  sub Run { Line 135  sub Run {
135          my $fh;          my $fh;
136          if ( $o->{'dir'} ) {          if ( $o->{'dir'} ) {
137                  $fh = Symbol::gensym();                  $fh = Symbol::gensym();
138                  open( $fh, ">$o->{'dir'}/tunnel$num.log" ) or die "$!";                  my $path = $o->{'dir'} . '/' . Time::HiRes::time();
139                    open( $fh, '>', $path ) or die "$!";
140          }          }
141          $ch->autoflush();          $ch->autoflush();
142          $th->autoflush();          $th->autoflush();

Legend:
Removed from v.130  
changed lines
  Added in v.131

  ViewVC Help
Powered by ViewVC 1.1.26