s-rah / onionscan

OnionScan is a free and open source tool for investigating the Dark Web.
https://twitter.com/OnionScan
Other
2.89k stars 600 forks source link

Extensible Messaging and Presence Protocol #48

Closed sainslie closed 8 years ago

sainslie commented 8 years ago

I feel it might be helpful to add support for popular Extensible Messaging and Presence Protocol servers.

Fingerprinting popular Extensible Messaging and Presence Protocol servers might bear a significant amount of useful data and I don't feel it's at all an unrealistic scenario. It's not uncommon for public-facing Extensible Messaging and Presence Protocol servers to also cater for access through non-public TLD special-use suffix'.

I feel it'll also help to consider collecting and parsing Extensible Messaging and Presence Protocol servers-side X.509 credentials as it bears potential for it to contain useful or identification information of other host-names or IP addresses and ascertain if other Extensible Messaging and Presence Protocol servers exist or establish potential co-hosting of other services.

It also might aid identification and correlation of public-facing Extensible Messaging and Presence Protocol servers or other services built upon prior assumptions.

sainslie commented 8 years ago

I guess support for parsing X.509 credentials can get added in tandem to #43 as the data standardization is identical and it'll build upon #15 suggestions.

I set up a user account for a public-facing Extensible Messaging and Presence Protocol server to establish if it's a realistic scenario and its host-name doesn't match its non-public special-use TLD suffix as it's not in the X.509 credential. I used its public DNS root zone identifiers in it to get its public IP address and deduce it's co-hosted on the same host-name. It's feasible.

I'll start adding immediate support.

sainslie commented 8 years ago

I built-in basic protocol support and am just ensuring it doesn't affect the program in a manner I hadn't intended prior to uploading it. I reused all of the code from @s-rah so it turns out it's much easier to add support for it than I had anticipated. Thank you @s-rah!