网络安全是数字时代的基石,但学习过程中必须严守法律红线 。
根据《中华人民共和国网络安全法》《数据安全法》等法律法规,任何未经授权的网络测试、数据访问或攻击行为均属违法 。本文所有技术讨论与实例均基于合法授权的靶场环境(如Metasploitable、DVWA、Hack The Box等),严禁将文中方法应用于真实系统或非授权场景 。
网络安全学习应以提升防御能力为目标,而非成为攻击工具。
一、tasklist
tasklist 是 Windows 操作系统中一个强大的命令行工具,用于显示本地或远程计算机上当前正在运行的进程列表。它自 Windows XP 起被集成到系统工具集中,并在后续版本中持续沿用和改进。
1、基本功能
该命令可读取系统数据,实时反映进程状态、资源占用及相关扩展信息。其功能包括:
- 显示基础进程信息(如图像名、PID、会话名、会话编号和内存使用)。
- 支持远程系统监控。
- 查看服务关联分析及模块调用追踪。
- 提供多种参数以定制化查询与输出格式。
2、使用语法
css
tasklist [/s <computer> [/u [<domain>\\]<username> [/p <password>]]] [{/m <module> | /svc | /v}] [/fo {table | list | csv}] [/nh] [/fi <filter> [/fi <filter> [...]]]
参数说明:
| 参数 | 描述 |
|---|---|
/s <computer> |
指定远程计算机的名称或 IP 地址,默认为本地计算机。 |
/u [<domain>\\]<username> |
指定运行命令的用户账户权限,仅当指定了 /s 时可用。 |
/p <password> |
指定 /u 参数中用户账户的密码。 |
/m <module> |
列出加载了与给定模式名称匹配的 DLL 模块的所有进程;若未指定模块名,则显示每个进程加载的所有模块。 |
/svc |
显示每个进程中的服务信息,当 /fo 参数设置为 table 时有效。 |
/v |
显示详细任务信息。 |
| `/fo {table | list |
/nh |
取消输出中的列标题,仅对 table 和 csv 格式有效。 |
/fi <filter> |
指定要包含在查询中或从查询中排除的进程类型,可使用多个筛选器。 |
3、筛选器支持
tasklist 支持多种筛选器,允许用户按进程属性过滤数据:
STATUS: 进程状态(如 RUNNING、NOT RESPONDING、UNKNOWN)IMAGENAME: 进程映像名称PID: 进程 IDSESSION: 会话编号SESSIONNAME: 会话名称CPUTIME: CPU 使用时间(HH:MM:SS)MEMUSAGE: 内存使用量(KB)USERNAME: 用户名SERVICES: 服务名称WINDOWTITLE: 窗口标题MODULES: DLL 名称
4、应用示例
-
查看本机所有进程:
cmdtasklist -
查看远程系统进程:
cmdtasklist /s 218.22.123.26 /u admin /p 123456 -
查看特定模块调用的进程:
cmdtasklist /m shell32.dll -
查看进程提供的服务:
cmdtasklist /svc -
按 PID 筛选进程并以 CSV 格式输出:
cmdtasklist /v /fi "PID gt 1000" /fo csv -
查找非 SYSTEM 用户运行的进程:
cmdtasklist /fi "USERNAME ne NT AUTHORITY\\SYSTEM" /fi "STATUS eq running"
5、注意事项
- 使用远程查询时,目标系统需启用 RPC 服务。
- 若指定远程系统,则不支持
STATUS和WINDOWTITLE筛选器。 tasklist命令取代了早期的tlist工具。
二、netstat
netstat 是一个用于显示网络连接、路由表、接口统计信息等网络状态信息的命令行工具。它广泛应用于网络故障排查、连接监控、性能分析和安全审计等场景。以下是对 netstat 命令的详细解析。
1、基本功能
netstat 主要用于监控 TCP/IP 网络连接状态,可以显示以下信息:
- 网络连接:包括已建立的连接(ESTABLISHED)、监听中的连接(LISTENING)等。
- 路由表:显示 IP 路由表信息。
- 网络接口信息:包括接口名称、最大传输单位(MTU)、IP 地址、数据包收发统计等。
- 协议统计信息:如 TCP、UDP、ICMP 等协议的统计数据。
2、常用参数详解
| 参数 | 说明 |
|---|---|
-a |
显示所有活动的 TCP 连接和监听端口 |
-n |
以数字形式显示地址和端口号,避免 DNS 查询 |
-o |
显示与每个连接关联的进程 ID(PID) |
-p |
显示协议名,例如 tcp、udp |
-r |
显示路由表 |
-s |
按协议显示统计信息(如 TCP、UDP、ICMP) |
-e |
显示以太网统计信息 |
-b |
显示创建每个连接或监听端口所涉及的可执行文件 |
-f |
指定地址族(如 IPv4 或 IPv6) |
-i |
显示网络接口信息 |
-t |
显示 TCP 连接状态 |
-u |
显示 UDP 连接状态 |
-c |
持续刷新显示结果(Linux) |
3、常见使用场景
1. 显示所有连接和监听端口
cmd
netstat -a
该命令会列出所有连接和监听端口,包括已建立的连接和正在监听的端口。
2. 显示所有连接并以数字形式显示地址和端口
cmd
netstat -an
此命令常用于快速查看所有连接,避免因 DNS 查询而耗时。
3. 显示连接并关联进程 ID
cmd
netstat -ano
此命令可帮助定位异常连接所对应的进程。
4. 显示协议统计信息
cmd
netstat -s
用于查看 TCP、UDP、ICMP 等协议的统计信息,帮助诊断网络问题。
5. 显示路由表
cmd
netstat -r
显示 IP 路由表信息,常用于网络可达性分析。
6. 显示以太网统计信息
cmd
netstat -e
用于查看网络接口的以太网统计数据。
7. 显示特定协议的连接
cmd
netstat -p tcp
用于查看 TCP 协议的连接状态。
8. 显示可执行文件信息
cmd
netstat -b
显示创建每个连接或监听端口所涉及的可执行文件。
4、连接状态说明
netstat 输出中,连接状态字段通常包含以下状态:
| 状态 | 含义 |
|---|---|
LISTEN |
监听来自远方的 TCP 端口连接请求 |
SYN-SENT |
发送连接请求后等待匹配的连接请求 |
SYN-RECEIVED |
收到并发送连接请求后等待确认 |
ESTABLISHED |
代表一个打开的连接 |
FIN-WAIT-1 |
等待远程 TCP 连接中断请求或确认 |
FIN-WAIT-2 |
从远程 TCP 等待连接中断请求 |
CLOSE-WAIT |
等待从本地用户发来的连接中断请求 |
CLOSING |
等待远程 TCP 对连接中断的确认 |
LAST-ACK |
等待原来的发向远程 TCP 的连接中断请求的确认 |
TIME-WAIT |
等待足够的时间以确保远程 TCP 接收到连接中断请求的确认 |
CLOSED |
没有任何连接状态 |
5、支持 IPv6
netstat 命令支持 IPv4 和 IPv6 的网络状态显示。在 Linux 系统中,可以通过 -f 参数指定协议族,如 -f inet6 显示 IPv6 信息。
6、注意事项
- 在 Windows 系统中,
netstat命令需要 TCP/IP 协议已安装在网卡属性中。 - 使用
-b参数时可能较慢,因为需要追踪每个连接的可执行文件。 - 部分功能(如
-b)可能需要管理员权限。 - 在高并发场景下,频繁使用
netstat可能影响系统性能。
7、示例
查看所有连接并以数字形式显示
cmd
netstat -an
查看 TCP 连接并显示协议统计
cmd
netstat -s
查看特定协议的连接状态
cmd
netstat -p tcp
显示所有连接并关联进程 ID
cmd
netstat -ano