Raspberry Pi – Ultimate Hacking Tool!
Grappig eigenlijk dat we het hier nog nooit over de Raspberry Pi hebben gehad. Ik heb er namelijk 4 en gebruik ze voor diverse doeleinden. Zo heb ik er een in gebruik bij mijn kersthuisje en de overige gebruik ik om te hacken. Maar wat maakt de Raspberry Pi ondanks zijn kleine formaat tot zo’n supercomputer? In deze post ga je dat lezen!

De Raspberry Pi is een single board (1 board voor processor en geheugen) computer en is ontwikkeld vanuit educatief oogpunt. De Raspberry Pi is ontwikkeld door een groep academici aan de universiteit van Cambridge. Deze academici vonden dat studenten gemakkelijker en vooral goedkoper kennis moesten kunnen maken met programmeren en dat studenten dit op een speciale omgeving moesten doen zonder hiervoor een dure thuiscomputer aan te moeten schaffen. De eerste Raspberry Pi’s werden voorzien van een Broadcom BCM2835 SoC. De nieuwste Raspberry Pi 3B (2016) modellen draaien op een Broadcom BCM2837 SoC. De systeemeigenschappen van een Raspberry Pi model 3B zijn o.a.
- 1,2 GHz 32/64-bit Quad Core ARMv8 Cortex-A53 processor
- Broadcom BCM43438 microchip
- 1 GB LPDDR2-900 geheugen
- Broadcom VideoCore IV @ 400 MHz GPU
- 10/100 Ethernet aansluiting
- 802.11n WiFi aansluiting
- Bluetooth 4.1
- 4x USB 2.0
- HDMI 1.4 aansluiting
- Composiet aansluiting
- Analoge 3.5mm audio uitgang
- Realtek ALC898 audio chip
- 40 GPIO pinnen
- CSI Camera poort
Zoals je ziet is de Raspberry Pi een krachtige minicomputer die prima ingezet kan worden als desktop computer voor de light users. Ook kun je er nog prima op programmeren. Vaak wordt de Raspberry Pi gebruikt voor een speciaal doeleinde. Laten we hiervoor even een kijkje gaan namen naar de Raspberry Pi besturingssystemen.
Raspberry Pi Besturingssystemen
De Raspberry Pi boot zijn besturingssysteem vanaf een Micro-SD kaart. Het voordeel hiervan is, is dat je meerdere Micro-SD kaarten kunt gebruiken in 1 Raspberry Pi. Je kunt een Micro-SD kaart ook multi-boot maken als deze groot genoeg is.
De Raspberry Pi heeft meerdere besturingssystemen welke gebruikt kunnen worden. Het default besturingssysteem is Raspbian. Van Raspbian zijn v.a. de Raspberry Pi website 2 soorten te downloaden, de “stretch lite” versie is een Debian based OS zonder desktop / GUI en de “stratch with desktop” is uiteraard een grotere versie met GUI.
Naast Raspbian zijn er nog vele andere besturingssystemen welke speciaal ontworpen zijn om te draaien op een Raspberry Pi. Een kleine greep:
- Debian Wheezy
- Fedora
- Kali Linux
- Android 4.0/5.0
- Risc OS
Maar niet alleen Linux distibuties werken op de Raspberry. Er is ook een speciale Windows 10 IOT Core versie. Ook zijn er vele distributies speciaal geschreven om de Raspberry Pi om te toveren in een dedicated device. Zo kun je een RetroPie image downloaden welke de Raspberry Pi omtovert tot een spelconsole van weleer. Diverse emulators zijn aanwezig en de gehele look-and-feel is omgetoverd tot een echte game look. RetroPie combineert diverse projecten zoals Raspbian, EmulationStation, RetroArch om de gebruiker de beste ervaring te geven. En zo zijn er nog veel meer dedicated distributies zoals:
- Domoticz (OS voor domotica)
- MotionEyeOS (voor beveiligingscamera’s)
- Pi Musicbox (voor muziek / jukebox)
- OSMC (Open Source Media Center gebaseerd op KODI)
- LibreELEC (KODI Media Player)
Wanneer je een besturingssysteem voor de Raspberry Pi hebt uitgezocht kun je deze gemakkelijk op een SD kaart installeren door de SD kaart in een computer te doen, de ISO van het gekozen OS te downloaden en deze ISO op de SD kaart te installeren. Voor Windows computers zijn er verschillende applicaties beschikbaar om dit te doen zoals bijvoorbeeld Etcher.

Voor Linux kun je het volgende commando gebruiken:
dd bs=4M if=pad-naar-je-ISO.img of=pad-naar-je-SD-kaart status=progress conv=fsync Bijvoorbeeld: dd bs=4M if=/Downloads/raspbian.img of=/dev/sdx status=progress conv=fsync |
Maar, als je werkelijk gemakkelijk een OS wilt installeren dan download je de image voor Noobs van de Raspberry Pi website. Je hebt de keuze tussen 2 versies van Noobs, namelijk de normale “Noobs” distributie en de “Noobs Lite” distributie.

Noobs is geen besturingssysteem maar een hulpmiddel om een besturingssysteem te installeren. Noobs geeft je een overzicht van een breed selectie mogelijke besturingssystemen. Deze kun je aanvinken en met een druk op de knop installeren. Het aanvingen van meerdere besturingssystemen zal de SD kaart dual boot maken. Noobs heeft standaard de Raspbian distributie volledig aan boord. Als je (ook) andere distributies aanvinkt worden deze gedownload en vervolgens geïnstalleerd. De Noobs Lite variant heeft Raspbian niet als offline installatie in de package zitten. Elk aangevinkt besturingssysteem bij Noobs Lite incl. Raspbian moet worden gedownload.

Raspberry Pi Boards
De Raspberry Pi is klein en krachtig maar ook enorm universeel. De Raspberry Pi kan namelijk uitgerust worden met diverse extra boards. Deze boards noemen we ook wel HAT (Hardware Attached on Top).
Denk bijvoorbeeld aan boards die ervoor zorgen dat er HiFi geluid door de Raspberry Pi geproduceerd kan worden (b.v. RaspyPlay) of een reley board waardoor hogere spanningen door de Pi geschakeld kunnen worden. Het GertBoard is een speciaal board waardoor de mogelijkheid om via je Raspberry Pi motoren en relais te besturen of om analoge spanningen te meten.
Echter zijn boards niet de enige componenten die aangestuurd kunnen worden door de Raspberry Pi. Je kunt ook andere functionele toepassingen aansturen zoals een display of een camera.
Zo zijn er veel soorten uitbreidingen beschikbaar waardoor de Raspberry Pi krachtiger en nog breder inzetbaar wordt. De meeste HAT boards kosten tussen de 20 en 40 euro.

Raspberry Pi GPIO
De meeste boards maken gebruik van de GPIO pinnen aan de bovenzijde van de Raspberry Pi. De Raspberry Pi 3B heeft een 40-tal GPIO pinnen. GPIO staat voor “General Purpose Input/Output”. Deze pinnen geven dus de mogelijkheid om direct met de hardware van de Raspberry Pi te communiceren.

Deze pinnen kunnen naar eigen inzicht geprogrammeerd worden. Zo kan bepaalde input worden verkregen via schakelaars, sensoren, signalen etc. De output kan op zijn beurt ook van alles doen. Denk bijvoorbeeld aan het inschakelen van een LED, het verzenden van gegevens en het aansturen van andere apparaten.
Elke GPIO pin heeft een functie. Dit zijn de functies van de 40 GPIO pinnen op de Raspberry Pi 3B.


Laten we de verschillende functies even doornemen.
5V DC Output
Er zijn 2 pinnen die een DC Output leveren van 5V.
3.3V DC Output
Er is 1 pin welke een DC Output levert van 3.3V.
I2C Interface
De i2C interface is een door Philips gepatenteerde databus. Soms spreekt men ook wel over TWI. De I2C interface werkt op basis van 2 sporen / lijnen, namelijk de SDA (Serial Data) en SLC (Serial Clock). Over de SDA lijn wordt de data verzonden en over de SLC lijn wordt het kloksignaal verzonden.

Aan de I2C bus kunnen allerhande apparaten gekoppeld worden zoals sensoren, gyroscopen, luminometers en nog veel meer. Er kunnen meerdere apparaten gekoppeld worden aan de I2C interface. De I2C interface is wel beperkt in zijn maximale snelheid.
Normale Pin
De overige GPIO pinnen kunnen volledig naar eigen inzicht geprogrammeerd worden. De status van een pin is aan (1) of uit (0). Een uitzondering hierop is de PWM pin.
UART Interface TX/RX
Deze UART interface is de klassieke seriële lijn. Deze UART interface bestaat uit een write-bus (TX) en een read-bus (RX). Middels de UART interaface kan dus full-duplex serieel gecommuniceerd worden. Sommige Raspberry Pi distributies zoals Raspbian reserveren deze interface als console interface. Je zou dus met de juiste aansluiting en de juiste software over de UART interface kunnen communiceren met je Raspberry Pi via een console. Deze UART interface heeft geen kloklijn.
Ground Pin
De Raspberry Pi beschikt over verschillende ground pinnen ofwel 0-pinnen. Om een stroomkring te creëren heb je een + en een – pool. Zie de ground pinnen als – polen.
SPI Interface
SPI is net zoals I2C een bus interface voor het verwerken van signalen maar dan wel als een synchrone datalink tussen 2 apparaten. Tussen deze apparaten wordt er 1 master en 1 slave geselecteerd. Er kunnen ook meerdere slaves aanwezig zijn als deze allen een eigen bus hebben. SPI heeft echter meerdere kanalen waardoor deze sneller is dan I2C, er wordt namelijk altijd in full-duplex mode gewerkt. De volgende SPI onderdelen zijn aanwezig:
- MOSI – Pin 19
Master Output Slave Input. Op deze lijn wordt data verzonden vanuit de master naar de slave. - MISO – Pin 21
Master Input Slave Output. Op deze lijn wordt data verzonden vanuit de slave naar de master. - SCLK – Pin 23
Dit is de seriële clock interface. - CE0 – Pin 24
Dit is de SS (Slave Select) lijn voor slave nummer 1. - CE1 – Pin 25
Dit is de SS (Slave Select) lijn voor slave nummer 2
Voor SPI communicatie zijn altijd 4 lijnen nodig (MOSI / MISO / SCLK en SS (slave select). We spreken hier van een four-wire serial bus.

ID Interface
Pin 27 is de ID SD pin en pin 28 is de ID SC pin. Deze pinnen zijn gereserveerd voor ID EEPROM. Gebruik deze pinnen NIET voor iets anders dan het bijvoegen van een I2C ID EEPROM.
PWM pin
Op de Raspberry Pi is 2 PWM kanalen aanwezig. Via de GPIO header is echter alleen toegang tot 1 PWM kanaal (channel 0) op pin 18. Er zijn wel additionele boards te krijgen om het aantal PWM pinnen te verhogen zoals het Adafruit 16-channel 12-bit PWM/Servo Driver-I2C board. PWM staat voor Pulse Width Modulation en is in het Nederlands hetzelfde als PBM (Pulsbreedtemodulatie). Dit is een modulatietechniek voor digitale informatieoverdracht. Een normale GPIO pin kan aan (1) of uit (0) geschakeld staan en levert hiermee respectievelijk 0 of 3.3/5V. PWM laat het toe om ook waardes tussen 0 en 3.3/5V te schakelen. Vergelijk het als een licht dimmer ten opzicht van een normale lichtschakelaar. Met de dimmer (PWM) kun je het licht niet alleen aan of uit zetten maar kun je ook alle waardes die ertussen zitten gebruiken. Zo kan de PWM pin dus gebruikt worden voor het dimmen van LEDjes maar ook voor legio andere doeleinden.
Let erop dat wanneer je PWM wilt gebruiken je ervoor moet zorgen dat de Raspberry op dat moment geen geluid afspeelt en dat het geluid niet staat geschakeld naar de 3.5 jack output. Als dat het geval is dan worden er ook audiosignalen uitgestuurd via de PWM pin (PWM channel 0 en 1 worden gebruikt) en deze storen vervolgens op je code. Wil je geluid en PWM gebruiken overweeg dan een USB-based audio kaart of een HDMI naar VGA convertor met 3.5 jack audio out. Het routeren van het geluid van de 3.5 jack naar HDMI doe je in het Raspberry Pi configuratiescherm (raspi-config) of via het commando:
amixer cset numid=3 2 |

PCM Pinnen
PCM staat voor Pulse Code Modulation. PCM is een digitale representatie van gesampeld analoog geluid. De PCM aansluiting is dus een digitale output (van omgezet analoog geluid). Er zijn hiervoor 4 verschillende pinnen, namelijk de CLK (clock), DIN (Digital IN), DOUT (Digital Out) en de FS (Sampling Frequency / Sampling Rate). Deze pinnen zijn te vinden op positie 12, 35, 38 en 40.

Aansluiten Raspberry Pi
Hieronder zien we een overzicht van de hardware in de Raspberry Pi. We zien de GPIO pinnen, de microcontroller, diverse chipsets en aansluitingen.

Het aansluiten van de Raspberry Pi is gemakkelijk. Het enige dat er nodig is om de Raspberry Pi te laten werken is een MicroSD kaart met een werkend OS een goede voeding (5V – 800mA). De Raspberry Pi kan op 3 manieren worden aangesloten, namelijk met een voedingskabel (op netstroom), via een ander USB apparaat of via de GPIO pinnen (5V op pin 2 en ground op pin 6). Je kunt deze methodes zelfs combineren voor nog meer power.
Als de Raspberry Pi voorzien is van stroom en een werkend OS dan kan VNC, SSH of andere dienst gebruikt worden om de Raspberry Pi te beheren. In eerste instantie (als initiële configuratie) is het wel noodzakelijk om een beeldscherm (HDMI), toetsenbord en muis aan te sluiten.
Raspberry Pi Onmisbaar in Hacker Toolkit
Zoals je zult begrijpen is de Raspberry Pi door zijn krachtige en veelzijdige prestaties, geringe formaat en universaliteit middels de GPIO pinnen en add-on boards een ideaal apparaat om paraat te hebben in je hacker toolkit.
Je kunt de Raspberry Pi voorzien van allerhande OS systemen zoals de ARM versie van Kali Linux en door zijn geringe formaat is de Pi overal te “verstoppen”. De Raspberry Pi is dus meer dan alleen een programmeerbare microprocessor. Werk met de programmeertalen en tools die jij fijn vindt om te gebruiken. De Raspberry Pi is al voorzien van WiFi en Bluetooth en zoals je weet zijn alle functies verder uit te breiden.
Wil je WiFi hacken, bluetooth monitoren, spoofen, netwerkverkeer dumpen of een andere “security related” taak uitvoeren dan geeft de Raspberry Pi je daar alle tools voor.
Leuk weetje: de Raspberry Pi komt geregeld voor in de TV show: Mr. Robot. Deze TV show gaat over een jonge hacker met briljante skills. Het leuke is dat de uitgevoerde hacks ook echte hacks zijn die jij en ik uit kunnen voeren.