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

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

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  * * *

//【方式二】 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

//【方式三】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 *

通过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)获取主机服务的侦查状态。

典型命令:
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
[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

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


作者:铭毅天下
转载请标明出处,原文地址:http://blog.csdn.net/laoyang360/article/details/50095987

上一篇:一口一口吃掉Hibernate(三)——Hibernate给表和字段设置前后缀及分隔符


下一篇:Midway Serverless 发布 2.0,一体化让前端研发再次提效