
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.