Skip to content

Instantly share code, notes, and snippets.

View joshspicer's full-sized avatar
💭
¯\_(ツ)_/¯

Josh Spicer joshspicer

💭
¯\_(ツ)_/¯
View GitHub Profile
# Reverse Shell for Azure VMs
# Author: Josh Spicer <hello@joshspicer.com>
#### GOAL ####
# For any Azure Compute Linux VM where you have permission to execute one-off commands via the Azure CLI,
# issues a reverse shell command to the VM and sends the shell back to you over TCP (via an ngrok tunnel)
#### Prereqs ####
# socat
# ngrok
@joshspicer
joshspicer / boot_alert.sh
Last active July 24, 2022 19:41
[OpenWrt] Telegram alert when a new wireless device associates with access point. (http://spcr.me/openwrt-alert)
#!/bin/sh
# Alerts via telegram when a new device joins OpenWRT wireless interface
# write-up at: spcr.me/openwrt-alert
#
# ~ note ~
# Call from in /etc/rc.local
TELEGRAM="https://api.telegram.org/bot<YOUR_API_KEY>/sendMessage?chat_id=<YOUR_CHAT_ID_HERE>&text="
#!/bin/bash
airmon-ng check kill
airmon-ng start wlan1
ifconfig wlan1mon up 192.168.1.1 netmask 255.255.255.0
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables --append FORWARD --in-interface wlan1mon -j ACCEPT
@joshspicer
joshspicer / govee.py
Created December 6, 2020 14:53
Govee 5072 Bluetooth LE
#!/usr/bin/env python3
# Taken from: https://github.com/Thrilleratplay/GoveeWatcher/blob/master/python/goveeWatcher.py
# Tested with Govee Temp/Humidity BT LE (model 5072)
from time import sleep
import os
import sys
from bleson import get_provider, Observer, UUID16
@joshspicer
joshspicer / running_average.py
Created March 25, 2020 12:06
Demonstrates calculating running average without maintaining a list of past values.
#!/usr/bin/env python3
"""
Demonstrates calculating running average without maintaining a list of past values.
"""
nums = [55,2,591,5,31,73,7823,8,11,952,4,75,2,1000,1]
def classic_average():
avg = sum(nums) / len(nums)
#!/bin/bash
##################
NUM_ARGS=1
RED='\033[0;31m'
YELLOW='\033[0;33m'
NC='\033[0m' # No Color
##################
import requests
import threading
import logging
import sys
URL = "https://challenges.ncc.ninja/<ID>/"
headers = {"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
"X-Requested-With": "XMLHTTPRequest"}
logging.basicConfig(
#!/bin/bash
# Builds, zips, and uploads server code to AWS Lambda
# Place in root folder at SAME LEVEL as `/server`
# aws-cli must be configured. Will use default aws account.
ZIPNAME=<ANY NAME>
REGION=<YOUR REGION>
if [ "$#" -ne 1 ]; then
#!/bin/bash
# Use with `launchService.sh`
if [ "$#" -ne 2 ]; then
echo "[-] Usage: ./removeIntance.sh <aws profile name> <identifier.txt>"
echo "Identifier must be in this directory. Include the .txt"
exit 1
fi
#!/bin/bash
# Written by Josh Spicer (Oct. 7, 2018)
# Creates a new EC2 instance based on a clean image taken previously.
# Prereqs:
# - aws-cli in user path
# - aws creds (aws configure --profile <profile name>) as first argument
# `jq` installed in user path