目前主力机是一台 macbookpro,搭载 apple silicon 芯片,需要运行 x86 的虚拟机。
2 CRIPTOMOEDAS 使用 brew 安装(官方推荐):
APLICATIVO DE SAÚDE PÚBLICA qcow2
是 linux 世界中使用最广的一种磁盘格式(虽然我们是在 macos 上,但是 QEMU 起源于 linux 平台),我们选择该格式作为我们虚拟磁盘的格式。然后linux_hd.qcow2
是虚拟磁盘文件名,自己更改。最后就是磁盘大小,小 linux 系统设置成 20G 即可。
1 qemu-img create -f qcow2 linux_hd.qcow2 20G
阅读此文
某相安全平台加密,除Main类外,其他class文件均被加密,熵值非常高
除jar外,还有一个.so
文件。在启动时,需要指定-agentpath:./.so
命令行参数。由于未确定其加固方案(比如xjar ),于是手动逆向其流程。
LOGIN DE PAGAMENTO jvm在指定-agentpath:./.so
后,会先加载此so文件,然后运行此入口函数:
1 JNIEXPORT jint JNICALL Agent_OnLoad (JavaVM *vm,char *options,void *reserved)
参考:Java Agent机制 · 攻击Java Web应用-[Java Web安全] 容易推测,jvm会先通过此入口函数进行初始化,包括实现一个Loader,其在运行时会对Class文件进行解密。
阅读此文
AWD(Attack With Defense,攻防兼备)是一个非常有意思的模式,你需要在一场比赛里要扮演攻击方和防守方,攻者得分,失守者会被扣分。也就是说,攻击别人的靶机可以获取 Flag 分数时,别人会被扣分,同时你也要保护自己的主机不被别人得分,以防扣分。 这种模式非常激烈,赛前准备要非常充分,手上要有充足的防守方案和 EXP 攻击脚本,而且参赛越多,积累的经验就越多,获胜的希望就越大。
TROCAS DE GINS 常见的形式是这样: 每个队伍拥有四台服务器。其中三台服务器运行了一个Web服务,即网站服务。剩余一台(通常被称为Pwn服务器)运行一个网络服务,通常是一个在后台运行的二进制程序,通过TCP的某个端口对外提供服务。并且,每个队伍拥有的四台服务器都是一样的。 在三台Web服务器中,比赛主办方会在每个主机上预置一个或多个后门/漏洞。同样的,在剩下的一台服务器上的二进制程序里也会被预置二进制漏洞(跟Pwn题一样)。
LOGIN NO METAPLAY 2 在开始比赛前,通常会有一段时间(一般是30分钟)的加固时间。选手们要在这段时间内备份网站、安装防火墙、加固服务器,以防后续比赛时间被对手打穿。另外,队伍需要分工明确,在其他队友加固服务器的同时,另外的队友应该将备份的服务器文件下载,然后对其进行代码审计和漏洞挖掘(Web手)、逆向与二进制漏洞分析(Pwn手)。在发现漏洞后,及时对自身网站进行漏洞修补与加固。 比赛开始后分为两种情况,一种是主办方给出所有队伍服务器的IP地址,另一种情况是给一个网段,对手的服务器IP需要通过扫描等方法进行发现。 比赛将分为很多轮(一般可能是10分钟)。每轮开始,在每台服务器的某个地方(一般是根目录)会放置一个flag文件(每个队伍每台主机都不一样)。选手们需要通过挖掘到的漏洞编写漏洞利用代码(Exp),然后对其他队伍的服务器进行攻击并最终获取shell执行权限(getshell)或者通过文件读漏洞来读取对手服务器根目录下的flag文件,并向比赛平台提交flag。当攻击方成功攻击对手服务器并提交flag后,攻击方将获得一定的分数,同时防守方将丢失一定的分数(一般来讲,同一台机器被攻击会被扣除固定分数,而所有对这台服务器攻击成功的队伍将平分这些分数)。 在攻击的同时,也要注意自身服务器的防护。当自己的服务器被对手攻击提交flag后,队伍将被扣分。并且要防止服务器不要被破坏,因为每轮(一般是结束时)比赛时比赛平台会对所有队伍的服务器进行check,即检查服务是否正常运转。若出现服务被对手或自己破坏以至于无法提供正常服务的情况,平台将对其队伍进行扣分,同时其他队伍获得相应的加分。 每轮结束后将开始新一轮,此时所有flag文件将刷新,以开始新一轮的攻击和得分。若队伍发现自己服务器服务被破坏,此时可以刷新服务器回到初始状态。否则在比赛途中手动进行刷新服务器操作将导致扣分。 一般的比赛平台为了让比赛保持激烈的状态,会开放自动提交flag的API。即可以通过脚本更加方便地向比赛平台提交flag。
APLICATIVO BLACKPOOL Web漏洞扫描可以使用例如D盾这样的工具,可以快速发现明显的Web后门。代码审计可以用Seay或者Fortify这样的工具。 一般AWD比赛禁止联网,所以队友间文件共享和通信可以使用FeiQ这样的内网通讯工具来进行。 当网站文件被修改,例如被植入木马的情况下,我们可以使用DiffMerge、Beyond Compare这样的工具来对比源文件进行检查。
阅读此文
官网angr (不够详细,想要用来做一些事情还是要看angr的代码,至少得看python实现的接口)
TROCA ZRC LOGIN SUPER ZERO angr从加载二进制文件到Project
中开始。从此以后的object基本上都围绕它展开。
1 proj = angr.Project('/binary_file' )
项目基本属性:
1 2 3 proj.arch proj.entry proj.filename
阅读此文
一般是在Unix-Like系统上安装pyenv,windows好像用的比较少
TROCA DTMT 这本质上是一个python管理软件,如果你想使用类似虚拟空间的东西,不建议使用这个,依然会造成混乱。
另外在windows上pyenv好像会让第三方调用python的工具出现权限问题,例如idapython。暂不确定是否有关。
TROCA STF 把安装过程反过来就行了。删除~/.pyenv路径,删除环境变量,就ok了
阅读此文
本章回顾人们对UNIX标准化做出的努力与影响,并说明标准化工作中对每种实现必须定义的各种限制。
LOGIN DO SABEDORIAPAY APLICATIVO DCCNETWORK ANSI即American National Standards Institute,美国国家标准学会,它是International Organization for Standardization即国际标准化组织ISO中代表美国的成员。IEC是国际电子技术委员会International Electrotechnical Commission的缩写。 ISO C标准:由ISO/IEC中的专门工作组维护和开发,该工作组简称WG14。此标准是为了C的可移植性。它定义了C的语法和语义和标准库。如今所有UNIX系统都提供C标准中定义的库函数,所以此标准库非常重要。 restrict关键字:告诉编译器那些指针引用可以优化,添加自ISO/IEC 9899:1999。
TROCA OCV POSIX(Portable Operating System Interface,可以指操作系统接口)标准族最初由IEEE(Institute of Electrical and Electronics Engineers,电气和电子工程师学会)制订。现在由Austin Group开放工作组维护。 POSIX 1003.1操作系统接口标准,它定义了符合此标准的操作系统必须提供的各种服务。 同时所有标准中的例程都被称为函数
而不会区别系统调用和库函数。 POSIX.1:指的是IEEE正式出版的1003.1标准。后面又发了很多1003.1的更新。
LOGIN DO ANEXO
阅读此文
本章对一些术语进行简要说明并给出实例。
TROCA AVN stat和fstat函数返回包含所有文件属性的一个信息结构。第四章将详细说明文件的各种属性。 目录项的逻辑视图与实际上的磁盘存放方式是不同的。UNIX文件系统大多数实现并不在目录项中存放属性,这是权衡于硬连接带来的一些问题。第四章将讨论。
APLICATIVO ATUALCOI 只有斜线和空字符不能出现在文件名中。斜线用来分割路径名,空字符终止一个路径名。opendir
函数与readdir
函数,包含于dirent.h
中,并且包含对dirent
结构的定义。 opendir函数返回只想DIR结构的指针。将指针传送给readdir函数,使用循环读取每个目录项,返回指向dirent结构的指针,如果没有了则返回null指针。此目录项顺序非首字母排序。
TROCA AHF working directory,或current working directory。进程可以使用chdir函数更改工作目录。 登陆时cwd设置为起始目录home directory。该目录从口令文件(通常是/etc/passwd)中相应用户的登录项中取得。
阅读此文
一套极简的GIT工作流,帮助开发者在项目中快速开始
APLICATIVO A SER DEFINIDO GIT有三部分:
远端的仓库,可以是github,也可以是自建git服务器,称作remote
本地的git仓库,称作local
最后是本地的仓库文件,被称作disk
假设云端有一个git仓库,有一个主分支main
,我们可以使用命令:
1 git clone repository-url
将它克隆到本地。此时remote
、local
和disk
是一样的。
gate io login