置顶

渗透工具是如何绕过防火墙_渗透 工具

作者:hacker | 分类:渗透破解 | 浏览:77 | 日期:2022年07月17日

文章目录:

如何突破防火墙进行内网的渗透测试

身处不同的渗透测试环境下就会有不同的渗透思路以及渗透的技术手段,今天我们将从攻与守两个不同的视角来了解渗透测试在不同处境下所使用的技术手段。

从攻方视角看渗透

攻方既包括了潜在的黑客、入侵者,也包括了经过企业授权的安全专家。在很多黑客的视角中,只要你投入了足够多的时间和耐心,那么这个世界上就没有不可能渗透的目标。目前我们只从授权渗透的角度来讨论渗透测试的攻击路径及其可能采用的技术手段。

测试目标的不同,自然也导致了技术手段的不同,接下来我们将简单说明在不同的位置可能采用的技术手段。

内网测试

内网测试指的是由渗透测试人员在内部网络发起的测试,这类的测试能够模拟企业内部违规操作者的行为。它的最主要的“优势”就是绕过了防火墙的保护。内部可能采用的主要渗透方式有:远程缓冲区溢出,口令猜测,以及B/S或C/S应用程序测试(如果在渗透测试中有涉及到C/S程序测试的,那么就需要提前准备相关客户端软件供测试使用)。

外网测试

外网测试则恰恰与内网测试相反,在此类测试当中渗透测试人员完全处于外部网络(例如拨号、ADSL或外部光纤),来模拟对内部状态一无所知的外部攻击者的行为。外部可能采用的渗透方式包括:对网络设备的远程攻击,口令管理安全性测试,防火墙规则试探、规避、Web及其它开放应用服务的安全性测试。

不同网段/Vlan之间的渗透

这种渗透方式是从某内/外部网段,尝试对另一网段/Vlan来进行渗透。这类测试通常可能用到的技术包括:对网络设备的远程攻击、对防火墙的远程攻击或规则探测、规避尝试。

信息的收集和分析伴随着渗透测试的每一个步骤,而每一个步骤又有三个部分组成:操作、响应和结果分析。

端口扫描

通过对目标地址的TCP/UDP端口扫描,确定其所开放的服务的数量以及类型,这是所有渗透测试的基础。端口扫描是计算机解密高手喜欢的一种方式。通过端口扫描,可以大致确定一个系统的基本信息并搜集到很多关于目标主机的各种有用的信息,然后再结合安全工程师的相关经验就可以确定其可能存在的以及可能被利用的安全弱点,从而为进行深层次的渗透提供可靠性依据。

远程溢出

这是当前出现的频率最高、威胁最严重,同时又是最容易实现的一种渗透方法,一个仅仅具有一般的基础性网络知识的入侵者就可以在相当短的时间内利用现成的工具实现远程溢出攻击。

对于防火墙内的系统同样存在这样的风险,只要对跨接防火墙内外的一台主机攻击成功,那么通过这台主机对防火墙内的主机进行攻击就易如反掌。

口令猜测

口令猜测也是一种出现概率很高的风险,几乎不需要任何攻击工具,利用一个简单的暴力攻击程序和一个比较完善的字典,就可以进行猜测口令。

对一个系统账号的猜测通常包括两个方面:首先是对用户名的猜测,其次是对密码的猜测。只要攻击者能猜测或者确定用户口令,就能获得机器或者网络的访问权,并且能够访问到用户能够访问的审核信息资源。

本地溢出

所谓本地溢出是指在拥有了一个普通用户的账号之后,通过一段特殊的指令代码来获取管理员权限的方法。使用本地溢出的前提是首先你要获得一个普通用户密码。也就是说由于导致本地溢出的一个关键条件是设置不当的密码策略。

多年的实践证明,在经过前期的口令猜测阶段获取的普通账号登录系统之后,对系统实施本地溢出攻击,就能获取不进行主动安全防御的系统的控制管理权限。

脚本及应用测试

Web脚本及应用测试专门针对Web及数据库服务器进行。根据最新的技术统计表明,脚本安全弱点是当前Web系统尤其是存在动态内容的Web系统比较严重的安全弱点之一。利用脚本相关弱点轻则可以获取系统其他目录的访问权限,重则将有可能取得系统的控制管理权限。因此对于含有动态页面的Web、数据库等系统,Web脚本及应用测试将是渗透测试中必不可少的一个环节。

在Web脚本及应用测试中,可能需要检查的部份包括:

(1)检查应用系统架构,防止用户绕过系统直接修改数据库;

(2)检查身份认证模块,用以防止非法用户绕过身份认证;

(3)检查数据库接口模块,用以防止用户获取系统权限;

(4)检查文件接口模块,防止用户获取系统文件;

(5)检查其他安全威胁。

无线测试

虽然中国的无线网络还处于建设时期,但是无线网络的部署及其简易,所以在一些大城市里的普及率已经很高了。在北京和上海的商务区内至少有80%的地方都可以找到接入点。

通过对无线网络的测试,可以判断企业局域网的安全性,这已经成为渗透测试中越来越重要的环节。

除了以上的测试手段以外,还有一些可能会在渗透测试过程中使用的技术,包括:社交工程学、拒绝服务攻击,以及中间人攻击。

从守方视角看渗透

当具备渗透测试攻击经验的人们站到系统管理员的角度,要保障一个大网的安全时,我们会发现,关注点是完全不同的。从攻方的视角看是“攻其一点,不及其余”,只要找到一个小漏洞,就有可能撕开整条战线;但如果你从守方的视角来看,就会发现往往是“千里之堤,毁于蚁穴”。因此,必须要有好的理论指引,从技术到管理都要注重安全,才能使网络固若金汤。

渗透测试的必要性

渗透测试利用网络安全扫描器、专用安全测试工具和富有经验的安全工程师的人工经验对网络中的核心服务及其重要的网络设备,包括服务器、网络设备、防火墙等进行非破坏性质的模拟黑客攻击,目的是侵入系统并获取机密信息并将入侵的过程和细节产生报告给用户,从而实现网络信息安全的防护。

渗透测试和工具扫描可以很好的互相补充。工具扫描具有很好的效率和速度,但存在一定的误报率和漏报率,并且不能发现高层次的、复杂的、并且相互关联的安全问题;而渗透测试则需要投入大量的人力资源、并且对测试者的专业技能要求很高(渗透测试报告的价值直接依赖于测试者的专业技能水平),但是非常准确,可以发现逻辑性更强、更深层次的弱点,效果更加的明显。

一般的渗透测试流程如下:

时间的选择

为减少渗透测试对网络和主机的负面影响,渗透测试的时间尽量安排在业务量不大的时段或者是晚上。

策略的选择

为了防止渗透测试造成网络和主机的业务中断的问题,在渗透测试的过程中尽量不使用含有拒绝服务的测试策略。

授权渗透测试的监测手段

在评估过程中,由于渗透测试的特殊性,用户可以要求对整体测试流程进行实时的监控(PS:可能会提高渗透测试的成本)。

测试方自控

由渗透测试方对本次测透测试过程中的三方面数据进行完整记录:操作、响应、分析,最终会形成完整有效的渗透测试报告并将其提交给用户。

用户监控

用户监控一共有四种形式:

全程监控:采用类似Ethereal的嗅探软件进行全程抓包嗅探;

择要监控:对其扫描过程不进行录制,仅在安全工程师分析数据后,准备发起渗透前才开启软件进行嗅探;

主机监控:仅监控受测主机的存活状态,用以避免意外情况发生;

指定攻击源:用户指定由特定攻击源地址进行攻击,该源地址的主机由用户进行进程、网络连接、数据传输等多方面的监督控制。

(友情提示:文章中会出现与之前文章些许重复的情况,望各位亲包容,不过重复即是记忆。大家要常驻米安网哦!)

如何穿过防火墙

如今采用局域网方式接入Internet已经是各个公司、高校和政府机关的主要上网方式,这种方式既节省IP地址,又方便管理和控制。通常网管会在局域网的出口处设置各种防火墙,这样一方面保证了局域网内部的安全xx,另一方面又可以控制局域网内部人员的访问权限。可这样也限制了使用者的使用权限,与外界的联系也很不方便。比方说对于在公司里上班的上班一族和局域网里的穷学生来说,最痛恨的事情莫过于可恨的Boss为了防止大家偷懒而关闭了大多数端口,只允许使用有限的服务,如WWW、POP3、SMTP等。这样就用不成很多工具,如QQ、Cterm、FTP等,你和外界的联系会很不方便,有MM而不能聊、有BBS而不能灌、有精彩的歌曲而不能Down,人世间最大的痛苦莫过于此……怎么办?别急别急,本文教你几招,轻轻松松穿透防火墙,尽情使用各种工具!好,下面我们一起来看这几招的原理解说和实战说明。

名次解释:

 协议

协议(Protocol)就是一组在网络上发送信息的规则和约定。这些规则控制在网络设备间交换消息的内容、格式、定时、顺序和错误,通俗说就是不同网络程序的交流语言。我们常见的QQ使用UDP协议、ICQ使用TCP协议、E-mail程序使用POP3和SMTP协议,而在常见的协议中SOCKS是一种比较复杂的协议。

 端口

端口(Port)可以认为是计算机与外界通讯交流的出口。其中硬件领域的端口又称接口,如:USB端口、串行端口等;软件领域的端口一般指网络中面向连接服务和无连接服务的通信协议端口,是一种抽象的软件结构,包括一些数据结构和I/O(基本输入输出)缓冲区。端口号实际上有点和文件描述符相似,也是系统的一种资源,只不过其分配方式有固定的模式。有几种基本分配方式:第一种是全局分配,这是一种集中分配方式,由一个公认权威的中央机构根据用户需要进行统一分配,并将结果公布于众,而且按照协议不同分配不同的端口号,这样导致很多服务被固定在某个协议的端口上,如TCP的21端口就被FTP服务占用;第二种是本地分配,又称动态连接,即进程需要访问传输层服务时,向本地xx作系统提出申请,xx作系统返回本地唯一的端口号,进程再通过合适的系统调用,将自己和该端口连接起来。

端口按端口号可分为三大类:

1.公认端口(WellsKnownsPorts):从0到1023,它们紧密绑定(Binding)于一些服务。通常这些端口的通讯明确表明了某种服务的协议,例如80端口实际上就是HTTP通讯。

2.注册端口(RegisteredaPorts):从1024到49151,它们松散绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其他目的,例如许多系统处理动态端口从1024左右开始。

3.动态和“/”或私有端口(Dynamic3and/or3Private3Ports):从49152到65535。理论上不应为服务分配这些端口,实际上机器通常从1024起分配动态端口,但也有例外:SUN的RPC端口从32768开始。

 代理服务器

代理服务器(Proxy)是网络信息的中转站,比方说HTTP代理服务器。我们使用网络浏览器直接链接其他Internet站点并取得网络信息时,需送出Request信号来得到回答,然后对方再把信息传送回来。代理服务器是介于浏览器和Web服务器之间的一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,Request信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你。而且大部分代理服务器都具有缓冲功能,就好像一个大Cache,它不断将新取得的数据包存到它本机的存储器上,如果浏览器所请求的数据在它本机的存储器上已经存在而且是最新的,那么它就不重新从Web服务器取数据,而直接将存储器上的数据传送给用户的浏览器,这样就能显著提高浏览速度和效率。除此之外还有SOCKS代理服务器,其原理大同小异。

 防火墙

防火墙(Firewall)是一个系统(或一组系统),它能增强机构内部网络的安全xx。防火墙系统决定了哪些内部服务可以被外界访问、外界的哪些人可以访问内部的特定服务,以及哪些外部资源可以被内部人员访问。要使一个防火墙有效,所有进入和外出的信息都必须经过防火墙,接受其检查。防火墙必须做到只允许经过授权的数据通过,并且防火墙本身也必须能够免于渗透。但不幸的是,防火墙系统一旦被攻击者突破或迂回,就不能提供任何保护了。

防火墙的实现方式包括“包过滤路由器”和“应用层网关”。包过滤路由器可以过滤协议(ICMP、UDP、TCP等),只允许特定的协议通过;应用层网关就是我们常说的代理服务器,它可以提供比路由器更严格的安全策略,我们平时的各种限制就是在应用层实现的。

第一招:SOCKS代理

一般来讲,Boss为防止内部员工偷懒,常常会关闭常见娱乐工具的协议端口,如QQ使用的UDP4000端口,但常常不会关闭SOCKS的1080端口。这样如果你想用的东西本身支持SOCKS代理,那么就好办了,直接使用代理就OK。

SOCKS是个电路级网关,是DavidKoblas在1990年开发的,此后它就一直作为Internet9RFC中的开放标准。SOCKS在协议栈的TCP层上运行,它的常用端口是1080。与Winsock不同的是,SOCKS不要求应用程序遵循特定的xx作系统平台,比如像Winsock那样遵循Windows。SOCKS代理与应用层代理、HTTP层代理不同,SOCKS代理只是简单地传递数据包,而不必关心是何种应用协议(比如FTP、HTTP和NNTP请求),所以SOCKS代理服务器比应用层代理服务器要快得多,正因为SOCKS代理服务器有这样的功能我们才可以通过它来连接Internet。常用到有SOCKS代理有SOCKS4和SOCKS5两种版本,其中SOCKS4代理只支持TCP协议,SOCKS5代理支持TCP和UDP协议,还支持各种身份验证机制、服务器端域名解析等。简单点说,SOCKS4能干的SOCKS5都可以干,反过来就不行了,如QQ只能用SOCKS5代理,而FTP可以用SOCKS4和SOCKS5,因为QQ的数据传输机制是UDP,而FTP用的数据传输机制是TCP。

SOCKS协议就是一种几乎万能的代理协议,它虽然不能理解自己转发的数据内部结构,但它能够忠实地转发数据包,完成协议本来要完成的功能。它与你常见的HTTP代理的不同点在于,HTTP代理通过HTTP协议进行,HTTP代理服务器软件了解通讯包的内部结构,在转发过程中还要对通讯进行某种修改和转换。来看看我是怎么用SOCKS代理来穿透防火墙的吧。

先来看看QQ中我们怎么用SOCKS代理吧。首先在QQ的任务栏通知区的图标处点右键,然后选择系统参数,然后选择网络设置,选中使用“SOCKS5代理服务器”,填入你所用的SOCKS代理地址和端口号(如图1),还可以点测试看看这个SOCKS5代理可用否。确定后,你的QQ就是通过61.136.132.138:1080这个SOCKS5代理上线的,你所有的数据包现在都是发给这个代理服务器,然后再转发出去,这样就可以绕过UDP4000的端口,穿过了防火墙的牢笼。我们还可以用另外一个可以看IP的QQ看看现在你QQ所在的IP(如图2),显示的IP是61.136.132.138。这样还有一个附加功能,就是隐藏了你的真实IP,与陌生人聊天时不用隐身了,他看到的IP也是SOCKS代理服务器的IP地址。

再来看看如何穿透防火墙来使用FTP工具AbsoluteFTP(图3)来从网上下载东西。AbsoluteFTP是一款强大的FTP下载工具,支持SOCKS4和SOCKS5代理,而且全中文界面,如果你所在的局域网被封了21端口导致无法使用FTP下载时,可以用这款软件加SOCKS代理来绕过防火墙实现FTP功能。FTP既可以用SOCKS4,也可以用SOCKS5代理,而不像QQ只能使用SOCKS5代理。

在AbsoluteFTP的选项设置中选中全局配置中的防火墙(图4),然后就可以选择是采用SOCKS4还是SOCKS5代理、是否需要身份认证等,然后填入SOCKS代理服务器和端口以及身份认证所需要的用户名和口令,这样就能穿过防火墙使用FTP了。

第二招:Socks2HTTP配合SocksCap32

第一招中,如果网管只开放80端口,把SOCKS常用的端口关闭,或者你想用的软件本身并不支持SOCKS代理,如Foxmail,或者你就找不到可用的SOCKS代理(网上可用的SOCKS代理数量远远小于可用的HTTP代理数量),这时第一招就不灵了,怎么办?请看第二招:Socks2HTTP配合SocksCap32,二者加起来使用的结果就是只要你有一个可用的HTTP代理,就可使用各种各样的软件来直接绕过防火墙而不管它是否支持SOCKS代理,我们分两种情况来看。

 1.防火墙关闭了SOCKS端口,但你要用的软件支持SOCKS代理

这种情形下可以直接用Socks2HTTP来搞定。Socks2HTTP()是一个代理...我们用“netstatJ–aJ–n”命令来看看本机开放的端口(如图7),就会发现本机多出个1080端口,这个端口就是HTTP2socks模拟出来的在本机上运行的SOCKS代理服务器侦听端口,现在你就拥有一个本地的SOCKS5代理服务器了。

接下来我们看看在QQ等支持SOCKS接口的软件中该如何设置代理服务器。看下面图8,直接将SOCKS5服务器地址添为127.0.0.1,端口为1080,赶快测试一下吧。

 2.防火墙关闭了SOCKS端口,并且你想用的软件不支持SOCKS代理

这就稍微麻烦一些,需要另外一个软件SocksCap32的配合支持来穿透防火墙。SocksCap32是NEC公司()开发的,?..P就解决了。HTTPfProxy网上有的是,只要有了HTTP代理就有了SOCKS代理。因为Socks2HTTP就是把HTTP代理模拟成SOCKS代理,如果再配合刚才提到的Socks2HTTP,就可以穿透防火墙来使用那些本身没有SOCKS接口的软件了,下面我们来解释这个过程!

现在网上已经有了SocksCap的汉化版本(的控制台。

为了更好理解,我把这个过程分成几步:

第一步:首先按照第一部分那样配置好你的Socks2HTTP,填入可用的HTTP代理,启动,然后你就拥有一个本地的SOCKS代理服务器127.0.0.1,端口是1080,现在就可以用这个SOCKS代理来配置你的SocksCap。

第二步:运行SocksCap,如果是第一次运行,系统会自动提示你是否进入设置界面,如果不是第一次运行,可以选择SocksCap中的文件→设置进入设置界面,如图10。

第三步:在SocksCap的设置界面中填入Socks2HTTP模拟出来的本地SOCKS代理127.0.0.1,端口是1080,“协议”处选择“SOCKS版本5(5)”→“由远程决定所有名字”,其余部分,例如直接连接的设置是为了有些内部房梢灾苯恿佣挥肧OCKS代理,日志部分可设置是否产生日志,日志功能能帮助诊断连接失败的原因,我们这里可以对其他部分直接采用默认设置。

第四步:建立“应用程序标识项”。应用程序标识项是在SocksCap中新建的一个快捷方式,这个快捷方式指向你所要用的工具,在SocksCap中启动这个工具就相当于“赋予”了这个工具的SOCKS接口能力。有两种方式来建立这种快捷方式:

 1.用鼠标拖动桌面上的Cterm快捷键到SocksCap的空白处,松开鼠标即会弹出菜单,选择“应用程序标识项”系统会自动建立好标识项(见图11),点确定即可。

 2.也可以点击“新建”,在弹出的对话框里填入相应内容,点击确定。

第五步:运行程序。在SocksCap控制台中双击刚才新建的Cterm快捷方式就可以直接使用了,比方说我现在想连接bbs.mit.edu(图12),以前因为我在教育网里无法访问国外网站,而且网管封了Telnet的23端口,我无法连上这个BBS,现在通过Socks2HTTP和SocksCap,不仅可以出国,而且可以使用Telnet服务连上MIT的BBS,穿透了防火墙!其他工具,比方说FTP、Outlook等,也一样使用。尤其值得一提的是可以用Outlook收Hotmail的信,如果没有这种办法,对于我们这些处在教育网里的穷人(无出国权限)来讲,只能乖乖用HTTP代理上Hotmail的网站,用WWW方式收信。现在有这个就好了,相当于给Outlook配备了SOCKS接口,直接就可以在Outlook里面收信了。

第三招:HTTPTunel

上面两招也许就够用了,但用上面两招的前提是你要有可用的HTTP代理,从你这里发送出的所有数据包都是经过包装后通过代理转一圈然后再到达它的目的地,这样会带来两个问题:

第一:速度问题,比方说从A发送数据经过代理B到达C,如果没有防火墙,数据是直接从A发到C;现在因为要绕过防火墙,首先必须要将从A发出的数据封装,使之能够绕过防火墙,然后发给代理B,B再将这些数据解封再传给C,从C回来的数据也要走一样的过程。这样一来,且先不考虑把这些数据封装、解封去需要耗费的时间,单是经过C绕这么大一个圈子,速度肯定要大打折扣,所以一般来讲肯定不如直接连接速度快。

第二:过度依赖于代理导致的稳定xx问题,网上找到的代理肯定不是很稳定,很多时候容易产生丢包、服务中断的情况。其实我们并不是非要通过代理中转,比方说你哥们在宿舍开了FTP,然后他把精彩的电影放上去,你要看,可是你所在的局域网网管关闭了21的FTP端口,这样你就没法Down了,怎么办?用HTTPTunnel,Tunnel这个英文单词的意思是隧道,通常HTTPTunnel被称之为HTTP暗道,它的原理就是将数据伪装成HTTP的数据形式来穿过防火墙,实际上是在HTTP请求中创建了一个双向的虚拟数据连接来穿透防火墙。说得简单点,就是说在防火墙两边都设立一个转换程序,将原来需要发送或接受的数据包封装成HTTP请求的格式骗过防火墙,所以它不需要别的代理服务器而直接穿透防火墙。HTTPTunnel刚开始时只有Unix版本,现在已经有人把它移植到Window平台上了,它包括两个程序,htc和hts,其中htc是客户端,而hts是服务器端,我们现在来看看我是如何用它们的。比如开了FTP的机器的IP是192.168.1.231,我本地的机器的IP是192.168.1.226,现在我本地因为防火墙的原因无法连接到FTP上,现在用HTTPTunnel的过程如下:

第一步:在我的机器上(192.168.1.226)启动HTTPTunnel客户端。启动MS-DOS的命令行方式,然后执行如图13命令,其中htc是客户端程序,-f参数表示将来自192.168.1.231:80的数据全部转发到本机的8888端口,这个端口可以随便选,只要本机没有占用就可以。

然后我们用Netstat看一下本机现在开放的端口,发现8888端口已在侦听(如图14)。

第二步:在对方机器上启动HTTPTunnel的服务器端,并执行命令“htsJ-fJlocalhost:21J80”,这个命令的意思是说把本机21端口发出去的数据全部通过80端口中转一下,并且开放80端口作为侦听端口,再用Neststat看一下他的机器,就会发现80端口现在也在侦听状态(如图15)。

第三步:在我的机器上用FTP连接本机的8888端口(图16),现在已经连上对方的机器了,看到Movie没有(图17),嘿嘿,快点去下载吧!

可是,人家看到的怎么是127.0.0.1而不是192.168.1.231的地址?因为我现在是连接本机的8888端口,防火墙肯定不会有反应,因为我没往外发包,当然局域网的防火墙不知道了。现在连接上本机的8888端口以后,FTP的数据包不管是控制信息还是数据信息,都被htc伪装成HTTP数据包然后发过去,在防火墙看来,这都是正常数据,相当于欺骗了防火墙。

需要说明的是,这一招的使用需要其他机器的配合,就是说要在他的机器上启动一个hts,把他所提供的服务,如FTP等重定向到防火墙所允许的80端口上,这样才可以成功绕过防火墙!肯定有人会问,如果对方的机器上本身就有WWW服务,也就是说他的80端口在侦听,这么做会不会冲突?HTTPTunnel的优点就在于,即使他的机器以前80端口开着,现在这么用也不会出现什么问题,正常的Web访问仍然走老路子,重定向的隧道服务也畅通无阻!而且这种方法有人用鼎鼎大名的入侵检测系统Snort来检测,居然没有发现,隐蔽xx很强。

不过还有最后一点需要提醒,那就是所有这些招数实际上是利用防火墙配置和系统安全管理上的漏洞,如果碰到一个死心眼的网管,一天到晚在网关那里蹲着,看看有那些漏洞没有添好,或者更牛的用TCPDump来抓包分析,一个数据包一个数据包分析,那只能歇菜了

渗透测试的步骤有哪些

渗透测试步骤

明确目标

· 确定范围:测试目标的范围渗透工具是如何绕过防火墙,ip渗透工具是如何绕过防火墙,域名渗透工具是如何绕过防火墙,内外网。

· 确定规则:能渗透到什么程度渗透工具是如何绕过防火墙,时间?能否修改上传?能否提权等。

· 确定需求:web应用的漏洞、业务逻辑漏洞、人员权限管理漏洞等等。

信息收集

方式:主动扫描,开放搜索等。

开放搜索:利用搜索引擎获得,后台,未授权页面,敏感url等。

漏洞探索

利用上一步中列出的各种系统,应用等使用相应的漏洞。

方法:

1.漏扫,awvs,IBM appscan等。

2.结合漏洞去exploit-db等位置找利用。

3.在网上寻找验证poc。

内容:

系统漏洞:系统没有及时打补丁

Websever漏洞:Websever配置问题

Web应用漏洞:Web应用开发问题

其它端口服务漏洞:各种21/8080(st2)/7001/22/3389

通信安全:明文传输,token在cookie中传送等。

漏洞验证

将上一步中发现的有可能可以成功利用的全部漏洞都验证一遍,结合实际情况,搭建模拟环境进行试验。成功后再应用于目标中。

自动化验证:结合自动化扫描工具提供的结果

手工验证,根据公开资源进行验证

试验验证:自己搭建模拟环境进行验证

登陆猜解:有时可以尝试猜解一下登陆口的账号密码等信息

业务漏洞验证:如发现业务漏洞,要进行验证

公开资源的利用

信息分析

为下一步实施渗透做准备:

精准打击:准备好上一步探测到的漏洞的exp,用来精准打击

绕过防御机制:是否有防火墙等设备,如何绕过

定制攻击路径:最佳工具路径,根据薄弱入口,高内网权限位置,最终目标

绕过检测机制:是否有检测机制,流量监控,杀毒软件,恶意代码检测等

攻击代码:经过试验得来的代码,包括不限于xss代码,sql注入语句等

获取所需

实施攻击:根据前几步的结果,进行攻击

获取内部信息:基础设施

进一步渗透:内网入侵,敏感目标

持续性存在:一般渗透工具是如何绕过防火墙我们对客户做渗透不需要。rookit,后门,添加管理账号,驻扎手法等

清理痕迹:清理相关日志,上传文件等

信息整理

整理渗透工具:整理渗透过程中用到的代码,poc,exp等

整理收集信息:整理渗透过程中收集到的一切信息

整理漏洞信息:整理渗透过程中遇到的各种漏洞,各种脆弱位置信息

形成报告

按需整理:按照之前第一步跟客户确定好的范围,需求来整理资料,并将资料形成报告

补充介绍:要对漏洞成因,验证过程和带来危害进行分析

修补建议:当然要对所有产生的问题提出合理高效安全的解决办法

数据渗透怎么操作

一般渗透测试流程

1. 明确目标

l 确定范围:测试目标渗透工具是如何绕过防火墙的范围、ip、域名、内外网、测试账户。

l 确定规则:能渗透到什么程度渗透工具是如何绕过防火墙,所需要的时间、能否修改上传、能否提权、等等。

l 确定需求:web应用的漏洞、业务逻辑漏洞、人员权限管理漏洞、等等。

2. 信息收集、

l 方式:主动扫描,开放搜索等。

l 开放搜索:利用搜索引擎获得:后台、未授权页面、敏感url、等等。

l 基础信息:IP、网段、域名、端口。

l 应用信息:各端口的应用。例如web应用、邮件应用、等等。

l 系统信息:操作系统版本

l 版本信息:所有这些探测到的东西的版本。

l 服务信息:中间件的各类信息,插件信息。

l 人员信息:域名注册人员信息,web应用中发帖人的id,管理员姓名等。

l 防护信息:试着看能否探测到防护设备。

3. 漏洞探测

利用上一步中列出的各种系统,应用等使用相应的漏洞。

方法:

(1) 漏扫,awvs,IBM appscan等。

(2) 结合漏洞去exploit-db等位置找利用。

(3) 在网上寻找验证poc。

内容:

l 系统漏洞:系统没有及时打补丁

l WebSever漏洞:WebSever配置问题

l Web应用漏洞:Web应用开发问题

l 其它端口服务漏洞:各种21/8080(st2)/7001/22/3389

l 通信安全:明文传输,token在cookie中传送等。

4. 漏洞验证

将上一步中发现的有可能可以成功利用的全部漏洞都验证一遍。结合实际情况,搭建模拟环境进行试验。成功后再应用于目标中。

l 自动化验证:结合自动化扫描工具提供的结果

l 手工验证,根据公开资源进行验证

l 试验验证:自己搭建模拟环境进行验证

l 登陆猜解:有时可以尝试猜解一下登陆口的账号密码等信息

l 业务漏洞验证:如发现业务漏洞,要进行验证

公开资源的利用

l exploit-db/wooyun/

l google hacking

l 渗透代码网站

l 通用、缺省口令

l 厂商的漏洞警告等等。

5. 信息分析

为下一步实施渗透做准备。

l 精准打击:准备好上一步探测到的漏洞的exp,用来精准打击

l 绕过防御机制:是否有防火墙等设备,如何绕过

l 定制攻击路径:最佳工具路径,根据薄弱入口,高内网权限位置,最终目标

l 绕过检测机制:是否有检测机制,流量监控,杀毒软件,恶意代码检测等(免杀)

l 攻击代码:经过试验得来的代码,包括不限于xss代码,sql注入语句等

6. 获取所需

实施攻击:根据前几步的结果,进行攻击

l 获取内部信息:基础设施(网络连接,路由,拓扑等)

l 进一步渗透:内网入侵,敏感目标

l 持续性存在:一般渗透工具是如何绕过防火墙我们对客户做渗透不需要。rookit,后门,添加管理账号,驻扎手法等

l 清理痕迹:清理相关日志(访问,操作),上传文件等

7. 信息整理

l 整理渗透工具:整理渗透过程中用到的代码,poc,exp等

l 整理收集信息:整理渗透过程中收集到的一切信息

l 整理漏洞信息:整理渗透过程中遇到的各种漏洞,各种脆弱位置信息

8. 形成报告

l 按需整理:按照之前第一步跟客户确定好的范围,需求来整理资料,并将资料形成报告

l 补充介绍:要对漏洞成因,验证过程和带来危害进行分析

l 修补建议:当然要对所有产生的问题提出合理高效安全的解决办法

流程总结

如何穿透windows防火墙

第一招:SOCKS代理

一般来讲,Boss为防止内部员工偷懒,常常会关闭常见娱乐工具的协议端口,如QQ使用的UDP4000端口,但常常不会关闭SOCKS的1080端口。这样如果你想用的东西本身支持SOCKS代理,那么就好办了,直接使用代理就OK。

SOCKS是个电路级网关,是DavidKoblas在1990年开发的,此后它就一直作为Internet RFC中的开放标准。SOCKS在协议栈的TCP层上运行,它的常用端口是1080。与Winsock不同的是,SOCKS不要求应用程序遵循特定的操作系统平台,比如像Winsock那样遵循Windows。SOCKS代理与应用层代理、HTTP层代理不同,SOCKS代理只是简单地传递数据包,而不必关心是何种应用协议(比如FTP、HTTP和NNTP请求),所以SOCKS代理服务器比应用层代理服务器要快得多,正因为SOCKS代理服务器有这样的功能我们才可以通过它来连接Internet。常用到有SOCKS代理有SOCKS4和SOCKS5两种版本,其中SOCKS4代理只支持TCP协议,SOCKS5代理支持TCP和UDP协议,还支持各种身份验证机制、服务器端域名解析等。简单点说,SOCKS4能干的SOCKS5都可以干,反过来就不行了,如QQ只能用SOCKS5代理,而FTP可以用SOCKS4和SOCKS5,因为QQ的数据传输机制是UDP,而FTP用的数据传输机制是TCP。

SOCKS协议就是一种几乎万能的代理协议,它虽然不能理解自己转发的数据内部结构,但它能够忠实地转发数据包,完成协议本来要完成的功能。它与你常见的HTTP代理的不同点在于,HTTP代理通过HTTP协议进行,HTTP代理服务器软件了解通讯包的内部结构,在转发过程中还要对通讯进行某种修改和转换。来看看我是怎么用SOCKS代理来穿透防火墙的吧。

先来看看QQ中我们怎么用SOCKS代理吧。首先在QQ的任务栏通知区的图标处点右键,然后选择系统参数,然后选择网络设置,选中使用“SOCKS5代理服务器”,填入你所用的SOCKS代理地址和端口号(如图1),还可以点测试看看这个SOCKS5代理可用否。确定后,你的QQ就是通过61.136.132.138:1080这个SOCKS5代理上线的,你所有的数据包现在都是发给这个代理服务器,然后再转发出去,这样就可以绕过UDP4000的端口,穿过了防火墙的牢笼。我们还可以用另外一个可以看IP的QQ看看现在你QQ所在的IP(如图2),显示的IP是61.136.132.138。这样还有一个附加功能,就是隐藏了你的真实IP,与陌生人聊天时不用隐身了,他看到的IP也是SOCKS代理服务器的IP地址。

再来看看如何穿透防火墙来使用FTP工具AbsoluteFTP(图3)来从网上下载东西。AbsoluteFTP是一款强大的FTP下载工具,支持SOCKS4和SOCKS5代理,而且全中文界面,如果你所在的局域网被封了21端口导致无法使用FTP下载时,可以用这款软件加SOCKS代理来绕过防火墙实现FTP功能。FTP既可以用SOCKS4,也可以用SOCKS5代理,而不像QQ只能使用SOCKS5代理。

在AbsoluteFTP的选项设置中选中全局配置中的防火墙(图4),然后就可以选择是采用SOCKS4还是SOCKS5代理、是否需要身份认证等,然后填入SOCKS代理服务器和端口以及身份认证所需要的用户名和口令,这样就能穿过防火墙使用FTP了。

第二招:Socks2HTTP配合SocksCap32

第一招中,如果网管只开放80端口,把SOCKS常用的端口关闭,或者你想用的软件本身并不支持SOCKS代理,如Foxmail,或者你就找不到可用的SOCKS代理(网上可用的SOCKS代理数量远远小于可用的HTTP代理数量),这时第一招就不灵了,怎么办?请看第二招:Socks2HTTP配合SocksCap32,二者加起来使用的结果就是只要你有一个可用的HTTP代理,就可使用各种各样的软件来直接绕过防火墙而不管它是否支持SOCKS代理,我们分两种情况来看。

1.防火墙关闭了SOCKS端口,但你要用的软件支持SOCKS代理

这种情形下可以直接用Socks2HTTP来搞定。Socks2HTTP()是一个代理协议转换软件,它能将SOCKS5的请求转化成HTTP请求,然后这种封装在HTTP数据包的SOCKS请求就可以像正常的HTTP请求一样通过防火墙,这样相当于利用远程HTTP代理在本地模拟出一个轻量级的SOCKS代理服务器,这样你就可以像远程SOCKS代理服务器一样使用这个本地代理服务器,比方说像第一招里那样在QQ里使用本地的这个SOCKS5代理。目前Socks2HTTP的最新版本是0.92版,而且网上已经有了汉化的版本,下载后直接运行即可完成安装。Socks2HTTP几乎没有什么用户界面,运行后只是在系统任务栏通知区显示一个图标(如图5所示)。在图标处右键单击,Socks2HTTP就会弹出一个Popup菜单,选中其中的“配置”就会调出Socks2HTTP的配置窗口(如图6),在其中选择使用HTTP代理服务,然后填入你找到的HTTP代理服务器IP地址和端口号,其他几项就用系统默认值即可,然

后点确定。我们用“netstat –a –n”命令来看看本机开放的端口(如图7),就会发现本机多出个1080端口,这个端口就是HTTP2socks模拟出来的在本机上运行的SOCKS代理服务器侦听端口,现在你就拥有一个本地的SOCKS5代理服务器了。

接下来我们看看在QQ等支持SOCKS接口的软件中该如何设置代理服务器。看下面图8,直接将SOCKS5服务器地址添为127.0.0.1,端口为1080,赶快测试一下吧。

2.防火墙关闭了SOCKS端口,并且你想用的软件不支持SOCKS代理

这就稍微麻烦一些,需要另外一个软件SocksCap32的配合支持来穿透防火墙。SocksCap32是NEC公司()开发的,它能使所有Winsock应用都可以SOCKS代理的工具,Cap这个英文的意思是帽子,顾名思义,SocksCap32就是给Winsock的系统调用库加上个“帽子”,这样所有在SocksCap环境下应用产生的Winsock调用都会被SocksCap截获,然后这些请求会自动转化为向特定SOCKS代理的请求,如此,你原先不支持SOCKS代理的应用也可以用了。SocksCap32支持SOCKS4和SOCKS5代理。简而言之,SocksCap的功能就是把Winsocks的调用转化成SOCKS调用,这样让那些不支持SOCKS接口的软件如Telnet工具Cterm(常在BBS上混的都知道,灌水利器,水枪必备!)、Outlook、FoxMail等也具备了SOCKS接口!所有这些软件在与网上的服务器建立连接时都需要调用Winsock接口,通过SocksCap它们都被转化成SOCKS调用,也就可以使用SOCKS代理了。很有意思的是,SocksCap能把SOCKS代理转换成HTTP代理,而Socks2HTTP又能把HTTP代理转换成SOCKS代理,有这这两个软件我们就可以畅游网络世界了。为什么要组合着用呢?因为SocksCap用的是SOCKS代理,而SOCKS代理太少了,而且还分SOCKS4和SOCKS5,而SOCKS4只能做TCP协议代理。那怎么解决呢?有办法,有了Socks2HTTP就解决了。HTTP Proxy网上有的是,只要有了HTTP代理就有了SOCKS代理。因为Socks2HTTP就是把HTTP代理模拟成SOCKS代理,如果再配合刚才提到的Socks2HTTP,就可以穿透防火墙来使用那些本身没有SOCKS接口的软件了,下面我们来解释这个过程!

现在网上已经有了SocksCap的汉化版本

(),按照提示安装完了即可使用,主界面(图

9)是SocksCap的控制台。

为了更好理解,我把这个过程分成几步:

第一步:首先按照第一部分那样配置好你的Socks2HTTP,填入可用的HTTP代理,启动,然后你就拥有一个本地的SOCKS代理服务器127.0.0.1,端口是1080,现在就可以用这个SOCKS代理来配置你的SocksCap。

第二步:运行SocksCap,如果是第一次运行,系统会自动提示你是否进入设置界面,如果不是第一次运行,可以选择SocksCap中的文件→设置进入设置界面,如图10。

第三步:在SocksCap的设置界面中填入Socks2HTTP模拟出来的本地SOCKS代理127.0.0.1,端口是1080,“协议”处选择“SOCKS版本5(5)”→“由远程决定所有名字”,其余部分,例如直接连接的设置是为了有些内部网址可以直接连接而不用SOCKS代理,日志部分可设置是否产生日志,日志功能能帮助诊断连接失败的原因,我们这里可以对其他部分直接采用默认设置。

第四步:建立“应用程序标识项”。应用程序标识项是在SocksCap中新建的一个快捷方式,这个快捷方式指向你所要用的工具,在SocksCap中启动这个工具就相当于“赋予”了这个工具的SOCKS接口能力。有两种方式来建立这种快捷方式:

1.用鼠标拖动桌面上的Cterm快捷键到SocksCap的空白处,松开鼠标即会弹出菜单,选择“应用程序标识项”系统会自动建立好标识项(见图11),点确定即可。

2.也可以点击“新建”,在弹出的对话框里填入相应内容,点击确定。

第五步:运行程序。在SocksCap控制台中双击刚才新建的Cterm快捷方式就可以直接使用了,比方说我现在想连接bbs.mit.edu(图12),以前因为我在教育网里无法访问国外网站,而且网管封了Telnet的23端口,我无法连上这个BBS,现在通过Socks2HTTP和SocksCap,不仅可以出国,而且可以使用Telnet服务连上MIT的BBS,穿透了防火墙!其他工具,比方说FTP、Outlook等,也一样使用。尤其值得一提的是可以用Outlook收Hotmail的信,如果没有这种办法,对于我们这些处在教育网里的穷人(无出国权限)来讲,只能乖乖用HTTP代理上Hotmail的网站,用WWW方式收信。现在有这个就好了,相当于给Outlook配备了SOCKS接口,直接就可以在Outlook里面收信了。

第三招:HTTPTunel

上面两招也许就够用了,但用上面两招的前提是你要有可用的HTTP代理,从你这里发送出的所有数据包都是经过包装后通过代理转一圈然后再到达它的目的地,这样会带来两个问题:

第一:速度问题,比方说从A发送数据经过代理B到达C,如果没有防火墙,数据是直接从A发到C;现在因为要绕过防火墙,首先必须要将从A发出的数据封装,使之能够绕过防火墙,然后发给代理B,B再将这些数据解封再传给C,从C回来的数据也要走一样的过程。这样一来,且先不考虑把这些数据封装、解封去需要耗费的时间,单是经过C绕这么大一个圈子,速度肯定要大打折扣,所以一般来讲肯定不如直接连接速度快。

第二:过度依赖于代理导致的稳定性问题,网上找到的代理肯定不是很稳定,很多时候容易产生丢包、服务中断的情况。其实我们并不是非要通过代理中转,比方说你哥们在宿舍开了FTP,然后他把精彩的电影放上去,你要看,可是你所在的局域网网管关闭了21的FTP端口,这样你就没法Down了,怎么办?用HTTPTunnel,Tunnel这个英文单词的意思是隧道,通常HTTPTunnel被称之为HTTP暗道,它的原理就是将数据伪装成HTTP的数据形式来穿过防火墙,实际上是在HTTP请求中创建了一个双向的虚拟数据连接来穿透防火墙。说得简单点,就是说在防火墙两边都设立一个转换程序,将原来需要发送或接受的数据包封装成HTTP请求的格式骗过防火墙,所以它不需要别的代理服务器而直接穿透防火墙。HTTPTunnel刚开始时只有Unix版本,现在已经有人把它移植到Window平台上了,它包括两个程序,htc和hts,其中htc是客户端,而hts是服务器端,我们现在来看看我是如何用它们的。比如开了FTP的机器的IP是192.168.1.231,我本地的机器的IP是192.168.1.226,现在我本地因为防火墙的原因无法连接到FTP上,现在用HTTPTunnel的过程如下:

第一步:在我的机器上(192.168.1.226)启动HTTPTunnel客户端。启动MS-DOS的命令行方式,然后执行如图13命令,其中htc是客户端程序,-f参数表示将来自192.168.1.231:80的数据全部转发到本机的8888端口,这个端口可以随便选,只要本机没有占用就可以。

然后我们用Netstat看一下本机现在开放的端口,发现8888端口已在侦听(如图14)。

第二步:在对方机器上启动HTTPTunnel的服务器端,并执行命令“hts -f localhost:21 80”,这个命令的意思是说把本机21端口发出去的数据全部通过80端口中转一下,并且开放80端口作为侦听端口,再用Neststat看一下他的机器,就会发现80端口现在也在侦听状态(如图15)。

第三步:在我的机器上用FTP连接本机的8888端口(图16),现在已经连上对方的机器了,看到Movie没有(图17),嘿嘿,快点去下载吧!

可是,人家看到的怎么是127.0.0.1而不是192.168.1.231的地址?因为我现在是连接本机的8888端口,防火墙肯定不会有反应,因为我没往外发包,当然局域网的防火墙不知道了。现在连接上本机的8888端口以后,FTP的数据包不管是控制信息还是数据信息,都被htc伪装成HTTP数据包然后发过去,在防火墙看来,这都是正常数据,相当于欺骗了防火墙。

需要说明的是,这一招的使用需要其他机器的配合,就是说要在他的机器上启动一个hts,把他所提供的服务,如FTP等重定向到防火墙所允许的80端口上,这样才可以成功绕过防火墙!肯定有人会问,如果对方的机器上本身就有WWW服务,也就是说他的80端口在侦听,这么做会不会冲突?HTTPTunnel的优点就在于,即使他的机器以前80端口开着,现在这么用也不会出现什么问题,正常的Web访问仍然走老路子,重定向的隧道服务也畅通无阻!而且这种方法有人用鼎鼎大名的入侵检测系统Snort来检测,居然没有发现,隐蔽性很强。

不过还有最后一点需要提醒,那就是所有这些招数实际上是利用防火墙配置和系统安全管理上的漏洞,如果碰到一个死心眼的网管,一天到晚在网关那里蹲着,看看有那些漏洞没有添好,或者更牛的用TCPDump来抓包分析,一个数据包一个数据包分析,那只能歇菜了。哎呀,累死了,下课下课……

发表评论

访客 游客 2022-07-17 · 回复该评论
P等重定向到防火墙所允许的80端口上,这样才可以成功绕过防火墙!肯定有人会问,如果对方的机器上本身就有WWW服务,也就是说他的80端口在侦听,这么做会不会冲突?HTTPTunnel的优点就

访客 游客 2022-07-17 · 回复该评论
器端域名解析等。简单点说,SOCKS4能干的SOCKS5都可以干,反过来就不行了,如QQ只能用SOCKS5代理,而FTP可以用SOCKS4和SOCKS5,因为QQ的数据传输机制是UDP,而FTP用的数据传输机制是TCP。SOCKS协议就

访客 游客 2022-07-17 · 回复该评论
.防火墙关闭了SOCKS端口,但你要用的软件支持SOCKS代理这种情形下可以直接用Socks2HTTP来搞定。Socks2HTTP()是一个代理协议转换软件,它能将SOCKS5的请求转化成HTTP请求,然后这种封装在HT

取消
微信二维码
支付宝二维码