《metasploit渗透测试魔鬼训练营》靶机演练之第五章实战案例Oracle数据库

准备一台BT5作为入侵机,一台win2003作为靶机,靶机上存在着Oracle数据库(版本为10.2.0.1.0)TNS服务的漏洞,该漏洞的编号为CVE-2009-1979。

BT5:

ip 10.10.10.128

win2003:

ip 10.10.10.130

下面开始演练:

在网上找到了关于这一漏洞的一些介绍,metasploit里有利用这个漏洞的模块,首先search这个模块:

进入目录去查看一下这个模块的源代码,找到target,如图:

能看出用了p/p/r的溢出方式,以及不同版本需要不同的返回地址变量Ret。

进入metasploit,选择好渗透模块和攻击载荷,配置好参数:

配置好后,执行exploit命令,发现没有返回shell:

多以执行后依然没有返回,于是就怀疑系统版本的问题。

首先怀疑是返回地址出现的差错,于是去靶机用OllyDbg加载了ORACLE.EXE进程,从渗透模块的源代码可以知道,Ret为0x011b0528,对应的是p/p/r,

在靶机上定位到该位置,如图:

没有错啊,,

没有思路了,,还是回去翻了翻书,根据书上的思路来吧。。

回去看了看模块源代码,找到了这几行,有了线索:

数据包用了AUTH_SESSKEY作为名称标识,这就意味着ORACLE程序中肯定用到了这个标识,回到OllyDBG,查看所有的文本字符串,如图:

在文本框中搜索 AUTH_SESSKEY,找到了三个,如图:

分别跟进去看了看,发现都调用了同一个函数,这里就截一个图:

跟踪这个函数,来到了这里:

在60FD99AC下个断点,然后F9让程序跑起来,然后再次用BT5的exploit命令攻击。程序断在断点处。

然后用Ctrl+F9到返回处01010EBD,如图:

接着又调用了CALL_02610928函数,看了书才知道这是_intel_fast_memcpy函数,F7跟进,可以再栈中看到调用的参数,

Address        Value            Comments

0673D040    |0673DA96    目的地址

0673D044    |04AB99A4     源地址

0673D048    |000001A7     复制长度

接下来看一下SEH:

Address        Value            Comments

0673DC40    |0673DE64    Pointer to next SEH record

0673DC44    |0261348C    SEH handler

计算一下,向目的地址0673DA96复制长度0X1A7字节的数据,最终覆盖到0X0673DC3D 没有覆盖到SEH起始地址0X0673DC40 。

真相大白了,原来是复制的字符串不构长!

在内存部分中找到源地址04AB99A4处的字符串,然后查找开始时找到的返回地址Ret0x011B0528,地址为0x04AB9B42。

计算一下偏移量:

返回地址和源地址之间:0x04AB9B42-0x04AB99A4=0x19E

目的地址到SEH Handler之间:0x0673DC44-0x0673DA96=0x1AE

故,需要增加0x10的随机字节,找到模块中构造溢出字符串的源代码:

修改为

为了覆盖必须加长字符串,所有+0x10。这样做就加大了栈中payload和跳转指令偏移量,所以也要修改jmp指令跳转的距离,由于jmp后移0x10,前面字符串增加0x10最终增加+0x20,这里说的略简单,不懂的读者可以去百度一下SEH跳转内存攻击原理,就不在详细说了,过于繁琐,而且我也不是很懂。

重新启动ORACLE服务,在BT5上重新测试,用rexploit命令,结果:

成功。

时间: 2024-08-08 04:29:13

《metasploit渗透测试魔鬼训练营》靶机演练之第五章实战案例Oracle数据库的相关文章

《metasploit渗透测试魔鬼训练营》学习笔记第五章--网络服务渗透攻击

三.网络服务渗透攻击 3.1 内存攻防技术 3.1.1 缓冲区溢出漏洞机理 缓冲区溢出是程序由于缺乏对缓冲区的边界条件检查而引起的一种异常行为. 一般根据缓冲区溢出的内存位置不同,将缓冲区溢出分为栈溢出和堆溢出. 3.1.2 栈溢出利用原理 栈溢出发生在向栈中写数据时,当数据长度超过栈分配的空间时,就会造成溢出. ①覆盖函数返回地址利用方式 程序一般在执行函数时会把该函数返回地址和函数的调用参数,局部变量一起保存在栈中,这就给了攻击者溢出栈缓冲区从而达到修改函数返回地址的机会. 由于程序每次运行

《metasploit渗透测试魔鬼训练营》学习笔记第四章—web应用渗透

继续来学习metasploit...记好笔记是很重要的,下面开始正文: 二.WEB应用渗透技术 1.WEB应用渗透基础知识 先介绍WEB应用攻击的主要类型(大致介绍,具体请自行查询) Sql注入攻击:大致分为 普通注入和盲注 跨站脚本(XSS): 分为存储型XSS,反射性XSS以及DOM型XSS 跨站伪造请求(CSRF):以XSS方式注入一段脚本,受害者点击该脚本时,脚本伪造受害者发出请求. 会话认证管理缺陷:验证身份的功能存在缺陷. 安全误配置:开发和管理人员的失误导致存在漏洞. 不安全密码存

《metasploit渗透测试魔鬼训练营》学习笔记第六章--客户端渗透

四.客户端攻击 客户端攻击与服务端攻击有个显著不同的标识,就是攻击者向用户主机发送的恶意数据不会直接导致用户系统中的服务进程溢出,而是需要结合一些社会工程学技巧,诱使客户端用户去访问这些恶意数据,间接发生攻击. 4.1客户端渗透攻击的安全防护机制 ①DEP DEP(数据执行保护)基本原理是操作系统通过设置内存页的属性,指明数据所在的内存页为不可执行. ②ASLR ASLR(地址空间布局随机化)是系统在运行程序时,不用固定的基地址加载进程及相关工作库文件. 包括:堆地址的随机化,栈基址的随机化,P

《metasploit渗透测试魔鬼训练营》学习笔记第七章--社会工程学

五.社工工程学 5.1社会工程系框架 5.1.1信息搜集 maltego是一个高度自动化的信息搜集工具,集成在BT5中,如果国内网络环境使用时无法获取结果,可能是无法与信息提供网站建立连接,可以使用VPN或代理服务器. 5.1.2诱导 1.提高诱导能力 表现自然,学习知识,不要贪心. 2.成功诱导的技巧 迎合目标的自我感觉 表达共同的兴趣 故意给出一个错误的陈述 抛出一些诱饵信息以寻求回报 假装知晓 借助酒精的威力,让目标更容易开口 3.问答的种类 开放式问答:无法只用"是"或&quo

Metasploit渗透测试魔鬼训练营

首本中文原创Metasploit渗透测试著作,国内信息安全领域布道者和资深Metasploit渗透测试专家领衔撰写,极具权威性.以实践为导向,既详细讲解了Metasploit渗透测试的技术.流程.方法和技巧,又深刻阐释了渗透测试平台背后蕴含的思想. 本书是Metasploit渗透测试领域难得的经典佳作,由国内信息安全领域的资深Metasploit渗透测试专家领衔撰写.内容系统.广泛.有深度,不仅详细讲解了Metasploit渗透测试的技术.流程.方法和技巧,而且深刻揭示了渗透测试平台背后蕴含的思

Metasploit 渗透测试魔鬼训练营读书笔记(连续更新一)

1.1 什么是渗透测试 1.1.1 渗透测试的起源与定义 如果大家对军事感兴趣,会知道各国军队每年都会组织一些军事演习来锻炼军队的攻防战术与作战能力.在信息科技的发源地--美国的军事演习中,将美军称为"蓝军",将假想敌称为"红军",而这种军事演习的方式也在20世纪90年代时,由美国军方与国家安全局引入到对信息网络与信息安全基础设施的实际攻防测试过程中.由一群受过职业训练的安全专家作为"红队"(Red Team),对接受测试的防御方"蓝队

《metasploit渗透测试魔鬼训练营》学习笔记第九章--meterpreter

七.强大的meterpreter  7.1再探metasploit的攻击载荷模块     7.1.1典型的攻击载荷模块     metasploit涵盖了各大主流操作系统和平台,其中绝大部分是远程漏洞利用所使用的攻击载荷模块,功能一般是开启远程shell,远程执行命令.     metasploit支持用户将自己的shellcode导入框架中,只需将payload替换成自己的shellcode代码,修改一下描述等基础信息即可.     7.1.2使用攻击载荷模块     search 搜索,查询

【网络与系统安全】Metasploit渗透测试实践

学习笔记 参考书籍<Metasploit渗透测试指南(修订版)> 经过多日学习,初步掌握metasploit基本参数和使用方法,现进行渗透测试实践 靶机IP:169.254.113.77 KALI IP:192.168.159.134 终端键入msfconsole进入环境后调用nmap插件对目标进行隐蔽TCP链接扫描 nmap -sT -A --script=smb-vuln-ms08-067 -P0 169.254.113.77 部分结果为: 由上面对靶机的扫描结果暗示我们可以利用MS08-

渗透测试大起底——从攻击者视角探究实战技巧

渗透测试方法及流程: 分析目标网站内容及功能 (1)  首先确定网站采用何种语言编写.或者是否有混用的情况.此处可以通过查看网站源文件,观察网站链接,捕获提交请求等方式获取. (2)  爬行网站目录,使用工具对网站目录进行爬行,可以辅助上一步让结果更加精准.将爬行结果存档,如果可以,此处应分析出网站是否使用通用程序,如果是,记录下来.进行下一步. (3)  根据上一步的爬行结果,对网站根目录或者关键目录进行暴力目录探测,如果网站为通用程序,判读是否有过二次开发,如非通用程序,在探测到的目录中寻找