mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-27 23:20:49 +00:00
299 lines
13 KiB
Markdown
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>
|