This is a bug fix version
pdfid_v0_2_8.zip (https)MD5: 9DDE1D9010D860303B03F3317DAF07B4
SHA256: 0D0AA12592FA29BC5E7A9C3CFA0AAEBB711CEF373A0AE0AD523723C64C9D02B4
This is a bug fix version
pdfid_v0_2_8.zip (https)This new version brings a bug fix and an update to plugin_biff’s XOR deobfuscation.
oledump_V0_0_62.zip (https)I did record 8 videos explaining the different commands of my dnsresolver.py tool.
This is a tool that can serve files, facilitate exfiltration, do tracking, answer wildcard requests, do rcode testing and also simple resolving.
I have a YouTube playlist with all 8 videos: dnsresolver playlist.

This new version of base64dump.py brings bug fixes and support for BASE85 RFC 1924 encoding.
If you want to know how I go about adding a new decoding to base64dump.py, watch this video:
Here is version 0.0.0.15, with bug fixes but without base85:
base64dump_V0_0_15.zip (https)And here is version 0.0.0.16 with base85:
base64dump_V0_0_16.zip (https)I’ve done several experiments with DNS, which has lead me over the last couple of years to develop a DNS resolver tool.
By no way is it a full fledged DNS server: it implements particular features that I’ve needed for different experiments I conducted.
It can serve files, facilitate exfiltration, do tracking, answer wildcard requests, do rcode testing and also simple resolving.
Upcoming blog posts will go into more details for some of these features.

This new version of FileScanner brings bug fixes and new features, like UNICODE filename support and an embedded man page.

I have some ad hoc tools, that help me with special text editing tasks. Like doing search and replace in a text file, with a list of search and replace terms. Or looking for assignment statements in the source code of a program, and replacing each variable with its value.
I decided to bundle these ad hoc scripts, into a single generic script, a new tool: texteditor.py
Here is an example, take text file example.txt with the following content:
There is an apple on the sun.
It is nice and warm.
And CSV file sar.csv with the following content:
apple,pear
sun,moon
The following sarcsv command edits file example.txt with sar.csv:
./texteditor.py input=example.txt edit=sarcsv,file=sar.csv output=-
The output of this command is:
There is an pear on the moon.
It is nice and warm.
This update to xmldump.py, a tool to help with viewing XML files, adds option -j (–jsoninput) to handle JSON output produced by zipdump.py.
With this option, shared strings from OOXML spreadsheets will be used with command celltext.
I will explain more in an upcoming blog post.

This new version of oledump.py comes with Excel 4 formula parsing improvements in the plugin_biff plugin.
oledump_V0_0_61.zip (https)There are no code changes to this version of 1768.py, my tool to analyze Cobalt Strike beacons.
What is new, is file 1768.json: this file contains statistical data for license IDs.

Over a period of one month, I collected license ID information from these sources: threatviewio and @cobaltstrikebot.
For each license ID that is found on more than one IP address / hostname, I include simple statistics: the number of unique IP addresses / hostnames and the number of unique public keys.
When analyzing malicious Cobalt Strike beacons, I often see recurring license IDs. That’s why I decided to add logic and a JSON file to my tool, with license IDs I’ve seen before. And now this has evolved to a small repository of often seen license IDs.
Here is an example with a sample we discussed on the Internet Storm Center diary:

The license ID is 1873433027 and this ID is associated with 18 unique IP addresses / hostnames, and 15 unique public keys. This is a clear indication that this license ID is used by malicious actors. License IDs that have been seen only once, could belong to red teams, that is why they are not included in file 1768.json. The more often a license ID is seen, the higher the chance it is used by malicious actors. Of course, it is not excluded that there are legitimate license IDs from red teams in this list, but I expect they will have low frequencies.
Takeaway: if your sample has a license ID that appears in 1768.json, then it has been seen before (at least twice), and you’re likely not dealing with a pentest.
1768_v0_0_7.zip (https)