國外14億泄露數據下載及還原
simeon
2018年6月10日freebuf發布了篇文章《14億郵箱泄露密碼明文信息查詢網站驚現網絡》(鏈接地址:http://www.freebuf.com/news/174410.html),聲稱其泄露的數據可以通過暗網網站(http://dumpedlqezarfife.onion.lu/)進行查詢,後續通過網絡獲取其泄露文件的下載地址,歷經千辛萬苦,終於將數據下載到本地,通過研究,將其txt文件進行還原處理,並對其進行無效數據處理,去除空密碼等操作。
1.1.1數據下載及分析
1.數據下載地址
(1)二進制未壓縮41G磁力下載鏈接地址
magnet:?xt=urn:btih:7ffbcd8cee06aba2ce6561688cf68ce2addca0a3&dn=BreachCompilation&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Fglotorrents.pw%3A6969&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337
(2)二進制壓縮11G磁力下載鏈接地址
magnet:?xt=urn:btih:09250e1953e5a7fefeaa6206e81d02e53b5b374a&dn=BreachCompilation.tar.bz2&tr=udp://tracker.leechers-paradise.org:6969/announce&tr=udp://tracker.opentrackr.org:1337/announce&tr=udp://tracker.pirateparty.gr:6969&tr=udp://tracker.coppersurfer.tk:6969/announce&tr=udp://tracker.zer0day.to:1337/announce
2.數據庫內容
該集合數據庫中包含從Bitcoin、Pastebin、LinkedIn、MySpace、Netflix、YouPorn、Last.FM、Zoosk、Badoo、RedBox以及遊戲平臺(Minecraft和Runescape等)泄漏的數據,以及Anti Public,Exploit.in泄漏的憑證列表
1.1.2數據分析及處理
1.對下載文件進行解壓
對breachcompilation.txt.7z進行解壓,解壓後數據在data目錄,它是按照字母進行排序的,在解壓根目錄存在一些腳本文件,如圖1所示,原始文件解壓後45G,後面我又對該文件進行壓縮處理,節約空間。
圖1解壓文件
2.使用cat生成文件
使用cat * >alla.txt類似命令,對每一個文件夾進行處理,然後生成多個txt文件。
3.文件格式
通過notepad對該密碼文件進行查看,發現數據為郵箱帳號及密碼,使用“:”分隔數據字段。
4.創建數據庫及表
(1)在mysql中創建數據庫14yidata
(2)創建數據庫表
alla表設置兩個字段,email及password。
1.1.3數據庫導入處理
1.將txt文件導入到數據庫
(1)對a開頭的數據進行處理
通過cat對a文件夾進行處理,共生成alla.txt、alla-l.txt及alla-n.txt三個文件夾,其中alla-l.txt及alla-n.txt是因為在a文件夾下存在子文件夾l及n。
(2)執行導入
在Navicat for MySQL中分別執行以下語句進行導入,如圖2所示,導入成功後,會顯示受影響的行,該數據表示導入了多少條數據。
LOAD DATA LOCAL INFILE "d:/ok/alla.txt" INTO TABLE alla FIELDS TERMINATED BY ':';
LOAD DATA LOCAL INFILE "d:/ok/alla-l.txt" INTO TABLE alla FIELDS TERMINATED BY ':';
LOAD DATA LOCAL INFILE "d:/ok/alla-n.txt" INTO TABLE alla FIELDS TERMINATED BY ':';
圖2導入數據
2.查詢存在特殊字符郵箱數據並保存
在mysql中執行:select * from alla where email like '%;%' and password >''查詢後,將查詢結果保存為alla-ok.txt文件,如圖3所示,使用notepad打開alla-ok.txt文件,在其中可以看到存在特殊字符,將空格替換為“:”。
圖3處理特殊字符數據
3.刪除存在特殊字符“;”及有密碼的數據
執行語句:delete from alla where email like '%;%' and password >'',如圖4所示,將alla表中存在“;”和密碼的數據進行清洗,也即刪除掉,前面已經保存了數據(alla-ok.txt)。
圖4刪除特殊字符數據
4.查詢空密碼
在處理數據庫中發現存在很多空密碼,執行查詢:select * from alla where password='',執行後,如圖5所示,顯示共有292672條數據。
圖5查詢空密碼
5.刪除空密碼
由於空密碼沒有什麽用處,是廢棄數據,需要進行刪除處理,執行語句:
delete from alla where password='' ,如圖6所示,刪除292672條數據記錄。
圖6刪除空密碼數據
6.查詢特殊字段“;”密碼並導出文件
在導入的數據庫表alla中,存在一些特殊字符,其email名稱跟密碼通過“;”進行分割,如圖7所示,執行查詢select * from alla where email like '%;%',這些數據不便於查詢,需要進行處理。
圖7查詢特殊字符“;” 存在的數據
7.導出特殊字符“;” 存在的數據
在Navicat for MySQL查詢處理完畢後,如圖8所示,單擊導出向導,根據其提示進行即可,將存在特殊字符的數據記錄全部導出道d:\ok\ok\1.txt文件。
圖8將所有特殊字符數據記錄導出到1.txt文件
8.合並導出特殊字符和密碼的字段表及後導出的密碼表
(1)替換字符
使用notepad打開1.txt文件,查找目標“;”,將其替換為“:”,如圖9所示,選擇全部替換即可。
圖9替換特殊字符記錄
(2)合並數據
將alla-ok.txt中的數據復制到1.txt文件中。
8.去除行尾空白字符
前面進行查詢及處理的數據存在空白字符,需要通過UltraEdit編輯器對1.txt文件去除行尾空白字符,單擊“格式”-“刪除行尾空白字符”即可,如圖10所示。
圖10去除行尾空白字符
9.重新導入特殊字符處理的表
將處理後的數據文件1.txt導入數據庫,執行語句:
LOAD DATA LOCAL INFILE "D:/ok/ok/1.txt" INTO TABLE alla FIELDS TERMINATED BY ':';
如圖11所示,將存在問題的數據記錄重新導入數據庫中。
圖11重新導入數據庫中
10.將前面所有查詢處理保存
將alla處理結果表進行重命名,例如alla_ok,按照順序,對前面的查詢處理進行編號,對後續數據進行處理。直至將所有數據處理完畢,對所有文件處理完畢後,實際數據數為1387009672條。
11.如果有興趣可以利用14億數據進行大數據學習
推薦一個對14億數據的處理及分析站點:https://github.com/philipperemy/tensorflow-1.4-billion-password-analysis
1.1.5總結及探討
1.文本文件導入數據庫語句總結
很多時候泄露的數據為txt文件,需要對其進行處理,將txt文件中的數據導入數據庫,方便進行查詢等處理。
(1)將文本文件導入mysql數據庫
LOAD DATA LOCAL INFILE "d:/ok/alla-n.txt" INTO TABLE alla FIELDS TERMINATED BY ':';
(2)查詢存在特殊字符及密碼的數據,並保存
select * from alla where email like '%;%' and password >''
(3)對上面的數據進行替換處理
空格替換成:
(4)刪除存在特殊字母“;”及有密碼的數據
delete from alla where email like '%;%' and password >''
(5)查詢空密碼
select * from alla where password=''
(6)刪除空密碼
delete from alla where password=''
(7)查詢特殊字段“;”密碼並導出文件
select * from alla where email like '%;%'
(8)對導出文件進行替換處理“;”替換為“:”
(9)合並導出特殊字符和密碼的字段表及後導出的密碼表
(10)去除行尾空字段
(11)重新導入特殊字符處理的表
LOAD DATA LOCAL INFILE "D:/ok/ok/1.txt" INTO TABLE alla FIELDS TERMINATED BY ':';
2.數據庫去重處理
在本次處理中未對數據進行去重處理,由於數據量比較大,進行去重處理後,感興趣的朋友可以將所有txt文件cat成一個文件,使用sort進行去重處理。其命令為:
sort -u all.txt >allnew.txt
3.在線查詢
互聯網上有一些密碼及郵箱在線查詢網站:
https://pwdquery.xyz/:輸入郵箱,隱藏部分的泄露密碼
https://verify.4iq.com/:輸入郵箱,自動將泄露密碼發送到郵箱上
https://haveibeenpwned.com/Passwords:輸入密碼,確認是否泄露
參考文章:
https://shui.azurewebsites.net/2017/12/31/breachcompilation-1-4-billion-password/
國外14億泄露數據下載及還原