Tìm hiểu về ý nghĩa của một số lệnh dùng cho quá trình phân tích log: grep, gawk, find, secure, access_log, … a) Câu lệnh grep Grep là một lệnh được phát triển để thực thi các tác vụ tìm kiếm văn bản. Lệnh grep cung cấp quyền truy cập vào tiện ích grep, một công cụ xử lý file mạnh mẽ được sử dụng để tìm các mẫu trong file văn bản. Trong quá trình thực thi grep, có thể chỉ ra tên tệp hoặc có thể để lại đầu vào tiêu chuẩn, do đó, grep chịu trách nhiệm tạo các dòng khớp. Có ba biến được quản lý trong quá trình grep, đó là: G, basicregapi: điều này chịu trách nhiệm diễn giải mẫu như một biểu thức chính quy cơ bản, nó là giá trị mặc định. G, basicregapi: điều này chịu trách nhiệm diễn giải mẫu như một biểu thức chính quy cơ bản, nó là giá trị mặc định. F, fixedchuỗi: với tùy chọn này, mẫu được hiểu là một danh sách các chuỗi ký tự cố định, được phân tách bằng các ngắt dòng trong đó kết quả khớp sẽ được tìm kiếm trong bất kỳ chuỗi nào. Lệnh grep là lệnh sẽ cho phép hệ điều hành phân tích trong hệ thống để tìm các kết quả khớp và sau khi phát hiện tiến hành in kết quả để có thể quản lý tập trung các kết quả này. Cú pháp sử dụng của lệnh grep như sau: grep options pattern FILE grep – chỉ định lệnh grep. options – tùy chọn của lệnh. pattern – truy vấn cần tìm. FILE – file thực hiện tìm kiếm. Có một số tham số có thể sử dụng với lệnh grep để có được kết quả tốt nhất, đó là: E, extendsregapi: Các mẫu được hiểu là các biểu thức chính quy. F, fixedstring: Các mẫu là các chuỗi. G, basicregapi: Các mẫu là các biểu thức chính quy cơ bản. P, perlregexep: Các mẫu là biểu thức Perl. e, regapi: Các mẫu cho phù hợp được tìm kiếm. f: Sử dụng các mẫu như một tệp. i, ignorecase: Bỏ qua chữ hoa. w, wordregapi: Ghép tất cả các từ bằng nhau. x, lineregapi: Khớp tất cả các dòng. s, nomessage: Loại bỏ thông báo lỗi. v, invertmatch: Chọn các dòng không khớp với tiêu chí tìm kiếm. V, version: Hiển thị phiên bản grep được sử dụng. m, maxCount: Dừng tìm kiếm sau một số dòng cụ thể. b, byteoffset: Hiển thị offset byte bên cạnh các dòng đầu ra. n, linenumber: In số dòng. H, withfilename: hiển thị tên tệp trên các dòng đầu ra. q, quiet: Bỏ qua tất cả kết quả. d, directories: Cho biết cách xử lý các thư mục. l, fileswithoutmatch: Chỉ in tên tệp mà không bao gồm các dòng. c, count: In các dòng đã chọn trên mỗi tệp. Câu lệnh cài đặt grep trên Ubuntu: sudo aptget install grep b) Câu lệnh gawk GAWK: Hay còn gọi là GNU AWK. Ngôn ngữ gawk là một ngôn ngữ lập trình giúp chúng ta thao tác dễ dàng với kiểu dữ liệu có cấu trúc và tạo ra những kết quả được định dạng. Lệnh gawk sử dụng để tìm kiếm và xử lý file text. Nó có thể tìm kiếm một hoặc nhiều file để xem các file có dòng nào bao gồm những pattern cần tìm kiếm và sau đó thực hiện những action. Cú pháp của lệnh gawk như sau: gawk pattern actions FILE gawk – chỉ định lệnh gawk. pattern – những biểu thức chính quy. actions – những câu lệnh cần thực hiện. FILE – file cần thực hiện lệnh gawk. Cách lệnh awk hoạt động: Lệnh gawk đọc file đầu vào theo từng dòng. Đối với mỗi dòng, nó sẽ khớp lần lượt với các pattern, nếu khớp thì sẽ thực hiện action tương ứng. Nếu không có pattern nào được so khớp thì sẽ không có action nào thực hiện. Cú pháp cơ bản làm việc với lệnh gawk thì pattern hoặc action phải có 1 trong 2 không thể thiếu cả 2. Nếu không có pattern, gawk sẽ thực hiện action đối với mỗi dòng của dữ liệu. Nếu không có action, gawk sẽ mặc định in ra tất cả những dòng khớp với pattern đã cho. Mỗi câu lệnh trong phần action được phân tách nhau bởi dấu chấm phẩy.
Trang 1MỤC LỤC
I Lý
thuyết 3
1 Tìm hiểu về ý nghĩa của một số lệnh dùng cho quá trình phân tích log: grep, gawk, find, secure, access_log … 3
a) Câu lệnh grep 3
b) Câu lệnh gawk 4
c) Câu lệnh find 5
d) Câu lệnh access_log 5
e) xHydra 5
II Thực hành 5
1 Phân tích log sử dụng grep trong Linux 5
2 Phân tích log sử dụng gawk trong Linux 9
3 Phân tích log sử dụng find trong Windows 11
III Tài liệu tham khảo 14
Trang 2Bài 9: Phân tích log hệ thống
I Lý thuyết
1 Tìm hiểu về ý nghĩa của một số lệnh dùng cho quá trình phân tích log: grep, gawk, find, secure, access_log, …
a) Câu lệnh grep
Grep là một lệnh được phát triển để thực thi các tác vụ tìm kiếm văn bản Lệnh grep cung cấp quyền truy cập vào tiện ích grep, một công cụ xử lý file mạnh mẽ được sử dụng để tìm các mẫu trong file văn bản
Trong quá trình thực thi grep, có thể chỉ ra tên tệp hoặc có thể để lại đầu vào tiêu chuẩn, do đó, grep chịu trách nhiệm tạo các dòng khớp
Có ba biến được quản lý trong quá trình grep, đó là:
SG, SSbasicSregapi: điều này chịu trách nhiệm diễn giải mẫu như một biểu thức chính quy cơ bản, nó là giá trị mặc định
SG, SSbasicSregapi: điều này chịu trách nhiệm diễn giải mẫu như một biểu thức chính quy cơ bản, nó là giá trị mặc định
SF, SSfixedSchuỗi: với tùy chọn này, mẫu được hiểu là một danh sách các chuỗi
ký tự cố định, được phân tách bằng các ngắt dòng trong đó kết quả khớp sẽ được tìm kiếm trong bất kỳ chuỗi nào
Lệnh grep là lệnh sẽ cho phép hệ điều hành phân tích trong hệ thống để tìm các kết quả khớp và sau khi phát hiện tiến hành in kết quả để có thể quản lý tập trung các kết quả này
Cú pháp sử dụng của lệnh grep như sau: grep [options] pattern [FILE] grep – chỉ định lệnh grep [options] – tùy chọn của lệnh pattern
– truy vấn cần tìm [FILE] – file thực hiện tìm kiếm
Có một số tham số có thể sử dụng với lệnh grep để có được kết quả tốt nhất, đó là:
SE, SSextendsSregapi: Các mẫu được hiểu là các biểu thức chính quy
Trang 3 SF, SSfixedSstring: Các mẫu là các chuỗi
SG, SSbasicSregapi: Các mẫu là các biểu thức chính quy cơ bản
P, SSperlSregexep: Các mẫu là biểu thức Perl
Se, regapi: Các mẫu cho phù hợp được tìm kiếm
Sf: Sử dụng các mẫu như một tệp
Si, SSignoreScase: Bỏ qua chữ hoa
Sw, SSwordSregapi: Ghép tất cả các từ bằng nhau
Sx, SSlineSregapi: Khớp tất cả các dòng
Ss, SSnoSmessage: Loại bỏ thông báo lỗi
Sv, SSinvertSmatch: Chọn các dòng không khớp với tiêu chí tìm kiếm
SV, SSversion: Hiển thị phiên bản grep được sử dụng
Sm, SSmaxSCount: Dừng tìm kiếm sau một số dòng cụ thể
Sb, SSbyteSoffset: Hiển thị offset byte bên cạnh các dòng đầu ra
Sn, SSlineSnumber: In số dòng
SH, SSwithSfilename: hiển thị tên tệp trên các dòng đầu ra
Sq, SSquiet: Bỏ qua tất cả kết quả
Sd, SSdirectories: Cho biết cách xử lý các thư mục
Sl, SSfilesSwithoutSmatch: Chỉ in tên tệp mà không bao gồm các dòng
Sc, SScount: In các dòng đã chọn trên mỗi tệp
Câu lệnh cài đặt grep trên Ubuntu: sudo aptSget install grep
b) Câu lệnh gawk
GAWK: Hay còn gọi là GNU AWK
Trang 4 Ngôn ngữ gawk là một ngôn ngữ lập trình giúp chúng ta thao tác dễ dàng với kiểu dữ liệu có cấu trúc và tạo ra những kết quả được định dạng
Lệnh gawk sử dụng để tìm kiếm và xử lý file text Nó có thể tìm kiếm một hoặc nhiều file để xem các file có dòng nào bao gồm những pattern cần tìm kiếm và sau
đó thực hiện những action Cú pháp của lệnh gawk như sau:
gawk pattern actions [FILE]
gawk – chỉ định lệnh gawk
pattern – những biểu thức chính quy
actions – những câu lệnh cần thực hiện
[FILE] – file cần thực hiện lệnh gawk
Cách lệnh awk hoạt động:
Lệnh gawk đọc file đầu vào theo từng dòng
Đối với mỗi dòng, nó sẽ khớp lần lượt với các pattern, nếu khớp thì sẽ thực hiện action tương ứng Nếu không có pattern nào được so khớp thì sẽ không có action nào thực hiện
Cú pháp cơ bản làm việc với lệnh gawk thì pattern hoặc action phải có 1 trong 2 không thể thiếu cả 2 Nếu không có pattern, gawk sẽ thực hiện action đối với mỗi dòng của dữ liệu Nếu không có action, gawk sẽ mặc định in ra tất cả những dòng khớp với pattern đã cho
Mỗi câu lệnh trong phần action được phân tách nhau bởi dấu chấm phẩy
c) Câu lệnh find
Câu lệnh find trong Linux được dùng để tìm kiếm tập tin và thư mục dựa trên các điều kiện đầu vào khác nhau find [paths] [expression] [actions]
Biểu thức sẽ cho phép bạn lọc các tệp của mình dựa trên một số tiêu chí và cho phép bạn thực hiện các lệnh shell trên tệp Find linux command sẽ hiển thị các tệp một cách đệ quy, nghĩa là trước tiên nó sẽ duyệt qua mọi thư mục và sau đó in ra kết quả tương ứng
Trang 5 Một số ứng dụng của câu lệnh find trong Ubuntu:
Liệt kê tất cả các file bên trong thư mục hiện tại: find
Liệt kê tất cả các file có trong một thư mục cụ thể: find /
Tìm kiếm một file cụ thể: find Sname
Tìm kiếm một file cụ thể trong một thư mục: find / Sname
Tìm kiếm trường hợp bỏ qua file: find Siname
Tìm kiếm các thư mục bên trong thư mục hiện tại: find Stype d
d) Câu lệnh access_log Access_log có chức năng ghi lại những lần sử dụng, truy cập, yêu cầu đến apache server
Access_log được lưu trữ tại /var/log/httpd/access_log (hoặc tại
/var/log/apache2/access_log)
e) xHydra
xHydra là giao diện người dùng GUI cho trình bẻ khóa mật khẩu Hydra
Hydra có thể được sử dụng để bẻ khóa mật khẩu, có thể được sử dụng cho nhiều loại tấn công trực tuyến, bao gồm cả các cuộc tấn công MySQL, SMB, FTP,
MSSQL và HTTP / HTTPS
II Thực hành
1 Phân tích log sử dụng grep trong Linux
Trên máy Kali attack trong mạng Internal, khởi chạy Zenmap và scan cho địa chỉ 192.168.100.147 (Máy Linux victim) và xem được port 80 đang mở cho Web Server Apache 2.2.3 Khởi chạy zenmap trên máy Kali và scan cho địa chỉ
192.168.100.147 của máy Ubuntu Port 80 đang mở cho Web Server Apache2
Trang 6 Trên máy Kali attack ở mạng Internal, truy cập địa chỉ web
http://192.168.100.147 Trên máy Kali, truy cập địa chỉ web http://192.168.100.147
Trên terminal tiến hành sao chép website và tìm kiếm từ khóa
“test”(root@bt:~#curl http://192.168.100.147| grep test) Tìm kiếm từ khóa “test” bằng lệnh grep
Trang 7 Trên máy Linux Internal Victim, để xem thư mục chứa access_log dùng lệnh: [root@rhel ~]# cd /var/log/apache2 Xem thư mục acess_log Khi đã mở được file access_log trên máy nạn nhân, dùng grep để lọc ra kết quả với một số từ khóa tìm kiếm ví dụ: Nmap, Firefox, curl, … Dùng lệnh grep để tìm từ khóa “nmap” Dùng lệnh grep để tìm từ khóa “firefox” Dùng lệnh grep để tìm từ khóa “curl”
2 Phân tích log sử dụng gawk trong Linux
Trang 8 Trên máy Kali attack tiến hành remote vào máy Linux Internal Victim Remote vào máy Ubuntu victim
Tạo một account mới với tên sinh viên và mật khẩu tùy chọn Sau đó tiến hành thay đổi mật khẩu cho tài khoản vừa tạo Tạo một tài khoản mới có tên là và đặt mật khẩu
Trên máy Linux Internal Victim, tiến hành xem file log
Trang 9 Trên máy Kali attack, thông qua chế độ remote tiến hành tìm kiếm những người dùng vừa tạo bằng lệnh grep, và dùng lệnh gawk để in một hoặc nhiều dòng dữ liệu tìm được Dùng lệnh grep để tìm kiếm người dùng có tên vừa tạo Dùng lệnh gawk
để in dữ liệu vừa tìm được
Trang 103 Phân tích log sử dụng find trong Windows
Trên máy Kali External Attack khởi động #xhydra, chọn target là 10.10.19.202, giao thức ftp và cài đặt Password list, sau đó nhấn Start và chờ xHydra tìm ra mật khẩu Crack thành công mật khẩu
Trang 11 Trên máy Windows 2003 Server External Victim, thực hiện điều hướng đến FTP Logfile (C:\cd c:\Windows\System32\Logfiles\msftpsvc1) Chọn hiển thị tất cả các file log đang có và chọn 1 file mới nhất để mở ra (ngày tháng có dạng yymmdd)
Gõ lệnh để tìm kiếm kết quả tấn công login thành công (C:\WINDOWS\
system32\LogFiles\MSFTPSVC1>type exyymmdd.log | find “230”) Tìm kiếm kết quả tấn công login thành công