hacktricks/network-services-pentesting/pentesting-imap.md
2024-02-10 13:11:20 +00:00

12 KiB

143,993 - Pentesting IMAP

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Pronađite najvažnije ranjivosti kako biste ih brže popravili. Intruder prati vašu površinu napada, pokreće proaktivne pretnje, pronalazi probleme u celokupnom tehnološkom skupu, od API-ja do veb aplikacija i cloud sistema. Isprobajte ga besplatno danas.

{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}


Internet protokol za pristup porukama

Internet protokol za pristup porukama (IMAP) je dizajniran sa ciljem omogućavanja korisnicima da pristupaju svojim email porukama sa bilo koje lokacije, uglavnom putem internet konekcije. U suštini, email poruke se čuvaju na serveru umesto da se preuzimaju i čuvaju na ličnom uređaju pojedinca. To znači da kada se pristupa ili čita email, to se radi direktno sa servera. Ova mogućnost omogućava praktičnost provere emailova sa više uređaja, obezbeđujući da nijedna poruka ne bude propuštena bez obzira na korišćeni uređaj.

Podrazumevano, IMAP protokol radi na dve porte:

  • Port 143 - ovo je podrazumevani IMAP nešifrovani port
  • Port 993 - ovo je port koji trebate koristiti ako želite da se povežete koristeći IMAP sigurno
PORT    STATE SERVICE REASON
143/tcp open  imap    syn-ack

Prepoznavanje banera

Banner grabbing je tehnika koja se koristi za prikupljanje informacija o ciljnom serveru putem njegovog banera. Banner je obično deo odgovora servera prilikom uspostavljanja veze. Ova tehnika omogućava hakerima da saznaju informacije o softveru i verziji koji se koristi na serveru, što može biti korisno za dalje napade.

Da biste izvršili banner grabbing, možete koristiti različite alate kao što su telnet, nc ili nmap. Ovi alati vam omogućavaju da se povežete sa serverom i dobijete odgovor koji sadrži banner.

Kada dobijete banner, možete ga analizirati kako biste saznali više o serveru. Na primer, možete saznati koja verzija softvera se koristi i da li postoje poznate ranjivosti koje se mogu iskoristiti.

Važno je napomenuti da banner grabbing može biti ilegalno ako se koristi bez dozvole vlasnika servera. Uvek se pridržavajte zakona i etičkih smernica prilikom izvođenja ovih tehnika.

nc -nv <IP> 143
openssl s_client -connect <IP>:993 -quiet

NTLM autentifikacija - Otkrivanje informacija

Ukoliko server podržava NTLM autentifikaciju (Windows), možete dobiti osetljive informacije (verzije):

root@kali: telnet example.com 143
* OK The Microsoft Exchange IMAP4 service is ready.
>> a1 AUTHENTICATE NTLM
+
>> TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=
+ TlRMTVNTUAACAAAACgAKADgAAAAFgooCBqqVKFrKPCMAAAAAAAAAAEgASABCAAAABgOAJQAAAA9JAEkAUwAwADEAAgAKAEkASQBTADAAMQABAAoASQBJAFMAMAAxAAQACgBJAEkAUwAwADEAAwAKAEkASQBTADAAMQAHAAgAHwMI0VPy1QEAAAAA

Ili automatizujte ovo pomoću nmap dodatka imap-ntlm-info.nse

IMAP Bruteforce

Sintaksa

Primeri IMAP komandi sa ovde:

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

Evolucija

IMAP (Internet Message Access Protocol) je protokol koji se koristi za pristup i upravljanje elektronskom poštom na udaljenom serveru. Evolucija IMAP-a je dovela do razvoja različitih verzija protokola, kao što su IMAPv2, IMAPv3 i IMAPv4. Svaka verzija donosi poboljšanja u performansama, sigurnosti i funkcionalnostima.

IMAPv2 je bio prva verzija protokola koja je omogućila klijentima da pristupaju porukama na serveru i upravljaju njima. Međutim, IMAPv2 je bio ograničen u pogledu podrške za enkripciju i autentifikaciju.

IMAPv3 je donio značajna poboljšanja u sigurnosti i funkcionalnostima. Ova verzija je uključivala podršku za SSL/TLS enkripciju, kao i mogućnost pretrage i filtriranja poruka na serveru. Takođe je omogućila klijentima da pristupaju i upravljaju više poštanskih sandučića na istom serveru.

Najnovija verzija protokola, IMAPv4, donosi dodatne funkcionalnosti kao što su podrška za sinhronizaciju poruka između klijenta i servera, mogućnost označavanja poruka kao pročitanih ili nepročitanih, kao i mogućnost upravljanja poštanskim sandučićima na serveru.

Evolucija IMAP-a je omogućila korisnicima da efikasnije pristupaju i upravljaju svojom elektronskom poštom na udaljenom serveru, uz poboljšanu sigurnost i funkcionalnosti.

apt install evolution

CURL

Osnovna navigacija je moguća pomoću CURL-a, ali dokumentacija je siromašna detaljima, pa se preporučuje provera izvora za precizne detalje.

  1. Prikazivanje poštanskih sandučića (imap komanda LIST "" "*")
curl -k 'imaps://1.2.3.4/' --user user:pass
  1. Prikazivanje poruka u sandučetu (imap komanda SELECT INBOX a zatim SEARCH ALL)
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:

curl -k 'imaps://1.2.3.4/Drafts?TEXT lozinka' --user korisnik:lozinka

A nice overview of the search terms possible is located here.

  1. Downloading a message (imap command SELECT Drafts and then FETCH 1 BODY[])
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.

```markdown
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
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
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
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
$ curl -k 'imaps://1.2.3.4/INBOX' -X 'FETCH 1:5 BODY[HEADER.FIELDS (SUBJECT FROM)]' --user user:pass -v 2>&1 | grep '^<'

```html
<pre>
$ curl -k 'imaps://1.2.3.4/INBOX' -X 'FETCH 1:5 BODY[HEADER.FIELDS (SUBJECT FROM)]' --user user:pass -v 2>&1 | grep '^&lt;'
</pre>

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

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

Entry_1: Name: Beleške Description: Beleške za WHOIS Note: | Internet Message Access Protocol (IMAP) je dizajniran sa ciljem omogućavanja korisnicima pristupanje njihovim email porukama sa bilo koje lokacije, uglavnom putem internet konekcije. U suštini, emailovi se čuvaju na serveru umesto da se preuzimaju i skladište na ličnom uređaju pojedinca. To znači da kada se pristupa ili čita email, to se radi direktno sa servera. Ova mogućnost omogućava praktičnost provere emailova sa više uređaja, osiguravajući da nijedna poruka ne bude propuštena bez obzira na korišćeni uređaj.

https://book.hacktricks.xyz/pentesting/pentesting-imap

Entry_2: Name: Banner Grab Description: Banner Grab 143 Command: nc -nv {IP} 143

Entry_3: Name: Bezbedan Banner Grab Description: Banner Grab 993 Command: openssl s_client -connect {IP}:993 -quiet

Entry_4: Name: Enumeracija bez korišćenja msfconsole-a Description: Enumeracija IMAP-a bez potrebe za pokretanjem msfconsole-a Note: preuzeto sa https://github.com/carlospolop/legion Command: 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>