winAUTOPWN: autohacking "a-la-carte"
Nell'articolo di oggi parliamo di winAUTOPWN. Il suo creatore lo definisce un "auto (hacking) shell gaining tool" ed essenzialmente si tratta di un frontend per l'auto-assessment, cioè per quel complesso di attività finalizzate all'individuazione di eventuali falle di sicurezza o vulnerabilità del proprio sistema. Inoltre, anche il nome potrebbe trarre in inganno: winAUTOPWN non è un tool per l'exploit dei soli sistemi Microsoft Windows: la parte "win" indica solo che "gira" sotto Windows (esattamente come la versione bsdAUTOPWN che gira sotto FreeBSD), ma gli attacchi vengono condotti utilizzando exploit aventi come target diverse piattaforme (debian, fedora, etc.).
WinAUTOPWN può quindi essere usato anche come strumento di test di piattaforme IDS/IPS (Intrusion Detection System/Intrusion Prevention System) o altri sistemi hardware/software per la
protezione a livello di network aziendale. L'errore che si può commettere sulla base di una prima impressione potrebbe essere quello di considerarlo un tool da "script kiddie", essendo quasi completamente automatizzato, ma non è così. Possiamo invece classificarlo come uno strumento da affiancare ad altri sistemi più professionali per il penetration testing/vulnerability assessment, come Core Impact, Immunity Canvas, Nessus o lo stesso Metaspolit.
Caratteristiche di winAUTOPWN
Uno dei vantaggi nell'utilizzo di winAUTOPWN (di cui esiste, come già accennato, anche una versione per sistema operativo FreeBSD, bsdAUTOPWN) è certamente la semplicità. Il software agisce soprattutto come GUI per gli exploit e non ha bisogno di scaricare pacchetti ulteriori, oppure di risolvere dipendenze tra i vari moduli e librerie, come ad esempio accade in alcune distribuzioni Linux.
Nel download inoltre sono inclusi gli eseguibili dei vari linguaggi di scripting utilizzati (PERL, Python, PHP, più le DLL di Cygwin) per gli exploit. Gli exploit vengono costantemente aggiornati e rilasciati pubblicamente su Internet, inoltre winAUTOPWN, diversamente da altri framework, mantiene inalterato il codice sorgente originario degli exploit, consentendo ai relativi autori di mantenere intatta anche la "paternità" del codice scritto.
winAUTOPWN possiede sia una interfaccia a riga di comando sia una GUI grafica, che essenzialmente non fa altro che "popolare" le variabili che poi vengono trasmesse alla command line. Nella schermata iniziale è possibile vedere la maschera di startup (a riga di comando) del programma, che richiede una serie di parametri necessari per procedere con i test di vulnerabilità.
Analogamente, in figura 2 è mostrata la GUI.
Tali parametri sono essenzialmente gli indirizzi IP del target host (e relativo hostname) e dell'attacker, nonchè una serie di path necessari per testare vulnerabilità di tipo:
- RFI (Remote File Inclusion)
- RCE (Remote Code Execution)
- Remote Shell Upload
Inoltre, vengono richiesti una serie di parametri opzionali per supportare l'exploit di server FTP o di server Proxy.
Altre caratteristiche:
- Nessuna necessità di compilare codice sorgente, script o di effettuare azioni di debugging.
- Nessun bisogno di gestire un database o un qualsiasi backend come accade per altri prodotti (es. Nessus o Metasploit).
- Può essere utilizzato, come già detto, anche per testare piattaforme IDS/IPS.
- Gli exploit sono indipendenti e non richiedono una fase preliminare di fingerprinting
Come spesso accade in questi casi, alcuni exploit vengono intercettati dal motore antivirus/antimalware e interpretati come malware: basta ignorare le segnalazioni.
Portscanning ed esecuzione degli exploit
Una volta inseriti i parametri richiesti, parte una scansione "multi-threaded" delle porte TCP nel range 1-65535. Se si vuole evitare questo passaggio (perchè magari si è già in possesso della lista di porte in ascolto sul target host), si può lanciare winAUTOPWN con l'opzione -skipscan. Tale opzione fa sì che winAUTOPWN legga l'elenco delle porte in ascolto direttamente dal file OpenPorts.txt, presente nella directory di installazione.
Dopo la scansione delle porte, il software passa all'esecuzione automatizzata di tutti gli exploit disponibili. Nelle figure 3, 4 e 5 vengono mostrati e documentati una piccola parte del totale degli oltre 500 attacchi condotti contro comuni server http ed FTP, tra cui Apache Tomcat, Dreatica-FXP, EasyFTP, IIS et cetera.
Nella fig. 6 invece vengono mostrati alcuni exploit lanciati contro il servizio DCOM RPC di Microsoft (DCOM RPC buffer overflow).
Tra i vari processi che vengono attivati, winAUTOPWN tenta anche di aprire connessioni con il sistema target utilizzando netcat. Netcat, per chi ancora non lo conoscesse, è una network utility rilasciata sotto licenza GNU che, in sostanza, cerca di stabilire un canale di comunicazione tra due host usando anche meccanismi di tunneling e portscanning. Nelle figure 7 e 8 (dettaglio) si possono osservare tre connessioni aperte da winAUTOPWN in ascolto sulle porte TCP 4444 e 56789, utilizzando netcat.
Ovviamente non è affatto detto che winAUTOPWN trovi delle vulnerabilità da sfruttare per aprire shell remote o mandare in crash il sistema target. Negli esperimenti condotti, si è proceduto all'assessment di due macchine Windows, una equipaggiata con Windows 7 e l'altra con Windows XP Service Pack 3 (a cui si riferiscono le schermate).
Conclusioni
winAUTOPWN si conferma quindi come un ottimo strumento automatico per condurre una prima analisi di vulnerabilità di un sistema, consentendo di individuare (se presenti) falle nella sicurezza dell'host target con l'obiettivo di poter procedere successivamente ad un piano di mitigation per raggiungere un primo livello di hardening del sistema stesso.
È chiaro che, per condurre un'attività di assessment o di penetration test a livello professionale, sono necessari altri strumenti già citati all'inizio del presente articolo, ma soprattutto sono necessarie metodologie strutturate (es. OSSTMM, ISO/IEC 27001:2005), di cui abbiamo già fatto menzione in articoli precedenti, che costituiscono standard di riferimento da seguire per costruire un'attività di IT auditing professionale.