VoIP and Hacking | Consulenza Documentazione

Un honeypot casalingo con Nepenthes

by admin on Apr.01, 2009, under Hacking, Networking, Sicurezza, Tools

Ho cercato di trattare in un post precedente che cosa siano gli honeypot e come vengano impiegati per raccogliere informazioni riguardanti attacchi in corso, emulando vulnerabilità note per catturare i worms che tali vulnerabilità normalmente sfruttano per propagarsi.
Data la disponibilità di strumenti opensource/GPL diventa di conseguenza una tentazione irresistibile quella di allestire un piccolo honeypot casalingo che dia la possibilità di studiare da vicino il fenomeno delle cyber-infezioni.
Allo scopo ho scelto di utilizzare il software Nepenthes, principalmente perché viene tuttora attivamente sviluppato e tale caratteristica è assolutamente imprescindibile in un settore in continua evoluzione.
Perciò, pur essendo disponibili package preconfezionati per Ubuntu/Debian l’installazione è avvenuta a partire dai sorgenti ottenuti tramite svn:

# svn co https://svn.carnivore.it/nepenthes/trunk/

La compilazione prevede alcuni prerequisiti software in termini di dipendenze, ottenibile, su Debian, con:

# apt-get install  libcurl3-dev libmagic-dev libpcre3-dev libadns1-dev libpcap0.8-dev iptables-dev
# apt-get install autoconf automake1.9 autotools-dev libtool

dopodiché, la usuale sequenza:

# ./configure –prefix=/opt/nepenthes
# make && make install

La necessità di altre dipendenze preinstallate, che personalmente non ho riscontrato sulla macchina utilizzata, dovrebbe essere abbastanza chiaramente evidenziata in presenza di eventuali interruzioni durante la fase di configure.

La configurazione di Nepenthes è a carico di un unico file, in questo caso /opt/nepenthes/etc/nepenthes/nepenthes.conf, che ovviamente può essere personalizzato, ma è sicuramente utilizzabile così come è:

Il lancio del programma, cui fa seguito un output comprendente una rappresentazione ascii art che raffigura la pianta carnivora il cui nome ha ispirato gli autori del software, è semplicemente:

# /opt/nepenthes/bin/nepenthes
#                                                                             #
!�..,(’
!!..,�,
!*’.,!*
*!’.,!�
‘!’.,!�
.�,’,*�,,.
,#=%(#%#%%#%%%C
.#%C=,:::::::,,5%#.
(#!!,,,,,,,,,,,J7#’
=#!(=,,,,,,,,:==(7!                       ,%###!##%’.
.=#(CJ3$#%C7==�((77                     ,%##%%!#%%%#%*
.#(#J#A3#$==7=J=!�(=3′                 ,%##%%::::,,::%#%, ‘!(====((!,’.
######$@53C=(����==(�=C7                %##(::::,,,,,::%##A$$3$CCJ3CJC(7C!
#(###3#’J�%J(�!!!*!!J(((=J’              ,##(:::,,,,,:::%##5%C’           .
.#3#3#$#. C5$C7�!=���!7=(�(7=              ;##(:,,,,,,,::%###%.
‘####*.   7AJC7�!7�(��!�((=7C.             |###((,,,,,,,)%##%=C,    .*�(7!
(%7C77!(==!�!��=7=C!             ((%############%!(CC�.,�JAA%3C’
�$C7C7=�(=���((=(=J= ,:%%@M;%%;.77C7(=C!�!*!�=!�C(777J3$3=!,’.
,%CJJ=C(7(((((=((=JC 7####::###CC=(CC=(=�(*!=!=�=7=77JJ,
.%J337J==(=7==C=C7C3,##J!::::77#%J=CJ==���=!=�===(7C7C*
C$33C3C7=7C777CJJJ%7##C:,,,,,:#$3CJC==(=7(���(=C(J$CJ*
‘%$333CCC3CCCCCJ%3%#%#$C:,,,:3#AJJ3C7=JC=(((((7C7C3J3!
(#$$3JJJ%3J$J33$$AA33#5J:,,:A#$$$JC7CJCC7=(=(CJ$CJJ$,
J#%$$%33%$5$A#$%#%CJ3#A%:35#%J3$3JJCCC$C7J77JC$J33$’
.75AA%%%$AA%#A%5#%CJC#J###3#J$%3$JJCCJCC3J33$33$$A.
=5555A%AA5#5@%,%CJC3J###ACJJ$5$33JJJJJJJJ%%%3%%A%
.3@55##A5###=’!AJCJJ3###ACJ3A#$$$%$$33333$%%%AA5!
%3J%5�5$J=’  ‘533CC3###ACJ$#@A%%%AA$A%$$A%AA55�
A=(3$A’.      3A3J33###%CJ$�#AA55AA%5#AA%%5#5�
.AC=�$J        ‘A%$J$A##A33AA�555###55#5555#A!
*J7==A�         ‘$%$%%##A3A=.JA###555%55##5(.
=JJJJ5′          ‘(A5A#JA%!   *=�@#%AA5553�
J$3J$$             .55A$#*     .#A$A�%7*
.$33$%C              %$JJ5.     !3J(%�.
‘%%%A$7              %CC75.     C(J7(
*A%J$A=              %==73     ,J7C$’
7%$JJ@!             ‘A7=CC     =C7CJ
$J3(3#.             *$77C=     %(CC(
.#33($J              �7C73,    ‘$JJC,
#                                                                             #
Nepenthes Ampullaria
#                                                                             #
Nepenthes Version 0.2.2
Compiled on Linux/x86 at Mar 29 2009 16:51:38 with g++ 4.3.2
Started on silversurfer running Linux/i686 release 2.6.27-7-generic

Il lancio di nepenthes, che, se non si utilizza l’opzione -D, rimane associato al terminale di controllo, provoca l’apertura di numerose porte corrispondenti ai servizi vulnerabili fantasma esposti da nepenthes, come deducibile a questo punto tramite:

# lsof -i
COMMAND    PID         USER   FD   TYPE DEVICE SIZE NODE NAME
nepenthes 6705         root    6u  IPv4  23374       TCP *:smtp (LISTEN)
nepenthes 6705         root    7u  IPv4  23375       TCP *:pop3 (LISTEN)
nepenthes 6705         root    8u  IPv4  23376       TCP *:imap2 (LISTEN)
nepenthes 6705         root    9u  IPv4  23377       TCP *:imap3 (LISTEN)
nepenthes 6705         root   10u  IPv4  23378       TCP *:ssmtp (LISTEN)
nepenthes 6705         root   11u  IPv4  23379       TCP *:imaps (LISTEN)
nepenthes 6705         root   12u  IPv4  23380       TCP *:pop3s (LISTEN)
nepenthes 6705         root   13u  IPv4  23381       TCP *:2745 (LISTEN)
nepenthes 6705         root   14u  IPv4  23382       TCP *:6129 (LISTEN)
nepenthes 6705         root   15u  IPv4  23383       TCP *:loc-srv (LISTEN)
nepenthes 6705         root   16u  IPv4  23384       TCP *:microsoft-ds (LISTEN)
nepenthes 6705         root   17u  IPv4  23385       TCP *:1025 (LISTEN)
nepenthes 6705         root   18u  IPv4  23386       TCP *:ftp (LISTEN)
nepenthes 6705         root   19u  IPv4  23387       TCP *:https (LISTEN)
nepenthes 6705         root   20u  IPv4  23388       TCP *:17300 (LISTEN)
nepenthes 6705         root   21u  IPv4  23389       TCP *:2103 (LISTEN)
nepenthes 6705         root   22u  IPv4  23390       TCP *:eklogin (LISTEN)
nepenthes 6705         root   23u  IPv4  23391       TCP *:2107 (LISTEN)
nepenthes 6705         root   24u  IPv4  23392       TCP *:3372 (LISTEN)
nepenthes 6705         root   25u  IPv4  23393       UDP *:ms-sql-m
nepenthes 6705         root   26u  IPv4  23394       TCP *:3127 (LISTEN)
nepenthes 6705         root   27u  IPv4  23395       TCP *:netbios-ssn (LISTEN)
nepenthes 6705         root   28u  IPv4  23396       TCP *:3140 (LISTEN)
nepenthes 6705         root   29u  IPv4  23397       TCP *:5554 (LISTEN)
nepenthes 6705         root   30u  IPv4  23398       TCP *:1023 (LISTEN)
nepenthes 6705         root   31u  IPv4  23399       TCP *:27347 (LISTEN)
nepenthes 6705         root   32u  IPv4  23400       TCP *:5000 (LISTEN)
nepenthes 6705         root   33u  IPv4  23401       TCP *:webmin (LISTEN)
nepenthes 6705         root   34u  IPv4  23402       TCP *:nameserver (LISTEN)
nepenthes 6705         root   35u  IPv4  23403       TCP *:www (LISTEN)

Nepenthes genera un certo numero di files contenenti informazioni sugli attacchi ricevuti, i file binari scaricati.
Una volta che Nepenthes subisca un attacco riguardante uno dei servizi simulati, Nepenthes esamina il tipo di attacco ed interpreta lo shellcode allo scopo di comprendere se il worm sta tentando di scaricare un file e con quale metodo (http/link/ftp..).
Allorché Nepenthes individua un tentativo di scaricare un file binario, ha la capacità di scaricarlo e archiviarlo, così che lo si possa analizzare in seguito.
Il log file generale di Nepenthes è (sempre in questo caso) /opt/nepenthes/var/log/nepenthes.log
Si possono trovare notizie sulle connessioni in ingresso, i tentativi di exploit, i payloads e così via analizzando tale file di log.
Altri file di log interessanti sono /opt/nepenthes/var/log/nepenthes/logged_submissions e /opt/nepenthes/var/log/nepenthes/logged_downloads, che contengono informazioni sui tentativi di download e sulla loro origine:

….
[2009-03-30T21:00:56] 151.16.254.221 -> 192.168.1.10 tftp://0.0.0.0/ssms.exe
[2009-03-30T21:20:38] 151.65.90.70 -> 192.168.1.10 link://151.65.90.70:35112/CawkOg==
….

I files binari catturati vengono archiviati in /opt/nepenthes/var/lib/nepenthes/binaries/, con un nome corrispondente al loro checksum md5:

# ls
18a91e6661584dff4d6451e2e4b6bbf7  98eb0fdadf8a403c013a8b1882ec986d  ad51430c7ab32fc38a3b3b1a94342b7d
343ebf0a89fa72cb07710c4171de00d1  a02d7f5e3679ebc70506345ebfa09888  e55730a85a4bacb9209efa8d6591ee67
462e522183a130a48c940d16377071b0  a4ffbcd15262b98c7cc2715fa6f420f9
65cf5d3bc5efd0d4ffcf83bfb59ba33b  ac9912b3872c7b0e776a315971fb063d

essi vengono tranquillamente riconosciuti come eseguibili MS Windows

# file *
18a91e6661584dff4d6451e2e4b6bbf7: MS-DOS executable PE  for MS Windows (GUI) Intel 80386 32-bit
343ebf0a89fa72cb07710c4171de00d1: MS-DOS executable PE  for MS Windows (GUI) Intel 80386 32-bit
462e522183a130a48c940d16377071b0: MS-DOS executable PE  for MS Windows (GUI) Intel 80386 32-bit
65cf5d3bc5efd0d4ffcf83bfb59ba33b: MS-DOS executable, MZ for MS-DOS
98eb0fdadf8a403c013a8b1882ec986d: MS-DOS executable PE  for MS Windows (GUI) Intel 80386 32-bit
a02d7f5e3679ebc70506345ebfa09888: MS-DOS executable PE  for MS Windows (GUI) Intel 80386 32-bit
a4ffbcd15262b98c7cc2715fa6f420f9: MS-DOS executable PE  for MS Windows (GUI) Intel 80386 32-bit
ac9912b3872c7b0e776a315971fb063d: MS-DOS executable PE  for MS Windows (GUI) Intel 80386 32-bit, UPX compressed
ad51430c7ab32fc38a3b3b1a94342b7d: MS-DOS executable PE  for MS Windows (GUI) Intel 80386 32-bit
e55730a85a4bacb9209efa8d6591ee67: MS-DOS executable PE  for MS Windows (GUI) Intel 80386 32-bit

mentre la loro specifica natura virale può essere facilmente individuata grazie ad una scansione effettuata tramite il noto antivirus opensource ClamAV:

# clamscan .
./ad51430c7ab32fc38a3b3b1a94342b7d: Trojan.Small-4287 FOUND
./a4ffbcd15262b98c7cc2715fa6f420f9: Trojan.Small-4287 FOUND
./343ebf0a89fa72cb07710c4171de00d1: Trojan.Small-4287 FOUND
./98eb0fdadf8a403c013a8b1882ec986d: Trojan.SdBot-4763 FOUND
./ac9912b3872c7b0e776a315971fb063d: Trojan.Agent-80988 FOUND
./18a91e6661584dff4d6451e2e4b6bbf7: Trojan.Small-4287 FOUND
./a02d7f5e3679ebc70506345ebfa09888: OK
./e55730a85a4bacb9209efa8d6591ee67: Trojan.Small-4287 FOUND
./65cf5d3bc5efd0d4ffcf83bfb59ba33b: Trojan.Kolabc-2 FOUND
./462e522183a130a48c940d16377071b0: Trojan.Agent-4938 FOUND

———– SCAN SUMMARY ———–
Known viruses: 538122
Engine version: 0.94.2
Scanned directories: 1
Scanned files: 10
Infected files: 9
Data scanned: 1.12 MB
Time: 5.785 sec (0 m 5 s)

Secondo l’analisi di threatexpert (http://www.threatexpert.com/) cui ho sottoposto il file a02d7f5e3679ebc70506345ebfa09888, che in precedenza ClamAV non era riuscito ad classificare, contiene un trojan, identificabile esattamente come Trojan-Downloader.Tiny, il quale, seguendo uno schema di comportamento estremamente comune, si connette a vari servers remoti per ottenere files malevoli da eseguirsi ad insaputa e danno dell’utente.

Send post as PDF to PDF | PDF Creator | PDF Converter
:, , ,

Comments are closed.

Cerchi qualcosa in particolare?

Usa il form qui sotto per cercare nel sito:

Blogroll!

Alcuni links...

Archives

Tutte le entries, in ordine cronologio...