> For the complete documentation index, see [llms.txt](https://mysther.gitbook.io/knowledge-base/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mysther.gitbook.io/knowledge-base/sistemas-operacionais/linux/limpeza-de-logs.md).

# Limpeza de Logs

### Arquivos de Log

| ARQUIVO                       | DESCRIÇÃO                                                           |
| ----------------------------- | ------------------------------------------------------------------- |
| `/var/logs`                   | Diretório onde pode encontrar diversos tipos de Logs                |
| `/var/log/auth.log`           | Logs de falha e sucesso de autenticações em serviços SSH, sudo, etc |
| `/var/log/syslog`             | Todos os logs que o SysLog registra                                 |
| `/var/log/messages`           | Mensagens                                                           |
| `/var/log/apache2/access.log` | Log de acesso do Apache                                             |
| `/var/log/apache2/error.log`  | Log de erros do Apache                                              |

### Limpando Logs

Para limpar logs, geralmente é preciso ter privilégios root. Abaixo segue um comando para remover todos os logs que contém determinado IP

```bash
grep -v '<ip>' </path/to/access_log> > a && mv a </path/to/access_log>
```

**OBS.:** Atente-se ao `.` (ponto) no IP, pois o `grep` pode tratar esse ponto como uma expressão regular

### Lendo Logs

Alguns logs são salvos como binários e não como arquivos de texto. O que pode dificultar um pouco o manuseio dos mesmos. Para ler esses arquivos, não utilize `cat`, mas sim comandos como: `who`, `last` e `lastlog`

```bash
who /var/log/wtmp
```

### Limpando Histórico de Comandos

Por padrão o arquivo que armazena o histórico de comandos é o `~/.bash_history`, porém este pode ser alterado. Verifique nas variáveis de ambiente com o comando `echo $HISTFILE` para saber onde esse arquivo se localiza.\
Agora para limpar o histórico, basta executar o comando abaixo:

```bash
cat /dev/null > ~/.bash_history
# ou
cat /dev/null > `echo $HISTFILE`
```

{% hint style="info" %}
Caso queira que o SO não armazene mais histórico de comandos, execute o comando `export HISTSIZE=0`
{% endhint %}

### Removendo Arquivos de Maneira Segura

Desse modo, não irá deixar rastros

```bash
shred -zu <file>
```

### Meterpreter

Quando estiver com acesso ao Meterpreter, execute:

```bash
irb
log = client.sys.eventlog.open('system')
log.clear
```

### BadAttachK

Caso não tenha o BadAttack compilado, entre no diretório onde está o arquivo `badattachk-0.3r2.c` e digite:

```bash
gcc -Wall -D_DEBUG badattachk-0.3r2.c -o badattach
```

Agora para limpar os logs do seu usuário em `/var/log/auth.log`, digite:

```bash
./badattach 'ps -C syslogd -o pid='
```

**OBS.:** Caso dê erro, troque o `'` por `´`

### Limpando um USB Contra Rastros

Primeiro verifique a partição do USB com um dos comando abaixo:

```bash
dmesg
tail -f /var/log/syslog
```

### Removendo Logs de Usuário

Execute o seguinte comando para remover Logs de determinado usuário em `/var/log/wtmp`:

```bash
./logcleaner-ng -w /var/log/wtmp -u <usuario> -r root
```

Desmonte o USB com `sudo umount /dev/<partition>`, que geralmente é um `sda`.\
Agora vamos escrever "zeros" no USB com o comando

```bash
sudo dd if=/dev/zero of=/dev/<partition> bs=1k count=2048 status=progress
```

Depois escrevemos um novo sistema de arquivos no dispositivo

```bash
sudo mkfs.ext4 -L "NameOfVolume" /dev/<partition>
```

**OBS.:** Utilize `ntfs` ou `vfat` para trabalhar futuramente com Windows
