Docker‘ın, DevOps için çok cazip olması dışında siber güvenlik alanında siber güvenlik uzmanları, sızma testi uzmanları ve siyah-beyaz-mavi-yeşil-kırmızı… (:)) şapkalı hacker‘lar tarafından da tercih ediliğini çokça görüyor ve işlerini görmesi açısından kullanmalarını da öneriyoruz.
Seccops olarak siber güvenlik uzmanları için çeşitli Docker imajları araştırıp, geliştiriyor ve paylaşıyoruz.
Docker bizlere ne imkanı sağlıyor?
Sanal makinelerin inanılmaz kaynaklar ile çalıştığını biliyoruz. Aya gönderilen ve iniş yapan Apollo aracında 2 kB RAM kullanılmışken biz kat ve kat fazlasını sanal makinelerde kullanmak zorunda kalıyoruz… Docker ile kaynak kullanımımızı 2 kB’a kadar indiremeyiz ama sanal makineye kıyaslarsak gözle görülür bir fark göreceksiniz. Docker’ın bizim için en önemli getirilerinden birisi de çok hızlı bir şekilde Kullan-At yapabilmemizdir. Docker ile kullanmak istediğiniz yazılımı saniyeler içerisinde kullanabilir hale getirip işiniz bittikten sonra herhangi bir veri kalmadan silebilir veya ihtiyacınız olursa tekrar saniyeler içerisinde çalıştırabilirsiniz. Docker, sanal makineler gibi sürekli olarak sizlerden sabit kaynak almak yerine ihtiyacınız olduğunda az bir kaynak alarak işiniz bittiğinde hemen aldığı kaynağı yerine bırakır.
Bu yazıyı okumaya başlamadan önce adeta “Docker’a Kucak Açın” niteliğinde olan “Docker nedir? Docker Kurulumu ve Kullanım Örneği” isimli yazımızı okuyarak Docker hakkında bilgi edinebilirsiniz. Önceki yazımızı okuduysanız ve ilginizi de çekmişse, dolayısıyla Docker’a karşı merakınız da artmış olabilir. Siber güvenlik uzmanları Docker gibi bir yazılım çözümünü ne için ve nasıl kullanabilir?
Eğer anlama ve kurulum vs. süreçlerini tamamladıysanız artık sızma testlerinde Docker kullanmayla ilgili örnek uygulamalar yapma zamanı gelmiştir.
Sızma testleri için kullanılan Kali Linux dağıtımını neredeyse bilmeyen yoktur. Bunun yanı sıra, SRT (Seccops Red Team) ekibi olarak Kali’den ziyade sızma testi için aktif olarak ParrotSec OS kullanmaktayız. “Neden?” diye sorarsanız ParrotSec OS hakkında H4cktimes‘daki yazıyı okuyabilirsiniz: https://h4cktimes.com/arastirma-ve-analiz/parrot-security-os-nedir.html
ParrotSec OS üzerine Docker 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
ParrotSec OS Docker İmajının Kurulumu
Herhangi bir Linux dağıtımında kurulu olan Docker ile aşağıdaki komutlarla ParrotSec OS’i çok hızlı bir şekilde kurabilirsiniz.
$ docker run –rm -it –name parrot parrotsec/parrot
veya
$ docker run –rm -it –name parrotcore parrotsec/parrot-core
Sızma testlerinde kullandığımız bazı araçları Docker ile nasıl kurabiliriz bunlara değinelim.
Eyewitness Docker Kurulumu & Çalıştırma
Sistemler üzerinden port tarama, açık servisleri keşfetmek ve bulduğumuz servislerde varsayılan kullanıcı adı ve parola bilgilerini denemek için birden fazla yazılım kullanabiliyoruz. EyeWitness aracı bu bahsettiğimiz tüm bu işlemleri tek başına yapabilmektedir. (https://www.christophertruncer.com/eyewitness-usage-guide/)
$ docker run –rm -it -e DISPLEY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -v /tmp/eyewitness:/tmp/EyeWitness seccops/eyewitness options
Örnek olması açısından parametreleri açıklamak gerekirse:
–rm: Konteynerdan çıktığımız zaman dosya sisteminden tüm her şeyin silinmesini sağlıyoruz
-it: Terminalimiz ile konteyner arasında aktif bir bağlantı sağlıyoruz
-e: DISPLEY=$DISPLAY \ # VNC için gerekli olan DISPLAY’i ayarlıyoruz
-v: /tmp/.X11-unix:/tmp/.X11-unix \ # Konteyner ile Fiziksel makinedeki dizinler arasında bağlantı sağlıyoruz
-v: /tmp/eyewitness:/tmp/EyeWitness \ # Konteyner ile Fiziksel makinedeki dizinler arasında bağlantı sağlıyoruz
seccops/eyewitness: # Docker Hub’da bulunan eyewitness imajını çekiyoruz
options: Eyewitness’ın Help parametresi
Nmap Docker Kurulumu & Çalıştırma
Özellikle port taramak ve çeşitli güvenlik denetimleri yapabilmek için Nmap’i sıklıkla kullanıyoruz. Nmap için hazırlamış olduğumuz Docker imajını her işletim sisteminde gerekli olduğunda sorunsuz olarak çalıştırıp/kullanıp kaldırabiliriz.
$ docker run –rm -it seccops/nmap
Kullanım Örneği: $ docker run –rm -it seccops/nmap -sS -sV -sC -p 0-65535 -T4 <TARGET>
Nmap’in içinde yer alan Nping gibi bir yan program kullanmanız gerekiyorsa onu da aşağıdaki gibi sadece “–entrypoint” parametresiyle belirtmeniz yeterli olacaktır.
$ docker run –rm -it –entrypoint nping seccops/nmap
TheHarvester Docker Kurulumu & Çalıştırma
TheHarvester, hedef kurumun çalışanlarına ait mail adreslerini ve kurumun subdomain’lerini keşfetmek için kullanılan bilgi toplama aracıdır.
$ docker run –rm -it seccops/theharvester -d seccops.com -l 500 -b google
Evilginx 2 Docker Kurulumu & Çalıştırma
Sosyal mühendislik saldırılarında en çok kullanılan yöntemlerden birisi oltalamadır (phishing). Oltalama saldırılarında kullanılabilecek bir araç olan Evilginx 2, bu konuda gelişmiş bir framework’tür.
$ docker run –rm -it -p 53:53/udp -p 80:80 -p 443:443 seccops/evilginx2
Nikto Docker Kurulumu & Çalıştırma
Nikto, temel düzeyde web sunucu güvenlik testlerinde kullandığımız araçlardan birisidir.
Kullanım örnekleri: https://www.ismailsaygili.com.tr/2012/10/nikto-vulnerability-scanner-kullanm.html
$ git clone https://github.com/sullo/nikto
$ docker build -t seccops/nikto .
$ docker run –rm -v $(pwd):/tmp seccops/nikto -h https://www.seccops.com -o /tmp/out.json
WPScan Docker Kurulumu & Çalıştırma
WordPress CMS kullanan web siteleri, internet üzerinde oldukça yaygın olarak kullanılmaktadır. WordPress tabanlı web sitelerinin güvenlik açıklarını tespit edebilmek için sıkça WPScan aracı kullanılmaktadır.
$ docker run –rm -it wpscanteam/wpscan –url https://www.seccops.com/
Metasploit Framework Docker Kurulumu & Çalıştırma
Rapid7’in geliştirdiği bizlerin de çok sevdiği uygulamalardan birisi olan Metasploit’i en baştan doğru bir şekilde kurmak oldukça fazla zamanımızı alabiliyor. Her seferinde hatasız olarak kurmak ve işimiz bittiğinde temiz bir şekilde kaldırabilmemiz için Docker bizlere yardımcı oluyor.
$ docker run –rm -it –name metasploit metasploitframework/metasploit-framework
Bu örneği yapabilmek adına sizler için zafiyetli uygulama (LibSSH) içeren bir Docker imajı bulduk. Aşağıdaki komutla hazırlamış olduğumuz imajı konteyner haline getirebilirsiniz.
$ docker run –rm -it –name libssh -p 2222:22 vulhub/libssh:0.8.1
Saldırı yapacağımız ortam olarak ParrotSec OS kullanacağız. Konteynerini oluşturmak için:
$ docker run –rm -it –name parrot parrotsec/parrot
Zafiyetli konteynera saldırabilmemiz için IP adresini öğrenmemiz gerek. Bunun için aşağıdaki adımları uygulayınız.
$ docker ps -a # tüm konteynerlar listelenir
$ docker inspect <Konteyner ID> | grep “IPAddress” # Konteyner’ın IP adresi öğrenilir
ParrotSec OS konteynerimizden Nmap uygulamasıyla port taraması başlatalım.
Konteyner içerisinde çalışan sistemde sadece 22 olan SSH servisinin port’u bulunuyor ve servis üzerinde uygulama olarak da LibSSH çalıştığını bize söylüyor. LibSSH uygulamasının ilgili versiyonunda yakın zamanda çıkmış olan bir zafiyet ile kimlik doğrulamasını atlatarak sisteme erişim elde edebiliyoruz.
ParrotOS konteynerimizden Metasploit’i çalıştıralım. Amacımız, Metasploit içerisindeki “auxiliary/scanner/ssh/libssh_auth_bypass” modülünü kullanarak saldırıyı gerçekleştirmek.
Gerekli olan tüm kısımları yukarıdaki gibi doldurun ve “run” diyerek modülü çalıştırın.
Akıllarda şüphe kalmaması için aşağıda yer alan komutu çalıştırarak LibSSH zafiyeti bulunan konteynerimizde oluşan logları görebilirsiniz.
$ docker logs <Konteyner ID>
Bu blog yazısıyla veya Docker ile ilgili sorularınız olursa bizlere ulaşabilirsiniz.