6.9 KiB
Docker 取证
☁️ HackTricks 云 ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
你在一家网络安全公司工作吗?你想在 HackTricks 中看到你的公司广告吗?或者你想获得PEASS 的最新版本或下载 HackTricks 的 PDF 版本吗?请查看订阅计划!
-
发现我们的独家NFTs收藏品——The PEASS Family
-
加入💬 Discord 群组 或 telegram 群组,或者关注我在Twitter上的🐦@carlospolopm。
-
通过向hacktricks 仓库和hacktricks-cloud 仓库提交 PR 来分享你的黑客技巧。
容器修改
有人怀疑某个 Docker 容器被入侵:
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cc03e43a052a lamp-wordpress "./run.sh" 2 minutes ago Up 2 minutes 80/tcp wordpress
您可以使用以下方法轻松查找与镜像相关的对此容器所做的修改:
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
...
在上一个命令中,C 代表 Changed(已更改),A 代表 Added(已添加)。
如果你发现一些有趣的文件,比如 /etc/shadow
被修改了,你可以从容器中下载它,以检查是否存在恶意活动:
docker cp wordpress:/etc/shadow.
您还可以通过运行一个新的容器并从中提取文件来与原始文件进行比较:
docker run -d lamp-wordpress
docker cp b5d53e8b468e:/etc/shadow original_shadow #Get the file from the newly created container
diff original_shadow shadow
如果你发现有可疑文件被添加,你可以访问容器并进行检查:
docker exec -it wordpress bash
图像修改
当你获得一个导出的Docker镜像(可能是.tar
格式)时,你可以使用container-diff来提取修改的摘要:
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
然后,您可以解压缩镜像并访问blob以搜索您在更改历史中可能找到的可疑文件:
tar -xf image.tar
基本分析
您可以从正在运行的镜像中获取基本信息:
docker inspect <image>
您还可以使用以下命令获取更改历史摘要:
docker history --no-trunc <image>
您还可以使用以下命令从镜像生成dockerfile:
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
为了在Docker镜像中找到添加/修改的文件,您还可以使用dive(从releases下载)实用工具:
#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
这样可以让您浏览docker镜像的不同blob并检查哪些文件被修改/添加。红色表示添加,黄色表示修改。使用tab键切换到其他视图,使用空格键折叠/展开文件夹。
使用die,您将无法访问镜像的不同阶段的内容。要做到这一点,您需要解压每个层并访问它。
您可以从解压缩镜像的目录中解压缩所有层,执行以下操作:
tar -xf image.tar
for d in `find * -maxdepth 0 -type d`; do cd $d; tar -xf ./layer.tar; cd ..; done
从内存中获取凭据
请注意,当您在主机上运行一个docker容器时,您可以通过运行ps -ef
命令来查看容器上运行的进程。
因此(作为root用户),您可以从主机上转储进程的内存,并搜索凭据,就像以下示例中所示。
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
您在一家网络安全公司工作吗?您想在HackTricks中为您的公司做广告吗?或者您想要访问PEASS的最新版本或下载PDF格式的HackTricks吗?请查看订阅计划!
-
发现我们的独家NFTs收藏品——The PEASS Family
-
加入💬 Discord群组或电报群组,或在Twitter上关注我🐦@carlospolopm。
-
通过向hacktricks repo和hacktricks-cloud repo提交PR来分享您的黑客技巧。