enchufado
   RSS
#
Portscan: Un escaner de puertos en C (Programación) 2007-11-07 22:13:53

Con este nombre tan original dejo por aquí otro de mis experimentos, esta vez para refrescar un poco el olvidado C y aprender alguna que otra cosita. Se trata de un escaner de puertos, a lo nmap, pero en versión mini y cutre ;)

La forma de ejecutarlo sería algo como...

./portscan5 hostname|ip [PARAMS]

... dónde los parámetros pueden ser ninguno, uno o varios de los que siguen:

  • -pN:M Establece el rango de puertos. Si no se especifica, el scan se realiza sobre los puertos privilegiados Unix (0-1024).
  • -fN Activa el flood mode.
  • -gN Define un time gap entre puertos. El por defecto es de 1/4 de segundo entre prueba de puerto y puerto.
  • -h Muestra la ayuda.

Lo he metido todo en un sólo archivo para facilitar su gestión: no pretendo hacer nada serio (al menos nunca ha sido la intención inicial). Así que para compilarlo bastará con un gcc portscan5.c -lpthread -o portscan5.

En resumen, la aplicación realiza un escaneo de puertos en modo no-silencioso (mediante el establecimiento de conexión), aunque posteriormente se puede realizar la función de flood de modo silencioso (únicamente el primer paso del 3-way handshake, el saludo SYN). No está terminado, dado que falta implementar la funcionalidad del flood no-silencioso (en realidad es la misma que la usada para hacer el escaneo de puertos), pero es suficiente para lo que andaba buscando: repaso de C, toma de contacto con las funciones/protocolos de red y hilos. Eso sí, la aplicación es totalmente funcional.

Archivos:

  1. Código fuente (md5sum: 2535469212775e36e7cb05e3bf19c273)
  2. Binario (md5sum: 893bfbbbca868732cddf0e8a6c86fcfc)

Comentarios (9)


Volver al indice

login, admin, form, register