欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

完全解剖安全帳號管理器(SAM)結構

 更新時間:2007年11月22日 20:03:34   作者:  

安全設置不得不需要了解的東西
一、摘要
  
  分析安全帳號管理器結構是在一個多月前做的事情了,只零碎地記錄下片段,沒有發(fā)布過。不發(fā)布的主要原因是安全帳戶管理器(SAM)是WIN系統(tǒng)帳戶管理的核心,并且非常系統(tǒng)化,我也有很多地方僅僅是進行的推斷和猜測,同時,SAM hack可能造成啟動時lsass.exe加載帳戶管理器出錯,即便是安全模式也不能修復(啟動時候必然加載SAM)使得整個系統(tǒng)啟動崩潰(我通常需要依靠第二系統(tǒng)刪除SAM文件來啟動)。至于現(xiàn)在發(fā)布出來,主要是因為Adam和叮叮的《克隆管理員帳號》種所描述的制作rootkit辦法隱蔽性和危害性,對SAM的結構的熟悉,可以幫助安全維護人員做好安全檢測(當然也可能讓不良企圖者利用)。這里只介紹關于SAM的內(nèi)容,同Security相關的暫時不公開。
  
  二、關于SAM
  
  不要誤解了SAM,這不是一個文件sam這么簡單。SAM(Security Accounts Manager安全帳戶管理器)負責SAM數(shù)據(jù)庫的控制和維護。SAM數(shù)據(jù)庫位于注冊表HKLMSAMSAM下,受到ACL保護,可以使用regedt32.exe打開注冊表編輯器并設置適當權限查看SAM中的內(nèi)容。SAM數(shù)據(jù)庫在磁盤上就保存在%systemroot%system32config目錄下的sam文件中,在這個目錄下還包括一個security文件,是安全數(shù)據(jù)庫的內(nèi)容,兩者有不少關系。
  
  SAM數(shù)據(jù)庫中包含所有組、帳戶的信息,包括密碼HASH、帳戶的SID等。這些內(nèi)容在后面詳細介紹。分析的系統(tǒng)中文Win2K Adv Server為例。
  
  三、注冊表中SAM數(shù)據(jù)庫的結構
  
  展開注冊表HKLMSAMSAM:
  
  HKLM---SAM
  |---SAM
  |---Domains
  | |---Account
  | | |---Aliases
  | | | |---Members
  | | | |---Names
  | | |---Groups
  | | | |---00000201
  | | | |---Names
  | | | |---None
  | | |---Users
  | | |---000001F4
  | | |---000001F5
  | | |---000003E8
  | | |---000003E9
  | | |---Names
  | | |---Adaministrator
  | | |---Guest
  | | |---IUSR_REFDOM
  | | |---IWASM_REFDOM
  | |---Builtin
  | |---Aliases
  | | |---00000220
  | | |---00000221
  | | |---00000222
  | | |---00000223
  | | |---Members
  | | | |---S-1-5-21-1214440339-706699826-1708537768
  | | | |---000001F4
  | | | |---000001F5
  | | | |---000003E8
  | | | |---000003E9
  | | |--- Names
  | | |---Administrators
  | | |---Users
  | | |---Guests
  | | |---Power Users
  | |---Groups
  | | |---Names
  | |
  | |---Users
  | |---Names
  |
  |---RXACT
  
  這是機器上注冊表中的SAM樹。
  
  對照SAM文件中的內(nèi)容,可以看出,注冊表中的SAM樹實際上就是SAM文件中一樣。不過,SAM文件中是先列RXACT然后在是Domains內(nèi)容(以此類推),文件中的表達順序和注冊表中的樹形順序是相反的。如果習慣于看文件內(nèi)容,從文件的0000h到0006Ch,表示的是SAM數(shù)據(jù)庫所在的位置:systemrootsystem32configsam,然后是一端空白,直到01000h(hbin),從這里開始就是整個數(shù)據(jù)庫的內(nèi)容。SAM數(shù)據(jù)庫的文件內(nèi)容不作主要介紹,不過會穿插著介紹,有興趣可以自己去研究。
  
  四、SAM數(shù)據(jù)庫的結構和主要內(nèi)容:
  
  在整個數(shù)據(jù)庫中,帳號主要內(nèi)容存在于下面這些位置:
  
  在Domains下就是域(或本機)中的SAM內(nèi)容,其下有兩個分支“Account”和“Builtin”
  
  DomainsAccount是用戶帳號內(nèi)容。
  
  DomainsAccountUsers下就是各個帳號的信息。其下的子鍵就是各個帳號的SID相對標志符。比如000001F4,每個帳號下面有兩個子項,F(xiàn)和V。其中Names下是用戶帳號名,每個帳號名只有一個默認的子項,項中類型不是一般的注冊表數(shù)據(jù)類型,而是指向標志這個帳號的SID最后一項(相對標識符),比如其下的Administrator,類型為0x1F4,于是從前面的000001F4就對應著帳戶名administrator的內(nèi)容。由此可見MS帳號搜索的邏輯。
  
  推斷一:從注冊表中結構來看帳號,如果查詢一個帳戶名refdom的相關信息,那么,微軟從帳號名refdom中
  
  找到其類型0x3EB,然后查找相對標志符(或者SID)為000003EB的帳號內(nèi)容。所有的API函數(shù)(比如NetUserEnum())都是這樣來執(zhí)行的。因此,如果改變refdom帳號中的類型0x3EB為0x1F4,那么這個帳號將被指向類000001F4的帳戶。而這個帳號000001F4就是administrator帳戶,這樣,系統(tǒng)在登錄過程中就把refdom帳號完全轉為了administrator帳號,帳號refdom所使用的所有內(nèi)容、信息都是adminisrtator內(nèi)容,包括密碼、權限、桌面、記錄、訪問時間等等。這個推斷應該成立,但是,將意味著兩個用戶名對應一個用戶信息,系統(tǒng)啟動上應該會發(fā)生錯誤!
  
  推斷一是在以前分析結構的時候即得出了,揭示了登錄過程中及之后帳戶名和SID關聯(lián)的關系。
  
  DomainsAccountUsers00001F4,這就是administrator的帳戶信息(其他類似)。其中有兩個子項V和F。
  
  項目V中保存的是帳戶的基本資料,用戶名、用戶全名(full name)、所屬組、描述、密碼hash、注釋、是否可以更改密碼、帳戶啟用、密碼設置時間等。項目F中保存的是一些登錄記錄,比如上次登錄時間、錯誤登錄次數(shù)等,還有一個重要的地方就是這個帳號的SID相對標志符。
  
  以前分析結構的時候沒有留意到這個地方,這就是Adam提出的思路。這個地方就是這個SID相對標志符在注冊表中一個帳號出現(xiàn)了兩遍,一個是在子鍵000001F4,另一個地方就是子鍵中項F的內(nèi)容里面,從48到51的四個字節(jié):F4 01 00 00,這實際上是一個long類型變量,也就是00 00 01 F4。當一個標志出現(xiàn)在兩個地方的時候就將發(fā)生同步問題。明顯,微軟犯了這個毛病。兩個變量本應該統(tǒng)一標志一個用戶帳號,但是微軟把兩個變量分別發(fā)揮各自的作用,卻沒有同步統(tǒng)一起來。
  
  子鍵中000001F4用來同用戶名administrator對應,方便通過用戶查詢帳戶信息,比如LookupAccountSid()等帳號相關API函數(shù)都是通過這個位置來定位用戶信息的,這個關聯(lián)應該是用在了帳戶登錄以后。而項目V值中的F4 01 00 00是同帳戶登錄最直接相關聯(lián)的。
  
  推斷二:WIN登錄的時候,將從SAM中獲得相對標志符,而這個相對標志符的位置是V值中的 F4 01 00 00。但是,帳戶信息查詢卻使用的SAM中子鍵內(nèi)容。
  
  推斷二的原因假設(假設一):在帳戶登錄的時候,登錄過程獲得SAM數(shù)據(jù)庫中用戶名使用的帳戶記錄信息中的相對標志符值(相當于V值中的 F4 01 00 00),帳戶登錄之后,所有跟帳戶相關的之后,這個值不再被API函數(shù)使用,而相對標志符由一個數(shù)據(jù)記錄項的字段名代替(相當于子鍵000001F4)。微軟犯了一個同步邏輯問題!
  
  推斷二是根據(jù)Adam提出而進行的,以前沒有這樣推斷過。:( 推斷二如果成立,揭示了在登錄過程中帳戶SID進行的過程。這就是為什么V中的值都是跟帳戶登錄記錄(登錄時間,密碼錯誤次數(shù)等)相關的原因。同時,因為F中保存了一個用戶名內(nèi)容,而API函數(shù)查詢的是這個用戶名,所以Adam的克隆辦法還是容易露臉,經(jīng)叮叮補充過后,這個用戶名也被恢復原用戶名了,從用戶名上檢測就相對難了。
  
  上面對項目V的介紹可以知道,其中保存的是帳戶的基本資料,用戶名、用戶全名(full name)、所屬組、描述、密碼hash、注釋、是否可以更改密碼、帳戶啟用、密碼設置時間等?,F(xiàn)在來關心的是密碼HASH。
  
  假設二:在帳戶的項V中,包含了用戶HASH,分別包括是LM2和NT的密碼加密散列,Crack時,可分開進行。畢竟LM2簡單。
  
  DomainsBuiltin下的內(nèi)容是同帳戶組相關的。其結構同Account下的類似,并且也存在相應的問題,就不再羅嗦了。
  
  SAM數(shù)據(jù)庫保存的文件sam中,可沒有注冊表中的這么簡明的內(nèi)容,而主要是通過偏移量、長度來定位內(nèi)容。并且單個帳號的信息都是集中在一塊的,而不是象注冊表形式這樣分隔開(名字的一個鍵而內(nèi)容在另外一個鍵)。
  
  sam文件中,可根據(jù)這些下面這些分隔符來定位數(shù)據(jù)含義:
  
  nk (6E 6B) 鍵或者子鍵名
  vk (76 6B) 相應的值
  if (6C 66) 子鍵列表
  sk (73 6B) 權限
  
  五、關于SAM數(shù)據(jù)庫分析的結論:
  
  SAM HACK是非常有危險性的。不正確的修改會將系統(tǒng)的安全數(shù)據(jù)管理器破壞,造成系統(tǒng)啟動問題,雖然可以通過刪除SAM文件來讓啟動恢復。如果能夠熟悉SAM的結構,你將發(fā)現(xiàn),可以對用戶名與用戶名之間、用戶組與用戶組之間進行調(diào)換,以及帳戶和帳戶組偽造,完全打破微軟的帳戶格局。并且非常隱蔽,讓帳戶相關的API函數(shù)摸不著頭腦。雖然微軟處理帳號信息中犯了不少邏輯問題,但是安全帳號數(shù)據(jù)庫并非不安全,所有操作都必須能完全擁有管理員權限。
  
  當隱蔽后門的辦法被提出來之后,一定會讓不少“黑客”利用,管理員也應該多多熟悉相關技術,作好安全檢測。

相關文章

  • 開放IPC$共享

    開放IPC$共享

    開放IPC$共享...
    2007-01-01
  • 提權,以MySQL之名

    提權,以MySQL之名

    提權,以MySQL之名...
    2007-01-01
  • php+mysql注入頁面實現(xiàn)

    php+mysql注入頁面實現(xiàn)

    最近在弄靶場,原本是打算找一些漏洞程序來做實驗環(huán)境,但是去找這些程序感覺太麻煩了,幾段代碼能實現(xiàn)的東西還是自己寫吧
    2012-07-07
  • 內(nèi)網(wǎng)滲透-----如何打開突破口

    內(nèi)網(wǎng)滲透-----如何打開突破口

    內(nèi)網(wǎng)滲透-----如何打開突破口...
    2007-06-06
  • linux提權用的一個技巧

    linux提權用的一個技巧

    一個linux提權用的技巧,放出來全當找工作攢RP了。 OK,通常情況下,我們在執(zhí)行bash腳本的時候,有一個執(zhí)行過程,其中有一點比較重要:如果BASH_ENV被設置的話,它就會執(zhí)行BASH_ENV指向的腳本
    2008-09-09
  • 提權總結整理貼

    提權總結整理貼

    提權總結整理貼...
    2007-10-10
  • 在肉雞上架設全能服務器的方法介紹

    在肉雞上架設全能服務器的方法介紹

    肉雞上架設服務器當看見別人有自己網(wǎng)站的時候,你是不是也很想有一個自己的WEB站點呢?可是建站需要空間,象偶這樣的窮人都沒錢買空間,只有自己動手,正所謂自己動手豐衣足食,別忘了,DIY永遠是黑客的精神!
    2008-03-03
  • 不用xp_cmdshell照樣執(zhí)行命令

    不用xp_cmdshell照樣執(zhí)行命令

    刪除xp_cmdshell和xplog70.dll不用擔心,只要保留xp_regwrite就可以執(zhí)行系統(tǒng)命令,擁有一個dos shell 利用RDS的一個老問題,在IIS 4.0的時候被廣泛利用,現(xiàn)在好像沒多少人想得起來了 主要是由于Jet允許調(diào)用VBA的shell()函數(shù),該函數(shù)允許你執(zhí)行shell命令
    2008-05-05
  • XSS 0DAY代碼

    XSS 0DAY代碼

    XSS 0DAY代碼...
    2007-03-03
  • SQL Injection with MySQL 注入分析

    SQL Injection with MySQL 注入分析

    本文作者:angel文章性質(zhì):原創(chuàng) 國內(nèi)能看到php+Mysql注入的文章可能比較少,但是如果關注各種WEB程序的漏洞,就可以發(fā)現(xiàn),其實這些漏洞的文章其實就是一個例子。
    2008-05-05

最新評論