0Pricing
Cyber Security Academy · บทเรียน

การเขียนสคริปต์แจกแจงเครือข่าย

ทำให้การสำรวจข้อมูลเบื้องต้นเป็นอัตโนมัติด้วยสคริปต์ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. เทคนิคการสแกนพอร์ตด้วย Nmap
  2. การระบุลักษณะบริการและระบบปฏิบัติการ
  3. Netcat: มีดพกสวิสสำหรับเครือข่าย
  4. การเขียนสคริปต์แจกแจงเครือข่าย
← กลับไปที่ Cyber Security Academy