Skip to content

Instantly share code, notes, and snippets.

View fionn's full-sized avatar
🦨
wars are waged by technicians

Fionn Fitzmaurice fionn

🦨
wars are waged by technicians
View GitHub Profile
@fionn
fionn / 200-hardening.conf
Created July 12, 2022 16:32
SSHd hardening
PermitRootLogin no
PasswordAuthentication no
KbdInteractiveAuthentication no
AllowAgentForwarding no
MaxAuthTries 1
MaxSessions 3
KexAlgorithms [email protected],curve25519-sha256,[email protected]
@fionn
fionn / fix_twitter.filters
Created July 5, 2022 06:50
Blocklist to remove liked and recommended tweets from the Twitter timeline
! https://www.reddit.com/r/uBlockOrigin/wiki/solutions#wiki_twitter
! My Timeline - no inserted sections (Who to follow/Topics to follow, etc.)
twitter.com##[aria-label="Timeline: Your Home Timeline"] div[style^="transform: translateY"][style*="position: absolute;"]:not(:first-child:has-text(/^Show \d\d? Tweets?$/)):not(:has(>div:only-child:empty, article, [href^="/i/status/"], [role="progressbar"])):style(opacity: 0.2 !important)
! Other Timelines - no inserted sections (Who to follow/Topics to follow, etc.)
twitter.com##[aria-label$="’s Tweets"] div[style^="transform: translateY"][style*="position: absolute;"]:not(:has(>div:only-child:empty, article, [href^="/i/status/"], [role="progressbar"])):style(opacity: 0.2 !important)
! [User] liked
twitter.com##:is([aria-label="Timeline: Your Home Timeline"], [aria-label$="’s Tweets"]) article :not([role="button"]>div>div>svg>g>path)[d$="13.157H12z"]:upward(article):style(opacity: 0.2 !important)
! [User] Retweeted
!twitter.com##:is([aria-label="Timeline: Your Home
@fionn
fionn / k8shell
Created January 3, 2022 05:13
Get a shell on a k8s pod
#!/usr/bin/env bash
# Usage: k8shell namespace/pod.
set -euo pipefail
mapfile -d "/" -t ns_pod <<< "$1"
if [ "${#ns_pod[@]}" == 2 ]; then
ns="${ns_pod[0]}"
@fionn
fionn / san.sh
Last active July 8, 2022 13:08
Server name
#!/bin/bash
set -euo pipefail
echo | openssl s_client -servername "$1" -connect "$1":443 2>/dev/null | openssl x509 -noout -text | grep -A 1 "X509v3 Subject Alternative Name:" | grep "DNS:" | tr -d "DNS:" | tr -d " " | tr "," "\n"
@fionn
fionn / secure_object.py
Last active October 7, 2021 18:22
Dumb idea for intrinsic timing-attack-resistant Python object comparison
#!/usr/bin/env python3
import hmac
class SecureObject(bytes):
"""Bytes that can be compared safely"""
def __eq__(self, other: object) -> bool:
return hmac.compare_digest(self, other) # type: ignore
@fionn
fionn / tf-workspace-mv.sh
Last active September 7, 2021 06:17
Move or rename a Terraform workspace
#!/bin/bash
# Move the current workspace to the given name, along with all associated state.
# Deals with the special case default workspace in the least surprising way.
set -euo pipefail
export TF_INPUT=0
export TF_IN_AUTOMATION=1
#!/bin/bash
if [[ $EUID -ne 0 ]]; then
echo "You must be root"
exit 1
fi
service="Wi-Fi"
while true; do
@fionn
fionn / 00-cash-out-handshake.md
Last active May 27, 2021 11:08
Cashing out the Handshake Airdrop

Handshake Airdrop Withdrawal

Copied mostly from hs-airdrop/issues/2.

Warning

This assumes that the hs-airdrop code is not (necessarily) trustworthy, but also that it:

  • is not capable of escaping the docker container; and
  • does not leak your SSH private key material in its proof output.
@fionn
fionn / android_virtual_device_hardware_profile_options.txt
Created October 7, 2020 09:11
Android virtual device hardware profile options
PlayStore: Does the device supports Google Play?
PlayStore.enabled [no]:
avd home that was used during the construction of this hardware.ini: This can be used by post processing tools to migrate snapshots
android.avd.home []:
sdk root that was used during the construction of this hardware.ini: This can be used by post processing tools to migrate snapshots
android.sdk.root []:
ID of the AVD being run:
@fionn
fionn / android_mac.md
Created October 7, 2020 08:28
Android emulation on Darwin

Get the Android SDK with brew cask install android-sdk. It has a Java 8 dependency and tells you to install it with brew cask install homebrew/cask-versions/adoptopenjdk8. If you already have another newer version, you must set JAVA_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home.

You now have emulator, sdkmanager and avdmanager.

To save yourself the missing file warnings, touch .android/repositories.cfg.

To make a test VM, run sdkmanager "system-images;android-30;google_apis;x86" to get the base image. You'll have to accept some licenses.