emp3r0r
emp3r0r 脚本分析
1 |
|
该脚本的功能还是十分强大的,可以通过这个脚本进行安装,或者是发布版本
1 |
|
从release 出发
先执行了一个build函数
1 |
|
模块
从哪些可以获取有哪些模块?
通过在软件中使用ls_modules
从代码出发分析
从上面的emp3r0r 脚本其实就可以分析的出来,cc 是整个c2 的server
那就从cmd/cc/main 开始看
进入到runClientMode
再进入到operator.CliMain
1
2// Commands
mainMenu.SetCommands(Emp3r0rCommands(EMP3R0R_CONSOLE))Emp3r0rCommands 里面就是所有的命令
这里的命令就是help 提示的
我们目的就是从调用的关键代码去找功能的实现方式
然后可以到
执行当前的module
这个和正常使用的方式是一样的
比如我们先use 之后再run这个逻辑
通过上面的逻辑
再跟踪
1
2
3
4
5
6
7// run module
mod := ModuleRunners[live.ActiveModule.Name]
if mod != nil {
go mod()
} else {
logging.Errorf("Module %s has no runner", strconv.Quote(live.ActiveModule.Name))
}就能找到所有的模块的实现了
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18// ModuleRunners a map of module helpers
ModuleRunners = map[string]func(){
def.ModCMD_EXEC: moduleCmd,
def.ModSHELL: moduleShell,
def.ModPROXY: moduleProxy,
def.ModPORT_FWD: modulePortFwd,
def.ModLPE_SUGGEST: moduleLPE,
def.ModCLEAN_LOG: moduleLogCleaner,
def.ModPERSISTENCE: modulePersistence,
def.ModVACCINE: moduleVaccine,
def.ModINJECTOR: moduleInjector,
def.ModBring2CC: moduleBring2CC,
def.ModListener: modListener,
def.ModSSHHarvester: module_ssh_harvester,
def.ModDownloader: moduleDownloader,
def.ModFileServer: moduleFileServer,
def.ModMemDump: moduleMemDump,
}
moduleCmd
emp3r0r
https://tsy244.github.io/2025/03/05/工具分析/emp3r0r/