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.

Compilando NetCat sobre Windows

  • 4 Respuestas
  • 3186 Vistas

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

Desconectado CrazyKade

  • *
  • Underc0der
  • Mensajes: 182
  • Actividad:
    0%
  • Reputación 0
  • Я только знаю что ничего не знаю!
    • Ver Perfil
« en: Agosto 14, 2013, 10:38:51 pm »
Hola a todos. Por motivos que no vienen al caso, me vi en la necesidad de sentarme a estudiar el código fuente de nuestro querido amigo NetCat (nc.exe), ya que necesitaba ver cómo hobbit, (el programador que desarrolló esta gran herramienta), se las arregló para manejar los pipes del crudo lenguaje C en el módulo Gaping Security Hole que todos seguramente ya conocemos bien.
Bueno, pues Netcat fue desarrollada en 1996 por Hobbit usando lenguaje C sobre Unix. Con el tiempo fue portada a Windows y Mac Os X.
Hoy, logré hacerme con una versión del código fuente de Netcat portado a ANSI C para Windows NT. Me lo bajé sin pensarlo dos veces, ya que estas cosas valen oro. Una vez descargado el código fuente me dispuse a compilarlo directamente utilizando el compilador gcc que viene dentro del paquete MinGW. Grande fue mi sorpresa al ver la cantidad de errores de compilación. Ahí me di cuenta que parte del código estaba obsoleto ya que por ejemplo habían llamadas a funciones como _sleep() que en las versiones modernas del compilador han sido reemplazadas. Uno a uno fui fixeando los errores en el código y reemplazando los métodos antiguos por sus correspondientes en la actualidad. Cuando terminé al fin pude compilar el código y obtener mi tan preciado nc.exe. Ni bien lo ejecuté me encontré con otra gran sorpresa. Las opciones –t (telnet) y –e (Gaping Security Hole) no estaban. Dije: ¿Qué coño? Ahí recordé que, si bien aún no me había puesto a estudiar el código en profundidad, sí había notado, mientras lo iba fixeando, que no había visto referencias ni implementaciones de tales métodos. Empecé a buscar bien entre los archivos de código fuente y veo que hay 2 archivos que no tuve en cuenta al compilar.  Estos son: doexec.c y getopt.c. La biblioteca getopt, para los que programamos en C ya la debemos super conocer, para los que no simplemente diré que es una biblioteca que nos facilita la vida a quienes programamos para consola, ya que sus métodos nos permiten separar los parámetros de los argumentos.
El tema acá estaba en la biblioteca doexec.c, una biblioteca que no había visto nunca en mi vida. Empiezo a husmear dentro del código de doexec.c y al cabo de unos minutos la verdad se me reveló como el Nirvana se le revela al monje. Este Hobbit pillo se dio cuenta del peligro de estas opciones usadas en manos equivocadas, y decidió separarlas del programa principal para así evitar que cualquier lamersito de jardín de infantes que por esos milagros de la vida lograse compilar el código, no tuviera a su alcance tales opciones.
Enseguida entendí que lo que estaba viendo no era más que una librería que habría que compilar a código objeto, para después junto con el código objeto de getopt.c poderlas linkear con netcat.c y así sí poder obtener el ejecutable completo con las opciones -t y -e.
Una vez que compilé todo junto, obtuve mi nc.exe completito. El programa funciona de mil maravillas y me trae mucha nostalgia de finales de los 90’s.  Después de haber estado casi todo el día leyendo el increíble código fuente que escribió Hobbit, no puedo no comentar ciertas impresiones y sensaciones que he tenido.
1)   Este tío Hobbit sabía bien lo que hacía desde el principio. Su manejo de habilidades avanzadas en el lenguaje C como pipes, flags de compilación, sockets, etc es simplemente brillante.
2)   La prolijidad del código, los comentarios y la identación son perfectos. Uno realmente disfruta al leer un código así ya que es un placer a la vista. Además se entiende hasta el mínimo detalle.
3)   Para ser un código del año 96 es realmente increíble.
Para quienes quieran repetir mi experiencia, les dejo el código fuente terminado, portado, arreglado y listo para compilar en el siguiente enlace:

Link: No tienes permisos para ver links. Registrate o Entra con tu cuenta

Van a necesitar un compilador de C. Yo les recomiendo que instalen MinGW.

Link MinGW: No tienes permisos para ver links. Registrate o Entra con tu cuenta

Pasos de compilación:

1)   Instalamos MinGW en C:\MinGW
2)   Lo agregamos al path: (desde la consola) -> PATH= %PATH%; C:\MinGW\bin
3)   Desde la consola, nos situamos en la carpeta donde está el código fuente de netcat y compilamos así:

gcc -c -DTELNET -DGAPING_SECURITY_HOLE getopt.c       
                                             
gcc -c -DTELNET -DGAPING_SECURITY_HOLE doexec.c   
                                                   
gcc -c -DTELNET -DGAPING_SECURITY_HOLE netcat.c
                                                                                                                       
gcc  getopt.o doexec.o netcat.o  -o nc.exe    -Wl,-Lc:\MinGW\lib,-lkernel32,-luser32,-lwinmm,-lws2_32

Espero prueben y se maravillen ustedes mismos. Saludos!

CrazyKade
« Última modificación: Agosto 14, 2013, 10:45:58 pm por CrazyKade »

Desconectado CodePunisher

  • *
  • Underc0der
  • Mensajes: 58
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Root Security
    • Email
  • Skype: code.punisher
« Respuesta #1 en: Agosto 14, 2013, 11:28:39 pm »
Hey te pasaste buen amigo CrazyKade, si que tas bien loquillo.
Sigue adelante éxitos

Desconectado CrazyKade

  • *
  • Underc0der
  • Mensajes: 182
  • Actividad:
    0%
  • Reputación 0
  • Я только знаю что ничего не знаю!
    • Ver Perfil
« Respuesta #2 en: Agosto 14, 2013, 11:30:32 pm »
No tienes permisos para ver links. Registrate o Entra con tu cuenta
Hey te pasaste buen amigo CrazyKade, si que tas bien loquillo.
Sigue adelante éxitos

Gracias hermano! A sacarle el jugo!

Desconectado Anton

  • *
  • Underc0der
  • Mensajes: 84
  • Actividad:
    0%
  • Reputación 0
  • Aprendiendo Sin Desaprender
    • Ver Perfil
  • Skype: vasil.drach
« Respuesta #3 en: Agosto 15, 2013, 10:19:57 am »
Muy bueno! Me gusto mucho tu post! :D
Никогда не доверяй никому.

Desconectado CrazyKade

  • *
  • Underc0der
  • Mensajes: 182
  • Actividad:
    0%
  • Reputación 0
  • Я только знаю что ничего не знаю!
    • Ver Perfil
« Respuesta #4 en: Agosto 15, 2013, 10:21:24 am »
No tienes permisos para ver links. Registrate o Entra con tu cuenta
Muy bueno! Me gusto mucho tu post! :D

Gracias hermano!!!!

 

¿Te gustó el post? COMPARTILO!



Sniffer para windows "RawCap"

Iniciado por s747ik

Respuestas: 1
Vistas: 2123
Último mensaje Junio 12, 2011, 04:08:03 pm
por staRgan
Curso Metasploit - Part 1 - Hablemos sobre metasploit

Iniciado por puntoCL

Respuestas: 2
Vistas: 3069
Último mensaje Agosto 10, 2017, 04:32:55 pm
por puntoCL
Obtener contraseña (admin) de windows con metasploit usando el módulo phish_windows_credentials

Iniciado por LionSec

Respuestas: 8
Vistas: 3122
Último mensaje Mayo 25, 2015, 02:49:25 pm
por MagoAstral
Linux v.s Windows. ¿Cual es mejor para hacking.?

Iniciado por Cl0udswX

Respuestas: 12
Vistas: 4436
Último mensaje Abril 05, 2014, 08:01:32 pm
por Cl0udswX
Usando Javascript para ejecutar tareas en Windows [cmd]

Iniciado por Jimeno

Respuestas: 4
Vistas: 10606
Último mensaje Octubre 12, 2014, 07:10:26 pm
por syskc0