简单的免杀流程,软件使用方法与一点思路(Cobalt-strike)

本文介绍了恶意软件的免杀原理,重点讲述了如何通过团队协作平台CS进行内网渗透,利用CS生成shellcode和payload,以及避免杀软检测的方法,包括使用冷门语言、自定义软件和网络分离技术。最后演示了如何通过网络分离绕过杀软,成功上传恶意文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ps(还在学,深的不会,简单的也不怎么会,纯在记录)

目录

什么是免杀?

团队渗透作战平台

cs基本使用

shellcode(payload)

杀软一般怎么杀毒的

免杀思路:

演示:


什么是免杀?

字面意思,就是恶意软件或者木马,通过对其进行修改,导致杀毒软件扫描时会默认这款恶意软件是个安全的软件,导致恶意软件成功上传到电脑。通常在渗透测试的过程中,想要进入别人内网,就需要通过一些木马或者一些程序上传至别人内网,从而得到对方内网的权限。正常情况下,linux内可能没啥杀毒软件,但windows系统下的杀毒软件就各种各样,而我们的木马刚传上去就会被杀掉,这时如果懂得如何去对上传的马做一个免杀,使其顺利通过防火墙就显得非常重要了。

团队渗透作战平台

身为一名合法正规的渗透人员,总不能一直一个人孤军奋战,因此团队协作就显得非常重要。首先得知道一个内网是很庞大的,而当你自己成功上传了木马并得到权限时,一个人扫不知道要扫多久,并且还有可能被对方的运维人员发现并删掉这个马,因此就需要队友协助帮忙一起进行渗透。而队友该如何连接到你得到的主机呢,就需要使用作战平台了,而cs就是一个非常常见的作战平台。

CS主要攻击windows

daybreak(斗象)主要攻击linux(这里就先讲个cs)

cs基本使用

下载:看看别的佬去哪下的,下的时候找下载次数多的,有些人可能会上传这种下载文件,里面就藏着个木马。ps :也可以去微信公众号找哦

解压完成后,可以看到有一个叫teamserver的文件,因为cs是一个作战平台,因此启动他,就需要在一台服务器上启动,而团队的队员则是客户端,来连接到这个免杀平台上。(这个teamserver是个linux的文件,我没在windows上用过,并且使用kali去启动它不太好使,建议搞台服务器)

使用我的阿里云进行启动(打马赛克的是服务器的ip,客户机通过该ip连接到cs上,后面那个是设置的密码)其中出现下面那个绿绿的就代表启动成功。

我这里在一台win10的虚拟机下启动cs客户端(start_win.bat上面那个)启动后出现下面的弹窗,别名可以随便写,

ip需要写启动teamserver的那台服务器ip,

端口:50050是默认配置,要改需要进配置文件改,用户:你在cs上的名字 密码:刚刚服务器上设置的,而后选择连接。

成功登录后,按下面方法进行操作

其中,名字可以随便写 。Beaconhttp为默认的一个传输方式,当咱成功在别人电脑上上传一个木马后,拿到权限,就通过这个beacon http把对方的shell权限回弹到平台内。http地址可以写右边的加号 默认是服务器下的ip地址,至于后面的上线端口和监听端口需要选择电脑开放的端口(ps:可以通过netstat -n -a查看开放端口,好像只要上线端口是开放的且未被占用就行,那个监听如果没反应可以别写)配置完就启动成功。咱也不敢写ip,保存完后就会弹出监听成功

配置完后,生成这个可执行程序(这个可执行程序相当于一个后门,来得到主机信息,这里直接传到虚拟机上)

监听器选择刚刚设置好的,然后生成

可以看到这玩意直接被杀软杀了,确实是个后门程序,这里为了演示就先关杀软了

双击刚刚乘车的后门程序,就看到了我们的主机被成功监听。这一条叫做心跳时间,因为上传成功后通常都会等60秒才能真正的得到shell权限,并且后续每执行一条命令都会等60秒。因此可以右键该行,会话操作,回连间隔,对改时间进行修改,改成1,就是一秒后就可以收到信息。

修改后,还是右键,会话交互 输入 shell whoami,即可得到我这台虚拟机的信息。ps(前面都要加个shell才能访问),上传成功了不止是查看,还可以直接通过cs来完成一些如创建令牌,端口探测等,做socket等功能。并且这个cs也可以安装脚本,可以找一些大佬开的插件脚本,用起来会更简单

shellcode(payload)

此外,话可以通过cs直接生成一段shellcode(和payload差不多)。 这两本质上基本没区别,都是一段恶意代码,如果成功执行上传到内网的话,就可以得到一些权限信息。不过shellcode的特征性特别强,以致于杀毒软件一看到就会将其杀掉(上面的windows可执行程序就是个shellcode的exe程序),因此虽然可以通过cs自动生成exe的攻击软件,不过这玩意还是得等编程技术上去了自己去编写。

这里生成了一段由cs提供的shellcode(payload)就是下面那些,而下面这堆可以理解为计算机中的底层代码,是放在内存里跑的,而上面所说的那个shellcode是个exe文件,在桌面上基本会被直接杀死。而这种payload形式的shellcode就可以通过shell code加载器(github上面很多),通过它进行攻击,来直接跑到别人机器的内存中。(ps:也会被发现,但没上面那个那么露骨)

杀软一般怎么杀毒的

找特征码。由于这种大众一些的恶意代码,会有许多人用过,因此杀毒软件的公司都会将这种代码拎出来,将其特征或者别的什么记下来。存入到杀毒软件自带的一个病毒库(这种病毒库很大,并且每家杀软的病毒库都是不一样的,但他们都很多,更新次数频繁)因此只要下次再匹配到类似或者一样的,就会直接将其杀掉。举个例子: 比如有一段恶意代码被发现了,他是通过 

local_shellcode()

这段话执行的,这时杀软的人发现了,就会将local_shellcode记下来,放到病毒库中,下次再通过该代码或类似的代码进行攻击的话,就会被杀毒软件检测到杀掉。还有些电脑是不出网的,他们自己本地也会有个特征库,来匹配一些已知的木马。

免杀思路:

根据上面所说,这些恶意代码基本都是因为使用的人太多,所编写程序的语言都是用一些比较大众化的语言,因此思路1:通过一些冷门的语言去编写这种攻击代码。(ps:我还不会,会了一定写),c,c++,python这些热门语言来写特征性比较强,因为很多人都会,因此可以尝试用比如R语言rust,VB这些偏门点的语言来写。

思路2:对于软件的使用(exe)也可以尝试自开或二开或者根据别人开发过的再去开发,因为很多这种攻击软件都是开源过的,开源了就意味着很多人都知道,包括写杀毒软件的,因此等以后能力上去了,也需要自己尝试去编写一下,毕竟自己写的东西只要逻辑对了,自己写的特征也只有自己能看懂,杀毒软件看到也没见过这种特征,便上传成功了。

思路3:分离

shellcode加载器会将shellcode通过硬编码(ps:硬编码就是将一些路径参数直接写入到软件内存中,而不通过配置文件展示。)直接写入到一些软件的内存中去(软件可以理解成上传到内网的木马软件),等需要用的时候再从内存调用,而上传的时候,一些杀毒软件也是会去用他们自己的方式(如沙箱),在对软件(木马)内存下的东西进行探测,因此这种shellcode也是藏不住的,因此可以尝试使用网络分离的方式(目前只学过这个)或者其他分离方法。

网络分离例子:比如在某内网上成功上传一个木马,并将其启动后,shellcode不会从软件上读取,这时关于shellcode的特征便消失了,杀毒软件没有识别到shellcode的相关特征就不会基于shellcode的特征去把上传的软件杀掉。而软件上传上去后,可以选择先不进行任何敏感操作或者去执行先简单的操作(比如访问网页)这时杀毒软件就会判断,我们这边只是访问了基础网站或者啥都不做,而内网中软件服务这么多,总不能一直盯着你上传的这个木马,便会暂且信任。而后便是在服务器上传这个shellcode,上传后,内网中的木马会检测code存不存在,若存在就会直接将其上传到该木马的内存里边。

一般来说,只要这个木马能落地(放到内网中不被杀掉),基本上就可以了。ps(有些杀毒软件会根据行为进行检测,碰到这种还要再编写)

演示:

这个是一段从网上找的payload代码(网上或者github很多),这里通过它来简单的讲解一下如何一点一点绕过通过杀毒软件的检测。ps:(里面的意思先不用理解,先具体讲思路)

可以发现,当前的这个payload是直接被木马识别的。但这么一长串的代码总不能所有地方都是被识别的。所以很简单,先全给他删了,再一点点往回加,看看哪边是被火绒检测到的

当往回添加到这个位置的时候,发现被火绒检测到了,因此可以判断这句话就是一句特征码,而接下来就需要想办法对他做些操作使其绕过火绒的探测。这时,因为之前学习过python和一句话木马,便想到了一个函数eval(eval函数就是将括号内的东西以字符串执行,并返回”“内的值),虽然这个函数本身也是个危险函数(在安全中),但不妨试一下看看。

发现加了这句话后,防火墙直接通过了

而后又一点点全部加进去,发现都没有报错,因此可以发现杀毒软件就是基于那个特征码将其杀死,而对那行特征码进行了很基础的更改,便通过了防火墙。ps(不止是这么一个eval,还有很多种方法可以绕过,比如requests请求包之类的,我也不会,请自行探索◕‿◕)至此该马就可以通过杀毒软件,成功落地。ps:这只是让其落地,shellcode接着通过服务器获取。

通过cs生成一段python的shellcode并执行(这个payload是python的,所以生成python的shellcode),发现也没报错,可以确定目前这个python的恶意文件是已经成功绕过防火墙了

运行这段代码,成功上线(ps:这段是网上随便找的,只能体现下上线的过程,没法连接的)

payload的文件没有问题,尝试将其打包成exe文件看看情况

Pyinstaller -F -w .\payload.py

通过该语句将python文件打包成exe的文件,其中  PyInstaller 是一个用于将 Python 脚本打包成独立可执行文件的工具。-F-w 是其中的参数 -F指定生成单个可执行文件 -w指定生成的可执行文件在运行时不显示命令行窗口。ps(这个Pyinstaller是windows里自带的,如果此前没下载可以通过 pip install Pyinstaller下载)

发现直接被杀(ps:由于我虚拟机装了Anaconda,py这个好像不能和它兼容(能我也不会改),因此就在本机上完成接下来的操作  过程都一样,不会出什么毛病。)而判断其具体问题在哪,也是跟上面一样的步骤,一点点删,重新打包看具体情况,发现最终的问题出现在shellcode上。

所以cs所给的shellcode是无法使用的,因此,可以通过更改shellcode或者尝试做个网络分离来完成exe的上传。而如何通过网络上传,可以将数据放到稍微合法点的地方,比如博客,B站,或者云服务器,我这里就将数据以及shellcode码全都存放进了我的服务器中(code网上随便找的)。

存好后,变可以通过requests请求直接请求云服务器中的数据(ps:这些注释的东西全被打包到服务器了)目的就是做个简单的网络分离绕过防火墙

这里就调用了刚刚那个函数,解析一下。首先定义个id=1,而后进行一个是否为真的判断,第一条request就是像前面所说,随便访问一个id为1的网站装装样子,而后通过time.sleep函数暂停三秒,将其关闭,后面那个requests就是上传使用的shellcode,接着判断shellcode是否存在,如果返回的请求响应是个200的请求,则表示存在便将shellcode通过eval加载进去,并传到aaa的攻击函数中。

将其打包,成功通过

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值