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端口发送十几个流量包,在网络与主机层的特征和动静比较小,方便隐蔽渗透
具体的过程:
-
首先使用CS(Cobaltstrike)控制目标主机来加载PRCSCAN脚
-
执行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段探测主机的存活状态,您可以使用以下方法之一:
-
使用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操作,然后检查是否有回复。这样您就可以确定哪些主机是存活的。
-
使用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),可以确定任意主机可以访问的网络范围。
利用方法:
-
使用IOXIDResolver接口获取远程多网卡主机:使用相关的工具或编程语言,通过调用IOXIDResolver接口,获取远程主机的网卡信息。这些信息可以包括多个IP地址和对应的网卡信息。
-
使用NBNS获取远程多网卡主机:通过发送NetBIOS请求,获取远程主机的名称和IP地址。根据不同的NetBIOS应答,可以判断目标主机是否存在多个网卡。
-
使用nextnet通过UDP137端口枚举多网卡主机
-
nextnet 192.168.159.0/24
-
-
使用PRC获取任意主机可以访问的网络范围:通过分析目标主机的端口开放情况,结合已知的端口和服务信息,确定目标主机所在的网络范围。
防御方法:
-
确保目标主机上的相关服务或接口已经关闭或限制访问。
-
配置防火墙,限制对敏感接口的访问。
-
定期更新和修补系统漏洞,以防止利用这些漏洞进行内网渗透。
-
使用网络入侵检测系统(IDS)或入侵防御系统(IPS)来监测和阻止潜在的内网扫描行为。
相关文章:
ATTCK视角下的信息收集:主机发现
目录 1、利用协议主动探测主机存活 利用ICMP发现主机 利用ARP发现主机 利用NetBIOS协议发现主机 利用TCP/UDP发现主机 利用DNS协议发现主机 利用PRC协议发现主机程序 2、被动主机存活检测 利用Browser主机探测存活主机 利用ip段探测主机存活 利用net命令探测主机存活…...
Redis 主从、哨兵和分片集群简单介绍
Redis 主从集群架构 单节点 redis 并发能力有上限,要进一步提高 redis 并发能力,就要搭建主从集群,实现读写分离 主从同步原理 Replicaition id:每台 master 机器都一个 repl_id,是数据集的表示,若 salv…...
群晖NAS+DMS7.0以上版本+无docker机型安装zerotier
测试机型:群晖synology 218play / DSM版本为7.2.1 因218play无法安装docker,且NAS系统已升级为7.0以上版本,按zerotier官网说法无法安装zerotier, 不过还是可以通过ssh终端和命令方式安装zerotier。 1、在DSM新建文件夹 用于存放zerotier脚…...
Pinia持久化存储插件 pinia-plugin-persist
1、pinia-plugin-persist 作用 pinia-plugin-persist是一个Pinia持久化存储插件,用于将Pinia状态存储到本地持久化存储中,例如localStorage或sessionStorage。 2、安装和使用pinia-plugin-persist 有时候需要把pinia中的数据持久化存储(存到…...
链家JAVA笔试题
单选题 1、在Java中下列关于自动类型转换说法正确的是( )。 A. 基本数据类型和String相加结果一定是字符串型 B. char类型和int类型相加结果一定是字符 C. double类型可以自动转换成int D. char int double “ ”结果一定是double 参考答案&am…...
当试图回复传入消息时,消息应用程序会闪烁
问题描述: Actual Results: Unable to reply for incoming message as Messaging app flickers and closes. Expected Results: User should be able to send reply for incoming messages. Reproduction Steps: Stay in home screen. Receive an incoming mes…...
Hubery-个人项目经历记录
研究生期间很有幸的进入到了崔老师的组,从此也就进入到了分析人体生理信号的领域,充满挑战的同时也充满了乐趣。借着CSDN整理一下近几年来参与的项目,这里蕴含着我各种美好的回忆,也作为一个展示自己的平台吧。博客中很多结果只给…...
Ubuntu18.04 安装 qt 5.15.2
一.安装qt 1.下载 在线安装包 使用国内镜像源在线安装QT(2023.3.25更新)_qt国内镜像-CSDN博客 2.安装 (1)QT库安装: 注意:我安装时 勾选 Qt Design studio 会导致报错,直接不勾选。 注意:Qtcreator 无…...
【Linux Shell】6. echo 命令
文章目录 【 1. 显示普通字符串 】【 2. 显示转义字符 】【 3. 显示变量 】【 4. 显示换行 】【 5. 显示不换行 】【 6. 显示命令执行结果 】 Shell 的 echo 指令用于字符串的输出。命令格式: echo string【 1. 显示普通字符串 】 #!/bin/bashecho "It is a …...
Dell 机架式服务器 - 高级定制服务
Dell 机架式服务器 - 高级定制服务 1. Dell Technologies2. 机架式服务器 - 高级定制服务2.1. Servers & Storage (服务器及存储) -> Servers2.2. Rack Servers (机架式服务器)2.3. Shop2.4. PowerEdge Rack Servers (PowerEdge 机架式服务器)2.5. PowerEdge R760 Rack …...
C++ 中关键字 Static
1、什么是static? static 是C中很常用的修饰符,它被用来控制变量的存储方式和可见性。由关键字static修饰类中成员,成为类的静态成员。类的静态成员为其所有对象共享,不管有多少对象,静态成员只有一份存于公用内存中。静态…...
系统学习Python——警告信息的控制模块warnings:警告过滤器-[重写默认的过滤器]
分类目录:《系统学习Python》总目录 Python应用程序的开发人员可能希望在默认情况下向用户隐藏所有Python级别的警告,而只在运行测试或其他调试时显示这些警告。用于向解释器传递过滤器配置的sys.warningoptions属性可以作为一个标记,表示是否…...
C++力扣题目-- 二叉树层序遍历
102.二叉树的层序遍历(opens new window)107.二叉树的层次遍历II(opens new window)199.二叉树的右视图(opens new window)637.二叉树的层平均值(opens new window)429.N叉树的层序遍历(opens new window)515.在每个树行中找最大值(opens new window)116.填充每个节点的下一个右…...
前端实现回车键触发搜索
前端实现回车键触发搜索 前言实现方法1. html里可以用 form 来实现2. 非form中的input 前言 搜索框是个常见的功能,除了用现有的ui组件库,有的时候必须要自己封装,所以涉及到点击按钮搜索和回车搜索都要实现 实现方法 1. html里可以用 for…...
k8s yaml文件pod的生命周期
Pod是k8s中最小限额资源管理组件,也是最小化运行容器化的应用的资源管理对象。 Pod是一个抽象的概念,可以理解为一个或者多个容器化应用的集合。 在一个pod当中运行一个容器是最常用的方式。 在一个pod当中同时运行多个容器,在一个pod当中…...
MPEG4Extractor
1、readMetaData 必须要找到 Moov box,找到 Mdat box或者 Moof box,并且创建了 ItemTable 大端 box 分为 box header 和 box content: box header由8个字节组成,前面四个字节表示这个box 的大小(包含这个头的8字节&a…...
我在工作一年时怎么都看不懂的编程写法。今天手把手教给你
作为一名程序员,你一定遇到或亲自写过这样的代码。有人将它形象的形容为shi山,或者被戏称为“面向保就业编程”。 以下面这个代码为例,其中的问题也显而易见,当越来越多的条件判断时,代码会变得非常臃肿,难…...
ThinkPHP5多小区物业管理系统源码(支持多小区)
基于 ThinkPHP5 Bootstrap 倾力打造的多小区物业 管理系统源码,操作简单,功能完善,用户体验良好 开发环境PHP7mysql 安装步骤: 1.新建数据库db_estate,还原数据db_estate.sql 2.修改配置文件:application/database.php 3.运…...
2024 年 API 安全:预测和趋势
随着技术以前所未有的速度不断进步,API(应用程序编程接口)安全性的复杂性也随之增加。随着 API 在现代应用程序和服务中的激增,组织将需要更好地了解其 API 环境以及 API 给运营带来的风险。 到 2024 年,预计几个关键…...
3D模型UV展开原理
今年早些时候,我为 MAKE 杂志写了一篇教程,介绍如何制作视频游戏角色的毛绒动物。 该技术采用给定的角色 3D 模型及其纹理,并以编程方式生成缝纫图案。 虽然我已经编写了一般摘要并将源代码上传到 GitHub,但我在这里编写了对使这一…...
云计算——弹性云计算器(ECS)
弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
线程同步:确保多线程程序的安全与高效!
全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分ÿ…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...
UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...
MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...

