kali-linux-docker
Cette image Docker Kali Linux fournit une installation de base minimale de la dernière version de la distribution Rolling Kali Linux. Aucun outil n'est ajouté à cette image, vous devrez donc les installer vous-même. Pour plus de détails sur les métapaquets Kali Linux, consultez https://www.kali.org/news/kali-linux-metapackages/
Docker Hub : https://hub.docker.com/r/nu11secur1ty/kali-linux-docker
En raison du passage de --squash au démon Docker, si les fonctionnalités expérimentales
ne sont pas activées dans votre démon, le script build.sh échouera.
Sur Kali, cela se fait via /etc/docker/daemon.json avec le contenu suivant :
{
"experimental": true
}
Remarque : Ceci n'est une exigence que pour nous chez Offensive Security afin de réduire la taille de l'image lorsque nous poussons une nouvelle image sur Docker Hub.
Si vous construisez pour un usage personnel, vous pouvez supprimer l'option --squash dans build.sh
Tue May 21 13:59:06 EDT 2019
Évidemment, pour que cela fonctionne, vous devez installer Docker. Pour Docker sur OSX, vous pouvez utiliser brew, tandis que pour la plupart des autres distributions, vous pouvez l'installer avec votre gestionnaire de paquets local. Une fois installé et configuré, il suffit de récupérer notre image depuis le dépôt Docker :
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
. utilisation lien : sqliv2
. Obtenir :
git clone https://github.com/nu11secur1ty/nu11secur1ty.git
lien : nu11secur1ty
Si vous souhaitez construire vos propres images Kali plutôt que d'utiliser nos images préfabriquées, nous avons facilité la tâche avec le script suivant hébergé sur Kali Linux Docker sur Github. Ces images sont mieux construites sur un système Linux ou tout autre OS pouvant utiliser debootstrap.
#!/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!"


Il existe une commande docker exec qui peut être utilisée pour se connecter à un conteneur déjà en cours d'exécution.
docker exec -it <nom du conteneur> /bin/bash pour obtenir un shell bash dans le conteneurdocker exec -it <nom du conteneur> <commande> pour exécuter n'importe quelle commande que vous spécifiez dans le conteneur.La manière appropriée d'exécuter une commande dans un conteneur est : docker-compose run <nom du conteneur> <commande>. Par exemple, pour obtenir un shell dans votre conteneur web, vous pouvez exécuter docker-compose run web /bin/bash
Pour exécuter une série de commandes, vous devez les encapsuler dans une seule commande en utilisant un shell. Par exemple : docker-compose run <nom dans yml> sh -c '<commande 1> && <commande 2> && <commande 3>'
Dans certains cas, vous pouvez vouloir exécuter un conteneur qui n'est pas défini par un fichier docker-compose.yml, par exemple pour tester une nouvelle configuration de conteneur. Utilisez docker run pour démarrer un nouveau conteneur avec une image donnée : docker run -it <nom de l'image> <commande>
La commande docker run accepte des options en ligne de commande pour spécifier les montages de volumes, les variables d'environnement, le répertoire de travail, etc.
Obtenir un shell dans un conteneur de construction pour exécuter n'importe quelle opération est l'approche la plus simple. Vous voulez simplement accéder au conteneur cli que nous avons défini dans le fichier compose. La commande docker-compose -f build.yml run cli démarrera une instance de l'image phase2/devtools-build et exécutera un shell bash pour vous. À partir de là, vous êtes libre d'utiliser drush, grunt ou tout ce que votre petit cœur désire.
Un autre concept dans le monde Docker est de démarrer un conteneur pour exécuter une seule commande et permettre au conteneur de s'arrêter lorsque la commande est terminée. C'est idéal si vous exécutez des commandes rarement, ou si vous ne voulez pas avoir un autre conteneur constamment en cours d'exécution. Exécuter vos commandes sur des conteneurs de cette manière est également bien adapté aux commandes qui ne génèrent pas de fichiers sur le système de fichiers ou, si elles le font, elles écrivent ces fichiers sur des volumes montés dans le conteneur.
Le conteneur drush défini dans le fichier exemple build.yml est un conteneur conçu spécifiquement pour exécuter drush dans un seul répertoire de travail en prenant uniquement les commandes comme arguments. Cette approche nous permet de fournir un mécanisme rapide et facile pour exécuter n'importe quelle commande drush, comme sqlc, cache-rebuild, et d'autres, dans votre site Drupal rapidement et facilement.
Il existe également d'autres exemples d'un conteneur de commande grunt similaire à drush et un conteneur de commande encore plus spécifique autour de l'exécution d'une seule commande, drush make pour construire le site à partir d'un fichier make/dépendance.
Le dossier webapp sur l'hôte sera monté dans la racine Apache du conteneur