{"id":751,"date":"2020-07-29T19:18:47","date_gmt":"2020-07-29T17:18:47","guid":{"rendered":"https:\/\/www.pinguytaz.net\/?p=751"},"modified":"2020-07-29T20:16:54","modified_gmt":"2020-07-29T18:16:54","slug":"kali-en-lxc-ctfs-tryhackme","status":"publish","type":"post","link":"https:\/\/www.pinguytaz.net\/index.php\/2020\/07\/29\/kali-en-lxc-ctfs-tryhackme\/","title":{"rendered":"Kali en LXC (CTFs TryHackme)"},"content":{"rendered":"\n<p>Para la resoluci\u00f3n de CTFs, <a href=\"https:\/\/tryhackme.com\">TryHackme<\/a> en nuestro caso, solemos utilizar una maquina <a href=\"https:\/\/www.kali.org\">Kali<\/a> lo que veremos es como tener esta maquina Kali en un <a href=\"https:\/\/linuxcontainers.org\">contenedor LXC<\/a>.<\/p>\n\n\n\n<p>En nuestro nuestras maquinas CTFs ser\u00e1n aprovisionadas por <a href=\"https:\/\/tryhackme.com\/\">TryHackme<\/a> y accederemos a ellas mediante una VPN (con el software <a href=\"https:\/\/openvpn.net\">openVPN<\/a>) como ya se explico en <a href=\"https:\/\/www.pinguytaz.net\/index.php\/2020\/01\/03\/ctf-basic-pentesting-de-tryhackme\/\">CTF (Basic Pentesting) de TryHackMe<\/a>. Al ejecutar la VPN en nuestro contenedor nuestra red estar\u00e1 m\u00e1s aislada de la red a examinar.<\/p>\n\n\n\n<p>Esta soluci\u00f3n no solo sirve para resolver retos de <a href=\"https:\/\/tryhackme.com\/\">TryHackme<\/a> como algunos de los comentados en esta p\u00e1gina:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/www.pinguytaz.net\/index.php\/2020\/01\/03\/ctf-basic-pentesting-de-tryhackme\/\">CTF (Basic Pentesting) de TryHackMe<\/a><\/li><li><a href=\"https:\/\/www.pinguytaz.net\/index.php\/2020\/01\/09\/mr-robot-ctf-tryhackme\/\">Mr Robot CTF (TryHackMe)<\/a><\/li><li><a href=\"https:\/\/www.pinguytaz.net\/index.php\/2020\/03\/15\/tryhackme-inclusion-reto-lfi\/\">(TryHackMe) \u2013 Inclusion \u00abReto LFI\u00bb<\/a><\/li><\/ul>\n\n\n\n<p>Entendemos que se tiene instalado el sistema de contenedores LXC, explicando solamente como crear el contenedor kali as\u00ed como la configuraci\u00f3n de este para poder ejecutar aplicaciones X11 (ejemplo Burp, ZAPproxy, etc. es necesario) y el uso de openvpn y un directorio montado en nuestro Host para intercambiar la informaci\u00f3n.<\/p>\n\n\n\n<p>La idea es utilizar el contenedor <a href=\"https:\/\/www.kali.org\/\">Kali<\/a> solo para pentesting, y desde nuestro host realizar\u00edamos los informes necesarios, ademas veremos como instalar un proxy para que desde el firefox de nuestro host podamos ejecutar las p\u00e1ginas a analizar.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Instalaci\u00f3n contenedor Kali<\/h2>\n\n\n\n<p>lo primero sera crear el contenedor con una distribuci\u00f3n <a href=\"https:\/\/www.kali.org\/\">Kali<\/a> (Distribuci\u00f3n: kali, Release: current y Arquitectura: amd64) mediante el comando:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>lxc-create -n MiKali -t download <\/code><\/pre>\n\n\n\n<p>Una vez creado el contenedor fijaremos la IP, en el ficheros \/etc\/lxc\/dnsmasq.conf, a\u00f1adiendo la siguiente linea.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>dhcp-host=MiKali,172.16.1.20<\/code><\/pre>\n\n\n\n<p>Con esto ya tenemos el contenedor as\u00ed que a\u00f1adiremos las aplicaciones necesarias, configuraciones de estas y usuarios.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Iniciamos el contenedor\nlxc-start -n MiKali\n\n#Actualizamos\nlxc-attach -n MiKali apt update\nlxc-attach -n MiKali apt upgrade\n\n#Instalamos el servidor ssh, proxy privproxy y paquetes por defecto de Kali\nlxc-attach -n MiKali apt install openssh-server\nlxc-attach -n MiKali apt install privproxy\nlxc-attach -n MiKali apt install kali-linux-default \n\n# Cambiamos la clave de root y creamos un usuario, para su entrada con SSH\nlxc-attach -n MiKali passwd\nlxc-attach -n MiKali --clear-env adduser usu1\nlxc-attach -n MiKali --clear-env adduser usu1 sudo\n<\/code><\/pre>\n\n\n\n<p>Ahora deberemos configurar el servidor ssh de nuestro contenedor, para usar otro puerto y que no dejar a root, modificando el fichero \u00ab\/etc\/ssh\/sshd_config\u00bb, reiniciandolo luego.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Definimos puerto\nPort 2992\n# No permitimos acceso con root\nPermitRootLogin no\n# Obligamos a que sea necesario identificarse con clave\nPasswordAuthentication yes\nPermitEmptyPasswords no<\/code><\/pre>\n\n\n\n<p>Desde este momento ya podremos acceder por ssh \u00abssh -X -p 2992 usu1@172.16.1.20\u00bb y al usar la opci\u00f3n X podremos ejecutar programas X11.<\/p>\n\n\n\n<p>Con esto ta podremos usar nuestro <a href=\"https:\/\/www.kali.org\/\">Kali<\/a>, ahora nos queda un par de lineas en nuestro fichero de configuraci\u00f3n \u00abMiKali\/config\u00bb para montar un directorio que comparta informaci\u00f3n entre el Host y el contenedor y ademas el directorio \/dev\/net para que podamos ejecutar correctamente nuestra red privada con <a href=\"https:\/\/tryhackme.com\/\">TryHackme<\/a> (<a href=\"https:\/\/openvpn.net\/\">openVPN) <\/a>sin que nos de error TUN\/TAP.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#Montaje de directorios\nlxc.mount.entry = \/home\/usuario\/PuntosMontaje\/Kali mnt\/miKali none defaults,bind,create=dir 0 0\n# Solucion OpenVPN\nlxc.mount.entry = \/dev\/net dev\/net none bind,create=dir<\/code><\/pre>\n\n\n\n<p>OJO si dejamos as\u00ed el directorio de montaje, solo podremos escribir ficheros desde host ya que los permisos son del usuario del host y son IDs distintos a los del contenedor ya que se mapean (por regla general empiezan en el 10000 que seria el root)<\/p>\n\n\n\n<p>Esto tiene f\u00e1cil soluci\u00f3n, o dar total permiso \u00abrwx\u00bb a otros en el directorio o solo dar permisos a los usuarios del contenedor que deseemos. Nosotros daremos permiso al grupo del usu1 desde el host.<\/p>\n\n\n\n<p>Lo primero es obtener el ID del grupo host al que le sumaremos 10.000 en nuestro caso.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignleft size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2020\/07\/image-3.png\" alt=\"\" class=\"wp-image-761\" width=\"374\" height=\"70\" srcset=\"https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2020\/07\/image-3.png 560w, https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2020\/07\/image-3-300x56.png 300w\" sizes=\"auto, (max-width: 374px) 100vw, 374px\" \/><\/figure><\/div>\n\n\n\n<p>Ahora desde el host le daremos permiso al grupo de nuestro usu1 con la orden \u00absetfacl -m g:101000:rwx .\u00bb<\/p>\n\n\n\n<p>Y ya podemos escribir desde el contenedor en el, por ejemplo crear un certificado owas_zap y verlo tambien en el host. Vemos como se ver\u00eda el mismo \u00abls\u00bb desde el contenedor y desde el host.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ls -l Creado* owasp_zap_root_ca.cer<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"70\" src=\"https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2020\/07\/image-4-1024x70.png\" alt=\"\" class=\"wp-image-763\" srcset=\"https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2020\/07\/image-4-1024x70.png 1024w, https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2020\/07\/image-4-300x21.png 300w, https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2020\/07\/image-4-768x53.png 768w, https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2020\/07\/image-4.png 1330w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><em>nobody<\/em> y <em>nogroup<\/em> es el grupo que da el contenedor cuando se usa un ID del host.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Acceso a paginas TryHackme con OpenVPN en contenedor<\/h2>\n\n\n\n<p>Para poder aceder a las paginas de nuestra red <a href=\"https:\/\/tryhackme.com\/\">TryHackme<\/a> desde nuestro host, con la VPN en el contenedor lo que haremos es:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Instalar un proxy en nuestro Kali \u00ab<a href=\"https:\/\/www.privoxy.org\">privproxy<\/a>\u00ab<\/li><li>Configurar nuestro navegador para que se acceda a las p\u00e1ginas mediante el proxy.<\/li><\/ul>\n\n\n\n<p>La instalaci\u00f3n es muy sencillas<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>lxc-attach -n MiKali apt install privoxy\n\n# Configurar \/etc\/privoxy\/config para situar el proxy en el puerto 8118\nlisten-address  127.0.0.1:8118\nlisten-address  172.0.3.20:8118\nlisten-address  &#91;::1]:8118<\/code><\/pre>\n\n\n\n<p>Ahora deberemos configurar nuestro navegador, en nuestro caso instalaremos \u00ab<a href=\"https:\/\/getfoxyproxy.org\">foxyproxy<\/a>\u00bb para as\u00ed hacer que solo sean las direcciones de <a href=\"https:\/\/tryhackme.com\/\">TryHackme<\/a> las que utilicen el proxy (en nuestro caso 10.10.*)<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignleft size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2020\/07\/image-1.png\" alt=\"\" class=\"wp-image-758\" width=\"334\" height=\"123\" srcset=\"https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2020\/07\/image-1.png 660w, https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2020\/07\/image-1-300x111.png 300w\" sizes=\"auto, (max-width: 334px) 100vw, 334px\" \/><\/figure><\/div>\n\n\n\n<p>Deberemos cambiar la IP por la de nuestro contenedor, si la ponemos fija nos evitaremos tener que cambiarla siempre, que en nuestra configuraci\u00f3n del fichero \u00abdndmasq.conf\u00bb es la IP:172.16.1.20<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Luego configuraremos tambi\u00e9n los patrones de los servidores se desean se accedan por el proxy instalado en el contenedor \u00abMiKali\u00bb.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"87\" src=\"https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2020\/07\/image-2-1024x87.png\" alt=\"\" class=\"wp-image-759\" srcset=\"https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2020\/07\/image-2-1024x87.png 1024w, https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2020\/07\/image-2-300x25.png 300w, https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2020\/07\/image-2-768x65.png 768w, https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2020\/07\/image-2.png 1309w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Y para que solo se acceda por proxy a los patrones definidos, le diremos a <em>foxy<\/em> \u00abUse enabled proxies By pattern\u00bb.<\/p>\n\n\n\n<p>Para herramientas de captura y an\u00e1lisis del trafico web como: <em>Burp<\/em> y <em>ZAPproxy<\/em> que se comportan como proxy para as\u00ed poder cambiar informaci\u00f3n de env\u00edo se podr\u00edan definir con el mismo puerto o cada herramienta en un puerto y con <em>foxy<\/em> decidir cual usar.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Realizar pentesting mediante contenedores y uso de los navegadores locales.<\/p>\n","protected":false},"author":1,"featured_media":752,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-container-style":"default","site-container-layout":"default","site-sidebar-layout":"default","disable-article-header":"default","disable-site-header":"default","disable-site-footer":"default","disable-content-area-spacing":"default","footnotes":""},"categories":[110,83,16,73],"tags":[141,142,130,133],"class_list":["post-751","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ctf","category-pentesting-hacking","category-seguridad","category-web","tag-kali","tag-lxc","tag-openvpn","tag-tryhackme"],"_links":{"self":[{"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/posts\/751","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/comments?post=751"}],"version-history":[{"count":8,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/posts\/751\/revisions"}],"predecessor-version":[{"id":765,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/posts\/751\/revisions\/765"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/media\/752"}],"wp:attachment":[{"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/media?parent=751"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/categories?post=751"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/tags?post=751"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}