Sunday, 19 October 2014

How To Extract Page(s) From A Single PDF File Using Command Line

PDFtk allows users to perform common pdf tasks from the command line such as merging or splitting PDF files and pages.

To install the program:
sudo apt-get install pdftk

To extract a page from an existing pdf file. For instance just the first page (A1):
pdftk A=/home/user/Desktop/cv.pdf  cat A1 output outfile.pdf

Wednesday, 8 October 2014

How To Install sqlmap on Debian (or Ubuntu)

sqlmap is an open-source pentesting tool that automates the exploitation of SQL injection flaws.

The tool makes it pretty easy for anyone with basic command line knowledge to exploit and break into databases.

sudo apt-get install git
git clone sqlmap-dev
cd sqlmap-dev
To list available options:
python -h
Fetch database names of vulnerable url:
python -u --dbs
Enumerate tables of a website's database (e.g.: test)
python -u -D test --tables
Dump all data in database (test) and table (e.g.: costumer_data)
python -u -D test -T costumer_data --dump
More examples are available here:

Friday, 19 September 2014

Banana Pi: I2C Barometric Sensor BMP085


---> 3.3 volts - to vcc on board
---> ground - to gnd on board
---> SDA - to sda on board
---> SLC - to scl on board

Banana Pi - I2C Barometer BMP085
Wiring, BMP085

Locating the sensor

root@lemaker:~# ls -l /dev/i2c*
crw-rw---T 1 root i2c 89, 0 Sep 19 14:43 /dev/i2c-0
crw-rw---T 1 root i2c 89, 1 Sep 19 14:43 /dev/i2c-1
crw-rw---T 1 root i2c 89, 2 Sep 19 14:43 /dev/i2c-2
crw-rw---T 1 root i2c 89, 3 Sep 19 14:43 /dev/i2c-3
crw-rw---T 1 root i2c 89, 4 Sep 19 14:43 /dev/i2c-4
As you can see there are 5 I2C buses. With the i2cdetect tool we are looking for the 0x77 address, which is the BMP085.
# -y 0, -y 1 etc
sudo i2cdetect -y 2
We are using the  Adafruit BMP Python Library to access the sensor.
sudo apt-get install git build-essential python-dev python-smbus
git clone
cd Adafruit_Python_BMP
sudo python install
There are some example scripts in the examples folder.
cd examples

# we need to change the bus number
#uncomment sensor = BMP085.BMP085(busnum=2)
#and comment #sensor = BMP085.BMP085()

#run code
sudo python

#sample output
Temp = 23.00 *C
Pressure = 97607.00 Pa
Altitude = 313.47 m
Sealevel Pressure = 97607.00 Pa

Wednesday, 17 September 2014

Banana Pi: Temperature Sensor (DS18B20) - Tutorial


    --> Banana Pi running Raspbian for Banana Pi
    --> Breadboard
    --> Jumper Wires
    --> DS18b20
    --> 4.7K Ohm resistor
    --> Breakout cobbler


      Hardware Setup

      Refer to the graphic for the correct wiring. Make sure the Banana Pi is switched off to prevent any possible damage.

      Banana Pi Temperature Sensor - DS18B20

      Software Setup

      Double check the wiring and boot the device. In order to be able to access the temperature data, we need to make some minor adjustments to the script.bin file, which is a binary configuration file used by Allwinner SOC.
      sudo apt-get install git
      git clone
      cd sunxi-tools
      #location of the script.bin file
      cd /boot/bananapi/
      #get the fex file
      sudo /home/bananapi/sunxi-tools/bin2fex script.bin bananapi.fex
      #edit the fex file
      sudo nano bananapi.fex
      #add the following at the end, save (CTRL + O) and close
      gpio = 4
      #.fex back to .bin
      sudo /home/bananapi/sunxi-tools/fex2bin bananapi.fex script.bin
      sudo reboot

      Reading raw data from the sensor

      After successfully rebooting your device, you will notice that /sys/bus/w1/devices is no longer empty.
      bananapi@lemaker ~ $ cd /sys/bus/w1/devices
      bananapi@lemaker /sys/bus/w1/devices $ ls
      28-000006203041  w1_bus_master1
      bananapi@lemaker /sys/bus/w1/devices $ cd 28-000006203041
      bananapi@lemaker /sys/bus/w1/devices/28-000006203041 $ ls
      driver  id  name  power  subsystem  uevent  w1_slave
      bananapi@lemaker /sys/bus/w1/devices/28-000006203041 $ cat w1_slave
      5e 01 4b 46 7f ff 02 10 8d : crc=8d YES
      5e 01 4b 46 7f ff 02 10 8d t=21875
      t=21875 is the number we are looking for. E.g.: 21.9 degree Celsius (°C) in my case.

      Banana Pi Temperature Sensor (DS18B20)
      my setup

      Tuesday, 16 September 2014

      Building Wireshark from Source - Linux (Debian 7.6)

      OS: Debian GNU/Linux 7.6 (wheezy)

      Latest releases can be found here:
      tar xaf wireshark-1.12.0.tar.bz2
      cd wireshark-1.12.0
      #could be that you need to install libgtk-3-dev before compiling
      sudo apt-get install libgtk-3-dev 
      #to compile
      #now run it
      sudo ./wireshark
      Building Wireshark from source under Linux (Debian 7.6)

      Saturday, 13 September 2014

      OsmocomBB - Hardware and Software Setup - Tutorial (Motorola C118)

      OsmocomBB is an Open Source GSM Baseband software implementation. By using the sofware on a compatible phone (e.g. Motorola C118), you are able to make and receive phone calls, send and receive SMS, etc. based on Free Software only.





      • PL2303HX USB Serial To RS232 TTL Chip
      • 2.5 mm audio jack
      • Motorola C118 (E88)
      This is a typical pin-out of a 2.5 mm audio jack:

      L (Left Signal) Tip 1 Green
      R (Right Signal) Ring 2 Red
      GND (Ground) Sleeve 3 Bare Copper

      You need to soldier the 2.5mm audio jack to the USB Serial To RS232 TTL Chip, whereas
      • TxD is at the tip of the plug
      • RxD is at the middle contact
      • GND is the outer contact 
      2.5mm audio jack to the USB Serial To RS232 TTL Chip Osmocom


      Connect the phone to your PC and check if it is being recognized.
      dmesg | grep tty
      user@user:~$ dmesg | grep tty
      [    0.000000] console [tty0] enabled
      [ 6522.143379] usb 3-2: pl2303 converter now attached to ttyUSB0
      To make sure everything is working, install cu and connect at 115200 baud. Permissions need to be set correctly, otherwise you will run into this error: "Cannot open /dev/ttyUSB0: Permission denied".
      sudo adduser user dialout
      sudo chmod a+rw /dev/ttyUSB0
      sudo cu -l /dev/ttyUSB0 -s 115200
      Assuming the phone is switched off, press the power button and cu should display fmttool erro, which means you are ready to go!

      Compiling OsmocomBB

      Compiling GNU ARM toolchain

      Ensure you add the path of arm-elf-gcc using export (check in shell: arm-elf-gcc). This is absolutely vital as failure to do so will yield you errors when trying to compile osmocom later on.  
      mkdir gnuarm
      cd gnuarm
      chmod +x
      sudo apt-get install build-essential libgmp3-dev libmpfr-dev libx11-6 libx11-dev texinfo flex bison libncurses5 \
       libncurses5-dbg libncurses5-dev libncursesw5 libncursesw5-dbg libpcsclite-dev libncursesw5-dev zlibc zlib1g-dev libmpfr4 libmpc-dev aptitude
      sudo aptitude install libtool shtool automake autoconf git-core pkg-config make gcc
      mkdir build install src
      cd src/
      cd ..
      export PATH=$PATH:/home/user/gnuarm/install/bin

      Compiling libosmocore

      git clone git://
      cd libosmocore/
      autoreconf -i
      sudo make install

      Compiling osmocomBB

      git clone git://
      cd osmocom-bb
      git pull --rebase
      cd src

      OsmocomBB Hello world! 

      Plug everything in, switch phone off, run command and press the phone's power button.
      cd ~/osmocom-bb/src/host/osmocon/
      ./osmocon -p /dev/ttyUSB0 -m c123xor ../../target/firmware/board/compal_e88/hello_world.compalram.bin
      Osmocom Motorola C118

      Loading RSSI 

      sudo ./osmocon -d tr -p /dev/ttyUSB0 -m c123xor -c ../../target/firmware/board/compal_e88/rssi.highram.bin
      OsmocomBB RSSI

      Friday, 15 August 2014

      Banana Pi: Onboard, User-Definable Green Led

      As you may have noticed the BPi has a green LED, which starts blinking as soon as the Pi is powered on: i.e. as soon as something happens with the SD card. It is possible to program the behavior of the LED such as switching it off.

      To list the available options open a terminal and enter cat /sys/class/leds/green:ph24:led1/trigger. The default value is heartbeat. If you want to permanently switch it off the trigger needs to be set to none.
      user@lemaker ~ $ cat /sys/class/leds/green:ph24:led1/trigger  
      none battery-charging-or-full battery-charging battery-full battery-charging-blink-full-solid ac-online usb-online mmc0 timer [heartbeat] backlight gpio cpu0 cpu1 default-on  
      user@lemaker ~ $ sudo su  
      root@lemaker:~# echo none >  /sys/class/leds/green:ph24:led1/trigger
      The LED may be manually turned on and off using the brightness file. The minimum is 0 (i.e. off), and the maximum is 255. To switch it on:
      root@lemaker:~# echo 1 >  /sys/class/leds/green:ph24:led1/brightness 

      Let it blink

      echo none >  /sys/class/leds/green:ph24:led1/trigger
      while true; do
      echo 1 >  /sys/class/leds/green:ph24:led1/brightness
      sleep 1
      echo 0 >  /sys/class/leds/green:ph24:led1/brightness
      sleep 1
      Make sure to run the script as root - e.g. sudo sh

      Saturday, 9 August 2014

      Banana Pi - Raspberry Pi Upgraded

      Given that I finally received my Banana Pi, it is time for a little review of the Chinese Raspberry Pi "competitor". Before I tell you about my first experiences with the board, let's have a quick look at its hardware specs and how they compare to the newly released Raspberry Model B +.



      The first thing that sticks out is the Banana Pi's much faster dual-core, Cortex-A7-based Allwinner A20 system-on-chip running at 1GHz, which definitely beats the Raspberry's "well-known" 700MHz, ARM11-based Broadcom BCM2835 processor.

      The Banana Pi is also equipped with 1GB of RAM and built-in Ethernet that can handle up to 1Gbps, which is approximately ten-times as fast as the Raspberry Pi's.

      Raspberry Pi Model B+
      Raspberry Pi Model B+
      The only area where the new Model B+ can really shine, next to the 4 x 2.0 USB ports, is the additional GPIO headers. There are now 40 compared to 26 on the Model B. The Banana Pi's GPIO layout is the same as the Raspberry Pi Model B, which makes most projects based on Raspbian and the RPi.GPIO libraries compatible with the Banana Pi.

      Unfortunately the Banana uses a parallel camera interface, which means that your Raspberry Pi camera board won't connect to the Banana's CSI interface. Luckily, Lemaker is working on their own module.

      Banana Pi
      Banana Pi
      Additionally the Banana Pi features some interesting ''perks'': power & reset switch, an IR receiver, a microphone, a programmable LED, SATA and a LVDS display interface.

      OS & first run

      The Banana Pi runs Lubuntu, Raspbian, Android, Fedora, Arch Linux, OpenSuse and Scratch.  The image files can be downloaded here:

      To write the image (in my case Raspbian) to a SD card, execute the following commands:
      #to get the location of your card. /dev/sdb in my case
      sudo fdisk -l
      #to write the image
      sudo bs=4M dd if=/home/user/Documents/Raspbian_For_BananaPi_v3_1.img of=/dev/sdb

      Default Credentials

      No need for a fancy HDMI monitor as ssh is enabled by default. Just connect the Pi via Ethernet and you are ready to go: the default credentials are userid: root, password: bananapi. To get the IP address of the Banana Pi, you can either access your router's control panel or perform a scan with nmap.
      #to scan for all the devices on the network  
      nmap -sn  
      #to connect  
      ssh root@
      First thing you might want to do is to expand the file system and disable Desktop boot.
      root@lemaker raspi-config
      Select "Expand Filesystem" and reboot for the changes to take effect. The next thing I did was adding a new user, deleting the default bananapi user and disabling ssh access for the root user.
      #to add a new user  
      sudo adduser user  
      #to add a user to the sudo group  
      sudo adduser user sudo  
      #logout and login with your new user  
      #to delete the a user account  
      sudo userdel bananapi  
      # to disable root ssh login  
      sudo nano /etc/ssh/sshd_config  
      # restart ssh   
      sudo service ssh restart  
      Look for "PermitRootLogin" in the /etc/ssh/sshd_config file and set it to no.

      Setting Up Tight VNC Server

      If you are like me and using the BPi in headless mode, you might want to setup a VNC connection.
      # install tightvncserver  
      sudo apt-get update && sudo apt-get install tightvncserver -y  
      # start the vnc server  
      vncserver :1 -geometry 800x600 -depth 24  
      # now connect to the BPi with any VNC client. e.g. xtightvncviewer  
      Banana Pi - Raspbian Desktop
      Banana Pi - Raspbian Desktop
      My initial verdict after a few hours with the Banana Pi is very positive indeed. You will notice a considerable performance increase compared to your Raspberry Pi and the board's peripherals (e.g. SATA) make it ideal for many projects. As far as I am concerned I do not see any significant downsides. Sure, there is no camera module yet and some RPi extension boards won't fit the BPi,  but overall a great effort by Lemaker. I'll be back with additional tutorials.


      Banana Pi: Onboard, User-Definable Green Led 

      Banana Pi: Temperature Sensor (DS18B20)

      Banana Pi: I2C Barometric Sensor BMP085

      Banana Pi: How To Install OpenMediaVault (NAS)


      Friday, 1 August 2014

      How To Install i2p On Debian Wheezy

      Steps should be performed with root access: i.e. sudo su

      Add the following lines to /etc/apt/sources.list.d/i2p.list

      1. nano /etc/apt/sources.list.d/i2p.list  
      3. deb stable main  
      4. deb-src stable main 
      Download the key used to sign the repository and add it to apt
      1. apt-key add  
      Update repositories and install i2p
      1. apt-get update  
      2. apt-get install i2p i2p-keyring  
      Run i2p (NEVER AS ROOT!)
      1. i2prouter start  
      How To Install I2P On Debian Wheezy

      Monday, 21 July 2014

      How To Install Mate On Debian Wheezy

      Mate is forked from the unmaintained code base of GNOME 2 and has become quite popular. To install it on your debian wheezy, the following steps are required.
      1. sudo su  
      2. add-apt-repository 'deb wheezy main'  
      3. apt-get update  
      4. apt-get --yes --quiet --allow-unauthenticated install mate-archive-keyring  
      5. apt-get update  
      Install MATE core, the MATE desktop environment and the extras.
      1. sudo apt-get install mate-desktop-environment-extra