前言
本篇继续阅读学习《内网安全攻防:渗透测试实战指南》,是第二章内网信息收集,主要介绍了当前主机信息搜集、域内存活主机探测、域内端口扫描、域内用户和管理员权限的获取、如何获取域内网段划分信息和拓扑架构分析等,并介绍了域分析工具BloodHound的使用(本篇笔记没记该工具)
我是谁?——对当前机器角色的判断
这是哪?——对当前机器所处网络环境的拓扑结构进行分析和判断
我在哪?——对当前机器所处区域的判断
一、收集本机信息
1、手动搜集
(1)查询网络配置
ipconfig /all
查看操作系统和版本信息
systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
//适用于英文的操作系统,中文的:
systeminfo | findstr /B /C:"OS 名称" /C:"OS 版本"
查看系统体系结构
echo %PROCESSOR_ARCHITECTURE%
查看安装的软件及版本、路径等
wmic product get name,version
Powershell版本:
powershell.exe "Get-WmiObject -class Win32_Product | Select-Object -Property name,Version"
wmic service list brief
tasklist
//或者
wmic process list brief
常见杀毒软件进程如下:
360sd.exe
360tray.exe
ZhuDongFangYu.exe
KSafeTray.exe
SafeDogUpdateCenter.exe
McAfee McShield.exe
egui.exe //NOD32
AVP.EXE //卡巴斯基
avguard.exe //小红伞
bdagent.exe //BitDefender
wmic startup get command,caption
schtasks /query /fo LIST /v
net statistics workstation
net user
//获取本地管理员组成员:
net localgroup adinistrators
//查看当前再线用户
query user || qwinsta
net session
netstat -ano
systeminfo
使用wmic命令查看安装在系统中的补丁:
wmic qfe get Caption,Description,HotFixID,InstalledOn
net share
//wmic:
wmic share get name,path,status
route print
arp -a
关闭防火墙
//windows server 2003之前
netsh firewall set opmode disable
//Windows server 2003之后
netsh advfirewall set allprofile state off
查看防火墙配置
netsh firewall show config
修改防火墙配置
windows server 2003之前允许指定程序全部连接
netsh firewall add allowedprogram c:\nc.exe "allow nc" enable
windows server 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"
(15)查看代理配置情况
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和2012中
wmic /namespace:\\root\cimv2\terminalservices path win32_terminalservicesetting where (__CLASS !="") call setallowtsconnections 1
//修改注册表方式
reg query "HKLM\System\CURRENT\CONTROLSET\CONTROL\TERMINAL SERVER" /v fSingleSessionPerUser /t REG_DWORD /d 0 /f
2、自动搜集
WMIC(Windows Management Instrumentation Command-Line,Windows管理工具命令行)是最有用的Windows命令行工具
书里提供了一个使用WMIC的脚本,执行上一节所有命令,并将结果写入HTML文件:
for /f "delims=" %%A in ('dir /s /b %WINDIR%\system32\*htable.xsl') do set "var=%%A"
wmic process get CSName,Description,ExecutablePath,ProcessId /format:"%var%" >> out.html
wmic service get Caption,Name,PathName,ServiceType,Started,StartMode,StartName /format:"%var%" >> out.html
wmic USERACCOUNT list full /format:"%var%" >> out.html
wmic group list full /format:"%var%" >> out.html
wmic nicconfig where IPEnabled='true' get Caption,DefaultIPGateway,Description,DHCPEnabled,DHCPServer,IPAddress,IPSubnet,MACAddress /format:"%var%" >> out.html
wmic volume get Label,DeviceID,DriveLetter,FileSystem,Capacity,FreeSpace /format:"%var%" >> out.html
wmic netuse list full /format:"%var%" >> out.html
wmic qfe get Caption,Description,HotFixID,InstalledOn /format:"%var%" >> out.html
wmic startup get Caption,Command,Location,User /format:"%var%" >> out.html
wmic PRODUCT get Description,InstallDate,InstallLocation,PackageCache,Vendor,Version /format:"%var%" >> out.html
wmic os get name,version,InstallDate,LastBootUpTime,LocalDateTime,Manufacturer,RegisteredUser,ServicePackMajorVersion,SystemDirectory /format:"%var%" >> out.html
wmic Timezone get DaylightName,Description,StandardName /format:"%var%" >> out.html
Empire提供了用于收集主机信息的模块
查看本机用户、域组成员、密码设置时间、剪贴板内容、系统基本信息、网络适 配器信息、共享信息等:
usemodule situational_awareness/host/winenum
execute
有管理员权限的情况下,查看目标主机事件日志、应用程序控制策略日志、RDP登录信息、PowerShell脚本运行和保存的信息等:
usemodule situational_awareness/host/computerdetails
whoami /all
有三种情况:本地普通用户、本地管理员用户、域内用户
如果当前内网中存在域,那么本地普通用户只能查询本机相关信息,不能查询域内信息;而本地管理员用户和域内用户可以查询域内信息。
域内的所有查询都是通过域控制器实现的(基于LDAP协议),而这个查询需要经过权限认证,所以,只有域用户才拥有这个权限;当域用户执行查询命令时,会自动使用Kerberos协议进行认证,无需额外输入账号和密码。
本地管理员Administrator权限可以直接提升为System权限(使用PsExec等),因此,在域中,除普通用户外,所有的机器都有一个机器用户(用户名为机器名加上$)。在本质上,机器的system用户对应的就是域里面的机器用户。所以,使用System权限也可以运行域内的查询命令。
2、查询指定用户的详细信息
net user xxx /domain
域控制器和DNS服务器是否在同一台服务器上?(使用nslookup反向解析)
ipconfig /all
//将查看到的DNS服务器用nslookup进行解析
nslookup dc.test.local
systeminfo
中的域即域名、登陆服务器指的是域控制器。
systeminfo | findstr /B /C:"登录服务器"
//如果结果不为"WORKGROUP"则主机为域主机
net group workstation
net time /domain
//命令用于查看域内时间,同时也可以查看域控制器
三种情况:
四、探测域内存活主机
1、NetBIOS快速探测
NetBIOS是局域网程序使用的一种API,为程序提供了请求低级别服务的统一的命令集。NetBIOS也是计算机的标识名,主要用于局域网中计算机的互访。
使用nbtscan(http://www.unixwiz.net/tools/nbtscan.html)
nbt.exe 192.168.1.0/20
对每个IPping
for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.1.%I | findstr "TTL="
通过ARPscan工具扫描探测内网
arp.exe -t 192.168.1.0/20
Empire中的ARPscan模块
usemode situational_awareness/network/arpscan
execute
Nishang中的Invoke-ARPScan.ps1
powershell.exe -exec bypass -Command "& (Import-module c:\windows\temp\Invoke-ARPscan.ps1; Invoke-ARPScan -CIDR 192.168.1.0/20)" >> c:\windows\temp\log.txt
type c:\windows\temp\log.txt
上传ScanLine进行扫描:
scanline -h -t 22,80-90,110,445 -u 53,161 -O c:\windows\temp\log.txt -p 192.168.1.1-254 /b
需要关注的点:
命令类似于
telnet DC 22
S扫描器是早期的快速端口扫描工具
S exe TCP 192.168.1.1 192.168.1.254 80,8080,3839 256./Banner /save
Metasploit不用多说
use auxiliary/scanner/portscan/tcp
set ports 1-1000
set RHOST 192.168.1.1
set THREADS 10
run
还可以使用如PowerSploit、NiShang的Invoke-portscan脚本 然后一些漏洞的信息可以参考
六、收集域内信息
本节的域内查询命令在本质上都是通过LDAP协议到域控制器上进行查询的,故需要域用户的权限,本地用户无法运行(除非是System用户)
在默认情况下,Domain Admins 和 Enterprise Admins 对域内所有域控制器有完全控制权限
命令如下:
net view /domain
//查询域
net view /domain:HACKE
//查询域内所有计算机
net group /domain
//查询域内所有用户组列表
net group "domain computers" /domain
//查询所有域成员计算机列表
net accounts /domain
//获取域内密码信息
nltest /domain_trusts
//域内信任信息
命令如下:
nltest /DCLIST:hacke
//查看域控制器的机器名
net time /domain
//查看当前时间
nslookup -type=SRV _ldap._tcp
//查看域控制器的主机名
net group "Domain Controllers" /domain
//查看域控制器组
netdom query pdc
//查看主控制器
//查询所有域用户列表
net user /domain
//获取域内用户的详细信息
wmic useraccount get /all
//查看存在的用户,但是这个只能在域控或者安装了对应服务的主机使用,否则会提示命令不存在
dsquery user
//查找目录中的计算机
dsquery computer
//查询本地管理员组用户,域内Domain Admins组中的用户默认为域内机器的本地管理员用户
net localgroup administrators
//查询域管理员用户组
net group "domain admins" /domain
//查询管理员用户组
net group "Enterprise Admins" /domain
九、定位域管理员
在内网中,通常会部署大量的网络安全系统和设备,例如IDS、IPS、日志审计、安全网关、反病毒软件等。
在一个域中,当计算机加入域后,会默认给域管理员组赋予本地系统管理员权限。也就是说,当计算机被添加到域中,成为域的成员主机后,系统会自动将域管理员组添加到本地系统管理员组中。因此,域管理员组的成员均可访问本地计算机,且具备完全控制权限。
在获取了Windows域中的普通权限在进行横向渗透时,需要知道域内用户登录的位置,是否是任何系统/主机的本地管理员,以及所属组等信息。能够使用的工具有:psloggedon.exe、PVEFindADUser.exe、netness.exe、hunter、NetView、PowerView。
1、psloggedon.exe
能够通过此工具查看远程计算机的资源,也就是说能够查看目标主机有哪些账户在登录状态
下载地址:
https://docs.microsoft.com/zh-cn/sysinternals/downloads/psloggedon
psloggedon.exe \\DC
2、PVEFindADUser.exe
PVEFindADUser能够用于查找活动目录用户登录的位置,枚举域用户,以及查找在特定计算机上登录的用户:本地用户、通过RDP登录的用户、用于运行服务和计划任务的用户。(这个工具需要.NET 3.5)
Windows Server 2012安装.NET 3.5可能不成功,需要指定安装源:
https://www.cr173.com/soft/921507.html
下载地址:
https://github.com/chrisdee/Tools/tree/master/AD/ADFindUsersLoggedOn
PVEFindADUser.exe <参数>
参数:
3、NetView.exe
NetView是一个枚举工具,使用WinAPI枚举系统,利用NetSessionEnum找寻登陆会话,利用NetShareEnum找寻共享,利用NetWkstaUserEnum枚举登录的用户。同时还能够查询共享入口和有价值的用户。
下载地址:https://github.com/mubix/netview
netview.exe <参数>
参数:
4、PowerView
PowerView是—款PowerShell脚本,提供了辅助定位关键用户的功能
下载地址:
https://github.com/PowerShellEmpire/PowerTools/tree/master/PowerView
5、Empire
Empire中也存在此类型的脚本:
usemodule situational_awareness/network/powerview/user_hunter
execute
6、Nmap的NSE脚本
通过Nmap的NSE脚本获取远程机器的登陆会话
smb-enum-sessions.nse获取域内主机的用户登录会话,查看当前是否有用户登录,无需管理员权限
下载地址:https://nmap.org/nsedoc/scripts/smb-enum-sessions.html
在获取了管理员权限的系统中寻找域管理员登录进程,进而搜集域管理员的凭据
一个假设情况:
渗透测试人员在某个内网环境中获得了一个域普通用户的权限,首先通过各种方法获得当前服务器的本地管理员权限,然后分析当前服务器的用户登录列表及会话信息,知道哪些用户登陆了这台服务器。如果渗透测试人员通过分析发现,可以获取权限的登录用户都不是域管理员账户,同时没有域管理员组的用户登录这台服务器,就可以使用另一个账号并寻找该账号在内网的哪台机器上具有管理权限,再枚举这台机器上的登录用户,然后继续进行渗透测试,直至找到一个可以获取域管理员权限的有效路径为止。
有一篇参考:五种寻找 “Domain Admin” 运行的进程的方法
//获取域管理员列表
net group "Domain Admins" /domain
//列出本机的所有进程和进程用户
tasklist /v
//查询域控列表
net group "Domain Controllers" /domain
//收集域管理员列表
net group "Domain Admins" /domain
//收集所有活动域的会话列表
netsess -h
然后可以用GetDomainAdmms(GDA)批处理脚本:
@echo off
cls
REM #######################################################
REM Author and Stuff
REM #######################################################
REM Script Name: Get Domain Admins (GDA)
REM Author: Scott Sutherland (nullbind) <scott.sutherland@netspi.com>
REM Publish Date: 12/5/2011
REM #######################################################
REM Shout Outz!
REM #######################################################
REM Thank you Mark Beard (pacmandu) <pacmandu@gmail.com> and humble-desser
REM for your updating the script to accept multipe part domain names.
REM #######################################################
REM Script Summary
REM #######################################################
REM The primary goal of this script is to locate systems
REM running processes with a Domain Admin account so that penetesters
REM can conduct cleaner privilege escalation in Active Directory domains.
REM This way pentesters dont have to spray shells all over the place with
REM metasploit+psexec+meterpreter and scrape for admin tokens. :)
REM #######################################################
REM Check Variables
REM #######################################################
REM - Target Domain
IF EXIST target del target
echo %userdnsdomain% | gawk -F "." "{print $0}" > target
SET /p target_domain= < target
DEL target
REM - Checking total number of words in a given domain name and save on totalvar
IF EXIST num_words del num_words
echo %userdnsdomain% | gawk -F "." "{ total = total + NF }; END { print total+0 }" > num_words
SET /p totalvar= < num_words
DEL num_words
REM - Define all variables to be used later (e.g: var1=hacking, var2=lab, var3=local)
IF EXIST domainname del domainname
FOR /L %%G IN (1,1,%totalvar%) DO (echo %userdnsdomain% | gawk -F "." "{print $%%G}" > %%G
SET /p var%%G= < %%G
gawk "BEGIN { while (a++<1) s=s \"dc=%%var%%G%%\"; print s }" >> domainname
DEL %%G )
REM - Parsing the domain variables to be insert into domain_parameters (e.g: dc=%var1%,dc=%var2%,dc=%var3%)
IF EXIST domainname_var del domainname_var
gawk "NR==1{x=$0;next}NF{x=x\",\"$0}END{print x}" domainname > domainname_var
DEL domainname
REM - Fix parsing issues
IF EXIST domainname_var2 del domainname_var2
SET /p temp_var= < domainname_var
@echo %temp_var% | sed "s/'//" > domainname_var2
SET /p domain_parameter= < domainname_var2
DEL domainname_var
DEL domainname_var2
REM #######################################################
REM - Preparing arguments passed by "-c" (custom) flag
REM #######################################################
IF EXIST c_target del c_target
@echo %2 > c_target
SET /p c_target_domain= < c_target
DEL c_target
IF EXIST c_num_words del c_num_words
@echo %2 | gawk -F "." "{ total = total + NF }; END { print total+0 }" > c_num_words
SET /p c_totalvar= < c_num_words
DEL c_num_words
IF EXIST c_domainname del c_domainname
FOR /L %%G IN (1,1,%c_totalvar%) DO (echo %2 | gawk -F "." "{print $%%G}" > %%G
SET /p c_var%%G= < %%G
gawk "BEGIN { while (a++<1) s=s \"dc=%%c_var%%G%%\"; print s }" >> c_domainname
DEL %%G )
REM - Parsing the domain variables to be insert into domain_parameters (e.g: dc=%var1%,dc=%var2%,dc=%var3%)
IF EXIST c_domainname_var del c_domainname_var
gawk "NR==1{x=$0;next}NF{x=x\",\"$0}END{print x}" c_domainname > c_domainname_var
DEL c_domainname
REM - Fix parsing issues
IF EXIST c_domainname_var2 del c_domainname_var2
SET /p c_temp_var= < c_domainname_var
@echo %c_temp_var% | sed "s/'//" > c_domainname_var2
SET /p c_domain_parameter= < c_domainname_var2
DEL c_domainname_var
DEL c_domainname_var2
if [%1] equ [] goto :SYNTAX
if [%1] equ [-h] goto :SYNTAX
if [%1] equ [-c] goto :CUSTOM
if [%1] equ [-a] goto :CURRENT
if [%1] equ [-l] goto :DUMPUSERSLDAP
if [%1] equ [-s] goto :DUMPUSERSSMB
goto :end
REM #######################################################
:SYNTAX
echo ------------------------------------------------------------
echo GET DOMAIN ADMIN (GDA)
echo ------------------------------------------------------------
echo This script can be used to enumerate users that exist in
echo the current machines domain and locate systems running
echo processes as a domain admin
echo ------------------------------------------------------------
echo Syntax:
echo -l Dump list of users from current domain using LDAP
echo -s dumps list of users from current domain using SMB (enum)
echo -c Get list of DA sessions - custom domain
echo -a Get list of DA sessions - local machine's domain
echo ------------------------------------------------------------
REM #######################################################
REM Check for require binaries
REM #######################################################
IF NOT EXIST NetSess.exe GOTO missingfiles
IF NOT EXIST grep.exe GOTO missingfiles
IF NOT EXIST gawk.exe GOTO missingfiles
IF NOT EXIST adfind.exe GOTO missingfiles
IF NOT EXIST uniq.exe GOTO missingfiles
IF NOT EXIST findpdc.exe GOTO missingfiles
goto end
:missingfiles
echo ERROR
echo ----------------------------------------
echo The following required files
echo are missing:
echo - NetSess.exe
echo - grep.exe
echo - gawk.exe
echo - adfind.exe
echo - uniq.exe
echo - findpdc.exe
goto :end
:DUMPUSERSLDAP
IF EXIST users_ldap.txt del users_ldap.txt
echo HERE:%domain_parameter%
@adfind -b %domain_parameter% -f "objectcategory=user" -gc | grep -i "sAMAccountName:" | gawk -F ":" "{print $2}" | gawk -F " " "{print $1}"| sort > users_ldap.txt
echo .
echo .
echo Results have been exported to users_ldap.txt
goto :END
:DUMPUSERSSMB
findpdc %userdomain% 1 >> pdc1.txt
gawk -F "\\" "{print $3}" pdc1.txt > pdc.txt
SET /P PDC= < pdc.txt
del pdc1.txt
del pdc.txt
enum.exe -N %PDC% | grep -v "getting" | grep -v "up..." | grep -v "\$" | grep -v "server:" | gawk -F " " "{print $1}" >> users_smb1.txt
enum.exe -N %PDC% | grep -v "getting" | grep -v "up..." | grep -v "\$" | grep -v "server:" | gawk -F " " "{print $2}" >> users_smb1.txt
enum.exe -N %PDC% | grep -v "getting" | grep -v "up..." | grep -v "\$" | grep -v "server:" | gawk -F " " "{print $3}" >> users_smb1.txt
enum.exe -N %PDC% | grep -v "getting" | grep -v "up..." | grep -v "\$" | grep -v "server:" | gawk -F " " "{print $4}" >> users_smb1.txt
cat users_smb1.txt | grep -v "^$" | uniq | sort > users_smb.txt
del users_smb1.txt
users_smb.txt
goto :end
:CUSTOM
IF EXIST datargets.txt del datargets.txt
REM #######################################################
REM GET LIST OF DOMAIN CONTROLLERS WITH ADFIND
REM #######################################################
@adfind -b -sc dcdmp %c_domain_parameter% -gc | grep -i ">name:" | gawk -F " " "{print $2}" | sort | uniq >> dcs.txt 2>&1
echo -----------------------------------------------
echo Getting list of Domain Controllers...
echo -----------------------------------------------
REM #######################################################
REM GET LIST OF DOMAIN ADMINS WITH ADFIND
REM #######################################################
echo -----------------------------------------------
echo Getting list of Domain Admins...
echo -----------------------------------------------
@adfind -b %c_domain_parameter% -f name="Domain Admins" -gc > myadmins1.txt
grep -i "member:" myadmins1.txt > myadmins2.txt
sed -e s/^>member:" "CN=/'/g myadmins2.txt > myadmins3.txt
sed -e s/,/',/g myadmins3.txt > myadmins4.txt
type myadmins4.txt | gawk -F "," "{print $1}" > myadmins5.txt
sed s/'//g myadmins5.txt > dcadmintmp.txt
REM DEL myadmins*.txt
REM PARSE LIST OF DOMAIN ADMINS
FOR /f "tokens=1 delims=" %%a IN ('type dcadmintmp.txt') do @adfind -b %c_domain_parameter% -f name="%%a" | grep -i "sAMAccountName" | sed -e s/^>sAMAccountName:" "//g >> dcadmins.txt
DEL dcadmintmp.txt
REM #######################################################
REM SCAN FOR ACTIVE DOMAIN ADMIN SESSIONS (NETSESS)
REM #######################################################
echo -----------------------------------------------
echo Getting list of Active Domain Admin Sessions...
echo -----------------------------------------------
for /f %%a in ('type dcs.txt') do NetSess.exe %%a >> mysessions.txt
REM Identify domain admin sessions
for /f %%a in ('type dcadmins.txt') do grep -i %%a mysessions.txt >> mysessions2.txt
echo =============================>>datargets.txt
echo TARGET DOMAIN >>datargets.txt
echo ----------------------------->>datargets.txt
echo %c_target_domain% >>datargets.txt
echo _ >>datargets.txt
goto :report
:CURRENT
IF EXIST datargets.txt del datargets.txt
REM #######################################################
REM GET LIST OF DOMAIN CONTROLLERS WITH ADFIND
REM #######################################################
findpdc %userdomain% 1 >> pdc1.txt
gawk -F "\\" "{print $3}" pdc1.txt > pdc.txt
SET /P PDC= < pdc.txt
del pdc1.txt
del pdc.txt
@adfind -b -sc dcdmp %domain_parameter% -f name=%PDC% -gc | grep -i ">name:" | gawk -F " " "{print $2}" | sort | uniq >> dcs.txt 2>&1
echo -----------------------------------------------
echo Getting list of Domain Controllers...
echo -----------------------------------------------
REM #######################################################
REM GET LIST OF DOMAIN ADMINS WITH ADFIND
REM #######################################################
echo -----------------------------------------------
echo Getting list of Domain Admins...
echo -----------------------------------------------
@adfind -b %domain_parameter% -f name="Domain Admins" -gc > myadmins1.txt
grep -i "member:" myadmins1.txt > myadmins2.txt
sed -e s/^>member:" "CN=/'/g myadmins2.txt > myadmins3.txt
sed -e s/,/',/g myadmins3.txt > myadmins4.txt
type myadmins4.txt | gawk -F "," "{print $1}" > myadmins5.txt
sed s/'//g myadmins5.txt > dcadmintmp.txt
REM del myadmins*.txt
REM PARSE LIST OF DOMAIN ADMINS
FOR /f "tokens=1 delims=" %%a IN ('type dcadmintmp.txt') do @adfind -b %domain_parameter% -f name="%%a" | grep -i "sAMAccountName" | sed -e s/^>sAMAccountName:" "//g >>dcadmins.txt
DEL dcadmintmp.txt
REM #######################################################
REM SCAN FOR ACTIVE DOMAIN ADMIN SESSIONS (NETSESS)
REM #######################################################
echo -----------------------------------------------
echo Getting list of Active Domain Admin Sessions...
echo -----------------------------------------------
FOR /f %%a in ('type dcs.txt') do NetSess.exe %%a >> mysessions.txt
REM Identify domain admin sessions
FOR /f %%a in ('type dcadmins.txt') do grep -i %%a mysessions.txt >> mysessions2.txt
echo =============================>>datargets.txt
echo TARGET DOMAIN >>datargets.txt
echo ----------------------------->>datargets.txt
echo %userdnsdomain% >>datargets.txt
echo _ >>datargets.txt
:report
REM #######################################################
REM PRINT REPORT
REM #######################################################
echo .
echo .
echo =============================>>datargets.txt
echo Domain Controllers >>datargets.txt
echo ----------------------------->>datargets.txt
echo =============================
echo Domain Controllers
echo -----------------------------
uniq dcs.txt | sort >> datargets.txt
uniq dcs.txt | sort
echo =============================
echo Domain Admins
echo -----------------------------
echo _ >>datargets.txt
echo =============================>>datargets.txt
echo Domain Admins >>datargets.txt
echo ----------------------------->>datargets.txt
uniq dcadmins.txt >>datargets.txt
uniq dcadmins.txt
del dcadmins.txt
echo _ >>datargets.txt
echo =============================>>datargets.txt
echo Active Domain Admin Sessions >>datargets.txt
echo =============================>>datargets.txt
echo =============================
echo Active Domain Admin Sessions
echo -----------------------------
uniq mysessions2.txt | sort >> datargets.txt
uniq mysessions2.txt
REM ## If the user uploads GDA via meterpreter there is no point to open datargets.txt on notepad
REM -- start datargets.txt
DEL myadmin*.txt
echo .
echo .
echo Results have been exported to datargets.txt
DEL mysessions2.txt
DEL mysessions.txt
DEL dcs.txt
:end
十一、利用powershell收集域信息
使用PowerView
下载地址:
https://github.com/shigophilo/tools/blob/master/PowerView.ps1 https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Recon/PowerView.ps1
一些使用:
十二、敏感数据防护
1、资料、数据、文件的定位流程
内网数据防护首先要熟悉攻击者获取数据的流程
在实际的网络环境中,攻击者主要通过各种恶意方法来定位公司内部各相关人员的机器,从而获得资料,数据文件,流程如下:
2、核心业务机器
3、敏感信息
十三、内网划分及拓扑结构
分析目标服务器所使用的的Web服务器、后端脚本、数据库、系统平台等。
常见Web架构:
内网通常分为DMZ、办公区和核心区(生产区),不展开
结语
对内网信息搜集的流程和关注点做了个了解
主要是域相关
然后放一个工具
https://github.com/BloodHoundAD/
红客突击队于2019年由队长k龙牵头,联合国内多位顶尖高校研究生成立。其团队从成立至今多次参加国际网络安全竞赛并取得良好成绩,积累了丰富的竞赛经验。团队现有三十多位正式成员及若干预备人员,下属联合分队数支。红客突击队始终秉承先做人后技术的宗旨,旨在打造国际顶尖网络安全团队。