推薦一款開源的Web滲透測試工具集合,適合測試人員個性化打造
PentestDB
1 介紹
本項目用于提供滲透測試的輔助工具資源文件
1.1 輔助工具
提供輕量級的易擴展的工具,可以快速編寫exploit、添加漏洞驗證/掃描規(guī)則、添加指紋規(guī)則、爆破規(guī)則等;包含以下功能:
-
Exploit系統(tǒng)。易擴展的exploit系統(tǒng),能夠使用API快速編寫exploit,能夠批量執(zhí)行exploit
-
子域名爆破。爆破子域名,使用域傳送、DNS爆破、GoogleHacking進行子域名爆破
-
C段掃描。C段掃描,支持生成html格式輸出文件
-
服務(wù)端應(yīng)用識別。識別CMS類型、Web服務(wù)器、操作系統(tǒng)、WEB中間件等
-
URI敏感資源爆破。爆破WEB敏感文件,整站備份、配置備份、敏感文件等
-
社工密碼字典生成。根據(jù)社工信息生成密碼爆破字典
-
Google Hacking。GoogleHacking,生成URL字典
-
編解碼等功能。支持非常豐富的編解碼方式,方便做payload編碼
1.2 資源文件
各種滲透測試常用的資源文件,包括各種爆破字典exploitwebshell攻擊payload等
clone到本地
PentestDB支持Windows/Linux/MacOS,需使用python 2.6.x 或 2.7.x運行
2.1 解決lxml依賴
項目中的腳本文件依賴于lxml
linux系統(tǒng)一般默認(rèn)安裝lxml,如果沒有可通過以下方式安裝:
pip install lxmlapt-get install lxmlyum install lxml
windows可通過以下方式安裝lxml:
-
到這里找到對應(yīng)系統(tǒng)的安裝包,下載到本地
-
安裝安裝包,pip install package.whl
2.2 解決nmap依賴
項目中的C段掃描依賴于nmap掃描器
到這里下載nmap相應(yīng)版本
在windows下需要設(shè)置環(huán)境變量,讓系統(tǒng)能夠找到nmap.exe。
3 使用
3.1 常用腳本
項目中的python腳本提供用有用的滲透輔助功能,根目錄下的pen.py為腳本入口,另外script目錄下也有其他一些腳本。
3.1.1 Exploit系統(tǒng)
pen.py的exploit子命令提供了exploit模塊相關(guān)操作,exploit模塊是一個輕量級的exploit框架,可以編寫各種web漏洞的exploit:
-
搜索exploit信息
-
增加、刪除、修改exploit信息
-
執(zhí)行某個exploit
-
搜索并批量執(zhí)行exploit
exploit保存在項目根目錄下的exploit目錄下
例如:
# 列舉、搜索、注冊、更新、刪除pen.py exploit -lpen.py exploit -q appName:joomlapen.py exploit --register exploitpen.py exploit --update cms_joomla_3_4_session_object_injection.pypen.py exploit -d "Joomla 1.5~3.4 session對象注入漏洞exploit"pen.py exploit --detail "Joomla 1.5~3.4 session對象注入漏洞exploit"# 執(zhí)行exploitpen.py exploit -e cms_joomla_3_4_session_object_injection.py -u //127.0.0.1:1234 --attackpen.py exploit -s appName:joomla -u //127.0.0.1:1234 --verifypen.py exploit -s appName:joomla -u @url.txt
注:有關(guān)exploit模塊的詳細(xì)信息請參考exploit/readme.md
3.1.2 服務(wù)端應(yīng)用識別
pen.py的service子命令提供了服務(wù)端應(yīng)用識別的功能,能夠識別服務(wù)器信息,包括:
操作系統(tǒng) web服務(wù)器 web中間件 CMS等
例如:
pen.py service //xxx.com# 開啟CMS識別加強模式pen.py service //xxx.com --cms
3.1.3 社工密碼字典生成
pen.py的password子命令提供了根據(jù)社工信息生成密碼字典的功能,能夠設(shè)置不同關(guān)鍵字生成密碼字典
該模塊可通過以下要素組合生成密碼:
-
全名,--fullname,名字中各個字中間加空格,例如"lin zhi ling"
-
昵稱,--nickname
-
英文名稱,--englishname
-
伴侶名字,--partnername
-
生日,--birthday
-
手機號,--phone
-
QQ號,--qq
-
公司名稱,--company
-
域名,--domian
-
老密碼,--oldpasswd
-
關(guān)鍵字,--keyword
-
關(guān)鍵數(shù)字,--keynumbers
例如:
pen.py passwdgen --fullname "lin zhi ling" --birthday 1980-1-1 --phone 12344445555 --qq 34233888 -o password.txt
3.1.4 URI敏感文件爆破
pen.py的uribrute子命令提供了URI敏感文件爆破,URI爆破字典生成的功能
例如:
# 生成web打包備份、敏感文件字典,后綴名使用jsp和jspx,自定義關(guān)鍵字xxx,指定輸出結(jié)果dict.txtpen.py uribrute -t webbak,interestfile -e jspx,jsp --keyword "xxx" -o dict.txt# 爆破目標(biāo)站點,使用safeurl bypass wafpen.py uribrute -b -u //127.0.0.1/discuz/6.0/ --safeurl "//127.0.0.1/discuz/6.0/"# 爆破url.txt中的所有站點,爆破敏感文件,自定義notfound頁面關(guān)鍵字為“找不到頁面”pen.py uribrute -b -u @urls.txt -t interestfile --notfound "找不到頁面"
3.1.5 Google Hacking功能
pen.py的search子命令提供了Google Hacking的功能,目前支持以下搜索引擎:
-
baidu
-
bing
-
google
例如:
pen.py search "inurl:viewthread.php" -s 10 -o tmp.txt# --unique設(shè)定域名唯一,相同域名只記錄一個搜索結(jié)果pen.py search "inurl:viewthread.php" -s 10 --unique -o tmp.txt
3.1.6 子域名爆破
pen.py的domain子命令提供了子域名爆破功能:
該模塊使用3種技術(shù)進行子域名爆破:
-
域傳送漏洞檢測、利用
-
DNS字典爆破
-
Google Hacking搜索
注:支持輸出到html文件,使用*-o xxx.html*做為輸出文件即可
例如:
# 使用域傳送技術(shù)、Google Hacking對aaa.com 進行子域名爆破pen.py domamin aaa.com -t zg# 使用字典爆破子域名,自定義字典文件domain_large.txt,同時指定爆破頂級域名pen.py domain aaa.com -t d --dict domain_large.txt --topdomian
3.1.7 C段掃描
pen.py的subnet子命令提供了C段掃描功能。
注:支持輸出到html文件,使用*-o xxx.html*做為輸出文件即可
例如:
pen.py subnet test.com -o result.html
3.1.8 編碼
pen.py的encode子命令提供了編碼的功能
編碼方式*-t/--type*支持:
url url-all hex decimal unicode unicode-all md5 sha base64 base32 html html-all php-chr utf7 utf7-all
其中**-all編碼會編碼所有字符包括非特殊字符
非ASCII編碼*-m/--method*支持:
utf8 gbk gb2312 big5 utf16 utf7 等所有python支持的編碼方式,具體請參考如下鏈接:
python支持的編解碼格式
例如:
pen.py encode -t unicode "aaa=你好"pen.py encode -t url-all -m gbk "id=你好"pen.py encode -t md5 "aaaaaaaa"
3.1.9 解碼
pen.py的decode子命令提供了解碼的功能,并提供非ASCII編碼編碼推測功能
解碼方式*-t/--type*支持:
auto(默認(rèn)) hex url unicode decimal base64 base32 html php-chr utf7
其中auto方式會自動檢測url類型、hex類型的字符串并進行解碼
非ASCII編碼*-m/--method*支持:
utf8 gbk gb2312 big5 utf16 utf7 等所有python支持的編碼方式,具體請參考如下鏈接:
python支持的編解碼格式
例如:
pen.py decode -t base64 5ZOI5ZOIpen.py decode -m utf8 aaa%E5%93%88%E5%93%88pen.py encode -t hex "aa哈哈"# 推測編碼pen.py decode -d "aa哈哈"
3.1.10 文件處理功能
pen.py的file子命令提供了常用的文件操作,包括:文件查看、文件編碼推斷、文件類型轉(zhuǎn)換、文件hash計算、文件圖片隱藏(制作php圖片木馬)
使用*--list*查看支持的文件編碼轉(zhuǎn)換格式:
utf-32le utf-32le-bom utf-32 utf-32-bom utf-32be utf-32be-bom utf-16be utf-16be-bom utf-8 utf-8-bom utf-16 utf-16-bom utf-16le utf-16le-bom gbk gb2312 big5 ...
例如:
# 檢測文件編碼類型pen.py file cmdb.jsp -d# 計算文件hashpen.py file cmdb.jsp --hash md5# 以16進制方式查看文件pen.py file cmdb.jsp@hex# 將utf-8編碼的文件test.txt轉(zhuǎn)換為gbk編碼的gbk.txtpen.py file test.txt@utf8 -c gbk.txt@gbk# 文件轉(zhuǎn)換,轉(zhuǎn)換為utf-16-bom類型文件(jsp/aspx的utf-16-bom類型文件可繞過一些安全軟件)pen.py file cmd.jsp -c dst.jsp@utf-16-bom# 制作圖片木馬,會生成caidao_hiddenin_aa.jpgpen.py file caidao.php --hidein aa.jpg
3.1.11 Mail賬戶驗證/爆破
script/mail.py提供簡單的Mail賬戶驗證、爆破功能:
例如:
# 驗證/tmp/maillist.txt中的Mail賬戶mail.py -c -a @/tmp/maillist.txt# 爆破郵箱mail.py -b -u @mail.txt -p @pass.txt
3.1.12 字典維護
script/wordlist.py提供了字典文件維護的功能,包括:
-
將多個字典文件merge到數(shù)據(jù)庫中
-
對每個字典項進行打分計算
-
按照評分高低導(dǎo)出字典文件
例如:
# 按照評分高低從數(shù)據(jù)庫password.db中導(dǎo)出字典文件pass.txt,長度為100wordlist.py -d pass.txt ../user-password/password/password.db -s 100# 將字典文件test.txt merge 到數(shù)據(jù)庫password.db中,重復(fù)項分值+1wordlist.py -l test.txt ../user-password/password/password.db
3.2 user-passwd字典
password目錄包含密碼字典文件
user目錄包含用戶名字典文件
3.3 dns字典
dns爆破字典
3.4 directory字典
web目錄爆破字典,詳見相關(guān)目錄readme.md文件
3.5 attack-payload
各種攻擊payload字典,詳見相關(guān)目錄readme.md文件
3.6 webshell
webshell收集,詳見相關(guān)目錄readme.md文件
3.7 script
常用腳本
3.8 exploit
一些有用的exploit,詳見相關(guān)目錄readme.md文件
4 備注
項目中的字典等文件統(tǒng)一使用“/**”作為注釋符,注釋符在一行開頭,且只能注釋單行