技术标签: oracle blackout
一、样本简介
Blackout勒索病毒家族是一款使用.NET语言编写的勒索病毒,它会将原文件名加密为BASE64格式的加密后的文件名,首次发现是在2017年7月份左右,样本使用了代码混淆的方式防止安全分析人员对样本进行静态分析,此次发现的Blackout勒索病毒样本经过分析确认是V3.0版本的Blackout家族最新变种样本,采用RSA+AES加密算法对文件进行加密,加密后的文件无法解密还原。
二、详细分析
1.样本使用.NET语言进行编写,如下所示:
2.反编译NET程序,样本经过了混淆处理,如下所示:
3.样本去混淆,如下所示:
经过调试发现此款Blackout勒索病毒是V3.0版本的最新变种样本blut3,如下所示:
4.获取磁盘驱动信息,如下所示:
5.通过RNGCryptoServiceProvider生成随机数,如下所示:
生成结果,如下所示:
6.获取机器名,如下所示:
7.获取用户名,如下所示:
8.生成临时备份文件目录,如下所示:
9.设置Form窗体的属性,如下所示:
10.获得需要加密的文件的后缀名列表,如下所示:
相应的文件名后缀如下所示:".mdf",".db",".mdb",".sql",".pdb",".dsk",".fp3",".fdb",".accdb",".dbf",".crd",".db3",".dbk",".nsf",".gdb",".abs",".sdb",".sqlitedb",".edb",".sdf",".sqlite",".dbs",".cdb",".bib",".dbc",".usr",".dbt",".rsd",".myd",".pdm",".ndf",".ask",".udb",".ns2",".kdb",".ddl",".sqlite3",".odb",".ib",".db2",".rdb",".wdb",".tcx",".emd",".sbf",".accdr",".dta",".rpd",".btr",".vdb",".daf",".dbv",".fcd",".accde",".mrg",".nv2",".pan",".dnc",".dxl",".tdt",".accdc",".eco",".fmp",".vpd",".his",".fid"
11.获取当前进程信息,如下所示:
获得当前进程名,如下所示:
12.获取主机进程信息,如下所示:
并判断主机操作系统平台,是否为XP,Win32NT,远程主机等,如下所示:
13.判断操作系统的语言版本包含如下字符串,如下所示:
类型包含如下字符串,如下所示:
14.遍历相关进程,如下所示:
然后结束上面相关进程,如下所示:
相关进程列表,如下所示:taskmgr、sqlagent、sqlbrowser、sqlservr、sqlwriter、oracle、ocssd、dbsnmp、
synctime、mydesktopqos、agntsvc.exeisqlplussvc、xfssvccon、mydesktopservice
ocautoupds、agntsvc.exeagntsvc、agntsvc.exeencsvc、firefoxconfig、tbirdconfig
ocomm、mysqld、sql、mysqld-nt、mysqld-opt、dbeng50、sqbcoreservice
15.拷贝自身到临时目录C:\Users\panda\AppData\Local\Temp\Adobe下,然后设置自启动注册表项,如下所示:
拷贝到相应的目录,如下所示:
16.生成RSA密钥,如下所示:
生成的RSA密钥,如下:gS1EQF1vkdTuplcqTNexJr+EgQa9g6tw7sSiirENylIC1YWaKWCf30pPPqkG3Djt7/gsnAbe3pJipn45QmiJk7zjytMuVi993nYV1wmy6Q9Y2hARIvmQdSPaPF83hHsZG8VQUj7zlhGkrYj4Kn+lG86x5lUlaT+3YnXnr0XqiV+JLDr7oZIZzDSIFgAFP6jy19x4lfkr8QJyisYPRh1SUSEyU8MBO9tcHLCMNtFUilio2gcZXup7nb1Kmq3mTupEHYVxhcSttOTJIJ6SDyzBGFQikp6Jbi8oNBmlVvltHnnQcCmmSHXonUKwMGhFIi2oIp8JGLRQXAOoP2bzs8If2Q==AQAB
通过RSA密钥对Key进行加密处理,如下所示:
生成256位的加密密钥,如下所示:
密钥如下所示:5F29474544EBE54C25107EDC468548178FF209E96F9D00E228579E57A7233F37E1AA48F4EFDC5D31006F757507AC385477211F328596C1E1C5572A163C22765A3911FCF76AD74D48FEAB7E2E851E3FBF6CBDE211E8C6F3E9526885A3139C17EC53C66FDF5AEFE58EEBA9501EC0653D99E62F52002290066378A81302A3F022C7230DAD30FEB34971187764C93705DCBF5280B89A348533ECE4228D68A4A7BE9CE171BE51D97D48FEE3E53668FDA283D0ADA1EC6809EE0837F8ED094B4F6D744CCEAB4B0C24C2220FEA643F0B41E34165CC1A4DC03873D4E16045FFB9074AF0BB3C4D729E7607484BF858B5C82F65FE122EB2DC6A12721FA637B602752E70D90B
把密钥转化为Base64字符串,如下所示:"XylHRUTr5UwlEH7cRoVIF4/yCelvnQDiKFeeV6cjPzfhqkj079xdMQBvdXUHrDhUdyEfMoWWweHFVyoWPCJ2WjkR/Pdq101I/qt+LoUeP79sveIR6Mbz6VJohaMTnBfsU8Zv31rv5Y7rqVAewGU9meYvUgAikAZjeKgTAqPwIscjDa0w/rNJcRh3ZMk3Bdy/UoC4mjSFM+zkIo1opKe+nOFxvlHZfUj+4+U2aP2ig9CtoexoCe4IN/jtCUtPbXRMzqtLDCTCIg/qZD8LQeNBZcwaTcA4c9ThYEX/uQdK8Ls8TXKedgdIS/hYtcgvZf4SLrLcahJyH6Y3tgJ1LnDZCw=="
17.遍历磁盘,如下所示:
排除以下目录下,相应的目录列表,如下所示:
WINDOWS、RECYCLER、Program Files、Program Files(x86)、Windows、Recycle.Bin、RECYCLE.BIN、Recycler、TEMP、APPDATA、Temp、Appdata、ProgramData、Microsoft、Burn
18.加密相应的文件,循环遍历磁盘目录下的子文件,如下所示:
打开单个文件作为文件数据流,如下所示:
读取到的未加密的文件,如下所示:
判断文件的后缀名是不是LNK后缀的,同时文件名字符串是否包含README_,如下所示:
判断原文件的内容最后字节是否包含###,如下所示:
获取文件信息,如下所示:
读取文件内容,如下所示:
加密读取到的文件内容,如下所示:
相应的加密算法,如下所示:
使用的加密算法为AES+RSA密钥的方式,如下所示:
将加密的数据,写入到原文件数据流中,如下所示:
然后关闭数据流文件,把加密后的数据写入到原文件中,获取原文件的路径,如下所示:
生成新的文件名转化为Base64编码,如下所示:
再将加密特征字符串写入到文件未尾,如下所示:
然后替换到原文件,如下所示:
到此整个加密文件的过程如上所示。
19.加密后的文件,如下所示:
20.在每个加密文件目录下生成一个勒索信息文本文件README_[加密特征数字].txt,勒索相关信息,如下所示:
三、解决方案
深信服EDR产品能有效检测及防御此类勒索病毒家族样本及其变种,如下所示:
深信服安全团队再次提醒广大用户,勒索病毒以防为主,目前大部分勒索病毒加密后的文件都无法解密,注意日常防范措施:
1.不要点击来源不明的邮件附件,不从不明网站下载软件
2.及时给主机打补丁(永恒之蓝漏洞补丁),修复相应的高危漏洞
3.对重要的数据文件定期进行非本地备份
4.尽量关闭不必要的文件共享权限以及关闭不必要的端口,如:445,135,139,3389等
5.RDP远程服务器等连接尽量使用强密码,不要使用弱密码
6.安装专业的终端安全防护软件,为主机提供端点防护和病毒检测清理功能
*本文作者:千里目安全实验室,转载请注明来自FreeBuf.COM
Maven 项目同 MyEclipse 或其他工具产生的项目一样,有自己的目录结构和特殊的意义。比如一般有如下目录。src\main\java,用来存放项目的 Java 源代码。src\main\resources,用来存放项目相关的资源文件(比如配置文件)。src\test\java,用来存放项目的测试 Java 源代码。src\test\resource,用来存放运行测试代码时所依赖的资源文件...
一.Oracle数据库实现主键自增必须通过sequence来实现 注意:sequence在每次调用nextval就会自增1create sequence seq_user; --创建一个user表的sequenceselect seq_user.nextval from dual; --查询下一个值 创建后调用查询到为1select seq_user...
Thinkphp 6.0路由定义 伪静态规则要使用Route类注册路由必须首先在路由定义文件开头添加引用(后面不再重复说明)use think\facade\Route;注册路由最基础的路由定义方法是:Route::rule('路由表达式', '路由地址', '请求类型');例如注册如下路由规则(假设为单应用模式):// 注册路由到News控制器的read操作Route::rule('new/:id','News/read');我们访问:http://se
作为一个程序猿,在我认为 MacBook Pro 是开发的不二之选,我相信同为程序员的我们想法是一致的。MacBookPro 拥有极简的软件安装,较高的安全性,更重要的是...
为什么80%的码农都做不了架构师?>>> ...
我可能还是有毒。本不需要把人拆成两个点的,直接源向人建边的时候建Si+1条边不就好了xxx。所以啦,源向人建Si+1条边,容量为ti−ti−1t_i-t_{i-1},费用为Wi。工作向汇建边,容量为Ci,费用为0,人和工作之间按矩阵建边,容量为inf,费用为0.跑最小费用最大流就是答案啦
1.Linux下生成密钥 ssh-keygen的命令手册,通过”man ssh-keygen“命令: 通过命令”ssh-keygen -t rsa“ 生成之后会在用户的根目录生成一个 “.ssh”的文件夹 进入“.ssh”会生成以下几个文件 authorized_keys:存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥 id_rsa...
awesome-face-anti-spoofing标签: anti-spoofing paper code awesome???? face anti-spoofing releated algorithm, dataset and paper Paper / AlgorithmSurveyhandcraftedsingle-framemulti-framecnn-base...
在使用Ajax采集数据时,有些Ajax接口含有很多的加密参数,直接很难发现规律。此时,就可以使用模拟浏览器运行的方式来采集。Python 提供了许多模拟浏览器运行的库,如Selenium、Splash、PyV8、Ghost等。一、模拟浏览器爬取数据Selenium的使用。1.1、安装准备工作安装selenium库:pip install selenium(1)、谷歌(Chrome)...
startActivityForResult跳转与startActivity跳转startActivityForResult的跳转相比较于startActivity跳转多了返回原页面数据传输功能 其实就相当于两个Activity A 与 B A先跳转到B 当B再跳转到A时 在A的中调用 onActivityResult 可接收来自B页面的传递信息 相对于startActivity常用于跳转至 **系统相机** 然后 返回照片的绝对路径//跳转 其中i为标记 当返回时使用(想来是避免当代码中
6-5 链式表操作集(20 分)本题要求实现链式表的操作集。函数接口定义:Position Find( List L, ElementType X );List Insert( List L, ElementType X, Position P );List Delete( List L, Position P );其中List结构定义如下:typedef struct LNode *Ptr...