Docker Forensics
Reading time: 5 minutes
tip
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die đŹ Discord groep of die telegram groep of volg ons op Twitter đŠ @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
Container modification
Daar is vermoedens dat 'n paar docker houers gecompromitteer is:
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cc03e43a052a lamp-wordpress "./run.sh" 2 minutes ago Up 2 minutes 80/tcp wordpress
Jy kan maklik die wysigings wat aan hierdie houer gemaak is met betrekking tot die beeld vind met:
docker diff wordpress
C /var
C /var/lib
C /var/lib/mysql
A /var/lib/mysql/ib_logfile0
A /var/lib/mysql/ib_logfile1
A /var/lib/mysql/ibdata1
A /var/lib/mysql/mysql
A /var/lib/mysql/mysql/time_zone_leap_second.MYI
A /var/lib/mysql/mysql/general_log.CSV
...
In die vorige opdrag beteken C Verander en A, Gevind.
As jy vind dat 'n interessante lĂȘer soos /etc/shadow
gewysig is, kan jy dit van die houer aflaai om vir kwaadwillige aktiwiteit te kyk met:
docker cp wordpress:/etc/shadow.
Jy kan dit ook vergelyk met die oorspronklike een deur 'n nuwe houer te laat loop en die lĂȘer daaruit te onttrek:
docker run -d lamp-wordpress
docker cp b5d53e8b468e:/etc/shadow original_shadow #Get the file from the newly created container
diff original_shadow shadow
As jy vind dat 'n paar verdagte lĂȘer bygevoeg is kan jy die houer toegang en dit nagaan:
docker exec -it wordpress bash
Beeldwysigings
Wanneer jy 'n uitgevoerde docker beeld ontvang (waarskynlik in .tar
formaat) kan jy container-diff gebruik om 'n opsomming van die wysigings te onttrek:
docker save <image> > image.tar #Export the image to a .tar file
container-diff analyze -t sizelayer image.tar
container-diff analyze -t history image.tar
container-diff analyze -t metadata image.tar
Dan kan jy die dekomprimeer die beeld en toegang tot die blobs verkry om te soek na verdagte lĂȘers wat jy dalk in die veranderinge geskiedenis gevind het:
tar -xf image.tar
Basiese Analise
Jy kan basiese inligting uit die beeld verkry deur te loop:
docker inspect <image>
Jy kan ook 'n opsomming geskiedenis van veranderinge kry met:
docker history --no-trunc <image>
U kan ook 'n dockerfile uit 'n beeld genereer met:
alias dfimage="docker run -v /var/run/docker.sock:/var/run/docker.sock --rm alpine/dfimage"
dfimage -sV=1.36 madhuakula/k8s-goat-hidden-in-layers>
Dive
Om bygevoegde/gewijzigde lĂȘers in docker beelde te vind, kan jy ook die dive (aflaai dit van releases) nut gebruik:
#First you need to load the image in your docker repo
sudo docker load < image.tar 1 ⚯
Loaded image: flask:latest
#And then open it with dive:
sudo dive flask:latest
Dit stel jou in staat om deur die verskillende blobs van docker beelde te navigeer en te kyk watter lĂȘers gewysig/gevoeg is. Rooi beteken gevoeg en geel beteken gewysig. Gebruik tab om na die ander weergawe te beweeg en spasie om vouers in te klap/open.
Met dit sal jy nie toegang hĂȘ tot die inhoud van die verskillende fases van die beeld nie. Om dit te doen, sal jy elke laag moet dekomprimeer en toegang daartoe kry.
Jy kan al die lae van 'n beeld dekomprimeer vanaf die gids waar die beeld gedecomprimeer is deur die volgende uit te voer:
tar -xf image.tar
for d in `find * -maxdepth 0 -type d`; do cd $d; tar -xf ./layer.tar; cd ..; done
Kredensiale uit geheue
Let daarop dat wanneer jy 'n docker-container binne 'n gasheer uitvoer, kan jy die prosesse wat op die container loop vanaf die gasheer sien deur net ps -ef
te loop.
Daarom (as root) kan jy die geheue van die prosesse vanaf die gasheer dump en soek na kredensiale net soos in die volgende voorbeeld.
tip
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die đŹ Discord groep of die telegram groep of volg ons op Twitter đŠ @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.