# 143,993 - IMAPのペンテスト
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
- [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
- [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
- **ハッキングのトリックを共有するには、[hacktricks repo](https://github.com/carlospolop/hacktricks)と[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
## Internet Message Access Protocol
その名前が示すように、IMAPは**どこにいても電子メールメッセージにアクセス**できます。ほとんどの場合、インターネット経由でアクセスされます。基本的に、電子メールの**メッセージはサーバーに保存**されます。受信トレイを確認するたびに、電子メールクライアントはサーバーに接続してメッセージにアクセスします。IMAPを使用して電子メールメッセージを読むと、実際にはコンピュータに**ダウンロードしたり保存したりすることはありません**。代わりに、サーバーから**読み取ります**。その結果、異なるデバイスから電子メールを**チェック**することができ、何も見逃すことはありません。
デフォルトでは、IMAPプロトコルは2つのポートで動作します:
* **ポート143** - これはデフォルトのIMAP非暗号化ポートです。
* **ポート993** - これはIMAPを安全に接続するために使用するポートです。
```
PORT STATE SERVICE REASON
143/tcp open imap syn-ack
```
## バナーの取得
バナーの取得は、IMAPサーバーに接続している際に、サーバーが提供するバナーメッセージを取得するテクニックです。バナーメッセージには、サーバーのバージョンや製品名などの情報が含まれていることがあります。この情報は、攻撃者がサーバーの脆弱性を特定するために使用することができます。
バナーメッセージを取得するには、IMAPクライアントを使用してサーバーに接続し、サーバーからの応答を確認します。応答の中には、バナーメッセージが含まれている場合があります。バナーメッセージは、通常、サーバーが接続要求に対して返す最初の応答として表示されます。
バナーメッセージには、サーバーのバージョンや製品名、サポートされている認証メカニズムなどの情報が含まれていることがあります。この情報を使用して、攻撃者はサーバーの脆弱性を特定し、適切な攻撃手法を選択することができます。
バナーメッセージの取得は、情報収集フェーズで非常に役立つテクニックです。バナーメッセージには、攻撃者が攻撃を計画するために必要な情報が含まれている場合があります。
```bash
nc -nv 143
openssl s_client -connect :993 -quiet
```
### NTLM認証 - 情報漏洩
サーバーがNTLM認証(Windows)をサポートしている場合、以下のような機密情報(バージョン)を取得することができます:
```
root@kali: telnet example.com 143
* OK The Microsoft Exchange IMAP4 service is ready.
>> a1 AUTHENTICATE NTLM
+
>> TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=
+ TlRMTVNTUAACAAAACgAKADgAAAAFgooCBqqVKFrKPCMAAAAAAAAAAEgASABCAAAABgOAJQAAAA9JAEkAUwAwADEAAgAKAEkASQBTADAAMQABAAoASQBJAFMAMAAxAAQACgBJAEkAUwAwADEAAwAKAEkASQBTADAAMQAHAAgAHwMI0VPy1QEAAAAA
```
または、**nmap**プラグイン`imap-ntlm-info.nse`を使用して、これを**自動化**することもできます。
### [IMAPブルートフォース](../generic-methodologies-and-resources/brute-force.md#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
```
[ここから](https://donsutherland.org/crib/imap)
### エボリューション
```bash
nmap -p 143 --script imap-capabilities
```
IMAP サーバーの機能を列挙するために `nmap` を使用します。
```bash
nmap -p 143 --script imap-ntlm-info
```
NTLM 認証を使用している場合、ユーザー名とドメイン名を特定するために `nmap` を使用します。
```bash
nmap -p 143 --script imap-brute
```
IMAP サーバーのパスワードをブルートフォース攻撃するために `nmap` を使用します。
```bash
nmap -p 143 --script imap-ssl
```
IMAP サーバーが SSL/TLS をサポートしているかどうかを確認するために `nmap` を使用します。
```bash
nmap -p 143 --script imap-starttls
```
IMAP サーバーが STARTTLS をサポートしているかどうかを確認するために `nmap` を使用します。
```bash
nmap -p 143 --script imap-ntlm-ssp
```
NTLM SSP を使用している場合、ユーザー名とドメイン名を特定するために `nmap` を使用します。
```bash
nmap -p 143 --script imap-ntlm-version
```
NTLM バージョンを特定するために `nmap` を使用します。
```bash
nmap -p 143 --script imap-capabilities
```
IMAP サーバーの機能を列挙するために `nmap` を使用します。
```bash
nmap -p 143 --script imap-ntlm-info
```
NTLM 認証を使用している場合、ユーザー名とドメイン名を特定するために `nmap` を使用します。
```bash
nmap -p 143 --script imap-brute
```
IMAP サーバーのパスワードをブルートフォース攻撃するために `nmap` を使用します。
```bash
nmap -p 143 --script imap-ssl
```
IMAP サーバーが SSL/TLS をサポートしているかどうかを確認するために `nmap` を使用します。
```bash
nmap -p 143 --script imap-starttls
```
IMAP サーバーが STARTTLS をサポートしているかどうかを確認するために `nmap` を使用します。
```bash
nmap -p 143 --script imap-ntlm-ssp
```
NTLM SSP を使用している場合、ユーザー名とドメイン名を特定するために `nmap` を使用します。
```bash
nmap -p 143 --script imap-ntlm-version
```
NTLM バージョンを特定するために `nmap` を使用します。
```
apt install evolution
```
![](<../.gitbook/assets/image (528).png>)
### CURL
基本的なナビゲーションは[CURL](https://ec.haxx.se/usingcurl/usingcurl-reademail#imap)で可能ですが、ドキュメントは詳細についてはあまり詳しくありませんので、正確な詳細については[ソース](https://github.com/curl/curl/blob/master/lib/imap.c)を確認することをお勧めします。
1. メールボックスのリストアップ (imapコマンド `LIST "" "*"`)
```bash
$ curl -k 'imaps://1.2.3.4/' --user user:pass
```
2. メールボックス内のメッセージのリストアップ (imapコマンド `SELECT INBOX` および `SEARCH ALL`)
```bash
$ curl -k 'imaps://1.2.3.4/INBOX?ALL' --user user:pass
```
この検索の結果は、メッセージのインデックスのリストです。
より複雑な検索条件を指定することも可能です。例えば、メール本文にパスワードが含まれる下書きを検索する場合:
```bash
$ curl -k 'imaps://1.2.3.4/Drafts?TEXT password' --user user:pass
```
検索可能な検索条件の概要は[こちら](https://www.atmail.com/blog/imap-commands/)にあります。
3. メッセージのダウンロード (imapコマンド `SELECT Drafts` および `FETCH 1 BODY[]`)
```bash
$ curl -k 'imaps://1.2.3.4/Drafts;MAILINDEX=1' --user user:pass
```
メールインデックスは、検索操作から返されるインデックスと同じです。
また、メッセージにアクセスするために`UID`(一意のID)を使用することも可能ですが、検索コマンドを手動でフォーマットする必要があるため、便利ではありません。例えば、
```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
```
また、メッセージの一部をダウンロードすることも可能です。例えば、最初の5つのメッセージの件名と送信者をダウンロードすることができます(`-v`オプションは件名と送信者を表示するために必要です):
```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 '^<'
```
おそらく、簡潔に書くためには、forループを使うのが良いでしょう。
```
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 自動コマンド
```
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: Notes
Description: Notes for WHOIS
Note: |
As its name implies, IMAP allows you to access your email messages wherever you are; much of the time, it is accessed via the Internet. Basically, email messages are stored on servers. Whenever you check your inbox, your email client contacts the server to connect you with your messages. When you read an email message using IMAP, you aren't actually downloading or storing it on your computer; instead, you are reading it off of the server. As a result, it's possible to check your email from several different devices without missing a thing.
https://book.hacktricks.xyz/pentesting/pentesting-imap
Entry_2:
Name: Banner Grab
Description: Banner Grab 143
Command: nc -nv {IP} 143
Entry_3:
Name: Secure Banner Grab
Description: Banner Grab 993
Command: openssl s_client -connect {IP}:993 -quiet
Entry_4:
Name: consolesless mfs enumeration
Description: IMAP enumeration without the need to run msfconsole
Note: sourced from https://github.com/carlospolop/legion
Command: msfconsole -q -x 'use auxiliary/scanner/imap/imap_version; set RHOSTS {IP}; set RPORT 143; run; exit'
```
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
- [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
- [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。