我正在开展一个大学项目,我必须评估开放WiFi网络的安全威胁。我选择了aircrack-ng工具进行渗透测试。我的项目使用Node js来提供丰富的功能。但是,我是初学者,正在努力解决问题。首先,我将提出我的代码然后提出问题。
var spawn = require('child_process').spawn;
var nic = "wlan2";
//obtain uid number of a user for spawing a new console command
//var uidNumber = require("uid-number");
// uidNumber("su", function (er, uid, gid) {
// console.log(uid);
// });
//Check for monitor tools
var airmon_ng= spawn('airmon-ng');
airmon_ng.stdout.on('data', function (data) {
nicList = data.toString().split("\n");
//use for data binding
console.log(nicList[0]);//.split("\t")[0]);
});
//airmon start at the nic(var)
var airmon_ng_start = spawn('airmon-ng',['start',nic]).on('error',function(err){console.log(err);});
airmon_ng_start.stdout.on('data', function (data) {
console.log(data.toString());
});
var airmon_ng_start = spawn('airodump-ng',['mon0']).on('error',function(err){console.log(err);});
airmon_ng_start.stdout.on('data', function (data) {
console.log(data.toString());
});
如上面的代码所示。我使用child_process.spwan来执行shell命令。在行" var airmon_ng_start = spawn(......"实际命令在终端中执行并且不会结束直到ctrl + c被命中并且它会定期更新Wi-列表Fi网络在附近可用。我的目标是识别我想测试漏洞的网络。但是当我执行命令时,进程进入无限循环并等待shell命令终止(直到被杀死才终止)此外,我希望使用stdout流来显示Wi-Fi发现和更新的新数据集。可能node.js专家为我提供了更好的方法吗?
2)我也以root身份执行一些命令。怎么可能这样做。现在我正在以root身份运行javascript。但是,在项目中我希望只以root身份执行一些命令,而不是以root身份执行整个js文件。有什么建议吗?
答案 0 :(得分:0)
//inherit parent`s stdout stream
var airmon_ng_start = spawn('airodump-ng',['mon0'],{ stdio: 'inherit' })
.on('error',function(err){console.log(err);});
找到了这个解决方案。简单地继承父母的标准