feat: initial commit of Ghaymah internal DNS, TCP and security testing suite and report
This commit is contained in:
@@ -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 ===
|
||||
Reference in New Issue
Block a user