comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Buscar el puerto de escucha mediante el /proc

  • 6 Respuestas
  • 2949 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado vjnario

  • *
  • Underc0der
  • Mensajes: 3
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« en: Enero 31, 2013, 07:00:21 am »
Mediante el /proc podemos obtener la misma información que obtenemos con muchos binarios, únicamente que tenemos la información más esparcida y sin tratar.
Vamos a ver cómo obtener la información de conexiones y puertos en escucha mediante el /proc.
 
Vamos a usar de ejemplo el puerto de escucha de ssh.
 
Código: Bash
  1. netstat -ntpl | grep ssh
tcp        0      0 0.0.0.0:22              0.0.0.0:*               ESCUCHAR    551/sshd
 
Una vez conocido el PID, mediante el listado de descriptores de fichero podemos ver que esta escuchando mediante un socket:
 
Código: Bash
  1. ls -l /proc/551/fd
lrwx------ 1 root root 64 dic 10 10:15 4 -> socket:[7168]
 
En este caso, sabemos que es TCP, por lo que buscamos el identificador de socket en el /proc/net/tcp:
 
Código: Bash
  1. cat /proc/net/tcp | grep 7168
3: 00000000:0016 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 7168 1 efd14000 100 0 0 10 -1
 
Podemos ver el identificador que hemos buscado hacia el final, los dos primeros campos nos muestran origen y destino de la conexión. Podemos traducir el puerto de hexadecimal a decimal con:
 
Código: Bash
  1. echo $((0x0016))
22

Podemos encontrar que significa cada dato de esta linea en la documentación del kernel, en el fichero Documentation/networking/proc_net_tcp.txt.
Para poder obtener el estado de la conexión (campo después de la dirección destino) deberemos buscar en el fichero include/net/tcp_states.h, dónde encontramos:
 
 
TCPF_ESTABLISHED = (1 = 1)
TCPF_SYN_SENT    = (1 = 2)
TCPF_SYN_RECV    = (1  = 3)
TCPF_FIN_WAIT1    = (1 = 4)
TCPF_FIN_WAIT2    = (1 = 5)
TCPF_TIME_WAIT    = (1  = 6)
TCPF_CLOSE    = (1  = 7)
TCPF_CLOSE_WAIT    = (1 = 8)
TCPF_LAST_ACK    = (1  = 9)
TCPF_LISTEN    = (1  = 10)
TCPF_CLOSING    = (1  = 11)
 
Por lo que si hacemos:

Código: Bash
  1. echo $((0x0A))
10

Si miramos la tabla, el puerto esta en Listen.
 
Por lo que podemos resumir en que:
Si la conexión esta en estado ESTABLISHED, obtendremos un 01 como estado.
Si la conexión esta en estado TIME_WAIT, obtendremos un 06 como estado.
Si la conexión esta en estado LISTEN, como en el caso del ejemplo, el estado que marca indica 0A
Por lo tanto, mediante el /proc y mucha paciéncia, podemos obtener los mismos datos que obtenemos mediante netstat o ss.

Espero que os guste el aporte !!!!

 
« Última modificación: Junio 05, 2015, 02:54:49 am por EPSILON »

Desconectado jadcode

  • *
  • Underc0der
  • Mensajes: 4
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #1 en: Enero 31, 2013, 10:07:32 am »
Buen aporte.

Nunca lo hubiera pensado, pero a la final quedo con una duda, si con el netstat sacamos casi los mismos datos para que hacer todo este procedimiento que se hace un poco tedioso si bien el comienzo del procedimiento es invocando este comando.

Saludos y me gusto el aporte.




Desconectado vjnario

  • *
  • Underc0der
  • Mensajes: 3
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #2 en: Enero 31, 2013, 10:28:50 am »
imagina que no va bien el servidor, imagina que en el servidor han cambiado el servicio por ejemplo ssh por ftp ,, imagina que han puesto un rootkit en (netstat), si estudias sistemas necesitas saber el funcionaminto del sistema. Si no sabes el funcionamiento del sistema como vas a saber como funciona una aplicacion,,, si no sabes el funcionamiento de los puertos nunca sabras los secretos que traen... es muy facil hacer click y que todo te lo hagan,, pero si sabes como funciona siempre sera una ventaja....

Desconectado alexander1712

  • *
  • Underc0der
  • Mensajes: 850
  • Actividad:
    0%
  • Reputación -2
    • Ver Perfil
    • El blog del programador
    • Email
« Respuesta #3 en: Febrero 01, 2013, 12:39:22 pm »
muy pero muy interesante, se agradece el aporte!
saludos!

Desconectado neobits

  • *
  • Underc0der
  • Mensajes: 17
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #4 en: Febrero 04, 2013, 11:09:22 pm »
vjnario me encanto!!

De lo mejor que he visto en el foro ^_^

Te aporto!!! Estuve viendo y probando lo que decías y se me ocurrio otra forma y nos ahorramos dos pasos en uno ;)

En ves de usar netstat y agarrar el PID y luego buscar el PID para encontrar el socket que se abre, podemos hacer esto:

Código: No tienes permisos para ver links. Registrate o Entra con tu cuenta
#lsof | grep ssh | grep IPv4
#cat /proc/net/tcp  | grep <[b][i]NumeroDeSocket[/i][/b]>

lsof que nos muestra los archivos usados por el sistema, le pedimos nos muestre lo que tenga que ver con SSH y como ssh crea un socket, pues le pedimos lo que use en IPv4 y ahi aparece el socket luego luego  y ya despues buscarlo como dices en /proc/net/tcp y convertirlo como dices =)

Creo es mas rapidin ;)

Saludos!!!

Desconectado alexander1712

  • *
  • Underc0der
  • Mensajes: 850
  • Actividad:
    0%
  • Reputación -2
    • Ver Perfil
    • El blog del programador
    • Email
« Respuesta #5 en: Febrero 04, 2013, 11:20:23 pm »
gracias neobits por complementar el post

+1karma para ambos.

saludos!

Desconectado Adastra

  • *
  • Underc0der
  • Mensajes: 42
  • Actividad:
    0%
  • Reputación 0
  • Endless Learner
    • Ver Perfil
    • thehackerway
    • Email
« Respuesta #6 en: Marzo 03, 2013, 02:37:52 pm »
Muy buen aporte. Le pongo chincheta!
Un Saludo.
No tienes permisos para ver links. Registrate o Entra con tu cuenta
No tienes permisos para ver links. Registrate o Entra con tu cuenta

"Nunca discutas con un idiota, podria no notarse la diferencia"
Kant.

 

¿Te gustó el post? COMPARTILO!



Realizando un ataque báscio de SQLi mediante metodo POST desde 0

Iniciado por m0rf30

Respuestas: 1
Vistas: 1949
Último mensaje Julio 16, 2016, 05:42:55 am
por Uservzk80
Obteniendo memberlist's mediante fuerza bruta

Iniciado por andergedon

Respuestas: 4
Vistas: 1956
Último mensaje Octubre 21, 2017, 01:46:35 am
por und3rc0de
Control de acceso al puerto 80 (Web) y advertencia via Email

Iniciado por ANTRAX

Respuestas: 0
Vistas: 1570
Último mensaje Octubre 04, 2016, 02:41:25 pm
por ANTRAX
WhoUr herramienta para recopilar informacion de una web y buscar webs a vul sqli

Iniciado por jopcode

Respuestas: 0
Vistas: 1171
Último mensaje Noviembre 30, 2017, 10:57:00 pm
por jopcode