- Internet Technology Lab

Download Report

Transcript - Internet Technology Lab

Module 3:密碼分析與實作實習
(Draft)
網路安全
學習目的
1.
2.
密碼在人類生活中早已扮演著重要的角色,舉凡銀行帳
戶、出入許可及身份辨認等都需要密碼技術的使用。然
而惡意的攻擊者利用各種系統漏洞來竊取或是偽造他人
密碼,使得人們的各項利益與安全性也隨之被破壞。因
此,學習有關密碼安全的知識有著其必然的重要性
本模組共有五個小節包括
(1)密碼管理
(2)密碼破解
(3)密碼分析工具介紹
(4)密碼分析工具的實務
(5)密碼分析的專案實作
共須三個鐘點
網路安全
3-2
Module 3:密碼分析與實作實習
•
•
•
•
•
Module 3-1:密碼管理(*)
Module 3-2:密碼破解(*)
Module 3-3:密碼分析工具介紹(*)
Module 3-4:密碼分析工具的實務(**)
Module 3-5:密碼分析的專案實作(**)
* 初級(basic):基礎性教材內容
**中級(moderate):教師依據學生的吸收情況,選擇性介紹本節的內容
***高級(advanced):適用於深入研究的內容
網路安全
3-3
Module 3-1:密碼管理(*)
網路安全
3-4
密碼管理
•
•
•
•
使用者認證
傳統密碼認證
Token認證
生物特徵認證
網路安全
3-5
使用者認證
• 資訊安全基礎建設
– 基於存取控制及使用者責任制
• 對於系統控管權,需有一套驗證使用者的程序,
分為兩個步驟
– 識別:明確的使用者ID
– 核實:將個體(使用者)與ID綁定,並確認該ID屬於
所屬之使用者
網路安全
3-6
使用者認證 (續)
• 使用者認證分為四大類
–
–
–
–
個體所認知,例:密碼、通行片語及PIN碼
個體所擁有,例:智慧卡
個體之特徵,例:指紋、臉及視網膜
個別之行為,例:聲音波型與筆跡
網路安全
3-7
傳統密碼認證
• 最常被使用的一種認證機制
– 登入
• 使用者輸入ID與Password
– 查驗
• 系統自動去資料庫比對ID與Password是否正確配對
網路安全
3-8
Unix帳號雜湊密碼
• 在Unix架構下,每個使用者決定ID後會被要求
輸入密碼,而此時Unix會做下列動作
– 隨機產生一個固定長度的亂數(Salt value)
– Slow hash
• 上各步驟產生的亂數會跟使用者輸入的密碼結
合,並經過密碼雜湊函數(Cryptography hash
function)的運算,產生的結果稱為雜湊碼(Hash
code)
– Unix會建立一個Password File,內容會記錄使
用者ID/Username,產生的亂數,以及Hash
code
網路安全
3-9
Unix帳號雜湊密碼的產生
資料來源:Computer Security Principles and Practice, by Williams Stallings
and Lawrie Brown, 2008.
網路安全
3-10
Unix帳號雜湊密碼的認證
資料來源:Computer Security Principles and Practice, by Williams Stallings
and Lawrie Brown, 2008.
網路安全
3-11
Unix帳號雜湊密碼的產生及認證
• 早期的系統設計
– 將8個字元長度的字串轉換成一個56-bit的鍵值
– 使用一個12-bit的亂數去修改DES的加密程序,使
其成為一個單向雜湊涵數
– 用64-bit的0當做一串輸入資料,經過25次的加密過
程後,即可得到一串64-bit的數列
– 而此64-bit的數列將會被轉換成11字元長度的最終
數列
• 但現在此方法會被破解
– 例:於超級電腦,破解5000萬筆資料僅需80分鐘
網路安全
3-12
Unix帳號雜湊密碼的產生及認證 (續)
• 現在有其他更完善的雜湊涵式和改進的亂數產生
,如許多系統都用到MD5演算法
–
–
–
–
使用48-bit的亂數(Salt value)
密碼長度不再受限制
遞迴使用雜湊函數1000次
產生128-bit的數列
• 從BSD衍生出的類Unix作業系統--OpenBSD使用
所謂的Bcrypt演算法加密
– 使用128-bit salt 去產生192-bit 的雜湊值
網路安全
3-13
MD5演算法
• MD5( Message-Digest algorithm 5)雜湊演算法,是
電腦常用的一種加密演算法,簡而言之,使用者
可將任意長度的資料,以MD5雜湊演算法運算,
得到一組固定長度為128位元的結果
• MD5為一個單向雜湊演算法,亦即不易以逆向運算得
到原始資料,例如:要計算字串“ROCK”的MD5結果
很簡單,但是要將MD5計算後的結果逆向運算得到
“ROCK”卻相當困難
– 例:計算 X = MD5("ROCK") =
afeb717aa2a101f7f64840e0be38c171非常簡單,但知道
X 逆向運算得到ROCK卻非常困難
網路安全
3-14
MD5演算法 (續) (**)
Y0, Y1,…, YL-1
512
Message length
64
Padding (K mod 2 )
(1~512 bits)
Y0, Y1,…, YL-1
K bits
message
Round 1 :FF(A,B,C,D,M(k),S,T[i])
Y0
Round 2 :GG(A,B,C,D,M(k),S,T[i])
1000...0
YL-1
Y1
Round 3 :HH(A,B,C,D,M(k),S,T[i])
512
512
512
HMD5
HMD5
HMD5
Round 4 :II(A,B,C,D,M(k),S,T[i])
ABCD
128
+
+
+
128
128
128
+
Message Digest Generation Using MD5
128 Note:addition(+) is mod 2 32
網路安全
3-15
Unix Password File的控管
• 只有特定權限的ID才能對Password File做存取的
動作
• 通常會另存一個備份Password File
• 雖然如此,但仍有下列幾項弱點
– 駭客可能從作業系統的Bug做文章
– 可能會有使用者把Password File權限開啟,變成可
讀的
– 使用者可能在別的作業系統使用同樣的密碼
– 可能被安裝了後門木馬程式
– 從未受保護的網路上竊聽到密碼
網路安全
3-16
Linux系統下的使用者帳號與密碼
• 在/etc/shadow的路徑下可以找到Linux的密碼檔
網路安全
3-17
Windows系統下的帳號與密碼檔
•
•
•
因為Windows會將使用者帳號與密碼的檔案鎖住不能開啟且更動,這邊先展
示一個已擷取過後的Windows帳密的簡單頁面,在後面會介紹軟體如何擷取
此檔
視窗中顯現的User、LM-Password、NT-Password為Windows的帳號與密碼檔
LM hash即為一個例子,以下為運作方式:
– 將密碼中的所有小寫字元轉換成大寫。使用 NULL 字元填補密碼,直到密碼的長
度正好是 14 個字元,分成各 7 個字元的兩個區塊,使用上述區塊作為 DES 機碼,
來加密特定字串。將兩段密碼文字串連成 128 位元的字串,並儲存結果
網路安全
3-18
密碼的選擇
• 使用者可能會選擇短密碼以方便記憶
– 例:有人會選擇3個字元或以下的密碼,易被猜測
– 有的系統會拒絕太短的密碼,增加安全性
• 使用者可能會選擇可被猜測的密碼
– 攻擊者可能會列出一系列的可能密碼
– 密碼可能為使用者的名字,預設密碼,帳戶名稱,
或其它各種可能的個人相關資料(生日、電話)
– 可能是上述資料的相關延伸,例如:John變成
John123
網路安全
3-19
使用的密碼長度統計
資料來源:Computer Security Principles and Practice, by Williams Stallings
and Lawrie Brown, 2008.
網路安全
3-20
使用的密碼統計
資料來源:Computer
Security Principles and
Practice, by Williams
Stallings and Lawrie
Brown, 2008.
網路安全
3-21
使用的密碼統計
• 分析34,000筆自MySpace釣魚網站取得的使用者帳
號和密碼資料:(Real-World Passwords,2006/12)
密碼數 比例
1-4
0.82%
5
6
1.1%
15%
7
8
9
23%
25%
17%
10
11
12
13-32
密碼組成
數字
比例
1.3%
字母5
9.6%
字母與數字混合 81%
非字母也非數字 8.3%
•28%為小寫字體加上一個數字
,其中2/3的數字是“1 ”
•3.8%是一完整單字
•12%是單字後加一個數字,其
中2/3的數字是“1 ”
Password Top 20
名次
Password
名次
Password
名次
Password
名次
Password
13%
2.7%
1
password1
6
Qwerty1
11
123456
16
jordan23
2
Abc123
7
fuckyou
12
soccer
17
slipkbot1
0.93%
0.93%
3
Myspace1
8
123abc
13
monkey1
18
superman1
4
Password
9
baseball1
14
liverpool1
19
Iloveyou1
5
blink182
10
football1
15
princess1
20
monkey
網路安全
3-22
使用更安全的密碼
• 從前述可知,有意義的密碼易被猜測,但不規律
的密碼卻不易被使用者記下
• 因此我們應要使用讓使用者更容易記得,也必須
是要不易被猜測的密碼
• 技巧:
– 電腦產生的密碼
– 可使用些密碼提示,方便自己記憶
– 前瞻性的密碼檢測
網路安全
3-23
檢測產生的密碼 (**)
• Markov Model
– 產生出可以被猜測的密碼
– 直接對這些產生出來的密碼做回絕的動作
資料來源:Computer
Security Principles and
Practice, by Williams
Stallings and Lawrie
Brown, 2008.
網路安全
3-24
檢測產生的密碼 (續)
• Bloom Filter
– 用來建置字典上的密碼,經過Hash後的表單
– 檢測做出來的字串是否在此名單中
資料來源:Computer
Security Principles and
Practice, by Williams
Stallings and Lawrie
Brown, 2008.
網路安全
3-25
Token認證 - 記憶卡(Memory Card)
•
•
•
•
•
•
單純儲存資料而不對其做處理
磁條卡,如銀行卡與鑰匙卡
電子記憶卡
單獨用於實體上的存取
配合電腦使用則可搭配ID/Password
不方便的地方
– 需搭配特定的讀卡機
– 使用者的不便
網路安全
3-26
Token認證 - 智慧卡(Smart Card)
• 智慧卡內積體電路,包含了處理器(CPU)、唯讀記
憶體(ROM)、隨機存取記憶體(RAM)以及電壓消
除式可程式化唯讀記憶體(EEPROM)。IC採用環
氧化物嵌入,再透過導線連到電子接觸點,以便
觸通讀卡機內部的接觸點;或是連到天線,透過
無線電波與讀卡機通訊;或是兩者都有
資料來源:Computer Security
Principles and Practice, by
Williams Stallings and Lawrie
Brown, 2008.
非接觸式智慧卡有RFID及NFC兩種方式
網路安全
3-27
非接觸式智慧卡
• 台灣現今的非接觸式智慧卡大部分都是使用
ISO/IEC 14443 標準,NFC 可提供完全相容
ISO/IEC 14443 的非接觸式智慧卡,它可以藉由快
速感應及自動辨識功能達到身份驗證目的
傳輸速率
通訊距離
106、212、
RFID
3至10cm
424Kbps
NFC
106、212、
20cm
424Kbps
頻段
13.56
MHz
13.56
MHz
方向性
全向性
±15度
網路安全
網路型態
國際標準
安全協定
點對點
ISO/IEC
14443、
10536、
15693
ISO/IEC
7816、
EMV
點對點
ISO/IEC
18092、
21481
ISO/IEC
7816、
EMV
3-28
Token認證 一次密智慧卡(One Time Password, OTP)
• 想像每個人手中的信用卡,以後都有顯示的功能,顯示的
可能是時刻在改變、安全性高人一等的動態密碼,也可能
是信用餘額或累積紅利點數等。每次登入使用時,除詢問
使用者PIN密碼外,系統會隨機產生一隨機密碼,使用者
依此密碼取得使用權限。因此,每次登入系統密碼均不相
同,藉此提高安全性
資料來源:www.gemalto.com
具顯示功能的IC卡
資料來源:智慧光
網路安全
資料來源:VeriSign OATH
3-29
動態密碼觀念(Dynamic Password)
網路安全
3-30
Authenex A - key例子
•
•
•
•
•
•
內建晶片運算為核心的多功能認證硬體
獨一無二的ESN號碼
隨機產生的4096-bit共用密碼
OTP演算法:AES,SHA-1,HMAC-1
符合FIPS140-2 Level3標準
依循OATH所產生的160-bit OTP
資料來源:
http://www.infoso
urce.com.tw
網路安全
3-31
OTP 例子一:E-Banking Solution
資料來源:
http://www.gemalto.com
網路安全
3-32
生物特徵認證
網路安全
3-33
生物特徵認證 - 指紋
指紋辨識認證流程
• 辨識速度快正確性高
• 相關設備普及容易取得
• 國際標準
– ISO/IEC JTC1 SC37 19794-2
– DIN V 6400.
資料來源:Computer
Security Principles
and Practice, by
Williams Stallings and
Lawrie Brown, 2008.
網路安全
3-34
生物特徵認證 - 指靜脈辨識
• 不需接觸,適用於機場等出入複
雜或是疾病易傳播區域
• 獨一無二,永久性,無法複製性
資料來源: Junichi
Hashimoto, "Finger
Vein Authentication
Technology and Its
Future", Symposium
on VLSI Circuits
Digest of Technical
Papers, 2006.
網路安全
3-35
生物特徵認證 - 人臉辨識與人眼虹膜
• 不需接觸,適用於機場等出入複雜或是疾病易傳
播區域
• 國際標準
– ISO/IEC JTC1 SC37 19794-5
• 需要較精準攝影機
• 比對較為複雜
• 隱私性問題
– 可能由虹膜得知相關疾病
網路安全
3-36
生物特徵認證的準確性
• 永遠不會有重複的樣本
• 目前在false nonmatch/false match 上有爭議
資料來源:Computer Security
Principles and Practice, by Williams
Stallings and Lawrie Brown, 2008.
網路安全
3-37
生物特徵認證的準確性 (續)
• 可以繪出特徵曲線
• 藉由選出適當的臨界值,可降低錯誤率
資料來源:Computer Security Principles and Practice, by Williams Stallings
and Lawrie Brown, 2008.
網路安全
3-38
Module 3-2:密碼破解(*)
網路安全
3-39
密碼破解
•
•
•
•
•
Popular Password攻擊法與猜測法
字典攻擊法
暴力法
網路竊聽
社交工程
網路安全
3-40
Popular Password攻擊法與猜測法
• Popular Password 攻擊法
– 正如字面意義所說,此攻擊法能對多數範圍的ID做
密碼猜測。因為Popular Password可能指的是某電
影明星、某個樂團、某個偉人,範圍相當廣。而這
些可能是大家都耳熟能詳的,所以都有可能拿來做
密碼。例如:Taiwan、 The Beatles、 Tom Cruise
• 猜測法
– 攻擊者在破解密碼時可以透過使用者個人資訊來猜
測。例如生日、身份證號碼、電話號碼、及使用者
有關之紀念日等
網路安全
3-41
字典攻擊法(Dictionary attack)
• 對於字典攻擊法意指在一組小範圍的字典檔中,
攻擊者從中嘗試使用各種可能的密碼,利用這些
可能的帳號密碼登入伺服器,直到找到正確的密
碼為止
– 例:John the Ripper字典模式,可以指定字典檔,
並使用進階指令加入規則,可將字典檔內的資料做
有規則的排列或是重組等等,之後再跟密碼檔比對
,有效地破解密碼
網路安全
3-42
字典攻擊法 (續)
• 線上(Online) - 字典攻擊
– 攻擊者在網路上直接對伺服器做帳號密碼登入驗證
,以便檢查猜測的密碼是否可正確登入
– 線上字典攻擊會在伺服器日誌紀錄檔中留下大量的
密碼登入錯誤紀錄
• 離線(Offline) - 字典攻擊
– 不需與伺服器做互動帳號密碼驗證,攻擊者透過伺
服器中其他系統漏洞盜取伺服器的密碼檔。取得密
碼檔後,可讓攻擊者不需透過登入伺服器的程序,
來進行破解
網路安全
3-43
字典攻擊法 (續)
• 以Webmail為例,當連續輸入錯誤密碼,會被伺服
器記錄下來,內容包括日期、IP、登入狀態等
伺服器的日誌檔
從伺服器日誌檔,可以察覺惡意第三者嘗試猜測密碼,
造成多次的登入失敗。線上的密碼攻擊,會留下蹤跡
資料來源:NDHU Webmail
網路安全
3-44
字典攻擊法 (續)
• 以BBS-PTT為例,當連續輸入三次錯誤密碼後,
系統判斷可能為攻擊,會中斷使用者連線,並於
正常登入時顯示密碼輸入錯誤訊息。讓使用者知
道有人在嘗試破解他的密碼
連續輸入三次錯誤密碼
請仔細回憶您的密碼,如果
真的忘記密碼了,請重新註
冊!亂試密碼會留下紀錄
資料來源:telnet://ptt.cc (批踢踢實業坊)
網路安全
3-45
暴力法
• 將全部的有效鍵盤字符(大概95個)進行隨機的組
合,去猜解密碼。此模式效率極低,非常耗時
• 若密碼使用8個字元,而鍵盤上可以輸入的字元變
化全部有95個,若用暴力法破解的話就需要:
(95^8+95^7+95^6+95^7+95^6+...+95^1) = 6.7 e^15(
次)
• John the Ripper提供的Incremental mode模式,就是
一種暴力攻擊法
網路安全
3-46
網路竊聽
• 最初網路封包擷取軟體是被設計做為網路分析的
工具,擷取網路封包再分析封包上的內容,可方
便網路工程師除錯、監控網路流量或診斷網路異
常等問題
• 而現今的網路竊聽攻擊法是基於資料經由未加密
的通道傳送,每個人都可以拿取這通道上的封包
,利用封包擷取軟體來分析所抓取的封包,便可
得知此封包中的訊息
• 如刻意分析含有使用者登入訊息的封包,便可竊
聽到使用者的帳號與密碼
網路安全
3-47
網路竊聽
• 網路竊聽是網路攻擊一種簡單但有效的攻擊方式
,一般而言,攻擊者能夠藉由竊聽作為攻擊手段
,主要是資料在TCP/IP鏈結層(Data Link Layer)未
經加密(即在不安全之通道上)傳送
• 因此若使用者未使用IPSEC、HTTPS、SSH、
SFTP等方式加密傳送資料,攻擊者可輕易地使用
網路封包擷取軟體,獲得帳號與密碼
網路安全
3-48
如何避免網路竊聽密碼
• 最基本的就是做好電腦的安全設定,杜絕所有木
馬後門程式,安裝防毒軟體是必備的;並且除了
隨時更新病毒碼外,也需定時的掃描,如此可維
持基本的電腦資訊安全
• 回到網路封包竊聽這個議題上,我們並不能改變
網路封包的傳送路徑,但是我們可以提升傳送的
通道的安全性,傳輸機密資料時,以加密軟體進
行傳輸,此時就算資料被竊聽程式所擷取,惡意
的第三者也只能看到密文,而無法分析所擷取的
密文資料
網路安全
3-49
如何避免網路竊聽密碼 (續)
HTTPS網頁保護密碼,避免駭客竊聽密碼
登入網頁後,即取消HTTPS,以加速郵件
的送收。註:Yahoo電子信箱為免費電子
信箱,並無義務提供安全的郵件送收
網路安全
3-50
社交工程(Social Engineering)
• 社交工程,是以影響力或說服力來欺騙他人以獲
得資訊。它是利用人性弱點的詐騙技術,避開嚴
密的安全技術防護,是一種非常難以防範的攻擊
模式
• 我們將介紹「網路釣魚」與「網路刺魚」兩種方
式,來說明如何利用社交工程騙取帳號密碼
網路安全
3-51
社交工程 - 網路釣魚(Phishing)
• 網路釣魚一詞最早出現於1996年,起因是因為駭
客利用電話線犯案,因而結合Fishing與Phone創造
Phishing一詞
• 惡意者製造一個與真實相同的網頁來假冒真實網
站,讓使用者輸入自己的帳號密碼,盜取使用者
的敏感資料
網路安全
3-52
社交工程 - 網路刺魚
• 網路釣魚經由宣導以後,許多使用者已經產生警
覺,於是出現新型態手法,也就是網路刺魚
(Spear-phishing),也有人稱為「魚叉式網路釣魚
」
• 這種型態不再是漫無目的的攻擊,而是有計畫的
針對某些特定的人攻擊。網路刺魚者通常攻擊公
司行號、學校、公家機關等,發送與機關相似的
E-mail,讓使用者上網更新資料,一旦輸入密碼
填寫資料以後,網路刺魚者就取得使用者的機密
資料
網路安全
3-53
網路釣魚(Phishing)盜取使用者密碼
• 一個與真實網站有相的網頁的網站,讓使用者輸
入自己的帳號密碼,盜取使用者的密碼
網址列異常
網頁與真實網頁相同,讓使
用者輸入自己的帳號密碼,
盜取使用者的機敏資料
網路安全
3-54
網路刺魚(Spear-Phishing)盜取使用者密碼
• 發送與機關相似的E-mail,讓使用者上網更新資
料,一旦輸入密碼、填寫資料以後,網路刺魚者
就取得使用者機密資料
駭客假冒
正式單位
收件人為特
定被攻擊者
提供假網址
給受害人
網路安全
3-55
Module 3-3:密碼分析工具介紹(*)
網路安全
3-56
密碼分析工具介紹
• 擷取Windows的SAM密碼檔軟體
– SAMInside
• 密碼破解軟體
– John the Ripper
網路安全
3-57
密碼分析工具比較
• 商業軟體
– 優:提供GUI操作介面
– 缺:需要額外付費取得
– 例: L0phtCrack
• 免費軟體
– 優:有較高的OS支援性
– 缺: 文字介面(Command-line)操作介面
– 例:John the Ripper
網路安全
3-58
密碼擷取工具 - SAMInside
• Windows的帳號與密碼儲存在Windows\system32\
config\這個路徑下的SAM檔案(Security Account
Manager),此檔案無法開啟與複製,以確保使用
者帳號不會外洩
• SAMInside軟體可以擷取出SAM檔案中的使用者
與帳號
網路安全
3-59
密碼分析工具 - John the Ripper
• John the Ripper 最早是只有發展於UNIX平台的通行碼
破解工具,但是現今它可以運行的平台包含了UNIX
、DOS、Windows、BeOS及OpenVMS等等
• 因為有著自動偵測通行碼雜湊函式的格式、可自行定
義的破密模組與支援數種破密模組等等優點, 讓John
the Ripper成為最受歡迎的通行碼測試破解工具
• John the Ripper可破解的雜湊函式格式包含DES、
MD5、Blowfish、Kerberos AFS及Windows
NT/2000/XP/2003/vista/7 LM-hash等,功能相當的強大
網路安全
3-60
結論
• 慎選密碼,方便、易記的密碼容易遭受攻擊
• 結合生物特徵認證雖需額外認證設備,但可達到
更安全的認證
• 動態密碼則是使用一次密智慧卡,每次登入系統
密碼均不相同,藉此提高安全性
網路安全
3-61
Module 3-4:密碼分析工具的實務(**)
網路安全
3-62
實驗環境介紹
• 以Testbed建立一實驗,相關拓樸及設定如下圖
John
OS:FC6-STD
IP:10.0.1.2
安裝軟體:John the Ripper
SAM
OS:WINXP-SP2
IP:10.0.1.1
安裝軟體:SAMInside與John the Ripper
網路安全
3-63
實驗拓樸on Testbed@TWISC
- 建立完成的實驗拓樸
網路安全
3-64
說明
• 架設實作(一), 請利用SAMInside軟體取得本機
Windows系統的使用者帳號與密碼。依實驗拓樸
,請使用SAM主機做安裝及測試
• 架設實作(二),請利用John the Ripper軟體破解取
得之帳號與密碼檔。依實驗拓樸,請使用John主
機做SAM版軟體安裝及測試;並使用John主機做
Linux版軟體安裝及測試
網路安全
3-65
架設實作(一)
SAMInside環境架設實習
網路安全
3-66
密碼分析工具 - SAMInside
• 版本
– 2.7.0.0
• 支援作業平台
– Windows NT/2000/XP/2003/Vista/7
• 下載位址
– http://www.insidepro.com/download/saminside.zip
網路安全
3-67
SAMInside軟體路徑
• SAMInside不需安裝,解壓縮後即可直接使用
• 請解壓縮到名為saminside的檔案夾
• 執行SAMInside.exe
網路安全
3-68
SAMInside - 擷取Windows的密碼檔
• Windows\System32\Config\SAM這路徑下可以找到Windows使用者的
帳號與密碼檔SAM,但這檔案我們不能直接開啟,需用SAMInside這
套軟體來開啟,啟動SAMInside後,執行以下的操作
網路安全
3-69
SAMInside - 擷取Windows的密碼檔 (續)
•
•
•
視窗中顯示的User、LM-Password、NT-Password為Windows的帳號與密碼檔
以LM hash為例,以下為運作方式:
將密碼中的所有小寫字元轉換成大寫。使用NULL字元填補密碼,直到密碼的
長度正好是14個字元,分成各7個字元的兩個區塊,使用上述區塊作為DES機
碼,來加密特定字串。將兩段密碼文字串連成128位元的字串,並儲存結果
使用者只需按下Ctrl+S將這檔案轉存成下列的表格(ex.: 01.txt),這格式即可使
用John the Ripper破解工具來破解
網路安全
3-70
SAMInside - 擷取Windows的密碼檔 (續)
• User欄位代表的是使用者名稱,RID則代表的是Register ID,LMPassword的密碼型態為都是大寫的密碼,而 NT-Password是casesensitive的密碼型態
• LM-Password或NT-Password如果碼長是1~7個碼字,則會顯示???????
,如果是8~14個碼字,則會顯示??????????????
• 由於LM-Password的特性,假如設定的碼字為8碼或9碼,所以在顯示
密碼時,第二段的區塊開頭容易被猜中,則會被顯示出來,而NTPassword則無此問題。
• 上圖中在把LM-Hash及NT-Hash欄位的文字轉存成文字檔時,分別為
User、LM-Hash、NT-Hash及Description等對應欄位
• 若是上圖中的LM-Password及NT-Password欄位之中出現<Disabled>訊
息,則代表著該使用者未啟用密碼。若未啟用,則在存檔時,此使用
者之後的密碼文字為零的字串
網路安全
3-71
架設實作(二)
John the Ripper環境架設實習
網路安全
3-72
密碼分析工具 - John the Ripper@Windows
• 版本
– 1.7.9
• 支援作業平台
– Unix、DOS、Win32/64、BeOS及OpenVMS
• 下載位址
– http://www.openwall.com/john/g/john179w2.zip
網路安全
3-73
John the Ripper軟體路徑
• 可適用於各種環境,以Windows為例
– John the Ripper不需安裝,解壓縮即可使用
– 請解壓縮至名為john179的檔案夾(解壓時選擇使用
檔案夾名稱)
– 執行run子檔案夾內的john-omp.exe
網路安全
3-74
John the Ripper的執行
• 點選「開始」->「執行」後輸入「cmd」,打開命
令提示字元視窗,切換目錄到檔案所在路徑
(~/join179/run)即可執行指令
– 輸入「john 01.txt」 (john-omp [欲解密之密碼檔.檔
名])
• 01.txt為密碼檔,其內容為經過加密雜湊後的密文
。如下圖,第一行是使用Linux系統的帳號與MD5
加密後的通行碼,第二行則是Windows的格式,
Windows是使用DES的方式加密
網路安全
3-75
John the Ripper的執行模式
• 我們可以用john-omp [密碼檔.檔名]這簡單的指令
來破密,也可以讓John the Ripper單獨執行特定的
模式來破密
–
–
–
–
單一解碼模式(Single crack mode)
字典模式(Wordlist mode)
暴力窮舉模式(Incremental mode)
外掛模式(External mode)
網路安全
3-76
單一解碼模式
• 針對密碼檔的帳號去做字詞變化破解
• 例如密碼檔內有dragon這個帳號,John the Ripper
會以此字串做變化,如下drago,nogard,
02dragon,dra567gon
• 指令形式:john -si [filename]
網路安全
3-77
字典模式
• 俗稱的字典檔攻擊,John the Ripper可以指定字典
檔
• 一般指令只有直接比對字典檔與密碼檔
– john-omp -w:[字典filename] [filename]
• 進階指令,可將字典檔內的資料做有規則的排列
或是重組等等,之後再來跟密碼檔比對,在指令
加入-rules即可開啟此功能
– john-omp -rules -w:[字典filename] [filename]
網路安全
3-78
字典檔
上網抓取別人整理好的常
用密碼字典檔
編輯自己的字典檔,將可
能的密碼直接寫到檔案,
每個密碼一行即可
http://packetstormsecurity.org/Crackers/wordlists/
網路安全
3-79
字典模式中rules的編輯
• Wordlist的rules會存放在run資料夾裡的john.ini中
,下圖顯示的是john.ini的初始值
打開john.ini後,找到
[List.Rules:Wordlist],在這標
頭後就可自行編輯rules
網路安全
3-80
字典模式中rules的編輯 (續)
• 簡易自行添加rules的例子
這行指令代表的是每個字典檔裡的
word最後一個字會被刪除,然後再
跟密碼檔比對
網路安全
3-81
字典模式中rules的編輯 (續)
• 常用指令
–
–
–
–
–
–
–
–
–
–
–
–
:
C
c
r
d
f
{
}
$X
^X
<N
>N
對wordlist不做任何動作
將字首大寫,如:”crack”->“Crack”
將字首小寫其餘大寫,如:“Crack”->“cRACK”
反向,如:“crack”->“kcarc”
複製,如:“crack”-> “crackcrack”
鏡射,如:“crack”-> “crackkcarc”
往左shift ,如:“crack”-> “rackc”
往右shift ,如:“crack”-> “kcrac”
在字串後面串接一個字母,如: $4: “crack”->“crack4”
在字串前面先置一個字母,如: ^4: “crack”->“4crack”
字串大小必須大於N
字串大小必須小於N
網路安全
3-82
字典模式中rules的編輯 (續)
–
–
–
–
–
–
–
(X
)X
p
P
I
[
]
– R
– L
只對第一個字是X的字串做rule的動作
只對最後一個字是X的字串做rule的動作
複數,如:“crack”-> “cracks”
過去式,如:“crack”-> “cracked”
現在式,如:“crack”-> “cracking”
將第一個字刪除,如:“crack”-> “rack”
將最後一個字刪除,如:“crack”-> “crac”
(由於”[“和在“]” rule裡有另外的用法,為了區分使用,
必須在之前加“\”)
根據鍵盤上的位置往右移一格,如:“crack96”-> “vtsvl07”
根據鍵盤上的位置往左移一格,如:“crack96”-> “xeaxj85”
網路安全
3-83
暴力窮舉模式
• 暴力窮舉模式就是暴力破解法(brute-force attack)
,嘗試所有的組合,將全部的有效鍵盤字符(大概
95個)進行1~8位的隨機組合,去猜解密碼。這個
模式可以解出簡單模式和字典模式不能成功猜解
的密碼,但是效率極低,非常耗費時間
– john-omp -i [filename]
網路安全
3-84
外掛模式
• 使用外掛模式,使用者可以自己定義擴展解密模組(利用C語言
來撰寫外掛程式)。並將其記錄在john.ini檔案內的[List.External]
中
網路安全
3-85
John the Ripper相關指令
• 強制結束
– Ctrl^C
• 回復上次工作
– John-mmx -restore
• 在命令視窗顯示test.txt破解的結果
– john -show test.txt
• 將破解的結果存在result.txt
– john -show test.txt result.txt
• John the Ripper會在run目錄中產生一個john.pot檔
案,這裡面保存著成功猜解出來的密碼
網路安全
3-86
以John the Ripper破解Window XP密碼
• 將SAMInside所擷取出的密文貼成文字檔如下
User RID
LM-Hash
NT-Hash
• 使用John the Ripper破解Windows密文如下
可看到此密文的加密方式為NT和LM的DES
可得到帳號bcheng的密碼為ABCABC
網路安全
3-87
檢視John the Ripper的破密結果
• 可在預設目錄底下run資料夾中找到一個john.pot檔
,這裡會記載所有解出的密碼與相對應的密文
網路安全
3-88
密碼分析工具 - John the Ripper@Linux
• 版本
– 1.7.9
• 支援作業平台
– Unix、DOS、Win32/64、BeOS及OpenVMS
• 下載位址
– http://www.openwall.com/john/g/john-1.7.9.tar.gz
網路安全
3-89
John the Ripper安裝@Linux
• 安裝指令
–
–
–
–
–
–
–
cp /share/isc/Module03/john-1.7.9.tar.gz ~/
tar -zxvf john-1.7.3.1.tar.gz
cd john-1.7.3.1/src
make
make clean generic
cd ../run
./john --test
• 顯示測試完成結果如右
網路安全
3-90
以John the Ripper破解Linux密碼
• 欲使用John the Ripper破解Linux密碼檔,必須先
取得Linux密碼檔
• 使用管理者權限複製密碼檔至John the Ripper主程
式所在資料夾,並將其更名為mypasswd
– sudo cp /etc/shadow ~/john-1.7.9/run/mypasswd
網路安全
3-91
以John the Ripper破解Linux密碼 (續)
• 使用John the Ripper破解Linux密文
– cd ~/john-1.7.9/run/
– sudo ./john mypasswd
• 稍待即可得到破解之結果(密碼為123456)
• 查閱其他相關指令
– ./john
網路安全
3-92
結論
• SAMInside可擷取Windows的SAM密碼檔後,再使
用密碼破解軟體加以破解
• John the Ripper則是使用字典模式、或暴力窮舉模
式等來破解密碼
網路安全
3-93
習題
網路安全
3-94
習題一
• 若鍵盤上全部的有效鍵盤字符95個,而密碼使用
10個字元,假設一個破密器每秒可以產生640萬個
密碼,若用暴力法破解的話則需要多久時間來破
解
網路安全
3-95
習題二
• 試敘述一次性密碼(One Time Password)及動態性
密碼(Dynamic Password)之間的差別
網路安全
3-96
習題三
•
假設一個字典檔的內容有{Kobe,Bryant,Odom,Derek,Fisher,
Ariza , Travor , Lamar , Paul , Jordan , Gasol , Andrew , Famar ,
Howard,Lebron}。若可能的密碼如下:TravorTravor,DerekkereD,
domO , ArizaazirA , lamarramal , 23jordan , Kobe24 , Paul33 ,
LebronJames , asolG , ndrewA , amaramar520 , HowardHoward ,
bryantbryant,5566Fish}
–
–
–
–
(1)假如使用指令"f ",上述那些密碼會被John the Ripper的字典模式找到
(2)假如使用指令"d",上述那些密碼會被John the Ripper的字典模式找到
(3)假如使用指令"{",上述那些密碼會被John the Ripper的字典模式找到
(4)若以John the Ripper的字典模式破解密碼檔,請寫一個可以搜尋到密碼
"5566fish"的rule
– (5)若以John the Ripper的字典模式破解密碼檔,請寫一個可以搜尋到密碼
"amaramar520"的rule
網路安全
3-97
Module 3-5:密碼分析的專案實作(**)
網路安全
3-98
專案目的
• 透過SAMInside及John the Ripper軟體,進行密碼
破解的實驗,進而突顯若使用者使用易記、強度
不足的密碼,則密碼很容易就被攻擊者所破解
網路安全
3-99
專案描述
• 於Windows操作環境下,下載Windows的密碼檔XP.txt
及Linux系統的密碼檔Linux.txt,每個檔案個別有三個
密碼,請利用John the Ripper破解
• 參考環境配置圖,完成下列要求
提示:密碼與人名相關
請使用下列的字典檔:male-names.gz與femalenames.gz(字典檔下載解壓縮完之後為沒有副檔名的文
字檔,請用文字瀏覽程式開啟)
網路安全
3-100
環境配置圖
host002
OS:WINXP-SP2
IP:10.0.1.2
安裝軟體:John the Ripper
host001
OS:WINXP-SP2
IP:10.0.1.1
安裝軟體:SAMInside
網路安全
3-101
參考資料
•
•
•
•
•
•
•
•
gemalto, http://www.gemalto.com
InsidePro, http://www.insidepro.com
John the Ripper, http://www.openwall.com/john/
NETSCOUT, http://www.netscout.com
OATH, http://www.openauthentication.org
packet storm, http://www.packetstormsecurity.org
VeriSign, http://www.verisign.com
Williams Stallings, Lawrie Brown, & Prentice Hall. (2008). Computer
Security: Principles and Practice.
• 亞太信息http:// www.infosource.com.tw
• 批踢踢實業坊, telnet://ptt.cc
• 智慧光科技, http://www.smartdisplayer.com.tw
網路安全
3-102