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()