窮追猛打:破譯Foxmail“密碼天書”
更新時間:2007年01月16日 00:00:00 作者:
筆者最常用的郵件客戶端軟件是Foxmail5.0,相信許多人也在用它,因為它的界面簡潔、功能強大。在使用Foxmail的過程中發(fā)現(xiàn)一個問題,即Foxmail郵箱密碼不夠安全!而且這個問題在Foxmail 4.x和5.0正式版(包括測試版)中都存在,在這里提醒大家注意保管好自己的密碼。
Foxmail郵箱加密密碼保存在哪里
在正式開始以前,先說說在Foxmail中郵箱口令保存在哪里。右鍵點擊你的賬戶(假設(shè)賬戶名為abcde),在彈出菜單中選擇“屬性”,然后點擊“郵件服務(wù)器”,在這里你會看到以“*”號顯示的郵箱密碼(圖1)。
用任意一款密碼查看軟件就可以發(fā)現(xiàn)“*”號中是什么內(nèi)容。其實,即便不使用查看*號工具也可看到Foxmail的密碼!
當(dāng)選擇保存郵箱口令后,郵箱密碼加密后的密文保存在一個文件中,這個文件位于Foxmail安裝目錄下的Mail文件夾(如果采用默認(rèn)安裝方式,一般在C:\ProgramFiles\Foxmail下),那里有個以你的賬戶名為名字的文件夾(如賬戶名為abcde,則Mail文件夾下有個abcde文件夾),其下有個accounts.cfg文件,打開它就會看到你的郵箱密碼密文。
再現(xiàn)一個眾所周知的Foxmail漏洞
大家都知道,打開“資源管理器”或“我的電腦”,找到Foxmail文件夾,打開里面的“Mail”文件夾,你會發(fā)現(xiàn)這里有許多以賬戶名命名的文件夾,進(jìn)入Mail文件夾下你想侵入的賬戶對應(yīng)的文件夾,將其中的account.stg文件更名或刪除,然后運行Foxmail,你會發(fā)現(xiàn)該信箱上原來的小“鎖頭”不見了(加有口令的賬戶會帶有紅色小“鎖頭”標(biāo)志)!此時不需要任何密碼就可以看到被保護(hù)的信件!
為什么將Account.stg這個文件復(fù)制到別人的賬戶文件夾下,就有這么大的“威力”呢?用“記事本”打開該文件看看就明白了(圖2)!事實上,你在Foxmail的“帳戶→屬性”菜單中設(shè)置的所有內(nèi)容幾乎都包括在其中了(如果你細(xì)心的話,會發(fā)現(xiàn)“屬性”中的“模板”并沒有包含在內(nèi)),其中也包括了經(jīng)過加密的信箱密碼密文,也就是“POP3Password=”后面的部分。下面我們就談?wù)勥@個令人感興趣的話題。
Foxmail分析
先假設(shè)你在Foxmail中有且僅有一個賬戶:abcde,它的E-mail地址是abcde@163.net,這個信箱的密碼是12345。
用記事本打開accounts.cfg文件,一開始是一些亂七八糟的內(nèi)容,再往下你會看到如下所示內(nèi)容:
MailAddress=abcde@163.net //這是郵件地址
………………………………
POP3Account=abcde
POP3Host=pop.163.net //POP3服務(wù)器地址
POP3Password=BB6DFB5DF061 //郵箱密碼加密后顯示的密文
POP3Port=110 //POP3服務(wù)器端口
PrintFont=宋體,9
ReplyAddr=
ReplyFormat=1
SameWithPop=1
SMTPHost=smtp.163.net //SMTP服務(wù)器地址
SMTPPort=25 //SMTP服務(wù)器端口
……
在計算Foxmail郵箱密碼明文之前,請你先記住一個單詞:~draGon~(注意要區(qū)分大小寫),它是Foxmail郵箱密碼的加密密鑰。記住后我們開始行動:
第一步:下載一個十六進(jìn)制文件編輯器UltraEdit,這是一套極棒的文字、Hex、ASCII碼編輯器,內(nèi)建英文單字檢查、C++及VB指令突顯,可同時編輯多個文件,而且即使開啟很大的文件速度也不會慢。其并且附有HTML Tag顏色顯示、搜尋替換以及無限制的還原功能;一般大家常會用其來修改EXE或DLL文件。大家可以在這里下載到它:http://software.wx88.net/down/cuedit1010b.exe。安裝完畢,運行UltraEdit,在它的文件編輯狀態(tài)下輸入“~draGon~”這個單詞(沒有引號),然后單擊“Edit”(編輯)菜單下的“Hex Edit”(16進(jìn)制編輯),可以查到這個詞的16進(jìn)制編碼(圖3),為:7E 64 72 61 47 6F 6E 7E,分別記為a1,a2,a3,a4,a5,a6,a7,a8,我將它們稱之為Ai。
第二步:再記住一個恒定的值:5A(其實也是由上面的a1~a8計算而來,具體方法就不多說了),記為C0,這個C0我們在下面會用到。
第三步:取郵箱密碼加密后的密文,在本例中為:BB6DFB5DF061,將它們兩兩分開,得到:BB,6D,FB,5D,F0,61,分別記為b1,b2,b3,b4,b5,b6。由于此加密密文的總長度為12,所以我們可以判斷郵箱真正地密碼長度為12÷2-1=5,即郵箱密碼為5位。
第四步:計算Ci的值(Ci為一系列數(shù)的總和,即C1,C2,C3,C4,C5……)。其中,C1由C0(即16進(jìn)制的0x5A)和第一位密文(即b1,也就是我們這個例子中的BB)經(jīng)異或運算得來。由于C0=0X5A,所以C1=C0^0XF9=0xE1,其中“^”代表異或運算。大家可以使用Windows自帶的計算器來進(jìn)行計算,點擊“開始→程序→附件→計算器”即可打開計算器(圖4),計算器中的“XOR”就代表異或運算。由此得到:
C1為0xE1
C2由b2直接繼承得到,為0x6D
C3由b3直接繼承得到,為0xFB
C4由b4直接繼承得到,為0x5D
C5由b5直接繼承得到,為0xF0
這樣,我們就得到了至關(guān)重要的參數(shù)Ci。
第五步:下面請大家用從第二位起的密文(即b2)和密鑰對應(yīng)的ASCII碼(即Ai)作異或運算,由于我們已經(jīng)知道密碼為5位,所以用a1~a5分別與b2~b6進(jìn)行異或運算,得到Di(即D1~D5這5位數(shù))。在我們這個例子中,可以得到:
D1=b2^a1=6D^7E=13
D2=b3^a2=FB^64=9F
D3=b4^a3=5D^72=2F
D4=b5^a4=F0^61=91
D5=b6^a5=61^47=26
如果密文很長(Foxmail最多允許18位密碼),該怎么辦呢?還是用上面所說的方法。只是在計算Di時要循環(huán)利用Ai的值。舉個例子,假設(shè)密文兩兩分開后有10位這么多(即B1~B10),則計算D8時用B9與A8異或,計算D9則用B10與A1異或。明白了嗎?即密文長度大于密鑰長度,則循環(huán)利用密鑰進(jìn)行計算。
第六步:這是最后一步,求解出賬戶密碼明文。用Di-Ci得到Ei,其中Ei就是密文解碼后的明文。注意,如果Di小于Ci,則要用Di+0xFF(0xFF為16進(jìn)制的FF,即十進(jìn)制的255),然后再減去Ci即可。好了,趕快打開計算器,然后可以得到:
E1=D1-C1=31,轉(zhuǎn)為十進(jìn)制為1
E2=D2-C2=32,轉(zhuǎn)為十進(jìn)制為2
E3=D3-C3=33,轉(zhuǎn)為十進(jìn)制為3
E4=D4-C4=34,轉(zhuǎn)為十進(jìn)制為4
E5=D5-C5=35,轉(zhuǎn)為十進(jìn)制為5
將上面的結(jié)果串聯(lián)起來,就是12345,而這正是我們當(dāng)初設(shè)定的郵箱口令!怎么樣?Foxmail的密文不安全吧!
上面的過程說起來麻煩,而且好像不容易理解,將上述Ai、Bi、Ci、Di列個表(圖5),然后再按上面說的自己動手試試就很容易搞清楚了!與我們事先設(shè)定的完全一樣!從此可以推斷~draGon~就是Foxmail的密鑰!仔細(xì)想想,從Foxmail的原作者“張小龍”的名字不難推斷到這個結(jié)論,因為“龍”字的英文單詞為“dragon”。那么我是如何發(fā)現(xiàn)“~draGon~”這個單詞呢?用UltraEdit打開Foxmail的主程序Foxmail.exe,點擊“搜索→查找”(或直接按Alt+F3),輸入dragon,在UltraEdit中搜索到的第一個詞就是“~draGon~”!
注意,上文中提到的Ai、Bi、Ci、Di和Ei都是十六進(jìn)制數(shù)值,大家一定要搞清楚,不要弄混了。對了,得到了Ei之后,不要忘記按位分別轉(zhuǎn)化為十進(jìn)制,這才是真正的郵箱密碼!另外,即便是同一個郵箱,在更改了密碼并保存之后,下一次再改回原來的密碼,你在accounts.cfg文件中看到的郵箱密碼密文也會不一樣,但用本方法計算下來之后結(jié)果不會變,也就是說你仍能用本方法得到你的密碼。
防范方法
上面介紹了Foxmail密碼的破解,方法非常的簡單,所以在大家共用一臺電腦的場所,建議不要將自己的郵箱密碼保存下來,如果已經(jīng)保存下來,可以采用下面的解決方法:在新建賬戶時不要選擇保存密碼,如果已經(jīng)選擇了,可以右擊賬戶,在彈出菜單中選擇“屬性”,會出現(xiàn)“賬戶屬性”窗口,選擇“郵件服務(wù)器”,然后,將“密碼”欄中的密碼清除即可。這樣,當(dāng)你再打開account.stg文件時,會發(fā)現(xiàn)“POP3Password=”后面是空空如也,這樣就不怕別人發(fā)現(xiàn)你的密碼了。同時,建議Foxmail的開發(fā)商能改變加密算法,使得軟件能更安全。
最后提醒大家不要用本文所涉及的內(nèi)容干破壞,這不是筆者的初衷,切記:己所不欲,勿施于人!
Foxmail郵箱加密密碼保存在哪里
在正式開始以前,先說說在Foxmail中郵箱口令保存在哪里。右鍵點擊你的賬戶(假設(shè)賬戶名為abcde),在彈出菜單中選擇“屬性”,然后點擊“郵件服務(wù)器”,在這里你會看到以“*”號顯示的郵箱密碼(圖1)。
用任意一款密碼查看軟件就可以發(fā)現(xiàn)“*”號中是什么內(nèi)容。其實,即便不使用查看*號工具也可看到Foxmail的密碼!
當(dāng)選擇保存郵箱口令后,郵箱密碼加密后的密文保存在一個文件中,這個文件位于Foxmail安裝目錄下的Mail文件夾(如果采用默認(rèn)安裝方式,一般在C:\ProgramFiles\Foxmail下),那里有個以你的賬戶名為名字的文件夾(如賬戶名為abcde,則Mail文件夾下有個abcde文件夾),其下有個accounts.cfg文件,打開它就會看到你的郵箱密碼密文。
再現(xiàn)一個眾所周知的Foxmail漏洞
大家都知道,打開“資源管理器”或“我的電腦”,找到Foxmail文件夾,打開里面的“Mail”文件夾,你會發(fā)現(xiàn)這里有許多以賬戶名命名的文件夾,進(jìn)入Mail文件夾下你想侵入的賬戶對應(yīng)的文件夾,將其中的account.stg文件更名或刪除,然后運行Foxmail,你會發(fā)現(xiàn)該信箱上原來的小“鎖頭”不見了(加有口令的賬戶會帶有紅色小“鎖頭”標(biāo)志)!此時不需要任何密碼就可以看到被保護(hù)的信件!
為什么將Account.stg這個文件復(fù)制到別人的賬戶文件夾下,就有這么大的“威力”呢?用“記事本”打開該文件看看就明白了(圖2)!事實上,你在Foxmail的“帳戶→屬性”菜單中設(shè)置的所有內(nèi)容幾乎都包括在其中了(如果你細(xì)心的話,會發(fā)現(xiàn)“屬性”中的“模板”并沒有包含在內(nèi)),其中也包括了經(jīng)過加密的信箱密碼密文,也就是“POP3Password=”后面的部分。下面我們就談?wù)勥@個令人感興趣的話題。
Foxmail分析
先假設(shè)你在Foxmail中有且僅有一個賬戶:abcde,它的E-mail地址是abcde@163.net,這個信箱的密碼是12345。
用記事本打開accounts.cfg文件,一開始是一些亂七八糟的內(nèi)容,再往下你會看到如下所示內(nèi)容:
MailAddress=abcde@163.net //這是郵件地址
………………………………
POP3Account=abcde
POP3Host=pop.163.net //POP3服務(wù)器地址
POP3Password=BB6DFB5DF061 //郵箱密碼加密后顯示的密文
POP3Port=110 //POP3服務(wù)器端口
PrintFont=宋體,9
ReplyAddr=
ReplyFormat=1
SameWithPop=1
SMTPHost=smtp.163.net //SMTP服務(wù)器地址
SMTPPort=25 //SMTP服務(wù)器端口
……
在計算Foxmail郵箱密碼明文之前,請你先記住一個單詞:~draGon~(注意要區(qū)分大小寫),它是Foxmail郵箱密碼的加密密鑰。記住后我們開始行動:
第一步:下載一個十六進(jìn)制文件編輯器UltraEdit,這是一套極棒的文字、Hex、ASCII碼編輯器,內(nèi)建英文單字檢查、C++及VB指令突顯,可同時編輯多個文件,而且即使開啟很大的文件速度也不會慢。其并且附有HTML Tag顏色顯示、搜尋替換以及無限制的還原功能;一般大家常會用其來修改EXE或DLL文件。大家可以在這里下載到它:http://software.wx88.net/down/cuedit1010b.exe。安裝完畢,運行UltraEdit,在它的文件編輯狀態(tài)下輸入“~draGon~”這個單詞(沒有引號),然后單擊“Edit”(編輯)菜單下的“Hex Edit”(16進(jìn)制編輯),可以查到這個詞的16進(jìn)制編碼(圖3),為:7E 64 72 61 47 6F 6E 7E,分別記為a1,a2,a3,a4,a5,a6,a7,a8,我將它們稱之為Ai。
第二步:再記住一個恒定的值:5A(其實也是由上面的a1~a8計算而來,具體方法就不多說了),記為C0,這個C0我們在下面會用到。
第三步:取郵箱密碼加密后的密文,在本例中為:BB6DFB5DF061,將它們兩兩分開,得到:BB,6D,FB,5D,F0,61,分別記為b1,b2,b3,b4,b5,b6。由于此加密密文的總長度為12,所以我們可以判斷郵箱真正地密碼長度為12÷2-1=5,即郵箱密碼為5位。
第四步:計算Ci的值(Ci為一系列數(shù)的總和,即C1,C2,C3,C4,C5……)。其中,C1由C0(即16進(jìn)制的0x5A)和第一位密文(即b1,也就是我們這個例子中的BB)經(jīng)異或運算得來。由于C0=0X5A,所以C1=C0^0XF9=0xE1,其中“^”代表異或運算。大家可以使用Windows自帶的計算器來進(jìn)行計算,點擊“開始→程序→附件→計算器”即可打開計算器(圖4),計算器中的“XOR”就代表異或運算。由此得到:
C1為0xE1
C2由b2直接繼承得到,為0x6D
C3由b3直接繼承得到,為0xFB
C4由b4直接繼承得到,為0x5D
C5由b5直接繼承得到,為0xF0
這樣,我們就得到了至關(guān)重要的參數(shù)Ci。
第五步:下面請大家用從第二位起的密文(即b2)和密鑰對應(yīng)的ASCII碼(即Ai)作異或運算,由于我們已經(jīng)知道密碼為5位,所以用a1~a5分別與b2~b6進(jìn)行異或運算,得到Di(即D1~D5這5位數(shù))。在我們這個例子中,可以得到:
D1=b2^a1=6D^7E=13
D2=b3^a2=FB^64=9F
D3=b4^a3=5D^72=2F
D4=b5^a4=F0^61=91
D5=b6^a5=61^47=26
如果密文很長(Foxmail最多允許18位密碼),該怎么辦呢?還是用上面所說的方法。只是在計算Di時要循環(huán)利用Ai的值。舉個例子,假設(shè)密文兩兩分開后有10位這么多(即B1~B10),則計算D8時用B9與A8異或,計算D9則用B10與A1異或。明白了嗎?即密文長度大于密鑰長度,則循環(huán)利用密鑰進(jìn)行計算。
第六步:這是最后一步,求解出賬戶密碼明文。用Di-Ci得到Ei,其中Ei就是密文解碼后的明文。注意,如果Di小于Ci,則要用Di+0xFF(0xFF為16進(jìn)制的FF,即十進(jìn)制的255),然后再減去Ci即可。好了,趕快打開計算器,然后可以得到:
E1=D1-C1=31,轉(zhuǎn)為十進(jìn)制為1
E2=D2-C2=32,轉(zhuǎn)為十進(jìn)制為2
E3=D3-C3=33,轉(zhuǎn)為十進(jìn)制為3
E4=D4-C4=34,轉(zhuǎn)為十進(jìn)制為4
E5=D5-C5=35,轉(zhuǎn)為十進(jìn)制為5
將上面的結(jié)果串聯(lián)起來,就是12345,而這正是我們當(dāng)初設(shè)定的郵箱口令!怎么樣?Foxmail的密文不安全吧!
上面的過程說起來麻煩,而且好像不容易理解,將上述Ai、Bi、Ci、Di列個表(圖5),然后再按上面說的自己動手試試就很容易搞清楚了!與我們事先設(shè)定的完全一樣!從此可以推斷~draGon~就是Foxmail的密鑰!仔細(xì)想想,從Foxmail的原作者“張小龍”的名字不難推斷到這個結(jié)論,因為“龍”字的英文單詞為“dragon”。那么我是如何發(fā)現(xiàn)“~draGon~”這個單詞呢?用UltraEdit打開Foxmail的主程序Foxmail.exe,點擊“搜索→查找”(或直接按Alt+F3),輸入dragon,在UltraEdit中搜索到的第一個詞就是“~draGon~”!
注意,上文中提到的Ai、Bi、Ci、Di和Ei都是十六進(jìn)制數(shù)值,大家一定要搞清楚,不要弄混了。對了,得到了Ei之后,不要忘記按位分別轉(zhuǎn)化為十進(jìn)制,這才是真正的郵箱密碼!另外,即便是同一個郵箱,在更改了密碼并保存之后,下一次再改回原來的密碼,你在accounts.cfg文件中看到的郵箱密碼密文也會不一樣,但用本方法計算下來之后結(jié)果不會變,也就是說你仍能用本方法得到你的密碼。
防范方法
上面介紹了Foxmail密碼的破解,方法非常的簡單,所以在大家共用一臺電腦的場所,建議不要將自己的郵箱密碼保存下來,如果已經(jīng)保存下來,可以采用下面的解決方法:在新建賬戶時不要選擇保存密碼,如果已經(jīng)選擇了,可以右擊賬戶,在彈出菜單中選擇“屬性”,會出現(xiàn)“賬戶屬性”窗口,選擇“郵件服務(wù)器”,然后,將“密碼”欄中的密碼清除即可。這樣,當(dāng)你再打開account.stg文件時,會發(fā)現(xiàn)“POP3Password=”后面是空空如也,這樣就不怕別人發(fā)現(xiàn)你的密碼了。同時,建議Foxmail的開發(fā)商能改變加密算法,使得軟件能更安全。
最后提醒大家不要用本文所涉及的內(nèi)容干破壞,這不是筆者的初衷,切記:己所不欲,勿施于人!
相關(guān)文章
動網(wǎng)dvbbs7.1論壇權(quán)限提升漏洞及防范(圖)
動網(wǎng)dvbbs7.1論壇權(quán)限提升漏洞及防范(圖)...2007-01-01