A highly optimized, out-of-the-box Windows Honeypot architecture and a 1-day sample dataset of global RDP brute-force attacks.
This project demonstrates how to turn a vulnerable Azure Virtual Machine into an autonomous Threat Intelligence collector using native Windows tools and PowerShell.
Instead of relying on heavy and complex SIEM forwarders (like Azure Sentinel) for basic honeypot logging, this project utilizes a custom, lightweight PowerShell script.
How it works:
- A Windows VM is exposed to the internet on Azure.
- The custom PowerShell script listens to
Event ID 4625(Failed RDP Logins) in real-time. - The script extracts the attacker's IP and queries the
ipgeolocation.ioAPI. - Data is mapped and formatted into a clean dataset ready for Machine Learning / Data Analysis.
- In-Memory IP Caching: To preserve API rate limits, the script caches attacker IPs in RAM. If the same IP attacks 1,000 times, the API is only queried once.
- RecordID Tracking: Prevents log duplication by tracking the Windows Event
RecordID. It logs every single attack frequency accurately without writing duplicates to the dataset.
/scripts/Honeypot_Logger.ps1- The optimized PowerShell autonomous agent./logs/failed_rdp.log- A 1-day real-world snapshot of brute-force attacks (raw format)./docs/- Screenshots and guides on how the Azure environment was configured.
🔒 Privacy & Security Notice: All IP addresses in the
.logfile have been partially masked (e.g.x.x.0.0) to prevent the exposure of real attacker IPs in a public repository. Screenshots in the/docs/directory have also been redacted for the same reason. The geographic metadata (country, state, coordinates) is preserved for analysis purposes, but the original source IPs are anonymized.
- Create a free-tier Windows VM on Azure and open port 3389 to the public.
- Clone this repository to your VM.
- Get a free API key from ipgeolocation.io.
- Edit the
Honeypot_Logger.ps1file and replace<YOUR_API_KEY_HERE>with your key. - Run the script as Administrator and watch the attacks roll in!
Küresel RDP kaba kuvvet (brute-force) saldırılarının 1 günlük örnek veri setini içeren, baştan sona optimize edilmiş, kullanıma hazır bir Windows Honeypot mimarisi.
Bu proje, savunmasız bir Azure Sanal Makinesinin (VM) yerel Windows araçları ve PowerShell kullanılarak otonom bir Tehdit İstihbaratı toplayıcısına nasıl dönüştürüleceğini göstermektedir.
Bu proje, temel honeypot loglaması için ağır ve karmaşık SIEM yönlendiricilerine (Azure Sentinel gibi) güvenmek yerine, hafif ve özel bir PowerShell betiği kullanmaktadır.
Nasıl çalışır:
- Azure üzerinde bir Windows VM oluşturulur ve internete açılır.
- Özel PowerShell betiği, gerçek zamanlı olarak
Olay Kimliği 4625'i (Başarısız RDP Girişleri) dinler. - Betik, saldırganın IP adresini çıkar ve
ipgeolocation.ioAPI'sini sorgular. - Veriler eşlenir ve Makine Öğrenimi / Veri Analizi için hazır, temiz bir veri seti formatına dönüştürülür.
- Bellek İçi IP Ön Bellekleme (In-Memory IP Caching): API hız sınırlarını aşmamak için betik, saldırgan IP'lerini RAM'de ön belleğe alır. Aynı IP 1.000 kez saldırsa bile, API yalnızca bir kez sorgulanır.
- RecordID Takibi: Windows Event
RecordIDizlenerek log (kayıt) kopyalarının önüne geçilir. Veri setine kopya yazmadan her bir saldırı sıklığını doğru bir şekilde kaydeder.
/scripts/Honeypot_Logger.ps1- Optimize edilmiş PowerShell otonom ajanı./logs/failed_rdp.log- Gerçek dünyadan, kaba kuvvet saldırılarının 1 günlük anlık görüntüsü (ham format)./docs/- Azure ortamının nasıl yapılandırıldığına dair ekran görüntüleri ve kılavuzlar.
🔒 Gizlilik ve Güvenlik Bildirimi:
.logdosyasındaki tüm IP adresleri, gerçek saldırgan IP'lerinin herkese açık bir depoda ifşa edilmesini önlemek amacıyla kısmen maskelenmiştir (örn.x.x.0.0)./docs/klasöründeki ekran görüntülerindeki IP adresleri de aynı gerekçeyle sansürlenmiştir. Coğrafi meta veriler (ülke, eyalet, koordinatlar) analiz amacıyla korunmuştur, ancak kaynak IP adresleri anonimleştirilmiştir.
- Azure üzerinde ücretsiz seviyede bir Windows VM oluşturun ve 3389 numaralı portu herkese açık olacak şekilde açın.
- Bu depoyu sanal makinenize klonlayın.
- ipgeolocation.io adresinden ücretsiz bir API anahtarı alın.
Honeypot_Logger.ps1dosyasını düzenleyin ve<YOUR_API_KEY_HERE>kısmını kendi anahtarınızla değiştirin.- Betiği Yönetici (Administrator) olarak çalıştırın ve gelen saldırıları izleyin!