提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
学习常用的主机探测命令,查看各个命令的探测结果
Kali-linux虚拟机
win 11 物理机
利用Ping命令进行主机扫描、利用Ping主机扫描测试网络故障、利用Ping探测主机的操作系统
根据TCP、UDP、ICMP传输协议的特点,根据安全扫描技术的特点:先发现目标、再进行信息收集、最后分析评估。根据Ping命令的相关功能进行扫描探测,如Ping命令中的Socket的SO_DEBUG功能、极限检测、只输出数值、记录路由过程、发送指定数目的包后停止等。还可以通过脚本进行批量主机探测
①查看物理机ip地址:192.168.170.62
虚拟机ip地址:192.168.119.132
②用虚拟机执行"ping 192.168.119.1"命令,Ping物理机的IP地址,测试与局域网内其它主机连通性。由 下图可看出,局域网连通性正常,本地工作站能通过网关设备与局域网中的其他工作站进行通信。
③记录路由。执行"ping -c2 -R 192.168.186.250"命令,Ping实验环境的IP地址。“记录路由”选项用于记录由回响请求消息和相应的回响应答消息使用的路径。主要是用来检查目标的路由数量,每经过一个路由就是一个hop,可看出,发送了2个数据,没有记录路由。
④扫描活动主机
首先执行vi pingaddr.sh
命令,进行脚本编辑。Linux编程,通过if-then结构,判断序列1-255之间,是否存在活动的目标,并将其输出。编辑完成后按Esc,执行:wq
命令保存退出。
脚本内容:
chmod a+x ./pingaddr.sh #添加执行权限
./pingaddr.sh #进行扫描
结果可看出,没有活动状态的主机。
⑤还可用以下脚本指定ping哪几台主机。最多ping失败三次后,打印出失败的IP,绿色IP代表成功,红色IP代表失败。
#!/bin/bash
IP_LIST="192.168.0.17 192.168.0.18 192.168.0.19" #将ip放进数组中
for ip in $IP_LIST; do #for循环遍历数组
num=1 #定义初始值
while [ $num -le 3 ]
do
if ping -c 1 $ip >/dev/null
then
echo -e "\033[32;1m$ip Ping is success\033[0m" #if 判断如果ping通 则返回success
break
else
FALL[$num]=$ip #反之 则失败次数+1
let num++
fi
done
if [ ${#FALL[*]} -eq 3 ] # if判断如果失败次数等于3 则返回Ping is failure
then
echo -e "\033[31;1m${FALL[1]} Ping is failure!\033[0m"
unset FALL[*]
fi
done
⑥变通命令,扫描整个内网段:如下命令扫描整个 192.168.119.* 网段:
for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.119.%I | findstr "TTL="
扫描网络存活主机,并保存为文件
fping -g 192.168.119.0/24 -a -q > activeHost
cat activeHost
hping 是面向命令行的用于生成和解析TCP/IP协议数据包汇编/分析的开源工具,hping 优势在于能够定制数据包的各个部分,因此用户可以灵活对目标机进行细致地探测。你可手动制作类似于Nmap引擎自动生成的数据包,例如Hping3可以使用-S来创建件一系列同步包:hping3 -S 10.1.1.1
用法: hping3 host [options]
-h --help 显示帮助
-v --version 显示版本
-c --count 发送数据包的数目
-i --interval 发送数据包间隔的时间 (uX即X微秒, 例如: -i u1000)
--fast 等同 -i u10000 (每秒10个包)
--faster 等同 -i u1000 (每秒100个包)
--flood 尽最快发送数据包,不显示回复。
-n --numeric 数字化输出,象征性输出主机地址。
-q --quiet 安静模式
-I --interface 网卡接口 (默认路由接口)
-V --verbose 详细模式
-D --debug 调试信息
-z --bind 绑定ctrl+z到ttl(默认为目的端口)
-Z --unbind 取消绑定ctrl+z键
--beep 对于接收到的每个匹配数据包蜂鸣声提示
hping3 -1 192.168.170.62
Nping是支持多协议(TCP,UDP,ICMP,ARP)且允许用户设置网络报文格式的探测工具,可以自定义协议头中的字段。
在终端输入命令 nping -c 2 --tcp -p 80 -flags syn 目标ip
向目标主机80端口发送自带SYN标志的TCP数据包两个
如:
nping --tcp -p 80 --flags rst --ttl 2 192.168.170.62
nbtscan是一个通过扫描IP地址获取目标NetBIOS名字信息的工具,生成包含对应主机IP地址,NetBIOS计算机名,可用服务,登录用户名和MAC地址的报告
在终端输入命令:nbstscan 目标ip
查看目标主机的NETBIOS信息
在终端中输入nbtscan -hv 目标ip
可以查看主机运行服务.
nbtscan 192.168.170.62
nbtscan -hv 192.168.170.62
nbtscan对给出范围内的每一个地址发送NetBIOS状态查询,并且以易读的表格列出接收到的信息,对于每个响应的主机,NBTScan列出它的IP地址、NetBIOS计算机名、登录用户名和MAC地址。但只能用于局域网,NBTSCAN可以取到PC的真实IP地址和MAC地址,如果有”ARP攻击”在做怪,可以找到装有ARP攻击的PC的IP/和MAC地址。
nbtscan -r 192.168.170.0/24 #搜索整个192.168.170.0/24网段, 即192.168.170.1-192.168.170.254
nbtscan 192.168.170.2-250 #搜索192.168.170.2-250 网段,即192.168.170.2-192.168.170.250
输出结果第一列是IP地址,最后一列是MAC地址。
Nmap(也就是Network Mapper,最早是Linux下的网络扫描和嗅探工具包)是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting)。
1)主机发现:检测目标主机是否在线
2)端口扫描:检测端口状态和提供的服务
3)版本侦测:检测端口提供服务的包或软件的版本信息
4)操作系统侦测:检测主机使用的操作系统
如果要对子网中的主机进行主机发现,可以采用ping扫描方式。在这种模式下,Nmap会发送一个ICMP回声请求和一个TCP报文到目标端口,然后显示出在线的主机,ping扫描可以轻易地获取目标服务器的信息而不会被轻易发现,也不会返回太多的信息干扰对结果的分析,因此是一种非常高效的扫描方式。
Ping扫描的命令为:nmap -sP ip子网 【Ping扫描】【小写字母s,大写字母P】
如:nmap -sP 192.168.170.1/24
的扫描结果如下,Host is up 说明主机处于开启状态。
①在使用nmap时,通过在命令中加上—scritp就可以调用nmap的脚本来配合扫描。Nmap自带后已经安装了很多脚本,kali中的路径如下所示:
cd /usr/share/nmap/scripts
ls
②脚本扩展分类包括:
auth 处理身份验证
broadcast 网络广播
brute 暴力猜解
default 默认
discovery 服务发现
dos 拒绝服务
exploit 漏洞利用
external 外部扩展
fuzzer 模糊测试
intrusive 扫描可能造成不良后果
malware 检测后门
safe 扫描危害较小
version 版本识别
vuln 漏洞检测
③可以使用种类的名字调用该分类下的全部脚本,比如—scritp vuln,不过这比较费时间,这里尝试单个的,比如以自带的http-methods脚本为例。
首先我们要知道脚本的用法,如下所示:scritp-hep后面指定脚本名称即可
nmap --script-help=http-methods 192.168.170.62
nmap --script=http-methods 192.168.170.62
Amap是第首款针对渗透测试人员的下一代扫描工具, 它尝试识别即使在不同于正常端口的端口上运行应用程序。Amap还可以通过发送触发数据包并在响应字符串列表中查找响应来识别基于非ascii编码的应用程序。
apt install amap
amap
语法: amap [-A|-B|-P|-W] [-1buSRHUdqv] [[-m] -o ] [-D ] [-t/-T sec] [-c cons] [-C retries] [-p proto] [-i ] [target port [port] ...]
模式:
-A 地图应用程序:发送触发包和分析响应(默认)
-B 只抓取标识信息,不发送触发包
-P 不抓取标识信息横幅或应用程序的东西 - (全连接)端口扫描器
选项:
-1 只发送触发到端口,直到第一次标识
-6 使用IPv6而不是IPv4
-b 打印响应的ascii标识信息
-i FILE 输出Nmap可读文件
-u 在命令行上指定的端口UDP(默认为TCP)
-R 不标识RPC服务
-H 不发送被应用程序标记为潜在有害的触发包
-U 不要转储无法识别的响应(更脚本处理)
-d 转储所有响应
-v 详细模式,使用两次(或更多!)进行调试(不推荐:-)
-q 不报告关闭的端口,并且不将其打印为不识别的
-o FILE [-m] 将输出写入文件FILE,-m创建机器可读输出
-c CONS 要进行的并行连接数(默认32,最大256)
-C RETRIES 连接超时的重新连接数(请参见-T)(默认3)
-T SEC 连接尝试的连接超时(以秒为单位)(默认为5)
-t SEC 响应等待超时(以秒为单位)(默认值为5)
-p PROTO 仅发送此协议的触发包(例如ftp)
扫描192.168.170. 62端口,显示接收的标识(b),不显示关闭端口(Q),并使用详细输出(V):
amap -bqv 192.168.170.62 21