A sophisticated social engineering campaign is exploiting the trust inherent in open-source security tooling. According to recent reporting from BleepingComputer, threat actors are uploading malicious repositories to GitHub that masquerade as legitimate security tools—penetration testing frameworks, vulnerability scanners, and forensic utilities—but instead deliver unauthorized access mechanisms and infostealing malware.
For security professionals, this represents a dangerous inversion: the very tools we download to defend our networks are being weaponized to breach them. These fake tools target security researchers, SOC analysts, and IT administrators—users who often operate with elevated privileges and access to sensitive infrastructure. Once executed, the malicious payloads establish persistence, harvest credentials, browser session tokens, and cryptocurrency wallets, and create backdoors for long-term unauthorized access.
The campaign is actively exploiting GitHub's search functionality and repository recommendation algorithms. Attackers use SEO poisoning, star farming, and compelling documentation to boost visibility, making these malicious repos appear alongside legitimate tools like Nmap, Metasploit, or Wireshark in search results. Organizations must immediately audit recently downloaded security tools, hunt for indicators of compromise, and implement controls to prevent execution of unverified binaries.
Technical Analysis
Attack Chain and Delivery Mechanism
The attack follows a multi-stage infection chain designed to evade initial scrutiny:
-
Repository Cloning: Attackers fork legitimate security tools or create convincing lookalikes with similar names, README files, and code structures. They often use typosquatting (e.g., "nmap-scanner" vs "nmap") or claim to be "optimized," "unofficial patched," or "GUI-enhanced" versions.
-
Malicious Payload Embedding: Rather than modifying the core tool's source code (which might be detected during code review), attackers embed malicious logic in:
- Build scripts (
Makefile,setup.py,build.gradle,package.jsonpost-install hooks) - Dependency manifests that pull from typosquatted packages
- Compiled binaries released in the "Releases" section (bypassing source code inspection)
- Obfuscated PowerShell or Bash one-liners in installation instructions
- Build scripts (
-
Execution and Evasion: Upon execution, the tool often performs its advertised function to avoid suspicion while simultaneously:
- Dropping infostealer payloads (often RedLine, Vidar, or Raccoon variants) to
%APPDATA%or/tmp - Creating registry Run keys or systemd services for persistence
- Establishing HTTPS C2 channels to attacker-controlled infrastructure
- Harvesting browser cookies, saved credentials, SSH keys, and cloud service tokens
- Dropping infostealer payloads (often RedLine, Vidar, or Raccoon variants) to
Affected Platforms and Targets
- Primary Targets: Windows security workstations and Linux penetration testing distributions (Kali Linux, Parrot OS)
- Secondary Targets: macOS development environments
- High-Value Assets: Users with administrative access, cloud IAM credentials, VPN configurations, and access to sensitive client environments
Exploitation Status
This is an active, in-the-wild campaign. While no specific CVE is associated with this threat (it exploits human trust rather than software vulnerabilities), the technique is documented in MITRE ATT&CK as T1195.002 (Supply Chain Compromise: Compromise Software Supply Chain) and T1036 (Masquerading). The campaign has been observed distributing multiple infostealer families and unauthorized access mechanisms that bypass traditional AV through living-off-the-land techniques.
Detection & Response
Security teams should immediately hunt for evidence of fake security tool execution and infostealer activity across endpoints.
SIGMA Rules
---
title: Suspicious Security Tool Execution from Temp Directories
id: 8f7a3b2c-9d1e-4f5a-b8c7-2e3f4a5b6c7d
status: experimental
description: Detects execution of security tools from temporary or user-writable directories, a common pattern in fake GitHub tool infections.
references:
- https://www.bleepingcomputer.com/news/security/fake-security-tools-on-github-push-backdoors-and-infostealers/
- https://attack.mitre.org/techniques/T1036/
author: Security Arsenal
date: 2026/04/06
tags:
- attack.defense_evasion
- attack.t1036
logsource:
category: process_creation
product: windows
detection:
selection_paths:
Image|startswith:
- 'C:\Users\*\AppData\Local\Temp\'
- 'C:\Users\*\AppData\Roaming\'
- 'C:\ProgramData\'
- 'C:\Windows\Temp\'
selection_names:
Image|endswith:
- '\nmap.exe'
- '\metasploit.exe'
- '\burpsuite.exe'
- '\wireshark.exe'
- '\sqlmap.exe'
- '\hydra.exe'
- '\hashcat.exe'
condition: selection_paths and selection_names
falsepositives:
- Legitimate portable security tools (verify hash and source)
level: high
---
title: Infostealer Persistence via Registry Run Keys
id: 9e8f4a5b-1c2d-4e3f-a5b6-7d8e9f0a1b2c
status: experimental
description: Detects creation of persistence mechanisms commonly used by infostealers distributed through fake GitHub security tools.
references:
- https://attack.mitre.org/techniques/T1060/
author: Security Arsenal
date: 2026/04/06
tags:
- attack.persistence
- attack.t1060
logsource:
category: registry_event
product: windows
detection:
selection:
TargetObject|contains:
- '\Software\Microsoft\Windows\CurrentVersion\Run'
- '\Software\Microsoft\Windows\CurrentVersion\RunOnce'
Details|contains:
- 'powershell'
- 'cmd /c'
- 'AppData'
- 'Temp'
filter:
Image|endswith:
- '\reg.exe'
- '\regedit.exe'
condition: selection and not filter
falsepositives:
- Software installers (verify parent process)
level: medium
---
title: Suspicious Git Clone from Non-Standard Locations
id: 7c6d5e4f-3a2b-4c5d-8e9f-0a1b2c3d4e5f
status: experimental
description: Detects git operations executed from suspicious directories or with obfuscated URLs, potentially indicating malicious repository cloning.
references:
- https://attack.mitre.org/techniques/T1195.002/
author: Security Arsenal
date: 2026/04/06
tags:
- attack.supply_chain
- attack.t1195.002
logsource:
category: process_creation
product: windows
detection:
selection:
Image|endswith: '\git.exe'
CommandLine|contains:
- 'clone'
filter_legitimate:
CommandLine|contains:
- 'github.com/microsoft/'
- 'github.com/nmap/'
- 'github.com/rapid7/'
- 'github.com/wireshark/'
condition: selection and not filter_legitimate
falsepositives:
- Legitimate development activity (tune based on organizational repos)
level: low
KQL (Microsoft Sentinel / Defender)
Hunt for suspicious process executions and network connections associated with fake security tools:
// Hunt for security tools executing from suspicious locations
DeviceProcessEvents
| where TimeGenerated > ago(7d)
| where FileName in~ ("nmap.exe", "metasploit.exe", "burpsuite.exe", "sqlmap.exe", "hydra.exe", "hashcat.exe")
| where FolderPath has_any ("AppData", "Temp", "Downloads", "Desktop")
| where not(FolderPath has_any ("Program Files", "Program Files (x86)", "Windows"))
| project TimeGenerated, DeviceName, FileName, FolderPath, ProcessCommandLine, InitiatingProcessAccountName, InitiatingProcessFileName
| order by TimeGenerated desc
// Hunt for infostealer network indicators (C2 traffic patterns)
DeviceNetworkEvents
| where TimeGenerated > ago(7d)
| where RemoteUrl has_any ("t.me", "telegram.org") or RemoteIP in ("185.220.101.0/24", "194.36.189.0/24")
| where InitiatingProcessFileName in~ ("nmap.exe", "metasploit.exe", "burpsuite.exe", "wireshark.exe", "sqlmap.exe")
| project TimeGenerated, DeviceName, InitiatingProcessFileName, RemoteUrl, RemoteIP, RemotePort
| order by TimeGenerated desc
// Hunt for credential dumping attempts following fake tool execution
SecurityEvent
| where TimeGenerated > ago(7d)
| where EventID == 4688
| where Process has_any ("nmap", "metasploit", "burp", "wireshark")
| where CommandLine has_any ("sekurlsa", "lsass", "credential", "password", "dump")
| project TimeGenerated, Computer, Process, CommandLine, Account
Velociraptor VQL
Use this VQL artifact to hunt for unauthorized access mechanisms and infostealer artifacts across Windows endpoints:
-- Hunt for fake security tools and infostealer artifacts
SELECT
Pid,
Name,
CommandLine,
Exe,
Username,
CreateTime,
Authenticode.Signed AS Signed,
Authenticode.Issuer AS Issuer
FROM pslist()
WHERE
(Name =~ '(?i)nmap|metasploit|burp|wireshark|sqlmap|hydra|hashcat'
AND (
Exe =~ '(?i)appdata|temp|downloads|desktop'
OR Authenticode.Signed =~ 'false'
))
OR CommandLine =~ '(?i)github.com.*clone'
-- Check for suspicious network connections from security tools
SELECT
Pid,
Name,
RemoteAddress,
RemotePort,
State
FROM netstat()
WHERE
Name =~ '(?i)nmap|metasploit|burp|wireshark|sqlmap'
AND State =~ 'ESTABLISHED'
AND RemoteAddress !~ '^(10\.|172\.(1[6-9]|2[0-9]|3[0-1])\.|192\.168\.|127\.)'
Remediation Script
This PowerShell script audits systems for indicators of fake security tool infections, removes common persistence mechanisms, and verifies the integrity of installed security tools.
# Fake Security Tool Detection and Remediation Script
# Run as Administrator on potentially affected systems
Write-Host "=== Fake GitHub Security Tool Detection and Remediation ===" -ForegroundColor Cyan
Write-Host "Scanning for unauthorized access mechanisms and infostealers..." -ForegroundColor Yellow
# 1. Check for suspicious processes running from temp/AppData
Write-Host "`n[1] Checking for suspicious process execution paths..." -ForegroundColor Green
$suspiciousPaths = @("AppData", "Temp", "Downloads", "Desktop")
$securityTools = @("nmap", "metasploit", "burpsuite", "wireshark", "sqlmap", "hydra", "hashcat")
$processes = Get-WmiObject Win32_Process | Where-Object {
$proc = $_
$toolMatch = $securityTools | Where-Object { $proc.Name -like "*$_*" }
$pathMatch = $suspiciousPaths | Where-Object { $proc.ExecutablePath -like "*$_*" }
if ($toolMatch -and $pathMatch) { $true }
}
if ($processes) {
Write-Host "ALERT: Suspicious processes detected:" -ForegroundColor Red
$processes | Select-Object ProcessId, Name, ExecutablePath, CommandLine | Format-Table -AutoSize
# Terminate suspicious processes
foreach ($proc in $processes) {
Write-Host "Terminating PID $($proc.ProcessId): $($proc.Name)" -ForegroundColor Red
Stop-Process -Id $proc.ProcessId -Force -ErrorAction SilentlyContinue
}
} else {
Write-Host "No suspicious process execution detected." -ForegroundColor Green
}
# 2. Check registry Run keys for infostealer persistence
Write-Host "`n[2] Checking registry Run keys for unauthorized access mechanisms..." -ForegroundColor Green
$runKeys = @(
"HKCU:\Software\Microsoft\Windows\CurrentVersion\Run",
"HKCU:\Software\Microsoft\Windows\CurrentVersion\RunOnce",
"HKLM:\Software\Microsoft\Windows\CurrentVersion\Run",
"HKLM:\Software\Microsoft\Windows\CurrentVersion\RunOnce"
)
$suspiciousEntries = @()
foreach ($key in $runKeys) {
if (Test-Path $key) {
$entries = Get-ItemProperty -Path $key
foreach ($entry in $entries.PSObject.Properties) {
if ($entry.Value -match "AppData|Temp|powershell|cmd /c") {
$suspiciousEntries += [PSCustomObject]@{
Key = $key
Name = $entry.Name
Value = $entry.Value
}
}
}
}
}
if ($suspiciousEntries) {
Write-Host "ALERT: Suspicious registry persistence detected:" -ForegroundColor Red
$suspiciousEntries | Format-Table -AutoSize
# Remove suspicious entries
foreach ($entry in $suspiciousEntries) {
Write-Host "Removing registry entry: $($entry.Key)\$($entry.Name)" -ForegroundColor Red
Remove-ItemProperty -Path $entry.Key -Name $entry.Name -Force -ErrorAction SilentlyContinue
}
} else {
Write-Host "No suspicious registry persistence detected." -ForegroundColor Green
}
# 3. Check for recently created executables in user-writable directories
Write-Host "`n[3] Checking for recently dropped executables..." -ForegroundColor Green
$recentFiles = Get-ChildItem -Path $env:APPDATA, $env:TEMP, $env:USERPROFILE\Downloads -Recurse -Filter "*.exe" -ErrorAction SilentlyContinue |
Where-Object { $_.CreationTime -gt (Get-Date).AddDays(-30) } |
Select-Object FullName, CreationTime, @{Name="SizeKB";Expression={[math]::Round($_.Length/1KB,2)}}
if ($recentFiles) {
Write-Host "Recent executables found (verify legitimacy):" -ForegroundColor Yellow
$recentFiles | Format-Table -AutoSize
# Check Authenticode signatures
foreach ($file in $recentFiles) {
$sig = Get-AuthenticodeSignature -FilePath $file.FullName
if ($sig.Status -ne "Valid") {
Write-Host "UNSIGNED OR INVALID: $($file.FullName)" -ForegroundColor Red
}
}
} else {
Write-Host "No recent executables found in user-writable directories." -ForegroundColor Green
}
# 4. Verify legitimate security tools (if installed)
Write-Host "`n[4] Verifying integrity of legitimate security tools..." -ForegroundColor Green
$legitimatePaths = @{
"nmap" = "C:\Program Files (x86)\Nmap\nmap.exe"
"wireshark" = "C:\Program Files\Wireshark\Wireshark.exe"
}
foreach ($tool in $legitimatePaths.GetEnumerator()) {
if (Test-Path $tool.Value) {
$sig = Get-AuthenticodeSignature -FilePath $tool.Value
$hash = Get-FileHash -Path $tool.Value -Algorithm SHA256
Write-Host "$($tool.Key): $($sig.Status) - Hash: $($hash.Hash.Substring(0,16))..." -ForegroundColor $(if ($sig.Status -eq "Valid") { "Green" } else { "Red" })
}
}
# 5. Network connections check
Write-Host "`n[5] Checking for suspicious network connections from security tools..." -ForegroundColor Green
$netstat = Get-NetTCPConnection -State Established -ErrorAction SilentlyContinue |
Where-Object { $_.OwningProcess -ne $null } |
ForEach-Object {
$proc = Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue
if ($proc -and ($proc.ProcessName -match "nmap|metasploit|burp|wireshark|sqlmap|hydra")) {
[PSCustomObject]@{
Process = $proc.ProcessName
PID = $_.OwningProcess
RemoteAddress = $_.RemoteAddress
RemotePort = $_.RemotePort
Path = $proc.Path
}
}
}
if ($netstat) {
Write-Host "Active network connections from security tools:" -ForegroundColor Yellow
$netstat | Format-Table -AutoSize
} else {
Write-Host "No suspicious network connections from security tools." -ForegroundColor Green
}
Write-Host "`n=== Remediation Complete ===" -ForegroundColor Cyan
Write-Host "Recommendations:" -ForegroundColor Yellow
Write-Host "1. Only download security tools from official vendor sites or verified GitHub repositories" -ForegroundColor White
Write-Host "2. Verify SHA256 hashes against official releases before execution" -ForegroundColor White
Write-Host "3. Use Windows Defender Application Control (WDAC) or AppLocker to restrict unauthorized binaries" -ForegroundColor White
Write-Host "4. Monitor for unusual outbound connections from security workstations" -ForegroundColor White
Remediation
Immediate Actions (24-48 Hours)
-
Audit Recent Downloads: Inventory all security tools downloaded in the past 90 days. Cross-reference against official vendor hashes and signatures. Remove any tools downloaded from unverified GitHub repositories, third-party sites, or torrents.
-
Hunt for Infostealer Artifacts: Deploy the detection rules and scripts provided above. Focus on:
- Browser credential stores (Chrome Login Data, Firefox logins.json)
- SSH private keys in
.sshdirectories - Cloud credential files (
.aws/credentials,.azure/accessTokens.json) - Recently modified files in
%APPDATA%and%TEMP%
-
Reset Credentials: If any suspicious tool execution is confirmed, immediately reset:
- Local administrator passwords
- Domain credentials for affected users
- Cloud IAM credentials (AWS, Azure, GCP)
- SSH keys and API tokens
- Session tokens for critical applications (force re-authentication)
Long-Term Hardening
-
Application Whitelisting: Implement WDAC or AppLocker policies that restrict execution to signed binaries from trusted publishers. Block execution from user-writable directories (AppData, Temp, Downloads).
-
Developer Environment Isolation: Require security researchers and penetration testers to use isolated VMs or containers for tool evaluation. Never run unverified tools on production systems or workstations with access to sensitive credentials.
-
GitHub Repository Verification: Before cloning security tools:
- Verify the repository is the official source (check vendor documentation)
- Review recent commit history for suspicious changes
- Check for signed commits and releases
- Scan downloaded archives with updated AV/EDR before extraction
-
Network Segmentation: Restrict outbound internet access from security workstations to required destinations only. Block Telegram, Discord, and known C2 infrastructure at the proxy/firewall level for non-administrative systems.
-
User Education: Train security staff to recognize social engineering in open-source repositories. Emphasize that high star counts and professional README files do not guarantee legitimacy.
Vendor and Community Resources
- GitHub Security Advisories: Monitor https://github.com/advisories for reported malicious repositories
- BleepingComputer Original Report: https://www.bleepingcomputer.com/news/security/fake-security-tools-on-github-push-backdoors-and-infostealers/
- MITRE ATT&CK T1195.002: Supply Chain Compromise techniques and mitigations
Related Resources
Security Arsenal Penetration Testing Services AlertMonitor Platform Book a SOC Assessment vulnerability-management Intel Hub
Is your security operations ready?
Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.