
Semplice honeypot TCP/UDP implementato in Perl
Programma honeypot TCP/UDP implementato in Perl
README per malbait, 2/10/17
(tra l'altro il mio indirizzo bitcoin è 3A7yuqBcPAcVEM59bNAVQdTCmkxRb5JRgE )
(Ecco un'alternativa, sempre per BTC, dato che ho ricevuto segnalazioni di alcuni portafogli bitcoin che non supportano certi indirizzi: 1PEDKUiUTxGNJ3XTPfXCTAjpzVzX1VZAme )
Benvenuto in malbait, il tuo honeypot perl semplice e tutto in uno!
Malbait è un honeypot, ovvero un programma "esca per malware". È progettato per far perdere tempo agli hacker e monitorare il traffico ostile su internet (o sulla tua LAN).
Malbait crea una serie di server fittizi su porte TCP selezionate o predefinite e, se selezionato, su porte UDP. Se qualcuno o qualcosa si connette ad essi, il loro input verrà registrato nei file di log.
Questi vengono eseguiti come processi in background, quindi per eliminarli dovrai spegnere il computer o usare il comando "kill" della shell (o, meglio ancora, "skill"). Puoi monitorarli con netstat. Consiglio:
sudo netstat -anp|grep perl
per vedere cosa c'è in ascolto, e
sudo skill -9 perl
per ucciderli quando ne hai abbastanza.
NB: Se usi install.sh per installare questo programma, dovrai eseguire
sudo skill -9 malbait
invece. anche se puoi comunque monitorarlo con: sudo netstat -anp|grep perl
In alternativa puoi semplicemente spegnere la macchina. Ovviamente non usare malbait mentre usi perl per qualsiasi altra cosa! Consiglio una macchina "esca" dedicata, o qualcosa di piccolo come un Raspberry Pi che esegue le porte predefinite, o un grosso computer in ascolto su quante più porte possibile (idealmente tutte).
Malbait usa TCP per impostazione predefinita, ma può supportare UDP da solo ed entrambi possono funzionare fianco a fianco.
È MOLTO VIVAMENTE raccomandato usare questo programma in modalità superutente, o invocando gainroot (sudo gainroot) o eseguendolo con sudo (sudo malbait). DEVI avere i permessi di superutente per aprire una qualsiasi delle prime 1024 porte.
Viene invocato così
malbait -foo
se lo esegui senza parametri, stamperà un lungo testo che spiega ulteriormente l'utilizzo. Se vuoi iniziare "out of the box" esegui
malbait -defaults
Questo aprirà le sue porte predefinite e creerà server ovunque possibile.
Malbait può creare server fittizi per Telnet, FTP, SMTP, POP3, BGP, HTTP (non brillantemente), TR-69 (non brillantemente), imap, systat, echo e il vecchio server "time" ascii. Per impostazione predefinita vengono aperti su tutte le loro porte predefinite, ma puoi specificare porte per essi.
Puoi anche aprire un intervallo di porte, ad esempio,
malbait -ports:1-1024
Aprirà le porte 1-1024 (le porte "well-known" o "riservate") e creerà server fittizi dove appropriato.
L'uso di malbait è limitato solo dalla quantità di memoria che hai. Le opzioni -trans_proto:tcpudp e -ports: ti danno il potere di osservare ogni singola porta se hai una macchina abbastanza potente; o di mandare in crash il tuo computer se non ce l'hai. Ho notato che il mio piccolo portatile Lenovo x200 riesce a gestire circa 6000 porte prima di iniziare a dare di matto, ma i risultati possono variare. Vuoi vedere quanto è DAVVERO potente la tua nuova macchina? Malbait può fornire un benchmark - personalmente mi piacerebbe vedere cosa succede su una macchina che esegue
malbait -ports:1-65535 -trans_proto:tcpudp
su un computer molto potente - nella mia esperienza con solo il 10% di quello, c'è decisamente più traffico UDP malevolo in giro (soprattutto teste di cazzo che cercano di truffare telefonate gratuite, a quanto pare), e telnet è un vero e proprio terreno di coltura, ma mi piacerebbe vedere un'indagine del territorio inesplorato oltre, se qualcuno ha la potenza (e la capacità e le palle / le ovaie di disabilitare completamente il proprio firewall!)
Se provi ad aprire, diciamo, un server FTP in modalità UDP, ( malbait -proto:ftp -trans_proto:udp ) aprirà le porte predefinite - ma non otterrai un finto server FTP! UDP creerà server solo per i servizi compatibili con UDP, che sono asciitime, systat, echo e i meta-protocolli speciali "hacktime" e "fuzz".
Hacktime è una specie di scherzo ispirato al film "Kung Fury". Crea server temporali NTP, sia vecchia scuola che moderni, e trasmette o tutti 1 o tutti FF, con l'idea di emulare la data di rollover per il Millennio Unix ("hacktime-2036") o per un sistema appena avviato ("hacktime-1900"). Ovviamente il server NTP è molto più complicato di così e probabilmente non funzionerà, ma confonderà di sicuro qualsiasi hacker che ti attacchi pensando che tu sia un server NTP!
Fuzz è esattamente questo - un tentativo di disturbare gli attacchi automatizzati lanciando loro spazzatura casuale. Anche questo è sperimentale e non necessariamente lo prendo molto sul serio, ma ho pensato che qualcuno potrebbe trovarlo utile, quindi rimane.
Il server HTTP cerca un file chiamato "webpage.html". Se non lo trova, genera invece una semplice pagina 404. Anche questo non è brillante- questo programma serve più ad aiutarti a controllare i client esotici e casuali che cercano di connettersi a te piuttosto che i noiosi vecchi spider web.
Nota che se lo apri in un browser web vedrai molte stringhe "HTTP/1.1 200 OK" sotto il contenuto; questo perché non è pensato per essere aperto in un browser web, ma per tenere in linea i bot di webcrawling potenzialmente malevoli il più a lungo possibile.
Sentiti libero di sostituire la webpage.html predefinita con la tua, ovviamente - anche se sei il benvenuto a usarla, è progettata per scopi dimostrativi.
L'opzione -transblank ti permette di escludere la creazione di server fittizi. Quindi se invochi
malbait.pl -port:23 -proto:transblank
o
malbait.pl -proto:telnet -transblank
malbait trasmetterà la cosa più simile a una risposta vuota (un singolo, solitario ritorno a capo) ai client invece di creare un "server Telnet".
Varie opzioni sono state fornite per gli amanti dell'esotica informatica.
-noloop: Non esegue il loop, cioè uccide ogni server dopo una connessione. Se è un server UDP, lo uccide dopo che il client ha inserito un "comando".
-no_multiplexing: Impedisce al server TCP di effettuare il multiplexing, cioè di lanciare server in un processo figlio. Anche se puoi risparmiare molta memoria in questo modo, NON è raccomandato - è noto che nmap manda in crash i server TCP di Malbait, e averli in un processo figlio significa che malbait può riprendersi da, e registrare, questo e altri tentativi di connessione malevoli. Quindi se usi l'opzione "-no_multiplexing" ti GARANTISCO che ti ritroverai con file temporanei orfani sparsi per la tua cartella / directory di lavoro come un'eruzione cutanea, e questo ti renderà molto triste; perderai anche i server permanentemente quando vanno in crash. TL;DR: Non usare questa opzione.
-maxreq:nn Ti permette di generare potenzialmente nn server TCP contemporaneamente, così puoi (potenzialmente) servire altrettanti "client" in una volta. Il valore predefinito è 2.
-noblocking: lancia i server in modalità "non bloccante"; non ha molto senso, anche se potrebbe renderci meno vulnerabili ai casini di nmap se usato in combinazione con -no_multiplexing. Ma perché vorresti farlo? Comunque, sul serio, alcuni client preferiscono che tu sia non bloccante, quindi se stai avendo problemi, prova a usare questa opzione.
-timeout:nn Imposta il timeout per i client a nn secondi. Il valore predefinito è 30 - ma se ricevi molti attacchi automatizzati, potresti volerlo abbassare per non perderti tutto l'altro malware che si connette al tuo computer.
-report:filename.txt Ti permette di dare un nome ai tuoi file di report.
-recvbuffer:nn: Imposta una variabile interna che bufferizza recv (byte ricevuti) al valore nn. Il valore predefinito è 1024, quindi se vuoi ingurgitare più di 1k alla volta (non è un desiderio irragionevole), è qui che puoi cambiarlo.
L'output testuale di malbait è un po'... disordinato al momento. È pieno di messaggi di debug e informazioni di stato. Puoi tranquillamente ignorarlo a meno che tu non sia uno sviluppatore o un masochista. I veri messaggi di errore vengono registrati nel file di log.
Malbait crea tre tipi di file di log: un file CSV che ti dà una panoramica di tutti i client che si sono connessi alla tua macchina, un file di testo con dati e analisi più dettagliate, e file temporanei (con nomi come TEMP-16537) che verranno cancellati automaticamente mentre malbait apre / chiude le porte e crea / distrugge "server".
Scusa per i file temporanei, era l'unico modo per garantire che TUTTO il traffico venisse catturato, anche quando cerca di mandarci in crash! Se ne vedi qualcuno in giro, non fare nulla, basta aggiornare la pagina e probabilmente scompariranno.
Se le persone mostreranno interesse per questo programma e mi manderanno email / soldi / lettere d'amore / minacce, lo supporterò con aggiornamenti e nuove funzionalità - per esempio, posso facilmente aggiungere il supporto ICMP, e magari anche una migliore gestione dei client web. Mi sono divertito un sacco a scriverlo e so che mi divertirei un sacco a supportarlo! Ma se non ricevo notizie dalle persone, assumerò che non sia così utile, e passerò ad altre cose. Quindi se vuoi vedere altre fantastiche funzionalità, o desideri che sistemi il Fastidioso Bug X, per favore mettiti in contatto!
Il mio indirizzo email è [email protected] L'indirizzo bitcoin per questo programma (allusione, allusione) è 16P267RxgkLsEDVEKwLGsfnUCJ6bfgyWKR
Grazie per aver letto, e per favore, per favore mandami i tuoi Satoshi!