5.3 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.
Container aanpassing
Daar is vermoedens dat 'n sekere docker-container 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 prent 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 in staat wees om toegang tot die inhoud van die verskillende fases van die beeld te verkry nie. Om dit te doen, sal jy elke laag moet dekompresseer en toegang daartoe moet verkry.
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 die prosesse wat op die houer hardloop vanaf die gasheer kan sien 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.