// BLOG

An analyst's notes

Technical articles on threat hunting, KQL/Sentinel detection, pentesting and incident response. No fluff: queries and procedures I actually use.

The Windows Event IDs every SOC should watch

You don't need to watch 400 event types: you need the right ones. The Windows Event IDs that tell the story of an attack —logon, privileges, persistence, log clearing, PowerShell and Sysmon— and what to hunt with each.

Read article →

From a CVE to a detection: from the advisory to a rule that catches the attack

A CVE advisory tells you what breaks, not how to detect it. The method to go from an advisory to a detection: service and ports, event IDs, ATT&CK tactic and a Sigma rule skeleton.

Read article →

Understand a regex (and avoid taking your server down with ReDoS)

Reading a regular expression token by token, and the trap that turns an innocent validation into a DoS: catastrophic backtracking (ReDoS). How to spot it and avoid it.

Read article →

Harden your Dockerfile: the anti-patterns that give an insecure container away

A Dockerfile that works is not a secure Dockerfile. The anti-patterns a linter checks —root, :latest, secrets in ENV, curl|sh, privileged, hostPath— and how to fix them.

Read article →

Nmap without fear: build the right scan

Nmap has dozens of options, but a good scan comes down to six decisions: which hosts, which ports, how to probe them, how much to find out, at what pace and how to save it. Understand the flags that matter (and only use them where you have permission).

Read article →

Your first YARA rule: describe malware and hunt it

YARA is the "grep" of malware analysis: rules that describe a family by its strings and bytes. The anatomy of a rule (meta, strings, condition), modifiers and how to write one that catches variants without firing on legitimate software.

Read article →

The extension lies: identify files by their magic bytes

Renaming an .exe to .jpg does not make it an image. A file's first bytes —its signature or "magic bytes"— reveal its real format. Why it matters in forensics, file uploads and CTF, and how to check it.

Read article →

Prompt injection: the "XSS" of AI applications

Number 1 on the OWASP Top 10 for LLMs: a user reprograms your chatbot with a sentence. The four ways to hijack it, why it is so hard to stop and how to defend your system prompt.

Read article →

How a WAF gets bypassed (and why a blocklist is rarely enough)

A blocklist WAF is a speed bump, not a wall: it chases strings, not semantics. The four classic bypasses (XSS without <script>, encoding, comments/case and double encoding) and why a WAF is a layer, not the fix.

Read article →

A secret in git isn't deleted, it's rotated (and why)

You commit an API key by mistake, delete it in the next commit and relax. Don't: it stays in history. Why it happens, why rotating (not deleting) comes first, and how to prevent it.

Read article →

JWT: the 3 flaws I see in every pentest

A JWT is readable without a key (it is not encrypted). The three flaws that turn it into full compromise: alg:none, weak HMAC secret and algorithm confusion (RS256→HS256). How they are exploited and how to defend.

Read article →

From a log to a detection that works in any SIEM

A KQL detection only works for Sentinel. With Sigma you write it once in YAML and convert it to KQL, SPL, Elastic or Wazuh. Rule anatomy, from log to rule, and how to avoid drowning in false positives.

Read article →

Subdomain takeover: how a forgotten CNAME ends up being yours

You decommission a service but the CNAME keeps pointing at it; an attacker claims it and takes over your subdomain for phishing. How it happens, how to hunt it with recon and how to close it from the defense side.

Read article →

CVSS v3.1 vs v4.0: what changes and how to score it right

CVSS v4.0 is not a tweak of v3.1: it changes the impact model (vulnerable vs subsequent systems), splits complexity from attack requirements and reworks threat, environmental and supplemental groups. What each new metric means and the common scoring mistakes.

Read article →

Encoding is not encryption: recognizing and chaining decodings

The rookie mistake in a CTF (and in malware triage): confusing encoding with encryption. How to tell encoding, encryption and hashing apart, recognize Base64/hex/ROT by shape and chain decodings.

Read article →

Passive recon: your domain's public footprint (and how to shrink it)

Before touching a target, an attacker reads it from public sources without sending a single packet: DNS, Certificate Transparency, WHOIS, Wayback, Shodan. What your domain reveals and how to shrink that surface.

Read article →

Cron persistence: how attackers use it and how to hunt it

Cron is legit, everywhere and quiet: which makes it a nest for persistence. Where attackers hide, the patterns that give a malicious job away, and how to enumerate and watch every crontab.

Read article →

Reverse shells: how to stabilize the TTY (from dumb shell to real terminal)

You just caught a reverse shell and it is "dumb": no tab-completion, no history, Ctrl-C kills it. How to get a full TTY (pty, stty, socat) and how the Blue Team detects it.

Read article →

CSP in practice: a Content-Security-Policy that stops XSS without breaking your site

Most CSPs are useless (with unsafe-inline) or break the site. How to build a strict nonce-based CSP, the directives that matter, and how to roll it out without surprises.

Read article →

SOC triage: the first 15 minutes of an alert

A method to avoid drowning in alerts: validate, enrich, scope and decide. The steps and tools to go from "an alert fires" to "I know what to do".

Read article →

Hardening SSH: a practical checklist against brute force and unauthorized access

SSH default config is a magnet for brute force. Keys instead of passwords, no root, 2FA, modern ciphers and monitoring, step by step.

Read article →

Which CVE to patch first: prioritize with EPSS, KEV and context

CVSS alone is not enough to prioritize patching. How to combine EPSS (exploit probability), CISA's KEV list and your real exposure to patch what matters.

Read article →

How to analyze a phishing email (.eml) step by step

A triage guide for a suspicious email without opening links or attachments: headers, SPF/DKIM/DMARC authentication, sender, URLs, IOCs and how to report it.

Read article →

SPF, DKIM and DMARC in practice: stop your domain from being spoofed

A practical guide to setting up email authentication (SPF, DKIM and DMARC) in the right order, with the common mistakes and how to verify it all.

Read article →

Hardening Microsoft 365 against phishing: the controls that actually matter

Practical setup of Defender for Office 365, Conditional Access and email authentication (SPF/DKIM/DMARC), in the order I would apply them.

Read article →

Detecting DNS Tunneling with KQL in Microsoft Sentinel

Three KQL signals (entropy, volume and record types) to hunt DNS exfiltration and C2, and how to turn them into an analytics rule.

Read article →

📬 Don't want to miss anything?

I'll email you when I publish a new tool or article. No spam, unsubscribe anytime.

>_ More articles coming soon…