渗透测试学习—HTB靶机之Shield

这是HTB的Starting Point实验室中第四台靶机,主要根据官方提供的walkthrough来练习,中间穿插一些自己的理解和工具使用扩展。

一、环境配置

  1. 工具准备
    kali linux 2020.1 vmware虚拟机,配置为hostonly模式,共享宿主机网卡上网;
    firefox浏览器(kali linux自带);
    Shield靶机IP地址:10.10.10.29;

  2. 网络连接,按照说明连接到Starting Point实验室。

二、 开始渗透

  1. 信息收集
    使用nmap进行扫描,靶机开放了80和3306两个端口,看起来是个web服务器。渗透测试学习—HTB靶机之Shield_第1张图片
    访问靶机的80端口发现只有一个IIS默认页面。渗透测试学习—HTB靶机之Shield_第2张图片
    既然开放了80端口就很有可能存在web应用,尝试进行web目录爆破。安装gobuster,使用dir模式进行目录爆破,此命令需要指定字典文件,此处使用common.txt字典。还有其他工具可以选择:dirb、birbuster、dirhunt等。 渗透测试学习—HTB靶机之Shield_第3张图片
    爆破完成后发现了wordpress目录(网络原因报错很多),在浏览器中访问它。
    WordPress是一款个人博客系统,并逐步演化成一款内容管理系统软件,它是使用PHP语言和MySQL数据库开发的,用户可以在支持 PHP 和 MySQL数据库的服务器上使用自己的博客。渗透测试学习—HTB靶机之Shield_第4张图片
    在页面上查看后发现blog菜单中存在login选项,使用常用的用户名密码组合和之前靶机中使用过的密码尝试登录,发现admin/P@s5w0rd!这个组合可以成功登录。 渗透测试学习—HTB靶机之Shield_第5张图片
    登录界面渗透测试学习—HTB靶机之Shield_第6张图片
    登录成功,在网站内查看一番,未发现明显可以利用点。

    1. 获取webshell
      有了网站管理员权限,可以利用管理权限使用msf中的模块exploit/unix/webapp/wp_admin_shell_upload来获取webshell。
      使用msfconsole命令启动matesploit framwork,配置好参数并执行。渗透测试学习—HTB靶机之Shield_第7张图片
      根据执行提示,执行过程中msf首先在kali linux 的4444端口使用提供的账号密码建立反向TCP连接,之后上传payload到网站目录中,成功后自动清除上传的payload,建立了meterpreter shell连接。渗透测试学习—HTB靶机之Shield_第8张图片
      反弹成功后kali linux与靶机之间建立了tcp连接。渗透测试学习—HTB靶机之Shield_第9张图片
      建立的meterpreter连接不稳定,可以上传netcat到靶机以建立更稳定的连接。kali linux中提供有windows版本的netcat,复制到本地目录并上传到靶机。在这里插入图片描述
      上传nc.exe到靶机的c:\inetpub\wwwroot\wordpress\wp-content\uploads,注意切换目录时要使用符号/而不是\。/是linux中可以识别的路径表示方式。
      渗透测试学习—HTB靶机之Shield_第10张图片
      上传成功后,在kali linux中启用netcat监听。
      在这里插入图片描述
      执行meterpreter命令调用上传的nc.exe,将靶机的cmd.exe通过netcat提供给kali linux渗透机。
      在这里插入图片描述
      命令执行后成功后kali linux中获得了wordpress用户的webshell。
      渗透测试学习—HTB靶机之Shield_第11张图片
  2. 权限提升
    在webshell中使用systeminfo命令查看系统版本为windows server 2016。渗透测试学习—HTB靶机之Shield_第12张图片
    可以利用Juicy Potato(github中下载)这个本地用户权限提升工具来提升wordpress用户权限为管理员权限。Juicy Potato是Rotten Potato漏洞利用程序的一种变体,它通过利用MiTM攻击中的BITS和SeAssignPrimaryToken或SeImpersonate特权,允许Windows上的服务帐户(此例中使IIS服务)升级为SYSTEM(最高特权)。
    下载好Juicy Potato程序后在meterpreter中上传程序。(正式渗透环境要修改程序名称,否则容易被杀毒软件发现)渗透测试学习—HTB靶机之Shield_第13张图片
    写一个简单的批处理程序,启动netcat提供靶机的powershell给kali linux的1111端口。注意加引号,否则shell.bat文件中的路径符\会被忽略。
    在这里插入图片描述
    在meterpreter中上传批处理程序。
    渗透测试学习—HTB靶机之Shield_第14张图片
    启动kali linux的netcat监听1111端口,然后在获取的webshell中运行JuicyPotato程序命令并调用该批处理程序。-t *参数使用TokenW和User两种模式创建进程,-p指定要运行的程序(无法加带参数的命令,使用bat代替),-l COM服务监听的端口。
    在这里插入图片描述
    启动监听。接收到了system权限的shell,查看用户桌面上的root.txt,得到flag。
    渗透测试学习—HTB靶机之Shield_第15张图片
    kali linux中存在一个名为mimikatz的程序,可以用于转储操作系统中缓存的密码。
    在这里插入图片描述
    使用meterpreter shell上传mimikatz到靶机目录。
    在这里插入图片描述
    使用已获取的用户shell运行该程序,并使用sekurlsa获取登录密码。
    渗透测试学习—HTB靶机之Shield_第16张图片
    发现一个域用户Sandra的明文密码Password1234!,此密码可以用于下一台靶机的渗透过程。
    渗透测试学习—HTB靶机之Shield_第17张图片

你可能感兴趣的:(渗透测试学习)