实验目的:通过对目标靶机的渗透过程,了解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
漏洞并在他们开发前找到并解决问题。
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等非常简单的命令。然后对配置文件有了一定的了解,懂得了文件未加密的危险性,以及对于漏洞的利用,不一定是本身的漏洞,也可以是外来的及插件等的漏洞的利用。总之,在本节中我们受益匪浅。