Home

Awesome

geacon_pro

项目介绍

本项目基于geacon项目对cobaltstrike的beacon进行了重构,并适配了大部分Beacon的功能。 该项目仅用于对CobaltStrike协议的学习测试。请勿使用于任何非法用途,由此产生的后果自行承担。

本项目与好兄弟Z3ratu1共同开发,他实现了一版支持4.0版本的geacon_plus,我这边实现了一版支持4.1及以上版本的beacon,大致功能类似,有部分功能不同。

暂时只测试了4.3版本,理论上来说4.1+版本均支持,如果有不支持的版本请及时通知我。

目前实现的功能具备免杀性,可过Defender、360核晶(除powershell)、卡巴斯基(除内存操作外,如注入原生cs的dll)、火绒 上述测试环境均为实体机 若想使用免杀powershell和免杀bypassUAC的话,请参考我的另外两个小工具(需要整理下。。暂时未上传),暂未进行集成。

开发的过程中参考了鸡哥的数篇文章以及许许多多的项目,同时抓包对服务端返回的内容进行猜测,并对服务端java代码进行了部分的理解。

欢迎师傅们交流,欢迎指出问题。

使用方法

本项目支持windows、linux、mac平台的使用。

基础的使用方法可参考原项目,windows编译时添加-ldflags "-H windowsgui -s -w"减小程序体积并取消黑框。linux和mac编译的时候添加-ldflags "-s -w"减小程序体积,然后后台运行。

目前项目有部分控制台输出内容,若想删除可在代码中删除。

实现功能

windows平台支持的功能:

sleep、shell、upload、download、exit、cd、pwd、file_browse、ps、kill、getuid、mkdir、rm、cp、mv、run、execute、drives、powershell-import、powershell、execute-assembly(不落地执行c#)、多种线程注入的方法(可自己更换源码)、shinject、dllinject、管道的传输、多种cs原生反射型dll注入(mimikatz、portscan、screenshot、keylogger等)、令牌的窃取与还原、令牌的制作、代理发包等功能

linux和mac平台支持的功能:

sleep、shell、upload、download、exit、cd、pwd、file_browse、ps、kill、getuid、mkdir、rm、cp、mv

文件管理部分支持图形化交互

C2profile:

适配了C2profile流量侧的设置与部分主机侧的设置,支持的算法有base64、base64url、mask、netbios、netbiosu、详情见config.go,这里给出示例C2profile,修改完C2profile后请不要忘记在config.go中对相应位置进行修改:

set sleeptime "3000";

https-certificate {
    set C "KZ";
    set CN "foren.zik";
    set O "NN Fern Sub";
    set OU "NN Fern";
    set ST "KZ";
    set validity "365";
}

http-get {

	set uri "/www/handle/doc";

	client {
		metadata {
			base64url;
			prepend "SESSIONID=";
			header "Cookie";
		}
	}

	server {
		header "Server" "nginx/1.10.3 (Ubuntu)";
    		header "Content-Type" "application/octet-stream";
        	header "Connection" "keep-alive";
        	header "Vary" "Accept";
        	header "Pragma" "public";
        	header "Expires" "0";
        	header "Cache-Control" "must-revalidate, post-check=0, pre-check=0";

		output {
			mask;
			netbios;
			prepend "data=";
			append "%%";
			print;
		}
	}
}

http-post {
	set uri "/IMXo";
	client {
		
		id {				
			mask;
			netbiosu;
			parameter "doc";
		}

		output {
			mask;
			base64url;
			prepend "data=";
			append "%%";		
			print;
		}
	}

	server {
		header "Server" "nginx/1.10.3 (Ubuntu)";
    		header "Content-Type" "application/octet-stream";
        	header "Connection" "keep-alive";
       	 	header "Vary" "Accept";
        	header "Pragma" "public";
        	header "Expires" "0";
        	header "Cache-Control" "must-revalidate, post-check=0, pre-check=0";
          
		output {
			mask;
			netbios;
			prepend "data=";
			append "%%";
			print;
		}
	}
}

post-ex {
    set spawnto_x86 "c:\\windows\\syswow64\\rundll32.exe";
    set spawnto_x64 "c:\\windows\\system32\\rundll32.exe";
    
    set thread_hint "ntdll.dll!RtlUserThreadStart+0x1000";
    set pipename "DserNamePipe##, PGMessagePipe##, MsFteWds##";
    set keylogger "SetWindowsHookEx";
}

目前需要改进的地方:

主体代码结构

config

crypt

packet

services

对packet里面的功能进行了跨平台封装,方便main.go调用

sysinfo

main.go

主方法对各个命令进行了解析与执行,以及对结果和错误进行了返回

部分功能的实现细节