diff --git a/payloads/library/BrowserBunny/inc/actions.php b/payloads/library/BrowserBunny/inc/actions.php
index 20fd951b..dc0a1609 100644
--- a/payloads/library/BrowserBunny/inc/actions.php
+++ b/payloads/library/BrowserBunny/inc/actions.php
@@ -43,6 +43,7 @@ if($_POST) {
case 'move_payload':
$payload = strip_tags($_POST['payload']);
+ $attack_modes = json_decode(strip_tags($_POST['attack_modes']));
$valid = $BrowserBunny->is_valid_payload($payload);
if($valid) {
//pwd is run where ever the BrowserBunny is called from, so remove all trailing chars, but the "webroot"
@@ -59,7 +60,20 @@ if($_POST) {
if(count($out)) {
echo json_encode(array('success'=>false,'payload'=>$payload,'debug'=>$cmd."\n".implode("\n", $out)));
} else {
- echo json_encode(array('success'=>true,'payload'=>$payload));
+
+ $path_to_file = $BrowserBunny->root.'/'.$target_dir.'/payload.txt';
+ $file_contents = file_get_contents($path_to_file);
+ foreach($attack_modes as $attack_mode=>$is_active) {
+ if($is_active) {
+ $file_contents = str_replace("#".$attack_mode,$attack_mode,$file_contents);
+ } else {
+ $file_contents = str_replace($attack_mode,"#".$attack_mode,$file_contents);
+ $file_contents = str_replace("##".$attack_mode,"#".$attack_mode,$file_contents);
+ }
+ }
+ file_put_contents($path_to_file,$file_contents);
+
+ echo json_encode(array('success'=>true,'payload'=>$payload,'attack_modes'=>$attack_modes));
}
}
} else {
diff --git a/payloads/library/BrowserBunny/inc/css/style.css b/payloads/library/BrowserBunny/inc/css/style.css
index 4943d650..0bd66281 100644
--- a/payloads/library/BrowserBunny/inc/css/style.css
+++ b/payloads/library/BrowserBunny/inc/css/style.css
@@ -40,6 +40,7 @@ pre {
float:left;
width: 25%;
}
+.is_active_true, .is_active_false { cursor: pointer; }
#readme-target {
float:left;
width:75%;
diff --git a/payloads/library/BrowserBunny/inc/js/quick_commands.js b/payloads/library/BrowserBunny/inc/js/quick_commands.js
new file mode 100644
index 00000000..96289b00
--- /dev/null
+++ b/payloads/library/BrowserBunny/inc/js/quick_commands.js
@@ -0,0 +1,57 @@
+var git_repo = 'https://github.com/hak5/bashbunny-payloads.git';
+var git_log = '/var/log/git.log';
+var bunny_root = ''+bunny_root+'';
+var quick_commands = [
+ {
+ name:"Clone git repository",
+ command:'if [ ! -d '+bunny_root+'/.git ]; then '
+ +'cd '+bunny_root+'; '
+ +'echo ""; '
+ +'pwd; '
+ +'mv '+bunny_root+'/payloads '+bunny_root+'/orig-payloads; '
+ +'echo "Clone Git Repo..."; '
+ +'git init; '
+ +'echo "payloads/switch*" >> .gitignore; '
+ +'git remote add origin '+git_repo+'; '
+ +'echo "Git repository selected: '+git_repo+';"; '
+ +'git config core.sparsecheckout true; '
+ +'echo "Git configuration change: sparse-checkout=true."; '
+ +'echo "payloads" >> '+bunny_root+'/.git/info/sparse-checkout; '
+ +'echo "Sparse checkout: payloads directory selected"; '
+ +'git pull origin master; '
+ +'echo "Git repository cloned."; '
+ +'cp -fr '+bunny_root+'/orig-payloads/switch* '+bunny_root+'/payloads/.; '
+ +'else '
+ +'echo "Repository already exists..."; '
+ +'fi',
+ },{
+ name:"Update git repository",
+ command:'if [ -d '+bunny_root+'/.git ]; '
+ +'then cd '+bunny_root+'/payloads/; '
+ +'echo ""; '
+ +'pwd; '
+ +'echo "Update Git Repo..."; '
+ +'git pull origin master; '
+ +'else '
+ +'echo "Repository does not exist..."; '
+ +'fi'
+ },{
+ name:"Tools Installer",
+ command:'if [ -d '+bunny_root+'/payloads/library/tools_installer ]; then '
+ +'if [ -d /pentest ]; then '
+ +'echo "/pentest already exists..."; '
+ +'else '
+ +'mkdir -r /pentest; '
+ +'cp -r '+bunny_root+'/payloads/library/tools_installer/tools_to_install/* /pentest/.; '
+ +'if [ -d /pentest/impacket ]; then '
+ +'cd /pentest/impacket; '
+ +'python ./setup.py install; '
+ +'else '
+ +'echo "Missing /pentest/impacket folder."; '
+ +'fi '
+ +'fi '
+ +'else '
+ +'echo "Cannot run tools installer: Missing git repository"; '
+ +'fi '
+ }
+];
\ No newline at end of file
diff --git a/payloads/library/BrowserBunny/inc/js/script.js b/payloads/library/BrowserBunny/inc/js/script.js
index 913c136b..b486afd3 100644
--- a/payloads/library/BrowserBunny/inc/js/script.js
+++ b/payloads/library/BrowserBunny/inc/js/script.js
@@ -1,62 +1,5 @@
$(document).ready(function() {
- var git_repo = 'https://github.com/hak5/bashbunny-payloads.git';
- var git_log = '/var/log/git.log';
- var quick_commands = [
- {
- name:"Clone git repository",
- command:'if [ ! -d /root/udisk/.git ]; then '
- +'cd /root/udisk; '
- +'echo ""; '
- +'pwd; '
- +'mv /root/udisk/payloads /root/udisk/orig-payloads; '
- +'echo "Clone Git Repo..."; '
- +'git init; '
- +'echo "payloads/switch*" >> .gitignore; '
- +'git remote add origin '+git_repo+'; '
- +'echo "Git repository selected: '+git_repo+';"; '
- +'git config core.sparsecheckout true; '
- +'echo "Git configuration change: sparse-checkout=true."; '
- +'echo "payloads" >> /root/udisk/.git/info/sparse-checkout; '
- +'echo "Sparse checkout: payloads directory selected"; '
- +'git pull origin master; '
- +'echo "Git repository cloned."; '
- +'cp -fr /root/udisk/orig-payloads/switch* /root/udisk/payloads/.; '
- +'else '
- +'echo "Repository already exists..."; '
- +'fi',
- },{
- name:"Update git repository",
- command:'if [ -d /root/udisk/.git ]; '
- +'then cd /root/udisk/payloads/; '
- +'echo ""; '
- +'pwd; '
- +'echo "Update Git Repo..."; '
- +'git pull origin master; '
- +'else '
- +'echo "Repository does not exist..."; '
- +'fi'
- },{
- name:"Tools Installer",
- command:'if [ -d /root/udisk/payloads/library/tools_installer ]; then '
- +'if [ -d /pentest ]; then '
- +'echo "/pentest already exists..."; '
- +'else '
- +'mkdir -r /pentest; '
- +'cp -r /root/udisk/payloads/library/tools_installer/tools_to_install/* /pentest/.; '
- +'if [ -d /pentest/impacket ]; then '
- +'cd /pentest/impacket; '
- +'python ./setup.py install; '
- +'else '
- +'echo "Missing /pentest/impacket folder."; '
- +'fi '
- +'fi '
- +'else '
- +'echo "Cannot run tools installer: Missing git repository"; '
- +'fi '
- }
- ];
-
for(var id in quick_commands) {
$('#qc-container').html($('#qc-container').html()
+''
@@ -84,7 +27,8 @@ $(document).ready(function() {
var response = JSON.parse(res);
// console.log(response);
var btn = '
';
- $('#readme-target').html(btn+(response.readme.length ? response.readme : 'Missing Read-Me file'));
+ var attack_mode = '