hvv面试问题

面试主要问的点

1、有没有HW经验,担任什么角色,年龄,是否毕业,工作经验

2、实战场景下,怎么研判攻击告警是否成功,举例说一下分析研判思路

3、漏洞原理,复现过程,测试工具,测试思路

4、接触过哪些安全设备,基本功能和原理

5、服务器windows和linux常规命令,常见端口号

6、应急方面,应急过哪些,排查思路和命令

自我介绍

各位老师好,我是xxx,来自xxx,xx岁,

参与过xxx公司xxx的工作,主要从事对提交的漏洞进行判断、审查和复现,并编写对应漏洞的漏洞报告......

2023.xx-2023.xx,hw经历,干了啥,学了啥

2023.xx-2023.xx,hw经历,干了啥,学了啥

怎么研判攻击告警是否成功,举例说一下分析研判思路

网络安全中的攻击研判,可以理解为人工层面对攻击事件进行再分析的行为。安全人员针对安全系统或工具发出的告警,通过结合已有的经验和相关工具,来判断其是否为真实存在的攻击,并根据判断结果做出响应的响应、给出处置建议。

一般来说,对攻击事件的分析研判通常从以下4个维度进行:

  • 对已发现攻击的来源进行研判;
  • 综合分析攻击技术、工具和路径,判断其威胁性大小;
  • 攻击意图研判;
  • 处置方式判断。

攻击研判,可以看作安全防护流程最为关键的一环。它上承安全告警的分析,下接安全处置的实施,是安全防护过程中技术含量最高的一步。

是否成功:

  1. 攻击类型匹配:分析告警中提供的攻击类型,与已知的攻击类型进行比对。如果告警与已知的攻击类型相符,那么可能性较高。
  2. 攻击向量验证:审查告警中的攻击向量,比对其是否与已知的攻击向量相匹配。攻击向量可以是特定的漏洞、恶意软件或网络传输协议。匹配的攻击向量增加了攻击告警的可信度。
  3. 告警源可信度:评估告警的来源可信度,包括监测系统的可靠性、告警生成机制和告警数据的完整性。如果告警源可信度高,那么告警的准确性也相对较高。
  4. 告警附加信息:检查告警中提供的附加信息,例如攻击的目标、攻击者的IP地址、攻击发生的时间等。这些信息可以用于进一步的调查和验证。
  5. 网络流量分析:通过对与告警相关的网络流量进行分析,确认是否存在异常活动、恶意行为或不寻常的数据流。网络流量分析可以提供更多关于攻击的证据。
  6. 后续事件跟踪:观察告警后续的事件发展情况。如果后续发生了与告警相关的异常活动或进一步的攻击行为,那么可以认为该告警是成功的。

思路:

  1. 收集告警数据:收集来自安全设备、系统日志、入侵检测系统等的告警数据。
  2. 确认告警可信度:评估告警的可信度,包括来源、生成机制、完整性等。验证告警是否来自可信的系统,并检查告警数据是否完整和准确。
  3. 分析攻击类型:根据告警信息和已知的攻击技术,确定攻击类型。这可以涉及分析攻击向量、恶意软件、漏洞利用等方面的信息。
  4. 进行威胁情报分析:研究已知的威胁情报,包括黑客组织、恶意软件家族、攻击工具等,以了解攻击者的可能动机、手段和行为模式。
  5. 进行攻击链分析:从攻击开始到达目标的整个攻击过程,逐步分析攻击者的行动。这可以包括入侵路径、漏洞利用、权限提升、数据窃取等环节。
  6. 利用网络流量分析:检查与攻击事件相关的网络流量,包括数据包捕获、流量记录等。通过分析流量特征、异常活动和恶意行为,了解攻击的范围和影响。
  7. 调查受影响系统:对受攻击的系统进行调查,查找攻击痕迹、异常文件、恶意进程等。这有助于确定攻击的成功程度和受影响的范围。
  8. 制定应对措施:根据攻击的特点和成功程度,制定相应的应对措施。这可以包括修补漏洞、清除恶意软件、加强访问控制等措施,以减少潜在威胁。
  9. 整理报告和总结:将研判结果、分析过程和相关数据整理成报告。

漏洞原理,复现过程,测试工具,测试思路

1.top10:OWASP TOP 10 是根据开放 Web 应⽤程序安全项⽬公开共享的 10 个最关键的 Web 应⽤程序安全漏洞列表。1.失效的访问控制(越权访问)

2.加密机制失效(明文传输)

3.注入攻击(sql注入、xxe注入)

4.不安全的设计

5.安全配置错误(默认配置,如redis低版本无密码)

6.⾃带缺陷和过时的组件(weblogic之类的组件RCE)

7.身份识别和身份验证错误(未授权访问)

8.软件和数据完整性故障

9.安全日志和监控故障

10.服务端请求伪造ssrf

弱口令、xss

Sqlmap

强大的注入工具,基本所有数据库都可以注入 关键函数 -is-dba ; -dbs ; -current-db ; -user ; random-agent ; -passwords ; -threads ;………。 1.Cookie注入(sqlmap.py -u http://www.xxx.com?id=1注入点–cookie=“cookie值”–current-db) 2.post注入(sqlmap.py -r “数据包地址” -p “制定的参数” -dbms 需要制定的数据类型) 3.get注入(sqlmap.py -u “注入点地址” -dbs 需要的参数) 4.sqlmap进行交互式写shell(1.前提:需要最高权限,知道web网站的绝对路径,能获取cookie ; 2.sqlmap.py -u “注入点地址”–cookie=“cookie值”–os-shell 3.echo “一句话木马”>网站绝对路径 4.输入网站的绝对路径 5.传木马) 1.

Nmap

强大且实用的网络扫描主机检测工具 nmap www.baidu.com 扫描单个主机 nmap 192.168.1.1 扫描单个主机 nmap 192.168.1.1/24 扫描整个子网 nmap -iL ip.txt 扫描批量IP nmap -p80,21,23 192.68.1.1 扫描主机上是否开放80 21 23端口 nmap -sS 192.168.1.1 半开放扫描 nmap --script==vuln nmap -oN 保存扫描结果

MSF

强大的渗透框架 常用命令 Background 让meterpreter处于后台 Sessions -i number 与会话进行交互 number表示第n个session quit 退出会话 shell获取命令行 cat c:boot.ini 查看文件内容 upload /root/desktop/netcat.exe c: 上传文件到目标主机 download 0xfa.txt /root/desktop 下载文件到本地、 edit c:boot.ini 编辑文件 getsystem 提权操作…. 还可以使用msf制作免杀木马

渗透思路

信息收集:

1、获取域名whois信息

2、服务器子域名、旁站、c段查询

3、服务器操作系统版本补丁状况、web中间件类型、版本、数据库类型等

4、服务器开放端口:22 ssh 80 web 445 3389.。。

漏洞扫描:

nessus,awvs ,appscan

漏洞验证:

是否存在漏洞,是否可以拿到webshell或者其他权限

权限提升:

  1. windows内核溢出提权,数据库提权、组策略首选项提取、web中间件提权、dll劫持提权、第三方软件/服务提权
  2. linux内核漏洞提权、劫持高权限程序提权、sudoer配置文件错误提权

漏洞利用

日志清理

接触过哪些安全设备,基本功能和原理

1.接触过入侵检测的IDS、入侵防御的IPS

IDS功能:类似防火墙,主要用于网络流量检测

IPS功能:对杀软和防火墙的补充,阻止病毒攻击以及点到点应用滥用

2.天眼:基本功能有威胁情报,分析平台,流量传感器,邮件威胁检测,天提防火墙,网神云锁 ,周边小组件比较多

这些功能上关键的就是前三个

威胁情报原理:这是来自奇安信云端的分析成果,可对 APT攻击、新型木马、特种免杀木马进行规则化描述

分析平台:天眼分析平台用于存储传感器提交的流量日志、告警日志以及文件威胁鉴定器提交的 告警日志

流量传感器:天眼传感器主要负责对网络流量的镜像流量进行采集并还原,还原后的流量日志会加 密传输给天眼分析平台,流量镜像中的 PE和非 PE文件还原后则加密传输给天眼文件威胁 鉴定器进行检测。

3.天眼,椒图等安全设备。流量检测,威胁姿态感知。

服务器windows和linux常规命令,常见端口号

Windows命令:ping:检查网络联通

ipconfig:查看ip地址

dir:显示当前文件夹的内容

net user:查看用户

netstat:查看端口

tasklist:查看进程列表

find:搜索文件中的字符串

regedit:注册表

Linux命令:ls:显示当前文件夹的内容

ifconfig:查看ip地址

whoami:查看用户

netstat:查看端口

ps:查看进程列表

grep:文件中搜索字符串

crontal:检查定时任务

常见端口号:21(FTP)、873(Rsync)、1433(MSSQL)、1521(Oracle)、2181(Zookeeper)、3306(Mysql)、5432(PostgreSQL)、6379(redis)、7001(weblogic)、8161(ActiveMQ )、9200(elasticsearch )、27017(Mongodb)、50070,50050(Hadoop)
22(ssh)、80(http)、443(https)

25:SMTP 简单邮件传输服务器端口

23:Telnet 的端口,Telnet 是一种可以远程登录并管理远程机器的服务

53:dns 端口

应急方面,应急过哪些,排查思路和命令

Linux或者Windows系统服务器应急响应:

Windows入侵盘查思路:

1.检查系统账号安全

查看服务器是否有弱口令,远程管理端口3389,22等端口是否对公网开放检查方法:问服务器管理员,简单直接,要么简单扫描测试一下也可以

查看服务器是否存在可疑账号、新增账号Win+R->lusrmgr.msc

3.查看服务器是否存在隐藏账号、克隆账号使用D盾或者其他小工具都可以查看隐藏账号

4.结合日志,查看管理员登录时间、用户名是否存在异常Win+R->eventvwr.msc
导出Windows的安全日志,利用LogParser进行分析

5.检查异常端口、进程

检查端口连接情况,是否有远程连接、可疑连接netstat -ano
tasklist | find "PID"

进程使用D盾,查看可以进程,查看有没有签名信息,或者可以使用Process Explorer等工具查看

6.检查启动项、计划任务、服务

检查服务器是否有异常的启动项火绒等安全软件查看
Win+R->regedit,打开注册表,查看开机启动项是否正常,特别注意一下三个注册表项
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runonce

检查计划任务控制面板->计划任务
Win+R->cmd->schtasks/at

服务自启动Win+R->services.msc

7.检查系统相关信息

查看系统版本以及补丁信息Win+R->cmd->systeminfo

查看可以目录及文件查看用户目录,新建账号会生成一个用户目录
Win+R->cmd->%UserProfile%\Recent:查看最近打开的文件进行分析
文件夹/文件可以根据时间排序,可以看看最近有没有什么可疑的文件夹/文件

8.日志分析

系统日志前提:开启审核策略
Win+R->eventvwr.msc->导出安全日志->LogParser进行分析

Web访问日志找到中间件的web日志,打包到本地进行分析
Linux下可以使用Shell命令组合查询分析

Linux入侵排查:

1.账号安全

必看文件/etc/passwd
/etc/shadow

必会命令:who,w,uptime,usermod,userdel

2.入侵排查查询特权用户:awk -F: ‘$3==0{print $1}’ /etc/passwd
查询可以远程登录的账号:awk ‘/\$1|\$6/{print $1}’ /etc/shadow
查询具有sudo权限的账号:more /etc/sudoers | grep -v “^#\|^$” grep “ALL=(ALL)”

3.历史命令

必会命令:history

入侵排查:cat .bash_history >>history.txt

4.检查异常端口netstat -antlp

5.检查异常进程ps aux

6.检查开机启动项more /etc/rc.local
/etc/rc.d/rc[0-6].d
ls -l /etc/rc.d/rc3.d/

7.检查定时任务

检查以下目录下是否有可疑文件/var/spool/cron/*
/etc/crontab
/etc/cron.d/*
/etc/cron.daily/*
/etc/cron.hourly/*
/etc/cron.monthly/*
/etc/cron.weekly/
/etc/anacrontab
/var/spool/anacron/*
/etc/cron.daily/*

8.检查服务chkconfig
修改/etc/re.d/rc.local文件,加入/etc/init.d/httpd start
使用nesysv命令管理自启动

9.检查异常文件查看敏感目录,如tmp目录下的文件,同时注意隐藏文件夹,以”..”为名的文件夹具有隐藏属性

10.检查系统日志

日志默认存放位置:/var/log

日志分析技巧1、定位有多少IP在爆破主机的root帐号:
grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
定位有哪些IP在爆破:
grep "Failed password" /var/log/secure|grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"|uniq -c
爆破用户名字典是什么?
grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr

2、登录成功的IP有哪些:
grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
登录成功的日期、用户名、IP:
grep "Accepted " /var/log/secure | awk '{print $1,$2,$3,$9,$11}'
3、增加一个用户kali日志:
Jul 10 00:12:15 localhost useradd[2382]: new group: name=kali, GID=1001
Jul 10 00:12:15 localhost useradd[2382]: new user: name=kali, UID=1001, GID=1001, home=/home/kali
, shell=/bin/bash
Jul 10 00:12:58 localhost passwd: pam_unix(passwd:chauthtok): password changed for kali
#grep "useradd" /var/log/secure
4、删除用户kali日志:
Jul 10 00:14:17 localhost userdel[2393]: delete user 'kali'
Jul 10 00:14:17 localhost userdel[2393]: removed group 'kali' owned by 'kali'
Jul 10 00:14:17 localhost userdel[2393]: removed shadow group 'kali' owned by 'kali'
# grep "userdel" /var/log/secure
5、su切换用户:
Jul 10 00:38:13 localhost su: pam_unix(su-l:session): session opened for user good by root(uid=0)
sudo授权执行:
sudo -l
Jul 10 00:43:09 localhost sudo:   good : TTY=pts/4 ; PWD=/home/good ; USER=root ; COMMAND=/sbin/shutdown -r now

关于应急响应,很多人以为一上来就是各种查系统日志、查WEB日志、分析流量信息。然而,这种做法是错误的。通常应急响应的都是安全监控平台上出现的高危告警事件,借助平台上的流量监控功能,可以有效确定攻击事件的时间和攻击事件的类型,再不者也可以缩小攻击时间范围。当我们确定了攻击事件的时间/时间段以及攻击事件的类型,那么再开始进行系统分析,这样才能最高效的进行应急响应工作。

所以,当应急响应工作展开时,这两点非常重要:

  1. 确定攻击事件的时间/时间段
  2. 确定攻击事件的类型

在这两点确定之后,就可以进行系统分析了,关于系统分析,整体思路如下:

1.系统账号检查 2.进程检查 3.端口检查 4.定时任务检查 5.开机自启动项检查 6.日志检查 7.服务检查 8.文件检查

常见面试题

具体实操 之Linux 应急溯源 命令

面试问你linux应急熟吗? 熟,还可以,接触过 主机层面: 问:怎么查最近新增的文件,你用哪些命令? 1. ls -alt 2、find /

问:用户列表是在哪个目录下,或者怎么查?

Cat /etc/passwd 用户列表

问:临时目录是哪个文件夹?

/tmp ,/etc/ssh

问:怎么查登录成功的用户名,ip,日期?

grep 什么什么 | awk 什么什么 (不建议你去记了,太长了,不经常用一下根本记不住,??? 问:什么命令或者怎么看用户登录的时间? Uptime

问:如何查看当前进程?

Ps -ef 或ps -aux

SQL注入:

二次注入 原理

在第一次插入数据的时候,用一些函数对特殊字符进行了转义,参数在过滤后会添加 / 进行转义,但是 / 并不会插入数据库,所以还是保留了之前的数据,开发者就认为插入的数据是可信的,并有进行校验处理,在第二次插入数据查询的时候,比如第一次插入了单引号,第二次直接拼凑构造恶意语句,形成了二次注入 “ ,id =1 or 1=1”

宽字节注入

为了防止注入 ,开启了gpc(过滤特殊字符)。但是你数据库设置gbk(宽字节),就会漏洞,原理是gbk可以逃逸gpc,比如数据库编码与php编码不同

Base64注入

编码之后进行注入,这样你gpc拦截不了,注入后,我再执行程序解码拼接恶意语句注入查??

csrf跟ssrf区别?

csrf 一个是客户端发起,ssrf是从服务端发起的

csrf漏洞原理是?

用户给网站a发起了一个请求,网站a给用户返回了cookies信息,网站a已经信任了用户; 此时,用户又给网站b发了一个请求,网站b给用户发起了访问网站a的请求

Xss 跨站脚本攻击

插入web页面的一个脚本语言攻击,用户点击触发的攻击 哪种类型? 反射,存储,dom 反射性: 已经插入页面等待用户访问的脚本语言攻击 存储型:存在服务器或数据库的一个脚本语言攻击 DOM:在客户端可以通过dom修改里面对象元素的,从而写入脚本语言攻击

如何防御:

1.增加tokens验证,增加随机验证码 2.Url添加过滤规则

文件上传 Windows如何提权? 应急溯源的实际案例 怎么回答 中间件解析 漏洞原理 Apache tomcat

勒索病毒我们怎么去处置(应急溯源案例)

第一步:先确认下有没有中病毒,文件被锁,445端口资源被占用等特征。 第二步:拍照保留勒索病毒样本,然后去勒索病毒公开库查能不能解锁。 第三步:断网隔离(逻辑隔离,防火墙阻断445端口,wlan关闭;物理隔离:拔网线)防止??? 第四步:验证病毒在主机的存活 下架隔离业务 ,封堵IP,恢复上架 溯源: Web常见漏洞原理 Sql: 布尔注入

盲注是什么?

就是你在测试注入数据库的时候,数据库没有任何回显,只显示对错。 盲注怎么去利用?用什么函数? (if、sleep) 延时时间注入 用 sleep函数利用 联合注入?什么是联合注入 利用方式 (uninon select) 联合两个或多个表一起注入,但是两个表的字段数必须相同 报错注入? 这是啥 报错注入就是会显示报错信息 报错注入用到的函数(updatexml 只能显示32字节的长度 ) (floor)

堆叠查询

同时查询两个语句,在第二个语句构造恶意语句注入

如何防御?

1.绑定变量,采用预编译和 参数化接口查询 2.对特殊字符进行转义

手工注入的思路或者流程?

1、先找注入点,再判断注入类型(整型,字符型) 2、判断字段数(order by limit 数字),字段顺序 3、判断数据库(length,长度,substring(取数据库名)) 用burpsuite 设置两个变量,用 数据库文本 进行枚举爆破,筛选200ok的状态码1. 文件上传突破1. 前端JS突破(抓包修改文件名或者禁用当前浏览器的JS脚本)
2.后端突破(1.黑名单:点,空格点,php 1234567,phphtml,分布式上传,文件流绕过…….。2.白名单:00截断,双文件上传,双文件名……)

了解的中间件

IIS7.5,apache,nginx,tomcat,weblogic,jboos

IIS 5.x/6.0解析漏洞

目录解析/xx.asp/xx.jpg 文件解析test.asp;1.jpg Apache解析漏洞 1.php.aa.bb.cc

未授权访问漏洞

1. Redis未授权访问漏洞
2.Mongodb未授权访问漏洞
3.VNC未授权访问漏洞
4.Docker未授权访问漏洞
5.Hadoop未授权访问漏洞

XXE原理

XXE漏洞就是XML外部实体注入漏洞,通常发生在应用程序解析xml输入时,没有禁止外部实体加载,导致可???,命令执行,内网端口扫描,攻击内网网站,发起dos攻击等。 1.XXE分类

回显型,无回显型

XXE引入方式

本地引入,外部引入,外部参数实体引入。

遇到XXE盲注解决方法

可以选择使用DNS外带和外部实体注入 在攻击者自己的公网服务器准备一个test.dtd通过base64为将读取的内容加密得到的值当做

知道的渗透框架有哪些

Metasploit,Empire,Cobalt Strike。

WIN提权方法

系统内核溢出漏洞,系统配置错误提权,组策略首选项提权,绕过UAC,令牌窃取,sc命令提权………。

Linux提权

Dirty Cow提权,sodu提权,内核提权………。

Dirty Cow提权

脏牛提权

数据库提权

Mysql(mof提权,udf提权,vbs启动项提权) Sqlserver(xp_cmdshell 扩展存储函数提权;差异备份提权)

UDF提权的常用命令

Select cmdshell(‘netstat -an’); Drop function cmdshell Select cmdshell(‘net user yonghuming mima /add’); Select cmdshell(‘ipconfig/all’);

VBS启动项提权

先通过webshell连接数据库建立表将vbs脚本写入表中,导入启动项,在vbs脚本后面加上“0”表示不弹出cmd窗口,静默运行。该方法是在udf提权失败的情况下将vbs插入启动项系统重???vbs???

Linux下的MySql提权

Mysql -hlocalhost -uroot -p System useradd hacker System passwd hacker

SQL注入Bypass手法

等量替换;参数污染;编码绕过;sql特性

文件上传怎么绕过

前端验证绕过;Mime限制扩展名绕过;更改后缀名绕过;伪静态文件绕过;00截断;文件包含绕过;二次渲染……。

命令执行怎么绕过

管道符号绕过;空格绕过;%0a,%09;重定向绕过;变量拼接;单/双引号;编码绕过;反斜线绕过;命令换行绕过…….。

如何手工快速判断目标是Windows还是Linux服务器

从PING命令的回显可以判断操作系统类型,

ping Linux内网机器的TTL为64 ping Windows内网机器的TTL为126 linux大小写敏感,windows大小写不敏感

为何一个Mysql的数据库站只有一个80端口开放

更改了端口,没有扫描出来;站库分离;3306端口不对外开放

3389无法连接的情况

服务器在内网;做了TCP/IP筛选;做了IP安全策略或者自带防火墙;端口被修改;管理员设置了终端登录权限只有指定用户可以。 编辑器漏洞

Access扫出后缀为ASP的数据库文件,访问乱码,如何实现本地利用

下载下来,直接改后缀名为.mdb 注入时可以不用and或or或xor,能直接order by开始注入吗?为什么

And/or/xor,前面的1=1,1=2步骤只是为了判断是否为注入点,如果已经确定是注入点那就可以省去。

SQLserver有几种提权方式?怎么提权?

更改sa口令;简单修补sa弱口令;xp_cmdshel提权;沙盒提权;Job提权;镜像劫持。

CSRF,XSS,XXE有什么区别,及修复方式

XSS与CSRF区别 方向不一样 Xss主要通过劫持用户信息,主动的去通过劫持的用户信息去攻击 Csrf主要通过伪造请求,将自己的请求伪装成正常的请求,通过用户去访问正常网站 对象不一样 Xss主要攻击客户端 Csrf主要通过伪装去访问服务端 方法不一样 Xss不需要登录 直接在页面进行语句构造进行攻击或脚本攻击 Csrf需要有被伪装攻击用户的登录信息 XXE XXE是XML的外部实体注入攻击,XML中可以通过调用实体来请求本地或者远程内容,和远程文件保护类似,会引发相关安全???。 修复方式 XSS:对字符实体进行转义、使用HTTP Only来禁止JavaScript读取Cookie值、输入时校验、输出???html???。 CSRF:筛选出需要防范CSRF的页面然后嵌入Token、再次输入密码、检验Referer XXE:XML解析库在调用时严格禁止对外部实体的解析

如何防止CSRF

首先XSS漏洞先防护好, 针对重要的服务:比如网站的积分,涉及用户利益的以及重要信息的最好用ajax请求,使用token验证。这样可以防止token被攻击者获取。验证referer来源。

代码执行 文件读取 命令执行的函数有哪些?

代码执行: eval,preg_replace+/e,assert,call_user_func,call_user_func_array,create_function 文件读取: file_get_contents(),highlight_file(),fopen(),read

file(),fread(),fgetss(), fgets(),parse_ini_file(),show_source(),file()等 命令执行: system(), exec(), shell_exec(), passthru() ,pcntl_exec(), popen(),proc_open()

文件包含伪协议

PHP伪协议,data伪协议,file协议……。

OSI七层协议

物理层 数据链路层 网络层 传输层 会话层 表示层 应用层

TCP3次握手与4次挥手

三次握手 第一次握手:客户端发送SYN到服务器并进入等待状态 第二次握手:服务器收到SYN包确认客户端的SYN(ack=x+1),同时自己也发送一个SYN包(SYN=Y)即SYN+ACK,此时服务器进入SYN_RECV状态 第三次握手:客户端收到服务器的SYN+ACK包 向服务器发送一个ACK确认包,此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。 四次挥手 第一次挥手:主动关闭方发送一个FIN,用来关闭主动方到被动关闭方的数据连接,但此时主动关闭方还可以接收数据。 第二次挥手:被动方收到FIN包后发送一个ACK给对方,确认序号为收到的序号+1(与SYN相同,一个FIN占用一个序号) 第三次挥手:被动方发送一个FIN,用来关闭被动方和主动方的数据传输。 第四次挥手:主动关闭方收到FIN后,发送一个ACK到被动方,确认序号为收到序号+1,彻底与其断开连接。

TCP/UDP区别

TCP(传输控制协议):可靠的面向连接,可传输大量数据,但传输速度慢 UDP(用户数据报协议):不可靠的非面向连接,传输少量数据,传输速度快

Linux/Windows的安全加固

Linux安全加固 Windows安全加固 1.检查密码有效期与复杂度,账户验证失败次数限制 2.历史命令设置 3.系统未限制默认root账户登录模式未配置su wheel only yes 4.检查是否使用PAM认证模块禁止wheel组以外的用户su为root 5.操作系统启用NTP 6.及时更新补丁升级系统 7.关闭不必要的端口与服务 1.检查Windows系统密码复杂度策略 2.检查Windows系统锁定策略 3.开启服务器审计策略 4.登录连接超时及自动推出策略 5.终端服务配置RDP安全层 6.权限分离 7.关闭不必要的端口与服务 8.更新补丁 9.安装杀软

常见的安全设备

防火墙,安全中间件,授权证书系统,公开密钥基础设施,防病毒软件,蜜罐,入侵检测,入侵防御,WAF,SOC安全运营中心,云安全…。

Sql注入漏洞有哪些利用方式

SQL注入根据注入点可以分为数值型注入和字符型注入 根据注入方式可以分为联合注入,报错注入,布尔盲注,时间盲注,二次注入,堆叠注入,宽字节注入和HTTP Header注入 其中HTTP Header注入又分 Referer注入 , Cookie注入 和 User-agent注入 时间盲注又有一种替代方式,叫DNSlog注入,也叫带外注入 Sql注入无回显的情况下利用

利用DNSlog实现无回显的SQL注入

文件上传漏洞绕过方法

前端修改允许的类型;burp抓包修改Content-Type: 为允许的字段;禁用javascript;特殊文件名绕过;文件名大小写绕过…。

WAF原理与绕过

原理:

WAF(Web Application Firewall)是一种网络安全设备或应用程序,用于保护 Web 应用程序免受各种网络攻击,特别是针对 Web 应用程序的攻击。它位于 Web 应用程序和用户之间,监控和控制流量,以检测和阻止恶意请求和攻击。

WAF 的工作原理主要包括以下几个方面:

  1. 请求过滤
    • WAF 分析进入 Web 应用程序的 HTTP 请求,检查其中的参数、头部和有效载荷等,通过事先配置的规则进行筛选和过滤。这些规则可以是基于签名的规则,也可以是基于行为的规则。
  2. 黑白名单控制
    • WAF 维护黑名单和白名单,用于识别已知的恶意 IP 地址或合法的 IP 地址。黑名单中的 IP 地址将被拦截或阻止,而白名单中的 IP 地址则被允许通过。
  3. 正则表达式匹配
    • WAF 使用正则表达式来匹配恶意请求中的特定模式或攻击载荷。这样,它可以检测到 SQL 注入、跨站脚本攻击(XSS)、路径遍历等攻击。
  4. HTTP 协议验证
    • WAF 会验证 HTTP 请求是否符合规范的 HTTP 协议,以防止一些常见的 HTTP 请求攻击。
  5. 会话保护
    • WAF 能够跟踪和保护用户会话,防止会话劫持和会话固定攻击。
  6. 防御 DoS 和 DDoS 攻击
    • WAF 可以识别和阻止分布式拒绝服务攻击(DDoS)和普通拒绝服务攻击(DoS),确保 Web 应用程序的可用性。
  7. 日志记录和报告
    • WAF 记录所有的攻击尝试和拦截情况,并生成相应的报告,供安全管理员分析和响应。

绕过:

  1. 编码和加密
    • 攻击者可能对恶意请求使用编码或加密技术,使WAF无法识别其中的攻击载荷。例如,Base64编码和URL编码可以隐藏攻击载荷,阻碍WAF的识别。
  2. 混淆攻击载荷
    • 攻击者可能使用特殊字符、大小写变换、HTML注释等技术来混淆攻击载荷,使其变得不易被WAF检测。
  3. 使用HTTP方法
    • WAF通常会检查常见的HTTP方法(如GET和POST),攻击者可能尝试使用不常见的HTTP方法(如PUT、DELETE等)来绕过WAF的检测。
  4. 使用不同的协议和端口
    • 攻击者可能尝试通过使用其他协议(如HTTPS、WebSocket等)或不常见的端口来绕过WAF。
  5. 分割攻击载荷
    • 攻击者可以将攻击载荷分割成多个部分,并在不同的HTTP请求中发送,以绕过WAF的检测。
  6. 缓慢攻击
    • 攻击者可以通过缓慢地发送攻击请求,以避免WAF的防御机制,这种攻击也被称为慢速攻击。
  7. 定制攻击载荷
    • 攻击者可能会针对特定WAF的规则和签名,定制特殊的攻击载荷,使其不被WAF所识别。
  8. IP伪装和多IP攻击
    • 攻击者可能使用代理或虚假IP地址来绕过WAF的IP黑名单或限制。
  9. 利用应用程序漏洞
    • 如果应用程序本身存在漏洞,攻击者可以利用这些漏洞绕过WAF的防御,直接对应用程序进行攻击。

如何判断是真实的攻击

  1. 异常流量模式:检查流量包是否显示出异常模式,如大量未知的协议、异常频繁的连接尝试、非常规端口的通信等。这可能是攻击者试图隐藏攻击活动的迹象。
  2. 重复攻击模式:观察是否有定期或周期性的流量,特别是针对同一目标的多次重复攻击。这可能表明攻击者正在持续尝试攻击。
  3. 异常登录尝试:检查是否有大量的登录尝试,尤其是来自未知IP地址或未授权的地理位置。多次失败的登录尝试可能是暴力破解的迹象。
  4. 异常协议行为:观察协议行为是否与正常情况不符,例如协议字段的异常值、非预期的协议组合等。
  5. 漏洞利用尝试:注意是否有针对特定服务或应用程序的漏洞利用尝试,如SQL注入、跨站点脚本攻击等。
  6. 流量频率和规模:检查流量的频率和规模,如果流量突然增加,可能是DDoS(分布式拒绝服务攻击)的迹象。
  7. 威胁情报:使用威胁情报平台或黑名单,检查IP地址是否出现在已知的恶意IP列表中。
  8. 日志分析:结合其他系统日志,如防火墙、IDS(入侵检测系统)等,进行综合分析,以获取更全面的画面。
  9. 验证攻击载荷:如果可能,尝试验证攻击载荷,以确认是否存在漏洞或受到攻击。
  10. 专业帮助:如果你不确定是否遭受攻击或处理能力有限,最好寻求安全专家的帮助。

遇到真实攻击如何解决

  1. 隔离受攻击系统:如果可能,立即隔离受攻击的系统或主机,将其与网络隔离,以防止攻击者进一步渗透和扩散。
  2. 通知相关人员:通知你的网络和安全团队,并立即报告攻击情况。确保团队成员及时了解正在发生的事件,以便协调响应措施。
  3. 搜集证据:记录攻击细节、时间戳、攻击IP地址、使用的攻击方式等相关信息。这些证据有助于事后调查和追踪攻击来源。
  4. 更新防火墙和IPS规则:如果你的网络设备有防火墙和入侵防御系统(IPS),立即更新规则,以阻止正在进行的攻击。
  5. 暂停对外服务:如果是DDoS攻击,暂停对外的关键服务可以减轻攻击对正常业务的影响。
  6. 使用备份系统:如果可能,切换到备份系统和数据,确保攻击不会破坏重要数据。
  7. 与ISP合作:如果攻击涉及大规模的DDoS攻击,与你的互联网服务提供商(ISP)合作,寻求他们的支持和协助。
  8. 封锁攻击源:根据搜集到的攻击IP地址,尝试将攻击源封锁在防火墙或路由器级别上。
  9. 追踪攻击来源:如果你有足够的技术能力,尝试追踪攻击来源和攻击者的行为,以便后续采取法律措施。
  10. 修复漏洞:攻击可能是利用了系统或应用程序的漏洞,修复这些漏洞是防止再次受到类似攻击的重要步骤。
  11. 恢复服务:在确认网络已得到安全控制后,逐步恢复受影响的服务,并确保系统的稳定性和安全性。
  12. 安全加固:采取进一步的安全加固措施,包括加强密码策略、更新软件和应用程序、培训员工等,以防止类似攻击再次发生。

如何分析wireshark流量包

  1. 捕获流量包
    • 打开Wireshark,并选择要捕获流量的网络接口。你可以选择适当的接口,如以太网适配器或Wi-Fi适配器。
    • 点击"开始"按钮开始捕获流量包。Wireshark将开始监听选定的接口,并记录通过该接口的网络流量。
  2. 应用过滤器
    • 捕获的流量包可能非常庞大,为了方便分析,可以使用过滤器来筛选感兴趣的流量。
    • Wireshark提供了强大的过滤功能,例如你可以使用IP地址、协议类型、端口号等条件来过滤流量。例如,ip.addr == 192.168.0.1可以过滤出与IP地址192.168.0.1相关的流量。
  3. 分析流量包
    • 查看捕获的数据包列表。Wireshark将以表格形式显示每个数据包的详细信息,如时间戳、源IP地址、目标IP地址、协议类型、数据包大小等。
    • 可以通过点击数据包来查看更详细的信息,包括数据包的各个字段和数据内容。
  4. 解析协议
    • Wireshark会自动解析大多数常见的网络协议,使你可以更好地理解流量包的内容。
    • 对于每个数据包,Wireshark会显示协议栈,你可以展开各个协议来查看其详细信息。例如,你可以查看以太网头部、IP头部、TCP/UDP头部等。
  5. 关注关键指标
    • 在分析流量包时,你可以关注一些关键指标,如网络延迟、丢包率、响应时间等。Wireshark提供了一些统计功能和图表,可以帮助你分析这些指标。
  6. 特定场景的分析
    • 根据具体的需求和场景,你还可以应用一些特定的分析技巧。例如,可以关注特定会话的流量、检测异常行为、分析应用层协议等。