在 Ajax 上创建 Nodejs 本地反向 shell?

Creating a Nodejs local reverse shell over Ajax?

我正在尝试制作一个小型节点可执行文件,它能够打开本地 shell 并向 HTTP 服务器发送和接收命令。

逻辑上看起来很简单,但是实现它的最佳实践是什么?

  1. 使用 Node 打开命令行 API
  2. 监听来自服务器的命令 URL /xmlrpc-urlhere/
  3. 当通过 Ajax 或 WebRTC 接收命令时?在命令行中执行
  4. POST 返回给用户的命令行响应

这 shell 将用于管理目的。

我想不出一个好的方法,我检查了 npm,似乎有一些用于 node js 的基本命令行模块,但没有一个具有此功能。

npm 模块 commanderrequest 应该可以解决问题。为了帮助您入门,这里有一个简单的命令行工具,它可以搜索 google 并将原始 HTML 转储到控制台。

例如:

./search.js puppies

#!/usr/bin/env node

var program = require('commander');
var request = require('request');
var search;

program
    .version('0.0.1')
    .arguments('<query>')
    .action(function(query) {
        search = query;
    });

program.parse(process.argv);

if (typeof search === 'undefined') {
    console.error('no query given!');
    process.exit(1);
}

var url = 'http://google.com/search?q=' + encodeURIComponent(search);
request(url, function(err, res, body) {
    if (err) {
        console.error(err);
        process.exit(1);
    }

    console.log('Search result:');
    console.log(body);
    process.exit(0);
});