实战复盘:内网环境入侵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语句,增加用户,删除用户,其他等都可以。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 复盘是指对过去的事情进行思维演练和总结。通过复盘,我们可以回顾过去的经历、分析问题的原因和解决方法,提高思考能力和解决问题的效率。 复盘可以采用不同的方式进行,而对过去的事情做思维演练pdf是其中一种常见的方式。通过整理和记录思考过程,我们可以更系统地分析问题,发现问题的根本原因,并找到解决问题的方法。在pdf文档中,可以记录下相关的信息,如事件的背景、自己的思考过程、所得出的结论等。 在复盘过程中,我们可以回答一些关键问题。首先,我们可以思考问题的起因是什么,事件发生时有没有缺乏对应的准备工作。其次,我们可以分析问题解决的过程,看是否有哪些环节出现了错误或不足。最后,我们可以总结经验教训,思考类似问题如何避免或更好地处理。 通过复盘,我们可以更加全面地了解过去的经历,提高问题解决的能力。同时,通过记录下自己的思考过程,我们还可以形成一份经验宝库,为未来的决策提供参考。因此,对过去的事情做思维演练pdf是一种非常有效的复盘方式。希望通过复盘,我们可以不断提升自我,在面对类似问题时能更加从容应对。 ### 回答2: 复盘是指对过去的事情进行思维演练,以总结经验教训,从而提高自己的决策能力和行动效果。复盘可以应用于个人生活和工作中的各个方面,也可以用于团队和组织的成长和进步。 在进行复盘时,首先需要明确目标和目的。我们需要回顾过去的事件或行动,了解其中的优点和不足,找到改进的方向和方式。通过对过去的事情进行思考和反思,我们可以发现自己在行动中的强项与不足,并从中吸取经验教训,避免重蹈覆辙。 在进行复盘时,我们可以利用各种工具和方法,如思维导图、SWOT分析等,来梳理复盘的内容和思路。我们可以回顾每个环节的具体步骤、决策的过程和原因,分析各种可能的影响因素和结果,评估自己的决策和行动的效果。 通过复盘,我们可以更加清楚地认识自己和环境的特点和规律,发现问题并提出解决方案。同时,复盘还可以帮助我们建立起对复杂情况的敏感性和观察力,提高我们的分析和判断能力。 最重要的是,复盘还需要我们具备客观和开放的态度。我们需要坦诚面对自己的错误和不足,勇于承担责任,并且愿意接纳他人的意见和建议。只有这样,我们才能真正从复盘中获取改进和提升的机会。 总之,复盘是对过去事情进行思维演练的过程,通过深入思考和反思,总结经验教训,找到改进的方向和方式。复盘可以帮助我们不断提升自己的决策能力和行动效果,从而更好地应对未来的挑战。 ### 回答3: 复盘是一种思维训练方法,通过对过去的事情进行思维演练,可以帮助我们更好地总结和吸取经验教训。这种方法非常有助于个人和团队的成长与进步。 首先,复盘可以帮助我们对过去的事情进行全面的回顾和总结。通过回顾过去的决策、操作和结果,我们可以更清晰地看到策略的得失。同时,通过总结成功的方面和失败的原因,我们能够更好地认识自己的优势和劣势。 其次,复盘能够帮助我们发现问题并找到解决方案。在复盘过程中,我们可以深入分析出现问题的原因,并找到相应的解决办法。这样,我们可以避免类似问题的再次发生,并提高自己的决策能力和应变能力。 再次,复盘可以增强我们的自我反思能力。通过对过去事情的思维演练,我们可以更深入地了解自己的优点和缺点。同时,我们也能够看清外部环境对自己的影响,进一步提高自己在未来的应对能力。 最后,复盘能够增强个人和团队的学习能力。通过对过去事情的思维演练,我们可以从中吸取经验教训,并将其应用于未来的工作中。这样,我们不仅可以不断改进自己,也能够提高整个团队的绩效水平。 总之,复盘是一种非常有益的思维训练方法。通过对过去事情进行思维演练,我们能够全面总结经验教训,发现问题并找到解决方案,增强自我反思能力,提高个人和团队的学习能力。因此,我们应该经常进行复盘,不断提升自己。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值