linux-doc-网络工具

dnsenum

DNSenum是一款非常强大的域名信息收集工具。

它能够通过谷歌或者字典文件猜测可能存在的域名,并对一个网段进行反向查询。它不仅可以查询网站的主机地址信息、域名服务器和邮件交换记录,还可以在域名服务器上执行axfr请求,然后通过谷歌脚本得到扩展域名信息,提取子域名并查询,最后计算C类地址并执行whois查询,执行反向查询,把地址段写入文件。

dnsenum 可以收集DNS的信息分为下述几类:

  • 主机IP地址
  • 该域的DNS服务器
  • 该域的MX记录
  • 可通过 dnsenum -h 获取帮助信息
1
2
# 确定某个域名对应的ip地址范围
dnsenum --enum <域名>

nslookup

1
2
# 确定某个域名对应的ip地址范围
nslookup <域名>

whois

whois(读作“Who is”,非缩写)是用来查询域名的IP以及所有者等信息的传输协议。简单说,whois就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商)

1
2
# 获取域名信息
whois <域名>

traceroute

用于查看当前ip到目标ip经过的路有的网络拓补结构

实现原理:

  • 每个网络包都有其存活期TTL(Time To Live), 单位是“下一跳”
  • 当网络包经过一个路由器时, TTL-1
  • 当TTL减为0时, 则该网络包被丢弃, 并回复源IP一个“ICMP Time exceeded”报文, 且该ICMP包携带丢弃网络包的那个“主机”(路由器)的IP地址
  • traceroute送出一个TTL是1的IP datagram(包括源地址,目的地址和包发出的时间标签)到目的地
  • 当路径上的第一个路由器(router)收到这个datagram时,它将TTL减1。此时,TTL变为0了,所以该路由器会将此datagram丢掉,并送回一个「ICMP time exceeded」消息(包括发IP包的源地址,IP包的所有内容及路由器的IP地址)
  • traceroute 收到这个消息后,便知道这个路由器存在于这个路径上,
  • 接着traceroute 再送出另一个TTL是2 的datagram,发现第2 个路由器…
  • traceroute 每次将送出的datagram的TTL 加1来发现另一个路由器,这个重复的动作一直持续到某个datagram 抵达目的地
  • Traceroute在送出UDP datagrams到目的地时,它所选择送达的port number 是一个一般应用程序都不会用的号码(30000 以上),所以当此UDP datagram 到达目的地后该主机会送回一个「ICMP port unreachable」的消息,而当traceroute 收到这个消息时,便知道目的地已经到达了。
1
traceroute <ip>

tcptraceroute

traceroute 相似,tcptraceroute 发送的是 TCP 第一次握手包;如果对方防火墙的策略,可能防止ICMP报文进入,但是允许TCP 握手包通过时可以使用。

1
tcptraceroute <ip/域名>

telnet

网络服务旗标抓取, 利用客户端工具连接远程服务,并观察输出(或通过嗅探)以收集关键信息的技术手段。一般限于明文传输的网络服务。

跟某个服务器对应的端口号进行三次握手,握手完成后可以发送一些数据给服务器。

1
telnet <ip|域名> <端口号>

ping

检查主机是否在线的工具,如果对方能够返回,说明是在线存活,如果不返回,也不能说明对方没有在线存活,使用其他工具进行检测

1
2
3
4
ping <ip|域名>
-c 发送报文的数量,不填会一直发送
-I <网卡名> 从哪块网卡发送数据出去
-s <包大小> ping发送的每个数据报文的长度 (如果数据太长,会有攻击嫌疑 ping attack)

arping

使用arp协议对目标机器进行在线存活检测,目标机器跟当前主机必须在同一个内网,arp协议只在同一个网段使用。arping 对方存活情况下必须响应,不能关闭 TCP/IP协议栈决定的

fping

同时对多台主机进行检测

1
2
3
4
5
fping <ip1> <ip2> ....

# 对一个网段的所有机器进行ping
# fping -g ip/子网掩码
fping -g 192.168.37.0/24

nmap

Nmap是一个免费开放的网络扫描和嗅探工具包,也叫网络映射器(Network Mapper)。 探测速度快,但是目标主机可能会发现我们探测操作系统的行为。该工具其基本功能有三个:

  • 一是探测一组主机是否在线;
  • 其次是扫描主机端口,嗅探所提供的网络服务;
  • 三是可以推断主机所用的操作系统。

通常,用户利用Nmap来进行网络系统安全的评估,而黑客则用于扫描网络。例如,通过向远程主机发送探测数据包,获取主机的响应,并根据主机的端口开放情况得到网络的安全状态。从中寻找存在漏洞的目标主机,从而实施下一步的攻击。

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
-sP 使用ping的方式确定目标机器在线存活
可以指定某个特定ip,也可以指定一个网段 192.168.37.0/24
不填任何参数,对目标机器的常用1000个端口进行扫描

-p 端口号|端口1-端口2区间

-sV 服务器的指纹识别,识别某个服务具体的服务器软件版本号等信息

-O 识别目标机器的操作系统类型

-sT : tcp connect扫描方式
正常的TCP端口探测 ,使用网络编程 connect api 完成三次握手
判断对方该端口是TCP服务的端口
完成三次握手,服务器是有感觉的, accept 有返回的

-sS : syn扫描
也是探测TCP服务,但是跟-sT,有区别,只发送第一次握手包,观察进行第二次握手,而不会完成第三次握手
root权限(原始套接字)

-sU : udp扫描方式
原理:发送一些UDP报文到目的端口
1 对方不回应,应该启动了UDP
2 对方回应一些ICMP报文,端口不可达,UDP服务没启动
3 RST,TCP报文


# 扫描特定端口22
nmap -p 22 192.168.1.1

# 扫描从1到32之间的端口
nmap -p 1-32 192.168.1.1

# 获取目标操作系统信息
nmap -O 192.168.1.1

p0f

p0f 采用被动式探测目标主机的操作系统类型,不易被目标主机发现我们的探测行为,但是比主动式识别方法的识别速度慢

1
p0f -i <网卡名> -f <指纹文件,通常使用/etc/p0f/p0f.fp>