Abbiamo trattato l'iniezione di processo e lo svuotamento di processo. L'iniezione di processo è il processo di iniezione di un processo già in esecuzione con codice dannoso o shellcode. Il processo di svuotamento è il processo di creazione di un processo legittimo in uno stato sospeso e quindi di annullamento della mappatura del codice legittimo dalla memoria e di sostituzione con il codice della shell. Sia l'iniezione di processo che lo svuotamento sono utili per nascondere rootkit e shellcode in processi dall'aspetto innocente per mantenere l'accesso e la persistenza. Questo faceva parte TryHackMe abusa dei componenti interni di Windows percorso della squadra rossa.

Abbiamo anche trattato l'iniezione di DLL e il dirottamento di DLL insieme a uno scenario pratico del laboratorio TryHackMe Abusing Windows Internals che fa parte del percorso del team Rosso. L'iniezione DLL si basa sull'utilizzo delle chiamate API di Windows per eseguire azioni specifiche come la selezione di un processo in esecuzione, l'allocazione della memoria e la scrittura della DLL dannosa nella regione di memoria allocata. Il dirottamento DLL si basa sulla disponibilità delle autorizzazioni di accesso per individuare e sostituire una DLL legittima con una dannosa.

Ottieni gli appunti di studio COMPTIA Pentest+

Corso sulle tecniche di escalation dei privilegi Windows

Descrizione della sfida

Sfrutta i componenti interni di Windows per eludere le soluzioni di rilevamento comuni, utilizzando approcci moderni indipendenti dagli strumenti.

Video in evidenza

Process injection viene comunemente utilizzato come termine generale per descrivere l'inserimento di codice dannoso in un processo tramite funzionalità o componenti legittimi.

Ad alto livello, l'iniezione di shellcode può essere suddivisa in quattro passaggi:

  1. Aprire un processo di destinazione con tutti i diritti di accesso.
  2. Allocare la memoria del processo di destinazione per lo shellcode.
  3. Scrivi lo shellcode nella memoria allocata nel processo di destinazione.
  4. Esegui lo shellcode utilizzando un thread remoto.

Il processo di svuotamento offre la possibilità di inserire un intero file dannoso in un processo. Ciò si ottiene “svuotando” o de-mappando il processo e iniettando specifiche PE (Portable Eeseguibile) dati e sezioni nel processo.

Ad un livello elevato il processo di svuotamento può essere suddiviso in sei fasi:

  1. Creare un processo di destinazione in uno stato sospeso.
  2. Apri un'immagine dannosa.
  3. Annulla la mappatura del codice legittimo dalla memoria del processo.
  4. Assegna posizioni di memoria per codice dannoso e scrivi ciascuna sezione nello spazio degli indirizzi.
  5. Imposta un punto di ingresso per il codice dannoso.
  6. Estrarre il processo di destinazione dallo stato sospeso.

A livello di alto livello il dirottamento (esecuzione) del thread può essere suddiviso in undici passaggi:

  1. Individuare e aprire un processo di destinazione da controllare.
  2. Allocare la regione di memoria per il codice dannoso.
  3. Scrivi codice dannoso nella memoria allocata.
  4. Identificare l'ID del thread di destinazione da dirottare.
  5. Apri il thread di destinazione.
  6. Sospendere il thread di destinazione.
  7. Ottenere il contesto del thread.
  8. Aggiorna il puntatore dell'istruzione al codice dannoso.
  9. Riscrivere il contesto del thread di destinazione.
  10. Riprendi il thread compromesso.

Ad alto livello l'iniezione DLL può essere suddivisa in sei passaggi:

  1. Individuare un processo di destinazione da iniettare.
  2. Aprire il processo di destinazione.
  3. Allocare la regione di memoria per DLL dannose.
  4. Scrivi la DLL dannosa nella memoria allocata.
  5. Carica ed esegui la DLL dannosa.

Risposte in camera

Identificare un PID di un processo in esecuzione come THM-Attacker da colpire. Una volta identificato fornire il PID come argomento da eseguire shellcode-injector.exe situato nella directory Iniettori sul desktop.

Quale flag si ottiene dopo aver iniettato lo shellcode?

Identificare un PID di un processo in esecuzione come THM-Attacker da prendere di mira. Fornire il PID e il nome dell'eseguibile come argomenti da eseguire svuotamento-injector.exe situato nella directory degli iniettori sul desktop.

Quale flag si ottiene dopo aver svuotato e iniettato lo shellcode?

Identificare un PID di un processo in esecuzione come THM-Attacker da prendere di mira. Fornire il PID come argomento da eseguire filo-injector.exe situato nella directory Iniettori sul desktop.

Quale flag si ottiene dopo aver dirottato il thread?

Quale protocollo viene utilizzato per l'esecuzione in modo asincrono nel contesto di un thread?

Qual è la chiamata API di Windows utilizzata per mettere in coda una funzione APC?

Il puntatore alla funzione void può essere utilizzato su un processo remoto? (sì/no)

Quale chiamata API Windows alternativa è stata utilizzata da TrickBot per creare un nuovo thread utente?

Le tecniche di iniezione impiegate da TrickBot erano riflettenti? (sì/no)

Quale nome di funzione è stato utilizzato per scrivere manualmente gli hook?

Videoprocedura dettagliata

Circa l'autore

Creo note sulla sicurezza informatica, note di marketing digitale e corsi online. Fornisco anche consulenza di marketing digitale, inclusi ma non limitati a SEO, annunci Google e Meta e amministrazione CRM.

Visualizza articoli