一.实验目的和要求
实验目的:通过对目标靶机的渗透过程,了解CTF竞赛模式,理解CTF涵盖的知识范围,如MISC、PPC、WEB等,通过实践,加强团队协作能力,掌握初步CTF实战能力及信息收集能力。熟悉网络扫描、探测HTTP web服务、目录枚举、提权、图像信息提取、密码破解等相关工具的使用。
系统环境:Kali Linux 2、WebDeveloper靶机来源:Vulnerable By Design ~ VulnHub
实验工具:不限
二.实验步骤
实验步骤和内容:
目的:获取靶机Web Developer 文件/root/flag.txt中flag。
基本思路:本网段IP地址存活扫描(netdiscover);网络扫描(Nmap);浏览HTTP 服务;网站目录枚举(Dirb);发现数据包文件 “cap”;分析 “cap” 文件,找到网站管理后台账号密码;插件利用(有漏洞);利用漏洞获得服务器账号密码;SSH 远程登录服务器;tcpdump另类应用。
实施细节如下:
- 发现目标 (netdiscover),找到WebDeveloper的IP地址。截图。
2、:利用NMAP扫描目标主机,发现目标主机端口开放、服务情况,截图并说明目标提供的服务有哪些?(利用第一次实验知识点)
3、若目标主机提供了HTTP服务,尝试利用浏览器访问目标网站。截图。是否有可用信息?
4、利用whatweb探测目标网站使用的CMS模板。截图。分析使用的CMS是什么?
5、网络搜索wpscan,简要说明其功能。
- WordPress是全球流行的博客网站,全球有上百万人使用它来搭建博客。他使用PHP脚本和Mysql数据库来搭建网站。
- Wordpress作为三大建站模板之一,在全世界范围内有大量的用户,这也导致白帽子都会去跟踪 WordPress的安全漏洞,Wordpress自诞生起也出现了很多漏洞。Wordpress还可以使用插件、主题。于是Wordpress本身很难挖掘什么安全问题的时候,安全研究者开始研究其插件、主题的漏洞。通过插件,主题的漏洞去渗透Wordpress站点,于是WPScan应运而生,收集 Wordpress的各种漏洞,形成一个Wordpress专用扫描器
- WPScan是一个扫描 WordPress 漏洞的黑盒子扫描器,它可以为所有 Web 开发人员扫描 WordPress 漏洞并在他们开发前找到并解决问题。我们还使用了 Nikto ,它是一款非常棒的Web 服务器评估工具,我们认为这个工具应该成为所有针对 WordPress网站进行的渗透测试的一部分
- WPScan是Kali Linux默认自带的一款漏洞扫描工具,它采用Ruby编写,能够扫描WordPress网站中的多种安全漏洞,其中包括WordPress本身的漏洞、插件漏洞和主题漏洞。最新版本WPScan的数据库中包含超过18000种插件漏洞和2600种主题漏洞,并且支持最新版本的WordPress。值得注意的是,它不仅能够扫描类似robots.txt这样的敏感文件,而且还能够检测当前已启用的插件和其他功能
- 该扫描器可以实现获取站点用户名,获取安装的所有插件、主题,以及存在漏洞的插件、主题,并提供漏洞信息。同时还可以实现对未加防护的Wordpress站点暴力破解用户名密码。
6、使用 Dirb 爆破网站目录。(Dirb 是一个专门用于爆破目录的工具,在 Kali 中默认已经安装,类似工具还有国外的patator,dirsearch,DirBuster, 国内的御剑)截图。找到一个似乎和网络流量有关的目录(路径)。
7、浏览器访问该目录(路径),发现一个cap文件。截图。
8、利用Wireshark分析该数据包,分析TCP数据流。找到什么有用的信息?截图。
9、利用上一步得到的信息进入网站后台。截图。
10、利用该CMS存在的(插件Plugin)漏洞。
利用文件管理插件(File manager)漏洞。安装该插件,直接可以浏览wp-config.php。
11、利用该插件漏洞提权。
尝试利用上一步获得的访问数据库的用户名和密码连接远程服务器。截图。
1、尝试查看/root/flag.txt
均无法查看。
2、使用tcpdump执行任意命令(当tcpdump捕获到数据包后会执行指定的命令。)
查看当前身份可执行的命令
发现可以root权限执行tcpdump命令
3.创建攻击文件->写入shellcode->赋予可执行权限->利用tcpdump执行任意命令
三. 实验小结
首先,利用网络扫描工具扫描同一子网下的主机,根据ip的对比和开放端口的数量发现目标主机。其次,扫描目标主机的开放的端口,发现其80端口是开放的,从而它提供http服务。紧接着在浏览器中访问它,发现有登录的模块。但此时并不知道用户和密码,然后利用爆破工具对网站的目录进行爆破,通过观察寻找,发现一个似乎与网络流量有关的目录(ipdata),猜测这个流量中可能有登录网站后台的账户和密码(可能是“工作人员”登录时发送的报文)。在浏览器中访问这个目录,发现其中有一个cap文件,根据wireshark使用经验,它是一个数据包。那么用其默认的wireshak打开它,利用登录服务器时发送的http请求进行过滤,猜想即可获得验证,发现登录网站后台的用户名和密码。果断登录网站,在插件安装界面安装带有漏洞的插件file mangage,
在其的配置文件wp_config.php发现可以登录网站数据库的账户密码。最后远程登录网站数据库,测试在其数据库中是否能直接发现flag文件,显然不行,但是发现可以用root权限执行tcpdump命令的细节。通过查看tcpdump工具的使用方法,先创建一个打开flag文件的脚本(赋予它可执行权限),用tcpdump执行该脚本,最后得到flag对应的字符串。
附:利用该CMS存在的(插件Plugin)漏洞的另外两个方案:
方案二:
利用MeterSploit插件+reflex gallery插件漏洞实现。安装reflex gallery插件。利用该插件可能存在的漏洞。建立会话后,查看wp-config.php获得账号及口令。
(1)wordpress安装插件reflex gallery
安装压缩包:
https://pan.baidu.com/s/15Hi1uUsCgPCNpaBl6cu7hQ
提取码:glmm
(2)利用MSF进入网站根目录
(3)寻找配置文件
(4)查看配置文件,获得数据库用户名和密码
找到database 的用户名和密码============
方案三:
上传反弹shell。
http://pentestmonkey.net/tools/web-shells/php-reverse-shell
【目的:PHP网站渗透;实现途径:上传网站后,URL访问(含有)该反弹shell的页面。
功能:该脚本会发起反弹TCP连接到攻击者(脚本中指定攻击者IP地址和端口号)。】
该CMS为PHP开发,可以利用其实现反弹shell。但必须修改初始化IP地址和端口。(指向攻击者)。
(1)首先在提供的网站上下载制造反弹连接shell的源码
(2) 进入后台,找到任意一个PHP页面,然后利用php-reverse-shell.PHP的代码修改该页面的代码。并且修改代码中反弹目标的IP地址及端口(修改为攻击者IP地址及开放的端口号)。
(3)攻击者在Kali中利用NC开始监听,攻击者浏览器访问修改的PHP页面。从而得到反弹shell(用户www-data)。建立会话后,查看wp-config.php获得账号及口令。(注意路径)
监听
访问(切勿直接进入后台,浏览器输入目标地址即可):
监听到信息
寻找查看配置文件wp-config.php
找到数据库的用户名和密码=========
方案思路:
这两个方案是基于外界工具的帮助,其一是插件reflex gallery低版本漏洞的实现,利用MSF建立会话,间接查看wp-config.php获得账号及口令。其二是上传反弹shell,通过更改网站PHP源码将攻击机的某个端口渗透进网站后台,采用nc进行监听,当从浏览器访问到被更改的PHP界面时,相关配置文件将被监听到,即可查看数据库的账户密码。