CTF Hacking: O que é Capturar a Bandeira para um novato?
O que é capturar a bandeira de hacking?
Este blog foi concebido para uma pessoa que é novinha em folha a captar a bandeira (CTF) hacking e explica o básico para lhe dar a coragem de entrar num CTF e ver por si própria o que é participar. Os CTFs são eventos que são normalmente organizados em conferências sobre segurança da informação, incluindo os vários eventos BSides. Estes eventos consistem numa série de desafios que variam no seu grau de dificuldade, e que exigem que os participantes exerçam diferentes conjuntos de competências para resolver. Uma vez resolvido um desafio individual, é dada uma “bandeira” ao jogador e este submete esta bandeira ao servidor da CTF para ganhar pontos. Os jogadores podem ser lobos solitários que tentam os vários desafios sozinhos, ou podem trabalhar com outros para tentarem marcar o maior número de pontos como equipa.
eventosCTF são normalmente cronometrados, e os pontos são totalizados uma vez expirado o tempo. O jogador/equipa vencedor será aquele que resolveu mais desafios e assim garantiu a pontuação mais alta.
Aqui está um ecrã de um quadro de pontuação de um evento BSides San Francisco CTF:
Por favor note a frase que marquei com uma caixa vermelha. Como verá rapidamente, as tarefas CTF são frequentemente baseadas em incidentes/vulnerabilidades do mundo real que lhe dão uma oportunidade de experimentar como é realmente feito e prepará-lo melhor para defender os seus próprios sistemas contra estes tipos de ataques. Assim, não só os eventos CTF são divertidos, como também podem ser educativos e profissionalmente gratificantes.
Preparação CTF
Se nunca experimentou um evento CTF antes, não fique frustrado ou desista, porque a chave para qualquer tipo de hacking é a paciência. Embora isto seja por vezes difícil de ter, a única forma de aprender é persistir e praticar por si próprio (ver este post mais abaixo sobre como praticar) e talvez da próxima vez consiga o primeiro lugar! Uma coisa que pode tentar fazer durante o seu primeiro evento CTF, se possível, é encontrar uma equipa experiente que esteja disposta a deixá-lo juntar-se a eles. Certifique-se de que está claro que este é o seu primeiro evento CTF e gostaria muito que eles lhe mostrassem as cordas.
Na minha experiência, os membros da comunidade InfoSec estão normalmente muito dispostos a partilhar os seus conhecimentos com qualquer pessoa interessada em tentar aprender e crescer neste campo. Ao mesmo tempo, no entanto, um tema comum que também se ouve frequentemente na comunidade é que há falta de talento. Por vezes, isto pode ser uma luta muito real, e muitos profissionais que têm trabalhado no campo têm passado um tempo considerável para o fazer, sacrificando muito para aprender, praticar e aperfeiçoar a sua arte. Por esta razão, antes de procurar ajuda com questões básicas, deve primeiro pesquisar o tema e fazer um esforço para descobrir as coisas por si próprio.
Na comunidade InfoSec, a confiança não é algo em que se possa dar valor. Se o seu trabalho é invadir a rede de um cliente, a última coisa que alguém quer é que essa informação sensível seja partilhada com alguém fora da equipa. A confiança é uma componente crítica desta relação e nunca é demais expressar a importância de permanecer ético também durante as competições. Finalmente, por último mas certamente não menos importante: quando for a um evento CTF, não se esqueça de trazer um portátil ou outro computador que tenha um sistema operativo com várias ferramentas já instaladas (mais sobre isto abaixo), pois sem isso vai ter um começo difícil.
Em resumo, os CTF são uma grande oportunidade para aprender, por isso se nunca experimentou um evento CTF ou mesmo um evento BSides, encorajo-o vivamente a saltar para dentro e a juntar-se a um assim que puder!
Serviço de Simulação de Avanço
Permite aos clientes testar as suas operações de segurança e capacidades de detecção contra técnicas avançadas de testes de penetração.
Saiba mais
Tipos de Eventos
Existem normalmente dois tipos diferentes de eventos de CTF. Os dois tipos mais comuns são:
- Equipa Vermelha/ Equipa Azul
- Neste estilo de evento a equipa vermelha tenta capturar bandeiras enquanto a equipa azul tenta defender as várias bandeiras de serem capturadas.
- Equipa Vermelha
- Este estilo de evento envolve normalmente uma ou mais pessoas, trabalhando sozinhas ou em equipa, que tentam capturar várias bandeiras enquanto não há equipa a defendê-las.
Cada tipo de evento tem vários prós e contras. Num cenário de Equipa Vermelha versus Equipa Azul, os atacantes aprendem técnicas vitais enquanto os defensores têm a oportunidade de aprender a defender os seus sistemas de um ataque activo. No entanto, num cenário de Equipa Vermelha, todos os gangues no pobre anfitrião do CTF e fazem o seu melhor para que este divulgue todas as bandeiras em que os atacantes podem colocar as suas garras digitais.
Tipos de Desafios
CTFs normalmente mostram diferentes desafios que utilizam ou exercem áreas específicas de foco. Algumas áreas de foco populares são:
- Programação
- Estes tipos de tarefas requerem normalmente algum tipo de programação para serem resolvidas. Na maioria dos casos, envolverá uma mistura de programação e alguma engenharia inversa.
- “Crypto”
- Estes desafios apresentam cenários comuns do “mundo real” que muitas vezes incluem o tipo de malware sempre-popular de resgate.
- Exploração
- Estas tarefas forçá-lo-ão a determinar como explorar (utilizando o buffer overflow, formato de string, injecção SQL, etc.)….) um dado processo em execução na máquina alvo CTF.
- Engenharia Inversa
- Para tarefas como esta, a engenharia inversa será normalmente necessária, por exemplo, quando o servidor lhe envia um executável.
Como participar num evento CTF?
A minha primeira experiência com um CTF foi num evento local da BSides. Fui ao evento da BSides com o seguinte pensamento: “Haverá provavelmente muitos hackers qualificados aqui; acho que vou levar um portátil Tails que me permitirá tomar notas e navegar na web quando necessário”. Embora a mentalidade de querer proteger os meus dispositivos não fosse exactamente uma má ideia, confiar num Tails tornou a vida bastante difícil quando se tratou de participar no evento CTF. Para ser justo, não me apercebi que haveria lá um evento CTF e por isso nem sequer pensei nesse aspecto do evento. O que eu recomendaria no seu primeiro CTF, por ordem de mais fácil a mais difícil, seria um dos seguintes:
- Kali Linux
- li> Esta distribuição vem propositadamente construída para testes de penetração. Está embalada com todas as ferramentas imagináveis e provavelmente uma tonelada a mais do que nunca precisará de usar.
li>BlackArch
- Esta distribuição é baseada no Arch Linux mas vem pré-construída, tal como a Kali, com toneladas de ferramentas de segurança.
- li> Esta é uma instalação base do Linux que vem com ferramentas padrão do Linux. Se escolher esta opção, terá de fazer o trabalho de instalação de todas as ferramentas que possa pensar que possa necessitar ou, no mínimo, garantir que tem acesso a uma ligação à Internet para lhe permitir instalar rapidamente as ferramentas de que necessita no evento.
Exemplos
Como mencionei anteriormente, houve um evento BSides em São Francisco que acolheu uma sessão CTF há alguns meses atrás. Podemos olhar mais de perto para este evento para vos dar uma melhor ideia do que é capturar a bandeira.
P>Primeiro, o ecrã acima mostra-vos o quadro de pontuação final, que também colocarei aqui:
Por favor note que o vencedor ganhou com 6.773.000 pontos enquanto o jogador mais próximo tinha 5.178.000 pontos. Esta é uma boa pista que me diz que dcua é provavelmente um jogador hacker/CTF bastante experiente. Agora vamos investigar os diferentes tipos de tarefas de que já falámos anteriormente. Aqui está uma lista das diferentes tarefas que estavam disponíveis neste evento CTF:
Como pode ver, existem diferentes tipos de tarefas e algumas delas sobrepõem-se em termos das competências necessárias para as resolver. Vamos dar uma vista de olhos mais detalhada a algumas das tarefas dessa lista. Vamos apenas escolher uma:
Taylor’s Magical Flag Oracle é uma tarefa baseada em engenharia inversa e codificação que vale 150 pontos. Se clicar no link ‘Tarefa’ é-lhe apresentada informação detalhada sobre o que está envolvido:
Como pode ver, há muitos detalhes que são fornecidos, incluindo dicas sobre como resolver este desafio/tarefa de CTF. Como este evento já foi concluído, existe também uma secção “Writeups” na qual diferentes jogadores submeteram os passos que utilizaram para resolver o desafio. Esta secção pode proporcionar uma leitura muito interessante e pode também ajudá-lo se estiver a tentar o desafio por si próprio e precisar de um empurrão no caminho certo.
Vamos dar uma olhadela rápida a mais dois desafios e depois passarei aos recursos que pode utilizar para aprender mais sobre a CTF, como participar, ou mesmo como acolher um.
Para o nosso próximo exemplo, parece oportuno escolher a tarefa ‘xref’ tendo em conta todas as notícias sobre as recentes infecções por malware do WannaCry:
Aqui estão os detalhes para ‘xref’:
Notificação de que esta descrição não fornece muita coisa para continuar. É isso que torna esta tarefa particularmente interessante e de certa forma um desafio; se nunca o fez antes, será difícil saber mesmo por onde começar. Felizmente, no entanto, este evento terminou, por isso vamos usar um dos escritos para ter uma ideia de como o desafio foi resolvido.
O URL aqui: https://github.com/1337pwnie/ctf-writeups/tree/master/2017/UIUCTF fornece os detalhes. Neste caso, existe um ficheiro README contido no ficheiro .ZIP fornecido que fornece uma dica. Para resolver o desafio, algum código precisa de ser escrito (embora a tarefa pareça estar a faltar a etiqueta ‘programação’). Em vez de rever toda a escrita aqui, sinta-se à vontade para navegar através do URL e da solução passo a passo.
P>Próximo, vejamos a nossa última tarefa:
Goodluck é uma vulnerabilidade em formato de string “p0wn” que significa essencialmente que a pontuação contra ela irá cuspir a bandeira. No mundo real, idealmente, a realização de uma tarefa como esta dar-lhe-ia acesso irrestrito à máquina alvo. Aqui estão os detalhes sobre goodluck:
Para resolver isto, precisamos de descobrir como utilizar uma vulnerabilidade de formato de string para nos dar uma bandeira. Os detalhes são técnicos e profundos, por isso, consulte a secção de recursos abaixo para obter ligações para os vários desafios mencionados neste post e poderá então utilizar as várias escritas sobre as diferentes soluções que foram utilizadas para resolver os desafios/tarefas.
Como posso saber mais sobre CTF?
Há muitos recursos em toda a web que pode utilizar para determinar como jogar uma CTF ou como hospedar uma CTF. Consulte o Google e o YouTube para obter detalhes sobre vários eventos futuros com os quais se pode envolver. Muitos destes permitem aos jogadores remotos entrar no jogo para que não tenha necessariamente de assistir fisicamente a um evento para participar. O CTF específico que utilizei para discutir como funciona o CTF e as minhas experiências com ele foram tiradas daqui: https://ctftime.org/event/453.
Aqui está outro recurso interessante e útil que poderá achar útil: http://www.amanhardikar.com/mindmaps/Practice.html. Este URL dá-lhe acesso a uma vasta gama de ferramentas, todas elas envolvendo aplicações vulneráveis, aplicações web, sistemas operativos, etc. Estes recursos são um óptimo local para começar.
Se o Google, o YouTube e os outros recursos aqui apresentados não responderem às suas perguntas, por favor sinta-se à vontade para me contactar directamente e eu tentarei ajudar o mais que puder. Podem contactar-me no Twitter @CerebralMisjif. Sinta-se à vontade para me seguir ou pingar-me lá e farei o meu melhor para responder a quaisquer perguntas que possa ter.
Conclusion
Este blog foi concebido para uma pessoa novinha em folha a CTF, e deverá dar-lhe a coragem de entrar numa CTF e ver por si própria como é. Os eventos CTF são óptimos locais para conhecer colegas entusiastas/profissionais da segurança da informação, e também oferecem boas oportunidades para trabalhar em rede, desenvolver as suas competências num ambiente seguro, e divertir-se enquanto o faz. Em alguns casos, são atribuídos prémios ao vencedor de um evento CTF e estes podem ser muito agradáveis de destacar se procura uma carreira na área InfoSec.
Espero que tenha achado este artigo útil, e educacional. Espero também que tenha adquirido uma melhor compreensão do que é uma CTF, como pode ajudar a melhorar os seus conhecimentos, conjuntos de competências, bem como a capacidade de defender os sistemas actuais, e acima de tudo, como uma CTF pode ser divertida! Como mencionei, alguns sites estão agora a começar a permitir a participação de jogadores remotos em eventos de CTF, por isso estejam atentos a estes se estiverem interessados. Espero vê-lo um dia; por favor contacte-me se vai estar em algum evento para que possamos tentar encontrar-nos.