这是一份网络靶场入门攻略
近年来,国内外安全形势日益严峻,网络安全问题日益凸显。前有燃油运输管道被堵,后有全球最大肉食品供应商被黑客入侵,这标志着越来越多的国家级关键基础设施提供方,特种行业,以及大型公共服务业被黑客当作攻击目标,加大对信息安全保障的投入迫在眉睫。除了软硬件技术设备的投入之外,专业的安全人才重金难求已是公认的事实,据统计,20年我国信息安全人才缺口高达140万,利用网络靶场可以体系,规范,流程化的训练网安人才的特点打造属于企业自己的安全维护队伍是大势所趋。
网络与信息安全是一个以实践为基础的专业,因此,建设网络安全实训靶场,不仅仅让靶场成为一个知识的学习中心,更是一个技能实践中心,一个技术研究中心。网络攻防实训靶场平台的建设,不仅要关注培训教学业务的支撑建设,更要关注网络与信息安全技能综合训练场的建设。以支撑受训人员课上课下的学习、攻防技能演练、业务能力评估、协同工作训练和技术研究与验证,以保证能贴近不同培训业务的需要,并支持多维度量化每个参与者的各种能力,有计划地提升团队各个方面的技术能力。因此,建设一套实战性强、知识覆盖全面、综合型的集培训、网络攻防演练及竞赛、测试于一体的网络靶场是非常有必要的
免费领取学习中资料
2021年全套网络安全资料包及最新面试题
(渗透工具,环境搭建、HTML,PHP,MySQL基础学习,信息收集,SQL注入,XSS,CSRF,暴力破解等等)
网络靶场(Cyber Range)是一个供5方角色协同使用的网络系统仿真平台。用于支撑网络安全人才培养、网络攻防训练、安全产品评测和网络新技术验证。
网络安全人员要就攻防技术进行训练、演练;一项新的网络技术要试验,不能在互联网上进行(造成不可逆的破坏),于是需要建立网络靶场,把网络的要素虚拟到网络靶场。
在网络靶场中进行网络安全活动,不仅可以避免对现实资源的占用和消耗,还可以做到对资源的反复利用。每一次安全试验造成的伤害程度都是可控的、可检测的,试验结束后还能够对收集的试验数据进行分析和研究。网络靶场在不影响真实环境的情况下可以提高网络安全从业人员的技术,也可以发现安全产品的漏洞从而提升安全产品的性能与安全性。
网络靶场共有五种角色:黄、白、红、蓝、绿。
黄方是“导调”角色,整个网络试验的“导演”,负责:
1、设计试验
2、控制试验:开始、停止、恢复、停止
3、查看试验:查看试验的进度、状态、详细过程
白方是网络靶场平台“管理”角色,靶场试验“剧务”,负责试验开始前的准备工作和试验进行时的“日常事务”处理:
1、试前构建目标网络、模拟网络环境等;
2、试中负责系统运维等;
3、试后回收和释放资源等。
红方是“攻击”角色,靶场试验的“反派演员”,与蓝方相对,攻防演练中向蓝方发起攻击。
蓝方是“防御”角色,靶场试验的“正派演员”,与红方相对,攻防演练中抵御红方攻击。
绿方是“检测”角色,靶场试验的“监视器”,监控红蓝两方在演练中的一举一动,具体负责:
1、监测当前红蓝方的具体行为
2、当红蓝方攻击防守成功,研判还原成功的过程、攻击手法、防御方法
3、监测红方违规操作
4、试验或试验片断进行定量和定性的评估
5、分析试验的攻防机理(比如针对新型蠕虫分析其运行、传播机理)
试验开始前,“导演”黄方想定攻防试验的具体内容和任务目标,确定参与试验的人员安排,设计试验的具体网络环境、应用环境和具体的攻击步骤。
修房首先从房屋结构入手,搭建网络靶场时最基础的事情是明确网络结构、搭建网络拓扑。白方根据黄方在任务想定环节设计的网络拓扑图生成路由器、交换机、计算机等设备,并将设备依照拓扑图配置和连接,生成试验所需的网络环境结构。
除了网络结构,目标网络还要为用户访问浏览器、收发邮件等操作提供应用环境,就像房屋在入住前要装修出卧室、厨房,给住户就寝、做饭提供空间一样。有了相应的应用环境,才有空间进行相关的活动。
白方在生成目标网络后,还要根据黄方的设计将靶标系统接入目标网络。靶标,即攻击的目标。靶标系统可以是实际的设备,也可以是虚拟化技术生成的靶标系统,针对不同的任务类型,靶标的设定会有所差异。
“活”的网络,除了网络结构完整,还要有活动发生。真实的网络环境时时刻刻都不是静止的,每一分每一秒都有人聊天、打游戏、刷短视频……白方在目标网络生成后,通过模拟这些活动流量和行为,并将其投放到网络靶场中,让靶场“活”起来,更加接近实际的网络环境,而不是一片实验室虚拟出的净土。
模拟的流量分为近景和远景两种。近景流量指用户操作行为,包含攻击方的攻击流量、防守方的防守流量以及用户打开浏览器、收发邮件等访问应用系统的行为流量,远景流量即与试验本身不相关的背景流量。
流量仿真和目标网络生成共同构成网络靶场的完整虚拟环境,让后续的演习更加真实,也部分增加了演习的难度。
准备工作完成后,红方和蓝方根据黄方的试验设计,在白方搭建的环境中展开攻防演练。红方发起攻击,蓝方抵御攻击。
试验进行时,绿方全程监控红蓝两方在演练中的一举一动,根据需求全面采集数据,掌握诸如攻击发起方、攻击类型、攻击步骤、是否存在违规行为等信息,并通过可视化界面实时展示检测结果。
试验结束后,绿方基于前期采集的数据,进一步进行评分和分析工作。
小到某次攻防行为、大到某次攻防演习,绿方在给出量化评分的同时,还要给出具体评价,给出优点亮点和尚存在的缺点不足。
结合试验表现和试验目的进行分析,并出具相关的分析结果。若试验目的是研究某种新型攻击,则分析其机理;若试验目的是检验某个安防产品,则分析其安全缺陷。
绿方的一系列工作,有助于我们了解靶场中发生的所有安全事件,正确分析网络靶场的态势,作出更准确的评估。
网络靶场有三种类型的应用模式:内打内、内打外、外打内。此外还有分布式网络靶场模式。
红、蓝双方都在靶场内。内打内应用模式主要有CTF线下安全竞赛、红蓝攻防对抗赛和科学试验等。
CTF(Capture The Flag)即夺旗赛,其目标是从目标网络环境中获取特定的字符串或其他内容(Flag)并且提交(Capture The Flag)。
科学试验是指科研人员针对新型网络技术进行的测试性试验,根据试验结果对新技术进行反馈迭代。
内打外即红方在靶场内,蓝方在靶场外。
外打内即红方在靶场外,蓝方在靶场内,典型应用是安全产品评测。
为什么会有这个需求呢?通常,我们要知道一个安全设备好不好用、一个安全方案是不是有效,有几种方法:第一,请专业的渗透测试,出具渗透测试报告,但这种只能测一次的活动,叫静态测试。可是大家清楚,即使今天测过了,明天产品、方案也可能会出现新的问题和漏洞。那么,“靶场众测”的场景就出来了。把实物或者虚拟化的产品/方案放到靶场,作为靶标让白帽子尽情“攻击”。如果把它攻垮了,我们就知道哪里有问题了,这种开放测试,由于众多白帽子的参与、以及不影响生产环境不会造成后果、能放开手脚“攻击”,效果比聘请几个专家去现场测试要好的多。如果产品一直放在靶场,就可以在长期的众测中不断发现问题,促进产品持续迭代提升。
分布式靶场即通过互联多个网络靶场,实现网络靶场间的功能复用、资源共享。由于单个网络靶场的处理能力和资源都是有限的,分布式靶场可以将多个网络靶场的资源综合利用起来,并且这种利用对于使用人员是透明的。
比如,现有一个银行网络靶场A和一个电力网络靶场B,当前有一个试验任务既需要银行网络环境,又需要电力网络环境。那么我们可以将现有的A、B两个网络靶场互联起来展开试验。
分布式靶场能够连接各行各业的网络靶场,更大程度上实现全方位综合互联网络逼真模拟。
网络靶场存在三个主要科学问题,这三个问题反映了网络靶场在关键技术上面临的挑战。
1)建得快
网络靶场用户众多,还会出现多个用户同时使用的情况,但是大部分用户的使用时间不长,这就需要网络靶场目标网络包括网络环境要能够快速生成、快速擦除回收,特别是节点数量较大的应用,是一项技术上重大的挑战。没有过硬的网络构建能力,基础设施以及虚拟化编排技术是很难实现的。
2)仿得真
由于网络靶场是用有限的资源仿造真实网络,大部分要素需要虚拟化,而非实物。因此如何逼真的仿真目标网络元素是一项持续的挑战问题。网络靶场中,一台实物路由器的功能是否都在其虚拟设备上具备?如果功能缺失,是否会对靶场应用造成影响?靶标、网络环境、虚拟设备、背景流量的逼真仿真同理,网络环境仿真还需要服务于靶场具体应用场景,这些都依赖于长期的积累。
网络靶场绿方主要有以下挑战:
1、如何针对网络靶场运行中产生的大量数据进行针对性的采集?
2、只要是采集就要有接触(比如医学检验,可能要抽血,可能要有仪器深入身体),有接触就有影响(影响目标网络的计算资源、网络资源……),如何使影响尽量小,如何平衡这种影响和采集全面、准确性?
3、如何基于采集到的多样、海量的数据,分析、提炼、评估出靶场绿方需要得出的信息?
这是对探针采集能力、大数据关联能力、事件分析还原能力、安全知识图谱能力的综合考验。
1、网络靶场多个试验同时进行,必须保证试验间互相独立,互不干扰。就像多个房间在射击打靶,不能从这个房间打到另一个房间去了。
2、目标网络和分析网络必须严格安全隔离,即红方和绿方、白方、黄方要安全隔离,不能红方把绿方打瘫了,也就是参加比赛的人把裁判系统攻陷了,同时试验间的角色、系统间也需要安全隔离。
3、同时,安全隔离的同时不能影响网络靶场运行的性能。
phstudy搭建靶场练习什么比较好
练习sql注入。phstudy靶场搭建为了更好地学习web网络安全知识,可以通过搭建靶场进行练习sql注入、xss等常见漏洞。搭建phstudy靶场练习要具备数据库和运行环境。而这些可以很有效的锻炼sql的注入,检查数据库的练习。
渗透测试七个步骤
渗透测试七个步骤如下:
步骤一:明确目标
1、确定范围:规划测试目标的范围,以至于不会出现越界的情况。
2、确定规则:明确说明渗透测试的程度、时间等。
3、确定需求:渗透测试的方向是web应用的漏洞?业务逻辑漏洞?人员权限管理漏洞?还是其他,以免出现越界测试。
步骤二:信息收集
1、基础信息:IP、网段、域名、端口
2、系统信息:操作系统版本
3、应用信息:各端口的应用,例如web应用、邮件应用等等
4、版本信息:所有探测到的东西的版本
5、人员信息:域名注册人员信息,web应用中网站发帖人的id、管理员姓名等
6、防护信息:试着看能否探测到防护的设备,像有没有CDN、waf等
步骤三:漏洞探索
利用上一步中列出的各种系统、应用等等,使用响应的漏洞
方法:
1、漏扫、awvs、IBM appscan等
2、结合漏洞去exploit-db等位置找利用
3、在网上寻找验证poc
步骤四:漏洞验证
将上述中发现有可能可以成功利用的全部漏洞都验证一遍,结合实际情况搭建模拟环境进行实验,成功后再引用于目标。
自动化验证:结合自动化扫描工具提供的结果
手工验证:根据公开的资源进行手工验证
试验验证:自己搭建模拟环境进行验证
登录猜解:可以尝试一下登录口的账号密码的发现
业务逻辑漏洞:如发现业务逻辑漏洞,进行验证
步骤五:信息分析
为下一步实施渗透做准备
1、精准打击:准备好上一步探测到的漏洞的exp,用来精准打击
2、绕过防御机制:是否有防火墙等设备,如何绕过
3、定制攻击路径:最佳工具路径,根据薄弱入口,高内网权限位置,最终目标
4、绕过检测机制:是否有检测机制,流量监控,杀毒软件 ,恶意代码检测等(免杀)
5、攻击代码:经过试验得来的代码,包括不限于XSS代码,SQL注入语句等
步骤六:获取所需
1、实施攻击,根据前几步的结果,进行攻击
2、获取内部信息:基础设施(网络连接,vpn,路由,拓扑等)
3、进一步渗透:内网入侵,敏感目标
4、持续性存在:一般我们对客户做渗透不需要,但真实的环境中,我们会做rookit、后门,添加管理账号。驻扎手法。
5、清理痕迹:清理相关日志(访问,操作),上传文件等
步骤七:信息整理、形成报告
1、整理渗透工具:整理渗透过程中用到的代码,poc、exp等
2、整理收集信息:整理渗透过程中收集到的一切信息
3、整理漏洞信息:整理渗透过程中遇到的各种漏洞,各种脆弱的位置信息(为了形成报告,形成测试结果使用)
4、按需整理:按照之前第一步跟客户确定好的范围和需求来整理资料,并将资料形成报告
5、补充介绍:要对漏洞成因、验证过程和带来的危害进行分析
6、修补建议:当然要对所有产生的问题提出合理高效安全的解决办法
内网渗透--对不出网目标的打法
配置网络
在VM虚拟机中按照下边的网络拓扑进行配置网络。网络拓扑图如下:
win7具有双网卡,其中外网ip是192.168.8.133,内网网段是52。三台机器彼此互通,但是win server 2008和win2003不通外网。用我mac作为攻击机,来对这个靶场环境进行渗透测试。
外网打点
在win7这台靶机上,使用PHPStudy让网站可以运行起来。在攻击机上,访问 可以看到是一个phpStudy 探针。对这网站进行渗透,因为本文主要写在内网渗透过程中对不出网主机的渗透,所以此处外网打点就不写的很详细了。
针对此靶场进行外网渗透拿权限大致有这几种方法:
通过phpmyadmin弱口令,进入phpmyadmin后台。然后知识点就变成了,通过phpmyadmin进行getshell,这个点又分为,得到网站绝对路径后,使用select into outfile的方式写shell和利用日志写shell。在此处,我是使用日志写shell的方法拿到权限。因为secure_file_priv配置为null,禁止修改目录下的文件,也就不能使用into outfile的方式写入shell。
通过目录扫描可以扫出beifen.rar,备份文件。在源码中可以找到登陆后台的账号密码:admin/123456和登陆路径/index.php?r=admin,在前台模板文件中添加一句话木马连接也可获取shell。
获得webshell的信息收集
通过外网打点获得的webshell,可以进行一波信息收集,摸清我是谁?我在哪?有没有内网环境?有没有杀软?通过拿到webshell后的信息收集的结果来评估一下有没有必要继续深入或者初步了解继续深入的话需要哪些手段。
我是谁?
蚁剑已经给出基础信息
我在哪?
使用ipconfig /all 看一下网络信息
目标有两个网卡,并且存在域环境,那么就有打它内网的必要了。
有没有杀软?
tasklist查看一下进程信息
根据进程查一下是否有杀软
目标没有使用杀软,还有域环境那么让它直接cs上线。
内网渗透
cs上线
内网信息收集
信息收集每个人都有自己的习惯,信息收集的顺序和信息收集的项目也都不太一样,只要根据自己的习惯和嗅觉,针对目标具体情况进行收集,以求尽快的拿下目标就好。信息收集的越全面突破口也就会越多,考虑到篇幅和文章内容匹配度等因素,此处并没有写出大量信息收集方法。
使用cs自带的net view查看域信息。
使用cs自带功能进行端口扫描,分别对8和52两个网段进行扫描进行完这两个步骤以后,cs会把扫到的目标列出来。
因为拿到的是管理员权限,可以先抓一波密码。用 cs 的 hashdump 读内存密码,用 mimikatz 读注册表密码:logonpasswords。
此处打码的地方是因为配置靶机登陆时靶机提示重置密码,我给靶机改了个包含个人信息的密码。蠢哭。拿到密码后,目标主机没有开启防火墙,可以使用cs自带的psexec做一波横向,因为抓到很多域中机器密码,域控密码也抓到了。
内网横向(通过登录凭证)
这个靶机设置的比较简单,抓到密码后,因为抓到了域控登陆的凭证,那么使用psexec即可横向内网所有机器。因为,另外两台内网的机器不出网,那么就到了本文着重练习的点了,打不出网的机器。
不出网机器上线一般有以下几种方式:
使用smb beacon
配置listener通过HTTP代理上线
使用pystinger搭建socks4代理
这几种方式之前有师傅也在先知写过 《不出网主机上线方法》 。此处我采用的SMB beacon这个方法。
SMB Beacon使用命名管道通过父级Beacon进行通讯,当两个Beacons链接后,子Beacon从父Beacon获取到任务并发送。因为链接的Beacons使用Windows命名管道进行通信,此流量封装在SMB协议中,所以SMB beacon相对隐蔽。SMB beacon不能直接生成可用载荷, 只能使用 PsExec 或 Stageless Payload 上线。
首先得到内网中一台主机的beacon,抓取密码后进行smb喷射,得到另一台开放445端口的机器上的administrator账户密码,在目标机器不出网的情况下,可以使用Smb beacon使目标主机上线
使用条件
具有 SMB Beacon 的主机必须接受 445 端口上的连接。
只能链接由同一个 Cobalt Strike 实例管理的 Beacon。
利用这种beacon横移必须有目标主机的管理员权限或者说是拥有具有管理员权限的凭据。
使用方法:
1.建立smb的listener
2.在cs中使用psexec进行横向移动,选择现有的beacon作为跳板,这里凭据必须是administrator ,即拥有目标主机管理员权限
3.连接成功,可以看到smb beacon上线的主机右侧有∞∞标识
使用这种方法上线的机器,主要是通过出网机作为一个中间人,不出网主机成功上线后,如果出网机一断开,这个不出网主机也会断。
内网横向(通过ms-17010)
在拿下win7的时候,可以给它传一个fscan,给win7做一个内网大保健。上传fscan后,运行扫一下内网。
发现存在ms17010。
ms17010常见的几种打法:
msf
ladon/ladon_ms17010
从msf分离出的exe
nessus里的exe
cs插件
这几种打法,我在这个环境中都做过尝试。过程就不一一叙述了,直接说我测试的结果。msf是最稳定的,但是打起来有稍许的麻烦因为要设置监听模块和选择攻击模块等配置。ladon_ms17010方便但是不太稳有时候会打不成功。cs插件也不稳,并且在这种不出网网络不稳定的情况下成功率会变的更低。
这个图片的ip可能跟上边配置符不起来,因为我在测试过程中,网断过几次,ip就变了。所以,在打的时候,如果ladon和分离出的exe没有打成,不要轻易放弃,用msf在打打试试,毕竟工具就是工具,不能过分依赖某个工具。
在这种不出网的情况下,可以优先考虑使用从msf分离出的exe和ladon_ms17010来打,打成功会直接通过自定义的dll新建一个用户并加入管理员组,开启3389端口。根据实际情况,可考虑在合适的时间段和条件下直接远程登入,翻一下敏感数据,往往会因为运维人员的很多“好习惯”而给渗透带来很多便利,比如说“密码本.txt”。
msf打不出网机器的ms17010
msf在单兵作战的时候还是很稳定很香的。首先,让出网机器先在msf上线,可以用cs直接传递会话,或者生成个msf马直接运行一下。在这的方法就很多了。win7在msf上线后,因为我们已经提前知道了,存在52这个不出网的段,那么就需要在msf中添加路由。
查看路由
run get_local_subnets
添加路由
run autoroute -s 192.168.52.0/24
查看添加的路由
run autoroute -p
把shell切换到后台,然后使用ms17010模块进行漏洞利用,监听时使用正向监听,即可
小贴士:
漏洞检测方法:
use auxiliary/scanner/smb/smb_ms17_010
之后设置一下目标ip和线程即可,这里因为已经扫出存在漏洞的机器了,也就不在叙述。
漏洞利用常使用的是:
auxiliary/admin/smb/ms17_010_command
exploit/windows/smb/ms17_010_eternalblue
exploit/windows/smb/ms17_010_psexec
这里的第一个和第三个模块需要目标开启命名管道,并且比较稳定。第二个模块只要存在漏洞即可,但是会有概率把目标打蓝屏,而且杀软拦截也会比较严格,如果有杀软就基本可以放弃这个模块了。
在打ms17010的时候,不妨使用auxiliary/admin/smb/ms17_010_command模块探测一下是否可以使用命名管道。
use auxiliary/admin/smb/ms17_010_commandsetrhosts192.168.164.156192.168.164.161setcommandtasklistshow optionsrun
如果命令执行成功的话就可以优先考虑
auxiliary/admin/smb/ms17_010_commandexploit/windows/smb/ms17_010_psexec
这两个模块进行利用。
我在上边打得时候因为目标机器没有杀软就直接使用exploit/windows/smb/ms17_010_eternalblue来打了,期间为了测试打过多次,确实出现了把目标机器打重启的情况。
总结
这个靶场设计的技能点比较基础,外网打点获得shell后,直接可以通过cs上线,在管理员权限下,抓取密码,新建一个smb beacon然后使用psexec对内网两台不出网的机器进行横向。
0条大神的评论