实战复盘:内网环境渗透ms-SQL数据库

渗透环境:如下图所示,web服务器、ms-SQL服务器、PC客户端在同一个网络中,彼此之间,没有路由器或防火墙的隔离,这是一种危险的网络结构,入侵ms-SQL服务器,非常容易。(实战中,web服务是一个中控考勤服务)

渗透原理:在win7机(或是kali虚拟机)上,浏览内网web,会触发web服务器联系ms-SQL数据库服务器,获取数据;在kali虚机上,我们可以截流web发送给ms-SQL的数据包,修改其中的sql语句,再将它发给ms-SQL执行,达到操控ms-SQL的目的。比如,我们可以增加一个新用户,然后,以新用户登入数据库。这样,我们就完全控制了ms-SQL数据库。这种攻击法,叫做中间人攻击。

渗透步骤:攻击步骤并不复杂,需要编写简单的脚本。过程中,只有二进制格式的字符串制作,略微复杂一点。我们将虚拟机kali作为攻击机,所有的操作都在kali上进行。bettercap和wireshark是kali的内置软件,无需安装,需要注意的是,kali的网卡需采用桥接模式。
一、使用bettercap,发动中间人攻击,使kali成为中间人。

1、 编辑 spoof.cap 脚本。可以使用各种编辑工具,可以使用vi,其命令是 vi spoof.cap。内容只有两行,#后面是注释。见下图:

2、将kali变成中间人。只有一行命令

bettercap --gateway-override  192.168.1.9 -caplet spoof.cap

# 将ms-SQL服务器视为网关,kali才能变成web和ms-SQL的中间人

3、检查kali是否成功变成中间人。在模拟环境中,可以到web服务器和ms-SQL服务器上,使用 arp -a(同时适用于win系统和linux系统), 查看ip地址和mac码,检验中间人攻击是否成功。但在真实环境中,因为你无法操作服务器,所以只能跳过此步骤。实战说明:在kali上分别ping一下两台服务器,有助于arp欺骗迅速生效。

二、用浏览器访问网页,用wireshark抓包,捕获的sql语句越长越好

1、启动wireshark并设定好捕获参数。图中左上第一个就是捕获按钮,第二个是停止捕获。

2、浏览器中,尝试浏览不同的网页。

3、在wireshark捕获的数据中,我们要寻找一个特定的数据包,该数据包中原始的sql语句越长越好,足够的长度才能为我们篡改sql语句,提供足够多的字符空间。tds.query可以过滤出所有的数据库相关包,我们可以查看sql语句,找到长度足够的sql语句。上图中,列出了很多sql语句包,384是最长的,所以,它就是我们要找的特定数据包

4、重复操作浏览器,确保特定数据包能够重复出现

5、从特定数据包中抽取其原生的sql语句,制作二进制格式的字符串,这个步骤难度最大,是成功与否的关键。上图中间区域,tabular data stream--tds query packet下面,可以看到完整的sql语句,它的确够长。鼠标放到下面蓝色区域,右键选择  as Escaped String,再粘贴到编辑器中,变成如下图所示,需要手工处理一下,对照上副图,下图中删除白底数据,保留蓝底数据,然后删除头尾的引号、斜杠等,使它变成一个标准的二进制格式的字符串,它就是我们抽取的原始sql字符串,然后,复制到后面sql_replace.js截图的第7行。

6、退出bettercap和wireshark

到目前为止,我们可以截留、监控、转发数据包,但是,我们还不能篡改数据。我们需要让数据经过一个代理tcp.proxy,在代理服务里面,才能修改数据。

三、编写2个脚本,一个是bettercap自动运行的脚本spoof.cap;另一个是替换sql语句的脚本sql_replace.js。

1、修改spoof.cap脚本,其内容从2行变成7行。原来的脚本,是用于启动arp欺骗攻击,增加的脚本作用是启动tcp.proxy代理。见下图:

2、编写篡改数据的脚本,文件名为 sql_replace.js,采用javascript语言 。tcp.proxy代理会调用它,篡改数据。

脚本中有两个函数:

第一个是onLoad(),bettercap运行成功后,会在屏幕上提示:tcp module loader ----------------;

第二个函数示onData(from,to,data),其中,只有data参数有用, data就是系统截留的数据包,截留后,传递给onData函数,让它分析和修改,data被修改后,会自动转发到ms-sql服务器,在其上执行。为了便于分析,原始的data要转换生成为strFromNet(图中第17行);onData()函数有二个重要的变量:一是strTotarget,它是我们伪造的sql语句,直接键盘敲入(图中第6行)。我们用它替换特定数据包中的原始sql语句;二是strFromCap,它是步骤二中,wireshark捕获的特定数据包中,抽取的原始sql语句,我们需要将它粘贴到这里(见图中第7行,为了方便阅读,图中数据截去了尾部,实际要长很多)。onData函数原理很简单,我们要在所有的捕获的数据包中搜索原始sql语句(图中第18行),一旦搜索到,将其替换成伪造的sql语句(图中第20行-38行),如果伪造的sql语句长度超过原生sql语句的长度,替换就会失败。如果短于原句,则填充空格补全。

四、重新运行bettercap,加载上述脚本,注意屏幕上应该有提示。

bettercap --gateway-override  192.168.1.9 -caplet spoof.cap

此时,onData()函数已经加载,随时都可能篡改数据了。

五、重复网页操作,完成对ms-SQL的渗透。

如果屏幕上提示: ------find it----  表示找到了特定数据包。如果没有出现这个提示,可能因为没有成为中间人,或是没有进行正确的网页操作,最大的可能是,捕获的原生sql数据包二进制转换出错了,需要重新转换一次。

如果屏幕上提示:  ------crack sucessed!:):):) 表示替换成功。

如果屏幕上提示: -----but,its too short to replace with long command!-----表示替换失败。

修改strTotarget的值,你可以执行任何sql语句,增加用户,删除用户,其他等都可以。

网络安全学习资源分享:

给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,需要点击下方链接即可前往获取

CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击)

同时每个成长路线对应的板块都有配套的视频提供: 

大厂面试题

视频配套资料&国内外网安书籍、文档

当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料

所有资料共282G,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,可以扫描下方二维码或链接免费领取~ 

 读者福利 | CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击)

特别声明:

此教程为纯技术分享!本教程的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本教程的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失。

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

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

相关文章

整理了10个靠谱且热门的赚钱软件,适合普通人长期做的赚钱副业

作为一名普通的上班族,我们每天都在辛勤工作,但工资的增长速度却如同蜗牛般缓慢。不过,别担心,信息时代总是带给我们无尽的惊喜!今天,我将为大家推荐一些赚钱的宝藏软件,让你在闲暇之余轻松实现…

Java-Zookeeper

zookeeper是什么 一个分布式、开源的分布式应用程序协调服务,具有配置维护、域名服务、分布式同步、组服务等 zookeeper有哪些功能 功能简介集群管理监控节点状态、运行请求等主节点选举主节点挂掉之后会执行新主选举分布式锁zookeeper提供两种锁:独占…

IEDA常用快捷键(后续更新ing)

1. 快速生成语句 1.快速生成main()方法 psvm或者main回车 2.快速生成输出语句 sout,回车 3.快速生成for循环 fori或者itar,回车 2.快捷键 含义操作查找文本CtrlF替换文本CtrlR单行注释Ctrl/多行注释CtrlShift/格式化CtrlAltL复制当前内容至下一行CtrlD补全代码Alt/快速生成…

RAGs:自动化评估 RAG 示例代码

文章目录 原理忠实度(Faithfulness)答案相关性(Answer Relevance)上下文相关性(Context Relevance)上下文召回率(Context Recall)答案正确性(Answer Correctness&#xf…

C# 机构仿真实例

1、实现连杆带动滑块运动 一个连杆旋转带动另一个连杆,另一个连杆拖动滑块,点击“开始”按钮开始运动,再点击按钮,则停止运动。 2、实现程序 #region 机构仿真Image image null;Timer timer new Timer();int width 0;int heig…

一千题,No.0027(Phone Desktop)

描述 Little Rosie has a phone with a desktop (or launcher, as it is also called). The desktop can consist of several screens. Each screen is represented as a grid of size 53, i.e., five rows and three columns. There are x applications with an icon size o…

【网络安全】社会工程学攻击与防范

一、社会工程学概述 1、社会工程学的定义 通过利用人们的心理弱点、本能反应、好奇心、信任、贪婪等一些心理陷阱进行的诸如欺骗、伤害、信息盗取、利益谋取等对社会及人类带来危害的行为或方法。 当网络恶意攻击者无法通过纯粹的计算机技术达到目的时,高超的情商…

9.Redis之list类型

list相当于链表、数据表 1.list类型基本介绍 列表中的元素是有序的"有序"的含义,要根据上下文区分~~有的时候,谈到有序,指的是"升序","降序”有的时候,谈到的有序,指的是, 顺序很关键~~如果把元素位置颠倒,顺序调换.此时得到的新的 List 和之前的 Li…

js简单综合案例之简易ATM取款机、渲染表格案例、封装时间函数

这里写目录标题 简易ATM取款机要求代码实现 渲染表格案例要求代码实现 封装时间函数要求代码实现 简易ATM取款机 要求 1.弹出弹窗,让用户输入数字选择操作 2.初始值金额为100,计算每次操作后的剩余金额变化 3.一直弹出弹窗直到用户输入4,跳…

OpenCV SIFT特征描述子(GPU版本)

文章目录 一、简介二、测试过程三、实现效果参考资料一、简介 这里主要测试一下SIFT图像描述子的GPU版本。SIFT图像描述子,全称Scale-Invariant Feature Transform(尺度不变特征变换),是计算机视觉和图像处理领域中一种非常重要的局部特征描述子。它主要用于图像的特征点检…

新闻稿海外媒体投稿,除了美联社发稿(AP)和彭博社宣发(Bloomberg),还有哪些优质的国外媒体平台可以选择

发布高质量的新闻稿到海外媒体,除了美联社发稿(AP)和彭博社发稿(Bloomberg),还有许多其他优质的媒体平台可以选择。以下是一些受欢迎和高效的海外媒体发布平台: 路透社 (Reuters) 路透社是全球最…

Webpack Bundle Analyzer:深入分析与优化你的包

Webpack Bundle Analyzer是一个用于可视化的工具,它可以帮助你分析Webpack打包后的输出文件,查看哪些模块占用了最多的空间,从而进行优化。 2500G计算机入门到高级架构师开发资料超级大礼包免费送! 首先,你需要安装W…

IIC通信(STM32)

一、IIC概念 1、两根通信线:SCL(Serial Clock)、SDA(Serial Data) 同步,半双工 2、带数据应答 3、支持总线挂载多设备(一主多从、多主多从)一般使用一主多从。一主多从的…

【深度学习】paddlets,时序数据预测

文章目录 一、环境二、题目1三、题目2四、题目3五、函数参数 资料: https://paddlets.readthedocs.io/zh-cn/latest/source/api/paddlets.models.base.html#paddlets.models.base.BaseModel.recursive_predict https://aistudio.baidu.com/projectdetail/5866171?…

陪跑真正值钱的不是教程,是你遇到那个挡住你的问题时,身边有个靠谱的人

今天分享两个概念,一个是意识决定一切,一个是大道至简,做项目就是按部就班的遵循事情发展规律去做。 先说第一个概念,意识决定一切。我们说的凡事预则立不预则废,就是计划了去做就会有结果。 给你们一个表,…

Linux简单通过Minicom命令操作串口设备(linux串口操作命令)

Minicom是一个在Linux系统中广泛使用的串行通信程序。它类似于Windows下的超级终端,允许用户通过串口与外部硬件设备进行通信。Minicom不仅功能强大,而且完全免费,带有源代码,可以在大多数Unix系统下运行。 安装Minicom 在大多数Linux发行版中,Minicom可能没有预装。可以…

【前端】面试八股文——BFC

面试八股文——BFC 在前端开发的面试中,BFC(Block Formatting Context,块级格式化上下文)常常是一个高频出现的考点。它不仅考察应聘者对CSS布局的理解深度,也是面试官判断候选人解决实际问题能力的重要依据之一。因此…

python接口自动化测试中为什么用yaml文件进行用例管理而不是json文件

在Python接口自动化测试中,使用YAML文件进行用例管理而不是JSON文件,主要基于以下几个原因: 可读性:YAML文件使用缩进和冒号来表示层级结构,使得文件内容更加清晰易读。相比之下,JSON文件则使用大括号和中…

MySQL——索引与事务

目录 前言 一、索引 1.索引概述 (1)基本概念 (2)索引作用 (3)索引特点 (4)适用场景 2.索引的操作 (1)查看索引 (2)创建索引…

LeetCode399触发求值

题目描述 给你一个变量对数组 equations 和一个实数值数组 values 作为已知条件,其中 equations[i] [Ai, Bi] 和 values[i] 共同表示等式 Ai / Bi values[i] 。每个 Ai 或 Bi 是一个表示单个变量的字符串。另有一些以数组 queries 表示的问题,其中 que…