{"id":613,"date":"2011-10-17T11:52:50","date_gmt":"2011-10-17T17:52:50","guid":{"rendered":"http:\/\/www.lastdragon.net\/?p=613"},"modified":"2017-12-22T17:48:25","modified_gmt":"2017-12-22T23:48:25","slug":"esconder-un-programa-compilado-en-un-script-interpretado","status":"publish","type":"post","link":"https:\/\/www.lastdragon.net\/?p=613","title":{"rendered":"Esconder un programa compilado en un script interpretado."},"content":{"rendered":"<p>Existen muchos sistemas GNU\/Linux, FreeBSD \u201cendurecidos\u201d por pol\u00edticas de seguridad, los cuales no tienen un compilador e incluso tienen cerrado algunos puertos para descargar del internet dejando solo los puertos de administraci\u00f3n en consolas de texto, los binarios no pasan bien en texto al menos no en su forma binaria nativa debido a que muchas instrucciones son confundidas en la consolas como caracteres de control y queda corrompido.<\/p>\n<p>Si eres de los que les gusta subir a root esto definitivamente te va a interesar porque es la forma de subir tu exploit, por supuesto si el sistema es endurecido como debe ser aunque lo subas de esta manera no lo podr\u00e1s ejecutar, para uso menos maliciosos puede servir para subir una herramienta ya compilada que ayude en la administraci\u00f3n.<\/p>\n<p>Esto se podr\u00eda subir directamente como base64, pero para darle algo m\u00e1s de dramatismo creare un Shell-Script de Bash que simulara estar infectado con un binario. Este script resultante no pasa de las 100 l\u00edneas y es razonable pasarlo por SSH o telnet a puro copiar y pegar.<\/p>\n<p>Existen 2 m\u00e9todos para hacer esto, adem\u00e1s del base64 est\u00e1 la funci\u00f3n chr() dentro del script que es b\u00e1sicamente lo mismo pero hay que hacer m\u00e1s trabajo a la hora de crear el flujo de datos de caracteres, cosa innecesaria si la terminal soporta base64 y pr\u00e1cticamente todas lo soportan.<\/p>\n<p>Como inyectarle un programa ejecutable a un Script interpretado<\/p>\n<p>Primero tienes que tener tu programa compilarlo y asegurarte que el sistema destino tiene todas las librer\u00edas para ejecutarlo de lo contrario tendr\u00e1s que hacerlo static solo que aumentara de unos cuantos kilobytes a medio megabyte y un script de 512kbytes es algo sospechoso si es para fines no legales, aunque me centrare en lo legal, no es igual pasar un script de 100 l\u00edneas por copiar y pegar que uno que tenga unas 1000 o mas<\/p>\n<p>Para hacer esta demostraci\u00f3n hice un peque\u00f1o programa que dice cual es su pid en el sistema y el uid del usuario que lo ejecuta.<\/p>\n<p>#include &lt;stdio.h&gt;<br \/>\n#include &lt;unistd.h&gt;<\/p>\n<p>int main ()<br \/>\n{<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf (&#8220;Soy el programa<br \/>\nbinario en el script de texto\\r\\n&#8221;);<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf (&#8220;Mi PID es %d, mi<br \/>\nUID %d\\r\\n&#8221;,getpid(),getuid());<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;<br \/>\n}<\/p>\n<p>Una vez compilado, es reconvertido a base64 y este a su vez cargado dentro de una variable dentro del script.<\/p>\n<p>La funci\u00f3n de esta variable es volver a un flujo de datos el base64 en el sistema remoto de forma que con una recodificaci\u00f3n por base64 se regrese a su forma nativa el binario para que este pueda ser ejecutado ya como un programa y no como un script<\/p>\n<p>Esto realmente no es nada nuevo existe desde hace d\u00e9cadas, aunque casi nadie los usa. Si no mal recuerdo hace una d\u00e9cada vi este m\u00e9todo en el proyecto de Ximian\/Gnome. El instalador era un peque\u00f1o script que al ejecutarse descargaba seg\u00fan la versi\u00f3n de Linux el ejecutable correcto para iniciar la instalaci\u00f3n del escritorio de trabajo. Me gustaba aquel Ximian\/Gnome ten\u00eda mejores vistas y detalles que el Gnome entregado en las distros actuales y de aquella \u00e9poca.<\/p>\n<p>El video demostrativo:<\/p>\n<p><iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/nZ0L3nAuWFU\" frameborder=\"0\" gesture=\"media\" allow=\"encrypted-media\" allowfullscreen><\/iframe><\/p>\n<p>El binario resultante del video lo puedes descargar <a href=\"https:\/\/www.lastdragon.net\/misarchivos\/scriptbinario.txt\">aqu\u00ed<\/a>.<\/p>\n<p>Articulo relacionado <a href=\"https:\/\/www.lastdragon.net\/?p=388\">Troyanos en PHP<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Existen muchos sistemas GNU\/Linux, FreeBSD \u201cendurecidos\u201d por pol\u00edticas de seguridad, los cuales no tienen un compilador e incluso tienen cerrado algunos puertos para descargar del internet dejando solo los puertos de administraci\u00f3n en consolas de texto, los binarios no pasan bien en texto al menos no en su forma binaria nativa debido a que muchas&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,4],"tags":[],"class_list":["post-613","post","type-post","status-publish","format-standard","hentry","category-consultoria-y-manuales","category-hackers-and-tools"],"_links":{"self":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/posts\/613","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=613"}],"version-history":[{"count":1,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/posts\/613\/revisions"}],"predecessor-version":[{"id":1949,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/posts\/613\/revisions\/1949"}],"wp:attachment":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=613"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=613"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=613"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}