Profissionais de cibersegurança muito provavelmente em certos momentos deverão fazer uma analise de trafego a fim de detectar se existe na rede algum tráfego ou eventos maliciosos.
Se você estiver testando um sistemas NIDS, ou fazendo um estudo sobre threat hunting com ferramentas de análise de tráfego, você pode fazer o uso do testmyNIDS que irá gerar eventos “maliciosos) de forma segura.
O projeto testmyNIDS possui duas partes:
- Um site – que é usado para realizar alguns testes/arquivos. Ele também manterá subdomínios e registros DNS para quando o teste via DNS for necessário.
- Um script – que executa/simula a interação com o site ou com sites de terceiros, destinado a ser executado no cliente para o qual você deseja testar a cobertura do seu sensor NIDS ou seu estudo de analise de pacotes.
https://github.com/3CORESec/testmynids.org
Você pode baixar script ou até mesmo executar diretamente ele pela linha de comando
curl -sSL https://raw.githubusercontent.com/3CORESec/testmynids.org/master/tmNIDS -o /tmp/tmNIDS && chmod +x /tmp/tmNIDS && /tmp/tmNIDS
Ao todo temos 10 interações que podemos usar:
Test ID | Nome | Protocolo usado |
---|---|---|
1 | Linux UID | HTTP |
2 | Basic Authentication over clear text | HTTP |
3 | HTTP Malware User-Agent | HTTP |
4 | Known bad CA’s | TLS |
5 | Tor .onion response and random Tor nodes connection | DNS & TLS |
6 | EXE download over HTTP (from AWS S3) & Packed Executable | HTTP |
7 | PDF download over HTTP with Embedded File | HTTP |
8 | Simulate an outbound SSH scan | SSH |
9 | Miscellaneous (TLD’s, Sinkhole, DDNS, etc) domains | DNS |
10 | MD5 in TLS Certificate | TLS |
99 | CHAOS! Run all tests! | ☝️ ALL |
Abaixo um exemplo de uma captura de pacote usando o teste numero 6 – “EXE or DLL download over HTTP”
Você pode salvar o PCAP e então iniciar a analise off-line.
Threat Hunting com tshark (wireshark)
Eu particularmente gosto do tshark, que é a linha de comando do wireshark e eu recomendo fortemente o tshark cheat sheet ou o https://tshark.dev/analyze/packet_hunting/packet_hunting/
Nos exemplos abaixo eu rodei o script, capturei os pacotes e salvei para uso posterior.
Listar os ips e contar os acessos
Importantíssimo no hunting descobrir excesso de conexões e iniciar a investigação pelos endereços mais acessados.
tshark -r tmNIDS.pcap -z ip_hosts,tree
Listar os domínios
Neste exemplo será retornada uma lista enorme de endereços de domínio na captura.
tshark -r tmNIDS.pcap -Y "dns" -Tfields -e "ip.src" -e "dns.flags.response" -e "dns.qry.name"
Usando o grep podemos filtrar por exemplo usando o “onion” e determinar se há conexões TOR
tshark -r tmNIDS.pcap -Y "dns" -Tfields -e "ip.src" -e "dns.flags.response" -e "dns.qry.name" | grep "onion"
Listar as requisições http e qual o browser (hunting HTTP Malware User-Agent)
Note que o mais comum para o usuário é usar o Chrome, Firefox, IE, Edge, mas não o curl ou requisições do powershell.
tshark -r tmNIDS.pcap -Y "http.request" -Tfields -e "ip.src" -e "http.user_agent" | uniq
Filtrar por http request (hunting EXE, DLL, PDF)
tshark -r tmNIDS.pcap 'tcp.port==80 && (http.request.method == "GET" || http.request.method=="HEAD" || http.request.method=="POST" )' | grep 'exe|pdf|dll'
Listar conexões com certificados não válidos.
tshark -r tmNIDS.pcap -Y “tls.alert_message.desc == 48”
Arkime
Você pode importar também o PCAP ou até em tempo real usando o Análise de PCAP com Arkime
Seja o primeiro a comentar