From 00a365a7061ff5dc544307ef31d70c2f1ea797c7 Mon Sep 17 00:00:00 2001 From: Mathew Fleisch Date: Wed, 15 Mar 2017 22:19:43 -0700 Subject: [PATCH 1/5] Fixed a bug and updated the read-me doc. --- payloads/library/GitBunnyGit/README.md | 3 +-- payloads/library/GitBunnyGit/payload.txt | 8 ++++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/payloads/library/GitBunnyGit/README.md b/payloads/library/GitBunnyGit/README.md index 26f2e31c..7349a063 100644 --- a/payloads/library/GitBunnyGit/README.md +++ b/payloads/library/GitBunnyGit/README.md @@ -5,7 +5,7 @@ Version: 1.0 ## Description -Clones the bashbunny-payloads repository and also will update an existing repository. +Clones the bashbunny-payloads repository and also will update an existing repository. Use this payload to get all the other payloads! ## Configuration @@ -26,7 +26,6 @@ Target must be sharing internet. | ---------------- | ------------------------------------- | | White | Ready (to share internet connection) | | Red | Failed (no internet) | -| Red (blinking) | Failed (could not mount filesystem) | | Amber | Running | | Purple | Cleaning Up | | Green (blinking) | Finished (git pull) | diff --git a/payloads/library/GitBunnyGit/payload.txt b/payloads/library/GitBunnyGit/payload.txt index 5150f8e6..d6e97773 100644 --- a/payloads/library/GitBunnyGit/payload.txt +++ b/payloads/library/GitBunnyGit/payload.txt @@ -18,15 +18,15 @@ LED R G B ATTACKMODE RNDIS_ETHERNET #ATTACKMODE ECM_ETHERNET -source bunny_helpers.sh - # Set your desired repo url and branch if you're not looking to update from mainline git_repo="https://github.com/hak5/bashbunny-payloads.git" git_branch="master" payloads_dir="/root/udisk" -log_file="/root/udisk/payloads/$SWITCH_POSITION/git.log" +log_file="/root/udisk/git.log" -echo "Git Bunny Git" > $log_file +echo "Git Bunny Git" >> $log_file + +[[ ! -d "$payloads_dir/payloads" ]] && { LED R; echo "Could not mount filesystem" >> $log_file; exit 1; } # Test for internet connection wget -q --tries=15 --timeout=5 --spider http://example.com From a1fcf6d584416afeda53c40ba47f5fb34810df57 Mon Sep 17 00:00:00 2001 From: Mathew Fleisch Date: Thu, 16 Mar 2017 10:29:11 -0700 Subject: [PATCH 2/5] Added better logging for debugging and updated read-me --- payloads/library/GitBunnyGit/README.md | 3 ++- payloads/library/GitBunnyGit/payload.txt | 22 ++++++++++++++++------ 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/payloads/library/GitBunnyGit/README.md b/payloads/library/GitBunnyGit/README.md index 7349a063..77d3a3b1 100644 --- a/payloads/library/GitBunnyGit/README.md +++ b/payloads/library/GitBunnyGit/README.md @@ -13,7 +13,7 @@ Configured for nix by default. Swap RNDIS_ETHERNET with ECM_ETHERNET on Windows ## Requirements -Target must be sharing internet. +Target must be sharing internet and have git installed. 1. Run bb.sh (pause at main menu) 2. Plug in da bunny @@ -26,6 +26,7 @@ Target must be sharing internet. | ---------------- | ------------------------------------- | | White | Ready (to share internet connection) | | Red | Failed (no internet) | +| Red (blinking) | Failed (could not mount filesystem) | | Amber | Running | | Purple | Cleaning Up | | Green (blinking) | Finished (git pull) | diff --git a/payloads/library/GitBunnyGit/payload.txt b/payloads/library/GitBunnyGit/payload.txt index d6e97773..a5ef1dac 100644 --- a/payloads/library/GitBunnyGit/payload.txt +++ b/payloads/library/GitBunnyGit/payload.txt @@ -24,13 +24,13 @@ git_branch="master" payloads_dir="/root/udisk" log_file="/root/udisk/git.log" -echo "Git Bunny Git" >> $log_file +echo " --------- Git Bunny Git [started] -----------" >> $log_file -[[ ! -d "$payloads_dir/payloads" ]] && { LED R; echo "Could not mount filesystem" >> $log_file; exit 1; } +[[ ! -d "$payloads_dir/payloads" ]] && { LED R 200; echo "Could not mount filesystem" >> $log_file; exit 1; } # Test for internet connection wget -q --tries=15 --timeout=5 --spider http://example.com -[[ "$?" -ne 0 ]] && { LED R; exit 1; } +[[ "$?" -ne 0 ]] && { LED R; echo "Could not connect to the internet" >> $log_file; exit 1; } # Let's go LED R G @@ -41,27 +41,36 @@ export GIT_SSL_NO_VERIFY=1 if [ -d ".git" ]; then # Get the newest payloads git pull origin $git_branch &>> $log_file + echo "Git repository updated." >> $log_file LED G 200 - exit 1 else # Move the existing payloads directory, in case hackers be hackin' mv payloads payloads-orig + echo "Existing 'payloads' directory preserved as 'payloads-orig'" >> $log_file # Initialize Repository git init &>> $log_file # Let's pick the hak5 github repo git remote add origin $git_repo &>> $log_file + echo "Git repository selected: $git_repo" >> $log_file # Instead of cloning the whole repo, git config core.sparsecheckout true + echo "Git configuration change: sparse-checkout=true." >> $log_file # isolate the payloads directory echo "payloads" >> .git/info/sparse-checkout + echo "Sparse checkout: 'payloads' directory selected" >> $log_file # "git clone" git pull origin $git_branch &>> $log_file + echo "Git repository cloned." >> $log_file - # Ignore any existing directories or files, so git status is pretty + # Ignore any existing directories or files, so git status is pretty, and git pull will work after the "clone" LED R B for file in $(ls -A); do - [[ "${file}" =~ [^payloads$] ]] && echo "${file}" >> .gitignore + [[ "${file}" =~ [^payloads$] ]] && { echo "${file}" >> .gitignore; echo ".gitignore add: ${file}" >> $log_file; } done + echo "payloads/switch1" >> .gitignore + echo ".gitignore add: payloads/switch1" >> $log_file; + echo "payloads/switch2" >> .gitignore + echo ".gitignore add: payloads/switch2" >> $log_file; # Put the existing switch directories back cp -r payloads-orig/switch* payloads/. @@ -69,3 +78,4 @@ else # Git 'er done LED G fi +echo " --------- Git Bunny Git [finished] ----------" >> $log_file From c9f037ee9d8a689831d33c0db7e18f878b7f26ee Mon Sep 17 00:00:00 2001 From: Mathew Fleisch Date: Thu, 16 Mar 2017 11:12:24 -0700 Subject: [PATCH 3/5] Use wild card instead of explicit directory numbers --- payloads/library/GitBunnyGit/payload.txt | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/payloads/library/GitBunnyGit/payload.txt b/payloads/library/GitBunnyGit/payload.txt index a5ef1dac..29d2c06f 100644 --- a/payloads/library/GitBunnyGit/payload.txt +++ b/payloads/library/GitBunnyGit/payload.txt @@ -67,10 +67,8 @@ else for file in $(ls -A); do [[ "${file}" =~ [^payloads$] ]] && { echo "${file}" >> .gitignore; echo ".gitignore add: ${file}" >> $log_file; } done - echo "payloads/switch1" >> .gitignore - echo ".gitignore add: payloads/switch1" >> $log_file; - echo "payloads/switch2" >> .gitignore - echo ".gitignore add: payloads/switch2" >> $log_file; + echo "payloads/switch*" >> .gitignore + echo ".gitignore add: payloads/switch*" >> $log_file; # Put the existing switch directories back cp -r payloads-orig/switch* payloads/. From 9dab90d52a7bb664fff9c6fd2e4f9b6e575b06f5 Mon Sep 17 00:00:00 2001 From: Mathew Fleisch Date: Thu, 16 Mar 2017 11:45:19 -0700 Subject: [PATCH 4/5] Moved log file location and changed how the /dev/nandf mount is detected. --- payloads/library/GitBunnyGit/payload.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/payloads/library/GitBunnyGit/payload.txt b/payloads/library/GitBunnyGit/payload.txt index 29d2c06f..7e7a9706 100644 --- a/payloads/library/GitBunnyGit/payload.txt +++ b/payloads/library/GitBunnyGit/payload.txt @@ -22,11 +22,12 @@ ATTACKMODE RNDIS_ETHERNET git_repo="https://github.com/hak5/bashbunny-payloads.git" git_branch="master" payloads_dir="/root/udisk" -log_file="/root/udisk/git.log" +log_file="/var/log/git.log" echo " --------- Git Bunny Git [started] -----------" >> $log_file -[[ ! -d "$payloads_dir/payloads" ]] && { LED R 200; echo "Could not mount filesystem" >> $log_file; exit 1; } +# Sanity check on mounted drive +[[ ! `mount | grep "nandf"` ]] && { LED R 200; echo "Could not mount filesystem" >> $log_file; exit 1; } # Test for internet connection wget -q --tries=15 --timeout=5 --spider http://example.com From afd4e45e6c44196b911fee77b4e19f05466417df Mon Sep 17 00:00:00 2001 From: Mathew Fleisch Date: Thu, 16 Mar 2017 12:33:56 -0700 Subject: [PATCH 5/5] Updated read-me --- payloads/library/GitBunnyGit/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/payloads/library/GitBunnyGit/README.md b/payloads/library/GitBunnyGit/README.md index 77d3a3b1..6a1ee439 100644 --- a/payloads/library/GitBunnyGit/README.md +++ b/payloads/library/GitBunnyGit/README.md @@ -13,7 +13,7 @@ Configured for nix by default. Swap RNDIS_ETHERNET with ECM_ETHERNET on Windows ## Requirements -Target must be sharing internet and have git installed. +Target must be sharing internet. BashBunny must have git installed. 1. Run bb.sh (pause at main menu) 2. Plug in da bunny