Wetland
Wetland è un honeypot SSH ad alta interazione,progettato per registrare attacchi di forza bruta.Inoltre, wetland registrerà shell、scp、sftp、exec-command、direct-forward、reverse-forward interation eseguita dall'attaccante.
Wetland si basa sul modulo python ssh paramiko. E wetland funziona come un server tcp multi-threading usando SocketServer.
Caratteristiche
- Usa docker per fornire un ambiente linux reale.
- Tutti gli autenticazioni con password verranno reindirizzate a docker.
- Tutti i comandi verranno eseguiti su docker.
- Salva una copia del file quando l'hacker carica file tramite SFTP.
- Estrae e salva i file dal log di exec quando l'hacker carica file tramite SCP.
- Fornisce uno script playlog per riprodurre i log di tipo [shell | exec | direct-forward | reverse-forward].
- Funzionalità di rete avanzata per spoofare l'indirizzo IP dell'attaccante tra wetland e docker (grazie a honssh)
- Vari modi per segnalarti quando wetland viene toccato da un hacker, ma al momento solo email e bearychat.
Requisiti
- Un sistema linux (testato su ubuntu)
- Immagini sshd in docker (ad es. rastasheep/ubuntu-sshd)
- python2.7
- paramiko
- yagmail
- IPy
- requests
Configurazione
- Copia wetland.cfg.default in wetland.cfg
- Genera le chiavi usate dal server ssh
- esegui
mkdir data
- esegui
ssh-keygen -t rsa, e mettile in data/
- esegui
ssh-keygen -t dsa, e mettile in data/
- Ricorda che Wetland e il container sshd devono usare le stesse chiavi.
- Installa i requisiti python
- esegui
pip install -r requirements
- Configura il banner del server ssh
- Modifica il banner in wetland.cfg
- Dovrebbe essere lo stesso del banner ssh del container sshd
- Oppure puoi eseguire
python util/initwetland.py ./,questo script farà tutto il lavoro sopra
- Configura i plugin di output in wetland.cfg
- abilita o disabilita nella sezione
[output]
- Modifica l'url dei robot in entrata quando usi bearychat
- Modifica user、pwd... quando usi email
- Installa p0f se vuoi
- esegui
git clone https://github.com/p0f/p0f
- esegui
cd p0f
- esegui
./build.sh
- Modifica la sezione
[p0fp0f] in wetland.cfg
- se non ti serve p0f, disabilita p0f nella sezione [output]
- Installa docker
- installa docker con la documentazione su www.docker.com
- esegui
docker search sshd, poi scegli un'immagine che esegue sshd
- esegui
docker run -d --name sshd sshd_image_name
- esegui
docker inspect sshd, poi modifica l'indirizzo IP e la porta di docker in wetland.cfg
- La porta ssh di sshd dovrebbe essere la stessa di wetland
- cancella e sostituisci il container sshd ogni tanto se vuoi
Esecuzione
- Esegui
- esegui
nohup python main.py &
- Ferma
- esegui
netstat -autpn | grep 22
- poi
kill pid_number
- ahaha
- Pulisci
- Forse dovresti eliminare manualmente alcune interfacce create dal modulo di rete.
- esegui
ip link list
- poi
ip link del dev wdxxxxxx
- infine pulisci la tabella nat di iptables o riavvia
- Visualizza i log
- esegui
python util/clearlog.py -p log rimuoverà i log che hanno solo pwd.log, e username:password verranno scritti nel file -l, predefinito ./pwd.txt
- poi usa playlog.py in util
- Modifiche al filesystem
- filechange.py copierà il livello read-write del container sshd in ./ , il livello include ciò che l'hacker crea e rimuove
- ad es.
docker inspect sshd --format '{{.Id}}' | python filechange.py -
Wetland in Docker
- esegui
docker pull ohmyadd/wetland
- vedilo su docker hub
TODO
-
wetland dockerizzato
-
creare un'immagine docker sshd realistica
-
automatizzare la creazione del container sshd
-
aggiungere watchdog
-
utilizzare le funzionalità incoming/outgoing di bearychat
-
sistema di log distribuito e supporto hpfeeds