Latest Kodi (XBMC) on Raspbian with remote control

pi2Some easy steps to install kodi on raspbian
Update the Pi:

sudo apt-get update
sudo apt-get rpi-update
reboot
sudo apt-get dist-upgrade
reboot

Install Kodi

sudo apt-get install kodi

For the remote control we need to add group to kodi

sudo adduser kodi input

Now we can start Kodi by running:

kodi &

If you want to start it when the Pi boots edit the file /etc/defaults/kodi
and change the 2nd line to ENABLED=1

Metasploit on Raspberry Pi running Raspbian

sudo -i
wget http://downloads.metasploit.com/data/releases/framework-latest.tar.bz2
apt-get update
apt-get dist-upgrade -y
apt-get install ruby subversion libpcap-dev
tar jxpf framework-latest.tar.bz2
cd msf3
gem install bundler
gem install sqlite3 -v ‘1.3.9’
bundle install
./msfconsoleRaspberryPi

Kismet on Raspberry Pi running Raspbian

RaspberryPiOn an Raspberry Pi this process will probably take more then an hour.(Sit back and relax once you typed in make..)
Before installing kismet from source we need some apps from the repository.

sudo apt-get install libncurses5-dev libpcap-dev libpcre3-dev libnl-dev -y

Now we can download and compile the source

wget http://www.kismetwireless.net/code/kismet-2013-03-R1b.tar.gz
tar -zxf kismet-2013-03-R1b.tar.gz
cd kismet-2013-03-R1b
./configure
make
sudo make suidinstall
sudo usermod -a -G kismet pi
sudo reboot

Configuring monitor mode:

sudo iw phy phy0 interface add mon0 type monitor
sudo iw dev wlan0 del
sudo airodump-ng mon0

Open a new windows and configure Kismet:
Edit /usr/local/etc/kismet.conf and add “ncsource=mon0”, “hidedata=true

And starting with:

kismet_client

Mount NFS server and move SWAP to nfs share on the Raspberry Pi

RaspberryPiBefore we can start with this on the Raspberry we need to make sure we have the NFS Server up and running. In my case this is a FreeNas box that has multiple disk running in zfs raid.
After the share is set up on the server (/mnt/pool1/pi) we can switch to the Pi.

First we need to make sure the rpcbind service is running and started on bootup.

sudo update-rc.d rpcbind defaults && sudo service rpcbind start

Now we can test if we can mount our share before we add it to our fstab:

sudo mount YourNfsServerIp://mnt/pool1/pi /mnt

Check with df -h if the share is mounted.(normally when it doesn’t show an error all should be ok.)
My results:

pi@pi ~ $ df -h
Filesystem                  Size  Used Avail Use% Mounted on
rootfs                      7,4G  2,5G  4,7G  35% /
/dev/root                   7,4G  2,5G  4,7G  35% /
devtmpfs                    239M     0  239M   0% /dev
tmpfs                        49M  260K   49M   1% /run
tmpfs                       5,0M     0  5,0M   0% /run/lock
tmpfs                        97M     0   97M   0% /run/shm
/dev/mmcblk0p1               56M  9,6M   47M  18% /boot
192.168.1.11:/mnt/pool1/pi  113G  7,5G  106G   7% /mnt

Now that all is working we can add a new line to /etc/fstab  (change the ip with your own.)

192.168.1.11:/mnt/pool1/pi /mnt    nfs    defaults    0    0

Now that NFS is setup correct we can move the swap to a real drive.
Let’s start with cleaning and removing the old on the sd-card.

sudo apt-get remove –purge dphys-swapfile -y
sudo rm /var/swap
sudo rm /etc/init.d/dphys-swapfile
sudo update-rc.d dphys-swapfile remove

Now we can create and mount a new file.(1Gb change the value count=1024 if you need a smaller/larger swap)

sudo dd if=/dev/zero of=/mnt/swap bs=1M count=1024
sudo losetup /dev/loop0 /mnt/swap
sudo mkswap /dev/loop0
sudo swapon /dev/loop0

Check with free -m if you can see the swap file.
Now we can edit our /etc/rc.local and add before exit 0

echo “Setting up loopy/mnt/swap..”
sleep 2
losetup /dev/loop0 /mnt/swap
mkswap /dev/loop0
swapon /dev/loop0

Have fun.

Full disk backup on the Raspberry Pi

RaspberryPiOne of the most important thing on the pi is to have decent backups, since our root is on an untrusted sd-card there will always be the risk of that corrupted filesystem.
Over on raspberrypi.org I found a script that fits my needs and uses dd to make a copy of the sd-card and stores that on my NFS (FreeNas) Server that runs zfs raid over multiple disk.
Also doing some test how the pi runs if the root is completely on nfs..(more on that later.)

I stored the backup script on my nfs share that is mounted to /mnt
Backups are stored in /mnt/Pi-backups
Script and logs are in /mnt/scripts
Backup script runs twice a day and the backups for the last 7 days are stored.
Here’s the script.(/mnt/scripts/backup.sh)

#!/bin/bash

# Setting up backup directories
SUBDIR=Pi_backups
DIR=/mnt/$SUBDIR

# Setting up echo fonts
red=’\e[0;31m’
green=’\e[0;32m’
cyan=’\e[0;36m’
yellow=’\e[1;33m’
purple=’\e[0;35m’
NC=’\e[0m’ #No Color
bold=`tput bold`
normal=`tput sgr0`

#Screen clear
clear

echo -e “${green}${bold}Starting RaspberryPI backup process!${NC}${normal}”
echo “”
# First check if pv package is installed, if not, install it first
PACKAGESTATUS=`dpkg -s pv | grep Status`;

if [[ $PACKAGESTATUS == S* ]]
then
echo -e “${cyan}${bold}Package ‘pv’ is installed${NC}${normal}”
echo “”
else
echo -e “${yellow}${bold}Package ‘pv’ is NOT installed${NC}${normal}”
echo -e “${yellow}${bold}Installing package ‘pv’ + ‘pv dialog’. Please wait…${NC}${normal}”
echo “”
sudo apt-get -y install pv && sudo apt-get -y install pv dialog
fi

# Check if backup directory exists
if [ ! -d “$DIR” ];
then
echo -e “${yellow}${bold}Backup directory $DIR doesn’t exist, creating it now!${NC}${normal}”
sudo mkdir $DIR

fi

# Create a filename with datestamp for our current backup (without .img suffix)
OFILE=”$DIR/backup_$(date +%Y%m%d_%H%M%S)”

# Create final filename, with suffix
OFILEFINAL=$OFILE.img

# First sync disks
sync; sync

# Shut down some services before starting backup process
echo “”
echo -e “${purple}${bold}Stopping services before backup${NC}${normal}”
sudo pkill deluged
sudo pkill deluge-web
sudo service deluge-daemon stop
sudo service noip stop
sudo service cron stop
sudo service proftpd stop
sudo service webmin stop
sudo service xrdp stop

# Begin the backup process, should take about 45 minutes hour from 8Gb SD card to NFS
echo “”
echo -e “${green}${bold}Backing up SD card to img file on NFS${NC}${normal}”
SDSIZE=`sudo blockdev –getsize64 /dev/mmcblk0`;
sudo pv -tpreb /dev/mmcblk0 -s $SDSIZE | dd of=$OFILE bs=1M conv=sync,noerror iflag=fullblock

# Wait for DD to finish and catch result
RESULT=$?

# Start services again that where shutdown before backup process
echo “”
echo -e “${purple}${bold}Starting the stopped services${NC}${normal}”
sudo service deluge-daemon start
sudo deluged
sudo deluge-web
sudo service noip start
sudo service cron start
sudo service proftpd start
sudo service webmin start
sudo service xrdp start

# If command has completed successfully, if not, delete created files
if [ $RESULT = 0 ];
then
sudo mv $OFILE $OFILEFINAL
echo “”
echo -e “${green}${bold}RaspberryPI backup process completed! FILE: $OFILEFINAL${NC}${normal}”
echo -e “${yellow}Removing backups older than 7 days${NC}”
sudo find $DIR -maxdepth 1 -name “*.img” -mtime +7 -exec rm {} \;
echo -e “${cyan}If any backups older than 7 days were found, they were deleted${NC}”
exit 0
# Else remove attempted backup file
else
echo “”
echo -e “${red}${bold}Backup failed!${NC}${normal}”
sudo rm -f $OFILE
echo “”
echo -e “${purple}Last backups on NFS:${NC}”
sudo find $DIR -maxdepth 1 -name “*.img” -exec ls {} \;
echo “”
echo -e “${red}${bold}RaspberryPI backup process failed!${NC}${normal}”
exit 1
fi

Make the script executable:

chmod +x /mnt/scripts/backup.sh

Add it to your crontab so it runs twice a day:

crontab -e

And add the following line:

0 4/16 * * * /mnt/scripts/backup.sh > /mnt/scripts/cron.log 2>&1

That’s all for today, Let’s make a test backup by running:

/mnt/scripts/backup.sh

 

Install and Test Aircrack on Raspberry Pi running Raspbian

RaspberryPiAfter running kali for a couple hours I had some issues with my Alfa’s and decided to switch to Raspbian and build up my image from there.
We need to see what’s around us so let’s install aircrack and do some ‘monitoring’.
Start with a updated system:

sudo apt-get update && sudo apt-get dist-upgrade -y

Next some requisition:

sudo  apt-get install libnl-dev libssl-dev iw -y

Now grab yourself a beer and the latest sources from the aircack-ng site:

wget http://download.aircrack-ng.org/aircrack-ng-1.2-beta3.tar.gz

Time to compile it:(and drink that beer.)

tar -zxf aircrack-ng-1.2-beta3.tar.gz
cd aircrack-ng-1.2-beta3
make
sudo make install

Last step before we can test is to install Airodump-ng OUI file:

sudo airodump-ng-oui-update

Now put your wifi in monitor mode and check if you can read packages:

sudo airmon-ng start wlan0
sudo airodump-ng mon0

Cleanup:

cd ..
rm -rf aircrack-ng*

Have Fun 😉