changed tags for ek_facility and added VPN tests

This commit is contained in:
Nico Melone
2025-02-20 17:11:50 -06:00
parent 2013abb662
commit 0b8787d7b9
11 changed files with 202 additions and 9 deletions

31
VPN/UniFi/unifi.ovpn Normal file
View File

@@ -0,0 +1,31 @@
client
dev tun
proto tcp
remote 216.82.205.207 1194
resolv-retry infinite
nobind
# Downgrade privileges after initialization (non-Windows only)
user nobody
group nogroup
persist-key
persist-tun
auth-user-pass
remote-cert-tls server
cipher AES-256-CBC
comp-lzo
verb 3
auth SHA1
key-direction 1
reneg-sec 0
redirect-gateway def1
ca unifi_ca.crt
cert unifi_client.crt
key unifi_client.key
tls-auth unifi_tls.key 1

26
VPN/UniFi/unifi_ca.crt Normal file
View File

@@ -0,0 +1,26 @@
-----BEGIN CERTIFICATE-----
MIIEfDCCA2SgAwIBAgIIA0R07HDJsWIwDQYJKoZIhvcNAQELBQAwgYExCzAJBgNV
BAYTAlVTMREwDwYDVQQIDAhOZXcgWW9yazERMA8GA1UEBwwITmV3IFlvcmsxFjAU
BgNVBAoMDVViaXF1aXRpIEluYy4xGTAXBgNVBAsMEFVuaUZpX09wZW5WUE5fQ0Ex
GTAXBgNVBAMMEFVuaUZpX09wZW5WUE5fQ0EwHhcNMjQwNTE0MTUwNzE1WhcNMzkw
NTExMTUwNzE1WjCBgTELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE5ldyBZb3JrMREw
DwYDVQQHDAhOZXcgWW9yazEWMBQGA1UECgwNVWJpcXVpdGkgSW5jLjEZMBcGA1UE
CwwQVW5pRmlfT3BlblZQTl9DQTEZMBcGA1UEAwwQVW5pRmlfT3BlblZQTl9DQTCC
ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALqJRitzCBAP6TVctoTuWZhR
wuMoxnwIJ+pffJAhw8fQH5ni7oimp/szCo3m49PwwdbX2vV1lu0BouUszCaLIX4p
zP3cVx82iUM/DSDnFOlStIKT/fVfxhMa9rIz2VsAmFm/J51O7CPusZXacd4w/VU4
TxJzbNmJIhHIsiRyTeyuXQ70NAh2ltrQd1mV/t/QGaLP5VtuKYbMmTsImduWUjep
6MOmla6m+jwjjxdWr64E0U1QnwRp5ODMU+jDicAhjAJ+sISByMpNsDkZXefo1Daq
d56pOpu8Me625lCR/LnT8UYigYJZ+1z1qBYfCn1BwMPZqbYHRAVcSfIHfISZ1f0C
AwEAAaOB9TCB8jALBgNVHQ8EBAMCAQYwDAYDVR0TBAUwAwEB/zCBtQYDVR0jBIGt
MIGqgBQXKaRymujXM7SDGzRjwKHXYyEeJKGBh6SBhDCBgTELMAkGA1UEBhMCVVMx
ETAPBgNVBAgMCE5ldyBZb3JrMREwDwYDVQQHDAhOZXcgWW9yazEWMBQGA1UECgwN
VWJpcXVpdGkgSW5jLjEZMBcGA1UECwwQVW5pRmlfT3BlblZQTl9DQTEZMBcGA1UE
AwwQVW5pRmlfT3BlblZQTl9DQYIIA0R07HDJsWIwHQYDVR0OBBYEFBcppHKa6Ncz
tIMbNGPAoddjIR4kMA0GCSqGSIb3DQEBCwUAA4IBAQBLdExSs2TbQ7YOigHVjGhB
Gy2akr3a5N1Tvrt5pn4ZjuB58cxNaUVem33fQn0TQ3aW0P/HrqVja6MbBhhA7TEw
7oLbfuIjAaGHwpuLdN56AzesvqlUIpUreizPj4AO3E3s3x/gmtdLMW8Jjv0xLtSV
GXbptinfP40QdWRUAAEENdOU2+sWknaYEJDOm/2poM5l8o+emr1THMrGhQ/3emVy
eb/iApCKVtAxdz+kOmb6gCDGkfrjisgQz8/BrT+Q+KatEPhIckBCsh1Q3jyjLSFD
HOPQIXjc9xC5Q/yAaBc3MGejVjdqEDGtZEpteUYu9A8Ld3d2z6aaobpmxbEh+pkL
-----END CERTIFICATE-----

View File

@@ -0,0 +1,27 @@
-----BEGIN CERTIFICATE-----
MIIEmDCCA4CgAwIBAgIIZWuMvlBLrI8wDQYJKoZIhvcNAQELBQAwgYExCzAJBgNV
BAYTAlVTMREwDwYDVQQIDAhOZXcgWW9yazERMA8GA1UEBwwITmV3IFlvcmsxFjAU
BgNVBAoMDVViaXF1aXRpIEluYy4xGTAXBgNVBAsMEFVuaUZpX09wZW5WUE5fQ0Ex
GTAXBgNVBAMMEFVuaUZpX09wZW5WUE5fQ0EwHhcNMjQwNTE0MTUwNzE1WhcNMjkw
NTEzMTUwNzE1WjCBiTELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE5ldyBZb3JrMREw
DwYDVQQHDAhOZXcgWW9yazEWMBQGA1UECgwNVWJpcXVpdGkgSW5jLjEdMBsGA1UE
CwwUVW5pRmlfT3BlblZQTl9DbGllbnQxHTAbBgNVBAMMFFVuaUZpX09wZW5WUE5f
Q2xpZW50MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwngmvLPFNe6z
o9ujaboYwOdnyvV1v794m6LJ9zFSCyLNfv8G5IaRVmwe7aUCaIKmsb9LaqMegfbt
qnqoSj/fUPmcTjn0rWosbGOwdQyJ8fi4miw/JifI/pHubxzb2NpRCZtut/vEVsZI
NEUcfkOasRWm9KDm6YUJ9+fQn9BuoOH9koNBi7NNn+2eFIOiv0LLQcWIC9D3hbOH
mwPJfHhRmwhMFP98wud64N/N65DF9M83aK3bjKijVwBMHjjySP1nQ4TM0ee8vb9O
gy9M2dSU2RCKA6/9w/JiH9iOwFo9qDQkGI7Mbhh7XiWkyauWXhr/XefFQk/DDPcQ
vUiB7vzOQwIDAQABo4IBCDCCAQQwgbUGA1UdIwSBrTCBqoAUFymkcpro1zO0gxs0
Y8Ch12MhHiShgYekgYQwgYExCzAJBgNVBAYTAlVTMREwDwYDVQQIDAhOZXcgWW9y
azERMA8GA1UEBwwITmV3IFlvcmsxFjAUBgNVBAoMDVViaXF1aXRpIEluYy4xGTAX
BgNVBAsMEFVuaUZpX09wZW5WUE5fQ0ExGTAXBgNVBAMMEFVuaUZpX09wZW5WUE5f
Q0GCCANEdOxwybFiMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgeAMBMGA1UdJQQMMAoG
CCsGAQUFBwMCMB0GA1UdDgQWBBQx7O3PhTotnfFnE65Zfp/Ot9ZeTzANBgkqhkiG
9w0BAQsFAAOCAQEASnV26/u3aSR37DFhByeUteyWdYLN6mlTpjaA3DtkNZ702m/g
+ifvLlYQiTJstueF4qBoebZc68dqd3m4f8eqk4MzEoBrcsDNrNeuaH8cgz+8xq+/
5IBZKOQt47CPjh+htpLgW1FaIw4pNoBJZK/RVaiLNorJy5TnOEh38KoeGX9ZULmD
dJM0te6E5Twk82nNIiIg0uZTCT77FWGhsihXwK+1tO+3ph/vXhjUMrkmUeHLto5+
6rPYDOrbZjG7NKnPnLNTbMQEvSupSP8LOpD4stCpnKvP96rChayDcZG+DXv4y92/
z5vBUYxI4cujkvd51bbEULl5xyGI3mqzEhVvSQ==
-----END CERTIFICATE-----

View File

@@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDCeCa8s8U17rOj
26NpuhjA52fK9XW/v3ibosn3MVILIs1+/wbkhpFWbB7tpQJogqaxv0tqox6B9u2q
eqhKP99Q+ZxOOfStaixsY7B1DInx+LiaLD8mJ8j+ke5vHNvY2lEJm263+8RWxkg0
RRx+Q5qxFab0oObphQn359Cf0G6g4f2Sg0GLs02f7Z4Ug6K/QstBxYgL0PeFs4eb
A8l8eFGbCEwU/3zC53rg383rkMX0zzdorduMqKNXAEweOPJI/WdDhMzR57y9v06D
L0zZ1JTZEIoDr/3D8mIf2I7AWj2oNCQYjsxuGHteJaTJq5ZeGv9d58VCT8MM9xC9
SIHu/M5DAgMBAAECggEAHYxwJmASaR16Aj3PWLNEK5t9s+MUHyySwOM9WOgPlU2W
d+N8QqEH2F/ZWzalZQflGED+zpc2fXzto+e7RnzqC73BuEkqGmd1lIqZN0/Obgvi
0NpERiHpcnTuC8gQx6R0h8csTZxduump8vdFWxIeoSWvFqCUNYtXdmms03uyM5Of
MVSp7WqnXcG9oQjtBBwFg0GfORbtIv7Sddcy9EMXi6AIoVkgi0Qe3FXqrf4rr+Sx
k6vf6wLHnkEIBNj7/sp/HP+gN8K9osibeiv+XohLabsw4zNhjM54jTdUkphgLz5M
tZRI3EN/NPNyXi7IOylIskYJbUZ3i8HBZG2ERoOO0QKBgQDrv0kBRDZr6QUn9u0V
M5Wjw+//qQv/quVDF4RWBsLYzqC6+t4/SvpbqT5TvaBMm3Adr5jVyC/0Im6bVglz
n0SE54jGbTIxTfSfnS2AJWLIcyNo6Mase2InkQR9i7mlwbGtDlJ8xpr9wNWQv5eC
6tOa+M1olYYdjvF7ow6EFHfc1wKBgQDTLQ4NbUN7O2DksPu8+dWGhtqpermzyDG4
VjWLvfJ0xQLwcXC7YEIBpDOGHDr75H5FrJomIwHluyjLhXkm9AFvQIJlHgn8ND7t
jfHzGVth6kFiV4Yd6gJJKwh3KlHbAg5ed124X9vNF5Ao+aWs4H+yQANjBEzj581o
G9k1bvYgdQKBgQC9NfHqSk1Dnuq8gLsYYSahIgnmME+pDAimKKHWSebpDC6E5ASs
2AjIuLWFkJSv57G8ocsRCnMyhtAvbIZ5fkMISKzGVa4LVH4Z/ZUfXOJD7+VjtjB/
DyhgiUwJV7PRDf0E4JHkA6MyNysx2hRIxyC/KSHz5s6VurymduCXsbXiUQKBgA4w
AbivNZBq7diPd2o70remCbzHLQDCG20KBbDswwRLVCY5SNyd2/FmSbvh26ieskkW
DokvYuo/R79cqUYPsKT7zYbjnMIf9HZbSf0OIBCU/22O+ci6twqZZIk1A6jWG4cH
N/myHv9JbPsDwri5oHqmSFP3rv7EzQ0IifBIEysdAoGAPTrU9+QjKeP4Ar7wVKiz
8U2v6ZgqKGZYD3l9PeHeT/pgebIxv+H0RC3VdtHg0WAi2v/LrI+Lgk62/EuwpuPR
NUuGwpvUGIn1l9vVNrAqI60bibFYGtigvkLpllvFXDmdONiFz5pxFm7DzPifczTL
jl+qzuis45TK6vypRtZa6t0=
-----END PRIVATE KEY-----

18
VPN/UniFi/unifi_tls.key Normal file
View File

@@ -0,0 +1,18 @@
-----BEGIN OpenVPN Static key V1-----
e966ec45ce5404440fea2dc1e09a2c80
7e64f634f8041c89effd0f2cd9d2698b
d0e7802a8243373c595d113b3b0aafb4
b73a5c15ad6353ef8d62f638f5afc341
92fe64d292dd72bb1fe4585cfdde7fe8
1411302e1aa7027363728cca2b74269e
bad9547ea7d580b6e18204b50b089809
ead0c8661bc10badbb627a1e384f9961
88b06771e7827fbdc02843e4a11db54e
c847166f065d303683e42059096bcc51
5687ec7b80b791610cd5bc98d0e9bc29
fbc7da5f81bd00069b59ed0bc3fb0979
616d7dfb2332cdb945925716dbf67c66
969774aac0d2e15f5c64dc11cf1dd427
489ad83a29ffd9b47764dbaeb0e8c3d8
d085b7495395290d451dcbe21afd11c0
-----END OpenVPN Static key V1-----

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

51
VPN/extract_creds.py Normal file
View File

@@ -0,0 +1,51 @@
import os
import re
import argparse
def extract_and_save(ovpn_path):
"""Extracts certificates/keys from an .ovpn file and saves them as separate files in the same directory."""
# Check if file exists
if not os.path.isfile(ovpn_path):
print(f"Error: File '{ovpn_path}' not found.")
return
# Define regex patterns for extracting sections
sections = {
"ca": r"<ca>(.*?)</ca>",
"cert": r"<cert>(.*?)</cert>",
"key": r"<key>(.*?)</key>",
"tls-auth": r"<tls-auth>(.*?)</tls-auth>"
}
# Read the .ovpn file
with open(ovpn_path, "r", encoding="utf-8") as file:
data = file.read()
# Get directory of the .ovpn file
output_dir = os.path.dirname(ovpn_path) or "."
# Loop through sections and extract data
for name, pattern in sections.items():
match = re.search(pattern, data, re.DOTALL)
if match:
content = match.group(1).strip()
filename = f"{name.replace('-', '_')}.crt" if name in ["ca", "cert"] else f"{name.replace('-', '_')}.key"
file_path = os.path.join(output_dir, filename)
with open(file_path, "w", encoding="utf-8") as f:
#f.write(f"-----BEGIN {name.upper()}-----\n")
f.write(content + "\n")
#f.write(f"-----END {name.upper()}-----\n")
print(f"Extracted: {file_path}")
print("Extraction complete!")
# Command-line argument handling
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Extract certificates and keys from an OpenVPN .ovpn file.")
parser.add_argument("ovpn_file", help="Path to the OpenVPN .ovpn configuration file")
args = parser.parse_args()
extract_and_save(args.ovpn_file)