Linux基础教程 第20课:Linux安全攻防和渗透测试基础

浏览量:28 次 发布时间:2026-01-23 19:59 作者:明扬工控商城 下载docx

最近更新:Linux基础教程 第15课:Linux内核和驱动管理


第一部分:安全基础概念

1.1 安全基本原则

最小权限原则:只授予必要的最小权限


纵深防御:多层安全防护


零信任模型:不信任任何内部或外部实体


安全开发生命周期:从设计到部署全程考虑安全


1.2 常见安全威胁

bash

# 常见攻击类型:

# 1. 暴力破解(Brute Force)

# 2. 中间人攻击(Man-in-the-Middle)

# 3. 拒绝服务攻击(DoS/DDoS)

# 4. 注入攻击(SQL注入、命令注入)

# 5. 跨站脚本攻击(XSS)

# 6. 社会工程学攻击

第二部分:系统安全加固

2.1 账户和安全策略

bash

# 检查空密码账户

sudo awk -F: '($2 == "") {print $1}' /etc/shadow


# 检查UID为0的用户(除了root不应该有)

sudo awk -F: '($3 == 0) {print $1}' /etc/passwd


# 设置强密码策略

sudo apt install libpam-pwquality

sudo vim /etc/security/pwquality.conf

配置示例:


text

minlen = 12

minclass = 4

maxrepeat = 3

maxsequence = 3

2.2 SSH安全加固

bash

# 备份原始配置

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup


# 编辑SSH配置

sudo vim /etc/ssh/sshd_config

安全配置示例:


bash

Port 2222                      # 修改默认端口

PermitRootLogin no             # 禁用root登录

PasswordAuthentication no      # 禁用密码认证,使用密钥

PubkeyAuthentication yes

AllowUsers alice bob           # 只允许特定用户

MaxAuthTries 3                 # 最大尝试次数

ClientAliveInterval 300        # 客户端活动间隔

ClientAliveCountMax 2          # 客户端活动计数

UseDNS no                      # 禁用DNS查询加快连接速度

2.3 防火墙配置

bash

# 使用UFW配置防火墙

sudo apt install ufw

sudo ufw default deny incoming

sudo ufw default allow outgoing

sudo ufw allow 2222/tcp        # SSH端口

sudo ufw allow 80/tcp          # HTTP

sudo ufw allow 443/tcp         # HTTPS

sudo ufw enable


# 查看规则

sudo ufw status verbose


# 使用iptables(更底层)

sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH

sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 --name SSH -j DROP

第三部分:漏洞扫描和评估

3.1 使用Nmap进行端口扫描

bash

# 安装Nmap

sudo apt install nmap


# 基本扫描

nmap 192.168.1.0/24


# 详细扫描

nmap -sV -sC -O 192.168.1.100


# 隐蔽扫描

nmap -sS -T2 192.168.1.100


# 全端口扫描

nmap -p- 192.168.1.100


# 保存结果

nmap -oA scan_report 192.168.1.100

3.2 使用OpenVAS进行漏洞扫描

bash

# 安装OpenVAS(GVM)

sudo apt update

sudo apt install gvm


# 初始化设置

sudo gvm-setup


# 启动服务

sudo gvm-start


# 访问Web界面

# https://localhost:9392


# 命令行扫描

sudo gvm-cli --gmp-username admin --gmp-password <password> socket --socketpath /run/gvmd/gvmd.sock

3.3 使用Lynis进行安全审计

bash

# 安装Lynis

sudo apt install lynis


# 运行系统审计

sudo lynis audit system


# 查看报告

sudo cat /var/log/lynis-report.dat | grep -E "(warning|suggestion)"

第四部分:入侵检测系统

4.1 部署OSSEC

bash

# 安装OSSEC

sudo apt install build-essential

wget https://github.com/ossec/ossec-hids/archive/3.6.0.tar.gz

tar -xzf 3.6.0.tar.gz

cd ossec-hids-3.6.0


# 编译安装

sudo ./install.sh

# 选择本地安装(local)


# 启动服务

sudo /var/ossec/bin/ossec-control start


# 查看日志

sudo tail -f /var/ossec/logs/alerts/alerts.log

4.2 配置Snort

bash

# 安装Snort

sudo apt install snort


# 配置网络接口

sudo dpkg-reconfigure snort


# 测试配置

sudo snort -T -c /etc/snort/snort.conf


# 运行嗅探模式

sudo snort -A console -q -c /etc/snort/snort.conf -i eth0

第五部分:渗透测试基础

5.1 信息收集

bash

# 使用theHarvester收集信息

sudo apt install theharvester

theharvester -d example.com -b google


# 使用dnsrecon进行DNS枚举

sudo apt install dnsrecon

dnsrecon -d example.com


# 使用sublist3r进行子域名枚举

git clone https://github.com/aboul3la/Sublist3r.git

cd Sublist3r

pip install -r requirements.txt

python sublist3r.py -d example.com

5.2 漏洞利用基础

bash

# 使用Metasploit框架

sudo apt install metasploit-framework


# 启动Metasploit

msfconsole


# Metasploit基本命令

# search <exploit_name>    # 搜索漏洞利用模块

# use <module_path>        # 使用模块

# show options             # 显示选项

# set RHOST <target_ip>    # 设置目标

# exploit                  # 执行攻击


# 示例:使用SSH暴力破解模块

# use auxiliary/scanner/ssh/ssh_login

# set RHOSTS 192.168.1.100

# set USER_FILE /path/to/users.txt

# set PASS_FILE /path/to/passwords.txt

# run

5.3 密码破解

bash

# 使用John the Ripper

sudo apt install john


# 破解shadow文件

unshadow /etc/passwd /etc/shadow > crack.db

john crack.db


# 使用Hashcat

sudo apt install hashcat


# 破解MD5哈希

hashcat -m 0 -a 0 hash.txt wordlist.txt

第六部分:Web应用安全测试

6.1 SQL注入测试

bash

# 使用SQLmap

sudo apt install sqlmap


# 基本检测

sqlmap -u "http://example.com/page?id=1"


# 获取数据库

sqlmap -u "http://example.com/page?id=1" --dbs


# 获取表

sqlmap -u "http://example.com/page?id=1" -D database --tables


# 获取数据

sqlmap -u "http://example.com/page?id=1" -D database -T table --dump

6.2 XSS测试

bash

# 使用XSStrike

git clone https://github.com/s0md3v/XSStrike.git

cd XSStrike

pip3 install -r requirements.txt


python3 xsstrike.py -u "http://example.com/search?q=test"

6.3 使用Burp Suite

bash

# 下载Burp Suite Community Edition

# https://portswigger.net/burp/communitydownload


# 运行Burp Suite

java -jar burpsuite_community.jar


# 配置浏览器代理

# 地址:127.0.0.1

# 端口:8080

第七部分:无线网络安全

7.1 无线网络嗅探

bash

# 安装无线工具

sudo apt install aircrack-ng


# 查看无线网卡

sudo airmon-ng


# 启用监听模式

sudo airmon-ng start wlan0


# 扫描无线网络

sudo airodump-ng wlan0mon


# 捕获握手包

sudo airodump-ng -c 6 --bssid 00:11:22:33:44:55 -w capture wlan0mon

7.2 WPA/WPA2破解

bash

# 使用aircrack-ng破解

sudo aircrack-ng -w wordlist.txt capture-01.cap


# 使用hashcat破解

hcxpcapngtool -o hash.hc22000 capture-01.cap

hashcat -m 22000 hash.hc22000 wordlist.txt

第八部分:社会工程学工具

8.1 使用Social-Engineer Toolkit

bash

# 安装SET

git clone https://github.com/trustedsec/social-engineer-toolkit.git

cd social-engineer-toolkit

pip3 install -r requirements.txt


# 运行SET

sudo python3 setoolkit


# 常用选项:

# 1) Social-Engineering Attacks

# 2) Website Attack Vectors

# 3) Credential Harvester Attack Method

8.2 钓鱼邮件测试

bash

# 使用Gophish

# 下载Gophish:https://getgophish.com


# 解压并运行

unzip gophish-v*.zip

cd gophish-v*

chmod +x gophish

./gophish


# 访问管理界面

# https://localhost:3333

第九部分:数字取证和事件响应

9.1 文件系统取证

bash

# 使用Sleuth Kit

sudo apt install sleuthkit


# 查看磁盘信息

mmls /dev/sda


# 查看文件系统

fsstat /dev/sda1


# 恢复删除文件

fls -r -d /dev/sda1 | grep -v "*"


# 使用Autopsy图形界面

sudo apt install autopsy

sudo autopsy

9.2 内存取证

bash

# 使用Volatility

sudo apt install volatility


# 获取内存镜像

# 使用LiME工具获取内存镜像


# 分析内存镜像

volatility -f memory.dump imageinfo

volatility -f memory.dump --profile=Win7SP1x64 pslist

volatility -f memory.dump --profile=Win7SP1x64 netscan

第十部分:安全防护实践

10.1 安全监控脚本

bash

#!/bin/bash

# security_monitor.sh


LOG_FILE="/var/log/security_monitor.log"

ALERT_EMAIL="admin@example.com"


check_system() {

   echo "=== 安全监控检查 ==="

   echo "时间: $(date)"

   

   # 1. 检查失败的登录尝试

   echo "1. 失败的登录尝试:"

   grep "Failed password" /var/log/auth.log | tail -5

   

   # 2. 检查可疑进程

   echo "2. 可疑进程检查:"

   ps aux | grep -E "(minerd|backdoor|bot)" | grep -v grep

   

   # 3. 检查网络连接

   echo "3. 异常网络连接:"

   netstat -tunap | grep -E "(:6666|:4444|:31337)"

   

   # 4. 检查文件更改

   echo "4. 关键文件更改:"

   find /etc -type f -mtime -1 -ls

   

   # 5. 检查rootkit

   echo "5. Rootkit检查:"

   if command -v rkhunter >/dev/null; then

       sudo rkhunter --check --sk

   fi

}


# 发送警报

send_alert() {

   local message="$1"

   echo "$(date) - $message" >> "$LOG_FILE"

   echo "$message" | mail -s "安全警报" "$ALERT_EMAIL"

}


# 主循环

while true; do

   check_system

   sleep 300  # 5分钟检查一次

done

10.2 入侵响应流程

bash

#!/bin/bash

# incident_response.sh


echo "=== 安全事件响应流程 ==="


# 1. 确认和评估

echo "1. 确认事件:"

echo "   - 检查系统日志"

echo "   - 确认影响范围"

echo "   - 评估严重程度"


# 2. 遏制

echo "2. 遏制措施:"

read -p "是否断开网络连接? (y/n): " disconnect

if [ "$disconnect" = "y" ]; then

   sudo iptables -A INPUT -j DROP

   sudo iptables -A OUTPUT -j DROP

   echo "网络已断开"

fi


# 3. 取证

echo "3. 取证收集:"

sudo dd if=/dev/sda of=/evidence/system.img bs=4M status=progress

sudo tar -czvf /evidence/logs.tar.gz /var/log

sudo netstat -tunap > /evidence/network_connections.txt

sudo ps aux > /evidence/process_list.txt


# 4. 根除

echo "4. 根除威胁:"

read -p "输入要删除的恶意文件路径: " malicious_file

if [ -n "$malicious_file" ]; then

   sudo rm -f "$malicious_file"

fi


# 5. 恢复

echo "5. 恢复系统:"

read -p "是否从备份恢复? (y/n): " restore

if [ "$restore" = "y" ]; then

   # 这里应该是实际的恢复命令

   echo "执行恢复操作..."

fi


# 6. 总结

echo "6. 事件总结:"

read -p "输入事件总结: " summary

echo "$(date) - $summary" >> /evidence/incident_report.txt

练习项目

项目1:搭建安全实验环境

使用VirtualBox搭建靶机环境


配置Kali Linux攻击机


部署易受攻击的应用(如DVWA)


进行安全测试


项目2:企业安全加固

对Linux服务器进行安全评估


制定安全加固方案


实施安全配置


验证加固效果


项目3:渗透测试实战

对授权目标进行渗透测试


编写渗透测试报告


提供修复建议


验证修复效果


项目4:安全监控系统

部署入侵检测系统


配置安全信息事件管理(SIEM)


设置实时告警


模拟攻击测试监控系统


今日总结

今天我们学习了Linux安全攻防和渗透测试基础:


安全基础:原则、威胁模型


系统加固:账户安全、SSH加固、防火墙


漏洞扫描:端口扫描、漏洞评估


入侵检测:OSSEC、Snort配置


渗透测试:信息收集、漏洞利用、密码破解


Web安全:SQL注入、XSS测试


无线安全:无线网络嗅探和破解


社会工程学:钓鱼攻击和防范


数字取证:文件和内存取证


安全防护:监控、响应、恢复


重要原则:


合法授权:只在授权范围内进行测试


最小影响:尽量减少对目标系统的影响


文档记录:详细记录所有测试步骤和发现


保密原则:保护测试结果和发现的敏感信息


持续学习:安全领域日新月异,需要不断学习


安全是一个持续的过程,需要技术、流程和人员相结合。无论是防御还是攻击,都需要深入理解系统原理。


免责声明:所有安全测试必须在合法授权范围内进行,未经授权的测试是违法的。


这是Linux基础教程的最后一课。你已经学习了从基础到进阶的Linux知识,包括系统管理、网络服务、安全运维等多个方面。建议在实际工作中不断实践和深化这些知识。如果有特定领域需要深入学习,可以继续探索相关专业课程。祝你在Linux学习和使用的道路上越走越远!


明扬工控商城

推荐阅读:

Linux基础教程 第20课:Linux安全攻防和渗透测试基础

Linux基础教程 第19课:性能调优和容量规划

Linux基础教程 第18课:Linux云计算基础

Linux基础教程 第17课:自动化运维工具

Linux基础教程 第16课:集群和高可用性

Linux基础教程 第15课:Linux内核和驱动管理

热门标签:
Linux基础教程 第20课:Linux安全攻防和渗透测试基础.docx

将本文的Word文档下载到电脑

推荐度:

下载

全部评论

请登录
产业新闻-明扬资讯网
科技资讯-明扬资讯网