E una volta che siamo entrati nel sistema, con le tecniche che ti ho illustrato finora (quali Remote File Inclusion, SQL Injection, Brute Force e sua implementazione) come facciamo se vogliamo rientrare? Magari perchè stiamo utilizzando il computer attaccato come deposito o server o addirittura proxy. La soluzione migliore è installare e lasciar aperta una porta di servizio solo per noi.
Cioè? Te lo spiego subito. Una connessione tra due computer avviene tramite IP e porte. Un computer ha circa 10000 porte (tra virtuali e non) e tramite queste porte possiamo avviare un programma che si espone alla rete, un server. Un esempio pratico: quando navighiamo col nostro browser noi istauriamo una connessione co server web sulla porta standard 80 e il server risponde al nostro client (il browser che stiamo utilizzando) sempre dalla porta 80.
Se adesso nio installiamo di nascosto un programma che alla richiesta di una connessione su una certa porta, ovviamente non utilizzata da alcun servizio, ci permetta il controllo remoto del computer, precedentemente attaccato.
Un virus, praticamente. Ma la cosa difficile che, dopo averlo avviato (quindi se siamo su Linux dobbiamo avere i permessi) dobbiamo metterlo sempre in esecuzione automatica (quindi dobbiamo, nel caso di vittima Linux, lanciare un cron da root). Se siamo su Windows allora siamo fortunati: di solito (a meno che il pc non fa parte di una lan importante e ben protetta) basta il menu del pannello di controllo per impostare una backdoor in esecuzione automatica. E tutto questo si può fare se non c’è antivirus e firewall. Se sappiamo programmare bene, è possibile aggirare il fattore antivirus, mascherando il nostro virus. Ma il firewall è decisamente più difficile (ma non impossibile). La soluzione migliore sarebbe disattivarlo, magari inserendo un codice all’interno del nostro software che killa il firewall.
Ma veniamo al dunque. Ideiamo una backdoor per un sistema che non dispone di antivirus, antispyware, firewall, ecc..
La Base
Programmare è bello, ma se qualcuno ha già fatto il lavoro per noi è meglio! Con ciò non ti sto dicendo di cercare su Google, da bravo lamerozzo, “download backdoor”, ma di usare parte di codice di un programma, open source, già esistente, quale Netcat
Netcat è un coltellino svizzero open source. È l’arma segreta di tutti gli hacker (e non), una tra le cose più utili per un attacco (dopo nmap). Cosa fa di preciso? Allora, è un visualizzatore di header, un client di posta, un client p2p tramite vpn, un vpn client/server, un client/server FTP, un client/server remote shell. Tutto in un unico e piccolissimo programma.
Se noi sfruttiamo il codice di netcat (scritto in C), riguardante la remote shell siamo già a metà strada.
Rendiamo più sicura la nostra Backdoor
Siccome 1) non dobbiamo farci scoprire e 2) non dobbiamo lasciare la porta aperta per tutti, ma solo per noi dobbiamo rinforzare la nostra backdoor.
Per non fare scoprire la presenza di questo software possiamo scrivere un sistema di autodistruzione, remoto e automatico: ovvero quando ci connettiamo ad una certa porta, la backdoor si cancella automaticamente, in modo che se ci troviamo nei guai basta un ping su una porta e siamo a posto. Infine, se sappiamo di utilizzare la backdoor solo in un certo orario è meglio impostare i criteri di autodistruzione per il periodo che non la usiamo.
Per quanto riguarda la protezione del computer, la cosa migliore è mettere una password per il server di remote shell della nostra backdoor: inseriamo, direttamente nel sorgente ed i chiaro, la password e poniamo una semplice condizione if. Non è sicuramente il massimo della sicurezza ma, per evitare tentativi di brute force potremmo inserire una variabile contatore che arrivata a 3 fa autodistruggere la backdoor. Ovvero (in un linguaggio mischiato tra Pascal, PHP, C e traduzioni in italiano
$contatore = 0;
Punto_uno;
leggi $passwd;
se $passwd = 'nostrapassword' allora vai al sottoprogramma "connessione_remota"
altrimenti
$contatore = $contatore +1;
se $contatore = 3 vai al sottoprogramma "autodistruzione"
altrimenti
scrivi "password errata";
torna al "Punto_uno"
Come il PIN del cellulare, anche se il telefonono non si autodistrugge.
Ultimi consigli
Quando ci connettiamo alla vittima usiamo sempre un proxy per evitate di essere loggati (un sistema linux logga tutto…)
Se siamo molto pigri e/o non sappiamo il C ma netcat ci piace tanto, possiamo usare direttamente l’eseguibile di netcat interfacciato con uno script
Io, di solito, nelle mie backdoor, non creo solo un server di remote shell, ma ne creo più di uno (di solito 3), in modo da poter usare più console contemporaneamente
—–
Visualizza tutti gli articoli riguardanti la Sicurezza Informatica!







