首先必须要感谢一下
hancool
大哥的帮忙阿~~~ 至少帮我解决了不少麻烦
wooyun_pulic wooyun公开漏洞以及知识库和搜索
依赖组件
python2.7和pip mongodb scrapy flask 或者tornado( 个人建议用tornado 这个比较稳定 有能力的人可以自己写一下) pymongo Elasticsearch(搜索引擎,可选)
ubuntu下安装 1、安装python、pip、mongodb 1 sudo apt-get install python python-pip mongodb
2、安装scrapy 1 2 3 4 5 安装scrapy如果报错,则先apt-get安装下述依赖包,然后安装pip安装lxml后即可正常安装scrapy sudo apt-get install libxml2-dev libxslt1-dev python-dev zlib1g-dev libevent-dev python-openssl sudo pip install lxml sudo pip install scrapy
3、安装pymongo和flask(或tornado) 1 2 sudo pip install flask pymongo (sudo pip install tornado)
4、从github下载源码 1 git clone https://github.com/hanc00l/wooyun_public
爬虫 鉴于wooyun已经关了 其实这里的爬虫已经没有用了~ 所以详细步骤就不写了
搜索
漏洞搜索使用了Flask作为web server,bootstrap作为前端(8.12增加tornador web server,可配合nginx反向代理,支持高并发的应用) 启动web server :在flask目录下运行./app.py,默认端口是5000 启动Elassticsearch(如果已配置了Elasticsearch):在elasticsearch-2.3.4/bin目录下运行./elasticsearch -d (-d表示以后台方式运行) 搜索:在浏览器通过http://localhost:5000进行搜索漏洞,多个关键字可以用空格分开。 默认使用mongodb的数据库搜索,在进行全文搜索时比较慢,推荐安装使用Elasicsearch搜索引擎。
安装和配置Elasicsearch的方法(点我) 安装elasticsearch 1、安装JDK(或者JRE) 1 sudo apt-get install openjdk-7-jdk
2、下载elasticseach 1 2 wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.3.4/elasticsearch-2.3.4.tar.gz tar xvf elasticsearch-2.3.4.tar.gz
3、运行elasticsearch 1 2 cd elasticsearch-2.3.4/bin ./elasticsearch
4、测试一下,安装完成运行后elasticsearch会在9200端口上进行监听 1 2 3 4 5 6 7 8 9 10 11 12 13 curl -X GET http://localhost:9200 { "name" : "Sebastian Shaw", "cluster_name" : "elasticsearch", "version" : { "number" : "2.3.4", "build_hash" : "e455fd0c13dceca8dbbdbb1665d068ae55dabe3f", "build_timestamp" : "2016-06-30T11:24:31Z", "build_snapshot" : false, "lucene_version" : "5.5.0" }, "tagline" : "You Know, for Search" }
配置mongodb 1、编辑/etc/mongodb.conf,增加: 1 2 replSet=rs0 #这里是指定replSet的名字 oplogSize=100 #这里是指定oplog表数据大小(太大了不支持)
重启动mongodb
1 sudo service mongodb restart
2,进入mongodb shell,初始化replicSet 1 2 mongo rs.initiate( {"_id" : "rs0", "version" : 1, "members" : [ { "_id" : 0, "host" : "127.0.0.1:27017" } ]})
3,搭建好replicSet之后,退出mongo shell重新登录,提示符会变成:rs0:PRIMARY>,就可以退出Mongodb 安装中文分词插件elasticsearch-analysis-ik 1、从github下载编译好好的插件 1 2 3 4 cd ~ sudo apt-get install unzip wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v1.9.4/elasticsearch-analysis-ik-1.9.4.zip unzip elasticsearch-analysis-ik-1.9.4.zip
2、将插件复制到elasticsearch的plugins目录 1 cp -r elasticsearch-analysis-ik elasticsearch-2.3.4/plugins
3、修改elasticsearch.yml配置,定义插件配置 1 vi elasticsearch-2.3.4/config/elasticsearch.yml
在最后增加:
1 2 index.analysis.analyzer.ik.type : 'ik' index.analysis.analyzer.default.type : 'ik'
4、退出并重启elasticsearch 1 2 elasticsearch-2.3.4/bin/elasticsearch -d (-d表示以后台方式运行)
安装mongo-connector,将数据同步到elasticsearch 1 2 sudo pip install mongo-connector elastic2_doc_manager sudo mongo-connector -m localhost:27017 -t localhost:9200 -d elastic2_doc_manager
显示Logging to mongo-connector.log.后将会把mongodb数据库的信息同步到elasticsearch中,完全同步完成估计需要30分钟左右,同步期间不能中断,否则可能导致elasticsearch与mongodb数据不一致。
在同步过程中,可能会报错:
1 2 3 OperationFailed: ConnectionTimeout caused by - ReadTimeoutError(HTTPConnectionPool(host=u'localhost', port=9200): Read timed out. (read timeout=10)) 2016-08-04 17:24:53,372 [ERROR] mongo_connector.oplog_manager:633 - OplogThread: Failed during dump collection cannot recover! Collection(Database(MongoClient(u'127.0.0.1', 27017), u'local'), u'oplog.rs') 2016-08-04 17:24:54,371 [ERROR] mongo_connector.connector:304 - MongoConnector: OplogThread <OplogThread(Thread-7, started 140485117060864)> unexpectedly stopped! Shutting down
解决办法: 修改timeout值,从默认的10改为200
1 2 sudo vi /usr/local/lib/python2.7/dist-packages/mongo_connector/doc_managers/elastic2_doc_manager.py
1 2 3 4 5 将: self.elastic = Elasticsearch(hosts=[url],**kwargs.get('clientOptions', {})) 修改为: self.elastic = Elasticsearch(hosts=[url],timeout=200, **kwargs.get('clientOptions', {}))
启用全文搜索 1、安装elasticsearch-py 1 2 pip install elasticsearch
2、更新app.py 1 2 cd ~/wooyun_public git pull
3、修改app.py 1 2 3 vi ~/wooyun_public/flask/app.py 修改: SEARCH_BY_ES = 'auto'
为mongodb数据库创建索引 1 2 3 4 mongo use wooyun db.wooyun_list.ensureIndex({"datetime":1}) db.wooyun_drops.ensureIndex({"datetime":1})
Push内容 一共有两部分内容,一份内容在 wooyun_public/flask/static
就是statci整个文件包含了大部分内容 还有一份内容在mongodb
数据库里面~ 需要打包下来 打包命令是
1 mongodump -h 127.0.0.1 -o /home/wooyun/mongodb/
后面的地址是保存路径 还原数据库命令是
1 mongorestore /home/wooyun/mongodb/
虚拟机下载地址 http://pan.baidu.com/s/1kVtY2rX 提取密码:5ik7 PS:这个是hancool
前辈做的
其他 主要内容都是copy了是hancool
前辈的的文章~ 文章地址在github 如果想用虚拟机或者看更详细的内容 可以从去github看看https://github.com/hanc00l/wooyun_public