Vikings
一、靶机介绍和思路
靶机下载地址:Vikings: 1 ~ VulnHub
目标:
- root权限
攻击手法
- 主机发现
- 端口扫描
- WEB信息收集
- 编码转化/文件还原
- 离线密码破解
- 隐写术
- 二级制文件提权
- 素数查找/卡利茨猜想
- RPC漏洞提权
二、主机发现
老规矩arp扫描发现主机ip
arp-scan -l |
三、端口扫描
获取ip后对主机进一步信息收集,扫描端口
namp -p- 10.0.2.12 |
发现80 和22端口开放
进一步确认
nmap -p 80,22 -sV 10.0.2.12 |
发现是apache服务
访问目标网页
进入网页下一目录,由于引用了外网的css和js资源,加载比较慢,可以不用等
四、目录扫描
4.1、dirsearch扫描
习惯先使用dirsearch进行扫描,没有发现任何有用的信息
dirsearch -u http://10.0.2.12 |
4.2、gobuster扫描
由于dirsearch未扫描出来任何信息,换个工具扫描
gobuster dir -r -u http://10.0.2.12/site -x txt,html,php -w /usr/share/seclists/Discovery/Web-Content/common.txt |
发现一个war.txt
进行访问
http://10.0.2.12/site/war.txt |
发现指向另一个目录
http://10.0.2.12/site/war-is-over/ |
继续访问,发现一串编码,使用赛博厨子解密一下
发现是个压缩包
五、文件分析
使用命令保存到kali,进一步进行分析
5.1、john爆破压缩包密码
curl http://10.0.2.12/site/war-is-over/ | base64 -d > 1 |
成功爆破出密码
ragnarok123
解压出来发现是个图片
5.2、图片隐写
尝试使用steghide对文件进行读取,发现需要密码
steghide info king |
5.3、binwalk提权文件
使用-B参数对二进制文件进行分析,查看文件包含内容
binwalk -B king |
使用-e 参数对文件内容进行提取,可以直接使用
binwalk -e king |
如果报错说需要root权限,就是用下面这行命令
sudo binwalk -e --run-as=root king |
成功提取到,进入目录,查看文件
cd _king.extracted |
发现可疑文本
//FamousBoatbuilder_floki@vikings
//f@m0usboatbuilde7
ssh连接尝试一下
六、ssh连接
尝试一下登录,最终发现下面这个可以登录成功
ssh floki@10.0.2.12 |
在当前目录下,发现两个文件,两个都是文本,查看寻找有用信息
readme中提到,通过boat来寻找ragnar,猜测ragnar是另一个账号
6.1、考拉兹猜想
查看boat发现提示,第29个素数和科拉茨猜想
科拉茨猜想:
是指对于每一个正整数,如果它是奇数,则对它乘3再加1,如果它是偶数,则对它除以2,如此循环,最终都能够得到1
python脚本编写,先找到第29个素数
n = 0 |
运行脚本
考拉兹猜想脚本
def collatz(x): |
运行脚本
使用赛博厨子对数据进行处理
选择十进制用逗号隔开再转换得到一串字符,其中也包含不可输入的
将不能输入的去掉,同时去掉换行
得到结果,猜测是密码
mR)>/Gky[gz=.Fj5P(
6.2、ragnar账号登录
ssh ragnar@10.0.2.12 |
登录成功
但是发现登录成功后直接让输入sudo密码,猜测设置又开机自启任务,并且需要使用sudo权限才能运行。
先切换的bash命令行模式
/bin/bash |
七、提权
7.1、linux登录自动执行命令的方式
对于当前用户生效的
编辑当前主目录下的.bashrc文件添加一个指令
编辑当前主目录下的.profile文件
.bash_profile文件
对于全局用户生效的
/etc/profile
查看相关文件,寻找自动执行的文件
cat .profile |
查看目标文件的权限
ll /usr/local/bin/rpyc_classic.py |
7.2、RPC漏洞提权
rpc是一种远程调用服务
思路是:当前没有写的权限,但是了解rpc是服务客户端这种开放端口连接的方式,通过客户端编写代码提交给服务器来帮忙执行
执行命令以root用户来提取指令–>来获取root权限的shell
查看端口是否开放,rpc默认端口为:18812
ss -pantu | grep 18812 |
说明服务是正在执行的,且侦听地址是127.0.0.1,所以服务需要连靶机在靶机上运行,编写rpc服务功能,获取root权限:
脚本如下
import rpyc |
切换到tmp目录下,编写并对其进行执行,
发现出息bashroot文件即是执行成功
执行bashroot,完成提权,获的root权限
八、总结
思路:
主机发现==>端口扫描==>目录扫描==>对文件进行分析==>john密码爆破==>binwalk提取文件==>rpc提权
参考文章:【每日打靶练习】Vulnhub-vikings(中低)_vikings靶场-CSDN博客
提权方式的另一种,参考这篇文章