T-IK-half-B — Insights + Kartis, ½ day: SOC focus

Lab guide · Isla Mercantile Group · 195m net (09:00–12:30)

Schedule

TimeBlockMinutes
09:00I-M0 — Welcome & client brief15
09:15I-M2 — How Insights sees (live)45
10:00I-M3 — Dashboard tour40
10:40Break15
10:55I-M7 — Threat on the wire35
11:30K-2 — Is the C2 ours?35
12:05Quiz20
12:25Wrap-up5

Before you start

Log in

Your slip has your own credentials. Nobody shares a login; working in pairs on one login (one drives, one checks) is fine.

SystemAddressLoginUsed in
Eon Insightshttps://insights.edu.eoncore.nettraineeNNI-blocks, I-TAG, X1
Eon Centerhttps://center.edu.eoncore.nettraineeNN (org_admin of team-NN)C-blocks, K-blocks, X1
Center, Kartis pages onlyhttps://center.edu.eoncore.netkNN (kartis_only)K-blocks in the Insights + Kartis tracks
Isla public siteshttps://<vhost>.isla.edu.eoncore.netnoneI-M2, K-1, C6, I-M11

In Center, switch the UI to EN on first login. Your Center organisation team-NN has one customer: Isla Mercantile Group (team-NN). traineeNN and kNN are both members of team-NN and work on that same customer.

Shared environment

Isla at a glance

Client: Isla Mercantile Group, retail and payments, Curaçao. Internal names <host>.<app>.isla.test in 10.20.0.0/16; public names <vhost>.isla.edu.eoncore.net.

App (team)Internal hostsSubnetPublic vhosts
webshopshop, api, db, pay .webshop.isla.test10.20.1.0/24www, shop, api, pay
intranetsso, portal, cache .intranet.isla.test10.20.2.0/24intranet
paymentsgw, vpn, hsm .payments.isla.test10.20.3.0/24none
loyaltyapp, api, old .loyalty.isla.test10.20.4.0/24loyalty, loyalty-old

Hosts outside isla.test and isla.edu.eoncore.net are background noise. Search isla.test to hide them.

Client documents (handed out per block): client brief, ckm-intake.xlsx, register.xlsx, register-flawed.xlsx.


Exercises

I-M0 — Welcome & client brief

09:00 · 15 min

ExerciseTaskFinding
I-M0.1Log in to Insights; note the number of unique hosts on Home. Ask the Chat which hosts under isla.test have the lowest level. Center tracks: also log in to Center—

I-M2 — How Insights sees (live)

09:15 · 45 min

ExerciseTaskFinding
I-M2.1Note your source IP and the time. Browse to https://www.isla.edu.eoncore.net and https://pay.isla.edu.eoncore.net. Find your own handshakes in Handshakes (last 15 min, filter SNI); note TLS version, cipher, JA3F02
I-M2.2Compare your JA3 with a neighbour on the same browser and one on another browser—
I-M2.3 (full)Force a 3DES handshake with openssl (appendix B.1) and find it in InsightsF02

I-M3 — Dashboard tour

10:00 · 40 min

ExerciseTaskFinding
I-M3.1Hosts: filter insecure + weak, search isla.test, last 7 days. List host and levelF01, F02, F05, F07, F08, F13
I-M3.2HostDetails db.webshop.isla.test: worst TLS version, insecure suite, cert key. Why insecure, not weak?F01
I-M3.3Certificates, sort Valid until ascending: first Isla certificate, days left, hostF03

I-M7 — Threat on the wire

10:55 · 35 min

The trainer plays the beacon chapter at the start of the block.

ExerciseTaskFinding
I-M7.AHandshakes: find recent handshakes to an unknown external SNI. Note source, destination, SNI, JA3, fingerprint verdict. Measure the interval (appendix A.3). Standard/full: check the client for other traffic; write two or three sentences for a colleagueF10
I-M7.B (standard, full)Ask the Chat what the beacon means and what the SOC does now, with your own values; note the two most useful recommendationsF10

K-2 — Is the C2 ours?

11:30 · 35 min

ExerciseTaskFinding
K-2.1Look up the C2 domain and IP from I-M7 in Hosts, Domains, Certificates, DNS / Email and the Scorecard apex list. Part of Isla's perimeter? What do you ask the client?F10
K-2.2Central register → Generate draft, run Crypto posture, Findings with verdict rogue: name, issuer, since when, action, ownerF09
K-2.3In pairs, one line each for F10 and F09: whose asset, response owner, first three actions, message to the CISOF09, F10

Queries, live checks and templates

Queries

Run these through the Insights Chat. The Chat only accepts SELECT/WITH and rejects any query containing words such as INSERT, UPDATE, DELETE, ALTER, CREATE, REPLACE, SET anywhere in the text.

A.3 Beacon interval (I-M7.A)

SELECT src_ip, dst_ip, sni, ja3, count() AS beacons,
       arrayDifference(arraySort(groupArray(toUnixTimestamp(timestamp)))) AS intervals_s
FROM tls_hellos
WHERE sni = 'cdn-update-check.net'
GROUP BY src_ip, dst_ip, sni, ja3

Live checks

Against the Isla public sites. Always pass -servername: web-b routes by SNI, and a client without SNI lands on pay. OpenSSL 3 needs @SECLEVEL=0 in the cipher string for 3DES and TLS 1.0; drop :@SECLEVEL=0 on LibreSSL (openssl version tells you which one you have). Some Linux distributions block TLS 1.0 in the system crypto policy even with @SECLEVEL=0; B.1b shows whether yours does. If it does, use testssl.sh or pair with someone whose client can.

B.1 3DES on pay (I-M2.3, K-1.6, C6.1)

openssl s_client -connect pay.isla.edu.eoncore.net:443 -servername pay.isla.edu.eoncore.net \
  -tls1_2 -cipher 'DES-CBC3-SHA:@SECLEVEL=0' </dev/null