kali linux网络扫描~目标识别及常见服务扫描策略

理论知识

  1. 标志信息是指一些主机或服务响应的欢迎信息或版本信息
  2. SNMP(简单网络管理协议)是由一组网络管理的标准组成,包含一个应用层协议和一组资源对象
  3. SNMP能够支持网络管理系统,用以检测连接到网络上的设备是否有任何引起管理上关注的情况
  4. SNMP是一种简单管理协议,它使用UDP协议通过以太网来执行网络管理
  5. SNMP协议主要由两大部分组成,分别是SNMP管理站和SNMP代理,其中,SNMP管理站是一个中心节点,负责收集维护各个SNMP元素的信息,并对这些信息进行处理,最后反馈给网络管理员,而SNMP代理是运行在各个被管理的网络节点之上,负责统计该节点的各项信息,并且负责与SNMP管理站交互,接受并执行管理站的命令,上传各种本地的网络信息
  6. SNMP管理站和SNMP代理之间是松散耦合的关系
  7. SNMP服务采用UDP协议在管理端和代理端之间传输信息
  8. 服务器信息块是一种IBM协议,用于在计算机间共享文件、打印机和串口等
  9. SMB协议可以用在TVP/IP上,也可以用在其他网络协议上
  10. SMB是一种客户机/服务器、请求/响应协议

 

实际操作

Netcat标志信息

Netcat是一个多功能网络化工具,使用该工具可以实现各种信息收集和扫描

使用方式如下nc -v 主机名/ip 端口

7ab9c2be6bb642a4822a0bdaff3ee631.png

 

Python标志信息

在使用python解释器交互式,可以直接调用python模块,也可以导入任何希望使用的特定模块

(这里暂且看不懂python代码,想学这个的可以自行探索)

 

Dmitry工具

Dmitry是一个一体化的信息收集工具,使用该工具对目标主机实时扫描,也可以获取到一些标志信息

语法格式如下:dmitry -pd 目标

dd748e49649d426aa7b213000934b8a9.png

 

(查询时间较久,没有等待获取完)

Nmap NSE标志信息

在nmap工具中有一个集成的nmap scripting engine脚本,该脚本可以通过远程端口来读取正在运行的网络服务标志信息

语法:Nmap -sT 目标 -P 端口 --script=banner

501221bc6dcd437a9e8edcaa813aaac0.png

(-p后面可以指定单个、多个端口号,也可以指定所有端口号和范围端口号,多个不连续端口号用逗号隔开,范围端口号用连接符连接,所有端口号用杠-代替)

Amap标志信息

Amap是一个应用程序映射工具,可以用来通过远程端口来读取正在运行的网络服务标志

(kali系统中默认没有安装,需要自行安装:agt install amap)

语法如下:amap -B 目标 端口

 8b521102e848411c906bc3da478fe2e3.png

 (这里没有出现想要的结果,不过命令没错)

系统识别

我们不仅可以通过相应工具识别目标主机上的服务指纹信息,换可以进行系统指纹信息识别

Nmap系统识别

Nmap工具中提供了-O选线,可以用来识别操作系统,语法格式如下:nmap -O 目标

06b3c45c393d423c8527bb3bb2d2dc65.png

 

输出信息解析:

MAC Address: 00:0C:29:3C:0F:8C (VMware)(mac地址)

Device type: general purpose(设备类型)

Running: Linux 2.6.X(运行系统)

OS CPE: cpe:/o:linux:linux_kernel:2.6(操作系统中央处理单元)

OS details: Linux 2.6.9 - 2.6.33(操作系统详细信息)

Network Distance: 1 hop(网络距离,即从源到目标经过的网络节点)

 

指定识别的操作系统

Nmap工具

当扫描多个主机时,可以使用--osscan-limit选项来指定识别特定主机的操作系统类型,语法如下:nmap -p0 目标段 -O --osscan-limit

f37fb082de6c48d481989235bbb4bd9a.png

 

推测操作系统

Nmap工具

当nmap无法确定所探测的操作系统时,会尽可能地提供最相近的匹配

使用格式如下:nmap -O --osscan-guess 目标或使用参数--fuzzy

bada36d6f46a4cd5be0440d915d1fda5.png

 

(两个选项得到的结果只能说是基本相同,在试一遍可能给的结果会又不一样,暂且没试)

Ping系统识别

Ping的过程中,在响应包中将包括对应的TTL值,TTL是生成时间的缩写,不同操作对应响应的TTL值不同(TTL值对应表在附加中写出)

225844ae9f2d400fbc5502ffb819e8ec.png

 图中的ttl=64,则为linux操作系统

8854bc8f71a645299e4af2f07440f6cc.png

 

Ttl=128,则为Windows系统

 

Xprobe2系统识别

Xprobe2是一款远程主机操作系统探测工具,该工具通过ICMP协议来采取指纹,xprobe2通过模糊矩阵统计分析主动探测数据报文对应的ICMP数据报特征,进而探测得到远端操作系统的类型(kali系统中默认没有安装,命令:apt install xprobe2)

语法:xprobe2 目标

7f8259cb641c40daac53d57c29307926.png

 

(xprobe2工具在NAT模式下就会出现上图的Bug或者kali新版本中出现这种情况:[+] Host 192.168.249.129 Running OS: �[�xYU (Guess probability: 100%))

某些输出信息解析:

[+] Target is 192.168.249.129(目标地址)

[+] Loading modules.(正在加载的模块)

[+] Following modules are loaded:(被加载的模块)

[+] Initializing scan engine(初始化扫描引擎)

[+] Running scan engine(正在实施扫描)

[+] Primary guess:主要猜测的系统(这句话的下面那一句)

[+] Other guesses:(其他猜测)

P0f系统识别

P0f是一款用于识别远程操作系统的工具,该工具与前面介绍的其他工具不同,它是一个完全被动地识别操作系统指纹信息的工具,不会直接作用于目标系统,当启动工具后,即可监听网络中的所有数据包,通过数据包识别出系统相关的信息(kali默认没有安装:apt install p0f)

  1. 首先启动p0f

cb611283d8254ce0bdd97032dfff36da.png

 

以上几行信息表示的是无法捕捉到其他信息,但是p0f会一直处于监听监听状态

  1. 只有其他主机在网络中产生流量才会被p0f监听到

利用SNMP服务

暴力破解SNMP服务

如果要访问SNMP服务,则需要知道密码,所以,要利用SNMP服务来获取主机信息的话,则需要先知道其加密的密码串

Onesixtyoue工具

Onesixtyoue是一个专门针对于snmp协议的扫描器,如果指定其密码,即可获得目标主机的相关信息,如果不知道,也可以用来实施密码破解

语法如下:onesixtyoue 目标 -c 尝试的密码文件

(工具无法下载,暂不多说,可能需要重装系统,完全安装才可以)

Hydra工具

Hydra是著名的黑客组织THC的一款开源暴力破解工具,目前该工具支持破解的服务有FTP/MYSQL/SNMP/SSH等

语法如下:hydra -p /root/password.lst 目标 snmp

a4a9a0667cd544be9dc581a2a848c4d3.png

 

(具体操作就是如此,也不知道是靶机没有安装snmp服务,还是password.lst文件中写的命令都不对)

 

 

Nmap工具

Nmap工具中提供了一个脚本snmp-brute,可以用来snmp服务暴力破解

语法:

Nmap -sU -p 端口 --script=snmp-brute 目标 --script-args=snmp-brute.communitiesdb=root/password.lst

5d9ab5e04f134f258f450e2cee37a080.png

 

(我这里snmp密码破解的结果都是一样的,所以就不等了)

 

获取主机信息

onesixtyoue工具

Onesixtyoue是一个简单的snmp分析工具,使用该工具,仅请求指定地址的系统扫描述值,在使用onesixtyoue工具分析snmp时,需要指定目标ip地址和社区字符串,该工具默认的社区字符串是public

工具语法为:onesixtyoue 目标 public

 

SNMPwalk工具

Snmpwalk工具是一个比较复杂的snmp扫描工具,它可以收集使用snmp社区字符串设备的大量信息

语法如下:snmpwalk 目标 -c puclic -v public的版本

 

Snmp-check工具

Snmp-check是一款枚举snmp信息工具,该工具会显示具体信息名称,而不像snmpwalk工具一样只显示ios序列号

语法如下:snmp-check option 目标

Option选项及含义

-p:指定snmp的端口,默认161

-c:指定snmp的密码串,默认public

-v:指定snmp版本,可指定版本为1和2c,默认1

-t:指定超时值,默认5秒

a55c3e471d934c68bddc3e353921288c.png

 

利用SMB服务

暴力破解SMB服务

Hydra是一款非常强大的开源密码攻击工具,支持多种协议的破解

语法如下:hydra -L user file -p pass file 目标 smb

b1834e7f127748909abda2b359b8526e.png

 

以上两种方法都可,(这里懒得建立user和pass文件,所以直接使用命令),第二种方法是直接指定暴力破解该用户的密码

 

判断操作系统类型

在linux系统中提供了一款名为smbclient的客户端工具,可以用来访问smb服务中的共享文件

语法如下:smbclient -L 目标 -U 用户

05c8444204314463b9b49352bdc2b9cd.png

 

(我这里显示的是协议协商失败)

 

判断磁盘类型

语法:smbclient -L 目标 -U 用户

 

 

常见服务扫描策略

 

理论知识

  1. 网络基础服务是指连接到网络需要的基本服务,如DHCP、NTP和NetBIOS等
  2. DHCP是基于UDP协议工作的服务,该服务工作于UDP的67和68号端口,其中67端口为DHCP客户端广播请求,68号端口为DHCP服务器回应广播请求
  3. 文件共享是主动在网路上共享自己的计算机文件,最常见的文件共享服务有AFP和NFS等
  4. Web服务一般指网站服务,是指驻留于因特网上某种类型计算机的程序,可以向浏览器等web客户端提供文件,也可以放置网站文件和数据文件,让用户下载浏览
  5. 最常见的web服务器有AJP和ASP.NET等
  6. HTTP服务是基于TCP协议工作的,其工作在TCP的80端口
  7. SSL(安全套接层)及其继承者传输层安全是为网络通信提供安全及数据完整性的一种安全协议
  8. 数据库服务由运行在局域网中的一台或多台计算机和数据库管理系统软件共同构成,为客户应用程序提供了数据服务
  9. 远程登录服务可以将用户计算机与远程主机连接起来,在远程计算机上运行程序,将相应的屏幕显示传送到本地主机,并将本地的输入发送给远程计算机
  10. 邮件服务器是一种用来负责电子邮件收发管理的软件

实际操作

网络基础服务

DHCP服务

Broadcats-dhcp-discover.nse脚本

Broadcats-dhcp-discover.nse脚本通过向广播地址255.255.255.255发送一个dhcp请求,来寻找提供dhcp服务的主机,该脚本在执行时,使用静态mac地址,以防止ip地址耗尽

语法如下:nmap --script=broadcast-dhcp-discover.nse

d31f58fb68e44648a11bc861bdfd8a91.png

 

以上信息含义解析:

      IP Offered: 192.168.0.105(提供的IP地址)

|     DHCP Message Type: DHCPOFFER(dhcp消息类型)

|     Server Identifier: 192.168.0.1(服务器标识符)

|     IP Address Lease Time: 2h00m00s(IP地址释放时间)

|     Domain Name Server: 211.138.24.66, 211.138.30.66(域名服务)

|     Subnet Mask: 255.255.255.0(子网掩码)

|_    Router: 192.168.0.1(路由地址)

 

dhcp-discover.nse脚本

dhcp-discover.nse脚本用来向目标主机发送一个DHCP INFORM请求到主机的UDP67号端口,来获取所有本地配置参数

语法:nmap -sU -p 67 --script=dhcp-discover 192.168.0.103

849c6786978b4ea4bc0da8221b9d4d3d.png

 

Daytime服务

Daytime服务是基于TCP的应用,该服务在TCP端口13侦听,一旦有连接建立就返回ASCII形式的日期和时间,在传送完后关闭连接,而服务接收到的数据则被忽略

语法:nmap -sV -p 13 --script=daytime 192.168.0.103

845dea7942b940359acc3772121a6dfb.png

 

我这里只显示了daytime服务,却没显示ASCII格式的时间,不知道咋回事

 

NTP服务

ntp服务是基于udp协议的服务,该服务默认监听端口为123

Ntp-info.nse用来获取时间和配置信息

语法:nmap -sU -p 123 --script=ntp-info 192.168.0.103   

6b9b081334d74586b7435a8a71221498.png

 

LLTD服务

Lltd(链路层拓扑结构发现)作为Windows rally技术的关键部分,主要完成网络设备的发现和网络拓扑结构图的绘制

Lltd协议用来探测网络中的活动主机,并指定一个新的目标实施扫描

语法:nmap --script=lltd-discovery --script-args=lltd-discovery.interface=etho,newtargets=192.168.0.103    

4d73d61ae68a4efaafd5e9adac9a9ae9.png

 

嗨,输了一大串命令,什么都没扫出来

 

NetBIOS服务

netbios协议是由ibm公司开放,主要用于数十台计算机的小型局域网

Netbios协议监听137、138和139三个端口

137提供netbios名称解析服务,138用于用户数据报服务,139提供会话服务

语法:nmap -sU --script=nbstat.nse -p 137 192.168.0.103

      nmap  --script=nbstat.nse -p 137 192.168.0.103

d6731805373546418d476b7bd538f51f.png

 

两种方法皆可

 

 

文件共享服务

苹果AFP服务

AFP服务是基于TCP协议工作的,其工作在TCP的548端口

语法:nmap -sV -p 548 --script=afp-serverinfo.nse 192.168.249.129

15bd1f3278af49c18476ac32a9251296.png

 

命令没错,就是我这里显示的信息可以说就没显示信息

 

苹果DAAP服务

DAAP服务是基于TCP协议工作的服务,其工作在TCP的3689端口

语法:nmap -p 3689 --script=daap-get-library.nse 192.168.249.129

96ff9e02e9364c16a91db392bd5977f9.png

NFS服务

NFS服务是基于TCP协议工作的服务,其工作在TCP的111端口

获取NFS服务有两种脚本方式,分别是:

   nmap -p 111 --script=nfs-ls.nse 192.168.249.129

 3fc3e316be1e46c3b65f9fc39e621719.png

 

(从上图信息可以看出目标主机开放了NFS服务,并且显示出了共享的文件以及共享文件的权限)

nmap -p 111 --script=nfs-showmount.nse 192.168.249.129

5b97d505a9e04eb0a09173ab0bf8eb6e.png

 

(可以看出目标主机共享的目录为根目录)

WEB服务

AJP服务

Ajp服务是基于tcp协议工作的服务,其工作在tcp的8009端口

Ajp-auth.nse脚本

使用ajp-auth.nse脚本获取ajp服务的认证摘要信息

使用方法:nmap -P 8009 --script ajp-auth.nse  

578fc9da8d674eb4b7a498ec67a8d035.png

 

(崩溃了,大多命令都是对的,就是输出信息有问题,不应该就这么点信息的)

Ajp-headers.nse脚本

获取服务器响应的头部

使用方法:nmap -p 8009 --script=ajp-headers 192.168.129.249

453b6a9b6d31453d92b9425316a3c2ca.png

(又是输出信息不全)

ajp-methods.nse脚本

发送一个options请求和存在风险方法的列表,获取ajp服务支持的方法

使用方法:nmap -p 8009 --script=ajp-methods 192.168.129.249

6ba1d26f66e64ce891601d7fb7c91813.png 

 

ajp-request.nse脚本

请求url信息

使用方法:nmap -p 8009 --script=ajp-request 192.168.129.249

58fb2fe588dd4c86b18c741df08fa0b6.png

 

ASP.NET服务

asp.net是一个开发框架,用于通过html、css、javascript及服务器脚本来搭建网页和网站

http-aspnet-debug脚本

通过使用http debug请求来判断asp.net应用程序是否启用了debug功能

使用方法:nmap -p 80 --script=http-aspent-debug 192.168.129.249

d89ab7876dba43628e68965ebbbcecc0.png

 

(输出结果显然不对,不知道咋回事)

 

 

HTTP认证服务

获取http服务认证信息

语法:nmap --script http-auth -p 80 192.168.0.101

7f5ef2f544234f81b9fb30c79f3ef9c3.png

 

(输出结果又是这样,好像很多命令我得到的结果都是这样)

 

 

SSL服务

Ssl服务是基于TCP协议工作的,其工作在TCP的443端口

获取ssl服务的认证信息

Ssl-cert脚本

语法如下:nmap --script=ssl-cert -p 443 www.baidu.com

cbdcaa20cccd441e9f194f710be4b623.png

 

含义解释:

    Public Key type: rsa(公钥类型)

Public Key bits: 2048(公钥字节)

Signature Algorithm: sha256WithRSAEncryption(签名算法)

Not valid before: 2022-02-21T08:42:02(有效时间之前)

Not valid after:  2022-08-02T01:16:03(有效时间之后)

MD5:   8d93 7ea3 564a ce78 d267 ab11 843d 28a6(MD5值)

SHA-1: fb4b a466 e60f 38bb d29d 92e7 fc53 5e31 c5cd ef0c(SHA-1值)

获取目标主机的日期和时间

ssl-date脚本

用法:nmap --script=ssl-date -p 443 www.baidu.com

04a4badfe7d8407095ee200e5b2f9ceb.png

获取暂时的Diffie-Hellman参数信息

ssl-dh-params脚本

语法如下:nmap --script=ssl-dh-params -p 443 www.baidu.com

 5fdc6fd7ad3644ecb31c2564d2f18ac4.png

 

获取目标主机的加密方式

ssl-enum-ciphers脚本

语法:

d9961c6bbfce405f943ee40528ba8d92.png

 24132b168766498aabcd01a6526b4b3a.png

Sslv2脚本

Sslv2脚本用来判断目标服务器是否支持sslv2,并且支持的加密方式

语法如下: nmap --script=sslv2 -p 443 www.baidu.com

ce91611bf2c246f9b53d10579963f6db.png 

 7be7bd649ebb4241a905bfb245d4893f.png

 

tls-nextprotoneg脚本

tls-nextprotoneg脚本通过使用next protocol negotiation extension来枚举tls服务支持的协议

语法如下:nmap --script=tls-nextprotoneg -p 443 www.baidu.com

8f2fac51be7c4aa69155b961c03a0eb8.png

 

 

 

 

上面的内容全部都是大学霸IT达人编著的kali linux网络扫描这本书中的,只是想和感兴趣的老铁们分享以下,另外,最重要的是想求助大佬们,看看上面的截图中,大多输出结果都是一样的,这是因为靶机的原因,还是什么原因,希望懂的大佬能够指点一下,谢过了哈)

 

 

 

 

 

 

 

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十一的学习笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值