FortiBleed Analysis Finds 148 Confirmed Compromises in Credential Campaign

Summary
Analysis of an exposed attacker directory traces a campaign targeting exposed Fortinet devices. Researchers say 21,632 entries did not represent verified breaches; their review found evidence of internal traffic at 918 organisations and 148 confirmed compromises.
Key points
- FortiBleed is a credential-compromise campaign, not a Fortinet software vulnerability or zero-day.
- An exposed attacker server contained 319 files, including scanning and cracking tools, credential datasets, post-exploitation scripts, and a live VPN configuration.
- The operators used credential reuse, brute force, and offline hash cracking against internet-facing devices, then used tools to enumerate Active Directory and spray passwords.
- Researchers found that the widely cited 21,632 figure counted attribution-database entries, not verified breaches; they identified internal Kerberos traffic at 918 organisations and cracked, verified AD credentials at 148.
- The dataset included non-Fortinet devices and noisy attribution based on registration emails, limiting the reliability of claims about specific victims.
- The report says the attacker infrastructure was deactivated at its source, but a Hashtopolis instance on the same IP remained active at the time of writing.
- Recommended steps include removing management interfaces from public exposure, rotating administrator and VPN credentials, enabling MFA, and checking devices for signs of compromise.
Article Details
- Attack Vectors
- Credential reuse, brute force, and offline hash cracking against internet-exposed devices.
- Scanning internet-facing web login interfaces and harvesting credentials across Fortinet and non-Fortinet devices.
- Capturing Kerberos pre-authentication data with network sniffers after pivoting into victim networks.
- Kerberos and SMB password spraying, LDAP-based Active Directory enumeration, SMB access testing, and network-share discovery.
- Using validated credentials to access SSL VPNs and other remote-access targets.
- Defensive Notes
- Remove Fortinet firewall and SSL VPN management interfaces from direct public internet exposure and restrict administration to trusted internal networks.
- Rotate administrator, VPN, LDAP, RADIUS, and service-account credentials that may have been exposed.
- Enforce MFA on administrative and remote-access accounts.
- Upgrade FortiOS to a release supporting PBKDF2 hashing and require administrator logins to trigger re-hashing.
- Investigate unfamiliar successful administrator logins, audit for backdoor accounts and altered controls, and replace severely compromised devices.
Indicators of compromise
| Type | Indicator | Context |
|---|---|---|
| IPV4 | 175[.]155[.]64[.]221 | IP address identified as a Hashtopolis instance in the attacker infrastructure list. |
| IPV4 | 185[.]229[.]26[.]83 | IP address identified as a Hashtopolis instance in the attacker infrastructure list. |
| IPV4 | 193[.]8[.]187[.]2 | Attacker jumpbox used to relay into compromised networks. |
| IPV4 | 198[.]53[.]64[.]194 | IP address identified as a Hashtopolis instance in the attacker infrastructure list. |
| IPV4 | 213[.]169[.]49[.]142 | IP address identified as a Hashtopolis instance in the attacker infrastructure list. |
| IPV4 | 38[.]117[.]87[.]37 | IP address identified as a Hashtopolis instance in the attacker infrastructure list. |
| IPV4 | 85[.]11[.]187[.]28 | Infrastructure identified in the article as used for Fortinet credential harvesting. |
| IPV4 | 85[.]11[.]187[.]8 | Exposed Hashtopolis coordination server identified as attacker infrastructure. |
MITRE ATT&CK
T1021.002 · SMB/Windows Admin SharesThe post-exploitation scripts performed SMB password spraying and tested SMB access to internal systems.T1021.004 · SSHA live SSL VPN configuration provided working remote access into a victim network.T1087.002 · Domain AccountScripts enumerated internal Active Directory accounts, including domain administrators and roastable accounts.T1110.003 · Password SprayingOperators used password spraying against internal domain controllers and brute force against exposed devices.T1110.004 · Credential StuffingOperators performed offline cracking of hashes obtained from device configurations and captured Kerberos data.T1552.001 · Credentials In FilesThe operators' scripts searched account-description fields for carelessly stored credentials.T1557.001 · Name Resolution Poisoning and SMB RelayNetwork sniffers captured Kerberos pre-authentication data inside networks the operators had pivoted into.
Vendors
Products
FortiGateFortiBleed, an active, large-scale credential-compromise campaign targeting internet-facing Fortinet FortiGate firewalls and SSL VPN gateways worldwide. Despite the name, FortiBleed is not a software vulnerabilityFortiGuard The FortiGuard ID Attribution Field — fsd_sort.txtFortiOSTwo Hash Layers — FortiOS & KerberosHashtopolisCracking infrastructure — bot.py (Telegram control), Hashtopolis, hashpanel.log
Tools
ad_enum.pyPost-exploitation toolkit — ad_enum.py, spray_admin.sh, spray_da.py, pass_* wordlistsbot.pyCracking infrastructure — bot.py (Telegram control), Hashtopolis, hashpanel.logbuild_full_map.pyEnrichment & attribution — match_corps.py, merge_revenue.py, build_report.py, build_full_map.pybuild_report.pyEnrichment & attribution — match_corps.py, merge_revenue.py, build_report.py, build_full_map.pyclean_honeypots.pyQuality control — clean_honeypots.py, fake_ips.txtImpacketad_enum.py and related scripts use the impacket library to enumerate internal Active Directory environments over LDAP — pulling domain administrators, kerberoastable and AS-REP-roastable accounts, the machine-accountmatch_corps.pyEnrichment & attribution — match_corps.py, merge_revenue.py, build_report.py, build_full_map.pymerge_revenue.pyEnrichment & attribution — match_corps.py, merge_revenue.py, build_report.py, build_full_map.pynvidia-smiGPU count and caps how many it will treat as "big" workers, falling back to a default of ten if nvidia-smi fails to report. The operator log, hashpanel.log, lists the actual deployment: six rented Vast.aispray_admin.shPost-exploitation toolkit — ad_enum.py, spray_admin.sh, spray_da.py, pass_* wordlistsspray_da.pyPost-exploitation toolkit — ad_enum.py, spray_admin.sh, spray_da.py, pass_* wordlists
Countries
ColombiaThe concentration in India, Mexico, Colombia, and Southeast Asia is consistent with the Telmex and Airtel credential reuse finding covered earlier telecom and ISP operators in these markets routinely manage FortinetIndiaIndia leads the attributed device count at 9,629 more than the United States (6,355) and Taiwan (3,637) combined. The top five countries alone (India, US, Taiwan, Mexico, Turkey) account for 54% of all attributedMexicothe United States (6,355) and Taiwan (3,637) combined. The top five countries alone (India, US, Taiwan, Mexico, Turkey) account for 54% of all attributed entries, yet the geographic spread runs to 194 countries,TaiwanIndia leads the attributed device count at 9,629 more than the United States (6,355) and Taiwan (3,637) combined. The top five countries alone (India, US, Taiwan, Mexico, Turkey) account for 54% of all attributedTurkeyStates (6,355) and Taiwan (3,637) combined. The top five countries alone (India, US, Taiwan, Mexico, Turkey) account for 54% of all attributed entries, yet the geographic spread runs to 194 countries, confirmingUnited StatesIndia leads the attributed device count at 9,629 more than the United States (6,355) and Taiwan (3,637) combined. The top five countries alone (India, US, Taiwan, Mexico, Turkey) account for 54% of all attributed