Netcat是一个多功能网络化工具,使用该工具可以实现各种信息收集和扫描
使用方式如下nc -v 主机名/ip 端口
在使用python解释器交互式,可以直接调用python模块,也可以导入任何希望使用的特定模块
(这里暂且看不懂python代码,想学这个的可以自行探索)
Dmitry工具
Dmitry是一个一体化的信息收集工具,使用该工具对目标主机实时扫描,也可以获取到一些标志信息
语法格式如下:dmitry -pd 目标
(查询时间较久,没有等待获取完)
在nmap工具中有一个集成的nmap scripting engine脚本,该脚本可以通过远程端口来读取正在运行的网络服务标志信息
语法:Nmap -sT 目标 -P 端口 --script=banner
(-p后面可以指定单个、多个端口号,也可以指定所有端口号和范围端口号,多个不连续端口号用逗号隔开,范围端口号用连接符连接,所有端口号用杠-代替)
Amap是一个应用程序映射工具,可以用来通过远程端口来读取正在运行的网络服务标志
(kali系统中默认没有安装,需要自行安装:agt install amap)
语法如下:amap -B 目标 端口
(这里没有出现想要的结果,不过命令没错)
我们不仅可以通过相应工具识别目标主机上的服务指纹信息,换可以进行系统指纹信息识别
Nmap系统识别
Nmap工具中提供了-O选线,可以用来识别操作系统,语法格式如下:nmap -O 目标
输出信息解析:
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
Nmap工具
当nmap无法确定所探测的操作系统时,会尽可能地提供最相近的匹配
使用格式如下:nmap -O --osscan-guess 目标或使用参数--fuzzy
(两个选项得到的结果只能说是基本相同,在试一遍可能给的结果会又不一样,暂且没试)
Ping系统识别
Ping的过程中,在响应包中将包括对应的TTL值,TTL是生成时间的缩写,不同操作对应响应的TTL值不同(TTL值对应表在附加中写出)
图中的ttl=64,则为linux操作系统
Ttl=128,则为Windows系统
Xprobe2系统识别
Xprobe2是一款远程主机操作系统探测工具,该工具通过ICMP协议来采取指纹,xprobe2通过模糊矩阵统计分析主动探测数据报文对应的ICMP数据报特征,进而探测得到远端操作系统的类型(kali系统中默认没有安装,命令:apt install xprobe2)
语法:xprobe2 目标
(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)
以上几行信息表示的是无法捕捉到其他信息,但是p0f会一直处于监听监听状态
暴力破解SNMP服务
如果要访问SNMP服务,则需要知道密码,所以,要利用SNMP服务来获取主机信息的话,则需要先知道其加密的密码串
Onesixtyoue工具
Onesixtyoue是一个专门针对于snmp协议的扫描器,如果指定其密码,即可获得目标主机的相关信息,如果不知道,也可以用来实施密码破解
语法如下:onesixtyoue 目标 -c 尝试的密码文件
(工具无法下载,暂不多说,可能需要重装系统,完全安装才可以)
Hydra工具
Hydra是著名的黑客组织THC的一款开源暴力破解工具,目前该工具支持破解的服务有FTP/MYSQL/SNMP/SSH等
语法如下:hydra -p /root/password.lst 目标 snmp
(具体操作就是如此,也不知道是靶机没有安装snmp服务,还是password.lst文件中写的命令都不对)
Nmap工具
Nmap工具中提供了一个脚本snmp-brute,可以用来snmp服务暴力破解
语法:
Nmap -sU -p 端口 --script=snmp-brute 目标 --script-args=snmp-brute.communitiesdb=root/password.lst
(我这里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秒
暴力破解SMB服务
Hydra是一款非常强大的开源密码攻击工具,支持多种协议的破解
语法如下:hydra -L user file -p pass file 目标 smb
以上两种方法都可,(这里懒得建立user和pass文件,所以直接使用命令),第二种方法是直接指定暴力破解该用户的密码
判断操作系统类型
在linux系统中提供了一款名为smbclient的客户端工具,可以用来访问smb服务中的共享文件
语法如下:smbclient -L 目标 -U 用户
(我这里显示的是协议协商失败)
判断磁盘类型
语法:smbclient -L 目标 -U 用户
DHCP服务
Broadcats-dhcp-discover.nse脚本
Broadcats-dhcp-discover.nse脚本通过向广播地址255.255.255.255发送一个dhcp请求,来寻找提供dhcp服务的主机,该脚本在执行时,使用静态mac地址,以防止ip地址耗尽
语法如下:nmap --script=broadcast-dhcp-discover.nse
以上信息含义解析:
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
Daytime服务
Daytime服务是基于TCP的应用,该服务在TCP端口13侦听,一旦有连接建立就返回ASCII形式的日期和时间,在传送完后关闭连接,而服务接收到的数据则被忽略
语法:nmap -sV -p 13 --script=daytime 192.168.0.103
我这里只显示了daytime服务,却没显示ASCII格式的时间,不知道咋回事
NTP服务
ntp服务是基于udp协议的服务,该服务默认监听端口为123
Ntp-info.nse用来获取时间和配置信息
语法:nmap -sU -p 123 --script=ntp-info 192.168.0.103
LLTD服务
Lltd(链路层拓扑结构发现)作为Windows rally技术的关键部分,主要完成网络设备的发现和网络拓扑结构图的绘制
Lltd协议用来探测网络中的活动主机,并指定一个新的目标实施扫描
语法:nmap --script=lltd-discovery --script-args=lltd-discovery.interface=etho,newtargets=192.168.0.103
嗨,输了一大串命令,什么都没扫出来
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
两种方法皆可
苹果AFP服务
AFP服务是基于TCP协议工作的,其工作在TCP的548端口
语法:nmap -sV -p 548 --script=afp-serverinfo.nse 192.168.249.129
命令没错,就是我这里显示的信息可以说就没显示信息
苹果DAAP服务
DAAP服务是基于TCP协议工作的服务,其工作在TCP的3689端口
语法:nmap -p 3689 --script=daap-get-library.nse 192.168.249.129
NFS服务
NFS服务是基于TCP协议工作的服务,其工作在TCP的111端口
获取NFS服务有两种脚本方式,分别是:
nmap -p 111 --script=nfs-ls.nse 192.168.249.129
(从上图信息可以看出目标主机开放了NFS服务,并且显示出了共享的文件以及共享文件的权限)
nmap -p 111 --script=nfs-showmount.nse 192.168.249.129
(可以看出目标主机共享的目录为根目录)
AJP服务
Ajp服务是基于tcp协议工作的服务,其工作在tcp的8009端口
Ajp-auth.nse脚本
使用ajp-auth.nse脚本获取ajp服务的认证摘要信息
使用方法:nmap -P 8009 --script ajp-auth.nse
(崩溃了,大多命令都是对的,就是输出信息有问题,不应该就这么点信息的)
Ajp-headers.nse脚本
获取服务器响应的头部
使用方法:nmap -p 8009 --script=ajp-headers 192.168.129.249
(又是输出信息不全)
ajp-methods.nse脚本
发送一个options请求和存在风险方法的列表,获取ajp服务支持的方法
使用方法:nmap -p 8009 --script=ajp-methods 192.168.129.249
ajp-request.nse脚本
请求url信息
使用方法:nmap -p 8009 --script=ajp-request 192.168.129.249
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
(输出结果显然不对,不知道咋回事)
HTTP认证服务
获取http服务认证信息
语法:nmap --script http-auth -p 80 192.168.0.101
(输出结果又是这样,好像很多命令我得到的结果都是这样)
SSL服务
Ssl服务是基于TCP协议工作的,其工作在TCP的443端口
获取ssl服务的认证信息
Ssl-cert脚本
语法如下:nmap --script=ssl-cert -p 443 www.baidu.com
含义解释:
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
获取暂时的Diffie-Hellman参数信息
ssl-dh-params脚本
语法如下:nmap --script=ssl-dh-params -p 443 www.baidu.com
获取目标主机的加密方式
ssl-enum-ciphers脚本
语法:
Sslv2脚本
Sslv2脚本用来判断目标服务器是否支持sslv2,并且支持的加密方式
语法如下: nmap --script=sslv2 -p 443 www.baidu.com
tls-nextprotoneg脚本
tls-nextprotoneg脚本通过使用next protocol negotiation extension来枚举tls服务支持的协议
语法如下:nmap --script=tls-nextprotoneg -p 443 www.baidu.com
上面的内容全部都是大学霸IT达人编著的kali linux网络扫描这本书中的,只是想和感兴趣的老铁们分享以下,另外,最重要的是想求助大佬们,看看上面的截图中,大多输出结果都是一样的,这是因为靶机的原因,还是什么原因,希望懂的大佬能够指点一下,谢过了哈)