elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Troyano multiconexión
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Troyano multiconexión  (Leído 1,999 veces)
skyweb07

Desconectado Desconectado

Mensajes: 122


The ghost of the network


Ver Perfil
Troyano multiconexión
« en: 8 Septiembre 2008, 02:59 am »

Haber si me explico amigos tengo un troyano de conexión inversa pero el problema es que este solo se conecta a un solo server a la ves...Pues yo quiero que cada ves que que alguien se conecte a mi cliente este mismo lo acepte y lo almacene en una list view como el bifrost...Quisiera que me explicaran como se hace esto y que codes debo utilizar!


En línea

aaronduran2


Desconectado Desconectado

Mensajes: 790



Ver Perfil WWW
Re: Troyano multiconexión
« Respuesta #1 en: 8 Septiembre 2008, 03:18 am »

Busca un poco por el foro. Si utilizas el Winsock, pon la propiedad Index = 0.
Sería algo así:
Código
  1. Dim NumeroConexiones As Integer
  2.  
  3. Private Sub Form_Load()
  4.    WS(0).LocalPort = 6666
  5.    WS(0).Listen
  6.    NumeroConexiones = 0
  7. End Sub
  8.  
  9. Private Sub WS_ConnectionRequest(Index As Integer, ByVal requestID As Long)
  10.    On Error Resume Next
  11.    NumeroConexiones = NumeroConexiones + 1
  12.    WS(Index).Close
  13.    WS(Index).Accept requestID
  14.    Load WS(NumeroConexiones)
  15.    WS(NumeroConexiones).Listen
  16. End Sub
  17.  
  18. Private Sub WS_DataArrival(Index As Integer, ByVal bytesTotal As Long)
  19.    Dim Datos As String
  20.    WS(Index).GetData Datos
  21. End Sub
  22.  

WS sería el nombre del control Winsock.

En la variable NumeroConexiones se almacena la cantidad de conexiones que tenemos establecidas. Luego tienes que realizar las operaciones que tu quieras sobre el WS(NumeroConexiones).

Y como ya te dije, busca por el foro que hay ejemplos.

Saludos.


« Última modificación: 8 Septiembre 2008, 03:47 am por aaronduran2 » En línea

The_Shakah

Desconectado Desconectado

Mensajes: 33


Ver Perfil
Re: Troyano multiconexión
« Respuesta #2 en: 8 Septiembre 2008, 04:22 am »

El tema es que un winsock no puede estar conectado con mas de 1 winsock a la vez. Asique si usas winsocks tenés que hacer un function que cree un nuevo winsock cada vez que alguien se conecte. Para esto podes hacer lo siguiente:

Crear 2 winsocks, un Winsock1 que va a recibir las conexiones y las va a asignar a otro winsock, y el Winsock2 como un Array de controles.

El cuando un cliente trata de conectarse, el winsock1 la recibe, si en el array de controles del winscok2 hay alguno libre, se lo asigne, en caso contrario, crea uno nuevo en el array. Para hacer esto te dejo el siguiente código que es el que uso yo y lo encontre en un manual por la web:


Código:
Public Function NuevoSocket() As Integer

Dim numElementos As Integer 'numero de sockets
Dim i As Integer 'contador

'obtiene la cantidad de Winsocks que tenemos
numElementos = frmMain.Winsock2.UBound

'recorre el arreglo de sockets
For i = 0 To numElementos
'si algun socket ya creado esta inactivo
If frmMain.Winsock2(i).State = sckClosed Then
'utiliza este mismo para la nueva conexion
NuevoSocket = i 'retorna el indice
Exit Function 'abandona la funcion
End If
Next

'si no encuentra sockets inactivos
'crea uno nuevo y devuelve su identidad
Load frmMain.Winsock2(numElementos + 1) 'carga un nuevo socket al arreglo

'devuelve el nuevo indice
NuevoSocket = frmMain.Winsock2.UBound

End Function


Y en el Winsock1, en el sub de ConnectionRequest deberias poner lo siguiente:

Código:
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
Dim numSocket As Integer 'el numero del socket

'Hacemos una llamada a la function NuevoSocket
numSocket = NuevoSocket

'aceptamos la conexion con el nuevo socket
Winsock2(numSocket).Accept requestID
End Sub


El codigo que dejo aaronduran2 hace algo muy parecido, pero no se fija si alguno de los winsocks antes creados esta ahora libre, por lo que sigue acumulando winsocks.

De todos modos el codigo que yo deje tampoco es el perfecto, lo ideal seria que cada vez que una víctima se conecta se cree un nuevo winsock, y cuando se desconecta se borre.

Salu2
« Última modificación: 8 Septiembre 2008, 04:25 am por The_Shakah » En línea

seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: Troyano multiconexión
« Respuesta #3 en: 8 Septiembre 2008, 04:36 am »

sino bajate la clase cSocketMaster que ya viene con un ejemplo de multiconexion y listo...y aparte te ahorras el ocx de winsock...

saludos.
En línea

skyweb07

Desconectado Desconectado

Mensajes: 122


The ghost of the network


Ver Perfil
Re: Troyano multiconexión
« Respuesta #4 en: 8 Septiembre 2008, 15:22 pm »

Gracias amigos por su ayuda voy aver que puedo hacer y despues les cuento!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines