11 de Mayo, 2015
□
General |
Detectando tráfico de conexiones HTTP inversas de Meterpreter (Snort) |
Una de las mejores opciones post-explotación que tiene un atacante es dejar un Meterpreter que se comunique con el servidor C&C a través de una conexión HTTP inversa.
Pero, ¿cómo podemos detectarlo?, ¿cómo podemos ver si existen PCs en
nuestra LAN infectados que estén utilizando este payload?
En el
blog de Didier Stevens se da respuesta a esta casuística. Para ello
analizaba el tráfico de un cliente Meterpreter en modo http inverso,
observando que hace peticiones HTTP regulares al servidor de Metasploit
para comprobar si tiene comandos listos para ser ejecutados. Así se ve
este tipo de tráfico:
Revisando además el código fuente del protocolo HTTP inverso de
Metasploit, la solicitud HTTP POST del cliente siempre tiene un payload
RECV de 4 bytes con una URI con el siguiente patrón: 4 o 5 caracteres
alfanuméricos, un guión bajo y 16 caracteres alfanuméricos. Los 16
caracteres alfanuméricos se eligen al azar, y los 4 o 5 caracteres
alfanuméricos son una especie de checksum.
Y para detectarlo con Snort, Didier nos facilita la siguiente regla:
# Snort rules by Didier Stevens (http://DidierStevens.com)
# 2015/05/01 - 2015/05/10
# Thanks to Nathan Fowler for helping out with performance optimization
# I start numbering my rules at SID 1618000
alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (msg:"Metasploit Meterpreter"; flow:to_server,established; content:"RECV"; http_client_body; depth:4; fast_pattern; isdataat:!0,relative; urilen:23<>24,norm; content:"POST"; pcre:"/^/[a-z0-9]{4,5}_[a-z0-9]{16}/$/Ui"; classtype:trojan-activity; reference:url,blog.didierstevens.com/2015/05/11/detecting-network-traffic-from-metasploits-meterpreter-reverse-http-module/; sid:1618008; rev:1;)
Esta regla de Snort sirve para el tráfico desde la red interna hacia el
exterior. Es necesario cambiar la regla si desea detectar sólo tráfico
interno.
Aquí podéis ver un ejemplo de una alerta:
[**] [1:1618008:1] Metasploit Meterpreter [**]
[Classification: A Network Trojan was detected] [Priority: 1]
05/11-22:26:31.236007 192.168.174.1:54949 -> 192.168.174.137:80
TCP TTL:64 TOS:0x0 ID:21177 IpLen:20 DgmLen:212 DF
***A**** Seq: 0x1B677291 Ack: 0x861008DD Win: 0x7680 TcpLen: 20
[Xref => http://blog.didierstevens.com/2015/05/11/detecting-network-traffic-from-metasploits-meterpreter-reverse-http-module/]
Lo que no está codificado, pero sí parametrizado con una variable,
es la Cadena de agente de usuario. De forma predeterminada, es "Mozilla / 4.0 (compatible; MSIE 6.1; Windows NT)".
Esta cadena parece bastante normal pero sin embargo no lo es: "MSIE 6.1" es bastante raro (según la Wikipedia, no hay Internet Explorer versión 6.1) y "Windows NT" sin número de versión también es raro.
Combinados
forman un patrón con el que también se puede identificar tráfico de
Metasploit Meterpreter fácilmente, pero es una opción que se puede
cambiar por lo que no es 100% fiable.
No obstante, si lo queréis también implementar ahí van las reglas:
# Snort rules by Didier Stevens (http://DidierStevens.com)
# 2015/04/30
# I start numbering my rules at SID 1618000
#alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (msg:"Metasploit User Agent String"; flow:to_server,established; content:"User-Agent|3a| Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)|0d 0a|"; http_header; classtype:trojan-activity; reference:url,blog.didierstevens.com/2015/03/16/quickpost-metasploit-user-agent-strings/; sid:1618000; rev:1;)
alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (msg:"Metasploit User Agent String"; flow:to_server,established; content:"User-Agent|3a| Mozilla/4.0 (compatible; MSIE 6.1; Windows NT)|0d 0a|"; http_header; classtype:trojan-activity; reference:url,blog.didierstevens.com/2015/03/16/quickpost-metasploit-user-agent-strings/; sid:1618001; rev:1;)
#alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (msg:"Metasploit User Agent String"; flow:to_server,established; content:"User-Agent|3a| Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)|0d 0a|"; http_header; classtype:trojan-activity; reference:url,blog.didierstevens.com/2015/03/16/quickpost-metasploit-user-agent-strings/; sid:1618002; rev:1;)
alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (msg:"Metasploit User Agent String"; flow:to_server,established; content:"User-Agent|3a| Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0; SIMBAR={7DB0F6DE-8DE7-4841-9084-28FA914B0F2E}; SLCC1; .N|0d 0a|"; http_header; classtype:trojan-activity; reference:url,blog.didierstevens.com/2015/03/16/quickpost-metasploit-user-agent-strings/; sid:1618003; rev:1;)
alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (msg:"Metasploit User Agent String"; flow:to_server,established; content:"User-Agent|3a| Mozilla/4.0 (compatible; Metasploit RSPEC)|0d 0a|"; http_header; classtype:trojan-activity; reference:url,blog.didierstevens.com/2015/03/16/quickpost-metasploit-user-agent-strings/; sid:1618004; rev:1;)
#alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (msg:"Metasploit User Agent String"; flow:to_server,established; content:"User-Agent|3a| Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/4.0.221.6 Safari/525.13|0d 0a|"; http_header; classtype:trojan-activity; reference:url,blog.didierstevens.com/2015/03/16/quickpost-metasploit-user-agent-strings/; sid:1618005; rev:1;)
alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (msg:"Metasploit User Agent String"; flow:to_server,established; content:"User-Agent|3a| Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)|0d 0a|"; http_header; classtype:trojan-activity; reference:url,blog.didierstevens.com/2015/03/16/quickpost-metasploit-user-agent-strings/; sid:1618006; rev:1;)
#alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (msg:"Metasploit User Agent String"; flow:to_server,established; content:"User-Agent|3a| Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)|0d 0a|"; http_header; classtype:trojan-activity; reference:url,blog.didierstevens.com/2015/03/16/quickpost-metasploit-user-agent-strings/; sid:1618007; rev:1;)
|
|
publicado por
alonsoclaudio a las 18:18 · Sin comentarios
· Recomendar |
|
|
CALENDARIO |
 |
Marzo 2025 |
 |
|
DO | LU | MA | MI | JU | VI | SA | | | | | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
|
|
| |
AL MARGEN |
Escuela de Educacion Secundaria Tecnica N 8 de Quilmes |
(Técnicos en Informática Personal y Profesional) |
| |
|