SSH, Public Key Login
SSH에 대해 생각해보자. 구글에 검색한 정보를 모으면 SSH를 다음과 같이 정리할 수 있다.
"SSH(Secure Shell Protocol) 네트워크 상의 다른 컴퓨터의 로그인하거나 원격 시스템에서 명령을 실행 가능, 통신을 할 때 안전한 통신을 하기 위해 사용되는 프로토콜"
사실 ssh에 대해서는 깊이 고민해보진 않았다. 적당히 telnet, rlogin, rsh 와 같은 것들을 사용할 때 보다 안전한 통신을 위해 사용한다 정도로 알고 있었다. 이 SSH Public Key Login을 통해 일반 사용자의 계정으로 "패스워드" 없이 로그인이 가능하다는 점을 정리하고 싶어 포스팅해둔다.
실험 환경은 최근에 포스팅했던 TryHackMe의 Chill Hack Machine에서 테스트했다.
How it Works?
일단 가정을 해보자 여차저차해서 다음과 같이 Reverse Connection에 성공했다.
나타나 있는 것처럼 계정이 www-data이며 이는 시스템에서 로그인에 쓰이는 계정 이름은 아닐 것이다. 리눅스에서 /home 밑에는 유저 디렉터리가 존재한다. 이 위치에서는 현재 시스템에서 로그인 가능한 계정의 정보를 얻을 수 있다. (꼭 그런 것만은 아니지만..)
SSH PublicKey Login을 테스트해 볼 계정은 위의 두 가지이다. 우선 ssh 정보를 담고 있는. ssh에 디렉터리 접근 가능한지 확인해보자.
하나는 denied 당했고 다른 하나는 이동이 가능했다 apaar 계정으로 SSH public Key Login이 가능한 계정은 apaar이다. 우선 Victim이 아닌 로컬에서 다음과 같이 ssh 키 쌍을 생성하자
ssh-keygen 명령어로 생성된 파일은 두 가지가 있다.
# Private Key
1. apaar
# Public Key
2. apaar.pub
뒤에 .pub 가 붙은 파일의 내용을 /home/apaar/. ssh의 authorized_keys에 내용 덮어 씌우자.하지만 권한이 없으므로 authorized_keys에 내용을 덮어씌울순 없다. jakpentest.tistory.com/73?category=846041 이 항목을 참조해 apaar로 USER Escalate를 수행한 후 시도하자.
그래서 뭐가 다른가?
서두에서 패스워드 없이 로그인이 가능하다는 점 이라는 것을 언급했다. 비교해보자 우선 기본적인 ssh를 통해 로그인해보자.
보이는 것과 같이 apaar의 패스워드를 요구하는 중이다. 다음은 공개키를 authorzied_keys에 덮어 씌우고 로그인한 경우이다.
패스워드 입력 없이 로그인에 성공할 수 있었으며 로그인에 사용된 파일은 개인키 파일이다.
'Pentest > Methodology' 카테고리의 다른 글
[TIL] Port Knocking (0) | 2021.12.12 |
---|---|
RustScan : The Modern Port Scanner? (0) | 2020.11.07 |
sha512 Dictionary attack (with John) (0) | 2020.09.28 |
Hydra & NSE 커맨드 팁 (0) | 2020.09.28 |