389,636,3268,3269-Pentesting LDAP

LDAP (Lightweight Directory Access Protocol) istər ictimai İnternetdə, istərsə də korporativ intranetdə hər kəsə təşkilatları, şəxsləri və fayl və qurğular kimi şəbəkədəki digər resursları tapmaq imkanı verən proqram protokoludur. LDAP Kataloq Giriş Protokolunun (DAP) "yüngül" (daha az miqdarda kod) versiyasıdır.

Default port: 389 və 636 (ldaps). Qlobal Kataloq (Active Directory-də LDAP) standart olaraq 3268 və LDAPS üçün 3269 portlarında mövcuddur.

Script ldap-search

LDAP axtarışını həyata keçirməyə cəhd edir və bütün uyğunluqları qaytarır.

Skriptə heç bir istifadəçi adı və parol təqdim edilmədikdə, Nmap reyestrinə müraciət edilir. Ldap-brute skripti seçilibsə və etibarlı hesab tapıbsa, bu hesab istifadə olunacaq. Deyilsə, anonim bağlama son cəhd kimi istifadə olunacaq.

SCRIPTS

ldap.searchattrib

'Xüsusi' qfiltr ilə istifadə edildikdə, bu parametr istifadəçiyə axtarış meyarları kimi fərdi atribut və dəyəri təyin etməyə imkan vermək üçün ldap.searchvalue ilə birlikdə işləyir.

ldap.maxobjects

Əgər təyin edilərsə, skript tərəfindən qaytarılan obyektlərin sayını əvəz edir (defolt 20). -1 dəyəri limiti tamamilə aradan qaldırır.

ldap.qfilter

Quraşdırılıbsa, sürətli filtri təyin edir. Kitabxana real LDAP filtrlərinin təhlilini dəstəkləmir. Filtr parametri üçün aşağıdakı dəyərlər etibarlıdır: kompüter, istifadəçilər, ad_dcs, xüsusi və ya hamısı. Heç bir dəyər göstərilməyibsə, defolt olaraq hamıya verilir.

ldap.attrib

Əgər təyin edilərsə, axtarışa yalnız göstərilən atributlar daxil olacaq. Tək atribut üçün sətir dəyəri istifadə oluna bilər, əgər birdən çox atributun verilməsi lazımdırsa, bunun əvəzinə cədvəldən istifadə edilməlidir.

ldap.searchvalue

'Xüsusi' qfiltr ilə istifadə edildikdə, bu parametr istifadəçiyə axtarış meyarları kimi fərdi atribut və dəyəri təyin etmək imkanı vermək üçün ldap.searchattrib ilə birlikdə işləyir. Bu parametr '*' ulduz işarəsinin joker işarə kimi istifadəsinə İCAZƏ VERİR.

ldap.password

Quraşdırılıbsa, LDAP serverinə autentifikasiya etmək üçün istifadəçi adı ilə birlikdə istifadə olunur

ldap.savesearch

Əgər təyin edilərsə, skript çıxışı göstərilən yol və adla başlayan faylda saxlayacaqdır. .CSV fayl şəkilçisi, eləcə də host adı və port seçilmiş çıxış növü əsasında avtomatik əlavə olunacaq.

ldap.username

Quraşdırılıbsa, skript istifadəçi adı və paroldan istifadə edərək LDAP bağlamasını yerinə yetirməyə çalışacaq

ldap.base

Əgər təyin edilərsə, skript onu axtarış üçün əsas kimi istifadə edəcək. Defolt olaraq defaultNamingContext alınır və istifadə olunur. Əgər defaultNamingContext mövcud deyilsə, skript mövcud adlandırma kontekstləri üzərində təkrarlanır.

nmap -p 389 --script ldap-search --script-args 'ldap.username="cn=ldaptest,cn=users,dc=cqure,dc=net",ldap.password=ldaptest, ldap.qfilter=users,ldap.attrib=sAMAccountName' <host>

Ldapdomaindump

Credentials ilə

ldapdomaindump -u security.local\\\\<User> -p '<Password>' ldap://<IP>

Credentials olmadan

ldapdomaindump ldap://<IP>

Search LDAP

cn - Common Name

dc - Domain Component

ou - Organizational Unit

-D: bind DN

-w: bind password

-H: IP

ldapsearch -x -H ldap://10.0.0.1 -b "dc=example,dc=com" -D "cn=admin,dc=example,dc=com" -w password

Credentiallar varsa, Active Directory məlumatını LDAP vasitəsilə əldə edə bilərsiniz.

--no-html: HTML çıxışını söndürün

--to-grep: grepable çıxışı söndürün

-to: Çıxış dir

ldapdomaindump -u 'DOMAIN\\username' -p password <target-ip> --no-html --no-grep -o dumped

Unauthenticated Bind Enumeration (DN with no password)

DN cn=admin,dc=acme,dc=com və parol olmadan istifadə edərək kataloq alt ağacında bütün istifadəçi identifikatorlarını axtarmağa cəhd edək.

Doğrulanmamış Bağlamalara yalnız Anonim Bağlamalar da aktiv olduqda icazə verilir.

Authenticated Bind Enumeration

Doğrulanmış LDAP bağlaması üçün bəzi parolları, tercihen ldap administratorlarını sındırmalıyıq. Biz həmçinin md5 və s. kimi istifadə edilən identifikasiyanı müəyyən etməliyik.

Saxta paroldan istifadə edərək və daxil olmağa çalışaraq identifikasiya metodunu əldə edə bilərik

Etibarlı istifadəçiləri tapmaq üçün attack

Aşağıdakı sadə skript etibarlı istifadəçiləri axtarır və tapılarsa, seçilən adı qaytarır. Bu, bu axtarışda tapdığımız hesablar üçün parolları təxmin etmək olan növbəti addımımızda bizə kömək edəcək.

#!/usr/bin/env perl
use strict;
use warnings;
use Net::LDAP;my $server   = "ldap.acme.com";
my $base     = "dc=acme,dc=com";
my $filename = "users.txt";open(my $fh, '<', $filename) or die $!;my $ldap = Net::LDAP->new($server) or die $@;while (my $word = <$fh>) {
chomp($word);    my $search = $ldap->search(
base    => $base,
scope   => 'sub',
filter  => '(&(uid='.$word.'))',
attrs   => ['dn']
);    print "[+] Found valid login name $word\\n" if(defined($search->entry));

}

İndi skripti işlədirik

sam@asus:~/public_html% ./ldap-users.pl
[+] Found valid login name twest
[+] Found valid login name vpatel
[+] Found valid login name hahmad
[+] Found valid login name ealvarez
[+] Found valid login name skumar

Metasploit

LDAP Enumeration

use auxiliary/gather/ldap_query
run rhost=192.168.123.13 [email protected] password=p4$$w0rd action=ENUM_ACCOUNTS

Last updated

Was this helpful?