Skip to content

Instantly share code, notes, and snippets.

View t04glovern's full-sized avatar
🎯
Watching Speed-runs while i code

Nathan Glover t04glovern

🎯
Watching Speed-runs while i code
View GitHub Profile
@t04glovern
t04glovern / playbook.yml
Created April 26, 2022 13:52
Ansible ignore all future tasks for unreachable hosts
---
- name: Identify reachable hosts
hosts: all
connection: local
gather_facts: false
tasks:
- block:
- name: determine hosts that are reachable
ansible.builtin.wait_for_connection:
@t04glovern
t04glovern / .bash_profile
Created March 2, 2022 04:01
Windows Subsystem for Linux: never prompt ssh passphrase again
# Auto start keychain
eval $(/usr/bin/keychain --eval --quiet id_rsa)
@t04glovern
t04glovern / stackset-deployer.sh
Last active July 7, 2021 07:35
AWS CloudFormation Stackset Update/Create 1-click deploy - w/ ControlTower support
#!/bin/bash
STACKSET_NAME="template-us-west-2-shared-services"
STACKSET_REGION="us-west-2"
STACKSET_DEPLOYMENT_REGIONS="us-west-2"
STACKSET_DEPLOYMENT_ACCOUNTS="123456789012"
ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)
STACK_STATE=$(aws cloudformation describe-stack-set --stack-set-name "$STACKSET_NAME" --region "$STACKSET_REGION" --query "StackSet.StackSetName" 2>/dev/null)
if [ -z "$STACK_STATE" ]
@t04glovern
t04glovern / setup.sh
Created May 1, 2020 12:54
michalgutowski/cka-lab Bootstrap
# on ckamaster1
sudo -i
apt install docker.io kubeadm=1.15.1-00 kubectl=1.15.1-00 kubelet=1.15.1-00
kubeadm init --config=kubeadm-config.yaml --upload-certs| tee kubeadm-init.out
## OUTPUT
# kubeadm join ckamaster:6443 --token 4gttsi.cpkvihy9jwb8o8aq \
# --discovery-token-ca-cert-hash sha256:c70ef81c9dd7064432a255b9f617e8c3c83b4cce64db17e2518c32b0e3aaf460
exit
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
@t04glovern
t04glovern / greengrass-cdk.ts
Created November 9, 2019 08:10
Example of Greengrass Core deployment with AWS CDK
import cdk = require('@aws-cdk/core');
import greengrass = require('@aws-cdk/aws-greengrass');
import lambda = require('@aws-cdk/aws-lambda');
import { CfnCustomResource } from '@aws-cdk/aws-cloudformation';
import { PolicyStatement, Role, ServicePrincipal, CompositePrincipal } from '@aws-cdk/aws-iam';
import { group_deployment_reset_code } from '../lib/code/group_deployment_reset';
import { thing_vendor_code } from '../lib/code/thing_vendor';
@t04glovern
t04glovern / handler.py
Created August 16, 2019 14:36
selfie.handler.py
from cgi import parse_header, parse_multipart
from io import BytesIO
import base64
def selfie(event, context):
body = event['body']
print(type(body))
print(body)
content_type, property_dict = parse_header(
@t04glovern
t04glovern / ssrf.js
Last active July 16, 2019 07:42
ssrf.js
//////////////////////////////////////////
// SSRF Demo App
// Node.js Application Vulnerable to SSRF
// Written by Seth Art <[email protected]>
// MIT Licensed
//////////////////////////////////////////
var http = require('http');
var needle = require('needle');
var express = require('express');
@t04glovern
t04glovern / accessToken.sh
Last active June 9, 2019 12:48
IAM User - cloudformation - route53 - GetAccess
#!/bin/sh
# Wait for stack to finish creating
aws cloudformation wait stack-create-complete --stack-name iam-route53-user
# Get AccessKey to variable
ACCESS_KEY=$(aws cloudformation describe-stacks --stack-name iam-route53-user \
--query 'Stacks[0].Outputs[?OutputKey==`AccessKey`].OutputValue' \
--output text)
@t04glovern
t04glovern / route53.yaml
Created June 9, 2019 12:38
IAM User - cloudformation - route53
AWSTemplateFormatVersion: '2010-09-09'
Parameters:
Password:
NoEcho: 'true'
Type: String
Description: New account password
MinLength: '1'
MaxLength: '41'
ConstraintDescription: the password must be between 1 and 41 characters
@t04glovern
t04glovern / getUserTimezone.js
Created December 10, 2018 14:21
getUserTimezone
function getUserTimezone(event, callback) {
if (event.context.System.apiAccessToken) {
// Invoke the entitlement API to load timezone
const options = {
host: 'api.amazonalexa.com',
path: '/v2/devices/' + event.context.System.device.deviceId + '/settings/System.timeZone',
method: 'GET',
timeout: 1000,
headers: {
'Content-Type': 'application/json',