引言:笔者也是初入渗透测试行业,旨在分享一些自己的心得体会,有不足的地方欢迎大家指正。
信息收集
信息收集是指通过各种方式获取所需要的信息,以便我们在后续的渗透过程更好的进行。因为只有我们掌握了目标网站或目标主机足够多的信息之后,我们才能更好地对其进行漏洞检测。
信息收集方式
主动收集:与目标主机进行直接交互,从而拿到目标信息,缺点是会记录自己的操作信息
被动收集:不与目标主机进行直接交互,通过搜索引擎或者社会工程等方式间接的获取目标主机的信息
主要收集内容
1、网站的信息
2、服务器的配置信息
3、只要与目标网站相关联的信息,都应该尽量去搜索
网站信息收集
0x01 CMS指纹识别
常用方式:
1、通过指定特殊目录或者特殊文件
2、底部信息@pwoered by
3、html中注释掉的内容
4、robots.txt文件中的关键字
5、火狐wappalyzer插件
6、whatweb工具
7、潮汐指纹:http://finger.tidesec.net
8、CMS识别工具 http://whatweb.bugscaner.com/look
CMS漏洞利用:确定了cms版本后,这里可以通过百度搜索相应漏洞
PS:可能大佬们有更好的方法,我现在就是这样很笨拙的去找
0x02 判断中间件版本
1、火狐插件判断
2、响应包判断
3、fofa.so搜索
4、zoomeye搜索
知道了网站是什么CMS,我们还要直到web服务器是什么,Apache、Nginx、Tomcat还是IIS。例如:Nginx版本<0.83会有解析漏洞IIS6.0会有文件名解析漏洞IIS7.0会有畸形解析漏洞。
中间件漏洞利用:这里需要注意的是版本,不同web中间件的不同版本,配合文件上传漏洞利用方式不一样。
PS:目前还未找到更高效的中间件收集方式,以后有了我会更新。
0x03 判断数据库类型
1. 从页面返回的报错信息判断
没有关闭报错信息,可以直接查看
2. 从端口判断:
oracle:1521、mssql:1433、mysql:3306、mongodb: 27017
3. 从数据特有的表判断:
oracle数据库:and (select count(*) from sys.user_tables)>0 and 1=1
mysql数据库5.0以上: information_schema 库
access数据库:and (select count(*) from msysobjects)>0 and 1=1
mssql数据库:and (select count(*) from sysobjects)>0 and 1=1
4. 从数据库安装路径判断:
@@datadir
5. 判断是mssql 还是 mysql:
mysql 有 version() mssql 没有,如果报错则是mssql
6. 判断mssql 还是 oralce :
在mssql中可以调用substring(), oracle则只可调用substr(),mysql也有substr()
0x04 网站目录结构
常用工具:burp、dirbuster、7kbscan
收集信息:
1、.SVN泄露
2、.git泄露
3、网站备份压缩文件
4、DS_Store文件
5、WEB-INF文件
6、配置文件泄露
PS:这里的工作是重中之重,其实也可以利用google语法,配合fofa,zoomeye进行目录扫描(需要读者自行扩展)
0X05 Whois信息收集
常用收集网站:
国外的who.is:https://who.is/
站长之家:http://whois.chinaz.com/
爱站:https://whois.aizhan.com/
PS:这里可能收集不到什么有效信息,但是别灰心,总会有奇迹的!
0X06 真实IP
如果渗透目标购买了CDN服务,可以ping通目标的域名,但得到的不是真正的目标Web服务器,这就导致了我们无法直接得到目标的真实IP。
常规方法:
1、查询DNS历史解析记录
2、可以通过在线代理网站访问
https://asm.ca.com/en/ping.php //可能会得到真实IP
3、查询子域名
一般情况下都是主站挂CDN,子域名流量不大的时候,可以不需要挂在CDN,因为浪费钱。
4、网站漏洞查找
扫描网站测试文件,如phpinfo、test等,从而找到真实 IP
5、网站邮件订阅查找
网站用户注册验证邮件或者RSS订阅功能,查看邮件,寻找头文件中的邮件服务器域名IP。
6、网络空间引擎搜索
钟馗之眼、shodan、fofa(推荐使用:https://fofa.so)
PS:验证是否为真实IP
通过IP直接访问,看是否为该网站。
服务器信息收集
0x01 WAF信息收集
手工:提交恶意数据,简单粗暴
工具:nmap -p80,443 --script=http-waf-detect ip
0x02 判断操作系统
1、通过大小写来判断
windows不敏感
www.baidu.com/abc.php www.baidu.com/ABC.php
2、通过TTL值来判断
windows的TTL值是:128 linux的TTL值是:64
例如:ping 10.10.10.x
3、端口服务判断
windows端口 linux端口
IIS 80 ssh 22
RPC 135 NetBios 137 138 139
SMB 445
Mssql 1433
4、网站语言判断
例如:asp肯定是windows
0x03 开放端口
工具:nmap
常用命令:
主机发现类:nmap -P0 -v 192.168.0.0/24
端口扫描类:nmap -sS 192.168.0.12
PS: Nmap用法太多,这里不赘述。度娘那里有很多大佬用的nmap语句详解
其他信息收集
子域名、旁站信息收集过程和主站保持一致,越详细越好。
C段信息使用扫描工具的时候,一定要注意频率,避免被封禁IP
还有企业公众号、APP等移动端信息需要收集