Laboratuvar: Kötü Amaçlı Kapsayıcılar
Konteynerler yazılım dağıtımını çok daha kolay hale getirirken, kötü amaçlı yazılımların dağıtımını da kolaylaştırdı. PHP ile yazılmış ve bir Docker konteynerinde konuşlandırılmış dahili bir şirket web sitemiz olduğunu düşünün. Docker derleme sisteminin katmanlı yapısı göz önüne alındığında, bu uygulama oluşturduğu imajların güvenli olduğuna güvenmektedir. İmajın içine kötü amaçlı bir şey yerleştirmenin ne kadar kolay olduğunu görmek için aşağıdaki Docker dosyasına bir göz atın:
FROM php:apache COPY shell.php /var/www/html/shell.php COPY index.php /var/www/html/index.php |
shell.php PHP ile yazılmış ve web sunucusunun izinleriyle çalışacak bir kabuktur. Bu, /var/www/html dizinini okuyabileceği ve yazabileceği (ancak üzerine yazamayacağı) anlamına gelir.
Bu görüntüyü indirelim, derleyelim ve çalıştıralım. malicious.zip dosyasını indirin, yazma erişiminizin olduğu bir dizinde açın ve kabuğunuzda bu dizine gidin.
PS C:\Users\rxt1077\it230\labs\malicious> docker build -t malicious . [+] Building 32.4s (8/8) FINISHED => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 134B 0.0s => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [internal] load metadata for docker.io/library/php:apache 32.2s => [1/3] FROM docker.io/library/php:apache@sha256:f1c5dba2a2981f91ec31b9596d4165acd0b46e58382e47622487e130a21e420d 0.0s => [internal] load build context 0.0s => => transferring context: 61B 0.0s => CACHED [2/3] COPY shell.php /var/www/html/shell.php 0.0s => CACHED [3/3] COPY index.php /var/www/html/index.php 0.0s => exporting to image 0.1s => => exporting layers 0.0s => => writing image sha256:e1dc75a91b2e269091069b1e3406a496b4bbfd95b066f970062ea8b3a74d8368 0.0s => => naming to docker.io/library/malicious 0.0s PS C:\Users\rxt1077\it230\labs\malicious> docker run -p 8080:80 malicious AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message [Wed Jul 13 02:25:57.082000 2022] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.54 (Debian) PHP/8.1.8 configured -- resuming normal operations [Wed Jul 13 02:25:57.082089 2022] [core:notice] [pid 1] AH00094: Command line: 'apache2 -D FOREGROUND' |
Şimdi varsayılan web sayfasını görmek için http://localhost:8080 adresine gidebilmeniz gerekir.
| Öğle yemeğinde ne var? |
Şimdi Docker dosyasındaki bilgilere dayanarak, ele geçirilen web sunucusunda bir kabuk edinin.
| Ana sayfadaki izin talebinin çalışmadığını fark ettiniz mi? Kabuğunuzdan, sunucuda timeoff.html adında ve GRANTED metnini içeren yeni bir web sayfası oluşturun. Yeni dosyayı oluşturmak için hangi komutu kullandınız? Şimdi izin linkine tıkladığınızda ne oluyor? |
Yorumlar
Yorum Gönder