BJORN : Network Scanning Tool on Raspberry Pi

1. Project Overview

cover

This project involves building BJORN, a network scanning and offensive security tool, on a Raspberry Pi Zero 2 W with a Waveshare 2.13-inch e-Paper HAT. BJORN autonomously scans networks to identify open ports, exposed services, and vulnerabilities, supporting features like brute force attacks and custom scripts in a portable, Tamagotchi-like device.

2. Resources and References

The following resources were essential for setting up BJORN:

Additional Notes: The YouTube video offered practical setup visuals, while the GitHub README provided detailed command-line instructions, making them complementary resources.

3. Steps Taken

The step-by-step process to build and deploy BJORN is outlined below:

  1. Step 1: Hardware Assembly
    Description: Connected the Waveshare 2.13-inch e-Paper HAT to the Raspberry Pi Zero 2 W using GPIO pins.
    Challenges: Ensured correct pin alignment and avoided pushing pins too far into the e-Paper HAT to prevent damage.
    Raspberry Pi Zero 2 W with e-Paper HAT assembled
  2. Step 2: OS Installation
    Description: Flashed Raspberry Pi OS Lite (32-bit, Debian Bookworm) onto a Class 10 MicroSD card using Raspberry Pi Imager. Configured settings in Imager: set hostname to "bjorn," defined username and password, and added Wi-Fi credentials (SSID and password) for automatic LAN connectivity.
    Challenges: Verified OS compatibility and ensured Wi-Fi settings were correctly applied to enable SSH access in the next step.
    Flashing Raspberry Pi OS onto MicroSD card Configuring image settings
  3. Step 3: BJORN Software Installation
    Description: Identified the Pi’s IP address on the Wi-Fi network, then used SSH (with the username and password set in Step 2) to connect. Executed commands to download and run the automated installation script (install_bjorn.sh) from the GitHub repository, which installed dependencies and BJORN software.
    Challenges: Confirmed stable network connectivity before running the script to avoid interruptions.
    Terminal output during BJORN installation
  4. Step 4: Configuration and Testing
    Description: Configured the e-Paper display by selecting screen version 3 in shared_config.json during installation. Ran the full installation, rebooted, and validated setup by accessing the web UI at [Pi’s IP]:8000 in a browser on the same Wi-Fi network. Tested BJORN’s network scanning on a local network.
    Challenges: Adjusted SPI settings to stabilize the e-Paper display output.
    BJORN web UI showing scan results

5. Tips and Lessons Learned

Practical advice and insights gained from the project:

6. Conclusion

BJORN was successfully set up and tested, autonomously scanning a local network and displaying results on the e-Paper HAT and web interface. This project enhanced my understanding of Raspberry Pi-based pentesting tools and network security. Future plans include exploring custom attack scripts to expand BJORN’s functionality.

7. Additional Notes