Python爬虫(十九)
学习Python爬虫过程中的心得体会以及知识点的整理,方便我自己查找,也希望可以和大家一起交流。
—— xunfeng应用详解 ——
1.作用
巡风是一款适用于企业内网的漏洞快速应急、巡航扫描系统,通过搜索功能可清晰的了解内部网络资产分布情况,并且可指定漏洞插件对搜索结果进行快速漏洞检测并输出结果报表。
2. 安装及使用
-
点击巡风源代码下载巡风。
-
巡风支持多平台安装,包括windows、linux、OSX、docker。
点击xunfeng安装教程查看。
3. 代码赏析
-
任务模块化,结构化的思维
-
项目比较完整
-
如何综合运用之前所学知识
4. 插件编写
漏洞插件支持2种类型,json标示与python脚本,可以通过官方推送渠道安装或者自行添加。
JSON标示符
Python脚本
插件标准非常简洁,只需通过 get_plugin_info 方法定义插件信息,check函数检测漏洞即可。
import ftplib
def get_plugin_info(): # 插件描述信息
plugin_info = {
"name": "FTP弱口令",
"info": "导致敏感信息泄露,严重情况可导致服务器被入侵控制。",
"level": "高危",
"type": "弱口令",
"author": "wolf@YSRC",
"url": "",
"keyword": "server:ftp", # 推荐搜索关键字
}
return plugin_info
def check(ip, port, timeout): # 漏洞检测代码
user_list = ['ftp', 'www', 'admin', 'root', 'db', 'wwwroot', 'data', 'web']
for user in user_list:
for pass_ in PASSWORD_DIC: # 密码字典无需定义,程序会自动为其赋值。
pass_ = str(pass_.replace('{user}', user))
try:
ftp = ftplib.FTP()
ftp.timeout = timeout
ftp.connect(ip, port)
ftp.login(user, pass_)
if pass_ == '': pass_ = 'null'
if user == 'ftp' and pass_ == 'ftp': return u"可匿名登录"
return u"存在弱口令,账号:%s,密码:%s" % (user, pass_) # 成功返回结果,内容显示在扫描结果页面。
except:
pass
此外系统内嵌了辅助验证功能:
-
DNS:触发,nslookup randomstr IP,验证, http://ip:8088/randomstr ,返回YES即存在。
-
HTTP:触发,http://ip:8088/add/randomstr ,验证,http://ip:8088/check/randomstr ,返回YES即存在。
5. mongodb命令
-
进入mongodb:
mongo --port 65521
-
查看数据库:
show dbs
-
使用数据库:
use xunfeng
-
查看表:
show collections
-
查看表内容(以Config表为例):
db.Config.find()
-
退出:
exit
-
帮助:
db.help()