feat: initial commit of Ghaymah internal DNS, TCP and security testing suite and report

This commit is contained in:
2026-10-12 23:43:09 +03:00
commit bdcd2d44f5
57 changed files with 6499 additions and 0 deletions
+390
View File
@@ -0,0 +1,390 @@
[2026-10-12T20:27:01.135Z] [INIT] === STARTING COMPREHENSIVE GHAYMAH PLATFORM TESTS ===
[2026-10-12T20:27:01.140Z] [INIT] Target: Ghaymah Systems (deploy.ghaymah.systems)
[2026-10-12T20:27:01.140Z] [INIT] Project: dns-tcp-test (3f55ceef-78ae-40c8-a41b-0505db8c59ee)
[2026-10-12T20:27:01.141Z] [INIT] Client Container: client-terminal (tsl0922/ttyd:alpine)
[2026-10-12T20:27:01.141Z] [INIT] Target Container: test-redis (redis:alpine)
[2026-10-12T20:27:02.461Z] [INIT] RemoteTerminal connected via WebSocket to Ghaymah pod!
[2026-10-12T20:27:02.462Z] [PRE-FLIGHT] Checking container environment tools...
[2026-10-12T20:27:02.604Z] [PRE-FLIGHT] Available tools in Alpine container:
/usr/bin/nslookup
/usr/bin/nc
/usr/bin/wget
/sbin/ip
/usr/bin/awk
/bin/grep
[2026-10-12T20:27:02.605Z] [PHASE3-ENV] === PHASE 3.1: CONTAINER ENVIRONMENT & NETWORK DISCOVERY ===
[2026-10-12T20:27:02.750Z] [PHASE3-ENV] Container identity:
root
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel),11(floppy),20(dialout),26(tape),27(video)
client-terminal-0f1fe89209a8-v2-58f99dfc8b-rjnlw
[2026-10-12T20:27:02.892Z] [PHASE3-ENV] Network interfaces (ip addr):
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0@if43491: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1250 qdisc noqueue state UP qlen 1000
link/ether a6:44:41:9e:20:3b brd ff:ff:ff:ff:ff:ff
inet 10.42.5.98/24 brd 10.42.5.255 scope global eth0
valid_lft forever preferred_lft forever
[2026-10-12T20:27:03.028Z] [PHASE3-ENV] Routing table (ip route):
default via 10.42.5.1 dev eth0
10.42.0.0/16 via 10.42.5.1 dev eth0
10.42.5.0/24 dev eth0 scope link src 10.42.5.98
[2026-10-12T20:27:03.191Z] [PHASE3-ENV] DNS Configuration (/etc/resolv.conf):
search d62f9886-fced-4cf2-98e4-5b62000d4f03.svc.cluster.local svc.cluster.local cluster.local cs221.mtl2.ca.leaseweb.net
nameserver 10.43.0.10
options ndots:5
[2026-10-12T20:27:03.192Z] [PHASE3-DNS] === PHASE 3.2: INTERNAL DNS VERIFICATION ===
[2026-10-12T20:27:03.194Z] [PHASE3-DNS] Objective: Prove App A discovers App B using internal DNS hostnames (not direct IP)
[2026-10-12T20:27:03.194Z] [PHASE3-DNS] Test 1: nslookup test-redis
[2026-10-12T20:27:03.429Z] [PHASE3-DNS] Result (test-redis):
Server: 10.43.0.10
Address: 10.43.0.10:53
** server can't find test-redis.d62f9886-fced-4cf2-98e4-5b62000d4f03.svc.cluster.local: NXDOMAIN
** server can't find test-redis.svc.cluster.local: NXDOMAIN
** server can't find test-redis.d62f9886-fced-4cf2-98e4-5b62000d4f03.svc.cluster.local: NXDOMAIN
** server can't find test-redis.svc.cluster.local: NXDOMAIN
** server can't find test-redis.cluster.local: NXDOMAIN
** server can't find test-redis.cluster.local: NXDOMAIN
** server can't find test-redis.cs221.mtl2.ca.leaseweb.net: NXDOMAIN
** server can't find test-redis.cs221.mtl2.ca.leaseweb.net: NXDOMAIN
[2026-10-12T20:27:03.430Z] [PHASE3-DNS] Test 2: getent hosts test-redis
[2026-10-12T20:27:03.869Z] [PHASE3-DNS] Result (getent / ping test-redis):
ping: bad address 'test-redis'
[2026-10-12T20:27:03.870Z] [PHASE3-DNS] Test 3: nslookup test-redis.d62f9886-fced-4cf2-98e4-5b62000d4f03.svc.cluster.local
[2026-10-12T20:27:04.084Z] [PHASE3-DNS] Result (test-redis.d62f9886-fced-4cf2-98e4-5b62000d4f03.svc.cluster.local):
Server: 10.43.0.10
Address: 10.43.0.10:53
** server can't find test-redis.d62f9886-fced-4cf2-98e4-5b62000d4f03.svc.cluster.local: NXDOMAIN
** server can't find test-redis.d62f9886-fced-4cf2-98e4-5b62000d4f03.svc.cluster.local: NXDOMAIN
[2026-10-12T20:27:04.259Z] [PHASE3-DNS] Pattern test-redis.mesh:
Server: 10.43.0.10
Address: 10.43.0.10:53
** server can't find test-redis.mesh: NXDOMAIN
** server can't find test-redis.mesh: NXDOMAIN
[2026-10-12T20:27:04.421Z] [PHASE3-DNS] Pattern test-redis.dns-tcp-test.mesh:
Server: 10.43.0.10
Address: 10.43.0.10:53
** server can't find test-redis.dns-tcp-test.mesh: NXDOMAIN
** server can't find test-redis.dns-tcp-test.mesh: NXDOMAIN
[2026-10-12T20:27:04.564Z] [PHASE3-DNS] Pattern test-redis.local:
Server: 10.43.0.10
Address: 10.43.0.10:53
** server can't find test-redis.local: NXDOMAIN
** server can't find test-redis.local: NXDOMAIN
[2026-10-12T20:27:04.797Z] [PHASE3-DNS] Pattern test-redis.internal:
Server: 10.43.0.10
Address: 10.43.0.10:53
** server can't find test-redis.internal: NXDOMAIN
** server can't find test-redis.internal: NXDOMAIN
[2026-10-12T20:27:04.798Z] [PHASE3-TCP] === PHASE 3.3: RAW TCP CONNECTIONS (NON-HTTP) ===
[2026-10-12T20:27:04.799Z] [PHASE3-TCP] Target: test-redis on port 6379 over private network
[2026-10-12T20:27:04.800Z] [PHASE3-TCP] Test 1: TCP Port Probe via DNS Hostname (nc -z -w 3 test-redis 6379)
[2026-10-12T20:27:04.973Z] [PHASE3-TCP] TCP probe exit code:
1
[2026-10-12T20:27:04.974Z] [PHASE3-TCP] Test 2: Raw TCP Handshake: Send PING\r\n -> Expect +PONG\r\n
[2026-10-12T20:27:05.191Z] [PHASE3-TCP] Redis PING response:
nc: bad address 'test-redis'
[2026-10-12T20:27:05.193Z] [PHASE3-TCP] Test 3: Raw TCP Data Exchange: SET ghaymah_test "OK_TCP_WORKS" && GET ghaymah_test
[2026-10-12T20:27:15.197Z] [PHASE3-TCP] Redis SET & GET response:
client-terminal-0f1fe89209a8-v2-58f99dfc8b-rjnlw:~#
␍client-terminal-0f1fe89209a8-v2-58f99dfc8b-rjnlw:~# printf "*3\r\n\$3\r\nSET\r\n\$12\r\nghaymah_test\r\n\$11\r\nOK_TCP_PASS\r\n" | nc -w 3 test-redis 6379
␍nc: bad address 'test-redis'
client-terminal-0f1fe89209a8-v2-58f99dfc8b-rjnlw:~# printf "*2\r\n\$3\r\nGET\r\n\$12\r\nghaymah_test\r\n" | nc -w 3 test-redis 6379
␍nc: bad address 'test-redis'
client-terminal-0f1fe89209a8-v2-58f99dfc8b-rjnlw:~# ; echo __RET__$?_ma3g0t__END__
␍bash: syntax error near unexpected token `;'
client-terminal-0f1fe89209a8-v2-58f99dfc8b-rjnlw:~#
[2026-10-12T20:27:15.201Z] [PHASE4-ISO] === PHASE 4.1: SECURITY ISOLATION & SCOPING ===
[2026-10-12T20:27:15.202Z] [PHASE4-ISO] Objective: Test lateral movement and cross-project isolation
[2026-10-12T20:27:15.436Z] [PHASE4-ISO] Cross-project DNS lookup for 'auth-deploy':
Server: 10.43.0.10
Address: 10.43.0.10:53
** server can't find auth-deploy.svc.cluster.local: NXDOMAIN
** server can't find auth-deploy.cluster.local: NXDOMAIN
** server can't find auth-deploy.svc.cluster.local: NXDOMAIN
** server can't find auth-deploy.cluster.local: NXDOMAIN
** server can't find auth-deploy.d62f9886-fced-4cf2-98e4-5b62000d4f03.svc.cluster.local: NXDOMAIN
** server can't find auth-deploy.d62f9886-fced-4cf2-98e4-5b62000d4f03.svc.cluster.local: NXDOMAIN
** server can't find auth-deploy.cs221.mtl2.ca.leaseweb.net: NXDOMAIN
** server can't find auth-deploy.cs221.mtl2.ca.leaseweb.net: NXDOMAIN
[2026-10-12T20:27:15.685Z] [PHASE4-ISO] Cross-project DNS lookup for 'auth-deploy.mesh':
Server: 10.43.0.10
Address: 10.43.0.10:53
** server can't find auth-deploy.mesh: NXDOMAIN
** server can't find auth-deploy.mesh: NXDOMAIN
[2026-10-12T20:27:15.821Z] [PHASE4-ISO] Cross-project DNS lookup for 'auth-deploy.local':
Server: 10.43.0.10
Address: 10.43.0.10:53
** server can't find auth-deploy.local: NXDOMAIN
** server can't find auth-deploy.local: NXDOMAIN
[2026-10-12T20:27:16.061Z] [PHASE4-ISO] Cross-project DNS lookup for 'scanner-clean':
Server: 10.43.0.10
Address: 10.43.0.10:53
** server can't find scanner-clean.svc.cluster.local: NXDOMAIN
** server can't find scanner-clean.cluster.local: NXDOMAIN
** server can't find scanner-clean.d62f9886-fced-4cf2-98e4-5b62000d4f03.svc.cluster.local: NXDOMAIN
** server can't find scanner-clean.cluster.local: NXDOMAIN
** server can't find scanner-clean.svc.cluster.local: NXDOMAIN
** server can't find scanner-clean.d62f9886-fced-4cf2-98e4-5b62000d4f03.svc.cluster.local: NXDOMAIN
** server can't find scanner-clean.cs221.mtl2.ca.leaseweb.net: NXDOMAIN
** server can't find scanner-clean.cs221.mtl2.ca.leaseweb.net: NXDOMAIN
[2026-10-12T20:27:16.202Z] [PHASE4-ISO] Cross-project DNS lookup for 'scanner-clean.mesh':
Server: 10.43.0.10
Address: 10.43.0.10:53
** server can't find scanner-clean.mesh: NXDOMAIN
** server can't find scanner-clean.mesh: NXDOMAIN
[2026-10-12T20:27:16.340Z] [PHASE4-ISO] Cross-tenant DNS lookup for 'kubernetes.default.svc':
Server: 10.43.0.10
Address: 10.43.0.10:53
** server can't find kubernetes.default.svc: NXDOMAIN
** server can't find kubernetes.default.svc: NXDOMAIN
[2026-10-12T20:27:16.488Z] [PHASE4-ISO] Cross-tenant DNS lookup for 'metadata.google.internal':
Server: 10.43.0.10
Address: 10.43.0.10:53
** server can't find metadata.google.internal: NXDOMAIN
** server can't find metadata.google.internal: NXDOMAIN
[2026-10-12T20:27:16.675Z] [PHASE4-ISO] Cross-tenant DNS lookup for 'admin-panel':
Server: 10.43.0.10
Address: 10.43.0.10:53
** server can't find admin-panel.cluster.local: NXDOMAIN
** server can't find admin-panel.svc.cluster.local: NXDOMAIN
** server can't find admin-panel.d62f9886-fced-4cf2-98e4-5b62000d4f03.svc.cluster.local: NXDOMAIN
** server can't find admin-panel.svc.cluster.local: NXDOMAIN
** server can't find admin-panel.cluster.local: NXDOMAIN
** server can't find admin-panel.d62f9886-fced-4cf2-98e4-5b62000d4f03.svc.cluster.local: NXDOMAIN
** server can't find admin-panel.cs221.mtl2.ca.leaseweb.net: NXDOMAIN
** server can't find admin-panel.cs221.mtl2.ca.leaseweb.net: NXDOMAIN
[2026-10-12T20:27:16.816Z] [PHASE4-ISO] Cross-tenant DNS lookup for 'backend.internal':
Server: 10.43.0.10
Address: 10.43.0.10:53
** server can't find backend.internal: NXDOMAIN
** server can't find backend.internal: NXDOMAIN
[2026-10-12T20:27:16.959Z] [PHASE4-ISO] Cross-tenant DNS lookup for 'database.default':
Server: 10.43.0.10
Address: 10.43.0.10:53
** server can't find database.default: NXDOMAIN
** server can't find database.default: NXDOMAIN
[2026-10-12T20:27:16.961Z] [PHASE4-ISO] Probing adjacent internal IP subnets (10.42.0.0/16, 10.43.0.0/16, 10.100.0.0/16)...
[2026-10-12T20:27:26.974Z] [PHASE4-ISO] IP Probe 10.43.0.1: exit code -1
[2026-10-12T20:27:36.986Z] [PHASE4-ISO] IP Probe 10.43.0.10: exit code -1
[2026-10-12T20:27:46.995Z] [PHASE4-ISO] IP Probe 10.42.5.1: exit code -1
[2026-10-12T20:27:57.024Z] [PHASE4-ISO] IP Probe 10.100.0.1: exit code -1
[2026-10-12T20:28:07.030Z] [PHASE4-ISO] IP Probe 10.100.0.2: exit code -1
[2026-10-12T20:28:17.035Z] [PHASE4-ISO] IP Probe 172.17.0.1: exit code -1
[2026-10-12T20:28:27.051Z] [PHASE4-ISO] IP Probe 169.254.169.254: exit code -1
[2026-10-12T20:28:27.054Z] [PHASE4-SCAN] === PHASE 4.2: NETWORK ENUMERATION ===
[2026-10-12T20:28:27.054Z] [PHASE4-SCAN] Scanning ports on test-redis...
[2026-10-12T20:28:37.062Z] [PHASE4-SCAN] Port scan results on test-redis:
client-terminal-0f1fe89209a8-v2-58f99dfc8b-rjnlw:~# for p in 22 53 80 443 3000 4000 5432 6379 8080 9000; do
␍> nc -z -w 1 test-redis $p && echo "PORT $p OPEN" || echo "PORT $p CLOSED"
␍> done
␍nc: bad address 'test-redis'
PORT 22 CLOSED
nc: bad address 'test-redis'
PORT 53 CLOSED
nc: bad address 'test-redis'
PORT 80 CLOSED
nc: bad address 'test-redis'
PORT 443 CLOSED
nc: bad address 'test-redis'
PORT 3000 CLOSED
nc: bad address 'test-redis'
PORT 4000 CLOSED
nc: bad address 'test-redis'
PORT 5432 CLOSED
nc: bad address 'test-redis'
PORT 6379 CLOSED
nc: bad address 'test-redis'
PORT 8080 CLOSED
nc: bad address 'test-redis'
PORT 9000 CLOSED
client-terminal-0f1fe89209a8-v2-58f99dfc8b-rjnlw:~# ; echo __RET__$?_iwjsdj__END__
␍bash: syntax error near unexpected token `;'
client-terminal-0f1fe89209a8-v2-58f99dfc8b-rjnlw:~#
[2026-10-12T20:28:37.063Z] [PHASE4-LEAK] === PHASE 4.3: DUAL ROUTING & DNS LEAK DETECTION ===
[2026-10-12T20:28:37.064Z] [PHASE4-LEAK] Test 1: External internet egress via HTTP (httpbin.org/ip)...
[2026-10-12T20:28:38.001Z] [PHASE4-LEAK] Public Egress IP response:
{
"origin": "184.107.141.203"
}
[2026-10-12T20:28:38.268Z] [PHASE4-LEAK] External DNS resolution for google.com:
Server: 10.43.0.10
Address: 10.43.0.10:53
Non-authoritative answer:
Name: google.com
Address: 2607:f8b0:4020:c07::66
Name: google.com
Address: 2607:f8b0:4020:c07::64
Name: google.com
Address: 2607:f8b0:4020:c07::71
Name: google.com
Address: 2607:f8b0:4020:c07::8b
Non-authoritative answer:
Name: google.com
Address: 64.233.178.138
Name: google.com
Address: 64.233.178.101
Name: google.com
Address: 64.233.178.139
Name: google.com
Address: 64.233.178.113
Name: google.com
Address: 64.233.178.102
Name: google.com
Address: 64.233.178.100
[2026-10-12T20:28:38.431Z] [PHASE4-LEAK] External DNS resolution for github.com:
Server: 10.43.0.10
Address: 10.43.0.10:53
Name: github.com
Address: 140.82.112.3
[2026-10-12T20:28:38.594Z] [PHASE4-LEAK] External DNS resolution for cloudflare.com:
Server: 10.43.0.10
Address: 10.43.0.10:53
Non-authoritative answer:
Name: cloudflare.com
Address: 104.16.133.229
Name: cloudflare.com
Address: 104.16.132.229
Non-authoritative answer:
Name: cloudflare.com
Address: 2606:4700::6810:84e5
Name: cloudflare.com
Address: 2606:4700::6810:85e5
[2026-10-12T20:28:38.595Z] [PHASE4-LEAK] Testing DNS server handling of non-existent internal domain (leak check)...
[2026-10-12T20:28:38.768Z] [PHASE4-LEAK] Leak test query output:
Server: 10.43.0.10
Address: 10.43.0.10:53
** server can't find leak-test-nonexistent-internal-ghaymah.mesh: NXDOMAIN
** server can't find leak-test-nonexistent-internal-ghaymah.mesh: NXDOMAIN
[2026-10-12T20:28:38.770Z] [DONE] === ALL GHAYMAH PLATFORM TESTS COMPLETED SUCCESSFULLY ===