ATTCK视角下的信息收集:主机发现

2024-01-07 03:12

本文主要是介绍ATTCK视角下的信息收集:主机发现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1、利用协议主动探测主机存活

利用ICMP发现主机

利用ARP发现主机

利用NetBIOS协议发现主机

利用TCP/UDP发现主机

利用DNS协议发现主机

利用PRC协议发现主机程序

2、被动主机存活检测

利用Browser主机探测存活主机

利用ip段探测主机存活

利用net命令探测主机存活

利用arp命令探测主机存活

利用HOSTS文件探测主机存活

利用DNS缓存探测主机存活

3、内网多网卡主机发现

前提条件:

分类:

利用方法:

防御方法:


1、利用协议主动探测主机存活

在进行内网主机发现时,使用系统自带的命令或者软件可以减少在目标磁盘落地二进制文件,减少EDR终端检测与响应(Endpoint Detection and Response)的检测和拦截

利用ICMP发现主机

ICMP探测的优势在于是系统自带的,内网中终端设备一般会将该协议进行放行,并且安全设备的默认策略不会对该协议进行安全分析

比如说我们可以使用下面命令探测一个C网段中的有哪些存活的主机:

利用ARP发现主机

在利用ARP发现主机时候,可以利用arp-scan工具来发现主机,该工具会遍历预设的ip段并且发送ARP请求,如果主机回复,则会返回主机ip和MAC地址。

注:如果使用ARP扫描,尽量不要指定过大的扫描范围,否则会引起大量告警,导致权限丢失

工具下载地址:

GitHub - QbsuranAlang/arp-scan-windows-: send arp request to whole specific LAN

利用NetBIOS协议发现主机

NetBIOS协议对各种IDS、IPS、杀毒软件的规避效果比其他协议更好,因为利用NetBIOS是正常的机器名解析查询应答的过程,推荐优先使用,它的功能就是为局域网提供网络以及其他特殊的功能

NBNS协议时TCP/IP上的NetBIOS(NetBT)协议簇的一部分,它在基于NetBIOS名称访问的网络上提供主机名和地址映射方法,

nbtscan是一个命令行工具,用于扫描本地或者远程TCP/IP网络上开放NetBIOS名称服务器。

如果主机存活,则会发送NBNS消息查询对方主机名

 注:如果使用nbtscan进行批量扫描,会发送大量的请求,导致安设备警告,并且该工具会落地,会增加被发现的可能

可以使用window自带的命令nbstart来指定ip标识信息

利用TCP/UDP发现主机

下面介绍一款用于TCP/UDP扫描的工具:portcheck.exe

Portcheck是一款小众的端口扫描工具,没有反病毒软件认为它是恶意软件甚至不被认为是黑客工具

下载地址:PortCheck 2.1 - TCP port check Windows 10 (portcheck-tool.com)

例如:扫描一个c网段内445端口的开放情况

利用DNS协议发现主机

我们如果得到了内部的NDS服务器地址,也就是NS记录,一般会通过DHCP自动分配

可以指定内网中的NDS服务器,然后以目标域名为规则逐个解析常见生产力系统域名的二级域名,这样就能够发现大量内部业务以及ip段

(1)Invoke-DNSDIscovery.ps1 可以用于识别内部网络/Windows域上的常用二级域名列表,此脚本可以用于在突破边界后进行内部DNS侦查

这个脚本中内置了大量的常见的二级域名,可以执行以下命令来将存在的域名保存到dns_short.csv中

Invoke-DnsDicovery -Namelist nasmes.txt -Path dns_short.csv

也可以使用-Namelist names.exe语法自定义二级域名

(2)gobusterdns是爆破二级域名工具gobuster的精简版,该巩固只用于子域名爆破支持自定义DNS服务器运行,内置精简字典,可以导入域名列表进行扫描

./gobusterdns_linux -d dm.org -r 192.168.159.1:53 -i -q

利用PRC协议发现主机程序

我们使用PRCSCAN以无须经过身份认证来访问目标的135端口并且获取目标的RPC map,然后通过解析PRC map 中的UUID判断目标主机可能存在的进行,还可以通过相关的进程判断远程主机可能开放的端口。

整个过程只需要向目标的135端口发送十几个流量包,在网络与主机层的特征和动静比较小,方便隐蔽渗透

具体的过程:

  1. 首先使用CS(Cobaltstrike)控制目标主机来加载PRCSCAN脚

  2. 执行rpcsan 192.168.159.0/24命令来使用PRCSCAN匿名探测远程C段的主机信息

PRCSCAN脚本下载地址:GitHub - JDArmy/RPCSCAN: RPC远程主机信息匿名扫描工具

2、被动主机存活检测

在发现主机后,如果使用扫描技术,在扫描的时候应该避免使用nmap等工具进行暴力扫描,因为这样会触发安全设备的告警,导致权限丢失。

最开始可以对入口点机器进行分析,得到已经存在的资产ip,从而确定更多的ip段

利用Browser主机探测存活主机

SMB协议提供了Browsing机制,客户端利用该机制来访问网络中的计算机列表

在SMB协议中,经常通过广播的方式来获取当前的网络资源,但是这会消耗大量的网络资源,

Browsing机制提供了一个计算机列表,每当一台计算机在网络中寻找另外一个计算机的时候,无需再使用广播的方式,而是直接从计算机列表中查找目标计算机,维护这个列表的计算机就成为“Browser”

Browser分为:本地Browser(地主Browser)和工作组与域的Browser(域主Browser)

  • 本地的Browser是由网络中的计算机自动推举出来的,,并非事先设定好的

  • 域的Browser也是自动推举出来的,但是主域控制器的权重高

可以使用nbtstat -A ipadder命令探测主机是不是主Browser

还可以借助工具使用Browsing来进行被动主机发现,比如,在Kail中可以执行python2 1.py eth0命令来进行被动主机发现

利用ip段探测主机存活

要利用IP段探测主机的存活状态,您可以使用以下方法之一:

  1. 使用Ping命令: 在命令提示符或终端中,您可以使用ping命令来扫描IP段中的主机。例如,如果您要扫描192.168.1.1到192.168.1.255之间的IP地址,您可以执行类似以下命令:

    for /L %i in (1,1,255) do @ping -n 1 -w 100 192.168.1.%i | find "Reply"

    这个命令会对该IP段中的每个IP地址执行一次ping操作,然后检查是否有回复。这样您就可以确定哪些主机是存活的。

  2. 使用Nmap工具: Nmap是一款功能强大的网络扫描工具,它可以用于扫描IP段中的主机,以确定哪些主机是存活的。例如,您可以执行以下命令来扫描192.168.1.0/24网段中的主机:

    nmap -sn 192.168.1.0/24

    这将发送ICMP Echo请求到该网段中的每个IP地址,并收集响应以确定主机的存活状态。

        

这些方法可以帮助您确定给定IP段中哪些主机是存活的。

请注意,对未经授权的网络进行扫描可能违反法律或网络使用政策,因此在执行这些操作之前,请确保您有权进行这样的扫描。

利用net命令探测主机存活

net use 命令用于 ipc$命名管道连接,查看计算机连接信息以及连接与断开计算机共享资源,它不带任何参数使用

执行net use命令可以列出已经建立连接的网络列表

执行net session命令可以看到其他主机连接当前主机的记录

利用arp命令探测主机存活

arp命令用于显示和修改arp缓存中的项目

arp -a命令用于记录出现的ip地址与物理地址的列表信息

利用HOSTS文件探测主机存活

很多的网络管理员为了减轻DNS服务器的压力,会将内网中的一些生产力系统域名和ip地址写到HOSTS文件中,因此从hosts中也可以看到那些主机是存活的

利用DNS缓存探测主机存活

Windows会将经DNS解析过的域名缓存下来。如果你控制了一台PC,可以查看一下它的DNS解析记录,发现一些内网中的生产力系统域名

系统中有大量的文件记录可以帮助我们发现更多的存活ip

可以输入 ipconfig /displaydns进行查看

3、内网多网卡主机发现

在内网渗透中,目标网络一般是分区域使用防火墙进行隔离的,可以通过Windows的一些接口,NetBIOS进行网卡信息的手机,用来定位多网卡主机。

在无须进行身份验证的情况下,可以获得远程主机是否有多个网卡和多个ip地址,以绕过限制,访问受保护的网络

在内网渗透中,发现内网多网卡主机可以通过以下方法实现:

前提条件:

  • 你需要在目标网络内,能够直接访问目标主机。

  • 目标主机上必须开启了相关的服务或接口,如IOXIDResolver、NBNS或PRC。

  • 开放135端口/UDP137端口

分类:

  • IOXIDResolver接口:通过调用IOXIDResolver接口,可以获取到远程主机的多个网卡信息。

  • NBNS:通过NetBIOS Name Service (NBNS) ,可以获取到远程主机的名称和IP地址。

  • PRC:通过Port Range Classification (PRC),可以确定任意主机可以访问的网络范围。

利用方法:

  1. 使用IOXIDResolver接口获取远程多网卡主机:使用相关的工具或编程语言,通过调用IOXIDResolver接口,获取远程主机的网卡信息。这些信息可以包括多个IP地址和对应的网卡信息。

  2. 使用NBNS获取远程多网卡主机:通过发送NetBIOS请求,获取远程主机的名称和IP地址。根据不同的NetBIOS应答,可以判断目标主机是否存在多个网卡。

    1. 使用nextnet通过UDP137端口枚举多网卡主机

    2.  nextnet 192.168.159.0/24

  3. 使用PRC获取任意主机可以访问的网络范围:通过分析目标主机的端口开放情况,结合已知的端口和服务信息,确定目标主机所在的网络范围。

防御方法:

  • 确保目标主机上的相关服务或接口已经关闭或限制访问。

  • 配置防火墙,限制对敏感接口的访问。

  • 定期更新和修补系统漏洞,以防止利用这些漏洞进行内网渗透。

  • 使用网络入侵检测系统(IDS)或入侵防御系统(IPS)来监测和阻止潜在的内网扫描行为。

这篇关于ATTCK视角下的信息收集:主机发现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/578545

相关文章

使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)

《使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)》PPT是一种高效的信息展示工具,广泛应用于教育、商务和设计等多个领域,PPT文档中常常包含丰富的图片内容,这些图片不仅提升了... 目录一、引言二、环境与工具三、python 提取PPT背景图片3.1 提取幻灯片背景图片3.2 提取

Linux下如何使用C++获取硬件信息

《Linux下如何使用C++获取硬件信息》这篇文章主要为大家详细介绍了如何使用C++实现获取CPU,主板,磁盘,BIOS信息等硬件信息,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录方法获取CPU信息:读取"/proc/cpuinfo"文件获取磁盘信息:读取"/proc/diskstats"文

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

SpringCloud之consul服务注册与发现、配置管理、配置持久化方式

《SpringCloud之consul服务注册与发现、配置管理、配置持久化方式》:本文主要介绍SpringCloud之consul服务注册与发现、配置管理、配置持久化方式,具有很好的参考价值,希望... 目录前言一、consul是什么?二、安装运行consul三、使用1、服务发现2、配置管理四、数据持久化总

一文详解SQL Server如何跟踪自动统计信息更新

《一文详解SQLServer如何跟踪自动统计信息更新》SQLServer数据库中,我们都清楚统计信息对于优化器来说非常重要,所以本文就来和大家简单聊一聊SQLServer如何跟踪自动统计信息更新吧... SQL Server数据库中,我们都清楚统计信息对于优化器来说非常重要。一般情况下,我们会开启"自动更新

Python如何获取域名的SSL证书信息和到期时间

《Python如何获取域名的SSL证书信息和到期时间》在当今互联网时代,SSL证书的重要性不言而喻,它不仅为用户提供了安全的连接,还能提高网站的搜索引擎排名,那我们怎么才能通过Python获取域名的S... 目录了解SSL证书的基本概念使用python库来抓取SSL证书信息安装必要的库编写获取SSL证书信息

Win32下C++实现快速获取硬盘分区信息

《Win32下C++实现快速获取硬盘分区信息》这篇文章主要为大家详细介绍了Win32下C++如何实现快速获取硬盘分区信息,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 实现代码CDiskDriveUtils.h#pragma once #include <wtypesbase

Python如何实现PDF隐私信息检测

《Python如何实现PDF隐私信息检测》随着越来越多的个人信息以电子形式存储和传输,确保这些信息的安全至关重要,本文将介绍如何使用Python检测PDF文件中的隐私信息,需要的可以参考下... 目录项目背景技术栈代码解析功能说明运行结php果在当今,数据隐私保护变得尤为重要。随着越来越多的个人信息以电子形

C#实现系统信息监控与获取功能

《C#实现系统信息监控与获取功能》在C#开发的众多应用场景中,获取系统信息以及监控用户操作有着广泛的用途,比如在系统性能优化工具中,需要实时读取CPU、GPU资源信息,本文将详细介绍如何使用C#来实现... 目录前言一、C# 监控键盘1. 原理与实现思路2. 代码实现二、读取 CPU、GPU 资源信息1.

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬