目录
发现目标 (netdiscover),找到WebDeveloper的IP地址
利用NMAP扫描目标主机,发现目标主机端口开放、服务情况,截图并说明目标提供的服务有哪些?
若目标主机提供了HTTP服务,尝试利用浏览器访问目标网站。截图。是否有可用信息?
利用whatweb探测目标网站使用的CMS模板。截图。分析使用的CMS是什么?
利用Wireshark分析该数据包,分析TCP数据流。找到什么有用的信息
实验目的:通过对目标靶机的渗透过程,了解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另类应用。
实施细节如下:
- 发现目标 (netdiscover),找到WebDeveloper的IP地址。截图。
这道题要求我们获得目标靶机的ip地址,这里我们使用nmap来进行扫描就可以实现啦。
首先确保我们和目标靶机处于同一网段下,然后使用nmap ip/24来对整个网段进行扫描,扫描出来的结果可能有很多,接下来就是要看我们对信息的筛选能力了,首先排除本机,然后查看端口开放情况,这里我们初步判断192.168.157.134就是我们寻找的目标靶机的ip:
2、利用NMAP扫描目标主机,发现目标主机端口开放、服务情况,截图并说明目标提供的服务有哪些?(利用第一次实验知识点)
使用nmap -O ip来查看该ip对应的主机是什么操作系统:
3、若目标主机提供了HTTP服务,尝试利用浏览器访问目标网站。截图。是否有可用信息?
4、利用whatweb探测目标网站使用的CMS模板。截图。分析使用的CMS是什么?
5、网络搜索wpscan,简要说明其功能
WPScan 基本功能:
Wordpress 版本检测和主题检测
Wordpress 插件安全检测
密码的暴力破解
可以指定代理
6、使用 Dirb 爆破网站目录。(Dirb 是一个专门用于爆破目录的工具,在 Kali 中默认已经安装,类似工具还有国外的patator,dirsearch,DirBuster, 国内的御剑)截图。找到一个似乎和网络流量有关的目录(路径)。
dirb是一个基于字典的web目录扫描工具,会用递归的方式来获取更多的目录,它还支持代理和http认证限制访问的网站,dirb在 Kali 中默认已经安装,类似工具还有国外的patator,dirsearch,DirBuster, 国内的御剑。
我们使用dirb 目标网站的url来爆破网站的根目录
7、浏览器访问该目录(路径),发现一个cap文件
8、利用Wireshark分析该数据包,分析TCP数据流。找到什么有用的信息?截图。
首先,我们将这个名为analyze.cap的文件下载下来,然后使用wireshark打开,
发现账号密码
9、利用上一步得到的信息进入网站后台
10、利用该CMS存在的(插件Plugin)漏洞
利用MeterSploit插件+reflex gallery插件漏洞实现。安装reflex gallery插件
首先下载具有漏洞的reflex gallery插件,这边以自行下载好带有漏洞的reflex gallery插件为例,按下图操作导入插件:
11、利用该插件漏洞提权
可选方案1:利用MeterSploit插件+reflex gallery插件漏洞实现。安装reflex gallery插件。利用该插件可能存在的漏洞。(课本知识点)
建立会话后,查看wp-config.php获得账号及口令。(配置文件很重要,各种系统的配置文件)。
获得的账号、口令是用来访问什么目标?注意与第7步描述比较。
将rhosts改成目标靶机的ip
现在我们已经可以控制控制了目标网站,接下来的任务就是查看wp-config.php获得账号及口令,首先使用pwd查看当前所在位置,然后使用cd切换目录,切换到/var/www/html目录下,再使用ls查看当前目录的内容:
然后使用cat wp-config.php打开wp-config.php文件,找到数据库的用户名和密码:
10、SSH登录服务器
尝试利用上一步获得的访问数据库的用户名和密码连接远程服务器。截图。
- 尝试查看/root/flag.txt 以下操作得到的结果截图替代以下截图。
这里我们直接使用第十题中得到的账号和密码来登陆,使用ssh webdeveloper@ip来远程登陆:
成功登陆!然后我们来查看我们的目标:文件/root/flag.txt中flag:
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
tcpdump命令详解:
-i eth0 从指定网卡捕获数据包
-w /dev/null 将捕获到的数据包输出到空设备(不输出数据包结果)
-z [command] 运行指定的命令
-Z [user] 指定用户执行命令
-G [rotate_seconds] 每rotate_seconds秒一次的频率执行-w指定的转储
-W [num] 指定抓包数量