110,995 - Pentesting POP - HackTricks

# 110,995 - Pentesting POP

> [!TIP] Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
> Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

> Support HackTricks
> - Check the subscription plans!
> - Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
> - Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.

## Basic Information

Post Office Protocol (POP) is described as a protocol within the realm of computer networking and the Internet, which is utilized for the extraction and retrieval of email from a remote mail server, making it accessible on the local device. Positioned within the application layer of the OSI model, this protocol enables users to fetch and receive email. The operation of POP clients typically involves establishing a connection to the mail server, downloading all messages, storing these messages locally on the client system, and subsequently removing them from the server. Although there are three iterations of this protocol, POP3 stands out as the most prevalently employed version.

Default ports: 110, 995(ssl)

    PORT    STATE SERVICE
    110/tcp open  pop3

## Enumeration

### Banner Grabbing

    nc -nv <IP> 110
    openssl s_client -connect <IP>:995 -crlf -quiet

## Manual

You can use the command `CAPA` to obtain the capabilities of the POP3 server.

## Automated

    nmap --script "pop3-capabilities or pop3-ntlm-info" -sV -port <PORT> <IP> #All are default scripts

The `pop3-ntlm-info` plugin will return some "sensitive" data (Windows versions).

### POP3 bruteforce

## POP syntax

POP commands examples from here

    POP commands:
      USER uid           Log in as "uid"
      PASS password      Substitue "password" for your actual password
      STAT               List number of messages, total mailbox size
      LIST               List messages and sizes
      RETR n             Show message n
      DELE n             Mark message n for deletion
      RSET               Undo any changes
      QUIT               Logout (expunges messages if no RSET)
      TOP msg n          Show first n lines of message number msg
      CAPA               Get capabilities

Example:

    root@kali:~# telnet $ip 110
     +OK beta POP3 server (JAMES POP3 Server 2.3.2) ready
     USER billydean
     +OK
     PASS password
     +OK Welcome billydean

     list

     +OK 2 1807
     1 786
     2 1021

     retr 1

     +OK Message follows
     From: jamesbrown@motown.com
     Dear Billy Dean,

     Here is your login for remote desktop ... try not to forget it this time!
     username: billydean
     password: PA$$W0RD!Z

## Logging Passwords

POP servers with the setting `auth_debug` enabled will be increasing the logs generated. However, if `auth_debug_passwords` or `auth_verbose_passwords` are set as `true`, password could be also logged in clear text in those logs.

## HackTricks Automatic Commands

    Protocol_Name:  POP   #Protocol Abbreviation if there is one.
    Port_Number:  110     #Comma separated if there is more than one.
    Protocol_Description: Post Office Protocol         #Protocol Abbreviation Spelled out

    Entry_1:
      Name: Notes
      Description: Notes for POP
      Note: |
        Post Office Protocol (POP) is described as a protocol within the realm of computer networking and the Internet, which is utilized for the extraction and retrieval of email from a remote mail server**, making it accessible on the local device. Positioned within the application layer of the OSI model, this protocol enables users to fetch and receive email. The operation of POP clients typically involves establishing a connection to the mail server, downloading all messages, storing these messages locally on the client system, and subsequently removing them from the server. Although there are three iterations of this protocol, POP3 stands out as the most prevalently employed version.

        https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-pop.html

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

    Entry_3:
      Name: Banner Grab 995
      Description: Grab Banner Secure
      Command: openssl s_client -connect {IP}:995 -crlf -quiet

    Entry_4:
      Name: Nmap
      Description: Scan for POP info
      Command: nmap --script "pop3-capabilities or pop3-ntlm-info" -sV -p 110 {IP}

    Entry_5:
      Name: Hydra Brute Force
      Description: Need User
      Command: hydra -l {Username} -P {Big_Passwordlist} -f {IP} pop3 -V

    Entry_6:
      Name: consolesless mfs enumeration
      Description: POP3 enumeration without the need to run msfconsole
      Note: sourced from https://github.com/carlospolop/legion
      Command: msfconsole -q -x 'use auxiliary/scanner/pop3/pop3_version; set RHOSTS {IP}; set RPORT 110; run; exit'

> [!TIP] Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
> Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

> Support HackTricks
> - Check the subscription plans!
> - Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
> - Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.