情报搜集
1、DNS信息
- 收集DNS信息的时候,主要关注域名注册商,管理员联系方式,电话,电子邮箱,子域名等信息
1.1、whois查询
-
kali中工具
whois
-
whois testfire.net
-
站长之家http://whois.chinaz.com/
用whois 查询以外,还可以进行反查,对于这些反查得到的信息,如果数量庞大,说明是服务商的电话。
- 邮箱反查:这个邮箱都注册过哪些域名。
- 注册人反查:这个注册人都注册过哪些域名。
- 电话反查:这个电话都注册过哪些域名。
1.2、子域名查询
- 查询子域名
testfire.net
www.testfire.net
demo.testfire.net
- 查询工具
T00ls在线工具:https://www.t00ls.net/domain.html
netcraft在线工具:https://searchdns.netcraft.com/
搜索引擎:site:testfire.net
利用HTTPS证书
1.3、子域名爆破
原理:字典爆破
爆破工具:https://github.com/knownsec/ksubdomain/
2、DNS2IP
通过DNS解析到IP地址
2.1、PING
ping www.testfire.net # 65.61.137.117
2.2、NSLOOKUP
nslookup www.testfire.net
2.3、DIG
- 简单查询
dig www.testfire.net
- 指定DNS 服务器
dig @8.8.8.8 www.testfire.net
- 获取域名的详细解析过程
dig +trace www.testfire.net
- 域传送漏洞
dig axfr @dnsServer dns
2.4、DNSENUM
dnsenum testfire.net
功能特性:
- 解析DNS
- 列出NS Server
- 检测域传送漏洞
- 子域名爆破
2.5、CDN问题
***绕过CDN查找网站真实IP地址,这是一个开放性话题
3、IP查询
3.1、IP查询归属地
http://ip.tool.chinaz.com/
3.2、旁站查询
同IP网站查询
http://stool.chinaz.com/same
3.3、IP2Location
通过IP地址查询到物理地址
- 查询IP地址经纬度
https://www.maxmind.com/
- GPS定位
http://www.gpsspg.com/maps.htm
4、搜索引擎搜集信息
搜索引擎 | 实例 |
---|---|
Google Hacking | … |
钟馗之眼 | app:“IIS” +ver:“6.0” app:“windows” +port:“3389” |
shodan | JAWS/1.1 |
fofa | title="beijing" port=“443” |
5、网站信息
5.1、网站报告
IP 地址、域名归属
操作系统信息
Web 服务器信息
...
5.2、网站架构
- 操作系统+Web服务器+中间件+数据库
*AMP
*NMP
Windows+IIS+ASP|.NET(.aspx)|+ACCESS|MSSQL(SQL Server)
...
- 套件
phpStudy
XAMPP
宝塔
JBoss
Weblogic
- 网站部署方式
前后端分离 | 站库分离 |
---|---|
前端服务器 后端服务器 数据库服务器 文件存储服务器 第三方服务器接口(短信验证接口) | Web 服务器 数据库服务器 |
5.3、Web应用指纹识别
在Web开发过程中,为了开发的高效性,通常使用一些现有框架
常见的开发框架和内容管理系统(CMS):
PHP | JAVA | 前端 |
---|---|---|
wordpress|wp drupal joomla thinkphp dedecms metinfo_5.0.4 … | struts2 spring springboot … | vue.js … |
-
识别网站指纹工具
识别网站工具 示例 whatweb(kali) whatweb http://10.10.10.130/ 云悉 https://www.yunsee.cn/ nikto(kali) nikto -h http://10.10.10.130/
whatweb(kali)
参数 | 示例 |
---|---|
-i:指定扫描文件 | whatweb -i /root/target.txt |
-v:详细显示扫描的结果 | whatweb -v 域名 |
-a:指定运行级别 | whatweb -a 等级 域名(与-v结合使用) |
云悉
nikto(kali)
参数 | 示例 |
---|---|
-h:指定扫描目标 | ./nikto.pl -h www.google.com -p 80,81,8080 -C |
-p:指定扫描的端口 | |
-C:指定CGI目录 | |
-C all :进行暴力破解CGI目录,进行扫描 | ./nikto.pl -h www.google.com -C all |
- 两个参数一般同时出现,-F指定保存结果文件的类型 -o为结果文件名称
- ./nikto.pl –h www.google.com -F html -o test.html
6、敏感信息收集
6.1、robots.txt
根据文件内容,告诉搜索引擎爬虫机器人,本网站哪些目录可以爬,哪些不可以爬;不可以爬的目录就是`目标`
6.2、敏感目录泄露
- git泄露
- SVN泄露
- .DS _Store泄露
6.3、其他敏感信息
- HTML注释
- 邮箱信息思考
- github
- phpinfo()
- readme.md
- 物理路径
- 账密泄露
密码会在Cookie 中
默认账密在新闻中
账密在HTML 注释中
密码策略
入职清单里的默认账密
7、漏洞库
7.1、在线漏洞库
7.2、本地漏洞库
-
serachsploit
-
searchsploit drupal 7 searchsploit drupal 7 -o searchsploit -m 44482 searchsploit drupal 7 -w
详细参数 | 示例 |
---|---|
-p/–path | 显示漏洞利用的完整路径 |
-o/–overflow | 漏洞标题被允许溢出其列 |
-w/–www | 显示URL,而不是本地路径 |
-h | 查看帮助 |
searchsploit afd windows local | 搜索漏洞关键字afd的Windows本地利用漏洞 |
searchsploit -t oracle windows | 搜索标题中包含oracle windows的漏洞 |
searchsploit mssql | 查找mssql的漏洞 |
渗透测试流程
见另一文档
扫描技术
1、常见端口号
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xKpbALfr-1618983037506)(…/Image/image-20210319200832623.png)]
2、三次握手
第一次握手:建立连接时,客户端发送syn包到服务器,等待服务器确认;
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入准备连接状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
3、四次挥手
第一次挥手:TCP客户端发送一个FIN,用来关闭客户到服务器的数据传送
第二次挥手:服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。
第三次挥手:服务器关闭客户端的连接,发送一个FIN给客户端。
第四次挥手:客户端发回ACK报文,报文确认并将确认序号设置为收到序号加1。
4、Nmap
4.0、参数查询
4.1、Nmap扫描过程
- 扫描主机是否在线
- 进行端口扫描
4.2、主机发现
- ping扫描
- 其他扫描方式
4.3、端口扫描
4.3.1、端口状态
4.3.2、最简单的扫描
4.3.3、端口扫描
-
指定端口
nmap 192.168.16.113 -p 80 nmap 192.168.16.113 -p 80,3306,3389 nmap 192.168.16.113 -p 1-100 nmap 192.168.16.113 -p 1-100,3306,3389 nmap 192.168.16.113 -p 1-65535 nmap 192.168.16.113 -p-
-
端口扫描方式
端口扫描方式 | 参数 | 原理 | 优缺点 |
---|---|---|---|
TCP 全连接扫描 | -sT | Nmap 发送一个SYN = 1 如果目标返回ACK=1,SYN=1 ,则Nmap 回ACK = 1,此时就会建立完整的三次握手连接,Nmap 判断该端口开放。 如果目标直接回RST=1 ,Nmap 判断该端口关闭。 | 准确 留下大量的、密集的日志记录 |
SYN 半连接扫描 | -sS | Nmap 发送一个SYN = 1 如果目标直接回ACK=1,SYN=1,Nmap 判断该端口开放,并主动重置连接。 如果目标直接回RST = 1,Nmap 判断该端口关闭。 | 快速 没有TCP 全连接扫描准确,需要root 权限 |
-
其他端口扫描方式
FIN 扫描:-sF Null 扫描:-sN Xmas 扫描:-sX UDP 扫描:-sU TCP ACK 扫描:-sA TCP 窗口扫描:-sW
-
其他操作
4.4、终极命令
sudo nmap -P0 -A -p- -sS -T4 10.10.10.130 -oN nmap.A
敏感目录扫描
1、通用扫描器
御剑
windows 下工具,界面简洁,操作简单,一般适用于国内网站用。
dirb
字典比较丰富,可以递归方式扫描目录结构国外网站用
dirb http://url/directory/ (Simple Test)
dirb http://url/ -X .html (Test files with '.html' extension)
dirb http://url/ /usr/share/dirb/wordlists/vulns/apache.txt (Test with apache.txt wordlist)
dirb https://secure_url/ (Simple Test with SSL)
2、专用扫描器
droopescan
一款基于插件的,主要针对durpal
的扫描器
-
使用方法
# display help docker run --rm droope/droopescan # example scanning a drupal site docker run --rm droope/droopescan scan drupal -u https://drupal.example.com
-
典型案例
DC-1
wpscan
专门用来扫描WordPress
的扫描器。kali自带
-
使用方法
wpscan --url http://dc-2 wpscan --url http://dc-2 -e vp,u --plugins-detection mixed wpscan --url http://dc-2/ -U user.dic -P pass.dic
-
典型案例
DC-2
专门扫描joomla
的扫描器
-
使用方法
perl joomscan.pl -u http://target.com/joomla
-
案例
DC-3
漏洞扫描
1、漏洞扫描的原理
漏洞扫描指的是利用一些工具自动化发现网络上各类主机设备的安全漏洞。这些自动化工具通常被称为漏洞扫描器。漏洞扫描器通常可以为两类,黑盒扫描和白盒扫描。
黑盒扫描
黑盒扫描一般就是通过远程识别服务的类型和版本,对服务是否存在漏洞进行判定。在一些比较新的漏洞扫描软件中,应用了一些更高级的技术,比如模拟渗透攻击。
黑盒扫描使用漏洞扫描器。漏洞扫描器一般会附带一个用于识别主机漏洞的特征库
,并且会定期进行更新。在漏洞扫描的时候,就是利用特征库里的脚本与目标系统的反馈信息进行匹配,如果能够匹配上,就说明存在某一个漏洞。
白盒扫描
白盒扫描就是在具有主机操作权限
的情况下进行漏洞扫描。比如微软的补丁更新程序会定期对操作系统进行扫描,查找存在的安全漏洞,并推送相应的补丁更新。
白盒扫描的结果更加准确,但一般来说白盒扫描所识别出的漏洞不应当作为外部渗透测试的最终数据。因为这些漏洞由于防火墙和各类防护软件的原因很可能无法在外部渗透测试中得到利用。同时,一般情况下是没有机会获得用户名和口令。
注意事项
漏洞扫描器扫描出来的结果通常会有很多误报(报告中发现漏洞,但实际漏洞并不存在)或者漏报(漏洞实际存在,但报告中没有体现)。因此,需要对扫描结果进行人工分析
,确定哪些漏洞是真实存在的,这个过程叫做漏洞验证。漏洞验证是渗透测试过程中不可缺少的一步,只有验证漏洞存在的真实性,才能对漏洞进行深度利用
。
在漏扫之前,一定要得到客户的许可,并且讲清楚可能造成的风险以及产生不良后果的应急预案。使用漏洞扫描器时,一定要注意规避风险,努力将对系统运行可能造成的风险降到最低。尽量避免业务高峰期。
2、网络漏洞扫描
2.1、常见的网络漏扫工具
2.2、OpenVAS的安装
- 安装
gvm
sudo apt-get update
sudo apt-get install gvm
gvm
初始化安装
sudo gvm-setup # 开始安装
sudo gvm-check-setup # 检查安装是否报错
sudo gvm-feed-update # 更新漏洞库
- 启动OpenVAS
sudo gvm-start # https://127.0.0.1:9392
- 重新设置管理员密码
sudo runuser -u _gvm -- gvmd --user=admin --new-password=123456
2.3、OpenVAS的使用
3、Web漏洞扫描
3.1、Web漏扫工具
- AppScan
- AWVS
3.2、AWVS的管理
sudo systemctl start|stop|restart|disable acunetix.service
3.3、AWVS的使用
4、被动漏洞扫描
4.1、被动式漏洞扫描器原理
Browser <--> Proxy <--> Server
4.2、工具
- BurpSuite
- OWASP ZAP
- w13scan
4.3、w13scan
-
安装
git clone https://github.com/w-digital-scanner/w13scan.git cd w13scan # 进入git目录 pip3 install -r requirements.txt cd W13SCAN # 进入源码目录 python3 w13scan.py -h
-
用法
python3 w13scan.py -s 0.0.0.0:6666
总结
如果想对网站或者系统进行合法的或已授权的渗透测试的话,信息收集工作一定是开始之前的准备工作,非常的重要,通过信息收集获得到的该网站或者系统的身份信息或者指纹,可以让我们的渗透测试工作事半功倍