Search Results

Producer / Consumer Parallelism in PowerShell

Wednesday, September 5th, 2018

After it’s done indexing your data, Scour is blazingly fast at local content searches – far faster than Select-String, grep, or anything else that rips through files when you search. It accomplishes this through the power of the popular Lucene search engine. Similar to the way that publishers have made searching physical books fast, Lucene […]

Scour: Fast, Personal, Local Content Searches

Tuesday, August 28th, 2018

If you have a large collection of documents (source code or text files), searching them with PowerShell or your favourite code editor can feel like it takes forever. How is it that we can search the entire content of the Internet in milliseconds, but searching your local files can take minutes or hours? It turns […]

XOR is Not as Fancy as Malware Authors Think

Monday, April 9th, 2018

FireEye recently posted some research about an attack leveraging the NetSupport Remote Access tool. The first stage of this attack uses a lot of obfuscation tricks to try to make reverse engineering more difficult. David Ledbetter and I were chatting about some of the lengths the malware authors went through to obfuscate the content. One […]

Part-of-Speech Tagging with PowerShell

Wednesday, December 20th, 2017

When analyzing text, a common goal is to identify the parts of speech within that text – what parts are nouns? Adjectives? Verbs in their gerund form? To accomplish this goal, the area of natural language processing in Computer Science has developed systems for Part of Speech tagging, or “POS Tagging”. The acronym preceded the […]

Automatic Word Clustering: K-Means Clustering for Words

Monday, November 20th, 2017

K-Means clustering is a popular technique to find clusters of data based only on the data itself. This is most commonly applied to data that you can somehow describe as a series of numbers. When you can describe the data points as a series of numbers, K-Means clustering (Lloyd’s Algorithm) takes the following steps: Randomly […]

Easily Search for Vanity Ham Call Signs

Friday, November 3rd, 2017

When you first get your ham radio license, the FCC gives you a random call sign based on your location and roughly your date of application. The resulting call sign is usually pretty impersonal, but the FCC lets you apply for a “vanity” call sign for free. While the rules for these vanity call signs […]

Searching for Content in Base-64 Strings

Thursday, September 21st, 2017

You might have run into situations in the past where you’re looking for some specific text or binary sequence, but that content is encoded with Base-64. Base-64 is an incredibly common encoding format in malware, and all kinds of binary obfuscation tools alike. The basic idea behind Base-64 is that it takes arbitrary binary data […]

Adding a Let’s Encrypt Certificate to an Azure-Hosted Website

Tuesday, March 21st, 2017

If you host your website in Azure, you might be interested in adding SSL support via Let’s Encrypt. Azure doesn’t offer any functionality to automate this or make it easy, but thankfully there are plenty of useful tools in the PowerShell community to make this easy. ACMESharp – A PowerShell module to interact with Let’s […]

Why is SeDebugPrivilege enabled in PowerShell?

Monday, March 20th, 2017

We sometimes get the question: Why is the SeDebugPrivilege enabled by default in PowerShell? This is enabled by .NET when PowerShell uses the System.Diagnostics.Process class in .NET, which it does for many reasons. One example is the Get-Process cmdlet. Another example is the method it invokes to get the current process PID for the $pid […]

Detecting and Preventing PowerShell Downgrade Attacks

Friday, March 17th, 2017

With the advent of PowerShell v5’s awesome new security features, old versions of PowerShell have all of the sudden become much more attractive for attackers and Red Teams. PowerShell Downgrade Attacks There are two ways to do this: Command Line Version Parameter The simplest technique is: “PowerShell –Version 2 –Command <…>” (or of course any […]