puerto - Filtrar por proceso/PID en Wireshark
wireshark filtrar por dominio (10)
En Windows hay una compilación experimental que hace esto, como se describe en la lista de correo, Filtrar por nombre de proceso local
En algunos casos, no puede filtrar por id de proceso. Por ejemplo, en mi caso, necesitaba olfatear el tráfico de un proceso. Pero encontré en su máquina de destino de config la dirección IP, agregué el filtro ip.dst==someip
y voila. No funcionará en ningún caso, pero para algunos es útil.
En caso de que esté buscando una forma alternativa y el entorno que utiliza es Windows, el Network Monitor 3.3 de Microsoft es una buena opción. Tiene la columna de nombre del proceso. Puede agregarlo fácilmente a un filtro usando el menú contextual y aplicar el filtro. Como de costumbre, la GUI es muy intuitiva ...
Esto es algo importante que se puede hacer para monitorear a donde ciertos procesos intentan conectarse, y parece que no hay una manera conveniente de hacerlo en Linux. Sin embargo, varias soluciones son posibles, por lo que creo que vale la pena mencionarlas.
Hay un programa llamado nonet que permite ejecutar un programa sin acceso a Internet (tengo configurados la mayoría de los nonet programas en mi sistema). Utiliza setguid para ejecutar un proceso en grupo nonet y establece una regla iptables para rechazar todas las conexiones de este grupo.
Actualización: ahora uso un sistema aún más simple, puedes tener fácilmente una configuración legible de iptables con ferm, y simplemente usar el programa sg
para ejecutar un programa con un grupo específico. Iptables también te permite redirigir el tráfico para que incluso puedas enrutarlo a una interfaz separada o un proxy local en un puerto que te permita filtrar en wireshark o LOG los paquetes directamente desde iptables si no quieres deshabilitar todo Internet mientras tú están revisando el tráfico.
No es muy complicado adaptarlo para ejecutar un programa en un grupo y cortar todo el resto del tráfico con iptables para la vida útil de la ejecución y luego solo se puede capturar el tráfico de este proceso.
Si alguna vez vuelvo a escribirlo, publicaré un enlace aquí.
En otra nota, siempre puedes ejecutar un proceso en una máquina virtual y oler la interfaz correcta para aislar las conexiones que hace, pero esa sería una solución bastante inferior ...
No veo cómo. El PID no llega al cable (en términos generales), más Wireshark le permite ver lo que hay en el cable, posiblemente todas las máquinas que se comunican a través del cable. Las ID de proceso no son únicas en diferentes máquinas, de todos modos.
Obtenga el número de puerto usando netstat
:
netstat -b
Y luego usa el filtro Wireshark:
tcp.port == portnumber
Puede hacer coincidir los números de puerto desde wireshark hasta los números de puerto de, por ejemplo, netstat , que le indicará el PID de un proceso que se escucha en ese puerto.
Puede verificar los números de puerto con estos ejemplos de comando en wireshark: -
tcp.port == 80
tcp.port == 14220
Si desea seguir una aplicación que aún debe iniciarse, entonces es ciertamente posible:
- Instalar la ventana acoplable (ver https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/ )
- Abra una terminal y ejecute un pequeño contenedor:
docker run -t -i ubuntu /bin/bash
(cambie "ubuntu" a su distribución favorita, esto no tiene que ser el mismo que en su sistema real) - Instale su aplicación en el contenedor de la misma forma que la instalaría en un sistema real.
- Inicie wireshark en su sistema real, vaya a capturar> opciones. En la ventana que se abrirá verá todas sus interfaces. En lugar de elegir
any
,wlan0
,eth0
, ... elija la nueva interfaz virtualdocker0
endocker0
lugar. - Comience a capturar
- Comience su aplicación en el contenedor
Es posible que tenga algunas dudas sobre la ejecución de su software en un contenedor, por lo que aquí están las respuestas a las preguntas que probablemente desee formular:
- ¿Funcionará mi aplicación dentro de un contenedor? Casi con certeza sí, pero es posible que necesite aprender un poco sobre docker para que funcione
- ¿No se ejecutará lentamente mi aplicación? Despreciable. Si su programa es algo que ejecuta cálculos pesados durante una semana, ahora puede tomar una semana y 3 segundos
- ¿Qué pasa si mi software u otra cosa se rompe en el contenedor? Eso es lo bueno de los contenedores. Todo lo que se ejecuta dentro solo puede romper el contenedor actual y no puede dañar el resto del sistema.
Use Microsoft Message Analyzer v1.4
Navegue a ProcessId desde el selector de campo.
Etw
-> EtwProviderMsg
--> EventRecord
---> Header
----> ProcessId
Haga clic derecho y Agregar como columna