黑客网站渗透入侵破解拿权限
10.4K subscribers
2.39K photos
108 links
Download Telegram
在org.apache.catalina.core.ApplicationContext#addFilter(java.lang.String, java.lang.String, javax.servlet.Filter)中,需满足this.context.getState()值为LifecycleState.STARTING_PREP,否则不能继续向下注入Filter。此操作可通过反射进行设置。

完成addFilter()操作后,通过org.apache.catalina.core.ApplicationFilterRegistration的addMappingForServletNames()方法为该Filter设置路由。最后,别忘了再通过反射将该context的state属性恢复原值。由此完成Springboot之Filter型内存马的注入。
这里需要注意的是,在一些场景下,比如通过jndi利用时,有可能当前线程Thread.currentThread()并不是http类的线程,因此需要遍历所有线程,在里面找与http相关的符合需要的线程。

注入内存马的代码在mem.jar中。如何制作mem.jar包

关于Spring Boot Actuator相关利用方式有很多,但都跟配置相关,如大部分情况需要开启refresh接口,甚至在利用restart接口时更要慎重,否则利用不慎则会对目标应用异常退出。另外,根据目标应用实际暴露的endpoint以及mbeans,可能存在其他利用方式。

/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我
@MoA_Ke
16🔥13
EDR绕过

blockdlls
在cs3.14版本过后引入了blockdlls命令,用于保护beacon生成的任何子进程不加载非 Microsoft 签名的 dll

这里使用监听新增一个子会话

可以看到rundll32.exe进程有了Signatures restricted (Microsoft only)标志

UpdateProcThreadAttribute
cs的实现在UpdateProcThreadAttribute函数,UpdateProcThreadAttribute的Attribute参数0x20007实际上解析为PROC_THREAD_ATTRIBUTE_MITIGATION_POLICY,而0x100000000000解析为PROCESS_CREATION_MITIGATION_POLICY_BLOCK_NON_MICROSOFT_BINARIES_ALWAYS_ON。因此,cs 在这里所做的是使用CreateProcessAPI 调用以及STARTUPINFOEX包含缓解策略的结构,在这种情况下,用于阻止非 Microsoft签名的 DLL

自己通过代码实现

SetProcessMitigationPolicy
这个api可以给当前线程添加 Signatures restricted (Microsoft only) 标识

代码如下

void blockdll_thread()
{
PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY sp = {};
sp.MicrosoftSignedOnly = 1;
SetProcessMitigationPolicy(ProcessSignaturePolicy, &sp, sizeof(sp));
}

生成一下可以看到,首先还是注入一下cs的dll失败,然后注入user32.dll成功
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我
@MoA_Ke
15🔥14
NtCreateUserProcess直接创建进程
也可疑直接调用NtCreateUserProcess创建进程,通过设置参数为PROCESS_CREATION_MITIGATION_POLICY_BLOCK_NON_MICROSOFT_BINARIES_ALWAYS_ON来达到添加流程缓解措施的效果

检测
使用powershell可以看到当前MicrosoftSignedOnly标志的进程

弊端
有一些EDR拥有微软签名,其dll就能够注入到开启了blockdlls保护的进程,如@SEKTOR7 Institute发现的Crowdstrike Falcon就可以不受影响,那么我们还可以通过ACG来进行保护

ACG
ACG即漏洞利用保护参考,其作为一个可选功能添加进了Windows操作系统中,它可以用来检测和防止下列情况的出现

现有代码被恶意修改

向一个数据段中写入并执行代码

为了实现这两个目标,ACG会强制执行这条规则:内存不能同时拥有写入权限和执行权限。更通俗点来说,开启了 ACG 保护的进程,就不能再用 VirtualProtect、VirtualAlloc等来获得 PAGE_EXECUTE_READWRITE的内存,这里不赘述ACG的原理了,这里我们探究其实现

要开启ACG,使用到的是SetProcessMitigationPolicy这个API,第一个参数指定要设定的缓解策略类型,第二个参数根据第一个参数指定不同的 Policy 数据,第三个参数指定第二个参数的长度

我们首先在不开启ACG之前用VirtualAlloc申请一块RWX内存,然后再开启ACG,再使用VitualAlloc申请一块内存能否申请成功,再使用VirtualProtect看能否更改内存属性

/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我
@MoA_Ke
17🔥17👍1
域内特权提升 - 将 Certifried 与 KrbRelay 结合利用

默认情况下,域用户可以注册 User 证书模板,域计算机可以注册 Machine 证书模板。两个证书模板都允许客户端身份验证。

当用户账户申请 User 模板证书时,用户帐户的用户主体名称(User Principal Name,UPN)将嵌入到证书中以进行识别。而对于计算机账户来说,其没有 UPN 属性。因此,当计算机账户申请证书时,计算机账户的 dNSHostName 属性值将嵌入到证书中以进行识别。当我们使用证书进行身份验证时,KDC 会尝试将 dNSHostName 从证书映射到目标计算机。

Machine 证书模板的 msPKI-Certificate-Name-Flag 属性存在一个 CT_FLAG_SUBJECT_ALT_REQUIRE_DNS 标志位,其指示 CA 将来自 Active Directory 中请求者计算机对象的 dNSHostName 属性值添加到已颁发证书的主题备用名称中。

利用该漏洞的关键是,攻击者拥有域标准用户权限,并通过该用户向域内添加符合漏洞利用条件的机器账户。在未加入域的系统中,我们可以通过简单修改 Impacket 套件中的 addcomputer.py

然后运行 addcomputer.py 即可成功添加符合条件的计算机账户
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我
@MoA_Ke
新型攻击利用Windows快捷方式文件传播REMCOS后门

网络安全公司Point Wild的Lat61威胁情报团队发现了一种新型多阶段恶意软件攻击活动。攻击者通过精心设计的Windows快捷方式(LNK)文件传播危险的远程访问木马(RAT)REMCOS。LNK文件是Windows系统中指向程序或文件的简单指针。

Point Wild首席技术官Zulfikar Ramzan博士主导的研究显示,攻击始于看似无害的快捷方式文件(可能通过邮件附件传播),文件名通常伪装成"ORDINE-DI-ACQUIST-7263535"等形式。当用户点击该文件时,LNK文件会在后台静默执行PowerShell命令。PowerShell本是Windows用于任务自动化的强大命令行工具,但在此次攻击中被用于下载/解码隐藏恶意载荷。

攻击的隐蔽层级设计
该攻击活动采用多层伪装实现隐蔽性。初始PowerShell命令执行后,会从远程服务器获取Base64编码的载荷。Base64是将二进制数据编码为文本的常用方法,攻击者借此将恶意代码隐藏在看似普通的数据中。

下载解码后的载荷会以程序信息文件(.PIF)形式启动,这是一种常用于旧版程序的可执行文件类型。攻击者将其伪装成"CHROME.PIF"仿冒合法程序。最终阶段将安装REMCOS后门,使攻击者完全控制受害系统。该恶意软件还会在%ProgramData%目录下创建Remcos文件夹存放键盘记录日志,确保自身持久化驻留。
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我
@MoA_Ke
Tomcat技术栈

■ Tomcat 实现的 2 个核心功能:

1.处理 Socket 连接,负责网络字节流与 Request 和 Response 对象的转化。

2.加载并管理 Servlet ,以及处理具体的 Request 请求。

所以 Tomcat 设计了两个核心组件连接器(Connector)和容器(Container)。

连接器负责对外交流,容器负责内部处理

Tomcat为了实现支持多种 I/O 模型和应用层协议,一个容器可能对接多个连接器,就好比一个房间有多个门。

Server 对应的就是一个 Tomcat 实例。

Service 默认只有一个,也就是一个 Tomcat 实例默认一个 Service。

Connector:一个 Service 可能多个 连接器,接受不同连接协议。

Container: 多个连接器对应一个容器,顶层容器其实就是 Engine。

每个组件都有对应的生命周期,需要启动,同时还要启动自己内部的子组件,比如一个 Tomcat 实例包含一个 Service,一个 Service 包含多个连接器和一个容器。而一个容器包含多个 Host, Host 内部可能有多个

Context 容器,而一个 Context 也会包含多个 Servlet,所以 Tomcat 利用组合模式管理组件每个组件,对待过个也想对待单个组一样对待。整体上每个组件设计就像是「俄罗斯套娃」一样。

/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我
@MoA_Ke
.Processor组件

Processor 用来实现 HTTP 协议,Processor 接收来自 EndPoint的 Socket,读取字节流解析成 Tomcat Request和 Response对象,并通过 Adapter将其提交到容器处理,Processor是对应用层协议的抽象。

从图中我们看到,EndPoint 接收到 Socket 连接后,生成一个 SocketProcessor 任务提交到线程池去处理,SocketProcessor 的 Run 方调用 HttpProcessor 组件去解析应用层协议,Processor 通过解析生成 Request 对象后,会调用 Adapter 的 Service 方法,方法内部通过 以下代码将请求传递到容器中。

/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我
@MoA_Ke