Un dockerfile pour DVWA

Damn Vulnerable Web Application

Le confinement et le télétravail ont obligé les professionnels à se concentrer sur la sécurité de leur système d’information. Et dans le même temps, les organismes de formations à me faire appel…

J’en profite donc pour partager un dockerfile pour DVWA que j’ai « amélioré » pour permettre à mes stagiaires d’exercer leurs talents de pen-testers…

N.B. DVWA est une application web avec des exercices pour les pen-testeurs…


Mon Dockerfile:

FROM vulnerables/web-dvwa
ENV DEBIAN_FRONTEND noninteractive
# on augmente le nombre de lignes du textarea du hack XSS (Stored)
RUN sed -i 's/maxlength=\\"50\\"/maxlength=\\"200\\"/' /var/www/html/vulnerabilities/xss_s/index.php
# stretch est passé des dépôts officiels aux archives debian
RUN sed -i /security/d /etc/apt/sources.list
RUN sed -i /stretch-updates/d /etc/apt/sources.list
RUN sed -i s/deb.debian.org/archive.debian.org/g /etc/apt/sources.list
RUN apt update 
# on installe le serveur ssh, vim, et netcat pour les hacks
RUN apt install -y vim openssh-server netcat wget
# on preconfigure phpmyadmin
RUN echo "phpmyadmin phpmyadmin/dbconfig-install boolean true" | debconf-set-selections
RUN echo "phpmyadmin phpmyadmin/mysql/admin-pass password ''" | debconf-set-selections
RUN echo "phpmyadmin phpmyadmin/reconfigure-webserver multiselect apache2" | debconf-set-selections
# on installe phpmyadmin
RUN chown -R mysql:mysql /var/lib/mysql /var/run/mysqld;service mysql start; apt install -y phpmyadmin
# on autorise l'accès depuis l'exterieur à l'utilisateur app
RUN sed -i  's/bind-address/#bind-address/' /etc/mysql/mariadb.conf.d/50-server.cnf
RUN chown -R mysql:mysql /var/lib/mysql /var/run/mysqld;service mysql start; mysql -e "GRANT ALL ON dvwa.* to app@'%' IDENTIFIED BY 'vulnerables'";
# on modifie php.ini en suivant les recommandations de dvwa
RUN sed -i 's/allow_url_include = Off/allow_url_include = On/' /etc/php/7.0/apache2/php.ini
# on permet à root de se connecter en ssh
RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
# on rajoute le serveur ssh au fichier main.sh
RUN sed -i "3iecho '[+] Starting ssh...'" main.sh
RUN sed -i '4iservice ssh start' main.sh
RUN sed -i '5i\ ' main.sh
# on donne vulnerables comme mot de passe à root
RUN echo "root:vulnerables" | chpasswd

Il ne vous reste plus qu’à construire votre image (docker build) et à la lancer (docker run)…

Vous avez de quoi faire des exploits, j’en suis sûr !

P.S. j’ai une image prête à l’emploi. N’hésitez pas à me contacter.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *