jsp文件加载shellcode上线cobaltstrike实现

​ 之前浏览github时候发现https://github.com/Ramos-dev/R9000/blob/master/README.md项目,作者实现了通过JAVA加载shellcode上线cobaltstrike的功能,因为关于JAVA加载shellcode上线cobaltstrike的文章和方法不是很多,其免杀的情况也不清楚,因此打算写一篇文章复现和分析如何通过JAVA加载shellcode上线cobaltstrike

​ 通过查阅资料,目前已有的方法是用过JNI和JNA来实现注入shellcode的,所以先了解下JNI。

注入冰蝎内存马实现

​ 通过之前的文章,我们了解了servlet和filter类型的内存马的实现,但是实现的是cmd马,在实战的过程中会有两个问题。1.不方便操作使用.2.比较难过WAF的查杀。本片文章我先解决一下第一个问题,将冰蝎马注入到内存。

冰蝎马实现

客户端实现

​ 由于静态分析比较麻烦,所以我选择直接debug调试,这里感谢https://github.com/Freakboy/Behinder给出了可以直接运行的冰蝎3.0源码,有了源码可以方便调试并且根据需求对冰蝎进行二次开发。

Tomcat内存马实现原理解析-servlet内存马

​ 除了通过Filter实现的内存马,也可以使用servlet,listener等实现内存马,不同的实现方式需要不同的查杀方式,有可能使用不同类型的内存马就可以绕过查杀,本片文章将带着大家了解servlet的入门、tomcat下servlet的实现、servlet内存马的实现。

servlet基础入门

什么是servlet?

servlet基本介绍

​ servlet是一个Java应用程序,运行在服务器端,用来处理客户端请求并作出响应的程序。servlet没有main方法不能独立运行,需要使用servlet容器比如tomcat来创建。当我们通过URL来访问servlet,首先会在servlet容器中判断该URL是由哪个servlet处理的,当前容器中是否有这个servlet实例,如果没有则创建servlet实例,并交由对应servlet的service方法来处理请求,处理结束后再返回web服务器。

Tomcat内存马实现原理解析

​ 目前webshell的免杀开始向内存中迁移,这样实现的好处显而易见,将webshell注入到内存中,一方面增加了查杀的难度,另一方面即使我们传入的文件被查杀,只要服务器不重启,我们仍然可以利用注入到内存中的shell控制主机,所以了解内存shell的实现是比较重要的。

动态注册Filter实现内存马

​ 要了解如何动态实现filter过滤器加载内存马,首先得了解几个问题

  • 什么是过滤器?
  • 为什么要使用过滤器?
  • 如何手动创建过滤器?
  • 如何动态注册过滤器?

JAVA反序列化回显学习

1
近年来出现的很多JAVA的漏洞都是无回显的漏洞,因此了解如何能让本身不回显的漏洞回显成为很多大佬研究的内容,本文将带着大家一起学习JAVA反序列化漏洞的回显方案。

defineClass

​ defineClass可以将byte[]转换为Class类,如下所示defineClass会接收我们传入的name,byte[],长度等参数,最终会返回给我们一个Class类的对象。

JAVA反射机制学习

1
在我们了解或者分析JAVA的反序列化漏洞时,一定绕过不过一个知识点,那就是JAVA的反射调用,所以这次我们专门写一篇文章和大家学习和了解一下JAVA的反射调用。	

基本介绍

为什么要引入反射机制?

​ 我们在编写程序时会有两种情况,第一种是我们明确知道编译时要使用的类和需要调用的方法的具体信息,这种情况下我们可以使用new xxx()来创建对象并使用。第二种是我们在编译的过程种不知道类或者对象的具体情况,只能通过程序运行时通过动态加载来判断。 比如类的名称和需要调用的属性放在配置文件中,这种配置方式降低了耦合性,我们在写JAVA WEB的过程中经常会遇到。

​ 对于第二种方式,我们就无法在编译时得知我们要使用的类的类型和调用的方法,所以引入了反射机制。

shiro rce漏洞分析

1
在最近这几年,我们在渗透的过程中经常会用到shiro的rce漏洞来打点,直到目前为止还经常会在一些项目或者HW中也会经常遇到shrio的rce,因此了解shiro的RememberMe反序列化导致的命令执行漏洞的原理是至关重要的,在本次分享中,我将和大家一起学习shiro RememberMe反序列化漏洞。

环境搭建

MSSQL注入绕过360主机卫士

参数污染

这个之前bypass写过,我这次测试的目标同样是可以使用参数污染来进行绕过的,会出现这个问题,是因为360主机卫士在处理post请求时,没有处理post请求中的get参数,所以可以使用这种方式来进行全局绕过。

关于sqlserver注入另类技巧的学习

​ 最近看到国外一篇关于mssql注入利用的文章,里面用了很多技巧我之前一直不知道,所以自己对这些技巧进行了复现,本次测试的环境为SQLSERVER2008

报错注入

​ 之前对于SQLSERVER报错注入理解仅限于类型转换导致的报错的利用方法,这次看到有很多新的函数可以进行报错注入利用,我把每个函数的测试单独取出来进行测试。

关于windows执行shellcode的方式学习

regsvr32

Regsvr32是什么?

Regsvr32命令用来向系统注册控件或者卸载控件的命令。

1
2
3
4
5
语法:Regsvr32 [/s][/u] [/n] [/i[:cmdline]] <dllname>
· /u:注销服务器;
· /i:调用DllInstall传递一个可选的[cmdline],当它与/u一起使用时,它会调用dll uninstall。
· /n:不要调用DllRegisterServer,此选项必须与/i一起使用
· / s :沉默,不显示消息框;

如何使用regsvr32执行exe?