{"id":347,"date":"2019-07-13T21:51:38","date_gmt":"2019-07-13T19:51:38","guid":{"rendered":"https:\/\/www.pinguytaz.net\/?p=347"},"modified":"2019-10-08T21:55:58","modified_gmt":"2019-10-08T19:55:58","slug":"creando-un-modulo-metasploit","status":"publish","type":"post","link":"https:\/\/www.pinguytaz.net\/index.php\/2019\/07\/13\/creando-un-modulo-metasploit\/","title":{"rendered":"Creando un modulo MetaSploit"},"content":{"rendered":"\n<p>En este POST vamos a ver como se crea un modulo para <a href=\"https:\/\/www.metasploit.com\/\"> <\/a><a rel=\"noreferrer noopener\" aria-label=\"MetaSploit (abre en una nueva pesta\u00f1a)\" href=\"https:\/\/www.metasploit.com\/\" target=\"_blank\">MetaSploit<\/a>, estos pueden ser herramientas de enumeraci\u00f3n, pruebas, etc y exploits. En nuestro caso crearemos un modulo \u00abpost\u00bb para enumerar posibles vectores de ataque para escalada de privilegios.<\/p>\n\n\n\n<p>Hemos decidido que sea un m\u00f3dulo \u00abpost\u00bb pues los ejemplos que he encontrado han sido exploits y auxiliares y ademas porque nos basaremos en la explicaci\u00f3n en el m\u00f3dulo que realice para un curso de Hacking (<a href=\"https:\/\/github.com\/pinguytaz\/enum_vectores_escalada\">https:\/\/github.com\/pinguytaz\/enum_vectores_escalada<\/a>) no explicaremos el m\u00f3dulo pero si las bases para crear cualquier m\u00f3dulo.<\/p>\n\n\n\n<p>Lo primero decir que los m\u00f3dulos de MetaSploit se realizan en el lenguaje <em>ruby<\/em>, esto no es del todo exacto, as\u00ed que lo primero que debemos es aprender <em>ruby<\/em>.<\/p>\n\n\n\n<p>Lo segundo es saber que los m\u00f3dulos de metasploit (al menos desde una maquina kali) est\u00e1n en \u00ab\/usr\/share\/metasploit-framework\/modules\u00bb y desde esa ra\u00edz los distintos tipos que en nuestro caso de explicaci\u00f3n es <em>\u00abpost<\/em>\u00ab.<\/p>\n\n\n\n<p> <\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>auxiliary (Contiene herramientas como escaners, servidores, denegaci\u00ed de servicio, etc.)<\/li><li>encoders (Ofuscadores de codigo para los ShellCodes)<\/li><li>exploits (Exploits de errores)<\/li><li>nops (Generador de instrucciones NOP)<\/li><li>payloads (C\u00f3digo a ejecutar gracias al exploit)<\/li><li>post (Acciones a realizar despu\u00e9s de ejecutar una explotaci\u00f3n como puede ser un escalada de privilegios, <strong>en nuestro caso una enumeraci\u00f3n para poder realizar una escalada.<\/strong><\/li><\/ul>\n\n\n\n<p>Pero si estamos desarrollando lo mejor es que nuestra ra\u00edz sea \u00ab~\/.msf4\/modules\u00bb y as\u00ed poder ir tocando lo \u00fanico que realizaremos al arrancar metaesploit es ejecutar \u00abreload_all\u00bb para que se recarguen todos con sus cambios en el c\u00f3digo.<\/p>\n\n\n\n<p>Ahora que ya sabemos donde desarrollar nuestros modulos, explicaremos la estructura de estos por lo que algo si explicaremos de nuestro modulo de enumeraci\u00f3n de escalada de privilegios.<\/p>\n\n\n\n<p>Primero indicar que el m\u00f3dulo se copia en \u00abpost\/linux\/gather\/enum_vectores_escalada.rb\u00bb ya que es un m\u00f3dulo post (Se ejecuta despu\u00e9s de una explotaci\u00f3n y disponer de una sesi\u00f3n) es para linux, en caso de ser para otro sistema o varios seria el sistema que correspondiera o multi (eso no indica que teniendolo en linux no funcione para otros sistemas es organizaci\u00f3n) y luego en gather pues recoge informaci\u00f3n que nos puede permitir hacer una escalada de privilegios.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"146\" src=\"https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2019\/07\/image-1024x146.png\" alt=\"\" class=\"wp-image-350\" srcset=\"https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2019\/07\/image-1024x146.png 1024w, https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2019\/07\/image-300x43.png 300w, https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2019\/07\/image-768x110.png 768w, https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2019\/07\/image-1200x171.png 1200w, https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2019\/07\/image.png 1220w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p> Recomiendo tener siempre abierta la p\u00e1gina del <a href=\"https:\/\/rapid7.github.io\/metasploit-framework\/api\/\">api de MetaSploit<\/a> ya que nos ayudara a saber de donde heredamos y que m\u00e9todos y atributos tenemos que nos ayudara en la codificaci\u00f3n.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignleft\"><img loading=\"lazy\" decoding=\"async\" width=\"263\" height=\"122\" src=\"https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2019\/07\/image-4.png\" alt=\"\" class=\"wp-image-355\"\/><figcaption>C\u00f3digo<\/figcaption><\/figure><\/div>\n\n\n\n<p>La primera linea indica de donde heredamos, en nuestro caso como es tipo POST (es decir que se ejecutara despu\u00e9s de una explotaci\u00f3n) tiene que heredar de<strong> Msf::Post<\/strong> \u00bb Nos indica que es un modulo \u00abPOST\u00bb y por lo tanto podr\u00e1 utilizar m\u00e9todos y atributos de esas clases ya creadas.<\/p>\n\n\n\n<p>Ejemplo de m\u00e9todos  que heredamos \u00abcmd_exec\u00bb o \u00abrhost\u00bb para saber la IP de Host remoto.<\/p>\n\n\n\n<p>despu\u00e9s tenemos las librer\u00edas a incluir y luego el constructor que tendr\u00e1.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignleft\"><img loading=\"lazy\" decoding=\"async\" width=\"672\" height=\"295\" src=\"https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2019\/07\/image-5.png\" alt=\"\" class=\"wp-image-356\" srcset=\"https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2019\/07\/image-5.png 672w, https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2019\/07\/image-5-300x132.png 300w\" sizes=\"auto, (max-width: 672px) 100vw, 672px\" \/><\/figure><\/div>\n\n\n\n<p>Definiremos la licencia, el autor, las plataformas compatibles, y en este caso tipos de sesiones que acepta.<\/p>\n\n\n\n<p>Despu\u00e9s definiremos los par\u00e1metros a definir<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignleft is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2019\/07\/image-6.png\" alt=\"\" class=\"wp-image-357\" width=\"303\" height=\"102\" srcset=\"https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2019\/07\/image-6.png 437w, https:\/\/www.pinguytaz.net\/wp-content\/uploads\/2019\/07\/image-6-300x102.png 300w\" sizes=\"auto, (max-width: 303px) 100vw, 303px\" \/><\/figure><\/div>\n\n\n\n<p>En este caso solo se indica el par\u00e1metro \u00abSALIDA\u00bb que es opcional para sacar el resultado a fichero ya que el par\u00e1metro sesi\u00f3n es obligado al ser un POST y se define al heredarlo.<\/p>\n\n\n\n<p>Y despu\u00e9s de eso empezamos a definir el m\u00e9todo \u00abrun\u00bb que es donde empezaremos a poner nuestro c\u00f3digo.<\/p>\n\n\n\n<p>Y ya esto si quieres el c\u00f3digo completo de este nuevo m\u00f3dulo de metasploit puedes obtenerlo en <a href=\"https:\/\/github.com\/pinguytaz\/enum_vectores_escalada\">https:\/\/github.com\/pinguytaz\/enum_vectores_escalada<\/a>.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>En este POST vamos a ver como se crea un modulo para MetaSploit, estos pueden ser herramientas de enumeraci\u00f3n, pruebas, etc y exploits. En nuestro caso crearemos un modulo \u00abpost\u00bb para enumerar posibles vectores de ataque para escalada de privilegios. Hemos decidido que sea un m\u00f3dulo \u00abpost\u00bb pues los ejemplos que he encontrado han sido [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":350,"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":[19,78,83,16,17],"tags":[80,49,79,56],"class_list":["post-347","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-escalar-privilegios","category-metasploit","category-pentesting-hacking","category-seguridad","category-seguridad-linux","tag-metasploit","tag-privilegios","tag-ruby","tag-seguridad"],"_links":{"self":[{"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/posts\/347","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=347"}],"version-history":[{"count":4,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/posts\/347\/revisions"}],"predecessor-version":[{"id":358,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/posts\/347\/revisions\/358"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/media\/350"}],"wp:attachment":[{"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/media?parent=347"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/categories?post=347"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pinguytaz.net\/index.php\/wp-json\/wp\/v2\/tags?post=347"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}