Blogs

Blog

Blog

Quick and Easy JSON Formatting with Python’s JSON2HTML Library

There are a few Python libraries that have a special place in my heart. Like when I first found out about the XLSX writer library that lets you produce well-formatted Excel spreadsheets with highlighting and all that – I felt bad for how many programs I’d made over the years that just spit out CSV files and left it to

Read More »
Blog

Why OSINT Practitioners Should Get Comfortable with APIs

During my time with the government, I got to travel across the country and around the world, helping people with their OSINT problems and doing training. One thing that came up constantly was people wanting to improve their coding skills. I would always recommend Python because of how popular it is and how comparatively easy it is to learn compared

Read More »
Blog

Understanding a Python Website Monitor with Slack Alerts

Intro Today, we’ll dive into the Python script we posted yesterday that monitors website availability and sends alerts through Slack. Core Components and Setup The script is built around a WebsiteMonitor class that handles all the monitoring functionality. Let’s break down its key components: Initial Setup and Dependencies The script uses several important Python libraries: The WebsiteMonitor Class The class

Read More »
Blog

Python Website Monitor

I have several websites on the internet and the dark web used for labs in the SEC497 Practical OSINT course and the SEC587 Advanced OSINT course. If any of these sites are offline, I want to be notified as soon as possible so I can fix the issue. To help monitor this, I wrote some Python code that checks each

Read More »
Blog

Qgrep Speed Improvements

Yesterday, we talked about indexing and qgrep. Today let’s take a quick look at how much quicker searching with an index is. When I used qgrep to search through my repository of historic whois data, I got back my first result in under two seconds and the search was complete in about one minute. When I performed the same search

Read More »
Blog

Indexing Large Datasets with Qgrep

In my SANS SEC 497 practical OSEC course, one of the topics we cover is dealing with large data sets, particularly focusing on indexing. An index works very similar to the way an index in a book works. Imagine I gave you a 1200-page book of world history and asked you to find every page that mentioned Napoleon. This task

Read More »
Blog

How Persistence and OSINT Skills Led Me to a Star Trek Treasure

Recently, I hosted some houseguests for the holiday season, and it turned out that a few of them were big fans of the original Star Trek series. This gave me a rare opportunity to share something special from my collection that few people truly appreciate: an authentic Tribble prop from one of the most famous episodes of the original series,

Read More »
Blog

SANS Webinar On SEC587 Advanced OSINT Course Updates

Super short blog post today! Later on this morning (for me at least) I’ll be giving a webinar called “Twenty New Labs, Infinite Possibilities: The SEC587 Overhaul”. You can register for the webinar here: https://www.sans.org/webcasts/twenty-new-labs-infinite-possibilities-sec587-overhaul/ Even if you can’t attend it live, registering gets you access to the recorded version.

Read More »
Blog

Cursor: The AI Code Editor That Just Works

It started when my friend David texted me asking if I’d tried Cursor, a new AI-powered code editor. I hadn’t, but after he mentioned it twice in two days, I figured I should take a look. Within 10 minutes of trying it, I was convinced this was something different. What makes Cursor special isn’t just that it uses AI to

Read More »