Skip to content

Instantly share code, notes, and snippets.

@ptr-yudai
Last active December 9, 2021 09:04
Show Gist options
  • Save ptr-yudai/e8e63ed72fbb0565f854c1c93eb206cd to your computer and use it in GitHub Desktop.
Save ptr-yudai/e8e63ed72fbb0565f854c1c93eb206cd to your computer and use it in GitHub Desktop.
BSides AHM Port Checker
import socket
import threading
import datetime
JST = datetime.timezone(datetime.timedelta(hours=+9), 'JST')
challs = {
"pwn": [
{"name": "BabyBOF:RCE", "port": 9001, "host": "pwn2.bsidesahmedabad.in", "release": datetime.datetime(2021, 11, 6, 12)},
{"name": "httpsaba", "port": 9080, "host": "pwn.bsidesahmedabad.in", "release": datetime.datetime(2021, 11, 6, 12, 30)},
{"name": "BabyBOF:SBX", "port": 9002, "host": "pwn2.bsidesahmedabad.in", "release": datetime.datetime(2021, 11, 6, 12, 30)},
{"name": "Write as a Service", "port": 9090, "host": "pwn.bsidesahmedabad.in", "release": datetime.datetime(2021, 11, 6, 12, 30)},
{"name": "padnote", "port": 9003, "host": "pwn.bsidesahmedabad.in", "release": datetime.datetime(2021, 11, 6, 12, 30)},
{"name": "shared knote", "port": 9011, "host": "pwn3.bsidesahmedabad.in", "release": datetime.datetime(2021, 11, 6, 12, 30)},
],
"web": [
{"name": "entrance", "port": 8001, "host": "web.bsidesahmedabad.in", "release": datetime.datetime(2021, 11, 6, 12)},
{"name": "Roda", "port": 8080, "host": "web.bsidesahmedabad.in", "release": datetime.datetime(2021, 11, 6, 12, 30)},
{"name": "pugpug", "port": 3000, "host": "pugpug.web.ctf.bsidesahmedabad.in", "release": datetime.datetime(2021, 11, 6, 12, 30)},
{"name": "bettercatalog", "port": 443, "host": "bettercatalog.xyz", "release": datetime.datetime(2021, 11, 6, 12, 30)},
{"name": "neutron", "port": 1337, "host": "electron.lol", "release": datetime.datetime(2021, 11, 6, 12)},
],
"rev": [
{"name": "King's License", "port": 10777, "host": "rev.bsidesahmedabad.in", "release": datetime.datetime(2021, 11, 6, 12, 30)},
{"name": "Collapsed License", "port": 10765, "host": "rev.bsidesahmedabad.in", "release": datetime.datetime(2021, 11, 6, 12, 30)},
{"name": "catflap", "port": 10029, "host": "rev2.bsidesahmedabad.in", "release": datetime.datetime(2021, 11, 6, 12, 30)},
],
"misc": [
{"name": "qunknown", "port": 10907, "host": "misc.bsidesahmedabad.in", "release": datetime.datetime(2021, 11, 6, 12, 30)},
],
}
def check(category, chall):
name, port, host, release = chall['name'], chall['port'], chall['host'], chall['release']
release = release.astimezone(JST)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(1)
try:
r = s.connect_ex((host, port))
if r == 0:
print(f"\x1b[32m\x1b[1m[{category}] {name}: OPEN ({host}:{port})\x1b[0m", end='')
if release <= datetime.datetime.now(JST):
print(f"\t--> \x1b[36m\x1b[1mOK (Schedule: {release})\x1b[0m")
else:
print(f"\t--> \x1b[31m\x1b[1mClose It (Schedule: {release})\x1b[0m")
else:
print(f"\x1b[33m\x1b[1m[{category}] {name}: CLOSED ({host}:{port})\x1b[0m", end='')
if release > datetime.datetime.now(JST):
print(f"\t--> \x1b[36m\x1b[1mOK (Schedule: {release})\x1b[0m")
else:
print(f"\t--> \x1b[31m\x1b[1mOpen It (Schedule: {release})\x1b[0m")
s.close()
except socket.gaierror as e:
print(f"\x1b[41m\x1b[37m\x1b[1m[{category}] {name}: Critical ({e})\x1b[0m")
if __name__ == '__main__':
for category in challs:
thList = []
for chall in challs[category]:
th = threading.Thread(target=check, args=(category, chall))
th.start()
thList.append(th)
for th in thList:
th.join()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment