Docker Forensics

AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile!

HackTricks'i desteklemenin diğer yolları:

Konteyner Değişikliği

Bazı docker konteynerinin tehlikeye atıldığına dair şüpheler var:

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 konteyner üzerinde yapılan değişiklikleri görüntülemek için şunu kullanabilirsiniz:

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 anlamına gelir ve A, Eklendi anlamına gelir. Eğer /etc/shadow gibi ilginç bir dosyanın değiştirildiğini fark ederseniz, kötü amaçlı faaliyetleri kontrol etmek için dosyayı konteynerden indirebilirsiniz:

docker cp wordpress:/etc/shadow.

Ayrıca, yeni bir konteyner çalıştırarak ve dosyayı ondan çı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 dosyanın eklendiğini tespit ederseniz, konteynıra erişebilir ve kontrol edebilirsiniz:

docker exec -it wordpress bash

Resim Modifikasyonları

Size bir dışa aktarılmış docker imajı verildiğinde (muhtemelen .tar formatında) container-diff kullanarak modifikasyonların özetini çıkarabilirsiniz:

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ü çözümleyebilir ve şüpheli dosyaları aramak için değişiklik geçmişinde bulabileceğiniz bloklara erişebilirsiniz:

tar -xf image.tar

Temel Analiz

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

docker inspect <image>

Ayrıca şu komutla değişikliklerin özet tarihçesini alabilirsiniz:

docker history --no-trunc <image>

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

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>

Dalış

Docker görüntülerinde eklenen/değiştirilen dosyaları bulmak için dive aracını da kullanabilirsiniz (indirmek için releases sayfasına gidin):

#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, Docker görüntülerinin farklı blokları arası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 gerekir. Görüntünün tüm katmanlarını açmak için görüntünün açıldığı dizinden şu komutu çalıştırarak açabilirsiniz:

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 makinede çalıştırdığınızda, ana makineden konteynerde çalışan işlemleri görebilirsiniz sadece ps -ef komutunu çalıştırarak

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

Sıfırdan kahraman olmak için AWS hackleme becerilerini öğrenin htARTE (HackTricks AWS Red Team Expert)!

HackTricks'ı desteklemenin diğer yolları:

Last updated