From 32e216763e99fd580c01013c21399ed9cfcdf001 Mon Sep 17 00:00:00 2001 From: Sebastian Kinne Date: Tue, 7 Mar 2017 15:36:17 +1100 Subject: [PATCH] Making the Bash Bunny Wiki public --- CNAME | 1 + LICENSE | 1 + README.md | 1 + config.json | 6 + images/bb_diagram1.png | Bin 0 -> 23243 bytes images/bb_diagram2.png | Bin 0 -> 4036 bytes images/putty.png | Bin 0 -> 23360 bytes index.html | 212 ++++++++++++++++++++++++++++ index.md | 303 +++++++++++++++++++++++++++++++++++++++++ navigation.md | 9 ++ 10 files changed, 533 insertions(+) create mode 100644 CNAME create mode 100644 LICENSE create mode 100644 README.md create mode 100644 config.json create mode 100644 images/bb_diagram1.png create mode 100644 images/bb_diagram2.png create mode 100644 images/putty.png create mode 100644 index.html create mode 100644 index.md create mode 100644 navigation.md diff --git a/CNAME b/CNAME new file mode 100644 index 0000000..7326a2b --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +wiki.bashbunny.com \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..43d793e --- /dev/null +++ b/LICENSE @@ -0,0 +1 @@ +Content is available under Creative Commons Attribution Non-Commercial Share Alike unless otherwise noted. diff --git a/README.md b/README.md new file mode 100644 index 0000000..e9be024 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# Bash-Bunny-Wiki \ No newline at end of file diff --git a/config.json b/config.json new file mode 100644 index 0000000..b658836 --- /dev/null +++ b/config.json @@ -0,0 +1,6 @@ +{ + "useSideMenu": true, + "lineBreaks": "gfm", + "additionalFooterText": "All content and images © Hak5 LLC
", + "anchorCharacter": "#" +} diff --git a/images/bb_diagram1.png b/images/bb_diagram1.png new file mode 100644 index 0000000000000000000000000000000000000000..f5d844076ae65f72f2d54f5e9b4e89d8efe808c6 GIT binary patch literal 23243 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 E8!M!FW&i*H literal 0 HcmV?d00001 diff --git a/images/bb_diagram2.png b/images/bb_diagram2.png new file mode 100644 index 0000000000000000000000000000000000000000..acd0277d7b4f40f5a89ba6ea0be09559eb0b5cb2 GIT binary patch literal 4036 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�<&S=!I;H(vcep<&F%sk!Wd^aO`1(yV9`@t0fl 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 MLE8g4`_A3?FMm8UivR!s literal 0 HcmV?d00001 diff --git a/index.html b/index.html new file mode 100644 index 0000000..49f7801 --- /dev/null +++ b/index.html @@ -0,0 +1,212 @@ + + + + + Bash Bunny by Hak5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + diff --git a/index.md b/index.md new file mode 100644 index 0000000..3a3eefe --- /dev/null +++ b/index.md @@ -0,0 +1,303 @@ +# Bash Bunny Essentials + +The Bash Bunny by Hak5 is the world’s most advanced USB attack platform. It delivers penetration testing attacks and IT automation tasks in seconds by emulating combinations of trusted USB devices – like gigabit Ethernet, serial, flash storage and keyboards. With it, computers are tricked into divulging data, exfiltrating documents, installing backdoors and many more exploits. + +## Switch Positions + +In Switch Position 3 (closest to the USB plug) the Bash Bunny will boot into _arming mode_, enabling both Serial and Mass Stoage. From this dedicated mode, Bash Bunny payloads may be managed via Mass Storage and the Linux shell can be accessed by the Serial console. + +![Bash Bunny Switch Diagram](images/bb_diagram1.png) + +## Mass Storage Directory Structure + +![Bash Bunny Directory Diagram](images/bb_diagram2.png) + +* The _library_ folder is home to the payloads library which can be downloaded from the [Bash Bunny Payload git repository](https://github.com/hak5/bashbunny-payloads "Bash Bunny Payload git repository") +* The _switch1_ and _switch2_ folders are home to payload.txt and accompanying files which will be executed on boot when the bash bunny switch is in the corresponding position. +* The _loot_ folder is used by many payloads to save logs and other captured information. + +## Default Settings + +* Username: root +* Password: hak5bunny +* IP Address: 172.16.64.1 +* DHCP Range: 172.16.64.10-12 + +### LED Status + +| LED | Status | +| ---------------- | ------------------------------------- | +| Green (blinking) | Booting up | +| Blue (blinking) | Arming Mode | +| Red (blinking) | Recovery Mode **DO NOT UNPLUG** | + + +--- + +# Bash Bunny Payloads + +Bash Bunny payloads can be written in any standard text editor, such as notepad, vi or nano. + +Payloads must be named payload.txt. When the Bash Bunny boots with its switch in position 1 or 2, the payload.txt file from the corresponding switch folder is executed. + +Payloads can be swapped by copy/paste when the Bash Bunny is in its arming mode (switch position 3 - closest to the USB plug) via Mass Storage. + +## Bunny Script + +Bunny Script is a language consisting of a number of simple commands specific to the Bash Bunny hardware, some bunny helper functions and the full power of the Bash Unix shell and command language. Theses payloads, named payload.txt, execute on boot by the Bash Bunny. + +The _Bunny Helpers_ can be sourced which extend the bunny scripting language with user contributed functions and variables which enhance and simplify payloads. All Bunny Script commands are written in ALL CAPS. The base Bunny Script commands are: + +| COMMAND | Description | +| ---------- | ----------------------------------------------------------------- | +| ATTACKMODE | Specifies the USB device or combination of devices to emulate. | +| LED | Control the RGB LED. Accepts color and optional blink time in ms. | +| QUACK | Injects keystrokes (ducky script) or specified ducky script file. | +| Q | Alias for QUACK | +| VID | Specifies the USB Vendor ID (in hex) to spoof | +| PID | Specifies the USB Product ID (in hex) to spoof | + +### Bunny Helpers + +The bunny_helpers.sh file from the mass storage payloads/library folder contains a number of functions and variables which may be sourced from any Bash Bunny payload. Over time these functions will grow to enhance the platform with standardizations and simplifications of frequently used tasks. The 1.0 version from Bash Bunny launch, March 1, 2017 include the following variables: + +| VARIABLE | Description | +| $TARGET_IP | IP Address of the victim computer as obtained by the Bash Bunny DHCP server (typically 172.16.64.10) | +| $TARGET_HOSTNAME | Host name of the victim computer | +| $HOST_IP | IP Address of the Bash Bunny (default: 172.16.64.1) | + +These variables and functions may be used in any Bash Bunny script (payload.txt) using the following command: +~~~~ +source bunny_helpers.sh +~~~~ + +Developers are encouraged to add to the helpers file in order to extend Bash Bunny functionality. + +### ATTACKMODE + +ATTACKMODE is a bunny script command which specifies which devices to emulate. The ATTACKMODE command may be issued multiple times within a given payload. For example, a payload may begin by emulating Ethernet, then switch to emulating a keyboard and serial later based on a number of conditions. + +| ATTACKMODE | Type | Description | +| ------------------ | -------------------------------------- | ---------------------------------------------------------- | +| SERIAL | ACM - Abstract Control Model | Serial Console | +| ECM_ETHERNET | ECM - Ethernet Control Model | Linux/Mac/Android Ethernet Adapter | +| RNDIS_ETHERNET | RNDIS - Remote Network Drv Int Spec | Windows (and some Linux) Ethernet Adapter | +| STORAGE | UMS - USB Mass Storage | Flash Drive | +| HID | HID - Human Interface Device | Keyboard - Keystroke Injection via Ducky Script | + +Many combinations of attack modes are possible, however some are not. For exmaple, ATTACKMODE HID STORAGE ECM_ETHERNET is valid while ATTACKMODE RNDIS_ETHERNET ECM_ETHERNET STORAGE SERIAL is not. Each attack mode combination registers using a different USB VID/PID (Vendor ID/Product ID) by default. VID and PID can be spoofed using the VID and PID commands. + +| ATTACKMODE COMBINATION | VID / PID | +| ----------------------------- | ------------- | +| SERIAL STORAGE | 0xF000/0xFFF0 | +| HID | 0xF000/0xFF01 | +| STORAGE | 0xF000/0xFF10 | +| SERIAL | 0xF000/0xFF11 | +| RNDIS_ETHERNET | 0xF000/0xFF12 | +| ECM_ETHERNET | 0xF000/0xFF13 | +| HID SERIAL | 0xF000/0xFF14 | +| HID STORAGE | 0xF000/0xFF02 | +| HID RNDIS_ETHERNET | 0xF000/0xFF03 | +| HID ECM_ETHERNET | 0xF000/0xFF04 | +| HID STORAGE RNDIS_ETHERNET | 0xF000/0xFF05 | +| HID STORAGE ECM_ETHERNET | 0xF000/0xFF06 | +| SERIAL RNDIS_ETHERNET | 0xF000/0xFF07 | +| SERIAL ECM_ETHERNET | 0xF000/0xFF08 | +| STORAGE RNDIS_ETHERNET | 0xF000/0xFF20 | +| STORAGE ECM_ETHERNET | 0xF000/0xFF21 | + +### LED + +The multi-color RGB LED status indicator on the Bash Bunny may be set using the LED command. It accepts combinations of R (red), G (green) and B (blue) and optionally a blink time (in ms). + +**Examples**: + +``` +LED R 1000 +``` +Set the LED to blink red at 1 second interval + +``` +LED R B 0 +``` +Set the LED to solid purple (red + blue) + +``` +LED +``` +Turn off the LED + + +### QUACK + +The Bash Bunny is compatible with Ducky Script text files from its sister Hak5 project, the USB Rubber Ducky. These text files do not need to be encoded into inject.bin files first. Keystrokes can be injected from ducky script text files or inline using the QUACK command. The ATTACKMODE must contain HID for keystroke injection. + +See the [Ducky Script - USB Rubber Ducky Wiki](http://usbrubberducky.com/#!duckyscript.md "Ducky Script - USB Rubber Ducky Wiki") for the complete scripting language. + +**Examples**: + +``` +QUACK switch1/helloworld.txt +``` +Injects keystrokes from the specified ducky script text file. + +``` +QUACK STRING Hello World +``` +Injects the keystrokes "Hello World" + +``` +Q ALT F4 +``` +Injects the keystroke combination of ALT and F4 + +### VID and PID + +USB devices identify themselves by combinations of vendor ID and product ID. These 16-bit IDs are specified in hex and are used by the victim PC to find drivers (if necessary) for the specified device. With the Bash Bunny, the VID and PID may be spoofed using the VID and PID parameters for ATTACKMODE. + +**Example**: +~~~~ +ATTACKMODE HID STORAGE VID 0XF000 PID 0X1234 +~~~~ + +## Payload Best Practices + +* Payloads should begin with comments specifing the name of the payloads, a description, the author, any special requirements/dependencies and the LED status. +~~~~ +# Title: Quick Creds +# Author: Hak5Darren -- Cred: Mubix +# Version: 1.0 +# +# Runs responder against target with specified options +# Saves sequential logs to mass storage loot folder +# +# Requires responder in /pentest/responder - run tools_installer payload first +# +# White Blinking.....Dependencies not met. Responder not installed in /pentest +# Red ...............Setup +# Red Blinking.......Setup Failed. Target did not obtain IP address. Exit. +# Amber Blinking.....Scanning +# Green..............Finished +~~~~ +* Configurable options should be specified in variables at the top of the payload.txt file +~~~~ +# Options +RESPONDER_OPTIONS="-w -r -d -P" +LOOTDIR=/root/udisk/loot/quickcreds +~~~~ +* At various phases of the payload, the LED should be set to different colors/blink combinations. +* A beginning LED color should be specified _before_ initializing the first ATTACKMODE. +* This first color should not be green as a green blink is used at boot. +* If the payload is to write files to the loot folder on the USB mass storage partition, ending the payload with a quick file sync and green LED is optimal. +~~~~ +sync +LED G +~~~~ +* As with any program, commenting code sections helps others better understand and enhance the payload. + +## Submitting Payloads + +Payloads may be submitted to the [Bash Bunny Payload git repository](https://github.com/hak5/bashbunny-payloads "Bash Bunny Payload git repository") + +--- + +# Bash Bunny Serial Console + +The Bash Bunny features a dedicated serial console from its _arming mode_. From serial, its Linux shell may be accessed. + +## Serial Settings + +* 115200/8N1 +* Baud: 115200 +* Data Bits: 8 +* Parity Bit: No +* Stop Bit: 1 + +## Connecting to to the Bash Bunny Serial Console from Windows +Find the COM# from Device Manager > Ports (COM & LPT) and look for USB Serial Device (COM#). Example: COM3 +Alternatively, run the following powershell command to list ports: +``` +[System.IO.Ports.SerialPort]::getportnames() +``` + +![Putty](images/putty.png) + +Open PuTTY and select Serial. Enter COM# for serial line and 115200 for Speed. Click Open. + +[Download PuTTY](http://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html "Download PuTTY") + + +## Connecting to the Linux Bash Bunny Console from Linux/Mac +1. Find the Bash Bunny device from the terminal +``` +ls /dev/tty*" or "dmesg | grep tty +``` +> Usually on a Linux host, the Bash Bunny will register as either /dev/ttyUSB0 or /dev/ttyACM0 + +2. Next, connect to the serial device using screen, minicom or your terminal emulator of choice. +> If screen is not installed it can usually be found from your distributions package manager. +``` +sudo apt-get install screen +``` +**Connecting with screen** +``` +sudo screen /dev/ttyACM0 115200 +``` +> Disconnect with keyboard combo: CTRL+a followed by CTRL+\ + + + +--- + +# Getting the Bash Bunny Online + +Getting the Bash Bunny online can be convenient for a number of reasons, such as installing software with apt or git. Similar to the WiFi Pineapple, the host computers Internet connection can be shared with the Bash Bunny. Begin by setting the Bash Bunny to Ethernet mode. For Windows hosts, you'll want to boot the bash bunny with a payload.txt containing ATTACKMODE RNDIS_ETHERNET On a Linux host you'll most likely want ATTACKMODE ECM_ETHERNET. With the Bash Bunny booted and registering on your host computer as an Ethernet device, you can now share its Internet connection. + +## Sharing an Internet Connection with the Bash Bunny from Windows +1. Configure a payload.txt for ATTACKMODE RNDIS_ETHERNET +2. Boot Bash Bunny from RNDIS_ETHERNET configured payload on the host Windows PC +3. Open Control Panel > Network Connections (Start > Run > "ncpa.cpl" > Enter) +4. Identify Bash Bunny interface. Device name: "USB Ethernet/RNDIS Gadget" +5. Right-click Internet interface (e.g. Wi-Fi) and click Properties. +6. From the Sharing tab, check "Allow other network users to connect through this computer's Internet connection", select the Bash Bunny from the Home networking connection list (e.g. Ethernet 2) and click OK. +7. Right-click Bash Bunny interface (e.g. Ethenet 2) and click Properties. +8. Select TCP/IPv4 and click Properties. +9. Set the IP address to 172.16.64.64. Leave Subnet mask as 255.255.255.0 and click OK on both properties windows. Internet Connection Sharing is complete + +## Sharing an Internet Connection with the Bash Bunny from Linux + +1. Download the Internet Connection Sharing script from bashbunny.com/bb.sh +2. Run the bb.sh connection script with bash as root +3. Follow the [M]anual or [G]uided setup to configure iptables and routing +4. Save settings for future sessions and [C]onnect + +~~~~ +wget bashbunny.com/bb.sh +sudo bash ./bb.sh +~~~~ + +--- + +# Technical Details + +## Disk Partitions + +| PARTITION | Description | +| ---------- | ----------------------------------------------- | +| /dev/root | Main Linux file system | +| /dev/nandg | Recovery file system (**do not modify**) | +| /dev/nandf | Mass storage partition (mounted at /root/udisk) | + +## Firmware Recovery +If the Bash Bunny fails to boot more than 3 times, it will automatically enter recovery mode. The LED will blink red while the file system is replaced by the backup partition. **DO NOT UNPLUG THE BASH BUNNY DURING RECOVERY** + +This process takes about 3 minutes. When complete, the Bash Bunny will reboot as indicated by the blinking green LED. + +## Specifications +* Quad-core ARM Cortex A7 +* 32 K L1/512 K L2 Cache +* 512 MB DDR3 Memory +* 8 GB SLC NAND Disk + +### Power Requirements +* USB 5V ~1.5A diff --git a/navigation.md b/navigation.md new file mode 100644 index 0000000..d39b7b9 --- /dev/null +++ b/navigation.md @@ -0,0 +1,9 @@ +# Hak5 Bash Bunny Wiki + +[Home](index.md) + +[Purchase](http://www.hakshop.com/bashbunny) + +[Forums](https://forums.hak5.org/index.php?/forum/92-bash-bunny/) + +[Payloads](https://github.com/hak5/bashbunny-payloads)