第五章:网络攻防技术
网络入侵的前提:了解目标系统可能存在的安全缺陷和漏洞
侵入过程和信息收集相辅相成,在侵入过程中进一步掌握其他更多信息,改变侵入方式。
5.1:网络信息收集技术——网络踩点
网络踩点:了解目标隐私信息、网络环境、安全状况;寻找目标的薄弱环节。
常用手段:
- Google Hacking:利用搜索引擎找出漏洞,关键:提取关键字,搜索技巧;
- Whios服务:
- DNS Whios查询:一般在iana查询域名的whois服务机构,进一步得到域名注册商,在注册商查询得注册细节;
- IP Whios查询:ASO的任意一个RIR中查询得到其归属,在对应RIR中查询到进一步细节;
- DNS查询:通过不限制DNS区域传送的服务器,获取区域数据库的拷贝,得到内部网络的完整网络导航图。
对策:
-
Google Hacking:
- 公共媒体上删除不想暴露的信息。
- 清除敏感信息;不发布真实个人信息。
- 及时更新漏洞补丁。
-
Whios服务:
- 及时更新管理性事务联系人信息;使用虚拟人名保护信息。
- 使用私密注册服务。
-
DNS查询:对外的DNS服务器清除敏感信息、配置为禁止DNS区域传送。
5.2:网络信息收集技术 ——网络扫描
网络扫描:通过扫描技术收集信息,找到入侵漏洞。
- 主机扫描:
- 原理:向目标系统发送数据包,分析响应结果。
- 常用技术:ICMP Ping扫描;TCP ACK Ping扫描;TCP SYN Ping扫描;UDP Ping扫描
- 防范:使用入侵检测系统和防火墙,检测扫描行为;根据需求限制ICMP通信类型。
- 端口扫描:
- 原理:连接目标TCP/UDP端口,找到监听状态的服务。
- 常用技术:不同类型的TCP/UDP扫描。
- 防范:较难防范。使用入侵检测系统监测;开启防火墙;关闭不必要的服务。
- 操作系统类型辨识:
- 原理:根据操作系统和网络服务差异找到漏洞。
- 常用技术:TCP/IP协议栈指纹分析,网络扫描工具nmap。
- 防范:无法完全阻止。使用端口扫描检测工具发现探查行为;开启防火墙。
- 漏洞扫描:
- 原理:利用漏洞造成的差别识别系统、发现漏洞。
- 常用技术:Nessus漏洞扫描软件。
- 防范:在黑客之前扫描、修补漏洞;确保软件来源安全、保持更新;使用入侵检测系统监测;开启防火墙,审查防火墙配置。
5.3:网络信息收集技术 ——网络查点
网络查点:对目标发起主动连接和查询,针对性收集信息。
网络服务旗标抓取:利用客户端工具连接至网络服务,搜集关键信息。
通用网络服务:
- FTP文件传输
- POP3
- SMTP电子邮件收发服务
以FTP服务查点为例:
Windows平台网络服务:
- NETBOIS网络查点:
- 使用 net view /domain 命令,列出网络上的工作组和域。
- 使用nltest工具获得用户登陆信息。
- 使用nbtstat工具查点NetBOIS名字表,获得详细信息。
- SMB会话查点:
- 使用空口令字和内建的匿名用户,连接隐蔽共享卷IPC$(进程间通信)
net use \192.168.0.3
IPC$ "" /u:""
- 查点权限配置错误的文件共享卷
net view \192.168.0.3
防范:
- 关闭不必要的服务和端口,关闭SMB。
- 关闭不必要共享、默认共享。
- 限制匿名空连接。
5.4:Windows系统渗透基础
控制注入攻击:
- 原理:冯诺伊曼体系中,没有在内存中严格区分数据和指令
- 方法:劫持数据流,执行目标系统上的任意代码,进而操控系统。
- 典型劫持攻击技术:缓冲区溢出、格式化字符串漏洞、整数溢出、指针释放后再次使用等。
缓冲区溢出:
- 原理:利用缺乏严格边界检查的数据填充过程,覆盖相邻内存空间合法数据,改变程序执行流程。
- 方式:堆溢出和栈溢出。
- 基本栈溢出攻击(覆盖函数返回地址):针对函数返回地址在栈中的位置,进行缓冲栈溢出,跳转到有恶意指令的指定地址
Metasploit渗透框架:
- 使用 search 漏洞名称 搜索对应攻击模块,再用 use 选择模块。
- 使用 set payload 选择攻击负载模块。
- 配置攻击及攻击负载模块参数。
- 使用 exploit 实施渗透攻击,破解目标系统。
其他远程渗透途径:
- 认证欺骗
- 利用客户端软件漏洞
- 利用设备驱动漏洞
防御措施:
5.5:Internet 协议安全问题
网络安全五大属性:
- 网络安全CIA属性:机密性、完整性、可用性。
- 补充属性:真实性、不可抵赖性。
网络基本攻击模式:
- 截获:嗅探、监听。
- 篡改:数据包篡改。
- 中断:拒绝服务。
- 伪造:欺骗。
TCP/IP网络协议安全分析
-
网络层:IP源地址欺骗
- 路由器只根据目标IP地址进行路由转发,不对源IP地址做验证
- 任何人都可以使用原始套接字构造任易源IP地址的数据报
- 相应数据报也将被发回伪造的源IP地址
- 通常用于发起匿名Dos攻击
-
传输层:TCP RST攻击
- 创建TCP协议的过程:TCP三次握手
- TCP RST攻击:基于得知 IP地址、目标IP地址、TCP端口号、序列号和确认号
- 创建TCP协议的过程:TCP三次握手
应用层协议安全分析
- DNS欺骗
- 嗅探DNS请求包。
- 注入假冒DNS:伪造DNS应答包;拦截,修改DNS应答包。
- 拒绝式服务攻击DoS
- 原理:用超出目标处理能力的数据消耗系统资源、带宽资源或造成缓冲区溢出错误,使网络服务瘫痪。
- 分类:弱点攻击;洪泛攻击。
防范措施:
- 网络接口层:
- 监测和防御网络威胁。
- 对网关路由器等关键网络节点设备进行安全防护
- 优化网络设计,增强链路层加密强度。
- 网络层:
- 采用多种检测和过滤技术来发现和阻断网络中欺骗攻击。
- 增强防火墙、路由器和网关设备的安全策略。
- 关键服务器使用静态绑定IP-MAC映射表、使用IPsec协议加密通讯等预防机制。
- 传输层:加密传输和安全控制机制。
- 应用层:
- 应用层加密。
- 用户级身份认证,数字签名技术。
- 授权和访问控制技术。
- 审计、入侵检测。
5.6:基本的Web安全
跨站脚本XSS攻击
- 原理:利用漏洞注入恶意指令到网页,使用户加载网页时运行其恶意代码(脚本)。
- 脚本种类:JavaScript、 VBScript、Activex、Flash、HTML。
- 攻击流程:得到敏感信息,获取更高用户权限,以被攻击者身份执行操作。
- 攻击原理:
- 反射型XSS:
- 存储型XSS:
- DOM-XSS:
- 反射型XSS:
- 防范措施:
- 网站开发者:
- 对所有来自外部的用户输入进行完备检查。
- 对所有输出到响应页面的数据进行适当的编码。
- 普通用户:
- 在浏览器设置中关闭JavaScript,关闭或设置cookie为只读。
- 提高浏览器的安全等级设置。
- 尽量使用非IE的安浏览器来降低风险。
- 增强安全意识,不要轻易点击不明链接。
- 网站开发者:
SQL注入
- 原理:利用Web应用程序输入验证不完善的漏洞,将构造的SQL命令注入到后台数据库引擎执行。
- 危害:
- 用户隐私信息被泄露。
- 通过操作数据库对网页进行篡改。
- 通过修改数据库,嵌入网马链接,进行挂马攻击。
- 数据库的系统管理员帐户被纂改。
- 服务器被黑客安装后门进行远程控制。
- 破坏硬盘数据,瘫痪全系统。
- 攻击流程:
防范:
- 使用类型安全的参数编码机制。
- 对来自程序外部的用户输入,必须进行完备检查。
- 将动态SQL语句替换为存储过程,预编译SQL或ADO命令对象。
- 加强SQL数据库服务器的配置与连接,不存放敏感数据明文。
跨站脚本攻击CSRF
原理:利用web用户身份验证的漏洞,基于Cookies的身份验证只能保证请求发自用户的浏览器,不能保证时用户自愿发出的。
Cookie:
- 浏览器缓存,web服务器上的加密小文本文件。
- 记录用户信息,辨识身份。
- 分为持久Cookie和会话Cookie。
利用cookie发起CSRF:
防范:
- 不要轻易点击网络的链接或图片。
- 及时退出已登录账户。
- 为计算机系统安装安全防护软件;及时更新特征库、升级软件。
- 使用浏览器插件扩展防护。
5.7:社会工程学攻击
社会工程学攻击:利用人的好奇心、轻信、疏忽、警惕性不高,使用诸如假冒、欺诈、引诱等多种手段,来操纵其执行预期的动作或泄露机密信息。
- 目的
- 首要目的:获得金钱收益。
- 次要目的:竞争优势和打击报复。
- 希望获得的信息
- 可能直接导致攻击对象的财产或身份被盗。
- 能利用这些信息获取目标组织的薄弱环节。
- 向攻击目标发动更有针对性的攻击。
- 信息收集方法
- 社交网络:社交网络是世界上最大的人类信息识别数据库。
- 接近个人:寒暄套磁、窃听电话、克隆身份卡。
- 垃圾分析:通过丢弃的文件、账单,收集到个人敏感信息。
- 电话询问:对外人员不经意泄漏公司信息。
- 机构非法贩卖个人信息。
常见攻击方式:
- 心理诱导:通过表面上无关的对话,精巧地提取出有价值的信息。
- 身份伪造:伪装成熟人;伪装成社交网络上的好友;冒充内部员工等。
常见的心理弱点:
- 从众心理:利用从众心理激励目标执行预期的行为。
- 饥饿营销:营造紧迫感,受害者没有时间思考决策合理性。
- 权威引导:人们总是更愿意相信权威人士的指导和建议。
- 利用人类的报答意识:给予小恩小惠,让受害者回应更高价值的信息或金钱。
网络钓鱼攻击:
- 伪装成可信服务提供者。
- 用急切或命令的口吻营造紧迫感,要求用户立刻完成指定任务。
防范:
- 了解和熟悉社会工程学诈骗
- 对自己的基础信息保持足够的警惕
- 不通过不安全的方式透露信息。
- 涉及到敏感信息时,核实对方的身份。
- 使用防火墙来保护个人电脑,更新杀毒软件。