
Honeypot TCP/UDP simples implementado em Perl
Programa honeypot TCP/UDP implementado em Perl
README do malbait, 2/10/17
(btw meu endereço de bitcoin é 3A7yuqBcPAcVEM59bNAVQdTCmkxRb5JRgE )
(Aqui está uma alternativa, também para BTC, já que tenho recebido relatos de algumas carteiras de bitcoin que não suportam certos endereços: 1PEDKUiUTxGNJ3XTPfXCTAjpzVzX1VZAme )
Bem-vindo ao malbait, o seu honeypot perl simples e completo!
O Malbait é um honeypot, ou programa de "isco para malware". Foi concebido para desperdiçar o tempo de hackers e monitorizar tráfego hostil na internet (ou na sua LAN).
O Malbait cria uma série de servidores falsos em portas TCP selecionadas ou padrão e, se selecionado, portas UDP. Se alguém ou alguma coisa se ligar a eles, a sua entrada será registada nos ficheiros de registo.
Estes são executados como processos em segundo plano, por isso terá de ou desligar o computador ou usar o comando "kill" (ou, melhor ainda, "skill") da shell para se livrar deles. Pode monitorizá-los com o netstat. Recomendo:
sudo netstat -anp|grep perl
para ver o que está à escuta, e
sudo skill -9 perl
para os matar quando já tiver chegado de suficiente.
NB: Se usar o install.sh para instalar este programa, terá de executar
sudo skill -9 malbait
em vez disso. Embora ainda possa monitorizá-lo com: sudo netstat -anp|grep perl
Alternativamente, pode simplesmente desligar a máquina. Obviamente, não use o malbait enquanto estiver a usar perl para qualquer outra coisa! Recomendo uma máquina dedicada ao "isco", ou algo pequeno como um Raspberry Pi a executar as portas padrão, ou um computador grande a executar tantas portas quantas conseguir ouvirdas (de preferência todas).
O Malbait tem como padrão TCP, mas pode suportar UDP por si só e ambos a correr lado a lado.
É MUITO FORTEMENTE recomendado que use este programa em modo superusuário, quer invocando gainroot (sudo gainroot) quer usando sudo (sudo malbait). TEM de ter permissões de superusuário para abrir qualquer uma das primeiras 1024 portas.
É invocado assim
malbait -foo
se o executar sem parâmetros, ele cuspirá um texto extenso a explicar a utilização. Se quiser começar "de fábrica", execute
malbait -defaults
Isto abrirá as suas portas padrão e criará servidores onde for possível.
O Malbait pode criar servidores fictícios para Telnet, FTP, SMTP, POP3, BGP, HTTP (não brilhantemente), TR-69 (não brilhantemente), imap, systat, echo e o antigo servidor "time" ASCII. Por padrão, estes são abertos em todas as suas portas padrão, mas pode especificar portas para eles.
Também pode abrir um intervalo de portas, ou seja,
malbait -ports:1-1024
Irá abrir as portas 1-1024 (as portas "bem conhecidas" ou "restritas") e criar servidores falsos onde for apropriado.
A utilização do malbait é apenas limitada pela quantidade de memória que tiver. As opções -trans_proto:tcpudp e -ports: dão-lhe o poder de observar todas e cada uma das portas se tiver uma máquina suficientemente potente; ou de rebentar com o seu computador se não tiver. Acho que o meu pequeno Lenovo x200 notepad aguenta cerca de 6000 portas antes de começar a dar em louco, mas a sua experiência pode variar. Quer ver quão poderosa a sua nova caixa REALMENTE é? O Malbait pode fornecer uma referência - pessoalmente, adorava ver o que acontece numa máquina a executar
malbait -ports:1-65535 -trans_proto:tcpudp
num computador muito poderoso - na minha experiência com apenas 10% disso, há definitivamente mais tráfego UDP malicioso por aí (principalmente otários a tentar enganar chamadas telefónicas gratuitas, parece), e o telnet é um autêntico petri dish, mas adorava ver um levantamento do território inexplorado para além disso, se alguém tiver a potência (e a capacidade e os tomates / ovários para desativar completamente a firewall!)
Se tentar abrir, digamos, um servidor FTP em modo UDP, ( malbait -proto:ftp -trans_proto:udp ) ele abrirá as portas padrão - mas não terá um servidor FTP fingido! O UDP só criará servidores para serviços compatíveis com UDP, que são asciitime, systat, echo e os meta-protocolos especiais "hacktime" e "fuzz".
Hacktime é uma brincadeira inspirada no filme "Kung Fury". Cria servidores de tempo NTP, tanto à moda antiga como moderna, e transmite ou todos os 1s ou todos os FFs, com a ideia de emular a data de rolagem do Milénio Unix ("hacktime-2036") ou um sistema acabado de arrancar ("hacktime-1900"). Obviamente, o servidor NTP é muito mais complicado do que isso e provavelmente não funcionará, mas vai certamente confundir quaisquer hackers que o ataquem pensando que é um servidor NTP!
Fuzz é exatamente isso - uma tentativa de interferir com ataques automatizados atirando-lhes lixo aleatório. Mais uma vez, isto é experimental e não o levo necessariamente muito a sério, mas pensei que alguém pudesse achá-lo útil, por isso fica.
O servidor HTTP procura um ficheiro chamado "webpage.html". Se não o encontrar, gera uma simples página 404. Mais uma vez, não é brilhante - este programa serve mais para o ajudar a verificar os clientes exóticos e aleatórios que tentam ligar-se a si do que aborrecedores spiders web antigos.
Note que se o abrir num navegador Web, verá muitas strings "HTTP/1.1 200 OK" abaixo do conteúdo; isto porque não é suposto ser aberto num navegador Web, é suposto manter bots de rastejamento web potencialmente maliciosos na linha durante o máximo de tempo possível.
Sinta-se à vontade para substituir o webpage.html padrão pelo seu próprio, claro - embora seja bem-vindo a usá-lo, foi concebido para fins de demonstração.
A opção -transblank permite-lhe sobrepor a criação de servidores falsos. Portanto, se invocar
malbait.pl -port:23 -proto:transblank
ou
malbait.pl -proto:telnet -transblank
o malbait transmitirá o mais próximo de uma resposta em branco (um único e solitário retorno de carro) aos clientes, em vez de criar um "servidor Telnet".
Várias opções foram fornecidas para os amantes de exotismo informático.
-noloop: Não faz loop, ou seja, mata cada servidor após uma ligação. Se for um servidor UDP, mata-o depois de o cliente ter introduzido um "comando".
-no_multiplexing: Impede o servidor TCP de multiplexar, ou seja, de lançar servidores num processo filho. Embora possa poupar muita memória desta forma, NÃO é recomendado - sabe-se que o nmap rebenta com os servidores TCP do Malbait, e tê-los num processo filho significa que o malbait pode recuperar, e registar, esta e outras tentativas de ligação maliciosas. Portanto, se usar a opção "-no_multiplexing" GARANTO-lhe que acabará com ficheiros temporários órfãos espalhados pela sua pasta / diretório de trabalho como uma erupção cutânea, e isso vai deixá-lo muito triste; também perderá servidores permanentemente quando eles rebentarem. TL;DR: Não use esta opção.
-maxreq:nn Permite-lhe potencialmente criar nn servidores TCP ao mesmo tempo, para que possa (potencialmente) servir essa quantidade de "clientes" de uma só vez. O padrão é 2.
-noblocking: Lança servidores em modo "não bloqueante"; não há grande vantagem nisto, embora possa tornar-nos menos vulneráveis às maroscas do nmap se usado em conjunto com -no_multiplexing. Mas porque haveria de querer fazer isso? Agora a sério, alguns clientes preferem que seja não bloqueante, por isso se estiver a ter problemas, tente usar esta opção.
-timeout:nn Define o tempo limite para os clientes para nn segundos. O padrão é 30 - mas se estiver a receber muitos ataques automatizados, pode querer baixá-lo para não perder todo o outro malware que se liga ao seu computador.
-report:filename.txt Permite-lhe dar nome aos seus próprios ficheiros de relatório.
-recvbuffer:nn: Define uma variável interna que coloca em buffer o recv (bytes recebidos) com o valor nn. O padrão é 1024, portanto se quiser sorver mais de 1k de cada vez (um desejo não irrazoável), é aqui que o altera.
A saída de texto do malbait é um pouco... confusa neste momento. Está cheia de mensagens de depuração e informação de estado. Pode ignorá-la com segurança, a menos que seja um programador ou um masoquista. As mensagens de erro reais são registadas no ficheiro de registo.
O Malbait cria três tipos de ficheiros de registo: Um ficheiro CSV que lhe dá uma visão geral de todos os clientes que se ligaram à sua máquina, um ficheiro de texto com dados e análise mais detalhados, e ficheiros temporários (com nomes como TEMP-16537) que serão automaticamente eliminados à medida que o malbait abre / fecha portas e cria / destrói "servidores".
Desculpe os ficheiros temporários, foi a única forma de garantir que TODO o tráfego fosse capturado, mesmo quando tenta rebentar-nos! Se vir algum por aí, não faça nada, apenas atualize a página e eles provavelmente desaparecerão.
Se as pessoas mostrarem interesse neste programa e me enviarem emails / dinheiro / cartas de amor / ameaças, apoiá-lo-ei com atualizações e novas funcionalidades - por exemplo, posso facilmente adicionar suporte para ICMP, e talvez também um melhor tratamento de clientes web. Diverti-me imenso a escrever isto e sei que teria um verdadeiro prazer em apoiá-lo! Mas se não tiver notícias das pessoas, vou assumir que não é assim tão útil e seguir para outras coisas. Portanto, se quiser ver mais grandes funcionalidades, ou desejar que eu corrija o Chato do Bug X, por favor entre em contacto!
O meu endereço de email é [email protected] O endereço de bitcoin para este programa (dica, dica) é 16P267RxgkLsEDVEKwLGsfnUCJ6bfgyWKR
Obrigado por ler, e por favor, por favor, envie-me os seus Satoshis!