Skip to content

Instantly share code, notes, and snippets.

#!/usr/bin/env python3
"""Cross platform, rootless, and fast debootstrap.
Designed to work anywhere you can run Python and Docker/Podman (e.g. a Mac laptop).
* Tested only with Ubuntu Focal and Jammy
* Right now LZMA decoding takes up most of the time. Parallelize it? Python's LZMA
library does release the GIL.
"""
@hashbrowncipher
hashbrowncipher / bootstrap.sh
Created March 7, 2022 21:44
Lambda S3->AMI converter
#!/bin/bash
# Copyright 2021 Josh Snyder
# See license and documentation in lambda_function.py
set -x -o errexit -o nounset
ebs_name() {
nvme id-ctrl -o binary $1 | cut -c3073-3104 | tr -d ' '
}
export AWS_DEFAULT_REGION=$AWS_REGION
@hashbrowncipher
hashbrowncipher / Cryptography and Computer Privacy.txt
Created October 20, 2021 05:57
Cryptography and Computer Privacy by Horst Fiestel
Scientific American
May 1973
Volume 228
Number 5
Cryptography and Computer Privacy
by Horst Fiestel
Computer systems in general and personal "data banks" in particular
need protection. This can be achieved by enciphering all material and authenticating
@hashbrowncipher
hashbrowncipher / loader.c
Created August 21, 2021 22:35
A little x86-64 loader for Linux's binfmt_misc.
/*
* A little x86-64 loader for Linux's binfmt_misc.
*
* Compile with: gcc -O3 -static -nostdlib -o loader loader.c
*
* Register as:
* mount -t binfmt_misc none /proc/sys/fs/binfmt_misc
* echo ':amd64:E::amd64::/path/to/loader:O' > /proc/sys/fs/binfmt_misc/register
*
* Then just run your favorite shellcode. Sample:
@hashbrowncipher
hashbrowncipher / benchmark.txt
Created August 17, 2021 16:31
ec2-boot-bench: Ubuntu at 2.85 seconds (median)
Moving from running to port closed took: 3.147979 s
Moving from port closed to port open took: 0.000000 s
Moving from running to port closed took: 2.366330 s
Moving from port closed to port open took: 0.000000 s
Moving from running to port closed took: 2.998677 s
Moving from port closed to port open took: 0.000000 s
Moving from running to port closed took: 2.605815 s
Moving from port closed to port open took: 0.024404 s
Moving from running to port closed took: 2.754971 s
Moving from port closed to port open took: 0.009866 s
@hashbrowncipher
hashbrowncipher / notes.txt
Created July 16, 2021 23:22
boot in 1853ms
- this uses a squashfs root image with a writable overlay
- only a single application service is running (sshd)
- the instance was a c5.large that had already booted once
@hashbrowncipher
hashbrowncipher / notes.txt
Created July 13, 2021 11:30
boot in 2761ms
- This run was on a c5.large which had been booted up before
- Set MODULES=dep in /etc/initramfs-tools/initramfs.conf
- Deleted a bunch of initramfs-tools hooks, including especially: iscsi mdadm lvm2
- Removed a bunch of stock ubuntu services
* snapd
* ec2-instance-connect
* cryptsetup-initramfs
* udisks2
* unattended-upgrades
* plymouth
josh@ubuntu:~/hasher$ dd if=/dev/zero bs=65536 count=16384 | ./xxHash/xxh128sum
16384+0 records in
16384+0 records out
16024760318c6298efd1151033ad2e9f stdin
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 0.23966 s, 4.5 GB/s
josh@ubuntu:~/hasher$ dd if=/dev/zero bs=65536 count=16384 | ./a.out
16384+0 records in
16384+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 0.210685 s, 5.1 GB/s
16024760318c6298efd1151033ad2e9f
@hashbrowncipher
hashbrowncipher / CGroupThreads.java
Created January 10, 2019 22:14
a java PoC for launching threads into CGroups
import java.io.IOException;
import java.lang.Runnable;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.concurrent.Executors;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.ThreadFactory;
public class CGroupThreads {
static class CGThread extends Thread {
from aiohttp.client_exceptions import ClientError
import asyncio
from asyncio import Queue
from aiohttp.resolver import AsyncResolver
import json
import os
import random
from blake3 import blake3
from hashlib import md5
from socket import socketpair