Linux扫描技术笔记
题记:
主机节点的存活的探测方法,我们日常用的最多的是ping,除此之外还有没有其他方法?本文介绍了fping,hping相关操作以探测节点存活。
服务的存活,我们日常用的最多的是telnet,除此之外还有没有其他方法?本文介绍了nmap,ncat对于服务存活的探测。
此外,本文还介绍了批量主机节点扫描,批量服务端口存活扫描,以及路由扫描以及安全防范措施。
0.网络安全技术
1)数据真实、可靠、完整、可控(安全角度)。
举例:获取公用设备的弱口令
获取常用命令:
tracert/traceroute //查询到目的地址的路由跳数。
nmap //批量主机服务的扫描,获取开放的端口(如80,23,22等)
尝试暴力破解,如:http://10.202.4.73 (admin/admin)
nc //进行交互式的shell登录
2)网络入侵方式
踩点–网络扫描–查点–提权 等
一.主机扫描
常用命令:
1)fping
特点:并行发送(批量主机发送)
2)hping
源码包编译步骤:
1)检测配置 ./configure Makefile
2)编译 make 二进制可执行文件
3)安装 make install 安装到指定的路径
以下是fping安装好后的版本:
[root@localhost fping-3.13]# fping -v
fping: Version 3.13
fping: comments to david@schweikert.ch
1.fping参数介绍:
1)man -h 参数 查看帮助
2)
-a 只显示存活的主机列表
-u 只显示没有存活的主机
-g 支持主机段
-f 从文件中读取
example:
[root@localhost fping-3.13]# fping -a -g 114.114.114.1/24
114.114.114.110
114.114.114.114
114.114.114.119
1
2
3
4
fping -a -f ./ip_list.txt
fping -u -f ./ip_list.txt
2.hping主机扫描
1)特定端口发起tcp探测
-p 端口
-s 设置tcp模式的SYN包
写入内核如下的参数可以进制icmp的访问:
sysctl -w net.ipv4.icmp_echo_ignore_all=1
//在即使主机禁止ping的前提下,依然可以使用hping命令探测端口的存活。
[root@localhost hping-master]# hping -p 135 -S 192.168.1.107
HPING 192.168.1.107 (eth0 192.168.1.107): S set, 40 headers + 0 data bytes
len=46 ip=192.168.1.107 ttl=64 DF id=841 sport=135 flags=SA seq=0 win=8192 rtt=2.7 ms
len=46 ip=192.168.1.107 ttl=64 DF id=1121 sport=135 flags=SA seq=1 win=8192 rtt=0.9 ms
len=46 ip=192.168.1.107 ttl=64 DF id=1374 sport=135 flags=SA seq=2 win=8192 rtt=0.8 ms
len=46 ip=192.168.1.107 ttl=64 DF id=1777 sport=135 flags=SA seq=3 win=8192 rtt=0.9 ms
1
2
3
4
5
6
2)伪造来源IP,模拟DDOS攻击
二.路由扫描
作用:查询到一个主机到另一个主机的跳数及延时。
命令:
1)traceroute;
2)mtr(测试主机到路由的连通性)
traceroute原理:默认30000端口以上的UDP数据包。
traceroute 参数:
-T tcp数据包
-P 端口
-I(大写的i) icmp数据包
-n 不将IP地址解析为域名
举例:
【方式一】:默认UDP方式访问。
[root@localhost hping-master]# traceroute www.baidu.com
traceroute to www.baidu.com (61.135.169.125), 30 hops max, 60 byte packets
1 192.168.1.1 (192.168.1.1) 3.377 ms 2.129 ms 3.747 ms
2 112.237.12.1 (112.237.12.1) 3.658 ms 3.287 ms 3.295 ms
3 221.0.68.245 (221.0.68.245) 8.835 ms 8.374 ms 221.0.68.45 (221.0.68.45) 6.011 ms
4 218.56.4.65 (218.56.4.65) 22.628 ms 22.172 ms 21.733 ms
5 219.158.98.229 (219.158.98.229) 28.242 ms 219.158.98.225 (219.158.98.225) 24.119 ms 219.158.96.33 (219.158.96.33) 27.358 ms
6 124.65.194.158 (124.65.194.158) 26.988 ms 27.691 ms 30.738 ms
7 124.65.59.166 (124.65.59.166) 60.235 ms 59.844 ms 59.422 ms
8 61.49.168.78 (61.49.168.78) 24.938 ms 61.49.168.82 (61.49.168.82) 23.435 ms 61.49.168.78 (61.49.168.78) 22.323 ms
9 * * *
10 * * *
11 * * *
12 * * *
13 * * *
14 * * *
15 * * *
16 * * *
17 * * *
18 * * *
19 * * *
20 * * *
21 * * *
22 * * *
23 * * *
24 * * *
25 * * *
26 * * *
27 * * *
28 * * *
29 * * *
30 * * *
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
//【方式二】 ICMP方式访问。
[root@localhost hping-master]# traceroute -I -n www.baidu.com
traceroute to www.baidu.com (61.135.169.125), 30 hops max, 60 byte packets
1 192.168.1.1 1.962 ms 2.268 ms 1.985 ms
2 112.237.12.1 3.588 ms 4.704 ms 4.505 ms
3 221.0.68.21 6.415 ms 6.062 ms 5.797 ms
4 218.56.4.65 22.058 ms 21.805 ms 21.701 ms
5 219.158.96.29 21.344 ms 21.184 ms 21.016 ms
6 124.65.194.158 26.865 ms 26.571 ms 26.289 ms
7 124.65.59.166 19.953 ms 24.586 ms 24.241 ms
8 61.49.168.78 23.946 ms 22.079 ms 21.584 ms
9 * * *
10 61.135.169.125 20.379 ms 22.970 ms 21.124 ms
1
2
3
4
5
6
7
8
9
10
11
12
//【方式三】TCP方式访问。
[root@localhost hping-master]# traceroute -T -p 80 -n www.baidu.com
traceroute to www.baidu.com (61.135.169.125), 30 hops max, 60 byte packets
1 192.168.1.1 10.428 ms 3.382 ms 3.105 ms
2 * * *
3 221.0.68.245 6.938 ms 6.462 ms 221.0.68.21 5.914 ms
4 * * *
5 219.158.96.33 29.864 ms 219.158.96.29 23.532 ms 219.158.96.37 23.160 ms
6 124.65.194.158 32.945 ms 32.642 ms 32.350 ms
7 124.65.59.166 24.625 ms 23.980 ms 25.939 ms
8 * * *
9 * * *
10 61.135.169.125 22.750 ms 22.076 ms *
1
2
3
4
5
6
7
8
9
10
11
12
通过nslooup 反查是可以得到www.baidu.com对应的IP地址61.135.169.125的。
结论:
traceroute以TCP或者ICMP的访问方式,是可以访问到目的网站的IP地址的。默认的UDP包则 不可以。
mtr命令举例:
Mtr是 Linux中有一个非常棒的网络连通性判断工具,它结合了ping, traceroute,nslookup 的相关特性。
[root@localhost hping-master]# mtr www.baidu.com
My traceroute [v0.75]
localhost.localdomain (0.0.0.0) Sat Nov 28 02:01:35 2015
Keys: Help Display mode Restart statistics Order of fields quit
Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
1. 192.168.1.1 0.0% 32 3.8 4.3 2.1 11.1 1.5
2. 112.237.12.1 0.0% 32 3.8 4.5 2.8 11.3 1.6
3. 221.0.68.21 0.0% 32 9.5 7.9 3.5 13.7 2.3
4. 218.56.4.65 0.0% 32 23.8 23.3 21.5 25.5 1.1
5. 219.158.98.221 0.0% 32 25.0 25.8 21.4 70.3 8.3
6. 124.65.194.166 0.0% 31 31.6 29.0 25.1 32.9 2.1
7. 124.65.58.62 0.0% 31 24.6 29.0 19.9 53.3 10.8
8. 123.125.248.46 0.0% 31 23.2 22.7 19.6 29.0 2.0
9. ???
10. ???
11. 61.135.169.121 0.0% 31 22.8 23.1 20.3 25.9 1.5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
三.批量服务扫描
作用:
1)快捷获取主机的存活状态;
2)获取主机服务的侦查状态。
典型命令:
1)nmap
2)ncat(号称瑞士军刀)
1)nmap命令使用介绍:
nmap默认扫描的端口范围(0-1024,以及常用服务端口)
nmap -p 0-30000
1)ICMP协议类型(-P) ping扫描 简单、快速、有效 用于扫描主机存活
2)TCP SYN类型 (-sS) 半开放连接 1.高效,2.不易被检测,3.通用
3)TCP connect类型(-sT) 全开放连接 1.模拟真实用户的请求,2结果可靠
4)UDP扫描(-sU) UDP协议扫描 1比较慢,2有效透过防火墙策略
[root@localhost nmap-7.00]# nmap -sP 192.168.119.0/24
Starting Nmap 7.00 ( https://nmap.org ) at 2015-11-28 02:25 PST
Warning: File ./nmap-payloads exists, but Nmap is using /usr/local/bin/../share/nmap/nmap-payloads for security and consistency reasons. set NMAPDIR=. to give priority to files in your local directory (may affect the other data files too).
Nmap scan report for 192.168.119.1
Host is up (0.00038s latency).
MAC Address: 00:50:56:C0:00:08 (VMware)
Nmap scan report for 192.168.119.2
Host is up (0.00013s latency).
MAC Address: 00:50:56:EC:C8:54 (VMware)
Nmap scan report for 192.168.119.254
Host is up (0.00011s latency).
MAC Address: 00:50:56:E0:02:E6 (VMware)
Nmap scan report for 192.168.119.128
Host is up.
Nmap done: 256 IP addresses (4 hosts up) scanned in 2.01 seconds
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@localhost nmap-7.00]# nmap -sS 192.168.119.1
Starting Nmap 7.00 ( https://nmap.org ) at 2015-11-28 02:27 PST
Warning: File ./nmap-services exists, but Nmap is using /usr/local/bin/../share/nmap/nmap-services for security and consistency reasons. set NMAPDIR=. to give priority to files in your local directory (may affect the other data files too).
Nmap scan report for 192.168.119.1
Host is up (0.00021s latency).
Not shown: 987 closed ports
PORT STATE SERVICE
80/tcp open http
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
902/tcp open iss-realsecure
912/tcp open apex-mesh
1025/tcp open NFS-or-IIS
1026/tcp open LSA-or-nterm
1027/tcp open IIS
1028/tcp open unknown
1038/tcp open mtqp
5678/tcp open rrac
10000/tcp open snet-sensor-mgmt
MAC Address: 00:50:56:C0:00:08 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 1.39 seconds
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2)ncat工具使用(端口扫描,默认TCP)
ncat -w 设置超时时间
-z 输入输出模式
-v 显示执行过程
-u 代表UDP
[root@localhost ~]# ncat -v -w2 202.118.66.66 80
Ncat: Version 7.00 ( https://nmap.org/ncat )
Ncat: Connected to 202.118.66.66:80.
四.如何防范恶意扫描
常见的攻击方法:
1)SYN攻击——
利用TCP协议缺陷,导致系统服务停止响应,网络带宽跑慢或者响应缓慢。
2)DDOS攻击——
分布式拒绝访问服务攻击。
正常的服务同一时间接收到N多类似正常服务的访问。
3)恶意扫描
SYN类型的DDOS攻击预防
方式一:减少发送syn+ack包重发次数
sysctl -w net.ipv4.tcp_synack_retries=3
sysctl -w net.ipv4.tcp_syn_retries=3
方式二:SYN cookies技术(不建立三次握手)
sysctl -w net.ipv4.syncookies=1
方式三:增加backlog队列
sysctl -w net.ipv4.tcp_max_syn_backlog=2048
Linux 下其他预防策略
策略1:如何关闭ICMP协议请求
sysctrl -w net.ipv4.icmp_echo_ignore_all=1
策略2:通过iptables防止扫描
iptables -A FORWARD -p tcp -syn -m limit -limit 1/s -limit-burst 5 -j ACCEPT
iptables -A FORWARD -p tcp -tcp-flags SYN,ACK,FIN,RST RST -m limit -limit 1/s -j ACCEPT
iptables -A FORWARD -p icmp -icmp-type echo-request -m limit -limit 1/s -j ACCEPT
以下链接可以学习:
http://www.cnblogs.com/ym123/category/697304.html