Analizza una Gmail per estrarre: - UserID (numeric user ID) - Reviews pubbliche - Account associati su altri servizi - Informazioni da data breach - Profili pubblici associati
(self, email, include_holehe=False)
| 12957 | } |
| 12958 | |
| 12959 | def analyze_gmail_osint(self, email, include_holehe=False): |
| 12960 | """ |
| 12961 | Analizza una Gmail per estrarre: |
| 12962 | - UserID (numeric user ID) |
| 12963 | - Reviews pubbliche |
| 12964 | - Account associati su altri servizi |
| 12965 | - Informazioni da data breach |
| 12966 | - Profili pubblici associati |
| 12967 | """ |
| 12968 | email = (email or "").strip() |
| 12969 | if "@" not in email: |
| 12970 | return { |
| 12971 | "username": email, |
| 12972 | "type": "Gmail OSINT", |
| 12973 | "info": {"Status": "Email non valida"}, |
| 12974 | "main_img": "https://cdn-icons-png.flaticon.com/512/281/281764.png", |
| 12975 | "status_code": 400, |
| 12976 | "url": "" |
| 12977 | } |
| 12978 | |
| 12979 | info = {} |
| 12980 | status_code = 200 |
| 12981 | local, _, domain = email.partition("@") |
| 12982 | |
| 12983 | # 0. ENRICHMENT DA LOOKUP GOOGLE ACCOUNT (GAIA / NOME / FOTO) |
| 12984 | try: |
| 12985 | gmail_lookup = self.analyze_gmail(email) if domain in ["gmail.com", "googlemail.com"] else None |
| 12986 | if gmail_lookup and isinstance(gmail_lookup.get("info"), dict): |
| 12987 | ginfo = gmail_lookup.get("info", {}) |
| 12988 | gaia_value = ginfo.get("Gaia ID") or ginfo.get(" Gaia ID") |
| 12989 | nome_value = ginfo.get("Nome") or ginfo.get(" Nome") |
| 12990 | if gaia_value: |
| 12991 | info["Gaia ID"] = gaia_value |
| 12992 | if nome_value: |
| 12993 | info["Nome"] = nome_value |
| 12994 | name_bits = [p for p in re.split(r"\s+", str(nome_value).strip()) if p] |
| 12995 | if name_bits: |
| 12996 | info["Nome Account Primo Campo"] = name_bits[0] |
| 12997 | if len(name_bits) > 1: |
| 12998 | info["Nome Account Altri Campi"] = " ".join(name_bits[1:]) |
| 12999 | if ginfo.get("Profile Photo"): |
| 13000 | info["Profile Photo"] = str(ginfo.get("Profile Photo")) |
| 13001 | if ginfo.get("Email"): |
| 13002 | info["Email Verificata Lookup"] = str(ginfo.get("Email")) |
| 13003 | if ginfo.get("Status"): |
| 13004 | info["Google Lookup"] = str(ginfo.get("Status")) |
| 13005 | except Exception: |
| 13006 | pass |
| 13007 | |
| 13008 | # 1. RICERCA PROFILI PUBBLICI SU GOOGLE (disattivata per performance) |
| 13009 | |
| 13010 | # 2. RICERCA USERID SU SERVIZI GOOGLE |
| 13011 | try: |
| 13012 | # Tentativo di trovare UserID tramite Google Maps/Play Store reviews |
| 13013 | maps_url = "https://www.google.com/maps/contrib/" |
| 13014 | info["Google Maps Reviewer URL"] = f"{maps_url} (ricerca manuale con email)" |
| 13015 | info["Google Maps Search"] = f"https://www.google.com/maps/search/{urllib.parse.quote(email)}" |
| 13016 |
no test coverage detected