简单的渗透测试流程分为几个步骤:信息收集—查找漏洞—漏洞利用,拿到webshell—提权。一般到提升root权限就可以了,真正的渗透还有清楚痕迹等就不多说了。我们今天说一下信息收集的内容。
如果想要对一个网站进行渗透测试,我们第一步就是需要先对这个网站进行信息收集,找到它的一些基本信息。为什么要信息收集呢,就比如生活中你是一个特工,给你的任务是渗透到对方老大的身边。为了更好地完成任务,你就需要掌握这个老大的所有信息,就需要了解他的家庭、工作、成长经历、甚至买的内裤的颜色。。。而我们对网站信息收集也是一个道理,了解这个网站的信息,尽可能的详细。
首先收集网站的时候一般都是拿到一个域名,所以我们就需要知道这个网站的真实ip是多少,就好像你知道对方的老大的样子后,需要知道他名字是什么。
方法:通过域名获取ip nslookup 域名 ping 域名
当然了,像baidu这样的大厂不可能这么容易获得真实的ip,有的会购买CDN服务和一些其他的手段,高深的咱不知道,但是直到cdn的作用,cdn作用如下:
1.提高用户访问速率,优化用户使用体验。
2.隐藏真实服务器的ip
3.防御功能,访问请求会先经过CDN节点的过滤,该过滤可对SQL注入、XSS、Webshell上传、命令注入、恶意扫描等攻击行为进行有效检测和拦截。CDN节点将认为无害的数据提交给真实的主机服务器。
cdn为了提高用户的传输速度,在全国会有很多cdn节点,方便传输。而我们为了得到真实ip,需要做的是判断是对方否有cdn服务。下面整理了一些绕过cdn的方法:
- 判断是否存在CDN
- 多地ping ,是否存在多个ping,有多个ip一般就是cdn
- 国外很多小企业没有cdn,在国外ping,或者多个地点ping,显示都是同一个ip,大概率这个可能是真实的IP地址
- Bypass cdn(绕过cdn)
- 多地ping
- 邮件服务器
- 服务器发送邮件给员工,是以自己的真实ip发送 (邮件服务不需要cdn,一般内部使用)
- foxmail
- 子域名
- 子域名很大概率不会配置cdn,因为cdn流量花钱,所有都装的话不太可能
- 1.与主域名在同一台服务器上
- 2.与主域名一个网段
- 子域名爆破,查询子域名IP地址
- 真实ip查找
- 域名直接丢 国外cdn运营商
- https://get-site-ip.com/
- http://crimeflare.org:82/cfs.html
- 查找老域名
- 比如一个公司有钱了,把用的域名更改了,但是还继续维护老域名,服务器不换ip没换。查找老域名ip,查找老域名可以用百度搜索框的特殊语句进行查找
- 查找关联域名
- .com
- .cn
- .org
- .gov 政府
- 比如谷歌从中国退出了,但是域名还在用,可以查找
- 信息泄露/配置文件
- Phpinfo
- 网页源码
- 前端代码
- Shodan/fofa/zoomeye
- 网站漏洞
- Ssrf(漏洞利用)
- 命令执行
- SQL 注入
- DNS 记录,证书
- dns记录:比如还没有购买cdn记录的时候,就是原ip地址,有的网站对出名的有缓存
- 证书:https里的加密证书,包含了大量有用数据
- 域名历史( https://x.threatbook.cn/)
通过上面这些方法可以来找出真实ip,当然还有最省事的,使用一些网站查询,比如fofa、微步等。
继续信息收集,最直接的方法,在百度上搜索关于这个网站的相关信息:
搜索引擎语法
Google hacking
site:限制搜索范围为某一网站,例如:site:baidu.com "admin" 可以搜索 baidu.com 网站上包含关键词“admin”的页面。 inurl:限制关键字出现在网址的某个部分,例如:inurl:php?id= 可以搜索网 址中包含 php?id=的页面。 intitle:限制关键字出现在页面标题中,例如:intitle:index of / 定位网 站目录索引页面。 filetype:限制搜索特定文件类型,例如:filetype:pdf site:example.com 可以搜索 example.com 网站上的 pdf 文件。 cache:查看 Google 对某个页面的快照,例如:cache:example.com 查看 Google 对 example.com 的快照。
更多资料 在线Google Hacking小工具 https://github.com/K0rz3n/GoogleHacking-Page
WHOIS
域名的 whois 信息可以提供以下作用: 确认域名的所有者、注册商、注册日期和到期日期等基本信息。 了解域名的注册历史,对于判断一个域名的可信度和信誉程度有很大帮助。 判断一个域名是否正在被使用及其使用方式,是否涉及到滥用、欺诈等问题。 可以通过 whois 信息获得自己的域名信息,及时检查域名是否即将到期,避免域名 失效带来的影响。
站长之家:whois查询
网站架构/服务器指纹/CMS 识别
网页源代码 请求头/响应头 网站底部,顶部,左上角右上角 (功能点都有可能存在漏洞) 网站报错信息 (404可能爆出来中间件) 域名/install (install是安装页面,直接再网站后输入可能看到cms)都看运气
插件 Wappalyzer
自动化收集页面特征
CMS 漏洞 GitHub - s7ckTeam/Glass: Glass是一款针对资产列表的快速指纹识别工具,通过调用Fofa/ZoomEye/Shodan/360等api接口快速查询资产信息并识别重点资产的指纹,也可针对IP/IP段或资产列表进行快速的指纹识别。 GitHub - EdgeSecurityTeam/EHole: EHole(棱洞)3.0 重构版-红队重点攻击系统指纹探测工具 定位版本对应已知漏洞检查 CMS 未知漏洞挖掘 显示网站使用的技术 Detect which CMS a site is using - What CMS? https://builtwith.com/
备案
如你想在互联网上开设自己的网站,就需要备案,否则后面无法访问。
备案信息 资产收集 ● 站长之家 ICP备案查询 - 站长工具 ● 天眼查 天眼查-商业查询平台_企业信息查询_公司查询_工商查询_企业信用信息系统 ● 企查查 ● 爱企查
然后我们下面使用工具进行收集:
先来说明一下,网站大致分为三种部署模式,
主域名与子域名的方式: a.com 1.a.com
目录: a.com a.com/admin/
端口: a.com a.com:8080
我们当前只知道主域名,但是不知道主域名下面有多少个子域名和子域名的名字,所以可以用工具进行爆破,子域名可以使用gobustr。目录的是就是我们熟悉的御剑。端口使用nmap扫描。
前端代码
可以看前端源代码,比如注释了测试账号密码,或者抓包http看请求的信息
C段
扫描整个网段
比如已经确定了ip地址了,通过ip想获得更多的资产,也就是更多的子域名,在同网段进行搜索。
我使用的是webfinder 软件。
目前收集的方式就这么多,大概也够用了,最后我认为需要注意的是,上面的是方法,而不是流程,新人做的时候如果一种方法找不到就换下一种,随机应变就好了,