Skip to content

Instantly share code, notes, and snippets.

View joswr1ght's full-sized avatar

Joshua Wright joswr1ght

View GitHub Profile
joswr1ght /
Created March 13, 2024 17:25
Resolve NLTK utlopen error to work in offline mode
# NLTK makes the assumption that users are online when importing the library.
# This is partly to automate the download or corpus files and other aassets,
# but if those files already exist then offline mode is problematic. `import nltk`
# will still work, but it takes a while to timeout, producing errors:
# [nltk_data] Error loading averaged_perceptron_tagger: <urlopen error
# [nltk_data] [Errno -3] Temporary failure in name resolution>
# [nltk_data] Error loading punkt: <urlopen error [Errno -3] Temporary
# [nltk_data] failure in name resolution>
# [nltk_data] Error loading stopwords: <urlopen error [Errno -3]
joswr1ght /
Created August 2, 2023 11:24
Search Package for Keyword, Display Matching Group and Short Title
#!/usr/bin/env python3
import json
import sys
if (len(sys.argv) != 3):
sys.stderr.write('Search RIO Package for string, identify matching group'
' and short title\n')
sys.stderr.write(f'Usage: {sys.argv[0]} package_export.json "keyword"\n')
joswr1ght /
Created June 8, 2023 19:55
Using a NT hash and a cracked LANMAN password, brute-force all possible capitalization permutations to find the correct NT hash password
#!/usr/bin/env python3
# Most of this code is from @clr2of8's Domain Password Audit Tool:
import hashlib
import os
import sys
import textwrap
def wrap(body):
joswr1ght / Copy-RemoteWindowsEventLogs.ps1
Last active March 17, 2024 01:42
PowerShell script to copy event logs from one or more remote systems to the local file system
# Input parameters
param (
joswr1ght / summarizelinks.js
Created April 22, 2023 18:22
summarizelinks.js - JavaScript to get a summary of links from an open webpage using the browser inspector console
joswr1ght /
Created January 4, 2023 13:58
Add this code to Python scripts to debug HTTP requests activity and see request/response data
import logging
import requests
import http.client
http.client.HTTPConnection.debuglevel = 1
requests_log = logging.getLogger("requests.packages.urllib3")
requests_log.propagate = True
joswr1ght /
Created November 16, 2022 11:10
Consistently replace the IP addresses in the first column of a log file with a random IP
#!/usr/bin/env python3
# Anonymize the first column (delimited by space) IPv4 address in an ASCII file with a
# consistent IP address that excludes RFC1918 and other internal network IP addresses.
# You can use this to take an Apache (or Nginx or probably other log files as well) file
# and change each of the source IP addresses to another value that is preserved consistently
# throughout the output log file.
# Changes to the log file are written to STDOUT, so run this as
# ` access.log > new-access.log`.
# 2022-11-16 Joshua Wright
joswr1ght / profile.ps1
Created November 12, 2022 12:24
Add newline to PowerShell prompt between present directory and the PS > indicator
function prompt {
"$pwd`nPS > "
joswr1ght /
Created October 1, 2022 12:14
Enumerate AWS User/Identity Privileges with AWS CLI and Bash
# CC-BY-SA 4.0
function getUserIamPermissions() {
export AWS_PAGER="";
local _user="${1}";
local outputManagedPolicies="";
local outputUserPolicies="";
local outputManagedGroupPolicies="";
joswr1ght / asciidoctor-vimrc
Created September 9, 2022 14:47
VIM settings for Asciidoctor ease-of-use and quality-of-life
" Insert the template file for an Asciidoc listing. This file is essentially
" this text:
" .Caption
" [[listing-]]
" [subs="+quotes,+replacements"]
" ----
" ----
" Customize the file and the file path as needed.
function! InsertAsciidocListing()