วันอังคารที่ 31 พฤษภาคม พ.ศ. 2554

การค้นหา และรวบรวมรายละเอียด

การค้นหา และรวบรวมรายละเอียด

การค้นหา และรวบรวมรายละเอียด

หลัง จากที่ได้เข้าไปค้นหาข้อมูลจนได้รายละเอียด ก็สู่การค้นหารายชื่อ และทรัพยากร ที่เรียกว่า Enumeration

ซึ่งเป็นระดับความร้ายแรงของ การบุกรุก ข้อมูลเพียงเล็กน้อยไปสู่ช่องโหว่ขนาดใหญ่ได้ ซึ่งผู้บริหารระบบต้องสกัดกั้นการรวบรวมดังนี้

-         รายชื่อทรัพยากรในเครือข่าย เช่นชื่อแชร์

-         รายชื่อผู้ใช้ และกลุ่มผู้ใช้

-         รายชื่อแอพพลิเคชั่น และแบนเนอร์

ใน เนื้อหาจะเน้น Windows NT, NetWare, Unix


Windows NT/2000 Enumeration

เครือข่าย Windows NT ใช้ Common Internet file System/Server Message Block (CIFS/SMB) ซึ่งทำงาน NetBIOS over TCP/IP ถึงแม้ว่า Windows 2000 ก็ยังรองรับ NetBIOS อยู่

Windows มีเครื่องมือในการบริหารงานที่เรียกว่า Resource Kit ซึ่งบางครั้งเครื่องมือนี้เป็นเครื่องมือที่ใช้ในการเจาะระบบของเรานั่นเอง

Null Sessions หัวใจในการรวบรวมข้อมูล

อย่างที่ทราบคือระบบ NeTBIOS สามารถดูได้โดยไม่ต้องล็อกออน ซึ่งการเปิดการเชื่อมต่อแบบนี้เรียกว่า Null Sessions

ตัวอย่าง net use \\192.168.202.33\IPC$ “” /u: “”

ถ้า เข้าใช้ได้แสดงว่าได้เปิดช่องไว้ให้เข้าใช้ด้วย Anonymous โดยสามารถตรวจสอบชื่อเครือข่าย, ชื่อแชร์, และชื่อผู้ใช้ และอื่นๆ ซึ่งจะถูกเข้าไปในจุดอ่อนของระบบ

การป้องกัน Null Sessions

คือ การกรองที่ NetBIOS over TCP/UDP ที่ 135/139 เช่นการไม่ผู้โปรโตคอล ใน Windows 2000 ไปกำหนดใน WINS tab และไป Disable NetBIOS over TCP/IP

หรือ แก้ไข Registry ที่ HKLM\System\CurrentControlSet\Control\LSA ไปที่ Edit -> Add Value และกำหนดชื่อ RestrictAnonymous : REG_DWORD : 1

ถ้า เป็น Windows 2000 ไปกำหนดใน Local Security Policy Snap-in -> \Local Policies\Security Options หรือถ้าเป็น Domain ให้ไปแก้ที่ Group Policy Snap-ins

การกำหนดไปที่ Additional Restrictions For Anonymous Connections และไปเลือก No Access Without Explicit Anonymous Permissions

มี ข้อสงสัยไปที่ Knowledge Base ของ Microsoft

การรวบรวมข้อมูลของ Windows NT/2000

เครื่องมือที่ใช้มีดังนี้

การรวบรวมรายชื่อ ด้วยคำสั่ง Net view

ตัวอย่าง net view /domain

Net view /domain:ชื่อโดเมน

เราสามารถกำหนดการแม็บชื่อกับ IP Address ได้โดยใช้ไฟล์ lmhosts ที่ Systemroot\System32\drivers\etc และกำหนด #PRE เพื่อกำหนดเข้าในแคช และเรียกคำสั่ง Netstat –R เพื่อรีโหลด

การตรวจ สอบชื่อด้วย nbtstat และ nbtscan

ตัวอย่าง

Nbtstat –A 192.168.202.33

ปัญหาของ nbtstat ดูได้ทีละเครื่องถ้าต้องการดูหลายเครื่องใช้ nbtscan ไปที่ http://www.abb.aha.ru/software/nbtscan.html

ตัวอย่าง nbtscan 192.168.234.0/24

การรวบรวมรายชื่อ Domain Controller ใน Windows NT/200

ใช้คำสั่ง nltest /dclist:ชื่อโดเมน โดยนำจาก Resource Kit

การดูชื่อแชร์จาก Netview

Net view \\ชื่อเครื่อง

การรวบรวมแชร์ด้วย DumpSec (DumpACL)

ของ Somarsoft (http://www.somarsoft.com)

การ รวบรวมชื่อแชร์ด้วย legion และ NAT

ซึ่งค้นหาให้อัตโนมัติ โดยทดลองการเชื่อมต่อด้วย Brute-force tool

เครื่องมืออีกตัวหนึ่ง คือ NetBIOS Auditing Tool (NAT) พัฒนาโดย Andrew Tridgell ซึ่งได้มีการสร้างกราฟฟิกครอบบงไปใน NAT อีกทีด้วย Neon Surge และ Chameleon ซึ่งจะมีความสามารถในการลองรหัสผ่านด้วย

เครื่องมืออื่นๆ สำหรับค้นหาข้อมูลในเครือข่าย

คือ epdump จากไมโครซอฟต์ซึ่งเข้าไปดูได้ที่ http://www.ntshop.net/security/tools/def.htm

Getmac และ netdom จากซีดีรอม Windows NT Resource Kits หรือ Netviewx โดย Jesper Lauristen ดูจาก http://www.ibt.ku.dk/jesper/Nttools/

Epdump เป็นการสอบถ้าไปที่ RPC endpoint mapper ซึ่งแสดงรายชื่อบริการในเครื่องนั้นพร้อมพอร์ด

Getmac ค้นหา MAC address และชื่อของเน็ตเวิร์กการ์ดผ่าน Null sessions

Netdom ให้ข้อมูลเกี่ยวกับโดเมนของสมาชิกในโดเมน

Netviewx เป็นการแสดงรายชื่อเครื่อง และบริการ ซึ่ง –D ระบุชื่อโดเมน –T ระบุประเภทของบริการที่ค้นหา

Winfo จาก Arne Vidtorm เป็นที่รวบรวม Account ของผู้ใช้ รายชื่อโดเมน และเครื่อง โดยใช้ Null session ซึ่งใช้พารามิเตอร์ –n

Nbtdump ของ David Litchfield สามารถสร้าง null sessions ค้นหาชื่อแชร์โฟลเดอร์ และแอคเคานต์ในรูปแบบเว็บเพจ

Enum ทีมงาน Razor จาก BindView รวมความสามารถต่างๆไว้ สามารถใช้พารามิเตอร์ต่างๆ โดย null session ดูนโยบายรหัสผ่านได้ ซึ่งเพื่อเดารหัสผ่านได้กี่ครั้งก่อนที่ห้ามใช้ โดยใช้ –D, -u และ –f

การ ป้องกันการรวบรวมข้อมูลผ่าน NetBIOS

เนื่องจากเทคนิคที่กล่าวมาระบบ ตรวจสอบที่พอร์ต 135, 139 ซึ่งวิธีที่ดีที่สุดคือการกรองพอร์ตดังกล่าว หรือไม่อนุญาตให้ใช้ NetBIOS over TCP/IP และกำหนดค่า RestrictAnonymous เพื่อป้องกันการสอบถามด้วย net view และ nbtstat ใน Windows 2000 ใช้ผ่านพอร์ต 445 ซึ่งอย่าลืมกรองด้วย
NT/2000 SNMP Enumeration

การ รันบริการ SNMP สามารถที่จะปล่อยให้ข้อมูลจากเครื่องอื่นได้โดยเฉพาะค่าดีฟอลท์ Community Name ที่กำหนดเป็น Public และใช้ SNMPUTIL ใน NTRK ในการค้นหา ซึ่งจะมีการระบุ Object Identifier (OID) ในการดูข้อมูล Management Information Base (MIB)

ค่า OID จำยากจึงได้ใช้เท็กซ์สตริงมาแทนออปเจค

มาตรการการป้องกัน SNMP

คือ การไม่ใช้บริการ SNMP หรือกำหนดค่า Community เป็นอย่างอื่นในองค์กร หรือกำหนดค่าใน Registry เพื่อให้กับบุคคลที่ต้องการเท่านั้นด้วย HKLM\System\CurrentControlSet\Service\SNMPParameters\Valid Communities และไปที่เมนู Security -> Permissions

SNMP ใช้พอร์ตที่ 161 ทั้ง TCP/UDM (SNMP GET/SET) กำหนดในไฟร์วอลล์เพื่อป้องกัน

การใช้ SolarWind -> IP Browser สามารถตรวจสอบค่าบริการต่างๆของ SNMP ได้


Windows 2000 DNS Zone Transfer

ในระบบปฏิบัติการ Windows 2000 ใช้ DNS ในการทำงานของ Active Directory ซึ่งเครื่องลูกข่ายจะตรวจสอบ AD และดู Kerberos ทำงานอยู่ที่ใด โดยใช้ SRV (RFC2052) ซึ่งบอกบริการให้ทางเช่น LDAP, FTP, หรือ WWW และชื่อที่ติดต่อกับบริการนั้นเช่น TCP หรือ UDP ดังนั้นการใช้ Zone Transfer จะทำให้เข้าใจเกี่ยวกับเป้าหมายอย่างดี

มี การใช้ _gc.__tcp ซึ่งเป็น Global Catalog Server และ _kerberos._tcp, _ldap._tcp

การป้องกันโอนถ่ายข้อมูล Windows 2000 DNS

ไป กำหนดใน Properties ของ Zone Name และกำหนด Zone Transfer



การ ค้นหารวบรวมรายชื่อผู้ใช้ และกลุ่ม

มีโปรแกรมที่ใช้ประโยชน์จาก null session และดึงข้อมูล ซึ่งมีโปรแกรมที่ใช้ในการ Enumerate ทำให้เข้าใช้ได้โดยไม่ต้องใช้ RestrictAnonymous

Enum ตามด้วย –D –u <username> -f <dictfile>

ซึ่งมี NTRK ที่ดึงข้อมูลในการใช้ได้เช่น usrstat, showgrps, local, และ global และ Dumpsec ในการดูรายการชื่อเครื่อง

การแยกผู้ใช้ด้วย User2sid/sid2user เป็นเครื่องมือในการวิเคราะห์ระบบโดยเข้าไปดูใน http://chem.msu.su:8080/~rudnyi/NT/sid.txt) เป็นคำสั่งที่ใช้ในการดู Security Identifier ซึ่งสามารถดูได้ที่ http://www.ntmag.com/magazine/article.cfm?articleID=3143

ซึ่ง ค่าข้อมูลจะดูหมายเลข SID ซึ่งมี S-1 และหมายเลขตามมา ซึ่งหมายเลขด้านท้ายเรียกว่า Relative identifier (RID) ซึ่งจะมีการกำหนด RID ของ Built-in User และ Built-in Group ไว้อยู่แล้ว โดย Administrator เท่ากับ 500 และ Guest คือ 501 ซึ่งแฮกเกอร์จะใช้ SID และ RID รวมกันได้ค่า SID ที่สมบูรณ์ของ sid2user

ค่า RID จะแจกต่อไปไม่ซ้ำเป็น 1001, 1002, 1003 ซึ่งระบบของ sid2user/user2sid ยังทำงานได้แม้กำหนด RestrictAnonymous ไว้และพอร์ต 139 เปิดอยู่

มาตรฐานการป้องกันการ รวบรวมรหัสผ่าน ผ่าน NetBIOS

คำสั่งที่ใช้คือ nbtstat หรือ nbtscan ซึ่งดูที่ 135, 139 และ 445 ซึ่งวิธีการให้ไปดิสเอเบิ้ลค่าบริการ Alerter และ Messenger บนเครื่องโดยไปที่ Control Panel -> Services

การ ป้องกันการขโมยข้อมูลผ่าน Null session ทำได้โดยกำหนดค่าคีย์ RestrictAnonymous ถ้าเป็น NT4 จะเป็น 1 ค่า Windows 2000 เป็น 2 ที่ HKLM\System\CurrentControlSet\Control\LSA

วิธีป้องกัน sid2user/user2sid ป้องกันได้โดยการไม่ให้เข้าถึงพอร์ต TCP 139 และ 445

การ ค้นหา และรวบรวมรายชื่อผู้ใช้ผ่าน SNMP

ให้ไปกำหนดการในบริการ SNMP และค่า Community Name หรือกำหนดสิทธิในการเข้าใช้

การรวบรวมข้อมูล ใน Active Directory ของ Windows 2000 ด้วย ldp

ในระบบปฏิบัติการ Windows 2000 รองรับ LDAP ซึ่งเรียกว่า AD ซึ่งมีเครื่องมือในการดึงจาก Support\Tools ด้วยคำสั่ง Active Directory Administration Tools (ldp.exe) ต่อเชื่อมผ่าน LDAP บนฐานข้อมูล AD

ซึ่งการดึงจะใช้ LDAP Query ไปถาม ซึ่งผู้เจาะระบบถ้าทราบ Accounts ใดๆจะสามารถดึงรายชื่อได้หมดแม้ปิดพอร์ตที่ NetBIOS ก็ตาม

วิธีการ อ้างจะใช้รูตคอนเท็กซ์ Root Context ซึ่งมี DC=labforce,DC=org

การ ต่อเชื่อม

   1. มีการเรียกเพื่อเข้าใช้ Open Connection -> Connect จะติดต่อไปที่ IP จาก DNS และไปที่พอร์ต 389 ใน Global Catalog จะเข้าไปที่พอร์ต 3286
   2. ใช้ Guest และกำหนด Bind โดยใส่ชื่อโดเมน
   3. กำหนด View ->Tree พิมพ์ตำแหน่งของ Root Context เช่น dc=labforce,dc=org
   4. จะมีโหนดย่อยปรากฏ
   5. ซึ่งดับเบิ้ลคลิกเพื่อเข้าดู CN=Users และ CN=Builtin จะทราบรายชื่อทั้งหมด

การ ที่ใช้ Guest และกำหนดเข้าไปดูได้สาเหตุเพราะในระบบ NT4, SQL ต้องเข้าดูรายชื่อใน Windows 2000 จึงต้องผ่อนสิทธิลงไป

มาตรการ ป้องกันการล้วงข้อมูลใน Active Directory

อันดับแรกสุดคือการป้องกัน โดยใช้ Firewall เพื่อไม่ให้ผู้ใช้เข้าไปถึงพอร์ต 389 และ 3268 เพื่อเข้าสู่สาธารณะชน

อันดับสองกำหนด Permission compatible with pre-Windows 2000 Server ให้เข้มงวดด้วยการนำ Everyone ออก หรือไปกำหนดการอนุญาตในการเข้าดูที่



Object
 

Permission
 

Applies To

Directory root
 

List contents
 

This object and all children

User objects
 

List contents, Read All Properties, Read Permissions
 

User objects

Group objects
 

List contents, Read All Properties, Read Permissions
 

Group objects

หรือใช้ ตอนโปรโมท Dcpromo หรือใช้คำสั่ง net localgroup “Pre-Windows 2000 Compatible Access” everyone /add



การค้นหา และรวบรวมรายชื่อแอพพลิเคชั่น และนามของบริการใน NT/2000

เราสามารถ ที่ใช้ enumerate ข้อมูลต่างๆที่ทำงานอยู่บน NT/2000 ได้เทคนิคนี้เรียกวาว Banner grabbing ซึ่งผู้เจาะระบบจะทราบถึงเวอร์ชั่นของแอพพลิเคชั่น และนำไปสู่การหาจุดอ่อนของระบบ

พื้นฐานในการอ่านนามของบริการ

ใช้ คำสั่ง Telnet และ Netcat

คำสั่งที่ใช้ telnet ชื่อเครื่อง พอร์ต

ซึ่ง จะได้รับการตอบรับ และเวอร์ชั่นของบริการ

หรือใช้ Netcat ซึ่งพัฒนาโดย Hobbit เป็นนักเจาะระบบ Windows NT ตัวยง (www.avian.org) หรือเข้าใน L0pht

คำสั่งที่ใช้ nc –v www.corleone.com 80

มาตรการป้องกันการอ่านนาม ของบริการ

การป้องกันขึ้นอยู่กับผู้บริหารระบบ ซึ่งสามารถที่จะปิดบังไม่ให้ปรากฏนามของบริการ โดยอาจใช้ netcat ไปตรวจสอบที่พอร์ตของบริการ



การรวบรวม Registry ของ Windows NT/2000

ในการรวบรวมรายละเอียดที่ใช้กันวิธีหนึ่งคือการดึง Registry ของเครื่องปลายทาง ซึ่งการติดตั้งบริการต่างๆจะอยู่ใน Registry ทั้งตำแหน่ง และรายละเอียด ซึ่งดีฟอลท์ระบบปฏิบัติการ Windows NT/2000 ป้องกันให้ Administrators เท่านั้นที่ใช้ได้ดังนั้นการใช้ null session จะเข้าไปดูไม่ได้ แต่มีข้อที่ระวังอยู่ตรงที่ถ้าคีย์ HKLM\System\CurrentControlSet\Control\SecurePipeServer\Winreg\AllowedPaths ระบุให้ค่า null session เป็นดีฟอลท์จะอนุญาตให้เข้าในโฟลเดอร์ HKLM\Software\Microsoft\WindowsNT\Current Version\

เครื่องมือที่ ใช้คือ regdmp จาก NTRK และ DumpSec จาก Somarsoft

ซึ่งผู้อ่าน ข้อมูลอาจจะลองเข้าไปในค่าคีย์ต่างๆ และดูที่ HKLM\…\Current Version\Run เพื่อดูว่ามีอะไรทำงานอยู่ตอนเปิดเครื่องบาง ซึ่งอาจมี NetBus เข้าไปอยู่

DumpSec ดูได้ง่ายกว่าโดยจะทราบบริการที่เป็น 32 บิต และไดร์ฟเวอร์ที่อยู่ในเครื่องปลายทางว่าทำงานอยู่หรือไม่

มาตรการ ป้องกันการอ่านค่า Registry

ไม่ยอมให้มีการอ่านค่า Registry จากทางไกล ตรวจสอบโดยคีย์ winreg ที่อยู่ HKLM\System\CurrentControlSet\Control\SecurePipeServers ว่ามีอยู่การเข้าใช้กำหนดเฉพาะ Administrators เท่านั้น (ใน Windows NT/2000 Server จะกำหนดไว้อยู่แล้วแต่ Windows NT/2000 Workstation จะไม่กำหนด)

ใช้ Dumpsec ตรวจสอบใน Path อื่นๆที่กำหนดด้วย



การ สั่งให้เครื่องมือต่างๆทำงานอัตโนมัติด้วยการใช้สคริปต์

ในการบริหาร งานของระบบปฏิบัติการ Windows NT/2000 สามารถรองรับการทำงานโดยใช้สคริปต์ ซึ่งเราสามารถที่จะสร้างไฟล์แบตช์ หรือสคริปต์เพื่อตรวจสอบเครื่องจำนวนมากๆ (สคริปต์รองรับทั้ง Perl, VBScript)

ไม่มีความคิดเห็น:

แสดงความคิดเห็น