sábado, 28 de junio de 2014

¡Cuidado con donde dejan tus backups en WordPress!

¡Saludos!

    Hace un par de meses estuve auditando plugins para realizar backups en WordPress, fruto de lo cual llovió una gran cantidad de reportes. Entre los fallos más comunes estaban los CSRF que permitían la explotación de otros fallos, por poner algunos ejemplos: un DoS al sitio por intentar crear 1.000 backups completos de la instalación de WordPress en apenas 5 segundos, el borrado arbitrario de archivos, envío de una copia del bakcup de la DB al correo electrónico del atacante, etc.

   Otro problema que encontré relativamente común era que los backups que generaban eran guardados en lugares accesibles desde el navegador. Y no sólo eso, sino que además lo hacían con nombres bastante predecibles. En este grupo de plugins encontramos por ejemplo WP BackItUp, del cual ya hice en su momento un post (Arbitrary File Deletion http://www.estacion-informatica.com/2014/05/wp-backitup-arbitrary-file-deletion.html, que pese a haber actualizado el plugin en varias ocasiones sigue siendo vulnerable). Lo mismo que vamos a ver aquí, ocurre en otros tantos plugins.

   Si el source de este plugin podemos ver que el nombre que va a recibir el backup es bastante predecible:

/*** Globals ***/
global $WPBackitup;
$fileUTCDateTime=current_time( 'timestamp' );
$localDateTime = date_i18n('Y-m-d-Hi',$fileUTCDateTime);
$backup_project_dirname = str_replace(' ','',get_bloginfo('name')) .'_Backup_' .$localDateTime;
$backup_project_path = WPBACKITUP_CONTENT_PATH .WPBACKITUP_BACKUP_FOLDER .'/'. $backup_project_dirname .'/';
$backup_folder_root = WPBACKITUP_CONTENT_PATH .WPBACKITUP_BACKUP_FOLDER .'/';
$restore_folder_root = WPBACKITUP_RESTORE_FOLDER;

 Básicamente el archivo queda en forma de NombreDelBlog_Backup_Año_mes_dia_HoraMinuto.zip . Por lo tanto el número de posibilidades no es muy grande si lo que queremos es buscar posibles backups de hace un par de meses.

    He añadido un exploit para extraer y descargar los backups que realiza este plugin a g0jira  (poco a poco va cogiendo forma), iré metiendo más plugins susceptibles de sacar sus backups por fuerza bruta conforme saque tiempo.


Byt3z!

5 0verl0ad Labs: junio 2014 ¡Saludos!     Hace un par de meses estuve auditando plugins para realizar backups en WordPress, fruto de lo cual llovió una gran cantidad...

viernes, 27 de junio de 2014

Defeating WebShells Detection Tools III: oculta tus webshells con HideShells

¡Saludos!

       Tal y como adelanté en el primer post de esta serie os voy a dejar por aquí un script "del-colacao" para que tu webshell pueda evadir  a las diferentes herramientas que hemos ido venciendo en las entregas anteriores (PHP WebShell Detector, NeoPI, Linux Malware Detector, cualquier AV).

     La idea es tan sencilla como antigua: ocultar la webshell codificandola dos veces en base64. En realidad se podría aplicar cualquier otra modificación a la cadena (rot13, darle la vuelta, sumar un valor a cada caracter, etc.) o incluso combinar diferentes entre sí, lo único importante es evitar que estas herramientas puedan detectar las porciones de código que utilizan como firma.

    Para evitar los análisis basados en la entropía, tamaño de las cadenas de texto, y el índice de coincidencia, lo que hacemos es cortar la cadena que contiene la webshell en base64 , de tal forma que queda como subcadenas uniformes de 4 caracteres como máximo.

    Como digo, se trata de trucos muy viejos  que siguen funcionando a día de hoy. El script está en el github del blog ( https://github.com/0verl0ad/HideShell ). Además lo he añadido a g0jira (todavía le queda muchisimo al proyecto).


Byt3z!

5 0verl0ad Labs: junio 2014 ¡Saludos!        Tal y como adelanté en el primer post de esta serie os voy a dejar por aquí un script "del-colacao" para que tu...

jueves, 26 de junio de 2014

Defeating WebShells Detection Tools II: bypassing NeoPI y Linux Malware Detector

¡Saludos!

    Hoy toca conseguir pasar desapercibido ante la herramienta NeoPI. Antes de nada decir que originalmente Seth escribió un artículo hace algunos años donde también conseguía saltarse los análisis de esta herramienta, pero no he encontrado ningún enlace porque su web ha desaparecido. Su técnica se basaba en introducir un carácter muchas veces repetido dentro de la cadena en base64 que contenía la webshell, de tal forma que el análisis de entropía lo pasaba sin problemas. En mi caso el bypass lo he conseguido de otra forma.

Tras hacer el post y dejarlo en borrador antes de publicarlo me dispuse a intentar bypassear Linux Malware Detect, pero no me detectaba la webshell (era la misma que usé para saltarme NeoPI). Imagino que se debe a que ambos deben de  compartir las mismas técnicas de análisis estadístico. La combinación de las técnicas usadas saltar Web Shell Detector y para NeoPI sirven también para LMD, por lo que veo innecesario crear un post adrede. Por ello lo añado aquí.

    NeoPI (https://github.com/Neohapsis/NeoPI ) es un script en python destinado a la detección de webshells alojadas en servidores. Utiliza un sistema de firmas para detectar funciones maliciosas y además se vale de métodos estadísticos para detectar posibles trozos de texto codificados. A través de estas técnicas se establece un ranking de archivos con más posibilidades de contener código malicioso.

  Para comprobar su funcionamiento vamos a utilizar el mismo archivo que en el post anterior se generó para bypassear Web Shell Detector y la C100 sin tocar, ambos alojadas en una instalación limpia de un WordPress. El log de NeoPI es el siguiente (remarco en rojo las webshells):

python neopi.py -a -A /opt/lampp/htdocs/wordpress

       )         (   (
    ( /(         )\ ))\ )
    )\())  (    (()/(()/(
   ((_)\  ))\ (  /(_))(_))
    _((_)/((_))\(_))(_))
   | \| (_)) ((_) _ \_ _|
   | .` / -_) _ \  _/| |
   |_|\_\___\___/_| |___| Ver. *.USEGIT
 

[[ Total files scanned: 2495 ]]
[[ Total files ignored: 0 ]]
[[ Scan Time: 7.080000 seconds ]]

[[ Average IC for Search ]]
0.0374353036826

[[ Top 10 lowest IC files ]]
  0.0254        /opt/lampp/htdocs/wordpress/out.php
  0.0262        /opt/lampp/htdocs/wordpress/c100.php
  0.0285        /opt/lampp/htdocs/wordpress/wp-includes/SimplePie/Source.php
  0.0303        /opt/lampp/htdocs/wordpress/wp-includes/SimplePie/Cache/DB.php
  0.0315        /opt/lampp/htdocs/wordpress/wp-admin/includes/class-ftp.php
  0.0320        /opt/lampp/htdocs/wordpress/wp-admin/includes/class-ftp-pure.php
  0.0326        /opt/lampp/htdocs/wordpress/wp-includes/feed-rdf.php
  0.0330        /opt/lampp/htdocs/wordpress/wp-content/plugins/akismet/widget.php
  0.0330        /opt/lampp/htdocs/wordpress/wp-includes/SimplePie/Locator.php
  0.0331        /opt/lampp/htdocs/wordpress/wp-includes/class-simplepie.php

[[ Top 10 entropic files for a given search ]]
  5.9758        /opt/lampp/htdocs/wordpress/c100.php
  5.7239        /opt/lampp/htdocs/wordpress/wp-config.php
  5.5975        /opt/lampp/htdocs/wordpress/wp-includes/SimplePie/Net/IPv6.php
  5.5953        /opt/lampp/htdocs/wordpress/wp-includes/class-json.php
  5.5943        /opt/lampp/htdocs/wordpress/wp-includes/SimplePie/Parse/Date.php
  5.5918        /opt/lampp/htdocs/wordpress/wp-includes/SimplePie/Cache/DB.php
  5.5818        /opt/lampp/htdocs/wordpress/wp-includes/ID3/module.audio.flac.php
  5.5537        /opt/lampp/htdocs/wordpress/wp-includes/default-constants.php
  5.5489        /opt/lampp/htdocs/wordpress/wp-includes/SimplePie/Content/Type/Sniffer.php
  5.5436        /opt/lampp/htdocs/wordpress/out.php

[[ Top 10 longest word files ]]
  407291        /opt/lampp/htdocs/wordpress/out.php
   31483        /opt/lampp/htdocs/wordpress/c100.php
     522        /opt/lampp/htdocs/wordpress/wp-includes/functions.php
     364        /opt/lampp/htdocs/wordpress/wp-includes/ID3/module.audio.mp3.php
     354        /opt/lampp/htdocs/wordpress/wp-includes/SimplePie/Misc.php
     307        /opt/lampp/htdocs/wordpress/wp-includes/class-simplepie.php
     267        /opt/lampp/htdocs/wordpress/wp-includes/formatting.php
     250        /opt/lampp/htdocs/wordpress/wp-includes/class-wp-editor.php
     236        /opt/lampp/htdocs/wordpress/wp-includes/class-phpmailer.php
     189        /opt/lampp/htdocs/wordpress/wp-admin/tools.php

[[ Top 10 signature match counts ]]
     141        /opt/lampp/htdocs/wordpress/c100.php
      26        /opt/lampp/htdocs/wordpress/wp-admin/includes/class-ftp.php
      13        /opt/lampp/htdocs/wordpress/wp-includes/Text/Diff/Engine/native.php
      13        /opt/lampp/htdocs/wordpress/wp-admin/includes/class-wp-filesystem-ssh2.php
       9        /opt/lampp/htdocs/wordpress/wp-includes/class-phpmailer.php
       8        /opt/lampp/htdocs/wordpress/wp-includes/js/tinymce/plugins/spellchecker/config.php
       7        /opt/lampp/htdocs/wordpress/wp-includes/js/tinymce/plugins/spellchecker/classes/PSpellShell.php
       6        /opt/lampp/htdocs/wordpress/wp-admin/includes/file.php
       5        /opt/lampp/htdocs/wordpress/wp-includes/Text/Diff/Engine/shell.php
       4        /opt/lampp/htdocs/wordpress/wp-includes/js/tinymce/plugins/spellchecker/changelog.txt

[[ Top 10 SUPER-signature match counts (These are usually bad!) ]]
       0        /opt/lampp/htdocs/wordpress/wp-includes/Text/Diff/Renderer/inline.php
       0        /opt/lampp/htdocs/wordpress/wp-includes/Text/Diff/Engine/native.php
       0        /opt/lampp/htdocs/wordpress/wp-includes/Text/Diff/Engine/xdiff.php
       0        /opt/lampp/htdocs/wordpress/wp-includes/Text/Diff/Engine/string.php
       0        /opt/lampp/htdocs/wordpress/wp-includes/Text/Diff/Engine/shell.php
       0        /opt/lampp/htdocs/wordpress/wp-includes/Text/Diff/Renderer.php
       0        /opt/lampp/htdocs/wordpress/wp-includes/Text/Diff.php
       0        /opt/lampp/htdocs/wordpress/wp-includes/SimplePie/XML/Declaration/Parser.php
       0        /opt/lampp/htdocs/wordpress/wp-includes/SimplePie/Net/IPv6.php
       0        /opt/lampp/htdocs/wordpress/wp-includes/SimplePie/Content/Type/Sniffer.php

[[ Top cumulative ranked files ]]
       7        /opt/lampp/htdocs/wordpress/c100.php
      52        /opt/lampp/htdocs/wordpress/out.php
      71        /opt/lampp/htdocs/wordpress/wp-includes/class-simplepie.php
      76        /opt/lampp/htdocs/wordpress/wp-includes/SimplePie/Cache/DB.php
      86        /opt/lampp/htdocs/wordpress/wp-includes/SimplePie/Cache/MySQL.php
      96        /opt/lampp/htdocs/wordpress/wp-admin/includes/class-ftp.php
     107        /opt/lampp/htdocs/wordpress/wp-includes/SimplePie/Source.php
     120        /opt/lampp/htdocs/wordpress/wp-admin/includes/class-ftp-pure.php
     124        /opt/lampp/htdocs/wordpress/wp-includes/ID3/module.audio.mp3.php
     129        /opt/lampp/htdocs/wordpress/wp-includes/SimplePie/Misc.php


   Podemos observar como ha detectado a la perfección nuestras dos webshells. Es decir, que el bypass que hicimos a Web Shell Detector en el post anterior no es suficiente, ya que sigue cantando.  Si nos fijamos out.php ha sido detectada de forma brutal en el test de tamaño de strings y en el de índice de coincidencia. Esto es debido a que tenemos un gigantesco string en base64 que es el que contiene el source codificado de la c100. Igualmente tambien es detectado en décimo lugar por el análisis de entropía.

   Para no ser detectado por los análisis estadísticos deberemos de cortar el string gigantesco en subcadenas y proceder a concatenarlas. Con un sencillo script en perl podemos separarlo en bloques de 4 caracteres. Después sólo queda sustituir el string original por el resultado obtenido. Por ejemplo:

open(FILEA,"<","sucio.txt"); #Contiene la cadena en base64 gigante
open(FILEB, ">>", "limpio.txt");
@string = <FILEA>;
$string = join("", @string);
$size = length($string);
$i = 0;
print FILEB '$z = ""'."\n";
while ($i < $size) {
$prob = substr($string, $i, 4);
print FILEB '$z .= "'.$prob.'";'."\n";
$i = $i + 4;
}
close(FILEA);
close(FILEB);

El resultado una vez sustituido en el archivo original sería algo similar a:

Sección de la webshell ofuscada


Una vez editado out.php, procedemos a pasarle neopi de nuevo:

python neopi.py -a -A /opt/lampp/htdocs/wordpress

       )         (   (
    ( /(         )\ ))\ )
    )\())  (    (()/(()/(
   ((_)\  ))\ (  /(_))(_))
    _((_)/((_))\(_))(_))
   | \| (_)) ((_) _ \_ _|
   | .` / -_) _ \  _/| |
   |_|\_\___\___/_| |___| Ver. *.USEGIT
   

[[ Total files scanned: 2495 ]]
[[ Total files ignored: 0 ]]
[[ Scan Time: 8.070000 seconds ]]

[[ Average IC for Search ]]
0.0368664717785

[[ Top 10 lowest IC files ]]
  0.0262        /opt/lampp/htdocs/wordpress/c100.php
  0.0285        /opt/lampp/htdocs/wordpress/wp-includes/SimplePie/Source.php
  0.0303        /opt/lampp/htdocs/wordpress/wp-includes/SimplePie/Cache/DB.php
  0.0315        /opt/lampp/htdocs/wordpress/wp-admin/includes/class-ftp.php
  0.0320        /opt/lampp/htdocs/wordpress/wp-admin/includes/class-ftp-pure.php
  0.0326        /opt/lampp/htdocs/wordpress/wp-includes/feed-rdf.php
  0.0330        /opt/lampp/htdocs/wordpress/wp-content/plugins/akismet/widget.php
  0.0330        /opt/lampp/htdocs/wordpress/wp-includes/SimplePie/Locator.php
  0.0331        /opt/lampp/htdocs/wordpress/wp-includes/class-simplepie.php
  0.0333        /opt/lampp/htdocs/wordpress/wp-includes/js/tinymce/plugins/spellchecker/rpc.php

[[ Top 10 entropic files for a given search ]]
  5.9758        /opt/lampp/htdocs/wordpress/c100.php
  5.7239        /opt/lampp/htdocs/wordpress/wp-config.php
  5.5975        /opt/lampp/htdocs/wordpress/wp-includes/SimplePie/Net/IPv6.php
  5.5953        /opt/lampp/htdocs/wordpress/wp-includes/class-json.php
  5.5943        /opt/lampp/htdocs/wordpress/wp-includes/SimplePie/Parse/Date.php
  5.5918        /opt/lampp/htdocs/wordpress/wp-includes/SimplePie/Cache/DB.php
  5.5818        /opt/lampp/htdocs/wordpress/wp-includes/ID3/module.audio.flac.php
  5.5537        /opt/lampp/htdocs/wordpress/wp-includes/default-constants.php
  5.5489        /opt/lampp/htdocs/wordpress/wp-includes/SimplePie/Content/Type/Sniffer.php
  5.5282        /opt/lampp/htdocs/wordpress/wp-includes/load.php

[[ Top 10 longest word files ]]
   31483        /opt/lampp/htdocs/wordpress/c100.php
     522        /opt/lampp/htdocs/wordpress/wp-includes/functions.php
     364        /opt/lampp/htdocs/wordpress/wp-includes/ID3/module.audio.mp3.php
     354        /opt/lampp/htdocs/wordpress/wp-includes/SimplePie/Misc.php
     307        /opt/lampp/htdocs/wordpress/wp-includes/class-simplepie.php
     267        /opt/lampp/htdocs/wordpress/wp-includes/formatting.php
     250        /opt/lampp/htdocs/wordpress/wp-includes/class-wp-editor.php
     236        /opt/lampp/htdocs/wordpress/wp-includes/class-phpmailer.php
     189        /opt/lampp/htdocs/wordpress/wp-admin/tools.php
     189        /opt/lampp/htdocs/wordpress/wp-admin/options-writing.php

[[ Top 10 signature match counts ]]
     141        /opt/lampp/htdocs/wordpress/c100.php
      26        /opt/lampp/htdocs/wordpress/wp-admin/includes/class-ftp.php
      13        /opt/lampp/htdocs/wordpress/wp-includes/Text/Diff/Engine/native.php
      13        /opt/lampp/htdocs/wordpress/wp-admin/includes/class-wp-filesystem-ssh2.php
       9        /opt/lampp/htdocs/wordpress/wp-includes/class-phpmailer.php
       8        /opt/lampp/htdocs/wordpress/wp-includes/js/tinymce/plugins/spellchecker/config.php
       7        /opt/lampp/htdocs/wordpress/wp-includes/js/tinymce/plugins/spellchecker/classes/PSpellShell.php
       6        /opt/lampp/htdocs/wordpress/wp-admin/includes/file.php
       5        /opt/lampp/htdocs/wordpress/wp-includes/Text/Diff/Engine/shell.php
       4        /opt/lampp/htdocs/wordpress/wp-includes/js/tinymce/plugins/spellchecker/changelog.txt

[[ Top 10 SUPER-signature match counts (These are usually bad!) ]]
       0        /opt/lampp/htdocs/wordpress/wp-includes/Text/Diff/Renderer/inline.php
       0        /opt/lampp/htdocs/wordpress/wp-includes/Text/Diff/Engine/native.php
       0        /opt/lampp/htdocs/wordpress/wp-includes/Text/Diff/Engine/xdiff.php
       0        /opt/lampp/htdocs/wordpress/wp-includes/Text/Diff/Engine/string.php
       0        /opt/lampp/htdocs/wordpress/wp-includes/Text/Diff/Engine/shell.php
       0        /opt/lampp/htdocs/wordpress/wp-includes/Text/Diff/Renderer.php
       0        /opt/lampp/htdocs/wordpress/wp-includes/Text/Diff.php
       0        /opt/lampp/htdocs/wordpress/wp-includes/SimplePie/XML/Declaration/Parser.php
       0        /opt/lampp/htdocs/wordpress/wp-includes/SimplePie/Net/IPv6.php
       0        /opt/lampp/htdocs/wordpress/wp-includes/SimplePie/Content/Type/Sniffer.php

[[ Top cumulative ranked files ]]
       5        /opt/lampp/htdocs/wordpress/c100.php
      68        /opt/lampp/htdocs/wordpress/wp-includes/class-simplepie.php
      74        /opt/lampp/htdocs/wordpress/wp-includes/SimplePie/Cache/DB.php
      83        /opt/lampp/htdocs/wordpress/wp-includes/SimplePie/Cache/MySQL.php
      93        /opt/lampp/htdocs/wordpress/wp-admin/includes/class-ftp.php
     104        /opt/lampp/htdocs/wordpress/wp-includes/SimplePie/Source.php
     117        /opt/lampp/htdocs/wordpress/wp-admin/includes/class-ftp-pure.php
     121        /opt/lampp/htdocs/wordpress/wp-includes/ID3/module.audio.mp3.php
     126        /opt/lampp/htdocs/wordpress/wp-includes/SimplePie/Misc.php
     157        /opt/lampp/htdocs/wordpress/wp-includes/ID3/getid3.lib.php



   Con un truco así de sencillo hemos conseguido escapar del radar. No aparece en ninguno de los diferentes análisis: hemos subido el IC, disminuido la entropia y todos los strings son pequeños.


Otras dos herramientas (NeoPI, y sin querer Linux Malware Detector) que han sido vencidas.


Byt3z!
5 0verl0ad Labs: junio 2014 ¡Saludos!     Hoy toca conseguir pasar desapercibido ante la herramienta NeoPI. Antes de nada decir que originalmente Seth escribió un art...

miércoles, 25 de junio de 2014

Defeating WebShells Detection Tools I: PHP Web Shell Detector bypass

¡Saludos!

      Estos últimos días he estado hablando con @CodingFree acerca de las webshells. En este mismo blog he estado publicado una serie de artículos sobre backdoors indetectables en PHP, pero todos ellos están orientados símplemente a mantener una puerta abierta. Normalmente se suelen utilizar webshells más complejas que facilitan el trabajo una vez dentro de un servidor comprometido. Son las clásicas (y digo clásicas porque deben de llevar funcionando más de 10 años casi intactas) r57, c99, etc. que todavía perduran con sus modificaciones.  En esta nueva serie de artículos iremos consiguiendo bypassear distintas herramientas, y al final colgaré una herramienta (que será incluida en Gojira) que vuelva indetectables estas webshells grandes.


C100 (C99 modificada)


    Todas estas webshells que han sido tan quemadas durante años es que los AV las detectan al vuelo, así como las distintas herramientas que han surgido con este fin. El problema radica en el mismo punto de siempre, y es el funcionamiento por firmas. En el caso de los AV es sumamente fácil evadirlos, tan sólo se necesita esconder el source utilizando distintas funciones de cadena como rot13, base64, etc. y combinarlas entre sí para que no encuentre ninguna firma reconocible. Por ejemplo, una C100 (c99 modificada), se puede pasar a base64, rot13, y otra vez más base64, y despues revertir el proceso con un eval(), y salvo 1 antivirus, el resto no la detectan como código malicioso:


Bkav es el unico que la detecta


  Sin embargo, al utilizar una función como "eval()", las herramientas destinadas a la detección de webshells van a soltar una alerta, puesto que se trata de una función peligrosa. En este caso vamos a intentar bypassear la herramienta en PHP Web Shell Detector que puede ser adquirida desde su web oficial (http://shelldetector.com/ ).


   Para hacer la prueba coloqué en el mismo directorio una c100 normal y corriente y el archivo que subí  a Virus Total (la misma c100 pero codificada). La c100 utilizando su base de datos de firmas la detecta sin problema, sin embargo estando codificada no. Lo bueno es que al menos es capaz de detectar que hay funciones que pueden ser indicativas de que hay algún malware (base64_decode y eval() ).


   Pues el paso lógico será evitar que se detecten esos string. Para poder ocultar la función base64_decode() no tengo ningún problema puesto que podemos construirla usando las funciones variables.  O sea, que separamos el string en dos variables ($a = "base"; $b = "64_decode";) y las concatenamos ($c = $a.$b):

$a = "base";
$b = "64_decode";
$c = $a.$b;
$string =$c($string);

Usando este simple truco podemos ver que ya no detecta esa función:



Ahora bien, hecatombe. A eval() no podemos aplicarle ese mismo truco porque se trata de un constructor del lenguaje, asi que es en este punto donde tenemos que indagar en el código fuente de la herramienta para localizar algun fallo en su diseño que nos permita realizar algún bypass. Echando un ojo rápido vemos cómo las funciones sospechosas las saca a través de expresiones regulares:

...
//system: regex for detect Suspicious behavior
  private $_regex = '%(preg_replace.*\/e|`.*?\$.*?`|\bcreate_function\b|\bpassthru\b|\bshell_exec\b|\bexec\b|\bbase64_decode\b|\bedoced_46esab\b|\beval\b|\bsystem\b|\bproc_open\b|\bpopen\b|\bcurl_exec\b|\bcurl_multi_exec\b|\bparse_ini_file\b|\bshow_source\b)%';  
 ... 
if (preg_match_all($this->_regex, $content, $matches)) {

  Una lista y después va macheando con strings hasta localizar alguna que esté ahí contenido. Como podemos ver "eval" está en la lista de invitados. Pero... esa expresión regular no lleva ningún modificador para hacerlo case insensitive (el modificador "i").

  Burlar el sistema de detección de funciones sospechosas es tan sencillo como meterlas en mayúsculas, ya que la expresión regular es sensible a mayúsculas y minúsculas, por lo que nunca la detectará. Ponemos "EVAL":


Y vemos cómo esta herramienta se la come con patatas:




Byt3z!
5 0verl0ad Labs: junio 2014 ¡Saludos!       Estos últimos días he estado hablando con @CodingFree  acerca de las webshells. En este mismo blog he estado publicado una...
< >