渗透测试基本流程
渗透测试是通过一些手段来找到网站、APP、网络服务、软件、服务器等网络设备和应用的漏洞,告诉管理员有哪些漏洞,怎么填补,从而防止黑客的入侵。
渗透测试分为 白盒测试 和 黑盒测试:
- 白盒测试:在知道目标网站源码和其他一些信息的情况下对其进行渗透,有点类似于代码分析。
- 黑盒测试:只告诉我们这个网站的 URL,其他什么都不告诉,然后让你去渗透,模拟黑客对网站的渗透。
本文模拟黑客对一个网站进行渗透测试,属于黑盒测试。一般来说,渗透测试的基本流程如下:
- 确定目标
- 信息收集
- 漏洞探测
- 漏洞利用(GetShell)
- 内网转发
- 内网渗透
- 痕迹清除
- 撰写渗透测试报告
一、确定目标
确定你的渗透目标是什么。
二、信息收集
信息收集是整个渗透测试中最重要的一步,你要把你要攻击的目标全部探测清楚,才能更好的攻击。信息收集的越丰富,内容或情报收集的越多,攻击的成功率就越高。
1. 主机扫描 (Nessus)
对目标主机进行扫描,而不仅仅是对网站进行扫描,扫描目标主机开放了哪些端口,扫描端口运行的服务,目标主机上有哪些漏洞。 主机扫描的工具也有很多,比如:Nessus。
2. 端口扫描 (Nmap)
需要知道目标服务器开放了哪些端口,常见的如 135、137、138、139、445,这几个端口经常爆发漏洞。以下是一些服务端口的漏洞:
- 22——> SSH 弱口令
- 873——> Rsync 未授权访问漏洞
- 3306——> MySQL 弱口令
- 6379——> Redis 未授权访问漏洞
端口扫描工具有 Nmap 和 Masscan。Nmap 扫描的准确性较高,但是扫描的比较慢。Masscan 扫描的比较快,但是准确性较低。
3. 网站敏感目录和文件
扫描网站目录结构,看看是否可以遍历目录,或者敏感文件泄漏。
- 后台目录:弱口令,万能密码,爆破
- 安装包:获取数据库信息,甚至是网站源码
- 上传目录:截断、上传图片马等
- MySQL 管理接口:弱口令、爆破,万能密码,然后脱库,甚至是拿到 Shell
- 安装页面:可以二次安装进而绕过
- phpinfo:会把你配置的各种信息暴露出来
- 编辑器:FCK、KE 等
- IIS 短文件利用:条件比较苛刻 Windows、Apache 等
提到了网站敏感目录我们就不得不提 robots.txt 文件了。 robots.txt 文件是专门针对搜索引擎机器人 Robot 编写的一个纯文本文件。我们可以在这个文件中指定网站中不想被 Robot 访问的目录。这样,我们网站的部分或全部内容就可以不被搜索引擎收录了,或者让搜索引擎只收录指定的内容。
假如编写的 robots.txt 文件内容如下:
User-agent: *
Disallow: /data/
Disallow: /db/
Disallow: /admin/
Disallow: /manager/
Allow: /images/
其中'Disallow'参数后面的是禁止 Robot 收录部分的路径,例如我们要让 Robot 禁止收录网站目录下的'data'文件夹,只需要在 Disallow 参数后面加上 /data/ 即可。如果想增加其他目录,只需按此格式继续添加。文件编写完成后将其上传到网站的根目录,就可以让网站远离 Google Hack 了。
虽然 robots 文件目的是让搜索蜘蛛不爬取想要保护的页面,但是如果我们知道了 robots 文件的内容的话,我们就可以知道目标网站哪些文件夹不让访问,从侧面说明这些文件夹是很重要的了。
探测目标网站后台目录的工具有:Wwwscan、御剑、Dirbuster、Cansina 等。
4. 旁站和 C 段扫描
旁站指的是同一服务器上的其他网站,很多时候,有些网站可能不是那么容易入侵。那么,可以查看该网站所在的服务器上是否还有其他网站。如果有其他网站的话,可以先拿下其他网站的 Webshell,然后再提权拿到服务器的权限,最后就自然可以拿下该网站了!


