内网渗透----windows信息收集整理

一、基础信息收集

1.信息收集类型

  • 操作系统版本、内核、架构
  • 是否在虚拟化环境中,已安装的程序、补丁
  • 网络配置及连接
  • 防火墙设置
  • 用户信息、历史纪录(浏览器、登陆密码)
  • 共享信息、敏感文件、缓存信息、服务等

2.系统信息

  • systeminfo
    功能:心事有关计算机及其操作系统的详细配置,包括操作系统配置,安全信息,产品ID和硬件属性(如RAM,磁盘空间和网卡)
    Egg
  • systeminfo /fo:csv
    输出为csv格式,默认为list格式显示有关计算机及其操作系统的详细配置信息,包括操作系统配置,安全信息,产品ID和硬件属性,如(RAM,磁盘空间和网卡)
  • systeminfo >> 1.txt
    输出到txt文件中
  • windows-Exploit-Suggester-master (不更新)(python2)
    检测漏洞

3.用户及用户组信息

  • whoami
    显示当前登录到本地系统的用户的用户,组和权限信息。如果没有参数使用,whoami将显示当前的域和用户名
    Egg:
    whoami/user 查看当前用户的用户名和sid
    whoami/groups 查看当前用户所属的用户组
    whoami/priv 查看当前用户的权限
  • net user
    添加或修改用户帐户或显示用户帐户信息。
    Eggs:
    net user 查看本机用户
  • net localgroup
    添加,显示或修改本地组
    Eggs:
    net localgroup
    net localgroup“administrators”查看administrators组的信息及成员
  • net accounts
    更新用户帐户数据库并修改所有帐户的密码和登录要求。可以用来查看密码策略等信息

4.最近登录信息

  • query user
    查看其它在线用户
    查看管理员登录时间
    查看管理员登录类型

5.网络信息

  • ipconfig
    显示所有当前TCP/1P网络配置值并刷新动态主机配置协议(DHCP)和域名系统(DNS)设置。在不带参数的情况下使用,ipconfig显示所有适配器的IP地址,子网掩码和默认网关。
    Eggs:
    ipconfig
    ipconfig/all
    ipconfig/displaydns 显示DNS客户端解析程序缓存的内容,其中包括从本地主机文件预加载的条目和计算机解析的名称查询的任何最近获取的资源记录。
  • route
    显示并修改本地IP路由表中的条目
    route print-4 查看ipv4路由信息
  • arp
    显示和修改地址解析协议(ARP)缓存中的条目,该缓存包含一个或多个用于存储1P地址及其解析的以太网或令牌环物理地址的表。
    Eggs:
    arp-a 显示arp缓存
  • netstat
    显示活动的TCP连接,计算机侦听的端口,以太网统计信息,IP路由表,1Pv4统计信息以及IPv6统计信息。
    Eggs:
    netstat-ano 显示活动的tcp、udp连接及它们对应的pid,地址与端口用数字表示
    netstat-ptcp 显示tcp连接
  • net share
    管理共享资源。在不带参数的情况下使用,net share显示关于在本地计算机上共享的所有资源的信息
    Eggs:
    net share 查看共享信息
    net sharec$ 查看c$共享的信息
  • net use
    将计算机连接到共享资源或将计算机与共享资源断开连接,或显示有关计算机连接的信息。该命令还控制持久的网络连接。没有参数的情况下,net use检索一个网络连接列表
    Eggs:
    net use

6.敏感文件

  • 密码管理器
    cmdkey /1
  • Hosts文件
    Hosts文件全名域名解析文件,用来建立一个主机名到ip地址的映射。它的功能是对dns做一个补充,用户可以通过控制这个文件的内容来控制某些域名的解析。
    Windows下hosts文件的位置:
C:\Windows\System32\drivers\etc\hosts
  • 回收站
    可以通过以下命令进入回收站文件夹:
    cd C:$RECYCLE.BIN
    这个文件夹及子文件夹是隐藏文件夹,如果我们直接使用dir命令而不加参数的话,是看不到文件夹中有什么的内容的。我们可以使用/ah参数(a显示具有指定属性的文件,h代表隐藏文件)来查看: dir/ah

7.IIS信息收集

IIS是微软开发的web服务器。在iis6中,我们可以通过adminscripts来管理服务器从is7开始,微软提供了一款叫做appcmd的工具。关于appcmd,微软提供了一套文档:
下面我们来简单介绍一下获取iis相关的信息

在安装了is7的服务器上,appcmd的位置在:

%systemroot%\system32\inetsrv下

Appcmd的语法如下:

APPCMD(command)(object-type)<identifier></parameter1:value1..>*

其中,command可以是list、add、delete和set。而object可以是app、site等等。
如果我们想列出网站列表,可以使用:

%systemroot%/system32/inetsrv/appcmd.exe list site

如果需要列出物理路径,可以使用:

%systemroot%\system32\inetsrv\appcmd.exe list vdir

注意这些操作都需要相应的权限

二、凭证收集

1.凭证收集

收集本机凭据是信息收集的一个非常重要的环节。通常我们可以收集的凭据包括但不限于:Windows hash(NTLM、LM),浏览器密码、cookie,远程桌面密码,VPN密码,WLAN密码,IIS服务器密码,FTP服务器密码等等。

2.Windows账户密码

Windows用户的密码加密后一般有两种形式:NTLM Hash和LM Hash(从windows Vista和2008开始,微软就取消了LMHash)
这些hash通常有两个存储的地方:对于本地用户,存储在SAM数据库中,对于域用户,则存储在域控制器的NTDS.dit数据库中。当用户登陆时,这些hash也可能贮存在内存中,能够被我们抓取到。

3.Windows Hash

在这里插入图片描述
在这里插入图片描述

4.SAM

SAM全称叫做安全帐户管理器(SAM),是Windows XP,Windows Vista,Windows 7,8.1和10中存储用户密码的数据库文件。

用户密码以散列格式存储在注册表配置单元中,既可以作为LMHash,也可以作为NTLMHash。这个文件可以在%SystemRoot%/system32/config/ SAM中找到,并且挂载在HKLM/SAM上。

为了提高SAM数据库的安全性,防止脱机软件破解,Microsoft在Windows NT 4.0中引入了SYSKEY函数。启用SYSKEY时,SAM文件的磁盘上副本将被部分加密,以便存储在SAM中的所有本地帐户的密码哈希值都使用密钥(通常也称为“SYSKEY")加密。

5.UAC

UAC这个名字大家初次听说可能比较陌生,其实,使用windows vista及以上操作系统的人都是接触过UAC的。举个例子:当我们右键某个可执行文件,选择以管理员身份运行,就会弹出一个对话框,依据当前用户权限的不同,可能是要求我们输入管理员凭据,也可能是询问我们是否允许该程序进行更改。这其实就是UAC。

UAC设计的目的就是通过合理地分配权限来保护数据和系统资源的安全。

UAC的一个作用就是帮助用户在不切换帐户的情况下既能选择在管理员权限下工作,又能选择在非管理员权限下工作。一般来说,用户以非管理员权限执行操作,只有在必要的时候,通过uac来暂时地提升权限。

6.离线凭证收集

提取SAM数据库hash
使用reg命令保存注册表键

reg save hklm\sam c:\sam.hive 
reg save hklm\system c:\system.hive

使用Invoke-NinjaCopy

Import-Module,\invoke-ninjacopy.ps1
Invoke-NinjaCopy-Path C:\Windows\System32\config\SAM-LocalDestination.\sam.hive 
Invoke-NinjaCopy-Path C:\Windows\System32\config\SYSTEM-LocalDestination.\system.hive

Saminside
使用Saminside离线提取sam数据库需要两个文件:sam与system
Cain
使用cain离线提取sam数据库需要两个文件:一个是数据库文件,另一个文件里保存了解密所需的syskey

7.离线凭证收集-其他方式

离线提取lsass进程
Vista及以上的系统可以打开任务管理器,选择显示所有用户的进程,找到1sass进程后右键创建转储文件

procdump.exe

procdump.exe -ma lsass.exe lsass.dmp

获取到内存转储文件后,就可以使用mimikatz来提取密码。这里需要注意的是运行mimikatz平台架构要与进行转储的系统兼容。命令如下:

sekurlsa::minidump lsass.dmp
sekurlsa::logonpasswords

8.在线凭证收集

Mimikatz
Mimikatz项目地址:https://github.com/gentilkiwi/mimikatz
功能:抓取lsass进程中的密码,提取sam数据库中的密码,提取chrome凭据,提取证书,支持pass-the-hash、pass-the-ticket等攻击方式,功能非常强大
Powershell版Mimikatz
项目地址:
https://github.com/PowershellMafia/Powersploit/blob/master/Exfiltration/Invoke-Mimikatz.ps1
可以通过powershell下载执行来运行

三、windows访问令牌

1.Windows登录过程

令牌(Access Tokens)是Windows操作系统安全性的一个概念。当用户登陆时,系统创建一个访问令牌,里面包含登录进程返回的SID和由本地安全策略分配给用户和用户的安全组的特权列表。以该用户身份运行的的所有进程都拥有该令牌的一个拷贝。系统使用令牌控制用户可以访问哪些安全对象,并控制用户执行相关系统操作的能力。

2.访问令牌

1.用户账户的安全标识(SID)
2.用户所属组的SID
3.识别当前登录会话的登录SID
4.用户或者用户组所保存的权限牌列表
5.所有者SID
6.主组SID
7.默认的DACL
8.访问令牌的来源
9.令牌是一个主令牌还是模拟令牌
10.限制的SID可选列表
11.当前模拟级别
12.其他统计

3.安全标识符(SID)

SID全称为Security Identifiers,是用户的唯一身份标识

4.Token

Windows有两种类型的Token:

  • Delegation token(授权令牌):用于交互会话登录(例如本地用户直接登录、远程桌面登录)
  • Impersonation token(模拟令牌):用于非交互登录(利用net use访问共享文件夹)

注:
两种token只在系统重启后清除
具有Delegation token的用户在注销后,该Token将变成lmpersonation token,依旧有效

5.令牌窃取

Token是一个用户的身份标识,窃取了Token就伪装了成了该用户
窃取Token需要SYSTEM权限
本机的SYSTEM无所不能,但在工作组或者域环境中窃取令牌的用处较大

posted @ 2019-04-14 18:24  浅笑996  阅读(295)  评论(0编辑  收藏  举报