{"id":1110,"date":"2021-04-25T12:35:33","date_gmt":"2021-04-25T10:35:33","guid":{"rendered":"https:\/\/blog.tiraquelibras.com\/?p=1110"},"modified":"2022-01-31T12:25:19","modified_gmt":"2022-01-31T11:25:19","slug":"web-application-pentest-labs-usando-docker","status":"publish","type":"post","link":"https:\/\/blog.tiraquelibras.com\/?p=1110","title":{"rendered":"Web Application Pentest Labs usando Docker"},"content":{"rendered":"\n<p>Para aprender y entrenar nuestras habilidades en&nbsp;<em>Pentesting<\/em>&nbsp;sobre aplicaciones Web existen muchas herramientas distintas. En ocasiones desplegar estos entornos requieren de instalar software que dejan nuestra m\u00e1quina llena de software que posiblemente no utilicemos para nada m\u00e1s y, lo que es peor, vulnerable a ataques.<\/p>\n\n\n\n<p>Para facilitarnos la vida podemos desplegar todos estos entornos en&nbsp;<em>Containers<\/em>&nbsp;de&nbsp;<strong>Docker<\/strong>&nbsp;sin software de m\u00e1s corriendo en la misma m\u00e1quina. Tambi\u00e9n podr\u00edamos desplegar m\u00e1quinas virtuales pensadas para este fin, pero con&nbsp;<em>Docker<\/em>&nbsp;conseguiremos tener lo mismo con un consumo m\u00ednimo de recursos en el sistema.<\/p>\n\n\n\n<p>Personalmente, y tras haberlo probado, me parece la forma m\u00e1s limpia y c\u00f3moda de poder hacer uso de estas aplicaciones, sin riesgo a fallos en la instalaci\u00f3n y dejando la computadora principal limpia de programas innecesarios para su uso diario.<\/p>\n\n\n\n<p>Vamos al l\u00edo!!!<\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_76 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Tabla de contenidos<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-69f9e270aa711\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-69f9e270aa711\"  aria-label=\"Alternar\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1 external external_icon\" href=\"https:\/\/blog.tiraquelibras.com\/?p=1110\/#Consideraciones_previas\"  rel=\"nofollow\" target=\"_blank\">Consideraciones previas<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2 external external_icon\" href=\"https:\/\/blog.tiraquelibras.com\/?p=1110\/#Instalar_Docker\"  rel=\"nofollow\" target=\"_blank\">Instalar Docker<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3 external external_icon\" href=\"https:\/\/blog.tiraquelibras.com\/?p=1110\/#Debian\"  rel=\"nofollow\" target=\"_blank\">Debian<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4 external external_icon\" href=\"https:\/\/blog.tiraquelibras.com\/?p=1110\/#Fedora\"  rel=\"nofollow\" target=\"_blank\">Fedora<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5 external external_icon\" href=\"https:\/\/blog.tiraquelibras.com\/?p=1110\/#Desplegar_aplicaciones\"  rel=\"nofollow\" target=\"_blank\">Desplegar aplicaciones<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6 external external_icon\" href=\"https:\/\/blog.tiraquelibras.com\/?p=1110\/#DVWA\"  rel=\"nofollow\" target=\"_blank\">DVWA<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7 external external_icon\" href=\"https:\/\/blog.tiraquelibras.com\/?p=1110\/#OWASP_Mutillidae_II\"  rel=\"nofollow\" target=\"_blank\">OWASP Mutillidae II<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8 external external_icon\" href=\"https:\/\/blog.tiraquelibras.com\/?p=1110\/#WebGoat\"  rel=\"nofollow\" target=\"_blank\">WebGoat<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9 external external_icon\" href=\"https:\/\/blog.tiraquelibras.com\/?p=1110\/#bWAPP\"  rel=\"nofollow\" target=\"_blank\">bWAPP<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10 external external_icon\" href=\"https:\/\/blog.tiraquelibras.com\/?p=1110\/#Metodo_alternativo\"  rel=\"nofollow\" target=\"_blank\">M\u00e9todo alternativo<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11 external external_icon\" href=\"https:\/\/blog.tiraquelibras.com\/?p=1110\/#Conclusiones\"  rel=\"nofollow\" target=\"_blank\">Conclusiones<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12 external external_icon\" href=\"https:\/\/blog.tiraquelibras.com\/?p=1110\/#Enlaces_de_interes\"  rel=\"nofollow\" target=\"_blank\">Enlaces de inter\u00e9s<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\" id=\"consideraciones-previas\"><span class=\"ez-toc-section\" id=\"Consideraciones_previas\"><\/span>Consideraciones previas<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Vamos a realizar el despliegue de&nbsp;<em>Containers<\/em>&nbsp;de Docker en nuestro sistema, pero recuerda,&nbsp;<span class=\"has-inline-color has-vivid-red-color\"><strong>es muy importante no dejar estos encendidos exponiendo sus vulnerabilidades al exterior, y por lo tanto comprometiendo nuestro sistema principal.<\/strong><\/span><\/p>\n\n\n\n<p>Debido a lo anterior, todos los comandos que vamos a ver se ejecutan para para iniciar los&nbsp;<em>Containers<\/em>&nbsp;en modo&nbsp;<em><strong>interactivo<\/strong><\/em>&nbsp;y una vez finalicemos&nbsp;<em><strong>se borrar\u00e1n del sistema<\/strong><\/em>&nbsp;perdiendo cualquier configuraci\u00f3n que realicemos. Recomendamos hacerlo as\u00ed para no dejar expuesto ning\u00fan servicio vulnerable,&nbsp;<strong>quedando a responsabilidad del lector utilizar otro comando distinto<\/strong>.<\/p>\n\n\n\n<p>Seguramente la versi\u00f3n de&nbsp;<em><strong>Docker<\/strong><\/em>&nbsp;que instalamos de los repositorios no es la m\u00e1s actual, pero si la estable para el sistema que vayamos a utilizar. Queda en manos del usuario final decidir cu\u00e1l instala.<\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"instalar-docker\"><span class=\"ez-toc-section\" id=\"Instalar_Docker\"><\/span>Instalar Docker<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Lo primero que debemos de hacer es instalar&nbsp;<strong>Docker<\/strong>&nbsp;en nuestro sistema.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"debian\"><span class=\"ez-toc-section\" id=\"Debian\"><\/span>Debian<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>El comando a ejecutar en&nbsp;<em>Debian<\/em>&nbsp;ser\u00e1:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">sudo apt update\nsudo apt full-upgrade\nsudo apt install docker.io<\/code><\/pre>\n\n\n\n<p>Confirmamos la instalaci\u00f3n consultando su versi\u00f3n:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">docker --version<\/code><\/pre>\n\n\n\n<p>En nuestro caso tenemos la versi\u00f3n&nbsp;<em><strong>18.09.1, build 4c52b90<\/strong><\/em>.<\/p>\n\n\n\n<p>Por defecto en nuestro caso ya estar\u00eda arrancado y agregado al inicio del sistema, pero seg\u00fan la distribuci\u00f3n utilizada puede no ser as\u00ed, teniendo que ejecutar los siguientes comandos:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">sudo systemctl start docker\nsudo systemctl enable docker<\/code><\/pre>\n\n\n\n<p>Ahora solo nos queda permitir a nuestro usuario del sistema usar el software con todos los permisos, ya que de lo contrario nos dar\u00e1 un error ya en la descarga de un&nbsp;<em>Container<\/em>. Lo agregamos al grupo de&nbsp;<em>docker<\/em>&nbsp;con el siguiente comando:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">sudo usermod -aG docker $USER<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"fedora\"><span class=\"ez-toc-section\" id=\"Fedora\"><\/span>Fedora<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>En el caso de&nbsp;<em>Fedora<\/em>&nbsp;no se encuentra en sus repositorios oficiales, por lo que hay que seguir los pasos de la documentaci\u00f3n oficial de&nbsp;<a href=\"https:\/\/docs.docker.com\/engine\/install\/fedora\/\" class=\"external external_icon\" rel=\"nofollow\" target=\"_blank\">Docker<\/a>.<\/p>\n\n\n\n<p>Para no alargar esta entrada del blog os dejo el c\u00f3mo hacerlo en el enlace anterior, aunque te adelanto que es muy sencillo.<\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"desplegar-aplicaciones\"><span class=\"ez-toc-section\" id=\"Desplegar_aplicaciones\"><\/span>Desplegar aplicaciones<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Con&nbsp;<strong>Docker<\/strong>&nbsp;podemos desplegar multitud de aplicaciones, pero vamos a ver solo unas pocas a continuaci\u00f3n. En el \u00faltimo apartado mostramos una forma alternativa de desplegar estas y muchas otras m\u00e1s mediante un script hecho en&nbsp;<em>Bash<\/em>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"dvwa\"><span class=\"ez-toc-section\" id=\"DVWA\"><\/span>DVWA<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Lar archiconocida&nbsp;<strong>Damn Vulnerable Web Application<\/strong>&nbsp;es una aplicaci\u00f3n basada en PHP y MySQL, el cual permite aplicar distintos niveles de seguridad y difucultad para nuestra formaci\u00f3n y\/o entrenamiento.<\/p>\n\n\n\n<p>Podemos buscarlo con el siguiente comando:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ docker search web-dvwa\nNAME                   DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED\nvulnerables\/web-dvwa   Damn Vulnerable Web App (DVWA) is a PHP\/MySQ\u2026   154                                     [OK]<\/code><\/pre>\n\n\n\n<p>O desde este enlace de&nbsp;<a href=\"https:\/\/hub.docker.com\/r\/vulnerables\/web-dvwa\" class=\"external external_icon\" rel=\"nofollow\" target=\"_blank\">DockerHub<\/a>.<\/p>\n\n\n\n<p>Lo descargamos con el siguiente comando:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">docker pull vulnerables\/web-dvwa<\/code><\/pre>\n\n\n\n<p>Y para finalizar lo arrancamos en modo&nbsp;<em>interactivo<\/em>&nbsp;y para que se borre al finalizar este:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">docker run -it --rm -p 80:80 vulnerables\/web-dvwa<\/code><\/pre>\n\n\n\n<p>Ahora podemos abrir el navegador con la url&nbsp;<a href=\"http:\/\/localhost\" class=\"external external_icon\" rel=\"nofollow\" target=\"_blank\">http:\/\/localhost<\/a>.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"593\" height=\"576\" src=\"https:\/\/blog.tiraquelibras.com\/wp-content\/uploads\/2021\/04\/dvwa-1.png\" alt=\"\" class=\"wp-image-1119\"\/><\/figure><\/div>\n\n\n\n<p>Agregamos las credenciales por defecto para poder crear o resetear la base de datos:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Usuario&nbsp;<strong>admin<\/strong><\/li><li>Contrase\u00f1a&nbsp;<strong>password<\/strong><\/li><\/ul>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"948\" height=\"526\" src=\"https:\/\/blog.tiraquelibras.com\/wp-content\/uploads\/2021\/04\/dvwa-2.png\" alt=\"\" class=\"wp-image-1118\"\/><\/figure><\/div>\n\n\n\n<p>Abajo del todo tenemos un bot\u00f3n que indica&nbsp;<strong>Create \/ Resete Database<\/strong>. Pulsamos en el y acceder\u00edamos a la aplicaci\u00f3n con las mismas credenciales que las indicadas anteriormente.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"939\" height=\"617\" src=\"https:\/\/blog.tiraquelibras.com\/wp-content\/uploads\/2021\/04\/dvwa-3.png\" alt=\"\" class=\"wp-image-1117\"\/><\/figure><\/div>\n\n\n\n<p>Cuando acabemos con la aplicaci\u00f3n podemos pulsar las teclas&nbsp;<em><strong>Ctrl + c<\/strong><\/em>&nbsp;para finalizar y borrar todo el&nbsp;<em>Container<\/em>&nbsp;del sistema.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"owasp-mutillidae-ii\"><span class=\"ez-toc-section\" id=\"OWASP_Mutillidae_II\"><\/span>OWASP Mutillidae II<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Es una aplicaci\u00f3n enfocada a laboratorios de&nbsp;<em>Pentesting<\/em>&nbsp;con docenas de vulnerabilidades deliveradamente configuradas, utilizada en multitud de formaciones, incluso para salones de&nbsp;<em>CTF<\/em>, &#8230;<\/p>\n\n\n\n<p>Vamos a instalar el&nbsp;<em>Container<\/em>&nbsp;de&nbsp;<em>DockerHub<\/em>&nbsp;m\u00e1s actual en estos momentos para&nbsp;<strong>mutillidae 2<\/strong>.<\/p>\n\n\n\n<p>Para buscarla usamos el comando:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ docker search mutillidae_2\nNAME                      DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED\nsantosomar\/mutillidae_2   mutillidae_2  Container for Cybersecurity Tr\u2026   0                                       <\/code><\/pre>\n\n\n\n<p>O desde este enlace de&nbsp;<a href=\"https:\/\/hub.docker.com\/r\/santosomar\/mutillidae_2\" class=\"external external_icon\" rel=\"nofollow\" target=\"_blank\">DockerHub<\/a>.<\/p>\n\n\n\n<p>Lo descargamos con el siguiente comando:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">docker pull santosomar\/mutillidae_2<\/code><\/pre>\n\n\n\n<p>Y para finalizar lo arrancamos en modo interactivo y para que se borre al finalizar este:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">docker run -it --rm -p 81:80 santosomar\/mutillidae_2<\/code><\/pre>\n\n\n\n<p>Ahora podemos abrir el navegador con la url&nbsp;<a href=\"http:\/\/localhost:81\" class=\"external external_icon\" rel=\"nofollow\" target=\"_blank\">http:\/\/localhost:81<\/a>.<\/p>\n\n\n\n<p>Nos mostrar\u00e1 un error debido a que tenemos que&nbsp;<em>instalar o reiniciar<\/em>&nbsp;la base de datos.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"670\" src=\"https:\/\/blog.tiraquelibras.com\/wp-content\/uploads\/2021\/04\/dvwa-4-1024x670.png\" alt=\"\" class=\"wp-image-1116\"\/><\/figure><\/div>\n\n\n\n<p>Una vez lo hagamos, si no se encuentran errores de PHP y MySQL, ya podremos acceder a la aplicaci\u00f3n.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"985\" height=\"631\" src=\"https:\/\/blog.tiraquelibras.com\/wp-content\/uploads\/2021\/04\/dvwa-5.png\" alt=\"\" class=\"wp-image-1115\"\/><\/figure><\/div>\n\n\n\n<p>Cuando acabemos con la aplicaci\u00f3n podemos pulsar las teclas&nbsp;<em><strong>Ctrl + c<\/strong><\/em>&nbsp;para finalizar y borrar todo el&nbsp;<em>Container<\/em>&nbsp;del sistema.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"webgoat\"><span class=\"ez-toc-section\" id=\"WebGoat\"><\/span>WebGoat<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>WebGoat<\/strong>&nbsp;es una aplicaci\u00f3n mantenida por&nbsp;<em><strong>OWASP<\/strong><\/em>&nbsp;dise\u00f1ada para el aprendizaje de Pentesting y seguridad sobre aplicaciones web sobre aplicaciones basadas en&nbsp;<strong>Java<\/strong>.<\/p>\n\n\n\n<p>Podemos buscarlo con el siguiente comando:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ docker search webgoat\nNAME                           DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED\nwebgoat\/webgoat-8.0            Latest development version of WebGoat, see h\u2026   61   <\/code><\/pre>\n\n\n\n<p>O desde el enlace de&nbsp;<a href=\"https:\/\/hub.docker.com\/r\/webgoat\/webgoat-8.0\" class=\"external external_icon\" rel=\"nofollow\" target=\"_blank\">DockerHub<\/a>.<\/p>\n\n\n\n<p>Lo descargamos con el siguiente comando:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">docker pull webgoat\/webgoat-8.0<\/code><\/pre>\n\n\n\n<p>Y para finalizar lo arrancamos en modo interactivo y para que se borre al finalizar este:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">docker run -it --rm -p 8080:8080 -t webgoat\/webgoat-8.0<\/code><\/pre>\n\n\n\n<p>Ahora podemos acceder a la aplicaci\u00f3n en la URL&nbsp;<a href=\"http:\/\/localhost:8080\/WebGoat\/login\" class=\"external external_icon\" rel=\"nofollow\" target=\"_blank\">http:\/\/localhost:8080\/WebGoat\/login<\/a><\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"728\" height=\"488\" src=\"https:\/\/blog.tiraquelibras.com\/wp-content\/uploads\/2021\/04\/dvwa-6.png\" alt=\"\" class=\"wp-image-1114\"\/><\/figure><\/div>\n\n\n\n<p>Primero debemos de registrar un nuevo usuario y ya tendremos acceso al entorno.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"839\" height=\"578\" src=\"https:\/\/blog.tiraquelibras.com\/wp-content\/uploads\/2021\/04\/dvwa-7.png\" alt=\"\" class=\"wp-image-1113\"\/><\/figure><\/div>\n\n\n\n<p>Cuando acabemos con la aplicaci\u00f3n podemos pulsar las teclas&nbsp;<em><strong>Ctrl + c<\/strong><\/em>&nbsp;para finalizar y borrar todo el&nbsp;<em>Container<\/em>&nbsp;del sistema.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"bwapp\"><span class=\"ez-toc-section\" id=\"bWAPP\"><\/span>bWAPP<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>bWAPP<\/strong>&nbsp;o&nbsp;<strong>buggy web application<\/strong>&nbsp;es una aplicaci\u00f3n web insegura con m\u00e1s de 100 vulnerabilidades, que cubren la mayor\u00eda de los errores conocidos incluidos los Top10 del&nbsp;<em>OWASP project<\/em>. Basada en&nbsp;<em>PHP<\/em>&nbsp;y&nbsp;<em>MySQL<\/em>, es multiplataforma e incluso ofrecen la posibilidad de descargarla en una m\u00e1quina virtual ya preparada, aunque nosotros la desplegaremos en un&nbsp;<em>Container<\/em>&nbsp;de&nbsp;<em>Docker<\/em>.<\/p>\n\n\n\n<p>Podemos buscarlo con el siguiente comando:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ docker search bwapp\nNAME                       DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED\n...                           \nsantosomar\/bwapp           bwapp container for Cybersecurity training      1                                       <\/code><\/pre>\n\n\n\n<p>O desde el enlace de&nbsp;<a href=\"https:\/\/hub.docker.com\/r\/santosomar\/bwapp\" class=\"external external_icon\" rel=\"nofollow\" target=\"_blank\">DockerHub<\/a><\/p>\n\n\n\n<p>Lo descargamos con el siguiente comando:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">docker pull santosomar\/bwapp<\/code><\/pre>\n\n\n\n<p>Lo arrancamos con el siguiente comando:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">docker run -it --rm -p 8080:80 santosomar\/bwapp<\/code><\/pre>\n\n\n\n<p>Ahora debemos de instalar la aplicaci\u00f3n accediendo a la URL&nbsp;<a href=\"http:\/\/localhost:8080\/install.php\" class=\"external external_icon\" rel=\"nofollow\" target=\"_blank\">http:\/\/localhost:8080\/install.php<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"696\" height=\"534\" src=\"https:\/\/blog.tiraquelibras.com\/wp-content\/uploads\/2021\/04\/dvwa-8.png\" alt=\"\" class=\"wp-image-1112\"\/><\/figure>\n\n\n\n<p>Si no muestra error alguno ya podr\u00edamos acceder a la aplicaci\u00f3n con las siguientes credenciales por defecto, e indicando en livel de seguridad que queremos aplicar:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>URL login&nbsp;<a href=\"http:\/\/localhost:8080\/login.php\" class=\"external external_icon\" rel=\"nofollow\" target=\"_blank\">http:\/\/localhost:8080\/login.php<\/a><\/li><li>Usuario&nbsp;<strong>bee<\/strong><\/li><li>Contrase\u00f1a&nbsp;<strong>bug<\/strong><\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"661\" src=\"https:\/\/blog.tiraquelibras.com\/wp-content\/uploads\/2021\/04\/dvwa-9-1024x661.png\" alt=\"\" class=\"wp-image-1111\"\/><\/figure>\n\n\n\n<p>Cuando acabemos con la aplicaci\u00f3n podemos pulsar las teclas&nbsp;<em><strong>Ctrl + c<\/strong><\/em>&nbsp;para finalizar y borrar todo el&nbsp;<em>Container<\/em>&nbsp;del sistema.<\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"m\u00e9todo-alternativo\"><span class=\"ez-toc-section\" id=\"Metodo_alternativo\"><\/span>M\u00e9todo alternativo<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Tambi\u00e9n podemos utilizar un m\u00e9todo alternativo mediante el uso de&nbsp;<strong>PentestLab Management Script<\/strong>, el cual nos permite desplegar las aplicaciones explicadas y varias m\u00e1s de forma mucho m\u00e1s sencilla y r\u00e1pida.<\/p>\n\n\n\n<p>Las aplicaciones disponibles son:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>bwapp &#8211; bWAPP PHP\/MySQL based from itsecgames.com<\/li><li>webgoat7 &#8211; OWASP WebGoat 7.1<\/li><li>webgoat8 &#8211; OWASP WebGoat 8.0<\/li><li>webgoat81 &#8211; OWASP WebGoat 8.1<\/li><li>dvwa &#8211; Damn Vulnerable Web Application<\/li><li>mutillidae &#8211; OWASP Mutillidae II<\/li><li>juiceshop &#8211; OWASP Juice Shop<\/li><li>vulnerablewordpress &#8211; WPScan Vulnerable WordPress<\/li><li>securityninjas &#8211; OpenDNS Security Ninjas<\/li><li>altoro &#8211; Altoro Mutual Vulnerable Bank<\/li><li>graphql &#8211; Vulnerable GraphQL API<\/li><\/ul>\n\n\n\n<p>El m\u00e9todo de instalaci\u00f3n ser\u00eda el siguiente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">git clone https:\/\/github.com\/eystsen\/pentestlab.git\ncd pentestlab<\/code><\/pre>\n\n\n\n<p>Ubicados en el directorio clonado podemos ejecutar la ayuda del comando:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ .\/pentestLab.sh --help\n\nLocal PentestLab Management Script (Docker based)\n\nUsage: .\/pentestlab.sh {list|status|info|start|startpublic|stop} [projectname]\n\n This scripts uses docker and hosts alias to make web apps available on localhost\n\n Ex.\n .\/pentestlab.sh list\n \tList all available projects\n .\/pentestlab.sh status\n    Show status for all projects\n .\/pentestlab.sh start bwapp\n \tStart project and make it available on localhost\n .\/pentestlab.sh startpublic bwapp\n \tStart project and make it publicly available (to anyone with network connectivity to the machine)\n .\/pentestlab.sh info bwapp\n \tShow information about bwapp proejct\n\n Dockerfiles from:\n  DVWA                   - Ryan Dewhurst (vulnerables\/web-dvwa)\n  Mutillidae II          - OWASP Project (citizenstig\/nowasp)\n  bWapp                  - Rory McCune (raesene\/bwapp)\n  Webgoat(s)             - OWASP Project\n  Juice Shop             - OWASP Project (bkimminich\/juice-shop)\n  Vulnerable WordPress   - Custom made from github.com\/wpscanteam\/VulnerableWordpress\n  Security Ninjas        - OpenDNS Security Ninjas AppSec Training\n  Altoro Mutual          - Custom made from github.com\/hclproducts\/altoroj\n  Vulnerable GraphQL API - Carve Systems LLC (carvesystems\/vulnerable-graphql-api)\n<\/code><\/pre>\n\n\n\n<p>Podemos listar las aplicaciones disponibles:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ .\/pentestlab.sh list\nAvailable pentest applications\n  bwapp \t\t- bWAPP PHP\/MySQL based from itsecgames.com\n  webgoat7\t\t- OWASP WebGoat 7.1\n  webgoat8\t\t- OWASP WebGoat 8.0\n  webgoat81\t\t- OWASP WebGoat 8.1\n  dvwa     \t\t- Damn Vulnerable Web Application\n  mutillidae\t\t- OWASP Mutillidae II\n  juiceshop\t\t- OWASP Juice Shop\n  vulnerablewordpress\t- WPScan Vulnerable WordPress\n  securityninjas\t- OpenDNS Security Ninjas\n  altoro\t\t- Altoro Mutual Vulnerable Bank\n  graphql\t\t- Vulnerable GraphQL API\n<\/code><\/pre>\n\n\n\n<p>Para iniciar una aplicaci\u00f3n, por ejemplo&nbsp;<em><strong>altoro<\/strong><\/em>, ejecutamos el siguiente comando, el cual descargar\u00e1 el&nbsp;<em>Container<\/em>&nbsp;y lo arrancar\u00e1 en modo&nbsp;<em><strong>demonio<\/strong><\/em>, es decir que lo dejar\u00e1 arrancado en el sistema.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ .\/pentestlab.sh start altoro\nStarting Altoro Mutual\nAdding altoro to your \/etc\/hosts\n127.14.0.1\taltoro was added succesfully to \/etc\/hosts\nnot set\nRunning command: docker run --name altoro -d -p 127.14.0.1:80:8080 eystsen\/altoro\nUnable to find image 'eystsen\/altoro:latest' locally\nlatest: Pulling from eystsen\/altoro\na4d8138d0f6b: Pull complete \ndbdc36973392: Pull complete \nf59d6d019dd5: Pull complete \naaef3e026258: Pull complete \n5e86b04a4500: Pull complete \n1a6643a2873a: Pull complete \n2ad1e30fc17c: Pull complete \n16f4e6ee0ca6: Pull complete \n928f4d662d23: Pull complete \nb8d24294d525: Pull complete \n02e8abd43b15: Pull complete \nae46b49889dd: Pull complete \nDigest: sha256:8f9ab500ecb1871f24bed0a9b74f318c8c6bd15c35f0b928181942346552f3a8\nStatus: Downloaded newer image for eystsen\/altoro:latest\nbe0e2ea77f8abcada9acb8ee00f3a4609bcd339da28dab83e5ce2374f443f2f4\nDONE!\n\nDocker mapped to http:\/\/altoro or http:\/\/127.14.0.1\n\nSign in with username jsmith and password demo1234 to initialize database.\nSecond known credential is admin\/admin<\/code><\/pre>\n\n\n\n<p>Ahora podr\u00edamos acceder a la aplicaci\u00f3n desde cualquiera de las URL que indican&nbsp;<a href=\"http:\/\/altoro\" class=\"external external_icon\" rel=\"nofollow\" target=\"_blank\">http:\/\/altoro<\/a>&nbsp;o&nbsp;<a href=\"http:\/\/127.14.0.1\" class=\"external external_icon\" rel=\"nofollow\" target=\"_blank\">http:\/\/127.14.0.1<\/a><\/p>\n\n\n\n<p><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\"><strong>El arrancarlo en modo demonio (-d) genera un problema de seguridad, por lo que recuerda apagar y eliminar, si es posible, el\u00a0<em>Container<\/em>\u00a0una vez finalices con el<\/strong>.<\/mark><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ docker container ps\nCONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                     NAMES\nbe0e2ea77f8a        eystsen\/altoro      \"catalina.sh run\"   3 minutes ago       Up 3 minutes        127.14.0.1:80-&gt;8080\/tcp   altoro<\/code><\/pre>\n\n\n\n<p>Para parar el&nbsp;<em>Container<\/em>&nbsp;usar\u00edamos el comando:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">docker container stop altoro<\/code><\/pre>\n\n\n\n<p>Si queremos eliminarlo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">docker container rm altoro<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"conclusiones\"><span class=\"ez-toc-section\" id=\"Conclusiones\"><\/span>Conclusiones<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Cuidar nuestro aprendizaje y entrenamiento cont\u00ednuos es muy importante en el mundo de la Ciberseguridad y el Pentesting, y con&nbsp;<strong>Docker<\/strong>&nbsp;tenemos a nuestra disposici\u00f3n herramientas muy potentes para poder realizarlo de manera sencilla y l\u00edmpia para nuestro sistema.<\/p>\n\n\n\n<p>Lo que hay que tener en cuenta es el riesgo que conlleva utilizar estas aplicaciones vulnerables, debiendo tener mucho cuidado en como las utilizamos, d\u00f3nde y sobre todo como las dejamos desplegadas, ya que podemos estar ofreciendo v\u00edas de entrada a nuestro sistema si las descuidamos una vez finalizamos su uso.<\/p>\n\n\n\n<p>Ahora solo toca disfrutar d\u00e1ndoles ca\u00f1a!!!! \ud83d\ude00<\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"enlaces-de-inter\u00e9s\"><span class=\"ez-toc-section\" id=\"Enlaces_de_interes\"><\/span>Enlaces de inter\u00e9s<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p><a href=\"https:\/\/docs.docker.com\" class=\"external external_icon\" rel=\"nofollow\" target=\"_blank\">Docker<\/a><br><a href=\"https:\/\/hub.docker.com\" class=\"external external_icon\" rel=\"nofollow\" target=\"_blank\">DockerHub<\/a><br><a href=\"https:\/\/dvwa.co.uk\/\" class=\"external external_icon\" rel=\"nofollow\" target=\"_blank\">DVWA<\/a><br><a href=\"https:\/\/hub.docker.com\/r\/vulnerables\/web-dvwa\" class=\"external external_icon\" rel=\"nofollow\" target=\"_blank\">DVWA en DockerHub<\/a><br><a href=\"https:\/\/github.com\/webpwnized\/mutillidae\" class=\"external external_icon\" rel=\"nofollow\" target=\"_blank\">OWASP Mutillidae II<\/a><br><a href=\"https:\/\/hub.docker.com\/r\/santosomar\/mutillidae_2\" class=\"external external_icon\" rel=\"nofollow\" target=\"_blank\">Mutillidae II en DockerHub<\/a><br><a href=\"https:\/\/owasp.org\/www-project-webgoat\/\" class=\"external external_icon\" rel=\"nofollow\" target=\"_blank\">OWASP WebGoat<\/a><br><a href=\"https:\/\/github.com\/WebGoat\/WebGoat\" class=\"external external_icon\" rel=\"nofollow\" target=\"_blank\">Github OWASP WebGoat<\/a><br><a href=\"http:\/\/www.itsecgames.com\/\" class=\"external external_icon\" rel=\"nofollow\" target=\"_blank\">bWAPP<\/a><br><a href=\"https:\/\/hub.docker.com\/r\/santosomar\/bwapp\" class=\"external external_icon\" rel=\"nofollow\" target=\"_blank\">bWAPP en DockerHub<\/a><br><a href=\"https:\/\/github.com\/eystsen\/pentestlab\/\" class=\"external external_icon\" rel=\"nofollow\" target=\"_blank\">PentestLab Management Script<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Para aprender y entrenar nuestras habilidades en&nbsp;Pentesting&nbsp;sobre aplicaciones Web existen muchas herramientas distintas. En ocasiones desplegar estos entornos requieren de instalar software que dejan nuestra<span class=\"read-more-link\"><a class=\"read-more\" href=\"https:\/\/blog.tiraquelibras.com\/?p=1110\">Read More<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":1126,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[129,128,127,29,124,126,125],"class_list":["post-1110","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ciberseguridad","tag-entrenamiento","tag-formacion","tag-learning","tag-pentesting","tag-training","tag-vulnerability","tag-webapp"],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=\/wp\/v2\/posts\/1110","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1110"}],"version-history":[{"count":3,"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=\/wp\/v2\/posts\/1110\/revisions"}],"predecessor-version":[{"id":1175,"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=\/wp\/v2\/posts\/1110\/revisions\/1175"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=\/wp\/v2\/media\/1126"}],"wp:attachment":[{"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1110"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1110"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1110"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}