Boas xente!!
Fai tempo estiven trangallando cos keyrings de Linux para extraer tickets de Kerberos con tickey, e recentemente vinme envolto nun novo proxecto no que precisaba volver a aprender sobre o tema, así que vou a describir aquí o proxecto e os conceptos mais relevantes sobre os keyrings por se eu ou outra persoa ten que aprendelos no futuro.
O primeiro que temos que saber é que o que se coñece como keyrings de Linux, é un xestor de chaves.
[Leer máis]
Como unir Debian a Active Directory
Boas xente, neste artigo vou amosar como unir unha máquina GNU/Linux, específicamente unha Debian, a un entorno de Active Directory. Seino, seino, Active Directory (AD) é unha ferramenta comercial do malvado Microsoft, mais por moito que nos pese, é a solución de directorio mais usada do mercado.
Sen embargo, non por ter un entorno de Microsoft temos que usar Windows, inda que iso é o que lles gustaría.
[Leer máis]
Que demo pasa co meu DNS? Descubrindo e configurando demos de rede
Boas xente, hoxe veño a falar dun problema que me teño atopado en varias ocasións. O tema é que configuro o equipo para usar un servidor DNS concreto, incluíndo este no /etc/resolv.conf, e dalí a un anaco me atopo que este se borrou e se volveu ao servidor DNS anterior.
Neste artigo vou ver porque acontece e quen me está tocando o /etc/resolv.conf e como solucionalo.
Este artigo vai dirixido a entornos onde se usa a consola, xa que cando temos unha interface gráfica, polo xeral nas opcións de rede podemos poñer o DNS que queiramos sen problema ningún.
[Leer máis]
Roubando sesións de sudo con ptrace
Boas xentiña.
Hoxe traiovos unha vella técnica ca que estiven fuchicando estes días. Trátase dun ataque para obter sudo se outra persoa que estea conectada na mesma máquina ca mesma usuaria ca nos o ten desbloqueado. Esta técnica xa foi documentada por nongiach no seu repo sudo_inject. Sen embargo, na súa implementación requirense varios ficheiros e dependencias para o ataque, polo que para simplificalo, e tamén aprender sobre esta técnica, desenvolvín a ferramenta sudohunt.
[Leer máis]
PUME: unha ferramenta para mutar código Python
Neste artigo explicarase que é e como funciona a ferramenta PUME (Python Universal Mutation Engine), dando tamén algún exemplo de uso para que se vexa ata onde chega.
Introdución PUME é unha ferramenta que modifica aleatoriamente o código fonte dun script ou programa feito en Python sen cambiar a funcionalidade do programa orixinal. Isto conséguese principalmente facendo modificacións sobre a Árbore Sintáctica Abstracta (AST polas súas siglas en inglés) do programa.
[Leer máis]
Wardriving coa Raspi no 2023
Dando unha volta polos wifis do lugar
Intro Boas xente, nesta entrada imos a revisar unha vella técnica de seguridade de redes wifi, o wardriving. O wardriving consiste en localizar redes wifis dentro dun lugar, que pode ser unha rúa ou unha cidade.
Para iso imos precisar certo equipo. Por unha parte, unha antena wifi para capturar o sinal dos puntos de acceso (aka routers), e pola outra un dispositivo GPS que nos axude a recoller a localización dende onde estamos capturando o sinal.
[Leer máis]
Profiling visual para Python
Boas, xente.
Hoxe veño cun exemplo práctico de como podemos analizar os nosos programas de Python para atopar facilmente pescozos de botella.
Fálase moito de como as optimizacións non se deben facer a cegas, senón que hai que medir que partes dun programa son as problemáticas para conseguir mellorar a execución do código de xeito eficiente. Hoxe veremos como facelo de forma cómoda e práctica.
Gráficos de lapas (Flame Graphs) Hai moitos xeitos de medir e visualizar o comportamento dunha aplicación, pero persoalmente o que máis cómodo me parece é a técnica dos Gráficos de lapas (Flame Graphs) descrito por Brendan Gregg.
[Leer máis]
Reversing con carraxe
Sacando contrasinais con angr
Boas xente,
Estes dias andei cacharreando con angr e aprendendo un pouco sobre execución simbólica.
Que diaños é angr? E a execución simbólica? angr é unha ferramenta para análise dinámico de programas. Concretamente é un emulador que executa o programa aplicando execución simbólica. Deste xeito podemos só executar a parte do programa que nos interesa e non todo o programa.
A execución simbólica ven sendo executar o programa ou unha parte del para coñecer que valor precisamos nun símbolo (algo parecido a unha variábel) para podermos chegar dunha parte ou estado do programa a outro.
[Leer máis]
Contas rápidas no terminal
Boas, xente.
A semana pasada pasei por un comentario en HN do 2019. O usuario estaba experimentando cuns script pra facer algunhas contas directamente no terminal bash.
TLDR: Clica aquí pra saltar a historia e ir directamente ao código.
O que o usuario propoñía era usar algo coma isto, baseado no comando dc (os comentarios son meus).
$ . calc.sh # Cargar funcións $ * 4 5 # Multiplica 4 e 5 20 $ / 21 3 # Divide 21 por 3 7 Isto soaba interesante.
[Leer máis]
Usando libfuzzer en proxectos compilados con autotools
Boas xente.
Estes días estiven xogando con libfuzzer, unha ferramenta incorporada no compilador clang que nos permite fuzzear un programa que se compile con clang. O fuzzing é pasarlle datos (pseudo-)aleatorios a un programa e ver se casca.
Para facer isto con libfuzzer, tes que definir no programa unha función chamada LLVMFuzzerTestOneInput que acepte un buffer de bytes que libfuzzer invocará en repetidamente en bucle pasando diferentes datos.
[Leer máis]