Recentemente, o VPNBook começou a publicar uma senha em vez de texto sem formatação como uma imagem. "Bem, como assim", pensei, e comecei a procurar maneiras de resolver esse problema. Reconhecemos a senha da "imagem" VPNBook em PHP. E, claro, um script para Mikrotik.
Durante muito tempo, configurei um túnel PPTP VPN automático gratuito a partir do VPNBook.com no meu roteador (Mikrotik) e o usei com sucesso até recentemente. Não vou entrar em detalhes, eles estão descritos no artigo "
Configurando o recebimento automático de uma senha para VPN no Mikrotik ". Antes do problema, a senha do VPNBook poderia simplesmente ser extraída da página html, por exemplo, assim:
preg_match('/Password: <strong>([^<]+)/', $homepage, $matches); print($matches[1])
E, mais recentemente, a senha se tornou uma "imagem". E o primeiro pensamento foi usar o reconhecimento óptico de texto. Comecei a experimentar os serviços de OCR online e offline, que reconheciam a senha.
Dirijo meus cumprimentos a Winand , com quem nos correspondemos sobre esse assunto. Em geral, o último OCR com o qual eu mexi foi o Tesseract, que fora da caixa determinava a senha, mas com erros. Mas ele pode aprender novas fontes, o que eu ia fazer. Quando escolhi uma fonte que parecia uma “fonte de imagem”, surgiu a ideia de que era algo simples, embora parecesse um teminal do Windows ou uma fonte terminal do Linux. E pronto - acabou sendo apenas uma fonte PHP embutida com número (tamanho) 5. Em seguida, abandonei o OCR e escrevi um script PHP que procura por caracteres da senha "picture" no dicionário gerado. Um dicionário é um conjunto de imagens de possíveis caracteres de senha da mesma cor e tamanho. A pesquisa é feita por imagens correspondentes. Aqui está uma engenharia reversa tão simples. Presumo que a versão atual da imagem no VPNBook não dure muito, dada a sua primitividade.
Script Vpnbook.php
Sprite retorna uma string de senha.
<?php
Plano B. Senha do twitter
Com o prompt
vvsvic , estou
fornecendo uma implementação simples de um script alternativo para recuperar uma senha de um twitter do VPNBook (https://twitter.com/vpnbook/)
<?php function url_get_html($url) {
Script Mikrotik VPNBook
O script deve ser chamado a cada minuto no sheduler. O script monitora o status da conexão PPTP e, após a desconexão, chama todo o procedimento para solicitar uma nova senha, para que o Mikrotik não “tente inundar as tentativas de abrir a conexão por várias horas com a senha errada, e a reconexão seja feita em 1 minuto. Ele também monitora os erros de erro na busca e no arquivo para determinar com mais precisão que uma senha foi recebida.
Também recomendo adicionar a desconexão da interface PPTP para desconexão (evento on-down) no perfil PPP, para que a reconexão não seja inundada, mesmo dentro de 1 minuto.
Assim, o script principal dentro de 1 minuto, no caso de recebimento bem-sucedido de uma nova senha, aumentará a conexão pptp-out1.
add change-tcp-mss=yes name=VPNBook on-down=\ ":if (![/interface pptp-client get pptp-out1 disabled]) do={\r\ \n /interface pptp-client set pptp-out1 disabled=yes\r\ \n}" only-one=yes use-compression=yes use-encryption=required use-ipv6=no use-mpls=no use-upnp=no