Archive for María José Montes Díaz

Convirtiendo un Proxy en Transparent Proxy

En algunas ocasiones queremos utilizar de manera transparente un servidor proxy, ya sea para saltar un firewall o, simplemente, para enrutar por él determinadas conexiones o las conexiones de determinados usuarios o grupos. Pero no siempre es posible, porque no todos contemplan la posibilidad de Transparent Proxy.

Si utilizamos Privoxy con la opción accept-intercepted-requests, nos sirve para redirigir el tráfico vía firewall. Sin embargo, no podremos redirigir el tráfico https. Además, una vez que activemos la opción accept-intercepted-requests, no podremos utilizarlo manualmente desde la aplicación deseada.

También se puede utilizar un proxy Socks5 creado con ssh. A él no podremos redirigir el tráfico directamente vía firewall.

Si queremos redirigir el tráfico con nuestro firewall a un proxy como los anteriores, podemos utilizar RedSocks. Esta herramienta nos permite crear un proxy transparente http, http-connect, socks4 o socks5 y actuará de túnel con el proxy real. De esta manera, podremos “convertir” un proxy que no es Trasnparent Proxy, en uno, y dirigir a él el tráfico que necesitemos.

Una ventaja adicional es que puede enrutar también el tráfico DNS. Si disponemos un proxy Socks5, que no sea creado con ssh, también podremos redirigir por él el tráfico UDP.

Vamos a ver un ejemplo de uso. Para ello, vamos a enviar todo el tráfico http y https a Privoxy.

Privoxy, en principio, enrutará todo el tráfico a través de TOR. La ventaja de pasar previamente por Privoxy es poder aprovechar los filtrados que proporciona, como publicidad, etc., además de poder decidir desde él qué hacer con cada URL. El resto del tráfico, lo enrutaremos por TOR. Todo esto se realizará siempre que la aplicación/herramienta se haya lanzado con un grupo de usuarios concreto.

Nos va a permitir utilizar estos proxys sólo cuando la aplicación se lance con un determinado grupo, de manera que no vamos a “Torificar” todas las salidas, solo aquellas que nos interesan.

La instalación la vamos a realizar sobre Kali. En el resto de distribuciones basadas en Debian será similar. En ArchLinux, podemos encontrar Redsocks en el AUR o, si hemos añadido a los repositorios BlackArch, lo tendremos ya disponible, dado que forma parte de esta distribución.

Empezamos instalando:

apt-get update && apt-get install redsocks privoxy tor

Una vez instalados los paquetes, vamos a configurarlos. Primero, editamos el fichero /etc/tor/torrc. Necesitaremos mapear los dominios onion, activar el servicio de DNS de TOR y el TProxy. Para ello, al final del archivo añadimos:

VirtualAddrNetwork 10.192.0.0/10
AutomapHostsOnResolve 1
AutomapHostsSuffixes .exit,.onion

DNSPort 53
TransPort 9040
SocksPort 9050

Con esto tenemos que, el servidor de DNS estará escuchado en localhost:53, los dominios onion los mapeará con una ip aleatoria del rango 10.192.0.0/10 y tendremos el TProxy en el 9040, además del proxy socks habitual en el 9050.

Ahora vamos a editar la configuración de Privoxy y añadir al final de la misma:

forward-socks5 / 127.0.0.1:9050 .
forward localhost/ .
forward 127.*.*.*/ .
forward 192.168.*.*/ .

Bien, ya tenemos Tor y Privoxy configurados, pasemos a RedSocks. Primero sacamos un backup del fichero /etc/redsocks.conf. En él tenemos todas las opciones disponibles, con sus respectivos comentarios. Hecho esto, lo editamos y le añadimos el siguiente contenido:

base {
 log_debug = off;
 log_info = on;
 log = "syslog:daemon";
 daemon = on;
 user = redsocks;
 group = redsocks;
 redirector = iptables;
}

redsocks {
 local_ip = 127.0.0.1;
 local_port = 8218;

ip = 127.0.0.1;
 port = 8118;


 // known types: socks4, socks5, http-connect, http-relay
 type = http-relay;
}

redsocks {
 local_ip = 127.0.0.1;
 local_port = 8318;

ip = 127.0.0.1;
 port = 8118;

type = http-connect;
}

Básicamente, hemos creado un TProxy en el puerto 8218 que apunta al 8118 (Privoxy), de tipo http-relay y otro en el 8312, de tipo http-connect (https), que también apunta a Privoxy.

Ya tenemos la configuración inicial, vamos a arrancar los servicios:

systemctl start tor privoxy redsocks

Ahora vamos a añadir un grupo. Será el que utilicemos para enrutar de manera transparente sus conexiones:

groupadd socksified

Hecho esto, añadimos los usuarios que necesitemos al grupo:

usermod --append --groups socksified USUARIO

Con esto ya tenemos casi todo lo necesario. Toca configurar el firewall. Editamos/creamos el fichero /etc/network/iptables.rules y añadimos lo siguiente:

*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:REDSOCKS - [0:0]

# Los DNS se los dejamos a TOR
-A OUTPUT -p tcp --dport 53 -j REDIRECT --to-ports 53
-A OUTPUT -p udp --dport 53 -j REDIRECT --to-ports 53

# El grupo socksified se redirige a REDSOCKS
-A OUTPUT -p tcp -m owner --gid-owner "socksified" -j REDSOCKS

## Redes internas
-A REDSOCKS -d 0.0.0.0/8 -j RETURN

# Usamos parte de 10.0.0.0/8 para onion, entonces:
-A REDSOCKS -d 10.0.0.0/9 -j RETURN
-A REDSOCKS -d 10.128.0.0/10 -j RETURN

-A REDSOCKS -d 127.0.0.0/8 -j RETURN
-A REDSOCKS -d 169.254.0.0/16 -j RETURN
-A REDSOCKS -d 172.16.0.0/12 -j RETURN
-A REDSOCKS -d 192.168.0.0/16 -j RETURN
-A REDSOCKS -d 224.0.0.0/4 -j RETURN
-A REDSOCKS -d 240.0.0.0/4 -j RETURN

## Redirecciones
# Privoxy, peticiones http
-A REDSOCKS -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8218

#Privoxy, peticiones "Connect" (https)
-A REDSOCKS -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8318

#Direcciones onion
-A REDSOCKS -d 10.192.0.0/10 -p tcp -j REDIRECT --to-ports 9040

COMMIT

Una vez tenemos las reglas, ejecutamos:

iptables-restore < /etc/network/iptables.rules

Y ya solo nos queda probar si todo es correcto:

# No sale por privoxy
curl https://check.torproject.org | grep -i congra
#ahora, como lanzamos curl con el grupo socksified, sí que lo hace
 sg socksified 'curl https://check.torproject.org |grep -i congratulation'

Como puede observarse, este mecanismo nos puede ser muy útil para dirigir el tráfico a uno u otro proxy, dependiendo, por ejemplo, del grupo con el que se lance la aplicación. También podría hacerse por usuarios. Además, podemos añadir tantas secciones Redsocks como necesitemos, permitiéndonos “jugar” bastante con nuestro sistema, para adecuarlo correctamente a nuestras necesidades.

¡¡Espero que os haya gustado !!

Anonimizando la Kali con anonym8

En determinadas ocasiones, necesitamos utilizar nuestra máquina de auditorías de manera anónima. La mayor parte de herramientas cuentan con una opción para configurar un proxy, ya sea http o sock, con lo que puede configurarse para utilizar TOR.

Sin embargo, no todas tienen esta característica, con lo que nos vemos obligados a utilizar herramientas adicionales como proxychains. Además, en muchas ocasiones queremos también comprobar el tráfico UDP, y esto no es posible hacerlo con TOR.

También es posible que queramos suplantar la MAC de la tarjeta de red, cambiar el nombre del host, no tener fugas de DNSs y, una vez terminada la auditoría, dejar todo como estaba, eliminando, por supuesto, los rastros que hayamos dejado en SWAP, cachés, etc.

privacy

Bien, para hacer todo esto, disponemos de un script que nos va a facilitar todo el trabajo. Lo podéis encontrar en https://github.com/HiroshiManRise/anonym8, y es válido para distribuciones basadas en Debian, por ejemplo, Kali.

Read more

Bypasseando firewalls con Shadowsocks

En shaalgunas ocasiones queremos ocultar nuestro tráfico en la red en la que nos encontramos.

Por ejemplo cuando nos conectamos a redes wifi públicas o no fiables. En otras ocasiones, simplemente, queremos eludir un firewall.

Para esto hay diferentes opciones. Una muy utilizada es usar TOR. Sin embargo, es posible que no queramos utilizarla. Sencillamente queremos usar una conexión a Internet y usar nuestro propia red para navegar. Para ello es para lo que nos sirven los proxys.

En nuestra red segura, levantamos el servidor proxy. En los dispositivos cliente, sencillamente nos conectamos a ella. En el caso de los proxys socks5, podemos, además enrutar tráfico UDP (en el caso de TOR, aunque sea un proxy socks5, y el los túneles ssh, no se puede usar el tráfico UDP ).

Read more

NetworkMiner

Hoy os voy a hablar de una herramienta que se utiliza para el análisis forense de redes de datos. Podemos utilizar esta herramienta en Windows, Linux, Mac OS X y FreeBSD.

La característica principal de esta herramienta, es que nos permite analizar la captura de paquetes, tanto de manera activa, como pasiva. Es decir, podemos capturar el tráfico directamente desde la red o, bien, tratar una captura realizada anteriormente con otra herramienta. Está enfocada, sobre todo, a la recolección de la información y tratamiento de ésta.

Existe dos versiones una de pago y otra gratuita (limitada).

hackingl10

Read more

HighsecCON III

Hoy os voy hablar de unas jornadas donde se exponen todo tipo de temas relacionados con el mundo de la seguridad, tanto a nivel teórico, como práctico, y se intenta abarcar todos los niveles. Ya es la tercera edición. Estás jornadas constituyen  uno de los puntos más importantes del proyecto highsec.

¿Qué es Highsec?

Es un proyecto de seguridad informática, que nace con la intención de enseñar a todo aquel que quiera aprender,  las principales técnicas de hacking y seguridad.Los fundadores son Eduardo Arriols  y Roberto López . Y están acompañados en el proyecto con Umberto, Borja, David y yo.  Además de las jornadas, tenemos  blog, biblioteca,..etc.

Las jornadas tendrá lugar el próximo 4 de Abril, en el Salón de Actos de la Escuela Politécnica Superior de la Universidad Autónoma de Madrid, a las 15:45 y durará hasta las 20:00, aproximadamente. Cuenta con un aforo de más de 600 plazas, todos los que queráis asistir solo tenéis que registraros en  https://www.ticketea.com/highseccon/. Hemos habilitado una web para el evento que es highseccon.es donde tenéis toda la información.

Los ponentes con los que contamos para está edición son:

 Samuel Linares (@InfosecManBlog) con su charla “¿Ciberseguridad Industrial? ¿Ein?

Director y Fundador del Centro de Ciberseguridad Industrial (CCI), External Independent Evaluator en European Comission. CIIP Expert para la asistencia en la implementacion del ENISA Work Programme en ENISA (European Network and Information Security Agency).

 Chema García (@sch3m4) con su charla “Troyanización de módulos PAM

Consultor de Seguridad en Ecix Group, Investigador de seguridad en Thiber y colaborador de Security By Default.

Simón Roses (@simonroses) con su charla “Algo sobre Ciberseguridad

 Practical Security Research en VULNEX donde es CEO y Fundador. Dicha empresa ha sido la única del mundo ajena a EEUU que ha conseguido ganar el DARPA. Anteriormente ha trabajado en Microsoft como Security Technologist y en PWC. Ponente en conferencias internacionales de seguridad y hacking como BlackHat, RSA y OWASP entre otras.

Jaime Sanchez (@segofensiva) con su charla “From Kernel Space to WhatsApp nightmare

Security Researcher en Telefónica Soluciones y  Executive MBA.  Ponente en conferencias de seguridad y hacking a nivel nacional e internacional como Rooted, NoConName, Nuit Du Hack, Black Hat USA, Defcon, DerbyCon y DeepSec.

 

carteloficial

 

Cifrando el tráfico DNS con DNSCrypt

DNSCrypt nos permite cifrar el tráfico entre el usuario y el servidor DNS. De esta manera, nos vamos a proteger de diferentes ataques, como Spoofing, Man in the Middle o Spying. Para hacer esto, bastará instalar y configurar el proxy DNSCrypt.

Además, vamos a utilizar dnsmasq. Es un paquete que nos permite instarlar de una manera sencilla, un servidor DNS y un servidor DHCP, sólo tenemos que instalar y arrancar el servicio dnsmasq. De esta manera, podremos mejorar el rendimiento de DNSCrypt, al utilizar la caché de dnsmasq. Podremos resolver los nombres que tengamos configurados en el /etc/hosts y, esta resolución, será, tanto en sentido directo, como inverso. También podremos tener el servicio de DHCP, añadiendo, simplemente, una línea al archivo de configuración de dnsmasq, indicando el rango de cesión.

Estas herramientas suelen estar incluidas en muchas distribuciones GNU/Linux. Su configuración es muy similar. En este caso, utilizaré ArchLinux.

Read more