
पूर्ण पोर्ट स्कैन परिणामों को विभाजित करें और इसे लक्षित Nmap चलाने के लिए उपयोग करें
Divide Et Impera And Scan (और स्कैन परिणामों को भी मर्ज करें)
DivideAndScan का उपयोग पोर्ट स्कैनिंग रूटीन को 3 चरणों में विभाजित करके कुशलतापूर्वक स्वचालित करने के लिए किया जाता है:
पहले चरण में एक तेज़ पोर्ट स्कैनर* का उपयोग करने का इरादा है, जिसके आउटपुट को पार्स किया जाता है और एक एकल फाइल डेटाबेस (TinyDB) में संग्रहीत किया जाता है। अगला, दूसरे चरण के दौरान डेटाबेस डेटा के अनुसार प्रत्येक लक्ष्य के लिए उसके खुले पोर्ट के सेट के साथ व्यक्तिगत Nmap स्कैन लॉन्च किए जाते हैं (मल्टीप्रोसेसिंग समर्थित है)। अंत में, तीसरे चरण में अलग-अलग Nmap आउटपुट को nMap_Merger के साथ विभिन्न प्रारूपों (XML / HTML / सादा टेक्स्ट / grepable) में एक ही रिपोर्ट में मर्ज किया जाता है। विज़ुअलाइज़ेशन भाग DrawNmap द्वारा प्रदान किया जाता है।
संभावित उपयोग के परिदृश्य:
* उपलब्ध पोर्ट स्कैनर:
अस्वीकरण। इस रिपॉजिटरी में निहित सभी जानकारी केवल शैक्षिक और अनुसंधान उद्देश्यों के लिए प्रदान की गई है। लेखक इस उपकरण के किसी भी अवैध उपयोग के लिए जिम्मेदार नहीं है।

सफलतापूर्वक divide and scan करने के लिए हमें कुछ अच्छे पोर्ट स्कैनिंग टूल प्राप्त करने होंगे (नीचे दिए गए उदाहरणों में GitHub रिलीज़ को eget के माध्यम से प्राप्त किया गया है)।
📑 नोट: यदि आप अपने होस्ट OS पर निर्भरताओं से परेशान नहीं होना चाहते हैं, तो Docker भाग पर जाएं।
sudo apt install nmap xsltproc -y
sudo nmap --script-updatedb
pushd /tmp
wget https://github.com/ivre/masscan/archive/refs/heads/master.zip -O masscan-master.zip
unzip masscan-master.zip
cd masscan-master
make
sudo make install
popd && rm -rf /tmp/masscan-master*
eget -t 2.0.1 -a amd64 RustScan/RustScan --to /tmp/rustscan.deb
sudo dpkg -i /tmp/rustscan.deb && rm /tmp/rustscan.deb
sudo wget https://gist.github.com/snovvcrash/8b85b900bd928493cd1ae33b2df318d8/raw/fe8628396616c4bf7a3e25f2c9d1acc2f36af0c0/rustscan-ports-top1000.toml -O /root/.rustscan.toml
sudo mkdir /opt/naabu
sudo eget -s linux/amd64 projectdiscovery/naabu --to /opt/naabu
sudo ln -sv /opt/naabu/naabu /usr/local/bin/naabu
sudo mkdir /opt/nimscan
sudo eget -a NimScan elddy/NimScan --to /opt/nimscan
sudo ln -sv /opt/nimscan/nimscan /usr/local/bin/nimscan
sudo mkdir /opt/sx
sudo eget -s linux/amd64 v-byte-cpu/sx --to /opt/sx
sudo ln -sv /opt/sx/sx /usr/local/bin/sx
sudo mkdir /opt/pd
sudo eget -s linux/amd64 projectdiscovery/dnsx --to /opt/pd
sudo ln -sv /opt/pd/dnsx /usr/local/bin/dnsx
DivideAndScan PyPI पर divideandscan के रूप में उपलब्ध है, हालांकि मैं इसे pipx के साथ GitHub से स्थापित करने की सलाह देता हूं ताकि हमेशा नवीनतम संस्करण उपलब्ध रहे:
~$ pipx install -f "git+https://github.com/snovvcrash/DivideAndScan.git"
~$ das
एक रिलीज़ भी है जो shiv के साथ पैक किया गया है (हालांकि फ़ाइल का आकार बड़ा है):
# shiv -e das.divideandscan:main -o das.pyz divideandscan
~$ wget https://github.com/snovvcrash/DivideAndScan/releases/latest/download/das.pyz && chmod +x das.pyz
~$ ./das.pyz
डीबगिंग उद्देश्यों के लिए आप poetry के साथ डेवलपमेंट एनवायरनमेंट सेट कर सकते हैं:
~$ git clone --recurse-submodules https://github.com/snovvcrash/DivideAndScan
~$ cd DivideAndScan
~$ poetry install
~$ poetry run das
📑 नोट: DivideAndScan सभी पोर्ट स्कैनर चलाने के लिए sudo का उपयोग करता है, इसलिए स्कैनिंग कमांड लागू होने पर यह पासवर्ड मांगेगा।
आप DivideAndScan को Docker कंटेनर में निम्नानुसार चला सकते हैं:
~$ docker run --rm -it --name das -v ~/.das:/root/.das -v `pwd`:/app -p 8050:8050 snovvcrash/divideandscan
चूंकि टूल को कुछ इनपुट डेटा की आवश्यकता होती है और कुछ आउटपुट डेटा उत्पन्न करता है, आपको अपने वर्तमान कार्यशील निर्देशिका को कंटेनर के अंदर /app पर माउंट पॉइंट के रूप में निर्दिष्ट करना चाहिए। साथ ही होस्ट पर पोर्ट 8050 प्रकाशित करने से Nmap रिपोर्ट विज़ुअलाइज़ेशन के लिए उपयोग किए जाने वाले Dash ऐप तक पहुंच मिलती है।
आप बेस कमांड को छोटा बनाने के लिए एक उपनाम सेट करना चाह सकते हैं:
~$ alias das='docker run --rm -it --name das -v ~/.das:/root/.das -v `pwd`:/app -p 8050:8050 snovvcrash/divideandscan'
~$ das

आइए Hack The Box पर सभी लाइव मशीनों के लिए खुले पोर्ट एनुमरेट करें।
-p1-49151 का उपयोग करके डायनेमिक पोर्ट रेंज को बाहर कर दूंगा। दूसरे स्क्रीनशॉट पर मैं होस्ट और पोर्ट द्वारा स्कैन परिणामों की समीक्षा कर रहा हूं:~$ das -db htb add -rm masscan '-e tun0 --rate 1000 -iL hosts.txt -p1-49151 --open'
~$ das -db htb scan -hosts all -show
~$ das -db htb scan -ports all -show
~$ das -db htb scan -hosts all -oA report
~$ das -db htb scan -hosts all -oA report -nmap '-Pn -sVC -O' -parallel
आप das/parsers/DUMMY_SCANNER.py में इसके आउटपुट के लिए एक एकल parse विधि को लागू करके अपने पसंदीदा पोर्ट स्कैनर को DivideAndScan के साथ जोड़ सकते हैं (masscan के लिए उदाहरण देखें):
from das.parsers import IAddPortscanOutput
class AddPortscanOutput(IAddPortscanOutput):
"""DUMMY_SCANNER आउटपुट प्रोसेस करने के लिए चाइल्ड क्लास।"""
def parse(self):
"""
DUMMY_SCANNER रॉ आउटपुट पार्सर।
:return: मानों का एक जोड़ा (पोर्टस्कैन रॉ आउटपुट फ़ाइलनाम, DB में जोड़े गए होस्ट की संख्या)
:rtype: tuple
"""
hosts = set()
for line in self.portscan_raw:
# DUMMY_SCANNER पार्सर का कार्यान्वयन
pass
return (self.portscan_out, len(hosts))
usage: das [-h] [-db DB] {db,add,scan,dns,report,parse,draw,tree,help} ...
-----------------------------------------------------------------------------------------------
| ________ .__ .__ .___ _____ .____________ |
| \______ \ |__|__ _|__| __| _/____ / _ \ ____ __| _/ _____/ ____ _____ ____ |
| | | \| \ \/ / |/ __ |/ __ \ / /_\ \ / \ / __ |\_____ \_/ ___\\__ \ / \ |
| | ` \ |\ /| / /_/ \ ___// | \ | \/ /_/ |/ \ \___ / __ \| | \ |
| /_______ /__| \_/ |__\____ |\___ >____|__ /___| /\____ /_______ /\___ >____ /___| / |
| \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ |
| {@snovvcrash} {https://github.com/snovvcrash/DivideAndScan} {vX.Y.Z} |
-----------------------------------------------------------------------------------------------
positional arguments:
{db,add,scan,dns,report,parse,draw,tree,help}
db मैनुअल DB संचालन के लिए उपयोगिताएँ
add पूर्ण पोर्ट स्कैन चलाएँ और आउटपुट को DB में जोड़ें
scan DB से होस्ट और पोर्ट के विरुद्ध लक्षित Nmap स्कैन चलाएँ
dns इनपुट फ़ाइल से डोमेन नामों को DB से संबंधित IP पतों पर मैप करें
report अलग-अलग Nmap आउटपुट को एक ही रिपोर्ट में मर्ज करें (https://github.com/CBHue/nMap_Merger)
parse सेवा नामों द्वारा Nmap XML रिपोर्ट पार्स करें और प्रारूप {service}://{host}:{port} में प्रविष्टियाँ प्रिंट करें
draw Nmap XML रिपोर्ट विज़ुअलाइज़ करें (https://github.com/jor6PS/DrawNmap)
tree tree का उपयोग करके ~/.das/ निर्देशिका की सामग्री दिखाएँ
help चयनित पोर्ट स्कैनर का अंतर्निहित --help संवाद दिखाएँ
options:
-h, --help यह सहायता संदेश दिखाएँ और बाहर निकलें
-db DB काम करने के लिए DB का नाम
Psst, hey buddy... Wanna do some organized p0r7 5c4nn1n6?
fuff स्विच जोड़ेंparse मॉड्यूल जोड़ा गया)|
⚠️ चेतावनी: कृपया सुनिश्चित करें कि आप समझते हैं कि आप क्या कर रहे हैं, क्योंकि लगभग सभी पोर्ट स्कैनिंग टूल परीक्षण के तहत सिस्टम को नुकसान पहुंचा सकते हैं यदि अनुचित तरीके से उपयोग किया जाए। जब मॉड्यूल अपना काम शुरू करता है, तो एक निर्देशिका |
|
एक साथ कई प्रक्रियाओं में Nmap प्रारंभ करने के लिए, आउटपुट प्रारूप XML+HTML प्रारूपों, सादा टेक्स्ट प्रारूप, grepable प्रारूप और सभी प्रारूपों के लिए क्रमशः इसके अलावा, आप स्कैन लॉन्च करने से पहले |
|
📑 नोट: ध्यान रखें कि |