护网题库
网络基础题:
一、常见的服务对应端口:
-
HTTP:超文本传输协议,默认端口是 80,用于网页浏览和 Web 服务。
-
HTTPS:安全的 HTTP 协议,默认端口是 443,用于安全的网页连接和加密通信。
-
FTP:文件传输协议,用于传输文件,默认端口是 21。
-
SMTP:简单邮件传输协议,用于发送邮件,默认端口是 25。
-
POP3:邮局协议版本 3,用于接收邮件,默认端口是 110。
-
SSH:安全外壳协议,用于远程登录和安全通信,默认端口是 22。
-
Telnet:远程登录协议,默认端口是 23,但现在较少使用,因为 SSH 更安全。
-
DNS:域名系统,用于域名解析,默认端口是 53。
-
SNMP:简单网络管理协议,用于网络设备的管理,默认端口是 161。
-
RDP:远程桌面协议,用于远程控制计算机,默认端口是 3389。
-
Redis:一般使用默认端口 6379。Redis 是一个高性能的键值存储数据库,常用于缓存、消息队列、数据存储等。
-
SQL Server:默认端口是 1433。它是微软的关系型数据库管理系统,提供了可靠的数据库服务。
-
MySQL:默认端口是 3306。MySQL 是一种广泛使用的开源关系型数据库,适用于各种规模的项目。
-
LDAP:LDAP 协议本身没有固定的端口,常见的 LDAP 服务器端口包括 389(用于 LDAP 目录服务)和 636(用于 LDAPS,即加密的 LDAP)。LDAP 用于存储和管理组织的目录信息,如用户、组、权限等。
-
DHCP:DHCP 服务器通常使用端口 67(DHCP 服务器)和 68(DHCP 客户端)。DHCP 用于自动分配 IP 地址、子网掩码、网关等网络配置信息。
-
Oracle:Oracle 数据库的默认端口号可能因版本和配置而有所不同。常见的 Oracle 端口包括 1521(用于 Oracle数据库服务)等。
-
WebLogic 的默认端口是 7001
二、osi七层模型:
三、linux和windows看系统进程的命令和杀列进程:
四、常见的协议:
-
HTTP:超文本传输协议,用于在 Web 上传输数据。
-
HTTPS:在 HTTP 基础上添加了 SSL/TLS 加密的安全协议
-
FTP:文件传输协议,用于在网络上进行文件传输。
-
TCP/IP协议:是Internet上使用的最常见的协议之一,TCP是传输控制协议,IP是Internet协议
-
DNS协议:是域名系统协议,用于将域名转换为IP地址。
-
SSH协议:是安全壳协议,用于通过加密协议在网络上安全地传输数据。
-
SMTP协议:是邮件服务器和邮件客户端之间通信的协议,它定义了电子邮件传输的格式。
-
POP3协议:是邮件客户端从邮件服务器上接收邮件的协议。
-
IMAP协议:是邮件客户端从邮件服务器上接收邮件的协议,它比POP3更加强大和灵活。
五、TCP 三次握手和四次挥手分别作了什么
TCP 三次握手,确保双方连接建立成功:
-
客户端发送 SYN 包给服务器,请求建立连接
-
服务器收到 SYN 包,发送 SYN + ACK 包给客户端,同意建立连接
-
客户端收到 SYN + ACK 包,发送 ACK 包给服务器,建立连接成功
TCP 四次挥手,确保连接断开时数据的可靠传输:
-
客户端发送 FIN 包给服务器,请求关闭连接
-
服务器收到 FIN 包,发送 ACK 包给客户端,收到客户端的关闭请求
-
服务器发送 FIN 包给客户端,准备关闭连接
-
客户端收到 FIN 包,发送 ACK 包给服务器,收到服务器的关闭请求,断开连接
安全加固:
linux加固:
windows安全加固:
应急响应:
-
准备阶段:明确风险资产并对可能的安全问题加固
-
检测阶段:通过日常监控、日志等对可疑流量进行分析判断
-
抑制阶段:分析影响范围,限制攻击范围,安全软件隔离等手段尽可能将影响降低到最低
-
根除阶段:分析事件成因,找出源头并处理。如果是木马,对木马进行特征扫描分析和定位,并排除可能存在的后门
-
恢复阶段:对受到破坏的系统和数据进行恢复,并实时监控分析,确保运行无误的情况下可以逐步尝试恢复抑制阶段的操作
-
总结阶段:对攻击特征与所使用的有效手段进行记录,为后续可能遇到的同类型事件提供经验
大批量的邮件钓鱼已经被客户误点且发生在半小时以前,如何应急处理
-
预警阶段。发送全员紧急预警,提醒切勿继续中招。必要时隔离网络,防止钓鱼邮件继续扩散。
-
遏制阶段。提醒已中招的用户及时修改密码等敏感信息,全盘杀毒,协助排查客户个人电脑中的文件,如有木马、勒索程序、后门等,立即清除。
-
溯源阶段。从两个方面(发送者邮箱、钓鱼邮件源码)入手,收集发送者相关个人信息与钓鱼数据最终前往的目的服务器;信息收集、社工、IP反查、域名备案管理等手段查询目的站相关信息。
-
反制阶段。端口、子域名、目录扫描等手段对目标服务器进行渗透
linux日志分析:
日志默认存放位置:/var/log/ 查看日志配置情况:more /etc/rsyslog.conf
Linux 的日志默认存放在 /var/log 目录下。
-
/var/log/message: 内核消息及各种应用程序的公开日志(包括启动、IO错误、网络错误等)
-
/var/log/cron:周期性计划任务日志
-
/var/log/lastlog:用户最近登录事件
-
/var/log/wtmp:用户登录、注销及系统启动、停机事件
-
/var/log/btmp:失败的登录尝试及验证事件
-
/var/log/dmesg:引导过程中的各种事件信息
-
/var/log/maillog:电子邮件活动日志
windows日志分析:
Windows主要有以下三类日志记录系统事件:应用程序日志、系统日志和安全日志。
系统日志:
Windows系统组件产生的事件,主要包括驱动程序、系统组件、应用程序错误消息等。
日志的默认位置为:C:\Windows\System32\winevt\Logs\System.evtx
应用程序日志:
包含由应用程序或系统程序记录的事件,主要记录程序运行方面的事件,例如数据库程序可以在应用程序日志中记录文件错误,程序开发人员可以自行决定监视哪些事件。如果某个应用程序出现崩溃情况,那么我们可以从程序事件日志中找到相应的记录,也许会有助于你解决问题。
日志的默认位置为:C:\Windows\System32\winevt\Logs\Application.evtx
安全日志:
主要记录系统的安全信息,包括成功的登录、退出,不成功的登录,系统文件的创建、删除、更改,需要指明的是安全日志只有系统管理员才可以访问,这也体现了在大型系统中安全的重要性。
日志的默认位置为:C:\Windows\System32\winevt\Logs\Security.evtx
常见的安全设备:
启明星城的ids
长亭的雷池
天眼、ips、堡垒机
常见的 WebShell 管理工具
菜刀、蚁剑、冰蝎、哥斯拉
常见的 WebShell 检测工具
河马、D盾、牧云、百度
入侵检测的思路
Windows 入侵排查
-
检查系统账号安全
-
服务器弱口令
-
服务器远程桌面协议(RDP 协议,默认 3389)
-
服务器账号检查(新增账号、隐藏账号、克隆账号、其他可疑账号)
-
检查异常端口、进程
-
检查启动项、计划任务、服务
-
检查系统版本、可疑目录及文件(Users、Recent)
-
检查系统日志(4624:登录成功、4625:登录失败、4672:超管登录、4720:创建用户)
Linux 入侵排查
-
检查账号安全(密码文件、影子文件、特权用户、远程用户、sudo权限用户、来宾用户等
-
检查历史命令(远程登录命令、创建用户命令、删除用户命令、删除文件命令等)
-
检查异常端口、进程
-
检查启动项(runlevel)、定时任务(crontal -l)、服务
-
检查异常文件
-
检查系统日志(/var/log/secure 等)
漏洞:
SQL注入:
SQL 注入的原理、危害及防御措施
SQL 注入的原理:原本的 SQL 语句在与用户可控的参数经过了如拼接、替换等字符串操作后,得到一个新的 SQL 语句并被数据库解析执行,从而达到非预期的效果。
SQL 注入的危害:由于 SQL 注入是执行了非预期的 SQL 语句,所以有可能导致数据库中的大量数据泄露、甚至被删库,如果数据库开启了文件读写权限,还有可能导致服务器被写入木马等。
SQL 注入的防御:SQL 注入的防御一般从三个方向开展:
-
集成安全防御工具,如 WAF 等。通常可以拦截大部分的攻击流量,但并不绝对,存在一定的绕过风险;
-
黑白名单限制。黑名单主要体现在参数格式、参数长度、特殊字符、转义或编码后的特殊字符等,但是由于绕过方式层出不穷,黑名单很容易出现纰漏,白名单主要应用在对动态表列名、排序等场景下,仅允许指定的参数通过,安全性较高;
-
预编译SQL。也是目前最流行最有效的方案,几乎所有的持久层框架都是使用这种技术。预编译其实就是 SQL 引擎预先对 SQL 语句进行分析编译,然后再去填充参数,目前来说这种技术是可以完全防御 SQL 注入的。
SQLMap 如何 Post 请求发起扫描?
SQLMap 发送 Post 请求通常有三种方式:
-
使用 --data 参数,参数格式与 URL 参数相同,如: sqlmap -u http://xxx.xxx.xxx/login.html --data "id=1&name=xxx";
-
保存 Post 请求包(通常使用 bp, 假设保存为 post.txt),然后使用 -r指定请求包文件,如: sqlmap -r "C:\Users\Administrator\Desktop\post.txt";
-
扫描 form 表单,如: sqlmap -u http://xxx.xxx.xxx/login.html --forms
SQLMap 常用的参数
-
-u: 注入目标
-
–data: Post 注入的参数
-
–form: 表单注入
-
-r: 文件读取注入(常用 Post 请求注入)
-
–dbs:列出库
-
–tables:列出表
-
–columns: 列出列
-
-D:指定库
-
-T:指定表
-
-C:指定列
-
–os:当前系统
-
–current-db:当前数据库
-
–current-user: 当前用户
-
–level:扫描等级
-
–delay:延迟
-
–sql-shell:写入 shell
-
–tamper:使用指定插件(常用绕 WAF)
-
–cookie:指定 cookie
-
–random-agent:随机 UA
-
–user-agent: 指定UA
SQLMap 的 --sql-shell 和 --os-shell 的区别
--sql-shell 是在目标数据库上打开交互式的 SQL shell,可以执行 SQL 命令。只能在已经注入目标数据库后使用 --os-shell 是在目标服务器上打开交互式 shell,可以在目标服务器上执行系统命令,但是需要足够高的权限
SQL 注入的流量有什么特征
-
参数长度异常。大多数的 SQL 注入参数由于需要截断、拼接、构造等操作,会导致参数的长度比较长;
-
特殊字符。大多数的 SQL 注入会包含如 '、 "、)、;、#、--、<!--、/** 等用于截断或者注释 SQL 语句的特殊字符;
-
参数编码。对参数进行 url、base64 等类型的编码,以及类似于宽字节注入常用的 %df5c 等编码方式,都是常见的绕过手段;
-
SQL 关键字。通常情况下正常的 SQL 参数是不会包含如 SELECT、 UNION、 ORDER BY、 UPDATEXML、 CONCAT、 TABLE、 DATABASE、 SLEEP等 SQL 关键字的,如果流量中出现了这类关键字就需要留意了。
-
大量的请求。短时间之内涌入大量的请求,有很大概率是扫描工具发起的流量,需要留意识别。
SQL 宽字节注入的原理
宽字节注入的根本原理是:代码层与数据库层的编码不一致,并且宽字节本身有“吞”ASCII字符的现象。
具体例如:在 SQL 注入时,尝试使用单引号 ' 逃逸时,发现被代码层自动加上了转义符号 \,变成了 ',如果代码中自行添加的转义符号 \ 为 ASCII 编码,那么 ' 的十六进制就是 %5C%27,这时候,如果参数使用 ß',十六进制就是 %DF%27,经过代码中自动为 %27 加上的转义符号 %5C 之后,参数就变成了 %DF%5C%27,而到了 MySQL 中,如果 MySQL 使用的是 GBK 编码(宽字节的一种),则会将 %DF%5C 当做一个宽字节,剩下的 %27 当做一个字符,这就导致了转移符号 %5C 被 %DF 吞掉,组成了一个新的字符,而单引号 %27 却逃过了 %5C 的转义。
MySQL 5.0 以上和 5.0 以下的区别
-
MySQL 5.0 引入了存储过程、触发器、视图的概念
-
MySQL 5.0 支持了 information_schema 表,这张表中包含了 schemata、tables、columns 等多张表(实际上是视图),存放了数据库中的库信息、表信息、列信息等。在 SQL 注入时可以利用此表快速获取表结构等信息。
-
MySQL 5.0 从以前的多用户单操作变为了多用户多操作
SSRF和CSRF
SSRF 是什么?原理是什么?
SSRF 中文名称:服务端请求伪造。是指在攻击者无权访问服务器B,服务器A有权访问服务器B的情况下,攻击者利用服务器A的漏洞,伪造成服务器A的身份向服务器B发送请求。
通常情况下,是由于服务器A中提供了类似于通过指定 URL 远程读取文件的功能,而 URL 又未做任何校验,攻击者便构造特殊的URL,以服务器A的身份发起请求。大多数情况下,是由于为服务端提供了从其他服务端获取数据的功能,但并未对目标地址进行限制。
SSRF 的危害是什么?如何防御?
SSRF 是通过伪造有权访问的服务器的身份去访问原本无权访问的服务器。
其危害主要表现为:
-
服务器被控制,可能被当做代理服务器进行其他恶意行为
-
如果访问到的是内网服务器,可能会直接扫描到内网端口和服务,访问到内网资源,横向到其他内网机器
-
上传恶意脚本等
CSRFToken 可以防御 CSRF
-
CSRFToken 是服务器为用户随机生成一个唯一的 token ,用户发起请求时,服务端先将 CSRFToken 作为请求头返回给客户端,客户端携带 CSRFToken 再发送请求,服务端验证 CSRFToken 是否与存储的相同,不同则拒绝请求。
-
因为 CSRF 攻击是伪造了被攻击网站的 cookie 认证机制,而 CSRFToken 是在请求中加入的一个由服务器生成的随机 token,攻击者即使伪造了 cookie 也无法伪造这个 token,从而无法成功发起 CSRF 攻击。
CSRF 漏洞和 SSRF 漏洞的区别
-
CSRF漏洞是一种客户端漏洞。攻击者通过在用户已经登录的网站上,诱导用户点击恶意链接或提交恶意表单,从而实现对用户账号的操作。攻击者通过伪造请求,让用户在不知情的情况下执行某些操作。
-
SSRF漏洞则是一种服务器端漏洞。攻击者可以通过构造恶意的请求,使服务器发起对其他内部或外部服务的请求,从而获取一些敏感信息或者攻击其他系统
CSRF 漏洞如何防护
-
验证请求来源:在服务器端对请求进行校验,只接受来自信任的源的请求,如 Referer 校验、CSRF Token 校验等;
-
设置 SameSite: 可以限制 Cookie 的跨站传递,一般设置为 Strict 或 Lax;
-
双因子验证:关键性操作引入双因子验证,再次确认用户身份,如:修改密码、转账时短信验证码、再次输入用户密码、人脸识别等;
-
防止 XSS:很多场景下,XSS 往往是和 CSRF 会形成组合攻击,防止 XSS 可以有效降低用户 Cookie 泄露的风险,从而增大 CSRF 的利用难度。
XSS 权限驻留
XSS 权限驻留一般是将可以获取用户凭证的 XSS 代码写入网站登录后的页面中,通常会结合 webshell
或者 存储型XSS。这样,当其他用户登入网站后,就会触发 XSS 代码从而将网站 cookies
发送到指定位置。
文件上传漏洞的原理
文件上传漏洞是在文件上传处,服务端未对文件的格式和内容进行严格的验证,导致恶意文件上传(如 webshell、可执行文件、压缩炸弹等),从而造成服务端被远控、命令执行、资源耗尽等风险。
文件上传攻击的流量特征
-
正常文件上传的特征。如 Content-Type、upload 等,大多数情况会是 POST 请求;
-
特殊的文件后缀。如脚本语言后缀(.php、.js、.sh、.py等)、动态网页后缀(.asp、.jsp等)、可执行文件后缀(.exe等)、代码包后缀(.jar、.war等)、其他特殊后缀(.php.123、py.png等疑似利用解析漏洞的后缀)
-
Content-Type 与文件后缀不匹配。这是一种比较常见的文件类型绕过手段。
-
特殊符号与编码。如\、00、\0等截断符号
-
Data 的大小偏大。尤其是上传文件为压缩文件时。
如何区分扫描流量和手动流量
扫描流量通常会至少有以下 4 个特点之一:1. 数量大;2. 频率快;3. 有规律;4. 持续久(在某些场景下,攻击者为了防止被发现而刻意降低了请求频率后,比较持续且有规律的流量)。除上述之外,还有一种比较常见的扫描流量,就是较多的 UCP (端口扫描)或者 HTTP HEAD(目录扫描) 之类的请求,部分扫描工具为了提高速度和节约带宽通常会使用此类连接。
挖矿病毒的特征(如何识别)及处理方式
挖矿病毒最典型的特征就是会长时间占用大量的 CPU 资源。
挖矿病毒的处理方式通常按照如下流程:
-
任务管理器查看 CPU 占用情况(Linux 用 top 命令与 ps 命令),找出 CPU 长时间占用过高的进程,大概率就是挖矿木马(别急着直接 kill,记住进程名);
-
记住进程名,定位进程所在位置,或许可以收集到一些相关信息(可以 kill 它了);
-
分析安全日志、历史命令等,查找木马来源、运行时间、账户等;
-
检查计划任务、自启服务、开机启动项等是否有异常任务;
-
检查登录记录、隐藏账户、SSH 认证等是否异常,防止木马留下后门;
-
检查防火墙、杀毒软件等是否被篡改配置、信任指定端口、加入白名单或开始静默模式等;
-
查看进程观察木马被重启,如重启,重新排查计划任务等;
-
如不会重新启动(别急着高兴),最重要的一点,还要防止木马被再次写入才能以绝后患,所以还需要进一步对服务器进行完整扫描查杀,防止木马被再次写入。
冰蝎、菜刀、蚁剑、哥斯拉的特点
-
菜刀:ASP语言编写的 Windows 远控管理软件,年代比较久,鼻祖级别的,曾经风靡一时,现已经逐渐被其他三个所取代
-
冰蝎:基于 Java 编写,有跨平台特性,流量动态加密(AES128 + 随机密钥)
-
哥斯拉:基于C#编写,流量加密能过大部分静态查杀和WAF(查杀和WAF也在更新,随时就可能不行了),自带的各种插件功能异常强大
-
蚁剑:基于Java编写跨平台远控管理工具,模块化开发,代码简单易懂,可扩展性强
冰蝎、菜刀、蚁剑、哥斯拉的流量特征
-
菜刀: 流量特征主要表现在HTTP协议上,使用HTTP协议通信,控制命令和数据都通过POST请求传输。因此,可以通过HTTP请求头中的User-Agent、Referer等信息进行识别
-
蚁剑: 流量特征主要表现在数据包的加密方式和数据类型。蚁剑使用了AES加密算法对数据进行加密,同时还使用了自定义的二进制协议,在通信中传输各种类型的数据
-
冰蝎: 流量特征主要表现在数据包中的特殊标记和传输的数据类型。冰蝎的数据包中包含了特定的标记,如"flag=0x52415631",用于标识该数据包是冰蝎的控制命令。此外,冰蝎还使用了一种自定义的二进制协议,在通信中传输各种类型的数据。
-
哥斯拉: 流量特征主要表现在数据包的特殊标记和数据类型。哥斯拉的数据包中包含了特定的标记,如"XORHEAD"和"XORBODY",用于标识该数据包是哥斯拉的控制命令。此外,哥斯拉还使用了一种自定义的二进制协议,在通信中传输各种类型的数据
其他漏洞
常见的中间件解析漏洞
Web 服务器解析漏洞:包括 Apache、Nginx、IIS 等服务器的解析漏洞
中间件解析漏洞:包括 Tomcat、Jboss、WebLogic 等中间件的解析漏洞
常见的未授权访问漏洞
Docker
未授权访问
Durid
未授权访问
Elasticsearch
未授权访问
JBoss
未授权访问
Redis
未授权访问
Weblogic
未授权访问
常见的逻辑漏洞
-
越权访问:水平越权(也称为横向越权)、垂直越权(也称为纵向越权)
-
支付漏洞:0 元购、负价格、四舍五入薅羊毛、条件竞争突破等
-
暴力破解:用户名暴力枚举、密码爆破、脱敏信息利用查询条件爆破等
-
验证码问题:验证码复用、验证码爆破、验证码可预测
-
认证绕过:前后端校验不一致、仅前端校验状态码
常见的反序列化漏洞
-
Commons-Collections` 反序列化漏洞
-
Jackson` 反序列化漏洞
-
XStream
反序列化漏洞 -
Fastjson` 反序列化漏洞
一般情况下哪些漏洞用于高频打点
Fastjson漏洞、Log4j、上传漏洞、
WAF:
WAF 的工作原理
WAF(Web 应用程序防火墙)是用户保护 Web 应用程序免受网络攻击的一种特殊防火墙,其工作原理主要为:
拦截 HTTP 请求:WAF 位于 Web 应用与客户端之间,通过拦截所有 HTTP 请求来保护 Web 应用程序 分析请求:WAF 会对请求(包括 HTTP 头、请求方法、请求内容等)使用规则引擎来检测攻击特征 阻止攻击:如果检测到攻击特征,WAF 将阻止请求并返回错误响应或重定向到安全页面 记录报告:WAF 会记录所有的 HTTP 请求和响应,并生成报告,以供管理员分析和审查
常见的绕过 WAF 手段
-
旁站绕过:例如 https 协议改成 http 协议,或者很多网站都会有备用域名,用备用域名试试
-
伪装身份:例如 修改 XFF 为可信 IP(如 127.0.0.1),伪装 UA,伪装成爬虫工具等
-
规则绕过:双写参数、大小写替换、编码转换、请求方式转换、注释、空白符、通配符绕过等
-
流量绕过:大量的参数个数、大量的参数长度、大体积的数据包、条件竞争等
-
IP 绕过:如果站点配置的是云 WAF,找到真实服务器的 IP 直接访问也有可能绕过 WAF 的检测
文件上传如何绕过 WAF
-
后缀名黑名单绕过、图片隐写绕过、大小写、双写、文件名编码绕过等,可配合解析漏洞
-
空格、00截断、换行、制表符等特殊符号绕过
-
垃圾字符绕过(增加文件大小等)
-
多文件绕过(多个参数名、多个 form-data 、多个 content-disposition 等
-
条件竞争绕过
SQL 注入如何绕过 WAF
-
大小写、双写绕过
-
编码绕过(十六进制、URL编码、Unicode编码、00、0a 等)
-
注释绕过
-
等价函数替换绕过,
-
二次注入绕过
-
宽字节注入绕过
-
垃圾字符绕过(增加传输内容大小、参数数量等)
-
分块传输绕过(Tranfer-Enconding: chunked)
-
sqlmap --tamper 工具绕过
-
更改请求方式绕过
主流的免杀手段有哪些
静态免杀:修改文件特征码(绕过杀软对恶意代码的拦截,如反弹 shell,端口监听等,包括一些常用工具的代码特征等)
-
替换非关键数据
-
替换等价方法
-
不影响逻辑的情况下交换代码顺序
-
增加无效代码
-
加壳
-
伪造签名
动态免杀:软件行为控制(绕过杀软对恶意行为的拦截,如文件写入、进程操作、注入劫持、注册表修改等)
-
等价替换 API
-
重写 API
常用的反制手段
-
蜜罐诱导(诱导攻击,收集攻击IP、攻击手法等)
-
反向钓鱼(主动出击,反向钓鱼获取关键信息)
-
IP 溯源反制(根据攻击 IP 溯源攻击者画像)
-
社工(有人的地方就有社工,社工永远是最无解的手段,不管是进攻还是反制)
-
威胁情报收集、攻击样本分析
-
利用攻击日志留痕、攻击工具本身(如 webshell 管理工具,CS Team 服务端等)进行反制
内网:
内网的信息收集思路
-
IP 信息收集(本机IP,网段,网关,DNS等)
-
操作系统信息收集(Windows 还是 Linux,什么版本,是否有可利用的已知内核漏洞,补丁是否更新等)
-
服务软件信息收集(MySql,Redis,Tomcat,杀软等)
-
计划任务、服务、进程等信息收集
-
端口开放信息收集
-
域信息收集(域控,域组,域内用户)
-
其他信息收集(日志、文件等,可能或包含口令等敏感信息)
-
也可以直接使用脚本、工具一键收集(NetBIOS、ScanLine、NMap 等)
常见的内网隧道技术:
icmp隧道、dns协议,ssh协议
内网横向的手段
IPC 横向、PTH 横向、PTT 横向、票据传递横向、内核漏洞(MS14-068)、集成工具(msf、cs)等
IPC 横向的原理
-
IPC 是 Internet Process Connection, 网络进程连接 的缩写。是为了实现进程之间通信而开放的一个命名管道,可以通过验证用户名和密码获取响应权限,通常是在进程管理计算机共享资源时使用。
-
IPC 连接建立需要主机开启 139(NetBIOS 协议)和 445(文件共享协议)端口,并且管理员开启了默认共享功能
-
IPC 横向实际上就是通过建立 IPC 连接(net use \xxx.xxx.xxx.xxx\ipc$ "name@passwd" /user:adminxxx)后,通过 IPC 管道进行横向操作(dir \xxx.xxx.xxx.xxx\c$)
PTH 横向的原理
PTH 是 Pass the hash, 哈希传递攻击 的缩写。其原理是通过直接找到与账户相关的密码 Hash 值(通常是 NTML Hash),由于域环境中,域管理员与本地管理员的账户大概率都是相同的,利用这种场景,使用 Hash 传递,不需要破解密码明文,直接使用密文就可以横向移动。通常配合 mimikatz 工具使用。
正向 Shell 与反向 Shell
-
正向 shell 是主控端主动向被控端发起连接(内网攻击公网)
-
反向 shell 是等待被控端主动向主控端发起连接(外网攻击内网)
后台getshell的方法:
数据库备份getshell、直接上传getshell、利用文件解析漏洞来拿webshell
正向代理与反向代理的区别:
正向代理:在客户端部署代理服务器,代替客户端对外部网络发送和接收消息。客户端发送一个指定目标的请求给代理服务器,代理服务器再发送给目标服务器,目标服务器收到请求后,将响应的内容发送给代理服务器,代理服务器发给客户端。
在正向代理的过程中,代理服务器代替客户端向目标服务器发送请求,目标服务器不知道谁是真正的客户端,不知道访问自己的是一个代理服务器还是客户端。服务器只负责将响应包发送给请求方。
反向代理:在服务器端部署代理服务器(为了区分,将真正响应的服务器成为业务服务器),让代理服务器替业务服务器接收请求或发送响应。客户端发送一个请求给代理服务器,代理服务器接收请求并将请求发送给业务服务器,业务服务器将响应发送给代理服务器,代理服务器再将响应发送给客户端。
在反向代理的过程中,客户端不知道自己请求的是代理服务器还是业务服务器。
黄金票据和白银票据的区别和利用方法
-
黄金票据是利用 Kerberos TGT 信息伪造的票据,TGT 是由 AS 颁发的包含用户身份和 TGS 密钥等信息的票据,伪造黄金票据可以允许攻击者获取对任何服务的管理员权限;
-
白银票据是利用服务账户信息伪造的票据,可以通过获取 Kerberos 中服务账户的 NTML 哈希来生成,伪造白银票据可以允许攻击者获取特定服务的权限
外围
外围打点的基本流程
-
确定目标
-
信息收集(天眼查、企查查、oneforall、fofa、enscan 等,哦,对了,社工钓鱼~)
-
漏洞探测(已知组件漏洞、CMS 识别、OWasp Top10、弱口令、未授权访问、目录爆破等)
-
getshell
外围打点的常用工具
-
企业信息收集:企查查、天眼查
-
子域名扫描工具:Enscan、水泽、onforall、xray
-
空间测绘:Fofa、hunter、Quake、zoomeye
-
指纹识别:wappalyzer、Glass
-
目录扫描:dirsearch、Dirmap、rad
-
漏洞扫描:goby、xray
外围打点常用的漏洞
-
弱口令
-
未授权
-
任意用户注册/登录
-
万能密码/验证码
-
SQL 注入
-
接口未鉴权
-
任意用户密码重置
-
越权
-
文件上传
外围打点常用的 FOFA 语句
domain=“xxx.com” body=“Index of/” title=“后台” port=“6379” 识别和绕过 CDN 的思路 判断一个站是否使用了 CDN 技术可以直接通过多地ping或者nslookup等工具扫描,如果返回的 IP 不同,则大概率使用了 CDN 技术;如果相同,也不一定没使用。如果需要进一步判断(一般没必要),可以通过常用的 CDN 网段、ASN 码等进一步识别
绕过 CDN 通常有以下几种思路:
-
子域名、旁站绕过(有些子域名可能没有使用 CDN,毕竟 CDN 挺贵的)
-
多地ping绕过、国外ping绕过(有些地区可能没有使用 CDN)
-
域名解析记录查询(有些域名可能是后期加的 CDN 技术,早期解析的是真实地址)
-
邮箱服务器绕过(邮箱服务器通常会部署在主服务器,且可能没有 CDN)
-
反向链接(通常配合邮件使用,订阅邮件,让服务器主动发送信息给我们,此时它携带的IP大概率就是真实IP)
-
敏感文件泄露(从网站的 JS、配置文件、内容中收集信息,可能会泄露真实IP)
提权:
Windows 常见的提权方式
-
系统内核漏洞提权
-
利用 Windows 服务提权
-
利用 Windows 计划任务提权
-
绕过 UAC 提权(DLL 劫持、环境变量劫持、启动白名单劫持等)
-
利用工具(如 Mimikatz)获取令牌提权
-
DLL 劫持提权
Linux 常见的提权方式
-
系统内核漏洞提权
-
SUID 提权
-
系统服务提权
-
环境变量提权
Linux 常见的权限维持方式
passwd
、shadow
文件增加用户维权
useradd
添加提权用户维权
SUID
维权(chmod +s
)
SSH
软连接维权公私钥维权
计划任务维权
Windows 常见的权限维持方式
username$
隐藏账户维权注册表克隆账户维权
Shift
后门维权(未登录的情况下默认system
账户打开)启动项维权(系统启动文件夹、组策略启动脚本、注册表启动项
计划任务维权
服务维权(隐藏服务维权)
DLL 劫持的原理
DLL 是微软公司提供的动态链接库,里面存放一些共享代码。所谓动态链接,就是当可执行文件调用到 DLL 内的函数时,Windows 才会将 DLL 加载,当程序有需求时,对应的函数才会链接。如此来降低存储器的资源浪费。
如果在一个进程加载一个 DLL 时没有指定 DLL 的绝对路径,那么 Windows 就会去按照顺序搜索特定目录下的 DLL,而如果将一个恶意的 DLL 放置在正常需要加载的 DLL 的目录之前,就能优先加载恶意 DLL,从而实现劫持。
DLL 加载的顺序:
-
进程对应程序所在目录
-
当前目录
-
系统目录(GetSystemDirectory)
-
Windows 目录(GetWindowsDirectory)
-
环境变量