hacktricks/forensics/basic-forensic-methodology/docker-forensics.md
2024-02-10 18:14:16 +00:00

6.5 KiB
Raw Blame History

Docker Forensiği

AWS hackleme becerilerini sıfırdan ileri seviyeye öğrenmek için htARTE (HackTricks AWS Kırmızı Takım Uzmanı)'ı öğrenin!

HackTricks'i desteklemenin diğer yolları:

Konteyner değişikliği

Bir docker konteynerinin bazı şekilde tehlikeye atıldığından şüpheleniliyor:

docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
cc03e43a052a        lamp-wordpress      "./run.sh"          2 minutes ago       Up 2 minutes        80/tcp              wordpress

Bu konteynerde yapılan değişiklikleri görmeniz için şunları yapabilirsiniz:

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
...

Önceki komutta C Değiştirildi ve A, Eklendi anlamına gelir.
Eğer /etc/shadow gibi ilginç bir dosyanın değiştirildiğini tespit ederseniz, kötü amaçlı faaliyetleri kontrol etmek için bu dosyayı konteynırdan indirebilirsiniz:

docker cp wordpress:/etc/shadow.

Ayrıca, yeni bir konteyner çalıştırarak ve içinden dosyayı çıkararak orijinaliyle karşılaştırabilirsiniz:

docker run -d lamp-wordpress
docker cp b5d53e8b468e:/etc/shadow original_shadow #Get the file from the newly created container
diff original_shadow shadow

Eğer şüpheli bir dosya eklenmişse konteynere erişebilir ve kontrol edebilirsiniz:

docker exec -it wordpress bash

Görüntü değişiklikleri

Bir dışa aktarılmış docker görüntüsü (muhtemelen .tar formatında) verildiğinde, container-diff kullanarak değişikliklerin bir özetini çıkarmak için aşağıdaki adımları izleyebilirsiniz:

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

Ardından, görüntüyü sıkıştırılmış hâlden çıkarabilir ve şüpheli dosyaları aramak için bloklara erişebilirsiniz. Bu dosyaları değişiklik geçmişinde bulmuş olabilirsiniz:

tar -xf image.tar

Temel Analiz

Çalışan görüntüden temel bilgiler alabilirsiniz:

docker inspect <image>

Ayrıca, bir özet değişiklik geçmişi alabilirsiniz:

docker history --no-trunc <image>

Ayrıca bir görüntüden bir dockerfile oluşturabilirsiniz:

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 görüntülerinde eklenen/değiştirilen dosyaları bulmak için dive (indirin: releases) aracını da kullanabilirsiniz:

#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

Bu, farklı docker görüntülerinin farklı bloblarında gezinmenizi sağlar ve hangi dosyaların değiştirildiğini/eklendiğini kontrol edebilirsiniz. Kırmızı eklenen anlamına gelir ve sarı değiştirilen anlamına gelir. Diğer görünüme geçmek için tab tuşunu kullanın ve klasörleri daraltmak/açmak için boşluk tuşunu kullanın.

Die ile görüntünün farklı aşamalarının içeriğine erişemezsiniz. Bunun için her katmanı açmanız ve erişmeniz gerekecektir.
Görüntünün tüm katmanlarını açmak için görüntünün açıldığı dizinde aşağıdaki komutu çalıştırın:

tar -xf image.tar
for d in `find * -maxdepth 0 -type d`; do cd $d; tar -xf ./layer.tar; cd ..; done

Bellekten Kimlik Bilgileri

Docker konteynerini bir ana bilgisayar içinde çalıştırdığınızda, ana bilgisayardan sadece ps -ef komutunu çalıştırarak konteynerde çalışan işlemleri görebilirsiniz.

Bu nedenle (root olarak), ana bilgisayardan işlemlerin belleğini dökerek ve aşağıdaki örnekte olduğu gibi kimlik bilgilerini arayabilirsiniz.

AWS hacklemeyi sıfırdan kahraman olmak için htARTE (HackTricks AWS Red Team Expert)'i öğrenin!

HackTricks'i desteklemenin diğer yolları: