热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

从了解Firewall原理提高网络安全

文章标题:从了解Firewall原理提高网络安全。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

  网络发展到今天,安全技术层出不穷,目前最常用,技术最成熟的应该还是利用FIREWALL提高安全性,关于FIREWALL的定义,就仁者见仁,智者见智了,我个人比较赞成的观点是 "防火墙系统可以是路由器,也可以是个人主机、主系统和一批主系统,专门把网络或子网同那些可能被子网外的主系统/*或者本地用户 */滥用的协议和服务隔绝,其中还包括合理的过滤规则的应用"
  
  从外部用户的角度来看,最简单的例子就是许多时候我们试图利用TELNET或其他手段连接到远程主机,经过半天的等待以后,往往是"refuse connect"/*当然也可能是对方限制IP登陆*/……:(
  
  比较经典的FIREWALL区分方法是把它分成两种application proxies and filtering gateways.
  
  我决定在此处省去N字,:)因为关于FIREWALL原理和实现技术已经有N篇文章讲过了……呵呵,你到处都可以找到,中,英文都有。假如有兴趣的,我也可以发给你资料
  
  OK,看完了那些FIREWALL的基本知识之后,让我们开始从我们习惯的角度来看问题了。:) 有些FIREWALL类型可以被简单的PORT SCAN所鉴别,例如,CheckPoint's Firewall监听TCP的256.257.258口/*CheckPoint's用来远程管理用的*/,Microsoft's Proxy server通常监听TCP的1080和1745口,我们可以简单的利用NMAP去找找看nmap -n -vv -P0 -P256,1080,1745 *.*.*.*/24我要提醒你注意的是-P0是不可以缺少,因为这个选项是禁止在扫描以前ICMP PING目标,而很多FIREWALL是不会响应ICMP echo 请求的。
  
  利用traceroute for unix or tracert for winnt&98命令来看,假如是用LINUX的话,可以加-I选项,表示发送ICMP PACKET。
  
  TRACEROUTE的原理是向目标主机发送一系列UDP数据包。开头的三个数据包的存活期设置为1,接受到的第一个ROUTER返回一个TTL死亡报文,并且将它丢弃,接着的第二个数据包存活期设置为2,接受到的第二个ROUTER返回一个TTL死亡报文,并且将它丢弃……其他的依此类推。
  
  通常可以看到下面的情况
  1 XXX 192.168.55.1 **ms **ms **ms
  2 SSS 192.168.52.2
  ……
  11 WWW 10.63.2.2
  12 ZZZ 10.63.5.1
  13 QQQ 172.16.11.1
  我们可以猜测10.63.5.1可能是FIREWALL。/*只能是猜测*/ 假如有些ROUTER和FIREWALL设置不回复ICMP TTL 死亡报文的话,我们将无法通过TRACEROUTE看到它的存在。
  1 XXX 192.168.55.1
  2 SSS 192.168.52.2
  ……
  11 WWW 10.63.2.2
  12 ZZZ 10.63.5.1
  13 QQQ 172.16.11.1
  14 * * *
  15 * * *
  
  有时候,我们用NC连接到目标的21或者23口,假如它是在FIREWALL保护下你可以看到该FIREWALL的信息。呵呵,国内最简单的例子是你直接FTP到163的超级酷个人主页,就可以看到“天网……”的字样。这可是前段时间大大出名的FIREWALL哦
  
  如何尽可能多的知道FIREWALL的信息呢,我个人还是喜欢用NMAP---作为SCANER,我觉得它是无可挑剔的,总是可以告诉我们尽可能多的东西……/*建议你先去看看NMAP的说明,同时你也许还需要看看TCP的三次握手*/ nmap总是显示该服务的服务名称,端口号,状态以及协议。状态有'open','filtered'和'unfiltered'三种。
  'open'就不用多说什么了,大家都明白指的是目标机器将会在该端口接受你的连接请求一般来说,在NMAP中,一个filtered端口表示下面三种情况:
  1 没有收到 SYN/ACK packet
  2 没有收到 RST/ACK packet
  3 回复了一个ICMP 3 类型和13 代码,表示信宿不可到达/*icmp的3类型就表示目标信宿机不可到达,可以利用不同的码将它细分为13种情况,如网络不可以到达,主机不可以到达,协议不可以到达,端口不可以到达等……*/
  当'filtered'状态下,我们利用TCPDUMP具体分析,可以发现在抓的IP包中,很明确的表示了unreachable,在NMAP中,端口被堵塞的信息是通过ICMP报文中在头标位置占一个字节的类型部分表示的,并且经过FIREWALL过滤后返回的信息在IP包中占4个字节表示。
  'unfiltered'返回的信息是在各大安全BBS被争论最多的,在NMAP的说明中,只是简单的说unfiltered'只有在大多数的扫描端口都处在'filtered'状态下才会出现的。其实它只是在扫描N多端口并且收到一个RST/ACK PACKET时出现,在'unfiltered'状态下,我们的SCAN也许通过了FIREWALL并且TARGET告诉我们这个端口没有被监听,换句话说,也就是没有打开。或者FIREWALL回复了一个RST/ACK,这种情况也经常在扫描某些FIREWALL如CheckPoint(with the REJECT rule)时出现,当它从目标回复一个RST/ACK PACKET并且给一个错误的IP地址。当我们同时运行TCPDUMP就可以看到返回的是一个RST/ACK包。/*我个人认为,这是个非常好的办法*/
  
  还有一些SCANER可以帮助我们
  Hping,一个很实用的东东,它通过发送一个ICP包到目标端口并且报告回复的包。它可以根据不同条件而产生多种输出,利用HPING,我们可以清楚的描述出FIREWALL的控制规则。
  当一个PORT打开并且收到一个连接时,HPING将告诉我们'flags=SA',呵呵就是代表收到一个SYN/ACK包。
  当我们用HPIHG扫描*.*.*.*的23口收到一个'ICMP Unreachable type 13 form *.*.*.*'时,通常情况就是遇到了一个PACKET FILTERING ROUTER。假如对方是CISCO的话很可能就是在配置文件中有这一行"access-list 101 deny tcp any any 23 ! telnet" 当我们收到一个RST/ACK包/*'flags=RA'*/一般代表两种可能:
  1,这个包通过了FIREWALL并且TARGET没有开这个端口
  2,FIREWALL拒绝了这个包(就象CheckPoint's reject rule)
  假如你先扫描一个IP的23口收到了收到一个'ICMP Unreachable type 13 form *.*.*.*',然后你扫描其他的端口如22,收到的是一个RA包/*'flags=SA'*/,通过综合判断,我们可以断定,是端口22没有开,而不是被过滤规则所拒绝。
  最后,当FIREWALL完全堵塞了一个PORT,我们通常收不到任何返回包。它告诉我们两个意思
  1,包不能到达TARGET并丢失在途中
  2,绝大部分原因是由于FIREWALL的过滤规则决定将它丢弃。
  
  firewalk也是一个非常好的工具,它可以帮助我们发现在FIREWALL后面打开的PORT,它是利用an ip TTL calculated to expire one hop past the firewall.其实还是利用回应一个"ICMP TTL expired intransit"信息,如果包被FIREWALL’ACL 拒绝,将没有任何回应或者是一个ICMP TYPE 13。不过用firewall进行扫描要注意的一点是,有些FIREWALL在拒绝PACKET EXPIRES时还会给你返回一个ICMPTTL EXPIRED 包,呵呵,很狡猾,在这种情况下,我们将会看到所有的PORT都是打开的:(以上就是我所掌握的一些FIREWALL SCAN技术,希望可以帮助你尽量多的了解FIREWALL后面的情况,也欢迎来信讨论。
  
  另,我简单的谈谈突破/后门的办法,以后有时间我会慢慢写出来 ,如果你E文好,那我强烈推荐THC的关于突破FIREWALL的后门的文章!!!
  以下是我根据THC文章和自己经验的一点综合,有很多我也不是很了解的地方,还要大家一块来讨论。
  1,很多FIREALL,如CHECKPOINT,它默认的DNS LOOKUPS(UDP53)口是打开的,DNS zone transfers(TCP53),RIP(UDP 520)是允许任意HOST连接的,呵呵,利用这个我们就可以指定我们的木马程序运行在这个PORT上,然后…… 有些时候,数据包过滤可以有状态包检查,如果是这样的话,我们利用DNS口就没法执行自己的命令,但是还有别的办法……
  2,ICMP和UDP 许多FIREWALL允许ICMP ECHO。ICMP ECHO REPLY,UDP包通过,如CHECKPOING DNS,呵呵,可以将自己的数据利用ICMP包头封装起来,就可以执行通过FIREWALL执行命令了,在这方面的现有软件是LOKI&lokid(client&server),等我有啦点心得以后再写给大家……UDP的后门程序有daemonshell-udp,也是来自[THC] - The Hacker's Choice.
  3,利用CGI留后门,呵呵,ROUTER过滤再厉害,它只要允许HTTP访问,就一定防止不了CGI的后门,在网上很容易找到这类的后门,如GH写的后门,不过好象都很类似,除了作者的名字以外/老外也搞这套/
  4,开个高段的SHELL后门,国内现在很多这方面的东西,主要原理是利用有些FIREWALL不检查到高段PORT,所以可以放置这类后门。
  5, 利用.forward文件,开sendmail服务的也不会比开HTTP的少多少哦……执行你的SHELL脚本,至于你要干什么,就自己决定了:)和这个比较类似的方法是利用crontab,最重要还是要看你所希望它们执行什么命令……
  6,RPC服务,呵呵,很多FIREWALL允许RPC服务,利用RPC的EXPLOITS,就可以出入如无人之境了……
推荐阅读
  • 小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限
    小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限 ... [详细]
  • REST与RPC:选择哪种API架构风格?
    在探讨REST与RPC这两种API架构风格的选择时,本文首先介绍了RPC(远程过程调用)的概念。RPC允许客户端通过网络调用远程服务器上的函数或方法,从而实现分布式系统的功能调用。相比之下,REST(Representational State Transfer)则基于资源的交互模型,通过HTTP协议进行数据传输和操作。本文将详细分析两种架构风格的特点、适用场景及其优缺点,帮助开发者根据具体需求做出合适的选择。 ... [详细]
  • 在JavaWeb项目架构中,NFS(网络文件系统)的实现与优化是关键环节。NFS允许不同主机系统通过局域网共享文件和目录,提高资源利用率和数据访问效率。本文详细探讨了NFS在JavaWeb项目中的应用,包括配置、性能优化及常见问题的解决方案,旨在为开发者提供实用的技术参考。 ... [详细]
  • SQL Server 2008 默认使用1433端口进行通信,但有时会误认为是5432端口,后者实际上已被IANA(互联网号码分配机构)指定为PostgreSQL的默认端口。本文详细解析了SQL Server 2008的端口配置,并提供了增强安全性的配置建议,包括更改默认端口、启用防火墙规则和实施严格的访问控制策略,以减少潜在的安全风险。 ... [详细]
  • Windows环境下详细教程:如何搭建Git服务
    Windows环境下详细教程:如何搭建Git服务 ... [详细]
  • 综合实训 201521440015
    Chinesepeople’publicsecurityuniversity网络对抗技术实验报告实验五综合渗透学生姓名常泽远年级15区队4指导教师高见信息技术与网络安全学院2018 ... [详细]
  • PHP与MySQL的Web应用开发技术深入解析
    PHP与MySQL的Web应用开发技术深入解析 ... [详细]
  • 深入解析OSI七层架构与TCP/IP协议体系
    本文详细探讨了OSI七层模型(Open System Interconnection,开放系统互连)及其与TCP/IP协议体系的关系。OSI模型将网络通信过程划分为七个层次,每个层次负责不同的功能,从物理层到应用层逐步实现数据传输和处理。通过对比分析,本文揭示了OSI模型与TCP/IP协议在结构和功能上的异同,为理解现代网络通信提供了全面的视角。 ... [详细]
  • 西北工业大学作为陕西省三所985和211高校之一,虽然在农业和林业领域不如某些顶尖院校,但在航空航天领域的实力尤为突出。该校的计算机科学专业在科研和教学方面也具有显著优势,是考研的理想选择。 ... [详细]
  • Nmap端口检测与网络安全性评估
    Nmap 是一款强大的网络扫描工具,能够高效地进行主机发现、端口扫描和服务识别。它不仅能够检测网络中活跃的主机,还能详细列出这些主机上开放的端口及其对应的服务和版本信息。此外,Nmap 还具备操作系统指纹识别和硬件地址探测功能,为网络安全评估提供了全面的数据支持。 ... [详细]
  • 内网渗透技术详解:PTH、PTT与PTK在域控环境中的应用及猫盘内网穿透配置
    本文深入探讨了内网渗透技术,特别是PTH、PTT与PTK在域控环境中的应用,并详细介绍了猫盘内网穿透的配置方法。通过这些技术,安全研究人员可以更有效地进行内网渗透测试,解决常见的渗透测试难题。此外,文章还提供了实用的配置示例和操作步骤,帮助读者更好地理解和应用这些技术。 ... [详细]
  • Panabit应用层流量管理解决方案
    Panabit是一款国内领先的应用层流量管理解决方案,提供高度开放且免费的专业服务,尤其擅长P2P应用的精准识别与高效控制。截至2009年3月25日,该系统已实现对多种网络应用的全面支持,有效提升了网络资源的利用效率和安全性。 ... [详细]
  • numberacl-number:ACL(AccessControlList,访问控制列表)的序号,取值范围为 ... [详细]
  • 首次探索Serf:分布式服务协调工具的入门指南
    serf是出自Hashicorp的开源项目,实现了去中心化的gossip(八卦)协议,其中gossip协议定义了一种类似病毒感染的消息传播过程。一些著名的开源项目,如Docker和 ... [详细]
  • Dubbo的集群容错策略正常情况下,当我们进行系统设计时候,不仅要考虑正常逻辑下代码该如何走,还要考虑异常情况下代码逻辑应该怎么走。当服务 ... [详细]
author-avatar
很想爱到极限
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有