Last active
December 9, 2021 09:04
-
-
Save ptr-yudai/e8e63ed72fbb0565f854c1c93eb206cd to your computer and use it in GitHub Desktop.
BSides AHM Port Checker
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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