kali-linux-docker
Dieses Kali-Linux-Docker-Image bietet eine minimale Basisinstallation der neuesten Version der Kali Linux Rolling Distribution. Diesem Image sind keine Tools hinzugefügt, du musst sie also selbst installieren. Weitere Details zu Kali-Linux-Metapaketen findest du unter https://www.kali.org/news/kali-linux-metapackages/
Docker Hub: https://hub.docker.com/r/nu11secur1ty/kali-linux-docker
Da --squash an den Docker-Daemon übergeben wird, schlägt das build.sh-Skript fehl, falls experimentelle
Funktionen in deinem Daemon nicht aktiviert sind.
Auf Kali geschieht dies über /etc/docker/daemon.json mit folgendem Inhalt:
{
"experimental": true
}
Hinweis: Dies ist nur eine Anforderung für uns bei Offensive Security, um die Image-Größe zu reduzieren, wenn wir ein neues Image auf Docker Hub pushen.
Wenn du für den persönlichen Gebrauch baust, kannst du die --squash-Option in build.sh entfernen.
Tue May 21 13:59:06 EDT 2019
Um das zum Laufen zu bringen, musst du natürlich Docker installieren. Für Docker unter OSX kannst du brew verwenden, während du es für die meisten anderen Distributionen über deinen lokalen Paketmanager installieren kannst. Sobald es installiert und eingerichtet ist, musst du nur noch unser Image aus dem Docker-Repository ziehen:
nu11secur1ty:~ # docker pull nu11secur1ty/kali-linux-docker
nu11secur1ty:~ # docker run -t -i nu11secur1ty/kali-linux-docker /bin/bash
root@7e2a35940eff:/# apt update
root@7e2a35940eff:/# apt dist-update
root@7e2a35940eff:/# apt update && apt install metasploit-framework
root@7e2a35940eff:/# apt update && apt install git
root@7e2a35940eff:/# apt update && apt install vim
root@7e2a35940eff:/# service postgresql start
root@7e2a35940eff:/# ss -ant
root@7e2a35940eff:/# msfdb init
root@7e2a35940eff:/# msfconsole
git clone https://github.com/nu11secur1ty/sqliv2.git
cd sqliv2
. Verwendung Link:sqliv2
. Holen:
git clone https://github.com/nu11secur1ty/nu11secur1ty.git
Link:nu11secur1ty
Wenn du deine eigenen Kali-Images erstellen möchtest, anstatt unsere vorgefertigten zu verwenden, haben wir es dir mit dem folgenden Skript, das auf Kali Linux Docker auf Github gehostet wird, leicht gemacht. Diese Images lassen sich am besten auf einem Linux-System oder einem anderen Betriebssystem erstellen, das debootstrap verwenden kann.
#!/bin/bash
# Install dependencies (debootstrap)
sudo apt-get install debootstrap
# Fetch the latest Kali debootstrap script from git
curl "https://gitlab.com/kalilinux/packages/debootstrap.git;a=blob_plain;f=scripts/kali;hb=HEAD" > kali-debootstrap &&\
sudo debootstrap kali ./kali-root http://http.kali.org/kali ./kali-debootstrap &&\
# Import the Kali image into Docker
sudo tar -C kali-root -c . | sudo docker import - kalilinux/kali &&\
sudo rm -rf ./kali-root &&\
# Test the Kali Docker Image
docker run -t -i kalilinux/kali cat /etc/debian_version &&\
echo "Build OK" || echo "Build failed!"


Es gibt einen docker exec-Befehl, mit dem du dich mit einem bereits laufenden Container verbinden kannst.
docker ps, um den Namen des vorhandenen Containers zu erhaltendocker exec -it <container name> /bin/bash, um eine Bash-Shell im Container zu erhaltendocker exec -it <container name> <command>, um den von dir angegebenen Befehl im Container auszuführen.Der richtige Weg, einen Befehl in einem Container auszuführen, ist: docker-compose run <container name> <command>. Um zum Beispiel eine Shell in deinen Web-Container zu bekommen, könntest du docker-compose run web /bin/bash ausführen.
Um eine Reihe von Befehlen auszuführen, musst du sie mit einer Shell in einen einzigen Befehl verpacken. Zum Beispiel: docker-compose run <name in yml> sh -c '<command 1> && <command 2> && <command 3>'
In manchen Fällen möchtest du vielleicht einen Container ausführen, der nicht durch eine docker-compose.yml-Datei definiert ist, zum Beispiel um eine neue Container-Konfiguration zu testen. Verwende docker run, um einen neuen Container mit einem bestimmten Image zu starten: docker run -it <image name> <command>
Der Befehl docker run akzeptiert Kommandozeilenoptionen, um Volume-Mounts, Umgebungsvariablen, das Arbeitsverzeichnis und mehr festzulegen.
Eine Shell in einem Build-Container zu erhalten, um beliebige Operationen auszuführen, ist der einfachste Ansatz. Du möchtest einfach Zugriff auf den cli-Container erhalten, den wir in der Compose-Datei definiert haben. Der Befehl docker-compose -f build.yml run cli startet eine Instanz des phase2/devtools-build-Images und führt für dich eine Bash-Shell aus. Von dort aus kannst du drush, grunt oder was auch immer dein kleines Herz begehrt, verwenden.
Ein weiteres Konzept in der Docker-Welt ist es, einen Container zu starten, um einen einzelnen Befehl auszuführen, und dem Container zu erlauben, zu stoppen, wenn der Befehl abgeschlossen ist. Das ist großartig, wenn du Befehle nur selten ausführst oder nicht möchtest, dass ein weiterer Container ständig läuft. Das Ausführen deiner Befehle in Containern auf diese Weise eignet sich auch gut für Befehle, die keine Dateien auf dem Dateisystem erzeugen, oder wenn sie es tun, schreiben sie diese Dateien auf Volumes, die in den Container eingehängt sind.
Der drush-Container, der in der Beispiel-Datei build.yml definiert ist, ist ein Container, der speziell dafür entwickelt wurde, drush in einem einzigen Arbeitsverzeichnis auszuführen und nur die Befehle als Argumente entgegenzunehmen. Dieser Ansatz ermöglicht es uns, einen schnellen und einfachen Mechanismus bereitzustellen, um jeden drush-Befehl wie sqlc, cache-rebuild und andere in deiner Drupal-Site schnell und einfach auszuführen.
Es gibt auch andere Beispiele für einen grunt-Befehlscontainer, ähnlich wie drush, und einen noch spezifischeren Befehlscontainer, der einen einzelnen Befehl ausführt, drush make, um die Site aus einer Make-/Dependency-Datei zu erstellen.
Der webapp-Ordner auf dem Host wird in das Apache-Root-Verzeichnis des Containers eingehängt.