Extracting Windows WiFi Profiles

wifiExtract The other day my grandmother forgot her Windows WiFi SSID and password when she wanted to share it with a friend. So I thought if I could just automate the retrieval of her wireless profiles, she would never forget them again in the future. It turns out, the Windows API offers a nice way to enumerate WLAN information. First, we open a handle to the WLAN system by first calling the WlanOpenHandle function, which we can then use to enumerate WLAN interfaces with the WlanEnumInterfaces function....

March 19, 2025 · 4 min · 682 words · Stephan Bridger

Infecting Linux ELF Files

Elfland Lately I’ve been thinking about Linux internals and malware. In this blog post, we’re going to hark about the ELFs. Just as Windows has its own executable format, so too does Linux. If we look at the source code1 to the Executable and Linkable Format specification in elf.h, we can see the definition of the ELF header and some of its core machinery to get an idea of how it works....

February 23, 2025 · 32 min · 6714 words · Stephan Bridger

A Sideblog on Blogspot

I’ve been somewhat mute here lately and haven’t updated my GitHub Pages in a while. However, I’ve been actively engaged in research and taking notes on a new sideblog on Blogspot. So, I’ve been writing a little Rust, Python, and C# code, exploring operating system internals. And utilizing aspects of .NET to do stuff on Windows. And occasionally, I’ve been analyzing malware.

September 4, 2023 · 1 min · 62 words · Stephan Bridger

Using C Sharp to Enumerate Windows Processes

In previous posts, I covered how to observe process information in Windbg by starting a debugging session and dumping the Process Environment Block. And how we can view the EPROCESS structure, including a doubly linked-list of active processes via ActiveProcessLinks. But in this post, we’ll discuss yet another way of gleaning information about processes in Windows, this time from another structure within the Windows ecosystem: the SYSTEM_PROCESS_INFORMATION structure. SYSTEM_PROCESS_INFORMATION Structure Microsoft tells us in their documentation that this structure holds various entries which hold system and process information....

September 3, 2023 · 8 min · 1617 words · Stephan Bridger

Finding Active Processes with Windbg

In the Windows kernel, each process is assigned an EPROCESS structure, which is a kernel object that represents a program or process. And a Process Environment Block (PEB) is just one of many structures pointed to by the EPROCESS structure. A snippet from _EPROCESS as documented on Vergilius Project: volatile ULONGLONG OwnerProcessId; struct _PEB* Peb; struct _MM_SESSION_SPACE* Session; VOID* Sparel; In user space however, we cannot directly reference all of the EPROCESS structures and their data....

September 2, 2023 · 11 min · 2170 words · Stephan Bridger

Inference: Side-Channel Attacks

A Brief History Inference, that is, induction and deduction, are perhaps my personal favorite classes of problem-solving methods. Given very little initial information, depending on our model and situation, we can utilize just a few points to infer other information which was never directly presented to us. From Pythagoras, to Euclid, and Spinoza—to the use of modern inductive algorithms like those being developed at MIRI—inference is a powerful primitive, and somewhat of a universal open secret, playing a role almost everywhere we look—from philosophy, to economics, game theory, aerospace, medicine, computer science, and any scenario in which probability is of importance....

September 17, 2021 · 4 min · 683 words · Stephan Bridger

Security (Theater) Questions

In the time before improved multi-factor authentication schemes like Authy and Yubikeys, there were security questions. And for some reason, they seem as though they’ll never give us up. Even today, some organizations still rely on them, asking users to set questions and answers as a way to validate users out-of-band, in the event of forgetting a password. You might recall services like AOL and AIM using these. But if anything, they’re more of a security vulnerability....

September 16, 2021 · 2 min · 218 words · Stephan Bridger

Small Bugs, Big Bugs

Then In February 2020, I decided to check out web application security programs on HackerOne. I set my eyes on AT&T for the novel fact that, in the 1960s, they almost invented the internet, but their research was prematurely halted citing costs and technical hurdles. Nonetheless, AT&T’s Picturephone is a historical but often forgotten piece of history. After burning nearly $500 million dollars on the effort, AT&T, then known as Bell Labs, scrapped the project entirely....

September 9, 2021 · 2 min · 413 words · Stephan Bridger