内网渗透-windows信息收集(实战命令与工具)

2023-10-26

一、前言

  渗透的本质是信息搜集,而信息搜集整理为后续的情报跟进提供了强大的保证。以下列举常用的信息收集命令与工具。

二、Windows信息收集

(一)CMD 本机信息收集

# 查看在线用户
query user
# 查看路由表
arp -a
# 查看信息信息
systeminfo
# 查看网络信息
ipconfig /all
# 查看进程信息
tasklist /svc
# 查看端口信息
netstat -ano
# 查看共享文件
net share
wmic share get name,path,status
# 查看文件权限
icacls \\127.0.0.1\c$\$recycle.bin
# 内外资产对应
for /f "delims=" %i in (p.txt) do @ping -w 1 -n 1 %i | findstr /c:"[10." /c:"[192." /c:"[172." >> out.txt
for /f "delims=" %i in (p.txt) do @ping -w 1 -n 1 %i | findstr "TTL=" >> out1.txt
# 获取磁盘空间大小 1
for /f "tokens=1-3" %a in ('WMIC LOGICALDISK GET FreeSpace^,Name^,Size ^|FINDSTR /I /V "Name"') do @echo wsh.echo "%b" ^& " free=" ^& FormatNumber^(cdbl^(%a^)/1024/1024/1024, 2^)^& "G"^& " size=" ^& FormatNumber^(cdbl^(%c^)/1024/1024/1024, 2^)^& "G" > %temp%\tmp.vbs & @if not "%c"=="" @echo( & @cscript //nologo %temp%\tmp.vbs & del %temp%\tmp.vbs
# 获取磁盘空间大小 2
wmic logicaldisk get caption,freespace,size 
wmic /node:127.0.0.1 /user:"domain\user" /password:"password" logicaldisk get caption,freespace,size
# 获取磁盘盘符
wmic logicaldisk where drivetype=3 get deviceid
# 远程获取盘符
wmic /node:127.0.0.1 /user:"domain\user" /password:"password" logicaldisk where drivetype=3 get deviceid
# 查看ip所在地
curl ipinfo.io
# 批量测试用户权限
for /f %i in (error.log) do @net use \\%i\ipc$ "password" /user:domain\username && dir \\%i\c$ $ net use \\%i\ipc$ /d /y >> i.txt
# 获取连接过的wifi密码:
for /f "skip=9 tokens=1,2 delims=:" %i in ('netsh wlan show profiles') do @echo %j | findstr -i -v echo | netsh wlan show profiles %j key=clear
# 列目录
dir /s /b c:\

(二)CMD 域信息收集

# 域用户
net user /domain
# 域用户组
net grouop /domain
# 域信任
nltest /domain_trusts
# 用户密码策略
net accounts /domain
# 查看指定主机共享
net view \\ip /domain
# 查看域管理员组的用户
net group "Domain admins" /domain
# 查看域内机器
net group "Domain Computers" /domain
# 查看企业管理员组的用户
net group "Enterprise admins" /domain
# 查看域控
net group "Domain Controllers" /domain

(三)Powershell命令信息收集

Windows PowerShell是一种命令行外壳程序和脚本环境,它内置在Windows7及其以上的系统中,使命令行用户和脚本编写者可以利用.NET Framework的强大功能。PowerShell无须写到磁盘中,它可以直接在内存中运行。
#获取域林信息
powershell -exec bypass -command Get-ADForest
#获取当前域信息
powershell -exec bypass -command Get-ADDomain
#查看域控
powershell -exec bypass -command Get-ADDomainController
#查看所有域主机
powershell -exec bypass -command Get-ADComputer -filter *
#查看所有域用户
powershell -exec bypass -command Get-ADUser -filter *
#获取林中所有受信任的域对象
powershell -exec bypass -command Get-ADTrust -Filter *

# 获取磁盘空间大小
## Get-CimInstanc
Get-CimInstance -ClassName Win32_LogicalDisk | Select-Object -Property DeviceID,FreeSpace,Size

Get-CimInstance -ClassName Win32_LogicalDisk | Select-Object -Property DeviceID,@{'Name' = 'Size (GB)'; Expression= {[math]::Round($_.Size/1GB,2)}},@{'Name'='FreeSpace (GB)';Expression={[math]::Round($_.FreeSpace/1GB,2)}}

powershell -exec bypass -command "Get-CimInstance -ClassName Win32_LogicalDisk | Select-Object -Property DeviceID,@{'Name' = 'Size (GB)'; Expression= {[math]::Round($_.Size/1GB,2)}},@{'Name'='FreeSpace (GB)';Expression={[math]::Round($_.FreeSpace/1GB,2)}}"

## Get-WmiObject
Get-WmiObject -Class win32_logicaldisk | Format-Table DeviceId, @{n="Size(GB)";e={[math]::Round($_.Size/1GB,2)}},@{n="FreeSpace(GB)";e={[math]::Round($_.FreeSpace/1GB,2)}}

powershell -exec bypass -command "Get-WmiObject -Class win32_logicaldisk | Format-Table DeviceId, @{n="Size(GB)";e={[math]::Round($_.Size/1GB,2)}},@{n="FreeSpace(GB)";e={[math]::Round($_.FreeSpace/1GB,2)}}"

## Get-Volume
Get-Volume
Get-Volume c
## Get-PSDrive
Get-PSDrive
Get-PSDrive c

3.1 知识补齐 Get-CimInstance 与 Get-WmiObject区别

这里引发一个问题,Get-CimInstance 与 Get-WmiObject 调用相同的Class实现相同的功能,有啥区别?应该使用哪一个?

CIM vs WMI
“通用信息模型”(CIM)是一种用于访问和显示计算机信息的开源标准。这是一个已经存在多年的行业标准,但它没有包括访问远程计算机上的数据的方法。
Windows Management Interface (WMI) 是微软针对windows平台,对CIM的一种实现。但是微软进加入了DCOM和RPC。WMI cmdlets使用DCOM访问远程机器,但DCOM这玩意属于“防火墙不友好”,就是要使用很多端口,你得配置好多防火墙规则,远程机器必须允许135, 445, 1024-1034端口,不方便不说还不安全。
微软在2012年发布了Windows Remote Management(WinRM),使用Web Services for Management protocol (WS-Man协议),这个WSMan协议使用5985端口(HTTP)和5986端口(HTTPS),防火墙非常友好。对应的新的cmdlets也在PowerShell 3.0 中加入。
旧的 WMI cmdlet 和新的 CIM cmdlet 都是基于 CIM 的。WMI 和 CIM cmdlet 之间的区别在于访问远程计算机时使用的协议和安全性。一旦他们到达远程计算机并进行身份验证,WMI 和 CIM 就会访问相同的数据。

应该使用哪一个?
毫无疑问,WMI 正在被弃用。今天的 PowerShell 严重依赖 PSRemoting 和包含的安全功能。Microsoft 在 PowerShell v3.0 中引入了基于 CIM 的 cmdlet 和 PSRemoting。任何运行 Windows 7 或更高版本和 Server 2008 SP2 及更高版本的计算机都可以并且应该使用Get-CIMInstance,大大提高您的安全性。

关系图如下:

img

(四)导出域信息(低权限可用)

4.1 LDAPDomainDump导出 - 常用

LDAPDomainDump是一款通过LDAP协议实现的活动目录信息导出工具。在活动目录域中,任何一个有效的域用户均可以通过LDAP协议来查询域内大量的信息。如通过adexplorer、adfind等工具连接查询。但是这类工具只能实时连接查询,无法将所有数据导出。而ldapdomaindump这款工具可以通过LDAP收集解析导出数据,并将其输出为HTML、CSV、TSV等格式。
# 项目地址:
# https://github.com/dirkjanm/ldapdomaindump
# ldapdomaindump.py
python ldapdomaindump.py ip -u domainname -p password -o filepath

# python打包exe
pip install pyinstaller
pyinstaller -F -w ldapdomaindump.py
ldapdomaindump.exe ip -u domainname -p password -o filepath

4.2 ADExplorer

# 微软签名工具
https://docs.microsoft.com/en-us/sysinternals/downloads/adexplorer

(五)内网扩散信息收集

端口扫描、banner识别

# fscan
# https://github.com/shadow1ng/fscan
fscan -h 192.168.1.1/24
## 不进行爆破、不进行poc扫描
fscan -h 192.168.1.1/24 -nobr -nopoc

# serverscan
# https://github.com/Adminisme/ServerScan
serverscan -h 192.168.1.1/24

三、总结

  信息收集的详细程度就决定了渗透的深度和广度,所以不管是web安全还是内网安全等,信息收集是很重要的一个环节,所以熟悉cmd命令,powershell命令也是必不可少的,不能完全的依赖工具,工具需要落地这就增加了被发现的风险。各位师傅有好的意见和建议欢迎评论指教,感谢。微信公众号搜索关注艺说IT,发送消息:渗透书籍,立即获取下载链接。对你有用的话请一键三连,感谢。

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

内网渗透-windows信息收集(实战命令与工具) 的相关文章

  • Windows Azure 虚拟机在扩展时访问网络速度很慢

    我正在我的小型 azure VM 上运行一些启动脚本 cmd bat 其中包括从已安装的 VHD 进行文件传输操作 通常会在大约 3 分钟内完成 复制文件并使用命令行提取 500Mb zip 文件 7z 当我扩展到约 150 个实例时 相同
  • 通过.NET/C#发送传真

    如何在 NET 中发送传真 我们有一个传真服务器 我们需要通过它将文件传真给客户 由于我们有传真服务器 我不认为我必须在我的机器上配置传真调制解调器 对吧 它只会通过传真服务器吗 有没有好的免费 或便宜 传真 API 在我的研究中 我遇到过
  • 使用 Ant build 命令为目录生成校验和

    我尝试生成checksum questions tagged checksum对于目录使用ant questions tagged ant 我已尝试以下命令 但它会在每个文件的每个文件夹内递归生成
  • Windows 上的 ruby​​ 中出现 SSL 错误

    我收到以下错误 C Users user Desktop folder gt ruby exchange rate rb C Ruby23 x64 lib ruby 2 3 0 net http rb 933 in connect nonb
  • 如何在 Windows 路径中使用卷标?

    我想使用批处理文件从可移动驱动器复制文件 无论它获得的驱动器号是什么 到目前为止 还没有去 似乎没有任何现成的命令或第三方命令行工具可以处理基于卷标签的路径 我尝试了 FreeFileSync 但它可以大批量工作 并且我在这里需要精确的文件
  • 如何在 Windows 上以编程方式将 SVG 转换为 PDF?

    我希望在服务器上以编程方式将 SVG 转换为 PDF 文档 在 Windows 上执行此操作有哪些选项 我看过链接Inkscape http www inkscape org Batik http xmlgraphics apache or
  • 适用于 Windows 的 PHP 支持的 GUI 应用程序

    我知道 PHP 是一种解释性语言 对于基于 Web 的事物来说 不是为在实际操作系统上运行 GUI 应用程序而设计的 但是有没有办法呢 基本上 是否有一个框架 系统允许我创建 本机 基本上是二进制文件 exe 看起来像带有本机控件和所有内容
  • 在 Windows 上部署 Meteor

    我觉得很奇怪的是 没有关于如何将自己的 Meteor Web 应用程序部署到自己的 Windows 服务器上的详细分步说明 或者也许我只是无法使用谷歌找到这样的解释 在很多页面上 甚至在关于 SO 的一些问题上 我发现人们只是简单地说 bu
  • 如何在 powershell 中更改其他用户的特定注册表设置

    Goal 要编辑特定用户 而不是其他用户 的特定注册表项设置 请在电源外壳 Known 操作系统 Windows 8 1 Embedded Industry Pro 与Win 8 1相同 但具有一些嵌入式功能 我可以在目标计算机上手动执行此
  • Linux 和 Windows 上的相同计算 --> 结果不同

    我编写了以下算法来将十进制值转换为二进制 十六进制等 string toFormatFromDecimal long long t Format format int digitCount ceil log t log int format
  • git lineends redux - Mac OS git 与 Windows 用户的贡献

    我在 Mac OS X 上进行开发 我有一个用户正在贡献带有 CRLF 行结尾的代码 他目前不使用 git 我创建一个分支 然后将我的工作树切换到它 我将他的文件复制到工作树中 当我尝试暂存文件时 收到错误fatal CRLF would
  • Winforms 问题 - 创建窗口句柄时出错[重复]

    这个问题在这里已经有答案了 我们在 Winform 应用程序中看到此错误 任何人都可以帮助您了解为什么会看到此错误 更重要的是如何修复它或避免它发生 System ComponentModel Win32Exception Error cr
  • 如何使用 msilib 从 python 模块创建 .msi 文件的示例

    谁能给我一个如何使用 python 的例子msilib http docs python org library msilib html标准库模块从自定义 python 模块创建 msi 文件 例如 假设我有一个名为 Cool py 的自定
  • 将最新的 R 安装路径从注册表添加到 PATH windows 7/8/10

    嗨 我是 Windows 批处理新手 我想向打电话的同事分发一个 runMe bat 文件Rscript myRfile R处理一些数据文件 但众所周知 我的同事在不同地方安装了 R 我不能指望他们知道如何将 Rscript 添加到 PAT
  • 可可消息循环? (与 Windows 消息循环相比)

    在尝试将我的游戏引擎移植到 Mac 时 我偶然发现了一个基本 但很大 的问题 在 Windows 上 我的主要代码如下所示 非常简化 PeekMessage check for windows messages switch msg mes
  • npm 在 Windows 中不被识别为内部或外部命令

    当我尝试跑步时npm install在 Windows 上 我收到以下错误 怎样才能摆脱它呢 D Xampp htdocs laravelchat gt npm install CALL C Program Files nodejs nod
  • 如何在 Windows 上以纯 PHP 形式提取 .tar 文件?

    我有一个 PHP 脚本 我想在 Windows 上运行 我需要提取 tar 文件 如何提取 tar 文件 我知道 PharData 类 它可以在 Linux 上运行 但不能在 Windows 上运行 我的脚本就死了 没有错误输出或任何东西
  • 命令中带空格的 Windows C 系统调用

    我无法使用名称和参数中的空格进行系统调用 例如 system c program files something example exe c my files example txt 我尝试过各种我知道的方法来逃避 但没有任何效果 我努力了
  • 字符串比较在 PowerShell 函数中不起作用 - 我做错了什么?

    我正在尝试创建一个别名git commit它还将消息记录到单独的文本文件中 然而 如果git commit回报 nothing to commit working directory clean 它不应该将任何内容记录到单独的文件中 这是我
  • PC 上 XNA 中的信箱和缩放

    有没有一种方法可以让我基本上以 1080p 或 720p 作为默认分辨率来开发 XNA 游戏 然后根据设置的分辨率将游戏中的所有内容缩放到适当的大小 而不必在每个 Sprite 中设置缩放因子Draw 方法 我的想法是 我可以基于 1080

随机推荐