Estou desenvolvendo Habu para ensinar (e aprender) alguns conceitos sobre python e hackers de rede.
Algumas técnicas implementadas na versão atual são:
O desenvolvimento deste software é suportado pela Securetia SRL (https://www.securetia.com/)
Vários cenários de uso útil são detalhados em https://fportantier.github.io/hacking-with-habu/
A lista de reprodução do YouTube a seguir possui vídeos que mostram a instalação e o uso:
https://www.youtube.com/watch?v=rgp9sellyqe&list=pl4hznx8vnfxqsvnw7x-bxon0dgxndfnvd
Se você deseja discutir alguns recursos de habu, possíveis melhorias, etc., você pode usar o grupo Habu Telegram: https://t.me/python_habu
Questões e solicitações de puxar devem ser enviadas para o GitHub Repo: https://github.com/fportantier/habu
Maneira recomendada de instalar:
$ python3 -m pip install -upgrade git+https: //github.com/fportantier/habu.git
Isso deve funcionar em qualquer sistema que tenha o Python 3 instalado.
Nota: Em alguns sistemas (como o Microsoft Windows), você deve ajustar o comando para apontar para o caminho correto do executável do Python.
Agora, temos um comando para atualizar diretamente do repositório Git e limpar qualquer comando antigo que não exista mais ou que tenha sido renomeado.
$ habu.upgrade
Todos os comandos implementam a opção '--help', que mostra a ajuda, argumentos, opções e valores padrão.
Quase todos os comandos implementam o modo detalhado com a opção '-v'. Isso pode fornecer algumas informações extras sobre o que Habu está fazendo.
Uso: Habu.arp.ping [Opções] IP Envie pacotes ARP para verificar se um host está vivo na rede local. Exemplo: # Habu.arp.ping 192.168.0.1 Éter / arp está em A4: 08: F5: 19: 17: A4 diz 192.168.0.1 / preenchimento Opções: -i interface de texto para usar -v saída detalhada -Help Mostra esta mensagem e saída.
Uso: habu.arp.poison [opções] vítima1 vítima2 Envie pacotes ARP 'IS-AT' para cada vítima, envenenando suas mesas ARP para Envie o tráfego para o seu sistema. Nota: Se você quer um homem que trabalha com o ataque intermediário, você precisa Ative o encaminhamento de pacotes em seu sistema operacional para agir como um roteador. Você pode fazer isso usando: # eco 1>/proc/sys/net/ipv4/ip_forward Exemplo: # Habu.arpoison 192.168.0.1 192.168.0.77 Éter / arp está em f4: 96: 34: e5: ae: 1b diz 192.168.0.77 Éter / arp está em f4: 96: 34: e5: ae: 1b diz 192.168.0.70 Éter / arp está em f4: 96: 34: e5: ae: 1b diz 192.168.0.77 ... Opções: -i interface de texto para usar -v verbose -Help Mostra esta mensagem e saída.
Uso: Habu.arp.sniff [Opções] Ouça pacotes ARP e mostre informações para cada dispositivo. Colunas: segundos do último pacote | IP | Mac | Fornecedor Exemplo: 1 192.168.0.1 A4: 08: F5: 19: 17: A4 Sagemcom Broadband SAS 7 192.168.0.2 64: BC: 0C: 33: E5: 57 LG Electronics (Mobile Communications) 2 192.168.0.5 00: C2: C6: 30: 2C: 58 Intel Corporate 6 192.168.0.7 54: F2: 01: db: 35: 58 Samsung Electronics Co., Ltd Opções: -i interface de texto para usar -Help Mostra esta mensagem e saída.
Uso: Habu.asydns [Opções]
Solicita um nome de domínio DNS com base em teclas RSA públicas e privadas usando o
Protocolo Asydns https://github.com/portantier/asydns
Exemplo:
$ habu.asydns -v
Gerando a chave RSA ...
Carregando a chave RSA ...
{
"IP": "181.31.41.231",
"Nome": "07286e90fd6e7e6be61d6a7919967c7cf3bbfb23a36edbc72b6d7c53.a.asydns.org"
}
$ dig +curto 07286e90fd6e7e6be61d6a7919967c7cf3bbfb23a36edbc72b6d7c53.a.asydns.org
181.31.41.231
Opções:
-u URL da API de texto
-g forçar a geração de um novo par de chaves
-R Revogar a chave pública
-v saída detalhada
-Help Mostra esta mensagem e saída.
Uso: Habu.b64 [Opções] [F] Codifica ou decodifique dados no base64, assim como o comando base64. $ eco incrível | Habu.B64 Yxdlc29tzqo = $ echo yxdlc29tzqo = | habu.b64 -d incrível Opções: -d decodificar em vez de codificar -Help Mostra esta mensagem e saída.
Uso: Habu.cert.clone [Opções] HostName Port KeyFile CertFile Conecte -se a um servidor SSL/TLS, obtenha o certificado e gerar um certificado com as mesmas opções e valores de campo. Nota: o certificado gerado é inválido, mas pode ser usado para social Ataques de engenharia Exemplo: $ habu.certclone www.google.com 443 /tmp/key.pem /tmp/cert.pem Opções: -Copy-Extensões Copiar Extensões de Certificado (Padrão: Falso) --expirado Gere um certificado expirado (padrão: false) -v verbose -Help Mostra esta mensagem e saída.
Uso: Habu.cert.crtsh [Opções] Domínio Baixar os logs de transparência do certificado para um domínio e verificar com DNS consultas se houver cada subdomínio. Usa o Multithreading para melhorar o desempenho das consultas DNS. Exemplo: $ habu.crtsh securetia.com alt.securetia.com outros.securetia.com www.securetia.com Opções: -C Desative o cache -n Desative a validação de subdomínio DNS -v saída detalhada --Json Imprima a saída em formato JSON -Help Mostra esta mensagem e saída.
Uso: Habu.cert.names [Opções] [Network] Conecta -se a cada host/porta e mostra um resumo dos nomes dos certificados. Os hosts a que se conectam são retirados de duas opções possíveis: 1. -I Opção (Padrão: Stdin). Um arquivo em que cada linha é um host ou rede 2. Um argumento que pode ser um host ou rede Se você usar os dois métodos, os hosts e as redes serão mesclados em uma lista. Exemplo: $ habu.cert.names 2.18.60.240/29 2.18.60.241 443 is-microsoft.com microsoft.com privacy.microsoft.com 2.18.60.242 443 AOD-SSL.ITUNES.APPLE.com AOD.ITUNES.APPLE.COM AODP-SSL.ITUNES.APPLE.COM 2.18.60.243 443 *.mlb.com mlb.com 2.18.60.244 443 [ssl: tlsv1_alert_internal_error] tlsv1 alerta o erro interno (_ssl.c: 1056) 2.18.60.245 443 cert2-cn-public-ubiservices.ubi.com cert2-cn-public-ws-ubiservices.ubi.com 2.18.60.246 443 *.blog.sina.com.cn *.dmp.sina.cn aod.itunes.apple.com aodp-sl.itunes.apple.com AOD-SSL.ITUNES.APPLE.COM *.blog.sina.com.cn cert2-cn-public-ubiservices.ubi.com cert2-cn-public-ws-ubiservices.ubi.com *.dmp.sina.cn is-microsoft.com microsoft.com *.mlb.com mlb.com privacy.microsoft.com Opções: -P portas de texto para se conectar a (lista separada por vírgula) -i arquivo de entrada de nome do arquivo (padrão: stdin) -T Hora de flutuação para esperar por cada conexão -v saída detalhada --Json Imprima a saída em formato JSON -Help Mostra esta mensagem e saída.
Uso: Habu.config.del [Opções] Tecla Exclua uma chave da configuração. Nota: Por padrão, a chave é convertida em maiúsculas. Exemplo: $ habu.config.del dns_server Opções: -Help Mostra esta mensagem e saída.
Uso: Habu.config.set [Opções] Valor da chave Defina o valor na tecla Config. Nota: Por padrão, a chave é convertida em maiúsculas. Exemplo: $ habu.config.set dns_server 8.8.8.8 Opções: -Help Mostra esta mensagem e saída.
Uso: Habu.config.show [Opções]
Mostre a configuração atual.
Nota: Por padrão, as opções com 'chave' em seu nome são sombreadas.
Exemplo:
$ habu.config.show
{
"Dns_server": "8.8.8.8",
"Fernet_Key": "*************"
}
Opções:
-k,--Show-Keys mostra também os valores-chave
-OPTION TEXT ... Escreva na configuração (valor da chave)
-Help Mostra esta mensagem e saída.
Uso: Habu.crack.luhn [Opções] Número Tendo valores conhecidos para um número validado de Luhn, obtenha o possível números desconhecidos. Os números que usam o algoritmo Luhn para validação são cartões de crédito, IMEI, Identificador do fornecedor nacional nos Estados Unidos, Social Canadense Números de seguro, números de identificação de Israel e números gregos de previdência social (Αμκα). Os caracteres '-' são ignorados. Defina os números ausentes com o caractere 'X'. Referência: https://en.wikipedia.org/wiki/luhn_algorithm Exemplo: $ habu.crack.luhn 4509-xx08-3160-6445 4509000831606445 4509180831606445 4509260831606445 4509340831606445 4509420831606445 4509590831606445 4509670831606445 4509750831606445 4509830831606445 4509910831606445 Opções: -Help Mostra esta mensagem e saída.
Uso: Habu.crack.snmp [Opções] IP Lança as consultas SNMP-GET contra um IP e informa quando encontrar um válido String da comunidade (é um cracker SNMP simples). O dicionário usado é o distribuído com a ferramenta OMIXTYONE https://github.com/trailofbits/onesixtyone Exemplo: # Habu.crack.snmp 179.125.234.210 Comunidade encontrada: privado Comunidade encontrada: público Nota: Você também pode receber mensagens como <Universal > <classe 'scapy.asn1.asn1.asn1 _class _metaclass' >, não sei como suprimir eles por enquanto. Opções: -P porta inteira para usar -C Comunidade de texto (Padrão: Lista da maioria usada) -S pare após a primeira partida -v verbose -Help Mostra esta mensagem e saída.
Uso: Habu.crypto.fernet [Opções] Fernet cifra. Usa AES-128-CBC com HMAC NOTA: Você deve usar uma chave para cifra com Fernet. Use o paramental -k ou defina o valor de configuração Fernet_Key. As chaves podem ser geradas com o comando habu.crypto.fernet.genkey Referência: https://github.com/fernet/spec/blob/master/spec.md Exemplo: $ "Eu quero proteger esta string" | Habu.crypto.fernet gaaaAabbxncgoculVnRelyTBecwnek9iq5jbkq9jan3wiibuzpqpugv5owvnc6xfia ... $ echo gaaaAabbxncGoculVNRELYTBECWNEK9IQ5JBKQ9JAN3WIIBUZPQPUGV5OWVNC6XFIA ... | Habu.crypto.fernet -d Eu quero proteger esta string Opções: -k chave de texto -d descriptografar em vez de criptografar --ttl tempo inteiro para viver para verificação de registro de data e hora -i arquivo de entrada de nome do arquivo (padrão: stdin) -o arquivo de saída de nome de arquivo (padrão: stdout) -Help Mostra esta mensagem e saída.
Uso: Habu.crypto.fernet.genkey [Opções] Gerar uma nova chave de samnet, opcionalmente, escreva -a para ~/.habu.json Exemplo: $ habu.crypto.fernet.genkey XGVWCIVJWE9UQ7NBVWO796II4DSGD623QOT9GWQNUHG = Opções: -W Escreva esta chave para ~/.habu.json -Help Mostra esta mensagem e saída.
Uso: Habu.crypto.gppref [Opções] Senha Descriptografar a senha dos usuários locais adicionados pela Política do Grupo do Windows 2008 Preferências. Este valor é o atributo 'cpassword' incorporado no arquivo groups.xml, armazenado no compartilhamento SYSVOL do controlador de domínio. Exemplo: # habu.crypto.gppref azvjmxh/j9kru5n0czx1ubplsujzfe8j7doltpd8tlk testpassword Opções: -Help Mostra esta mensagem e saída.
Uso: Habu.crypto.hasher [Opções] [F]
Calcule vários hashes para os dados de entrada, que podem ser um arquivo ou um fluxo.
Exemplo:
$ habu.crypto.hasher readme.rst
MD5 992A833CD162047DAAA6A236B8AC15AE README.RST
RIPEMD160 0566F9141E65E57CAE93E0E3B70D1D8C2CCB0623 README.RST
SHA1 D7DBFD2C5E2828EB22F776550C826E4166526253 README.RST
SHA256 6BB22D927E1B6307CED616821A1877B6CC35E ... README.RST
SHA512 8743F3EB12A11CF3EDCC16E400FB14D599B4A ... README.RST
Whirlpool 96BCC083242E796992C0F3462F330811F9E8C ... README.RST
Você também pode especificar qual algoritmo usar. Nesse caso, a saída é
Somente o valor do hash calculado:
$ habu.hasher -a md5 readme.rst
992A833CD162047DAAA6A236B8AC15AE README.RST
Opções:
-a [md5 | sha1 | sha256 | sha512 | ripemd160 | whirlpool]
Somente este algoritmo (padrão: tudo)
-Help Mostra esta mensagem e saída.
Uso: Habu.crypto.xor [Opções] Xor cifra. Nota: XOR não é uma 'cifra segura'. Se você precisar de criptografia forte, você deve usar algoritmos como AES. Você pode usar o Habu.fernet para isso. Exemplo: $ habu.xor -k mySecretKey -i /bin /ls> xored $ habu.xor -k mySecretKey -i xored> uxored $ sha1sum /bin /ls uxored $ 6FCF930FCEE1395A1C95F87DDD38413E02DEFF4BB /BIN /LS $ 6FCF930FCEE1395A1C95F87DDD38413E02DEFF4BB UXORED Opções: -k tecla de criptografia de texto -i arquivo de entrada de nome do arquivo (padrão: stdin) -o arquivo de saída de nome de arquivo (padrão: stdout) -Help Mostra esta mensagem e saída.
Uso: Habu.data.enrich [Opções]
Enriqueça dados adicionando informações interessantes.
Exemplo:
$ cat /var/log/auth.log | Habu.data.extract.ipv4 | Habu.data.enrich
[[
{
"ativo": "8.8.8.8",
"Família": "ipaddress",
"Asn": "15169",
"net": "8.8.8.0/24",
"cc": "nós",
"rir": "arin",
"Asname": "Google - Google LLC, nós"
},
{
"ativo": "8.8.4.4",
"Família": "ipaddress",
"Asn": "15169",
"net": "8.8.4.0/24",
"cc": "nós",
"rir": "arin",
"Asname": "Google - Google LLC, nós"
}
]
Opções:
-i arquivo de entrada de nome do arquivo (padrão: stdin)
-v saída detalhada
-Help Mostra esta mensagem e saída.
Uso: Habu.data.extract.Domain [Opções] [INFILE] Extraia domínios válidos de um arquivo ou stdin. Opcionalmente, verifique cada domínio para a presença de registros NS. Exemplo: $ cat /var/log/some.log | Habu.data.extract.Domain -C google.com ibm.com Redhat.com Opções: -C Verifique se o domínio tem servidores NS definidos -v saída detalhada -j saída JSON -Help Mostra esta mensagem e saída.
Uso: Habu.data.extract.email [Opções] [INFILE] Extraia endereços de email de um arquivo ou stdin. Exemplo: $ cat /var/log/auth.log | Habu.data.extract.email [email protected] [email protected] [email protected] Opções: -v saída detalhada -j saída JSON -Help Mostra esta mensagem e saída.
Uso: Habu.data.extract.fqdn [Opções] [Infile] Extraia o FQDNS (nomes de domínio totalmente qualificados) de um arquivo ou stdin. Exemplo: $ cat /var/log/some.log | Habu.data.extract.fqdn www.google.com ibm.com FileServer.redhat.com Opções: -C Verifique se o nome do host resolve -v saída detalhada -j saída JSON -Help Mostra esta mensagem e saída.
Uso: Habu.data.extract.ipv4 [Opções] [Infile] Extraia endereços IPv4 de um arquivo ou stdin. Exemplo: $ cat /var/log/auth.log | Habu.data.extract.ipv4 172.217.162.4 23.52.213.96 190.210.43.70 Opções: -j, -JSON JSON SAÍDA -u, --unique remove duplicatas -v saída detalhada -Help Mostra esta mensagem e saída.
Uso: Habu.data.filter [Opções] Campo [GT | lt | Eq | ne | ge | le | in | contém | definitivamente
ed | indefinido | true | false] [valor]
Filtrar dados com base em operadores.
Referência do operador:
GT: maior que
LT: menor que
Eq: igual a
NE: não é igual a
GE: Greather ou igual ao
LE: menor ou igual que
In: dentro da lista de valores (ou dentro da rede)
Contém: contém o valor (ou o endereço de rede)
definido: o valor é definido
indefinido: o valor não está definido
Verdadeiro: o valor é verdadeiro
Falso: o valor é falso
Exemplo:
$ cat /var/log/auth.log | Habu.data.extract.ipv4 | Habu.data.enrich | Habu.data.Filter CC Eq US
[[
{
"Item": "8.8.8.8",
"Família": "ipv4_address",
"Asn": "15169",
"net": "8.8.8.0/24",
"cc": "nós",
"rir": "arin",
"Asname": "Google - Google LLC, nós"
}
]
DOCs: https://fportantier.github.io/hacking-with-habu/user/data-manipulation.html#data-enrichment
Opções:
-i arquivo de entrada de nome do arquivo (padrão: stdin)
-v saída detalhada
-Não nega a comparação
-Help Mostra esta mensagem e saída.
Uso: Habu.data.select [Opções] Campo Selecione um campo a partir de uma entrada JSON. Exemplo: $ cat /var/log/auth.log | Habu.data.extract.ipv4 | Habu.data.enrich | Habu.data.Filter CC Eq US | Habu.Data.Select Asset 8.8.8.7 8.8.8.8 8.8.8.9 Opções: -i arquivo de entrada de nome do arquivo (padrão: stdin) -v saída detalhada -JSON JSON SAUT -Help Mostra esta mensagem e saída.
Uso: Habu.dhcp.discover [Opções] Envie uma solicitação DHCP e mostre quais dispositivos responderam. Nota: Usando '-v', você pode ver todas as opções (como servidores DNS) incluídos nas respostas. # habu.dhcp_discover Éter / ip / udp 192.168.0.1:bootps> 192.168.0.5:bootpc / bootp / dhcp Opções: -i interface de texto para usar -t Tempo inteiro (segundos) para aguardar respostas -v saída detalhada -Help Mostra esta mensagem e saída.
Uso: Habu.dhcp.starvation [Opções] Envie várias solicitações DHCP de endereços MAC forjados para preencher o DHCP arrendamentos de servidores. Quando todos os endereços de rede disponíveis são atribuídos, o servidor DHCP Não envie respostas. Assim, alguns ataques, como a falsificação do DHCP, podem ser feitos. # habu.dhcp_starvation Éter / ip / udp 192.168.0.1:bootps> 192.168.0.6:bootpc / bootp / dhcp Éter / ip / udp 192.168.0.1:bootps> 192.168.0.7:bootpc / bootp / dhcp Éter / ip / udp 192.168.0.1:bootps> 192.168.0.8:bootpc / bootp / dhcp Opções: -i interface de texto para usar -t Tempo inteiro (segundos) para aguardar respostas -S Tempo inteiro (segundos) entre solicitações -v saída detalhada -Help Mostra esta mensagem e saída.
Uso: Habu.dns.lookup.forward [Opções] HostName
Realize uma pesquisa avançada de um determinado nome de host.
Exemplo:
$ habu.dns.lookup.forward google.com
{
"IPv4": "172.217.168.46",
"IPv6": "2A00: 1450: 400A: 802 :: 200e"
}
Opções:
-v saída detalhada
-Help Mostra esta mensagem e saída.
Uso: habu.dns.lookup.versever [options] ip_address
Execute uma pesquisa reversa de um determinado endereço IP.
Exemplo:
$ $ habu.dns.lookup.reverse 8.8.8.8
{
"HostName": "Google-Public-DNS-A.google.com"
}
Opções:
-v saída detalhada
-Help Mostra esta mensagem e saída.
Uso: Habu.Eicar [Opções] Imprima a sequência de teste EICAR que pode ser usada para testar os mecanismos de antimalware. Mais informações: http://www.eicar.org/86-0-intetended-use.html Exemplo: $ habu.eicar X5o! P%@ap [4 xzp54 (p^) 7cc) 7} $ eicar-padrão-antivirus-test-File! $ H+h* Opções: -Help Mostra esta mensagem e saída.
Uso: Habu.forkbomb [Opções] [Bash | Batch | C | Haskell | Perl | Php | Python | Ruby]
Um atalho para lembrar como usar bombas de garfo em diferentes idiomas.
Atualmente suportado: Bash, Batch, C, Haskell, Perl, Php, Python, Ruby.
Exemplo:
$ habu.forkbomb c
#include <unistd.h>
int main ()
{
enquanto (1)
{
garfo();
}
retornar 0;
}
Opções:
-Help Mostra esta mensagem e saída.
Uso: Habu.fqdn.finder [Opções] [Domínios] ...
Usa várias técnicas para obter FQDNs válidas para os domínios especificados.
1. Tente todos os FQDNs com transferências de zona DNS
2. Verifique os logs de transparência de certificado
3. Conecte -se a portas especificadas, obtenha certificados SSL e obtenha FQDNs
4. Conecte -se aos sites e obtenha FQDNs com base nos links do site
5. DNS Força bruta para nomes comuns
Os resultados são limpos para remover FQDNs que não resolvem por DNS
Exemplo:
$ habu.fqdn.finder educionit.com
barometrossalsarial.educacionit.com
blog.educacionit.com
ci.educacionit.com
Educacionit.com
intranet.educacionit.com
lecdev.educacionit.com
lecweb.educacionit.com
Mail.educacionit.com
plantillas.educacionit.com
www.educacionit.com
Opções:
-T Hora de flutuação para esperar por cada conexão
-v saída detalhada
-Debug Debug Output
-Conconect /--não-CONNECT GET DO FQDNS OPEN SSL CERTIFICADOS SSL conhecidos
--BRUTE / --NO-BRUTO RUND DNS BRUTE FORCE contra domínios
-Links / --no-links extraam FQDNs de links de site
--xfr /--no-xfr Tente fazer uma transferência de zona DNS contra domínios
--CTLOG /--NO-CTLOG Tente obter FQDNs da transparência de certificado
Logs
--Json Imprima a saída em formato JSON
-Help Mostra esta mensagem e saída.
Uso: Habu.gateway.find [Opções] Rede Tente alcançar um IP externo usando qualquer host tem um roteador. Útil para encontrar roteadores em sua rede. Primeiro, usa o arping para detectar hosts vivos e obter endereços MAC. Posteriormente, crie um pacote de rede e coloque cada endereço MAC como destino. Por fim, imprima os dispositivos que encaminharam corretamente os pacotes. Exemplo: # habu.find.gateway 192.168.0.0/24 192.168.0.1 A4: 08: F5: 19: 17: a4 sagemcom 192.168.0.7 B0: 98: 2b: 5d: 22: 70 sagemcom 192.168.0.8 B0: 98: 2b: 5d: 1f: e8 sagemcom Opções: -i interface de texto para usar -Host de texto hospedeiro para alcance (Padrão: 8.8.8.8) --TCP Use TCP em vez de ICMP -Porta de destino de intervalo inteiro-dport para TCP (Padrão: 80) -Tempo inteiro de tempoout em segundos (Padrão: 5) -v saída detalhada -Help Mostra esta mensagem e saída.
Uso: Habu.host [Opções]
Colete informações sobre o host em que Habu está em execução.
Exemplo:
$ habu.host
{
"kernel": [
"Linux",
"Demo123",
"5.0.6-200.fc29.x86_64",
"#1 SMP Qua 3 de abril 15:09:51 UTC 2019",
"x86_64",
"x86_64"
],
"Distribuição": [
"Fedora",
"29",
"Vinte nove"
],
"libc": [
"glibc",
"2.2.5"
],
"Arch": "x86_64",
"Python_version": "3.7.3",
"OS_NAME": "Linux",
"CPU": "x86_64",
"static_hostname": "Demo123",
"fqdn": "Demo123.lab.sierra"
}
Opções:
-v saída detalhada.
-Help Mostra esta mensagem e saída.
Uso: Habu.http.Headers [Opções] Servidor
Recupere os cabeçalhos HTTP de um servidor da Web.
Exemplo:
$ habu.http.headers http://duckduckgo.com
{
"Servidor": "nginx",
"Data": "Sun, 14 de abril de 2019 00:00:55 GMT",
"Tipo de conteúdo": "texto/html",
"Length-thength": "178",
"Conexão": "Keep-alive",
"Local": "https://duckduckgo.com/",
"X-frame-options": "Sameorigin",
"Content-Segurança-Policy": "Https padrão-src: blob: dados: 'inseguro' '' inseguro-eval '",
"X-xSS-Proteção": "1; Mode = Block",
"X-Content-type-Options": "Nosniff",
"Política de referência": "origem",
"Espere-ct": "max-AGE = 0",
"Expira": "Seg, 13 de abril de 2020 00:00:55 GMT",
"Controle de cache": "Max-Arane = 31536000"
}
Opções:
-v saída detalhada
-Help Mostra esta mensagem e saída.
Uso: Habu.http.options [Opções] Servidor
Recupere os métodos HTTP disponíveis de um servidor da Web.
Exemplo:
$ habu.http.options -v http://google.com
{
"permitido": "pegue, cabeça"
}
Opções:
-v saída detalhada
-Help Mostra esta mensagem e saída.
Uso: Habu.http.tech [Opções] URL Usa o banco de dados Wappalyzer Apps.json para identificar tecnologias usadas em uma web aplicativo. Referência: https://github.com/aliasio/wappalyzer Nota: Esta ferramenta envia apenas uma solicitação. Então, é furtivo e não suspeito. $ habu.web.tech https://woocomerce.com Google Tag Manager desconhecido MySQL desconhecido Nginx desconhecido PHP desconhecido Protótipo desconhecido Requerjs desconhecido WooCommerce 3.8.0 WordPress 5.2.4 Yoast SEO 10.0.1 Opções: --cache /--no-cache -formato de saída [txt | csv | json] -v saída detalhada -Help Mostra esta mensagem e saída.
Uso: Habu.icmp.ping [Opções] IP A ferramenta clássica de ping que envia solicitações de eco do ICMP. # Habu.icmp.ping 8.8.8.8 IP / ICMP 8.8.8.8> 192.168.0.5 ECHO-REPLICA IP / ICMP 8.8.8.8> 192.168.0.5 ECHO-REPLICA IP / ICMP 8.8.8.8> 192.168.0.5 ECHO-REPLICA IP / ICMP 8.8.8.8> 192.168.0.5 ECHO-REPLICA Opções: -I Text que interface a ser usada (padrão: Auto) -C inteiro quantos pacotes enviam (padrão: infinit) -T Tempo limite inteiro em segundos (padrão: 2) -w inteiro quantos segundos entre pacotes (padrão: 1) -v verbose -Help Mostra esta mensagem e saída.
Uso: Habu.ip.asn [Opções] IP
Use o serviço Team Cymru IP2ASN para obter informações sobre um IPv4/IPv6 público.
Referência: https://www.team-cymru.com/ip-asn-mapp.html
$ habu.ip.asn 8.8.8.8
{
"Asn": "15169",
"net": "8.8.8.0/24",
"cc": "nós",
"rir": "arin",
"Asname": "Google - Google LLC, nós",
"país": "Estados Unidos"
}
Opções:
-Help Mostra esta mensagem e saída.
Uso: habu.ip.geolocation [Opções] ip_address
Obtenha a geolocalização de um IP Adddress em https://ipapi.co/.
Exemplo:
$ habu.ip.geolocation 8.8.8.8
{
"IP": "8.8.8.8",
"City": "Mountain View",
...
"Asn": "AS15169",
"Org": "Google LLC"
}
Opções:
-v saída detalhada.
-Help Mostra esta mensagem e saída.
Uso: Habu.ip.internal [Opções]
Obtenha os endereços IP locais das interfaces locais.
Exemplo:
$ habu.ip.internal
{
"lo": {
"IPv4": [
{
"addr": "127.0.0.1",
"NetMask": "255.0.0.0",
"Peer": "127.0.0.1"
}
],
"link_layer": [
{
"Addr": "00: 00: 00: 00: 00: 00",
"Peer": "00: 00: 00: 00: 00: 00"
}
],
"IPv6": [
{
"addr": ":: 1",
"NetMask": "ffff: ffff: ffff: ffff: ffff: ffff: ffff: ffff/128"
}
]
},
...
Opções:
-v saída detalhada.
-Help Mostra esta mensagem e saída.
Uso: Habu.ip.public [Opções] Obtenha o endereço IP público da conexão em https://api.ipify.org. Exemplo: $ habu.ip.public 80.219.53.185 Opções: -4, --IPV4 Imprima seu endereço IPv4 público (padrão) -6, --IPV6 Imprima seu endereço IPv6 público -j, --json imprima a saída no formato JSON -Help Mostra esta mensagem e saída.
Uso: HABU.KARMA [Options] Host
Use o serviço karma https://karma.securetia.com para verificar um IP contra
Várias listas de inteligência / reputação de ameaças.
$ habu.karma www.google.com
www.google.com -> 64.233.190.99
[[
"hphoSts_fsa",
"HphoSts_PSH",
"HPHOSTS_EMD"
]
Nota: Você pode usar o nome do host ou o IP do host para consultar.
Opções:
-Help Mostra esta mensagem e saída.
Uso: Habu.karma.bulk [Opções] [INFILE] Mostre quais endereços IP estão dentro das listas negras usando o karma online serviço. Exemplo: $ cat /var/log/auth.log | habu.extract.ipv4 | habu.karma.bulk 172.217.162.4 Spamhaus_drop, Alienvault_spamming 23.52.213.96 Limpo 190.210.43.70 alienvault_malicious Opções: -JSON JSON SAUT -Bad Show apenas entradas em listas negras -v saída detalhada -Help Mostra esta mensagem e saída.
Uso: Habu.land [Opções] IP Este comando implementa o ataque terrestre, que envia pacotes forjando o Endereço IP de origem é o mesmo que o IP de destino. Também usa o mesma porta de origem e destino. O ataque é muito antigo e pode ser usado para fazer uma negação de serviço na antiga sistemas, como o Windows NT 4.0. Mais informações aqui: https://en.wikipedia.org/wiki/land # sudo habu.land 172.16.0.10 ............ Nota: Cada ponto (.) É um pacote enviado. Você pode especificar quantos pacotes enviam com a opção '-c'. O padrão nunca é parar. Além disso, você pode especificar o Porta de destino, com a opção '-p'. Opções: -C inteiro quantos pacotes enviam (padrão: infinit) -P porta inteira para usar (padrão: 135) -i interface de texto para usar -v verbose -Help Mostra esta mensagem e saída.
Uso: Habu.nc [Opções] Porta de host Algum tipo de substituição do NetCat/NCAT. A execução emula o sentimento dessas ferramentas populares. Exemplo: $ habu.nc --crlf www.portantier.com 80 Conectado a 45.77.113.133 80 Cabeça / http / 1.0 Http/1.0 301 movido permanentemente Data: Qui, 26 de julho de 2018 21:10:51 GMT Servidor: OpenBSD HTTPD Conexão: Feche Tipo de conteúdo: texto/html Comprimento de conteúdo: 443 Localização: https://www.portantier.com/ Opções: -Família [4 | 6 | 46] Família de endereço IP --SSL Ativar ssl --Crlf Use CRLF para sequência EOL --protocolo [tcp | udp] protocolo 4 para usar -IP da fonte de texto-IP-IP para usar -Porta de origem inteira do intervalo-fonte-porta para usar -Help Mostra esta mensagem e saída.
Uso: Habu.net.contest [Opções] Tente se conectar a vários serviços e verifique se pode alcançá -los usando seu conexão com a Internet. Exemplo: $ habu.net.contest DNS: Verdadeiro FTP: Verdadeiro SSH: Verdadeiro Http: true Https: true Opções: -Help Mostra esta mensagem e saída.
Uso: Habu.net.Interfaces [Opções] Mostre as interfaces de rede disponíveis no sistema. Exemplo: # habu.interfaces # Nome Mac Inet Inet6 0 eth0 80: fa: 5b: 4b: f9: 18 nenhum nenhum 1 lo 00: 00: 00: 00: 00: 00 127.0.0.1 :: 1 2 WLAN0 F4: 96: 34: E5: AE: 1b 192.168.0.6 Nenhum 3 VboxNet0 0a: 00: 27: 00: 00: 00 192.168.56.1 Fe80 :: 800: 27ff: fe00: 0 Opções: -J Saída no formato JSON -Help Mostra esta mensagem e saída.
Uso: Habu.nmap.excluded [Opções] Imprime uma porta aleatória que não está presente no arquivo de serviços nmap, então não é digitalizado automaticamente pelo NMAP. Útil para serviços como SSH ou RDP, que são continuamente digitalizados em suas portas padrão. Exemplo: # habu.nmap.excluded 58567 Opções: -L Porta mais baixa do alcance inteiro a considerar -H Porta mais alta da faixa inteira a considerar -Help Mostra esta mensagem e saída.
Uso: Habu.nmap.open [Opções] Scanfile Leia um relatório do NMAP e imprima as portas abertas. Imprima as portas que foram resultado de leitura aberta do NMAP gerado saída. Você pode usá -lo para reutilizar rapidamente a lista de portas para a entrada de outros ferramentas. Suporta e detecta os 3 formatos de saída (NMAP, GNMAP e XML) Exemplo: # Habu.nmap.open Ontantier.nmap 22,80.443 Opções: -p [tcp | udp | sctp] O protocolo (default = tcp) -Help Mostra esta mensagem e saída.
Uso: Habu.nmap.ports [Opções] Scanfile Leia um relatório do NMAP e imprima as portas testadas. Imprima as portas que foram testadas lendo a saída NMAP gerada. Você pode usá -lo para reutilizar rapidamente a lista de portas para a entrada de outros ferramentas. Suporta e detecta os 3 formatos de saída (NMAP, GNMAP e XML) Exemplo: # Habu.nmap.ports Ontantier.nmap 21,22,23,80,443 Opções: -p [tcp | udp | sctp] O protocolo (default = tcp) -Help Mostra esta mensagem e saída.
Uso: Habu.Protoscan [Opções] IP Envie pacotes IP com conteúdo de campo de protocolo diferente para adivinhar qual camada 4 protocolos estão disponíveis. A saída mostra quais protocolos não geram um 'protocolo-ingressável' Resposta do ICMP. Exemplo: $ sudo python cmd_ipscan.py 45.77.113.133 1 ICMP 2 IGMP 4 iPencap 6 TCP 17 UDP 41 IPv6 47 GRE 50 esp 51 AH 58 IPv6_ICMP 97 Etherip 112 VRRP 115 L2TP 132 SCTP 137 MPLS_IN_IP Opções: -i interface de texto para usar -T Tempo limite inteiro para cada sonda (padrão: 2 segundos) -Todas as sondas todos os protocolos (padrão: definido em /etc /protocolos) -v saída detalhada -Help Mostra esta mensagem e saída.
Uso: Habu.server.ftp [Opções]
Servidor FTP falso básico, com o único objetivo de roubar credenciais do usuário.
Suporta SSL/TLS.
Exemplo:
# sudo habu.server.ftp--ssl ---slcert /tmp/cert.pem ---ssl-key /tmp/key.pem
Ouvindo na porta 21
Conexão aceita de ('192.168.0.27', 56832)
Credenciais coletadas de 192.168.0.27! Fabian 123456
Opções:
-Um endereço de texto para vincular (padrão: tudo)
-P Inteiro Qual porta usar (padrão: 21)
--SSL Ativar SSL/TLS (padrão: false)
-Arquivo de certificado SSL-Cert Text SSL/TLS
-Arquivo de chave SSL/TLS de texto-chave
-v verbose
-Help Mostra esta mensagem e saída.
Uso: Habu.shodan [Opções] IP Cliente simples da API Shodan. Imprime o resultado do JSON de uma consulta Shodan. Exemplo: $ habu.shodan 216.58.222.36 ASN AS15169 ISP Google HostNames EZE04S06-in-F4.1E100.NET, GRU09S17-IN-F36.1E100.NET country_code nos Region_code CA City Mountain View org google Open_ports TCP/443, TCP/80 Opções: --cache /--no-cache -v saída detalhada --formato [txt | csv | json | nmap] formato de saída -Help Mostra esta mensagem e saída.
Uso: Habu.shodan.query [Opções] Consulta
Cliente simples da API Shodan.
Imprime o resultado do JSON de uma consulta Shodan.
Exemplo:
$ habu.shodan 8.8.8.8
{
"HostNames": [
"Google-public-dns-a.google.com"
],
"country_code": "nós",
"Org": "Google",
"dados": [
{
"ISP": "Google",
"Transporte": "UDP",
"Data": "Recursão: Habiled",
"Asn": "AS15169",
"Port": 53,
"HostNames": [
"Google-public-dns-a.google.com"
]
}
],
"Portos": [
53
]
}
Opções:
-C Desative o cache
-v saída detalhada
-o arquivo de saída de nome de arquivo (padrão: stdout)
-Help Mostra esta mensagem e saída.
Uso: Habu.tcp.flags [Opções] IP Envie pacotes TCP com sinalizadores diferentes e diga quais respostas recebem. Pode ser usado para analisar como as diferentes implementações de pilha TCP/IP e as configurações respondem ao pacote com várias combinações de sinalizadores. Exemplo: # habu.tcp_flags www.portantier.com S -> SA Fs -> sa Fa -> r SA -> r Por padrão, o comando envia todas as combinações possíveis de sinalizador. Você pode Especifique quais bandeiras devem estar presentes (reduzindo a quantidade de combinações possíveis), com a opção '-f'. Além disso, você pode especificar quais sinalizadores você deseja estar presente na resposta pacotes para mostrar, com a opção '-r'. Com o próximo comando, você vê todas as combinações possíveis que têm o Fin (f) Sinalizador e gera uma resposta que contém o sinalizador RST (R). Exemplo: # habu.tcp_flags -f f -r r www.portantier.com Fpa -> r Fspa -> r Fau -> r Opções: -p porta inteira para usar (padrão: 80) -f sinalizadores de texto que devem ser enviados sempre (Padrão: Fuzz com todas as bandeiras) -R filtro de texto por sinalizadores de resposta (padrão: mostre todas as respostas) -v verbose -Primeira parada na primeira resposta que corresponde -Help Mostra esta mensagem e saída.
Uso: Habu.tcp.isn [Opções] IP Crie conexões TCP e imprima os números de sequência inicial do TCP para cada um. $ sudo habu.tcp.isn -c 5 www.portantentier.com 1962287220 1800895007 589617930 3393793979 469428558 Nota: Você pode obter uma representação gráfica (precisa do Matplotlib pacote) usando a opção '-g' para entender melhor a aleatoriedade. Opções: -p porta inteira para usar (padrão: 80) -C inteiro quantos pacotes enviar/receber (padrão: 5) -i interface de texto para usar -g gráfico (requer matplotlib) -v saída detalhada -Help Mostra esta mensagem e saída.
Uso: Habu.tcp.scan [Opções] IP Scanner de porta TCP. Imprima as portas que geraram uma resposta com a bandeira syn ou (se mostrar use -a) Todas as portas que geraram uma resposta. É realmente básico em comparação com o NMAP, mas quem está comparando? Exemplo: # habu.tcp.scan -p 22,23,80.443 -s 1 45.77.113.133 22 S -> SA 80 s -> sa 443 S -> SA Opções: -P Portas de texto para usar (Padrão: 80) Exemplo: 20-23,80,135 -i interface de texto para usar -f sinalizadores de texto para usar (padrão: s) -s TEXT Time between probes (default: send all together) -t INTEGER Timeout for each probe (default: 2 seconds) -a Show all responses (default: Only containing SYN flag) -v Verbose output --help Show this message and exit.
Usage: habu.tcp.synflood [OPTIONS] IP Launch a lot of TCP connections and keeps them opened. Some very old systems can suffer a Denial of Service with this. Reference: https://en.wikipedia.org/wiki/SYN_flood Exemplo: # sudo habu.tcp.synflood 172.16.0.10 ................. Each dot is a packet sent. You can use the options '-2' and '-3' to forge the layer 2/3 addresses. If you use them, each connection will be sent from a random layer2 (MAC) and/or layer3 (IP) address. You can choose the number of connections to create with the option '-c'. The default is never stop creating connections. Note: If you send the packets from your real IP address and you want to keep the connections half-open, you need to setup for firewall to don't send the RST packets. Opções: -i TEXT Wich interface to use (default: auto) -c INTEGER How many packets send (default: infinit) -p INTEGER Port to use (default: 135) -2 Forge layer2/MAC address (default: No) -3 Forge layer3/IP address (default: No) -v Verbose --help Show this message and exit.
Usage: habu.traceroute [OPTIONS] IP TCP traceroute. Identify the path to a destination getting the ttl-zero-during-transit mensagens. Note: On the internet, you can have various valid paths to a device. Exemplo: # habu.traceroute 45.77.113.133 IP / ICMP 192.168.0.1 > 192.168.0.5 time-exceeded ttl-zero-during-transit / IPerror / TCPerror IP / ICMP 10.242.4.197 > 192.168.0.5 time-exceeded ttl-zero-during-transit / IPerror / TCPerror / Padding IP / ICMP 200.32.127.98 > 192.168.0.5 time-exceeded ttl-zero-during-transit / IPerror / TCPerror / Padding . IP / ICMP 4.16.180.190 > 192.168.0.5 time-exceeded ttl-zero-during-transit / IPerror / TCPerror . IP / TCP 45.77.113.133:http > 192.168.0.5:ftp_data SA / Padding Note: It's better if you use a port that is open on the remote system. Opções: -p INTEGER Port to use (default: 80) -i TEXT Interface to use --help Show this message and exit.
Usage: habu.upgrade [OPTIONS] Upgrade habu (from https://github.com/fportantier/habu) Opções: --help Show this message and exit.
Usage: habu.usercheck [OPTIONS] USERNAME
Check if the given username exists on various social networks and other
popular sites.
$ habu.usercheck portantier
{
"aboutme": "https://about.me/portantier",
"disqus": "https://disqus.com/by/portantier/",
"github": "https://github.com/portantier/",
"ifttt": "https://ifttt.com/p/portantier",
"lastfm": "https://www.last.fm/user/portantier",
"medium": "https://medium.com/@portantier",
"pastebin": "https://pastebin.com/u/portantier",
"pinterest": "https://in.pinterest.com/portantier/",
"twitter": "https://twitter.com/portantier",
"vimeo": "https://vimeo.com/portantier"
}
Opções:
-c Disable cache
-v Verbose output
-w Open each valid url in a webbrowser
--help Show this message and exit.
Usage: habu.version [OPTIONS] Opções: --help Show this message and exit.
Usage: habu.vhosts [OPTIONS] HOST
Use Bing to query the websites hosted on the same IP address.
$ habu.vhosts www.telefonica.com
www.telefonica.com -> 212.170.36.79
[[
'www.telefonica.es',
'universitas.telefonica.com',
'www.telefonica.com',
]
Opções:
-c Disable cache
-p INTEGER Pages count (Default: 10)
-f INTEGER First result to get (Default: 1)
--help Show this message and exit.
Usage: habu.virustotal [OPTIONS] INPUT
Send a file to VirusTotal https://www.virustotal.com/ and print the report
in JSON format.
Note: Before send a file, will check if the file has been analyzed before
(sending the sha256 of the file), if a report exists, no submission will
be made, and you will see the last report.
$ habu.virustotal meterpreter.exe
Verifying if hash already submitted: f4826b219aed3ffdaa23db26cfae611979bf215984fc71a1c12f6397900cb70d
Sending file for analysis
Waiting/retrieving the report...
{
"md5": "0ddb015b5328eb4d0cc2b87c39c49686",
"permalink": "https://www.virustotal.com/file/c9a2252b491641e15753a4d0c4bb30b1f9bd26ecff2c74f20a3c7890f3a1ea23/analysis/1526850717/",
"positives": 49,
"resource": "c9a2252b491641e15753a4d0c4bb30b1f9bd26ecff2c74f20a3c7890f3a1ea23",
"response_code": 1,
"scan_date": "2018-05-20 21:11:57",
"scan_id": "c9a2252b491641e15753a4d0c4bb30b1f9bd26ecff2c74f20a3c7890f3a1ea23-1526850717",
"scans": {
"ALYac": {
"detected": true,
"result": "Trojan.CryptZ.Gen",
"update": "20180520",
"version": "1.1.1.5"
},
... The other scanners ...
},
"sha1": "5fa33cab1729480dd023b08f7b91a945c16d0a9e",
"sha256": "c9a2252b491641e15753a4d0c4bb30b1f9bd26ecff2c74f20a3c7890f3a1ea23",
"total": 67,
"verbose_msg": "Scan finished, information embedded"
}
Opções:
-v Verbose output
--help Show this message and exit.
Usage: habu.web.report [OPTIONS] [INPUT_FILE] Makes a report that includes HTTP headers of websites. Optionally, uses Firefox or Chromium to take a screenshot of the websites. The expected format is one url per line. Creates a directory called 'report' with the content inside. $ echo https://www.portantier.com | habu.web.report Opções: -v Verbose output -s Take a screenshot for each website -b [firefox|chromium-browser] Browser to use for screenshot. --help Show this message and exit.
Usage: habu.web.screenshot [OPTIONS] URL Uses Firefox or Chromium to take a screenshot of the website. $ habu.web.screenshot https://www.portantier.com Opções: -b [firefox|chromium-browser] Browser to use for screenshot. -o TEXT Output file. (default: screenshot.png) --help Show this message and exit.
Usage: habu.whois.domain [OPTIONS] DOMAIN Simple whois client to check domain names. Exemplo: $ habu.whois.domain google.com registrar MarkMonitor, Inc. whois_server whois.markmonitor.com creation_date 1997-09-15 04:00:00 expiration_date 2028-09-14 04:00:00 name_servers ns1.google.com, ns2.google.com, ns3.google.com, ns4.google.com emails [email protected], [email protected] dnssec unsigned org Google LLC country US state CA Opções: --json Print the output in JSON format --csv Print the output in CSV format --help Show this message and exit.
Usage: habu.whois.ip [OPTIONS] IP Simple whois client to check IP addresses (IPv4 and IPv6). Exemplo: $ habu.whois.ip 8.8.4.4 asn 15169 asn_registry arin asn_cidr 8.8.4.0/24 asn_country_code US asn_description GOOGLE - Google LLC, US asn_date 1992-12-01 Opções: --json Print the output in JSON format --csv Print the output in CSV format --help Show this message and exit.