文章共计1769个词
预计阅读7分钟
来和我一起阅读吧
≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈
1前言
最近听说用某棋牌产品建的站存在SQL注入,刚好别人发来一个
渗透惯用套路一把梭
信息收集 -> 漏洞探测/利用 -> 提权/权限维持 -> 清理痕迹
2 信息收集
浏览器访问主页初步发现
系统:Windows server中间件 IIS7.5语言:ASPX
端口扫描
nmap -sV -T4 -p- 11x.xx.xxx.xx
开放的端口真不少其中web服务的有几个:80(当前主页)、81、82、88、4700181:是这个棋牌站的后台82:也是个后台,不知道是什么系统的后台,有验证码88/47001:访问失败
1433:数据库 mssql
还开了 139、445 但是被过滤了,不知道是不是有防火墙,后面再看
敏感目录扫描
先用 Dirsearch 过一遍,前面搜集到网站语言是 aspx,加上 -e 指定语言
python dirsearch.py -u http://11x.xx.xxx.xx -e aspx
再用 7kbscan 过一遍,毕竟这里面收集的都是国人常用的字典
/m/ 是用户注册页面,可能有用,先记着
/test.html是调起微信的入口,没啥用,可能是在手机端引导受害者聊天的吧
查IP
北京某个运营商的服务器,菠菜在国内服务器建站挺大胆的
信息整理
估计就是个人建的小站,不去展开收集更过的东西了,免得打偏浪费时间
3 漏洞探测
重点先放在前面找到的 81 端口,也就是网站的后台管理页面
没有验证码,用户名 / 密码随便写个 admin / admin,抓包
用户名加了个引号发送请求直接返回报错了,不出意外应该会有报错注入或者盲注啥的
兵分两路
一路把这个数据包保存到本地 qipai.txt,用 sqlmap 去扫,前面已经知道是 mssql 数据库,加上 --dbms 参数指定数据库类型节约时间
python sqlmap.py -r qipai.txt --dbms "Microsoft SQL Server" --dbs
另一路,把数据包发送到 intruder 模块去爆破密码,尝试了在浏览器随便输入用户名,提示 "用户名不存在",输入 admin 的时候提示 "用户名或密码错误",说明 admin 账户是存在的,只爆破密码就行
爆出密码 888999,弱口令,永远滴神!
成功登录后台
只有 69 个注册用户,剩下的全是机器人,这 69 个用户冲了 143 万?玩棋牌的都这么有钱吗,我欢乐斗地主都舍不得冲 6 块首充
赌博沾不得呀,这个老哥一天输了 2800
在后台翻了半天没找到上传点,先放着
回到另一路 sqlmap 看看,确定存在注入,已经在慢慢跑库名了
跑出 16 个库,根据名字猜 RYPlatformManagerDB 库可能存着管理员的相关信息
跑表名
python sqlmap.py -r qipai.txt --tables -D RYPlatformManagerDB
翻了半天就找到一个管理员的账号密码,就是前面 bp 爆破出来的那个,还有一些用户的信息,没啥更有价值的
python sqlmap.py -r qipai.txt --is-dba
是 DBA 权限,尝试拿 shell,mssql 数据库直接用 sqlmap 爆破路径就行了
python sqlmap.py -r qipai.txt --os-shell
用的盲注,时间较慢,经过漫长的等待终于成功拿 shell,渗透呐,表面上是个技术活,实际上是个体力活
当前用户权限很小,只是个 mssql 数据库权限
Systeminfo 查看一下系统信息,可以看到系统是 64 位的 Windows server 2008
Cobaltstrike 生成攻击载荷,再目标机器上用 powershell 加载,目标机器成功上线
net user 查看用户
tasklist 查看进程,应该没有装杀软
net start 查看已开启的服务,可以看到防火墙是开启的,所以前面 nmap 扫描 445 等端口被过滤
关闭防火墙,额还没提权
4 提权/维权
前面得知这个机器是 windows server 2008,尝试用土豆提权(MS16-075)
执行后稍等了一会儿,比较幸运,这个机器没打补丁,一次就提权成功,拿到 system 权限,开始为所欲为
进入文件管理,能看到前面信息收集时的 test.html 文件
netstat -ano 看一下端口开放情况,3389 没有开
手动开启一下
可以访问远程桌面了
cobaltstrike 操作我不是很熟练,还是用 metasploite 吧,通过 cs 上传一个 msf 生成的马,msf 开启监听
注:cs 可以直接派生 shell 给 msf,但是当时我尝试的老半天 msf 一直没有返回 session,所以才无奈先手动上传一个 msf 的马曲线救国
msf 开启监听
在 cs 上运行上传的马
msf 成功拿到 shell,是继承的 system 权限
查看密码哈希,不能获取,因为msf的这个马是32位的,系统是64位的
ps 查看进程,在进程中找一个以 system 权限运行的 64 位的程序,迁移进程后再获取哈希
到在线破解哈希的网站查一下 administrator 的密码,密码不算复杂,几秒钟就查到了
成功登录远程桌面
留两个后门,一个webshell,一个开机自启的nc用来反弹shell
5 清理痕迹/撤退
meterpreter 的 clearv 命令一键清除
或者手动删除 Windows 日志
6 总结
7 实验推荐--利用sqlmap辅助手工注入
通过本实验的学习,你能够了解sqlmap,掌握sqlmap的常用命令,学会使用sqlmap辅助手工完成注入。
8 声明
本文仅限于技术讨论与分享,严禁用于非法途径。若读者因此作出任何危害网络安全行为后果自负,与蚁景科技及原作者无关。