Lista de puertos abiertos en Android

¿Hay alguna manera, en un dispositivo Android no rooteado, de ver una lista de qué aplicaciones están escuchando en qué puerto? ¿O incluso una forma de ver si una aplicación está escuchando en un puerto específico?

¿Puedes nmap desde una computadora diferente?
@roxan El problema con eso es que necesito saber específicamente qué aplicación está usando un puerto. He escrito 5 aplicaciones que escuchan todas en el mismo puerto y, de alguna manera, una de ellas no la cierra y necesito saber cuál(es).

Respuestas (5)

Pude ver qué aplicación tenía un puerto abierto usando el conocimiento estándar de Linux.

Instale terminal emulatoro haga adb shelly ejecute lo siguiente:

shell@android:/ $ cat /proc/net/tcp                                          
 sl  local_address rem_address   st tx_queue rx_queue tr tm->when retrnsmt   uid  timeout inode  
  0: 0100007F:1C23 00000000:0000 0A 00000000:00000000 00:00000000 00000000  1001        0 2111 1 e22cc000 300 0 0 2 -1  

Lo importante de arriba es:

  • 0100007F:1C23 escuchar dirección IP:puerto en notación hexadecimal, aquí 127.0.0.1:7203
  • 00000000:0000 dirección remota vacía (escuchando)
  • 1001 uid de la aplicación

Puede asignar la lista de uid a las aplicaciones a través de ¿Cómo puedo encontrar el nombre de la aplicación por UID?

Sin embargo, no enumera todas las aplicaciones. Escaneo mi dispositivo en wifi: tiene 2 puertos abiertos, pero en ese archivo no hay filas que correspondan a esos puertos.

Instale el monitor del sistema operativo . Enumerará todos los puertos abiertos.

Si está utilizando una conexión de datos móviles, no tiene que preocuparse porque no debería poder abrir puertos (al menos yo no).

Si está conectado a wi-fi, puede abrir puertos. Luego, solo necesita una computadora que esté conectada a la misma red e instale nmap en ella y haga un escaneo de puertos, pero primero debe averiguar la IP local de su teléfono ( no yendo a, por ejemplo, whatsmyip.com). Debería poder encontrar su IP desde su configuración.

Para ejecutar el escaneo de puertos en Linux, solo tiene que escribir: nmap (la ip de su teléfono).

Para enumerar los puertos TCP y UDP:

ss -lntup

Siempre he usado netstat ya que está disponible en casi todas las versiones de Android.

netstat -n 

Enumerará los sockets de Unix y de la capa de transporte y sus estados sin dns inversos.