hacktricks/network-services-pentesting/pentesting-imap.md

304 lines
14 KiB
Markdown
Raw Normal View History

2022-05-01 13:25:53 +00:00
# 143,993 - Pentesting IMAP
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 13:03:23 +00:00
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 13:03:23 +00:00
Altri modi per supportare HackTricks:
2022-04-28 16:01:33 +00:00
2024-02-10 13:03:23 +00:00
* Se vuoi vedere la tua **azienda pubblicizzata su HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT esclusivi**](https://opensea.io/collection/the-peass-family)
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR a** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-04-28 16:01:33 +00:00
</details>
2023-09-02 23:51:32 +00:00
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
2023-09-02 23:48:41 +00:00
2024-02-10 13:03:23 +00:00
Trova le vulnerabilità che contano di più in modo da poterle correggere più velocemente. Intruder traccia la tua superficie di attacco, esegue scansioni proattive delle minacce, trova problemi in tutta la tua infrastruttura tecnologica, dalle API alle applicazioni web e ai sistemi cloud. [**Provalo gratuitamente**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) oggi.
2023-09-02 23:48:41 +00:00
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
2022-05-01 13:25:53 +00:00
## Internet Message Access Protocol
2024-02-10 13:03:23 +00:00
L'**Internet Message Access Protocol (IMAP)** è progettato allo scopo di consentire agli utenti di **accedere alle proprie email da qualsiasi posizione**, principalmente tramite una connessione Internet. In sostanza, le email sono **conservate su un server** anziché essere scaricate e memorizzate su un dispositivo personale. Ciò significa che quando una email viene accessa o letta, avviene **direttamente dal server**. Questa capacità consente la comodità di controllare le email da **dispositivi multipli**, garantendo che nessun messaggio venga perso indipendentemente dal dispositivo utilizzato.
2024-02-10 13:03:23 +00:00
Per impostazione predefinita, il protocollo IMAP funziona su due porte:
2024-02-10 13:03:23 +00:00
* **Porta 143** - questa è la porta IMAP non crittografata predefinita
* **Porta 993** - questa è la porta da utilizzare se si desidera connettersi utilizzando IMAP in modo sicuro
```
PORT STATE SERVICE REASON
143/tcp open imap syn-ack
```
2024-02-10 13:03:23 +00:00
## Rilevamento del banner
Il rilevamento del banner è una tecnica utilizzata per ottenere informazioni sul servizio IMAP in esecuzione su un host remoto. Consiste nel connettersi al servizio IMAP e leggere la risposta iniziale del server, nota come banner. Questo banner può fornire informazioni utili come il nome e la versione del software utilizzato dal server IMAP.
Per eseguire il rilevamento del banner, è possibile utilizzare strumenti come Telnet o Netcat. Di seguito è riportato un esempio di come eseguire il rilevamento del banner utilizzando Telnet:
```plaintext
$ telnet <indirizzo_IP> 143
```
2024-02-10 13:03:23 +00:00
Una volta connessi al servizio IMAP, verrà visualizzato il banner del server. Questo può fornire informazioni utili per la fase successiva del test di penetrazione.
2024-02-10 13:03:23 +00:00
È importante notare che il rilevamento del banner può essere considerato una tecnica invasiva e può essere rilevato dai sistemi di sicurezza. Pertanto, è consigliabile utilizzare questa tecnica con cautela e solo su sistemi in cui si ha il permesso di eseguire test di penetrazione.
```bash
nc -nv <IP> 143
openssl s_client -connect <IP>:993 -quiet
```
2024-02-10 13:03:23 +00:00
### NTLM Auth - Divulgazione di informazioni
2024-02-10 13:03:23 +00:00
Se il server supporta l'autenticazione NTLM (Windows), è possibile ottenere informazioni sensibili (versioni):
```
2024-02-10 13:03:23 +00:00
root@kali: telnet example.com 143
* OK The Microsoft Exchange IMAP4 service is ready.
>> a1 AUTHENTICATE NTLM
+
>> TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=
+ TlRMTVNTUAACAAAACgAKADgAAAAFgooCBqqVKFrKPCMAAAAAAAAAAEgASABCAAAABgOAJQAAAA9JAEkAUwAwADEAAgAKAEkASQBTADAAMQABAAoASQBJAFMAMAAxAAQACgBJAEkAUwAwADEAAwAKAEkASQBTADAAMQAHAAgAHwMI0VPy1QEAAAAA
```
2024-02-10 13:03:23 +00:00
Oppure **automatizza** questo con il plugin **nmap** `imap-ntlm-info.nse`
2024-02-10 13:03:23 +00:00
### [Bruteforce IMAP](../generic-methodologies-and-resources/brute-force.md#imap)
2024-02-10 13:03:23 +00:00
## Sintassi
2024-02-06 03:10:38 +00:00
2024-02-10 13:03:23 +00:00
Esempi di comandi IMAP da [qui](https://donsutherland.org/crib/imap):
```
Login
2024-02-10 13:03:23 +00:00
A1 LOGIN username password
Values can be quoted to enclose spaces and special characters. A " must then be escape with a \
2024-02-10 13:03:23 +00:00
A1 LOGIN "username" "password"
List Folders/Mailboxes
2024-02-10 13:03:23 +00:00
A1 LIST "" *
A1 LIST INBOX *
A1 LIST "Archive" *
Create new Folder/Mailbox
2024-02-10 13:03:23 +00:00
A1 CREATE INBOX.Archive.2012
A1 CREATE "To Read"
Delete Folder/Mailbox
2024-02-10 13:03:23 +00:00
A1 DELETE INBOX.Archive.2012
A1 DELETE "To Read"
Rename Folder/Mailbox
2024-02-10 13:03:23 +00:00
A1 RENAME "INBOX.One" "INBOX.Two"
List Subscribed Mailboxes
2024-02-10 13:03:23 +00:00
A1 LSUB "" *
Status of Mailbox (There are more flags than the ones listed)
2024-02-10 13:03:23 +00:00
A1 STATUS INBOX (MESSAGES UNSEEN RECENT)
Select a mailbox
2024-02-10 13:03:23 +00:00
A1 SELECT INBOX
List messages
2024-02-10 13:03:23 +00:00
A1 FETCH 1:* (FLAGS)
A1 UID FETCH 1:* (FLAGS)
Retrieve Message Content
2024-02-10 13:03:23 +00:00
A1 FETCH 2 body[text]
A1 FETCH 2 all
A1 UID FETCH 102 (UID RFC822.SIZE BODY.PEEK[])
Close Mailbox
2024-02-10 13:03:23 +00:00
A1 CLOSE
Logout
2024-02-10 13:03:23 +00:00
A1 LOGOUT
```
2024-02-10 13:03:23 +00:00
### Evoluzione
IMAP (Internet Message Access Protocol) è un protocollo di posta elettronica che consente agli utenti di accedere alle loro caselle di posta su un server remoto. Nel corso degli anni, IMAP ha subito diverse evoluzioni per migliorare la sua sicurezza e funzionalità.
#### IMAPv4
La versione originale di IMAP, conosciuta come IMAPv4, è stata introdotta nel 1986. Questa versione ha fornito un modo per accedere alle caselle di posta su un server remoto e gestire le email in modo più efficiente rispetto al protocollo POP3 (Post Office Protocol 3).
#### IMAPv4 Rev1
2024-02-10 13:03:23 +00:00
IMAPv4 Rev1 è stata una revisione del protocollo IMAPv4 che ha introdotto nuove funzionalità e miglioramenti. Questa versione ha aggiunto il supporto per le cartelle condivise, la ricerca di email e la gestione delle risposte automatiche.
2024-02-10 13:03:23 +00:00
#### IMAPv4bis
IMAPv4bis è stata un'altra revisione del protocollo IMAPv4 che ha introdotto ulteriori miglioramenti. Questa versione ha aggiunto il supporto per la compressione dei dati, la gestione delle risorse e la sincronizzazione delle caselle di posta.
#### IMAPv4rev2
IMAPv4rev2 è stata un'ulteriore revisione del protocollo IMAPv4 che ha introdotto nuove funzionalità e miglioramenti. Questa versione ha aggiunto il supporto per la gestione delle notifiche push, la gestione delle risorse e la gestione delle caselle di posta condivise.
#### IMAPv4rev3
IMAPv4rev3 è stata l'ultima revisione del protocollo IMAPv4. Questa versione ha introdotto ulteriori miglioramenti, tra cui il supporto per la gestione delle risorse, la gestione delle caselle di posta condivise e la gestione delle notifiche push.
### Sicurezza IMAP
IMAP ha subito diverse evoluzioni per migliorare la sua sicurezza. Alcune delle misure di sicurezza comuni utilizzate con IMAP includono:
- Utilizzo di connessioni crittografate tramite SSL/TLS per proteggere la trasmissione dei dati sensibili.
- Autenticazione degli utenti tramite username e password per garantire che solo gli utenti autorizzati possano accedere alle caselle di posta.
- Utilizzo di meccanismi di autenticazione più sicuri, come l'autenticazione a due fattori, per proteggere ulteriormente l'accesso alle caselle di posta.
- Implementazione di politiche di sicurezza per limitare l'accesso alle caselle di posta e proteggere i dati sensibili.
### Conclusioni
IMAP è un protocollo di posta elettronica che ha subito diverse evoluzioni nel corso degli anni per migliorare la sua sicurezza e funzionalità. È importante comprendere queste evoluzioni e le misure di sicurezza associate per garantire la protezione delle caselle di posta e dei dati sensibili.
```
apt install evolution
```
![](<../.gitbook/assets/image (528).png>)
2022-05-01 13:25:53 +00:00
### CURL
2020-12-21 13:41:29 +00:00
2024-02-10 13:03:23 +00:00
La navigazione di base è possibile con [CURL](https://ec.haxx.se/usingcurl/usingcurl-reademail#imap), ma la documentazione è scarsa di dettagli, quindi è consigliabile controllare la [fonte](https://github.com/curl/curl/blob/master/lib/imap.c) per dettagli precisi.
2024-02-10 13:03:23 +00:00
1. Elenco delle caselle di posta (comando imap `LIST "" "*")
2024-02-08 21:36:15 +00:00
```bash
curl -k 'imaps://1.2.3.4/' --user user:pass
```
2024-02-10 13:03:23 +00:00
2. Elenco dei messaggi in una casella di posta (comando imap `SELECT INBOX` e poi `SEARCH ALL`)
2024-02-10 13:03:23 +00:00
```bash
2024-02-08 21:36:15 +00:00
curl -k 'imaps://1.2.3.4/INBOX?ALL' --user user:pass
```
2024-02-08 21:36:15 +00:00
The result of this search is a list of message indicies.
2024-02-08 21:36:15 +00:00
Its also possible to provide more complex search terms. e.g. searching for drafts with password in mail body:
```bash
curl -k 'imaps://1.2.3.4/Drafts?TEXT password' --user user:pass
```
2024-02-08 21:36:15 +00:00
A nice overview of the search terms possible is located [here](https://www.atmail.com/blog/imap-commands/).
3. Downloading a message (imap command `SELECT Drafts` and then `FETCH 1 BODY[]`)
2024-02-10 13:03:23 +00:00
```bash
curl -k 'imaps://1.2.3.4/Drafts;MAILINDEX=1' --user user:pass
Traduzione:
2024-02-08 21:36:15 +00:00
```bash
curl -k 'imaps://1.2.3.4/Drafts;MAILINDEX=1' --user user:pass
```
2024-02-10 13:03:23 +00:00
Traduzione:
```
2024-02-08 21:36:15 +00:00
The mail index will be the same index returned from the search operation.
2020-12-21 13:41:29 +00:00
It is also possible to use `UID` (unique id) to access messages, however it is less conveniant as the search command needs to be manually formatted. E.g.
2024-02-10 13:03:23 +00:00
```bash
```bash
curl -k 'imaps://1.2.3.4/INBOX' -X 'UID SEARCH ALL' --user user:pass
curl -k 'imaps://1.2.3.4/INBOX;UID=1' --user user:pass
```
```bash
curl -k 'imaps://1.2.3.4/INBOX' -X 'UID SEARCH ALL' --user user:pass
curl -k 'imaps://1.2.3.4/INBOX;UID=1' --user user:pass
```
```bash
2024-02-08 21:36:15 +00:00
curl -k 'imaps://1.2.3.4/INBOX' -X 'UID SEARCH ALL' --user user:pass
curl -k 'imaps://1.2.3.4/INBOX;UID=1' --user user:pass
2020-12-21 13:41:29 +00:00
```
2024-02-10 13:03:23 +00:00
```
2020-12-21 13:41:29 +00:00
Also, possible to download just parts of a message, e.g. subject and sender of first 5 messages (the `-v` is required to see the subject and sender):
2024-02-10 13:03:23 +00:00
```bash
```bash
2020-12-21 13:41:29 +00:00
$ curl -k 'imaps://1.2.3.4/INBOX' -X 'FETCH 1:5 BODY[HEADER.FIELDS (SUBJECT FROM)]' --user user:pass -v 2>&1 | grep '^<'
```
2024-02-10 13:03:23 +00:00
Questo comando utilizza cURL per connettersi in modo sicuro (utilizzando HTTPS) all'indirizzo IP 1.2.3.4 e accedere alla casella di posta INBOX tramite il protocollo IMAP. Successivamente, viene eseguita una richiesta FETCH per ottenere l'intestazione (HEADER) dei messaggi con ID compresi tra 1 e 5, includendo solo i campi SUBJECT e FROM. L'opzione `--user` viene utilizzata per specificare le credenziali di accesso (nome utente e password). L'opzione `-v` abilita la modalità dettagliata di cURL e `2>&1` reindirizza l'output di errore verso l'output standard. Infine, `grep '^<'` filtra solo le righe che iniziano con il carattere `<`, che corrispondono alle risposte del server IMAP.
```
2020-12-21 13:41:29 +00:00
Although, its probably cleaner to just write a little for loop:
2024-02-10 13:03:23 +00:00
```bash
```bash
for m in {1..5}; do
echo $m
curl "imap://1.2.3.4/INBOX;MAILINDEX=$m;SECTION=HEADER.FIELDS%20(SUBJECT%20FROM)" --user user:pass
done
```
2024-02-08 21:36:15 +00:00
```bash
2020-12-21 13:41:29 +00:00
for m in {1..5}; do
2024-02-10 13:03:23 +00:00
echo $m
curl "imap://1.2.3.4/INBOX;MAILINDEX=$m;SECTION=HEADER.FIELDS%20(SUBJECT%20FROM)" --user user:pass
2020-12-21 13:41:29 +00:00
done
```
2024-02-10 13:03:23 +00:00
```
2020-12-21 13:41:29 +00:00
2022-05-01 13:25:53 +00:00
## Shodan
2020-10-05 13:04:03 +00:00
* `port:143 CAPABILITY`
* `port:993 CAPABILITY`
2022-05-01 13:25:53 +00:00
## HackTricks Automatic Commands
2021-08-12 13:02:06 +00:00
```
2021-08-12 13:02:06 +00:00
Protocol_Name: IMAP #Protocol Abbreviation if there is one.
Port_Number: 143,993 #Comma separated if there is more than one.
Protocol_Description: Internet Message Access Protocol #Protocol Abbreviation Spelled out
2021-08-15 17:49:05 +00:00
Entry_1:
2024-02-10 13:03:23 +00:00
Name: Note
Description: Note per WHOIS
Note: |
L'Internet Message Access Protocol (IMAP) è progettato per consentire agli utenti di accedere alle proprie email da qualsiasi posizione, principalmente tramite una connessione Internet. In sostanza, le email vengono conservate su un server anziché essere scaricate e memorizzate sul dispositivo personale di un individuo. Ciò significa che quando una email viene accessa o letta, avviene direttamente dal server. Questa capacità consente la comodità di controllare le email da dispositivi multipli, garantendo che nessun messaggio venga perso indipendentemente dal dispositivo utilizzato.
2021-08-15 17:49:05 +00:00
2024-02-10 13:03:23 +00:00
https://book.hacktricks.xyz/pentesting/pentesting-imap
2021-08-15 17:49:05 +00:00
Entry_2:
2024-02-10 13:03:23 +00:00
Name: Banner Grab
Description: Banner Grab 143
Command: nc -nv {IP} 143
2021-08-15 17:49:05 +00:00
Entry_3:
2024-02-10 13:03:23 +00:00
Name: Secure Banner Grab
Description: Banner Grab 993
Command: openssl s_client -connect {IP}:993 -quiet
Entry_4:
2024-02-10 13:03:23 +00:00
Name: Enumerazione senza console mfs
Description: Enumerazione IMAP senza la necessità di eseguire msfconsole
Note: tratto da https://github.com/carlospolop/legion
Command: msfconsole -q -x 'use auxiliary/scanner/imap/imap_version; set RHOSTS {IP}; set RPORT 143; run; exit'
2021-08-12 13:02:06 +00:00
```
2022-04-28 16:01:33 +00:00
2023-09-02 23:51:32 +00:00
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
2023-09-02 23:48:41 +00:00
Find vulnerabilities that matter most so you can fix them faster. Intruder tracks your attack surface, runs proactive threat scans, finds issues across your whole tech stack, from APIs to web apps and cloud systems. [**Try it for free**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) today.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
2022-04-28 16:01:33 +00:00
<details>
2024-01-05 22:37:11 +00:00
<summary><strong>Learn AWS hacking from zero to hero with</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-01-05 22:37:11 +00:00
Other ways to support HackTricks:
2022-04-28 16:01:33 +00:00
2024-01-05 22:37:11 +00:00
* If you want to see your **company advertised in HackTricks** or **download HackTricks in PDF** Check the [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Get the [**official PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Discover [**The PEASS Family**](https://opensea.io/collection/the-peass-family), our collection of exclusive [**NFTs**](https://opensea.io/collection/the-peass-family)
2024-02-09 12:24:06 +00:00
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
2024-01-05 22:37:11 +00:00
* **Share your hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-04-28 16:01:33 +00:00
</details>