Public, well-documented technique. This is about the detection side, not a how-to. Signals that still hold: image n…
We signed it. Finance survived. The block stayed. This is the whole story and I am posting it because the next pers…
The guest was isolated. The host was not. A sample that detected the hypervisor had a path we did not intend — not …
SSH and a console. RDP stayed off. Convenience is how jump boxes become desktops. If you need a GUI, use a dedicate…
Unplug is not always right. The page says: isolate NIC, snapshot if VM, do not reboot yet, call the human. Reboot i…
Telemetry out of band. Sample sees a network that is fake. Those two sentences are the architecture. Everything els…
I collect them. I read them when a box 'feels weird'. I do not read them daily. Daily is a lie. If you claim you re…
A provider that should be on, off. That is a hunt. Not every off is malice. Some are our own 'perf' tickets. Invent…
People treat lab boxes as disposable and then reuse them for mail. Disposable means disposable. Reimage, or do not …
Installer failed with LSA protection on. Vendor said 'turn it off'. We gave them a reboot-and-retry and a ticket to…
I read bypass writeups as detection homework, not as a shopping list. Then I ask: would our telemetry have seen the…
I printed it. People still asked. I pointed at the sticker. Shared folders stayed off. Physical reminders work on t…
I dump the persistent rules weekly. Anything that is not in the repo is a finding. Two were ours. One was not. Fire…
We blocked macros from the internet. The business survived. The FP was one old template. We converted the template.…
The exception became a NAT. The NAT became a path. I ripped it out and put a ticket in front of any future exceptio…
I revoked it. Things broke. We fixed the things. Local admin stayed gone. Temporary without a calendar invite is pe…
We turned on CFI on a lab tool and found a callback table we had been sloppy with. Fixed the table. CFI stayed on. …
Execution policy is not a security boundary. It is a speed bump. We still use it plus WDAC on the jump box. The hel…
We disabled LLMNR and NBT-NS on the lab network. Two old printers complained. We lived. If your lab still broadcast…
It did not. We found out during a detonation. We now rate-limit and we keep a dedicated log volume with alerts at 7…
IR has to open attachments. They open them in a cattle VM that dies every night. Not on the jump box. Not on the la…
Not every fix waits for Tuesday. The forgot-VM problem is worse on out-of-band because the process is 'someone saw …
SeDebugPrivilege on a kiosk image. It was our own RMM. We removed it. The RMM survived. Inventory privileges. Then …
A fake updater name in a fake path. If it starts, I want a page. It started once: a curious intern. We talked. The …
The two we added were old, signed, and we do not need them. The rest of the internet's blocklist is a different ris…
Sandbox is a place, not a spell. I tell them: snapshot, no creds, no mail, no shared folders, one-way logs. Then ma…
JIT looked like RWX because it was. Signed, expected, noisy. I excepted the publisher + path, not the behavior clas…
A COM server we needed was also an ASR block. We scoped the block, we did not disable the rule. Scope, do not disab…
A laptop jumped to wifi 'for a meeting'. I wrote a control: lab nics do not roam. Then I wrote it again in the rule…
Public technique, patched-class discussion. Image unmap then map with RWX is still loud if you have the right provi…
Someone wanted PPL off to debug a service. I gave them a debug build and a second box. PPL stayed on. If your debug…
We planted fake keys in a fake .env. An intern used them in a test. The canary fired. We promoted the intern for fi…
No browser, no mail, no Slack. Yes: SSH, WinDbg, git over SSH, a text editor. People complained. Then they got used…
I keep child-process, executable-from-email, and office-create-child in block on the jump boxes. The rest are audit…
It was not LSASS. It was a service that held a token like a souvenir. Guard what you have, then stop holding souven…
Audit mode for a quarter. The noisy publishers were our own signed-but-weird tools. We fixed the tools. Then we enf…
A allow-list entry without an expiry is a vulnerability with a ticket number. 90 days, then re-justify. I deleted 4…
Host-only NIC, no shared folders, no drag-drop, snapshots before every detonation, time sync off, one-way logging. …
I hunt binaries that should have CFG and do not, on a path that should be signed. That is a drift hunt, not a explo…
CLM on the jump box. Our scripts used a pile of things CLM hates. We rewrote them. Jump box yes, workstation later.…
A canary file in a path they already ignore, a canary DNS that does not break tests, a canary token in a fake confi…