https://www.informationsecurity.com.tw/Seminar/2024_TNSP/
https://www.informationsecurity.com.tw/Seminar/2024_TNSP/

觀點

駭客入侵第三階段─列舉分析

2009 / 07 / 16
馮智偉
駭客入侵第三階段─列舉分析

繼前幾期介紹過駭客入侵的二階段後,為您介紹第三階段─“Enumeration”。

  近來沉迷於網路的傑克有了新念頭,他聽說Windows系列的作業系統可利用Null Sessions登入,然後列舉出系統上的使用者帳號名稱及其他系統相關的重要資訊。傑克想要試試在一些資訊安全課程上所學的技術及方法,他得知北部某所科技大學的網站伺服器有Null Sessions的問題,允許匿名使用者登入系統。

  於是,傑克在他的電腦主機上安裝一些可利用Null Sessions列舉系統資訊的應用程式。他試著使用這些應用程式去發掘目標伺服器的資訊。傑克發現原來他可以取得的目標系統主機相關資訊遠超過他所想像的,本來只是無聊時做的一些無傷大雅的舉動,但在傑克看到目標伺服器所列舉的許多重要資訊後,有了不好的想法。

? 傑克可以利用收集來的資訊做些什麼?

? 傑克可能會製造出不可收拾的後果嗎?

? 如果傑克所列舉有弱點的目標主機是用來從事網路交易,會有何嚴重後果?

第三階段─列舉

  如果靠著資料收集與非惡意性的掃瞄行為都無法取得任何有用的資訊時,駭客便會開始嘗試取得目標網路主機裡,目前有效的使用者帳號或者找尋其中防護較差的資源共享等,駭客會使用enumeration(列舉)的技術來幫助自己達到目的。

  列舉需即時與目標系統主機的連線和直接的查詢,在Windows系列的作業系統中,最常被利用就是Net Bios Null Sessions漏洞,建立連線後,駭客再根據不同目的,使用不同的列舉技術來取得相關資訊,如所使用的資訊種類、網路資源與共享、使用者與群組及應用程式與標語 。

  我們要討論的重點如下:了解有關Windows系列的作業系統所使用的列舉模式;可使用哪些工具,像如何使用Null session來做連線、如何去做NetBIOS、SNM、Active Directory的列舉、如何使用zone transfers取得Windows網域的相關資訊(DNS information),及學習使用CIFS/SMB來列舉使用者帳號等。

Net Bios Null Sessions漏洞

  Null session 通常被稱做"Holy Grailof Windows Hacking"(意指一切Windows Hacking 的起始源頭)。Null sessions是利用CIFS / SMB (Common Internet File System / Server Messaging Block) 協定的設計缺失來執行。這意味著駭客可以與Windows系列作業系統(NT/2000/XP)電腦主機建立Null Session的連線,卻不需要任何使用者帳號跟密碼。

  利用Null Session的連線,駭客可以收集到目標主機裡的許多資訊,比如說:使用者與群組的詳細列表、電腦主機的詳細列表、資源共享清單及使用者與主機之SIDs(Security Identifiers)等。也許有人會問,這有什麼值得大驚小怪的?想像一下:「任何人只要能與一部電腦主機利用Null Session建立NetBIOS連線,就可以輕易地取得完整的所有使用者名稱、群組名稱、資源共享、權限資料、政策資料、服務資料以及其他許多相關資訊」而且這一切都
不需要任何使用者帳號跟密碼即可完成。

  「C: \>net use \\192.34.34.2 \IPC$ “” /u: “”」諸如此類的指令可讓駭客以預設的匿名使用者身分,不需任何密碼,連結上IP 192.34.34.2主機上隱藏的 Inter Process Communication (IPC$) 共享資料夾。還有Windows 2000裡的CIFS/SMB 協定與 NetBIOS 標準所附加的 APIs會透過主機上之TCP 139 通訊埠給予使用者非常多有用的資訊,就算該名使用者是沒有經過系統驗證通過的匿名使用者。換句話說,駭客現在可以利用此類管道來進行各種列舉技術取得相關資料。

  即使你是個新手,也沒有關係,因為你可以利用一些工具來達到同樣的目的。最常見的工具有DumpSec。這是透過Null Session連線來顯示目標系統主機上的所有資源共享)。

  另外一個駭客常用工具Winfo。也是透過Null Session連線自遠端取得目標系統主機上的資訊,當使用verbose模式,Winfo會顯示詳盡的目標系統主機資訊,包括︰系統資訊、網域資訊、密碼設定原則、登出原則、連線狀態、登入的使用者與使用者帳號等。

  NetBIOS Auditing Tool (NAT)是被設計來利用目標系統主機上所提供的NetBIOS檔案共享服務來進行列舉。它使用逐步化的方法收集系統資訊,並且利用 Null Session連線來假扮成合法的使用者,嘗試去取得檔案系統的存取權。駭客可以利用遠端目標主機的TCP 139通訊埠來建立NetBIOS連線,一旦駭客建立完整的連線後,NAT會開始執行任務,收集目標系統的資訊,其中也包含此目標主機所提供的所有檔案系統共享資訊。

  針對Null Session這個漏洞是否有一些加強安全的防禦機制?當然是有的,要建立Null sessions時需要可以存取TCP通訊埠139和/或445;所以你可以將系統主機上的SMB 服務完全關閉。做法是移除網路介面卡上的TCP/IP WINS Client;再來就是編輯登錄檔 (registry) 來限制匿名使用者的存取,作法如下:

1. 在「開始」→ 「執行」中鍵入regedit,瀏覽找出目錄夾:HKLM\SYSTEM\CurrentControlSet\Control\LSA

2. 選擇「編輯」 | 「新增」 → 「機碼」 →「DWORD 值」value name: RestrictAnonymousData Type: REG_WORDValue: 2

列舉分析技術

  在連線建立完成後,列舉分析技術又可細分以下幾種,包括N e t B I O S E n u m e r a t i o n、S N M P Enumeration與Active Directory Enumeration。首先是NetBIOS Enumeration。 NBTscan是駭客常用的工具,它會去掃瞄目標IP網路來取得NetBIOS名稱資訊,對於所有有回應的系統主機,NBTscan會列出其IP位址、NetBIOS電腦名稱、登入的使用者名稱,及MAC位址。所使用的指令為:「net view / domain,」與「nbstat -A <some IP>」。

  第2是SNMP Enumeration 。SNMP是一種很簡單的網路協定:管理者傳送請求給其下的代理者,然後代理者傳送回應給管理者。

  這些請求及回應代表了一些代理者軟體可以存取的變數,像是管理者可以傳送請求來設定及變更代理者上某些變數的值,如Traps。透過這些變數讓管理者知道在代理者端發生什麼樣的狀況,包含重新開機、網路卡介面故障等等。駭客透過snmputil工具即可很輕易地利用 SNMP 協定來列舉Windows NT系列作業系統的使用者名稱。

  知名工具Solarwinds,是個網路管理工具軟體,包含了探勘、Cisco 工具、Ping 工具、位址管理、網路監控、MIB 瀏覽器、網路安全和其他功能。另一個工具軟體Enum,是個需要放置在目標主機內使用的 Win32 資料列舉工具。它利用null sessions連線,可以列舉出使用者列表、主機列表、共享資源列表、名稱列表、群組及會員列表、密碼及LSA政策等許多資訊。Enum還有能力針對使用者帳號進行基本的暴力破解字典檔攻擊。

  SNScan V1.05,也是一種安裝在Windows系列作業系統上的SNMP掃瞄工具軟體,可有效偵測目標網路內所有執行SNMP協定的網路設備,因此會去掃瞄SNMP協定所使用的通訊埠,並嘗試使用預設的community names登入,是有用的資訊收集工具軟體。

  針對SNMP Enumeration的弱點,也有相關安全防禦機制,最簡單且有效的防制方法是移除SNMP代理者軟體或是關閉SNMP服務。如果你無法關閉SNMP服務,就應該要將預設的community name‘public''改掉,執行群組原則內的選項“Additional restrictions for anonymous connections”,此外,用來存取null
session的通道、null session的共享及IPSec過濾上都應該要做限制。

Windows 2000 DNS Zone transfer

  凡是位於Windows 2000網域 (AD 和 kerberos)裡的電腦主機如果要尋找域名資訊的話,都要透過DNS SRV記錄;簡單的zone transfer (nslookup, ls-d <domainname>)可以列舉出許多有用的網路網域名稱資訊。通常駭客會對下列的記錄特別注意:Global Catalog Service (_gc._tcp_)、Domain Controllers(_ldap._tcp)及Kerberos Authentication (_kerberos._tcp)。

  該如何阻擋W i n 2 k D N S Zone transfer?利用DNS服務選項,可關閉Zone transfers的服務)。

?列舉使用者帳號的常用工具

  2種功能強大的NT/2000使用者帳號列舉工具軟體:sid2user和user2sid,這2種命令列的工具,可以輸入使用者名稱來查詢SIDs,也可以輸入SIDs 來查出使用者名稱。

  還有一種具有強大功能的工具Userinfo。只要目標網路系統主機之TCP 139通訊埠可以被存取,Userinfo就可以取得任何NT/Win2k作業系統內所有使用者的資訊。Userinfo會特別去呼叫Level 3的NetUserGetInfo API,Userinfo會回傳一些標準的使用者資訊包括:SID和其首要群組、登入的限制與smart card必備條件需求、特殊群組資訊、密碼過期期限資訊與密碼期限長度等。此應用程式所使用的身分是匿名使用者,就算管理者把RestrictAnonymous設為1也無法阻擋它的執行。此外利用GetAcct這個工具也可以繞過“RestrictAnonymous=1”的選項限制而去取得 Windows NT/2000 作業系統主機上所有的使用者帳號資訊。

  最後是Active Directory Enumeration。透過簡單的LDAP查詢,所有現存的使用者與群組都可以被列舉出來。這類列舉所需要的唯一條件是要建立一個經過認證的LDAP連線。首先要使用ldp.exe去連AD伺服器上的TCP 389通訊埠,通常駭客只需要有Guest或是任何網域上的帳號權限就可以通過驗證。而通過驗證之後,所有的使用者帳號及群組就可以被列舉出來。

  管理者若要針對AD Enumeration的弱點來作防禦,必須考慮到:為什麼連最基本的 Guest 帳號都可以做列舉?這其實應該是可以被避免的。當在操作Win 2k作業系統內的dcpromo安裝畫面時,會詢問使用者是否想要放寬存取AD的限制,允許舊版的伺服器來做查詢。這時你會看到兩個選項:1.Permission compatible with pre-Win2k;2.Permission compatible with only with Win2k。請記得在安裝AD時選第2個選項以提升安全性。

  最後,關於Enumeration,值得注意的有:

?駭客最常利用 Null sessions 來與目標系統主機建立連線,既可有效列舉所需的資訊,又無需任何使用者帳號及密碼。

? 駭客最常列舉的資訊項目包含了網路資源與共享,使用者名稱與群組名稱,還有應用程式項目與標語。

? 可以使用snmputil、NAT等工具軟體來執行NetBIOS與 SNMP 的列舉。

? 駭客可用User2sid、sid2user和userinfo等偵測及發掘有弱點的使用者帳號,進一步執行破解密碼任務。

? 列舉主要目的在搜尋系統中共有資源與使用者資訊,以便尋找漏洞進行進一步的入侵行為。