{"id":208,"date":"2018-06-21T17:42:35","date_gmt":"2018-06-21T15:42:35","guid":{"rendered":"http:\/\/www.pinguytaz.net\/?p=208"},"modified":"2018-06-21T17:42:35","modified_gmt":"2018-06-21T15:42:35","slug":"escalar-privilegios-a-root-fichero-etc-passwd-2-3","status":"publish","type":"post","link":"https:\/\/www.pinguytaz.net\/index.php\/2018\/06\/21\/escalar-privilegios-a-root-fichero-etc-passwd-2-3\/","title":{"rendered":"Escalar privilegios a root (fichero \/etc\/passwd) 2\/3"},"content":{"rendered":"<ol>\n<li><a href=\"https:\/\/wp.me\/p9mAbK-3c\">Introducci\u00f3n los permisos de Linux<\/a><\/li>\n<li><a href=\"https:\/\/wp.me\/p9mAbK-3m\">Problemas con los permisos \/etc\/passwd\u00a0(este POST)<\/a><\/li>\n<li><a href=\"https:\/\/wp.me\/p9mAbK-3B\">Escalada mediante error en el SUID<\/a><\/li>\n<\/ol>\n<p>En este POST hablaremos como gracias al descuido de tener el fichero \/etc\/passwd con permiso de escritura, cuando lo l\u00f3gico es que solo sea de lectura, una vez que hemos accedido a la maquina podemos llegar a tener privilegios de root. Aunque lo basemos en el fichero passwd el problema tambi\u00e9n lo podemos tener en los otros dos ficheros que controlan los usuarios, grupos, directorio y programa que se ejecuta al arrancar, por este motivo antes de iniciar contaremos el uso y descripci\u00f3n de estos.<\/p>\n<p><span style=\"font-size: 14pt;\"><strong>\/etc\/passwd<\/strong><\/span>: Almacena la informaci\u00f3n de las cuentas de usuarios. Se puede leer pero no deber\u00edamos poder escribir como veremos m\u00e1s adelante. Cada campo va separado por dos puntos.<\/p>\n<p style=\"text-align: center;\"><span style=\"background-color: #33cccc;\"><em><span style=\"color: #444444;\">Usuario : Clave : UID : GID : Descripci\u00f3n usuario : Directorio usuario : Shell<\/span><\/em><\/span><\/p>\n<p>Si la <strong>clave<\/strong> tiene una &#8216;x&#8217; indica que la clave se encuentra en el fichero \/etc\/shadow, &#8216;!&#8217; que el usuario esta bloqueado.\u00a0<span style=\"background-color: #ff9900;\">Si tenemos permiso de escritura podremos poner nuestra clave como veremos m\u00e1s , adelante.<\/span><\/p>\n<p><strong>UID<\/strong> es el numero identificador de usuario:<\/p>\n<ul>\n<li>0 reservado para el usuario root<\/li>\n<li>1-99 para las cuentas predeterminadas<\/li>\n<li>100-999 Para el sistemas<\/li>\n<li>1000- para los usuarios.<\/li>\n<\/ul>\n<p><strong>GID<\/strong> es el numero identificador del grupo, codific\u00e1ndose de la misma forma que antes.<\/p>\n<p><span style=\"background-color: #ff9900;\">Si tenemos permiso de escritura podremos hacer que nuestro usuario, con el que somos capaces de entrar, sea root o del grupo root.<\/span><\/p>\n<p>La <strong>descripci\u00f3n de usuario<\/strong> tiene varios campos separados por comas.<\/p>\n<p>El <strong>directorio de usuario<\/strong> podr\u00e1 estar vaci\u00f3 entonces sera el raiz, si no queremos que este usuario tenga directorio lo mejor es poner uno que no existe.<\/p>\n<p>El <strong>Shell<\/strong> es el programa que nos lanzara el prompt, en caso de que no queramos generar prompt a un usuario pondremos \/bin\/false. <span style=\"background-color: #ff9900;\">Imaginaros que pasar\u00eda si por tener permiso de escritura ponemos que se ejecute un troyano.<\/span><\/p>\n<p><span style=\"font-size: 14pt;\"><strong>\/etc\/group<\/strong><\/span>: Al igual que el de usuario tiene permiso de lectura, pero no debe tener permiso de escritura y nos indica a que grupos pertenecen los usuarios.<\/p>\n<p style=\"text-align: center;\"><span style=\"background-color: #33cccc;\"><em><span style=\"color: #444444;\">Nombre grupo : Clave : GID : Lista de usuarios separada por comas.<\/span><\/em><\/span><\/p>\n<p>La <strong>clave<\/strong> en el fichero group por regla general es &#8216;x&#8217; pero podr\u00edamos fijar una para que usuarios que no son del grupo se puedan unir a el.<\/p>\n<p><span style=\"font-size: 14pt;\"><strong>\/etc\/shadow<\/strong><\/span>: Tendr\u00e1 la clave del usuario cifrada, para los usuarios que en passwd pone &#8216;x&#8217; en el campo clave, ademas tendr\u00e1 informaci\u00f3n de la caducidad de la clave. Este fichero solo tiene lectura por el root ya que sino cualquier otro usuario pudiera leer el fichero de claves (Por eso aparecio este fichero que sustitu\u00eda al passwd) se le podria pasar un crackeador por fuerza bruta y lograr\u00edamos con tiempo y paciencia las claves.<\/p>\n<p style=\"text-align: center;\"><span style=\"background-color: #33cccc;\"><em><span style=\"color: #444444;\">Usuario : Clave : C1 : C2 : C3 : C4 : C5 : C6<\/span><\/em><\/span><\/p>\n<ul>\n<li><strong>C1<\/strong>: D\u00edas desde 1\/1\/1970 cuando se cambio en passwd.<\/li>\n<li><strong>C2<\/strong>: Minimo n\u00famero de d\u00edas entre cambio de contrase\u00f1a, lo normal un 0.<\/li>\n<li><strong>C3<\/strong>: M\u00e1ximos d\u00edas de validez de la cuenta, 99999 infinito.<\/li>\n<li><strong>C4<\/strong>: D\u00edas de aviso antes de caducar contrase\u00f1a-<\/li>\n<li><strong>C5<\/strong>: D\u00edas despu\u00e9s de caducar la clave en que deshabilita la cuenta. Vac\u00edo si no se deshabilita.<\/li>\n<li><strong>C6<\/strong>: Fecha de caducidad marcada desde 1\/1\/1970, Vacio si no caduca.<\/li>\n<\/ul>\n<p><span style=\"background-color: #ff9900;\">Si tenemos permiso de escritura podremos poner nuestra clave como vamos a ver ahora.<\/span><\/p>\n<p>Y empezamos a ver como ampliar nuestros privilegios si nos encontramos que el fichero \/etc\/passwd tiene permiso de escritura de diversas formas.<\/p>\n<h5>1.-Nuevo usuario<\/h5>\n<p>Creamos un nuevo usuario y le indicamos en el ID de usuario y grupo un cero, en la clave un * para indicar que es vac\u00eda.<\/p>\n<p>Algunos sistemas no nos dejaran ponerla en vac\u00edo, por lo que la tendr\u00edamos que crear de algunas de las siguientes formas que explicamos a continuaci\u00f3n<\/p>\n<h5>2.-Cambiar la clave a un usuario.<\/h5>\n<p>Para esto debemos conocer primero el formato de una clave de linux, para poder crearla:<\/p>\n<ol>\n<li>$<strong>x<\/strong>$ Donde la <strong>x<\/strong> indica el tipo de cifrado. En caso de no comenzar por $ es el algoritmo DES. <strong>$1$<\/strong> Algoritmo MD5 y tendra 22 caracteres, $<strong>2$<\/strong>\u00a0Algoritmo blowfish, <strong>$3$<\/strong> sha256, <strong>$5$<\/strong> SHA-256 de 43 Caracteres. <span style=\"background-color: #ffcc99;\"><strong>$6$<\/strong> SHA-512 de 86 Caracteres. Este es el que generalmente usaremos.<\/span><\/li>\n<li><strong>SALT<\/strong> Son caracteres aleatorios, lo normal 8, que finalizan en el s\u00edmbolo &#8216;$&#8217; y nos ayuda a que dos claves iguales den codificacion distinta.<\/li>\n<li>La clave en cuesti\u00f3n.<\/li>\n<\/ol>\n<p>Para generar una clave que luego pegar\u00edamos en nuestro fichero \/etc\/passwd, ya sea para nuestro nuevo usuario con acceso root o directamente en el root, o en \/etc\/shadow si es este el que se ha descuidado y lo hemos puesto como escritura.<\/p>\n<p style=\"text-align: center;\"><span style=\"background-color: #00ffff; font-family: 'times new roman', times, serif;\">openssl passwd -1 -salt &lt;caracteres SALT&gt; &lt;Clave&gt; \/\/ Genera una clave MD5<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-219 aligncenter\" src=\"http:\/\/www.pinguytaz.net\/wp-content\/uploads\/2018\/06\/openssl-300x25.png\" alt=\"\" width=\"300\" height=\"25\" \/><\/p>\n<p style=\"text-align: center;\"><span style=\"background-color: #00ffff; font-family: 'times new roman', times, serif;\">mkpasswd -m &lt;Metodo&gt; &lt;Clave&gt;<\/span><\/p>\n<p>Los m\u00e9todos posibles son: <strong>des<\/strong> standard 56 bit DES-based crypt(3),\u00a0<strong>md5<\/strong>, <strong>sha-256<\/strong>,\u00a0<strong>sha-512<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-220 aligncenter\" src=\"http:\/\/www.pinguytaz.net\/wp-content\/uploads\/2018\/06\/mkpaaswd-300x22.png\" alt=\"\" width=\"300\" height=\"22\" \/><\/p>\n<p style=\"text-align: center;\">Otros m\u00e9todos, aunque yo me quedo con el comando &#8216;mkpasswd&#8217; son:<br \/>\n<span style=\"background-color: #00ffff; font-family: 'times new roman', times, serif;\">python -c &#8216;import crypt; print crypt.crypt(\u00abpass\u00bb, \u00ab$6$salt\u00bb)&#8217;<\/span><br \/>\n<span style=\"background-color: #00ffff; font-family: 'times new roman', times, serif;\">perl -le &#8216;print crypt(\u00abpass123\u00bb, \u00ababc\u00bb)&#8217;<\/span><br \/>\n<span style=\"background-color: #00ffff; font-family: 'times new roman', times, serif;\">php -r \u00abprint(crypt(&#8216;aarti&#8217;,&#8217;123&#8242;) . \\\u00bb\\n\\\u00bb);\u00bb<\/span><\/p>\n<p><a href=\"https:\/\/wp.me\/p9mAbK-3B\">Mediante el error de <strong>SUID<\/strong><\/a><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introducci\u00f3n los permisos de Linux Problemas con los permisos \/etc\/passwd\u00a0(este POST) Escalada mediante error en el SUID En este POST hablaremos como gracias al descuido de tener el fichero \/etc\/passwd con permiso de escritura, cuando lo l\u00f3gico es que solo sea de lectura, una vez que hemos accedido a la maquina podemos llegar a tener [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":203,"comment_status":"open","ping_status":"open","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":[19,7,9,16,17],"tags":[28,36,39,47,49],"class_list":["post-208","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-escalar-privilegios","category-linux","category-minix3","category-seguridad","category-seguridad-linux","tag-escalada","tag-linux","tag-minix","tag-pentesting","tag-privilegios"],"_links":{"self":[{"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/posts\/208","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=208"}],"version-history":[{"count":0,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/posts\/208\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/"}],"wp:attachment":[{"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/media?parent=208"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/categories?post=208"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/tags?post=208"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}