
Scan .onion छिपी हुई सेवाओं को Tor, proxychains और dnsmasq का उपयोग करके एक न्यूनतम alpine Docker कंटेनर में nmap के साथ स्कैन करें।
Tor नेटवर्क पर छिपी "onion" सेवाओं को स्कैन करने के लिए nmap का उपयोग करें। alpine पर आधारित न्यूनतम इमेज, nmap को रैप करने के लिए proxychains का उपयोग करता है। Tor और dnsmasq को s6 के माध्यम से डेमॉन के रूप में चलाया जाता है, और proxychains nmap को पोर्ट 9050 पर Tor SOCKS प्रॉक्सी का उपयोग करने के लिए रैप करता है। Tor को DNSPort के माध्यम से भी कॉन्फ़िगर किया गया है ताकि पोर्ट 9053 पर DNS अनुरोधों को गुमनाम रूप से हल किया जा सके। dnsmasq को इस localhost:9053 को एक प्राधिकरण DNS सर्वर के रूप में कॉन्फ़िगर किया गया है। Proxychains को स्थानीय रिज़ॉल्वर के माध्यम से DNS प्रॉक्सी करने के लिए कॉन्फ़िगर किया गया है, ताकि सभी DNS अनुरोध Tor के माध्यम से जाएं और एप्लिकेशन .onion पतों को हल कर सकें।
$ docker run --rm -it milesrichardson/onion-nmap -p 80,443 facebookcorewwwi.onion
[tor_wait] Wait for Tor to boot... (might take a while)
[tor_wait] Done. Tor booted.
[nmap onion] nmap -p 80,443 facebookcorewwwi.onion
[proxychains] config file found: /etc/proxychains.conf
[proxychains] preloading /usr/lib/libproxychains4.so
[proxychains] DLL init: proxychains-ng 4.12
Starting Nmap 7.60 ( https://nmap.org ) at 2017-10-23 16:17 UTC
[proxychains] Dynamic chain ... 127.0.0.1:9050 ... facebookcorewwwi.onion:443 ... OK
[proxychains] Dynamic chain ... 127.0.0.1:9050 ... facebookcorewwwi.onion:80 ... OK
Nmap scan report for facebookcorewwwi.onion (224.0.0.1)
Host is up (2.7s latency).
PORT STATE SERVICE
80/tcp open http
443/tcp open https
Nmap done: 1 IP address (1 host up) scanned in 3.58 seconds
जब कंटेनर बूट होता है, तो यह Tor और dnsmasq को डेमॉन के रूप में लॉन्च करता है। फिर tor_wait स्क्रिप्ट आपके कमांड को निष्पादित करने से पहले Tor SOCKS प्रॉक्सी के ऊपर होने की प्रतीक्षा करती है।
डिफ़ॉल्ट रूप से, docker run के तर्क /bin/nmap को पास किए जाते हैं जो nmap को -sT -PN -n "$@" तर्कों के साथ कॉल करता है जो इसे Tor के माध्यम से काम करने के लिए आवश्यक हैं (via explainshell.com)।
उदाहरण के लिए, यह:
docker run --rm -it milesrichardson/onion-nmap -p 80,443 facebookcorewwwi.onion
इस प्रकार निष्पादित होगा:
proxychains4 -f /etc/proxychains.conf /usr/bin/nmap -sT -PN -n -p 80,443 facebookcorewwwi.onion
nmap के कस्टम स्क्रिप्ट के अलावा, curl और nc के लिए कस्टम रैपर स्क्रिप्ट मौजूद हैं जो उन्हें proxychains में रैप करते हैं, /bin/curl और /bin/nc पर। उन्हें कॉल करने के लिए, बस docker run के पहले तर्क के रूप में curl या nc निर्दिष्ट करें। उदाहरण के लिए:
docker run --rm -it milesrichardson/onion-nmap nc -z 80 facebookcorewwwi.onion
इस प्रकार निष्पादित होगा:
proxychains4 -f /etc/proxychains.conf /usr/bin/nc -z 80 facebookcorewwwi.onion
और
docker run --rm -it milesrichardson/onion-nmap curl -I https://facebookcorewwwi.onion
इस प्रकार निष्पादित होगा:
proxychains4 -f /etc/proxychains.conf /usr/bin/curl -I https://facebookcorewwwi.onion
यदि आप कोई अन्य कमांड कॉल करना चाहते हैं, जिसमें मूल /usr/bin/nmap या /usr/bin/nc या /usr/bin/curl शामिल है, तो आप इसे docker run के पहले तर्क के रूप में निर्दिष्ट कर सकते हैं, जैसे:
docker run --rm -it milesrichardson/onion-nmap /usr/bin/curl -x socks4h://localhost:9050 https://facebookcorewwwi.onion
केवल एक पर्यावरण चर है: DEBUG_LEVEL। यदि आप इसे 0 के अलावा कुछ भी सेट करते हैं, तो अधिक डिबगिंग जानकारी मुद्रित होगी (विशेष रूप से, Tor के बूट होने की प्रतीक्षा करते समय उससे कनेक्शन के प्रयास)। उदाहरण:
$ docker run -e DEBUG_LEVEL=1 --rm -it milesrichardson/onion-nmap -p 80,443 facebookcorewwwi.onion
[tor_wait] Wait for Tor to boot... (might take a while)
[tor_wait retry 0] Check socket is open on localhost:9050...
[tor_wait retry 0] Socket OPEN on localhost:9050
[tor_wait retry 0] Check SOCKS proxy is up on localhost:9050 (timeout 2 )...
[tor_wait retry 0] SOCKS proxy DOWN on localhost:9050, try again...
[tor_wait retry 1] Check socket is open on localhost:9050...
[tor_wait retry 1] Socket OPEN on localhost:9050
[tor_wait retry 1] Check SOCKS proxy is up on localhost:9050 (timeout 4 )...
[tor_wait retry 1] SOCKS proxy DOWN on localhost:9050, try again...
[tor_wait retry 2] Check socket is open on localhost:9050...
[tor_wait retry 2] Socket OPEN on localhost:9050
[tor_wait retry 2] Check SOCKS proxy is up on localhost:9050 (timeout 6 )...
[tor_wait retry 2] SOCKS proxy UP on localhost:9050
[tor_wait] Done. Tor booted.
[nmap onion] nmap -p 80,443 facebookcorewwwi.onion
[proxychains] config file found: /etc/proxychains.conf
[proxychains] preloading /usr/lib/libproxychains4.so
[proxychains] DLL init: proxychains-ng 4.12
Starting Nmap 7.60 ( https://nmap.org ) at 2017-10-23 16:34 UTC
[proxychains] Dynamic chain ... 127.0.0.1:9050 ... facebookcorewwwi.onion:443 ... OK
[proxychains] Dynamic chain ... 127.0.0.1:9050 ... facebookcorewwwi.onion:80 ... OK
Nmap scan report for facebookcorewwwi.onion (224.0.0.1)
Host is up (2.8s latency).
PORT STATE SERVICE
80/tcp open http
443/tcp open https
Nmap done: 1 IP address (1 host up) scanned in 4.05 seconds