Chủ Nhật, 12 tháng 10, 2014

Cách tạo một con "Bot" cho mọi người




Botnet một cái tên nghe rất quen nhưng hầu như còn huyền bí với đa số dân CNTT Việt Nam
Để làm sáng tỏ về botnet và công nghệ tạo một bot hôm nay Shiru xin viết một tutorial về cách tạo một mạng botnet như là kim chỉ nam cho những người muốn hiểu rõ hơn về botnet.


  I.Botnet là gì?

Botnet là một mạng gồm từ hàng trăm tới hàng triệu máy tính bị điều khiển hoàn toàn (theo thuật ngữ người ta gọi các máy tính này là Zombie tức các thây ma),chúng bị điều khiển để cùng làm một công việc gì đó theo mục đích của hacker điều khiển chúng vd: tải về cài đặt các chương trình quảng cáo, hay cùng đồng loạt tấn công một trang web nào đó thông qua kĩ thuật DDoS
  

 II.Mạng BotNet đc tạo nên bởi gì ?

Nền tảng của BotNet là một chương trình máy tính đc thiết kế để liên lạc với hacker ,nhận lệnh và thực hiện lệnh của hacker, người ra gọi chương trình này là"Bot"(viết tắt từ robot).
  

 III.Các con bot liên lạc với hacker bằng gì?

Kể từ những phiên bản đầu tiên các bot đã đc thiết kế để nhận lệnh thông qua các IRC server tức các máy chủ Internet Relay Chat một dạng máy chủ chạy dịch vụ chat công cộng (thường các máy chủ này là các máy chủ thuộc họ *nix ) để nhận đc lệnh từ hacker một cách nhanh nhất.


   IV.Cách tạo một con "Bot":



Với ví dụ này Shiru sẽ dùng ngôn ngữ lập trình Visual Basic để minh họa vì ngôn ngữ này đc nhiều người sử dụng nếu có thời gian NoHat sẽ post thêm bài viết về cách viết bot trên nền ngôn ngữ C++
Con bot này sẽ có tính năng cơ bản là kết nối tới server IRC và trả lời khi hacker hỏi "LiveOrNot"
1.Điều đầu tiên mà bạn phải học là tập lệnh IRC:
Tập lệnh IRC sẽ có sự khác biệt đôi chút khi nó chạy trên các chương trình quản lý IRC server khác nhau
Code:
USER <Real Name> là lệnh thiết lập tên thật cho bot khi nó vào IRC server 
NICK <NickName> là lệnh thiết lập nick name cho bot
JOIN <Channel> là lệnh cho bot truy cập vào một "kênh" (channel),channel tương tự như một room chat vậy
PRIVMSG <Channel> : <Message> là lệnh gửi tin nhắn tới hacker
Thứ tự các lệnh từ 1 tới 3 mà NoHat nêu chính là thứ tự các lệnh mà bạn phải gửi tới IRC server
2.Một số Sub chính cho bot:
Khai báo hằng và biến:
Code:
Const Server As String = " irc.datviet.net" 'tên channel 
Const Port As Integer = 23 'port 
Const Channel As String = "NoHat" 'Kênh mà bot sẽ chui vào
Dim Nick As String 'Nick của bot
Bạn tạo môt Form mới và kéo thả vào đó thành phần WinSock đặt thuộc tính name là ws
Code:
Private Sub Form_Load()
ws.Connect Server, Port 'Tạo một kết nối tới server IRC 
Nick = "Tester" & LTrim(RTrim(Str(Int(Rnd * 100)))) 
End Sub
Sub thực hiện việc gời command sau khi kết nối hoàn thành
Code:
Private Sub ws_Connect()
Dim UserName, RealName As String 
UserName = Nick 
RealName = Nick 
ws.SendData "USER " & UserName & " 0 * " & RealName & vbCrLf 
ws.SendData "NICK " & Nick & vbCrLf 
ws.SendData "JOIN " & Channel & vbCrLf
ws.SendData "PRIVMSG " & Channel & ":" & " Bot chao master" & vbCrLf
End Sub
Sub đáp trả khi bot nhận đc lệnh
Code:
Private Sub ws_DataArrival(ByVal bytesTotal As Long)
Dim strData As String
Dim Pos As Integer
Dim Master As String
ws.GetData strData
DoEvents


If InStr(strData, "liveornot") <> 0 Then
Pos = InStr(1, strData, "!")
Master = Mid(strData, 2, Pos - 2)
ws.SendData Replace(strData, "liveornot", "Live") & vbCrLf
ws.SendData "PRIVMSG " & Master & " " & Replace(strData, "liveornot", "Live") & vbCrLf
End If
EndSub
VII.Điều khiển bot thế nào ?
Để điều khiển bot bạn hãy cho chạy thử con bot trên để làm ví dụ
Sau đó bật một chương trình IRC Client nào đó ví dụ mIRC
Rồi kết nối vào máy server là irc.datviet.net với port 23 ( đáng nhẽ là port 6667 nhưng không hiểu sao đa phần các IRC server của Việt Nam lại dùng port 23 ?! ) với một nick tùy ý
gõ lệnh:
Code:
/JOIN NoHat (phải có dấu "/" vì mIRC .... bắt phải thế chứ IRC server không bắt thế đâu )
là bạn đã có mặt trong cùng channel với bot của bạn
sau đó hãy gõ lệnh:
Code:
LiveOrNot (chú ý viết hoa y chang nếu không con bot nó ngu ra mặt )
Con bot sẽ trả lời bạn rằng
Code:
Live

0 nhận xét:

Đăng nhận xét