caldera试用简介caldera由MITRE团队开发,成立于2015年,第一版发行于2017年,主要用于攻击模拟,主要用于:
自动化突防和模拟训练
在网络侧识别脆弱点
降低培训员工的开销
高亮防御中的差距
减少防御团队所需要的资源
给防御的研究者和开发者提供一个平台
解答有关检测和响应的问题
caldera也与ATT&CK框架相映射,使用了ATT&CK中的许多例子作为测试样例。
核心结构caldera主要分为server端和agent。
server端server端分为核心系统以及插件两大部分,主要由python开发:
核心系统:一个具备很多功能的C2服务器控制台。
插件:为caldera添加更多特性和功能的独立存储库。
插件中包含了agent部分功能的使用。
agent端caldera的agent端有多种形式,包括反弹shell(Manx)、go编写的(Sandcat)、python(Ragdoll)编写的,均支持windows以及linux平台:
agent的主要功能就是接受下发的命令,执行剧本:
具体功能caldera的攻击模拟按 ...
哲学的诞生希腊文明的历史背景希腊哲学发端于公元前6世纪,终止于公元6世纪。
公元529年,皈依了基督教的东罗马帝国皇帝查士丁尼封闭最后一所柏拉图学院,一般以此作为希腊哲学终结的标志。
希腊哲学跨度较大,一般包含:希腊古典时期,希腊化时期,罗马共和国时期,罗马帝国时期。
希腊文明的突然兴起和其他的古老文明类似的,都是以王宫为中心的中央集权式的帝国;不同点在于后面王宫烧毁,希腊文明出现了断层,然后又兴起,且没有采取原先的方式建立文明,而是城邦制。
希腊哲学的繁荣是在雅典,以三个人为代表:苏格拉底,柏拉图,亚里士多德。
希腊文明最鼎盛时期:两次波希战争胜利之后。
雅典城邦的民主制度是希腊哲学产生肥沃的土壤:
人们开始关注终极关怀的问题。
人们有时间去思考这些问题。
必须有思想的自由的条件。
在民主制度中,人与人之间的交流靠的是语言的影响,要靠道理,不是靠信仰(宗教)来直接解决终极关怀问题。
哲学的诞生某种意义上说:哲学脱胎于神话(都是想解决终极关怀问题)。
人类最早是以神话的方式给出对世界的说明。
当人们不满足用命运去解释的时候,试图给出更合理的解释:
命运->必然性-> ...
样本分析在处理日常的任务中发现可疑IP:172.247.132.146,简单查看是一个保存文件的站点,只保存了shoves.exe文件:
该文件疑似远控木马,现做简要分析。
沙箱分析程序运行后该程序会不断地向域名为vip79318901.f3322.net的主机发送请求:
ApataDNS:
inetsim:
存在修改注册表以自启动:
修改读取镜像劫持相关的注册表:
其他有关网络配置的敏感操作:
不存在文件的写入操作,但存在大量的文件读操作用于导入函数:
云沙箱分析结果:
PE文件分析程序未加壳:
恶意代码存在自定义的baidu段:
内部使用了RC5算法进行加/解密:
程序最开始使用GetStartupInfoA进行简单的反调试:
123456789.text:00401F9A lea eax, [ebp+StartupInfo].text:00401F9D push eax ; lpStartupInfo.text:00401F9E ...
加壳主程序判断文件是否为PE文件
根据文件开始两个字节是否为”MZ”来判断文件否为DOS文件:
12345dos_header = (PIMAGE_DOS_HEADER)file_image_base;if (dos_header->e_magic != IMAGE_DOS_SIGNATURE) { WARNF("错误!目标文件DOS头校验失败!"); return FALSE;}
根据PE header中的Signature是否为”PE”来判断DOS文件是否为PE文件:
12345nt_header = (PIMAGE_NT_HEADERS32)((DWORD)dos_header+dos_header->e_lfanew);if (nt_header->Signature != IMAGE_NT_SIGNATURE) { WARNF("错误!目标文件PE头校验失败!"); return FALSE;}
如果PE文件只有一个区段,说明PE文件加壳来:
...
晁盖等八人抢劫生辰纲案大一时写的一篇论文,感觉挺有意思,今天整理博客,一并上传。
关键词:刑事案件 黑社会组织 抢劫 有持续的社会危害
基本案情晁盖是山东郓城县东溪村人,乃东溪村保正,本乡财主。吴用,山东菏泽市郓城县东溪村人。刘唐,东潞州人氏。刘唐为劫取生辰纲一事,夜走郓城县往投晁盖,途中酒后醉卧灵官庙,为巡查的县都头雷横抓获并带往东溪村晁盖庄,晁盖得知详由,并开始着手领导组织劫取生辰纲。晁盖吴用自幼结交,晁盖因吴用聪明过人便教唆其出谋策划劫取的全部过程,吴用欣然同意。公孙胜,蓟州人氏。其通过某些非法途径获知生辰纲一事,便投奔晁盖以期望伙同一起抢劫生辰纲。阮小二,阮小五,阮小七梁山泊旁边石碣村人。白胜,是黄泥冈东十里路安乐村闲汉。吴用召集阮氏三兄弟和白胜一起参与了此次抢劫案。杨志,武举出身,曾任殿帅府制使,因失陷花石纲丢官,后为梁中书赏识,派其护送此次生辰纲。
案发当日,天气较热,杨志因有一定的江湖经验,指导黄泥岗乃是非之地不宜久留。所以在同行护送生辰纲的其余几人想要在黄泥岗停歇一会时便催使他们不要歇息,这也导致了同行护送的其他人对杨志心存不满。当护送一行人基本不想在继续护送时,白胜 ...
一类动词 二类动词 三类动词日语的动词都是以う段假名结尾的,有う、く、す、つ、ぬ、む、る、ぐ、ぶ。
一类动词(五段动词)
不以る结尾的动词就是一类动词。
如:
買(か)う、書(か)く、話(はな)す、立(た)つ、死(し)ぬ、読(よ)む、泳(およ)ぐ、呼(よ)ぶ。
以る结尾的动词,る前一个假名在あ段、お段。
如:
終(お)わる、折(お)る、祈(いの)る。
二类动词(一段动词)以る结尾的动词,る前的假名在い段、え段。
如:
起(お)きる、寝(ね)る。
日语中有26个动词,满足二类动词特点,但是为一类动词,它们是:
帰(かえ)る
切(き)る
減(へ)る
要(い)る
知(し)る
走(はし)る 跑,行驶
入(はい)る
返(かえ)る
滑(すべ)る
参(まい)る “来,去”的谦辞
混(ま)じる 夹杂
握(にぎ)る
煎(い)る 煎、炒
練(ね)る 推敲
散(ち)る 凋谢
照(て)る 照耀
蹴(け)る 踢
焦(あせ)る 着急
限(がき)る 限于
湿(しめ)る 潮湿
茂 ...
指令替换技巧 from 《加密与解密》
功能
指令
机器码
指令长度(byte)
替换1字节
nop
90
1
替换2字节
nopnop
9090
11
替换2字节
mov edi,edi
8B FF
2
替换2字节
push eaxpop eax
5058
11
替换2字节
inc eaxdec eax
4048
11
替换2字节
jmp xx
eb00
2
寄存器清零
mov eax,0x00000000
B8 00 00 00 00
5
寄存器清零
push 0pop eax
6A 0058
21
寄存器清零
sub eax,eax/xor eax,eax
2B C0/33 C0
2
测试寄存器的值是否为0
cmp eax,0x00000000je label
83 F8 0074xx/0F84xxxxxxxx
32/6
测试寄存器的值是否为0
or eax,eax/test eax,eaxje label
0B C0/85 C074xx/0F84xxxxxxxx
22/6
置寄存器为0xFFFFFFFF
mov eax ...
afl-fuzz.c main函数简单流程(关键步骤省略)预处理
打印afl程序信息;
1SAYF(cCYA "afl-fuzz " cBRI VERSION cRST " by <lcamtuf@google.com>\n");
检查文件是否存在;
1doc_path = access(DOC_PATH, F_OK) ? "docs" : DOC_PATH;
设置一个种子,方便后续随机量的设置;
12gettimeofday(&tv, &tz);srandom(tv.tv_sec ^ tv.tv_usec ^ getpid());
根据命令行初始化并检查一些参数;
i:输入语料文件夹,对应变量in_dir;
o:fuzz输出文件夹,对应变量out_dir;
M,S:多线程模式下的Master和Server,Master会采取强制确定性变异,然后进行随进行变异,而Server会采取dumb mode进行fuzz,即不进行确定性变异;
f:用来进行fuzz的文件,对应变量out_ ...
afl-as.c粗析查看main函数,关键的就一句:
1if (!just_version) add_instrumentation();
即在汇编文件中添加插桩代码。
该函数中关键部分:
12345678910if (!pass_thru && !skip_intel && !skip_app && !skip_csect && instr_ok && instrument_next && line[0] == '\t' && isalpha(line[1])) { fprintf(outf, use_64bit ? trampoline_fmt_64 : trampoline_fmt_32, R(MAP_SIZE)); instrument_next = 0; ins_lines++;}
即通过汇编判断当前是不是一个分支语句或者函数,然后根据环境是x86还是x86-64添加汇编代码trampoline ...
afl-fuzz.c细节分析之主循环分析cull_queue阶段afl的dry run环节结束后就会进入cull_queue():
1cull_queue();
cull_queue函数分析该函数用于精简队列。
若处于dumb模式或者没有发现更优的样例就返回:
1if (dumb_mode || !score_changed) return;
将标记位score_changed改为0:
1score_changed = 0;
设置temp_v数组中的值为0xff:
1memset(temp_v, 255, MAP_SIZE >> 3);
设置queued_favored和pending_favored为0:
12queued_favored = 0;pending_favored = 0;
遍历queue,将所有样例的favored设置为0:
123456q = queue;while (q) { q->favored = 0; q = q->next;}
若对某条分支信息,top_rated[i]存在(存在favorable ...