
.مسح الخدمات المخفية .onion باستخدام nmap عبر Tor وproxychains وdnsmasq في حاوية Docker صغيرة تعمل بنظام Alpine.
استخدم nmap لمسح خدمات "البصل" المخفية على شبكة Tor. صورة مصغرة مبنية على Alpine، تستخدم proxychains لتغليف nmap. يتم تشغيل Tor و dnsmasq كخدمات خلفية عبر s6، ويقوم proxychains بتغليف nmap لاستخدام وكيل SOCKS الخاص بـ Tor على المنفذ 9050. تم تكوين Tor أيضًا عبر DNSPort لحل طلبات DNS بشكل مجهول إلى المنفذ 9053. تم تكوين 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 حتى يتم تشغيل وكيل SOCKS الخاص بـ Tor قبل تنفيذ الأمر الخاص بك.
افتراضيًا، يتم تمرير الوسائط إلى الأمر docker run إلى /bin/nmap الذي يستدعي nmap مع الوسائط -sT -PN -n "$@" اللازمة ليعمل عبر Tor (عبر 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. لاستدعائها، ما عليك سوى تحديد curl أو nc كأول وسيطة لـ docker run. على سبيل المثال:
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