THMLivingOfftheLand
Introduction什么是“靠土地为生”?
Living Off the Land 是红队社区中的一个流行术语,该名称取自现实生活,即靠吃土地上的食物为生。同样,对手和恶意软件创建者也会利用目标计算机的内置功能。 - 在工具和公用事业中。Living Off the Land 一词于 2013 年在 DerbyCon3 上引入,并在红队社区从此成为一种经常使用和流行的技术。
这些内置工具在目标系统或网络功能内执行各种常规活动;但是,它们越来越多地被使用和滥用,例如,使用CertUtil将恶意文件下载到目标计算机的工具。
主要想法是使用微软签名的程序、脚本和库来融入并逃避防御控制,红队人员不希望在目标上执行交战活动时被检测到,因此使用这些工具可以更安全地保持其隐身性。
以下是靠土地生活的一些类别:
侦察
文件操作
任意代码执行
横向运动-安全产品绕过
学习目标
了解红队活动的“Living Off the Land”一词。
了解 LOLBAS 项目以及如何使用它。
了解并应用红队活动中使用的技术。
房间先决条件
一般黑客技术的基本知识。
完成Jr.渗透测试仪学习路径。
T ...
THM免杀学习EvadingLoggingandMonitoring
Introduction攻击者路径中最大的障碍之一是日志记录和监控,与防病毒和 EDR(Endpoint Dection and Response)解决方案不同,日志记录创建了一个解决方案。可以分析恶意活动的活动的物理记录。
设备的监控方式取决于公司的环境和偏好。通常,监控解决方案将从主机设备开始,收集应用程序或事件日志。它们可以保留在设备上或发送到事件收集器/转发器,一旦它们离开设备,防御团队就会决定如何聚合它们;这通常是使用索引器和 SIEM (Security Information and Event Manager) 来完成的。
一旦从设备上获取日志,攻击者可能没有太多控制权,但可以控制设备上的内容及其获取方式。攻击者的主要目标是由 ETW(Event Tracing for Windows) 管理和控制的事件日志。
该房间将解决事件跟踪及其弱点,以允许攻击者逃避或禁用基于 ETW 的解决方案。
Learning Objectives
了解事件追踪的技术和实现。
了解如何创建规避 ETW 的技术。
学习如何将理论规避概念应用到代码中。
在开始本房间之前,请熟悉基本的 Wi ...
THM免杀学习RuntimeDetectionEvasion
Introduction随着 PowerShell <3 the Blue Team 的发布,Microsoft 发布了 AMSI(反恶意软件扫描接口),这是一种运行时监控解决方案,旨在阻止和监控持续的威胁。
学习目标
了解运行时检测的目的以及如何检测它们。
学习并应用绕过 AMSI 的技术。
了解常见的缓解措施和潜在的技术替代方案。
运行时检测措施在执行恶意代码时可能会导致许多麻烦和障碍,幸运的是,对于我们攻击者来说,我们可以滥用和利用多种技术和方法来绕过常见的运行时检测解决方案。
该房间将使用多位作者和研究人员的研究成果;所有功劳归各自所有者所有。
在开始本课程之前,建议您熟悉整个操作系统架构,但不要求具备 C# 和 PowerShell 的基本编程知识。
Runtime Detections执行代码或应用程序时,无论解释器如何,它几乎总是会流经运行时,这在使用 Windows API 调用和与 .NET 交互时最常见。 CLR (Common Language Runtime) 和 DLR (Dynamic Language Runtime) 是 .NET 的运行时, ...
24-7杂谈
在月初考完期末考之后彻底进入开摆模式,十分舒适。然后又完成了一首曲子还算是比较满意。开始了一些java开发的学习,不过内容实在是多,也觉得有些无聊于是又回到了域的学习。总体还是比较开摆的,那是因为宝可梦实在是太好玩了(笑
THMBypassingUAC
Introduction在这个房间中,我们将研究绕过 Windows 系统可用的安全功能(称为用户帐户控制 (UAC))的常见方法。此功能允许任何进程以低权限运行,无论运行它的人是谁(普通用户或管理员)。
从攻击者的角度来看,绕过 UAC 对于突破高度限制的环境并完全提升目标主机上的权限至关重要。在学习绕过技术的同时,我们还将研究可能触发的任何警报以及可能在目标系统上创建的蓝队可以检测到的工件。
房间目标
了解攻击者可以绕过 UAC 的不同技术。
房间先决条件建议在进入这个房间之前先浏览 Windows Internals。
User Account Control (UAC)什么是 UAC?用户帐户控制 (UAC) 是一项 Windows 安全功能,默认情况下强制任何新进程在非特权帐户的安全上下文中运行。此策略适用于任何用户启动的进程,包括管理员自己。这个想法是,我们不能仅仅依靠用户的身份来确定是否应该授权某些操作。
虽然这似乎违反直觉,但想象一下用户 BOB 在不知情的情况下从互联网下载恶意应用程序的情况。如果 BOB 是管理员组的一部分,他启动的任何应用程序都将继承其访问令牌权 ...
THMWindowsLocalPersistence
Introduction在目标的内部网络上获得第一个立足点后,您需要确保在真正获得关键信息之前不会失去对网络的访问权限。建立持久性是我们作为攻击者在获得网络访问权限时要完成的首要任务之一。简而言之,持久性是指创建替代方法来重新获得对主机的访问权限,而无需重新经历利用阶段。
您希望尽快建立持久性的原因有很多,包括:
重新利用并不总是可行的:一些不稳定的漏洞可能会在利用过程中杀死易受攻击的进程,让您有机会利用其中一些漏洞。
获得立足点很难重现:例如,如果您使用网络钓鱼活动获得首次访问权限,那么重复该活动以重新获得对主机的访问权限实在是太费力了。您的第二次活动可能也不会那么有效,让您无法访问网络。
蓝队正在追捕你:如果你的行为被检测到,任何用于获得你首次访问权限的漏洞都可能被修补。你在与时间赛跑!
虽然你可以保留一些管理员的密码哈希并重新使用它来重新连接,但你总是冒着这些凭据在某个时候被轮换的风险。此外,还有一些更狡猾的方法可以让你重新获得对受感染机器的访问权限,这让蓝队的日子更难过。
在这个房间里,我们将看看攻击者用来在 Windows 系统中建立持久性的最常见技术。在进入这个房间之前 ...
THMWindowsPrivilegeEscalation
Introduction在渗透测试期间,您通常会以非特权用户的身份访问某些 Windows 主机。非特权用户的访问权限有限,仅包括其文件和文件夹,并且无法在主机上执行管理任务,从而阻止您完全控制目标。
本房间涵盖了攻击者可用于在 Windows 环境中提升权限的基本技术,允许您使用主机上的任何初始非特权立足点升级到管理员帐户(如果可能)。
Windows Privilege Escalation简而言之,特权升级包括使用“用户 A”对主机的既定访问权限,并利用该访问权限通过滥用目标系统中的弱点来获取“用户 B”的访问权限。虽然我们通常希望“用户 B”拥有管理权限,但在某些情况下,我们需要升级到其他非特权帐户,然后才能真正获得管理权限。
获取对不同帐户的访问权限可能很简单,只需在某些粗心的用户未保护的文本文件或电子表格中找到凭据即可,但情况并非总是如此。根据情况,我们可能需要滥用以下一些弱点:
Windows 服务或计划任务上的错误配置
分配给我们帐户的过多权限
易受攻击的软件
缺少 Windows 安全补丁
在进入实际技术之前,让我们先看看 Windows 系统上的不同帐户类型。
...
Javaweb之Filter与Listener
简介
Filter,即过滤器,是JAVAEE技术规范之一,作用目标资源的请求进行过滤的一套技术规范,是Java Web项目中最为实用的技术之一
Filter接口定义了过滤器的开发规范,所有的过滤器都要实现该接口
Filter的工作位置是项目中所有目标资源之前,容器在创建HttpServletRequest和HttpServletResponse对象后,会先调用Filter的doFilter方法
Filter的doFilter方法可以控制请求是否继续,如果放行,则请求继续,如果拒绝,则请求到此为止,由过滤器本身做出响应
Filter不仅可以对请求做出过滤,也可以在目标资源做出响应前,对响应再次进行处理
Filter是GOF中责任链模式的典型案例
Filter的常用应用包括但不限于: 登录权限检查,解决网站乱码,过滤敏感字符,日志记录,性能分析… …
案例步骤
1.实现Filter接口
2.重写过滤方法
3.配置过滤器(web.xml,注解)
作用:
1.请求到达目标资源之前的功能代码(判断是否登录,权限是否满足)
2.放行代码
3.响应之前HttpServletResponse转换 ...
Javaweb之Servlet与MVC模式
简介Servlet (server applet) 是运行在服务端(tomcat)的Java小程序,从代码层面上来讲Servlet就是一个接口
用来接收、处理客户端请求、响应给浏览器的动态资源。在整个Web应用中,Servlet主要负责接收处理请求、协同调度功能以及响应数据。我们可以把Servlet称为Web应用中的控制器
1.tomcat接收到请求后,会将请求报文的信息转换一个HttpServletRequest对象,该对象中包含了请求中的所有信息请求行请求头请求体
2.tomcat同时创建了一个HttpServletResponse对象,该对象用于承装要响应给客户端的信息,后面,该对象会被转换成响应的报文响应行响应头响应体
3.tomcat根据请求中的资源路径找到对应的servlet,将servlet实例化,调用service方法,同时将HttpServIetRequest和HttpServIetResponse对象传入
开发流程(样例)1.用IDEA创建Servlet项目:先在”项目结构”中添加tomcat依赖,然后”添加框架支持”->”web应用”
2.重写servic ...
Javaweb之Tomcat
常见目录bin:该目录下存放的是二进制可执行文件,如果是安装版,那么这个目录下会有两个exe文件:tomcat10.exe、tomcat10w.exe,前者是在控制台下启动Tomcat,后者是弹出GUI窗口启动Tomcat;如果是解压版,那么会有startup.bat和shutdown.bat文件,startup.bat用来启动Tomcat,但需要先配置JAVA_HOME环境变量才能启动,shutdawn.bat用来停止Tomcat
conf:这是一个非常非常重要的目录,这个目录下有四个最为重要的文件:
server.xml:配置整个服务器信息。例如修改端口号。默认HTTP请求的端口号是:8080
tomcat-users.xml:存储tomcat用户的文件,这里保存的是tomcat的用户名及密码,以及用户的角色信息。可以按着该文件中的注释信息添加tomcat用户,然后就可以在Tomcat主页中进入Tomcat Manager页面了
<tomcat-users xmlns="http://tomcat.apache.org/xml" xmlns:xs ...
Javascript随手记
简介基于对象JavaScript是一种基于对象的脚本语言,它不仅可以创建对象,也能使用现有的对象。但是面向对象的三大特性:〖多态〗中,JavaScript能够实现封装,可以模拟继承,不支持多态,所以它不是一门面向对象的编程语言。弱类型JavaScript中也有明确的数据类型,但是声明一个变量后它可以接收任何类型的数据,并且会在程序执行过程中根据上下文自动转换类型事件驱动JavaScript是一种采用事件驱动的脚本语言,它不需要经过web服务器就可以对用户的输入做出响应。跨平台性JavaScript脚本语言不依赖于操作系统,仅需要浏览器的支持。因此一个JavaScript脚本在编写后可以带到任意机器上使用的浏览器支持JavaScript脚本浯言。目前JavaScript已被大多数的浏览器所支持。
引入方式内嵌式在head中(推荐)通过一对script标签定义脚本代码
引入外部脚本文件一个html中可以有多个script标签2一对scr土pt标签不能在引入外部js文件的同时定义内部脚本I3pt标签如果用于引入外部js文件,中间最好不要有任何字符包括空格和换行
对象创建创建对象的语法方式1 ...
CSS随手记
三种引入方式css层样式表(英文全称:(cascading style Sheets)能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力,简单来说,美化页面
行内式通过元素的style属性引入样式语法:style=”样式名:样式值;样式名:样式值:… …
缺点:代码复用度低;css样式代码和html结构代码交织在一起
内嵌式通过在head标签中的style标签定义本页面的公共样式通过选择器确定样式的作用元素
外部样式表将css代码单独放入一个.css文件中,哪个html需要这些代码就在head中通过link标签引入
<link href="css/btn.css" rel="stylesheet">
三大选择器元素选择器根据标签的没名字确定样式作为元素
语法:标签名{}
缺点:某些同名的元素不希望使用某些样式
ID选择器根据标签的id值确定样式的作用元素
缺点:id值有唯一性,只能作用于一个元素
class选择器根据元素的class书信那个值确定样式的作用元素
元素的的class属性值可以重复而且一个元素的clas ...