diff --git a/README.md b/README.md index 1eaf9f5..6698d93 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ Puncia utilizes two of our intelligent APIs to gather the results -
**Please note that although these results can sometimes be pretty inaccurate & unreliable, they can greatly differ from time to time due to their self-improvement capabilities.** -**Aggressive rate-limits can be avoided with an API key: https://arpsyndicate.io/pricing.html** +**Aggressive rate-limits can be avoided with an API key: https://www.arpsyndicate.io/pricing.html** ## Installation 1. From PyPi - `pip3 install puncia` @@ -25,7 +25,8 @@ Puncia utilizes two of our intelligent APIs to gather the results -
3. Query Exploit & Vulnerability Identifiers (exploit) - Russian VIDs with no associated CVEs (^RU_NON_CVE) - `puncia exploit ^RU_NON_CVE ` - Chinese VIDs with no associated CVEs (^CN_NON_CVE) - `puncia exploit ^CN_NON_CVE ` - - Daily Vulnerability & Exploit Watchlist (^WATCHLIST) - `puncia exploit ^WATCHLIST ` + - Vulnerability & Exploit Identifers Watchlist (^WATCHLIST_IDES) - `puncia exploit ^WATCHLIST_IDES ` + - Vulnerable Technologies Watchlist (^WATCHLIST_TECH) - `puncia exploit ^WATCHLIST_TECH ` - [Supported Vulnerability Identifiers](https://github.com/ARPSyndicate/docs?tab=readme-ov-file#supported-vulnerability-identifiers) - `puncia exploit ` 4. Enrich CVE/GHSA Identifiers (enrich) - `puncia enrich ` 5. Multiple Queries (bulk/sbom) diff --git a/puncia/__main__.py b/puncia/__main__.py index b1052b1..8c89318 100755 --- a/puncia/__main__.py +++ b/puncia/__main__.py @@ -14,7 +14,8 @@ "auth_enrich": "https://api.exploit.observer/beta/?auth={0}&enrich=True&keyword=", "russia": "https://api.exploit.observer/russia/", "china": "https://api.exploit.observer/china/", - "watchlist": "https://api.exploit.observer/watchlist/", + "watchlist_ides": "https://api.exploit.observer/watchlist/identifiers", + "watchlist_tech": "https://api.exploit.observer/watchlist/technologies", } @@ -52,24 +53,30 @@ def query_api(mode, query, output_file=None, cid=None, akey=""): query = "noncve" mode = "spec_exploit" cid = "Chinese VIDs with no associated CVEs" - if query == "^WATCHLIST": - url = API_URLS.get("watchlist") + if query == "^WATCHLIST_IDES": + url = API_URLS.get("watchlist_ides") query = "" mode = "spec_exploit" - cid = "Daily Vulnerability & Exploit Watchlist" + cid = "Vulnerability & Exploit Watchlist" + if query == "^WATCHLIST_TECH": + url = API_URLS.get("watchlist_tech") + query = "" + mode = "spec_exploit" + cid = "Vulnerable Technologies Watchlist" if not url: sys.exit("Invalid Mode") try: response = requests.get(url + query).json() except: - print("An exception happened") + print("An exception happened while requesting: " + query) return - if not response: + if not response or len(response) == 0: print("Null response from the API") return result = json.dumps(response, indent=4, sort_keys=True) print(result) if mode in ["spec_exploit"]: + os.system("rm " + output_file) for reurl in response: query_api( "exploit", @@ -156,7 +163,7 @@ def add_component(name, version): def main(): try: print("---------") - print("Panthera(P.)uncia [v0.22]") + print("Panthera(P.)uncia [v0.23]") print("A.R.P. Syndicate [https://www.arpsyndicate.io]") print("---------") diff --git a/setup.py b/setup.py index e7820ea..88fd375 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ setup( name="puncia", - version="0.22", + version="0.23", author="A.R.P. Syndicate", author_email="ayush@arpsyndicate.io", keywords="subdomains subdomain exploits exploit arpsyndicate panthera uncia puncia snow leopard",