hacktricks/network-services-pentesting/pentesting-imap.md
2024-02-11 01:46:25 +00:00

299 lines
13 KiB
Markdown

# 143,993 - Testowanie penetracyjne IMAP
<details>
<summary><strong>Naucz się hakować AWS od zera do bohatera z</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Inne sposoby wsparcia HackTricks:
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLAN SUBSKRYPCJI**](https://github.com/sponsors/carlospolop)!
* Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
Znajdź najważniejsze podatności, aby móc je szybko naprawić. Intruder śledzi powierzchnię ataku, wykonuje proaktywne skanowanie zagrożeń, znajduje problemy w całym stosie technologicznym, od interfejsów API po aplikacje internetowe i systemy chmurowe. [**Wypróbuj za darmo**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) już dziś.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## Protokół dostępu do wiadomości internetowych
**Protokół dostępu do wiadomości internetowych (IMAP)** został zaprojektowany w celu umożliwienia użytkownikom **dostępu do swoich wiadomości e-mail z dowolnego miejsca**, głównie za pośrednictwem połączenia internetowego. W zasadzie, wiadomości e-mail są **przechowywane na serwerze**, a nie pobierane i przechowywane na urządzeniu osobistym użytkownika. Oznacza to, że gdy wiadomość e-mail jest odczytywana lub przeglądana, odbywa się to **bezpośrednio z serwera**. Ta funkcjonalność umożliwia wygodne sprawdzanie wiadomości e-mail z **wielu urządzeń**, zapewniając, że żadne wiadomości nie zostaną pominięte, niezależnie od używanego urządzenia.
Domyślnie protokół IMAP działa na dwóch portach:
* **Port 143** - jest to domyślny niezaszyfrowany port IMAP
* **Port 993** - jest to port, który należy używać, jeśli chcesz połączyć się z IMAP w sposób bezpieczny
```
PORT STATE SERVICE REASON
143/tcp open imap syn-ack
```
## Pobieranie baneru
Banner grabbing to technika, która polega na pobieraniu informacji o usłudze IMAP z serwera docelowego. Pozwala to na identyfikację wersji oprogramowania, która jest używana, oraz innych szczegółów, które mogą być przydatne podczas testowania penetracyjnego.
Aby przeprowadzić banner grabbing w usłudze IMAP, można użyć narzędzi takich jak `telnet` lub `nc`. Poniżej przedstawiono przykład użycia `telnet`:
```plaintext
telnet <adres_serwera> 143
```
Po nawiązaniu połączenia z serwerem IMAP, można wysłać polecenie `CAPABILITY`, aby uzyskać informacje o obsługiwanych funkcjach przez serwer. Przykład:
```plaintext
a001 CAPABILITY
```
Serwer odpowie listą obsługiwanych funkcji, co może dostarczyć cennych informacji dla testera penetracyjnego.
Banner grabbing jest przydatną techniką, która może pomóc w identyfikacji potencjalnych podatności lub słabych punktów w usłudze IMAP.
```bash
nc -nv <IP> 143
openssl s_client -connect <IP>:993 -quiet
```
### NTLM Auth - Ujawnianie informacji
Jeśli serwer obsługuje uwierzytelnianie NTLM (Windows), można uzyskać wrażliwe informacje (wersje):
```
root@kali: telnet example.com 143
* OK The Microsoft Exchange IMAP4 service is ready.
>> a1 AUTHENTICATE NTLM
+
>> TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=
+ TlRMTVNTUAACAAAACgAKADgAAAAFgooCBqqVKFrKPCMAAAAAAAAAAEgASABCAAAABgOAJQAAAA9JAEkAUwAwADEAAgAKAEkASQBTADAAMQABAAoASQBJAFMAMAAxAAQACgBJAEkAUwAwADEAAwAKAEkASQBTADAAMQAHAAgAHwMI0VPy1QEAAAAA
```
Lub **zautomatyzuj** to za pomocą wtyczki **nmap** `imap-ntlm-info.nse`
### [Brute Force IMAP](../generic-methodologies-and-resources/brute-force.md#imap)
## Składnia
Przykłady poleceń IMAP z [tutaj](https://donsutherland.org/crib/imap):
```
Login
A1 LOGIN username password
Values can be quoted to enclose spaces and special characters. A " must then be escape with a \
A1 LOGIN "username" "password"
List Folders/Mailboxes
A1 LIST "" *
A1 LIST INBOX *
A1 LIST "Archive" *
Create new Folder/Mailbox
A1 CREATE INBOX.Archive.2012
A1 CREATE "To Read"
Delete Folder/Mailbox
A1 DELETE INBOX.Archive.2012
A1 DELETE "To Read"
Rename Folder/Mailbox
A1 RENAME "INBOX.One" "INBOX.Two"
List Subscribed Mailboxes
A1 LSUB "" *
Status of Mailbox (There are more flags than the ones listed)
A1 STATUS INBOX (MESSAGES UNSEEN RECENT)
Select a mailbox
A1 SELECT INBOX
List messages
A1 FETCH 1:* (FLAGS)
A1 UID FETCH 1:* (FLAGS)
Retrieve Message Content
A1 FETCH 2 body[text]
A1 FETCH 2 all
A1 UID FETCH 102 (UID RFC822.SIZE BODY.PEEK[])
Close Mailbox
A1 CLOSE
Logout
A1 LOGOUT
```
### Ewolucja
IMAP (Internet Message Access Protocol) jest protokołem służącym do odbierania wiadomości e-mail z serwera. Pierwsza wersja IMAP została opublikowana w 1986 roku, a obecnie najpopularniejszą wersją jest IMAP4. Protokół ten ewoluował wraz z rozwojem technologii i wprowadzaniem nowych funkcji. Poniżej przedstawiam krótki przegląd ewolucji IMAP:
- **IMAP2**: Wersja ta wprowadziła podstawowe funkcje, takie jak odbieranie i usuwanie wiadomości e-mail z serwera. Była to pierwsza wersja IMAP, która umożliwiała zarządzanie wiadomościami bez konieczności pobierania ich na lokalny komputer.
- **IMAP2bis**: Ta wersja wprowadziła kilka ulepszeń, takich jak możliwość oznaczania wiadomości jako przeczytanej lub nieprzeczytanej oraz możliwość przenoszenia wiadomości między folderami.
- **IMAP3**: Ta wersja wprowadziła obsługę wielu folderów, co umożliwiało użytkownikom organizowanie swoich wiadomości w hierarchicznej strukturze folderów.
- **IMAP4**: Obecnie najpopularniejsza wersja IMAP, IMAP4, wprowadziła wiele nowych funkcji, takich jak możliwość wyszukiwania wiadomości, zarządzania folderami, pobierania części wiadomości (np. tylko nagłówka) oraz obsługę rozszerzeń.
IMAP jest nadal używany jako jeden z głównych protokołów do odbierania wiadomości e-mail. Jego ewolucja umożliwiła użytkownikom bardziej zaawansowane zarządzanie swoimi skrzynkami pocztowymi i dostęp do wiadomości z różnych urządzeń.
```
apt install evolution
```
![](<../.gitbook/assets/image (528).png>)
### CURL
Podstawowa nawigacja jest możliwa za pomocą [CURL](https://ec.haxx.se/usingcurl/usingcurl-reademail#imap), ale dokumentacja jest uboga w szczegóły, więc zaleca się sprawdzenie [źródła](https://github.com/curl/curl/blob/master/lib/imap.c) dla precyzyjnych informacji.
1. Wyświetlanie skrzynek pocztowych (polecenie imap `LIST "" "*")
```bash
curl -k 'imaps://1.2.3.4/' --user user:pass
```
2. Wyświetlanie wiadomości w skrzynce pocztowej (polecenie IMAP `SELECT INBOX`, a następnie `SEARCH ALL`)
```bash
curl -k 'imaps://1.2.3.4/INBOX?ALL' --user user:pass
```
The result of this search is a list of message indicies.
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 hasło' --user użytkownik:hasło
```
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[]`)
```bash
curl -k 'imaps://1.2.3.4/Drafts;MAILINDEX=1' --user user:pass
```
The mail index will be the same index returned from the search operation.
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.
```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
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
```
```
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):
```bash
```bash
$ curl -k 'imaps://1.2.3.4/INBOX' -X 'FETCH 1:5 BODY[HEADER.FIELDS (SUBJECT FROM)]' --user user:pass -v 2>&1 | grep '^<'
```
Pobierz nagłówki wiadomości (SUBJECT FROM) z wiadomości 1 do 5 z skrzynki odbiorczej na serwerze IMAP o adresie IP 1.2.3.4. Użyj uwierzytelnienia użytkownika i hasła. Wyświetl tylko linie zaczynające się od "<".
```
Although, its probably cleaner to just write a little for loop:
```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
```
```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
```
```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
```
```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
```
```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
```
```
## Shodan
* `port:143 CAPABILITY`
* `port:993 CAPABILITY`
## HackTricks Automatic Commands
```
Nazwa_Protokołu: IMAP #Skrót Protokołu jeśli istnieje.
Numer_Portu: 143,993 #Oddzielone przecinkiem jeśli jest więcej niż jeden.
Opis_Protokołu: Internet Message Access Protocol #Opis Protokołu zapisany pełną nazwą
Wpis_1:
Nazwa: Notatki
Opis: Notatki dotyczące WHOIS
Notatka: |
Internet Message Access Protocol (IMAP) został zaprojektowany w celu umożliwienia użytkownikom dostępu do swoich wiadomości e-mail z dowolnego miejsca, głównie za pośrednictwem połączenia internetowego. W zasadzie, wiadomości e-mail są przechowywane na serwerze, a nie pobierane i przechowywane na urządzeniu osobistym użytkownika. Oznacza to, że gdy wiadomość e-mail jest odczytywana lub otwierana, odbywa się to bezpośrednio z serwera. Ta funkcjonalność umożliwia wygodne sprawdzanie wiadomości e-mail z wielu urządzeń, zapewniając, że żadne wiadomości nie zostaną pominięte, niezależnie od używanego urządzenia.
https://book.hacktricks.xyz/pentesting/pentesting-imap
Wpis_2:
Nazwa: Banner Grab
Opis: Banner Grab 143
Komenda: nc -nv {IP} 143
Wpis_3:
Nazwa: Bezpieczny Banner Grab
Opis: Banner Grab 993
Komenda: openssl s_client -connect {IP}:993 -quiet
Wpis_4:
Nazwa: Wyliczanie mfs bez konsoli
Opis: Wyliczanie IMAP bez konieczności uruchamiania msfconsole
Notatka: pobrane z https://github.com/carlospolop/legion
Komenda: msfconsole -q -x 'use auxiliary/scanner/imap/imap_version; set RHOSTS {IP}; set RPORT 143; run; exit'
```
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
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" %}
<details>
<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>
Other ways to support HackTricks:
* 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)
* **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)**.**
* **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.
</details>