Proceso de Windows y captura de socket

1

Estoy viendo alguna actividad sospechosa en el servidor web de Windows 2008. Se están realizando algunos intentos de conexión desde el servidor a direcciones IP externas sin ninguna razón legítima.

Los intentos de conexión son raros, duran solo unos segundos. ¿Qué puedo usar o cómo puedo encontrar qué proceso en el servidor ha creado el socket? No dura mucho tiempo, así que estoy pensando en algo que tomará una instantánea de los procesos en esos pocos segundos, además de darme el proceso real o el archivo ejecutable real / dll que abrió el socket. Se puede pensar en una vista de TCP interna y en la captura de paquetes, pero son difíciles ya que no sé cuándo se realizará el próximo intento de conexión. ¿Alguna idea mejor?

    
pregunta Kapish M 10.08.2012 - 12:51
fuente

2 respuestas

3

Sugiero ejecutar Network Monitor (desde Microsoft mismos) continuamente, con un gran búfer . NM trabaja con un búfer de RAM para guardar los datos capturados, y cuando el búfer está lleno, los paquetes antiguos se descartan; para que puedas dejarlo funcionar sin supervisión. Luego espera a que ocurra una de las conexiones sospechosas; en ese punto, detenga la captura y guarde la traza.

Esto le dará un poco de contexto (si su búfer es lo suficientemente amplio, unos minutos o incluso horas de tráfico anterior). Además, NM intenta vincular los intercambios de datos con los procesos (e incluso cuando falla, puede utilizar la traza para comprender qué estaba sucediendo en la máquina en ese momento preciso, y así identificar al posible culpable).

También parece que NM puede ser automatizado a en cierta medida .

    
respondido por el Thomas Pornin 10.08.2012 - 21:30
fuente
1

Eso también me preocuparía! Una forma en que podría atacar esto es usar netstat -rnb desde la línea de comandos, la -b mostrará el archivo ejecutable que ha abierto cada conexión. Como las sesiones probablemente duren poco tiempo, es probable que no tenga tiempo para ejecutar esto manualmente, por lo que tendrá que escribir algo. Aquí hay 2 maneras en que puede hacer esto:

  • método súper fácil: escriba un script simple que simplemente canalizará la salida a un archivo una y otra vez hasta que lo interrumpa. El comando sería "netstat -rnb > > file.txt". La forma más sencilla de hacer esto sería crear un archivo por lotes, digamos netst.bat, y tener 2 líneas en él:

netstat -rnb > > archivo.txt

netst.bat

Las desventajas de este método son que el archivo se volverá muy grande muy rápidamente, tendrá que monitorearlo de cerca para asegurarse de que no se le escape de las manos, o puede usar la cadena de selección de powershell para filtrar en el puerto Número si es consistente. Una vez que haya visto el tráfico sospechoso, simplemente puede buscar en el archivo la dirección IP que vio, y el ejecutable debería estar allí a menos que quien lo haya escrito sea extremadamente inteligente.

  • la otra forma, un poco más complicada, sería escribir un script que ejecute netstat -rnb una y otra vez buscando el tráfico que ha visto y detenerse cuando lo ve, generando la información que está buscando. Lo único es que necesita saber lo que está buscando, si hay una amplia gama de direcciones IP y puertos, esto puede no ser práctico, y se supone que tiene conocimientos de scripting.
respondido por el GdD 10.08.2012 - 13:28
fuente

Lea otras preguntas en las etiquetas