Mi primer troyano en VB6.0

Iniciado por nhaalclkiemr, 1 Julio 2007, 20:07 PM

0 Miembros y 2 Visitantes están viendo este tema.

nhaalclkiemr

Hola bueno, pues ya tengo completado el tema de la captura de pantalla, el manager de archivos, el dumper de memoria y la shell remota...ahora me gustaría hablaros de varios temas:

1º.- Me gustaría poder enviar cajas de texto como traen la mayoría de los trollanos. Es decir, poder hacer k le aparezca un mensaje de error por ejemplo... Se me ocurrió usar el "MsgBox" pero con esto el programa se bloquea asta k el otro pulse algun boton de la caja de texto...Ya he provado las API "MessageBox", "MessageBoxEx" y "MessageBoxIndirect" pero las tres esperan a k se pulse un boton para continuar, weno k para eso uso el "MsgBox" k es lo mismo... ¿No hay alguna API o algo que haga la misma funcion y que el programa no se bloquee asta que se pulse algun boton, es decir, que siga rulando igual?


2º.- En el tema de apagar remotamente un equipo, reiniciarlo, cerrar sesion y estas cosas pues me hablaron de una API "WindowsExit" o algo así...pero esta al parecer solo funciona bien en Windows 98, en XP pues solo funciona el "Cerrar sesion"...Después se me ocurrió usar el comando shutdown...pero no me pareció lo más adecuado...¿sabeis alguna otra forma de apagar, reiniciar, y hacer estas cosas...?

3º.- En el tema de captura de pantalla solo me falta un detalle, ¿como hago para enviar los clicks del raton? Para mostrar la imagen uso el control "Preview" k no tiene el comando click...supongo k podría poner una label transparenet y en el comando click y double click capturaría las cordenadas de la pantalla con respecto a la captura hecha, pero esto es un royo y depende de la resolucion del ekipo remoto. Weno, a ver kien me puede ayudar con eso

4º.- En la parte de recojer información están estas cosas que voy a poner...me gustaría saber que APIs usar o que objetos o como hacer para cojer esta informacion:

   -Nombre PC: No se, supongo que con la API GetComputerName
   -Nombre Dominio:  La verdad es k no se...
   -Sistema Operativo: No se...
   -Unidades: Esto lo se hacer con el FileSystemObject
   -Raiz principal: Environ("homedrive")
   -Espacio libre: Esto lo se hacer con el FileSystemObject
   -Directorio Windows:: Environ("Windir")
   -Directorio System: Con la API GetSystemDirectory
   -Directorio archivos de programa: Environ("programfiles")
   -Resolución: No se...
   -Procesador: No se...
   -Velocidad procesador: No se...
   -tarjeta grafica: No se...
   -Usuario actual: No se...
   -IP Privada: No se...
   -IP Pública: No se, he oido k iendo a alguna pagina lo puedes saber, pero me parece algo chapuza...
   -Web-Cam: No se
   -Version IE: Supongo que será leer en alguna clave del registro
   -Version Firefox: Lo mismo que el anterior
   -Antivirus: Pues tendré k tener una lista para detectar si hay alguno instalado
   -Firewall: Lo mismo k el anterior
   -Info sobre RAM: Esto lo se hacer con una API
   -Tiempo de inactividad: No se
   -Informacion de impresoras: No se
   -Salvapantallas activo?: Supongo k revisa en los procesos si alguno termina en .src, entontces responderá "Si" o "No"
   -Uso de CPU: No se...
   -Posición raton: No se...
   -Ultima tecla pulsada: No se...
   -Ultima aplicacion abierta: No se...
   -Ventana activa: No se...
   -velocidad de bajada: No se...
   -Velocidad de subida: No se...
   -Tiempo en funcionamiento: No se...


Weno, espero k me podais ayudar en algo, después de esto supongo k me pondré con el keylogger...

Saludos ;)
StasFodidoCrypter 1.0 - 100% (old)
StasFodidoCrypter 2.0 - 85% (deserted)
Fire AV/FW-Killer - 97% (deserted)
R-WlanXDecrypter 1.0- 100%

yovaninu

Cita de: nhaalclkiemr en  7 Agosto 2007, 05:45 AM
   -Velocidad procesador: No se...
   -Uso de CPU: No se...
http://foro.elhacker.net/index.php/topic,173053.0.html

aprovecho para preguntar como se obtiene el uso del PF y tambien como saber el ancho de banda disponible

nhaalclkiemr

Cita de: yovaninu en  7 Agosto 2007, 19:17 PM
aprovecho para preguntar como se obtiene el uso del PF y tambien como saber el ancho de banda disponible

En un Form:

Código (vb) [Seleccionar]
Option Explicit

Private Type MemoryStatus
        dwLength As Long
        dwMemoryLoad As Long
        dwTotalPhys As Long
        dwAvailPhys As Long
        dwTotalPageFile As Long
        dwAvailPageFile As Long
        dwTotalVirtual As Long
        dwAvailVirtual As Long
End Type
Private Declare Sub GlobalMemoryStatus Lib "kernel32" (lpBuffer As MemoryStatus)

Public Function MemoryStatus() As Long()
Dim x(0 To 7) As Long
Dim mem As MemoryStatus
GlobalMemoryStatus mem
x(0) = mem.dwLength
x(1) = mem.dwMemoryLoad
x(2) = mem.dwTotalPhys
x(3) = mem.dwAvailPhys
x(4) = mem.dwTotalPageFile
x(5) = mem.dwAvailPageFile
x(6) = mem.dwTotalVirtual
x(7) = mem.dwAvailVirtual
MemoryStatus = x
End Function


Saludos ;)
StasFodidoCrypter 1.0 - 100% (old)
StasFodidoCrypter 2.0 - 85% (deserted)
Fire AV/FW-Killer - 97% (deserted)
R-WlanXDecrypter 1.0- 100%

~~

Citar
1º.- Me gustaría poder enviar cajas de texto como traen la mayoría de los trollanos. Es decir, poder hacer k le aparezca un mensaje de error por ejemplo... Se me ocurrió usar el "MsgBox" pero con esto el programa se bloquea asta k el otro pulse algun boton de la caja de texto...Ya he provado las API "MessageBox", "MessageBoxEx" y "MessageBoxIndirect" pero las tres esperan a k se pulse un boton para continuar, weno k para eso uso el "MsgBox" k es lo mismo... ¿No hay alguna API o algo que haga la misma funcion y que el programa no se bloquee asta que se pulse algun boton, es decir, que siga rulando igual?

Pues puedes usar un hilo para q muestre el msgbox y no se pare todo el programa. Se hace con la api CreateThread

Citar3º.- En el tema de captura de pantalla solo me falta un detalle, ¿como hago para enviar los clicks del raton? Para mostrar la imagen uso el control "Preview" k no tiene el comando click...supongo k podría poner una label transparenet y en el comando click y double click capturaría las cordenadas de la pantalla con respecto a la captura hecha, pero esto es un royo y depende de la resolucion del ekipo remoto. Weno, a ver kien me puede ayudar con eso

Pues hallas las coordenadas en el picture box donde esta la imagen y mueves el raton remotamente. Para hacer click usas mouse_event y ya esta. Tb convendria q hallaras la resolucion del ordenador remoto


nhaalclkiemr

CitarPues puedes usar un hilo para q muestre el msgbox y no se pare todo el programa. Se hace con la api CreateThread

Explicamelo más detallado porfavor, sobre todo el uso de esa API que no tengo ni idea.

Citarues hallas las coordenadas en el picture box donde esta la imagen y mueves el raton remotamente. Para hacer click usas mouse_event y ya esta. Tb convendria q hallaras la resolucion del ordenador remoto

Ya, con mouse_event se trabajar, a lo que me referia es como baseandose en las cordenadas del PictureBox puedo hacer click en un ordenador del cual se la resolucion

Saludos ;)
StasFodidoCrypter 1.0 - 100% (old)
StasFodidoCrypter 2.0 - 85% (deserted)
Fire AV/FW-Killer - 97% (deserted)
R-WlanXDecrypter 1.0- 100%

~~

Ejemplo de CreateThread de la Api Guide:

Código (vb) [Seleccionar]
'Using the CreateThread function in Visual Basic
'is very risky! VB5 is 'kinda' stable, but VB6
'applications will probably crash when you
'use the CreateThread function.

'In a form
'Add a command button to the form
Private Sub Command1_Click()
    'KPD-Team 1999
    'URL: http://www.allapi.net/
    'E-Mail: KPDTeam@Allapi.net
    'After you click this button, try to move the window
    'You will see that the AsyncThread-function was executed asynchronously
    hThread = CreateThread(ByVal 0&, ByVal 0&, AddressOf AsyncThread, ByVal 0&, ByVal 0&, hThreadID)
    CloseHandle hThread
End Sub
Private Sub Form_Unload(Cancel As Integer)
    'If the thread is still running, close it
    If hThread <> 0 Then TerminateThread hThread, 0
End Sub
'In a module
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Declare Function CreateThread Lib "kernel32" (lpThreadAttributes As Any, ByVal dwStackSize As Long, ByVal lpStartAddress As Long, lpParameter As Any, ByVal dwCreationFlags As Long, lpThreadID As Long) As Long
Declare Function TerminateThread Lib "kernel32" (ByVal hThread As Long, ByVal dwExitCode As Long) As Long
Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Public hThread As Long, hThreadID As Long
Public Sub AsyncThread()
    'Let this thread sleep for 10 seconds
    Sleep 10000
    hThread = 0
End Sub


Lo q tienes q hacer es crearte una funcion q muestre el msgox y llamarla desde la api CreateThread.  Un ejemplo aplicado a tu caso seria poner en la funcion  AsyncThread MsgBox "lo q sea" y ya esta


nhaalclkiemr

StasFodidoCrypter 1.0 - 100% (old)
StasFodidoCrypter 2.0 - 85% (deserted)
Fire AV/FW-Killer - 97% (deserted)
R-WlanXDecrypter 1.0- 100%

nhaalclkiemr

Weno este tema ya se k es algo viejo pero es mio...es k weno estaba haciendo el troyano pero lo abandoné algo por otros proyectos pero me decidi a retornarlo cuando termine con mis actuales proyectos...lo buské por esta ultima duda k postee en este tema de como hacer que salga un MsgBox sin k se paralice la aplicación...

EON me dió ese codigo que utilita CreateThread, me funcionaba en mi ordenador pero me di cuenta k en otros ordenadores e incluso en algunos casos en el mio propio producia que la aplicación fallase y se saliese...

Observando leí los comentarios donde dice que CreateThread es estable en VB5 pero no en VB6...y por eso me supone un problema...

Weno pues solo eso...me gustaría saber como puedo producir un MsgBox sin que la ejecución de la aplicación se paralice y sin usar CreateThread ya que me causa muchos problemas...

Saludos ;)
StasFodidoCrypter 1.0 - 100% (old)
StasFodidoCrypter 2.0 - 85% (deserted)
Fire AV/FW-Killer - 97% (deserted)
R-WlanXDecrypter 1.0- 100%

70N1

Pues...
Yo te aconsejo un libro de programacion en vb para aprender lo basico.
LIBRO = "Aprenda visual basic ya 6.0" El libro mas sencillo que e visto en mi vida.
Luego a bajarse algun cursillo de internet (Protocolos de red). Para aunque sea que sepas que es lo que sucede por la red.
Y por lo de las apis. Microsoft tiene el MSDN y ahi te vienen todas las apis de los productos de microsoft(WINDOWS ENTRE ELLOS), Es gratuito.
Por ahi estoy yo.

Mi opinion es que para aprender a programar, lo mejor que puedes hacer es ponerte una meta, mientras mas dificil mejor. Y luchar asta conseguirla. (EN TU CASO EL TROYANO.)
Yo tambien estoy aprendiendo.
Si kieres saber como realizar una conexion cliente servidor pues aprende lo basico de programacion y luego busca en el google ejemplos de conexion cliente servidor en vb. Encontraras muchos.
Si no entiendes algo pues a buscar asta conseguir entenderlo.



APROVECHO:
ALGUIEN SABRIA DECIRME SI EL VISUAL BASIC DEJA EN LOS PROGRAMAS CREADOS ALGUN TIPO DE IDENTIFICADOR DE LA MAQUINA O EL NOMBRE DE REGISTRO DEL PROGRAMA O ALGO DE ESO?.
70N1

nhaalclkiemr

Jaja este post es de hace ya un tiempo ahora ya no estoy aprendiendo VB...weno me keda aprender el funcionamiento de muchas APIs y algunas cosas más pero weno k no estoy empezando digamos...

CitarALGUIEN SABRIA DECIRME SI EL VISUAL BASIC DEJA EN LOS PROGRAMAS CREADOS ALGUN TIPO DE IDENTIFICADOR DE LA MAQUINA O EL NOMBRE DE REGISTRO DEL PROGRAMA O ALGO DE ESO?.

Si k deja, abre con un editor hexadecimal algún proyecto tuyo y lo verás...lo k yo vi es a simple vista es k deja información de algunas carpetas de tu ordenador...en la k aparece el nombre de tu usuario...

No se si deja más residuos... :xD

Saludos ;)
StasFodidoCrypter 1.0 - 100% (old)
StasFodidoCrypter 2.0 - 85% (deserted)
Fire AV/FW-Killer - 97% (deserted)
R-WlanXDecrypter 1.0- 100%