
Dê a essas capturas de tela um olho rápido.
O Eyeballler destina-se a testes de penetração de rede de grande porte, onde você precisa encontrar metas "interessantes" de um enorme conjunto de hosts baseados na Web. Vá em frente e use sua ferramenta de captura de tela favorita como Normal (testemunha ocular ou Gowitness) e depois passe -as pelo olho do olho para lhe dizer o que provavelmente conterá vulnerabilidades e o que não é.
Experimente ao vivo em: https://eyeballer.bishopfox.com
| Sites de aparência antiga | Páginas de login |
|---|---|
![]() | ![]() |
| WebApp | 404 personalizados |
|---|---|
![]() | ![]() |
| Domínios estacionados |
|---|
![]() |
Sites de aparência antiga quadros em quadras, CSS quebrados, que certos "je ne sais quoi" de um site que parece ter sido projetado no início dos anos 2000. Você sabe quando vê. Sites antigos não são apenas feios, também são tipicamente super vulneráveis. Quando você deseja invadir algo, esses sites são uma mina de ouro.
Páginas de login As páginas de login são valiosas para o teste de caneta, elas indicam que há funcionalidades adicionais às quais você não tem acesso atualmente. Isso também significa que há um simples processo de acompanhamento de ataques de enumeração de credenciais. Você pode pensar que pode definir uma heurística simples para encontrar páginas de login, mas na prática é realmente difícil. Os sites modernos não usam apenas uma tag de entrada simples para a qual podemos grep.
O WebApp diz que há um grupo maior de páginas e funcionalidades disponíveis aqui que podem servir como área de superfície para atacar. Isso contrasta com uma página de login simples, sem outra funcionalidade. Ou uma página de destino padrão do IIS que não possui outra funcionalidade. Este rótulo deve indicar a você que existe um aplicativo da Web aqui para atacar.
404 sites modernos adoram ter 404 páginas personalizadas com fotos de robôs quebrados ou cães de aparência triste. Infelizmente, eles também gostam de devolver os códigos de resposta HTTP 200 enquanto o fazem. Mais frequentemente, a página "404" nem sequer contém o texto "404". Essas páginas são tipicamente desinteressantes, apesar de ter muita coisa visualmente, e os olhos podem ajudá -lo a peneirar.
Os domínios estacionados estacionados são sites que parecem reais, mas não são superficiais de ataque válidos. São páginas de independência, geralmente desprovidas de qualquer funcionalidade real, consistem quase inteiramente em anúncios e geralmente não são executadas pelo nosso alvo real. É o que você obtém quando o domínio especificado está errado ou cadrado. Encontrar essas páginas e removê -las do escopo é realmente valioso ao longo do tempo.
Faça o download dos pacotes necessários no PIP:
sudo pip3 install -r requirements.txt
Ou se você quiser suporte à GPU:
sudo pip3 install -r requirements-gpu.txt
Nota : A configuração de uma GPU para uso com o TensorFlow está muito além do escopo deste ReadMe. Há compatibilidade de hardware a considerar, os drivers para instalar ... há muito. Então você só terá que descobrir essa parte por conta própria, se quiser uma GPU. Mas pelo menos da perspectiva do pacote Python, o arquivo de requisitos acima o abordou.
Pesos pré -tenhados
Para os pesos mais recentes, confira os lançamentos aqui no Github.
Dados de treinamento Você pode encontrar nossos dados de treinamento aqui:
https://www.kaggle.com/altf42600/pentest-screensots
Há duas coisas que você precisa dos dados de treinamento:
images/ pasta, contendo todas as capturas de tela (redimensionado para 224x224)labels.csv que tem todos os rótulosCopie ambos na raiz da árvore de código dos olhos.
Além disso, você pode encontrar um arquivo de pesos pré -terenciado que você pode usar imediatamente sem treinamento.
bishop-fox-pretrained-vN.h5 Está aqui no Github, observe a seção de releases para o mais recente.
Nota: Para obter melhores resultados, certifique -se de exibir seus sites em uma proporção de 1.6x nativa. Ou seja: 1440x900. O Eyeballler escalará a imagem automaticamente para o tamanho certo para você, mas se for a proporção errada, ela esmagará de uma maneira que afetará o desempenho da previsão.
Para os olhos algumas capturas de tela, basta executar o modo "prever":
eyeballer.py --weights YOUR_WEIGHTS.h5 predict YOUR_FILE.png
Ou para um diretório inteiro de arquivos:
eyeballer.py --weights YOUR_WEIGHTS.h5 predict PATH_TO/YOUR_FILES/
O Eyeballler cuspirá os resultados de volta para você em formato legível por humanos (arquivo results.html , para que você possa navegá -lo facilmente) e formato legível por máquina (arquivo results.csv ).
O desempenho do olho do olho é medido em relação a um conjunto de dados de avaliação, que representa 20% das capturas de tela gerais escolhidas aleatoriamente. Como essas capturas de tela nunca são usadas no treinamento, elas podem ser uma maneira eficaz de ver o desempenho do modelo. Aqui estão os resultados mais recentes:
| Precisão binária geral | 93,52% |
|---|---|
| Precisão tudo ou nada | 76,09% |
A precisão binária geral é provavelmente o que você acha da "precisão" do modelo. É a chance, dada a uma única etiqueta, de que está correta.
A precisão tudo ou nada é mais rigoroso. Para isso, consideramos todos os rótulos de uma imagem e consideramos uma falha se algum rótulo estiver errado. Essa classificação de precisão é a chance de o modelo prevê corretamente todos os rótulos para qualquer imagem.
| Rótulo | Precisão | Lembrar |
|---|---|---|
| 404 personalizado | 80,20% | 91,01% |
| Página de login | 86,41% | 88,47% |
| WebApp | 95,32% | 96,83% |
| Old Looking | 91,70% | 62,20% |
| Domínio estacionado | 70,99% | 66,43% |
Para uma explicação detalhada sobre precisão versus recall, consulte a Wikipedia.
Para treinar um novo modelo, execute:
eyeballer.py train
Você vai querer uma máquina com uma boa GPU para que isso funcione em um período de tempo razoável. Configurar isso está fora do escopo deste readme, no entanto.
Isso produzirá um novo arquivo de modelo (peso.h5 por padrão).
Você acabou de treinar um novo modelo, legal! Vamos ver como ele se apresenta contra algumas imagens que nunca foi visto antes, em várias métricas:
eyeballer.py --weights YOUR_WEIGHTS.h5 evaluate
A saída descreverá a precisão do modelo em recall e precisão para cada um dos rótulos do programa. (Incluindo "Nenhum dos acima" como pseudo-label)