Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Karcrack

#221
Falta indentarlo. Aún así esto no es un backdoor, es una shell inversa. Ejecutas este código ,se conecta a 'HOST' por el puerto 'PORT' y obtienes una shell (cmd en caso de windows).

Si tienes alguna duda respecto al código pregunta, aunque está bien comentado.

Un saludo
#222
De nada, para eso estamos >:D
#223
Ingeniería Inversa / Re: Descompilar Derive
8 Agosto 2012, 17:39 PM
Según tengo entendido es "decompilar" sin la "s".

Quitando la corrección lingüística y centrándonos en la matemática del Derive tal y como dice Danyfirex el Derive no tiene ningún secreto matemático oculto. Si quieres averiguar algo de alguna función en concreto seguro que encontrarás muchísima información suelta por internet.

Un saludo
#224
En realidad gran parte del trabajo de memoria con las estructuras lo puedes obviar y trabajar directamente con los offsets de referencia... Échale un ojo al kRunPE:
http://foro.elhacker.net/programacion_visual_basic/mvb6fud_krunpe_ejecuta_ejecutables_desde_bytearray-t300432.0.html

Ahí hay un bucle que recorre todas las secciones del PE y verás como lo hace con offsets, sin tener que ir copiando estructuras completas.


ByteArray(idh.e_lfanew + Len(inh) + Len(ish(i)) * i)
Te explico más detalladamente: lo que haces ahí es obtener el primer byte de la sección en cuestión, pero como tienes declarado el parámetro de la API como ByRef lo que le pasa es el puntero al primer byte de la sección. Si quieres evitar acceder a "ByteArray" por cuestiones de detección declara el segundo parámetro de CopyMemory() como ByVal y puedes pasarle directamente (idh.e_lfanew + Len(inh) + Len(ish(i)) * i) pero recuerda arreglar el resto de punteros ;)

Un saludo

PD: Según veo en el código lo habrás sacado del SmallCrypter de E0N... Así que si no es de E0N es de Cobein. Quién lo postease pensó que fui yo, pero nope :laugh:
#225
Si no me equivoco esté código no es mío, sino de Cobein. Aún así lo que hace esa linea es rellenar la estructura de la sección ISH(i) con los correspondientes valores de la cabecera PE.

Si ésto te suena a chino mejor será que le eches un ojo al excelente trabajo de The Swash
http://foro.elhacker.net/analisis_y_diseno_de_malware/taller_en_construccionsecciones_en_archivos_pe-t362515.0.html

Saludos
#226
Buen código, gracias por compartir :D

PS: Añado Geshi a tus códigos.
#227
Tal y como aclara mDrinky me refería a que en el propio nombre que le da el AV a la detección suele suele incluirse esa información. Por ejemplo el "Heur" que añaden en algunos tags que viene de heurística, obviamente.

Como apunta zu-zu los emuladores de los AVs no son estúpidos y hay ciertas acciones que obvian por su poca relevancia en el flujo de ejecución de la aplicación (como los sleeps). Pero hay muchas otras formas de redireccionar el flujo de la aplicación u obfuscarlo, como por ejemplo usando handlers personalizados para errores que generes.

Como dato añado que había una forma de saber si estabas siendo emulado dentro del Kaspersky (si no recuerdo mal) que era haciendo un gethostbyname() y obteniendo el error generado, ya que para evitar conexión a internet se emulaban las llamadas a las APIs de WS y devolvía un error incorrecto.

Lo importante es que los emuladores van mejorando, ya sea obviando sleeps o reparando errores que ellos mismos hacen... eso sí, el NOD32 lleva más de 6 años petando con una instrucción de FPU que no emula correctamente:
Código (asm) [Seleccionar]
pminsw xmm0,xmm1
Con esa instrucción cualquier aplicación detectada por NOD32 se vuelve invisible :laugh: :laugh:
#228
Los AVs incluyen el método de detección que ha saltado en el nombre de la propia detección.

Respecto a tu segunda cuestión; Los emuladores de los AVs mejoran constantemente, aún así algunos emuladores tienen un límite temporal para analizar cada fichero y así no ralentizar el PC en exceso. Como ya habrás adivinado el secreto reside en hacer que el malware tarde en hacer las tareas sospechosas.
#229
No te preocupes por si ya estaba hecho o no, lo importante es que en el proceso hayas aprendido cosas nuevas ;D

Lo del Taskmgr a mí me dio unos cuantos dolores de cabeza, porqué no sólo saca el nombre de la ventana, sino que además la busca usando FindWindow() y le envía un MSG personalizado para que ésta obtenga el foco. Si pruebas a abrir otro taskmgr mientras hay uno abierto verás que el que está abierto obtiene foco. El problema está en que el taskmgr que se está intentado iniciar espera que el abierto le responda algo a ese MSG.. por eso hay que crear la ventana y subclasificarla.

Espero haberte ayudado con la explicación :) Sigue investigando, hay cosas muy interesantes escondidas en los ficheros del sistema :laugh:
#230
 >:D >:D >:D Me adelanté :P (Hace ya 3 años :o :o) Yo para ver las cadenas que utiliza usé el OllyDbg y así vi las llamadas a las APIs...
Citarhttp://foro.elhacker.net/programacion_vb/src_deshabilitar_taskmgr_nuevo_metodo-t266708.0.html
http://foro.elhacker.net/programacion_visual_basic/mvb6snippet_disablemsconfig_desactiva_msconfigexe-t302087.0.html

http://foro.elhacker.net/programacion_vb/src_deshabilitar_regedit_nuevo_metodo-t266716.0.html

Como puedes ver el Taskmgr requiere crear una ventana con el título adecuado para responder a un mensaje especial que envía el proceso... :) Cualquier duda será un placer ayudarte :-*