Este contêiner executa um servidor da Web que serve um navegador Firefox real quando você navega para ele. Sob o capô, o recipiente está executando o XRDP sobre o guacamole do Apache para servir a janela do Firefox.

Este projeto foi inspirado nesta postagem do blog. A criação de Ivonet é muito legal, mas pensei em construir o meu e acrescentar algumas melhorias. Primeiro, atualizei a imagem do Guacamole do Apache para uma mais atual. Então eu troquei o navegador para o Firefox e descobri como as extensões de desmembramento, para que elas já sejam assadas no navegador quando você constrói a imagem. Por fim, criei um filtro da lista de permissões seccomp para maior segurança.
Esta construção inclui o Firefox e a extensão PIA VPN. O Dockerfile também comentou linhas para origem Ublock, DecentRaleyes e Privacy Badger. Eles foram comentados para ajudar na estabilidade, mas você pode facilmente descomentá -los para atender às suas necessidades.
Esta imagem é publicada no Docker Hub e você pode executá -la com o comando:
$ docker run -d --rm --shm-size=1G -p 8080:8080 --name foxception lawndoc/foxception:latest
É importante incluir todos os sinalizadores para que este contêiner do Docker funcione e feche corretamente. Eu recomendo que você leia todas as bandeiras que estão sendo usadas e o que elas significam (veja uma nota importante abaixo).
Você pode executar esta imagem com um filtro Seccomp para minimizar os syscalls permitidos do contêiner em caso de exploração bem -sucedida. Para fazer isso, você clara esse repositório, cria uma imagem com o script fornecido e executa com o filtro Seccomp fornecido:
$ git clone https://github.com/lawndoc/foxception.git
$ cd foxception
$ ./build.sh
$ sudo docker run -d --shm-size=1G -p 8080:8080 --security-opt seccomp=foxception_seccomp.json --name foxception lawndoc/foxception:latest
O filtro Seccomp foi feito com esta ferramenta que registra todos os syscalls feitos no kernel e, em seguida, gera um filtro Seccomp quando você interrompe o contêiner. O filtro fornecido permite apenas os syscalls necessários para que este contêiner funcione como se destinava. Eu recomendo usar o filtro Seccomp porque não fiz nenhum tipo de análise de vulnerabilidade neste serviço (veja uma nota importante abaixo).
Além disso, lembre -se de que, se você modificar demais o contêiner, poderá exigir syscalls adicionais que não estiverem na lista de permissões pelo filtro Seccomp fornecido. Nesse cenário, você pode usar a ferramenta mencionada acima para gerar um novo filtro.
Para escolher suas próprias extensões padrão, você precisa adicionar o arquivo xpi ao diretório/usr/share/mozilla/extensio
O arquivo deve ser nomeado <pp ID> .xpi, onde <sp ID> é o ID do aplicativo do complemento. Por exemplo, {EC8030F7-C20A-464F-9B0E-13A3A9E97384} é o ID do aplicativo do Firefox e é o nome do diretório para o qual você deve adicionar os arquivos XPI. Você pode encontrar o ID do aplicativo/extensão de qualquer complemento que você já possui ao: Depuração no navegador Firefox local.
Para baixar uma extensão, basta fazer um cacho como no Dockerfile. Você pode obter o URL de download do arquivo xpi do complemento, acessando o site do Firefox e pairando ou clicando com o botão direito do mouse no botão "Adicionar ao Firefox".
Dependendo da sua configuração, este navegador pode ser exposto à Internet. Como está sendo executado em sua rede, qualquer coisa que seja feita no navegador será vinculada à rede host. Portanto, certifique -se de saber de onde é acessível e controlar o acesso com firewalls, htpasswd, etc ... Além disso, eu não realizei nenhuma análise de vulnerabilidade nesse contêiner; portanto, muito bem, pode ser capaz de fazer as coisas que não se pretendia fazer. Por esse motivo, você também deve executar este contêiner com o filtro Seccomp fornecido, conforme instruído acima.