Wetland
Wetland é um honeypot SSH de alta interação, projetado para registrar ataques de força bruta. Além disso, wetland registrará interações de shell, scp, sftp, exec-command, direct-forward, reverse-forward realizadas pelo atacante.
Wetland é baseado no módulo ssh python paramiko. E wetland executa como um servidor tcp multi-threading usando SocketServer.
Features
- Usar docker para fornecer um ambiente linux real.
- Toda autenticação por senha será redirecionada para o docker.
- Todos os comandos serão executados no docker.
- Salvar uma cópia do arquivo quando o hacker enviar arquivos via SFTP.
- Extrair e salvar arquivos do exec-log quando o hacker enviar arquivos via SCP.
- Fornecer um script playlog para reproduzir o tipo de log [shell | exec | direct-forward | reverse-forward].
- Funcionalidade de rede avançada para falsificar o endereço IP do atacante entre wetland e docker (graças ao honssh).
- Várias formas de relatar quando wetland está sendo tocado por um hacker, mas atualmente apenas email e bearychat.
Requirements
- Um sistema linux (testado no ubuntu)
- Imagens sshd no docker (ex: rastasheep/ubuntu-sshd)
- python2.7
- paramiko
- yagmail
- IPy
- requests
Setup and Configuration
- Copiar wetland.cfg.default para wetland.cfg
- Gerar chaves usadas pelo servidor ssh
- executar
mkdir data
- executar
ssh-keygen -t rsa e colocá-las em data/
- executar
ssh-keygen -t dsa e colocá-las em data/
- Lembre-se de que Wetland e o contêiner sshd devem usar as mesmas chaves.
- Instalar dependências python
- executar
pip install -r requirements
- Configurar o banner do servidor ssh
- Editar o banner no wetland.cfg
- Deve ser igual ao banner ssh do contêiner sshd
- Ou você pode executar
python util/initwetland.py ./; este script fará todo o trabalho acima
- Configurar os plugins de saída no wetland.cfg
- ativar ou desativar na seção
[output]
- Editar a url dos robôs de entrada ao usar bearychat
- Editar usuário, senha... ao usar email
- Instalar p0f se desejar
- executar
git clone https://github.com/p0f/p0f
- executar
cd p0f
- executar
./build.sh
- Editar a seção
[p0fp0f] no wetland.cfg
- se não precisar de p0f, apenas desative p0f na seção [output]
- Instalar docker
- instalar docker com a documentação em www.docker.com
- executar
docker search sshd, depois escolher uma imagem executando sshd
- executar
docker run -d --name sshd sshd_image_name
- executar
docker inspect sshd, depois editar o endereço ip e porta do docker no wetland.cfg
- a porta ssh do sshd deve ser a mesma do wetland
- excluir e substituir o contêiner sshd às vezes, se desejar
Running
- Executar
- executar
nohup python main.py &
- Parar
- executar
netstat -autpn | grep 22
- depois
kill pid_number
- ahaha
- Limpar
- Talvez você deva excluir manualmente algumas interfaces criadas pelo módulo de rede.
- executar
ip link list
- depois
ip link del dev wdxxxxxx
- finalmente limpar a tabela nat do iptables ou apenas reiniciar
- Visualizar logs
- executar
python util/clearlog.py -p log removerá logs que têm apenas pwd.log, e usuário:senha serão escritos no arquivo -l, padrão ./pwd.txt
- depois usar playlog.py em util
- alterações no sistema de arquivos
- filechange.py copiará a camada de leitura-escrita do contêiner sshd para ./ , a camada inclui o que o hacker criou e removeu
- ex:
docker inspect sshd --format '{{.Id}}' | python filechange.py -
Dockerized wetland
- executar
docker pull ohmyadd/wetland
- veja no docker hub
TODO
-
wetland dockerizado
-
criar imagem docker sshd realista
-
automatizar criação do contêiner sshd
-
adicionar watchdog
-
utilizar bearychat incoming/outgoing
-
sistema de log distribuído e suporte a hpfeeds