[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fh64G3a6v6TiWA61Nn1XGJttaMPLW8SY-ZkgS70Njs9I":3},{"slug":4,"title":5,"summary":6,"category":7,"author":10,"image_url":16,"image_thumb_url":16,"published_at":17,"updated_at":18,"body_html":19,"keywords":20,"reading_time_minutes":21,"related_articles":22,"related_course":55,"related_specialty":75},"creando-un-ransomware-desde-0-con-python","Creando un Ransomware desde 0 con Python","Antes de comenzar a escribir, espero que no mal interpreten mis intenciones de libre enseñanza, se que es un peligroso este tipo de artículos y que en manos equivocadas puede causar daño a personas y organizaciones, por este motivo, decidí aclarar que mi intención es poner este conocimiento solo para causar el bien a pesar de que suene utópico, por otra parte, quiero que sepan que los ciberdelincuentes ya saben esta información y que nosotros que nos dedicamos a proteger los activos de información, somos mas ignorantes en este tema, por lo que a mi me parece mas una igualación de conocimientos que un descuido.",{"slug":8,"name":9},"pentesting","Pentesting ",{"username":11,"name":12,"avatar_url":13,"headline":14,"aboutme":15},"Felipe","Felipe Barrios","https:\u002F\u002Fapi.backtrackacademy.com\u002Frails\u002Factive_storage\u002Fblobs\u002Fredirect\u002FeyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBalVGIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--75c29db071130db1bdbb64cb6ed6b4b0767c7178\u002F12063705_10207273024561428_59106377850244238_n.jpg","CEO at Backtrack Academy","I&#39;m Felipe Barrios CEO of Backtrack Academy ethical hacking community. entrepreneur and developer ruby on rails, Ror became my preferred language, the basis of all my projects, I consider myself a proactive person and passionate about what he does. Currently working as a software developer in scuit, computer security lover I like to work on projects related to digital enterprise.","https:\u002F\u002Fapi.backtrackacademy.com\u002Frails\u002Factive_storage\u002Fblobs\u002Fredirect\u002FeyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBbTBPIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--6e03cf038935329df326963ecf3aa1d0200f1672\u002Fshutterstock_1336427051.jpg","2018-03-28T00:00:24-03:00","2026-10-26T18:35:25-03:00","\u003Ch2>Introducción\u003C\u002Fh2>\r\n\u003Cp> \u003C\u002Fp>\r\n\u003Cp>Antes de comenzar a escribir, espero que no mal interpreten mis intenciones de libre enseñanza, se que es un peligroso este tipo de artículos y que en manos equivocadas puede causar daño a personas y organizaciones, por este motivo, decidí aclarar que mi intención es poner este conocimiento solo para causar el bien a pesar de que suene utópico, por otra parte, quiero que sepan que los ciberdelincuentes ya saben esta información y que nosotros que nos dedicamos a proteger los activos de información, somos mas ignorantes en este tema, por lo que a mi me parece mas una igualación de conocimientos que un descuido.\u003C\u002Fp>\r\n\u003Cp>A mi juicio, creo que es más peligrosa la desinformación que existe de este tema, he visto que grandes empresas intentan vender soluciones, causando pánico, mostrando que este tipo de programas son amenazas avanzadas y que solo ellos pueden solucionar, para mi todo lo que he visto hasta ahora de publicaciones de este Malware, son puros profetas con delirios de Mesías que intentan vender, mas que enseñar como se hace este tipo de programas(como dice el viejo dicho, en el país de los ciegos el tuerto es rey). Pienso que es mejor conocer como funciona la enfermedad, para poder desarrollar una cura efectiva. Espero que la información y pruebas de concepto les sirvan y puedan solucionar sus problemas o sed de conocimiento.\u003C\u002Fp>\r\n\u003Cp>Para los que no conocen de lo que estoy hablando, se estarán preguntando ¿Que es un Ransomware? Y para mi la respuesta es súper simple, un ransomware es un programa que cifra datos de una computadora y después pide una recompensa monetaria a cambio de la clave para recuperar los archivos, es algo así como un secuestro, pero de información. Si no quedaste conforme te recomiendo leas el siguiente enlace \u003Ca href=\"https:\u002F\u002Fes.wikipedia.org\u002Fwiki\u002FRansomware\">https:\u002F\u002Fes.wikipedia.org\u002Fwiki\u002FRansomware\u003C\u002Fa>\u003C\u002Fp>\r\n\u003Cp>Como dice un viejo amigo, dos cucharadas y a la papa.\u003C\u002Fp>\r\n\u003Cp>Ingredientes:\u003C\u002Fp>\r\n\u003Cp> \u003C\u002Fp>\r\n\u003Cp> \u003C\u002Fp>\r\n\u003Cul>\r\n\u003Cli>Necesitamos una maquina virtual, si no sabes como instalar una te dejo estos artículos que escribí hace un tiempo.\u003C\u002Fli>\r\n\u003C\u002Ful>\r\n\u003Cp> \u003C\u002Fp>\r\n\u003Cp> \u003C\u002Fp>\r\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fcybersecuritylaboratory.wordpress.com\u002F2016\u002F08\u002F26\u002Fpreparando-el-ambiente-para-comenzar-a-programar\u002F\">1-PREPARANDO EL ENTORNO VIRTUAL PARA COMENZAR A PROGRAMAR EN PYTHON.\u003C\u002Fa>\u003C\u002Fp>\r\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fcybersecuritylaboratory.wordpress.com\u002F2016\u002F08\u002F26\u002Fcreando-nuestra-maquina-virtual-de-pruebas\u002F\">2-PREPARANDO EL ENTORNO VIRTUAL PARA COMENZAR A PROGRAMAR EN PYTHON.\u003C\u002Fa>\u003C\u002Fp>\r\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fcybersecuritylaboratory.wordpress.com\u002F2016\u002F08\u002F26\u002Fconfigurando-nuestro-ubuntu\u002F\">3-PREPARANDO EL ENTORNO VIRTUAL PARA COMENZAR A PROGRAMAR EN PYTHON.\u003C\u002Fa>\u003C\u002Fp>\r\n\u003Cp> \u003C\u002Fp>\r\n\u003Cp> \u003C\u002Fp>\r\n\u003Cul>\r\n\u003Cli>Una maquina Linux, si no sabes como hacerlo te dejo este otro articulo.\u003C\u002Fli>\r\n\u003C\u002Ful>\r\n\u003Cp> \u003C\u002Fp>\r\n\u003Cp> \u003C\u002Fp>\r\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fcybersecuritylaboratory.wordpress.com\u002F2016\u002F08\u002F26\u002Finstalando-un-ide-para-programar-en-python-y-sistema-operativo-ubuntu\u002F\">INSTALANDO UN IDE PARA PROGRAMAR EN PYTHON Y SISTEMA OPERATIVO UBUNTU\u003C\u002Fa>\u003C\u002Fp>\r\n\u003Cp> \u003C\u002Fp>\r\n\u003Cp> \u003C\u002Fp>\r\n\u003Cul>\r\n\u003Cli>Saber algo de programación en  Python\u003C\u002Fli>\r\n\u003C\u002Ful>\r\n\u003Cp> \u003C\u002Fp>\r\n\u003Cp> \u003C\u002Fp>\r\n\u003Cul>\r\n\u003Cli>Ganas de aprender\u003C\u002Fli>\r\n\u003C\u002Ful>\r\n\u003Cp> \u003C\u002Fp>\r\n\u003Cp> \u003C\u002Fp>\r\n\u003Cp>\u003Cspan>\u003Cspan>\u003Cimg src=\"https:\u002F\u002Flh6.googleusercontent.com\u002F9rQvMlDMLA4HAZa-zgpZEGWMrJjwPTehCpK4OCPUbZyPKAjVY73SFljI9tn7sBoS7rRIYlUQKZBez9ETWsg8__azUSWt7Au2I0NHc1IJx-1QppSAy8cBhujiT2LFHomPL22x7Mi0\" width=\"602\" height=\"360\">\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp>Diagrama de lo que se pretende enseñar\u003C\u002Fp>\r\n\u003Cdiv> \u003C\u002Fdiv>\r\n\u003Cp>\u003Cspan>\u003Cstrong>Paso 1:\u003C\u002Fstrong>\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp>Se crea un código que cifre datos de una computadora, escogí hacerlo en python por su versatilidad y facilidad de aprendizaje.\u003C\u002Fp>\r\n\u003Cp>\u003Cspan>\u003Cstrong>Paso 2:\u003C\u002Fstrong>\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp>Se debe infectar una maquina con el código, en este ejemplo no voy a mostrar ningún vector de ataque para hacerlo mas simple y decidí instalarlo directamente en la computadora.\u003C\u002Fp>\r\n\u003Cp>\u003Cspan>\u003Cstrong>Paso 3:\u003C\u002Fstrong>\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp>Al infectar la maquina, esta busca ciertos directorios que nosotros le indiquemos, va a cifrar con una contraseña aleatoria y cuando este todo listo las va a enviar a un servidor Web. El servidor Web va a recibir un Id y un password, lo va a guardar en una base de datos.\u003C\u002Fp>\r\n\u003Cp>\u003Cspan>\u003Cstrong>Paso 4:\u003C\u002Fstrong>\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp>La maquina infectada va a tener solo un script para recuperar los archivos cifrados y se le va a solicitar un pago.\u003C\u002Fp>\r\n\u003Cp>\u003Cspan>\u003Cstrong>Paso 5:\u003C\u002Fstrong>\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp>El usuario paga por medio de bitcoin.\u003C\u002Fp>\r\n\u003Cp>\u003Cspan>\u003Cstrong>Paso 6:\u003C\u002Fstrong>\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp>\u003Cspan>\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp>Se procede a ejecutar el script con la contraseña obtenida después del pago.\u003C\u002Fp>\r\n\u003Ch3>Desarrollo de Ransomware en Python\u003C\u002Fh3>\r\n\u003Cp>Para escribir este código me base en una versión de OpenRansomware y modifique algunas cosas. De todas maneras les dejo el código fuente original en el siguiente link:\u003C\u002Fp>\r\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FSpeed09\u002FOpenRansomware\">https:\u002F\u002Fgithub.com\u002FSpeed09\u002FOpenRansomware\u003C\u002Fa> (El código no funciona, tiene varios errores, pero me sirvió para hacer este artículo, así que todos los créditos para el)\u003C\u002Fp>\r\n\u003Cp> \u003C\u002Fp>\r\n\u003Cp>\u003Cspan>\u003Cspan>\u003Cimg src=\"https:\u002F\u002Flh3.googleusercontent.com\u002FTHS72ct-M76ye9xq7I3zJ7RAD_40DsxxW2NG_69OdxDrc15osZNAKPWys2BuEhceZP07dQw0kKGC-dNJeyCKyPTwdWXfe589J0IKX-atoQL6s7vKoqw-lm5Xqlrrar5qBWHZE86A\" width=\"602\" height=\"131\">\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp>\u003Cspan>Para comenzar abrimos nuestro editor de texto favorito en mí caso gedit y escribimos lo siguiente:\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp>\u003Cspan>\u003Cspan> \u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp>\u003Cspan>\u003Cspan>\u003Cimg src=\"https:\u002F\u002Flh4.googleusercontent.com\u002FOq72R9piUpdhVt1jgO3sCH9tlyNFaNJK9LDgmnbjDYj9fJAid7YK2lkJ_-xBx4GmsVqtTD5aZac58Zev99q9a7g7cHp-rCPDQ14L1JqdUXVHNFt9wNsXoR2IKC0YM5QqyJUCR1-Q\" width=\"602\" height=\"232\">\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp>\u003Cspan>\u003Cspan>\u003Cspan>De la línea 4 a la 10 se encuentran las librerías necesarias para ejecutar el código.\u003C\u002Fspan>\u003Cbr>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cdiv>\r\n\u003Ch4>La función Linux() contiene lo siguiente:\u003C\u002Fh4>\r\n\u003Cp>En la línea 13 se pregunta si el usuario que ejecuto el script es sudo, para los que no están familiarizados con este termino les comento que, El programa sudo (del inglés super user do ) es una utilidad de los sistemas operativos tipo Unix, como Linux, BSD, o Mac OS X, que permite a los usuarios ejecutar programas con los privilegios de seguridad de otro usuario (normalmente el usuario root) de manera segura, convirtiéndose así temporalmente en súper usuario.\u003C\u002Fp>\r\n\u003Cp>En la línea 14, si la afirmación de la línea 13 es correcta y el script se ejecuto con usuario sudo, se agrega el directorio root a la lista de archivos a cifrar, esto podría ser muy grave si no se tienen controles de seguridad para entrar como sudo a maquinas de producción , ya que podríamos arriesgarnos a que se cifren otros programas necesarios para que funciones un SO, les comparto una imagen para saber que otros archivos o programas se pueden cifrar y hacer de esto, una verdadera pesadilla.\u003C\u002Fp>\r\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Flh3.googleusercontent.com\u002Fq3NAJanQiTRwAX1TkOYvnEcsFy7tyg7bo3RT2pt4mG231zEl9H9oTtQtPYyAzb1SbeGcBUm6QbIj69_CsljxisKG_Hrdul8sRxpTcUGuM1lvXSEkwPHQrisxbE3W0r0FKnP8g8T1\" width=\"602\" height=\"472\">\u003C\u002Fp>\r\n\u003Cp>Arquitectura de un sistema en linux\u003C\u002Fp>\r\n\u003Cdiv> \u003C\u002Fdiv>\r\n\u003Cdiv>\r\n\u003Cp>En la línea 17 se genera una cadena de texto de letras y números, si lo comprobamos en la consola interactiva de Python nos entregara lo siguiente:\u003C\u002Fp>\r\n\u003Cp> \u003C\u002Fp>\r\n\u003C\u002Fdiv>\r\n\u003Cdiv>\r\n\u003Cp>\u003Cspan>\u003Cspan>\u003Cimg src=\"https:\u002F\u002Flh5.googleusercontent.com\u002F0bDkvsT3SkXW8YNUoM38VMc58av-EjMMUgsHzeZWhmq5WSRo0553o0TXKG8en5OR-sGJ-U7YwCJx6oA1SobPqf12uyCryTj0r-ixnAmHShHcJib8aeEBscU8b2A9D_b23EpUpGaZ\" width=\"602\" height=\"64\">\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp>\u003Cspan>\u003Cspan>\u003Cspan>En la Línea 18 se genera una clave aleatoria de largo 30 con caracteres y números\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp>\u003Cspan>\u003Cspan>\u003Cspan> \u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp>\u003Cspan>\u003Cspan>\u003Cimg src=\"https:\u002F\u002Flh4.googleusercontent.com\u002Fvo52iSiOVP3ikqG7P0xquZlXnvNok55jxoBf9670QPhvt_Guigawim5I5Wu7XmwzNUsWtOcXFLfCfqdh5Tcao0ejngnpV5TdkX7G0zP7CjS4KznGy52Kg_GMECfxRsN1v7jDZ14L\" width=\"602\" height=\"75\">\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003C\u002Fdiv>\r\n\u003Cdiv>\r\n\u003Cp>En la línea 25 se ejecuta la función encargada de enviar la clave y el ID a nuestro servidor receptor.\u003C\u002Fp>\r\n\u003Cp>En la línea 26 se ejecuta la función que recorre la lista de directorios que le dimos anteriormente y las va cifrando.\u003C\u002Fp>\r\n\u003Cp>En la línea 27 se ejecuta la función que deja las indicaciones a la victima para sepa que hacer en caso de que quiera pagar por el rescate.\u003C\u002Fp>\r\n\u003Cp>En la línea 28 se ejecuta la función que esta encargada de dejar el script que es capaz de descifrar los archivos secuestrados.\u003C\u002Fp>\r\n\u003Cp>Ahora debemos agregar al código las funciones necesarias para secuestrar el computador de la victima:\u003C\u002Fp>\r\n\u003Cp>\u003Cstrong>Función sendCred()\u003C\u002Fstrong>\u003C\u002Fp>\r\n\u003Cp>\u003Cspan>\u003Cspan>\u003Cimg src=\"https:\u002F\u002Flh3.googleusercontent.com\u002FZ45damHfhcTujDqQFIcd6qC6hb74Oxmis1wofn99MAXwmeVxEBZXnUUw4xRxnSwJ1I-_8XI2cqG7oWzJWhXpTVKU51Jk7KnmueHRcKauF693wNrC59h68fzys8YrTUwOA4koT6BB\" width=\"602\" height=\"88\">\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003C\u002Fdiv>\r\n\u003Cdiv>\r\n\u003Cp>La Línea 31 se define la función y se espera recibir 3 parámetros que anteriormente cargamos en el script, primero la URL del servidor recolector de victimas, la clave generada anteriormente y el ID de la maquina. Luego de tener estos parámetros se prepara la petición que se va a realizar al servidor recolector.\u003C\u002Fp>\r\n\u003Cp>En la línea 32, se preparan los parámetros que se van a recibir por método POST.\u003C\u002Fp>\r\n\u003Cp>En la línea 33 al estar todo listo y formateado, se envía la petición HTTP y nos comunicamos con el servidor.\u003C\u002Fp>\r\n\u003Cp>En la línea 34 se lee la respuesta del servidor.\u003C\u002Fp>\r\n\u003Cp>En la línea 35 se verifica si la petición HTTP tuvo un error en la entrega, si es así, se cierra el programa y no se sigue adelante.\u003C\u002Fp>\r\n\u003Cp>\u003Cstrong>Función crypt()\u003C\u002Fstrong>\u003C\u002Fp>\r\n\u003Cp>\u003Cspan>\u003Cspan>\u003Cimg src=\"https:\u002F\u002Flh3.googleusercontent.com\u002FsXRX_qL0X3RXBisX0edAsAiBlgENekFOlx8sfUmUlyF2pbQzlwi9G6k9eT8qStd3a2cnzGuY2atAY5P8h2d2cUQQMI-rkzrPYG62TqkiaiTpUG31t4Irok6onCJti7DPRpkEtypT\" width=\"602\" height=\"169\">\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp>\u003Cspan>En la línea 38 se define la función \u003Cstrong>cryp()\u003C\u002Fstrong> y se solicita dos parámetros para poder realizar la tarea de cifrar, el primero es la lista con los directorios y el segundo es la clave que se genero dinámicamente.\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003C\u002Fdiv>\r\n\u003Cdiv>\r\n\u003Cp>En la línea 40 y 41 se verifica y la variable directorio recibida como argumento es del tipo objeto Lista, si no es así, se entrega un mensaje y se cierra el programa.\u003C\u002Fp>\r\n\u003Cp>En la línea 43 se recorre la lista de directorio una por una, si no sabes de bucles en Python, te recomiendo les el siguiente articulo \u003Ca href=\"https:\u002F\u002Fcybersecuritylaboratory.wordpress.com\u002F2016\u002F09\u002F26\u002Fbucle-while-y-for\u002F\">https:\u002F\u002Fcybersecuritylaboratory.wordpress.com\u002F2016\u002F09\u002F26\u002Fbucle-while-y-for\u002F\u003C\u002Fa>\u003C\u002Fp>\r\n\u003Cp>En la línea 44 se ingresa al directorio entregado por el ciclo for.\u003C\u002Fp>\r\n\u003Cp>En la línea 45 se comprime todo lo que esta en esa carpeta.\u003C\u002Fp>\r\n\u003Cp>En la línea 46 se eliminan todos los archivos de la carpeta visitada.\u003C\u002Fp>\r\n\u003Cp>En la línea 47 se eliminan todos los directorios de la carpeta visitada.\u003C\u002Fp>\r\n\u003Cp>En la línea 48 se cifran el archivo \u003Cspan class=\"skimlinks-unlinked\">encrypted.tar\u003C\u002Fspan> y se transforma a formato gpg\u003C\u002Fp>\r\n\u003Cp>En la línea 49 se elimina el archivo comprimido \u003Cspan class=\"skimlinks-unlinked\">encrypted.tar\u003C\u002Fspan> y se deja solamente el archivo el archivo \u003Cspan class=\"skimlinks-unlinked\">encrypted.tar.gpg\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp>En la línea 50 nos devolvemos un directorio.\u003C\u002Fp>\r\n\u003Cp>\u003Cstrong>Función howto()\u003C\u002Fstrong>\u003C\u002Fp>\r\n\u003Cp>\u003Cspan>\u003Cspan>\u003Cimg src=\"https:\u002F\u002Flh3.googleusercontent.com\u002FcmsGdNCpi84i1R71Zo31k_Te8bvOlPVfAW3tUNIqYEyQuo4e7QHwjNt-PYX9Q-0Z2N-kzq2d6aUM5fEnAYKuE-BYnno931mU8hUJbiECuDs5vAG09Fc4eD9vRYQx2hflGBnt_YQc\" width=\"602\" height=\"176\">\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp> \u003C\u002Fp>\r\n\u003C\u002Fdiv>\r\n\u003Cdiv>\r\n\u003Cp>En la línea 53 se define la función y se esperan 3 argumentos, los directorios, la dirección de bitcoin y el precio a pagar.\u003C\u002Fp>\r\n\u003Cp>De la línea 54 a la 61 se crea la variable txt que contiene las indicaciones a seguir después de ser infectado. Para no confundir a nadie, la nomenclatura += sirve para concatenar texto.\u003C\u002Fp>\r\n\u003Cp>En la línea 62 se crea un documento llamado \u003Cspan class=\"skimlinks-unlinked\">recuperar-mis-archivos.txt\u003C\u002Fspan>.\u003C\u002Fp>\r\n\u003Cp>En la línea 63 se escribe lo que esta dentro de la variable txt, en el documento \u003Cspan class=\"skimlinks-unlinked\">recuperar-mis-archivos.txt\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp>En la Línea 64 se cierra el puntero del documento.\u003C\u002Fp>\r\n\u003Cp>En la Línea 65 y 66 se copia este texto en cada carpeta que fue infectada.\u003C\u002Fp>\r\n\u003Cp>\u003Cstrong>Función DecryptGen()\u003C\u002Fstrong>\u003C\u002Fp>\r\n\u003Cp>\u003Cspan>\u003Cspan>\u003Cimg src=\"https:\u002F\u002Flh4.googleusercontent.com\u002F81qLRCFLtnfiMbRQNiCi5-zY5E_vszfdwigjfhPY5Ckh_qE3kt1y8XqsUSquPuRMgHc_sPL96y2_kfR06CvrQrBa_O_HYUbEAB8vpTLlnq-d8iOjadH9-JkpQF6ul80OB9_FwEer\" width=\"602\" height=\"228\">\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003C\u002Fdiv>\r\n\u003Cdiv>\r\n\u003Cp>En la Línea 69 se declara la función para descifrar los archivos secuestrados, recibe como argumento los directorios cifrados.\u003C\u002Fp>\r\n\u003Cp>De la Línea 71 a 85 se escribe el código fuente necesario para descifrar los directorios secuestrados.\u003C\u002Fp>\r\n\u003Cp>En la línea 86 se crea el archivo \u003Cspan class=\"skimlinks-unlinked\">decrypt.py\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp>En la línea 87 se escribe el archivo con el codigo fuente.\u003C\u002Fp>\r\n\u003Cp>En la línea 88 se cierra el puntero.\u003C\u002Fp>\r\n\u003Cp>Si no manejas el manejo de archivos en Python te recomiendo leer este articulo \u003Ca href=\"https:\u002F\u002Fcybersecuritylaboratory.wordpress.com\u002F2016\u002F10\u002F20\u002Fmanejo-de-archivos-en-python\u002F\">https:\u002F\u002Fcybersecuritylaboratory.wordpress.com\u002F2016\u002F10\u002F20\u002Fmanejo-de-archivos-en-python\u002F\u003C\u002Fa>\u003C\u002Fp>\r\n\u003C\u002Fdiv>\r\n\u003Cdiv>\r\n\u003Cp>\u003Cspan>\u003Cspan>\u003Cimg src=\"https:\u002F\u002Flh5.googleusercontent.com\u002FPcoLZnYD1PKaZqqxyLJdmDRboVCO1NbWRdbj5B8ipn2MM75S2_Dz1KwyWzrpAcxW3eAI4CSJH96ttb66KUUl7U8jeEdYOYQ2HysNpT3nY_9zANlabgO61SC0AX1KLX0fkFYZSOau\" width=\"602\" height=\"77\">\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp> \u003C\u002Fp>\r\n\u003Cp>La línea 91 colocamos en forma de lista los directorios que queremos cifrar, en este caso están todos en español, el sistema operativo que estoy usando esta configurado de esa manera. Si no sabes que es una lista y como se manipulan en Python te recomiendo leer este articulo \u003Ca href=\"https:\u002F\u002Fcybersecuritylaboratory.wordpress.com\u002F2016\u002F09\u002F06\u002Fagrupacion-de-datoslistastuplasdiccionarios\u002F\">https:\u002F\u002Fcybersecuritylaboratory.wordpress.com\u002F2016\u002F09\u002F06\u002Fagrupacion-de-datoslistastuplasdiccionarios\u002F\u003C\u002Fa>\u003C\u002Fp>\r\n\u003Cp>\u003Cspan>Directorios a cifrar\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp>\u003Cspan>\u003Cspan>\u003Cspan>\u003Cimg src=\"https:\u002F\u002Flh5.googleusercontent.com\u002FDsUAifytPYiQObQebDvAwrBCKCbiBBCfOG7IzmydpO72aC8adSGJCWrxI1975Vg1X8ISRPeL8H_AsyMvz4SyW7V8fGs4Pxb7ma-pB9PFTz4PU0b4oJEFWAi19vbYn4_w1y1Zk7Qu\" width=\"602\" height=\"275\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cbr>\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp>\u003Cspan> \u003C\u002Fspan>\u003C\u002Fp>\r\n\u003C\u002Fdiv>\r\n\u003Cdiv>\r\n\u003Cp>En línea 92  dentro de las comillas simples, escribimos nuestra dirección de Bitcoin.\u003C\u002Fp>\r\n\u003Cp>En la línea 93 dentro de las comillas simples, escribiremos el precio que se debe pagar por los datos.\u003C\u002Fp>\r\n\u003Cp>En la línea 94 dentro de las comillas simples, escribiremos la Url de nuestro servidor donde estamos guardando las contraseñas de los computadores infectados.\u003C\u002Fp>\r\n\u003Cp>\u003Cspan>\u003Cspan>\u003Cimg src=\"https:\u002F\u002Flh3.googleusercontent.com\u002F4vpHv31lAvft_n3sS2QPuxwFefsPiDeN2Oh2Eq8U2p0VrbsLRrG3z_-e8tkbLp7SG-gUXJ-kjre3uubvX_5qh5kwWeEf-0mfw1HatAiXVHGgNcJuCnYDbE4YT1brbooQMVA-Fq14\" width=\"602\" height=\"105\">\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cdiv>\r\n\u003Cp>En la línea 97 se pregunta la maquina en la que se esta ejecutando este script es de SO Linux, si la respuesta es si, se ejecuta la función Linux(), si no sabes de estructuras de control y funciones en Python, te recomiendo leas los siguientes artículos:\u003C\u002Fp>\r\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fcybersecuritylaboratory.wordpress.com\u002F2016\u002F09\u002F15\u002Festructuras-de-control-if-else-y-elif\u002F\">https:\u002F\u002Fcybersecuritylaboratory.wordpress.com\u002F2016\u002F09\u002F15\u002Festructuras-de-control-if-else-y-elif\u002F\u003C\u002Fa>  o\u002Fy \u003Ca href=\"https:\u002F\u002Fcybersecuritylaboratory.wordpress.com\u002F2016\u002F10\u002F04\u002Ffunciones-en-python\u002F\">https:\u002F\u002Fcybersecuritylaboratory.wordpress.com\u002F2016\u002F10\u002F04\u002Ffunciones-en-python\u002F\u003C\u002Fa>\u003C\u002Fp>\r\n\u003Cp>En la Línea 99 se pregunta si el SO es Windows, si la respuesta es correcta se envía un mensaje y se el script deja de funcionar, terminando el programa. Cabe señalar que estas validaciones están por si se quiere hacer que este script sea multiplataforma.\u003C\u002Fp>\r\n\u003Cp>En la línea 101 se ejecuta si el SO es distinto a Windows y Linux, envía un mensaje en pantalla y termina el programa.\u003C\u002Fp>\r\n\u003Cp>\u003Cstrong>Preparando el Servidor recolector de computadores secuestrados.\u003C\u002Fstrong>\u003C\u002Fp>\r\n\u003Cp>Lo primero que debemos hacer es instalar en una maquina los siguientes componentes, yo voy usar la misma maquina virtual para ahorrar trabajo, pero ustedes lo pueden hacer en cualquier otro servidor:\u003C\u002Fp>\r\n\u003Cp>\u003Cspan>\u003Cstrong>Instalar Servidor Apache:\u003C\u002Fstrong>\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cpre>sudo apt -get updatesudo apt -get install apache2\u003C\u002Fpre>\r\n\u003Cp>\u003Cspan>\u003Cstrong>Instalar Servidor Mysql\u003C\u002Fstrong>\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cpre>sudo apt-get install mysql-server\u003C\u002Fpre>\r\n\u003Cp>\u003Cspan>\u003Cstrong>Instalar PHP5\u003C\u002Fstrong>\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cpre>sudo apt-get install libapache2-mod-php5 php5 php5-mcrypt php5-mysql\u003C\u002Fpre>\r\n\u003Cp>Ya teniendo los componentes listos, vamos a crear una base de datos para almacenar los datos recibidos por las víctimas.\u003C\u002Fp>\r\n\u003Cp>Escribimos en la Terminal el comando mysql\u003C\u002Fp>\r\n\u003Cp>\u003Cspan>\u003Cspan>\u003Cimg src=\"https:\u002F\u002Flh4.googleusercontent.com\u002Fq986nZsBCUYthTEdyQO4OAp_SnSk-24-1WQ8Pkah4Ddo7F3gYzUdwDUbfwHql69R0ozRNtCY9ZCsypxk37g8V6UErr0QCmNxV6zhJiEFskHbflUoTu3GruHAXfmXd9tdbtrnNF_n\" width=\"602\" height=\"215\">\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003C\u002Fdiv>\r\n\u003Cdiv>\r\n\u003Cp>Luego procedemos a crear la base de datos:\u003C\u002Fp>\r\n\u003Cpre>mysql&gt; CREATE DATABASE ransomware_db;\u003C\u002Fpre>\r\n\u003Cp>\u003Cspan>\u003Cspan>\u003Cimg src=\"https:\u002F\u002Flh6.googleusercontent.com\u002FV_14jb5IKAwd3pjtkUrYlrtsGQ10pzmkjuAEOVV9dg1QeU45qcM5-JnwcU9Q3CXgEHD41UsUpOA9wxn2RCfgnlkrRFDGTKsyZRddRY-3JAY0WvmiC6PrhAWxX_ZoF0z7drskFaK1\" width=\"602\" height=\"67\">\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003C\u002Fdiv>\r\n\u003Cdiv>\r\n\u003Cp>Procedemos a utilizar esta base de datos para crear una tabla:\u003C\u002Fp>\r\n\u003Cpre>mysql&gt; USE ransomware_db;\u003C\u002Fpre>\r\n\u003Cp>\u003Cspan>\u003Cspan>\u003Cimg src=\"https:\u002F\u002Flh3.googleusercontent.com\u002FOTwEyQN_9tj9Il4882XyEionfAlhOrGIhCg2rjZNttZdQ5VW1JX_ofpmbn0r1uB5UPDHewaY_GE6_aOXc8A96aKQogNdm-rdqTsz1s7_YLt9wAFFAbiiVE4qFbBy6lQPDzWa-nCW\" width=\"602\" height=\"53\">\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003C\u002Fdiv>\r\n\u003Cdiv>\r\n\u003Cp>Creamos la tabla donde guardaremos los registros:\u003C\u002Fp>\r\n\u003Cblockquote>mysql&gt; CREATE TABLE victimas (ID int NOT NULL AUTO_INCREMENT,\u003Cbr>IDD varchar(35),\u003Cbr>PASS varchar(35),\u003Cbr>PRIMARY KEY (ID));\u003C\u002Fblockquote>\r\n\u003Cp>\u003Cspan>\u003Cspan>\u003Cimg src=\"https:\u002F\u002Flh3.googleusercontent.com\u002FNzrVhZKlNk96FsgK4dFt1gjcmQ1XfCCUng4ExNWztPC3b7Yo_eTJaZxfCqXaqA_09OzjwA66Su7XmTPsuugAEu5J1GC--LPArj9z5lnpVHZawFLG471Ly6A86nE6OTQWHaKnkxXm\" width=\"602\" height=\"113\">\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003C\u002Fdiv>\r\n\u003Cdiv>\r\n\u003Cp>Ya creada la base de datos, procedemos a crear un programa que reciba los datos y los guarde. Para eso entramos a el directorio \u003Cstrong>\u002Fvar\u002Fwww\u002F\u003C\u002Fstrong> o \u003Cstrong>\u002Fvar\u002Fwww\u002Fhtml\u003C\u002Fstrong>   y creamos un archivo llamado \u003Cspan class=\"skimlinks-unlinked\">\u003Cstrong>datosvictima.php\u003C\u002Fstrong>\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp>\u003Cspan class=\"skimlinks-unlinked\">\u003Cspan>\u003Cspan>\u003Cimg src=\"https:\u002F\u002Flh5.googleusercontent.com\u002FyiY9S6q8696CQgpuk4H6wCWf0Tfz4Ob_bC3LmNanQ7pGhAXFoPgJGc40c7gqk3qUcan8uIS2j2a-ljzkM7B-BUmaMpICIcq729C6xRSRIrg-3E-Iic9Sexk2zKB9qcxgvuPmzHNz\" width=\"602\" height=\"297\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cbr>\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003C\u002Fdiv>\r\n\u003Cdiv>\r\n\u003Cp>De la línea 2 a la línea 5 se llenan las variables con los datos de conexión a mysql.\u003C\u002Fp>\r\n\u003Cp>La línea 6 y 7 del código, se reciben por método POST, las variables (id y clave) que se generaron en la victima y que se enviaron al cifrar su maquina.\u003C\u002Fp>\r\n\u003Cp>La línea 9 se prepara la conexión con la base de datos.\u003C\u002Fp>\r\n\u003Cp>En la línea 11 se comprueba si se puedo obtener una conexión con la base de datos anteriormente creada.\u003C\u002Fp>\r\n\u003Cp>En la línea 14, se prepara la consulta SQL que guarda los registros id y clave enviado por la victima.\u003C\u002Fp>\r\n\u003Cp>En la Línea 15 se comprueba que se guardaron correctamente los datos y se envía un OK. Al script cuando realiza la petición HTTP.\u003C\u002Fp>\r\n\u003Cp>La línea 17 se ejecuta si es que algún error ocurrió al ejecutar la Quero.\u003C\u002Fp>\r\n\u003Cp>La línea 20 cierra la conexión con la Base de datos.\u003C\u002Fp>\r\n\u003Cp> \u003Cspan>Ejecución del \u003C\u002Fspan>\u003Cspan class=\"skimlinks-unlinked\">\u003Cstrong>ransomware.py\u003C\u002Fstrong>\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp>\u003Cspan class=\"skimlinks-unlinked\">\u003Cspan>\u003Cspan>\u003Cimg src=\"https:\u002F\u002Flh6.googleusercontent.com\u002FeZPoNKdq8t5_-OIiQaPDShK3y4_UrqpVcmogKKBIEFtg3Wr5WoTt5t3zROsKWEJGeShkw-R-JGrm7677-51hxLvrU2Kb5lf0rqkYvJkBZw6O3DN5ifrjymaxjjPMsyQUucR-LPFD\" width=\"602\" height=\"59\">\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp>Para ejecutar  el script abrimos la Terminal y escribiendo lo siguiente:\u003C\u002Fp>\r\n\u003Cpre>python \u003Cspan class=\"skimlinks-unlinked\">ransomware.py\u003C\u002Fspan>\u003C\u002Fpre>\r\n\u003Cdiv>\r\n\u003Cp>Si todo sale bien, nos debería entregar un resultado parecido a este:\u003C\u002Fp>\r\n\u003Cp>\u003Cspan>\u003Cspan>\u003Cimg src=\"https:\u002F\u002Flh3.googleusercontent.com\u002FdpEmz9Ny3JzK93Ahsia2qzykoHN-Wo04iRJdTxQb21TTVstFH8NUn9HadW7aJn7lwjkDL1DQHkgezqErH2qqt_7gpT_1sZLTdWD1lrRyP8rfaItq_KfbUXEjOY0zTM3CXEfRtzsr\" width=\"602\" height=\"283\">\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cdiv>\r\n\u003Cp>Verificamos en alguna de las carpetas señaladas en la lista si se encuentran los siguientes archivos. En mi caso todo salio bien.\u003C\u002Fp>\r\n\u003Cp>\u003Cspan>\u003Cspan>\u003Cimg src=\"https:\u002F\u002Flh5.googleusercontent.com\u002FvELUzf2RAVqEA84zMMkzn0KdYKYtiKS76EY7use_MfBHD6IULGU3xuHGQpC3_gKFM0Rs-DoXmjRmVW4aQ8EFFO5SpKXddxBMRPp3-JHZ5LnGD3rH4n4Xg2p17Z4UqKC1yY8o8Oxa\" width=\"602\" height=\"199\">\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003C\u002Fdiv>\r\n\u003Cdiv>\r\n\u003Cp>Procedo a abrir el archivo \u003Cspan class=\"skimlinks-unlinked\">recuperar-mis-archivos.txt\u003C\u002Fspan> y confirmo que todo esta bien:\u003C\u002Fp>\r\n\u003Cp>\u003Cspan>\u003Cspan>\u003Cimg src=\"https:\u002F\u002Flh3.googleusercontent.com\u002F-dpZ8Tx2RgIGGbDNSwRDHL8EQTCWrtdaAalTRjfZM6jHCRO8bojmHFQeIXMFTt8oaCSstW7zoNzXOFI0mTwkdIyX-15Tf6-1PTFmDvabfYHl0k3ZI3PyWT9XT5xpVvVD4aDPpxzY\" width=\"602\" height=\"197\">\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003C\u002Fdiv>\r\n\u003Cdiv>\r\n\u003Cp>Ahora para volver a recuperar nuestros archivos necesitamos la clave que genero el programa automáticamente, para esto nos vamos a nuestra base de datos y escribiremos la siguiente Query\u003C\u002Fp>\r\n\u003Cpre>SELECT * FROM victimas\u003C\u002Fpre>\r\n\u003Cp>\u003Cspan>\u003Cspan>\u003Cimg src=\"https:\u002F\u002Flh3.googleusercontent.com\u002FQ50-t76fNGvRDXfXRz9o3m1ty9ZAJEfnFVxeWOKalb87-F4iSGqsgDTE6y6hpBaoKwIfh2OK76782FdgQw7xN10vDXIXetks-NH3pxcpv8DbKyx3dC11DNJ-tLh2x4RwEXkp5a7A\" width=\"602\" height=\"157\">\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003C\u002Fdiv>\r\n\u003Cdiv>\r\n\u003Cp>Copiamos esa clave y buscamos el archivo llamado \u003Cspan class=\"skimlinks-unlinked\">decrypt.py\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003C\u002Fdiv>\r\n\u003Cdiv>\r\n\u003Cp>\u003Cspan>\u003Cspan>\u003Cimg src=\"https:\u002F\u002Flh4.googleusercontent.com\u002FIsm9ZvJFUhrT-3memi3gj8emGQxCfmAW2iKNh-agg1hwp2Gzk7ygMlYBZ4EzCtd4y9pz8afM1_tF8HjXGljmM2kAzYSKnzHvgXrW2Gp7588GF_G6OGSJUmpwb-cJuuvKBnWxS6AR\" width=\"602\" height=\"195\">\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp>Ejecutamos el archivo con el siguiente comando:\u003C\u002Fp>\r\n\u003Cpre>python \u003Cspan class=\"skimlinks-unlinked\">decrypt.py\u003C\u002Fspan>\u003C\u002Fpre>\r\n\u003Cp>\u003Cspan class=\"skimlinks-unlinked\">\u003Cspan>\u003Cspan>\u003Cimg src=\"https:\u002F\u002Flh4.googleusercontent.com\u002FVWkmpNdGbg_E-m54-rxM6JhNmyHpta_uQ-UoXoVBIzXqmiCy-f_j--mPYNTbp4cWaItIcGMt78XJ9ON8VfNgEBg4lI0_SBWRqbKVTEhMJy1FhNDtd-Uw7fbEOls65inbgcScJjCV\" width=\"602\" height=\"72\">\u003C\u002Fspan>\u003C\u002Fspan>\u003Cbr>\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cdiv>\r\n\u003Cp>Y vemos que el script nos solicita ingresar la contraseña:\u003C\u002Fp>\r\n\u003Cdiv>\r\n\u003Cp>Nos va a pedir varias veces que ingresemos la contraseña, este proceso se repite según la cantidad de directorios cifrados tengamos.\u003C\u002Fp>\r\n\u003Cp>\u003Cspan>\u003Cspan>\u003Cimg src=\"https:\u002F\u002Flh5.googleusercontent.com\u002FZ-semlx-EdH7UWsTu7phgp5oDQrFufujIee7KMhhqlbnqAwtRKmbU16usGrWfwGB1EZlYc8yVbJ2Qk_dJ1wQeeU9HNXz1YEzQr4CGcFU9Rhpwf6bz5UIDAxT0PwpTWqNg8tudcIi\" width=\"574\" height=\"451\">\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp>El resultado final debería verse de la siguiente manera:\u003C\u002Fp>\r\n\u003C\u002Fdiv>\r\n\u003Cdiv>\r\n\u003Cp>\u003Cspan>\u003Cspan>\u003Cimg src=\"https:\u002F\u002Flh6.googleusercontent.com\u002FXpVK6wxyEI8_tQZHk2Rlzq9eM71eHycYoEgSHTY_LRJOA_PoOqHDXDk6tINqbA3XBsS3gl8sT3eiaDjOTkiKZP_Og17UogiabA2pOD7nXqzv5Q377W623T1Ai5jkDSwdiE1N9wYi\" width=\"566\" height=\"427\">\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp>Confirmamos que todo se decifro correctamente:\u003C\u002Fp>\r\n\u003Cp>\u003Cspan>\u003Cspan>\u003Cimg src=\"https:\u002F\u002Flh3.googleusercontent.com\u002FZ89F3EHOq66zjBwY92r0HuJvOVJmqpj-XPwfSDVS0Xt1NahaUE-tFsdqDShXrAGFpuNExaVLHia8SObjC9XvwjvkGIQss78iasCPwGs_Ia1htOiBlYd9fRqrq16LJx5B4G0hZWCs\" width=\"560\" height=\"179\">\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003C\u002Fdiv>\r\n\u003Cdiv>\r\n\u003Cp>Y con esto damos por finalizada la prueba de concepto.\u003C\u002Fp>\r\n\u003Cp>Para los perfeccionistas que siempre encuentran algo malo en el código, se que es súper mejorable y me disculpo por eso, pero decidí hacerlo simple, para que cualquier persona lo pueda entender.\u003C\u002Fp>\r\n\u003Cp>Le doy las gracias al Pato por motivarme a escribir de este tema.\u003C\u002Fp>\r\n\u003Cp>Por recomendación de Jaime, dejo los link para que puedan descargar el código fuente escrito por mí y así, puedan hacer sus propias pruebas de concepto. Les recomiendo lo ejecuten en una maquina virtual y por favor no hagan daño con este conocimiento.\u003C\u002Fp>\r\n\u003Cp>Link proyecto: \u003Ca href=\"https:\u002F\u002Fgist.github.com\u002Fanonymous\u002Fac8b5cc1eca260376cd6925dd078aaba\">https:\u002F\u002Fgist.github.com\u002Fanonymous\u002Fac8b5cc1eca260376cd6925dd078aaba\u003C\u002Fa>\u003C\u002Fp>\r\n\u003Cp>Para Dudas, Consultas, Reclamos, Felicitaciones: \u003Ca href=\"mailto:cyslabs@gmail.com\">cyslabs@gmail.com\u003C\u002Fa>\u003C\u002Fp>\r\n\u003C\u002Fdiv>\r\n\u003C\u002Fdiv>\r\n\u003C\u002Fdiv>\r\n\u003C\u002Fdiv>\r\n\u003C\u002Fdiv>\r\n\u003C\u002Fdiv>\r\n\u003C\u002Fdiv>","Ransomware, python, malware",12,[23,35,44],{"slug":24,"title":25,"summary":26,"category":27,"author":28,"image_url":32,"image_thumb_url":32,"published_at":33,"updated_at":34},"write-up-maquina-webdeveloper1-de-vulnhub","Write-up máquina WebDeveloper1 de VulnHub","Buenas, soy Martin Frias (otra vez), en unos días se hará público mi primer curso en esta plataforma llamado “Hacking Ético boot2root”, en este curso abordaremos cómo es la resolución de una máquina tipo boot2root que yo elabore, ColddBox: Easy, disponible tanto en VulnHub como en TryHackMe.",{"slug":8,"name":9},{"username":29,"name":30,"avatar_url":31},"coldd","Martin Frias",null,"https:\u002F\u002Fapi.backtrackacademy.com\u002Frails\u002Factive_storage\u002Fblobs\u002Fredirect\u002FeyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBZzBQIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--9088ff4d9195016e15c3d716536a9879894e0d65\u002Fshutterstock_1269857698.jpg","2021-04-15T16:16:19-04:00","2026-10-26T11:48:31-03:00",{"slug":36,"title":37,"summary":38,"category":39,"author":40,"image_url":41,"image_thumb_url":41,"published_at":42,"updated_at":43},"uso-de-foca-para-extraer-metadatos","Uso de FOCA para extraer metadatos.","FOCA es una herramienta que permite extraer los metadatos de un fichero y\u002Fo buscar ficheros en una determinada web para posteriormente extraer sus metadatos, bien los metadatos básicamente son un grupo de datos que describen otros datos, es información “oculta” que puede existir dentro de algún fichero o incluso en las llamadas telefónicas y que nos proporciona más información sobre este.",{"slug":8,"name":9},{"username":29,"name":30,"avatar_url":31},"https:\u002F\u002Fapi.backtrackacademy.com\u002Frails\u002Factive_storage\u002Fblobs\u002Fredirect\u002FeyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBZ3dQIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--c5a64e37a690cceb850d405b7fbe7fbc6adbc2ec\u002Fshutterstock_1184620222.jpg","2021-04-13T15:31:27-04:00","2026-10-26T11:55:40-03:00",{"slug":45,"title":46,"summary":47,"category":48,"author":49,"image_url":52,"image_thumb_url":52,"published_at":53,"updated_at":54},"la-importancia-de-un-soar-en-terminos-de-seguridad","La importancia de un SOAR en términos de seguridad","Es conocido que el avance tecnológico es cosa del día a día y así los peligros que este puede materializar en el Ciberespacio, es por esto que son muchas las herramientas necesarias a las cuales optan las empresas para proteger sus datos y activos. Pero esto tiene una curva cada vez más amplia, donde lo que se tiene integrado es un mero sinónimo de lo mucho que hace falta.",{"slug":8,"name":9},{"username":50,"name":51,"avatar_url":31},"user-1570553853","Flavio Esteban Canales Salvo","https:\u002F\u002Fapi.backtrackacademy.com\u002Frails\u002Factive_storage\u002Fblobs\u002Fredirect\u002FeyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBZ2tQIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--9a8439d5a0017e9aef4bb6e77a0f6ebaee6f3e68\u002Fshutterstock_1147173719.jpg","2021-01-14T14:26:15-03:00","2026-10-26T16:30:30-03:00",{"slug":56,"title":57,"summary":58,"level":59,"specialty":60,"category":63,"instructor":64,"image_url":68,"image_thumb_url":68,"duration_seconds":69,"lessons_count":70,"students_count":71,"is_free":72,"coming_soon":73,"updated_at":74},"introduccion-a-la-seguridad","Introducción a la Seguridad","Este curso tiene como objetivo comenzar en el mundo de la seguridad informática.","Basicos",{"slug":61,"name":62},"enterprise-pentesting-training-ept","Penetration Testing Student",{"slug":8,"name":9},{"username":65,"name":66,"avatar_url":67},"misaelban","Misael Banales","https:\u002F\u002Fapi.backtrackacademy.com\u002Frails\u002Factive_storage\u002Fblobs\u002Fredirect\u002FeyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBam9HIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--fcb46747ff2b0df3099425d0012f4da090b1db67\u002FIMG_2344.PNG","https:\u002F\u002Fapi.backtrackacademy.com\u002Frails\u002Factive_storage\u002Fblobs\u002Fredirect\u002FeyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBaThOIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--ecc54bfb8fc4ff08be1e0805467c791c93fa803d\u002F2_-Introducci%C3%B3n-a-la-seguridad-inform%C3%A1tica-2.png",5085,10,39044,true,false,"2025-02-15T00:32:03-03:00",{"slug":61,"name":62,"summary":76,"level":77,"courses_count":78,"total_duration_seconds":79,"is_free":72,"image_url":80,"icon_url":81,"wallpaper_url":82,"updated_at":83},"Usted al finalizar la certificación Penetration Testing habrá obtenido el conocimiento para poder reconocer y analizar vulnerabilidades, explotar las debilidades en los sistemas y ayudar a protegerse de las amenazas,…","Básico",5,77388,"https:\u002F\u002Fapi.backtrackacademy.com\u002Frails\u002Factive_storage\u002Fblobs\u002Fredirect\u002FeyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBaUlQIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--2514d038e8d6aff5caf896423c25af3de56fcd09\u002FStudent-Penetration-Testing-02.png","https:\u002F\u002Fapi.backtrackacademy.com\u002Frails\u002Factive_storage\u002Fblobs\u002Fredirect\u002FeyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBaWdQIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--a04208079ecbb8df87bdb8e7d6f8f822702d1d03\u002FPenetration-Testing-Student.png","https:\u002F\u002Fapi.backtrackacademy.com\u002Frails\u002Factive_storage\u002Fblobs\u002Fredirect\u002FeyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBaTRQIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--5e4754f3e0213a49757fe74e0c16177f96cb2692\u002FStudent-Penetration-Testing-02.jpg","2021-05-17T15:38:02-04:00"]