bom galera nesse tutorial vamos aprender um pouco sobre a ferramenta sysdig que nos permite monitorar eventos do sistema a nivel do kernel, para começar a gente baixa ela pelo repositorio da distro no meu caso usando o apt-get ou baixamos o pacote depededo da distro (e sim formatei o sistema deu pau no HD =/ , natal ta chegando quem quiser doar um HD to aceitando presentes kkkk )
se a gente digitar apenas sysdig ele vai nos listar todas as informação de eventos de leitura, escrita, os arquivos abertos, comunicação sendo enviada ou recebida e etc.
podemos filtrar um processo especifico pelo seu nome usando o argumeto proc.name
da mesma forma podemos fazer o mesmo pelo pid com o argumento proc.pid
tambem podemos filtrar todos os processos que foram executado em um diretorio especifico usando proc.cwd
os processos pelo executavel em disco com o parametro proc.exe
podemos filtrar apenas os descritores com o argumento fd.num, exemplo seria o stdout que é o numero 1
ou pelo tipo do descritor se ele é um arquivo (file), se é um socket ipv4 ou ipv6 (ipv4/ipv6), um socket unix (unix), um evento ou um sinal (event/signal), ou ate mesmo um pipe (pipe). para isso usamos o parametro fd.type
é possivel pegar os descritores que contem um IP especifico com o paramentro fd.ip
para filtrar apenas o IP de destino usamos o parametro fd.rip
com o parametro fd.lip filtramos apenas o IP de origem
temos o parametro fd.port para filtrar uma porta especifica
da mesma forma que o IP podemos usar o fd.rport para filtrar apenas a porta de destino
ou o fd.lport para filtrar apenas aquela porta de origem
é possivel filtrar ate mesmo por rede usando fd.net
para a gente filtrar pelo nome do usuario usamos user.name
o mesmo pode ser feito pelo id do usuario com o parametro user.uid
pelo nome do grupo com parametro group.name
ou ate pelo id do grupo com o parametro group.gid
é possivel filtrar eventos do syslog com o parametro syslog.serverity.str seguido do tipo de evento (emerg, alert, crit, err, warn, notice, info, debug)
tambem podemos filtrar tipos de eventos especificos como write, read, open, close, select, poll, mmap, sendmsg, recvmsg entre outros com o parametro evt.type
tambem é possivel filtar por categoria com o parametro evt.category, para especificar eventos de arquivos usamos file, para memoria o memory e para a rede usamos o net
o sysdig tambem existem filtros especificos para docker como o container.id que filtra pelo id dos containers
tambem podemos filtrar pelo nome da image do docker
bom galera existem outros parametros que podemos especificar para filtragem, para exibir todos eles usamos o parametro -l
tambem podemos filtrar mais de um parametro ao mesmo tempo usando o "and" indicando a logica E entre os parametros especificados ou seja todos os parametros devem ser satisfeitos para ser filtrado, um exemplo seria filtrar o evento write do usuario kodo no processo Discord
o mesmo pode ser feito com o "or" que seria equivalente a logica OR entre os parametros, um exemplo disso seria filtra o usario kodo ou o usuario root
da mesma forma podemos usar o not para a negação com isso a logica é invertida, um exemplo seria filtrar qualquer usuario que nao seja o kodo
podemos salvar toda a captura em um arquivo usando o parametro -w seguido do nome do arquivo
para a gente ler esse arquivo usamos o parametro -r
alem de filtrar o conteudo podemos exibir uma saida formatada com parametros especificos, para isso usamos o -p seguido de uma string de formatação (usamos o sinal de porcentagem seguido do parametro para exibir ele). um exemplo seria exibir o nome do processo, o pid dele, os IPs e portas de origem e de destino
bom galera esse tutorial não termina aqui, vou fazer a segunda parte dele falando sobre chisels, então ate a proxima parte \o
by kodo no kami
- Código:
sudo apt-get install sysdig
se a gente digitar apenas sysdig ele vai nos listar todas as informação de eventos de leitura, escrita, os arquivos abertos, comunicação sendo enviada ou recebida e etc.
- Código:
sudo sysdig
podemos filtrar um processo especifico pelo seu nome usando o argumeto proc.name
- Código:
sudo sysdig proc.name="Discord"
da mesma forma podemos fazer o mesmo pelo pid com o argumento proc.pid
- Código:
sudo sysdig proc.pid=8147
tambem podemos filtrar todos os processos que foram executado em um diretorio especifico usando proc.cwd
- Código:
sudo sysdig proc.cwd="/home/kodo/Desktop/"
os processos pelo executavel em disco com o parametro proc.exe
- Código:
sudo sysdig proc.exe="/usr/sbin/apache2"
podemos filtrar apenas os descritores com o argumento fd.num, exemplo seria o stdout que é o numero 1
- Código:
sudo sysdig fd.num=1
ou pelo tipo do descritor se ele é um arquivo (file), se é um socket ipv4 ou ipv6 (ipv4/ipv6), um socket unix (unix), um evento ou um sinal (event/signal), ou ate mesmo um pipe (pipe). para isso usamos o parametro fd.type
- Código:
sudo sysdig fd.type="ipv6"
é possivel pegar os descritores que contem um IP especifico com o paramentro fd.ip
- Código:
sudo sysdig fd.ip=8.8.8.8
para filtrar apenas o IP de destino usamos o parametro fd.rip
- Código:
sudo sysdig fd.rip=8.8.8.8
com o parametro fd.lip filtramos apenas o IP de origem
- Código:
sudo sysdig fd.lip=192.168.1.1
temos o parametro fd.port para filtrar uma porta especifica
- Código:
sudo sysdig fd.port=22
da mesma forma que o IP podemos usar o fd.rport para filtrar apenas a porta de destino
- Código:
sudo sysdig fd.rport=22
ou o fd.lport para filtrar apenas aquela porta de origem
- Código:
sudo sysdig fd.lport=33814
é possivel filtrar ate mesmo por rede usando fd.net
- Código:
sudo sysdig fd.net="192.168.1.0/24"
para a gente filtrar pelo nome do usuario usamos user.name
- Código:
sudo sysdig user.name="kodo"
o mesmo pode ser feito pelo id do usuario com o parametro user.uid
- Código:
sudo sysdig user.uid=1000
pelo nome do grupo com parametro group.name
- Código:
sudo sysdig group.name="root"
ou ate pelo id do grupo com o parametro group.gid
- Código:
sudo sysdig group.id=0
é possivel filtrar eventos do syslog com o parametro syslog.serverity.str seguido do tipo de evento (emerg, alert, crit, err, warn, notice, info, debug)
- Código:
sudo sysdig syslog.severity.str="info"
tambem podemos filtrar tipos de eventos especificos como write, read, open, close, select, poll, mmap, sendmsg, recvmsg entre outros com o parametro evt.type
- Código:
sudo sysdig evt.type="open"
tambem é possivel filtar por categoria com o parametro evt.category, para especificar eventos de arquivos usamos file, para memoria o memory e para a rede usamos o net
- Código:
sudo sysdig evt.category="net"
o sysdig tambem existem filtros especificos para docker como o container.id que filtra pelo id dos containers
- Código:
sudo sysdig container.id=c4491982de4a
tambem podemos filtrar pelo nome da image do docker
- Código:
sudo sysdig container.image="kalilinux/kali-linux-docker"
bom galera existem outros parametros que podemos especificar para filtragem, para exibir todos eles usamos o parametro -l
- Código:
sysdig -l
tambem podemos filtrar mais de um parametro ao mesmo tempo usando o "and" indicando a logica E entre os parametros especificados ou seja todos os parametros devem ser satisfeitos para ser filtrado, um exemplo seria filtrar o evento write do usuario kodo no processo Discord
- Código:
sudo sysdig user.name="kodo" and proc.name="Discord" and evt.type="write"
o mesmo pode ser feito com o "or" que seria equivalente a logica OR entre os parametros, um exemplo disso seria filtra o usario kodo ou o usuario root
- Código:
sudo sysdig user.name=kodo or user.name=root
da mesma forma podemos usar o not para a negação com isso a logica é invertida, um exemplo seria filtrar qualquer usuario que nao seja o kodo
- Código:
sudo sysdig not user.name=kodo
podemos salvar toda a captura em um arquivo usando o parametro -w seguido do nome do arquivo
- Código:
sudo sysdig -w kodo.scap
para a gente ler esse arquivo usamos o parametro -r
- Código:
sudo sysdig -r kodo.scap
alem de filtrar o conteudo podemos exibir uma saida formatada com parametros especificos, para isso usamos o -p seguido de uma string de formatação (usamos o sinal de porcentagem seguido do parametro para exibir ele). um exemplo seria exibir o nome do processo, o pid dele, os IPs e portas de origem e de destino
- Código:
sudo sysdig -p "%proc.name (%proc.pid) = %fd.lip:%fd.lport -> %fd.rip:%fd.rport"
bom galera esse tutorial não termina aqui, vou fazer a segunda parte dele falando sobre chisels, então ate a proxima parte \o
by kodo no kami