netanelcyber / netanelcyber/AdPentestAI-Python
Email: Exchange version detection and fingerprinting
Open
@tenten48tenten is already working on this.
Since Sep 16, 2026.
email-enumeration
exchange
help-wanted
v1.1.0
- Dominant language
- Python
- Stars
- 5
- Forks
- 2
- Avg merge
- 22h 25m
- Merged PRs (30d)
- 7
Description
Description
Implement comprehensive Exchange Server version detection and detailed fingerprinting capabilities.
Detection Methods
-
SMTP Banner Analysis
- Parse SMTP banner for version info
- Extract server release date
- Identify build number
- Examples:
- "Microsoft ESMTP MAIL Service Version..."
- "Exchange 2016 RTM"
- "Exchange Online"
-
HTTP Headers
- OWA Server header
- EWS endpoint version information
- X-Powered-By headers
- X-AspNet-Version
-
EWS Endpoint Analysis
- Query
/EWS/Exchange.asmx - Parse WSDL for version
- Enumerate mailbox version
- Detect server roles (Mailbox, CAS, DAG)
- Query
-
LDAP Detection
- Query msDSMaximumCompatibilityLevel
- Parse servicePrincipalName patterns
- Identify global catalog servers
- Version-specific AD attributes
-
ActiveSync Probing
- EAS version negotiation
- Device policy version
- Server capabilities
Output Format
{
\"exchange\": {
\"detected\": true,
\"version\": \"2019\",
\"build\": \"15.02.1779.001\",
\"service_pack\": \"CU22\",
\"roles\": [\"Mailbox\", \"CAS\"],
\"hybrid\": false,
\"is_online\": false,
\"detection_methods\": [\"smtp_banner\", \"ews_query\", \"ldap\"]
}
}
Files to Update
adpentest/core.py- Add Exchange detection functions- Enhance:
detect_exchange_ews()
Success Criteria
- Detect Exchange 2010, 2013, 2016, 2019, 2021, Online
- Accurate version identification > 95%
- Build number extraction
- Service pack identification
- Hybrid configuration detection
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.