- 收藏
- 加入书签
常见的网络渗透流程及防范
摘要:随着社会信息化建设的加速,网络安全越来越重要,各行各业遭到网络渗透也越来多,网络安全事件频繁。本文基于2021年网络攻防演练,总结了常见的网络渗透步骤,讨论了发生网络渗透后的特征,汇总常见的web渗透工具,并分析了日常工作中对网络渗透的防范方法。
关键词:网络渗透 网络安全 攻防演练
引言
国家信息化建设进入高速发展时期,各行各业都开始向信息化、数字化转型,然而信息化带来的网络安全问题也越来越多,不只是小系统,更多的大系统也被找出安全漏洞,这不禁让我们重新思考网络安全在信息化中的定位。
一、渗透和渗透测试
(一)定义
渗透测试并没有一个标准的定义。一般在网络上的定义是:
渗透是指黑客通过非法途径入侵网站系统,拿到网站的WebShell进行非法操作。
渗透测试是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法。这个过程包括对系统的任何弱点、技术缺陷或漏洞的主动分析,这个分析是从一个攻击者可能存在的位置来进行的,并且从这个位置有条件主动利用安全漏洞。
需要注意,随着2017年6月1日开始实施的《网络安全法》,明确定义了我们如果是未经过授权许可的渗透测试行为均属于违法行为。如果不知道具体哪些行为是违法的,可以自行阅读《网络安全法》。
(二)方法分类
1.黑箱测试
黑箱测试又被称为Zero-Knowledge Testing,渗透者完全处于对系统一无所知的状态,通常这类型测试,最初的信息获取来自于DNS、Web、Email及各种公开对外的服务器。
2.白盒测试
白盒测试与黑箱测试恰恰相反,测试者可以通过正常渠道向被测单位取得各种资料,包括网络拓扑、员工资料甚至网站或其它程序的代码,也能够与单位的其它员工进行面对面的沟通。一般用于项目的安全性测试。
3.隐秘测试
通常情况下,接受渗透测试的单位网络管理部门会收到通知:在某些时段进行测试。因此能够监测网络中出现的变化。但隐秘测试则被测单位也仅有极少数人知晓测试的存在,因此能够有效地检验单位中的信息安全事件监控、响应、恢复做得是否到位。
(三)目标分类
1.主机操作系统渗透
对Windows、Linux、Solaris、AIX、SCO、SGI等操作系统本身进行渗透测试。
2.数据库系统渗透
对MS-SQL、Oracle、MySQL、Sybase、DB2、Informix、Access等数据库应用系统进行渗透测试。
3.应用系统渗透
对渗透目标提供的各种应用,如ASP、CGI、JSP、PHP等组成的WWW应用进行渗透测试。
3.网络设备渗透
对各种防火墙、入侵检测系统、网络设备进行渗透测试。
二、渗透的主要步骤
(一)信息收集(资产收集):
确定渗透目标后,收集目标及目标相关的信息(资产)。主要包括:域名、IP、网站;公众号、小程序、APP;人员信息、邮箱;供应商、开发商;相关单位、上下级单位等等。
(二)扫描查找渗透点:
对渗透目标相关的资产进行扫描,查找可能的渗透点:Web漏洞、Web平台漏洞;VPN漏洞、管理软件漏洞;社工钓鱼邮件、信息;进入相关单位,侵入物理线路;数据库外漏、中间件漏洞、云平台等资源外漏等等。
当渗透者收集到了足够多的信息之后,就要开始对网站进行漏洞探测了。探测网站、公众号、小程序交互平台是否存在一些常见的Web页面的漏洞,比如:SQL注入、文件包含漏洞、文件上传漏洞、文件解析漏洞、XSS跨站脚本、CSRF跨站请求伪造、XXE漏洞、SSRF服务端请求伪造漏洞、远程代码执行漏洞、CORS跨域资源共享漏洞;或者使用的框架、工具、中间件的漏洞,比如:apache漏洞、struts2漏洞、JAVA反序列化漏洞、越权访问漏洞、目录浏览漏洞和任意文件读取/下载漏洞。这些是网站经常出现的一些漏洞,也是经常使用的框架和中间件,其他的漏洞就不一一列举出来了。每个有问题的网站可能存在一个或多个漏洞,在渗透测试中也可能需要多个漏洞配合使用来达到目的。一般来说通过Web漏洞进入系统比较常见,毕竟为了维护方便和数据的快速传输很多web网站都是自己运维,并有很大可能性与生产网相连。
邮箱、供应商、相关单位是大家比较容易忽视的。公开的邮箱使用简单密码,被人爆破出密码后可以伪造管理员向员工、供应商等人员发送带钓鱼链接的邮件,如果自己运维的邮件系统也有可能因此受到渗透攻击。各个系统或多或少的都有软硬件供应商,系统故障排查、系统升级时方便供应商远程排查往往开启了远程登录、VPN登录等等,排查、升级完成之后没有及时关闭的远程软件、VPN用户往往被渗透者利用,在真实的案例里面,供应商的电脑被入侵后获得了大量的远程密码,造成大量用户系统被非法登录,甚至进入到内网中。很多公司、单位都是有上下级的,同时各个兄弟单位也有数据引接的情况,这些数据接口一般通过专线方式连接,大家往往重视互联网线路的防护,但是这种连接方式一旦防护不足会造成一个单位被渗透,多个单位被攻破的情况。
(三)渗透点进入:
通过渗透点进入目标系统:植入木马、放置后门程序;运行木马、程序;维持程序运行;提高权限。当渗透者探测到了该网站存在漏洞之后,就要对该漏洞进行利用了。
不同的漏洞有不同的利用工具,很多时候,通过一个漏洞可能很难拿到网站的webshell,往往需要结合几个漏洞来拿webshell。常用的漏洞利用工具如下:Sqlmap、Beef-XSS、Burpsuite、Fidder抓包软件、Webshell木马上传等。
获得了webshell后,一般权限很低,所以渗透者需要提权,可以选择反弹一个MSF类型的shell提权:MetasploitFramework(MSF)的使用、Msfvenonm生成一个后门木马,也可以反弹一个CobaltStrike类型的shell:渗透测试神器CobaltStrike的使用,也可以MSF和CobaltStrike联动:MSF和CobaltStrike联动也可以使用其他提权:Windows提权、Linux提权
在拿到网站主机的权限后,很有可能当时渗透者并不能获取到想要的东西,也包括在黑箱测试中,需要进行长期的潜伏,逐步获得内网的信息,需要进行长期的信息收集。这时,权限维持就很重要了。渗透者需要维持住获得的现有权限,如果是通过Web网站渗透的话,最直接的方法是植入后门木马。一般植入Web后门之后隐藏木马文件(将文件设置为隐藏)、内存马、404页面隐藏后门,或者在其他自带文件中插入后门代码。如果是渗透到操作系统之后,为防止影响现有用户的使用,会进行新建用户的操作:Windows系统建立隐藏用户,在用户名后加$、在开机启动目录下放置木马文件、MSF里的persistence模块、远程桌面会话劫持等等;Linux系统建立SSH后门、建立crontab定时任务、获取SSH公钥、创建SUID=0的用户等等。
(四)内网信息收集:
进入内网后收集各类信息:提取登录密码、读取浏览器记录、提取远程桌面SSH软件密码;查看程序配置文件、查找敏感文档(密码本、网络拓扑图、资料流程图、配置备份文件)。
对于windows主机,渗透者从该主机上提取到的账号密码,可以做一个字典,在对内网其他机器进行爆破的时候,很有可能是同密码。对于Linux主机,可以查看开放的端口号,开放的服务,与其建立连接的内网主机。查看目录,查找网站数据库连接密码。很多人习惯把账号密码等容易忘的东西存放在备忘录中,或者是桌面上,查看一下最近打开的文档,打开浏览器,查看历史记录,查看某些网站是否保存有用户密码。利用工具查看浏览器保存的密码。还可以查找数据库的连接文件,查看数据库的连接账号密码等敏感信息。当获得了windows主机的账号密码,或者是创建了新用户后,为了不被网站管理员发现和不破坏服务器,尽量不要使用远程桌面,因为使用远程桌面动静比较大,如果此时服务器管理员也在登录,而你此时通过远程桌面登录的话,会将管理员挤掉,而你也将很快的被管理员踢掉。对于实在是要远程桌面登录的情况的话,尽量不要新建一个用户进行登录。可以激活guest用户,然后将其加入administrators组里面,用guest用户身份登录。在RDP远程登录后,可以查看其他用户桌面上和其他目录有哪些软件。常见的存在安全问题的软件有:FTP相关的软件、数据库相关的软件、网站发布平台等等。
总之,渗透者就是尽可能的多查找一些账号密码,这对于后面横向移动中内网的账号爆破非常有用。
(五)横向移动:
横向渗透其他主机:内网很有可能同时存在10.0.0.0/8、172.16.0.0/16、192.168.0.0/24等多个网段。这就需要用扫描器对其进行探测了,网上工具也有很多,例如RouterScan、御剑高速TCP全端口扫描器、IIS_Scanner等等,这些工具其实也是网络管理员经常使用的。在获得内网网段信息和存活的主机后常见的操作就是利用已知密码登录存活的主机了;另外一些软件、web系统也可以尝试通过弱密码、默认密码登录;如果这些密码无法使用可以进行端口扫描、漏洞利用,对于445端口,就可以尝试利用MS17_010漏洞。对于3389端口,可以尝试利用CVE-2019-0708漏洞。对于1433、3306、6379等端口,可以尝试爆破。
(六)控制主机:
当渗透者在获取了服务器、终端的权限,进入该系统后,渗透者要想尽办法从该服务器、终端上查找到想要的信息,进而控制更多的主机。渗透者会逐步梳理每个服务器、终端的作用,绘制出已知的网络拓扑图、数据流程图。继续利用漏洞、密码登录等方式控制其他主机,重复信息收集步骤。查找维护主机或权限较大的主机,例如可能会突破网安设备的维护终端、几个网段之间传输数据的中转服务器、网络设备配置与管理的终端等等;渗透者往往也会查找个人主机,上面可能保存敏感信息,例如密码表、网络拓扑图、数据库结构说明、网站管理配置方法等等,同时个人主机上面也可能保存有一些设备、网页的登录信息。
(七)探索网络边界:
根据上一步收集到的信息绘制的网络拓扑图渗透者可以寻找到各个网段之间的网络边界,这一步就是尝试登录边界设备通过查看网络连接情况、数据流转情况,猜测网络边界设备类型。如果尝试登录边界设备成功,可以直接查看策略,甚至修改策略,简单直接的突破网络边界;如果没有成功登录设备,则需要查找能够跨界的主机,通过该主机作为跳板,尝试进入其他网络。
突破网络边界之后,进入到其他系统,再次重复上面的步骤。
(八)擦除痕迹:
在完成渗透之后渗透者往往会隐藏渗透痕迹:清除服务器、终端的日志,删除木马、后门程序;删除网络设备建立的策略;删除网站、操作系统等的用户。
当达到了目的之后,清除留下的一部分痕迹,并不能完全清除,完全清除入侵痕迹是不可能的!主要是增加管理员发现渗透者的时间成本和人力成本。只要管理员想查,无论你怎么清除,还是能查到的。最主要还是要以隐藏自身身份为主,最好的手段是在渗透前挂上代理,然后在渗透后痕迹清除。
三、渗透的表现特征
(一)网络连接:
1.web网站
在渗透点扫描期间,网站会收到大量试探性请求,比如一些不存在的资源,尝试登录后台、尝试上传各种文件等等。
在通过渗透点进入后,网站的几个有漏洞的页面会被少数IP频繁访问,流量较大,以此可以确定渗透点。
2.被感染的主机
在被感染之后会通过网络向外发起连接,可以查看主机上的网络连接IP和程序,来确定对端情况。正常情况下web服务器应该只有80端口与外界联系,如果突然多了很多其他端口的通信则需要引起重视。
(二)建立用户、组:
1.web网站
在网站中建立登录的用户,一般为管理员权限,或者有上传文件的权限。
在网站中新建后门页面,方便渗透者连接。
2.被感染的主机
在操控被感染主机时可能会对现在在用的用户造成影响,例如远程桌面中断、命令卡顿等,所以可能会建立多个用户、组,方便远程操控。
(三)植入程序:
一般的后门、木马程序会被杀毒软件识别,如果程序加密或加壳之后能做到免杀,而且木马一般会命名为system.exe、svchost.exe等,与系统服务程序相混淆。
(四)Web页面篡改:
为避免所放置的木马、后门程序被查杀,所利用的漏洞被修复,一般会修改、新增web页面,增加系统的突破口。
(五)常用命令替换:
渗透者为了维持权限,被感染主机的常用命令可能被替换,命令中夹杂着恶意代码,例如windows系统的cmd,linux系统的ls等。
(六)建立计划任务
为防止恶意程序被删除,渗透者可能会建立计划任务,将一些定期的收集任务编写成操作系统的计划任务,并且混淆在系统的任务之中。
(七)信息采集:
被感染的主机会扫描内网、尝试利用系统漏洞等行为。被感染的主机会收集主机中的信息。例如提取密码、查找文档、翻查历史记录、查看数据流等。
四、常见的web渗透工具
(一)系统扫描工具:
系统扫描工具主要是针对网络中系统软件的脆弱性进行信息安全评估,及时发现安全漏洞并给出安全漏洞的安全建议,建议一般的网络管理员经常性的了解并使用。常用的系统扫描工具有:Nessus和Hscan。
1.Nessus
Nessus是目前全球使用最多的针对主机的安全漏洞扫描工具之一,Nessus受到全球27000多个组织的信任,它是主机脆弱性评估的标准工具。
2.Hscan
Hscan是一款使用简单、功能十分强大的偏向于系统的安全扫描工具,它可对主机系统的漏洞及弱口令等进行安全检测和修复,其扫描的范围包括主机名、端口、中间件、数据库及网络设备等。
(二)应用扫描工具:
应用扫描工具主要针对网络中应用软件的脆弱性进行信息安全评估,及时发现安全漏洞并给出安全漏洞的安全建议。常用的应用扫描工具有:AWVS、AppScan、Netsparker、X-Scan、nmap等。
1.AWVS
AWVS,全称“Acunetix Web Vulnerability Scanner”,它是一款知名的应用漏洞扫描工具,它通过网络爬虫检测网站应用的安全性,可检测流行的应用漏洞。
2.AppScan
AppScan是一个应用安全漏洞扫描工具,与AWVS类似,AppScan安全漏洞扫描输出的报告很全面,漏洞的安全建议也比较完善。
3.Netsparker
Netsparker是一个检测能力十分强大的开放的Web应用扫描工具。它可用来发现Web应用中的SQL注入漏洞及跨站脚本漏洞等,大大方便渗透测试人员快速检查网站的安全性。Netsparker完全支持基于Ajax与JavaScript的应用,并且可扫描任意类型的Web应用,无论其构建的技术如何。
4.X-Scan
X-Scan安全扫描工具的汉化版是被倾力打造的一款十分强大的偏向于应用的安全扫描工具。X-Scan安全扫描工具采用多线程方式对指定IP地址范围进行安全检测,X-Scan提供命令行与图形界面两种操作方式。
5.nmap
nmap可以快速地扫描大型网络、以新颖的方式使用原始IP报文来发现网络上有哪些主机,那些主机提供什么服务(应用程序名和版本),哪些服务运行在什么操作系统(包括版本信息),它们使用什么类型的报文过滤器/防火墙,以及一堆其它功能。虽然Nmap通常用于安全审核,许多系统管理员和网络管理员也用它来做一些日常的工作,比如查看整个网络的信息,管理服务升级计划,以及监视主机和服务的运行。
(三)针对性扫描工具:
针对性扫描工具主要针对网站所使用的框架、发布工具存在的漏洞进行扫描。并没有常见的针对性扫描工具,大多是个人开发的一些工具,例如针对Struts2、Apache、Shiro、Log4J等的工具。
五、防范渗透的方法
(一)知己
1.掌握自己的资产
这里的资产是与网络安全相关的广义资产,不仅包括了物理上的资产(例如:服务器、网络设备、安全设备等),还包括了虚拟资产(例如:IP地址池、域名、源码等)、关联资产(例如:第三方合作厂家、上下级单位、上下游供应商等)。资产不明带来的后果就是无法完全掌握整体情况,只能走一步看一步,不能做到战略层面的规划,遭受到攻击后甚至不知道影响哪些资产,必然造成手忙脚乱的情况。
2.明确资产暴露面
梳理、明确资产暴露面,包括发布互联网应用、网站、邮箱、测试系统等等,还包括上传到代码管理平台的代码、上传到云平台的重要数据等等。确保每个暴露面都有人负责、跟踪、更新。重要的系统有应急响应机制、备份系统,能够一键关停。对于正在开发、测试的系统要做到同样级别的安全防护,暴露在互联网的时间尽可能短,在正式上线前进行清洗和重新审计。在真实的案例中有单位将系统的代码和数据库上传至第三方代码管理平台,在正式启用系统时仍使用测试时的密码,渗透者下载源代码和数据库,读取出密码,并使用管理员登录在用系统,发布不实的信息。
3.管理好第三方
有些单位、部门请第三方做软件开发、系统更新、设备运维,但对第三方监管不严,第三方将测试系统发布到互联网上、源代码上传到代码共享平台等等。这些需要在合同、协议上约束第三方,同时日常巡视中要对此进行检查。对于系统在开发、测试过程中建立的测试账号、临时线路在完成测试后及时清理;对于厂家需要远程维护、升级则根据需要开通临时账号、临时线路,全过程要有负责人跟踪,结束后及时关闭账号、断开线路。
4.做好上下级及兄弟单位的互联系统隔离
现在已经是大数据时代,数据共享、系统互联越来越多,很多数据需要与上下级、兄弟单位之间交换,网络环境复杂化带来的安全问题也随之增加。与上下级、兄弟单位之间的网络连接要做到零信任隔离,做到日常巡视管理,签订安全责任协议,明确责任人。当兄弟单位出现问题时及时关闭连接,以免影响到本地系统的安全。
(二)知彼
1.了解常见渗透方法
每一种渗透方法、渗透工具都有自己的流量特征,比如端口扫描、频繁尝试访问一些不存在的网页等等。如何快速的从大量的数据流量、访问日志中分辨出哪些是攻击行为,最好是使用过这些工具,知道常见工具的流量特征。
现在网络安全设备已经可以自动的分析这些流量、日志并分类的将各种攻击行为显示在运维人员的面前,同时可以与防火墙等安全设备联动阻挡攻击。这大大的减轻了运维人员的负担,
2.跟进网络安全动态
国家已经建立了网络安全威胁库,公布已经发现的网络安全问题、系统的安全漏洞,运维人员需要及时跟进这些信息安全动态,查看这些威胁是否涉及自己单位的系统、设备。如果有则需要及时处理。
(三)严防
1.缩小资产暴露面
资产暴露的越多,牵扯运维人员的精力就越多,越容易遭受攻击,越容易顾此失彼,从而系统被攻陷。尽量缩小资产暴露面,遵循非必要不开放的原则。及时关停测试系统、临时系统,删除无用账号,清理僵尸服务器、主机。
2.缩减策略
很多单位的网络之间都部署了各种各样的网络安全检测设备、网络隔离设备,但是运维人员任务双方连接的都是内网,这些设备的安全策略设置的非常宽泛,甚至放通整个网段的所有应用,这就加剧了网络安全事件的影响范围,更容易的跳转到其他网段。最好的做法是互不信任方式部署网络安全设备,仅开通需要的业务,其他业务暂停。
(四)死守
在网络安全运行中人的因素是至关重要的,分为几个部分:管理、安全意识、技术能力。
1.人员管理
网络安全是这几年才慢慢得到大家的重视,在我遇到的真实工作中资产梳理是最让人头疼的事情,一线运行人员的日常维护任务已经很繁琐了,还要再加网络安全的工作,抵触情绪比较严重。这是其实一个网络安全管理问题,没有让所有人员对网络安全重视起来,那么网络安全工作也只是应付检查工作,得不到贯彻落实,当真正发生网络安全事件的时候才手忙脚乱的补漏洞、加设备。管理是自上而下的,领导对网络安全重视,必然会不断的强调网络安全工作的重要性,网络安全工作也就不会只是浮于表面,而是踏踏实实的贯彻下去。资产无人管理,长时间不登录、不查看、不更新,被攻击后找不到负责人,不能快速关闭。
2.安全意识
在日常工作中很多员工的网络安全意识淡薄,没有建立危机情景意识,甚至是设备运维人员都没有这方面的意识。单位员工设置的系统登录密码简单、操作系统老旧、浏览器等软件记住密码等等,这些都会加深网络安全事件的影响。普通员工的这些问题只是会让网络安全事件影响面变大,设备运维人员、系统管理员则会直接导致网络安全事件的发生。在真实的工作中就发现网络安全设备运维人员认为只要业务通畅即可,没有必要给自己找麻烦。这造成了防护策略过于宽松,直接放通整个网段、所有应用。为了方便操作和运维,不用每次输入密码,让维护终端软件保存了各个设备的登录密码,且网络安全设备在业务端口开放了管理功能。
3.技术能力
设备运维人员的技术能力不足,日常监控与防御不到位。在真实的工作中就发现运维人员不会操作设备,简单的操作也要打电话寻求厂家的支持,更有甚者长期不登录设备,不检查设备状态,不关注设备日志。
六、结束语
虽然渗透方根据经验总结开发了集成化的工具、防御方使用针对这些工具的防御设备,这些只是减少了重复低效的工作,网络渗透最终还是人和人的对抗。再先进的防御设备使用不正确相当于摆设,再完善的规章制度无人执行相当于废纸,人的因素在整个网络渗透防御过程中至关重要。
参考文献
[1]石岳,分析计算机网络安全的主要隐惠及其管理措施[J] 信息安全与技术,2016,7(1):99
作者简介:李翯,男,1983年2月出生,汉族,山东泰安人,大学本科,工程师,研究方向为空中交通管制和民航气象。
京公网安备 11011302003690号