前言
在做渗透测试的时候一般网站主站信息都比较少,我们需要在测试过程中进行信息搜集,我们可以根据路径爆破工具进行使用与测评分析工具的特点,批量访问发现的路径查找敏感路径,找到敏感数据,如:后台、其他未授权访问路径,扫描得到敏感文件的路径,从而找到敏感数据。
一、使用爆破工具进行破解:
gxfr.py、subDomainsBrute.py、wydomain.py、sublist3r.py
dirsearch:https://github.com/maurosoria/dirsearch
OneForAll:https://github.com/shmilylty/OneForAll.git
virustotal:https://www.virustotal.com
子域名自动化搜索:https://d.chinacycc.com
dnsdumpster:https://dnsdumpster.com
FeeiCN :https://github.com/FeeiCN/esd
御剑、DirBuster、intellitamper、dirmap、椰树、dirb等
OneForAll:一款功能强大的子域收集工具
安装过程:
下载更新:git clone https://github.com/shmilylty/OneForAll.git
安装依赖包:
cd /OneForALL
pip install -r requirements.txt
OneForALL源码链接:https://github.com/shmilylty/OneForAll
执行操作指令./oneforall.py --target http://xxx.cn run
扫描输出的文件存放在/OneForALL/results 目录下
生成一个表格数据文件(.csv),方便用户查看
查看xxx.csv文件(有域名,url,ip,回复包状态码,banner,isp等)
xxx.csv (超链接,右键打开查看即可)
Dirsearch:一种高级的命令行工具,旨在对web服务器中的目录和文件进行暴力破解。
(一)下载dirsearch步骤
git clone https://github.com/maurosoria/dirsearch.git
//kali上输入指令下载源码安装包
cd dirsearch //切换路径
python3 dirsearch.py -u <URL> -e <EXTENSION> //-u(url地址)-e (EXTENSION指网站语言,如php、asp)
(二)附上dirsearch使用手册:
https://blog.csdn.net/yigaoyu/article/d etails/108473952
在dirsearch目录下的README.md文件也有使用方法
(三)模拟暴力破解敏感路径(靶机ip/510cms)
Dirsearch/db目录下存放暴力破解所需的字典,可以从中增添字段,加强字典。
接下来输入./dirsearch.py -u http://10.10.10.1/510cms -e php --plain-text-report=/su.txt
进行路径的暴力破解
回显的过程有访问html的状态码status,回复包的长度length,以及网站的路径
--plain-text-report=/su.txt
为输出报告到指定的路径下面
默认输出报告位置如下:
/dirsearch/reports
Virustotal:病毒扫描引擎站
(一)VirusTotal 是一款可疑文件分析服务,分析可疑文件和URL以检测恶意软件的类型。通过各种知名反病毒引擎,对您所上传的文件进行检测,以判断文件是否被病毒、蠕虫、木马以及各类恶意软件感染。
特点:
免费, 独立的服务
使用多种反病毒引擎
实时自动更新病毒定义库
文件扫描功能,上传一个webshell的木马文件上去检测,检测到是backdoor-PHP文件
(二)url检测,本次检测地址为实训平台http://xxx.com/
网页信息回显
Whois域名注册查询,注册登记的信息(姓名,地址,电话,邮箱,网络ip等)
(三)VirusTotal运行DNS复制功能,通过存储用户访问URL时执行的DNS解析来构建数据库。要检索子域名的信息,只需将域名放在搜索栏中即可。
二、子域名自动化搜索:扩大渗透测试范围,找到目标站点突破口,业务边界安全
(一)谷歌语法:通过特定站点范围查询子域名如姓名 site:xxx.cn
(二)使用Sublist3r工具枚举域名
Sublist3r是一个python工具,旨在使用OSINT枚举网站的子域。它可以帮助渗透测试人员和Bug猎手收集和收集其目标域的子域。
安装过程如下:
使用GitHub下载相应的子域名发现工具
kali下安装:
git clone https://github.com/aboul3la/Sublist3r.git
安装模块 // cd /Sbulist3r
sudo pip install -r requirements.txt
枚举目标子域名
python sublist3r.py -d 目标
存放域名字典的路径/Sublist3r/subbrute/
./sublist3r.py -d xxx.cn
./sublist3r.py -d xxx.cn -p 80,443 -o su.txt
指定80,443端口搜集域名并输出文档到su.txt文本下
(三)利用Google提出的证书透明度(Certificate Transparency)查询公开的子域,一般查询结果包括域、签发者、有效期和签名等
crtsh:https://crt.sh/?q=xxx.cn
Censys: https://censys.io/certificates?q=xxx.cn
(四)用安全类搜索引擎搜索域名
(五)Dnsdumpster:一个免费的域研究工具,可以找到给定域名的大量潜在子域名
从攻击者的角度寻找可见主机是安全评估过程的重要组成部分。
附上子域名挖掘大全指南:https://xz.aliyun.com/t/3478
域名映射图
(六)子域名挖掘机:L ayer子域名挖掘机是一款域名查询工具,可提供网站子域名查询服务
(七)FeeiCN
优势
1.支持泛解析域名
2.基于RSC(响应相似度对比)技术对泛解析域名进行枚举(受网络质量、网站带宽等影响,速度会比较慢)
3.基于aioHTTP获取一个不存在子域名的响应内容,并将其和字典子域名响应进行相似度比对。 超过阈值则说明是同个页面,否则则为可用子域名,并对最终子域名再次进行响应相似度对比。
更快的速度
4.基于AsyncIO异步协程技术对域名进行枚举(受网络和DNS服务器影响会导致扫描速度小幅波动,基本在250秒以内)
5.基于AsyncIO+aioDNS将比传统多进程/多线程/gevent模式快50%以上。 通过扫描qq.com,共170083条规则,找到1913个域名,耗时163秒左右,平均1000+条/秒。
6.更全的字典
7.融合各类字典,去重后共170083条子域名字典
安装过程
安装
pip install esd
升级
pip install esd --upgrade
扫描单个域名
esd -d xxx.com
详细参数手册请访问:https://github.com/FeeiCN/ESD/blob/master/README.md
三、对路径进行批量访问查找敏感路径:
后台路径与返回含有重要的敏感信息的文件,比如数据库文件、代码的备份文件或svn、git版本控制文件等,首先了解敏感的信息文件的后缀,如.mdb .zip .rar .txt .git .svn等,然后构造url+后缀名的访问请求,即可查找和验证敏感文件是否存在
(一)简易枚举敏感路径脚本,通过url+后缀名来访问网站,从得到的状态码判断路径是否存在。
from typing import TextIO
import requests
url = 'http://www.xxx.cn/'
with open("web.txt","r") as web:
webs=web.readlines()
for web in webs:
web=web.strip()
u = url+web
r = requests.get(u)
# print("url为:"+u)
print("url为:"+u+' '+"状态为:%d"%r.status_code)
w=open('write.txt','w+')
for web in webs:
web = web.strip()
u = url + web
r = requests.get(u)
w.write("url为:"+u+' '+"状态为:%d"%r.status_code+"\n")
(二)御剑后台扫描器,同理可得通过写入的域名+路径配置文件,最后判断状态码是否为200,是则回显,否则不回显。
(三)intellitamper软件路径枚举
(四)获取敏感文件
网站源码备份文件存放在根目录下,以至于用户可以访问
源码备份存在着敏感数据库备份文件(.sql)
以及敏感路径和配置文件信息等
攻击者可以通过代码审计等方法对网站进一步的渗透
数据库备份文件泄露(导致管理员账号密码泄露,将其放到md5解密即可)
admin/adminlwphp
访问后台路径10.10.10.1/510cms/admin
,敏感路径泄露,用户可以实现路径穿越
源码泄露文章参考:
https://blog.csdn.net/qq_52116331/article/d etails/109911851
四、对敏感路径进行爬虫获取敏感数据:
对网站进行爬虫获取敏感数据,可以通过python脚本进行贪婪匹配获取数据,也可以通过参数的匹配来匹配数据。
(一)爬取oa系统后台日数据
某后台网站的个人系统日志模块,记录用户名,ip地址,登录时间,登出时间。
对网站进行暴力破解,得知账号密码为phpoa/12345678
from selenium import webdriver
import re
from bs4 import BeautifulSoup
import requests
heade={
'Accept':'text/html,application/xhtml+x ml,application/x ml;q=0.9,image/webp,*/*;q=0.8',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:83.0) Gecko/20100101 Firefox/83.0',
'Cookie':'csa=19; my_expand_3=2%2C1%2C0%2C; my_expand_all_3=; PO_auth=MQlkMjM4N2YwYjMyZjIzM2RjYzg5OWZmNGE0ODU0OWE4NA%3D%3D'
}
postdata={
'username':'phpoa',
'password':'12345678'
}
for i in range(1,20):
posturl=("http://10.10.10.1/oa/admin.php?ac=log&fileurl=member&page=%d"%i)
res=requests.post(url=posturl,data=postdata,headers=heade)
text=res.text
pattern=re.compile('<li class="name">(.*?)</li>.*?<td class="name">(.*?)</td>.*?<td>(.*?)</td>.*?<td>(.*?)</td>',re.S)
flag=re.findall(pattern,text)
print(" 用户名 "+"ip地址 "+"登录时间 "+"登出时间")
print(flag)
(二)爬取cms后台留言板信息
Cms管理后台留言板时间,QQ,Email邮箱,IP信息。
对网站进行暴力破解,得知账号密码为admin/123456
from selenium import webdriver
import re
from bs4 import BeautifulSoup
import requests
heade={
'Accept':'text/html,application/xhtml+x ml,application/x ml;q=0.9,image/webp,*/*;q=0.8',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:83.0) Gecko/20100101 Firefox/83.0',
'Cookie':'username=admin; userid=1; PO_auth=MQkyODExZmI4ZjQ5MTllOGMxMmMyMjc4NDlkMzNmMjFlMg%3D%3D; PHPSESSID=5d26475d72a9c879b007642b29764cf2'
}
postdata={
'username':'admin',
'password':'123456'
}
posturl=("http://10.10.10.1/cms/admin/message.php")
res=requests.post(url=posturl,data=postdata,headers=heade)
text=res.text
pattern=re.compile('.*?<font style="color:#009900">(.*?)</font>.*?</font>(.*?)</td>.*?',re.S)
flag=re.findall(pattern,text)
for i in range(0,3):
print(flag[i])
(三)利用搜索引擎爬取敏感信息(姓名 site:xxx.cn)爬取网站有姓名字样的网页
总结
由于后台人员的疏忽或者不当的设计,导致不应该被前端用户看到的数据被轻易的访问到。敏感信息泄露虽然一直被评为危害比较低的漏洞,但这些敏感信息往往给攻击者实施进一步的攻击提供很大的帮助,甚至“离谱”的敏感信息泄露也会直接造成严重的损失。因此,在web应用的开发上,除了要进行安全的代码编写,也需要注意对敏感信息的合理处理。