Algunos han hecho rats en el foro pero mi pregunta es, hablando tecnicamente como han hecho posible que un rat pueda enviar por ejemplo un archivo y a la vez captura de pantalla,
cuantos sockets han usado en el server?
Hablo en todos los lenguajes, podrian explicarlo via seudocodigo?
Lo que se suele hacer es crear una matriz (array) de sockets, y se van cargando según necesidad, por ejemplo, mantienes la conexión en el puerto 900, y usas el 901 para enviar y recibir archivos, el puerto 902 para captura de pantalla, y el 903 para comandos y demás datos en texto plano (que tarda poco en enviarse). Si el lenguaje en el que estás programando no soporta array de sockets, pues simplemente calculas cuántos vas a necesitar y los vas usando (ya cargados).
github.com/Slek-Z
pero y si deseara usar um solO puerto?
A ver si entendi ...seia algo asi como que mi remoto esta conectado con
el socked xxx.xxx.xx.x1 usando el puerto 900
clickeo captura y se conecta xxx.xxx.xx.x2 al 901 y me envia la captura por ese puerto
algo asi como
winsocker(x)
select case X
case captute
1
case archivo
2
Estoy mas o menos ? o mejor tomo la medicacion
saludos Slek
el socked xxx.xxx.xx.x1 usando el puerto 900
clickeo captura y se conecta xxx.xxx.xx.x2 al 901 y me envia la captura por ese puerto
algo asi como
winsocker(x)
select case X
case captute
1
case archivo
2
Estoy mas o menos ? o mejor tomo la medicacion
saludos Slek

Uhmm, no sé si se puede. Lo único que se me ocurre es añadir una pequeña cabecera al inicio de los datos que se quieren enviar, por ejemplo "[FILE]" para cuando mandes un archivo, "[CAP]" para captura, y "[CMD]" para un comando. Pero es bastante ineficiente, porque tienes que hacer muchas comprobaciones y el añadir esa cabecera al inicio hará que todo vaya más lento. Además, será bastante inestable, porque si envías dos cosas a la vez (o muy seguidas, es decir, antes de que se termine de enviar) o crashea, o se pierde info (al menos en VB se pierde). Por eso se suele usar otros puertos para distintas operaciones, y un socket nuevo para cada conexión.adwind escribió:pero y si deseara usar um solO puerto?
Lo que digo es que, si tienes la conexión con el remoto en el socket sckServer, puerto 900, le envías al remoto un comando por ese socket y puerto, y el server iniciará una nueva conexión por el puerto 901, usando otro socket (por ejemplo sckCapture), y el cliente acepta esa nueva conexión con otro socket distinto al sckServer, por el puerto 901.xserpientex escribió:A ver si entendi ...seia algo asi como que mi remoto esta conectado con
el socked xxx.xxx.xx.x1 usando el puerto 900
clickeo captura y se conecta xxx.xxx.xx.x2 al 901 y me envia la captura por ese puerto
algo asi como
winsocker(x)
select case X
case captute
1
case archivo
2
Estoy mas o menos ? o mejor tomo la medicacion
saludos Slek
Espero que se entienda,
Saludos!
github.com/Slek-Z
Entonces por que el cybergate, bifrost usan un solo puerto y pueden hacer varias cosas a la vez :S
Y son rapidos. :S
Y son rapidos. :S
Tambien tuve esa duda cuando empezé a programar mi RAT y la solucion que se me ocurrio fue crear 2 conexiones hacia el mismo puerto.
la primera conexion era la principal y cuando esta conexion esta hecha el cliente envia la orden al server para que se ejecute una segunda conexión que se usara para la captura de pantalla, tranferencia de archivos y todas las cosas que consuman mas ancho de banda, de este modo puedes tener mas de una conexion a la vez y hacer varias cosas al tiempo, ademas en C# y supongo que en java tenemos la facilidad de crear threads o hilos independientes para cada subproceso lo que facilita el trabajo.
Saludos y suerte con la creacion del RAT
la primera conexion era la principal y cuando esta conexion esta hecha el cliente envia la orden al server para que se ejecute una segunda conexión que se usara para la captura de pantalla, tranferencia de archivos y todas las cosas que consuman mas ancho de banda, de este modo puedes tener mas de una conexion a la vez y hacer varias cosas al tiempo, ademas en C# y supongo que en java tenemos la facilidad de crear threads o hilos independientes para cada subproceso lo que facilita el trabajo.
Saludos y suerte con la creacion del RAT
Si ya capte la idea jajaja thanks bro.satyr90 escribió:Tambien tuve esa duda cuando empezé a programar mi RAT y la solucion que se me ocurrio fue crear 2 conexiones hacia el mismo puerto.
la primera conexion era la principal y cuando esta conexion esta hecha el cliente envia la orden al server para que se ejecute una segunda conexión que se usara para la captura de pantalla, tranferencia de archivos y todas las cosas que consuman mas ancho de banda, de este modo puedes tener mas de una conexion a la vez y hacer varias cosas al tiempo, ademas en C# y supongo que en java tenemos la facilidad de crear threads o hilos independientes para cada subproceso lo que facilita el trabajo.
Saludos y suerte con la creacion del RAT
El cliente recibirá una conexion y dirá tu eres una conexion de captura de pantalla asi que te procesare diferente, tu eres una conexion de serverprincipal vamos te mostrare en la tabla, etc.
THANKS BRO eso era lo que queria que explicarán saludos.
Que bueno que te sirva la info, no se como funcionaran los demas Rats pero por lo menos esa fue la solucion que se me ocurrio para solucionar el problemaadwind escribió:Si ya capte la idea jajaja thanks bro.satyr90 escribió:Tambien tuve esa duda cuando empezé a programar mi RAT y la solucion que se me ocurrio fue crear 2 conexiones hacia el mismo puerto.
la primera conexion era la principal y cuando esta conexion esta hecha el cliente envia la orden al server para que se ejecute una segunda conexión que se usara para la captura de pantalla, tranferencia de archivos y todas las cosas que consuman mas ancho de banda, de este modo puedes tener mas de una conexion a la vez y hacer varias cosas al tiempo, ademas en C# y supongo que en java tenemos la facilidad de crear threads o hilos independientes para cada subproceso lo que facilita el trabajo.
Saludos y suerte con la creacion del RAT
El cliente recibirá una conexion y dirá tu eres una conexion de captura de pantalla asi que te procesare diferente, tu eres una conexion de serverprincipal vamos te mostrare en la tabla, etc.
THANKS BRO eso era lo que queria que explicarán saludos.