HTB-Poison

0x01 端口扫描

常见端口如下:

  • 80端口:HTTP服务
  • 22端口:SSH服务

访问80端口

0x02 泄露的登录凭证

根据页面的提示我们访问提示的文件,可发现能够读取到对应文件的内容。

访问pwdbackup.txt

内容大致如下,提示这密码至少加密了13次,然后是一串加密字符串。根据特征可大致判断为base64。我们复制密文去解密。

拥有了密码,但我们目前还无法确定用户归属。

0x03 目录穿越漏洞

构造payload如下成功读取到/etc/passwd文件

这里我们发现和密码关联的用户charix,可尝试ssh登录。

0x04 组合利用线索获取主机访问权限

通过我们获得的密码和用户名尝试ssh登录

至此我们获得了低权限

0x05 从目录穿越到LFI(本地文件包含)

通过利用目录穿越时我们可以发现,读取的php文件内容并非是以文本的形式展现的,而是以php代码执行结果的形式展现的,这表明该漏洞很可能不仅仅是一个目录穿越漏洞,更可能是一个LFI漏洞,那么我们便可以通过LFI转化成RCE。

0x06 LFI转化为RCE

首先通过前期的信息搜集可得知操作系统为freeBSD,Apache中间件版本为2.4.29。

我们猜测access.log文件在/var/log/httpd-access.log处,构造url进行访问。

可以看到日志文件中记录了很多内容,如来源IP,访问时间,请求方式,访问页面地址,访问参数,访问结果及浏览器UA等内容,很明显这其中多个数据是我们可以在访问过程中修改和控制的。

尝试日志写入webshell

访问该地址不会产生任何效果,但会在access.log中写入一条日志信息,当拥有LFI漏洞的使用权时即可使用LFI漏洞访问access.log,上述payload中的webshell就会被当作代码来执行。

通过日志发现写入的webshell符号被转义了,该方法不可行。

既然会被浏览器转义,那么我们找到一个不会被转义的地方插入即可,UA就是一个非常好的位置。

抓包后修改UA,插入一句话木马

通过LFI漏洞访问access.log

提示无法执行空命令,说明我们修改UA写入的webshell生效了。

构造payload进一步验证

至此我们拿下了charix用户和www用户的权限。

0x07 本地脆弱性枚举

ssh登录charix账户发现存在一个secret.zip压缩包,看名字可能包含敏感信息。

首先在kali使用命令,让nc监听4000端口,并将数据保存为secret.zip

接下来在目标主机使用命令调用nc程序将zip文件远程传输到本地的4000端口。

本地查看压缩包

使用之前得到的密码成功解压,但解压后的文件无法直接读取

暂且放置,上传linPEAS进行本地脆弱性搜集

枚举进程发现目前有一个root执行的vnc程序,且目前处于可连接的本地监听状态。

VNC程序

vnc是一种远程操作软件,用户可借助vnc进行操作系统的远程连接,并像在本地一样对远程系统进行访问和操作。此次目标主机开放root权限的vnc程序监听,意味着如果我们有机会连接该vnc可直接获得root身份的操作系统远程访问权限。

0x08 本地脆弱性-root权限的vnc会话

为了获得vnc连接,需要在目标主机本地的5901端口进行端口映射,并将其连接权限转发到其他对外端口上。这里通过ssh服务实现将远程端口映射到本地。

接下来基于vncviewer对kali系统的5901端口进行登录尝试,这时会提示需要密码,且charix用户密码不再起作用。考虑到vncviewer还支持以密码文件的形式提供认证凭证,加上之前无法读取的secret文件,我们可尝试使用该方法登录。

至此我们拿下root权限

0x09 总结

  • 敏感文件泄露登录凭证
  • 目录穿越到LFI
  • LFI2RCE:Apache中间件access.log写入webshell
  • LFI2RCE:绕过浏览器转义,修改UA写入webshell
  • 组合利用登录ssh获取charix权限
  • 本地脆弱性枚举获取带有root权限的vnc程序
  • vnc仅允许本地访问,端口映射至本机
  • vncviewer使用密码文件访问,拿下root权限

HTB-Optimum

0x01 端口扫描

此处为远程主机,速度较慢,可拆分全部扫描任务分布进行扫描,先获取一部分信息,进行分析利用,再后台扫描剩余部分。

看到80端口

看到httpfileserver2.3

0x02 HFS 2.3 RCE

直接使用MSF

查看到当前用户为kostas,并非windows的最高权限system

查看系统信息

0x03 脆弱性搜集

将systeminfo内容保存到本地,并放到windows-exploit-sussester目录下

更新windows-exploit-suggester.py并将其生成的xslx与systeminfo对比找出可用漏洞

通过获取到的可能存在的漏洞信息,我们选择MS16-098进行利用

0x04 MS16-098 windows内核池溢出

下载exp

可以看到exp是.exe,那我们就需要开启一个http服务,然后使用命令让其下载下来再运行。这里利用Powershell的DownloadFile()函数进行下载。

0x05 总结

  • 分步扫描提高效率
  • HSF 2.3 RCE获取权限
  • 搜集windows主机信息,比对systeminfo获取可利用漏洞信息,注意python2环境及xlrd指定版本。
  • MS16-098内核池溢出漏洞提权
  • Powershell下载exe文件运行

HTB-Nibbles

0x01 端口扫描

扫描情况如下:

  • 22端口:SSH服务
  • 80端口:HTTP服务

访问80端口

查看源代码

注释中有内容,先保存下来

访问该目录,看到了一个页面

根据页面右下角指纹可知这是一个开源的博客系统。

0x02 目录扫描

先对网站根目录进行扫描,未发现什么有用的线索。

再对网站目录扫描,发现一些链接及文件

访问这些线索

其中有一个登陆页面

一个install.php的页面

和一个admin用户名但不知道密码

0x03 遗留的web敏感文件

点击更新我们发现了Nibbleblog4.0.3的版本号和两个疑似数据库的路径

通过exploit的讲解我们得知必须要获得管理员权限才能够使用该漏洞

0x05 登陆凭证猜测

无法使用爆破,应该设置了尝试次数机制根据猜测最后的密码为admin/nibbles

登陆系统后页面如下

漏洞非常简单,找到对应的功能点,上传php-reverse-shell即可,保存在了该插件的目录下,且名称为

image.php

访问获得反弹shell后获取标准终端并禁用回显

使用命令查看是否有提权可利用的命令

发现我们可以无root密码使用 /home/nibbler/personal/stuff/monitor.sh 并且从 /home/nibbler/ 又可知道该目录是当前用户的个人目录,那么意味着nibbler用户对该目录有完整的读、写和执行权限。

使用命令写入

这里我是笨比,不会换行,直接写了两次

给monitor.sh添加执行权限,然后sudo运行一下,获取root权限

0x06 总结

  • 查看源代码发现更多有价值的线索
  • 访问页面获取系统关键词
  • 对根目录扫描和网站目录扫描结果可能不同
  • 遗留的安装文件等泄露系统版本信息
  • 配置文件获取admin用户名
  • 无法对密码进行爆破时,尝试使用相关的内容进行猜测
  • 登陆成功后的任意文件上传
  • 修改脚本sudo提权

HTB-Legacy

0x01 端口扫描

通过脚本验证存在可利用漏洞MS17-010和MS08-067两个漏洞

0x02 MS08-067

使用MSF直接打穿

0x03 MS17-010

直接MSF,因为是x86,所以使用/exploit/windows/smb/ms17-010-psexec这个payload

0X04 总结

  • nmap可配置脚本进行漏洞扫描
  • MS08-067内核池溢出获取权限
  • MS17-010永恒之蓝获取权限
  • MS17-010需要区分是32位还是64位