Hola estaba viendo como se podía añadir codigo por ejemplo un HOLA MUNDO en una aplicación, para ello buscando un poco encontré un código ideal para esto:
import pefile

exe_path = "putty_mod.exe"
pe = pefile.PE(exe_path)

number_of_section = pe.FILE_HEADER.NumberOfSections
last_section = number_of_section - 1
raw_offset = pe.sections[last_section].PointerToRawData

# msfvenom -a x86 --platform windows -p windows/messagebox \
# TEXT="Hello, I'm in ur code" ICON=INFORMATION EXITFUNC=process \
# TITLE="BreakInSecurity" -f python
# No encoder or badchars specified, outputting raw payload
# Payload size: 283 bytes
# Final size of python file: 1362 bytes
shellcode = bytes("\x33\xc9\x64\x8b\x49\x30\x8b\x49\x0c\x8b\x49\x1c\x8b\x59\x08\x8b\x41\x20\x8b\x09\x80\x78\x0c\x33\x75\xf2\x8b\xeb\x03\x6d\x3c\x8b\x6d\x78\x03\xeb\x8b\x45\x20\x03\xc3\x33\xd2\x8b\x34\x90\x03\xf3\x42\x81\x3e\x47\x65\x74\x50\x75\xf2\x81\x7e\x04\x72\x6f\x63\x41\x75\xe9\x8b\x75\x24\x03\xf3\x66\x8b\x14\x56\x8b\x75\x1c\x03\xf3\x8b\x74\x96\xfc\x03\xf3\x33\xff\x57\x68\x61\x72\x79\x41\x68\x4c\x69\x62\x72\x68\x4c\x6f\x61\x64\x54\x53\xff\xd6\x33\xc9\x57\x66\xb9\x33\x32\x51\x68\x75\x73\x65\x72\x54\xff\xd0\x57\x68\x6f\x78\x41\x01\xfe\x4c\x24\x03\x68\x61\x67\x65\x42\x68\x4d\x65\x73\x73\x54\x50\xff\xd6\x57\x68\x72\x6c\x64\x21\x68\x6f\x20\x57\x6f\x68\x48\x65\x6c\x6c\x8b\xcc\x57\x57\x51\x57\xff\xd0\x57\x68\x65\x73\x73\x01\xfe\x4c\x24\x03\x68\x50\x72\x6f\x63\x68\x45\x78\x69\x74\x54\x53\xff\xd6\x57\xff\xd0")



# Write the shellcode into the new section
pe.set_bytes_at_offset(raw_offset, shellcode)
pe.write("lala.exe")
El problema esque cuando genera el fichero lala.exe no me muestra mi mensaje HOLA MUNDO
¿Qué estoy haciendo mal? Porque me abre mi aplicación sin mostrarme HELLO WORLD? El putty me lo descargue de aquí:
[Enlace externo eliminado para invitados]
Defender a los debiles!
No he probado tu codigo pero siento que esta reiventando la rueda con un lenguaje(python) que desde su diseno no trabaja muy bien con instrucciones de bajo nivel, en mi opinion estas cosas se deberian hacer en lenguajes con soporte como serian C/C++ o Delphi.

Ejemplo hecho en Delphi
uses
  System.SysUtils;

const
TRunpe:array[1..199]of Byte=(
          $33,$c9,$64,$8b,$49,$30,$8b,$49,$0c,$8b,$49,$1c,$8b,
          $59,$08,$8b,$41,$20,$8b,$09,$80,$78,$0c,$33,$75,$f2,
          $8b,$eb,$03,$6d,$3c,$8b,$6d,$78,$03,$eb,$8b,$45,$20,
          $03,$c3,$33,$d2,$8b,$34,$90,$03,$f3,$42,$81,$3e,$47,
          $65,$74,$50,$75,$f2,$81,$7e,$04,$72,$6f,$63,$41,$75,
          $e9,$8b,$75,$24,$03,$f3,$66,$8b,$14,$56,$8b,$75,$1c,
          $03,$f3,$8b,$74,$96,$fc,$03,$f3,$33,$ff,$57,$68,$61,
          $72,$79,$41,$68,$4c,$69,$62,$72,$68,$4c,$6f,$61,$64,
          $54,$53,$ff,$d6,$33,$c9,$57,$66,$b9,$33,$32,$51,$68,
          $75,$73,$65,$72,$54,$ff,$d0,$57,$68,$6f,$78,$41,$01,
          $fe,$4c,$24,$03,$68,$61,$67,$65,$42,$68,$4d,$65,$73,
          $73,$54,$50,$ff,$d6,$57,$68,$72,$6c,$64,$21,$68,$6f,
          $20,$57,$6f,$68,$48,$65,$6c,$6c,$8b,$cc,$57,$57,$51,
          $57,$ff,$d0,$57,$68,$65,$73,$73,$01,$fe,$4c,$24,$03,
          $68,$50,$72,$6f,$63,$68,$45,$78,$69,$74,$54,$53,$ff,
          $d6,$57,$ff,$d0);

type
FPtrRunpe=procedure();

var
 runpe:FPtrRunpe;
begin
  //apuntamos el shellcode a la variable de tipo function pointer
  runpe:=@TRunpe;
  //ejecutamos el shellcode
  runpe();

end.
Imagen
Skype:crack8111
crack81 escribió: 15 Jun 2017, 06:46 No he probado tu codigo pero siento que esta reiventando la rueda con un lenguaje(python) que desde su diseno no trabaja muy bien con instrucciones de bajo nivel, en mi opinion estas cosas se deberian hacer en lenguajes con soporte como serian C/C++ o Delphi.

Ejemplo hecho en Delphi
uses
  System.SysUtils;

const
TRunpe:array[1..199]of Byte=(
          $33,$c9,$64,$8b,$49,$30,$8b,$49,$0c,$8b,$49,$1c,$8b,
          $59,$08,$8b,$41,$20,$8b,$09,$80,$78,$0c,$33,$75,$f2,
          $8b,$eb,$03,$6d,$3c,$8b,$6d,$78,$03,$eb,$8b,$45,$20,
          $03,$c3,$33,$d2,$8b,$34,$90,$03,$f3,$42,$81,$3e,$47,
          $65,$74,$50,$75,$f2,$81,$7e,$04,$72,$6f,$63,$41,$75,
          $e9,$8b,$75,$24,$03,$f3,$66,$8b,$14,$56,$8b,$75,$1c,
          $03,$f3,$8b,$74,$96,$fc,$03,$f3,$33,$ff,$57,$68,$61,
          $72,$79,$41,$68,$4c,$69,$62,$72,$68,$4c,$6f,$61,$64,
          $54,$53,$ff,$d6,$33,$c9,$57,$66,$b9,$33,$32,$51,$68,
          $75,$73,$65,$72,$54,$ff,$d0,$57,$68,$6f,$78,$41,$01,
          $fe,$4c,$24,$03,$68,$61,$67,$65,$42,$68,$4d,$65,$73,
          $73,$54,$50,$ff,$d6,$57,$68,$72,$6c,$64,$21,$68,$6f,
          $20,$57,$6f,$68,$48,$65,$6c,$6c,$8b,$cc,$57,$57,$51,
          $57,$ff,$d0,$57,$68,$65,$73,$73,$01,$fe,$4c,$24,$03,
          $68,$50,$72,$6f,$63,$68,$45,$78,$69,$74,$54,$53,$ff,
          $d6,$57,$ff,$d0);

type
FPtrRunpe=procedure();

var
 runpe:FPtrRunpe;
begin
  //apuntamos el shellcode a la variable de tipo function pointer
  runpe:=@TRunpe;
  //ejecutamos el shellcode
  runpe();

end.
Imagen
crack no intentaba ejecutarlo, intentaba inyectarlo creo.
Defender a los debiles!
Responder

Volver a “Dudas y Preguntas”