5.2 KiB
Docker Forensics
{% hint style="success" %}
Leer & oefen AWS Hack:HackTricks Opleiding AWS Red Team Expert (ARTE)
Leer & oefen GCP Hack: HackTricks Opleiding GCP Red Team Expert (GRTE)
Ondersteun HackTricks
- Controleer die inskrywingsplanne!
- Sluit aan by die 💬 Discord-groep of die telegram-groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacktruuks deur PR's in te dien by die HackTricks en HackTricks Cloud github-opslag.
Kontainer-wysiging
Daar is vermoedens dat 'n sekere docker-kontainer gekompromitteer 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 gedoen 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 bevel beteken C Veranderd en A, Bygevoeg.
As jy vind dat 'n interessante lêer soos /etc/shadow
gewysig is, kan jy dit van die houer aflaai om vir skadelike aktiwiteit te ondersoek met:
docker cp wordpress:/etc/shadow.
Jy kan dit ook vergelyk met die oorspronklike een deur 'n nuwe houer te hardloop 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
Indien jy vind dat 'n 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 (waarskynlik in .tar
-formaat) ontvang, 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 prentjie ontpak en die blobs toegang om te soek na verdagte lêers wat jy dalk in die veranderingsgeskiedenis gevind het:
tar -xf image.tar
Basiese Analise
Jy kan basiese inligting kry van die beeld wat loop:
docker inspect <image>
Jy kan ook 'n opsomming kry van die geskiedenis van veranderinge met:
docker history --no-trunc <image>
Jy kan ook 'n dockerfile van 'n prent 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>
Duik
Om bygevoegde/gewysigde lêers in Docker-beelde te vind, kan jy ook die duik (laai dit af van vrystellings) nutsmiddel 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 kontroleer watter lêers gewysig/toegevoeg is. Rooi beteken toegevoeg en geel beteken gewysig. Gebruik tab om na die ander aansig te beweeg en spasie om vouers in/uit te klap.
Met dit sal jy nie die inhoud van die verskillende fases van die beeld kan bereik nie. Om dit te doen, sal jy elke laag moet dekompresseer en dit moet bereik.
Jy kan al die lêers van 'n beeld dekompresseer vanaf die gids waar die beeld gedekompresseer 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
Gelde vanaf geheue
Let daarop dat wanneer jy 'n docker houer binne 'n gasheer hardloop jy kan die prosesse sien wat op die houer vanaf die gasheer hardloop deur net ps -ef
uit te voer
Daarom (as root) kan jy die geheue van die prosesse dump vanaf die gasheer en soek na gelde net soos in die volgende voorbeeld.