Sunucuma bilerek tuzak kurdum: 3 günde 821 şifre denemesi
Yeni açtığınız bir Linux sunucusu ne kadar sürede bulunuyor? Bunu kendi gözümle görmek için sunucuma bilerek bir tuzak kurdum. Buna İngilizcede honeypot, yani bal küpü deniyor. Dışarıdan gerçek bir sunucu gibi görünüyor, zayıf şifreleri kabul ediyor ama içeri girenin yazdığı hiçbir komut gerçekten çalışmıyor. Hepsi kaydediliyor.
Kısaca söyleyeyim, 3 gün 9 saatte 234 farklı IP adresinden 821 şifre denemesi geldi. Kapıyı çalanların neredeyse hepsi insan değil, interneti durmadan tarayan botlar. Bu botlar dosyalarınızla ilgilenmiyor, işlemcinizi ve IP adresinizi istiyor. Sunucusu internete açık olan herkes için önemli bir deney oldu.
Videoyu izlemek isterseniz:
Bu yazıda videoda hızlı geçtiğim rakamları, komutları ve linkleri bulacaksınız.
Tuzak nasıl çalışıyor
Tuzağı Cowrie adlı açık kaynak bir yazılımla kurdum. Cowrie SSH ve Telnet kapılarında bekliyor. Biri bağlandığında ona sahte bir Linux kabuğu açıyor ve yazdığı her şeyi satır satır kaydediyor.

Bunu kendi bilgisayarınızda ya da verinizin olduğu bir sunucuda yapmayın. Ben üzerinde hiçbir şeyim olmayan sıfır bir sunucu açtım. Hosting Dünyam'dan en küçük paketlerden biri olan TR-VPS2'yi aldım, 2 çekirdek ve 2 GB RAM bu deney için fazlasıyla yetiyor. İşletim sistemi Ubuntu.
Kurulum
İlk iş gerçek SSH'ı başka bir kapıya taşımak. 22. port tuzağa kalacak, sizin girdiğiniz kapı başka bir numara olacak. Ben 49822'yi kullandım ve şifreyle girişi de kapattım:
sed -i 's/^#\?Port .*/Port 49822/' /etc/ssh/sshd_config
sed -i 's/^#\?PasswordAuthentication .*/PasswordAuthentication no/' /etc/ssh/sshd_config
systemctl daemon-reload
systemctl restart ssh.socket
Ubuntu 24.04'te SSH socket üzerinden açılıyor, bu yüzden ssh.socket yeniden başlatılıyor. Eski pencereyi kapatmadan yeni bir terminalden ssh -p 49822 root@SUNUCU_IP ile girebildiğinizi kontrol edin, yoksa kendinizi dışarıda bırakırsınız.
Sonra Docker'ı kurup Cowrie'yi çalıştırdım:
curl -fsSL https://get.docker.com | sh
docker run -d --name cowrie --restart unless-stopped \
-p 22:2222 -p 23:2223 \
-e COWRIE_TELNET_ENABLED=yes \
-e COWRIE_SSH_FORWARDING=false \
-e COWRIE_HONEYPOT_HOSTNAME=web01 \
-e COWRIE_HONEYPOT_DOWNLOAD_LIMIT_SIZE=10485760 \
-v cowrie-var:/cowrie/cowrie-git/var \
--cap-drop ALL --read-only --security-opt no-new-privileges:true \
cowrie/cowrie:3.0.15

Bu satırların her birinin bir nedeni var. -p 22:2222 -p 23:2223 SSH ve Telnet'in herkesin bildiği kapılarını tuzağa bağlıyor. Telnet varsayılan olarak kapalı geliyor ama eski modem ve kamera botları hâlâ Telnet deniyor, o yüzden açtım.
COWRIE_SSH_FORWARDING=false satırını sakın atlamayın. Cowrie'nin varsayılanında yönlendirme açık. Açık kalırsa içeri giren biri sunucunuzu tünel olarak kullanıp sizin IP'nizden başka sunuculara saldırabiliyor. Daha fazla veri gelir ama başınıza iş açılan sizin IP'niz olur.
Sunucu adını da web01 yaptım. Cowrie'nin varsayılan adı svr04 ve bazı botlar bu adı görünce honeypot'ta olduklarını anlıyor. İndirme sınırı ise saldırganların çektiği dosyaları 10 MB'la sınırlıyor, disk dolmasın diye.
Tuzağı önce kendim denedim
Kendi bilgisayarımdan 22. porta bağlandım ve şifre olarak admin yazdım. Girdim. Bu kurulumda Cowrie, root için yalnız root ve 123456 şifrelerini reddediyor, gerisini kabul ediyor.

İlginç bir detay var. Sunucu Ubuntu ama uname -a yazınca Debian çıkıyor. Çünkü karşımdaki gerçek sistem değil, Cowrie'nin taklit ettiği sahte bir Debian. ls, cat /etc/passwd gibi komutlar da gerçekmiş gibi cevap veriyor. Yazdığınız her şeyi görmek için sunucuda şunu çalıştırmanız yeterli:
docker logs cowrie --tail 30
Sonra deneyin başlangıç saatini kaydettim ve sunucuyu kendi haline bıraktım. IP adresini hiçbir yerde paylaşmadım, alan adı da bağlamadım. Yani gelen her bağlantı interneti tarayıp bizi kendi buldu.

3 gün sonra rakamlar
Planım 24 saat beklemekti, 3 gün 9 saat bekledim. Kayıtları okumak için Claude'a küçük bir panel yazdırdım. Panel sunucuya bağlanıp Cowrie'nin kayıtlarını canlı okuyor.

| Ne | Kaç |
|---|---|
| Şifre denemesi | 821 |
| Farklı IP adresi | 234 |
| Farklı ülke | 59 |
| İçeri girdiğini sanan | 819 |
| Yazılan komut | 535 |
| İndirmeye çalışılan dosya | 17 |
"İçeri girdiğini sanan" sayısını yanlış okumayın. 819 kişi şifre kırmadı, tuzak neredeyse her şifreyi kabul ettiği için içeride olduklarını sandılar.
En çok hangi şifreler deneniyor
Listenin tepesinde 0 kullanıcı adı ve 0 şifresi duruyor ama bu yanıltıcı. 0/0 girişlerinin tamamı üç ağdaki altı IP'den geldi ve bunun nedenini aşağıda anlatacağım.
Bunları çıkarınca tablo tanıdık. En çok denenen kullanıcı adı root, sonra support, admin, ubuntu, deploy. İkililerde support / support 25, admin / admin 13 kez denendi. Şifrelerde 123456, admin, 123, password var.
Neden bunlar? Çünkü insanlar bunları kullanıyor. "Hızlıca bir şey kurayım" derken varsayılan şifreyle açılan sunucular ve cihazlar botların ilk denediği yer.
Saldırılar nereden geliyor
Japonya'dan 279, İsveç'ten 224, İsviçre'den 133, Hollanda'dan 107 bağlantı geldi. Türkiye'den de 32 bağlantı var.

Bu ülkeleri saldırganın yeri sanmayın. Konum bilgisi IP adresinden tahmin ediliyor ve bu adreslerin çoğu daha önce ele geçirilmiş sunucular, modemler ya da VPN'ler. Japonya'nın birinci olmasının nedeni de tek bir adres, onu da aşağıda anlatacağım.
İçeri girince ne yaptılar
En çok yazılan komut uname -s -v -n -r -m, 278 kez. Bu komut işletim sistemini, çekirdek sürümünü ve işlemci mimarisini söylüyor. Bir nevi envanter çıkarıyor, "nereye girdim" diye bakıyor.

Fransa'dan gelen bir oturum tek satırda işletim sistemini, apt olup olmadığını, işlemci hızını, çekirdek sayısını ve RAM'i sordu. Neden işlemci hızına bakıyor? Büyük ihtimalle madenci kurmaya değer mi diye sunucuyu tartıyor.

Listede enable, system, shell, sh sırası da sık geçiyor. Botlar bu komutlarla router ya da IoT cihazının menüsünden gerçek Linux kabuğuna kaçmaya çalışıyor. /bin/busybox ile başlayan satırlar ise cihazın gerçek olup olmadığını test ediyor.
Kameranızı arıyorlar
Telnet kapısına gelen botlar sunucu aramıyor. Ucuz IP kameraları, kayıt cihazları ve modemlerin fabrika şifrelerini deniyorlar. Mesela vstarcam2015 / 20150602 VStarcam kameraların gizli Telnet hesabı (NETSCOUT). root / hi3518 HiSilicon çipli kameraların varsayılan şifresi ve Mirai'nin hazır listesinde de var (Mirai kaynak kodu).

Kameraların bu kadar aranmasının nedeni para. Ele geçirilen ev ve otel kameralarının görüntüleri Telegram gruplarında paket paket, hatta canlı erişimle satılıyor. Vietnam'daki bir grubun en pahalı paketi yüzlerce kameranın 4 yıllık kaydını ve canlı erişimi yaklaşık 33 dolara veriyordu (Hackread). Hindistan'da da en az 50 bin güvenlik kamerasından görüntü çalan bir ağ ortaya çıktı ve bazı Telegram kanalları bu kameralara ücretli abonelikle canlı erişim satıyordu (Ynet).
Evdeki kameranın şifresini değiştirin. Kamerayı internete doğrudan açmayın.
Botnetler kendini ele veriyor
echo -e "\x47\x41\x59\x46\x47\x54" komutu ekrana GAYFGT basıyor. Gafgyt (BASHLITE) ailesi "komutlarım çalışıyor mu" diye bu satırla kontrol ediyor (Dark Reading). 16 kez gördüm. /bin/busybox SORA ise Mirai'nin Sora türevinin test etiketi (analiz).
Bot uydurma bir komut soruyor ve gerçek bir cihazın vereceği "böyle bir komut yok" cevabını bekliyor. Cevap doğruysa botnet yazılımını yüklemeye geçiyor. Bu yüzden bu satırları gördüğünüzde karşınızda elle çalışan biri olmadığını biliyorsunuz. Her şey önceden yazılmış bir senaryo.
Ardından virüsü bırakacak yer arıyorlar. >/tmp/d && chmod 777 /tmp/d && /tmp/d satırını /tmp, /var, /dev/shm, /etc, /root gibi on iki klasörde tek tek deniyorlar. Hangisine yazabilirlerse dosyayı oraya indirecekler.
Aynı bot, iki ülke
30 Eylül'de Türkiye'den, 1 Ekim'de Ukrayna'dan gelen iki Telnet bağlantısı 32 komutluk birebir aynı diziyi yazdı. İkisi de aynı adresten dosya çekmeye çalıştı. Önce wget, o olmazsa tftp, o da olmazsa ftpget.

Bu iki IP büyük ihtimalle saldırganın kendi bilgisayarı değil. Daha önce ele geçirilmiş bir modem, kamera ya da sunucu. Saldırgan yeni kurbanları bu cihazların üzerinden arıyor. Sizin modeminiz de bu listede olabilir ve haberiniz olmaz.
VirusTotal'da madenciler ve trojanlar
Dört bağlantı hiç komut yazmadan doğrudan sshd adlı bir dosya yükledi. Adı bilerek sshd, çalışan programlara bakan biri onu SSH servisi sanıp geçsin diye (SANS ISC).

Bu dosyaları açmadım, çalıştırmadım. VirusTotal'da yalnız özetlerini aradım. Üç farklı dosyanın ikisinin içinde XMRig, yani Monero madencisi ayarları var. Hangi havuza bağlanacağı ve kimin hesabına kazacağı yazıyor.

Bir uyarı yapayım, VirusTotal sayfasındaki "Code insights" kutusu bu dosyayı Tailscale'in zararsız bir parçası diye özetliyor. Bu kutu VirusTotal'ın yapay zeka özeti ve 37 antivirüsle çelişiyor. Ona güvenmeyin.

Japonya'dan 9 dakikada 281 bağlantı
1 Ekim'de 11:20 ile 11:29 arasında Japonya'daki tek bir adres, Go ile yazılmış bir programla 281 kez bağlandı. 278'inde yalnız uname yazıp çıktı. O saatte toplam 295 bağlantı var, bir sonraki en yoğun saatte 27. Saat grafiğindeki büyük çubuk bu.

Saldırmıyor, envanter çıkarıyor. Hangi adreste hangi sistem var diye liste tutuyor. Aynı desen başka tuzaklarda da görülmüş.
Botlar da beni tanıdı
0/0 girişlerine dönelim. Altı IP, dört gün boyunca 0 kullanıcı adı ve 0 şifresiyle girdi ve tek bir komut yazmadan çıktı.
Gerçek bir sunucu 0 şifresini asla kabul etmez. Kabul ediyorsa karşınızda bir tuzak var demektir. Tarayıcıların tuzakları "çalışmaması gereken" şifrelerle tespit ettiği belgelenmiş bir yöntem (SANS ISC). 0/0'ın özellikle bu amaçla kullanıldığına dair bir kaynak bulamadım ama büyük ihtimalle bu botlar sunucumu honeypot olarak işaretledi. Ben onları izlerken bazıları da beni izliyordu.
Bu deneyi tekrar yapsam tuzağı bazı şifreleri reddedecek şekilde ayarlardım. 0 gibi saçma şifreleri reddeden bir tuzak, gerçek bir sunucuya çok daha çok benzer.
Benim sunucumda değerli bir şey yok ki
Bazılarınız diyecek ki abi benim sunucumda değerli hiçbir şey yok, kim uğraşsın. Ama bu botlar dosyalarınızla ilgilenmiyor. İşlemcinizi madencilik için, IP adresinizi de başkasına saldırmak için istiyorlar.
Bu sadece sunucular için geçerli değil. Evdeki modeminizde açık port bıraktıysanız ya da bilgisayarınıza virüs girdiyse sizin IP adresiniz de bu şekilde kullanılabiliyor. Bir saldırının izi size çıktığında "benim haberim yoktu" demek işinize yaramaz.
Benim tuzağımda bu komutların hiçbiri çalışmadı. Şifresi zayıf gerçek bir sunucuda aynı komutlar gerçekten çalışırdı.
Bu botları nasıl durdurursunuz
Bu yazıdaki denemelerin neredeyse hepsi şifre denemesi. Şifreyle girişi kapatıp yalnız SSH anahtarıyla girerseniz bu listedeki denemelerin hiçbiri işe yaramıyor. SSH portunu değiştirmek gürültüyü azaltıyor, Fail2ban de tekrar tekrar deneyen adresleri engelliyor.
Ama bu yalnız şifre denemelerini kapatıyor. Güncellenmemiş bir yazılımdaki açık ya da çalınan bir anahtar başka bir yol. Bu adımların hepsini ve fazlasını daha önce çektiğim videoda anlattım:
Aynı deneyi yapacaksanız deney bitince konteyneri ve kayıtları silin, sunucuyu sıfırlayın:
docker rm -f cowrie
docker volume rm cowrie-var
Botların indirdiği dosyalar da bu volume'la birlikte gidiyor. Hiçbirini kendi bilgisayarınıza kopyalamayın.
Kaynaklar
- Cowrie
- Hosting Dünyam VPS
- VirusTotal
- Kamera şifreleri: NETSCOUT, Mirai scanner.c, Mirai honeypot yazısı
- Kamera görüntüsü satışı: Hackread, Ynet
- Botnet imzaları: Dark Reading, Mirai Sora analizi
- SANS ISC, sshd adlı madenci
- Başka bir Cowrie deneyi
- SANS ISC, honeypot tespiti
- 2026'da Sunucunu Nasıl Korursun? (3 Seviye)