首页
社区
课程
招聘
[原创]Hack The Box - TIER 2 - Archetype Oopsie Vaccine Unified
发表于: 2022-3-9 00:09 3184

[原创]Hack The Box - TIER 2 - Archetype Oopsie Vaccine Unified

2022-3-9 00:09
3184

这个阶段的,终于不是之前的傻乎乎操作了,到这我才知道,那些问答不是先问答再渗透的。原来是渗透一步回答相应问题,这里涉及到了许多工具、脚本、提权、端口等知识点,收获丰富。

TASK 1

Which TCP port is hosting a database server?

哪个 TCP 端口托管数据库服务器?

答案:1433

TASK 2

What is the name of the non-Administrative share available over SMB?

SMB 上可用的非管理共享的名称是什么?

答案:backups

TASK 3

What is the password identified in the file on the SMB share?

SMB 共享文件中标识的密码是什么?

答案:M3g4c0rp123

TASK 4

What script from Impacket collection can be used in order to establish an authenticated connection to a Microsoft SQL Server?

可以使用 Impacket 集合中的哪些脚本来建立到 Microsoft SQL Server 的经过身份验证的连接?

答案:mssqlclient.py

TASK 5

What extended stored procedure of Microsoft SQL Server can be used in order to spawn a Windows command shell?

可以使用 Microsoft SQL Server 的哪些扩展存储过程来生成 Windows 命令外壳?

答案:xp_cmdshell

TASK 6

What script can be used in order to search possible paths to escalate privileges on Windows hosts?

可以使用什么脚本来搜索提升 Windows 主机权限的可能路径?

答案:winpeas

TASK 7

What file contains the administrator's password?

哪个文件包含管理员的密码?

答案:ConsoleHost_history.txt

先nmap扫一扫

看到139端口和445端口就知道是SMB了,同时1433端口也是个敏感端口,是mssql,这里先从SMB下手使用-L命令列出共享文件夹

带美元符号的是管理员权限,这里我们使用-N符号连接backups,发现有一个dtsConfig文件,这个文件是SSIS的配置文件,SSIS是SQL Server Integration Services,先get下来

查看内容,里面包括了SQL服务的账户密码

既然获得了账户密码,这里使用kali自带的mssql客户端impacket-mssqlclient来连接靶机上的SQL服务

输入help指令显示了可用命令,这里的enable_xp_cmdshell是允许启用系统cmd命令行的指令。xp_cmdshell {cmd}是执行cmd命令的。那这里就先允许启用命令行,然后根据终端上的提示输入重置命令

这里尝试cmd能否使用,并且测试是否有nc命令,如果有就可以通过反弹shell建立起一个持续性的shell。

很可惜没有nc,但是cmd命令行可以用,那我们尝试传一个nc程序过去。这里是提前在kali里存一个nc.exe,然后开启http服务,在靶机里使用wget命令远程下载kali里的文件。这里注意提前将启动http服务的终端进入到存有nc.exe的文件夹里,这样http服务的根目录就是此文件夹,下载nc也更方便。

先查看kali IP

kali开启http服务

靶机下载kali里的nc文件,注意下载的文件夹,其他的文件夹会因为没有权限下载不进去

kali这边也显示文件已被get

这个时候进行反弹shell,kali开启监听,靶机主动连接kali

kali这边已经获得了靶机的shell

Windows列文件是dir,在经过一番寻找后,flag在此用户桌面上

到这我以为结束了,没想到还有一问,管理员账户里还有一个flag,那我们这获取的也是普通用户sql_svc的shell,这里需要提权了。Windows提权,通过资料,这里使用一款叫做winPEAS的工具,它会检索整个系统路径,有搞头的路径或文件会被红色文字列出来。这里还是提前准备winPEAS,靶机下载后,在刚才那个已经连上的shell里直接运行。

运行需要一段时间因为在检索整个系统,结束后会标出可利用文件路径

这个ConsoleHost_history.txt是记录了控制台命令历史记录,查看一下

里面记录了管理员账号与密码,kali尝试使用psexec.py脚本连接。psexec 是 windows 下非常好的一款远程命令行工具。psexec的使用不需要对方主机开机3389端口,只需要对方开启admin$共享(该共享默认开启)。但是,假如目标主机开启了防火墙,psexec也是不能使用的,会提示找不到网络路径。由于psexec是windows提供的工具,所以杀毒软件会将其添加到白名单中。

搜索一番后,管理员的flag也在桌面

这个靶机质量可以,学到很多。

HTB是先做题在回答相关问题,所以后面先写渗透靶机的过程,最后写问题答案

这个也好玩,首先nmap,探测到了22端口和80端口,但是ssh不知道密码无法连接,所以去网页看一看

在网页底部发现了这句提示

需要登陆来访问,所以我们的方向转为登录这个站,登录点在哪?这里我是打开源代码发现的

在最后的加载js脚本地方发现了,加载登录的脚本,打开这个login路径试试。

成功找到登陆页面,但是尝试了许多弱口令后都不行,注入也失败,这里看到登录页面有一个Login as Guest,游客登录,我们就以游客登录看看。

随便点点,(渗透就是要多点点)

在Acount这里发现url里参数content传递了account,id传递的2

account就是当前页面,id=2应该是当前用户的意思。我们这里试着将id改为1

居然切换到了admin用户,这叫啥漏洞呢,未授权还是垂直越权。但没什么用,这个页面没啥利用点。其他页面仍然没有啥亮点。Uploads页面的上传功能是我们唯一利用点,但是这里限制了权限,我们就要越权。在这里发现了Cookie

我们把role值改为admin,user值改为之前admin的access id

哇哇哇,干他,这里使用kali自带的php shell,由于我不太了解kali的web shell工具,所以这里采用反弹shell的方式,把shell复制过来一份再修改成自己的ip和监听端口。

上传成功,终端开启监听

现在我们需要访问这个shell 文件,他就会运行代码,但我们不知道上传路径。这里使用gobuster工具爆破路径。我kali里没有,apt-get install gobuster安装即可。gobuster有俩模式爆破目录和,dns子域名,所以需要先选择dir模式。--url表示url,--w表示使用哪个爆破字典,-x表示检索哪种文件扩展名,这个可选。这里使用dirb的小字典。

给我严查uploads,访问这个文件夹没权限,那访问此文件夹里的php-reverse-shell.php文件试试。

弹回来了,但是www-data权限太低,而且这个终端太难用。这里使用运行python代码,打开/bin/bash,并查看/etc/passwd文件

发现了robert,去robert目录看看

出了一个flag,不出所料应该还有,并且提权才能拿到

现在去登录文件夹寻找蛛丝马迹

经过一番cat,db.php里有robert账号密码

切换到robert用户,并查看有哪些可用命令

好像是用户组不太行,没权限,我们查看一下组

根据前面也说了robert属于bugtracker,我们查找一下bugtracker,但居然是个文件,那就看一下权限再输出他的文件类型

可执行文件,运行试试

这个程序是cat一个路径然后将内容输出,不存在的编号就会显示无文件。可以利用这个点提权

思路:bugtracker本来无权进入root目录的,但是使用了setid,使bugtracker暂时拥有了root权限,并且调用cat命令,直接调用cat命令调的是环境变量中的cat,那我们做一个恶意的cat命令,再把这个恶意的cat命令所在文件夹设置为环境变量,那bugtracker调用的就是恶意cat,具体命令如下:

然后调用bugtracker,输入任何一个id都会直接调用root用户的shell

因为,我们修改了环境变量,所以调用的cat是恶意的,所以查看不了文件,这里使用tac命令查看。tac是将行数倒着输出,并不会将一句话的每个字符倒序输出,这里直接tac查看即可

渗透结束,回答问题,但不是所有渗透都需要问题里的方法

TASK 1

With what kind of tool can intercept web traffic?

用什么样的工具可以拦截网络流量?

答案:proxy

TASK 2

What is the path to the directory on the webserver that returns a login page?

网络服务器上返回登录页面的目录的路径是什么?

答案:/cdn-cgi/login

TASK 3

What can be modified in Firefox to get access to the upload page?

可以在 Firefox 中修改哪些内容以访问上传页面?

答案:cookie

TASK 4

What is the access ID of the admin user?

admin 用户的访问 ID 是什么?

答案:34322

TASK 5

On uploading a file, what directory does that file appear in on the server?

上传文件时,该文件出现在服务器上的哪个目录中?

答案:/uploads

TASK 6

What is the file that contains the password that is shared with the robert user?

包含与 robert 用户共享的密码的文件是什么?

答案:db.php

TASK 7

What executible is run with the option "-group bugtracker" to identify all files owned by the bugtracker group?

使用“-group bugtracker”选项运行什么可执行文件来识别 bugtracker 组拥有的所有文件?

答案:find

TASK 8

Regardless of which user starts running the bugtracker executable, what's user privileges will use to run?

无论哪个用户开始运行 bugtracker 可执行文件,运行时使用的用户权限是什么?

答案:root

TASK 9

What SUID stands for?

SUID 代表什么?

答案:Set Owner User Id

TASK 10

What is the name of the executable being called in an insecure manner?

以不安全方式调用的可执行文件的名称是什么?

答案:cat

nmap扫描如下

nmap会显示ftp是否能够以匿名用户登录,图中ftp那个部分也有,所以用账户anonymous登录,密码随意

发现有个backup.zip文件,下载下来,解压需要密码,这里使用kali自带的压缩包密码猜解工具zip2john,先爆出hash值,然后john命令计算就行

黄色的数字就是密码,解压后有两个文件,分别是index.php和style.css

查看index.php,发现里面有密码的MD5值

放网站里解密后是qwerty789

浏览器访问网站,用admin和qwerty789登录,然后进入主页,发现右上角的搜索输入'会报错

尝试sqlmap注入,由于有cookie认证,所以sqlmap命令需要设置cookie(这里机器被我不小心关了,所以后面新开的机器,图片里的ip显示不一样)

爆到表名的时候,绷不住了,表只有那个车表,看来数据库没什么数据,难道mysql马?但有一个更简单的方法,sqlmap有个os-shell,可以直接打开shell,原理这里先不探究,打开需要满足一定条件,这里我也不知道满没满足。但以后渗透每次都试一下

命令:

获得的shell是非交互式的,这里采用反弹shell的方式获得一个交互式shell

推荐一个反弹shell payload网站:https://www.revshells.com/


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//