内网信息收集
本机基础信息收集
当通过web渗透或者其他方式活动服务器主机权限之后,需要以该主机作为跳板,对内网环境进行渗透,对于攻陷的第一台主机,其在内网中所处的网络位置、当前登录的用户、该用户有什么样的权限、其操作系统信息、网络配置信息及当前运行的进程信息等都是未知的,这就需要测试人员以当前主机为中心进行信息收集。
1、查看当前用户、权限
whoami /all
查看当前用户以及当前用户所处的用户组、所拥有的特权等信息。
2、查看网络配置信息
ipconfig /all
查看当前主机的网络配置情况,包括主机的IP地址、主机名、各网络适配器的信息等,可以从中判断出当前主机所处的内网网段
根据搜索出的结果有两个适配器本地连接5和本地连接,分别连通192.168.5.128/24和192.168.52.143/24这两个网段,在后面的横向渗透过程中,测试人员可以通过扫描这两个网段来探测内网中存活的主机。
其中本地连接中的DNS服务器的IP地址。在域环境中,DNS服务器的IP地址通常为域控制器地址。
3、查看主机路由信息
route print
在路由表中的“网络目标”都是主机可以直接访问到的。
4、查看操作系统信息
systeminfo
查看当前主机的操作系统信息,包括当前主机的主机名、操作系统版本、系统目录、所处的工作站(域或工作组)、各网卡信息、安装的补丁信息等
5、查看端口连接信息
执行以下命令,查看当前主机的端口连接情况,包括当前主机的TCP、UDP等端口监听或开放状况,以及当前主机与网络中其他主机建立的连接情况
netstat -ano
与当前主机建立连接的不仅有公网主机还有内网主机。当内网其他主机访问当前主机时,二者就会建立连接,有助于测试人员收集内网地址段信息的切入点。
6、查看当前会话列表
执行以下命令,查看当前主机与所连接的客户端主机之间的会话
net session
7、查看当前网络共享信息
net share
8、查看已连接的网络共享
查看当前主机与其他主机远程建立的网络共享连接
net use
9、查看当前进程信息
查看当前主机的所有进程的信息
tasklist
通常,测试人员可以根据得到的进程列表确定目标主机上本地程序的运行情况,并对目标主机上运行杀毒软件等进行识别。执行命令:tasklist /SVC之后把内容传到在线网站,查看存在哪些杀毒软件。
wmic process get Name,ProcessId,ExecutablePath
通过WMIC查询主机进程信息,并过滤出进程的路径、名称和PID
WMIC是微软为Windows管理规范(Windows Management Instrumentation,WMI)提供的一个命令行工具,提供从命令行接口和批处理脚本执行系统管理的支持。
执行以下命令,查看指定进程的路径信息。
wmic process where Name="lsm.exe" get ProcessId,ExecutablePath
10、查看当前服务信息
wmic service get Caption,Name,PathName,StartName,State
查看当前所有服务的信息,并过滤出服务的名称、路径、创建时间、运行状态信息。
wmic service where Name="WebClient"get Caption,PathName,State
11、查看计划任务信息
查看单签主机上所有的计划任务。
schtasks /query /v /fo list
12、查看自启程序信息
wmic startup get Caption,Command,Location,User
查看当前主机上所有的自启程序信息,并过滤出程序名称、所执行的命令、程序的路径、所属用户。
13、查看系统补丁安装信息
wmic qfe get Caption,CSName,Description,HotFixID,InstalledOn
查看当前主机安装的补丁列表,并过滤出补丁链接、名称、描述、补丁编号以及安装时间。通常,测试人员可以根据目标主机的操作系统版本和缺少的补丁来辅助后面的提权操作。
14、查看应用安装信息
wmic product get Caption,Version
查看目标主机上安装的应用软件信息,并过滤出应用的名称和版本。
15、查看本地用户/组信息
net user
net user <username> #查看指定用户详细信息
net localgroup administrators
查看本地管理员组。
可以看到,本地管理员组中除了本地管理员Administrator,还包含域全局组“GOD\Domain Admins”,其在该主机加入域时自动被添加到计算机本地Administrators组中,所以Domain Admins组拥有该计算机的管理权限。
执行以下命令,可以在目标主机本地创建一个新的用户并加入本地管理员组:
net user <username> <password> /add #创建本地用户
net localgroup administrators <username> /add #将用户加入本地管理员组
16、查看当前登录的用户
query user
查看氮气概念主机登录的用户。
域内基础信息收集
1、判断是否存在域环境
net config workstation
查看当前工作站的信息,包括当前计算机名、用户名、系统版本、工作站、登录的域等信息。
2、查看域用户信息
net user /domain
查看指定用户:
net user <username> /domain
获取所有用户的SD、所属域和用户描述信息
wmic useraccount get Caption,Domain,Description
注意:只有域用户才有权限执行域内查询操作。而计算机本地用户除非提升为本地
系统权限,否则只能查询本机信息,无法查询域内信息并提示“拒绝访问”。这是因为,
在域环境中,所有与域有关的查询都需要通过域控制器来实现,并且需要经过Kerberos
协议进行认证。
3、查看域用户组信息
net group /domain
常见的用户组。
- Schema Admins(架构管理员组)————最重要的权限
本地组:
本地域组的权限
- Administrators(管理员组) ————最重要的权限
- Remote Desktop Users(远程登录组)
- Print Operators(打印机操作员组)
- Account Operators(帐号操作员组)
- Server Operaters(服务器操作员组)
- Backup Operators(备份操作员组)
根据表中域组名称来查询常见用户组。查询域管理员组:
net group "Domain Admins" /domain
查询域用户组:
net group "Domain Users" /domain
在默认情况下,Domain Admins组和Enterprise Admins组中的用户对域内所有域控制器和域成员主机拥有完全控制权限。
4、查看域内密码策略
net accounts /domain
查询域内用户的密码策略,测试人员可以根据密码策略构造字典,并发起爆破攻击。
5、查看域控制器列表
net group "Domain Controllers" /domain
查询域控制器组,可以得到所有的域控制器的主机名
也可以使用nltest命令来查询。
nltest /DCLIST:god.org
6、查看主域控制器
net time /domain
在域环境中,主域控制器会同时被用作时间服务器,使得域中所有计算机的时钟同步。执行以下命令,通过查询时间服务器来找到主域控制器的名称。
7、定位域控制器
知道目标主机的主机名后,可以直接对主机名执行pig命令,根据执行返回的内容即可得知目标主机在内网中的P地址。
ping owa.god.org
得到域控制器owa的IP地址。除此之外,域控制器往往在域内同时会被用作DNS服务器,因此找到当前主机的DNS服务器地址就可以定位域控。
8、查看域信任关系
域信任用于多域环境中的跨域资源的共享。一般情况下,一个域的用户只能访问本域内的资源,·无法访问其他域的资源,而要想不同域之间实现互访就需要建立域信任。执行以下命令,可以查询当前主机所在域和其他域的信任关系。
nltest /domain_trusts