1. Tải bản cài đặt AutoIT mới nhất

    Chào Khách. Nếu bạn mới tham gia và chưa cài đặt AutoIT.
    Vui lòng vào topic trên để tải bản AutoIT mới nhất nhé
    Dismiss Notice
  2. Quy định và nội quy

    Chào Khách. Vui lòng đọc kỹ nội quy và quy định của diễn đàn
    Để tránh bị ban một cách đáng tiếc nhé!
    Dismiss Notice
  3. Hướng dẫn chèn mã AutoIT trong diễn đàn

    Chào Khách. Vui lòng xem qua bài viết này
    Để biết cách chèn mã AutoIT trong diễn đàn bạn nhé :)
    Dismiss Notice

Hướng dẫn Gợi ý request xtgem.com (cơ sở cho botnet)

Thảo luận trong 'Hướng dẫn - Bài tập căn bản' bắt đầu bởi Quản lượng, 8/8/17.

  1. Quản lượng

    Quản lượng qlf
    • 18/23

    Tham gia ngày:
    27/4/17
    Bài viết:
    74
    Đã được thích:
    39
    Hiện tại trang web xtgem đã chỉnh sửa nên code của mình không còn sử dụng được nữa. Bài viết này chỉ mang tính chất tham khảo

    [Update 1][Đây là software của mình]:https://autoitvn.com/threads/dieu-khien-may-tinh-tu-xa-hay-con-goi-la-botnet_muc-dich-xau.1025/
    Hôm qua, viết bài viết này, mình tính để file ini để thiết kế thêm một số chức năng nữa. Nhưng mà mình làm biếng quá, với lại sắp vô năm học rồi hè không còn nhiều ==> Phải tận hưởng :v
    Bây giờ nó chỉ có 2 chức năng là gửi phím và shutdown



    Đây là tài khoản mình tạo bằng mail 10 phút để test:

    Đầu tiên cần nói đến là cái dữ liệu post lên để login: 'http://www.xtgem.com/login'
    'email='_Tên email_'&password='_Mật khẩu_'&action=login: undefined'

    Sau đó request 3 web trung gian. Phải request hết theo thứ tự bên dưới, thiếu 1 trong cái là thất bại:
    Mã (Text):

    'http://www.xtgem.com/account/site_login?site='_tên domain của web_'.xtgem.com'

    'http://www.xtgem.com/api/get_locale_strings?locale=US&version=$_='_mã hóa thời gian_

    'http://www.xtgem.com/api/act?action=open_file&version=&args=file%3D&__u='_tên domain của web_'.xtgem.com&_='_mã hóa thời gian_

    Mình mò ra được cách mã hóa thời gian của nó như sau:

    - Thời gian của máy chủ và thời gian máy của mình không đồng bộ với nhau. Với lại nhiều lúc nó gửi xuống là năm 1981. Vậy mình phải lọc được thời gian của nó:

    [​IMG]

    Nó ở ngay cái dòng Expires: ... Sau đó dùng hàm _TimeStampUNIX(...) với cái thời gian nhận được rồi ghép 3 số ngẫu nhiên vào cuối:

    Mã (AutoIt):
    Global $TimeServer
    Func UpdateTime($Header) ; Lưu lại cái thời gian sau mỗi lần request 1 web, để có thể request được các web tiếp theo
        $tmp = StringRegExp($Header,'expires=[^,]+, (.*?)GMT;',1)
        $TimeServer = @error? $TimeServer : $tmp[0]
    EndFunc

    Func TranslateTime($time)
        $day = StringMid($time,1,2)
        if (@error) Then return 0
        Local $month = 0
        switch StringMid($time,4,3)
            Case 'Jan'
                $month=1
            Case 'Feb'
                $month=2
            Case 'Mar'
                $month=3
            Case 'Apr'
                $month=4
            Case 'May'
                $month=5
            Case 'Jun'
                $month=6
            Case 'Jul'
                $month=7
            Case 'Aug'
                $month=8
            Case 'Sep'
                $month=9
            Case 'Oct'
                $month=10
            Case 'Nov'
                $month=11
            Case 'Dec'
                $month=12
        EndSwitch
        if ($month=0) Then return 0
        $year=StringRegExp($time,'(\d{4})',1)
        $year=@error ? '' : $year[0]
        $hour=StringRegExp($time,' (\d+):',1)
        $hour=@error ? '' : $hour[0]
        $min=StringRegExp($time,':(\d+):',1)
        $min=@error ? '' : $min[0]
        $sec=StringRegExp($time,':(\d+) ',1)
        $sec=@error ? '' : $sec[0]
        if ($year='' or $hour='' or $min='' or $sec='') Then return 0
        Return _TimeStampUNIX($year,$month,$day,$hour,$min,$sec)
    EndFunc

    Func TimeConvert($time)
        local $res=(TranslateTime($time)+1) & StringTrimLeft(Random(1000,1999,1),1)
        return $res
    EndFunc

    Ở cái web thứ 3 nó có version, token name và token value để request post dữ liệu, nhớ lọc nó ra:

    [​IMG]

    Cuối cùng là post dữ liệu lên:
    Mã (Text):
    'www.xtgem.com/api/act?editor_open&file%3Dindex&'_token name_'%3D'_token value_'&editor_mode%3Dhtmlmixed&content%3D'_URLEncode(_chuỗi muốn gửi_)_&'&submit%3DSave&__u='_tên domain của web_'.xtgem.com'
    Dữ liệu gửi đi là:
    Mã (Text):
    'action=editor_open&version='_version_'&args=file%253Dindex%253B'_token name_'%253D'_token value_'%253Beditor_mode%253Dhtmlmixed%253Bcontent%253D'_URIEncode(URIEncode(_chuỗi cần gửi_))_'%253Bsubmit%253DSave'
    Chú ý: Mình không ghi nhầm đâu, chuỗi cần gửi ở trong url encode 1 lần, ở trong dữ liệu gửi đi encode 2 lần.

    Hiện tại mình đã request post dữ liệu lên đó được rồi, test 2 máy không liên quan chạy tốt luôn (một máy post, một máy get rồi thực hiện lệnh). Nhưng chức năng của thằng get request quá ít, với lại chưa có giao diện của thằng post request. Khi nào hoàn thành mình sẽ đăng ở mục sản phẩm.
     
    Chỉnh sửa cuối: 6/10/17
    kakanet, longtu and Huân Hoàng like this.

Chia sẻ trang này

Đang tải...