拿到一个ssh shell,准备提权。
trying
1
1 |
|
无gcc
2
1 |
|
普通用户就一个
1 |
|
意识到su命令不可能没有,于是想要反弹一个bash shell
1 |
|
喵喵喵??于是回头看一下/etc/passwd。root:x:0:0:root:/root:/bin/ash
哦哦~
1 |
|
尝试用python,但是os.py被删掉了==
1 |
|
3
ps -ef | grep root
1 |
|
1 |
|
4
1 |
|
说明这是一个虚拟机容器,(⊙﹏⊙),虚拟机逃逸怎么做?
1 |
|
在freebuf、乌云镜像中,虚拟机逃逸的文都很少==
看看writeup。
用这条命令,可以检查现有的shell是不是运行在docker容器中。
grep -i docker /proc/self/cgroup 2>/dev/null;find / -name "*dockerenv*" - exec ls -la {} \; 2>/dev/null
netstat命令
Linux netstat命令详解
netstat without netstat
在home家目录下,有一个公钥,暗示了一个用户monitor。
.monitor
是私钥
sshd_config
cat /etc/ssh/sshd_config
1 |
|
ListenAddress 0.0.0.0
ssh监听本地地址
获得另一个shell
monitor rshell
通过以上信息搜集,知道这是一个docker虚拟机。 这个主机/etc/passwd,没有monitor用户,但是home目录有ssh私钥。 通过查看ssh配置文件,得知监听本地端口。
于是我们可以尝试连接本地,来访问宿主机。
ssh monitor@127.0.0.1 -i .monitor -t bash
用这条命令,得到bash shell
比较一下ssh加-t、不加-t
cat,command not found
直观来看,加-t参数,有些命令没有,可能是环境变量的原因。
不加-t参数,虽然命令都有,但是显示起来,回显没有颜色,不直观。
其余的东西,因时间所限,以后再找一下相关资料。
提权前的信息搜集
有三个普通用户
1 |
|
/home/monitor
1 |
|
ls -iR
1 |
|
1 |
|
总结:
getcap、tac、docker虚拟机、linux capabilities等概念都是第一次遇到==
下一次单独开一篇,探讨下权限问题。
唉~头疼