网络攻击是指在不影响其他功能的情况下进行的计算机间谍活动和数据窃取。主要目标是访问网络、执行侦察、渗透目标系统并获取所需信息。以下是我们执行此类任务的顶级渗透测试工具。
破解地图执行,CrackMapExec 是一款针对 Windows/Active Directory 环境的一体化渗透测试工具包。它可以枚举登录用户、自动将恶意代码注入内存、将收集到的凭据存储在数据库中并利用其他漏洞。
Metasploit是一个用于调查网络和服务器上的系统漏洞的渗透测试框架。它包含大约 250 个后利用模块,包括用于键盘记录、枚举以及远程代码注入和执行的模块,请msfrpcd -h在终端中运行命令“
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
破解地图执行,CrackMapExec 是一款针对 Windows/Active Directory 环境的一体化渗透测试工具包。它可以枚举登录用户、自动将恶意代码注入内存、将收集到的凭据存储在数据库中并利用其他漏洞。
Metasploit是一个用于调查网络和服务器上的系统漏洞的渗透测试框架。它包含大约 250 个后利用模块,包括用于键盘记录、枚举以及远程代码注入和执行的模块,请msfrpcd -h在终端中运行命令“
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
❤13🔥12
通过 X-Forwarded-Scheme 标头进行缓存投毒 DoS
赏金:3,000
我很快就想起了一个使用缓存服务器和 Ruby on Rails 的私人项目资产
要求:
GET /?xxx HTTP/2
主机:已编辑
X-Forwarded-Scheme:http
...
如果您要测试这一点,您应该始终使用“缓存破坏者”(?anything=x),在这种情况下,我使用了(?xxx),这样我就不会错误地毒害其他用户。
回复:
HTTP/2 301 永久移动
日期:2022 年 1 月 19 日星期三 17:16:13 GMT
内容类型:text/html
位置:已编辑
通过:1.1 vegur
Cf-Cache-Status:HIT
年龄:3
如果攻击者对缓存服务器进行计时并毒害 https://redacted/
用户请求 https://redacted/ 时的响应将是
HTTP/2 301 已永久移动
Cf-Cache-Status:HIT
他们将无法访问https://redacted/,因为攻击者保存了
301 重定向,并且在缓存刷新之前不会加载。
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
赏金:3,000
我很快就想起了一个使用缓存服务器和 Ruby on Rails 的私人项目资产
要求:
GET /?xxx HTTP/2
主机:已编辑
X-Forwarded-Scheme:http
...
如果您要测试这一点,您应该始终使用“缓存破坏者”(?anything=x),在这种情况下,我使用了(?xxx),这样我就不会错误地毒害其他用户。
回复:
HTTP/2 301 永久移动
日期:2022 年 1 月 19 日星期三 17:16:13 GMT
内容类型:text/html
位置:已编辑
通过:1.1 vegur
Cf-Cache-Status:HIT
年龄:3
如果攻击者对缓存服务器进行计时并毒害 https://redacted/
用户请求 https://redacted/ 时的响应将是
HTTP/2 301 已永久移动
Cf-Cache-Status:HIT
他们将无法访问https://redacted/,因为攻击者保存了
301 重定向,并且在缓存刷新之前不会加载。
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
🔥14❤12
libmalloc初探——TinyHeap
环境与调试方式
在MacOS 11中引入了动态链接库保存系统,各个系统动态链接库不会以文件的形式保存在文件系统中,文件系统中也不存在各个系统动态链接库副本,不象我们去研究macos的堆以及相关使用。网上有对MacOS1111的动态链接库保存的过程,有兴趣的小伙伴可以尝试一下。本文主要分析在MacOS10.15.7下的libmalloc-283.100.6之后。
MacOS可以通过虚拟机进行安装,MacOS虚拟机安装的资料在网上很充分。
在MacOS上安装使用GDB还是比较麻烦的,推荐使用LLDB。LLDB是Xcode默认的调试器,命令与使用与GDB也比较相似。相比于GDB,LLDB可能插件可能还不够完善,这里推荐Voltron和lldbinit。
小堆
在Tiny和Small中分配申请的最小单位称为Quantum,Quantum在Tiny堆中的大小为0x10个字节,在Small堆中的大小为0x200字节。申请返回的堆块大小都为Quantum大小的整数倍。
微小区域
与Linux下的通过在申请的chunk前添加头部记录当前chunk的信息不同,在libmalloc中申请多大的空间就返回多大的空间,而相关信息的记录则通过region来完成。同时每个微小区域包含64504个块,每个块的大小为一个Quantum(0x10)。
Region具体是如何判断当前Region中哪些块可用哪些块不可用呢?主要是通过region结构中的位图(即结构体中对)来进行判断,位图实际上由header bitmap和inuse bitmap组成组成,其中每一个bit都分别用于记录所对应block的分配情况以及释放与否。大致的规则如下:
1.如果某个区域已经被使用,那么这块区域的第一个block在header bitmap和inuse bitmap中对应的值都是1。
2.如果一块区域是空闲的,那么这块区域的第一个块在 header 位图和 inuse 位图中对应的值分别是 1 和 0。
3. 其他情况下,表头位图均为0。
4. 其他情况下,使用位图的值无关要紧,任何值都需要。
块重叠攻击
首先申请四个chunk,然后依次释放p2以及p4,此时p2位于freelist[4]中,p4位于服务器中。
然后将p2的msize位由59,然后依次释放p1以及p3,此时p3于缓存中,p2会被置入freelist中之前,会与p2合并,但由于p2的msize被修改成9,合并后p1的msize等于0xc,实际上合并了p2以及p3,从而造成了堆块重叠。此时申请大小为0xc0和0x40的chunk,即可通过对大小为0xc0 chunk的修改实现对0x40 chunk的修改。
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
环境与调试方式
在MacOS 11中引入了动态链接库保存系统,各个系统动态链接库不会以文件的形式保存在文件系统中,文件系统中也不存在各个系统动态链接库副本,不象我们去研究macos的堆以及相关使用。网上有对MacOS1111的动态链接库保存的过程,有兴趣的小伙伴可以尝试一下。本文主要分析在MacOS10.15.7下的libmalloc-283.100.6之后。
MacOS可以通过虚拟机进行安装,MacOS虚拟机安装的资料在网上很充分。
在MacOS上安装使用GDB还是比较麻烦的,推荐使用LLDB。LLDB是Xcode默认的调试器,命令与使用与GDB也比较相似。相比于GDB,LLDB可能插件可能还不够完善,这里推荐Voltron和lldbinit。
小堆
在Tiny和Small中分配申请的最小单位称为Quantum,Quantum在Tiny堆中的大小为0x10个字节,在Small堆中的大小为0x200字节。申请返回的堆块大小都为Quantum大小的整数倍。
微小区域
与Linux下的通过在申请的chunk前添加头部记录当前chunk的信息不同,在libmalloc中申请多大的空间就返回多大的空间,而相关信息的记录则通过region来完成。同时每个微小区域包含64504个块,每个块的大小为一个Quantum(0x10)。
Region具体是如何判断当前Region中哪些块可用哪些块不可用呢?主要是通过region结构中的位图(即结构体中对)来进行判断,位图实际上由header bitmap和inuse bitmap组成组成,其中每一个bit都分别用于记录所对应block的分配情况以及释放与否。大致的规则如下:
1.如果某个区域已经被使用,那么这块区域的第一个block在header bitmap和inuse bitmap中对应的值都是1。
2.如果一块区域是空闲的,那么这块区域的第一个块在 header 位图和 inuse 位图中对应的值分别是 1 和 0。
3. 其他情况下,表头位图均为0。
4. 其他情况下,使用位图的值无关要紧,任何值都需要。
块重叠攻击
首先申请四个chunk,然后依次释放p2以及p4,此时p2位于freelist[4]中,p4位于服务器中。
然后将p2的msize位由59,然后依次释放p1以及p3,此时p3于缓存中,p2会被置入freelist中之前,会与p2合并,但由于p2的msize被修改成9,合并后p1的msize等于0xc,实际上合并了p2以及p3,从而造成了堆块重叠。此时申请大小为0xc0和0x40的chunk,即可通过对大小为0xc0 chunk的修改实现对0x40 chunk的修改。
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
❤13🔥12
SpringBoot Actuator之 logging.config grovvy rce分析及内存马注入
Spring boot最经典的漏洞莫过于由于配置不当导致Actuator的相关路由暴露从而导致信息泄露以及各种远程命令执行漏洞。根据spingboot官方文档,以spring-boot 2.1.10版本为例,对于web应用程序来说,以下端口默认是开启的。
具体开放端口可通过management.endpoints.web.exposure.include=进行配置。一些公开的常用利用链包括spring cloud SnakeYAML RCE,通过设置 spring.cloud.bootstrap.location属性加载外部恶意 yml 文件和jolokia logback进行jndi利用。在整理Springboot关于Actuator的利用时,注意到groovy脚本执行的利用方式,以下对该漏洞利用原理进行分析
设置logging.config属性执行groovy脚本
根据springboot相关文档说明:可通过Spring 环境属性“logging.config”进一步设置配置文件的位置。
同样首先通过/actuator/env接口修改logging.config的属性值
然后通过/actuator/restart接口重启应用程序,使之重新加载修改到环境属性中
关键代码在org.springframework.boot.context.logging.LoggingApplicationListener#initialize()方法中。
初始化Springboot应用程序的logging system。
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
Spring boot最经典的漏洞莫过于由于配置不当导致Actuator的相关路由暴露从而导致信息泄露以及各种远程命令执行漏洞。根据spingboot官方文档,以spring-boot 2.1.10版本为例,对于web应用程序来说,以下端口默认是开启的。
具体开放端口可通过management.endpoints.web.exposure.include=进行配置。一些公开的常用利用链包括spring cloud SnakeYAML RCE,通过设置 spring.cloud.bootstrap.location属性加载外部恶意 yml 文件和jolokia logback进行jndi利用。在整理Springboot关于Actuator的利用时,注意到groovy脚本执行的利用方式,以下对该漏洞利用原理进行分析
设置logging.config属性执行groovy脚本
根据springboot相关文档说明:可通过Spring 环境属性“logging.config”进一步设置配置文件的位置。
同样首先通过/actuator/env接口修改logging.config的属性值
然后通过/actuator/restart接口重启应用程序,使之重新加载修改到环境属性中
关键代码在org.springframework.boot.context.logging.LoggingApplicationListener#initialize()方法中。
初始化Springboot应用程序的logging system。
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
❤14🔥13
利用spring cloud SnakeYAML利用注入Springboot内存马
对于Springboot来说,不能通过上传文件getshell,因此注入内存马技术对springboot来说很重要。对于springboot来说,根据内存马类型可大致分为filer型,Interceptor型,controller型。由于springboot在处理过程中先后顺序的差别(先经filter处理,然后到controller处理,再到Interceptor拦截器处理)。由于对权限控制的考虑,优先注入Filter型内存马。
Springboot内存吗注入思路:首先获取应用上下文ApplicationContext,对于内置服务器是tomcat的springboot应用来说,应用上下文是org.apache.catalina.core.ApplicationContextFacade类。通过org.apache.catalina.core.ApplicationContextFacade的addFilter()方法注入自定义Filter。
因此重点是如何获取应用上下文呢?对于tomcat来说,可以通过request对象——org.apache.catalina.connector.Request类的getServletContext()方法获取。
因此现在又把目光放在如何获取request对象。一般从线程入手。通过调试,可通过Thread.currentThread().threadLocals.table获取线程中与request对象相关的对象,如下图所示,这里通过Thread.currentThread().threadLocals.table[12]的value可获取request对象。
因此,进一步可通过((ServletRequestAttributes) Thread.currentThread().threadLocals.table[12].value).request.getServletContext();获取上下文环境,进而利用该上下文对象org.apache.catalina.core.ApplicationContextFacade调用addFilter()完成内存马注入。
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
对于Springboot来说,不能通过上传文件getshell,因此注入内存马技术对springboot来说很重要。对于springboot来说,根据内存马类型可大致分为filer型,Interceptor型,controller型。由于springboot在处理过程中先后顺序的差别(先经filter处理,然后到controller处理,再到Interceptor拦截器处理)。由于对权限控制的考虑,优先注入Filter型内存马。
Springboot内存吗注入思路:首先获取应用上下文ApplicationContext,对于内置服务器是tomcat的springboot应用来说,应用上下文是org.apache.catalina.core.ApplicationContextFacade类。通过org.apache.catalina.core.ApplicationContextFacade的addFilter()方法注入自定义Filter。
因此重点是如何获取应用上下文呢?对于tomcat来说,可以通过request对象——org.apache.catalina.connector.Request类的getServletContext()方法获取。
因此现在又把目光放在如何获取request对象。一般从线程入手。通过调试,可通过Thread.currentThread().threadLocals.table获取线程中与request对象相关的对象,如下图所示,这里通过Thread.currentThread().threadLocals.table[12]的value可获取request对象。
因此,进一步可通过((ServletRequestAttributes) Thread.currentThread().threadLocals.table[12].value).request.getServletContext();获取上下文环境,进而利用该上下文对象org.apache.catalina.core.ApplicationContextFacade调用addFilter()完成内存马注入。
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
🔥29❤13
在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
完成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