实验目的:通过对目标靶机的渗透过程,了解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另类应用。
实施细节如下:
1、发现目标 (netdiscover),找到WebDeveloper的IP地址。截图。
2、:利用NMAP扫描目标主机,发现目标主机端口开放、服务情况,截图并说明目标提供的服务有哪些?(利用第一次实验知识点)
ssh协议服务:Secure Shell(SSH) 是由 IETF(The Internet Engineering Task Force) 制定的建立在应用层基础上的安全网络协议。它是专为远程登录会话(甚至可以用Windows远程登录Linux服务器进行文件互传)和其他网络服务提供安全性的协议,可有效弥补网络中的漏洞。通过SSH,可以把所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。目前已经成为Linux系统的标准配置。
http协议服务:HTTP 是 HyperText Transfer Protocol(超文本传输协议)的简写,它是 TCP/IP 协议集中的一个应用层协议,是客户端与服务端进行交互时必须遵循的规则。它用于定义 Web 浏览器与 Web 服务器之间交换数据的过程以及数据本身的格式,底层是靠 TCP 进行可靠地信息传输。
3、若目标主机提供了HTTP服务,尝试利用浏览器访问目标网站。截图。是否有可用信息?
输入目标主机ip进入网站,但发现不了什么有用的信息。
4、利用whatweb探测目标网站使用的CMS模板。截图。分析使用的CMS是什么?
扫描后可以看到cms用的是WordPress4.9.8版本
5、网络搜索wpscan,简要说明其功能。
WPScan
是一个扫描 WordPress
漏洞的黑盒子扫描器,它可以为所有 Web
开发人员扫描 WordPress
漏洞并在他们开发前找到并解决问题。
- WPScan是Kali Linux默认自带的一款漏洞扫描工具,它采用Ruby编写,能够扫描WordPress网站中的多种安全漏洞,其中包括WordPress本身的漏洞、插件漏洞和主题漏洞。最新版本WPScan的数据库中包含超过18000种插件漏洞和2600种主题漏洞,并且支持最新版本的WordPress。值得注意的是,它不仅能够扫描类似robots.txt这样的敏感文件,而且还能够检测当前已启用的插件和其他功能
- 该扫描器可以实现获取站点用户名,获取安装的所有插件、主题,以及存在漏洞的插件、主题,并提供漏洞信息。同时还可以实现对未加防护的
Wordpress
站点暴力破解用户名密码。 WPScan
已经被预安装在以下Linux
系统中
6、使用 Dirb 爆破网站目录。(Dirb 是一个专门用于爆破目录的工具,在 Kali 中默认已经安装,类似工具还有国外的patator,dirsearch,DirBuster, 国内的御剑)截图。找到一个似乎和网络流量有关的目录(路径)。
5、浏览器访问该目录(路径),发现一个cap文件。截图。
6、利用Wireshark分析该数据包,分析TCP数据流。找到什么有用的信息?截图。
运用请求方法的命令过滤数据包,过滤出post请求的数据包,包可以右键复制描述来进行复制账号密码
可得到该服务器的账号密码分别为:
webdeveloper
MasterOfTheUniverse
7、利用上一步得到的信息进入网站后台。截图。
(网站管理员账号与操作系统账号是不同概念)
8、利用该CMS存在的(插件Plugin)漏洞。
9、利用该插件漏洞提权。
可选方案1:利用MeterSploit插件+reflex gallery插件漏洞实现。安装reflex gallery插件。利用该插件可能存在的漏洞。(课本知识点)
建立会话后,查看wp-config.php获得账号及口令。(配置文件很重要,各种系统的配置文件)。
获得的账号、口令是用来访问什么目标?注意与第7步描述比较。
用msfconsole打开msf后进行search+【插件漏洞reflexfallery】,找出路径,且由excellent可以看到漏洞有效
然后进行下面命令去设计
将rhosts改为目标靶机的IP,exploit控制目标网站
pwd查看当前所在的目录,cd切换到/var/www/html目录下,ls查看当前目录下的内容,找到wp-config.php文件
即可找到系统账号密码
可选方案2:上传反弹shell。
php-reverse-shell | pentestmonkey
从上面网站下载php文件
【目的:PHP网站渗透;实现途径:上传网站后,URL访问(含有)该反弹shell的页面。
功能:该脚本会发起反弹TCP连接到攻击者(脚本中指定攻击者IP地址和端口号)。】
该CMS为PHP开发,可以利用其实现反弹shell。但必须修改初始化IP地址和端口。(指向攻击者)。
修改ip为攻击者ip,端口随意,这里设为444端口监听
进入后台,找到任意一个PHP页面,然后利用php-reverse-shell.PHP的代码修改该页面的代码。
直接将代码完全复制粘贴即可:
攻击者在Kali中利用NC开始监听,攻击者浏览器访问修改的PHP页面。从而得到反弹shell(用户www-data)。建立会话后,查看wp-config.php获得账号及口令。(注意路径)
运用nc命令进行监听,注意端口为444(前面设的监听端口)
然后访问: 192.168.187.131/wp-content/themes/twentysixteen/404.php,就是访问咋们之前修改的php页面,返回kali即可看到已经连接上
接下来咋们用cd /var/www/html到此目录,ls列出此目录下的文件,可看到wp-config.php文件,cat命令进行文件读取
可看到系统账号密码
方案3:利用文件管理插件(File manager)漏洞。
安装该插件,直接可以浏览wp-config.php。
以上方案三选一,或找到可以实现的方案,操作步骤截图。
10、SSH登录服务器
尝试利用上一步获得的访问数据库的用户名和密码连接远程服务器。截图。
1、尝试查看/root/flag.txt 以下操作得到的结果截图替代以下截图。
ssh webdeveloper@目标ip
均无法查看。
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。。。。congratulation!
tcpdump命令详解:
-i eth0 从指定网卡捕获数据包
-w /dev/null 将捕获到的数据包输出到空设备(不输出数据包结果)
-z [command] 运行指定的命令
-Z [user] 指定用户执行命令
-G [rotate_seconds] 每rotate_seconds秒一次的频率执行-w指定的转储
-W [num] 指定抓包数量
实验小结
通过此次实验,我们可以复习之前写的一些内容,学会了达到目的可以有很多种方法,不限于上面三种,让我们可以进行思维发散,学会不同方法的处理。对于一些kali里面常用的工具的使用也得到了练习,对命令更加熟能生巧,比如一些简单的msf里的命令,或者cd,pwd,ls,cat等非常简单的命令。然后对配置文件有了一定的了解,懂得了文件未加密的危险性,以及对于漏洞的利用,不一定是本身的漏洞,也可以是外来的及插件等的漏洞的利用。总之,在本节中我们受益匪浅。