Skip to content

Instantly share code, notes, and snippets.

View nstarke's full-sized avatar

Nicholas Starke nstarke

View GitHub Profile
@nstarke
nstarke / netgear-private-key-disclosure.md
Last active April 30, 2024 06:02
Netgear TLS Private Key Disclosure through Device Firmware Images

Netgear Signed TLS Cert Private Key Disclosure

Overview

There are at least two valid, signed TLS certificates that are bundled with publicly available Netgear device firmware.

These certificates are trusted by browsers on all platforms, but will surely be added to revocation lists shortly.

The firmware images that contained these certificates along with their private keys were publicly available for download through Netgear's support website, without authentication; thus anyone in the world could have retrieved these keys.

@nstarke
nstarke / release-android-debuggable.md
Last active April 28, 2024 16:29
How to make a Release Android App debuggable

How to make a Release Android App debuggable

Let's say you want to access the application shared preferences in /data/data/com.mypackage.
You could try to run adb shell and then run-as com.mypackage ( or adb shell run-as com.mypackge ls /data/data/com.mypackage/shared_prefs), but on a production release app downloaded from an app store you're most likely to see:

run-as: Package 'com.mypackage' is not debuggable
@nstarke
nstarke / find-entropy.py
Created August 25, 2019 17:42
Find Entropy of Strings
#!/usr/bin/env python
#
# find-entropy.py
#
# A simple Utility to measure entropy of strings.
# Usage should be something like this:
#
# $ strings file.txt | python find-entropy.py
#
@nstarke
nstarke / 01-reversing-cisco-ios-raw-binary-firmware-images-with-ghidra.md
Last active April 26, 2024 06:26
Reversing Cisco IOS Raw Binary Firmware Images with Ghidra

Reversing Raw Binary Firmware Files in Ghidra

This brief tutorial will show you how to go about analyzing a raw binary firmware image in Ghidra.

Prep work in Binwalk

I was recently interested in reversing some older Cisco IOS images. Those images come in the form of a single binary blob, without any sort of ELF, Mach-o, or PE header to describe the binary.

While I am using Cisco IOS Images in this example, the same process should apply to other Raw Binary Firmware Images.

@nstarke
nstarke / resize-ghidra-gui.md
Last active April 20, 2024 08:20
Resize Ghidra GUI for High DPI screens

Resize Ghidra for High DPI screens

If you run Ghidra on a high DPI screen, you will probably find the GUI to be scaled down so small to be almost of no use.

There is a setting that you can adjust to scale the Ghidra GUI:

in $GHIDRA_ROOT/support is a file named launch.properties. In this launch.properties file is the following configuration key:

VMARGS_LINUX=-Dsun.java2d.uiScale=1
@nstarke
nstarke / dlink-dcs-930L.md
Last active April 17, 2024 09:03
DLink DCS 930L Command Injection and Image Still Exfiltration
@nstarke
nstarke / JScrambler-Review.md
Last active April 5, 2024 18:46
JScrambler Review

I've recently been working on JavaScript Obfuscation. I've read as much as I can from the internet about options and capabilities. It is clear there is one winner out of all the offerings available.

JScrambler Review

JScrambler (https://jscrambler.com/) is a paid product featuring JavaScript Obfuscation capabilities. When it comes to obfuscating JavaScript, it is the gold standard.

This is what the internet proclaimed as I read it [1]. However, it was truly difficult to assess how accurate these claims are; essentially the only public obfuscation examples they provide are:

https://jscrambler.com/products/code-integrity/javascript-obfuscation

@nstarke
nstarke / decrypting-dlink-proprietary-firmware-images.md
Last active April 3, 2024 11:05
Decrypting DLINK Proprietary Firmware Images
@nstarke
nstarke / html5-elements.json
Created August 9, 2015 23:12
List of all HTML5 elements structured in a JSON document
[
{
"name": "a",
"start": "<a>",
"end": "</a>"
},
{
"name": "abbr",
"start": "<abbr>",
"end": "</abbr>"
@nstarke
nstarke / iowa-house-video-grabber.sh
Created March 22, 2016 23:28
A short script to download Iowa House Video slices and reassemble them using FFMPEG
#!/bin/bash
# Example of Base URL: http://sg001-vod.sliq.net/00285-vod/_definst_/2016/03/House%20in%20Session_2016-03-22-13.58.50_2461_2.mp4
BASEURL=$1
# MAX only works up to 999 because of "seq -f "%03g". Change "%03g" as your order of magnitude increases.
MAX=$2
for i in $(seq -f "%03g" 0 $MAX); do
wget "$BASEURL/media_$i.ts" -O /tmp/video-$i.mp4
done