购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.9 使用netcat编写你自己的端口扫描器

攻击者可以利用代理程序和To r网络来隐藏自己,也可以自定义网络端口扫描器。在渗透测试中,可以利用以下单行命令和netcat确定开放端口的列表,如图3.19所示。

图3.19 运行一个单行Bash脚本来进行端口扫描

同样地,可以对脚本进行修改,以便对单个IP进行更有针对性的攻击,如下所示:

与其他端口扫描器相比,使用自定义端口扫描器在任何入侵检测系统中触发告警的概率更高。

3.9.1 对操作系统进行指纹识别

可以使用以下两种类型的扫描来确定一个远程主机的操作系统:

主动指纹识别 。攻击者向目标发送正常的和畸形的数据包,并记录其响应模式,称为指纹。通过将指纹与本地数据库进行比较来确定操作系统。

被动的指纹识别 。攻击者嗅探或记录并分析数据包流以确定数据包的特征。

主动指纹识别比被动指纹识别更快、更准确。在Kali中,主动识别工具是nmap。nmap向目标网络注入数据包并分析它收到的响应。在图3.20中,-O是nmap用来确定操作系统的命令参数。

图3.20 nmap扫描识别目标的操作系统

注意,目标系统要隐藏真正的操作系统是很简单的。由于指纹识别软件依赖于数据包的设置,如生存时间或初始窗口的大小,对这些值或其他用户可编辑配置的改变会影响工具侦察的结果。一些组织主动改变这些值,使侦察的最后阶段更加困难。

3.9.2 确定活跃的服务

侦察的最终目的是确定目标系统上正在运行的服务和应用程序。如果可能的话,攻击者将想知道服务的类型、供应商和版本号等信息,以方便判断是否存在可利用的漏洞。以下是用于确定活跃服务的一些技术。

识别默认端口和服务 。如果远程系统被识别为具有微软操作系统,并打开了80端口(WWW服务),攻击者可能会认为默认安装了微软的IIS服务,并进行额外的测试来验证这个假设(使用nmap)。

抢夺旗帜 。使用诸如amap、netcat、nmap和Telnet等工具完成。

审查默认网页 。一些应用程序安装时有默认的管理、错误或其他页面。如果攻击者访问这些,它们将提供已安装的应用程序指导,这些应用程序可能容易受到攻击。在图3.21中,攻击者可以很容易地识别目标系统上已安装的微软IIS的版本。

审查源代码 。基于Web的应用程序配置不当可能会对某些HTTP请求(如HEAD或OPTIONS)作出响应,响应信息包括Web服务器软件版本,可能还包含基础操作系统或正在使用的脚本环境等信息。如图3.21所示,在命令行启动netcat向一个特定的网站发送原始HEAD数据包。这个请求产生了一个成功的消息(200 OK);然而,它也确定了服务器运行的是微软IIS 7.5服务并由ASP.NET驱动。

图3.21 使用netcat抓取一个目标的旗帜 QwynnbnYQOn2jGCsq5hcR/NyAhu7Pg7EhfZkBiR0XBKFtQTFzgWnJwxpNJaOOdHT

点击中间区域
呼出菜单
上一章
目录
下一章
×