
गैर-रोबॉट के लिए निष्क्रिय होस्टनेम, डोमेन और आईपी लुकअप उपकरण
Passive होस्टनाम, डोमेन और IP लुकअप टूल गैर-रोबोट के लिए


wtfis एक कमांडलाइन टूल है जो विभिन्न OSINT सेवाओं का उपयोग करके किसी डोमेन, FQDN या IP पते के बारे में जानकारी एकत्र करता है। अपनी तरह के अन्य टूलों के विपरीत, यह विशेष रूप से मानव उपयोग के लिए बनाया गया है, और ऐसे परिणाम प्रदान करता है जो सुंदर (YMMV) और पढ़ने-समझने में आसान होते हैं।
यह टूल मानता है कि आप निःशुल्क स्तर / सामुदायिक स्तर के खातों का उपयोग कर रहे हैं, और इसलिए कोटा और दर सीमा को हिट करने से बचने के लिए जितना संभव हो उतनी कम API कॉल करता है।
प्रोजेक्ट का नाम "whois" पर एक श्लेष है।
| Service | Used in lookup | Required | Free Tier |
|---|---|---|---|
| Virustotal | सभी | नहीं | हाँ |
| AbuseIPDB | IP पता | नहीं | हाँ |
| Greynoise | IP पता | नहीं | हाँ |
| IP2Location | IP पता | नहीं | हाँ |
| IP2Whois | डोमेन/FQDN | नहीं | हाँ |
| IPinfo | IP पता | नहीं | हाँ (साइनअप नहीं) |
| IPWhois | IP पता | नहीं | हाँ (साइनअप नहीं) |
| Shodan | IP पता | नहीं | नहीं |
| URLhaus | सभी | नहीं | हाँ |
जानकारी का प्राथमिक स्रोत। प्राप्त करता है:
AbuseIPDB रिपोर्ट किए गए दुर्भावनापूर्ण IP पतों का क्राउड-सोर्स्ड डेटाबेस है। इसके API के माध्यम से wtfis दिखाता है:
IP पतों के लिए वैकल्पिक जियोलोकेशन और ASN लुकअप स्रोत (डिफ़ॉल्ट IPWhois है)। प्राप्त करता है:
IP2Whois और IP2Location एक ही सेवा की अलग-अलग सुविधाएँ हैं, इसलिए आपको केवल एक बार साइन अप करना होगा। API कुंजी का उपयोग तब दोनों लुकअप के लिए किया जा सकता है।
वैकल्पिक रूप से उपयोग किया जाता है यदि क्रेडेंशियल प्रदान किए गए हैं। प्राप्त करता है:
IP2Whois को whois डेटा के लिए Virustotal से बेहतर सुझाया जाता है, कुछ कारणों से:
IP पतों के लिए एक और वैकल्पिक जियोलोकेशन और ASN लुकअप स्रोत। प्राप्त करता है:
IP पतों के लिए डिफ़ॉल्ट जियोलोकेशन और ASN लुकअप स्रोत। प्राप्त करता है:
IPWhois को IP2Whois के साथ भ्रमित नहीं किया जाना चाहिए, जो डोमेन Whois डेटा प्रदान करता है।
Greynoise के community API का उपयोग करके, wtfis दिखाएगा कि कोई IP Greynoise के किसी एक डेटासेट में है या नहीं:
डेटासेट के बारे में अधिक जानकारी यहाँ।
इसके अलावा, API किसी IP का Greynoise वर्गीकरण भी लौटाता है (यदि उपलब्ध हो)। संभावित मान benign, malicious और unknown हैं।
/shodan/host/{ip} एंडपॉइंट से डेटा GET करता है (देखें doc)। प्रत्येक IP के लिए, प्राप्त करता है:
URLhaus रिपोर्ट किए गए दुर्भावनापूर्ण URL का क्राउड-सोर्स्ड डेटाबेस है। यह एनरिचमेंट जानकारी देता है कि क्वेरी किया गया होस्टनाम या IP HTTP या HTTPS के माध्यम से मैलवेयर वितरण के लिए उपयोग किया जा रहा है या किया गया था। प्रदान किया गया डेटा शामिल है:
$ pip install wtfis
conda (conda-forge से) के माध्यम से इंस्टॉल करने के लिए, wtfis-feedstock देखें।
brew के माध्यम से इंस्टॉल करने के लिए:
brew install wtfis
wtfis इन पर्यावरण चरों का उपयोग करता है (सभी वैकल्पिक):
VT_API_KEY - Virustotal API कुंजीABUSEIPDB_API_KEY - AbuseIPDB API कुंजीIP2LOCATION_API_KEY - IP2Location API कुंजीIP2WHOIS_API_KEY - IP2Whois API कुंजीGREYNOISE_API_KEY - Greynoise API कुंजीSHODAN_API_KEY - Shodan API कुंजीURLHAUS_API_KEY - URLhaus API कुंजीWTFIS_DEFAULTS - डिफ़ॉल्ट बूलियन तर्कGEOLOCATION_SERVICE - उपयोग करने के लिए जियोलोकेशन / ASN लुकअप सेवाइन्हें अपनी स्वयं की विधि से सेट करें।
वैकल्पिक रूप से, अपनी होम डायरेक्टरी ~/.env.wtfis में उपरोक्त विकल्पों के साथ एक फ़ाइल बनाएँ। टेम्पलेट के लिए .env.wtfis.example देखें। नोट: फ़ाइल को chmod 400 करना न भूलें!
usage: wtfis [-h] [-A] [-s] [-g] [-a] [-u] [-m N] [-n] [-1] [-V] [--geolocation-service {ip2location,ipinfo,ipwhois}] entity
positional arguments:
entity Hostname, domain or IP
options:
-h, --help show this help message and exit
-A, --all Enable all possible enrichments
-s, --use-shodan Use Shodan to enrich IPs
-g, --use-greynoise Enable Greynoise for IPs
-a, --use-abuseipdb Enable AbuseIPDB for IPs
-u, --use-urlhaus Enable URLhaus for IPs and domains
-m N, --max-resolutions N
Maximum number of resolutions to show (default: 3)
-n, --no-color Show output without colors
-1, --one-column Display results in one column
-V, --version Print version number
--geolocation-service {ip2location,ipinfo,ipwhois}
Geolocation service to use (default: ipwhois)
मूल रूप से:
$ wtfis FQDN_OR_DOMAIN_OR_IP
और आपको पैनल द्वारा व्यवस्थित परिणाम मिलेंगे, जैसा कि ऊपर की छवि में है।
Defanged इनपुट स्वीकार किया जाता है (जैसे api[.]google[.]com)।
यदि टर्मिनल समर्थन करता है, तो कुछ फ़ील्ड और हेडिंग क्लिक करने योग्य हाइपरलिंक होते हैं जो संबंधित सेवाओं की वेबसाइटों पर इंगित करते हैं।
प्रत्येक एनरिचमेंट फ़्लैग को अलग-अलग निर्दिष्ट करने के बजाय, आप सभी को सक्षम करने के लिए -A / --all फ़्लैग का उपयोग कर सकते हैं, जहाँ संभव हो। यह फ़्लैग --use-* फ़्लैग के साथ परस्पर अनन्य है।
होस्टनाम, डोमेन और IP के लिए AbuseIPDB एनरिचमेंट सक्षम करने के लिए -a या --use-abuseipdb फ़्लैग का उपयोग करें।

AbuseIPDB फ़ील्ड नाम एक हाइपरलिंक है (यदि टर्मिनल समर्थित है) जो आपकी क्वेरी के लिए विशिष्ट AbuseIPDB डेटाबेस पृष्ठ पर ले जाता है।
Greynoise सक्षम करने के लिए, -g या --use-greynoise फ़्लैग के साथ इनवोक करें। चूंकि API कोटा काफी कम है (मार्च 2023 तक प्रति सप्ताह 50 अनुरोध), यह लुकअप डिफ़ॉल्ट रूप से बंद है।

GreyNoise फ़ील्ड नाम भी एक हाइपरलिंक है (यदि टर्मिनल समर्थित है) जो Greynoise वेब इंटरफ़ेस में IP प्रविष्टि की ओर इंगित करता है, जहाँ अधिक संदर्भ दिखाया गया है।
Shodan का उपयोग किसी IP के खुले पोर्ट या सेवाओं, और कुछ परिणामों में OS दिखाने के लिए किया जा सकता है। -s या --use-shodan फ़्लैग के साथ इनवोक करें।

यदि टर्मिनल द्वारा समर्थित है, तो Services फ़ील्ड एक क्लिक करने योग्य हाइपरलिंक है जो आपको Shodan वेब इंटरफ़ेस पर ले जाता है।
होस्टनाम, डोमेन और IP के लिए URLhaus एनरिचमेंट सक्षम करने के लिए -u या --use-urlhaus फ़्लैग का उपयोग करें।

Malware URLs फ़ील्ड नाम एक हाइपरलिंक है (यदि टर्मिनल समर्थित है) जो आपकी क्वेरी के लिए विशिष्ट URLhaus डेटाबेस पृष्ठ पर ले जाता है।
FQDN और डोमेन लुकअप के लिए, आप -m NUMBER या --max-resolutions=NUMBER के साथ प्रदर्शित IP रिज़ॉल्यूशन की अधिकतम संख्या बढ़ा या घटा सकते हैं। ऊपरी सीमा 10 है। यदि आपको रिज़ॉल्यूशन की बिल्कुल आवश्यकता नहीं है, तो संख्या को 0 पर सेट करें।
सभी पैनल को एक कॉलम में दिखाने के लिए, -1 या --one-column फ़्लैग का उपयोग करें।

पैनल को -n या --no-color के साथ बिना रंग के प्रदर्शित किया जा सकता है।

डिफ़ॉल्ट तर्कों को WTFIS_DEFAULTS पर्यावरण चर सेट करके परिभाषित किया जा सकता है। उदाहरण के लिए, डिफ़ॉल्ट रूप से shodan का उपयोग करने और परिणामों को एक कॉलम में प्रदर्शित करने के लिए:
WTFIS_DEFAULTS=-s -1
यदि कोई तर्क WTFIS_DEFAULTS में है, तो कमांड इनवोकेशन के दौरान उसी तर्क को निर्दिष्ट करना उस तर्क को नकारता है। तो उपरोक्त उदाहरण में, यदि आप फिर चलाते हैं:
$ wtfis example.com -s
तो Shodan का उपयोग नहीं किया जाएगा।
ध्यान दें कि अधिकतम रिज़ॉल्यूशन (-m N, --max-resolutions N) इस समय डिफ़ॉल्ट में परिभाषित नहीं किए जा सकते हैं।
इसे बदलने का अनुशंसित तरीका GEOLOCATION_SERVICE चर सेट करना है। उदाहरण के लिए, IPinfo का उपयोग करने के लिए:
GEOLOCATION_SERVICE=ipinfo
वैकल्पिक रूप से, कमांड इनवोकेशन पर --geolocation-service सेट करें:
$ wtfis --geolocation-service=ipinfo 1.1.1.1
यदि उपरोक्त दोनों सेट हैं, तो कमांडलाइन फ़्लैग को प्राथमिकता दी जाती है।
wtfis को Docker इमेज से चलाया जा सकता है। पहले, इमेज बनाएँ (शामिल Dockerfile का उपयोग करके) निम्न कमांड चलाकर:
$ make docker-image
इमेज में wtfis का नवीनतम टैग किया हुआ संस्करण होगा (जरूरी नहीं कि नवीनतम कमिट से)। यह सुनिश्चित करता है कि आपको एक स्थिर रिलीज़ मिल रही है।
दो तरीके जिनसे आप इमेज चला सकते हैं:
सुनिश्चित करें कि .env.wtfis आपकी होम डायरेक्टरी में है और आवश्यक envvars के साथ सेट है। फिर बस चलाएँ:
$ make docker-run
यह इसका उपनाम है
$ docker run --env-file=${HOME}/.env.wtfis -it wtfis
ध्यान दें कि प्रत्येक परिभाषा में बराबर चिह्न के पहले और बाद में कोई स्थान नहीं होना चाहिए (FOO=bar, FOO = bar नहीं)।
वैकल्पिक रूप से, आप पर्यावरण चर स्वयं सेट कर सकते हैं, फिर चला सकते हैं, जैसे:
$ docker run -e VT_API_KEY -e SHODAN_API_KEY -it wtfis