利用Unicode RTLO方法构建恶意文件名
一:简介
RTLO”字符全名为“RIGHT-TO-LEFTOVERRIDE”,是一个不可显示的控制类字符,其本质是unicode 字符。“RTLO”字符可使电脑将任意语言的文字内容按倒序排列,最初是用来支持一些从右往左写的语言的文字,比如阿拉伯语,希伯来语。由于它可以重新排列字符的特性,会被不法分子利用从而达到欺骗目标,使得用户运行某些具有危害性的可执行文件。
二:构造方法(1)
(1)这里我的实验环境就是本机电脑,较高版本的win10系统,某一个文件夹下有一个“momaek.txt”文件,我们想对它动些手脚:

(文件扩展名勾上了!)

(2)这里有两种构造方式,如果你是windows用户的话,直接通过给文件重命名就可以插入Unicode的RTLO字符:

(3)这里我们直接输入fdp回车后,原本的“momaek.txt”变成了“momaektxt.pdf”。但是这里注意,这个文件的属性仍是文档(txt)的类型,并没有变成pdf文件格式!

(4)我们做一个先后变化的文件对比:
在这种详细信息的视图中,可以明显的看到改动后的文件类型还是文本文档,唯独后缀名不一样。

但是我们切换成“内容模式、(小、中、大、超大)图标模式”后,就无法看出文件的真实类型了!(当文件夹下内容过多时,windows会默认将视图模式更改为内容模式)

三:构造方法(2)
(1)还有一种方法是:通过python对目标文件重命名。
上面的内容理解清楚后,这次我们来做点不一样的:(构造一个恶意.exe)
(2)一个“mo.png”,一个“mo.exe”:(嘻嘻嘻,满脸坏笑)

(3)通过python给它加上RTLO方法:使其变成以.png为后缀的名称:
import os
os.rename('mo.exe', 'mo\u202egnp.exe')

(4)看下效果:详细模式下:

内容、(小、中、大、超大)图标模式下:

四:总结
这种方法算是一个小技巧吧,实用性也不是很强。
主要是在网上很少有介绍它的文章,平时也没怎么见过这种方式,故整理了此篇。
与此之外,看到一位师傅用“Unicode RTLO方法”来生成的后门,详情请见:https://www.freebuf.com/sectool/90362.html
本文参考链接:
https://blog.malwarebytes.com/cybercrime/2014/01/the-rtlo-method/
http://www.lijiejie.com/unicode-rtlo-right-to-left-override-issue/
利用Unicode RTLO方法构建恶意文件名的更多相关文章
- 利用 Rational ClearCase ClearMake 构建高性能的企业级构建环境
转载地址:http://www.ibm.com/developerworks/cn/rational/r-cn-clearmakebuild/ 构建管理是 IBM® Rational® ClearCa ...
- 利用Nutch和Tomcat构建搜索引擎
利用Nutch和Tomcat构建搜索引擎 1.安装环境及软件版本介绍 本教程是在Linux Ubuntu 12.04 desktop i386操作系统上搭建,结合使用了Nutch-1.2和Apache ...
- 利用ML&AI判定未知恶意程序——里面提到ssl恶意加密流检测使用N个payload CNN + 字节分布包长等特征综合判定
利用ML&AI判定未知恶意程序 导语:0x01.前言 在上一篇ML&AI如何在云态势感知产品中落地中介绍了,为什么我们要预测未知恶意程序,传统的安全产品已经无法满足现有的安全态势.那么 ...
- 利用angular4和nodejs-express构建一个简单的网站(五)—用户的注册和登录-HttpClient
上一节简单介绍了一下利用angular构建的主路由模块,根据上一节的介绍,主页面加载时直接跳转到用户管理界面,下面就来介绍一下用户管理模块.启动应用后,初始界面应该是这样的: 用户管理模块(users ...
- 利用水文分析方法提取山脊线和山谷线(ArcPy实现)
一.背景 作为地形特征线的山脊线.山谷线对地形.地貌具有一定的控制作用.它们与山顶点.谷底点以及鞍部点等一起构成了地形起伏变化的骨架结构.同时由于山脊线具有分水性,山谷线具有合水性特征,使得它们在地形 ...
- jquery利用event.which方法获取键盘输入值的代码
jquery利用event.which方法获取键盘输入值的代码,需要的朋友可以参考下. 实例 显示按了哪个键: $("input").keydown(function(event) ...
- JQUERY选择和操作DOM元素(利用正则表达式的方法匹配字符串中的一部分)
JQUERY选择和操作DOM元素(利用正则表达式的方法匹配字符串中的一部分) 1.匹配属性的开头 $("[attributeName^='value']"); 2.匹配属性的结尾 ...
- Python中的str与unicode处理方法
Python中的str与unicode处理方法 2015/03/25 · 基础知识 · 3 评论· Python 分享到:42 原文出处: liuaiqi627 的博客 python2.x中处理 ...
- 利用final定义方法:这样的方法为一个不可覆盖的方法。
常量(这里的常量指的是实例常量:即成员变量)赋值: ①在初始化的时候通过显式声明赋值.Final int x=3: ②在构造的时候赋值. 局部变量可以随时赋值. 利用final定义方法:这样的 ...
随机推荐
- 【转载】 C#中通过Where方法查找出所有符合条件的元素集合
在C#的List集合对象中,FirstOrDefault方法可以用于查找List集合中符合条件的第一个元素,如果需要根据条件查找到List集合中的所有符合条件的元素对象集合,则需要使用到List集合的 ...
- 前端 JS 获取 Image 图像 宽高 尺寸
前端 JS 获取 Image 图像 宽高 尺寸 简介 项目中用到获取图片的原始尺寸,然后适配宽高:网上的大部分前端解决方案,都是new Image()后,在onload事件中获取image的尺寸. 在 ...
- Java 之 常用函数式接口
JDK提供了大量常用的函数式接口以丰富Lambda的典型使用场景,它们主要在 java.util.function 包中被提供.下面是最简单的几个接口及使用示例. 一.Supplier 接口 java ...
- JavaScript常用数组操作方法,包含ES6方法
一.concat() concat() 方法用于连接两个或多个数组.该方法不会改变现有的数组,仅会返回被连接数组的一个副本. var arr1 = [1,2,3]; var arr2 = [4,5]; ...
- Android架构组件——ViewModel
概述 ViewModel,从字面上理解的话,它肯定是跟视图(View)以及数据(Model)相关的.正像它字面意思一样,它是负责准备和管理和UI组件(Fragment/Activity)相关的数据类, ...
- 听说你知道什么是锁 --JAVA
I.java中的锁 1.1 什么是锁 在计算机科学中,锁(lock)与互斥(mutex)是一种同步机制,用于在许多线程执行时对资源的限制. 锁通常需要硬件支持才可以有效实施.这种支持通常采用一 ...
- Linux命令——getconf
转自:灵活使用getconf命令来获取系统信息 简介 getconf本身是个ELF可执行文件,用于获取系统信息 用法 getconf -a可以获取全部系统信息 对于这个命令,记住几个常用的信息获取方法 ...
- Linux_kernel_exploits
功能:自动生成UAF类型漏洞exp文件的工具,目前缺少文档介绍,可以参考test文件下的使用实例,但是源码中缺少dataflowanalyzer模块 相关内容:源码路径https://github.c ...
- linux系统编程之文件与io(三)
上次我们利用文件的read和write来实现了简易的cp命令,其中将源文件拷贝到目标文件时,我们给目标文件的权限是写死的,而非根据源文件的权限生成的,如下: 今天就来解决这个问题,来学习获取文件权限相 ...
- .NET C#利用反射获取类文件以及其中的方法&属性 并获取类及方法上的特性
了解C#特性类并声明我们自己的特性类[AttributeTest]代码如下 using System; namespace AttributeTest { /* 特性说明 特性本质是一个继承和使用了系 ...