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)来监测和阻止潜在的内网扫描行为。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/232381.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大模型实战笔记02——大模型demo

大模型实战笔记02——大模型demo 1、大模型及InternLM模型介绍 2、InternLM-Chat-7B智能对话Demo 3、Lagent智能体工具调用Demo 4、浦语灵笔图文创作理解Demo 5、通用环境配置 注 笔记图片均为视频截图 笔记课程视频地址:https://www.bilibili.com/video/BV1Ci4y1…

C# Emgu.CV4.8.0读取rtsp流录制mp4可分段保存

【官方框架地址】 https://github.com/emgucv/emgucv 【算法介绍】 EMGU CV(Emgu Computer Vision)是一个开源的、基于.NET框架的计算机视觉库,它提供了对OpenCV(开源计算机视觉库)的封装。EMGU CV使得在.NET应用程序…

鸿蒙开发之拖拽事件

一、拖拽涉及的方法 Text(this.message).fontSize(50).fontWeight(FontWeight.Bold)//拖拽开始.onDragStart((event: DragEvent) > {console.log(drag event onDragStartevent.getX())})//拖拽进入组件范围,需要监听onDrop配合.onDragEnter((event: DragEvent) …

今日小寒|三九将至,注意防寒保暖

小寒小寒,冻成一团 小寒是反应气温变化的节令 这时正值“三九”前后 标志着开始进入 一年中最寒冷的日子 小寒,是二十四节气中的第23个节气,冬季的第5个节气。小寒一过,就进入的三九天了,民间有“小寒胜大寒”之说…

使用 Maven 的 dependencyManagement 管理项目依赖项

使用 Maven 的 dependencyManagement 管理项目依赖项 介绍 在开发 Java 项目时&#xff0c;管理和协调依赖项的版本号是一项重要而繁琐的任务。 而 Maven 提供了 <dependencyManagement> 元素&#xff0c;用于定义项目中所有依赖项的版本。它允许您指定项目中每个依赖…

Netty实战(待完善)

Netty组件 1. Bootstrap, ServerBootstrap Netty 中 Bootstrap 类是客户端程序的启动引导类&#xff0c;ServerBootstrap 是服务端启动引导类。 2. NioEventLoop, NioEventLoopGroup NioEventLoop 中维护了一个线程和任务队列&#xff0c;支持异步提交执行任务&#xff0c;…

C++中的new和delete

相关文章 C智能指针 文章目录 相关文章前言一、new 运算符1. operator new 函数的范围2. 在类中重载new运算符3. 分配失败 二、delete 运算符1. 内存泄露统计示例2. 在类中重载delete运算符 总结 前言 在C中&#xff0c;new和delete是用于动态内存管理的运算符&#xff0c;它们…

el-upload上传文件

需求&#xff1a;选中或拖拽文件后&#xff0c;使用http-request属性实现自动上传&#xff0c;并根据后端传回来的结果显示错误和控制fileList的显示&#xff0c;如果后端返回成功&#xff0c;则文件显示在文件列表处&#xff0c;如果后端返回失败&#xff0c;则文件列表不显示…

听GPT 讲Rust源代码--compiler(15)

File: rust/compiler/rustc_arena/src/lib.rs 在Rust源代码中&#xff0c;rustc_arena/src/lib.rs文件定义了TypedArena&#xff0c;ArenaChunk&#xff0c;DroplessArena和Arena结构体&#xff0c;以及一些与内存分配和容器操作相关的函数。 cold_path<F: FnOnce,drop,new,…

基于商品列表的拖拽排序后端实现

目录 一&#xff1a;实现思路 二&#xff1a;实现步骤 二&#xff1a;实现代码 三&#xff1a;注意点 一&#xff1a;实现思路 后台实现拖拽排序通常需要与前端进行配合&#xff0c;对商品的列表拖拽排序&#xff0c;前端需要告诉后端拖拽的元素和拖动的位置。 这里我们假…

杰发科技AC7840——Eclipse环境DMA注意事项

0.序 用 户 使 用 DMA 时 &#xff0c; 所 有 DMA 搬 运 的 SRAM 数 据 都 必 须 存 放 在 SRAM_U 区 (0x20000000~0x2000EFFF) 。 1. 修改办法 第一步&#xff1a; RAM定义 /* Specify the memory areas */ MEMORY {FLASH (rx) : ORIGIN 0x00000000, LENGT…

听GPT 讲Rust源代码--compiler(25)

File: rust/compiler/rustc_target/src/spec/mod.rs 在Rust的源代码中&#xff0c;rust/compiler/rustc_target/src/spec/mod.rs文件的作用是定义和实现有关目标平台的规范。 SanitizerSet是一个结构体&#xff0c;用于表示目标平台上存在的sanitizer集合。 TargetWarnings是一…

AI与5G、IDC等成为数字经济的重要基础设施

AI与5G、IDC等已经成为数字经济的重要基础设施&#xff0c;它们的影响和作用不容忽视。随着技术的迅速发展&#xff0c;AI在各行各业都得到了广泛应用&#xff0c;并成为数字经济的核心驱动力之一。 首先&#xff0c;AI的兴起为数字经济带来了巨大的机遇。AI技术可以帮助企业从…

YOLOv5改进 | 检测头篇 | 增加辅助检测头利用AFPN改进Head(附详细修改教程)

一、本文介绍 本文给大家带来的改进机制是利用今年新推出的AFPN(渐近特征金字塔网络)来优化检测头,AFPN的核心思想是通过引入一种渐近的特征融合策略,将底层、高层和顶层的特征逐渐整合到目标检测过程中。这种渐近融合方式有助于减小不同层次特征之间的语义差距,提高特征…

如何使用可视化管理工具DockerUI远程管理docker容器

文章目录 前言1. 安装部署DockerUI2. 安装cpolar内网穿透3. 配置DockerUI公网访问地址4. 公网远程访问DockerUI5. 固定DockerUI公网地址 前言 DockerUI是一个docker容器镜像的可视化图形化管理工具。DockerUI可以用来轻松构建、管理和维护docker环境。它是完全开源且免费的。基…

学习笔记——C++运算符之逻辑运算符

作用&#xff1a;用于根据表达式的真值返回真值或假值 逻辑运算符有以下符号&#xff1a; #include<bits/stdc.h> using namespace std; int main(){// 逻辑运算符 非 !int a10;//在c中&#xff0c;除了0均是真 cout<<!a<<endl;//0 cout<<!!a<<…

Pycharm打包程序为exe文件

Pycharm打包程序为exe文件 【一】导入模块pyinstaller 【1】图片说明 【2】文字说明 根据图片顺序执行 首先点击file进入settings界面&#xff0c;在setting界面找到Project下面的Python Interpretor&#xff0c;点击号进行模块的添加在搜索框中输入pyinstaller&#xff0c;…

UE5 给自己的数字人重定向Mixamo动画

1 、准备动画骨格文件&#xff0c;动画文件&#xff0c;下面是Mixamo动画素材下载网站Mixamo动画骨格文件下载网站https://www.mixamo.com/2、下载动画骨格文件&#xff0c;打Mixamo网站&#xff0c;选择Characters骨格菜单&#xff0c;在下面找到对应的骨格。如下图所示&#…

静态网页设计——环保网(HTML+CSS+JavaScript)(dw、sublime Text、webstorm、HBuilder X)

前言 声明&#xff1a;该文章只是做技术分享&#xff0c;若侵权请联系我删除。&#xff01;&#xff01; 感谢大佬的视频&#xff1a; https://www.bilibili.com/video/BV1BC4y1v7ZY/?vd_source5f425e0074a7f92921f53ab87712357b 使用技术&#xff1a;HTMLCSSJS&#xff08;…

数据库攻防学习之MySQL

MySQL 0x01mysql学习 MySQL 是瑞典的MySQL AB公司开发的一个可用于各种流行操作系统平台的关系数据库系统&#xff0c;它具有客户机/服务器体系结构的分布式数据库管理系统。可以免费使用使用&#xff0c;用的人数很多。 0x02环境搭建 这里演示用&#xff0c;phpstudy搭建的…