2.7 KiB
2.7 KiB
AttackTracer Reverse Engineering Notes
What the legacy app does
AttackTracer is a .NET Framework 4.5 WinForms application installed under Servolutions\BotFence.
Its main behavior is:
- scan Windows Event Logs for failed logins
- Security
4625for Windows logons - Application
18456for SQL Server login failures - Application
1035for Exchange-related login failures
- Security
- scan IIS/FTP logs under
C:\inetpub\logs\LogFilesandD:\inetpub\logs\LogFiles - scan FileZilla Server logs under both
C:andD: - aggregate attacks by source IP
- geolocate IPs through
http://www.autotimezone.net/atzonline/atz.svc - render a top-10 result list and an HTML report
- optionally email the report through
http://pulse.serverpulse.com/PulseCounter/notifications.svc
Important weaknesses in the old design
- UI-first architecture
- the app is a desktop WinForms tool instead of a background service or scheduled automation
- hard-coded paths
- it only checks a few fixed IIS and FileZilla folders
- legacy external dependencies
- geolocation and email both depend on old unauthenticated HTTP WCF endpoints
- weak integration model
- results are shown locally or emailed, but not pushed into a central operations system
- mixed responsibilities
- scanning, aggregation, rendering, and notification all live inside the same form workflow
Meaningful direction for a NinjaOne-connected replacement
Instead of reviving the WinForms app, the better replacement is a small service or scheduled CLI with this split:
- collectors
- Windows Security/Event Log collector
- IIS/FTP log collector
- FileZilla collector
- normalization
- normalize all findings into one event schema like:
timestampsourceIptargetTypeusernamesource
- normalize all findings into one event schema like:
- correlation
- aggregate by IP and time window
- compute severity, velocity, and repeated targets
- outputs
- JSON report on disk
- HTML report if needed
- NinjaOne-facing output channel
Suggested NinjaOne integration patterns
Because there is no NinjaOne code in this repository yet, the safest first integration targets are:
- write a machine-readable JSON summary that a NinjaOne script can collect
- emit a plain-text summary to stdout for script-result capture
- optionally write a CSV or HTML artifact for technicians
- keep notification transport separate so we can later swap in a NinjaOne API client, webhook, or custom-field updater
Practical next step
Build a new AttackTracer replacement around a headless scanner first, then add the NinjaOne transport as a separate adapter.
That lets us preserve the useful detection logic while dropping:
- WinForms
- WCF
- external HTTP dependencies
- vendor-specific mail plumbing