Củng Cố Hệ Thống và Sao Lưu Dữ Liệu
Trong giai đoạn này, chúng ta sẽ mô phỏng việc củng cố hệ thống trong một cuộc thi AWD (Attack With Defense). Người tham gia cần nắm vững các kỹ thuật phổ biến như củng cố an ninh, sao lưu, và khả năng thu thập thông tin.
1. Thay Đổi Mật Khẩu SSH
passwd admin_user
2. Kiểm Tra Quyền Hạn Người Dùng Hiện Tại
groups admin_user
3. Xác Định Thư Mục Gốc Của Website
find / -name "main.php"
4. Nén Các Tệp Nguồn
tar -zcvf source_code_backup.tar.gz /var/www/html/*
Sau khi nén, hãy tải tệp `source_code_backup.tar.gz` về máy cục bộ để phân tích.
5. Quét và Xóa Backdoor
Sử dụng các công cụ như D盾 (D盾) để quét tìm backdoor.
Nếu phát hiện các tệp nghi ngờ, hãy phân tích và xóa chúng.
- index.php: Đây là tệp backdoor, xóa ngay lập tức.
- /weixin/index.php: Đây là một phần chức năng của website, có thể tạm thời giữ lại để phân tích.
6. Xóa Người Dùng Backdoor
cat /etc/passwd
Dựa vào danh sách người dùng, các tài khoản có UID lớn hơn 500 thường là tài khoản người dùng, trong khi các tài khoản có UID dưới 500 là tài khoản hệ thống. Nếu phát hiện tài khoản backdoor, hãy xóa chúng.
7. Giám Sát Tệp
Triển khai các script giám sát tệp để quản lý hệ thống một cách động.
8. Xóa Malware Không Chết (Persistent Malware)
(1) Dừng các tiến trình
ps aux | grep www-data # Xem các tiến trình
kill -9 <pid> # Dừng tiến trình (nếu không có quyền, có thể dùng backdoor tạm thời để chạy lệnh system: c=system("kill -9 729"))
(2) Sử dụng Điều Kiện Cạnh Tranh (Race Condition)
Tạo một script để liên tục ghi đè lên tệp malware.
<?php
set_time_limit(0);
ignore_user_abort(true);
unlink(__FILE__);
while (true) {
file_put_contents('./malware.php', '11111');
usleep(0);
}
?>
#!/bin/bash
while true; do
rm -rf malware.php
done
# Sử dụng script này để liên tục xóa tệp
#!/bin/bash
dir_path="/var/www/html/.malware.php/"
file_path="/var/www/html/.malware.php"
rm -rf "$file_path"
mkdir "$dir_path"
# Sử dụng script này để liên tục tạo thư mục trùng tên
9. Xóa Reverse Shell
Sử dụng các công cụ hoặc script đã được chuẩn bị để loại bỏ reverse shell.
10. Phân Tích Log
tail -f access.log
import requests
import time
def phan_tich_log():
# Danh sách các tệp có thể bị tấn công
cac_tep_tim_kiem = ['shell.php', 'admin.php', 'web.php', 'login.php', '1.php', 'index.php']
# Các lệnh phổ biến trong tấn công
cac_lenh_thu = ['cat /flag', 'ls -al', 'rm -f', 'echo 1', 'echo 1/proc/sys/net/ipv4/ip_forward', 'rm -rf / --no-preserve-root']
while True:
for i in range(1, 50):
for ten_tep in cac_tep_tim_kiem:
dia_chi_muc_tieu = f'http://192.168.182.{i}/{ten_tep}'
print(dia_chi_muc_tieu)
for lenh in cac_lenh_thu:
du_lieu_gui = {'payload': lenh}
try:
requests.post(dia_chi_muc_tieu, data=du_lieu_gui)
print(f"Đang thử: {i}|{ten_tep}|{lenh}")
time.sleep(0.1)
except Exception as e:
time.sleep(0.1)
pass
if __name__ == '__main__':
phan_tich_log()
# Mục đích: tạo ra dữ liệu rác để gây nhiễu cho kẻ tấn công
11. Phân Tích Lưu Lượng (Yêu cầu quyền root)
chmod -R 777 weblogger/
# Mở trình duyệt và truy cập http://[IP_SERVER]/weblogger/install.php để cài đặt công cụ phân tích lưu lượng (có thể upload lên từ máy cục bộ)
12. Triển Khai WAF (Web Application Firewall)
# Cách 1: Sử dụng lệnh find và xargs
find /var/www/html/ -type f -path '*.php' | xargs sed -i '1i<?php include_once "/usr/local/lib/waf.php";?>'
# Cách 2: Sử dụng vòng lặp for
for i in $(find /var/www/html/ -type f -path '*.php'); do
sed -i '1i<?php include_once "/usr/local/lib/waf.php";?>' "$i"
done
# Mục đích: Triển khai WAF cho tất cả các tệp PHP