
d(ockerp)wn - एक docker pwn टूल मैनेजर
dwn "हैकर्स के लिए डॉकर-कंपोज़" है। docker-compose के समान एक सरल YAML "योजना" प्रारूप का उपयोग करके, उपकरण को उपयोग के लिए सेटअप करने के लिए छवि नाम, संस्करण और वॉल्यूम/पोर्ट मैपिंग परिभाषित की जाती हैं।
dwn के साथ आप यह कर सकते हैं:
बस pip3 install dwn चलाएँ।
dwn वास्तव में बहुत सरल है। मुख्य अवधारणा "योजनाओं" की है जहाँ एक उपकरण के बारे में जानकारी (जैसे नाम, संस्करण, माउंट और बाइंड) परिभाषित की जाती है। कुछ अंतर्निहित योजनाएँ पहले से उपलब्ध हैं, लेकिन आप अपनी खुद की भी बना सकते हैं। बिना तर्कों के, केवल dwn चलाने पर ऐसा दिखाई देगा।
❯ dwn
Usage: dwn [OPTIONS] COMMAND [ARGS]...
__
___/ / _____
/ _ / |/|/ / _ \
\_,_/|__,__/_//_/
docker pwn tool manager
by @leonjza / @sensepost
Options:
--debug enable debug logging
--help Show this message and exit.
Commands:
check Check plans and Docker environment
network Work with networks
plans Work with plans
run Run a plan
show Show running plans
stop Stop a plan
उपलब्ध योजनाओं को सूचीबद्ध करने के लिए, dwn plans show चलाएँ।
❯ dwn plans show
dwn plans
┏━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ name ┃ path ┃
┡━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ sqlmap │ /tools/dwn/plans/sqlmap.yml │
│ wpscan │ /tools/dwn/plans/wpscan.yml │
│ gowitness-report │ /tools/dwn/plans/gowitness-report.yml │
│ msfconsole │ /tools/dwn/plans/msfconsole.yml │
│ gowitness │ /tools/dwn/plans/gowitness.yml │
│ nginx │ /tools/dwn/plans/nginx.yml │
│ cme │ /tools/dwn/plans/cme.yml │
│ netcat-reverse │ /tools/dwn/plans/netcat-reverse.yml │
│ semgrep-sec │ /tools/dwn/plans/semgrep-sec.yml │
│ semgrep-ci │ ~/.dwn/plans/semgrep-ci.yml │
│ neo4j │ ~/.dwn/plans/neo4j.yml │
└──────────────────┴───────────────────────────────────────┘
11 plans
gowitness जैसी योजना को चलाने के लिए जो https://google.com का स्क्रीनशॉट लेती है, dwn run gowitness --disable-db single https://www.google.com चलाएँ। यह योजना समाप्त होने पर बाहर निकल जाएगी, इसलिए आपको dwn stop gowitness चलाने की आवश्यकता नहीं है।
❯ dwn run gowitness --disable-db single https://www.google.com
(i) found plan for gowitness
(i) volume: ~/scratch -> /data
(i) streaming container logs
08 Feb 2021 10:46:18 INF preflight result statuscode=200 title=Google url=https://www.google.com
❯
❯ ls screenshots
https-www.google.com.png
हालाँकि, netcat-reverse जैसी योजना चालू रहेगी। आप योजना शुरू होने के बाद उसके TTY से जुड़ सकते हैं और प्राप्त किसी भी शेल के साथ बातचीत कर सकते हैं। उदाहरण उपयोग:
❯ dwn run netcat-reverse
(i) found plan for netcat-reverse
(i) port: 4444<-4444
(i) container booted! attach & detach commands are:
(i) attach: docker attach dwn_wghz_netcat-reverse
(i) detach: ctrl + p, ctrl + q
योजना से जुड़ना (और कहीं और nc -e निष्पादित करना)
❯ docker attach dwn_wghz_netcat-reverse
connect to [::ffff:172.19.0.2]:4444 from dwn_wghz_netcat-reverse_net_4444_4444.dwn:46318 ([::ffff:172.19.0.3]:46318)
env | grep -i shell
SHELL=/bin/zsh
read escape sequence
आप चल रही योजना की रिपोर्ट भी प्राप्त कर सकते हैं
❯ dwn show
running plan report
┏━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ plan ┃ container(s) ┃ port(s) ┃ volume(s) ┃
┡━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ netcat-reverse │ dwn_wghz_netcat-reverse_net_4444_4444 │ 4444<-4444 │ │
│ │ dwn_wghz_netcat-reverse │ │ │
└────────────────┴───────────────────────────────────────┴────────────┴───────────┘
और अंत में, एक योजना को रोकें।
❯ dwn stop netcat-reverse -y
(i) stopping 2 containers for plan netcat-reverse
dwn आपको बिना कंटेनर पुनरारंभ के योजनाओं में पोर्ट को गतिशील रूप से मैप करने देता है। नेटवर्किंग कमांड dwn network उप-कमांड के अंतर्गत आते हैं। nginx योजना को उदाहरण के रूप में लेते हुए, हम गतिशील रूप से एक पोर्ट मैपिंग जोड़ सकते हैं। पहले, nginx योजना शुरू करें।
❯ dwn run nginx
(i) found plan for nginx
(i) volume: ~/scratch -> /usr/share/nginx/html
(i) port: 80<-8888
(i) container dwn_wghz_nginx started for plan nginx, detaching
इसके बाद, cURL के साथ संचार का परीक्षण करें
❯ curl localhost:8888/poo.txt
haha, you touched it!
❯ curl localhost:9000/poo.txt
curl: (7) Failed to connect to localhost port 9000: Connection refused
पोर्ट 9000 खुला नहीं है, तो चलिए एक नया पोर्ट बाइंडिंग जोड़ें और कनेक्टिविटी का परीक्षण करें
❯ dwn network add nginx -i 80 -o 9000
(i) port binding for 9000->nginx:80 created
❯
❯ curl localhost:9000/poo.txt
haha, you touched it!
dwn plans pull कमांड का उपयोग योजनाओं में परिभाषित images को अद्यतन करने के लिए किया जा सकता है। केवल एकल योजना को अद्यतन करने के लिए, pull के बाद योजना का नाम जोड़ें। उदाहरण: dwn plans pull nginx।
एक नई योजना को शीघ्रता से तैयार करने के लिए dwn plans new कमांड मौजूद है। योजना को चालू करने के लिए केवल कुछ विकल्पों की आवश्यकता होती है, लेकिन Python Docker SDK में run कॉल के लिए मौजूद सभी विकल्प मान्य टैग हैं जिनका उपयोग किया जा सकता है।
dwn GNU जनरल पब्लिक v3 लाइसेंस के तहत लाइसेंस प्राप्त है। इस लाइसेंस के दायरे से परे अनुमतियाँ http://sensepost.com/contact/ पर उपलब्ध हो सकती हैं।