VDA laboratuvarlarında ikide bir tradecraft’larımızı düzenliyoruz. Bunu genelde test ederek ve araçları kurarak yapıyoruz ve işlerimizi kolay yapan bu araçlar var oldukça paylaşıyor ve araştırıyoruz.
DOCKER Neden Rağbet Görüyor ?
Ne zaman bir araç kullansak özellikle ilk zamanlarda, şu soruları soruyoruz:
- Nereden geliyor ?
- Kendi sistemde çalışıyor mu ?
- Nelere ihtiyacım var ? Yükleyici onları da içeriyor mu ?
- Yapılandırması nasıl oluyor, boot’tan mı başlıyor ve bu bir servis mi ?
- Diğer araçlarla uyumlu mu ?
Bu başlıklar bir yazılımın 3 tane temel yapı taşıdır;
Dağıtım, Kurma ve Kullanım.
Her birinin ince ayrıntısı olan farklı yazılımların kullanılması oldukça ilgi ve bilgi istiyor. Docker ise bu işi kolaylaştırıyor.
İmajlar, dağıtımda size yardımcı olur.
Konteynırlar ise işlemlerle birlikte yardımcı olur. (Bunlar izole edilmiş işlemlerdir.)
Docker, içerik değişiminde ve diğer işlem sorunlarında kolaylık sağlayan sanal bellek adres aralığını kullanır. Çekirdeği kullanırken, ille de çekirdek modüllerin tamamını paylaşmaz. Tamamıyla farklı dosya-sistemleri imajları tarafından sağlanır. İşlemler farklı host adına, farklı sanal ağ arabirimlerine vb. sahip olabilir. İşlemin mantığı tamamıyla farklı bir bilgisayardır.
Temelleri nedir ?
İmajlar kayda alınmaktadır.
- Docker dosyaları İmajı nasıl yükleyeceğinizi yazan talimat text’leriyle gelir.
- İmajlar genel olarak belli dosyalar tarafından ayarlanan birleştirilmiş katmanlardır.
Konteynırlar imajları çalıştırır.
- Her bir konteynır tek servis sağlamalıdır.
- Konteynırlar imajların başındaki yazılabilir katmanlardır.
- Birçok bağlantısı olabilir, her bir konteynır tek imaja bağlıdır.
MacOS’da kurulumu:
brew install docker
Kali’de kurulumu:
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - echo 'deb [arch=amd64]https://download.docker.com/linux/debian buster stable' > /etc/apt/sources.list.d/docker.list apt update apt install docker-ce
Recon’a (bilgi toplama aracı) Hostlar’ın ekran görüntüsünü alması için EYEWITNESS’ı kullanmasını söylüyoruz.
Buradan aracımızı indirelim;
git clone https://github.com/FortyNorthSecurity/EyeWitness
Bu makalede fazla detaya girilmeyecek, bu sadece işin mantığını kavramanız için ilk adım. İmajı klonlanan dizinin içinden kurarak başlatın.
docker build -t eyewitness .
Ve imajı çalıştırın.
docker run \ --rm \ # Sistem dosyalarını konteynırdan kaldırır veya temizler. -it \ # Ekli olmasa bile STDIN'in açık olmasını sağlar. -e DISPLAY=$DISPLAY \ # VNC için DISPLAY değişkenini ayarlar. -v /tmp/.X11-unix:/tmp/.X11-unix \ # Paylaşılan sistem dosyasının arttırılmasını sağlar. -v /tmp/eyewitness:/tmp/EyeWitness \ # Yukarıyla aynı. eyewitness \ # Konteynırda aracı çalıştırmak için kullanılacak kod. options # EyeWitness genel ayarları
EyeWitness girdilerini nasıl elde edeceğiz diyorsanız Nmap’in kullanabilirsiniz. Docker’a uyurlanması için şu kodu yazıyoruz:
docker run --rm -it instrumentisto/nmap
Nping gibi Nmap benzeri bir yardımcı yazılıma ihtiyacınız varsa konteynır giriş noktası olarak belirlemeniz yeterli olacaktır.
docker run --rm -it --entrypoint nping instrumentisto/nmap
Kullanıcı adı bilgisi çekmek için TheHarvester kullanabilirsiniz.
git clone https://github.com/laramies/theHarvester docker build -t harvester . docker run -ti --rm harvester
Oltalama için
evilginx2‘yi kullanabilirsiniz.
git clone https://github.com/kgretzky/evilginx2 docker build . -t evilginx2 # Sonrasında konteynırı çalıştırınız: docker run -it -p 53:53/udp -p 80:80 -p 443:443 evilginx2
Web hostlarını taramak için Nikto kullanabilirsiniz.
git clone https://github.com/sullo/nikto docker build . -t nikto docker run --rm -v $(pwd):/tmp nikto -h http://www.example.com -o /tmp/out.json # Gömülü dizinde çalıştırın ve verileri kaydedin.
İstediğiniz aracı bulamadıysanız hub.docker.com bu adrese bir bakabilirsiniz. Onun haricinde Docker ile alakalı bilgi edinmek için de https://docs.docker.com/ bu dökümantasyonu okuyabilirsiniz.