安服漏洞测试流程(附从常规实战拿shell到提权)
分两种情况
一、资产是ip的时候
1、首先信息收集
先扫描ip段,探测存活、端口开放情况
此处为了更直观的教学,这里用railgun工具做例子(实战时没有这个工具可以用nmap)
看看开了什么端口,可以根据扫描结果获得指纹信息(中间件类型/CMS类型)
看到有什么远程连接或者数据库的端口比如3389、21、22、1433、3306的可以尝试弱口令/爆破
2、漏洞测试
根据扫描结果得到一个正在运行的web服务
首先进行目录扫描,查看有无敏感信息,比如备份文件、数据库文件等信息,也可以通过目录扫描得到的结果尝试直接访问看看是否存在越权/未授权访问
目录扫描后打开该站点查看有哪些功能可以测试
URL:是否存在ref=、target=、forward=、redirect=、services=等转发参数,可以尝试URL任意重定向;如果存在其他参数则可以根据参数尝试XSS、SQL注入、SSRF、文件包含(内容读取)等,根据框架可以尝试自己fuzz一些接口,比如spring的swagger等
登陆框:弱口令、爆破、SQL注入
先尝试弱口令登陆,看是否存在测试账号、管理员账号弱密码;
根据尝试登陆返回的状态比如“用户不存在”以及验证码状态(验证码不变)来判断是否可以进行爆破;可以尝试如admin’ or’=’or’#来尝试万能密码登陆或者抓包进行SQL注入检测
账号注册:在注册的时候可以尝试用跟管理员一样的账号注册来覆盖他的密码;还可以尝试短信轰炸/邮件轰炸、SQL注入等漏洞
忘记密码:可以尝试任意密码重置、SQL注入、短信轰炸/邮件轰炸
F12查看网页源代码:看页面源码是否存在敏感信息,比如账号密码、验证码接口、其他隐藏接口等
其他功能:测试流程如上
数据包:
可以测试的点有:CORS(修改Origin)、不安全的HTTP请求方法(PUT/DELETE等)
此外可以尝试HOST头攻击(修改host值为恶意值)、SQL注入(POST)、明文传输、反序列化等
二、资产是url且有账号的时候
判断指纹,网上搜该cms的漏洞进行验证
按照上述流程测试,这里以注册账号后测试为例
测试可以测试的所有功能,流程跟一同
Xss
有框就插
文件读取,看参数请求
或者从旁站入手
涉及到的知识:
1 |
|
测试时要关注数据参数,参数可控还会造成的各类衍生结合利用
实战
得到一个ip 192.168..6.131
端口扫描
得到端口为27689的web服务
目录扫描
得到备份文件web.config.bak
在备份文件里得到数据库的账号密码,直接连接
利用目录扫描得到的后台登陆账号密码进入后台
漏洞利用
此处上传只允许上传图片,利用一点上传绕过知识进行拿webshell
如果返回包不返回文件路径,可以通过报错来回显路径来登陆webshell
提权
拿到webshell后通过cmd功能得知当前权限为www
直接添加账号提示拒绝访问
上传nc,进程已经启动,但是连接不了,判断开了防火墙
无果,另寻他法
翻看网站根目录还有一个备份文件,得到sa账号密码(在渗透到时候信息收集不能断,总会有意想不到的惊喜)
连接
利用system权限关掉防火墙
结合sql语句构造
1 |
|
再次尝试nc
开启3389
结合xp_cmdshell构造
1 |
|
添加账号
远程连接
添加到管理员组
再次连接
假如登陆sa之后发现未启用cmdshell,就手动启动一下
启用高级选项:
1 |
|
0是关闭,1是开启,这时候会提示RECONFIGURE
,那就按照提示运行一下RECONFIGURE
启用cmdshell:
1 |
|
再次提示RECONFIGURE
,再运行一下
这个时候就可以用cmdshell了
声明:
本文章用于学习交流,严禁用于非法操作,出现后果一切自行承担,阅读此文章表示你已同意本声明。
Disclaimer:
This article is for study and communication. It is strictly forbidden to use it for illegal operations. All consequences shall be borne by yourself. Reading this article means that you have agreed to this statement.