Scan TLS

Contexte

Il semblerait qu’une machine de notre réseau local soit compromise et utilisée par un attaquant pour réaliser des opérations de reconnaisse sur des machines exposées sur Internet.

Cela lui permet d’utiliser notre adresse IP publique, dans le but de dissimuler ses traces.

Dans ce challenge, vous disposez de l’enregistrement d’une connexion TLS suspecte depuis la machine compromise (192.168.5.103) vers un serveur Web.

Même si le flux est chiffré, il est tout de même possible d’obtenir des informations sur cette connexion. Ici le client TLS utilisé sur la machine compromise semble avoir une empreinte très spécifique qui laisse peu de place au doute.

Votre mission est de retrouver le client TLS utilisé, comme vous pourriez retrouver le navigateur Web utilisé à partir du User-Agent HTTP.

Analyse de la capture

La capture de trames est relativement courte, elle ne contient que 11 trames :

On remarque une seule et unique session d'échange TCP via TLSv1.1.

La communication a lieu entre une ip locale (192.168.5.103) et le serveur web de l'APSSIS sur le port 443.

Le flux tcp n'affiche rien de particulier pour nous aider dans ce challenge :

....o...k..RH..#.:N..../.	T...y.h.....="... ..,..n.Y.bhl.(=':...o............(.
...9.k.5.=...	.#.....'.3.g.2...../.<.
.............syndication.twimg.com......
.................#.....g`..B...<.XO.iD.......=]..L. ..B...
...LDt}.....`~G...h?2.(q..*....(../....'..W....V:..YaJ....|..U.z...W.<.x..9.g.	...f.H=........+.?ye..l\.k.....5...,..2..W=^%...D..1(i.J.
3t..uO.................F

Quel est le client TLS utilisé ?

Le User-Agent d'une requête http est facile a récupérer dans une capture de trame, celui d'une session HTTPS est plus difficile à obtenir.

Heureusement, il existe un système d'empreinte pour faciliter la recherche de menace :

JA3 is a method for creating SSL/TLS client fingerprints that should be easy to produce on any platform and can be easily shared for threat intelligence.

salesforce a aussi publié un outil pour récupérer les empreintes JA3 dans un pcap :

 python3 ja3.py challenge_tls.pcap
[51.83.97.109:443] JA3: 770,49162-49172-57-107-53-61-49159-49161-49187-49169-49171-49191-51-103-50-5-4-47-60-10,61184-65281-10-11-35-13172-30031-5,23-24-25,0 --> 18e9afaf91db6f8a2470e7435c2a1d6b

Cet outil nous permet de récupérer le hash JA3 de la session TLS : 18e9afaf91db6f8a2470e7435c2a1d6b

salesforce met aussi à disposition un outil de CTI pour ce type de hash :

En passant le hash dans l'outil, on découvre que le client TLS est "massscan" (un scanner réseau).

Dernière mise à jour