Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
ghidra — Ghidra è un framework di reverse engineering del software (SRE) | Kitploit
Strumenti/GitHubGitHub/nationalsecurityagency/ghidra
Sicurezza AndroidSicurezza Sistemi EmbeddedAnalisi StaticaAnalisi Dinamica (Sandboxing)Framework di ExploitMemory ForensicsAnalisi delle VulnerabilitàAnalisi del CodicePentesting di App MobiliReverse EngineeringScripting e Automazione
71.1k7.8k1201 giorno faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Debugger
Analisi Malware
CTF
Sicurezza Mobile
Analisi di Binari
Apprendimento e Formazione
Reverse Engineering Assistito dall'IA
Analisi del Firmware
Binary Exploitation
Top in Reverse Engineering Assistito dall'IA n.5
Top in Sicurezza Android n.15
Top in Analisi di Binari n.1
Top in Binary Exploitation n.8
Top in Analisi del Codice n.5
Top in CTF n.13
Top in Debugger n.8
Top in Analisi Dinamica (Sandboxing) n.18
Top in Sicurezza Sistemi Embedded n.8
Top in Analisi del Firmware n.8
Top in Analisi Malware n.7
Top in Memory Forensics n.18
Top in Pentesting di App Mobili n.18
Top in Sicurezza Mobile n.18
Top in Reverse Engineering n.1
Top in Analisi Statica n.1
GitHubnationalsecurityagency/ghidra

ghidra

Ghidra è un framework di reverse engineering del software (SRE)

Vedi RepositorySito web
Condividi
# Ghidra in Docker

## Build

Dalla directory principale della tua release di Ghidra, esegui il comando seguente.

```
./docker/build-docker-image.sh
```

Questo creerà l'immagine docker di ghidra con un tag corrispondente alla versione di release di Ghidra.

## La variabile d'ambiente MODE

Il container Docker di Ghidra supporta le seguenti modalità di esecuzione `MODE`:
- gui
- headless
- ghidra-server
- bsim
- bsim-server
- pyghidra

La variabile d'ambiente `MODE` designa quale punto di ingresso di Ghidra eseguire.

Lo script `entrypoint.sh` viene eseguito all'avvio del container.

## Configurazione di un Container

La configurazione di un container viene effettuata come qualsiasi altro container docker.
I volumi possono essere montati, le variabili d'ambiente possono essere impostate, le porte possono essere mappate dal container all'host e così via.
I passaggi di configurazione variano molto in base alla MODALITÀ con cui viene avviato il container.

La directory base per Ghidra all'interno del container si trova in `/ghidra`.
Tutte le posizioni predefinite di ghidra per file, configurazioni, ecc., sono le stesse all'interno di essa.
Ghidra viene eseguito come utente `ghidra` all'interno del container, con uid `1001` e guid `1001`.

L'utente `ghidra` ha solo i permessi per le seguenti directory all'interno del container:
- `/ghidra`
- `/home/ghidra`

Quando un container non riceve argomenti passati con il comando `docker run`, la corrispondente interfaccia a riga di comando (CLI) per la `MODE` eseguita visualizzerà il suo messaggio di utilizzo.

### Mappatura dei Volumi Locali a un Container

I volumi all'interno del container potrebbero incontrare problemi di permessi se i volumi non sono accessibili dagli utenti del gruppo id `1001`.

L'uid e guid predefiniti per il container sono `1001:1001`.
I volumi che vengono mappati al container dovrebbero essere accessibili da questo uid/guid.

Aggiungere l'utente della macchina host al gruppo `1001` sull'host aiuta a gestire i volumi che verranno utilizzati nel container.
Questo può essere facilmente fatto eseguendo `sudo usermod -aG 1001 <user>` su Linux.

### Esempio di Modalità Headless

```
docker run \
    --env MODE=headless \
    --rm \
    --volume /path/to/myproject:/home/ghidra/myproject \
    --volume /path/to/mybinary:/home/ghidra/mybinary \
    ghidra/ghidra:<version> \
    /home/ghidra/myproject programFolder -import /home/ghidra/mybinary
```

Analizzando questo comando riga per riga:
- `docker run` avvierà un container docker usando l'immagine `ghidra/ghidra<:<version>`
- `--env MODE=headless` configura la variabile d'ambiente `MODE` all'interno del container al valore `headless`
- `--rm` rimuove il container dopo il completamento del comando
- `--volume /path/to/myproject:/home/ghidra/myproject` monta il volume locale `/path/to/myproject` sull'host in `/home/ghidra/myproject` all'interno del container
- `--volume /path/to/mybinary:/home/ghidra/mybinary` monta il volume locale `/path/to/mybinary` sull'host in `/home/ghidra/mybinary` all'interno del container
- `ghidra/ghidra:<version>` è il riferimento completo per l'immagine docker, dove `ghidra/ghidra` è il gruppo e il nome dell'immagine, e `<version>` è il tag.
- `/home/ghidra/myproject programFolder -import /home/ghidra/mybinary` sono argomenti passati all'interfaccia a riga di comando dell'analizzatore headless di Ghidra

Non passare argomenti comporterà la visualizzazione dell'utilizzo dell'analizzatore headless.

`/path/to/myproject` sull'host deve essere accessibile al guid `1001` con permessi `rwx`.

### Esempio di Modalità GUI

Eseguire l'interfaccia grafica utente (GUI) di Ghidra nel container docker non è un metodo raccomandato per eseguire Ghidra.
Le GUI non sono un caso d'uso tipico per applicazioni dockerizzate.

```
docker run \
    --env MODE=gui \
    -it \
    --rm \
    --net host \
    --env DISPLAY \
    --volume "$HOME/.Xauthority:/home/ghidra/.Xauthority" \
    ghidra/ghidra:<version>
```

In questa modalità, il container si basa sul forwarding X11 per visualizzare la GUI. La configurazione di X11 può variare, ma in questo caso, il file Xauthority dell'host viene montato nel container, il container è configurato per utilizzare la rete dell'host, e la variabile d'ambiente DISPLAY viene passata al container. Ciò consente di reindirizzare la GUI al display della macchina host. I volumi contenenti binari dovrebbero comunque essere montati nel container, così come i volumi per i progetti ghidra.

Il file `.Xauthority` dell'host deve avere i permessi appropriati - assegnati al gruppo `:1001` con permessi di gruppo `rw`.

### Esempio di Modalità Ghidra Server

```
docker run \
    --env MODE=ghidra-server \
    --rm \
    -it \
    --volume /path/to/my/repositories:/ghidra/repositories \
    --volume /path/to/my/configs/server.conf:/ghidra/server/server.conf \
    -p 13100:13100 \
    -p 13101:13101 \
    -p 13102:13102 \
    ghidra/ghidra:<version>
```

I volumi dovrebbero essere montati nel container del server per salvare i repository, gli utenti e anche per configurare il server.

Per utilizzare svrAdmin, esegui exec nel container del server ghidra in esecuzione (`docker exec -it <container-id> bash`) per una shell bash nel container. Dopo aver eseguito exec nel container, l'amministrazione e la gestione del server Ghidra sono le stesse di un ambiente non containerizzato.

Per fermare il container, esegui il comando `docker stop <container-id>`.

NOTA: le porte che mappi dall'host al container docker devono corrispondere. Puoi cambiare la porta base del server predefinita (es. `13100`) nel file `server.conf` usando l'opzione `-p<port>`.

## Esempio di Modalità BSIM Server

```
docker run \
    --env MODE=bsim-server \
    --rm \
    -it \
    --volume /path/to/my/datadir:/ghidra/bsim_datadir \
    -p 5432:5432 \
    ghidra/ghidra:<version> \
    /ghidra/bsim_datadir
```

`/ghidra/bsim_datadir` è la directory utilizzata per memorizzare i dati di bsim nel container. Altre directory potrebbero essere usate sul container, ma assicurati che la cartella sulla macchina host abbia i permessi appropriati, assegnati al gruppo `:1001`.

Questo esempio avvia semplicemente un server bsim. Configurare il server bsim e popolarlo con dati potrebbe essere fatto dopo l'avvio all'interno del container in modo simile a come viene fatta l'amministrazione del server ghidra. Un amministratore dovrebbe eseguire exec nel container del server bsim in esecuzione (`docker exec -it <container-id> bash`), e dopo aver eseguito exec nel container, l'amministrazione e la gestione del server Bsim sono le stesse di un ambiente non containerizzato.

Per fermare il container, esegui il comando `docker stop <container-id>`.

## Esempio di Modalità BSIM CLI

```
docker run \
		--env MODE=bsim \
		--rm \
		 -it \
		 ghidra/ghidra:<version> \
		 generatesigs ghidra://ghidrasvr/demo /home/ghidra \
			 --bsim postgresql://bsimsvr/demo \
			 --commit --overwrite \
			 --user ghidra
```

In questo esempio, la CLI bsim viene utilizzata per connettersi a un server ghidra ospitato su `ghidrasvr`, generare firme per il repository `demo` in quel server ghidra e salvarle in `/home/ghidra`, e poi inviare le firme al server BSIM ospitato su `bsimsvr` nel database `demo`.

## Esempio di Modalità Pyghidra GUI

Eseguire l'interfaccia grafica utente (GUI) di Ghidra nel container docker non è un metodo raccomandato per eseguire Ghidra.
Le GUI non sono un caso d'uso tipico per applicazioni dockerizzate.

```
docker run \
    --env MODE=pyghidra \
    -it \
    --rm \
    --net host \
    --env DISPLAY \
    --volume="$HOME/.Xauthority:/home/ghidra/.Xauthority:rw" \
    ghidra/ghidra:<version> -c
```

In questa modalità, il container si basa sul forwarding X11 per visualizzare la GUI. La configurazione di X11 può variare, ma in questo caso, il file Xauthority dell'host viene montato nel container, il container è configurato per utilizzare la rete dell'host, e la variabile d'ambiente DISPLAY viene passata al container. Ciò consente di reindirizzare la GUI al display della macchina host. I volumi contenenti binari dovrebbero comunque essere montati nel container, così come i volumi per i progetti ghidra.

Il file `.Xauthority` dell'host deve avere i permessi appropriati - di proprietà di `:1001` con permessi di gruppo `rw`.

## Esempio di Modalità Pyghidra Headless

```
docker run \
    --env MODE=pyghidra \
    --rm \
    --volume /path/to/myproject:/myproject \
    --volume /path/to/mybinary:/mybinary \
    ghidra/ghidra:<version> -H \
    /myproject programFolder -import /mybinary
```

Non passare argomenti all'analizzatore headless pyghidra comporterà la visualizzazione del menu di aiuto, proprio come per l'analizzatore headless.

Questo caso d'uso è molto simile all'esempio della modalità headless con il vantaggio aggiuntivo di poter utilizzare python3 per gli script di Ghidra.

Ancora, in questo esempio, permessi appropriati e assegnazione del gruppo per `/path/to/myproject` e `/path/to/mybinary` sono necessari per non incontrare problemi di permessi.
Scarica lo strumento