知道OWASP TOP 10吗?

OWASP(Open Web Application Security Project)是一个国际性的非营利组织,致力于改善Web应用程序的安全性和保护网络世界的安全

  • 注入漏洞
    常见的就是sql注入,还有os命令、orm等
  • 失效的身份认证
    攻击者利用网络应用程序中的身份认证缺陷获取高权限并进行攻击应用服务
  • 敏感数据泄露
    常见的攻击方式主要是扫描应用程序获取敏感数据
  • xml外部实体漏洞
    当应用程序解析xml文件时包含了对外部实体的引用,攻击者传递恶意包含xml代码的文件,读取指定的服务器资源
  • 无效的访问控制
    没有检查身份,直接导致攻击者绕过权限直接访问
  • 安全配置错误
    攻击者利用错误配置攻击,获取敏感数据或提升权限
  • 跨站脚本攻击(xss)
    攻击者使用恶意字符嵌入应用程序代码中并运行
  • 不安全的反序列化漏洞
    攻击者利用应用程序反序列化功能,反序列化恶意对象攻击应用程序
  • 使用含有已知漏洞的组件
    利用应用程序技术栈中的框架、库、工具等的已知漏洞进行攻击,获取高权限或者敏感数据
  • 日志记录和监控不足导致的风险
    对于日志记录的监控不足,造成攻击者攻击系统、应用、盗取数据等操作无法被发现和追查
对病毒分析有了解嘛

有了解的,比如挖矿病毒,可以使用ps aux命令排查CPU使用情况,同时可以使用netstat -alpt查看是否有异常的网络通信,可以将异常的IP或者域名放到微步在线等威胁情报平台进行研判分析,以及可以排查是否有异常的进程,比如一些alksd这种乱的进程名,可以通过进程定位到相应的文件,然后对其进行下一步处理,也可以查看是否有异常文件,比如查看文件的修改时间和创建时间是否正常,文件名是否正常。然后也可以将病毒文件提取出来放到沙箱进行分析研判等等

shiro的特征

登陆的时候如果勾选rememberMe选项,那么响应会返回Set-cookie:remermberMe
如果没有勾选,则会返回Set-cookie:rememberMe=deleteMe

shiro的两个利用条件
  • 已知登陆用户的合法cookie
  • 目标服务器含有可利用的攻击链
如何看设备去分析攻击

可以通过设备告警,筛选出可疑的数据包和可疑攻击,然后对数据包进行复现。比如安全设备报了一个sql注入,那就可以拿着数据包的EXP在授权的情况下对sql注入进行复现,如果攻击成功了,那么这确实是攻击,就要上报,并对ip或者相关域名作出处理;如果不成功,可能是设备误报;

设备误报如果是外网的误报,那么可能是安全设备的策略应该要升级;如果是内网的误报,可以和领导商量,更新白名单

如果提前入场工作,你会对客户提哪些建议
  • 对于弱口令系统进行整改,修改为符合复杂度要求的密码;
  • 对一些存在漏洞或者比较老的中间件或者组件进行升级或加固;
  • 对于一些边缘资产或者废弃的资产,在不影响业务的情况下可以下架;
  • 关闭不必要的端口;
  • 给终端安装安全防护软件;
  • 在hw开始可以进行一次模拟渗透和安全基线核查;
  • 对人员开展网络安全教育培训。
你对于钓鱼攻击有没有了解?

钓鱼攻击是攻击者将恶意的链接或者木马等恶意软件伪装成正常的链接、邮件、文件或者软件发送给受害者,诱导受害者点击链接、安装软件或者导向网站,从而导致受害者主机失陷或者敏感信息如OA账号密码等信息泄露。

比如,可以将木马伪装成安全防护软件,然后通过邮件的形式投放到目标,然后以重要时期为由升级安装安全防护软件,抓住人的心理,催促目标进行安装,然后进行下一步获取权限或者其他操作。

防范钓鱼攻击最重要的是什么

我认为最重要的还是人员的安全意识培训最重要,在重要时期需要着重对人员进行网络安全意识的培训,让他们不要点击来历不明的邮件链接,有状况先向上级汇报和沟通,从人员这一层来杜绝钓鱼攻击

如何区分扫描流量还是手动流量
  • 扫描数据量大,请求有规律
  • 手动扫描间隔较少
如何分析被代理出来的数据流

被代理出来的数据流通常是代理服务器拦截并转发的,可以使用代理工具比如Burp suite等工具对数据流进行分析

  • 拦截和重放请求:通过拦截请求,并对其做出修改,然后再次发送请求到⽬标服务器上,观察应⽤程序如何响应这些请求。
  • 查看请求和响应头信息:比如cookie,userAgent信息
  • 使用插件进行分析:代理⼯具通常具有各种插件,例如 XSS 扫描器、SQL 注⼊扫描器、漏洞扫描器等,可以使⽤这些插件来检测应⽤程序中的漏洞和安全风险
一个比较大的日志如何分析

可以通过合理地利用计算机硬件(例如使⽤多核CPU和⾼速磁盘)来提高处理效率。同时也可以将任务分解成多个小部分进⾏并行处理,以进⼀步提升分析效率。

  • 对日志文件进行预处理:如果⽇志⽂件⽐较⼤,⾸先可以考虑对其进⾏切割、筛选等操作。(可以使⽤Linux系统中的split命令将⼤型⽇志⽂件拆成多个⼩⽂件,以便于后续的处理。 )
  • 确定日志格式:在分析⽇志之前,需要了解⽇志的格式,例如时间戳、事件类型、IP地址等信息。这有助于我们快速定位和分析⽇志中的内容。
  • 使用工具进行分析:⽬前市⾯上有很多针对⽇志分析的软件⼯具,例如ELK Stack、Splunk等。这些⼯具能够帮助我们更加⾼效地分析、搜索和可视化⽇志数据。
  • 分析记录结论:采⽤相应的⽅法和⼯具对⽇志⽂件进⾏分析,并记录分析结论。同时要把发现的异常或有⽤的信息进⾏整理和汇总。
内存马排查有了解吗

内存马又称为无文件马,也就是无文件落地的webshell技术。内存马将webshell注入到容器中的常驻进程中,将路由和webshell绑定,就可以实现访问任意url或者指定url,带上命令执行参数,即可让服务器返回命令执行结果

Java内存马,也称为Java远程代码执⾏漏洞,是⼀种利⽤Java反序列化漏洞的攻击⽅式。攻击者可以通过构造恶意的序列化对象,将其发送给⽬标服务器并触发反序列化操作,从⽽在⽬标服务器上执⾏任意代码。

  • 检查网络流量:可以使⽤Wireshark等⽹络抓包⼯具来监视服务器的⽹络流量,并分析报⽂中的数据内容,查找是否存在异常的Java序列化数据。
  • 检查反序列化漏洞:使⽤⼀些反序列化漏洞扫描⼯具(如 ysoserial)来检测系统是否受到这类漏洞的影响,并及时修补漏洞。
  • 检查系统进程:Java内存马通常会在⽬标服务器上启动⼀个新的进程来执⾏恶意代码,因此可以通过检查系统进程列表,查找是否存在不明确的、异常的进程
  • 安装安全软件:可以安装⼀些专业的安全软件,如杀毒软件、⼊侵检测系统(IDS)等,并定期进⾏扫描和审计。

内存马排查思路如下:
1、先查看检查服务器web日志,查看是否有可疑的web访问日志,比如说filter或者listener类型的内存马,会有大量url请求路径相同参数不同的,或者页面不存在但是返回200的请求。
2、如在web日志中并未发现异常,可以排查是否为中间件漏洞导致代码执行注入内存马,排查中间件的error.log日志查看是否有可疑的报错,根据注入时间和方法根据业务使用的组件排查是否可能存在java代码执行漏洞以及是否存在过webshell,排查框架漏洞,反序列化漏洞。
3、查看是否有类似哥斯拉、冰蝎特征的url请求,哥斯拉和冰蝎的内存马注入流量特征与普通webshell的流量特征基本吻合。
4、通过查找返回200的url路径对比web目录下是否真实存在文件,如不存在大概率为内存马。
5、使用内存马检测工具,java-memshell-scanner

内存马特征:
1、内存马的Filter是动态注册的,所以在web.xml中肯定没有配置,这也是个可以的特征。但servlet 3.0引入了@WebFilter标签方便开发这动态注册Filter。这种情况也存在没有在web.xml中显式声明,这个特征可以作为较强的特征。
2、内存马就是代码驻留内存中,本地无对应的class文件。所以我们只要检测Filter对应的ClassLoader目录下是否存在class文件。

内存马的设备告警
  • 异常的进程活动
  • 异常的系统调用
  • 非法内存访问
讲一下使过的中间件漏洞
  • nginx crlf漏洞:攻击者可以将crlf字符序列注入到http的url 请求体、请求头位置,致使nginx将一个请求解析为多个请求,第一个请求包含攻击者注入的crlf字符序列,之后的请求包含攻击者的恶意请求
SSRF

服务器请求伪造,是一种攻击者构造,通过服务端发起请求引起的安全漏洞

都是由于服务端提供了从其他服务器应用获取数据的功能,且没有对目标地址做过滤与限制,攻击者就可以使用服务器A的身份来访问其它(内网)服务器的资源了。

比如说:我们要访问www.a.com网站,那么输入URL后,向A服务器发送请求,服务器处理后返回用户响应。如果我们将www.b.com换为与A服务器相连的[内网](https://so.csdn.net/so/search?q=%E5%86%85%E7%BD%91&spm=1001.2101.3001.7020)服务器地址,URL输入www.a.com/xxx.php?image=www.b.com/1.jpg,攻击者使用服务器A的身份来访问其它(内网)服务器的资源

xxe

xml的漏洞注入全称(XML External Entity injection)

XXE漏洞发生在应用程序解析XML输入时没有禁止外部实体加载,导致可加载恶意外部文件,造成文件读取,命令执行、内网端口扫描、攻击内网网站等危害。

蚁剑/菜刀/C刀/冰蝎的相同与不相同之处

相同:都是用来连接Web Shell的工具
不同:相比于其他三款,冰蝎有流量动态加密

渗透测试经历

1、文件上传漏洞:有一次扫描客服服务器部署的一个网站,发现可能存在文件上传漏洞,所以我想上传一句话木马,但是发现该站点对文件后缀进行了过滤,故采用burpsuit抓包实现一句话木马的上传

上传成功之后,利用一句话木马进行连接

利用菜刀工具的cmd创建用户添加管理员组,打开3389端口允许远程连接

然后nmap扫描查看是否成功开启3389

然后利用windows自带的远程工具连接成功

2、客户服务器部署了waf,当时是利用sql内联注入绕过了waf,获取到了数据库的敏感信息

一句话木马入侵条件

(1)木马上传成功,未被杀;
(2)知道木马的路径在哪;
(3)上传的木马能正常运行。

最简单的一句话木马

1
<?php @eval($_POST['attack']);?>
客户反馈:网站被植入暗链,服务器 CPU 占用量增高,怎么办
  • 先排查网页index文件,处理掉暗链内容
  • 借助AWK等工具统计各ip访问次数,确定异常ip,排查该ip所访问的所有文件,找到名为config.jsp的webshell,处理掉webshell
  • top+kill处理掉高cpu占用的进程,crontab查询定时任务
  • 根据进程结合微步平台对可疑文件进行安全性检测,清除启动项中残留的病毒以及后门
如果遇到大量报警,要怎么样在短时间内判断这些报警是不是误报呢?

可以通过特征规则,将无效告警和一些误报告警过滤掉;
还可以利用安全监测平台(天眼)对安全日志进行检索分析。

观察时间段,判断是否是扫描攻击,判断是否有攻击成功或是失陷的事件,再逐一排查

oday攻击如何应急
  • 隔离,关闭ssh、rdp,对已被攻击的主机ip断网封禁,开启厂商临时保护,预防口令策略加固
  • 排查0day流量,使用全流量设备排查,主要基于应用日志排查异常登录和报错,还有从本机异常文件入手,分析处理,回溯复现修复加固
如何排查0day攻击

不论是什么攻击,其目的都是在主机上执行命令,因此主机是防护0day攻击最关键的关卡。
主要关注主机异常命令执行,配合网络及应用层异常行为的分析,来处理0day漏洞

检测反弹shell等关键攻击行为,递归分析shell日志每条命令的父进程,如果是web类进程调用则发出警告,比如:父进程是java、httpd,子进程是sh、python等

shiro的反序列化特征

返回包中包含rememberMe=deleteMe字段

这种情况大多发生在登录处,返回包里包含remeberMe=deleteMe字段,这个是在返回包中(Response)

如果返回的数据包中没有remeberMe=deleteMe字段的话,可以在数据包中的Cookie中添加remeberMe=deleteMe字段这样也会在返回包中有这个字段

shiro反序列化漏洞原理

使用shiro框架,cookie里面会有rememberMe字段,正常处理会将rememberMe字段序列化 – AES加密 – base64编码,放在cookie中,但是这里的AES密钥可能是弱密钥,或者可以被爆破出来,攻击者就可以修改rememberme字段,通过插入恶意payload触发shiro框架的rememberMe的反序列化功能,导致任意代码执行

structs2漏洞
s2-001

因为用户在提交表单数据并且验证失败时,后端会对用户提交的参数进行ognal表达式解析,所以因为后端对用户提交的数据进行过解析,后端可以直接构造payload进行命令执行

s2-052

Struts2反序列化漏洞是由于Struts2中使用的Xstream组件在处理XML序列化时存安全问题,即:Xstream组件在解析用户提交的XML数据时,缺乏适当的输入验证和控制,导致攻击者可以在XML请求中嵌入特殊的payload,从而利用反序列化漏洞,进行远程代码执行。

log4j2反序列化漏洞

Log for java,Apache的开源日志组件

攻击者通过特殊构造的数据,例如在日志消息中插入恶意的JNDI引用,构造恶意的请求。这个恶意JNDI引用包含指向攻击者控制的远程服务器的地址。Log4j2会尝试连接到攻击者的服务器。攻击者的服务器会返回一个恶意的类文件,Log4j2在尝试加载这个类文件时会执行其中的恶意代码

如何进行反序列化漏洞的防御
  • 最有效的方法是不接受来自不受信任源的序列化对象或者只使用原始数据类型的序列化,但这不容易实现
  • 完整性检查,如:对序列化对象进行数字签名,以防止创建恶意对象或序列化数据被篡改
  • 在创建对象前强制执行类型约束,因为用户的代码通常被期望使用一组可定义的类
  • 记录反序列化的失败信息,比如传输的类型不满足预期要求或者反序列化异常情况,因为这有可能是攻击者的攻击尝试
通过wireshark工具如何对流量进行溯源
  • 打开wireshark工具捕获网络流量
  • 过滤出需要关注的数据包,例如使用ip.addr=[目标ip地址]进行过滤
  • 找到涉及目标ip地址的数据包后分析他们,可以查看数据包的详细信息,例如源ip地址、目标ip地址、端口号等
  • 根据数据报的来源IP地址和端口号,利用whois查询更多信息,例如注册人姓名、电子邮件地址、电话号码等
  • 对数据包进行深入分析,以判断是否存在恶意活动
53.shiro漏洞

Apache shiro是一个强大灵活的开源安全框架,可以完全处理身份验证、授权、密码和会话管理

cve编号:CVE-2016-4437
shiro550反序列化原理:Apache Shiro框架提供了记住密码的功能(RememberMe),用户登录成功后会生成经过加密并编码的cookie。在服务端对rememberMe的cookie值,先base64解码然后AES解密再反序列化,就导致了反序列化RCE漏洞

cve编号:CVE-2016-4437
shiro721反序列化漏洞原理:
1、shiro-721用到的加密方式是AES-128-CBC,而且其中的ase加密的key基本序列化漏洞攻击
3、利用该漏洞可以破解出密文的明文以及猜不到了,是系统随机生成的
2、这种加密方式容易受到Padding Oracle Attack(填充提示攻击),利用有效的RememberMe Cookie作为Padding Oracle Attack的前缀,然后精心构造 RememberMe Cookie 值来实现反将明文加密成密文,该漏洞存在条件如下:
 (1)、攻击者能够获取到密文(基于分组密码模式),以及IV向量(通常附带在密文前面,初始化向量)
 (2)、攻击者能够修改密文触发解密过程,解密成功和解密失败存在差异性

shrio550和721的区别:
(1)主要区别在于Shiro550使用已知默认密码,只要有足够的密码,不需要Remember Cookie的
(2)Shiro721的ase加密的key为系统随机生成,需要利用登录后的rememberMe去爆破正确的key值。利用有效的RememberMe Cookie作为Padding Oracle Attack的前缀,再去构造反序列化攻击

54、fastjson反序列化漏洞

FastJson在解析json的过程中,支持使用autoType来实例化某一个具体的类

fastjson autotype在处理json对象的时候,未对@type字段进行完全的安全性验证,攻击者可以传入templatesImpl实现类,这个类包含bytecodes字段,有部分函数会根据bytecodes生成java实例

55、Linux提权方法

内核漏洞脏牛提权

  • 查看内核版本信息,搜索该版本漏洞
  • 找到几个可以使用的脏牛提权脚本,并上传
  • 利用提示对脚本进行编译,运行输入密码即可
  • 切换用户

SUID配置错误提权

SUID可以让程序调用者以文件拥有者的身份运行该文件,当我们以一个普通用户去运行一个root用户所有的SUID文件,那么运行该文件我们就可以获取到root权限

  • 使用命令尝试找到具有root权限的的SUID文件
  • 使用不同的命令进行提权,比如nmap –interactive启动交互模式,或者有一个Metasploit模块,通过使用SUID Nmap二进制文件执行权限提升

计划任务提权

系统内可能会有一些定时执行的任务,一般这些任务由crontab来管理,具有所属用户的权限。非root权限的用户是不可以列出root用户的计划任务的。但是/etc/内系统的计划任务可以被列出,一般是以root权限执行,但是低权限用户可以修改计划任务文件,导致被攻击者利用

在发现有一些计划任务时,我们就可以去检查是否存在一些问题导致权限的提升

sudo提权

普通用户一般是无法运行root所有者的命令的,运用sudo可以使普通用户使用root用户的命令。但是在一些场景下,管理员为了平常运营方便给sudoer文件配置不当,从而导致权限提升的问题产生。

webshell

webshell相当于一个网页后门,无论是上传文件或者修改文件,比如asp或者php文件,它是和正常的网站web文件混在一起的;攻击者随后可以利用浏览器的文件后门得到一个命令执行环境,便可以控制目标服务器

如何排查

  • 考虑是否需要隔离排查,做好边界控制
  • 使用工具查杀,比如D盾、河马、深信服的webshellkiller,也可以结合手动查找,比如如果有备份的话,可以对比文件的方式查找webshell的位置
  • 接下来就是判断webshell是怎么打的,根据告警时间查看相应的日志文件,主要关注文件移动、配置变动等,确定影响范围
  • 然后就是试着修复漏洞,进行安全加固,溯源反制

weblogic反序列化漏洞

  • xmldecoder反序列化漏洞
    xmldecoder和xmlencoder是采用xml作为序列化存储方式对java beans对象进行序列化操作
    原理:weblogic的wls security对外提供webservice服务时使用xmldecoder来解析用户的xml数据,导致可构造恶意的xml来解析出恶意java代码执行,从而导致反序列化漏洞。一共有四个版本的漏洞,前三个都是利用黑名单,最后一个采用白名单才完全抑制住。
  • t3反序列化漏洞
    原理:t3是weblogic所研发的rmi的升级版协议。t3协议通过心跳机制判断客户端是否存活,并且一次链接可以传输全部数据。漏洞历史迭代利用的方式可以分为前期和后期,前期是通过T3协议发送恶意反序列化对象,后期是利用T3协议配合JRMP和JNDI接口发送反序列化数据。一般采用cc链利用。
    流量特征:
    开放7001端口
    xml:body部分有超长的xml字段,且为byte字节码,传递xml的会有bash或者dnslog字段
    基于t3的数据包内会有t3字段,fileoutstream字段
    url包含字段/_async/AsyncResponseService
    返回包无回显,状态码202
    日志分析:存放位置/domains/域目录/servers/AdminServer/logs下。
    弱口令上传war的特征:AdminServer.log中找deploy war
    t3反序列化:AdminServer.log找CC链利用InvokerTransformer、ChainedTransformer
    利用socket连接特征:base_domain.log或 AdminServer.log日志中,会有socket字样
    文件操作:base_domain.log中会有 FileOutputStream字样

黄金票据和白银票据

黄金票据

金票就是伪造的TGT(Ticket Granting Ticket)

对于攻击者来说,实际上只要拿到了域控权限,就可以直接导出krbtgt的Hash值,,再通过mimikatz即可生成任意用户任何权限的Ticket,也就是Golden Ticket。只要有了高权限的TGT,那么就可以发送给TGS换取任意服务的ST。可以说有了金票就有了域内的最高权限。

制作金票的条件:
1、域名称
2、域的SID值
3、域的KRBTGT账户密码HASH
4、伪造用户名,可以是任意的

防御

  • 限制域管理员登录到除域控制器和少数管理服务器以外的任何其他计算机(不要让其他管理员登录到这些服务器)将所有其他权限委派给自定义管理员组。这大大降低了攻击者访问域控制器的Active Directory的ntds.dit。如果攻击者无法访问AD数据库(ntds.dit文件),则无法获取到KRBTGT帐户密码。
  • 禁用KRBTGT帐户,并保存当前的密码以及以前的密码。KRBTGT密码哈希用于在Kerberos票据上签署PAC并对TGT(身份验证票据)进行加密。如果使用不同的密钥(密码)对证书进行签名和加密,则DC(KDC)通过检查KRBTGT以前的密码来验证。

白银票据

银票是伪造的ST(Service Ticket),白银票据仅限于特定服务器上的任何服务。
攻击者获取到服务账户的密码HASH,利用mimikatz生成白银票据

流量特征

菜刀

请求头传递payload是通过base64编码的,存在固定的QGlua后面一串结构,@ini_set等,然后它的UA可能是百度爬虫,java等,含有eval,base64特殊字符,回显为明文

蚁剑

静态特征也是含有常见的websell关键字,函数,base64编解码特征,动态特征里面最常见的就是@ini_set(“displayerros”,”0”),然后相应包的结果前后含有混淆随机数,参数名大多是“_0x”的形式

冰蝎

样本本身包含默认16位的md5密钥,默认变量为k,然后也含有websell关键字,混淆方法包括eval,base64、for循环作异或处理等,动态特征以3.0为例的话,content-type是application巴拉巴拉,content-length请求长度有规律,如果第一阶段请求200ok,则返回16位密钥,内置17个老的UA头,accept字段就是text/html,image/gif,imgae/ipeg,q=.2的结构

4.0相对于3.0的话,3.0的返回时AES加密,4.0则是AES加密在进行base64编码;冰蝎4.0是AES加密ECB模式,对于相同请求的请求包是不同的,但是相同请求的响应包是相同的

哥斯拉

user-agent:默认情况下是java/jdk版本,但是作者可以自定义
accpet:默认情况下是text/html application/xml application/xhtml+xml等特殊结构,但是也可以自定义
cookie:这是一个辅助识别的强特征,cookie值最后有一个分号
请求体特征:base64编码的话,哥斯拉初始化的数据包比较大,后面产生的数据包小一些
响应体特征:如果同样是采用base64编码的话,它是将32位的md5密钥分成了两半,将base64编码放在中间,所以结构是前16位md5密钥+base64编码+后16位md5密钥

权限维持

  • 注册表自启动
    需要管理员权限,将exe隐藏到一个目录下

  • 登录启动项
    将exe放到登录启动项目录,然后做一个简单的隐藏

  • 计划任务

  • shfit后门
    前提是3389能进去终端页面,这样才有机会连续按5次shift触发

  • ddl劫持
    找到一个常用的ddl文件,将他转换为cpp格式,修改代码,在生成ddl文件替换原来的ddl

文件上传漏洞

用户上传了一个可执行的脚本文件,通过这个脚本文件获得了执行服务端命令的能力

一些web应用程序允许上传图片、文件或者其他资源到指定位置,但是过滤不严格被绕过或者服务器配置不当、文件解析漏洞致使文件执行等原因使得恶意代码植入到了服务器中

Springboot漏洞

jolokia漏洞

jolokia是一个用来访问远程JMX MBeans的方法

  • 目标机器请求外部日志配置文件url地址,获得恶意xml文件内容
  • 目标机器使用saxParser.parsez解析xml文件,这里便会导致xxe漏洞
  • xml文件中利用logback依赖的insertFormJNDI标签,设置了外部JNDI服务器地址
  • 目标机器请求恶意JNDI服务器,导致JNDI注入,造成RCE漏洞

未授权漏洞

redis未授权漏洞

redis默认未开启权限认证,未区分管理员和普通用户,导致任意用户可以访问公网的redis服务器执行redis内置命令

Jboss未授权漏洞

用户不需要登录可以直接访问到需要登陆之后才能访问到的页面

文件包含漏洞

文件包含函数加载的参数没有经过过滤或者严格的定义,可以被用户控制,包含其他恶意文件,导致了执行了非预期的代码。

如何绕过httponly

httponly是通过窃取cookie的方式,那么可以直接获取账户密码的方式登录后台

可以通过获取账号密码的方式登录后台,按照浏览器有没有存储账号密码,绕过方法分为:

  • 直接读取
    当成功登录或者登陆后触发xss语句,会自动将账号密码发送到xss后台
  • 表单劫持
    当使用者输入账号密码时,浏览器会通过HTML的表单提交数据,再由POST方式将接收的数据参数提交到后台

此时抓包就能看见用户的账号和密码

通过phpinfo获取cookie
通过Apache漏洞获取cookie

Web中间件加固:tomcat、apache、iis有哪些加固点

web中间件:更改默认端口、低权限运维、降权网站根目录、自定义错误页面、删除自带网页

如何判断告警是否为误报

  • 确定告警来源,如果告警来源的ip是一个高风险或者恶意的,可以通过在微步平台查询,那么可能就是真实攻击。攻击来源的地理位置、历史记录等信息也可以提供初步判断的依据,如果攻击来自已知的恶意地区或与已知的黑客组织活动相符,则真实攻击的可能性较高。
  • 确认事件类型。例如,如果告警涉及数据窃取或系统破坏,这很可能是真实攻击。然而,如果事件只涉及未经授权的访问或尝试登录,这可能是误报或简单的蜜罐攻击;另外,不同类型的攻击通常具有独特的特征,例如DDoS攻击可能导致网络带宽占用率异常高,而SQL注入则可能导致数据库异常。通过分析这些特征,可以初步判断是否为真实攻击。
  • 检查系统日志、安全设备的警报和其他相关信息。可以检查攻击的时间、位置、目标和攻击方式等方面。如果这些信息与已知的攻击模式相符,则可能是真实攻击。但是,如果没有明显的攻击模式或异常行为,则可能是误报。

### 说说 Nmap工具 的使用?

-sT TCP (全)连接扫描,准确但留下大量日志记录

-sS TCP SYN (半)扫描,速度较快,不会留下日志

-sN null 扫描,标志位全为 0,不适用 Windows

-sF FIN 扫描,标志位 FIN=1,不适用 Windows

-O 查看目标主机系统版本

-sV 探测服务版本

-A 全面扫描

MSF流量特征

  • 目标端口:msf框架使用不同的攻击模块利用漏洞,所以msf流量通常涉及不同的目标端口,例如常见的80 443 445端口
  • 异常请求:msf流量中通常会出现大量异常请求,例如尝试访问非法url、发送恶意数据包
  • 频繁扫描:通常会出现大量的扫描和探测请求
  • 数据包大小:会出现较大的数据包
  • 特殊协议:msf框架会使用一些特殊的协议,例如Meterpreter、 Reverse Tcp

cobalt strike 流量特征

  • 固定的user-agent头
    老版的user-agent头是固定的,新版的每次请求是不同的
  • 在使用cobalt strike下达指令时,会出现post请求/sumbit.php?id=xxx的特征,
  • 魔改之后的cs留了GET /cx和POST /q.cgi这两个特征
  • 可以用Wireshark抓取他的HTTP请求包,然后提取他的请求url路径通过checksum8解密算法,如果得到的结果为92或93,则可以判断他的cs是没有进行魔改的

渗透测试流程

  • 单一网站。是否使用了CDN,有的话需要查服务器的真实ip,如果没有直接扫描旁站、c段,此外,识别CMS,主要是看它有的什么中间件、系统或者插件。然后可以进行端口探测和目录扫描,查看网站js文件,是否有隐私数据泄露,也可以通过相关的app或者公众号扩大资产面,利用收集到的信息作常规的漏洞探测
  • 网段或者区域。利用Goby工具对资产做一个批量的扫描、扫描打点,对可能存在的漏洞弱点进行漏洞探测
    找到漏洞之后,然后利用漏洞上传webshell或者获得其他权限,然后进行权限提升,比如windows环境下mysql udf提权,内核漏洞提权或者令牌提权,最后日志清理

权限维持

windows权限维持

  • 注册表自启动
  • 登录启动项
  • shift后门
  • 计划任务

linux权限维持

  • 隐藏踪迹
  • 添加root权限用户
  • suid shell,让普通用户能用root

shellcode免杀方法

  • 分离中加载器运行shellcode
  • 白利用绕过行为捕获
  • 将shellcode编码、加密、注入

域控定位方式

  • cmd 命令定位
1
net group "Domain controllers" /Domain     //查看域控制器
  • dns 解析记录查询定位域控
    一般情况下,内部DNS服务器是和域控制器部署在同一个服务器

  • 通过端口探测方式定位域控
    对一台机器进行了端口扫描,有一下端口开放情况的一定是个域控制器,也是一种不在域内来定位域控的好方式

sql告警

看响应码是否为200,如果是404或者302,就是误报,如果不是再去看看具体的流量,有咩有相关攻击载荷特征,响应体是否有数据库敏感信息,根据上级要求隔离或删除

webshell告警

查看文件代码,看下后续是否会有人访问,根据上级要求隔离或者删除,及时上报

windows提权

  • 内核版本漏洞提权
    查看有没有缺失的补丁,根据补丁号和相对应的系统版本查找exp,利用exp提权
  • 通过令牌提权
    令牌相当于windows的临时密钥,账号和密码
  • 数据库提权
    windows上经常装有sqlserver或者mysql,可以利用mysql的udf提权
    将udf动态链接库文件放到mysql的插件目录下,然后创建自定义函数并调用,然后就可以通过这个函数执行系统命令

有大量告警怎么处理

内网告警怎么处理

  • 确定攻击来源,是不是员工内部操作,比如询问运维是不是自动化轮询脚本
  • 如果没有确认是攻击,结合时间点,根据设备信息、进程、流量确认安全事件
  • 找到问题主机,开始应急响应流程,遏制然后恢复溯源具体的操作交给现场运维

内网渗透思路

  • 信息收集
    包括但不限于主机名、进程、启动项、计划任务,IP地址对应的域名或者邮箱信息 ,操作系统版本,开了哪些端口服务等等
    识别内网中存活的主机ip,进行端口探测和漏洞扫描获取可以利用的漏洞

  • 利用漏洞进入内网

  • 权限维持
    为了下次进入内网方便

  • 权限提升

  • 横向移动
    不仅仅是某一个主机,还想拿下内网中的其他主机

  • 拿下域控

  • 痕迹清理
    清理日志内容或者破坏日志记录功能,3389登录记录清楚等等

MS14-068

微软为了解决任意用户都可以访问服务的问题,引入PAC
就是在第一阶段服务器返回的TGT还有PAC,第二节阶段,服务段不仅要验证TGT的合法性,还要验证PAC的合法性,然后才返回ST

但是经过身份验证的用户可以在TGT中插入任意的PAC,然后获得管理员服务

重保

![[Pasted image 20240412144945.png]]

蜜罐原理

  • 创建虚拟环境
    在网络中创建一个虚拟环境,模拟真实环境的一部分或者全部功能
  • 引诱攻击者
    主动暴露蜜罐,通过公开ip或者网站
  • 只要攻击者进入虚拟环境中,便会记录攻击者的行为、技术和工具,有助于分析攻击者的行为模式、漏洞利用方式

windows/linux命令

查看历史命令

1
2
history
cat ~/.bash_history

查看资源占用情况

1
top

按1后,在输入shift+p 以cpu占用排序,输入shift+m以内存占用排序

查看账户信息

查看passwd,是否有新增的非法账户

1
2
3
4
5
6
cat /ect/passwd | awk -F ":" '{print $1,$3,$4,$7}' | grep '/.*sh' //用户名、用户id,组id,默认shell

root 0 0 /bin/bash
postgres 116 119 /bin/bash
arpwatch 119 122 /bin/sh
couchdb 124 129 /bin/bash

查看账号登陆情况,lastlog

lusrmgr.msc----- 本机用户和组 //windows

查看当前系统用户会话

使用w或者who查看当前系统的会话,主要是查看当前有哪些用户登录到服务器

查看进程和端口

查看目前的网络连接

1
netstat -ntup

实时监控外部网络连接情况,

1
watch netstat -ntup

查看端口连接情况

1
2
netstat -ano //windows
netstat -tuln//linux

查看对应的进程文件路径

1
ls -l /proc/PID/exe

查看端口连接情况

1
lsof -i:port[直接填数字]

查看PID对应的执行文件

1
lsof -p PID

查看host文件

系统配置文件,用于本地DNS查询的域名设置

1
cat /etc/hosts

查看计划任务

检查计算机与网络上的其他计算机之间的会话或者计划任务

1
2
crontab -l //linux
taskschd //windows

查看最近修改的文件

主要查看服务器支持的开发脚本文件

1
find / -mtime 0 -name "*.jsp" //0表示24小时内,1表示24-48小时

查看日志

主机层面的日志路径基本都是/var/log,web层面的日志主要是access日志或者error日志

查询具体日志路径

1
2
locate -r '/access[._]log'
find / -regex '.*/access[._]log'

查看linux启动项

1
2
3
cat /etc/init.d/rc.local //查看init.d文件夹下的rc.local文件内容
cat /etc/rc.local //查看rc.local文件内容
ls -alt /etc/init.d //查看init.d文件夹下所有文件的详细信息

查看服务

1
2
services.msc //windows
chkconfig --list //linux

ssrf绕过127.0.0.1

ssrf禁用127.0.0.1,无法访问内网

  • 使用@添加到url中绕过
    平常我们传入的url是url=http://127.0.0.1,如果
    我们传入的url是url=http://quan9i@127.0.0.1,它此时依旧会访问127.0.0.1
  • 进制绕过
    127.0.0.1进行转换,转换为其他进制的数
  • 句号绕过
    127。0。0。1

域渗透思路

通过域成员主机,定位域控制器的ip及域管理员账号,以域成员主机为跳板,扩大渗透范围,利用域管理员可以登录域中任意域成员主机的特性,定位域管理员登录过的主机ip,设法从域成员主机的内存中dump出域管理员账号密码,进而拿下域控

应急如何分析日志

  • 根据日志的字符串特征,识别攻击者的工具
    AWVS扫描器:acunetix_wvs_security_test或acunetix
    Appscan扫描器:Appscan

  • 根据日志的行为特征,确定可能的攻击手段
    漏洞扫描:来源地址大多相同,返回结果一般是失败的
    暴力破解:来源地址相对固定,url地址相对固定
    一句话木马:识别<?php特征

3、根据日志的其他特征,检索分类线索,扩线分析

分类线索,如网站漏洞扫描、登录后台的行为、SQL注入攻击等等

扩线分析,确定被攻击影响范围、确定被利用漏洞、确定隐藏后门、确定攻击者IP