การเขียนสคริปต์แจกแจงเครือข่าย
ทำให้การสำรวจข้อมูลเบื้องต้นเป็นอัตโนมัติด้วยสคริปต์ Nmap NSE และเครื่องมือสแกน Python ที่กำหนดเอง
การเขียนสคริปต์แจกแจงเครือข่าย เป็นบทเรียน Cyber Security Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cyber Security Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน
เหตุใดจึงต้องทำให้การสำรวจระบบเป็นอัตโนมัติ
การสแกนด้วยตนเองช้าและมีโอกาสเกิดข้อผิดพลาดเมื่อทำงานกับเครือข่ายขนาดใหญ่ การเขียนสคริปต์ช่วยรวมเอ็นแมป เน็ตแคต และเครื่องมืออื่น ๆ เข้ากับกระบวนการอัตโนมัติที่ทำซ้ำได้ ซึ่งจะแยกวิเคราะห์ผลลัพธ์และส่งต่อผลไปยังการวิเคราะห์ขั้นถัดไป
ภาพรวมสคริปต์ NSE ของเอ็นแมป
เอ็นจินสคริปต์ของเอ็นแมป (NSE) เรียกใช้สคริปต์ภาษาลูอากับบริการที่ค้นพบ สคริปต์จัดเป็นหมวดหมู่ ได้แก่ การยืนยันตัวตน การเดารหัสผ่าน ค่าเริ่มต้น การค้นหา การเจาะระบบ ปลอดภัย และช่องโหว่
# Run default safe scripts
nmap -sC 192.168.1.100
# List all scripts
ls /usr/share/nmap/scripts/ | grep http
# Run specific script
nmap --script=http-title 192.168.1.100สคริปต์ NSE ที่ใช้บ่อย
สคริปต์สำคัญสำหรับการแจกแจงระบบ ได้แก่ http-title, http-headers, smb-enum-shares, ftp-anon, dns-brute และ ssh-hostkey
nmap --script=smb-enum-shares -p 445 192.168.1.100
nmap --script=ftp-anon -p 21 192.168.1.100
nmap --script=dns-brute --script-args dns-brute.domain=target.com 192.168.1.1สคริปต์หมวดหมู่ช่องโหว่
หมวดหมู่ vuln ใช้ตรวจหาช่องโหว่ที่เป็นที่รู้จัก สคริปต์ในหมวดหมู่ vuln สร้างเสียงรบกวนมากกว่าและอาจทำให้บริการหยุดทำงาน — ควรใช้เมื่อได้รับอนุญาตอย่างชัดเจนเท่านั้น
sudo nmap --script=vuln 192.168.1.100
# Specific vuln checks:
nmap --script=ms17-010 -p 445 192.168.1.100 # EternalBlue
nmap --script=http-shellshock 192.168.1.100การแยกวิเคราะห์ผลลัพธ์ XML ของ Nmap ด้วย Python
ผลลัพธ์ XML ของ Nmap ที่สร้างด้วย -oX สามารถอ่านได้ด้วยเครื่อง ไลบรารี python-libnmap ของ Python ช่วยแยกวิเคราะห์ข้อมูลได้อย่างเป็นระเบียบ เพื่อนำไปสร้างรายงานแบบกำหนดเองหรือส่งต่อให้เครื่องมืออื่น
# Install
pip install python-libnmap
# Parse results
from libnmap.parser import NmapParser
report = NmapParser.parse_fromfile("scan.xml")
for host in report.hosts:
for svc in host.services:
if svc.state == "open":
print(f"{host.address}:{svc.port} {svc.service}")เครื่องสแกนพอร์ตอย่างง่ายด้วย Python
สร้างเครื่องสแกนพอร์ตพื้นฐานโดยใช้มอดูล socket ของ Python ซึ่งมีประโยชน์เมื่อไม่สามารถใช้ Nmap ได้ หรือต้องการแนวทางการสแกนแบบกำหนดเอง
import socket
from concurrent.futures import ThreadPoolExecutor
def scan_port(host, port):
try:
s = socket.socket()
s.settimeout(0.5)
s.connect((host, port))
print(f"Open: {port}")
s.close()
except: pass
with ThreadPoolExecutor(100) as ex:
for p in range(1, 1025):
ex.submit(scan_port, "192.168.1.100", p)คำสั่งบรรทัดเดียวสำหรับการแจกแจงข้อมูลด้วย Bash
Bash สามารถแจกแจงโฮสต์และพอร์ตได้อย่างรวดเร็วโดยใช้อุปกรณ์เสมือน /dev/tcp โดยไม่ต้องใช้เครื่องมือภายนอก
# Check if port is open (bash built-in)
timeout 1 bash -c "echo >/dev/tcp/192.168.1.100/80" && echo open
# Loop over hosts
for i in $(seq 1 254); do
ping -c1 -W1 192.168.1.$i &>/dev/null && echo "192.168.1.$i up"
doneการเขียนสคริปต์แจกแจงข้อมูล DNS
ทำให้การแจกแจงข้อมูล DNS เป็นอัตโนมัติด้วย dnsrecon, amass หรือสคริปต์แบบกำหนดเองที่ค้นหาระเบียน A, MX, NS, TXT และ CNAME รวมทั้งสุ่มเดาชื่อโดเมนย่อย
dnsrecon -d target.com -t std
amass enum -d target.com
# Manual zone transfer attempt
dig axfr target.com @ns1.target.comการแจกแจงข้อมูล SMB ด้วย enum4linux
enum4linux ทำให้การแจกแจงข้อมูล SMB เป็นอัตโนมัติ ได้แก่ การแชร์ ผู้ใช้ กลุ่ม นโยบายรหัสผ่าน และข้อมูลระบบปฏิบัติการจากโฮสต์ Windows/Samba โดยไม่ต้องยืนยันตัวตน
enum4linux -a 192.168.1.100
# -a = all enumeration
# Shows: shares, users, groups,
# password policy, OS versionการแจกแจงข้อมูล SNMP
SNMP v1/v2c ใช้สตริงชุมชน (มักเป็น "สาธารณะ") เพื่อยืนยันตัวตน การสอบถาม SNMP เปิดเผยข้อมูลระบบ กระบวนการที่กำลังทำงาน อินเทอร์เฟซเครือข่าย และซอฟต์แวร์ที่ติดตั้ง
# Query with default community string
snmpwalk -c public -v2c 192.168.1.100
# Get system info only
snmpget -c public -v2c 192.168.1.100 1.3.6.1.2.1.1.1.0
# Brute force community strings
onesixtyone -c community.txt 192.168.1.100การจัดระเบียบผลลัพธ์
ผลลัพธ์ที่มีโครงสร้างเป็นสิ่งสำคัญสำหรับงานขนาดใหญ่ ควรใช้ไดเรกทอรีแยกตามเป้าหมาย ตั้งชื่อให้สอดคล้องกัน (target_service_date) และใช้เครื่องมืออย่าง tmux เพื่อบันทึกผลลัพธ์ทั้งหมดจากเทอร์มินัล
ตรวจสอบอย่างรวดเร็ว
หมวดหมู่ใดของ Nmap NSE ที่ใช้ตรวจสอบช่องโหว่ที่เป็นที่รู้จัก
สรุป: การเขียนสคริปต์แจกแจงข้อมูล
การเขียนสคริปต์เปลี่ยนคำสั่งเครื่องมือแต่ละรายการให้เป็นกระบวนการสำรวจข้อมูลที่ทำซ้ำได้ ควรผสานสคริปต์ NSE สำหรับการตรวจสอบแบบเจาะจงอย่างรวดเร็ว ใช้ Python สำหรับการแยกวิเคราะห์และทำงานอัตโนมัติแบบกำหนดเอง ใช้ Bash สำหรับค้นหาโฮสต์อย่างรวดเร็ว และใช้เครื่องมือเฉพาะทาง (enum4linux, dnsrecon, snmpwalk) สำหรับการแจกแจงข้อมูลตามโพรโทคอล
คำถามที่พบบ่อย
บทเรียน “การเขียนสคริปต์แจกแจงเครือข่าย” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การเขียนสคริปต์แจกแจงเครือข่าย” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cyber Security Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การเขียนสคริปต์แจกแจงเครือข่าย”
ทำให้การสำรวจข้อมูลเบื้องต้นเป็นอัตโนมัติด้วยสคริปต์ Nmap NSE และเครื่องมือสแกน Python ที่กำหนดเอง คุณปฏิบัติ Cyber Security Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cyber Security Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cyber Security Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “การเขียนสคริปต์แจกแจงเครือข่าย” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Cyber Security Academy นี้ได้ไหม
ได้ บทเรียน Cyber Security Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- เทคนิคการสแกนพอร์ตด้วย Nmap
- การระบุลักษณะบริการและระบบปฏิบัติการ
- Netcat: มีดพกสวิสสำหรับเครือข่าย
- การเขียนสคริปต์แจกแจงเครือข่าย