手把手教你打造私人大数据检索库(一) 您所在的位置:网站首页 我是社公库 手把手教你打造私人大数据检索库(一)

手把手教你打造私人大数据检索库(一)

2024-07-15 14:20| 来源: 网络整理| 查看: 265

声明:本文介绍的安全工具仅用于渗透测试及安全教学使用,禁止任何非法用途,若读者因此作出任何危害网络安全行为后果自负,与合天智汇及原作者无关。

序言

咳咳,这里是青空酱。准备最近开一个天坑,讲讲个人如何从无到有搭建一个自用的大数据检索库。

这将会是一个层层相扣,依次衔接的系列教程,内容覆盖了:相关数据索引软件的选择与安装配置,多元化数据的清洗导入与维护,以及自定义查询API的定义与查询应用前后端的构建步骤....并且会将个人总结的一些trick与坑点会穿插于其中,尽力去打造一套能给读者有所裨益的教程。

教程规划为三节;

社工库的介绍与索引引擎的选择与安装配置。

相关数据的清洗导入与维护

一步步教你查询应用前后端的开发

最后还请大家持续关注本教程(毕竟我也不是什么鸽子)

社工库的传说

在谈社工库之前,我们先说说什么是社工(即社会工程学),有几个社会工程学的概念需要了解:1. 社会工程学攻击都建立在使人决断产生认知偏差的基础上,熟练的社会工程师都是擅长进行信息收集的身体力行者。2.社会工程学是一种通过对受害者心理弱点、本能反应、好奇心、信任、贪婪等心理陷阱进行诸如欺骗、伤害等危害手段。3.社会工程学是一种黑客攻击方法,利用欺骗等手段骗取对方信任,获取机密情报。4.社会工程学是一种利用人性脆弱点、贪婪等等的心理表现进行攻击,是防不胜防的。

相关的社工库学习操作可以来合天网安实验室操作实验——社会工程学是一种利用人的弱点如人的好奇心、信任、贪便宜等弱点进行诸如欺骗、伤害等危害手段。了解社会工程学手段,可以大概率地帮助我们不受骗噢!长按下列二维码,或点击文末“阅读原文”可预览学习!

长按二位开始操作

社工库,是社会工程学中所用到的数据库。

上面提到了,社会工程学的一个维度就是信息搜集,比如指定一个手机号,就能获取到这个手机号背后的主人信息,包括姓名、邮箱、身份证、籍贯、社交账号等等信息,这些信息就是社工库。

一句话解释:

社工库就是给一个账号就能查出号主相关信息的巨型数据索引库。

那么我们私人搭建大数据索引库有什么用呢?

查询自己的旧账户,找回忘记的密码。

判断自己账户是否泄漏,及时修改密码以增强个人信息安全强度。

实战数据分析,例如统计最为常用的弱口令,判断密码健壮性等(注:此数据分析非广义上的数据分析,我才不会告诉你这是我口胡的)

积累亿级数据维护管理经验(逃

再次强调,本文介绍的安全工具仅用于渗透测试及安全教学使用,禁止任何非法用途,通过网络软件窃取公民个人信息出售牟利的构成侵犯公民个人信息罪,情节特别严重的,处三年以上七年以下有期徒刑,并处罚金。

准备工作

索引软件的选择:

社工库本质还是对存储的数据进行查询,自然分为三个模块需要处理:数据,索引软件,查询应用。

先讲讲索引软件,也许有的读者会问,为什么需要索引软件呢?我用txt自带的文本搜索不是方便又快捷嘛?

是的,txt文本搜索是很快捷,但是是有一个前提的:所查询的数据量小而少。日常所接触的文本不过几千上万字,而我们所查询的大数据库的数据量动辄在几百G乃至T,此等量的数据先不讨论格式问题,仅仅使用普通的文本编辑器打开都会导致主机卡死..更不要提进一步的全文匹配了。

(当然,你要直接上超算的话当我上面没说)

而索引软件就是用于解决这个问题的,数据索引软件又称全文搜索引擎。

只要配置得当,一般配置的机子在亿级数据量下都可达到毫秒级查询响应。并且原生支持多种数据源导入,减轻数据清洗整理的压力。且大部分全文引擎都是开源的,使用不需要支付额外费用。

好了,我们来具体聊聊具体使用哪种索引软件。

注:以下软件选择仅为笔者个人观点,读者可根据个人需求自由选择。个人见解难免受限于知识储备,若有更好的见解尽可赐教于留言区。

Elasticsearch

Elasticsearch是一个开源(Apache2许可证),是一个基于ApacheLucene库构建的RESTful搜索引擎。

主要功能列表包括:

分布式搜索

多租户

分析搜索

分组和聚合

Solr

ApacheSolr是一个基于名为Lucene的Java库构建的开源搜索平台

主要功能列表包括:

全文搜索

分面搜索

实时索引

动态群集

数据库集成

NoSQL功能和丰富的文档处理(例如Word和PDF文件)

Coreseek/sphinx

高速建立索引

优秀的相关度算法,基于短语相似度和统计(BM25)的复合Ranking方法;

分布式搜索;

短语搜索

可作为MySQL的存储引擎提供搜索服务;

Coreseek实际上的内核还是Sphinx。但其最大的不同是coreseek有一个中文分词利器mmseg。

较为知名的引擎有以上三种,笔者这里选择了第三种。

或许对这方面稍有了解的读者会认为前两种引擎功能更加丰富便捷,性能更高,企业级使用云云..但我们的目的是搭建私人使用的数据库,而sphinx相较于他者一个显著的优点就是使用简单,轻量化配置,同时支持了分布式搜索及高效索引查询。

Sphinx的操作学习成本低,便于上手,并且提供多种开发语言的api,私人使用足矣。

关于导入的数据:

至于导入的账户数据,本文以自行使用脚本生成的随机数据为例。

读者搭建数据库时可自行寻找相关泄露数据或随机生成数据。这里不提供任何数据下载服务。

关于数据查询:

将会于之后的系列教程详细介绍,这里略过。

最后展现下查询系统的预期架构。(灵魂画手)

配置环境:

硬件:4G内存E52630 100G SSD

操作系统:Debian 8.2 x64

硬件配置的话自然是越强越好,最好使用固态硬盘,会大大加速查询时间。

操作系统笔者本文以CentOS为例,为了尽可能使安装步骤不出错,推荐使用CentOS进行安装,若读者使用其他系统,请自行摸索安装方法或自行查询资料。

索引引擎安装

环境的处理:

用的yum命令:

yuminstall make gcc g++ gcc-c++ libtool autoconf automake imakemysql-devel libxml2-devel expat-devel

用的apt-get命令:

apt-getinstall make gcc g++ automake libtool mysql-client libmysqlclient-devlibxml2-dev libexpat1-dev

注:如果提示某个包找不到的话,apt-getupdate更新源或换源安装

软件安装:

常见版本:4.1,3.2.14(建议4.1)

下载软件包coreseek-4.1-beta.tar.gz

http://files.opstool.com/man/coreseek-4.1-beta.tar.gz 

解压:tarzxvf coreseek-4.1-beta.tar.gz

安装mmseg分词模块:

cdmmseg-3.2.14/./bootstrap

注:注意看提示,可能需要把生成的configure.in改为configure.ac

./configure--prefix=/usr/local/mmseg3makemakeinstall

安装全文引擎:

cd/usr/local/coreseek-4.1-beta/csft-4.1

执行shbuildconf.sh

注:如果报错如下

主要是

but option 'subdir-objects' is disabled    

archiverrequires 'AM_PROG_AR' in 'configure.ac'

解决方案:

首先提前解决后面会出现的问题:

a) 修改sphinxexpr.cpp文件,将文件中的Tval = ExprEval ( this->m_pArg, tMatch ) 都修改为 Tval = this->ExprEval ( this->m_pArg, tMatch ),总共有三处

visrc/sphinxexpr.cpp

b) 修改buildconf.sh文件,在&&aclocal \下添加一行 &&automake --add-missing \,即变成

c)修改文件MakeFile,查找LIBS, LIBS= -lm -lexpat -L/usr/local/lib 修改为 LIBS= -lm -lexpat -liconv -L/usr/local/lib

vi./src/MakeFile/  

或者

在你之前如果已经进行过./configure操作时,修改文件configure中,查找 #defineUSE_LIBICONV 1 修改为  defineUSE_LIBICONV 0

d)修改文件configure.ac,AM_INIT_AUTOMAKE([-Wall-Werror foreign])改为 AM_INIT_AUTOMAKE([-Wallforeign]) 

AC_PROG_RANLIB下添加一行 AM_PROG_AR

之后再次执行shbuildconf.sh即可生成configure

执行./configure--prefix=/usr/local/coreseek  --without-unixodbc --with-mmseg--with-mmseg-includes=/usr/local/mmseg3/include/mmseg/--with-mmseg-libs=/usr/local/mmseg3/lib/ --with-mysql

执行make

执行makeinstall

至此,sphinx已经安装成功

结语

本系列教程的第一节讲解到此为止,主要讲解了全文引擎的安装及社工库相关的概念,由于是系列的第一节课,赘述了一些理论概念,从第二节开始将会介绍更多的干货,还请各位持续关注。最后,如果有什么不足之处还请留言指出,谢谢。

别忘了投稿哦

大家有好的技术原创文章

欢迎投稿至邮箱:[email protected]

合天会根据文章的时效、新颖、文笔、实用等多方面评判给予200元-800元不等的稿费哦

有才能的你快来投稿吧!

了解投稿详情点击——重金悬赏 | 合天原创投稿涨稿费啦!

点击“阅读全文”,开始学习


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有