0%

信息安全学习总结

信息安全 学习

建议安装 KALI 来入门,建议做 CTF 题目,建议了解基础计算机相关知识,建议去漏洞平台、公益 src 提交漏洞。
二进制方向建议看 CTF-All-In-One 《CTF 竞赛入门指南》,它和本文的最终目标形态相近。

帮助:
CTF-All-In-One 《CTF 竞赛入门指南》
Web安全学习笔记
狼组安全团队公开知识库
愿安全人不在踩坑,网络安全的学习经验
安全技能 -SecWiki
phith0n Mind-Map思维导图
信息安全从业者书单推荐
书栈网 · BookStack_开源编程书籍免费阅读
网络安全开放编辑电子版教材
bmjoker的博客

论坛:
FreeBuf网络安全行业门户
i 春秋 —— 白帽子技术/思路
EXPLOIT DATABASE

CTF 平台:
在线CTF平台
近期赛程

靶场:
待补充······
在线漏洞靶场
vulnhub

漏洞平台:
漏洞盒子 —— 公益 src
教育行业漏洞报告平台 —— 上交大
hackerone

坑:

  1. 打ctf 时有时flag不会显示到网页上,但在 html, Javascript 源代码等地方,所以有时觉得操作没错但是没反应,可以全局搜索是否有flag。全局搜索办法:打开浏览器开发人员工具 devtools,选中“源代码”项,右键“页面”项中的文件夹,就可以全局搜索。
  2. 在burpsuite的repeater里GET请求和POST请求互换时,右键选择change request method来更换,自己修改会可能会忘记编辑名为Content-Type的请求头导致无正确响应。参考:POST 提交数据的几种方式
  3. URL 如果带加号“+”,由于浏览器会将 “+” 等同于空格进行处理,有时会导致意料外的结果。如:http://ipaddress/redirect.php?url=1+2,这里的结果变成了1 2或为空,所以测试时基本都使用减号而不使用加号,如 ?url=5-3,得到结果 2,说明这里可以注入执行命令。如果一定要用加号,可以使用编码 %2B

注:标注 参考 的是参考资料,不一定有用,标注 帮助 的是个人认为对学习人员有一定帮助的,且内容一般各有不同之处。


准备工作

Kali Linux 环境准备

建议使用虚拟机安装 kali,具体参考帮助里的链接。

帮助:
获取kali linux
安装kali linux后的准备工作
Kali Linux 工具使用中文说明书

Windows 环境准备

安装 Python 等语言环境, 称心的 IDE, Burpsuite Pro, Wireshark 等
一些工具安装见文章后半部。

Android 环境准备

如果资源充足,也可以尝试将手机打造成安全工具。
无需 root 的步骤:

  1. 浏览器搜索并安装 F-Droid 开源软件市场。
  2. 在 F-Droid 中搜索 Termux 并安装最新版。Termux 是运行在 Android 上的 命令行终端,不需要root。
  3. 参考 Termux 高级终端安装使用配置教程 等进行 Termux 的配置,自选一些安全工具安装,如 安装 Kali NetHunter 等。
  4. F-Droid 软件市场中有一个 RSS 订阅软件 Feeder,可以添加一些安全相关的 RSS 订阅源,跟踪最新的安全咨询。

基础知识

常见的重要配置文件默认位置

待补充中······
参考:整理了一些下载利用文件

Linux:

  1. /etc/passwd 保存了系统中所有的用户信息
  2. /etc/shadow 用户的密码信息
  3. /root/.ssh/authorized_keys 公钥文件
  4. /root/.bash_history 用户终端操作历史记录
  5. /root/.ssh/authorized_keys
    /root/.ssh/id_rsa
    /root/.ssh/id_ras.keystore
    /root/.ssh/known_hosts //记录每个访问计算机用户的公钥
  6. /etc/my.cnf //mysql配置文件
  7. /etc/httpd/conf/httpd.conf //apache配置文件
  8. /root/.bash_history //用户历史命令记录文件
  9. /root/.mysql_history //mysql历史命令记录文件
  10. /proc/mounts //记录系统挂载设备
  11. /porc/config.gz //内核配置文件
  12. /var/lib/mlocate/mlocate.db //全文件路径
  13. /porc/self/cmdline //当前进程的cmdline参数

参考:
Linux重要配置文件
系统重要配置文件路径

Windows:

  1. /windows/win.ini 或 C:\Windows\win.ini //Windows系统的一个基本系统配置文件
  2. C:\boot.ini //查看系统版本
  3. C:\Windows\System32\inetsrv\MetaBase.xml //IIS配置文件
  4. C:\Windows\repair\sam //存储系统初次安装的密码
  5. C:\Program Files\mysql\my.ini //Mysql配置
  6. C:\Program Files\mysql\data\mysql\user.MYD //Mysql root
  7. C:\Windows\php.ini //php配置信息
  8. C:\Windows\my.ini //Mysql配置信息

PHP:

  1. /usr/local/php/etc/php.ini

Apache:

  1. 主配置文件:/etc/httpd/conf/httpd.conf
  2. 默认站点主目录:/var/www/html/
    参考:Apache的主要目录和配置文件详解

MySQL:

  1. /etc/my.cnf 或 /etc/mysql/my.cnf 于 Linux环境下
  2. my.ini 于Windows环境下

帮助

帮助:
常用和不常用端口一览表收藏
端口号大全
黑客常用端口利用总结
常见各类端口漏洞
HTTP 响应状态码


Web

要学习的内容:

目录:

  1. file upload 文件上传漏洞
  2. local file include 本地文件包含漏洞
  3. xss 跨站脚本攻击
  4. csrf 跨站请求伪造
  5. ssrf 服务端请求伪造
  6. ssti 服务器端模板注入
  7. sql 注入
  8. 反序列化
  9. 未授权访问
  10. 源码泄露
  11. 爆破
  12. XML External Entity injection
  13. 综合练习

文件上传漏洞(file upload)

题目:

  1. BUU Upload-Labs-Linux 系列共20关
    解答:
    Upload-labs 通关笔记 - 20关
    upload-labs通关记录 - 19关
    upload-labs闯关笔记 - 18关
    upload-labs Pass-12:文件名检测00截断绕过
    upload-labs Pass 16:绕过图片二次渲染
    注:第6、8题需要服务器是window环境,似乎是因为服务器换了linux。第11、12题需要php版本小于5.3.4,这里服务器php版本是7.2.21。
  2. 待补充

首先,上传的文件能够被Web容器解释执行。所以文件上传后所在的目录要是Web容器所覆盖到的路径。
其次,用户能够从Web上访问这个文件。如果文件上传了,但用户无法通过Web访问,或者无法得到Web容器解释这个脚本,那么也不能称之为漏洞。
最后,用户上传的文件若被安全检查、格式化、图片压缩等功能改变了内容,则也可能导致攻击不成功。
所以导出下列防御措施:

防御:

  1. 文件上传的目录设置为不可执行
  2. 使用白名单判断文件类型,应综合使用MIME Type、后缀校验等方式,对于图片等类型可以使用压缩函数等破坏文件中的代码。
  3. 随机数重命名文件名和文件路径。
  4. 单独设置文件服务器域名,由于浏览器同源策略,客户端攻击将缓解不少,如上传包含 Javascript 的XSS利用,但这需要看具体业务情况。

阿里云盘上传的文件无法修改后缀名,不知是否是出于防御文件上传漏洞的因素(如上传后重命名为 *.mp4、等 )。但是以前可以抓包修改后缀名,所以以前可能有漏洞。

帮助:
HTTP文件上传原理
一句话木马 - 介绍不好,待换
php一句话木马 - 待换
php文件上传后缀与文件类型对照表
php文件隐藏,让别的后缀也能执行php文件
几种文件上传漏洞介绍

本地文件包含漏洞(Local File Include)

  1. 题目:LFI Labs
    解答:
  2. 题目:[HCTF 2018]WarmUp
    解答:

XSS跨站脚本攻击(Cross Site Scripting)

题目:

  1. BUU XSS-Lab
    解答:
    xss-labs通关大合集
    xss-labs 通关学习笔记
    xss靶场之xss-labs
    第14关 exif xss 复现
    xss-labs第1~13关
  2. BUU XSS COURSE 1
    解答:似乎有问题,没有admin用户的访问情况
    BUU_XSS_Course
    BUU XSS COURSE 1

防御:

  1. 关键cookie加上HttpOnly(浏览器将禁止Javascript访问带有HttpOnly属性的Cookie),基本解决Cookie劫持,缓解XSS攻击。
  2. 输出时检查,变量输出到页面时,使用编码或转义,如Html代码使用HtmlEncode转为HTMLEntities(如 < 转为 &lt;),Javascript使用JavascriptEncode并将输出的变量放在引号内部(如var x = “1; alert(1)”;)。
  3. 输入时检查,XSS Filter,也用于格式检查,过滤或编码特殊字符,但可能改变用户的语义。

帮助:
ISO/IEC 8859-1 实体名称及其编号
HTML转义字符大全
XSS 从零开始
XSS绕过WAF姿势总结
XSS之绕过简单WAF总结

课外阅读:
国内知名安全平台某BUF的xss漏洞 —— dom 型 js 前端漏洞
利用BeEF执行xss攻击 —— 注意是运行 /usr/share/beef-xss/beef
XSS 漏洞扫描工具 XSStrike

CSRF跨站请求伪造(Cross Site Request Forgery)

题目:

防御:

  1. 重要操作要求验证码(辅助防御手段)
  2. 验证 HTTP Referer 字段(不一定能获取,所以只能作为监控手段);或者使用 Origin 头来让服务端判断请求是否来自合法的源(不那么容易伪造或清空,可防范CSRF)
  3. 在请求表单(或AJAX,如果用GET放在URL中可能被Referer头泄露)中添加 csrf token ( 注意,不是 JWT token ),服务器验证 token 正确性;客户端的 token 应该被保存到 local storage 或 session storage (一般是 session,关闭页面即失效)。

帮助:
关于 CSRF 和 csrftoken
什么是 CSRF 攻击?如何防御 CRSF 攻击?
CSRF、Cookie、Session和token之间不得不说得那些事儿

SSRF服务器端请求伪造(Server-Side Request Forgery)

攻击者伪造服务端的请求发起攻击,或者借由服务端为跳板来攻击目标系统,通常针对外部网络无法直接访问的内部系统。

协议利用:
gopher 协议初探
SSRF漏洞用到的其他协议(dict,file协议)
Dict 协议是什么

防御:

  1. 过滤返回信息。验证远程服务器对请求的响应是比较容易的方法,如果web应用是去获取某一种类型的文件,那么在把返回结果展示给用户之前先验证返回的信息是否符合标准。
  2. 禁用不需要的协议。仅仅允许http和https请求。可以防止类似于file:///, gopher://, ftp:// 等引起的问题
  3. 统一错误信息。避免用户可以根据错误信息来判断远端服务器的端口状态。
  4. 限制请求的端口。只允许 http 常用的端口,比如 80、443、8080 等。
  5. 设置 URL 白名单或者限制内网IP
  6. 对 DNS Rebinding,可以使用 DNS 缓存或者 Host 白名单
  7. 禁止跳转

帮助(以下链接都有必要看):
浅谈SSRF原理及其利用
SSRF — Web安全学习笔记 1.0 文档 —— 给出了可能的利用点列表
了解SSRF,这一篇就足够了
Web Security 之 SSRF —— Blind SSRF 和 隐藏攻击面 Referer 头
SSRF绕过
SSRF安全指北 —— 介绍了新型攻击手法,利用 tls 进行 ssrf

参考:服务器端请求伪造——SSRF

SSTI 服务器端模板注入(Server-Side Template Injection)

帮助:SSTI(模板注入)漏洞

SQL注入

题目:

  1. 攻防世界NewsCenter
    解答:学习sqlmap用法
  2. 攻防世界supersqli[强网杯 2019]随便注
    解答:学习堆叠注入等,此题如果用sqlmap只能爆出库名supersqli
    随便注write up
    随便注&[GYCTF2020]Blacklist -wp
  3. 攻防世界comment
    解答:学习换行注释,注:题目下载的内容可能是不完整的,看下面链接。
    攻防世界高手进阶之Web comment
  4. BUU sqli-labs

防御:

  1. 使用预编译语句
  2. 使用安全的储存过程
  3. 如果无法避免动态SQL语句,应使用严格的输入过滤,如检查输入数据的数据格式和类型,或者使用安全的编码函数处理输入
  4. 数据库应该遵循最小权限原则,也应该为每个应用分配不同的账户。

帮助:
深入理解SQL注入与预编译(上)
深入理解SQL注入与预编译(下)
sqlmap常用操作命令
sqlmap使用

反序列化漏洞

序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。

反序列化漏洞是基于序列化和反序列化的操作,在反序列化——unserialize()时存在用户可控参数,而反序列化会自动调用一些魔术方法,如果魔术方法内存在一些敏感操作例如eval()函数,而且参数是通过反序列化传入的,那么用户就可以通过改变参数来执行敏感操作,这就是反序列化漏洞。

帮助:
反序列化漏洞详解 —— 以 PHP 为例
一篇文章带你了解反序列化漏洞

参考:
浅析FastJSON反序列化漏洞(1.2.24——1.2.68)
从防护角度看Weblogic反序列化历史漏洞
深入利用Shiro反序列化漏洞
Shiro反序列化漏洞利用汇总
Shiro反序列化漏洞

未授权访问漏洞

帮助:
常见未授权访问漏洞总结
超全面未授权访问漏洞复现合集

源码泄露

帮助:
WEB安全-常见源码泄露

git源码泄露

题目:

  1. 攻防世界mfw
    解答:攻防世界-Web-mfw

帮助:
git信息泄露漏洞
.git信息泄露漏洞-原理
GitHack工具 可还原工程源代码 - github.com
GitHack 和 GitHacker 工具比较

爆破

题目:

  1. BUU BRUTE 1
    解答:

帮助:
Blasting_dictionary —— 爆破字典(较旧)
fuzzDicts —— 网络渗透 fuzz 用字典
web登录爆破(hydra的简单使用)


渗透

参考:入侵某 QQ 钓鱼网站

帮助:
有手就行:零基础渗透网站步骤
记一次艰难的外网打点
各大漏洞库分享 —— 雨苁
4000个厂商弱口令

文库:
PeiQi文库 (推荐,更新快)
PeiQi文库 —— Github 开源

风炫安全

Qingy

白阁文库工具 —— 速查表、知识库、漏洞库
白阁文库 —— Github 开源

Morker 文库
Morker 文库 —— Github 开源

PwnWiki
PwnWiki —— Github

狼组安全团队公开知识库 (访问 POC 漏洞库要认证,公开部分只有常见漏洞用于教学)

零组文库(2020-10-16 停更)
零组文库的他人备份

寻找目标

来自榜一的公益SRC挖掘思路分享

信息获取

对于一个网站、软件、服务器等如何收集相关信息

办法包括:whois、子域名收集、端口扫描、目录扫描、谷歌语法、指纹识别、邮箱服务器等。

旁站和C段的介绍,参考:信息收集之——旁站、C段

2021年攻防演练信息收集实战技巧

查询服务器真实 IP

输入:nslookup + 域名, 如果给出的名称包含 cdn,说明这里查询到的 ip 对应的是 CDN 服务器,并不是真服务器 IP,如:

1
2
3
4
5
6
7
> nslookup www.tencent.com
非权威应答:
名称: lffgjgyi.sslego.tcloudscdn.com
Addresses: 175.6.26.239
220.169.154.249
Aliases: www.tencent.com
www.tencent.com.cdn.dnsv1.com

多地 ping 同一个域名,如果不一样可能用了 cdn

获取真实 IP 办法:

  1. 如果是 www 开头的域名存在CDN,可以把 www. 去掉再查询,可能得到真实IP
  2. 如果是 HTTPS 的站点,可以通过网站证书寻找真实 IP
  3. 有时只有主站点有 CDN,那么通过子域名能查询到真实 IP
  4. 有的网站是后来才加入CDN的,这时可以查询历史 DNS 解析记录
  5. 一般发送给你的邮件都是用真实邮箱服务器发给你的,这时可以查看邮件头
  6. 当服务器使用 F5 LTM 做负载均衡时,通过对set-cookie关键字的解码真实 ip 也可被获取,参考:通过F5获取服务器真实内网IP

获取子域名,工具包括:
OneForAll、layer、fofa、KsubdomainXray

域名泛解析是将 *.域名 解析到同一 IP,是对抗子域名收集的一个方法。解决方法: 向DNS请求 * 记录,然后把枚举子域名回来的记录和 * 的记录比对,如果相同则直接排除。

获得目标真实IP后可以搜索查询该 IP 是不是部署在云服务器上,不在云服务器上的话就就可以正常扫 C段,否则容易扫到其他家的资产。扫C段推荐 灯塔 和 Goby

参考:
查找网站真实 IP 的方法
What is mshome.net
F5负载均衡名词LTM和GTM

内网渗透

Kerberos 不是 Kubernetes (K8S)
帮助:
内网渗透测试之域渗透详解
chriskali 内网渗透学习笔记
内网渗透之内网穿透
kerberos协议与票据

数据库提权

UDF 提权

MOF 提权

帮助:
MySQl提权 mof、udf过程详解
渗透之数据库提权

Docker 逃逸

参考:
简单了解一下K8S,并搭建自己的集群

钓鱼

钓鱼攻击主要是渗透时使用的
帮助:
常见钓鱼招式
绕过Office文档的受保护视图

后渗透

扩大渗透攻击的深度与广度,维持权限、后门等
后渗透篇:Windows 粘滞键 3389的 sethc 后门

其它

CMS(content management system,内容管理系统)

参考:
CMS 渗透
内容管理系统大全整理

菠菜网站

参考:BC平台结构概括 | 附送菠菜网站漏洞

红蓝对抗赛

攻防对抗·蓝队清单


杂项

XXE XML外部实体注入漏洞(XML External Entity injection)

DTD(文档类型定义) 定义了 XML 文档的格式,如元素类别和出现次数,实体声明等,以便 XML Parser 解析 XML 文档,并验证 XML 文档是否符合 DTD 的定义。有点类似于一系列声明的集合。

但是 DTD 的外部实体可支持 http、file 等协议,当用户能控制 XML 文档内容时(DTD 属于 XML,相当于控制了 DTD),可以自行添加外部实体来执行这些协议的操作。

如果是以 JSON 格式提交的数据,有可能服务器还能解析 XML

题目:XXE漏洞原理以及练习

帮助:
XML 学习
XML 的 DTD(文档类型定义) 介绍
浅谈XXE漏洞
XXE学习笔记
CTF XXE
XXE漏洞利用技巧:从XML到远程代码执行

防御:

  1. 过滤和验证用户提交的XML数据
  2. 配置XML parser只能使用静态DTD,不允许XML中含有任何自己声明的DTD
  3. 开发语言提供的禁用外部实体的方法

CRLF 注入

帮助:
CRLF、CSRF、SSRF攻击与利用

JSON Web Tokens( JWT )

介绍:见帮助

题目:杭电2022 ctf easy_auth
解答:直接上 https://jwt.io 改 token,它是弱密钥(为空)

注:

  1. Header 部分和 Payload 部分串型化的算法是 Base64URL,跟 Base64 算法基本类似,但有一些不同:JWT 作为一个令牌(token),有些场合可能会放到 URL(比如 http://api.example.com/?token=xxx)。Base64 有三个字符 + 、/ 和 = ,在 URL 里面有特殊含义,所以要被替换掉:= 被省略、+ 替换成 -,/ 替换成 _ ,这就是 Base64URL 算法。
  2. 开发时可以把 JWT 放在 Cookie 里面自动发送,但是这样不能跨域。一种办法是在跨域时,把 JWT 放在 POST 请求的数据体里面。普遍的做法是放在 HTTP 请求头的 Authorization 字段里,如:
    Authorization: Bearer <token>
    Bearer 的含义参考HTTP Bearer 认证及 JWT 的使用
  3. JWT 的一个缺点是:由于服务器不保存 session 状态,因此无法在使用过程中废止某个 token,或者更改 token 的权限。也就是说,一旦 JWT 签发了,通常在到期之前会始终有效。

帮助:
JWT.IO
https://jwt.io/introduction
什么是 JWT – JSON WEB TOKEN
JWT 原理及用法
JWT 及 OAuth2
HTTP Bearer 认证及 JWT 的使用
JSON Web Token(JWT)介绍及其在CTF中的四大考点


综合练习

题目:

  1. BUU - Webug 4.0
    解答:
    webug4.0通关笔记
    webug4.0 第一关到第三十关笔记
    Nginx中的解析漏洞
  2. BUU - Web-DVWA
    解答:DVWA 靶场通关
    帮助:sqlmap对状态码404处理的bug - DVWA盲注
  3. PikaChu
    解答:Pikachu 通关笔记

Reverse

待补充······
题目: crackmes
解答:逆向破解之160个CrackMe

帮助:
安全攻防进阶篇
CTF逆向指南
一些人的学习记录:
C++写壳之高级篇
鬼手56 的 CSDN 个人空间
CSDNBlog-Security-Based —— GitHub
IDA Pro7.0使用技巧总结

安卓逆向

dex文件
smali语法
工具:AndroidStudio, apktool, JEB, APKIDE, dex2jar

参考:Android 逆向工具篇—反编译工具的选择与使用
Android Dalvik虚拟机

帮助:
Android应用加固原理
深入理解 Android(一):Gradle 详解
深入理解 Android(二):Java 虚拟机 Dalvik
深入理解 Android(三):Xposed 详解

PYTHON 逆向

使用工具 PyInstaller Extractor ( pyinstxtractor ) 和 python-uncompyle6。PyInstaller Extractor 可以把 PyInstaller 解包成 pyc 文件,而 uncompyle6 可以把 pyc 的字节码反编译回 python 的代码。

如果选择在线的 pyc 反编译网站,如 https://tool.lu/pyc/,有概率出现精度问题。

其他

HOOK API (一)——HOOK基础+一个鼠标钩子实例


Pwn

待补充······

环境准备

安装 pwntools
终端输入:pip install pwn


Linux 提权

主要用的工具是 LinPEAS
工具参考:Linux权限提升:自动化信息收集

Docker 逃逸

参考:初识Docker逃逸


Miscellaneous

待补充······

流量分析、电子取证、人肉搜索、数据分析、图片隐写等等。

常见题目类型与解答:
CTF-MISC(编码篇)
CTF-MISC(隐写篇)

帮助:
CTF-Wiki 杂项简介
Ctf之Misc 操作总结
CTF MISC(杂项) 基本工具总结

社会工程学

防御:保持警惕;不要在微博上晒背景有明显建筑物的照片,特别是俯瞰的类型,在地图功能和以图搜图功能比较发达的今天,很容易被人搜索到具体地址;现实中的言行,不要在网络上展示一样的内容,以减少网络世界和现实世界的联系性

帮助:
图片信息挖掘示例
社会工程学
公安局给手机定位追踪,公安局可以用手机定位吗
网络时代,无数人的信息被泄露

参考:
“因为一张自拍,我被性侵犯盯上了。”
手机真的能暴露行踪吗?听听专家怎么说
一个黑客的基本素养——社会工程学
顶级黑客欢乐解析:宝宝事件中人肉搜索的七种方法
为什么说现在身份证号“打码”形同虚设?

密码学

tea 加密(Tiny Encryption Algorithm,TEA),ctf 中常见的微型加密算法,也常出现在web,逆向等题目中。它使用了一个常数作为倍数,源于黄金比率,程序中一般写作 0x9E3779B9 。但有时该常数会以减法的形式出现,-0x61C88647 = 0x9E3779B9,因此题目出现了 0x61C88647 该常数时也应当注意。
参考:tea系列加密算法学习笔记

数字取证(Digital forensics)

参考:IOWIKI教程 - 学习Python取证


其他

零散知识

JS Fuck, “[][(![]+[])“ 类似的 js 代码,可复制浏览器控制台执行
JS 执行 Base64 编码 —— 编码:window.btoa(),解码:window.atob()
Python开发常见漏洞
什么是会话固定攻击?
信息收集之——旁站、C段


条件竞争

此内容经常在商城系统中进行考察。

TOCTTOU攻击

参考:关于TOCTTOU攻击的简介


DDOS攻击 (Distributed Denial of Service)

帮助:
华安解密之DDoS攻防汇总贴
DDoS攻击与CC攻击
DDoS和CC攻击原理(上)
DDoS和CC攻击原理(中)
DDoS和CC攻击原理(下)

防御:使用免费的 CloudFlare DDOS 保护,缺点是用户体验不好,而且不能暴露源服务器 IP。如果你的源服务器 IP 暴露了,可以设置网站内容只开放给 CloudFlare 的 IP,禁止其他 IP 访问你的源服务器。

个人认为可能的设置:将平时对业务处理验证的认真程度分级,当流量不大时,使用正常的处理流程;处理流量过大时,自动增加一些验证手段,如:复杂的数据库查询业务需要先输入验证码、暂停复杂的业务、和服务器之间连接的时长减短、对频繁操作的 IP 地址做限制(但可能误伤同一内网 IP 的用户)等。

参考:
DDos 一个网站
cloudflare 免费证书_用cloudflare这套防护策略,防ddos及Cc攻击都很好
反反爬 | 如何巧过 CloudFlare 5秒盾
如何捅穿Cloud Flare的5秒盾

传统攻击

  1. ICMP Flood
    即 Ping 攻击

  2. UDP Flood
    用简单的TCP/IP服务,如Chargen和Echo来传送毫无用处的占满带宽的数据。通过伪造与某一主机的Chargen服务之间的一次的UDP连接,回复地址指向开着Echo服务的一台主机,这样就生成在两台主机之间的足够多的无用数据流

  3. SYN Flood
    TCP洪水攻击是当前最流行的 DoS(拒绝服务攻击)与 DDoS(分布式拒绝服务攻击)的方式之一,这是一种利用 TCP 协议缺陷,发送大量伪造的 TCP 连接请求,常用假冒的 IP 或 IP 号段发来海量的请求连接的第一个握手包(SYN包),被攻击服务器回应第二个握手包(SYN+ACK包),因为是假冒IP,所以攻击方永远收不到包且不会回应第三个握手包。导致被攻击服务器保持大量SYN_RECV状态的“半连接”,并且会重试默认5次回应第二个握手包,塞满TCP等待连接队列,资源耗尽(CPU满负荷或内存不足)

    防御:
    SYN Cookie,但存在 ACK Flood 攻击缺陷
    SYN Cache,会保存SYN包里面的所有的字段,这是SYN Cookie做不到的。
    SYN Proxy,当一个TCP请求从客户端发出时,首先与该握手代理进行三次握手,其采用SYN Cookie技术,只有该请求通过cookie合法性校验,代理服务器才会与服务器进行真正的TCP三次握手。其缓解了ddos攻击,但攻击规模足够大就防御不住。

    参考:SYN-Flood攻击解决办法?
    关于SYN Cookie和SYN Cache的再次讨论
    浅谈SYNPROXY

  4. HTTP Flood ( CC攻击 )
    HTTP Flood又称CC攻击(ChallengeCollapsar,挑战黑洞,黑洞是以前一个抵抗DDoS攻击设备的名字),是针对Web服务在第七层协议发起的攻击。通过向Web服务器发送大量 HTTP 请求来模仿网站访问者以耗尽其资源,尤其要请求那些导致复杂数据库查询等操作的资源。提供服务的企业只要尽量少用动态网页并且让一些操作提供验证码就能抵御一般的CC攻击。

  5. ACK Flood
    在TCP连接建立之后,所有的数据传输TCP报文都是带有ACK标志位的,主机在接收到一个带有ACK标志位的数据包的时候,需要检查该数据包所表示的连接四元组是否存在,如果存在则检查该数据包所表示的状态是否合法,然后再向应用层传递该数据包。如果在检查中发现该数据包不合法,例如该数据包所指向的目的端口在本机并未开放,则主机操作系统协议栈会回应RST包告诉对方此端口不存在。

    目前ACK Flood并没有成为攻击的主流,而通常是与其他攻击方式组合在一起使用。回顾前面描述的SYN Cookie算法,其核心思想是主动回应SYN/ACK包,然后校验第3次握手的ACK报文是否合法,目前大多数实现中校验ACK报文的合法性都涉及到较为复杂的算法。当SYN Flood与ACK Flood一起发生的时候, 主机和防火墙将耗费大量的精力来计算ACK报文是否合法以致不堪重负。

反射放大攻击 (Distributed Reflection Denial of Service)

渗透测试学习笔记-DDoS攻击
反射型DDoS攻击原理及防护

  1. NTP Flood
    NTP (Network Time Protocol,网络时间协议) 是一种通过因特网服务于计算机时钟的同步时间协议。它提供了一种同步时间机制,能在庞大而复杂多样因特网中快速调整时间分配。NTP 包含一个 monlist 功能,也被称为 MON_GETLIST,主要用于监控 NTP 服务器,NTP 服务器响应 monlist 后就会返回与 NTP 服务器进行过时间同步的最后 600 个客户端的 IP,响应包按照每 6 个 IP 进行分割,最多有 100 个响应包。
    参考: [NTP Reply Flood Attack (NTP反射型DDos攻击)](https://2cto.com/article/201402/280951.html) [了解NTP DDOS攻击原理](http://jaminzhang.github.io/security/understand-udp-flood-ddos-attack/)
  1. SSDP Flood
    互联网上家用路由器、网络摄像头、打印机、智能家电等智能设备普遍采用 UPnP(即插即用)协议作为网络通讯协议, 而 UPnP 设备的发现是通过源端口为 1900 的 SSDP(简单服务发现协议)进行相互感知。SSDP Flood 是伪造成被攻击者的 IP 地址向互联网上大量的智能设备发起 SSDP 请求,接收到请求的智能设备根据源 IP 地址将响应数据包反射发给受害者
    防御: SSDP 指纹过滤。

帮助:
DDoS反射放大之SSDP攻击
P2P 网络核心技术:UPnP 和 SSDP 协议
参考:
反射型DDoS攻击原理及防护
Stupidly Simple DDoS Protocol (SSDP) generates 100 Gbps DDoS

  1. DNS Flood
    理论上来说 ISP 的 DNS 服务器只响应来自它自己客户 IP 的 DNS Query 响应,但事实上互联网上大量 DNS 服务的默认配置缺失,导致了会响应所有 IP 的 DNS Query 请求。同时,DNS 大部分使用 UDP 协议,UDP 协议没有握手过程让其去验证请求的源 IP。因此可照成反射DDoS攻击。

帮助:

低速率拒绝服务攻击 (low-rate denial-of-service,简称LDoS)

  1. slowloris
    HTTP Request以\r\n\r\n(0d0a0d0a)结尾表示客户端发送结束。攻击者在HTTP请求头中将Connection设置为Keep-Alive,要求Web Server保持TCP连接不要断开,随后缓慢地每隔几分钟发送一个key-value格式的数据到服务端,如a:b\r\n,但一直不发送\r\n\r\n,导致服务端认为HTTP头部没有接收完成
  2. Slow HTTP POST
    在POST提交方式中,允许在HTTP的头中声明content-length,也就是POST内容的长度。
    在提交了header并将content-length设置足够大以后,将后面的body部分卡住不发送,这时服务器在接受了POST长度以后,就会等待客户端发送POST的内容,攻击者保持连接并且以10S-100S一个字节的速度去发送,就达到了消耗资源的效果
  3. Slow Read attack
    采用调整TCP协议中的滑动窗口大小,来对服务器单次发送的数据大小进行控制,使得服务器需要对一个回应分成很多个包来发送。

参考:慢速连接攻击
HTTP慢速攻击与防御


水坑攻击

“水坑攻击”,黑客攻击方式之一,顾名思义,是在受害者必经之路设置了一个“水坑(陷阱)”。最常见的做法是,黑客分析攻击目标的上网活动规律,寻找攻击目标经常访问的网站的弱点,先将此网站“攻破”并植入攻击代码,一旦攻击目标访问该网站就会“中招”。


鱼叉攻击

只针对特定目标进行攻击的网络钓鱼攻击。

利用木马程序作为电子邮件的附件,发送到目标电脑上,诱导受害者去打开附件来感染木马


密码学

待补充······
对称加密和非对称加密
常见加密算法及其实现

线性同余法:一种经典的产生伪随机数的方法。

题目:如果要产生随机数,并保证使用时不重复使用之前用过的值,有什么办法:

  1. 一次性生成随机数的库,每次取出其中一个来使用。
  2. 或者可以用彩虹表储存,既对一个随机数,连续 hash n 次的结果都不在已知的彩虹表内,说明没有被使用过,那么可以使用它,并把 hash 的结果储存在彩虹表内

防御:

  1. 对于彩虹表,可以加盐防御,盐要妥善保存在服务器的配置文件中。

分组密码的模式

ECB模式:Electronic CodeBook mode(电子密码本模式)
CBC模式:Cipher Block Chaining mode(密码分组链接模式)
CFB模式:Cipher FeedBack mode(密文反馈模式)
OFB模式:Output FeedBack mode(输出反馈模式)
CTR模式:CounTer mode(计数器模式)

帮助:分组密码的模式——ECB、CBC、CFB、OFB、CTR

国密

国家商用密码管理办公室制定了一系列密码标准,包括SM1(SCB2)、SM2、SM3、SM4、SM7、SM9、祖冲之密码算法(ZUC)那等等。其中SM1、SM4、SM7、祖冲之密码(ZUC)是对称算法;SM2、SM9是非对称算法;SM3是哈希算法。目前,这些算法已广泛应用于各个领域中。其中SM1、SM7算法不公开,调用该算法时,需要通过加密芯片的接口进行调用。
参考:SM系列国密算法

RSA

RSA算法原理

SHA

从零入门HMAC-SHA256

PKI(Public Key Infrastructure) 公钥基础设施

PKI 包含:证书机构CA、注册机构 RA(Registration Authority)、数字证书库、密钥备份及恢复系统、证书撤销系统、密钥更新机制等。
公钥基础设施 —— wiki.mbalib
PKI公钥基础设施简介
公钥基础设施目的和证书X.509介绍
公钥基本结构(PKI)的概念
一篇文章带您读懂公钥基础设施(PKI )体系
PKI和CA 介绍

安全审计

参考:信息安全审计

日志审计

参考:什么是日志审计
可审计的日志包括:

  1. Windows系统日志:Windows系统自带的审计日志、操作日志、故障日志。
    日志路径:C:\Windows\System32\winevt\Logs
    重要日志:Security.evtx、System.evtx、Application.evtx
  2. Linux系统日志:Linux系统自带的审计日志、操作日志、故障日志。
    日志路径:/var/log
    必看日志:secure、history
  3. 应用日志:包括但不限于Web应用等众多繁杂的日志。

代码审计

如果想试试代码审计,可以在 A5 源码网站 等下载公开的源码
代码安全审计通常可以分为:自动化审计和人工审计

有几种技术可以识别软件和系统的漏洞,包括:

  • 静态分析安全测试(SAST)
  • 动态分析安全测试(DAST)
  • 源成分分析(SCA)
  • 漏洞扫描器
  • 渗透测试

自动化代码安全审计是以自动化工具的方式查找代码的安全漏洞,这样的工具一般称为静态代码检测工具(SAST)

工具包含:Seay、Fortify SCA、RIPS、FindBugs、Codescan 等

参考:
代码审计之工具介绍
自动化代码审计

三款自动化代码审计工具 —— RIPS、VCG、Fortify SCA

数据库审计

实时记录网络上的数据库活动,对数据库操作进行细粒度审计的合规性管理,对数据库遭受到的风险行为进行告警,对攻击行为进行阻断。它通过对用户访问数据库行为的记录、分析和汇报,用来帮助用户事后生成合规报告、事故追根溯源,同时加强内外部数据库网络行为记录,提高数据资产安全。

功能:
1)用户行为发现审计
2)多维度线索分析
3)异常操作、SQL注入、黑白名单实时告警
4)针对各种异常行为的精细化报表

参考:数据库审计 DBAudit

合规审计(信息安全标准和规范)

信息安全风险评估、等级保护、ISO17799/27001

等级保护

参考:网络安全等级保护2.0标准解读

ISO27001

ISO17799/27001
参考:ISO27000和ISO27001的区别是什么

网络安全设备

工控安全、政府采购设备

【网络安全】常见的网路安全设备及功能作用总结
网络安全设备概念的熟悉和学习
WAF:Web应用防火墙 —应用层的攻击防护
IDS:入侵检测系统
IPS:入侵防御系统
SOC:安全运营中心
SIEM:信息安全事件管理
Vulnerability Scanner:漏洞扫描器
UTM:统一威胁管理
抗DDOS产品
FireWall:防火墙—上网行为管理软件,主机安全
VPN:虚拟专用网络
DBAudit:数据库审计

防火墙包过滤功能基于五元组安全组规则(源IP地址,源端口,目的IP地址,目的端口和传输层协议)


信息安全事件与应急响应

收集信息:收集客户信息和中毒主机信息,包括样本。
判断类型:判断是否是安全事件,何种安全事件,勒索、挖矿、断网、DoS等等。
深入分析:日志分析、进程分析、启动项分析、样本分析。
清理处置:直接杀掉进程,删除文件,打补丁,抑或是修复文件。
产出报告:整理并输出完整的安全事件报告。

系统日志及日志分析:

  1. Windows系统日志:Windows系统自带的审计日志、操作日志、故障日志。
    日志路径:C:\Windows\System32\winevt\Logs
    重要日志:Security.evtx、System.evtx、Application.evtx
  2. Linux系统日志:Linux系统自带的审计日志、操作日志、故障日志。
    日志路径:/var/log
    必看日志:secure、history
  3. 应用日志:包括但不限于Web应用等众多繁杂的日志。

帮助:
应急响应的整体思路和基本流程
NISP-信息安全事件与应急响应

漏洞记录

待补充······
按时间从新到旧排列
payload可以直接上GitHub上搜索

这里有一个频繁更新 CVE 的 Github 项目:
CVE PoC

CVE 查询:
CVE Details
CVE® Program Mission

一些漏洞类型:https://image.3001.net/images/20181225/1545730764_5c21facc03917.png!small

1. Linux 提权

漏洞 | 时间 | 影响范围 | 漏洞类型 | 参考 | 复现 | 描述
| - | - | - | - | - | - | -
CVE-2021-3156 | 2021.01.27 | sudo: 1.8.2 ~ 1.8.31p2
sudo: 1.9.0 ~ 1.9.5p1 | 高危 | baron-samedit-heap-based-overflow-sudo | Linux sudo权限提升漏洞复现(CVE-2021-3156) | sudo错误地在参数中转义了反斜杠导致堆缓冲区溢出
| CVE-2022-0847 (dirty pipe) | 2022.3.7 | Linux Kernel Version >= 5.8, < 5.16.11 / 5.15.25 / 5.10.102 | 高危 | [漏洞分析] CVE-2022-0847 Dirty Pipe linux内核提权分析 | Linux内核提权漏洞(CVE-2022-0847)复现 | Linux 本地提权
| - | - | - | - | - | - | -

2. RCE(Remote Code Execution,远程命令执行)

漏洞 | 时间 | 影响范围 | 漏洞类型 | 参考 | 复现 | 描述
| - | - | - | - | - | - | -
| CVE-2022-26134 | 2022.06.02 | Atlassian Confluence Server and Data Center >= 1.3.0, < 7.4.17 / 7.13.7 / 7.14.3 / 7.15.2 / 7.16.4 / 7.17.4 / 7.18.1 | OGNL 注入导致的 RCE | CVE-2022-26134 Detail
Atlassian Confluence 远程代码执行漏洞(CVE-2022-26134)风险通告 | Confluence远程命令执行漏洞复现 | 由于Confluence将URL翻译成namespace,导致攻击者可以在URL路径中构造OGNL表达式,造成表达式注入,从而远程执行代码
| - | - | - | - | - | - | -

3. php

漏洞 | 时间 | 影响范围 | 漏洞类型 | 参考 | 复现 | 描述
| - | - | - | - | - | - | -
Thinkphp5 RCE
CNVD-2018-24942 | 2018.12.10 | ThinkPHP 5.0.x ~ 5.0.23
ThinkPHP 5.1.x ~ 5.1.31
ThinkPHP 5.2.0 beta1 | 高危RCE | THINKPHP 全版本远程代码执行漏洞分析
Thinkphp5 RCE总结 | 攻防世界php_rce | ThinkPHP5x 远程代码执行漏洞
| - | - | - | - | - | - | -

4. router

路由器漏洞


安全工具使用和实现原理

HIDS、WAF、RASP、EPP、EDR、NIDS、UEBA、IPS、DLP、代码扫描器、APT检测系统、SOC、SIEM

总览

帮助:Kali Linux 工具使用中文说明书

Burp Suite

安装方式:
Kali 自带社区版,如果要安装功能更多的 Burp Suit Pro,可以找破解版,或者参考前文链接安装kali linux后的准备工作。区别其实不大,主要是爆破时能用更快速率发包(自己写脚本亦无不可)等。

帮助:
Burp Suite 指南
Burp Suite中Intruder模块的使用详解
Burp 扩展 BApp Store
Burp Suite应用商店插件的使用
Burp插件收集

sqlmap

使用:
sql -u “url” -r request.txt –data=”id=1” –cookie=”cookie” –level 3 –batch
–dbs 枚举DBMS所有的数据库
–tables 枚举DBMS数据库中所有的表
–columns 枚举DBMS数据库表中所有的列
–count 检索表的条目的数量
–dump 存储DBMS数据库的表中的条目
–dump-all 存储DBMS所有数据库表中的条目
–D db 指定进行枚举的数据库名称
–T table 指定进行枚举的数据库表名称
–C column 指定进行枚举的数据库列名称
–tamper 指定脚本修改数据绕过WAF等,官方提供了一些脚本

sqlmap常用操作命令
超详细SQLMap使用攻略及技巧分享
sqlmap命令详解
sqlmap使用
利用sqlmap进行POST注入
sqlmap tamper脚本编写
SQLMap之Tamper篡改脚本的类型、作用、适用场景

原理:
SQLMap 原理分析 (一)
SQLMap 原理分析 (二)
sqlmap os-shell原理

课外阅读:
使用Sqlmap的你可能踩中了“蜜罐”
关于/dev/tcp/host/port

nmap

帮助:
nmap 简介和简单使用
Nmap 详细介绍和使用

扫描出的端口状态如下:
open:端口是开放的。
closed:端口是关闭的。
filtered:端口被防火墙IDS/IPS屏蔽,无法确定其状态。
unfiltered:端口没有被屏蔽,但是否开放需要进一步确定

使用:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# 快扫常用,-sS 参数表示使用 TCP SYN扫描(半开扫描),执行速度快,隐蔽且效率高;-sV 表示使用版本探测;-F 表示快速扫描模式,比默认的扫描端口还少
nmap -sS -v -sV -p 1-65535 -Pn 域名/IP

# -Pn 表示不进行Ping扫描;-sn: Ping Scan 表示ping扫描,用于发现主机,不进行端口扫描。-n/-R: -n表示不进行DNS解析;-R表示总是进行DNS解析。
nmap -Pn -n 域名/IP

# -oN filename 正常输出到文件 (Normal Output To A File)
# -oX filename 将扫描结果生成 xml 文件,如果中断,则结果打不开
# -oG filename 该输出易与Grep工具一起使用(Grep-able Output To A File)
# -oA filename 以上述三种格式输出到文件(Output To A File In All Formats),中断后,结果也可保存(待确认)
nmap -oN myscan 域名/IP

# 参数 -v 或 -vv 都可在扫描时显示详细信息
nmap -vv 域名/IP

# 扫描指定端口,可以指定范围如 -p1-65536,或 -p80,443,可以无空格
nmap -p端口 域名/IP

# 使用参数 -A 同时进行操作系统探测和版本探测等,相当于包含了 -O 和 -sV 参数的功能
# --version-intensity 设定扫描强度,以应对做了伪装的软件
nmap -A --version-intensity 1(1-10) 域名/IP

# 伪装扫描
# -D <decoy1,decoy2[,ME],...>: Cloak a scan with decoys将真实IP地址和其他主机的IP地址混合使用,目标主机将回复大量数据包到不存在的主机,降低被发现概率
# -S <IP_Address>: Spoof source address
nmap -D 假域名/IP 域名/IP

# --traceroute: 追踪每个路由节点;
# --open:只显示打开状态的端口;
# --stats-every xx(xx is a number: 定期打印扫描状态

# 暴力破解出子域名及对应的ip地址
nmap --script=dns-brute 域名

# 扫描服务器的常见漏洞
nmap --script=vuln 域名/IP

原理:
Nmap扫描原理与用法

另外,图形化 nmap 是 Zenmap,其他类似 nmap 的工具有:masscan
masscan 被设计用于快速地扫描整个互联网,虽然快,但只能扫描端口。可以先使用masscan扫描开启的端口,再用nmap进行详细的扫描。

1
masscan -p 1-65535 --rate 1000 IP

Metasploit Framework

使用参考:
Metasploit工具之基本操作
Metasploit
Metasploit快速入门
MSF——基本使用 - 那少年和狗 - 博客园
后渗透之meterpreter使用攻略

Wireshark

wireshark 远程抓包

IDA Pro

待补充······
需要破解,或者付比较昂贵的费用。

下载链接(未审核):IDA Pro 7.6.210427 SP1
破解工具链接(未审核):IDA Pro 7.6 SP1 Keygen

帮助:
IDA - XREF(交叉引用)是什么意思
上面的文章对应的专栏也可一看

x64dbg

官网:
https://x64dbg.com/
https://github.com/x64dbg/x64dbg

下载时可以考虑 GitHub 里的地址,速度比 SourceForge 的要快一点。

安装只需解压,然后根据要反汇编的样本是 64 位还是 32 位分别运行x64dbg.exe 或 x32dbg.exe 即可,如果不知道位数可以运行 x96dbg.exe

AWVS

安装 docker 版 AWVS 步骤:

  1. 拉取下载镜像

    1
    docker pull secfa/docker-awvs
  2. 将 Docker 的3443端口映射到服务器的 3443端口

    1
    docker run -it -d -p 3443:3443 secfa/docker-awvs

11版本后使用了B/S架构,使用时浏览器访问:https://IPaddress:3443
一般本地 ip address 是127.0.0.1

默认登录用户名和密码:
username: admin@admin.com
password: Admin123

帮助:
AWVS13.X 破解版 Windows、Linux、Docker 安装
AWVS acunetix_WVS13下载、安装及简单使用
AWVS在Linux下修改登录邮箱与密码
超详细版 AWVS10.5 中文教程
如何优雅的反击用 AWVS 10 扫描你网站的黑客

Nessus

安装 docker 版 Nessus 步骤:

  1. 拉取下载镜像,可在 Docker Hub 里搜索,点击 tag ,会给出相应拉取镜像的命令。

    1
    docker pull tenableofficial/nessus:latest
  2. 将 Docker 的 8834 端口映射到服务器的 8834 端口

    1
    docker run -it -d -p 8834:8834 tenableofficial/nessus

它和 AWVS 同样都是B/S架构,使用时浏览器访问:https://IPaddress:8834

随后需要选择版本并通过邮箱获取激活码,并设置登录用户名和密码。

帮助:Nessus详细使用教程


Threat Intelligence Platform

威胁情报平台:

名称 上传恶意样本 查询恶意样本分析结果(云沙箱) 沙箱
微步在线X情报社区 无登录 无登录 https://s.threatbook.cn/
奇安信威胁情报中心 无登录 无登录 https://sandbox.ti.qianxin.com/
安恒威胁分析平台 登录 无登录 https://ti.dbappsecurity.com.cn/sandbox/
安天威胁情报中心 不支持 无登录 -
360威胁情报中心 不支持 无登录 -
VenusEye威胁情报中心 登录 无登录 https://sandbox.venuseye.com.cn/
绿盟威胁情报中心 无登录 登录 https://poma.nsfocus.com/
网络安全威胁信息共享平台 - - -
白帽汇安全研究院 - - -

术语介绍:

  • IOC情报:Indicator Of Compromise,陷落标识,失陷检测情报,即攻击者控制被害主机所使用的远程命令与控制服务器情报,可以用于提供给用户检测系统是否已被恶意软件或者攻击者攻陷,如果在系统内发现了这些指标即表明系统已被攻陷。情报的IOC往往是域名、IP、URL形式(有时也会包括SSL证书、HASH等形式)。参考:IOC情报是啥情报?

参考:
分享几个威胁情报平台
国外威胁情报网站汇总
什么是威胁情报


其他安全工具

MSF、appscan、gg修改器安全狗等
truepic 照片和视频源头和验证平台

Coblat Strike

参考:
Cobalt Strike 向导
Cobalt Strike入门宝典
Cobalt Strike 系列教程,列出链接如下

  1. Cobalt Strike|从入门到入狱
  2. Cobalt Strike番外|设置kali2020自启动
  3. Cobalt Strike|Beacon原理浅析
  4. Cobalt Strike|发送钓鱼邮件
  5. Cobalt Strike|配置转发器
  6. Cobalt Strike|DNS Beacon
  7. Cobalt Strike|浏览器转发
  8. Cobalt Strike 上线微信提醒

后渗透工具

待改:

常见shell工具:中国菜刀, 蚂蚁宝剑, 冰蝎

比较推荐使用冰蝎适合后渗透,菜刀的使用比较局限也没有更新了,

菜刀:未更新状态,无插件,单向加密传输
蚁剑:更新状态,有插件,拓展性强,单向加密传输
冰蝎:更新状态,未知插件,双向加密传输

参考:渗透攻防必备工具(基础篇)

DOS

拒绝服务攻击工具

LOIC

翻译含义大概是:低轨道离子加农炮,是出名的 DDoS 软件,使用方法很简单。其实在 Kali,以及 Kali 内的 Metasploit Framework 里也有一系列 dos 工具。
下载:
https://sourceforge.net/projects/loic/files/latest/download

参考:Dos和DDos攻击,以及许多 Dos 工具的介绍

GoldenEye

参考:GoldenEye:一款功能强大的 Layer7 DoS 安全测试工具

Wappalyzer

浏览器扩展,可以检测网站使用的技术,浏览器的扩展商店搜索安装即可。
参考:好用的插件:Wappalyzer 检测网站使用的技术

HttpCanary

参考:Android 抓包工具——HttpCanary

Charles

还有 fiddler 等抓包工具
参考:app抓包利器:Charles

dsploit

Android 下的 dsploit,是一款手机上的渗透测试套件,需要 root 权限,其后继者是 cSploit, zANTI 等。它支持中间人攻击,脚本注入,伪造数据包,端口扫描等功能。

dSploit 的核心开发者有两个。2014 年秋时,其中一个(同时是 dSploit 创始者)决定把 dSploit 并入 zANTI ,并加入了 zANTI 所在的公司。另一个可能不太高兴,虽然 dSploit 创始者说 zANTI2 也会开源,不过他等不及了,他决定自己 fork 一个分支出来去完善,这个分支就是 cSploit。

mitmproxy

用于中间人攻击的代理,MITM 即中间人攻击(Man-in-the-middle attack)。
其他类似的有 SSLStrip 等。

参考:使用 mitmproxy + python 做拦截代理

ssdeep

基于模糊哈希(Fuzzy Hashing)算法的工具。防御端通过搜集大量已知样本,制作样本库,使用ssdeep进行相似度比对,可快速发现入侵。
参考:webshell指纹-ssdeep

PingTools Pro

Android 平台的网络工具,包含局域网设备 IP、mac 地址查看,端口扫描,UPnP 设备扫描等功能。
参考:PingTools Pro v4.52 Pro for Android 解锁专业版 —— 一款简单但功能强大的网络实用工具集

LibChecker

Android 平台的一个 APP 应用架构查看分析工具,包括 App 的 ABI 架构查看和统计(32 位 / 64 位)、原生库的查看、四大组件的查看(服务、活动、广播接收器、内容提供器),用于协助逆向 APP 。
酷安市场可以下载:LibChecker - 应用架构查看

Xray

一款不开源的安全评估工具,支持漏洞检测

地址(注意,应当下载里头的二进制文件):https://github.com/chaitin/xray
教程:https://docs.xray.cool/

服务扫描,依赖于提供的 poc:

1
2
3
4
5
6
7
8
快速检测单个目标
./xray servicescan --target 127.0.0.1:8009

批量检查的 1.file 中的目标, 一行一个目标,带端口
./xray servicescan --target-file 1.file

将检测结果输出到 json 文件中
./xray servicescan --target 127.0.0.1:8099 --json-output 1.json

参考:Web端漏洞扫描器 xray 总结

帮助:谈谈不为人知的 xray 子域名

XSStrike

XSStrike 是一款探测并提供利用XSS漏洞的脚本的工具。

下载:XSStrike —— Github

帮助:
XSStrike工具的安装和简单使用
网络安全-XSStrike中文手册(自学笔记)
网络安全-靶机pikachu之xss注入与代码分析(XSStrike实战)

Crunch

字典生成工具,Kali 自带。
在 /usr/share/wordlists/ 中,有一些 kali 的默认字典

命令参数说明:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
-b     指定文件输出的大小,避免字典文件过大  
-c 指定文件输出的行数,即包含密码的个数
-d 限制相同元素出现的次数
-e 定义停止字符,即到该字符串就停止生成
-f 调用库文件(/etc/share/crunch/charset.lst)
-i 改变输出格式,即aaa,aab -> aaa,baa
-I 通常与-t联合使用,表明该字符为实义字符
-m 通常与-p搭配
-o 将密码保存到指定文件
-p 将元素进行组合(此时最大最小长度项失效但仍然要带上,可以任意输两个。元素如果是字符串加空格则以字符串为单位)
-q 读取密码文件(指定文本文件,最大最小长度失效,每行之间相互排序)
-r 定义从某一字符串重新开始
-s 指定一个开始的字符,即从自己定义的密码xxxx开始
-t 指定密码输出的格式
@ 代表小写字母 lalpha
, 代表大写字母 ualpha
% 代表数字 numeric
^ 代表符号 symbols
+ 占位符
\ 转义符(空格,负号)
-u 禁止打印百分比(必须为最后一个选项)
-z 压缩生成的字典文件,支持gzip,bzip2,lzma,7z(压缩率最大)

帮助:
Crunch Utility - GeeksforGeeks
https://www.kali.org/tools/crunch/
密码字典生成工具—Crunch的使用
crunch字典生成工具详细使用介绍
kali linux生成密码字典方法

John the ripper

一款基于字典的开源密码破解工具,Kali 自带。
john工具对于同一个shadow文件(影子文件,真正存放密码的地方)只会进行一次爆破,如果第二次执行john shadow是不会得到结果的,但是可以查看上一次的破解结果

参考:Kali(渗透工具):22—John破解密码的神器
kali破解docx文档-rar文件密码
john破解kali密码
Kali Linux 暴力破解 Excel密码 —— office2john.py
kali 使用John破解zip压缩包的密码

帮助:
John the Ripper password cracker —— openwall
Kali Linux 暴力破解 Excel密码 —— office2john.py

Hydra

参考:
hydra详细使用教程
爆破工具 Hydra 简单使用


OneForAll

OneForAll 一款功能强大的子域收集工具

Goby

待添加······

资产侦察

同类型有:灯塔
参考:Goby使用教程
Goby+AWVS看黑客如何躺着挖洞

简单算法编程

算法相关内容推荐参考:OI (Olympiad in Informatics,信息学奥林匹克竞赛) Wiki

数据结构:数组、字符串、栈、堆、哈希表、二叉树、图等
算法:二分查找、广度/深度搜索、动态规划等

语言学习:
C++ —— 牛客网

Java —— 牛客网

Python —— 牛客网
Python —— 在线手册中心
Python —— Python 中文学习大本营
Python 扩展 —— flask-restful

MySQL —— 牛客网


总结与测验

牛客网面试资料库
安全漏洞概念及分类
网络安全常见面试题 - 对于某些攻击的防御方法等
几率大的网络安全面试题
渗透测试面试问题合集
2023级网络安全岗面试题及面试经验分享

计算机网络:
技术面试需要掌握的基础知识整理之计算机网络
计算机网络知识点全面总结
计算机网络基础知识总结
计算机网络基础知识总结
传输层协议(TCP, UDP)
PGP协议 —— 密码技术的完美组合
DNS篇之DNS协议详解
数据传输原理(上)—— 主机部分传输原理
数据传输原理(下)—— 网络设备部分传输原理
DNS 解析过程,访问一个网站的流程。

课外阅读

打造工具:
一个Python开源项目-腾讯哈勃沙箱源码剖析(上)
一个Python开源项目-腾讯哈勃沙箱源码剖析(下)
如何打造自己的PoC框架-Pocsuite3-框架篇

Javascript 相关:
CTF比赛中关于 javascript 的总结
JavaScript反调试技巧
彻底搞定反调试之无限debugger
JS 反混淆
frame busting 各种姿势,防护总结

DNS 盲打:
使用DNSLOG拯救你的盲打盲注
浅析DNSlog在渗透测试中的实战技巧
dnslog平台盲打学习

渗透:
记一次无线渗透
使用Metasploit(msf)通过ms17_010_eternalblue漏洞控制Windows电脑
一次从内网到外网,黑盒到白盒的批量挖洞经历

YAML:
YAML 入门教程

yara
Yara、Snort和Sigma规则

xip.io:
xip.io

Web缓存欺骗攻击

SRC:
公益SRC怎么挖 | SRC上榜技巧
edusrc挖掘思路
一个思路,收集待渗透网站的服务提供商,查找同一提供商提供服务的其它网站,如果有配置失误导致源码泄露,可以获取其源码审计出 0 day,然后批量挖洞。

CVE
CVE申请的那些事
漏洞都是怎么编号的CVE/CAN/BUGTRAQ/CNCVE/CNVD/CNNVD

其他:
2022全国职业技能大赛-网络安全赛题解析总结①

如何查看服务器被攻击的记录、日志等
入侵后如何清除入侵痕迹

安全设备
待改:
无文件攻击、远线程注入、堆喷射、HW、IPS、WAF、HFW、HIPS、EPP、EDR

信息论:
信息论入门教程 —— 阮一峰
信道容量
隐私保护的信息熵模型及其度量方法