Initial Enumeration of the Domain

Setting Up

Ta sẽ bắt đầu trên một máy chủ cho phép tấn công mà ta được truy cập vào vùng mạng của nó. Đây cũng là cách phổ biến mà khách hàng có thể chọn foothold cho việc pentest. Danh sách các setting up mà khách hàng có thể chọn:

  • Một máy ảo (thường là linux) được đặt trong cơ sở hạ tầng nội bộ mà ta có thể jump host qua VPN và SSH vào.

  • Một thiết bị vật lý được cắm vào cổng ethernet qua VPN và ta có thể SSH vào.

  • Có thể đến onsite trực tiếp tại văn phòng và cắm cổng ethernet vào laptop của mình.

  • Một máy ảo Linux trong Azure hoặc AWS có quyền truy cập vào mạng internal mà ta có thể SSH sử dụng xác thực public key và IP được whitelist.

  • Khách hàng cung cấp cấu hình VPN (bị hạn chế bởi nhiều yếu tố kể đến như Zero-Trust).

  • Trên workstation được quản lý (thường là Windows), ngồi trong văn phòng của khách hàng với quyền truy cập internet hạn chế, cũng có thể chọn tùy chọn này nhưng cung cấp cho mình quyền truy cập internet đầy đủ, quản trị đặc biệt và đưa vào chế độ theo dõi manual.

  • Trên VDI (virtual desktop) được truy cập bằng VMWare Horizon hoặc tương tự, với một trong các cấu hình được mô tả giống workstation được quản lý thường có thể truy cập qua VPN từ xa.

Trên đây là một số cách thức phổ biến nhất mặc dù khách hàng có thể nghĩ ra một số biến thể khác, chỉ cung cấp cho chúng ta một danh sách các địa chỉ IP trong phạm vi mạng CIDR internal.

⇒ Kiểu pentest blackbox này rất thường gặp tại Việt Nam.

Tasks

  • Enum được network internal, xác định được các hosts, các dịch vụ quan trọng và các foothold.

  • Tận dụng các máy chủ và lỗ hổng để tiếp tục truy cập

  • Ghi lại bất kì phát hiện nào. Cực kì quan trọng!

Chúng ta sẽ bắt đầu từ một máy Linux mà không cần thông tin đăng nhập người dùng domain nào.

Nhiều tổ chức sẽ muốn xem bạn có thể làm gì từ blind perspective, chẳng hạn như thế này, trước khi cung cấp cho bạn thêm thông tin cho bài test. Nó cung cấp một cái nhìn thực tế hơn hướng đi mà attacker sẽ sử dụng khi xâm nhập vào domain.

Nó có thể giúp họ xem attacker có thể làm gì nếu họ truy cập trái phép qua internet (phishing), truy cập wireless từ bên ngoài (nếu wireless kết nối tới AD) hoặc thậm chí là lừa đảo một nhân viên. Tùy thuộc vào mức độ thành công của giai đoạn này, khách hàng có thể cung cấp cho chúng ta quyền truy cập vào máy chủ tham gia miền hoặc một bộ thông tin đăng nhập cho mạng để đẩy nhanh quá trình này.

Key Data Points

Data Point

Description

AD Users

Enum các user account hợp lệ mà có thể spray passwords

AD Joined Computers

Key Computers bao gồm Domain Controllers, file servers, SQL servers, web servers, Exchange mail servers, database servers, etc.

Key Services

Kerberos, NetBIOS, LDAP, DNS

Vulnerable Hosts and Services

Anything (có thể đặt làm foothold)

Identifying Hosts

Đầu tiên rất quan trọng ta cần listen network xem có packet hay traffic nào đang trao đổi trong mạng thông qua thiết bị này không:

Wireshark:

Tcpdump:

Responder:

FPing Active Checks:

Nmap Scanning:

Identifying Users

Nếu khách hàng không cung cấp user để bắt đầu test (thường là vậy), mình sẽ cần tìm cách thiết lập một chỗ đứng trong tên miền bằng cách lấy thông tin xác thực cleartext hoặc hash password NTLM cho user, một shell SYSTEM trên một máy chủ join domain hoặc một shell trong user trong domain.

Việc có được một valid user có credential là rất quan trọng trong giai đoạn đầu của này. Quyền truy cập này (ngay cả ở cấp độ thấp nhất) mở ra nhiều cơ hội để thực hiện enum và attack

Kerbrute

Kerbrute là một công cụ khá là "stealth" trong việc enum user. Nó tận dựng thực tế các lỗi xác thực mà không lên cảnh báo. Mình sẽ sử dụng kerbrute kết hợp với userlist từ Insidetrust.

Download prebuild: https://github.com/ropnop/kerbrute/releases

Chuyển vào usr path:

Identifying Potential Vulnerabilities

Tài khoản local system NT AUTHORITY\SYSTEM là tài khoản built-in của hệ điều hành Windows. Đây là tài khoản chạy với quyền cao nhất trong hệ thống. Các service chạy với user này là rất phổ biến. Có quyền truy cập SYSTEM tương đương với việc có một tài khoản join domain.

Một số hướng có được truy cập SYSTEM-level access trong host:

  • Remote Windows exploits kiểu như MS08-067, EternalBlue, or BlueKeep.

  • Abuse service account có quyền SeImpersonate sử dụng Juicy Potato. Thường trên các OS Windows Server cũ.

  • Lỗ hổng LPE Windows.

  • Có quyền admin-access trên host join domain bằng local account để chạy Psexec.

Sau đó ta có thể thực hiện một số hành động như:

  • Enum domain bằng các offensive tools như: BloodHound hay PowerView.

  • Thực hiện Kerberoasting/ASREPRoasting.

  • Chạy các tools như Inveigh để thu thập Net-NTLMv2 hashes hoặc SMB relay attacks.

  • Hijack một token impersonation để chiến đoạt một user trong domain.

  • ACL attacks.

Question

From your scans, what is the "commonName" of host 172.16.5.5 ?

What host is running "Microsoft SQL Server 2019 15.00.2000.00"? (IP address, not Resolved name)

Last updated