Libro: Hacking and Penetration Testing with Low Power Devices

Este libro de Philip Polstra editado por Syngress es una guía práctica que muestra cómo realizar pruebas de intrusión usando pequeños dispositivos de baja potencia que pueden ocultarse fácilmente y ser alimentados por baterías.

Concretamente se utiliza una distribución de pentesting y forense llamada The Deck, que funciona en BeagleBoard-xM, BeagleBone y BeagleBone Black y está optimizada para tener un consumo eléctrico muy bajo y que viene con distintos módulos para coordinar ataques mediante un ejercitó de dispositivos interconectados por 802.15.4 (MeshDeck), hacer investigación forense de dispositivos USB (4Deck) o delivery y pentesting de drones (AirDeck).

Tabla de contenidos:
Meet the Deck
A Brief Introduction to the Beagle Family
Installing a Base Operating System
Filling the Toolbox
Powering the Deck
Input and Output Devices
Building an Army of Devices
Keeping your Army Secret
Adding Air Support
Future Direction


ElServier: http://bit.ly/1pyT6wd
Amazon: http://amzn.to/1t4nQuc

Un fallo en la web de GoPro revela las contraseñas WiFi de las cámaras de sus usuarios

Las cámaras GoPro tienen fama de ser ligeras y ultra-resistentes. La gente las usa para el ciclismo de montaña, motociclismo e incluso para los deportes acuáticos.
La popular 'action cams' pueden controlarse desde el smartphone a través de una aplicación que te permite grabar, acceder a tus fotos o subirlas a las redes sociales. Para hacerlo, el usuario tiene que conectarse a un punto de acceso inalámbrico creado por la propia cámara mediante una contraseña definida por el usuario...

Ilya Chernyakov, un investigador de seguridad en Israel, intentaba recuperar la contraseña de la cámara de un amigo mediante el procedimiento del fabricante:

"Si necesitas 'resetear' la configuración de la wifi, tienes que seguir las instrucciones dadas en el sitio web de Gopro. Es un procedimiento bastante sencillo, 'Siguiente', 'Siguiente', 'Finalizar' y obtienes un enlace a un fichero ZIP. Hay que descargar el fichero, y copiarlo a la tarjeta SD, para finalmente reiniciar la cámara." explicó en su blog.

Configurar SSL en Tomcat parte 2 - configurar el conector y la aplicación web

Para configurar SSL en Tomcat en la entrada anterior veíamos como preparar el keystore e instalar un certificado firmado por una CA. Ahora veremos cómo configurar el conector (por defecto AJP) y la webapp correspondiente para usar SSL.

Empezaremos editando el fichero de configuración del servidor "$CATALINA_BASE/conf/server.xml" y añadiremos un conector (o descomentaremos los existentes):

<Connector connectionTimeout="20000" port="80" protocol="HTTP/1.1" redirectPort="443" server="prueba"/>
 ...

 <Connector
    SSLEnabled="true" acceptCount="100" clientAuth="false"
    disableUploadTimeout="true" enableLookups="false" maxThreads="25"
    port="443" keystoreFile="mi_keystore.jks" keystorePass="mi_contraseña"
    protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="https"
    secure="true" sslProtocol="TLS" />
   
Fijaros que hemos especificado la ruta del keystore creado anteriormente y la contraseña correspondiente. Al reiniciar Tomcat el servidor debería ser ya accesible mediante https://servidor/prueba.

Después forzaremos que la aplicación web funcione con SSL.

Configurar SSL en Tomcat parte 1 - preparar el keystore

Al publicar un servidor Tomcat en Internet es recomendable permitir sólo HTTPS y acceder a él mediante un certificado digital firmado por una CA.
El proceso para activar SSL en Tomcat se divide en dos partes: 1/ crear un keystore funcional y 2/ configurar los conectores y aplicaciones para usar SSL. En esta primera entrada, de una serie de dos, veremos la parte acerca del keystore.

Las claves que Tomcat usará para las transacciones SSL se almacenan en un fichero protegido por contraseña llamado "keystore". El formato de este fichero es el estándar de Java JKS ("Java KeyStore") y es creado por la utilidad keytool que incluye el JDK. Para crearlo podemos hacerlo de dos formas:

- importando una clave existente:

keytool -import -alias prueba -file certificado.cer -keystore mi_keystore.jks -storepass changeit

-  o creando un nuevo keystore desde 0:

keytool -genkey -alias prueba -keyalg RSA -keysize 2048 -keystore mi_keystore.jks

Libro: Detectando malicia (Detecting Malice, Fraud Loss Prevention eBook)

Cada día se cometen fraudes en sitios web y este libro ayuda a detectar si algo oscuro está ocurriendo en el tuyo...

Detectando Malicia, en inglés Detecting Malice, es un libro escrito por Robert "RSnake" Hansen (ha.ckers.org) para ayudar a los administradores web, los desarrolladores, el personal de operaciones y los managers de productos de seguridad en la construcción y el mantenimiento de un estado de seguridad elevado.

La comprensión de la intención del usuario es la clave para reducir los ratios de fraude en las aplicaciones web modernas. Desde pymes al gobierno, este libro abarca muchos ámbitos diferentes de fraude y cómo detectarlo en muchas capas diferentes.

Desde DNS y TCP al contenido embebido y el fingerprinting del navegador se utilizan para identificar a los usuarios que tienen más probabilidades de llegar a ser peligrosos antes de que el ataque suceda. Una gran cantidad de técnicas y ejemplos están disponibles en las más de 300 páginas de este interesante libro.


Tabla de contenidos:
 Detecting Malice: Preface
    User Disposition
    Deducing Without Knowing
    Book Overview
    Who Should Read This Book?
    Why Now?
    A Note on Style
    Working Without a Silver Bullet
    Special Thanks
  Chapter 1 - DNS and TCP: The Foundations of Application Security
    In the Beginning Was DNS
    Same-Origin Policy and DNS Rebinding
    DNS Zone Transfers and Updates
    DNS Enumeration
    TCP/IP
    Spoofing and the Three-Way Handshake
    Passive OS Fingerprinting with pOf
    TCP Timing Analysis
    Network DoS and DDoS Attacks
    Attacks Against DNS
    TCP DoS
    Low Bandwidth DoS
    Using DoS As Self-Defense
    Motives for DoS Attacks
    DoS Conspiracies
    Port Scanning
    With That Out of the Way...
  Chapter 2 - IP Address Forensics
    What Can an IP Address Tell You?
    Reverse DNS Resolution
    WHOIS Database
    Geolocation
    Real-Time Block Lists and IP Address Reputation
    Related IP Addresses
    When IP Address Is A Server
    Web Servers as Clients
    Dealing with Virtual Hosts
    Proxies and Their Impact on IP Address Forensics
    Network-Level Proxies
    HTTP Proxies
    AOL Proxies
    Anonymization Services
    Tor Onion Routing
    Obscure Ways to Hide IP Address
    IP Address Forensics
    To Block or Not?
  Chapter 3 - Time
    Traffic Patterns
    Event Correlation
    Daylight Savings
    Forensics and Time Synchronization
    Humans and Physical Limitations
    Gold Farming
    CAPTCHA Breaking
    Holidays and Prime Time
    Risk Mitigation Using Time Locks
    The Future is a Fog
  Chapter 4 - Request Methods and HTTP Protocols
    Request Methods
    GET
    POST
    PUT and DELETE
    OPTIONS
    CONNECT
    HEAD
    TRACE
    Invalid Request Methods
    Random Binary Request Methods
    Lowercase Method Names
    Extraneous White Space on the Request Line
    HTTP Protocols
    Missing Protocol Information
    HTTP 1.0 vs. HTTP 1.1
    Invalid Protocols and Version Numbers
    Newlines and Carriage Returns
    Summary
  Chapter 5 - Referring URL
    Referer Header
    Information Leakage through Referer
    Disclosing Too Much
    Spot the Phony Referring URL
    Third-Party Content Referring URL Disclosure
    What Lurks in Your Logs
    Referer and Search Engines
    Language, Location, and the Politics That Comes With It
    Google Dorks
    Natural Search Strings
    Vanity Search
    Black Hat Search Engine Marketing and Optimization
    Referring URL Availability
    Direct Page Access
    Meta Refresh
    Links from SSL/TLS Sites
    Links from Local Pages
    Users' Privacy Concerns
    Determining Why Referer Isn't There
    Referer Reliability
    Redirection
    Impact of Cross-Site Request Forgery
    Is the Referring URL a Fake?
    Referral Spam
    Last thoughts
  Chapter 6 - Request URL
    What Does A Typical HTTP Request Look Like?
    Watching For Things That Don’t Belong
    Domain Name in the Request Field
    Proxy Access Attempts
    Anchor Identifiers
    Common Request URL Attacks
    Remote File Inclusion
    SQL Injection
    HTTP Response Splitting
    NUL Byte Injection
    Pipes and System Command Execution
    Cross-Site Scripting
    Web Server Fingerprinting
    Invalid URL Encoding
    Well-Known Server Files
    Easter Eggs
    Admin Directories
    Automated Application Discovery
    Well-Known Files
    Crossdomain.xml
    Robots.txt
    Google Sitemaps
    Summary
  Chapter 7 - User-Agent Identification
    What is in a User-Agent Header?
    Malware and Plugin Indicators
    Software Versions and Patch Levels
    User-Agent Spoofing
    Cross Checking User-Agent against Other Headers
    User-Agent Spam
    Indirect Access Services
    Google Translate
    Traces of Application Security Tools
    Common User-Agent Attacks
    Search Engine Impersonation
    Summary
  Chapter 8 - Request Header Anomalies
    Hostname
    Requests Missing Host Header
    Mixed-Case Hostnames in Host and Referring URL Headers
    Cookies
    Cookie Abuse
    Cookie Fingerprinting
    Cross Site Cooking
    Assorted Request Header Anomalies
    Expect Header XSS
    Headers Sent by Application Vulnerability Scanners
    Cache Control Headers
    Accept CSRF Deterrent
    Language and Character Set Headers
    Dash Dash Dash
    From Robot Identification
    Content-Type Mistakes
    Common Mobile Phone Request Headers
    X-Moz Prefetching
    Summary
  Chapter 9 - Embedded Content
    Embedded Styles
    Detecting Robots
    Detecting CSRF Attacks
    Embedded JavaScript
    Embedded Objects
    Request Order
    Cookie Stuffing
    Impact of Content Delivery Networks on Security
    Asset File Name Versioning
    Summary
  Chapter 10 - Attacks Against Site Functionality
    Attacks Against Sign-In
    Brute-Force Attacks Against Sign-In
    Phishing Attacks
    Registration
    Username Choice
    Brute Force Attacks Against Registration
    Account Pharming
    What to Learn from the Registration Data
    Fun With Passwords
    Forgot Password
    Password DoS Attacks
    Don’t Show Anyone Their Passwords
    User to User Communication
    Summary
  Chapter 11 - History
    Our Past
    History Repeats Itself
    Cookies
    JavaScript Database
    Internet Explorer Persistence
    Flash Cookies
    CSS History
    Refresh
    Same Page, Same IP, Different Headers
    Cache and Translation Services
    Uniqueness
    DNS Pinning Part Two
    Biometrics
    Breakout Fraud
    Summary
  Chapter 12 - Denial of Service
    What Are Denial Of Service Attacks?
    Distributed DoS Attacks
    My First Denial of Service Lesson
    Request Flooding
    Identifying Reaction Strategies
    Database DoS
    Targeting Search Facilities
    Unusual DoS Vectors
    Banner Advertising DoS
    Chargeback DoS
    The Great Firewall of China
    Email Blacklisting
    Dealing With Denial Of Service Attacks
    Detection
    Mitigation
    Summary
  Chapter 13 - Rate of Movement
    Rates
    Timing Differences
    CAPTCHAs
    Click Fraud
    Warhol or Flash Worm
    Samy Worm
    Inverse Waterfall
    Pornography Duration
    Repetition
    Scrapers
    Spiderweb
    Summary
  Chapter 14 - Ports, Services, APIs, Protocols and 3rd Parties
    Ports, Services, APIs, Protocols, 3rd Parties, oh my…
    SSL and Man in the middle Attacks
    Performance
    SSL/TLS Abuse
    FTP
    Webmail Compromise
    Third Party APIs and Web Services
    2nd Factor Authentication and Federation
    Other Ports and Services
    Summary
  Chapter 15 - Browser Sniffing
    Browser Detection
    Black Dragon, Master Reconnaissance Tool and BeEF
    Java Internal IP Address
    MIME Encoding and MIME Sniffing
    Windows Media Player “Super Cookie”
    Virtual Machines, Machine Fingerprinting and Applications
    Monkey See Browser Fingerprinting Software – Monkey Do Malware
    Malware and Machine Fingerprinting Value
    Unmasking Anonymous Users
    Java Sockets
    De-cloaking Techniques
    Persistence, Cookies and Flash Cookies Redux
    Additional Browser Fingerprinting Techniques
    Summary
  Chapter 16 - Uploaded Content
    Content
    Images
    Hashing
    Image Watermarking
    Image Steganography
    EXIF Data In Images
    GDI+ Exploit
    Warez
    Child Pornography
    Copyrights and Nefarious Imagery
    Sharm el Sheikh Case Study
    Imagecrash
    Text
    Text Stenography
    Blog and Comment Spam
    Power of the Herd
    Profane Language
    Localization and Internationalization
    HTML
    Summary
  Chapter 17 - Loss Prevention
    Lessons From The Offline World
    Subliminal Imagery
    Security Badges
    Prevention Through Fuzzy Matching
    Manual Fraud Analysis
    Honeytokens
    Summary
  Chapter 18 - Wrapup
    Mood Ring
    Insanity
    Blocking and the 4th Wall Problem
    Booby Trapping Your Application
    Heuristics Age
    Know Thy Enemy
    Race, Sex, Religion
    Profiling
    Ethnographic Landscape
    Calculated Risks
    Correlation and Causality
    Conclusion
  About Robert Hansen
Web del libro: http://www.detectmalice.com/

Clonar un portal Moodle (y más) en dos patadas con wget

Andaba yo viendo una manera efectiva y rápida para clonar un sitio web, buscando la mejor herramienta tipo Teleport Pro o HTTrack, cuando un compi me comentó que wget es bastante potable incluso para spidering/crawling. Y tanto que sí. Basta echar un vistazo al manual de la herramienta para darse cuenta de que wget no sólo vale para descargar un simple fichero, si no que tiene muchísimas opciones y parámetros que se pueden adaptar según el sitio web que quieras duplicar.

Sirva de ejemplo el de esta entrada con el que es posible crear un mirror de cualquier portal que use Moodle, ya sabéis, un sistema de gestión de cursos de formación. Imaginaros lo rápido que obtendríamos una copia de un curso en concreto que nos interesara para poder consultarlo offline cuando nos vamos de viaje...

Primero obtenemos la cookie ya que, evidentemente, la autenticación en Moodle se realiza mediante un formulario de login:

wget --load-cookies my-cookies.txt \
--post-data='username=YOUR_USERNAME&password=YOUR_PASSWORD&testcookies=1'
--save-cookies=my-cookies.txt --keep-session-cookies http://moodlesite.com/

Luego, con dicha cookie, comenzamos con el mirror mediante los siguientes parámetros:

wget --load-cookies my-cookies.txt --keep-session-cookies --save-cookies my-cookies.txt\
--referer=http://moodlesite.com/login/index.php -m -E -k
--reject logout*,*cal_m*,*cal_y*,post.php*,*subscribe*,help.php*,enrol.php*
--exclude-directories=/calendar http://moodlesite.com/course/view.php?id=XXX
-m: activa el mirroring. Es equivalente a ‘-r -N -l inf –no-remove-listing’
-E: si un fichero de tipo ‘application/xhtml+xml’ o ‘text/html’ es descargado y la URL no termina con la regexp ‘\.[Hh][Tt][Mm][Ll]?’, esta opción pondrá el sufijo ‘.html’
-k: después de que la descarga se complete, convierte los enlaces para hacerlos accesibles de forma local.
--exclude-directories: directorios que el crawler saltará.
--reject: indica los ficheros que wget no salvará al disco

Y básicamente esto sería lo suficiente para empezar y hacer un mirror de un portal Moodle. Luego podríamos hacer menos "ruido" modificando el user-agent, usando un proxy (Tor!), añadiendo pausas entre descargas, etc. Así que toca empezar a cocinar algunas pruebecillas:

wget -r -l 0 -U Mozilla -t 1 -nd -D playboy.com -A jpg,jpeg,gif,png "http://www.playboy.com" -e robots=off

11 formas de seguir tus movimientos a través del navegador web

Hay distintas formas de rastrear a los usuarios cuando acceden a un sitio web en particular. Algunas de ellas son más "siniestras" que otras. La mayoría de las aplicaciones web requieren algún tipo de seguimiento de sesión para mantener el estado del usuario. Esto normalmente se realiza fácilmente utilizando cookies bien configuradas (aunque esto no entra dentro del alcance de esta entrada). Una sesión está destinada a ser efímera y no persistirá por mucho tiempo.

Por otro lado, algunos métodos intentan realizar el seguimiento del usuario durante un largo tiempo, y, en particular, intentan hacer que sea difícil evadir el seguimiento. Esto se hace a veces para fines publicitarios, pero también se puede hacer para detener ciertos ataques como ataques de fuerza bruta o para identificar atacantes que vuelven a un sitio. En el peor de los casos, desde una perspectiva privada, el seguimiento se realiza para seguir un individuo a través de distintos sitios web.

Con los años, los navegadores y plugins han proporcionado un número de maneras de limitar este seguimiento. Estas son algunas de las técnicas más comunes de cómo se hace el seguimiento y la forma en que el usuario puede evitar (algunos):

1 - Cookies

Las cookies tienen el propósito de mantener el estado entre diferentes peticiones. Un navegador enviará una cookie con cada solicitud, una vez que se establece para un sitio en particular. Desde el punto de vista de la privacidad, la fecha de caducidad y el dominio de la cookie son los ajustes más importantes. La mayoría de los navegadores rechazan las cookies de cuentas de un sitio diferente, a menos que el usuario permita que estas cookies se establezcan. Una cookie de sesión correcta no debe usar fecha de caducidad, ya que debe expirar tan pronto como se cierra el navegador. La mayoría de navegadores permiten revisar, controlar y eliminar las cookies. En el pasado, se propuso una cabecera "Cookie2" para las cookies de sesión, pero esta cabecera se desaprobó y el navegador dejó de soportarlo.

https://www.ietf.org/rfc/rfc2965.txt
http://tools.ietf.org/html/rfc6265

Recupera todas tus contraseñas en local con LaZagne

El proyecto LaZagne de Alessandro Zanni tiene como objetivo desarrollar una herramienta de código abierto capaz de recuperar un montón de contraseñas almacenadas en el equipo de forma local. Cada software almacena sus contraseñas utilizando diferentes técnicas (texto plano, utilizando apis, algoritmos personalizados, etc.). Esta herramienta ha sido desarrollada para encontrar las contraseñas de los programas más comunes y, por el momento, es compatible con 22 aplicaciones de Windows y 12 de Linux:


Su uso es muy sencillo, simplemente ejecutamos laZagne.exe con el parámetro correspondiente: {all, browsers, chats, mails, adminsys, database, svn, wifi, windows}:
 

Para más información visita la página del proyecto: https://github.com/AlessandroZ/LaZagne.

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

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!