แนะนำการตรวจสอบช่องโหว่ร้ายแรง “regreSSHion” CVE-2024-6387

regreSSHion หรือ CVE-2024-6387 เป็นช่องโหว่ร้ายแรงใน OpenSSH ที่เปิดเผยในเดือนกรกฎาคม 2024 ช่องโหว่นี้ ช่วยให้อาชญากรไซเบอร์สามารถเข้าถึงระบบของคุณจากระยะไกลโดยไม่ต้องใช้รหัสผ่าน และสามารถควบคุมระบบของคุณได้อย่างสมบูรณ์ ช่องโหว่นี้ส่งผลกระทบต่อ OpenSSH เวอร์ชัน 8.5p1 ถึง 9.8p1 บนระบบ Linux ที่ใช้ glibc

ภาพจาก: https://blog.qualys.com/vulnerabilities-threat-research/2024/07/01/regresshion-remote-unauthenticated-code-execution-vulnerability-in-openssh-server

วิธีป้องกัน

  • อัปเดต OpenSSH: ทางที่ดีควรอัปเดต OpenSSH เป็นเวอร์ชันล่าสุดโดยเร็วที่สุด เวอร์ชันล่าสุด (9.9p1) ได้รับการแก้ไขช่องโหว่ regreSSHion แล้ว
  • ตรวจสอบระบบของคุณ: คุณสามารถใช้เครื่องมือสแกนเนอร์ช่องโหว่เพื่อตรวจสอบว่าระบบของคุณได้รับผลกระทบจาก regreSSHion หรือไม่
  • จำกัดการเข้าถึง: จำกัดการเข้าถึงระบบ OpenSSH ของคุณให้น้อยที่สุด
  • ใช้การตรวจสอบสิทธิ์: ตรวจสอบสิทธิ์ของไฟล์และไดเรกทอรี OpenSSH ของคุณอย่างสม่ำเสมอ
  • ตรวจสอบบันทึก: ตรวจสอบบันทึกระบบของคุณอย่างสม่ำเสมอเพื่อดูว่ามีกิจกรรมที่ผิดปกติหรือไม่

วิธีตรวจสอบช่องโหว่ CVE-2024-6387

CVE-2024-6387_Check เป็นเครื่องมือที่มีขนาดเล็กแต่มีประสิทธิภาพในการค้นหาเครื่อง server ที่ใช้งาน OpenSSH เวอร์ชั่นทีมีช่องโหว่โดยเฉพาะ โดยการกำหนดเป้าหมายไปที่ช่องโหว่ regreSSHion

การติดตั้ง

  1. Install Python: Ensure you have Python installed on your system. If not, install it using your system’s package manager.
  2. Download the Script: Download the CVE-2024-6387_Check script from its GitHub repository: https://github.com/xaitax/CVE-2024-6387_Check You can use the following command to
curl -LO https://raw.githubusercontent.com/xaitax/CVE-2024-6387_Check/main/CVE-2024-6387_Check.py

หรือจะใช้ผ่าน git clone ก็ได้ แล้วแต่ความสะดวก ส่วนตัวผมชอบ git clone มากกว่า เพราะเวลามี update อะไรก็จะได้ pull มาได้เลย ในตัวอย่างนี้ผมจะใช้ git clone เป็นหลัก

git clone https://github.com/xaitax/CVE-2024-6387_Check

ขั้นตอนการสแกนหาช่องโหว่

เข้าไปยัง directory ที่ clone มา

cd CVE-2024-6387_Check

รูปแบบการใช้งาน สำหรับเครื่องที่ติดตั้ง python เวอร์ชั่น 3 ให้ใช้ python3 แทน

python CVE-2024-6387_Check.py [--port PORT] [--timeout TIMEOUT] [--list FILE] [--grace-time-check [SECONDS]]

อธิบาย Command Line Arguments

  • <targets>: IP addresses, domain names, file paths containing IP addresses, or CIDR network ranges.
  • --port PORT: Specify the port number to check (default: 22).
  • --timeout TIMEOUT: Set connection timeout in seconds (default: 1 second).
  • --list FILE: File containing a list of IP addresses to check.
  • --grace-time-check [SECONDS]: Time in seconds to wait after identifying the version to check for LoginGraceTime mitigation (default: 120 seconds).

ตัวอย่างการใช้งาน

Single IP – สแกนแค่เครื่องเดียว

python CVE-2024-6387_Check.py 192.168.1.1

IPs from a file – สแกนจากไฟล์ที่มี IP list อยู่หลายเครื่อง

python CVE-2024-6387_Check.py -l ip_list.txt

Multiple IPs and Domains – สแกนจากหลาย IP หรือ หลาย domain พร้อมกัน (แบบเดียวกับ file)

python CVE-2024-6387_Check.py 192.168.1.1 example.com 192.168.1.2

CIDR Range – สแกนแบบช่วงของ IP/Subnet

python CVE-2024-6387_Check.py 192.168.1.0/24

With Custom Port – สำหรับกำหนด ในกรณีที่ ssh ที่ไม่ได้ใช้ port 22

python CVE-2024-6387_Check.py 192.168.1.1 example.com --port 2222

Checking LoginGraceTime Mitigation – หน่วงเวลาในการทำงาน

python CVE-2024-6387_Check.py 192.168.1.1 --grace-time-check

ผลลัพท์ที่ได้

ในตัวอย่างก็จะแสดงสถานะเครื่องที่เราสแกน ว่ามีช่องโหว่นี้อยู่หรือไม่ โดยจะแยกเป็นเครื่องที่ไม่พบช่องโหว่, พบช่องโหว่, และไม่ทราบ SSH version ซึ่งเป็น ssh ที่อยู่นอกเหนือรายการที่สแกน

🛡️ Servers not vulnerable: 2

   [+] Server at somedomain.cloudapp.azure.com (running SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.11)
   [+] Server at regresshion_test.cc (running SSH-2.0-OpenSSH_9.6p1 Ubuntu-3ubuntu13.3)

🚨 Servers likely vulnerable: 1

   [+] Server at 4.231.170.122 (running SSH-2.0-OpenSSH_9.2p1 Debian-2+deb12u2)
   [+] Server at 4.231.170.121 (running SSH-2.0-OpenSSH_9.2p1 Debian-2+deb12u2) with LoginGraceTime mitigation detected (session stayed open for 120 seconds)

⚠️ Servers with unknown SSH version: 1

   [+] Server at 103.97.85.85 (banner: SSH-2.0-ROSSSH)

🔒 Servers with port 22 closed: 254

📊 Total scanned targets: 257

เมื่อพบเครื่องที่ไม่ปลอดภัย เราก็จัดการ update OpenSSH-Server ให้เรียบร้อย