国外14亿泄露数据下载及还原

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-14亿数据处理.jpg

图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-导入文本文件到数据库.jpg

图2导入数据

2.查询存在特殊字符邮箱数据并保存

在mysql中执行:select * from alla where email like '%;%' and password >''查询后,将查询结果保存为alla-ok.txt文件,如图3所示,使用notepad打开alla-ok.txt文件,在其中可以看到存在特殊字符,将空格替换为“:”。

3-处理特殊字符及有密码的字段.jpg

图3处理特殊字符数据

3.删除存在特殊字符“;”及有密码的数据

执行语句:delete from alla where email like '%;%' and password >'',如图4所示,将alla表中存在“;”和密码的数据进行清洗,也即删除掉,前面已经保存了数据(alla-ok.txt)。

4-删除特殊字符及密码的数据.jpg

图4删除特殊字符数据

4.查询空密码

在处理数据库中发现存在很多空密码,执行查询:select * from alla where password='',执行后,如图5所示,显示共有292672条数据。

5-查询空密码.jpg

图5查询空密码

5.删除空密码

由于空密码没有什么用处,是废弃数据,需要进行删除处理,执行语句:

delete from alla where password='' ,如图6所示,删除292672条数据记录。

6-删除空密码数据.jpg

图6删除空密码数据

6.查询特殊字段“;”密码并导出文件

在导入的数据库表alla中,存在一些特殊字符,其email名称跟密码通过“;”进行分割,如图7所示,执行查询select * from alla where email like '%;%',这些数据不便于查询,需要进行处理。

7-查询特殊字段数据.jpg

图7查询特殊字符“;” 存在的数据

7.导出特殊字符“;” 存在的数据

在Navicat for MySQL查询处理完毕后,如图8所示,单击导出向导,根据其提示进行即可,将存在特殊字符的数据记录全部导出道d:\ok\ok\1.txt文件。

8-导出数据库处理.jpg

图8将所有特殊字符数据记录导出到1.txt文件

8.合并导出特殊字符和密码的字段表及后导出的密码表

(1)替换字符

使用notepad打开1.txt文件,查找目标“;”,将其替换为“:”,如图9所示,选择全部替换即可。

9-替换.JPG

图9替换特殊字符记录

(2)合并数据

将alla-ok.txt中的数据复制到1.txt文件中。

8.去除行尾空白字符

前面进行查询及处理的数据存在空白字符,需要通过UltraEdit编辑器对1.txt文件去除行尾空白字符,单击“格式”-“删除行尾空白字符”即可,如图10所示。

10-删除空白字符.jpg

图10去除行尾空白字符

9.重新导入特殊字符处理的表

将处理后的数据文件1.txt导入数据库,执行语句:

LOAD DATA LOCAL INFILE "D:/ok/ok/1.txt" INTO TABLE alla FIELDS TERMINATED BY ':';

如图11所示,将存在问题的数据记录重新导入数据库中。

11-重新导入数据.jpg

图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/

来源网站:http://www.voidcn.com/article/p-ebyttmnd-brv.html

点赞