社工数据搜索引擎搭建

作者:le4f

http://le4f.net/post/post/build-social-engineer-evildata-search-engine

如何设计搭建一个社工库

从初起设计一个社工库,到现在的Beta,前前后后零零整整花了不下一个月的时间,林林总总记录下来,留给需要之人

泄露数据库格式不一,长相奇葩,因需将用户名、密码、邮箱、哈希等信息按表分列入库,故整理数据是很耗时间的一步

整体架构

选择了Debian x64+Mysql+Mysqlcft+Sphinx+Nginx+PHP

轻量的sqlite数据库,但查询速度及空间消耗过大,对请求时sqlite处理效率较差

mangodb,但mangodb在分布计算中有更好的优势而在社工库搭建中优势并不明显

在mysql和postgresql中,选择历久弥新的mysql

为方便社工库移植,使用VM建一个虚拟机,所有数据库均在虚拟机中,LNMP环境对外只提供PHP查询接口

实际测试中,CentOS6.4虚拟机中因断电损失过多数据,并不如预想中稳定,且对CoreSeek版本较老的mmseg中文分词编译会出现各种各样的问题,难以解决。32位的操作系统在sphinx单个索引大小上会有限制,几次折腾后还是迁回了Debian7 X64

整理数据

一般使用bash脚本完成。DEMO:

普通格式:

#!/bin/bash
sed ‘/^[ \t]\{0,\}$/d‘ $1 | sed ‘s/[\t ]/\t/g‘ | sed ‘s/\r//g‘ |sed ‘/^\s*$/d‘ | awk -F"\t" ‘{print "NULL|||"$1"|||"$2"||||||"$1"|||xxxx|||" }‘ | iconv -c -f gb18030 -t UTF-8 | sort | uniq
he

UCmember格式:

#!/bin/bash
sed ‘s/[\r\n ]//g‘ $1 | tr -d ‘\n‘ | sed "s/INSERTINTO\`bbs\_uc\_members\`VALUES(//g" | sed "s/‘,‘/\t/g" | sed "s/,‘/\t/g" | sed "s/‘,/\t/g" |sed "s/‘);/\n/g" | awk -F"\t" ‘{ print "NULL|||"$2"||||||"$3"|||"$9"|||"$4"|||"$7"|||xxxx+xxxx+evil++"}‘ | sed "/+evil++||||||||||||/d"

PW_MEMBER格式:

#!/bin/bash
sed ‘s/[\r\n ]//g‘ $1 | tr -d ‘\n‘ | sed "s/INSERTINTO\`pw_members\`VALUES(‘/\n/g" | sed "s/‘,‘/\t/g" | awk -F"\t" ‘{ print $1"|||"$2"||||||"$3"|||"$5"|||xxxx|||"}‘ | sed "/+evil++||||||||||||/d"

文件内格式不同的处理脚本eg:

#!/bin/bash
sed ‘s/\r//g‘ $1 | sed "s/‘/[fenhao]/g" | sed ‘s/[ \t]\{1,\}/\t/g‘ | sed ‘s/----/\t/g‘ | awk -F "\t" ‘{ if ($2~/@163.com/)
{
if ($3~/^$/) {print "NULL|||"$1"|||"$2$3"||||||"}
else {print "NULL|||"$1"|||"$3"||||||"}
}
else
{print "NULL|||"$1"|||"$2"||||||"}
}‘ | iconv -c -f gb18030 -t UTF-8 | sort | uniq

批量按行导入:

#!/bin/bash
sed ‘/^[ \t]\{0,\}$/d‘ $1 | sed ‘s/\r//g‘ | sed ‘/^\s*$/d‘ | awk ‘{print "NULL|||"$0"|||xxxx|||" }‘

对于数据库设计也尤为重要。测试后、按表存储、单表记录数不超过3000W,否则建全文索引时间过长。

库表设计
CREATE TABLE `evil_xxxx_1` (
`id` INT( 10 ) NOT NULL AUTO_INCREMENT,
`username` VARCHAR( 64 ) ,
`password` VARCHAR( 64 ) ,
`passhash` VARCHAR( 64 ) ,
`email` VARCHAR( 64 )
);

CREATE TABLE `evil_ucmember_1` (
`id` INT( 10 ) NOT NULL AUTO_INCREMENT,
`username` VARCHAR( 64 ) ,
`password` VARCHAR( 64 ) ,
`passhash` VARCHAR( 64 ) ,
`salt` VARCHAR( 16 ) ,
`email` VARCHAR( 64 ) ,
`ip` VARCHAR( 32 ) ,
`site` VARCHAR( 64 ) ,
PRIMARY KEY (id)
);

CREATE TABLE `evil_multinfo_1` (
`id` INT( 10 ) NOT NULL AUTO_INCREMENT,
`info` VARCHAR( 1024 ) ,
`site` VARCHAR( 64 ) ,
PRIMARY KEY (id)
);

分表的一个方案:

INSERT INTO evil_xx_1(evil_xx.id,evil_xx.username,evil_xx.password,evil_xx.passhash) SELECT (evil_xx.id,evil_xx.username,evil_xx.password,evil_xx.passhash)FROM evil_xx where user.id <= 30000000;
命令查询
show table status;//查看数据库状态
desc table; //查看表结构
set names ‘utf8‘;//设置编码,数据表统一编码UTF-8
drop index index_name on table_name; //删除索引
alter table table_name add primary key(id);//添加主键
alter table table_name drop PRIMARY KEY;//去掉主键
truncate table table_name;//清空表中数据
alter table 表名 rename to 新表名;//重命名表
alter table table_name change Name Name varchar(16);//重命名列及格式
alter table table_name add column xxxx varchar(64) after aaaa;//添加列
alter table 表名 drop column 列名;//删除列
set @t=0;
update table_name set id=(@t:[email protected]+1);//重建ID
导入数据
load data infile ‘/tmp/xxxx.sql‘
into table `evil_xxxx`
fields terminated by ‘|||‘
lines terminated by ‘\n‘;

速度相对较快

关于索引

中文全文索引主要依赖mysqlctf和sphinx,测试发现,sphinx对于分词索引速度较快,但分词的原因导致诸如搜索humor却搜索不到humorous的情况,而mysqlctf索引速度相对较慢且无进度信息,但索引大小可控,一般全文索引1G数据库信息对应MYI大小为5-9G

关于Coreseek的编译使用,官方有较多文档

Sphinx配置文件(全文检索包括分词及最小分词5字母)

source evil_xxx
{
  type              = mysql
  sql_host          = localhost
  sql_user          = ooo
  sql_pass          = xxx
  sql_db            = db
  sql_port          = 3306
  sql_query_pre     = SET NAMES utf8
  sql_query         = SELECT id,username,password,passhash,email FROM xxxx
  sql_query_info    = SELECT * FROM xxxx WHERE id=$id
}

index evil_xxx
{
  source            = evil_xxx
  path              = /usr/local/coreseek/var/data/evil_xxx
  docinfo           = extern
  mlock             = 0
  morphology        = none
  min_word_len      = 1
  html_strip        = 0
  charset_dictpath  = /usr/local/mmseg3/etc/
  charset_type      = zh_cn.utf-8
  ngram_len         = 0
  min_infix_len     = 5
  enable_star       = 1//允许模糊搜索
}

检索时调用官方API即可

关于MYSQLCFT建立索引的方法

首先是安装插件

wget http://mysqlcft.googlecode.com/files/mysqlcft-1.0.0-x86_64-bin.tar.gz
tar zxvf mysqlcft-1.0.0-x86_64-bin.tar.gz
mkdir -p /usr/local/mysqlcft/lib/mysql/plugin/
cp mysqlcft.so /usr/local/mysqlcft/lib/mysql/plugin/

登陆mysql后

INSTALL PLUGIN mysqlcft SONAME ‘mysqlcft.so‘;
SHOW PLUGINS;

安装OK后建立索引

ALTER IGNORE TABLE 数据库名.表名 ADD FULLTEXT INDEX 全文联合索引名 (字段名1,字段名2) WITH PARSER mysqlcft;

ALTER IGNORE TABLE db.evil_xxxx ADD FULLTEXT INDEX fullindex(username,password,passhash,email) WITH PARSER mysqlcft;

在搜索时

SELECT * FROM evil_xxxx WHERE MATCH(username,password,passhash,email) AGAINST (‘searchinfo‘ IN BOOLEAN MODE);

重建索引

REPAIR TABLE 数据库名.表名 QUICK;
几个Tips
  • 增加来源数据库/网站字段,方便针对查询
  • 同库分隔符格式不同,正则替换
  • 数据库引擎选择myisam(而不是INNODB),可使用alter转换
  • 入库分隔符为避免与密码字符重合,可使用类似==aaaa==等分隔符替换入库
  • 数据库中有的邮箱在前密码在后,有的密码在前,邮箱在后,使用awk多写几行分支语句
  • 配置my.cnf文件使得mysql数据处理效率最大化

From Le4F‘Blog

时间: 2024-10-23 12:03:14

社工数据搜索引擎搭建的相关文章

社工蜜罐的搭建交流

我之前一直在寻思 怎么能让别人在社工你或尝试社工你时及时发现或防御 并且像正统入侵一样能搭建一个蜜罐等她上钩 大概想到了这几种好玩的tips 各位如果有奇技也可以放出来一起讨论 1.在各大论坛发布一些侧面暴露自己信息的帖子 但暴露的都是错的 假的 信息 用来掩盖真实信息 让社工的人很难知道 example:我要买一个自行车了 本人是华强北的 求推荐 实际上我不是华强北的. 2.搭建一个网站或BBS example:在里面发一些有关自己资料的帖子 然后做好seo 设置只有注册账号并登陆才可以查看

社工库杂谈

"社工库"这个词很多人并不陌生,而且也有越来越多的新闻开始提及社工库,比如:1. 2016年3月,江苏淮安公安机关网络安全保卫部门成功侦破一起侵犯公民个人信息案,抓获犯罪嫌疑人8名,捣毁国内最大的网络社工库"K8社工库"(www.k8sec.com),查获公民个人信息20亿条.2. 2016年12月,南都记者700元就买到同事行踪,包括乘机.开房.上网吧等11项记录,很多数据源自社工库. 社工库这个产业链一直很火爆,不过国家也在打击,搜索"社工库"

使用ELK搭建社工库

https://mp.weixin.qq.com/s?__biz=MjM5MDkwNjA2Nw==&mid=2650373776&idx=1&sn=e823e0d8d64e6e31d22e89b3d23cb759&scene=1&srcid=0720BzuzPl916oZWVGfiwduR&key=77421cf58af4a65382fb69927245941b4402702be12a0f1de18b1536ac87135d4763eab4e820987f0

社工库源码大全(转)

部分源码存在云盘里,请根据下载名对应下载. searchku社工库源码 本程序采用ThinkPHP框架开发.框架在系统层面提供了众多的安全特性,确保你的网站和产品安全无忧.这些特性包括: XSS安全防护表单自动验证强制数据类型转换输入数据过滤表单令牌验证防SQL注入图像上传检测 https://github.com/fengxuangit/searchku ASWQL社工库源码 https://github.com/Mr9esx/ASWQL Sky_Sgk社工库源码 导入sky.sql修改网站用

一套社工教程

对于社工,玩黑的朋友并不陌生.社工,一直很强大,我想有很多朋友应该都知道"凯文米特尼克",并且将他的故事改编了一部电影叫<骇客追缉令>,里面就用到了社工.并且还著有一本很有名的社工书籍<欺骗的艺术>.那么面对这复杂的网络安全,我们很有必要去学习了解下社工,以提升自己的网络安全意识,最大程度的去保障自己的信息安全. 教程目录:第1课社工的简介第2课社工的基本思路第3课先见证一下社工的威力简单社工QQ和支付宝第4课搜索引擎的利用第5课本地搭建社工库第6课社工库的利用

如何抵御社工库类的黑客攻击?在明文密码已泄露的情况下保护自己?

说到社工库,现在很流行,数据也越来越庞大.详细,其威胁程度日愈严重. 其中威胁最高的就属密码库了,也是数量最大,影响范围最广的. 密码库主要来源就不说了,各种拖库-- 其中密码形式主要分这几种: 第一种是未加密的明文密码,威胁程度最高.(不得不说这种储存明文密码的站点有多么的二逼!更可悲的是这种站点有很多!!) 另一种是加密过的密码密文,威胁程度视加密等级而定. 第三种是破译成本很低的密码密文,例如仅一次MD5,等低强度加密算法,威胁程度最高. 其中无法破译的密文,情况还好点,暂时没什么大的影响

如何防御黑客的社工?

首先,这里基于社会工程学的攻击该怎么理解?这将是一个讨论的前提. ——————————————————————我想利用社工进行的攻击就是基于对人性的分析理解而展开的攻击,而不再是基于对机器对编码的理解而进行的解密.规则突破等. 据我所知,很多很多能提权也就是能黑掉小至个人账户大到企业内网的黑客是不需要就编码进行过多分析的,甚至有些人并不具备编码能力.然而,事实是,他们真的把你黑了,把你眼中高大上的企业黑了. 所以基于社会工程学的攻击到了什么程度?——————————————————————答案是

中国寒龙反网络病毒联盟官网www.hackerschina.org更新公告。社工库更新公告。

大家好欢迎使用中国寒龙反网络病毒联盟在线平台. 本平台为国际公益网站SEC平台 在这里本站近期更新的社工库包括:天涯数据 乌云网会员数据 南宫数据 中南股份数据 QQ数据 和某住址社工MM数据 以及个人数据  如果再本站搜索不到您想要的资料说明本站未曾更新您相关的数据资料 不过在此您对本站搜索关键字的使用需要有一定的技巧设置如:搜索 人名字  QQ号  手机号 身份证号等等产品序列号等等,本产品序列号和商家号只供搜索中南股份和南宫的数据.谢谢使用本站. 另外本站在年底期间将会升级服务器,,升级期

【浅谈社工】U盘游戏(上)

凡人是没有资格讨论社会工程学的,2333333333,接下来的浅谈也不过是为了研究下setoolkit平台的使用罢了,这个社工利用平台由parrot预装,其中大量模块调用msf平台,什么?又是msf??? 今天我们的标题是初识U盘游戏,因为笔者选购的装备还没到货,但先来一起探索一下U盘游戏在社会工程学中是如何运用的,更多花样敬请期待. 首先我们来看一下今天需要用到的工具——setoolkit. 需要root权限启动,不然会报错权限不足. 在每次启动的时候,/root/.set目录会自动清空并初始