Enumeracja użytkowników Gmail
Napisał: Patryk Krawaczyński
09/05/2017 w Pen Test Brak komentarzy. (artykuł nr 606, ilość słów: 330)
A
więc firma, na którą dostaliśmy zlecenie audytu posiada na swojej stronie listę kilku pracowników z imienia i nazwiska, a jej rekordy DNS typu MX sugerują, że używa Google Apps dla firmowej domeny. Jak potwierdzić fakt, że dany pracownik posiada adres w formacie: imie.nazwisko@startup.pl i jest istniejącym kontem w usłudze Gmail? Oczywiście możemy wysłać wiadomość e-mail z jakiegoś jednorazowego konta e-mail i oczekiwać na zwrotkę w przypadku pomyłki, ale równie dobrze możemy trafić na jakiś adres typu catch-all lub alias prowadzący do innego odbiorcy, a to już komplikuje nam nasze intencje.
Może łatwiej po prostu zapytać samą usługę Google, czy nasz potencjalny adres jest prawdziwy, czy nie? Dla istniejącego konta otrzymamy odpowiedź:
~# curl -v https://mail.google.com/mail/gxlu?email=johnny.five@startup.pl Trying 108.177.96.17... * Connected to mail.google.com (108.177.96.17) port 443 (#0) * TLS 1.2 connection using TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 * Server certificate: mail.google.com * Server certificate: Google Internet Authority G2 * Server certificate: GeoTrust Global CA > GET /mail/gxlu?email=johnny.five@startup.pl HTTP/1.1 > Host: mail.google.com > User-Agent: curl/7.43.0 > Accept: */* > < HTTP/1.1 204 No Content < Cache-Control: no-cache, no-store, max-age=0, must-revalidate < Pragma: no-cache < Expires: Mon, 01 Jan 1990 00:00:00 GMT < Date: Tue, 09 May 2017 21:08:25 GMT < Server: GSE < Set-Cookie: COMPASS; expires=Fri, 19-May-2017 21:08:25 GMT; path=/mail; Secure; HttpOnly < Alt-Svc: quic=":443"; ma=2592000; v="37,36,35"
od serwera która będzie chciała ustawić nam ciasteczko (Set-Cookie
). Gdy spytamy o nieistniejące konto – serwer pominie proces ustawienia ciasteczka:
~# curl -v https://mail.google.com/mail/gxlu?email=johnny.5@startup.pl * Trying 108.177.96.17... * Connected to mail.google.com (108.177.96.17) port 443 (#0) * TLS 1.2 connection using TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 * Server certificate: mail.google.com * Server certificate: Google Internet Authority G2 * Server certificate: GeoTrust Global CA > GET /mail/gxlu?email=johnny.5@startup.pl HTTP/1.1 > Host: mail.google.com > User-Agent: curl/7.43.0 > Accept: */* > < HTTP/1.1 204 No Content < Cache-Control: no-cache, no-store, max-age=0, must-revalidate < Pragma: no-cache < Expires: Mon, 01 Jan 1990 00:00:00 GMT < Date: Tue, 09 May 2017 21:08:46 GMT < Server: GSE < Alt-Svc: quic=":443"; ma=2592000; v="37,36,35"
W ten sposób możemy dość sprawnie i szybko sprawdzić listę wszystkich pracowników audytowanej firmy.
Więcej informacji: Abusing Gmail to get previously unlisted e-mail addresses