信息收集之命令行的使用

nslookup

nslookup命令用于查询DNS的记录,查看域名解析是否正常,在网络故障的时候用来诊断网络问题。
nslookup baidu.com

只要在查询的时候,加上-d参数,即可查询域名的缓存。
nslookup -qt=type domain [dns-server]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
type可以是以下这些类型:

A 地址记录
AAAA 地址记录
AFSDB Andrew文件系统数据库服务器记录
ATMA ATM地址记录
CNAME 别名记录
HINFO 硬件配置记录,包括CPU、操作系统信息
ISDN 域名对应的ISDN号码
MB 存放指定邮箱的服务器
MG 邮件组记录
MINFO 邮件组和邮箱的信息记录
MR 改名的邮箱记录
MX 邮件服务器记录
NS 名字服务器记录
PTR 反向记录
RP 负责人记录
RT 路由穿透记录
SRV TCP服务器信息记录
TXT 域名对应的文本信息
X25 域名对应的X.25地址记录
例:nslookup -qt=mx baidu.com 8.8.8.8

whoami

Linux下

1
2
3
whoami;显示的是当前用户下的用户名
who am i:显示的是登录时的用户名
who:显示当前真正登录系统中的用户(不会显示那些用su命令切换用户的登录者)

whois

用来查找并显示指定用户账号、域名相关信息,包括域名注册时间、拥有者、邮箱等

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
可选参数
-a 搜寻所有数据库
-c 找到最小的包含一个 mnt-irt 属性的匹配
-d 同时返回 DNS 反向查询的代理对象(需支持RPSL协议)
-F 快速输出原始数据
-H 隐藏法律声明内容
-i ATTR 进行一次反向查询
-l 将精确度降低一级的查询 (需支持RPSL协议)
-L 找到所有低精确度匹配
-m 找到第一级较高精确度匹配
-M 找到所有较高精确度匹配
-r 查询联系信息时关闭递归查询
-R 显示本地域名对象副本
-x 精确匹配
-h[主机] 连接到指定 HOST 服务器
-p[端口] 连接到指定 PORT 端口
-t[类型] 查询指定类型对象头信息
-T[类型] 查找指定类型的对象
-v[类型] 查询指定类型对象冗余信息
-q [版本|类型] 查询特定的服务器信息(需支持RPSL协议)
更多参数可以使用man whois 查询

net

使用它可以轻松的管理本地或者远程计算机的网络环境,以及各种服务程序的运行和配置。或者进行用户管理和登陆管理等。

net use

连接计算机或断开计算机与共享资源的连接,或显示计算机的连接信息

1
2
3
4
5
6
7
NET USE
:[domainname\]username]
[/USER:[dotted domain name\]username]
[/USER:[username@dotted domain name]
[/SMARTCARD]
[/SAVECRED]
[/REQUIREINTEGRITY]

net user

添加或更改用户账号或显示用户账号信息
此命令的语法是:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
 net user /?

NET USER
[username [password | *] [options]] [/DOMAIN]
username {password | *} /ADD [options] [/DOMAIN]
username [/DELETE] [/DOMAIN]
username [/TIMES:{times | ALL}]
username [/ACTIVE: {YES | NO}]

查看指定用户信息:net user Administrator
添加一个用户:net user username password /add /fullname:"全名"
修改指定用户密码:net user username NewPassword
禁用指定用户:net user username /active:no
启用指定用户:net user username /active:yes

net share

创建、删除或显示共享资源

1
2
3
4
5
6
7
8
9
10
11
NET SHARE
sharename
sharename=drive:path [/GRANT:user,[READ | CHANGE | FULL]]
[/USERS:number | /UNLIMITED]
[/REMARK:"text"]
[/CACHE:Manual | Documents| Programs | BranchCache | None]
sharename [/USERS:number | /UNLIMITED]
[/REMARK:"text"]
[/CACHE:Manual | Documents | Programs | BranchCache | None]
{sharename | devicename | drive:path} /DELETE
sharename \\computername /DELETE

netstat

用于列出系统上所有的网络套接字连接情况,包括tcp,udp
参数使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39

NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p proto] [-r] [-s] [-x] [-t] [interval]

-a 显示所有连接和侦听端口。
-b 显示在创建每个连接或侦听端口时涉及的
可执行程序。在某些情况下,已知可执行程序承载
多个独立的组件,这些情况下,
显示创建连接或侦听端口时
涉及的组件序列。在此情况下,可执行程序的
名称位于底部 [] 中,它调用的组件位于顶部,
直至达到 TCP/IP。注意,此选项
可能很耗时,并且在你没有足够
权限时可能失败。
-e 显示以太网统计信息。此选项可以与 -s 选项
结合使用。
-f 显示外部地址的完全限定
域名(FQDN)。
-n 以数字形式显示地址和端口号。
-o 显示拥有的与每个连接关联的进程 ID。
-p proto 显示 proto 指定的协议的连接;proto
可以是下列任何一个: TCP、UDP、TCPv6 或 UDPv6。如果与 -s
选项一起用来显示每个协议的统计信息,proto 可以是下列任何一个:
IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 或 UDPv6。
-q 显示所有连接、侦听端口和绑定的
非侦听 TCP 端口。绑定的非侦听端口
不一定与活动连接相关联。
-r 显示路由表。
-s 显示每个协议的统计信息。默认情况下,
显示 IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6 的统计信息;
-p 选项可用于指定默认的子网。
-t 显示当前连接卸载状态。
-x 显示 NetworkDirect 连接、侦听器和共享
终结点。
-y 显示所有连接的 TCP 连接模板。
无法与其他选项结合使用。
interval 重新显示选定的统计信息,各个显示间暂停的
间隔秒数。按 CTRL+C 停止重新显示
统计信息。如果省略,则 netstat 将打印当前的
配置信息一次。

ping

用来测试网络连通性

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
参数如下:
输入ping /? ,列出ping的相关参数

-c 用来指定ping的回应次数
-t :Ping 指定的计算机直到中断。
-a :将地址解析为计算机名。
-n count :发送 count 指定的 ECHO 数据包数。默认值为 4。
-l size :发送包含由 size 指定的数据量的 ECHO 数据包。默认为 32 字节;最大值是65,527。
-f :在数据包中发送"不要分段"标志。数据包就不会被路由上的网关分段。
-i ttl :将"生存时间"字段设置为 ttl 指定的值。
-v tos :将"服务类型"字段设置为 tos 指定的值。
-r count :在"记录路由"字段中记录传出和返回数据包的路由。count 可以指定最少 1 台,最多 9 台计算机。
-s count :指定 count 指定的跃点数的时间戳。
-j host-list :利用 host-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。
-k host-list :利用 host-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。
-w timeout :指定超时间隔,单位为毫秒。
destination-list :指定要 ping 的远程计算机。

tracert(windows下) || traceroute(unix&linux)

用于探测数据包从源到目的经过路由的IP,分析网络拓扑

1
2
3
4
5
6
7
8
9
10
11
12
用法: tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout]
[-R] [-S srcaddr] [-4] [-6] target_name

选项:
-d 不将地址解析成主机名。
-h maximum_hops 搜索目标的最大跃点数。
-j host-list 与主机列表一起的松散源路由(仅适用于 IPv4)。
-w timeout 等待每个回复的超时时间(以毫秒为单位)。
-R 跟踪往返行程路径(仅适用于 IPv6)。
-S srcaddr 要使用的源地址(仅适用于 IPv6)。
-4 强制使用 IPv4。
-6 强制使用 IPv6。

ipconfig

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
用法:
ipconfig [/allcompartments] [/? | /all |
/renew [adapter] | /release [adapter] |
/renew6 [adapter] | /release6 [adapter] |
/flushdns | /displaydns | /registerdns |
/showclassid adapter |
/setclassid adapter [classid] |
/showclassid6 adapter |
/setclassid6 adapter [classid] ]

其中
adapter 连接名称
(允许使用通配符 * 和 ?,参见示例)

选项:
/? 显示此帮助消息
/all 显示完整配置信息。
/release 释放指定适配器的 IPv4 地址。
/release6 释放指定适配器的 IPv6 地址。
/renew 更新指定适配器的 IPv4 地址。
/renew6 更新指定适配器的 IPv6 地址。
/flushdns 清除 DNS 解析程序缓存。
/registerdns 刷新所有 DHCP 租用并重新注册 DNS 名称
/displaydns 显示 DNS 解析程序缓存的内容。
/showclassid 显示适配器允许的所有 DHCP 类 ID。
/setclassid 修改 DHCP 类 ID。
/showclassid6 显示适配器允许的所有 IPv6 DHCP 类 ID。
/setclassid6 修改 IPv6 DHCP 类 ID。


默认情况下,仅显示绑定到 TCP/IP 的每个适配器的 IP 地址、子网掩码和
默认网关。

对于 Release 和 Renew,如果未指定适配器名称,则会释放或更新所有绑定
到 TCP/IP 的适配器的 IP 地址租用。

对于 Setclassid 和 Setclassid6,如果未指定 ClassId,则会删除 ClassId。

示例:
> ipconfig ... 显示信息
> ipconfig /all ... 显示详细信息
> ipconfig /renew ... 更新所有适配器
> ipconfig /renew EL* ... 更新所有名称以 EL 开头
的连接
> ipconfig /release *Con* ... 释放所有匹配的连接,
例如“有线以太网连接 1”或
“有线以太网连接 2”
> ipconfig /allcompartments ... 显示有关所有隔离舱的
信息
> ipconfig /allcompartments /all ... 显示有关所有隔离舱的
详细信息

在排查DNS故障时,经常使用该命令 ipconfig /flushdns来清除dns缓存

其他命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
tasklist -- 显示运行的所有进程
ver -- 显示系统版本号
ipconfig -- 显示当前 TCP/IP 网络配置
systeminfo -- 显示关于计算机及其操作系统的详细配置信息
netstat -- 显示网络连接、路由表和网络接口信息
qprocess -- 显示 RD 会话主机服务器上正在运行的进程的相关信息
query -- 显示进程、会话和 RD 会话主机服务器的相关信息
type -- 显示文本文件的内容
at -- 计划任务
reg -- 注册表操作
wmic -- 提供了从命令行接口和批命令脚本执行系统管理的支持
wusa -- 安装补丁
netsh advfirewall -- 管理防火墙
sc -- 用来和NT服务控制器和服务进行通讯的命令行程序
rundll32 -- 调用动态链接程序库

net命令详解参考