webshell之API免杀

ScriptEngineManager命令执行免杀

ScriptEngineManager执行js代码

利用ScriptEngineManager可以执行js命令,但是由于一般情况下,即便能运行js代码也不一定能执行系统命令。因为一般情况下js执行系统命令主要是依靠两种方式,IE的ActiveX插件和node.js,然而ScriptEngineManager并非浏览器,很多内置函数都没有,导致很难执行系统命令。

ScriptEngineManager执行python代码

利用ScriptEngineManager可以执行python命令,想执行python代码的条件是目标机器存在python2的环境,不接安装了jython依赖,经过测试发现,利用jython并不能使用os.system,os.popen等命令执行函数,但一些文件操作还是可以利用的,以此很难利用

JNI执行c/c++代码

由于生成dll可能会出现问题,浪费大家时间,这里直接给出源代码以及生成命令Demo.h

Demo.h生成:

Demo.cpp

这里的Demo.cpp直接当模板改就行了

生成Dll:(注意路径)

Demo.class

按照正常套路,应该是直接移殖到jsp上,代码如下

但发现并不能正常运行,通过分析发现原因还是在DLL上,由于在生成DLL时类的全限定名,已经写死了,导致在jsp中定义的类的全限定名与DLL中的不一致,导致无法正常运行。为了时全限定名一致,笔者使用字节码进行加载,但可惜的是,本地方法(native)并本来通过反射调用。最后得出结论,jni是无法作为webshell来执行命令的

JShell

由于Jshell是jdk9及以上版本才有的新功能,因此适用面不是特别广,但依旧值得一试。

免杀效果:

总结:

本文讲解了一下,利用一些不常用的api进行命令执行,达到免杀的效果,但是由于利用条件苛刻,在实战中不太容易用到,不过这也不是无意义的,说不定在你一筹莫展的时候会给你带来新的思路。

相关推荐
青山是哪个青山8 小时前
LangChain 学习笔记(四):Message 与提示词模板
笔记·学习·langchain
我命由我123458 小时前
CesiumJS 笔记 - 获取容器中心点、Cartesian3 clone 方法、修改 Cartesian3 对象的高度
前端·javascript·css·前端框架·html·html5·js
抱抱宝9 小时前
Agent-study项目教程(03):手写 Mini-ReAct Agent(不依赖框架)
javascript·人工智能·gpt·react.js·prompt·agent
hsjiasb9 小时前
FreeRTOS学习(二十六)——动态内存管理heap_1到heap_5
stm32·单片机·学习·学习笔记·freertos
崇子嵘9 小时前
基于zynqMP15eg的linux驱动学习
学习
用户9385156350710 小时前
Next.js 笔记系统(二):Redis 数据服务与侧边栏组件拆分实战
javascript·全栈
上海安当技术11 小时前
固件签名与Secure Boot:安当CAS如何构建汽车固件信任链
网络·汽车·信任链·boot·secure·固件签名·安当cas
知识分享小能手12 小时前
线性代数学习教程,从入门到精通,向量组的线性相关性 — 完整知识点梳理(7)
学习·线性代数·机器学习
上海安当技术12 小时前
诊断接入认证:安当CAS如何堵住汽车网络安全的物理后门
网络·web安全·汽车·access·secure·安当cas·诊断接入认证
ze^012 小时前
【软考信息安全】第2章 网络攻击原理与常用方法
网络·web安全·网络安全