Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 33 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
33
Dung lượng
1,37 MB
Nội dung
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG KHOA CƠNG NGHỆ THƠNG TIN Học phần: An tồn mạng Bài báo cáo: Tìm hiểu cơng cụ SQLninja Kali Linux Giảng viên hướng dẫn: Sinh viên thực hiện: Mã sinh viên: Lớp: Số điện thoại: Mã môn học: TS Đặng Minh Tuấn Phan Thành Hưng B18DCAT118 D18CQAT02-B 0968157224 INT1482- Nhóm 01 Hà Nội 2021 Mục lục LỜI MỞ ĐẦU DANH SÁCH CÁC THUẬT NGỮ TIẾNG ANH VÀ VIẾT TẮT DANH MỤC CÁC HÌNH VẼ I Khái quát về công cụ SQLninja II Hướng dẫn cài đặt III Hướng dẫn sử dụng IV Các chế độ tấn công 10 test 12 fingerprint 12 bruteforce 13 escalation 15 resrectxp 15 upload 17 dirshell 18 backscan 18 revshell 19 10 icmpshell 19 11 dnstunnel 20 12 Metasploit 20 13 sqlcmd 21 14 getdata 22 V Cấu hình file 23 Cơ 23 Trích xuất liệu 25 Nâng cao 25 VI Kịch bản demo 26 Demo Thực hiện kiểm thử website 27 Demo Thực hiện lấy thông tin bằng câu lệnh fingerprint 30 VII Nhận xét, đánh giá 32 Tài liệu tham khảo 33 LỜI MỞ ĐẦU Với phát triển ngày nhanh chóng Internet ứng dụng giao dịch thương mại điện tử mạng, nhu cầu bảo vệ thông tin hệ thống ứng dụng ngày càng quan tâm và có ý nghĩa quan trọng Vì việc nghiên cứu các cơng cụ tấn công vào sở liệu để có thể phòng chống lại rất cần thiết Đa số ứng dụng web ngày này quản lý và đáp ứng yêu cầu truy xuất liệu thông qua ngôn ngữ truy vấn cấu trúc SQL Các hệ quản trị sở liệu thông dụng Oracle, MS SQL hay MySQL có chung đặc điểm này, dạng tấn cơng liên quan đến SQL thường xếp hàng đầu danh sách lỗ hổng nguy hiểm nhất, dạng tấn công vào lỗi gọi SQL injection Chúng ta thấy, tấn công dạng hacker thường đánh vào các trang web chứa thông tin tài khoản quan trọng người dùng các trang web thương mại điện tử, kết thu có giá trị kinh tế cao, khả thành công lớn, dễ tiến hành đặc điểm khiến cho SQL injection xếp hàng số danh sách lỗi bị ảnh hưởng nhiều nhất năm 2010 Các công cụ tấn công vào sở liệu cũng rất phong phú và đa dạng, có thể kể đến là Havji, SQLmap… Và số công cụ tấn công sở liệu mà chúng ta sẽ tìm hiểu bài báo cáo này đó chính là SQLninja DANH SÁCH CÁC THUẬT NGỮ TIẾNG ANH VÀ VIẾT TẮT Từ viết tắt Thuật ngữ tiếng Anh/Giải thích Thuật ngữ tiếng Việt/Giải thích SQL Structure Query Language Ngơn ngữ truy vấn cấu trúc TCP Transfert Control Protocol Giao thức điều khiển truyền vận UDP User Datagram Protocol Giao thức liệu người dùng DOS Denial of Service Từ chối dịch vụ HTTP HyperText Transfer Protocol Giao thức truyền tải siêu văn IP Internet Protocol Địa giao thức Internet IPS Intrusion Prevention System Hệ thống ngăn chặn xâm nhập IDS Intrusion Detection System Hệ thống phát xâm nhập ODBC Open Database Connectivity Kết nối Cơ sở liệu mở DLL Dynamic Link Library Thư viện liên kết động MTU Maxium Transmission Unit Đơn vị truyền tối đa DBMS Database Management System Hệ quản trị sở liệu ICMP Internet Control Message Protocol Giao thức thông điệp điều khiển Internet DNS Domain Name Servers Hệ thống phân giải tên miền DANH MỤC CÁC HÌNH VẼ Hình Đường dẫn đến công cụ sqlninja Hình Cài đặt công cụ sqlninja Hình Các chế độ kiểm thử và tấn công công cụ sqlninja 11 Hình Cấu hình GET và POST 24 Hình Test các trang web không chứa lỗi 27 Hình Cấu hình file sqlninja.conf 28 Hình Thực câu lệnh test 29 Hình Kiểm thử website bằng phương thức test 29 Hình Thực câu lệnh fingerprint 30 Hình 10 Thực lấy Database version 31 Hình 11 Thực lấy thông tin Database user 31 Hình 12 Lấy tên database tại 32 I Khái quát về công cụ SQLninja - Công cụ sqlninja có thể giúp bạn khai thác các lỗ hổng SQL injection ứng dụng bằng cách sử dụng máy chủ Microsoft SQL làm sở liệu phụ trợ Nó phát hành theo GPLv3 Mục tiêu cuối việc sử dụng công cụ SQLninja là giành quyền kiểm soát máy chủ sở liệu thông qua lỗ hổng SQL injection Công cụ SQLninja viết bằng Perl và nó có thể tìm thấy Kali bằng cách điều hướng đến Applications => Database Assessments Hình Đường dẫn đến công cụ sqlninja - Công cụ sqlninja sử dụng để phát tồn tại lỗ hổng chèn, mà là để khai thác lỗ hổng này để có quyền truy cập shell vào máy chủ sở liệu Dưới là gì SQLninja làm: - Để lấy dấu vân tay, máy chủ SQL từ xa để xác định phiên bản, đặc quyền người dùng, chế độ xác thực sở liệu và tính khả dụng xp_cmdshell - Bruteforce mật khu 'sa' (chỉ dành cho SQL Server 2000) - Nâng cấp đặc quyền lên 'sa' (chỉ dành cho SQL Server 2000) - Tạo xp_cmdshell tùy chỉnh gốc đã bị vô hiệu hóa - Tải lên các tệp thực thi đích thông qua SQLi - Tích hợp với Metasploit - Nó sử dụng các kỹ thuật ẩn mình WAF và IPS bằng cách mã bị xáo trộn - Quét ngược để tìm kiếm cổng có thể sử dụng cho Shell đảo ngược - Shell trực tiếp và đảo ngược, TCP và UDP - Đối với Shell tunneling sử dụng các giao thức DNS và ICMP - Gói Metasploit, bạn muốn sử dụng Meterpreter hoặc chí muốn có quyền truy cập GUI máy chủ DB từ xa - Báo cáo đặc quyền hệ điều hành máy chủ DB từ xa bằng cách sử dụng bắt cóc mã thông báo hoặc thông qua CVE-20100232 - Trích xuất liệu từ DB từ xa, sử dụng WAITFOR-based inference hoặc DNS-based tunnels - Tất điều có thể thực với mã SQL bị xáo trộn, để gây nhầm lẫn cho các hệ thống IDS / IPS - Yêu cầu: Vì sqlninja viết hoàn toàn bằng Perl nên không có nhiều thứ để cài đặt, ngoại trừ thân Perl và các mô-đun sau, thiếu: - NetPacket - Net-Pcap - Net-DNS - Net-RawIP - IO-Socket-SSL - Net-Pcap - DBI II Hướng dẫn cài đặt Có ba cách để cài đặt sqlninja Kali Linux Chúng ta có thể sử dụng aptget, apt aptitude Dưới là mô tả từng phương pháp, ta có thể sử dụng số ba cách để cài đặt SQLninja Cài đặt SQLninja sử dụng apt-get - Cập nhật sở liệu apt với apt-get bằng lệnh sau: sudo apt-get update - Sau cập nhật sở liệu apt, chúng ta có thể cài đặt SQLninja bằng apt-get bằng cách chạy lệnh sau: sudo apt-get -y install sqlninja Cài đặt SQLninja sử dụng apt - Cập nhật sở liệu apt với apt bằng lệnh sau: sudo apt update - Sau cập nhật sở liệu apt, chúng ta có thể cài đặt SQLninja bằng apt-get bằng cách chạy lệnh sau: sudo apt -y install sqlninja Cài đặt SQLninja sử dụng aptitude - Nếu muốn làm theo phương pháp này, ta có thể cần phải cài đặt aptitude trước vì aptitude thường không cài đặt theo mặc định Kali Linux Cập nhật sở liệu apt với aptitude bằng lệnh sau: sudo aptitude update - Sau cập nhật sở liệu apt, chúng ta có thể cài đặt SQLninja bằng apt-get bằng cách chạy lệnh sau: sudo aptitude -y install sqlninja Dưới dây là cài đặt SQLninja máy chủ Kali cho bài lab phần sau Hình Cài đặt công cụ sqlninja III Hướng dẫn sử dụng Hành vi Sqlninja kiểm sốt thơng qua tệp cấu hình (mặc định: sqlninja.conf), cho sqlninja biết cách tấn cơng cách thức (máy chủ mục tiêu, trang dễ bị tấn công, chuỗi khai thác, ) số tùy chọn dòng lệnh cho sqlninja biết hành động nào để thực Các tùy chọn dòng lệnh sau: - -m : định chế độ tấn công Về bản, cho sqlninja biết phải làm Giá trị là: - test - fingerprint - bruteforce - escalation - resurrectxp - upload - dirshell - backscan - revshell - - - dnstunnel - icmpshell - metasploit - sqlcmd - getdata -v: đầu dài dòng -f : định tệp cấu hình sẽ sử dụng -p : sử dụng chế độ báo cáo để thêm người dùng DB tại vào nhóm sysadmin và các chế độ khác để chạy truy vấn với tư cách quản trị viên, người dùng DB không thuộc nhóm đó Tùy chọn này sử dụng, vì chế độ bruteforce theo mặc định sẽ thêm người dùng DB vào nhóm sysadmin tìm thấy mật khẩu 'sa' Để biết thêm thông tin thời điểm sử dụng thông số này, hãy tham khảo chế độ báo cáo -w : danh sách từ để sử dụng chế độ bruteforce -g: kết hợp với chế độ tải lên, tạo tập lệnh gỡ lỗi và thoát -d : kích hoạt debug, để xem gì diễn Giá trị có thể là: - 1: in từng lệnh SQL đưa vào - 2: in từng yêu cầu HTTP gửi đến đích - 3: in từng phản hồi HTTP nhận từ đích - all: tất điều IV Các chế độ tấn công 10 - gốc Để sử dụng chế độ này, trước tiên, netcat phải tải lên và vì cần sử dụng thư viện pcap nên bạn cũng cần phải root revshell Phím tắt: r Tham số: -p (tùy chọn) Nếu thực shell trực tiếp chế độ quét ngược tìm thấy cổng mở từ máy chủ DB đến máy chúng ta, thì có thể sử dụng shell ngược Khi sử dụng chế độ này, sqlninja yêu cầu cổng cục bộ, giao thức và sau đó bắt đầu kết nối Bạn cần định, tệp cấu hình, địa IP máy tính bạn (tham số máy chủ) Tất nhiên, netcat phải tải lên máy chủ từ xa Như thường lệ, tham số mật khẩu sẽ sử dụng chúng không có đặc quyền sysadmin gốc 10 icmpshell - Phím tắt: i - Tham số: -p (tùy chọn) - Khi tường lửa không cho phép shell trực tiếp hoặc ngược lại, DBMS từ xa có thể ping box chúng ta, chúng ta có thể đưa shell mình vào đường hầm ICMP Chỉ cần tải lên icmpsh.exe, khởi động chế độ icmpshell và tận hưởng shell bạn Tất lưu lượng từ DBMS và đến DBMS từ xa sẽ chuyển qua đường hầm thơng qua gói ICMP - Khi bắt đầu chế độ tấn công này, sqlninja sẽ hỏi thông tin sau: ➢ Kích thước đệm liệu: Lượng liệu sẽ đóng gói thành gói ICMP nhất Mặc định là 64 byte, bạn có thể sử dụng các giá trị lớn để có đường hầm nhanh Chỉ cần cẩn thận với MTU tối đa (Đơn vị truyền tối đa) bạn và DBMS Theo tiêu chuẩn ngày nay, giá trị lên đến 1300-1400byte nên coi là khá đáng tin cậy Sử dụng các gói nhỏ bạn muốn chơi an toàn ➢ Gửi trễ: Lượng thời gian các yêu cầu ICMP Echo liền kề Mặc định là 300 mili giây, bạn có thể sử dụng các giá trị thấp để có đường hầm nhanh Hãy nhớ rằng giá trị rất thấp có thể tạo luồng ping có thể nhận thấy hoặc tự động điều chỉnh bởi số thiết bị chống DoS bạn và mục tiêu bạn ➢ Thời gian chờ phản hồi: Khoảng thời gian sẽ icmpshell.exe chờ trước gửi lại yêu cầu ICMP Mặc định là 3000 mili giây - Quan trọng: Đảm bảo rằng hộp bạn định cấu hình để không phản hồi các yêu cầu ICMP Echo Ví dụ, Linux, lệnh sau sẽ thực thủ thuật: sysctl -w net.ipv4.icmp_echo_ignore_all = 19 11.dnstunnel - Phím tắt: d - Tham số: -p (tùy chọn) - Khi tường lửa không cho phép shell trực tiếp hoặc ngược lại và ICMPshell cũng không hoạt động, chúng ta có thể cố gắng thiết lập đường hầm DNS Các yêu cầu nhất là: ➢ Máy chủ DB phải có khả phân giải các tên máy chủ bên ngoài (trường hợp này rất thường xảy ra) ➢ IP chúng phải là máy chủ DNS có thẩm quyền số miền Chúng sẽ sử dụng sqlninja.net ví dụ - Nếu hai điều kiện đáp ứng, hãy tải lên dnstun.exe, khởi động chế độ dnstunnel và khởi chạy các lệnh bạn Những gì xảy ít nhiều giống sau: ➢ Lệnh chuyển qua SQL Injection tới dnstun.exe và thực thi bởi Máy chủ DB từ xa Đầu bị chặn và mã hóa ở định dạng base32 sửa đổi chút ➢ Đầu mã hóa chia thành loạt tên máy chủ miền mà chúng kiểm soát (ví dụ: encoded_output.sqlninja.net) ➢ Những tên máy chủ đó chuyển đến gethostbyname (), để máy chủ DB liên hệ với Máy chủ DNS nó để giải chúng ➢ Máy chủ DNS tìm kiếm máy chủ có thẩm quyền sqlninja.net (IP chúng tôi) và chuyển tiếp các yêu cầu tới máy trạm chúng ➢ Sqlninja nhận các yêu cầu, đặt hàng lại cần, giải mã tên máy chủ và cuối in đầu lệnh Tất nhiên, sqlninja cũng phản hồi các yêu cầu DNS (với địa IP giả) để làm cho gethostbyname () nhanh chóng trở lại - Toàn quá trình truyền trực tuyến, có nghĩa là đầu lệnh quá dài, bạn sẽ bắt đầu nhìn thấy đầu nó trước lệnh kết thúc - Miền sử dụng phải định tệp cấu hình Tất nhiên, vì sqlninja phải tạo máy chủ DNS giả mạo và ràng buộc cổng 53, bạn cần có đặc quyền root để sử dụng chế độ này Hãy nhớ rằng DNS sử dụng UDP, vì việc mất gói có thể là vấn đề 12.Metasploit - Phím tắt: m - Thông số: không có - Nếu bạn có đặc quyền quản trị, xp_cmdshell hoạt động và bạn đã tìm thấy cổng TCP phép (đến hoặc đi), bạn cũng có thể sử dụng sqlninja làm shell cho Metasploit, để sử dụng Meterpreter hoặc đưa vào máy chủ VNC Hãy coi Meterpreter lời nhắc DOS mạnh nhiều, cung cấp cho bạn khả kiểm soát gần hoàn 20 toàn đối với hệ điều hành từ xa, bao gồm quyền truy cập vào hàm băm mật khẩu, khả thay đổi bảng định tuyến, thực chuyển tiếp cổng và chí Ngoài ra, bạn có đủ băng thông, bạn cũng có thể chèn máy chủ VNC và cung cấp quyền truy cập đồ họa đẹp mắt vào DB từ xa - Chế độ tấn công này hoàn toàn tự động và tóm lại là gì sẽ xảy ra: Sqlninja yêu cầu bạn định xem bạn muốn sử dụng Meterpreter hay VNC, kết nối sẽ là trực tiếp hay nghịch đảo và máy chủ / cổng để kết nối với (hoặc cổng cục để liên kết, trường hợp kết nối ngược) Sqlninja sẽ gọi msfpayload để tạo tệp thực thi thích hợp sẽ hoạt động máy đếm Sqlninja sau đó sẽ chuyển đổi nó thành tập lệnh gỡ lỗi và tải nó lên Vì chúng sẽ cần phải đưa DLL, chúng có thể cần phải tắt Ngăn chặn Thực thi Dữ liệu (còn gọi là 'DEP', bật theo mặc định bắt đầu từ Windows 2003 SP1) hộp điều khiển từ xa Các phiên gần Metasploit tự động xử lý bit này, bạn cũng có thể nói với sqlninja sẽ cố gắng làm điều đó cho bạn, bằng cách truy cập sổ đăng ký và liệt kê tệp thực thi chúng vào danh sách trắng (xem tham số checkdep) Cuối cùng, Sqlninja sẽ gọi msfcli để tiêm DLL cần thiết và hoàn thành việc khai thác - Tất nhiên, để sử dụng chế độ tấn công này, bạn cần có sẵn Metasploit3 box mình Nếu các tệp thực thi Metasploit (cụ thể là msfpayload, msfcli và msfencode) không có đường dẫn bạn, bạn có thể định vị trí tuyệt đối chúng tệp cấu hình Ngoài ra, bạn sử dụng chế độ VNC, hãy đảm bảo đã cài đặt ứng dụng khách VNC 13.sqlcmd - Phím tắt: c - Thông số: không có - Đôi khi, ta có đặc quyền sysadmin và xp_cmdshell hoạt động, nhận shell, có thể quá trình tải lên thực thi không thành công hoặc tất các cổng đã lọc và không cho phép phân giải DNS bên ngoài Trong trường hợp này, có thể hữu ích đưa các lệnh đơn lẻ đến máy chủ DB, xem kết đầu Ví dụ: bạn có thể muốn thêm người dùng cục (có thể bạn có thể RDP vào box) hoặc người dùng miền, SQL Server chạy với các đặc quyền Trong trường hợp vậy, bạn có thể sử dụng chế độ này: cần nhập 21 lệnh DOS và để sqlninja thực thi nó từ xa Chỉ cần nhớ: nó thực thi bạn không thấy đầu nó - Tất nhiên, bạn có thể sử dụng thời gian để biết điều gì xảy ra: ➢ Nếu tồn tại tên tệp (ping -n 127.0.0.1) - Nếu lệnh mất khoảng giây để thực thi, tệp sẽ ở đó - Để biết lệnh có thành công hay không, hãy kiểm tra giá trị biến ERRORLEVEL, biến này thường đặt thành lệnh cuối không tạo lỗi Vì vậy, ví dụ, chúng ta muốn biết liệu SQL Server từ xa có chạy dạng hệ thớng hay khơng, sử dụng lệnh sau: ➢ whoami> who.txt & find / i "\ system" who.txt & if not errorlevel = ping -n 127.0.0.1 & del who.txt - Nếu lệnh mất khoảng giây để thực thi, bạn biết rằng SQL Server chạy dạng hệ thống (whoami.exe cài đặt theo mặc định Windows 2003 và có thể tìm thấy Windows 2000 Bộ tài nguyên đã cài đặt) Làm các kỹ DOS-shaolin bạn và sử dụng tưởng tượng bạn: từ thêm lệnh AUTOEXEC.BAT đến khởi động / dừng dịch vụ và thêm người dùng lừa đảo, bạn có thể tiến khá xa với điều này! - Chế độ này cũng có thể hữu ích số chế độ khác bị lỗi, để hiểu điều gì đã xảy và cách khắc phục cố Cuối cùng, lệnh này cũng rất hữu ích để hiển thị cho khách hàng rằng bạn sở hữu máy chủ DB họ bạn không nhận shell: ➢ echo You have been owned by sqlninja> c: \ sqlninja.txt 14.getdata - Phím tắt: g - Tham số: -s (tùy chọn) - Sqlninja hỗ trợ hai kênh trích xuất, dựa thời gian và dựa DNS, mô tả bên - Dựa thời gian ➢ Kênh này sử dụng data_channel đặt thành thời gian tệp cấu hình và sử dụng lệnh WAITFOR DELAY chậm đáng tin cậy để trích xuất thông tin Sqlninja có thể khai thác tính tiêm dựa thời gian theo hai cách, trình bày chi tiết các đoạn sau - Tìm kiếm nhị phân dựa thời gian ➢ Phương thức này kích hoạt data_extraction đặt thành nhị phân tệp cấu hình Nếu bạn chí còn am hiểu máy tính, bạn nên biết cách hoạt động thuật toán tìm kiếm nhị phân, vì chúng sẽ không sâu vào chi tiết ở Về bản, phương pháp này giảm thiểu số lượng yêu cầu đến ứng dụng, điều này rất hữu ích bạn muốn giữ dấu 22 chân mình ở mức tối thiểu Tuy nhiên, khoảng nửa số truy vấn sẽ kích hoạt độ trễ, có nghĩa là phương pháp này có thể là nhanh nhất - Tìm kiếm nối tiếp / tối ưu hóa dựa thời gian ➢ Phương thức này kích hoạt data_extraction đặt thành tối ưu hóa (mặc định) hoặc nối tiếp tệp cấu hình Với phương pháp này, tất các giá trị có thể thử theo trình tự đoán đúng Sự khác biệt nối tiếp và tối ưu hóa là theo thứ tự các lần thử: lần trước thử tất các giá trị theo sau giá trị ASCII chúng, lần sau bắt đầu với các giá trị phổ biến nhất Thứ tự chính xác định với tham số language_map và thứ tự sửa đổi thời gian thực, thích ứng với tần suất thực tế các ký tự trích x́t, tham sớ language_map_adaptive đặt thành có - Khai thác dựa DNS ➢ Bạn có quyền kiểm soát miền DNS hoặc miền phụ? Bạn có thể nhận các máy chủ DNS để gửi các yêu cầu "Loại A" đến hộp bạn? DBMS từ xa có giải các tên bên ngoài không? Nếu vậy, bạn có thể quên việc trích xuất dựa suy luận chậm chạp đó và bắt đầu kéo liệu gần ở tốc độ ánh sáng (tốt, nói cách tương đối) Đảm bảo rằng bạn chạy sqlninja dạng root, đặt miền tệp cấu hình và bạn đã sẵn sàng V Cấu hình file - Tệp cấu hình (mặc định: sqlninja.conf) kiểm soát hầu hết các hành vi sqlninja Tất các tùy chọn có dạng: option_name = option_value - Ngoại lệ nhất là httprequest, nó xác định yêu cầu HTTP và điểm tiêm - Có tùy chọn chung nhất: ➢ Cơ bản: sử dụng để cấu hình tấn công ➢ Trích xuất liệu: sử dụng để định cấu hình chế độ trích xuất liệu ➢ Nâng cao: sử dụng để tinh chỉnh bổ sung - Các tùy chọn thường phân biệt chữ hoa chữ thường (ví dụ: giá trị URL) Có thể sử dụng tùy chọn nhiều lần: sqlninja không quan tâm và sẽ sử dụng phần khai báo cuối cùng, ghi đè các phần trước Nhận xét phép ở bất kỳ đâu ngoại trừ -httprequest_start httprequest_end và chúng thêm vào trước bởi ký tự '#' Cơ - httprequest 23 ➢ Bắt đầu từ phiên 0.2.6, sqlninja sử dụng cách để định cấu hình yêu cầu HTTP và chuỗi tiêm tương đới Thay các tham số riêng biệt cho máy chủ, cổng, trang, phương thức HTTP, chuỗi khai thác và các tiêu đề bổ sung, toàn yêu cầu HTTP định lúc, với điểm đánh dấu (theo mặc định SQL2INJECT ) cho biết vị trí các lệnh SQL cần đưa vào Điều này đơn giản hóa thứ rất nhiều và quan trọng nhất là cho phép hoàn toàn tự ở nơi có thể có vectơ tiêm: bạn không bị giới hạn ở tham số GET hoặc POST, bạn có thể tiêm bất nơi nào bạn cần (ví dụ: cookie) Sqlninja sẽ coi là HTTP request thứ bao gồm các dòng httprequest_start httprequest_end Hình Cấu hình GET và POST - proxyhost: Một proxy HTTP để kết nối với máy chủ đích - proxyport: Cổng proxy HTTP mà chúng kết nối Mặc định là 8080 - domain: Miền hoặc miền phụ kiểm soát kẻ tấn công sẽ sử dụng với chế độ dnstunnel và chế độ trích xuất liệu dựa DNS Địa IP mà từ đó sqlninja khởi chạy phải là máy chủ DNS có thẩm quyền cho miền đó - msfpath: Đường dẫn tuyệt đối đến các tệp thực thi Metasploit (msfpayload msfcli) 24 - evasion: Sqlninja có thể sử dụng số kỹ thuật trốn tránh, để gây nhầm lẫn và bỏ qua IPS / IDS dựa chữ ký - msfencoder: Bộ mã hóa để sử dụng cho Metasploit stager Nếu không định, không có mã hóa nào thực Tuy nhiên, mã hóa tốt khuyến khích - upload_method: Phương pháp sử dụng để tải lên các tệp nhị phân Giá trị có thể là gỡ lỗi hoặc vbscript (mặc định) Trích xuất liệu - data_channel: Kênh sử dụng để trích xuất liệu Có thể đã đến lúc (mặc định) sử dụng kênh trích xuất dựa WAITFOR (rất chậm, hoạt động) hoặc dns (nhanh nhiều, bạn cần kiểm soát miền hoặc miền phụ phân giải thành địa IP công cộng bạn - data_extraction: Khi sử dụng chiết xuất dựa thời gian, có ba phương pháp chiết xuất có thể áp dụng Khi chọn nhị phân, sqlninja sẽ thực tìm kiếm nhị phân, giảm thiểu số lượng yêu cầu Khi chọn nối tiếp, sqlninja sẽ thử tất các giá trị có thể, có thể sẽ nhanh (vì WAITFOR sẽ kích hoạt lần) sẽ để lại nhiều mục nhập nhật ký từ xa Khi chọn serial_optimized, sqlninja sẽ thử tất các giá trị có thể, bắt đầu từ ứng cử viên có khả nhất Mặc định là serial_optimized - language_map: Nếu bạn sử dụng trích xuất dựa thời gian và bạn đã chọn serial_optimized làm phương pháp trích xuất mình, bạn có thể định đồ ngôn ngữ nơi bạn có thể định thứ tự các ký tự sẽ thử trích xuất liệu - store_session: Theo mặc định, sqlninja lưu trữ tất thông tin trích xuất sở liệu SQLite cục bộ, định thông qua dòng lệnh (mặc định: session.db) Điều này cho phép bạn lưu cục tất liệu đã trích xuất và truy xuất liệu đó sau đó Nói chung, hãy để điều này là có - sanity_check: Khi sử dụng trích xuất dựa thời gian, độ trễ mạng có thể giới hạn độ chính xác liệu trích xuất Sqlninja có thể kiểm tra tính chính xác thông tin trích xuất (hiện tại là DB, người dùng, bảng, cột chưa có hàng) và thử trích xuất lại phần thông tin phát cố Nâng cao - lhost: Địa IP hoặc tên máy chủ mà mục tiêu phải cố gắng liên hệ chế độ quét ngược và quét lại Đó là *máy* bạn Tất nhiên, 25 - - - tấn công thực qua Internet, thì phải là địa công cộng device: Thiết bị sử dụng để dò tìm các gói ở chế độ quét ngược (mặc định: eth0) filter: Biểu thức pcap hợp lệ để lọc các gói đến ở chế độ quét ngược Theo mặc định, thực tấn công vậy, sqlninja sẽ lắng nghe các gói đến từ địa IP máy chủ web từ xa và chuyển hướng đến máy chủ định lhost timeout: Tham số này sử dụng ở chế độ quét ngược Nó định giây để đợi các gói sau yêu cầu web hoàn thành (mặc định: giây) xp_name: Tên thủ tục mở rộng thực thi các lệnh chúng Mặc định rõ ràng là xp_cmdshell VI Kịch bản demo - Do em không tìm website có chứa lỗi để thực demo (Hình 5) nên em sẽ thực viết kịch demo cách thật nhất dựa vào các tài liệu tham khảo 26 Hình Test các trang web không chứa lỗi Demo Thực hiện kiểm thử website - Website kiểm thử: http://www.craftfooz.co.jp/ShopDetailNew.asp?ShopID=75 - Trước thực kiểm thử website có chứa lỗi, chúng ta phải tiến hành cấu hình cho file config SQLninja (mặc định là file sqlninja.conf) Cấu hình file với phương thức GET và host tương ứng 27 Hình Cấu hình file sqlninja.conf - Thực kiểm tra website có bị lỗi hay không với câu lệnh test (Hình 7): sqlninja -m test -f ' /home/hung/Desktop/sqlninja.conf ' 28 Hình Thực câu lệnh test - Ta thu kết hình Hình Kiểm thử website bằng phương thức test 29 Demo Thực hiện lấy thông tin bằng câu lệnh fingerprint sqlninja -m fingerprint -f ' /home/hung/Desktop/sqlninja.conf ' (Hình 9): Hình Thực câu lệnh fingerprint - Thực lấy Database version với parameter = 0, ta thu kết hình 10 30 Hình 10 Thực lấy Database version - Thực lấy Database user với parameter = 0, ta thu kết hình 11 Hình 11 Thực lấy thông tin Database user 31 - Từ hình 11, ta có thể dễ dàng nhận thấy quyền cao nhất đó là ‘sa’ - Tiếp tục, ta lấy tên database tại (Hình 12) Hình 12 Lấy tên database tại VII Nhận xét, đánh giá Ngày nay, tình hình nước và giới bị bao trùm bởi dịch bệnh Covid19, phát triển Internet cũng thương mại điện tử trở nên mạnh mẽ Nhu cầu bảo mật cũng ngày càng chú trọng lên hàng đầu, và công cụ SQLninja là số công cụ rất tốt việc kiểm thử lỗi, trợ giúp và tự động hóa quá trình tiếp quản máy chủ DB phát lỗ hổng SQL Injection Sqlninja là công cụ nhắm mục tiêu để khai thác lỗ hổng SQL Injection ứng dụng web sử dụng Microsoft SQL Server làm phần mềm hỗ trợ nó Mục tiêu chính nó là cung cấp quyền truy cập từ xa máy chủ DB dễ bị tấn công, môi trường rất thù địch 32 Tài liệu tham khảo How To Install sqlninja on Kali Linux (n.d.) Retrieved from https://installati.one/kalilinux/sqlninja/ icesurfer, n (n.d.) sqlninja - a SQL Server injection & takeover tool Retrieved from http://sqlninja.sourceforge.net/ 33 ... giải tên miền DANH MỤC CÁC HÌNH VẼ Hình Đường dẫn đến công cụ sqlninja Hình Cài đặt công cụ sqlninja Hình Các chế độ kiểm thử và tấn công công cụ sqlninja 11... công 10 Hình Các chế độ kiểm thử và tấn công công cụ sqlninja - Sqlninja có 14 chế độ tấn công Chế độ sử dụng có thể định bằng tên nó: sqlninja -m upload hoặc bằng phím tắt nó: sqlninja. .. hàng đầu, và công cụ SQLninja là số công cụ rất tốt việc kiểm thử lỗi, trợ giúp và tự động hóa quá trình tiếp quản máy chủ DB phát lỗ hổng SQL Injection Sqlninja là công cụ nhắm mục