https://velog.io/@jjs9366/HTB-Support
쥬스몬님, 0xMH님 블로그 참고 참고
AD 환경에서 문제 풀이를 경험삼아 진행하고자 VIP (Month, 20달러) 로 결제 후 Pwnbox로 접근을 시도하였다.
오른쪽 상단 위에 Pwnbox 커넥션이 있으니 참고하여 고고~
(문제 난이도 Easy)
문제 진행중에 당황한 부분이 있는데, 노트북 성능이 떨어질 경우 굉장히 느리다는 점이다.
(무조건 성능 좋은 PC나 노트북으로 진행 하십시오.) (그래야 정신 건강에 좋음)
Domain Controller로 보이는 환경 (Port Scan)
nmap -sC -sV -Pn 10.129.160.19(점검 대상)
dig any support.htb 10.129.160.19
support.htb, dc.support.htb 확인
SMB 익명 로그인 가능
crackmapexec smb 10.129.160.19
SMB 공유 디렉토리 목록 (익명 로그인 옵션 -N)
smbclient -L \\\\10.129.160.19\\
support-tools 확인
smbclient \\\\10.129.160.19\\support-tools
dir 명령어
.Net Assemly 32bit PE 확인
로컬 환경으로 해당 파일 옮겨서 ExeInfo 정보 확인
Dnspy 사용 시 아래 내용 확인 가능(UserInfo.exe)
아래 소스는 쥬스몬님 블로그 내 GO Lang 참고 참고
package main
import (
"encoding/base64"
"fmt"
)
type Protected struct{}
func (p *Protected) getPassword() string {
encPassword := "0Nv32PTwgYjzg9/8j5TbmvPd3e7WhtWWyuPsyO76/Y+U193E"
key := []byte("armando")
decoded, _ := base64.StdEncoding.DecodeString(encPassword)
decrypted := make([]byte, len(decoded))
for i := 0; i < len(decoded); i++ {
decrypted[i] = decoded[i] ^ key[i%len(key)] ^ 223
}
return string(decrypted)
}
func main() {
p := Protected{}
password := p.getPassword()
fmt.Println(password)
}
python Code verison
import base64
from itertools import cycle
enc_password = base64.b64decode("0Nv32PTwgYjzg9/8j5TbmvPd3e7WhtWWyuPsyO76/Y+U193E")
key = b"armando"
key2 = 223
res = ''
for e,k in zip(enc_password, cycle(key)):
res += chr(e ^ k ^ key2)
print(res)
이제 슬슬 뭔가 잘 안되기 시작하네.. 이젠 익숙하구만
일단 퀵하게 root passwd 변경
sudo passwd root
새로운 패스워드 변경
패스워드 확인 입력(동일)
su root
변경된 패스워드 입력
root 권한 접근 후 아래 내용 참고하여 정상적으로 실행이 불가한 파일부터 하나씩 설치
# 칼리 리눅스
apt update -y
apt install bloodhound -y
neo4j console
# http://localhost:7474 방문 후 neo4j:neo4j 를 이용해 로그인.
# 이후, 비밀번호를 바꿔줌.
# 블러드하운드 실행 후 neo4j:<바뀐-비밀번호>로 로그인
bloodhound