
قسّم نتائج فحص المنافذ الكامل واستخدمها لتشغيل Nmap بشكل مستهدف
Divide Et Impera And Scan (وادمج نتائج المسح)
DivideAndScan يُستخدم لأتمتة روتين مسح المنافذ بكفاءة عن طريق تقسيمه إلى 3 مراحل:
في المرحلة 1، يُقصد استخدام ماسح منافذ سريع، يتم تحليل مخرجاته وتخزينها في قاعدة بيانات ملف واحد (TinyDB). بعد ذلك، خلال المرحلة 2، يتم إطلاق عمليات مسح Nmap فردية لكل هدف مع مجموعة منافذه المفتوحة (مع دعم تعدد العمليات) وفقًا لبيانات قاعدة البيانات. أخيرًا، في المرحلة 3، يتم دمج مخرجات Nmap المنفصلة في تقرير واحد بصيغ مختلفة (XML / HTML / نص عادي / grepable) باستخدام nMap_Merger. يتم توفير جزء التصور بواسطة DrawNmap.
حالات الاستخدام المحتملة:
* ماسحات المنافذ المتاحة:
إخلاء مسؤولية. جميع المعلومات الواردة في هذا المستودع مُقدمة للأغراض التعليمية والبحثية فقط. المؤلف ليس مسؤولاً عن أي استخدام غير قانوني لهذه الأداة.

لـ تقسيم ومسح بنجاح، نحتاج إلى بعض أدوات مسح المنافذ الجيدة (في الأمثلة أدناه، يتم جلب إصدارات GitHub عبر eget).
📑 ملاحظة: إذا كنت لا ترغب في العبث بالتبعيات على نظام التشغيل المضيف، انتقل إلى جزء 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، لكني أوصي بتثبيته من GitHub باستخدام pipx للحصول دائمًا على أحدث إصدار:
~$ 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 على المضيف يسمح بالوصول إلى تطبيق Dash المستخدم لتصور تقارير Nmap.
قد ترغب في تعيين اسم مستعار لجعل الأمر الأساسي أقصر:
~$ 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
يمكنك إقران ماسح المنافذ المفضل لديك مع DivideAndScan من خلال تنفيذ طريقة parse واحدة لمخرجاته في das/parsers/DUMMY_SCANNER.py (انظر مثال لـ masscan):
from das.parsers import IAddPortscanOutput
class AddPortscanOutput(IAddPortscanOutput):
"""فئة فرعية لمعالجة مخرجات DUMMY_SCANNER."""
def parse(self):
"""
محلل مخرجات DUMMY_SCANNER الخام.
:return: زوج من القيم (اسم ملف مخرجات المسح الخام، عدد المضيفين المضافين إلى قاعدة البيانات)
: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} |
-----------------------------------------------------------------------------------------------
الوسائط الموضعية:
{db,add,scan,dns,report,parse,draw,tree,help}
db أدوات للتلاعب اليدوي بقاعدة البيانات
add تشغيل مسح كامل للمنافذ وإضافة المخرجات إلى قاعدة البيانات
scan تشغيل عمليات مسح Nmap مستهدفة ضد المضيفين والمنافذ من قاعدة البيانات
dns تعيين أسماء النطاقات من ملف إدخال إلى عناوين IP المقابلة من قاعدة البيانات
report دمج مخرجات Nmap المنفصلة في تقرير واحد (https://github.com/CBHue/nMap_Merger)
parse تحليل تقارير Nmap XML الخام بواسطة أسماء الخدمات وطباعة الإدخالات بالصيغة {service}://{host}:{port}}
draw تصور تقارير Nmap XML (https://github.com/jor6PS/DrawNmap)
tree عرض محتويات دليل ~/.das/ باستخدام tree
help عرض مربع حوار --help المدمج لماسح المنافذ المحدد
الخيارات:
-h, --help عرض رسالة المساعدة هذه والخروج
-db DB اسم قاعدة البيانات للعمل معها
Psst, hey buddy... Wanna do some organized p0r7 5c4nn1n6?
fuff لأتمتة فحص أدلة الويبparse)|
قم بتوفير أمر لماسح منافذ سريع لوحدة ⚠️ تحذير: يُرجى التأكد من أنك تفهم ما تفعله، لأن جميع أدوات مسح المنافذ تقريبًا يمكنها إلحاق الضرر بالنظام الذي يتم اختباره إذا تم استخدامها بشكل غير صحيح. عندما تبدأ الوحدة عملها، يتم إنشاء دليل |
|
قم بتشغيل عمليات مسح Nmap المستهدفة باستخدام وحدة لبدء Nmap في وقت واحد في عمليات متعددة، حدد المفتاح يتم تحديد صيغة الإخراج باستخدام الخيارات أيضًا، يمكنك فحص محتويات قاعدة البيانات باستخدام الخيار |
|
لإنشاء تقرير بشكل مستقل عن وحدة 📑 ملاحظة: ضع في اعتبارك أن وحدة |