安全学习概览——恶意软件分析、web渗透、漏洞利用和挖掘、内网渗透、IoT安全分析、区块链、黑灰产对抗
1 基础知识
1.1 网络
熟悉常见网络协议:
https://www.ietf.org/standards/rfcs/
1.2 操作系统
1.3 编程
2 恶意软件分析
2.1 分类
2.1.1 木马
2.1.2 Botnet
2.1.3 挖矿
2.1.4 勒索软件
2.1.5 后门
2.1.6 病毒
2.1.7 蠕虫
2.2 外部资源
• VirusTotal
https://www.virustotal.com/#/home/upload
• 样本下载
https://www.malware-traffic-analysis.net/
https://www.hybrid-analysis.com/
https://malshare.com/
http://offensivecomputing.net/
https://malwr.com/
http://virussign.com/malwarelist.html
2.3 分析环境
2.3.1 自定义环境
• 使用VMWare或VirtualBox搭建虚拟机
• 虚拟机安装必要分析工具
• 注意虚拟机检测,用户名不要使用sample、malware、analysis等命名,环境尽可能接近真实环境
• vmtools选择安装
• 设置虚拟机网络模式
2.3.2 沙箱
• 开源沙箱搭建
• 自主开发
• 在线沙箱
2.4 行为分析
2.4.1 分析工具
(1) SysinternalsSuite
微软官方工具集,下载地址:
https://docs.microsoft.com/en-us/sysinternals/downloads/sysinternals-suite
(2) Process Monitor
行为监控工具
(3) Process Explorer
进程监控工具
(4) Autoruns
查看自启动项
(5) Regshot
快照对比
(6) Wireshark
抓包
(7) INetSim
模拟网络服务
https://www.inetsim.org/
(8) ApateDNS
控制dns响应
https://www.fireeye.com/services/freeware/apatedns.html
2.4.2 关键行为点
(1) 自启动
• HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
• HKLM\System\CurrentControlSet\Services
• Task Scheduler
• 。。。
(2) 注册表
(3) 文件
(4) 网络行为
2.5 PE文件结构
• PE文件结构
• Dos Header
• File Header
• Optional Header
• Section Headers
• 导入表IAT
• 导出表EAT
2.6 ELF文件结构
• 工具
(1) file
(2) readelf
• ELF文件结构
• ELF Header
• Program Header
• Section Header
2.7 逆向分析
2.7.1 反汇编
Intel指令手册,查询使用:
https://software.intel.com/en-us/articles/intel-sdm
2.7.2 调用约定
(1) X86调用约定
• 32位系统函数参数传递均通过栈传递
• Fastcall前两个参数通过ECX、EDX传递
调用约定 参数入栈顺序 恢复栈平衡位置
Cdecl 右 -> 左 调用者
Fastcall 右 -> 左 被调用者
Stdcall 右 -> 左 被调用者
(2) Windows x64调用约定
• 64位Windows系统下,前4个参数通过RCX/XMM0,RDX/XMM1,R8/XMM2,R9/XMM3传递,剩余的参数通过栈传递
• 总共使用4个寄存器,不是4+4=8个
(3) Linux x64调用约定
• 64位Linux系统下,参数传递使用6个整型寄存器RDI,RSI,RDX,RCX,R8,R9,以及8个XMM寄存器XMM0-XMM7,剩余参数通过栈传递
• 总共使用6+8=14个寄存器
2.7.3 字节序
大端:数据的高字节保存在低地址空间,低字节保存在高地址空间
小段:数据的高字节保存在高地址空间,低字节保存在低地址空间
举例:0x1122
低地址 高地址
大端 0x11 0x22
小端 0x22 0x11
2.7.4 栈帧
2.7.5 断点
(1) 软件断点
(2) 硬件断点
(3) 内存断点
(4) 条件断点
2.7.6 调试器介绍
(1) Ollydbg
(2) IDA
(3) Windbg
(4) X64dbg
(5) GDB
(6) Dnspy
2.8 注入技术
2.9 Hook技术
2.10 通信
2.11 脱壳
2.12 混淆
2.13 加解密
2.14 反调试
2.15 反虚拟机
2.16 实例分享
2.17 推荐资料
• 《加密与解密》,段钢
• 《逆向工程核心原理》,李承远
• 《Linux二进制分析》,Ryan O’Neill
• 《灰帽黑客》,Allen Harper, Shon Harris
• 《逆向工程权威指南》,Dennis Yurichev
• 《IDA Pro权威指南》,Chris Eagle
• 《软件调试》,张银奎
3 Web渗透
3.1 渗透流程
3.2 常用工具
3.3 OWASP TOP 10
3.4 靶机环境
3.5 漏洞原理
3.5.1 Sql注入
3.5.2 Xss
3.5.3 Webshell
3.5.4 目录遍历
3.5.5 文件包含
3.5.6 文件上传
3.5.7 XXE
3.5.8 CSRF
3.5.9 SSRF
3.5.10 命令注入
3.6 中间件
4 漏洞分析、利用与挖掘
4.1 漏洞原理
4.1.1 栈溢出
4.1.2 堆溢出
4.1.3 格式化字符串
4.1.4 整型溢出
4.2 安全机制
4.2.1 Windows
4.2.2 Linux
4.3 漏洞利用
Poc
Exp
4.4 漏洞挖掘
5 安全产品
5.1 部署场景分类
5.1.1 网络产品
5.1.2 终端产品
5.1.3 云端产品
5.2 原理介绍
5.2.1 Waf
5.2.2 IPS
5.2.3 HIPS
5.2.4 RASP
5.2.5 Snort
5.2.6 Suricata
5.3 反病毒软件
5.4 扫描器
5.5 DDoS防御
5.6 蜜罐
6 内网渗透
6.1 渗透流程
6.2 常用工具
6.3 攻击面
7 IoT安全分析
7.1 攻击面
7.2 硬件基础
7.3 固件提取与分析
7.4 通信安全分析
7.5 云端渗透
7.6 移动端安全分析
7.7 IoT协议
8 APT案例分享
9 区块链
10 黑灰产对抗
11 密码学
11.1 对称加密算法
11.1.1 AES
11.1.2 3DES
11.2 非对称加密算法
11.2.1 RSA
11.2.2 椭圆曲线
12 无线
13 安全竞赛
13.1 CTF
13.2 Pwn2Own
13.3 Flare-on
13.4 GeekPwn
13.5 XPwn
安全学习概览——恶意软件分析、web渗透、漏洞利用和挖掘、内网渗透、IoT安全分析、区块链、黑灰产对抗的更多相关文章
- 7.内网渗透之windows认证机制
文章参考自三好学生域渗透系列文章 看了内网渗透第五篇文章,发现如果想要真正了解PTT,PTH攻击流程,还需要了解windows的认证机制,包括域内的kerberos协议. windows认证机制 在域 ...
- 【CTF】msf和impacket联合拿域控内网渗透-拿域控
前言 掌控安全里面的靶场内网渗透,练练手! 内网渗透拿域控 环境:http://afsgr16-b1ferw.aqlab.cn/?id=1 1.进去一看,典型的sql注入 2.测试了一下,可以爆库,也 ...
- 内网渗透测试思路-FREEBUF
(在拿到webshell的时候,想办法获取系统信息拿到系统权限) 一.通过常规web渗透,已经拿到webshell.那么接下来作重要的就是探测系统信息,提权,针对windows想办法开启远程桌面连接, ...
- metasploit渗透测试笔记(内网渗透篇)
x01 reverse the shell File 通常做法是使用msfpayload生成一个backdoor.exe然后上传到目标机器执行.本地监听即可获得meterpreter shell. r ...
- Metasploit 内网渗透篇
0x01 reverse the shell File 通常做法是使用msfpayload生成一个backdoor.exe然后上传到目标机器执行.本地监听即可获得meterpreter shell. ...
- Linux内网渗透
Linux虽然没有域环境,但是当我们拿到一台Linux 系统权限,难道只进行一下提权,捕获一下敏感信息就结束了吗?显然不只是这样的.本片文章将从拿到一个Linux shell开始,介绍Linux内网渗 ...
- [原创]K8 Cscan 3.6大型内网渗透自定义扫描器
前言:无论内网还是外网渗透信息收集都是非常关键,信息收集越多越准确渗透的成功率就越高但成功率还受到漏洞影响,漏洞受时效性影响,对于大型内网扫描速度直接影响着成功率漏洞时效性1-2天,扫描内网或外网需1 ...
- [原创]K8 cping 3.0大型内网渗透扫描工具
[原创]K8 Cscan 大型内网渗透自定义扫描器 https://www.cnblogs.com/k8gege/p/10519321.html Cscan简介:何为自定义扫描器?其实也是插件化,但C ...
- [原创]K8飞刀20150725 支持SOCKS5代理(内网渗透)
工具: K8飞刀编译: 自己查壳组织: K8搞基大队[K8team]作者: K8拉登哥哥博客: http://qqhack8.blog.163.com发布: 2015/7/26 3:41:11 简介: ...
随机推荐
- tcp内存占用/socket内存占用
net.ipv4.tcp_mem 内核分配给TCP连接的内存,单位是Page,1 Page = 4096 Bytes,可用命令查看: #getconf PAGESIZE 4096 net.ipv4.t ...
- mysql开启缓存、设置缓存大小、缓存过期机制
目录 一.开启缓存 1.修改配置文件my.ini 2.命令方式 二.查看是否生效 1.query_cache_type 使用查询缓存的方式 2.have_query_cache 设置查询缓存是否可用 ...
- bootstrap-table:操作栏点击编辑按钮弹出模态框修改数据
核心代码: columns: [ { checkbox:true //第一列显示复选框 }, ... { field: 'fail_num', title: '失败数' }, { field: 'op ...
- Winsock.简单UDP
PS:vs2017 编译C++代码 支持 XP:项目属性-->链接器-->系统-->需要的最小版本--> 输入 "5.1" 1.ZC:测试:c向s 发送长度 ...
- NET中各种加密解密方法
/// <summary> /// AES对称加密和分组加密中的四种模式(ECB.CBC.CFB.OFB),这三种的区别,主要来自于密钥的长度,16位密钥=128位,24位密钥=192位, ...
- mysql索引 多个单列索引和联合索引的区别详解
背景: 为了提高数据库效率,建索引是家常便饭:那么当查询条件为2个及以上时,我们是创建多个单列索引还是创建一个联合索引好呢?他们之间的区别是什么?哪个效率高呢?我在这里详细测试分析下. 一.联合索引测 ...
- java jri null
java通过jri调用r文件,r文件必须和当前类在同一目录下,然后才能re.eval("source(fpath)")执行脚本;其中fpath为通过re.assign设置的文件全路 ...
- Java的设计模式(6)— 模板模式
定义一个操作中算法的骨架,将一些步骤放在子类实现,使得子类可以不改变一个算法结构即子类可以重定义该算法的某些特定步骤. 主要有两个角色: 1. 抽象模板 :是一个抽象类,并实现了一个具体模板方法,这个 ...
- MYSQL 八大优化方案
1.选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快.因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设 ...
- 十六、USB驱动
一.USB固件和USB传输方式 USB固件: USB固件一般不需要我们编写,在此不做程序分析. USB固件中包含USB设备的出厂信息,如厂商ID.产品ID.主版本号和次版本号等.这就是为什么当我们把U ...