内网安全攻防(五)—域内横向移动

当拿到域中某台设备,骇客会以其为跳板横向渗透其他设备,最终获得所有设备权限。

一、常用windows远程连接

通常来说,我们在渗透测试要拿到的一些关键资源包括了目标计算机的用户明文密码或者NTLM Hash,通过PTH(pass the hash凭据传递)把得到的信息发送到目标机器进行验证,我们就获得了目标机器的使用权,建立连接后就能远程执行命令了。

1.IPC internet process connection

这是为了实现进程之间通信而开放的命名管道。通常在远程管理计算机和查看计算机的共享资源时使用。

ipc$
利用条件:
(1)开启了139、445
(2)管理员开启默认共享

建立ipc$连接远程目标计算机
net use \\ipaddress\ipc$ “password” /user:username

查看当前链接
net use

2.使用windows自带的工具获取远程主机信息

(1)dir命令

建立了连接后,用dir查看文件列表:

dir \\ipaddress\c$

(2)tasklist命令

用来查看进程
tasklist /S address /U username /P password

3.计划任务

(1)at命令:

用于创建计划任务的命令,主要应用在windows server 2008之前。所以如果测试的计算机使用的os是符合条件的版本,那么可以使用at命令在远程目标机器创建计划任务:
·使用copyd命令将payload文件复制到远程目标计算机中
·使用at命令定时启动该payload文件
·删除使用at命令创建计划任务的记录 //抹去证据防止被查

上述需要先建立ipc$作为前提

下面是at命令使用过程:
①查看目标系统时间,攻击者很喜欢抹去或者修改文件的时间
net time \\ipaddress

②将文件复制到目标计算机中
先创建一个calc.bat文件,内容为“calc”(在运行界面输入calc会弹出计算器)。也就是说这一步的目的是为了让计算机在某一时刻启动计算器。
copy calc.bat \\ipaddress\C$
上述命令目的是把刚才的bat文件传到目标计算机的C盘

③使用at创建任务
知道目标系统的时间之后,指定程序在计划时间启动
at \\ipaddress 4:11PM C:\calc.bat
Added a new job with job ID 7
创建ID为7的计划任务,在下午4点11分运行C盘的calc.bat文件

④清除at记录
任务记录会一直存在,攻击者不想被网络管理员发现,就会抹去记录
at \\ipaddress 7 /delect
删除ID为7的任务

现将结果写在本地文件,然后用type远程读取该文件,如下:
at \\ipaddress 4.11PM cmd.exe /c “ipconfig >C:/1.txt”
然后用type远程读取:
type \\ipaddress \C$\1.txt

经过实际测试,at命令如果不键入远程ip地址就默认是在本地进行计划。并且注意,在windows vista和2008之后at命令被废弃,应该使用schtasks命令

(2)schtasks命令

①创建test计划任务,该计划在开机时启动C盘下的calc.bat,权限为system
schtasks /create /s ipaddress /tn test /sc onstart /tr c:\calc.bat \ru system /f

②远程执行
schtasks /run /s ipaddress /i /tn “test” /f

③删除ipc$
net use 名称 /del /y

使用schtasks命令,会在系统留下日志文件C:\Windows\Tasks\SchedLgU.txt

二、windows系统散列值获取

LM Hash、NTLM Hash是两种用户明文密码进行加密的方法。在域中,用户信息存储在 ntds.dit中

windows密码一般由两部分:LM hash和NTLM Hash组成,结构为:

username:RID:LM-HASH:NT-HASH

注意!win2008之后LM hash被禁用,此时抓取到的LM Hash的值为
“aad3b435b51404eeaad3b435b51404ee” //这就表示其为空值或被禁用

1.单机抓取

我们要知道只有SYSTEM权限能抓散列值或者明文密码,本地用户名、散列值和其他验证信息都存在SAM文件中。
而lsass.exe进程是用来windows的安全策略,攻击者会用工具从内存的lsass.exe进程或者SAN文件导出敏感信息

其中,SAM文件地址在:C:\Windows、System32\config. 攻击者再关闭windows操作系统后用PE盘进入文件管理环境,直接复制SAM文件 //?阿这我没太理解,也许是攻击者获取了物理设备能这么搞吧

【工具】GetPass、PwDump7、QuarksPwDump

下面是提取的思路

①通过SAM和System文件抓取密码

②使用mimikatz在线读取SAM文件

③使用mimikatz离线读取lsass.dump文件

④使用Powershell对散列值进行Dump操作

⑤使用Powershell远程加载mimikatz抓取散列值和明文密码

【防御】:
win2012 以及以后关闭了Wdigest,攻击者无法从内存获取明文密码
win2012以及之前的下载补丁 KB2871991也可以阻止获取明文密码

2.使用Hashcat获取密码

它可以使用GPU来对密码来进行破解

三、哈希传递攻击

哈希传递攻击pass the hash 。获取域中一个管理员账号密码,就相当于获得其他本地管理员的账号密码

注意,随着安全意识提高,windows sever 2012 R2之后,默认在内存中不会记录明文密码

四、票就传递攻击

mimikatz的哈希传递功能需要本地管理员权限。mimikatz也有不需要权限也能横向渗透的方法,比如票据传递(pass the ticket,PTT)

[防范]:
·使用dir的时候,使用主机名,不用IP地址
·票据文件注入内存的默认有效时间为10小时
·在目标机器上不需要本地管理员权限即可进行票据传递

五、PsExec

这个软件是win用来运维的,一般在杀软白名单里
运行在windows vista\2000\xp\server 2003\ server 2008\server 2012\server 2016

六、WMI

windows management instrumentation.从win98就开始支持,可以在本地或远程管理计算机

因为越来越多安全厂商吧PsExec加入黑名单,所以转而用这个技术进行横向渗透,还有一个重大原因是,使用WMI不会记录在系统日志。

八、smbexec

可以通过文件共享(admin$、c$、ipc$、d$)在远程计算机系统执行命令

九、DCOM在远程系统中使用

十、SPN在域环境中使用

十一、exchang、邮件服务器安全

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注