Đề tài Tìm hiểu virus Hooker

Mục Lục

Tên phần : Trang :

Phần 1: Lời nói đầu 3

Phần 2: Nội Dung 4

I. Sơ lược về virus 4

1. Hooker là gì -2. Lịch sử của virus Hooker

3. Cấu tạo của Hooker 5

II. Cách thức để virus tiếp cận vào máy 7

1. Các dạng lây nhiễm 7

2. Cách lây bám 9

III. Cách thức hoạt động 9

1. Sau khi trojan được kích hoạt chúng sẽ làm những việc như sau -2. Cách thức ngụy trang 14

2.1.Tiến hành việc lấy thông tin -2.2.Tiến hành liên lạc với chủ của nó 15

2.3RPC(Remote Procedure Call) -2.4. Cách thức Config virus Hooker 19

IV. Làm sao để bạn tự bảo vệ mình 20

Phần 3: Tổng Kết 21

pdf21 trang | Chia sẻ: maiphuongdc | Lượt xem: 2548 | Lượt tải: 4download
Bạn đang xem trước 20 trang tài liệu Đề tài Tìm hiểu virus Hooker, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
t hiện thêm lỗi kết nối RAS và cố định lỗi này. Đôi khi nó cũng xung đột với một vài chủ đề.Khi đó keyloggingDll được chứa trong LZW. 2.7.Version 2.3 beta 5: Hooker gửi đi các keylog. Nếu trong cửa sổ chỉ có “.” điều đó có nghĩa là trojan không thể gửi thư đi (Hooker chỉ cần làm đầy hộp thư với một lượng lớn các thư). 2.8.Version 2.3 beta 6: Chỉ cần một chút thay đổi trong thủ tục gửi mail là hooker có thể bắt đầu trên máy mà không cần rasapi32.dll. 2.9.Version 2.4: Không có thêm phiên bản, đây là bản phát hành.Cố định ít lỗi trong tên người dùng và tên máy chủ phát hiện.Có thêm một vài tính năng:  Keylog đầy đủ: nếu không được kiểm tra Hoocker sẽ chỉ đăng nhập cửa sổ, nơi mà đã được keystrokes.  Nâng cao đăng nhập: nếu không được kiểm tra, Hoocker sẽ không đăng nhập phím khoá mở rộng như shift,alt… Ngoài ra còn cố định lỗi trong kết nối IP 3.Cấu tạo của Hooker : a. Thành phần chính : Một con Hooker thường có ba phần chính : * Chương trình điều khiển (Control Program): dùng để theo điều phối hoạt động, tinh chỉnh các thiết lập, xem các tập tin nhật ký cho Hooker . Phần này là phần được giấu kỹ nhất của Hooker , thông thường chỉ có thể gọi ra bằng một tổ hợp phím tắt đặt biệt. * Tập tin hook, hoặc là một chương trình monitor dùng để ghi nhận lại các thao tác bàn phím, capture screen (đây là phần quan trọng nhất) * Tập tin nhật ký (log), nơi chứa đựng/ghi lại toàn bộ những gì hook ghi nhận được. Ngoài ra, tùy theo loại có thể có thêm phần chương trình bảo vệ (guard, protect), chương trình thông báo (report) cho chủ nhân con virus … b. Một số loại Hook : 5 Trong Windows, khi chúng ta thực hiện các thao tác nhấp chuột, nhấn phím… thì hệ điều hành sẽ chuyển các sự kiện này thành các thông điệp (message) rồi đưa vào hàng đợi (queue) của hệ thống. Sau đó, các thông điệp được trao lại cho từng ứng dụng cụ thể để xử lý. Hook là một kỹ thuật cho phép một hàm có thể chặn, theo dõi, xử lý, hoặc hủy bỏ các thông điệp trước khi chúng “mò” đến được ứng dụng. Hai ví dụ thường gặp của Hook là ứng dụng soạn thảo văn bản tiếng Việt (Unikey, Vietkey…) và ứng dụng tra từ điển trực tiếp trên màn hình (Click’n’See, Lạc Việt MTD, English Study…). Chúng xử lý thông điệp từ bàn phím để đổi văn bản sang tiếng Việt, hoặc xử lý thông điệp từ con chuột để lấy văn vản dưới con trỏ. Chương trình KeyLogger chuyên ăn cắp mật khẩu cũng sử dụng kỹ thuật này , và con Virus Hooker cũng dựa trên nguyên tắc đó Xét về mặt chức năng, Hook có 15 loại ứng với nhóm sự kiện mà nó sẽ xử lý : - WH_CALLWNDPROC - hook quản lý các thông điệp trước lúc hệ thống gởi chúng tới cửa sổ đích - WH_CALLWNDPROCRET - hook quản lý các thông điệp sau khi chúng được xử lý bởi thủ tục cửa sổ đích - WH_CBT - hook nhận những thông báo có ích tới ứng dụng huấn luyện trên cơ sở tính toán (CBT) - WH_DEBUG - hook có ích cho việc debug những thủ tục hook khác - WH_FOREGROUNDIDLE - hook sẽ được gọi khi thread foreground của ứng dụng sẽ trở thành không dùng đến. Hook này có ích cho hoạt động những nhiệm vụ (task) độ ưu tiên thấp trong thời gian không được dùng đến - WH_GETMESSAGE - hook quản lý các thông điệp được post tới hàng thông điệp - WH_JOURNALPLAYBACK - hook post những thông điệp được ghi trước đó bởi thủ tục hook WH_JOURNALRECORD 6 - WH_JOURNALRECORD - hook ghi những thông điệp đầu vào được post tới hàng thông điệp hệ thống. Hook này có ích cho việc ghi các macro - WH_KEYBOARD - hook quản lý các thông điệp keystroke - KEYBOARD_LL Windows NT - hook quản lý những sự kiện nhập vào từ keyboard mức thấp - WH_MOUSE - hook quản lý các thông điệp chuột - WH_MOUSE_LL Windows NT - hook quản lý những sự kiện đầu vào chuột mức thấp - WH_MSGFILTER - hook quản lý các thông điệp được kết sinh như là một kết quả cuả sự kiện đầu vào ở trong dialog box, message box, menu hay scroll bar - WH_SHELL - hook quản lý các thông điệp nhận thông báo hữu ích để shell các ứng dụng - WH_SYSMSGFILTER - đặt một ứng dụng các thông điệp được kết sinh như là kết quả của một sự kiện đầu vào ở trong dialog box, message box, menu hay scroll bar. Thủ tục hook quản lý những thông điệp này cho tất cả các ứng dụng trong hệ thống Ứng với mỗi loại Hook, Windows sẽ có một chuỗi các hàm lọc (filter function) để xử lý. Ví dụ, khi người dùng nhấn phím, thông điệp này sẽ được truyền qua tất cả các hàm lọc thuộc nhóm WH_KEYBOARD II.Cách thức để virus tiếp cận vào máy: 1. Các dạng lây nhiễm : 1.1 Từ ICQ : ICQ là 1 chương trình máy tính cho phép nhắn gửi tin nhắn trực tiếp với nhau qua dạng chữ viết hay tiếng nói , nó giống Instant Messenger của Yahoo hay MS . Nhưng nhiều người lại nghĩ rằng Trojan không thể lây lan trong khi họ đang nói chuyện có thể gửi cho họ một chú Trojan. Có thể bạn biết đến ICQ cho bạn một bug cho phép bạn gửi một file .exe tới người khác nhưng khi đó người nhận nhìn như có vẻ bạn đang gửi một file âm thanh, hình ảnh… 7 Ví dụ: Có người nào đó sẽ thay đổi biểu tượng của file.exe thành file.bmp, và nói với bạn rằng đây là hình của anh. Bạn sẽ download nó về và bum bum bum !!! Nhưng nếu người gửi file đổi tên file.exe thành .bmp thì bạn đã an toàn, vì khi file.exe đổi tên thành .bmp thì file.exe không thể thực hiện. Nhưng khi file gửi đến bạn đúng là một con Trojan được kẹp chung với file hình ảnh và người gửi đã thay đổi icon của file.exe, khi đó Trojan sẽ bắt đầu chay mà bạn không hề nghi ngờ, vì khi đó nó vẫn hiện hình ảnh của một ai đó. Đó là lý do mà hầu hết người dùng nói họ không chạy bất kỳ file nào trong khi họ đã lỡ lầm truyền vào mà không biết. 1.2 Từ IRC: Cũng giống như phương pháp lây truyền từ ICQ phương pháp lây truyền qua IRC cũng là lừa nạn nhân để chạy Trojan trong máy của mình.IRC(Internet Relay Chat) là dạng liên lạc cấp tốc qua mạng Internet 1.3.Từ mail: Trojan được lây lan bằng mail và tốc đọ của nó rất nhanh. Một cách đơn giản và thường dùng là Trojan sẽ lấy địa chỉ mail trong address book để phát tán cho những người bạn của bạn. Vì thế để đè phòng con virus này chúng ta hãy cài ngay chương trình có thể kiểm tra mail trước khi download về và kiểm tra những mail đã được gửi đi. 1.4 Từ truy cập trực tiếp: Trong quá trình sử dụng máy tính thì có thể do lỗi truy nhập mà họ có thể bị dính Trojan, hoặc do một người nào đó đã xâm nhập vào máy của mình và đã làm cho máy của ta bị Trojan tấn công. 1.5. Một số thủ thuật và mánh khóe khác: Trên các máy Microsoft Windows, người tấn công có thể đính kèm một Trojan vào một cái tên có vẻ lương thiện vào trong một thư điện tử với việc dụ người đọc mở tệp đính kèm ra. Trojan thường là các tệp khả thi trên Windows và do đó sẽ có các đuôi như là .exe, .com, .bat, .src. hay .pif. Trong nhiều ứng dụng của Windows đã có cấu hình mặc định không cho phép hiển thị các đuôi này..Do đó, nếu trojan có tên chẳng hạn là “Readme.txt.exe” thì tệp này sẽ hiển thị một 8 cách mặc định thành “Readme.txt” và nó sẽ đánh lừa người dùng rằng đây chỉ là một loại hồ sơ văn bản không thể gây hại. Các biểu tượng cũng có thể được gán với các loại tệp khác nhau và có thể được đính kèm và thư điện tử. Khi người này dùng , mở các biểu tượng thì các Trojan ẩn dấu sẽ tiến hành những tác hại bất ngờ.Hiện nay các Trojan không chỉ xóa các tệp , bí mật điều chỉnh cấu hình của máy tính bị nhiễm mà còn dùng máy này như là một cơ sở để tấn công các máy khác trong mạng. Lợi dụng một số lỗi của trình duyệt web, chẳng hạn như Internet Explorer, để nhúng Trojan vào một trang web, khi người dùng xem trang này sẽ bị nhiễm. Người dùng nên cập nhật các bản vá lỗi thường xuyên và dùng một trình duyệt web có độ bảo mật cao như Firefox 2. Cách lây bám : Ở trên là một số cách thức mà con virus này tiếp cận máy của chúng ta . Để cho nó bám được vào các vật mang tin như trên thì chủ nhân con virus này dùng Godmessage để lưu trojan vào trong mail, trang web. Khi nạn nhân mở mail, hay trang web đó thì sẽ tự động bị nhiễm trojan (Godmessage là một công cụ tạo ActiveX trên trang web. Người dùng IE truy cập tới một trang đã gài sẵn mã ActiveX nguy hiểm, thì ngay lập tức trình duyệt của họ tải về một file dạng nén. Và ở lần khởi động sau, nó sẽ được bung ra và bắt đầu hoành hành) . ActiveX là một đoạn chương trình cho phép nhúng con Hooker vào trong tài liệu hoặc trang web. Khi chúng ta download một tài liệu nào đó , chẳng hạn là file ảnh , nếu người gửi file đổi tên file.exe thành .bmp thì bạn đã an toàn, vì khi file.exe đổi tên thành .bmp thì file.exe không thể thực hiện. Nhưng khi file gửi đến bạn đúng là một con Trojan được kẹp chung với file hình ảnh và người gửi đã thay đổi icon của file.exe, khi đó Trojan sẽ bắt đầu chay mà bạn không hề nghi ngờ, vì khi đó nó vẫn hiện hình ảnh của một ai đó. Đó là lý do mà hầu hết người dùng nói họ không chạy bất kỳ file nào trong khi họ đã lỡ lầm truyền vào mà không biết III.Cách thức hoạt động: 1. Sau khi trojan được kích hoạt chúng sẽ làm những việc như sau - Tìm vị trí an toàn để ẩn thân: Đoạn mã chính có thể tự tạo ra từ 2 đến 3 file và 9 có thể nhiều hơn nữa để tìm một vị trí tốt mà ẩn , những nơi mà chúng thích nhất là... sytem, ...system32, trong đó có một file gọi là kích hoạt thường là các file thi hành với đuôi có thể là .com, .exe, .bat, .inf..., 1 file dùng để lưu các hàm hoặc thư viện hoặc thông tin, nếu như file chứa thư viện thường có đuôi là .dll, còn file chứa thông tin thường có đuôi là .dat hoặc là .tmp. - Giành quyền khởi động : Sau khi ẩn thân an toàn chúng bắt đầu giành quyền khởi động bằng một số cách - đây là những nơi mà win ưu tiên khởi động trước : - Trong các Autostart Folder: ví dụ file khởi động của trojan là trojan.exe thì C:\Windows\Start Menu\Programs\startup\trojan.exe. Trong file C:\windows\Win.ini tại dòng lệnh load=Trojan.exe hoặc run=Trojan.exe - Trong file c:\windows\system.ini sau dòng lệnh shell Shell=Explorer.exe trojan.exe Trojan sẽ tự động chạy khi file Explorer.exe chạy - Trong Autoexec.bat c:\....\Trojan.exe - Explorer Startup c:\explorer.exe,c:\...\trojan.exe - Tạo một khóa trong Registry : [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersio n\Run] "trojan"="c:\...\Trojan.exe" [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersio n\RunOnce] "trojan"="c:\...\Trojan.exe" [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersio n\RunServices] "trojan"="c:\...\Trojan.exe" [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersio n\RunServicesOnce] "trojan"="c:\...\Trojan.exe" [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ 10 Run] "trojan"="c:\...\Trojan.exe" [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ RunOnce] "trojan"="c:\...\Trojan.exe" - Trong Registry Shell Open với key là "%1 %*" [HKEY_CLASSES_ROOT\exefile\shell\open\command] [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\exefile\shell\open\com mand] trojan.exe "%1 %*" - Trong 1 số ứng dụng mà cho phép một số chương trình chạy: ví dụ ICQ [HKEY_CURRENT_USER\Software\Mirabilis\ICQ\Agent\Apps\] - Trong ActiveX [HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Components\KeyName] StubPath=C:\...\Trojan.exe - Tiêu diệt các Phần mền antivirus và các firewall tức là những chương trình chống lại nó bằng cách kiểm tra bộ nhớ và phát hiện nếu như 1 số file nào mà giống như list nằm trong file dữ liệu thì remove hoặc ngăn chặn lại . Các tiến trình mà virus tự động kết thúc trong khi thực thi : ZONEALARM.EXE WFINDV32.EXE WEBSCANX.EXE VSSTAT.EXE VSHWIN32.EXE VSECOMR.EXE VSCAN40.EXE VETTRAY.EXE VET95.EXE NT.98.EXET CA.EXE TBSCAN.EXE SWEEP95.EXE SPHINX.EXE SMC.EXE 11 SERV95.EXE SCRSCAN.EXE SCANPM.EXE SCAN95.EXE SCAN32.EXE SAFEWEB.EXE RESCUE.EXE RAV7WIN.EXE RAV7.EXE PERSFW.EXEP CFWALLICON.EXE PCCWIN98.EXE PAVW.EXE PAVSCHED.EXE PAVCL.EXE PADMIN.EXE OUTPOST.EXE NVC95.EXE NUPGRADE.EXE NORMIST.EXE NMAIN.EXE NISUM.EXE NAVWNT.EXE NAVW32.EXE NAVNT.EXE NAVLU32.EXE NAVAPW32.EXE N32SCANW.EXE MPFTRAY.EXE MOOLIVE.EXE LUALL.EXE LOOKOUT.EXE LOCKDOWN2000.EXE JEDI.EXE IOMON98.EXE IFACE.EXE ICSUPPNT.EXE ICSUPP95.EXEI CMON.EXE ICLOADNT.EXE ICLOAD95.EXE IBMAVSP.EXE IBMASN.EXE 12 IAMSERV.EXE IAMAPP.EXE FRW.EXEFPROT.EXE FP-WIN.EXE FINDVIRU.EXE F-STOPW.EXE F-PROT95.EXE F-PROT.EXE FAGNT95.EXE ESPWATCH.EXE ESAFE.EXE ECENGINE.EXE DVP95_0.EXE DVP95.EXE CLEANER3.EXE CLEANER.EXE CLAW95CF.EXE CLAW95.EXE CFINET32.EXE CFINET.EXE CFIAUDIT.EXE CFIADMIN.EXE BLACKICE.EXE BLACKD.EXE AVWUPD32.EXE AVWIN95.EXE AVSCHED32.EXE AVPUPD.EXE AVPTC32.EXE AVPM.EXE AVPDOS32.EXE AVPCC.EXEAVP32.EXE AVP.EXE AVNT.EXE AVKSERV.EXE AVGCTRL.EXE AVE32.EXE AVCONSOL.EXE AUTODOWN.EXE APVXDWIN.EXE ANTI-TROJAN.EXE ACKWIN32.EXE 13 _AVPM.EXE _AVPCC.EXE _AVP32.EXE 2.Cách thức ngụy trang : Do việc phân chia làm nhiều phần giúp Trojan rất nhiều trong việc ngụy trang nghĩa là những đoạn mã chính được nằm trong các thư viện dạng động có đuôi là dll với một phần tên có vẽ rất giống một thư viện của win làm cho rất khó phá hiện và được nẳm tại những nơi có các file cùng kiểu với nó thường là thư mục C:..\system , còn đoạn mã có nhiệm vụ boot thì rất nhỏ có thể được mã hoá và hide khiến cho ta nhẳm tưởng một file vô hại . Để chống việc theo dõi của các phần mền anti chúng có thể tự thêm một số lệnh mà những lệnh này không ảnh hưởng tới phần logic của chương trình (chống lại việc mô phỏng hoá ) khiến cho nó có thể thay đổi kích thước file mỗi lần khởi động , hoặc có thể ẩn thân dưới một số chương trình mà mọi người thường dùng bẵng cách nối một dòng lệnh vào chương trình nào đó với các kiểu ( chèn đầu , chèn giữa hay chèn cuối mà không ảnh hưởng đến chương trình chủ ) , với cách này đoạn mã boot không dể dàng gì phát hiện , nếu có del đoạn mã boot trên disk thì khi chạy chương trình chủ thì đoạn mã boot vẫn hoạt động trở lại một cách bình thường . Để tăng thêm việc ngụy trang chúng phải ẩn dưới taskbar nghĩa là nhấn CTRL+ALT+DEL thì đoạn mã vẫn không hiện ra , hoặc tiến hành phá hủy dòng lệnh msconfig là dòng lệnh hiện các file khởi động của win . Ngoài ra sau khi đoạn mã chính được kích hoạt thì đoạn mã boot vừa tạo thành lại có dòng lệnh kiểm tra xem và del luôn cả chương trình chính khiến cho việc ẩn thân càng kín đáo hơn . Chính vì nhiệm vụ lấy thông tin cần phải kín đáo nên trojan lấy việc kín đáo và ẩn thân là rất quan trọng 2.1.Tiến hành việc lấy thông tin : Tuỳ theo người thiết kế ra trojan mà thông tin lấy có nhiều kiểu khác nhau nhưng chủ yếu là làm những nhiệm vụ sau : + Lấy thông tin về password của các loại webmail , các ứng dụng có kiểu là login+password, ICQ, IRC, FTP, HTTP... + Lấy thông tin tất cả các file có kiểu:.DBX; .TBB; .EML; .MBX; .NCH; .MMF; .INBOX; .ODS với mục đích tra lấy tất cả các nội dung mail của victim + Lấy về một số file mà do yêu cầu người thiết kế viết , đa số là các file ứng dụng và dữ liệu cũng như login thường có dạng: .doc; .dbf; .sxl; .pwl; .log + Chiếm tất cả tài nguyên , chúng có thể mở port , tạo ra giao thức để giúp cho 14 chúng có khả năng lấy thêm dữ liệu ở các máy khác hoặc giúp cho chủ nhân của nó có thể truy cập từ xa hay kết nối vào máy vistim để lấy thông tin hoặc giành quyền điểu khiển máy vistim như : del, upload, down ..., chiếm HTTP, FPT, SMTP... giúp cho việc liên hệ với chủ nhân của nó được dể dàng. 2.2.Tiến hành liên hệ với chủ nó : Người chế ra virus Hooker chỉ mong được yêu cầu cuối cùng này tức là phải liên hệ được với mình , đây là bước mà chủ nhân nó mong chờ nhất.Như vậy ngoài những thành phần cơ bản đã nói ở trên thì để có một con Hooker hoàn chỉnh thì trong tập Files mà sau khi con virus này được kích hoạt thì nó còn có một File “mswinsck.ocw” . Mswinsck.ocx là một trình điều khiển ActiveX và được gọi là Winsock Control . Nó có sẵn trong Microsoft Visual Studio và được sử dụng để kết nối đến một máy từ xa để trao đổi dữ liệu bằng cách sử dụng TCP hay UDP, các giao thức được sử dụng để tạo ra các máy khách và máy chủ chương trình Để liên lạc được với chủ nhân nó trojan này thực hiện theo cơ chế gọi từ xa RPC(Remote Procedure Call) + Dùng thông qua SMTP port 25 pop3 tức là thông qua một server mail là nơi mà chủ nhân nó có khả năng nhận . Nhưng để dùng được SMTP thì cấn phải kết nối mạng , nếu như gởi mail đi mà không kết nối thì tất nhiên là máy victim sẽ cảnh báo chính vì vậy mà trojan sẽ lưu một số địa chỉ vào phần dữ liệu của mình và kiểm tra giá trị của url nếu như thấy sự thay đổi trên trang web và trên url thì tất nhiên mạng đã được kết nối , hoặc -dùng google.com để kiểm tra sự kết nối + Dùng Ftp port port 21, HTTP fort 80 , 23 , để có thề gởi dữ liệu hay cho chủ nó. Có thể tạo ra một port nào đó rồi nằm chờ đợi chủ nhân của nó kết nối vào máy victim Đa số các virus Hooker đời sau nó tận dụng tất cả các kiểu truyền thông tin nhưng mà càng về sau thì càng khai thác triệt để hơn tài nguyên , chúng đang thiên về loại mở port nẳm chờ đợi hơn , cái này thì giúp chủ nhân của nó khai thác được nhiều thông tin hơn . Để giúp cho việc kết nối giữa trojan nằm ở máy victim(người bị hại) và chủ nhân của con virus thì phần dữ liệu của trojan còn lưu thêm 2 phần để tra tên vả pass .Nó gởi mail về hộp thư của chủ nhân nó dưới dạng file Log.txt Sau đây chúng ta cùng tìm hiểu qua về RPC : 2.3.RPC(Remote Procedure Call): Remote Procedure Call (RPC) – Thủ tục gọi hàm từ xa là một kỹ thuật tiến bộ cho quá trình kết nối từ Client đến Server để sử dụng các ứng dụng và dịch vụ. RPC cho phép client có thể kết nối tới 1 dịch vụ sử dụng dynamic port nằm ở một máy tính khác. Trong hệ thống mạng máy tính hiện nay có rất nhiều dịch vụ và ứng dụng sử dụng cơ chế kết nối RPC, ví dụ quá trình đồng bộ của các Domain Controller trong hệ thống Active Directory, hoặc khi MS Outlook kết nối tới MS Exchange Server… A. Kiến trúc của RPC: 15 RPC được thiết kế để cung cấp cho việc truyền tải thông tin giữa client và server dễ dànghơn, bảo mật hơn, và thuận tiện hơn cho việc đồng bộ hóa các luồn dữ liệu. Các hàm chứa trong RPC hỗ trợ cho việc truy cập bất kỳ chương trình nào đòi hỏi phương pháp giao tiếp từ client đến server. Hình bên dưới sẽ cho chúng ta thấy kiến trúc của RPC Hình 1: Kiến trúc Remote Procedure Call B. Các thành phần của RPC Thành phần Miêu tả Client or server process Chương trình hoặc dịch vụ trả lời từ yêu cầu của RPC RPC stubs Những hệ thống chương trình con được dùng bởi client hoặc server khởi động yêu cầu RPC. Marshalling engine (NDR20 hoặc NDR64) Cung cấp một giao diện chung giữa RPC Client và RPC Server và được chia làm 2 loại: NDR20 và NDR64. NDR20 được dùng cho hạ tầng 32 bits. Trong khi đó NDR64 được tối ưu dùng cho hạ tầng 64 bits. Client và Server sẽ thương lượng nên chọn NDR20 hay NRD64 để giao tiếp với nhau Runtime application programming interface (API) Cung cấp giao diện cho RPC tới Clients hoặc Servers. Thông thường, RPC Clients và Servers sẽ gọi hàm API (giao diện lập trình ứng dụng) để khởi tạo RPC và chuẩn bị cấu trúc dữ liệu sẽ được sử dụng để thực hiện cuộc gọi RPC. Lớp API sẽ quyết định nếu yêu cầu RPC đến từ marshalling engine hoặc trực tiếp từ client/server đến máy chủ nội bộ hoặc máy chủ từ xa. Sau đó lớp API sẽ dẫn đường cho RPC đến Connection RPC, Datagram RPC hoặc Local RPC Layers 16 Connection RPC protocol engine Được sử dụng khi RPC yêu cầu giao thức kết nối. Lớp này sẽ chỉ định sử dụng giao thức kết nối nếu RPC được gửi đi hoặc nhận được một kết nối hướng tới RPC Datagram RPC protocol engine Được sử dụng khi RPC yêu cầu giao thức phi kết nối. Lớp này sẽ chỉ định sử dụng giao thức phi kết nối nếu RPC được gửi đi hoặc nhận được một phi kết nối tới RPC Local RPC protocol engine Được sử dụng khi Server và Client đặt trong cùng một host. Registry Được truy cập khi dịch vụ RPC đầu tiên được tải về. Các thành phần trong registry sẽ chỉ định dãy port IP và tên thiết bị của các card mạng để RPC có thể kết hợp chúng lại với nhau. Trừ khi API ép buộc RPC phải dùng, Registry sẽ không được sử dụng trong hoạt động của RPC Win32 APIs (kernel32.dll, advapi32.dll, ntdll.dll) Kernel32.dll là một file thư viện động 32 bits có trong Windows NT. File này chịu trách nhiệm quản ly bộ nhớ, các hoạt động vào ra của hệ thống Advapi32.dll là file nâng cao của Windows 32 dựa trên giao diện lập trình ứng dụng. File này hỗ trợ về bảo mật và gọi các registry Ntdll.dll là file dll quản lý chức năng các file hệ thống của Windows NT SSPI (secur32.dll) Cung cấp giao diện bảo mật cho RPC. File secur32.dll sẽ thương lượng cách dùng cho việc chứng thực và mã hóa như: Kerberos, NTLM, hoặc Secure Sockets Layer (SSL) Endpoint Mapper (EPM) (rpcss.dll) Rpcss.dll (Remote procedure call subsystem) chủ yếu cung cấp cơ sở hạ tầng cho các dịch vụ COM, nhưng một phần của Rpcss.dll được dùng cho EPM. RPC Server liên lạc với EPM để nhận những điểm kết thúc động và đăng ký những điểm này vào cơ sở dữ liệu của EPM. Rồi sau đó khi RPC Clients muốn kết nối tới RPC Server, nó sẽ liên lạc với EPM để nhờ EPM phân giải những điểm kết thúc.. Active Directory Chỉ được sử dụng cho quá trình xử lý RPC client khi giao diện bảo mật cụ thể như Kerberos hoặc Negotiate như nhà cung cấp bảo mật hoặc khi Server dùng NTLM như nhà cung cấp bảo mật Used in the RPC client process only when the security interface specifies Kerberos or Negotiate as the security provider or when the server uses NTLM as the security provider. Network stack Được sử dụng thông qua các yêu cầu và trả lời của RPC giữa Client và Server Kernel Được sử dụng thông qua các yêu cầu và trả lời của RPC giữa Client và Server C. Quá trình xử lý và tương tác của RPC Các thành phần của RPC sẽ giúp cho Clients xử lý dễ dàng bằng cách gọi hàm nằm trên một chương trình từ xa. Client và Server có một địa chỉ không gian riêng; điều đó có 17 nghĩa là mỗi nguồn tài nguyên bộ nhớ của Client và Server cấp phát cho dữ liệu sẽ được dùng bởi hàm. Hình 2: Quá trình xử lý của RPC Quá trình xử lý của RPC bắt đầu từ phía Client. Ứng dụng từ phía Client sẽ gọi Client stub thay vì client phải viết code triển khai cho hàm đó. Các stub sẽ được biên soạn và liên kết với các ứng dụng từ phía client trong quá trình phát triển. Thay vì chứa mã code để thực hiện thủ tục gọi hàm từ xa, các code của stub sẽ yêu cầu truy vấn những tham số từ địa chỉ không gian của Client và sau đó chuyển chúng vào thư viện chạy thực của client. Sau đó, thư viện chạy thực của client sẽ biên dịch những tham số cần thiết vào định dạng chuẩn NDR (Network Data Representation) để chuyển giao cho Server. Tiếp theo stub của Client sẽ gọi hàm trong thư viện chạy thực của Client (rpcrt4.dll) để gửi các yêu cầu và thông số của nó đến server. Nếu server được đặt trong cùng 1 host với client, thư viện chạy thực có thể sử dụng các tính năng của Local RPC (LRPC) và thông qua các yêu cầu của RPC tới Windows kernel cho việc truyền tải đến server. Nếu server được đặt ở một host khác, thư viện chạy thực sẽ xác định một giao thức truyền tải thích hợp và thông qua các yêu cầu của RPC đến Network Stack cho việc truyền tải đến server. RPC có thể dùng các cơ chế trao đổi khác (Interprocess Communications – IPC) như: Name pipes và Winsock để thực hiện truyền tải đến server. Bảng dưới đây sẽ liệt kê các giao thức mạng hỗ trợ RPC và các loại RPC kết nối với giao thức tương ứng được sử dụng Protocol RPC Type Transmission Control Protocol (TCP) Connection–oriented Sequenced Packet Exchange (SPX) Connection–oriented Named Pipe Connection–oriented HTTP Connection–oriented User Datagram Protocol (UDP) Connectionless Cluster Datagram Protocol (CDP) Connectionless 18 Khi Server nhận được yêu cầu của RPC(từ phía client trong nội bộ hoặc client từ xa), các hàm trong thư viện chạy thực RPC của Server chấp nhận các yêu cầu và gọi hàm xử lý Server Stub. Server stub sẽ truy vấn các tham số từ network buffer và chọn 1 trong 2 loại NDR20 hoặc NDR64 (trong NDR Marshalling Engines), sau đó chuyển đổi chúng từ định dạng truyền tải mạng sang định dạng theo yêu cầu bởi mày chủ. Sau đó các thủ tục từ xa sẽ được chạy, có khả năng xuất ra các tham số và trả về giá trị. Khi các thủ tục từ xa hoàn tất, một chuỗi các bước tương tự sẽ trả về dữ liệu cho Client Các thủ tục từ xa trả dữ liệu của nó về cho Server Stub, chọn 1 trong 2 loại NDR20 hoặc NDR64 (trong NDR Marshalling Engines), chuyển đổi những tham số được xuất ra thành định dạng truyền tải mạng đến client và trả chúng vào thư việc chạy thực RPC của Server. Sau đó thư viện chạy thực RPC của Server sẽ truyền tải dữ liệu đến máy tính của Client bằng LRPC hoặc qua network. Client hoàn tất các thủ tục bằng cách chấp nhận dữ liệu qua mạng và trả dữ liệu về để gọi hàm. Thư viện chạy thực RPC của Client nhận được thủ tục

Các file đính kèm theo tài liệu này:

  • pdfTim_Hieu_Virus_Hooker.pdf