4837 Total CVEs
26 Years
GitHub
README.md
Rendering markdown...
POC / poc.py PY
import socket
import sys

def grab_ssh_banner(host, port=22, timeout=5):
    try:
        s = socket.socket()
        s.settimeout(timeout)
        s.connect((host, port))
        banner = s.recv(1024).decode(errors="ignore").strip()
        s.close()
        return banner
    except Exception as e:
        return f"[!] Error: {e}"

def check_vuln(banner):
    if "OpenSSH" in banner:
        try:
            version_str = banner.split("OpenSSH_")[1].split(" ")[0]
            version = version_str.split("p")[0]  # ambil sebelum patch-level
            major, minor = map(int, version.split(".")[:2])

            # rentan kalau versi >=6.2 dan <8.8
            if (major == 6 and minor >= 2) or (major > 6 and (major < 8 or (major == 8 and minor < 8))):
                return f"[!!!] VULNERABLE (CVE-2021-41617) → {version_str}"
            else:
                return f"[+] OpenSSH {version_str} → Tidak rentan untuk CVE-2021-41617"
        except Exception:
            return "[?] Gagal parsing versi dari banner"
    return "[?] Bukan OpenSSH atau banner tidak jelas"

if __name__ == "__main__":
    if len(sys.argv) < 2:
        print(f"Usage: python3 {sys.argv[0]} <host> [port]")
        sys.exit(1)

    host = sys.argv[1]
    port = int(sys.argv[2]) if len(sys.argv) > 2 else 22

    print(f"[*] Grabbing SSH banner from {host}:{port} ...")
    banner = grab_ssh_banner(host, port)
    print(f"[+] Banner: {banner}")
    print(check_vuln(banner))