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

Antes de empezar a instalar herramientas de seguridad, hay que tener en cuenta que la imagen ISO pre-configurada esta destinada a ocupar el mínimo espacio posible, por lo que se ha reducido al mínimo las herramientas disponibles por defecto en la distribución para la RPi. En este artículo voy a instalar KaliLinux de nuevo en una tarjeta SD con el objetivo de expandir el sistema de ficheros y obtener espacio disponible total de la tarjeta de memoria SD en mi caso 16Gb.

INSTALACIÓN KALILINUX EN SD

Una vez que tenemos descarga la imagen especifica para RPi de la Kali Linux (véase parte 2), lo único que tenemos que hacer es copiar la imagen en la tarjeta de memoria utilizando el comando dd si nos encontramos en Linux, o como es mi caso, utilizar Win32 Disk Imager.


Una vez finalizado el proceso, podemos cargar nuestra tarjeta SD en RPi y arrancar el dispositivo.

Recordar que una vez instalada la Kali Linux en nuestra RaspberryPi necesitamos realizar los sencillos pasos de securización (véase artículo 2), para cambiar el password por defecto, y las claves pre-generadas de SSH.

EXPANSION DEL SISTEMA DE FICHEROS 

Los desarrolladores de KaliLinux han pensado en este inconveniente y han creado un script (RPi-wiggle) para automatizar el proceso de expandir el sistema de archivos y ocupar el resto de espacio disponible de la tarjeta SD donde se encuentre instalado. [Eso mismo también podría realizarse con el script de configuración de las raspberryPi rasp-config del que hablaré mas adelante].


En mi caso estoy utilizando una tarjeta SDHC 16Gb (Clase 10), por lo que mi sistema de archivos se extenderá hasta completar los 16Gb.

Descargo la ultima versión del script utilizando git y lo ejecuto:

# git clone https://github.com/dweeber/rpiwiggle
Ahora le damos permisos de ejecución al script y listo:

# cd rpiwiggle/
rpiwiggle# chmod +x rpiwiggle
rpiwiggle# ./rpiwiggle
Una vez finalizado el script, se reiniciará la RPi | perderemos la conexión en caso de estar conectados vía SSH, y una vez iniciamos de nuevo nuestra Kali, ejecutamos df -h para ver el espacio libre y ocupado que tenemos en el sistema:

# df -h

Por ultimo, es muy recomendables (si no lo habéis hecho aún) actualizar nuestra sistema Kali:

# apt-get update && apt-get upgrade -y
Llegados este momento, podemos empezar a añadir algunas herramientas de seguridad que no han sido incluidas por defecto en KaliLinux.

AÑADIENDO NUEVAS SECURITY TOOLS

Lo primero que voy a hacer es comprobar las fuentes (source.list) del repositorio del sistema de actualización que trae por defecto Kali Linux, por si fuera necesario añadir algún repositorio adicional.

# cat /etc/apt/source.list


Añadimos alguno repositorios más:

deb http://http.kali.org/kali kali main non-free contrib
deb-src http://http.kali.org/kali kali main non-free contrib
deb http://http.kali.org/ /wheezy main non-free contrib
deb http://http.kali.org/kali kali-dev main non-free contrib
deb http://http.kali.org/kali kali-dev main/debian-installer
deb-src http://http.kali.org/kali kali-dev main non-free contrib
deb http://security.kali.org/kali-security kali/updates main contrib non-free
Y volvemos a actualizar el sistema.

Por defecto la distribución KaliLinux para ARM prescinde de muchas de las herramientas de seguridad que la versión de escritorio si contempla, ahora voy a instalar algunas herramientas que considero básicos para cualquier #Pentester:

SSLTrip 


# apt-get install sslstrip -y
Dsniff (http://www.monkey.org/~dugsong/dsniff/) dsniff is a collection of tools for network auditing and penetration testing.


# apt-get install dsniff
Fierce (DNS Scan - http://ha.ckers.org/fierce/-):  Fierce is a very handy tool for DNS Analysis and it is something everyone should have in their armory. Fierce will first check if Zone transfers are allowed or not, if zone transfers are allowed, it will dump all the information and exit happily, otherwise it will brute force it

# apt-get install fierce
P0f (P0f is a tool that utilizes an array of sophisticated, purely passive traffic fingerprinting mechanisms to identify the players behind any incidental TCP/IP communications )

# apt-get install p0f
Scapy is a powerful interactive packet manipulation program. It is able to forge or decode packets of a wide number of protocols, send them on the wire, capture them, match requests and replies, and much more.

NOTA: Se requiere descargar gran número de dependencias lo que supone disponer de al menos 293Mb de espacio libre.

# apt-get install tcpdump tcpreplay graphviz imagemagick python-gnuplot python-crypto python-pyx  ebtables python-visual sox xpdf gv hexer librsvg2-bin python-pcapy


INSTALANDO METASPLOIT

Por supuesto no podía faltar metasploit ! (tenemos la opción de instalarlo como un paquete o bien utilizar el script de Carlos Perez (@darkoperator) que instalará todo lo necesario (dependencias incluidas para la ultima versión de metasploit disponible) desde github.

Sin embargo he decidido realizar los pasos del script manualmente, tal y como viene expuestos (pues no deseo instalar ni Armitage, ni la ultima versión de nmap, sino mantener la versión que tengo instalada mediante el sistema de paquetes de Kali).

Por la actualizaciones de metasploit, no hay que preocuparse, se puede ejecutar el script de actualización siempre que se desee desde su directorio de instalación /opt/mestasploit-framework

NOTA: Este proceso es lento, ser pacientes.

1- Paso - Instalación de dependencias de Metasploit
# apt-get install build-essential libreadline-dev libssl-dev libpq5 libpq-dev libreadline5 libsqlite3-dev libpcap-dev openjdk-7-jre subversion git-core autoconf postgresql pgadmin3 curl zlib1g-dev libxml2-dev libxslt1-dev vncviewer libyaml-dev ruby1.9.3
Una vez todo este correctamente instalado:
# gem install wirble sqlite3 bundler 

2- Paso - Configuración PostgreSQL

Iniciamos postgres y generamos el usuario y la base de datos con la que trabajará metasploit. Cambiamos al usuario postgres y creamos un usuario en la base de datos:
#su postgres
createuser msf -P -S -R -D
createdb -O msf msf
exit

Por ultimo preparamos el sistema para que inicie el motor de base de datos en el arranque del sistema operativo, y este listo para ser utilizado con metasploit
update-rc.d postgresql enable

3- Descargamos una copia de Metasploit-Framework
cd /opt
git clone https://github.com/rapid7/metasploit-framework.git
cd metasploit-framework

Instalamos con el simple comando:
cd metasploit-framework 
bundle install
(se encargará de bajar las dependencias ruby que sean necesarias, y generar los enlaces para ejecutar metasploit).

Si no se hubieran generado los enlaces en el directorio /usr/local/bin automáticamente para ser usado con cualquier usuarios en el terminal de consola, ejecutar:
cd metasploit-framework
sudo bash -c 'for MSF in $(ls msf*); do ln -s /opt/metasploit-framework/$MSF /usr/local/bin/$MSF;done'

4- Creación de los parámetros de configuración que utilizará el framework metasploit
sudo nano /opt/metasploit-framework/database.yml
En este archivo se añade:
production:
 adapter: postgresql
 database: msf
 username: msf
 password: ***
 host: 127.0.0.1
 port: 5432
 pool: 75
 timeout: 5
El password que habéis utilizado para acceder a la base de datos!

Por ultimo crear un una variable de entorno que será utilizada por el framework metasploit y/o armitage (en caso de que este instalado).
sudo sh -c "echo export MSF_DATABASE_CONFIG=/opt/metasploit-framework/database.yml >> /etc/profile
source /etc/profile"

Ya esta listos para iniciar metasploit en nuestra raspberryPi, !ojo! llevará varios minutos iniciar el framework, no obstante, una vez iniciado todo funcionará perfectamente.


7 minutos "tarda" en iniciarse msfconsole! :)



Por su puesto os recomiendo realizar también los pasos de mi artículo "preparando KaliLinux para metasploit".

Gracias a Carlos Perez ~ DarkOperator ( ) por el artículo y script de instalación de Metasploit.

#ST2Labs
www.st2labs.com

Referencias:
[1] http://bahansen.info/the-attack/preparing/
[2] http://www.darkoperator.com/installing-metasploit-in-ubunt/

Raspberry Pi (RPi) tiene un chip ARM a 700 Mhz por defecto, pero puede funcionar a 1000Mhz sin miedo a perder la garantía, para ello es necesario configurar la raspberry en "modo turbo", aunque se tiene que tener en cuenta que la raspberry reducirá su ciclo de vida. En este artículo voy a tratar de realizar un overclocking desde Kalilinux con y sin berryboot instalado en la tarjeta SD.

CONFIG.TXT EN BERRYBOOT

Se puede hacer modificando el archivo config.txt de Berryboot, bien desde la tarjeta SD directamente, o con acceso remoto por VNC, modificando el archivo de configuración.

Para ello se accede remotamente mediante el TightVNC (siempre en los primeros segundo de encender la RPi), se para el arranque del sistema operativo, y se accede al menú de configuración de BerryBoot, en dicho menú se puede editar el archivo config.txt tal y como aparece en la siguiente imagen:


Pero si lo que tienes es instalado una distribución única en la tarjeta SD, deberemos realizar la configuración de overclocking mediante el script rasp-config o modificación del fichero manualmente. A continuación se ven ambas opciones:

  RASP-CONFIG SCRIPT

Sin embargo, si no quieres complicarte demasiado la mejor forma es utilizando el script "rasp-config" para debían que funciona a la perfección en KaliLinux. Para instalarlo es tan sencillo como:

# git clone https://github.com/asb/raspi-config
Se creará una carpeta rasp-config en tu directorio (local /root) y solo falta darle permisos de ejecución (chmod +x rasp-config)


Ahora simplemente ejecutamos el script:

# ./rasp-config

Recomiendan no utilizar el modo turbo para evitar restar "tiempo de vida" así como algunos problemas detectados con tarjetas SD clase 10.

En mi caso, he probado la instalación del script en KaliLinux ARM para raspberry Pi descargado desde GITHUB no me ha funcionado del todo correctamente, por lo que os dejo la forma de instalar el paquete debian de raspbian en KaliLinux:


wget http://archive.raspberrypi.org/debian/pool/main/r/raspi-config/raspi-config_20130525_all.deb
wget http://http.us.debian.org/debian/pool/main/l/lua5.1/lua5.1_5.1.5-4_armel.deb
wget http://http.us.debian.org/debian/pool/main/t/triggerhappy/triggerhappy_0.3.4-2_armel.deb
dpkg -i triggerhappy_0.3.4-2_armel.deb
dpkg -i lua5.1_5.1.5-4_armel.deb
dpkg -i raspi-config_20130525_all.deb

Para la ultima versión del paquete debian buscar en el repositorio:  http://archive.raspberrypi.org/debian/pool/main/r/raspi-config/

Sin embargo, a pesar de instalar el paquete debian y conseguir que funcione correctamente, el overclocking no se realiza (not working) - buscando he encontrado información de como realizar la modificación manualmente del fichero config.txt en KaliLinux:


MODIFICACIÓN MANUAL DEL CONFIG.TXT

En mi caso KaliLinux, realizaremos la modificación remotamente a través de SSH, una vez conectados, procedemos a modificar el archivo de configuración config.txt.

# sudo nano /boot/config.txt
arm_freq=800
sdram_freq=500
Y puesto que hay veces que no funciona, debido a una cuestión de correcta sincronización de archivos en linux entre las particiones (solución vista en este blog), se debe de realizar de la siguiente forma (se puede obviar el comando sudo si estamos utilizando el usario root):

# sudo sync
# sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"
# sudo cp config.txt config.txt.save
# sudo cp config.txt config.txt.save.1
# sudo sync; sync; exit; exit
!!! No funciona !!!


Según parece, la versión generada por Offensive Security para ARM tiene dos particiones diferenciadas: /dev/mmcblk0p1 (boot partition), and /dev/mmcblk0p2 (normal file system). Si nos damos cuenta, en el sistema de fichero (/dev/mmcblk0p2) existe el directorio /boot/ pero no es el correcto. Para solucionar el problema debemos de realizar lo siguiente:

1
2
3
4
mkdir /bios
mount /dev/mmcblk0p1 /bios/
nano /bios/config.txt
umount /bios

Para evitar colisión de nombre en Linux, el autor de la solución utilizar bios (puede ser cualquier otro nombre) para indicar que en dicho directorio es donde se va a proceder a montar el sistema de arranque de la KaliLinux (partición /boot/) y es donde se podrá copiar nuestro archivo config.txt para configurar la raspberryPi durante el arranque.

Copy of my config.txt < Turbo Mode

gpu_mem_256=112
gpu_mem_512=368
cma_lwm=16
cma_hwm=32
cma_offline_start=16

arm_freq=1000
core_freq=500
sdram_freq=600
over_voltage=6
force_turbo=1

Copy of my config.txt < Medium

gpu_mem_256=112
gpu_mem_512=368
cma_lwm=16
cma_hwm=32
cma_offline_start=16

arm_freq=900
core_freq=450
sdram_freq=500

# Disable dynamic clocking
force_turbo=1

Nota: Cuando se realiza el overclocking se debe de asegurar la compatibilidad de la tarjeta SD con raspberryPi.

COMPROBACIÓN DE LA CONFIGURACIÓN

Comprobación de la frecuencia de CPU a la que se encuentra nuestro chip ARM.

cat /proc/cpuinfo

Para confirmar la frecuencia, lo mejor es comprobarlo con este comando:

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
Por ultimo se puede instalar en KaliLinux el comando vcgencmd de gran utilidad para comprobar que la configuración ha sido aplicada correctamente:


1
2
3
4
5
6
wget http://archive.raspberrypi.org/debian/pool/main/r/raspberrypi-firmware/libraspberrypi-bin_1.20140530-1_armel.deb
wget http://archive.raspberrypi.org/debian/pool/main/r/raspberrypi-firmware/libraspberrypi0_1.20140530-1_armel.deb
wget http://archive.raspberrypi.org/debian/pool/main/r/raspberrypi-firmware/raspberrypi-bootloader_1.20140530-1_armel.deb
dpkg -i raspberrypi-bootloader_1.20140530-1_armel.deb
dpkg -i libraspberrypi0_1.20140530-1_armel.deb
dpkg -i libraspberrypi-bin_1.20140530-1_armel.deb

(Comprobar la ultima versión disponible en http://archive.raspberrypi.org/debian/pool/main/r/raspberrypi-firmware/)

No esta incluido por defecto en KaliLinux por lo que de nuevo recurrimos a paquetes "debian" para instalar la herramienta y asegurarnos que la configuración "BIOS" de nuestra raspberryPi se efectúa adecuadamente.

vcgencmd get_config arm_freq
Ver más opciones:

vcgencmd get_config int

Eso ha sido todo por el momento, volveremos con más y mejor ·raspberryPi·

#ST2Labs
www.st2labs.com

Referencias:
[1] http://www.jeremymorgan.com/tutorials/raspberry-pi/how-to-overclock-raspberry-pi/
[2] http://bahansen.info/the-attack/preparing/
[3] http://rageweb.info/2013/03/21/raspi-config-in-kali/
[4] http://rageweb.info/2013/11/07/bootconfig-txt-in-kali/
[5] http://rageweb.info/2013/11/07/vcgencmd-on-kali/
[6] http://elinux.org/RPiconfig
[7] http://elinux.org/RPi_SD_cards

Si recordamos, en el primer articulo, dejamos nuestra RPi con el sistema de arranque berrybot y el sistema operativo OpenElec instalado. Ahora en esta segunda parte vamos a prepara la imagen de KaliLinux para ser iniciada desde Berrybot.

DESCARGAMOS KALILINUX

Lo primero que necesitamos es la imagen ISO especialmente preparada para nuestra RPi, para ello ir a http://www.offensive-security.com/kali-linux-vmware-arm-image-download/ donde podréis localizar la versión de KaliLinux para el chip ARM que lleva nuestra RPi (véase la imagen siguiente).


Una vez que tenemos la imagen ISO KaliLinux_ARM necesitamos convertir la imagen al sistema SquashFS que utiliza Berryboot para iniciar los diferentes sistema en la RPi.

PREPARANDO EL SISTEMA

Antes de poder convertir la imagen ISO necesitamos preparar el sistema (suponemos que tenemos un sistema Linux basado en debian) para poder realizar la conversión, por lo que ejecutamos el siguiente comando para instalar las herramientas necesarias:

apt-get install squashfs-tools  kpartx 

Se descomprime el archivo ISO original en el directorio /tmp para trabajar con el archivo, y una vez realizado los siguientes pasos:

# kpartx -av kali.img

# mount /dev/mapper/loop0p2 /mnt/

# sed -i 's/^\/dev/mmcblk/#\0/g' /mnt/etc/fstab

# mksquashfs /mnt/ kali-armel-rpi-berry.img -comp lzo -noappend



Una vez finalizado el proceso tenemos la imagen preparada para ser ejecutada por el sistema Berryboot.

AÑADIMOS UN SISTEMA OPERATIVO A BERRYBOOT

Una vez finalizado el proceso, copiamos la imagen ISO (Kali-armel-rpi-berry.img) a un dispositivo USB y nos conectamos a nuestra RPi (192.168.1.40 - en mi caso-) mediante TightVNC viewer, justo unos segundo después de iniciar nuestra RPi (para ver como realizar esta conexión leer la parte 1 de este artículo).


Una vez en el menu de BerryBoot se deja pulsado el botón sobre el "Add OS" y cuando aparezca el dialogo seleccionamos "copy OS from USB stick". A continuación seleccionamos el archivo y luego seleccionamos el sistema operativo que deseemos se autoinicie como favorito.

Llegados a este punto, estamos preparados para iniciar KaliLinux por primera vez en nuestra RPi y conectarnos a ella de forma remota utilizando SSH.

PRIMERA CONEXIÓN CON KALI-LINUX

Desde el primer artículo, ya os comentaba que no dispongo de una segunda pantalla para conectar la RPi, es por lo que trabajaré con ella mediante control remoto por cable de red. 

Una vez instalado el sistema operativo KALI en nuestra RPi con BerryBoot solamente tenemos que reiniciar la RPi para que arranque KaliLinux. Pasados unos segundo utilizaremos Putty (sobre windows) para conectarnos mediante SSH a nuestra KaliLinux.

NOTA: la IP que utilizara Kali será la misma que tenemos configurada en los archivos de configuración de BerryBoot.



Primeros pasos con KaliLinux

Lo primero que deberemos realizar es una "securización" mínima del sistema operativo Kali, hay que tener en cuenta que es una imagen pre-instalada que comparte con todas las imágenes el mismo usuario: root y la misma contraseña toor.

Lo primero que debemos de hacer el cambiar la contraseña de "root":

root@kali:~# passwd


El segundo paso es eliminar y generar un nuevo conjunto de claves public-private para SSH:

root@kali:~# rm /etc/ssh/ssh_host_*

root@kali:~# dpkg-reconfigure openssh-server



Por supuesto el ultimo paso es mantener actualizado nuestra RPi.

root@kali:~# apt-get update && apt-get upgrade –y

Ahora estamos preparados para empezar a utilizar KaliLinux, sin embargo, la KaliLinux en la versión RPi no tiene todo el arsenal de herramientas instaladas, por lo que deberemos añadir las herramientas que echemos en falta nosotros mismo.

Además, debéis tener en cuenta que la imagen prepara no dispone de mucho espacio libre para trabajar, por lo que será muy recomendable expandir la imagen, pero todo esto lo veremos en el siguiente artículo, donde os hablare de como hacer overclocking de la RPi, añadir programas nuevos -metasploit y scapy- y configurar la red wifi en KaliLinux.

Pre-requisitos para el siguiente artículo:

 - Disponer de una tarjeta SD adicional. Ya que para poder utilizar bien KaliLinux en la raspberryPi deberemos instalar KaliLinux directamente sobre la tarjeta SD y expandir la imagen para que se puede utilizar todo el espacio libre de la SD. Por tanto, para el siguiente artículo instalaremos KaliLinux directamente sobre la tarjeta SD, realizaremos la configuración mínima de securización, etc.

#ST2Labs