Skip to content

Instantly share code, notes, and snippets.

View bgrewell's full-sized avatar

Ben Grewell bgrewell

View GitHub Profile
@bgrewell
bgrewell / procwatcher.go
Last active April 19, 2018 15:22
ProcWatcher is a tool to watch newly created processes on a Linux system. The main purpose of this was to have a way to watch for very short lived randomly executed processes so that their command line arguments could be captured. Note: This is intentinally designed to run under conditions with minimal privillages and no external dependencies.
package main
import (
"fmt"
"io/ioutil"
"log"
"strings"
)
// Map to hold a list of "currently running" processes.
@bgrewell
bgrewell / bash64coder.py
Last active May 11, 2018 01:06
bash64coder.py is a simple python script for creating base64 encoded payloads that have any undesirable character sequences quoted out. It was written as a tool for generating base64 encoded bash payload that could pass through a WAF that was filtering out commands (and subsequently would also block any base64 strings that happened to contain so…
import base64
SEQUENCE_FILE = "blocked_commands.txt"
filtered_sequences = [
]
def LoadFilteredSequences(wordlist):
'''
Loads a list of character sequences which aren't allowed in our final output
package main
import (
"net"
"fmt"
"math/rand"
"flag"
"bufio"
"os"
"strconv"
@bgrewell
bgrewell / msf.lnk.hex
Last active October 23, 2018 20:52
msf.lnk file in hex view
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
=====================================================
000 | 4C 00 00 00 01 14 02 00 00 00 00 00 C0 00 00 00
010 | 00 00 00 46 81 00 00 00 00 00 00 00 00 00 00 00
020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
030 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
040 | 00 00 00 00 00 00 00 00 00 00 00 00 80 00 14 00
050 | 1F 00 E0 4F D0 20 EA 3A 69 10 A2 D8 08 00 2B 30
060 | 30 9D 14 00 2E 1E 20 20 EC 21 EA 3A 69 10 A2 DD
070 | 08 00 2B 30 30 9D 56 00 00 00 00 00 00 00 00 00
import sys
import struct
import codecs
import binascii
sample_string = """
4C 00 00 00 01 14 02 00 00 00 00 00 C0 00 00 00
00 00 00 46 81 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Usage Examples for WEMO REST API version 1

Overview

Conventions

  1. REST calls follow standard convention.
REQUEST TYPE  ACTION
@bgrewell
bgrewell / timing-loop.js
Last active January 9, 2020 21:59
Example for getting performance timing from chrome
const puppeteer = require('puppeteer');
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function requestPageTiming(url) {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto("https://www.amazon.com");
@bgrewell
bgrewell / setup-powerline.sh
Last active January 16, 2020 15:52
Simple script to setup powerline
python3 -m pip install git+git://github.com/powerline/powerline
[ -d "~/.local/share/fonts" ] || mkdir -p ~/.local/share/fonts
wget -O ~/.local/share/fonts/PowerlineSymbols.otf https://github.com/powerline/powerline/raw/develop/font/PowerlineSymbols.otf
fc-cache -vf ~/.local/share/fonts/
[ -d "~/.config/fontconfig/conf.d" ] || mkdir -p ~/.config/fontconfig/conf.d/
wget -O ~/.config/fontconfig/conf.d/10-powerline-symbols.conf https://github.com/powerline/powerline/raw/develop/font/10-powerline-symbols.conf
sudo apt install -y fontconfig
sudo apt install -y fonts-powerline
sudo apt install -y powerline-gitstatus
[ -d "~/.config/powerline" ] || mkdir -p "~/.config/powerline"
@bgrewell
bgrewell / netem_crandom_insights.md
Last active January 30, 2020 18:19
Results from some tracing into the calls to get_crandom in sch_netem.c

Insights

The function below is responsible for returning the delay value that is used by the qdisc. If no distribution is specified it is uniform, this is why I didn't see a uniform.dist file in /usr/lib/tc where the other distribution tables are.

mu == latency

sigma == jitter

You can see from the code below that if you don't specify a distribution then it uses the uniform one by default. return ((rnd % (2 * sigma)) + mu) - sigma; in this case rnd is our correlated random number from get_crandom so we take the jitter value sigma and multiply it by 2, then we modulo rnd by this value and add mu our base latency and then subtract sigma to center the jitter

Keybase proof

I hereby claim:

  • I am bgrewell on github.
  • I am bgrewell (https://keybase.io/bgrewell) on keybase.
  • I have a public key ASDBwYR_X1-oN-4crtW0ymT-ce9HZpc9gK_oNzB3WF_fvwo

To claim this, I am signing this object: