> For the complete documentation index, see [llms.txt](https://book.onosh.ovh/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://book.onosh.ovh/ctf/cnssis2022/scan-tls.md).

# 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.

{% file src="/files/KI6HH9M6bzVzJzUx4ihj" %}

### Analyse de la capture

La capture de trames est relativement courte, elle ne contient que 11 trames :&#x20;

![challenge\_tls.pcap](/files/1fHmI5h2tEA2QhpVcIKx)

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 :&#x20;

```
....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 :&#x20;

> 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.

{% embed url="<https://github.com/salesforce/ja3>" %}

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

{% embed url="<https://github.com/salesforce/ja3/blob/master/python/ja3.py>" %}

```
 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 :&#x20;

{% embed url="<https://ja3er.com>" %}

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

![Flag : masscan ](/files/krSqhQw9hR1Uhva68wQB)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://book.onosh.ovh/ctf/cnssis2022/scan-tls.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
