内网安全:Windows信息收集

收集本机信息

查询网络配置信息

获取本机网络配置信息

ipconfig /all  

 

查询操作系统及软件信息

查询操作系统版本信息

systeminfo | findstr /B /C:"OS Name" /C:"OS Version"     

如果是中文版操作界面

systeminfo | findstr /B /C:"OS 名称" /C:"OS 版本" 

 

查看系统体系结构

echo %PROCESSOR_ARCHITECTURE%

 

查看安装的软件及版本

用wmic命令

wmic product get name,version
wmic product list brief  

用powershell命令  

powershell "Get-WmiObject -class Win32_Product |Select-Object -Property name,version"

  

查询本机服务信息

查询本机服务信息

wmic service list brief

  

 

查询进程列表

查看当前进程列表和进程用户,分析软件、邮件客户、vpn和杀毒软件进程

tasklist

查看进程信息 

wmic process list brief

常见杀软对应的进程名

360tray.exe 360安全卫士
360sd.exe 360杀毒
ZhuDongFangYu.exe 

360主动防御 

KSafeTray.exe

金山卫士

SafeDogUpdateCenter.exe

SafeDogTray.exe

SafeDogGuardCenter.exe

安全狗
mssecess.exe 微软杀毒
rfwmain.exe 瑞星防火墙

D_Safe_Manage.exe

d_manage.exe

D盾

hipstray.exe

wsctrl.exe

usysdiag.exe

火绒
QQPCRTP.exe QQ电脑管家

 

查询启动程序信息

wmic startup get command,caption

 

查询计划任务

schtasks /query /fo LIST /v

  

查询主机开机时间

net statistics workstation

  

查询用户列表

net user

通过分析用户列表,可以找出内网机器的命名规则。  

 

获取本地管理员信息

net localgroup administrators

 

查看当前在线用户 

query user || qwinsta

 

列出或断开本地计算机与所连接的客户端之间的对话

net session

 

  

查询端口列表

查看端口列表 开放端口所对应的服务和应用程序

netstat -ano

此时可以看到当前机器和那些主机建立连接,以及TCP、UDP、等端口的使用监听情况  

 

查看补丁列表

查询系统详细信息,注意版本、位数、域、补丁信息、更新频率

systeminfo

 

 

使用wmic查看安装在系统中的补丁:名称,描述,ID,安装时间

wmic qfe get Caption,Description,HotFixID,InstalledOn

  

 

查询本机共享列表

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

net share

  

利用wmic命令查找共享列表

wmic share get name,path,status

  

 

查询路由表及所有可用接口ARP缓存表

查询路由表及所有可用接口的ARP(地址解析协议)缓存表

route print
arp -a

  

查询防火墙相关配置

关闭防火墙

netsh firewall set opmode disable //Windows Server 2003及之前版本
netsh advfirewall set allprofiles state off  //Windows Server 2003之后的版本

  

查看防火墙配置

netsh firewall show config

 

修改防火墙配置

/*WindowsServer 2003及之前的版本*/
允许指定程序全部连接

netsh firewall add allprogram  c:\nc.exe "allow  nc" enable 


/*WindowsServer 2003之后的版本*/
允许指定程序进入

netsh advfirewall firewall add rule name="pass nc" dir=in action=allow program=“C: \nc.exe"
允许指定程序退出 
netsh advfirewall firewall add rule name="Allow nc" dir=out action=allow program=“C: \nc.exe"
允许3389端口放行
netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow

 自定义防火墙日志储存位置

netsh advfirewall set currentprofile logging filename "C:\windows\temp\fw.log"

  

 

查看代理配置情况

查看服务器127.0.0.1的8080端口的代理配置信息

reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings"

  


查询并开启远程连接服务

查看远程连接端口(显示出来的是16进制)

REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /V portNumber

在Windows Server 2003中开启3389端口

wmic path win32_terminalservicesetting where (_CLASS !="") call setallowtsconnections 1

 

在Windows Server 2008和Windows Server 2012中开启3389端口  

wmic /namespace:\\root\cimv2\terminalservices path win32_terminalservicesetting where (_CLASS !="") call setallowtsconnections 1

wmic /namespace:\\root\cimv2\terminalservices path win32_tsgeneralsetting where (TerminalName='RDP-Tcp') call setuserauthenticationrequeired 1

reg add "HKLM\SYSTEM\CURRENT\CONTROLSET\CONTROL\TERMINAL SERVER" /v fSingleSessionPerUser /t REG_DWORD /d 0 /f

 

查询当前权限

获取域SID

whoami /all

 

查询指定用户的详细信息

net user XXX /domain

  

判断是否存在域

收集了本机 相关信息后就要判断内网中是否存在域。如果存在,就需要判断所控主机是否在域内

使用ipconfig命令

执行ipconfig /all,得到域名,然后通过反向解析查询命令nslookup来解析域名的ip地址,判断域控制器和DNS服务器是否在同一网段

nslookup hack.testlab

 

 

查看系统详细信息

如果域为“WORKGROUP”表示当前服务器不在域内

systeminfo 

  

查询当前登陆域及登陆用户信息

工作站域DNS名称为域名(如果是workgroup表示非域)

登陆域表示当前登陆的是域用户还是本地用户

net config workstation

  

判断主域

域服务器通常会作为时间服务器使用

net time /domain

1、存在域但当前用户不是域用户:  

 发生系统错误5,拒绝访问

2、存在域且当前用户是域用户

 

 

 3、不存在域

 

 

 

探测域内存活主机

利用NetBIOS快速探测内网

nbtscan - NETBIOS nameserver scanner (unixwiz.net)  

 

利用ICMP协议快速探测内网

使用命令循环ping整个c段

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

 

 

扫描域内端口

查询端口开放信息,了解主机开放服务,还可以找出其开放服务的漏洞

利用telnet命令进行扫描

如果只是像快速探测某台主机的某个常规高危端口是否开放,使用telnet命令是最方便的(需要打开服务)

 

Metasploit端口扫描

search portscan查找模块

使用auxiliary/scanner/portscan/tcp模块

 

Nishang的Invoke-PortScan模块

首先更改powershell脚本执行策略

使用 Import-Module .\nishang.psm1将Nishang导入

使用Get-Command -Module nishang 查看导入命令

使用Get-Help Invoke-PortScan -full命令查询Invoke-PortScan脚本使用方法

Invoke-PortScan -StartAddress 192.168.1.1 -EndAddress 192.168.1.255 -ResolveHost

  

 

收集域内基础信息

确定了当前内网拥有的域,且所控制的主机在域内,就可以进行域内相关的信息收集了

查询域

net view /domain

 

 

 

查询域内所有计算机

可以通过计算机的名称初步判断

例如dev是开发服务器。NAS是存储服务器。fileserver是文件服务器

net view /domain:HACKE

 

 

 

查询域内所有用户组列表

net group /domain

 

 

可以看到,该域内有13个组。系统自带的常见用户身份如下
Domain Admins::域管理员。
Domain Computers:域内机器。
Domain Controllers:域控制器。
Domain Guest:域访客,权限较低。
Domain Users:域用户。
Enterprise Admins:企业系统管理员用户。
在默认情况下, Domain Admins和 Enterprise Admins对域内所有域控制器有完全控制权限。

 

查询所有域成员计算机列表

net group "domain computers" /domain

 

 

 

获取域密码信息

获取域密码策略,长度,错误锁定等信息

net accounts /domain

 

 

 

获取域信任信息

nltest /domain_trusts

 

 

 

查找域控制器

查看域控制器的机器名

机器名为DC

nltest /DCLIST:hacke

netdom query pdc

 

 

查看域控制器的主机名

主机名为dc

Nslookup -type=SRV _ldap._tcp

 

查看当前时间

net time /domain

  

查看域控制器组

其中有一台机器名为DC的域控制器(实际网络中一般存在两台域控制器,防止故障)

net group :Domain Controllers" /domain

 

 

获取域内的用户和管理员信息

查询所有域用户列表

net user /domain

 其中krbtgt用户不仅可以创建票据授权服务的加密密钥,还可以实现多种域内权限持久化方法

 

获取域内用户的详细信息

常见参数包括用户名、描述信息、SID、域名、状态

wmic useraccount get /all

 

查询本地管理员组用户

net localgroup administrators

 Domain Admins组中的用户默认为域内机器的本地管理员用户

  

查询域管理员用户

net group "domain admins" /domain

  

查询管理员用户组

net group "Enterprise Admins" /domain

  

  

定位域管理员

定位域管理员常规的渠道:日志和会话。

日志是指本地机器的管理员日志,可以使用脚本或者Wevtuyil工具导出查看。

会话是指域内每台机器的登录会话,可以使用netsess.exe或PowerView等工具查询

 

PowerView脚本 

powershell.exe -exec bypass -Command "& {Import-Module C:\Users\testuser\PowerView\PowerView.ps1; Invoke-UserHunter}"

 

 

查找域管理进程

列出本机的所有进程及进程用户

tasklist /v

  

  

利用Powershell收集域信息

PowerView脚本

PowerSploit进入Recon目录

使用 Import-Module .\PowerView.ps1将PowerView导入

Power View的常用命令如下。
Get-NetdDomain:获取当前用户所在域的名称。
Get-NetUser:获取所有用户的详细信息。
Get-NetDomain Controller:获取所有域控制器的信息
Get-NetComputer:获取域内所有机器的详细信息。

Ge- NetOU:获取域中的OU信息
Get-NetGroup:获取所有域内组和组成员的信息。
Get-NetFileServer:根据SPN获取当前域使用的文件服务器信息。
Get- NetShare:获取当前域内所有的网络共享信息。
Get-NetSession:获取指定服务器的会话。
Get- NetRDPSession:获取指定服务器的远程连接。
Get- NetProcess:获取远程主机的进程。
Get-UserEvent:获取指定用户的日志。
Get-ADObject:获取活动目录的对象。
Get- NetGPO:获取域内所有的组策略对象。
Get-DomainPolicy:获取域默认策略或域控制器策略。
Invoke- UserHunter:获取域用户登录的计算机信息及该用户是否有本地管理员权限。
Invoke- ProcessHunter:通过查询域内所有的机器进程找到特定用户。
Invoke- UserEventHunter:根据用户日志查询某域用户登录过哪些域机器。

 

  

  

  

  

  

 

 

 

Powershell脚本执行策略

为了防止使用者运行恶意脚本, Powershell提供了一个执行策略。在默认情况下,这个执行策略被设置为“不能运行”。

如果 Powershell即本无法运行,可以使用下面的 cmdlet命令查询当前的执行策略。

Get-Executionpolicy

 

设置执行策略Set-executionpolicy <policy name>

Restricted:脚本不能运行(默认设置)。
RemoteSigned:在本地创建的脚本可以运行,但从网上下载的脚本不能运行(拥有数字证书签名的除外)。
AllSigned:仅当脚本由受信任的发布者签名时才能运行。
Unrestricted:允许所有脚本运行。


  

 

posted @ 2021-08-21 20:23  1_Ry  阅读(862)  评论(0编辑  收藏  举报