이 글은 교육목적으로 작성하는 것으로 절대 타인의 컴퓨터에 공격을 해서는 안됩니다.
범죄 행위이고 처벌을 받을 수 있습니다.
모든 해킹 행위는 자기 자신에게 책임이 있습니다.
제 블로그는 불법적인 해킹 행위를 권장하거나 유도하지 않습니다. 오로지 테스트 및 연습 목적으로 읽어주시면 감사하겠습니다.
일반적으로 운영체제에서 비밀번호는 암호화되어 저장이 됩니다.
이때 저장 되는 비밀번호 파일을 이용하여 해독해보겠습니다.
패스워드 저장 위치
유닉스/리눅스 서버 시스템: etc/passwd, etc/shadow
윈도우 시스템: C:/Windows/System32/config/SMA
vim /etc/shadow
칼리 리눅스의 shadow 파일을 보면 다음과 같이 패스워드가 암호화되어 저장되어 있는 것을 볼 수 있다.
unshadow /etc/shadow /etc/passwd > /tmp/password.txt
unshadow 명령어를 사용하여 /etc/shadow 와 /etc/passwd 파일에 있는 패스워드를 /tmp/password.txt에 저장을 하는 명령어입니다.
vim /tmp/password.txt
패스워드가 암호화되어 저장되어 있는것을 확인할 수 있습니다.
john --list=formats
이제 jhon the ripper에서는 여러 포맷을 지원하고 있음을 확인할 수 있다.
john --format=crypt /tmp/password.txt
다음 명령어를 실행하면 우리가 추출한 패스워드 파일에 저장된 해쉬값을 분석하여 패스워드 값을 알려줍니다.
root의 비밀번호가 123456이라고 나오는 것을 볼 수 있습니다.
크랙 패스워드를 보려면 --show 옵션을 주면 됩니다.
cat /root/.john/john.pot
john.pot 파일에는 크랙 된 파일은 별도의 해쉬 패스워드들에 대해 로딩 없이 다음번에 사용할 때 재사용됩니다.
리눅스 시스템 침투 및 비밀번호 해독
samba 취약점 중에 2007-05-14에 폭로된 삼바 커맨드 취약점을 이용해 침투해보도록 하겠습니다.
침투할 서버는 이전에 사용했던 메타스플로잇터블 서버를 사용하겠습니다.
exploit의 -z 옵션으로 바로 견결하지 않고 세션으로 남겨 놓았으며, -j 옵션으로 exploit 명령을 백그라운드에 동작하게 해 놓았습니다.
이제 sessions -l 명령어를 통해 세션이 연결되어 있음을 확인할 수 있습니다.
이제 Type Shell cmd/unix를 meterpreter 쉘로 업그레이드하였습니다.
sessions -l 명령어를 통해 연결되어 있는 세션 리스트를 보면 Type이 meterpreter로 새롭게 세션이 추가되어 있는 것을 볼 수 있습니다.
이제 해당 세션을 통해 meterpreter 쉘로 연결을 하였으니, 패스워드를 탈취해보도록 하겠습니다.
gather 에는 정보 수집을 할 수 있는 도구들이 있는데 그중에 hashdump를 이용해 해당 시스템에 있는 hash 값들을 파일로 내보낼 수 있습니다.
칼리 리눅스에 터미널을 하나 더 띄워서 살펴보면, hashdump로 생긴 파일이 존재하는 것을 확인할 수 있습니다.
이제 이를 이용해서 크랙을 추출해 보겠습니다.
john --format=crypt 추출한 hashdump이름
john을 이용해서 크랙킹 된 비밀번호와 아이디들을 볼 수 있습니다.
john의 --show 옵션을 통해 보면 root 계정인 경우 비밀번호: 1234, msfadmin 계정인 비밀번호: msfadmin 인 것을 확인할 수 있습니다.
윈도우 시스템 침투 및 비밀번호 해독
search ms03_026_dcom은 2003-07-16에 26번째로 발견된 취약점입니다. 이 취약점을 이용해서 침투해보도록 하겠습니다.
https://epicarts.tistory.com/54
해당 공격은 reverse TCP로 연결하고, meterpreter 쉘로 연결하기 때문에 쉘 업그레이드는 필요가 없습니다.
이제 해당 세션을 통해 패스워드를 탈취해보도록 하겠습니다.
run post/windows/gather/hashdump
다음과 침투한 윈도우의 hash 값들을 볼 수 있습니다.
creds
msfconsole에서 creds를 치면 수집한 hash 값들을 볼 수도 있습니다.
db_export -f pwdump /root/windows_passwords.txt
db_export를 통해 패스워드 파일을 /root 경로에 windows_passwords.txt 파일로 저장해 주겠습니다.
필요한 건 administrator 이므로 굳이 알 필요 없는 계정은 지워주겠습니다.
john --format=lm windows_passwords.msf
윈도우는 LM 해쉬를 사용하므로 포맷 옵션으로 lm을 주어야 합니다.
--show 옵션을 통해 추출된 파일을 보면 administrator 계정의 패스워드를 다시 한번 더 볼 수 있습니다.
'전공 공부 > 리눅스 보안 실습' 카테고리의 다른 글
피싱, 파밍 사이트 만들기 (14) | 2019.11.08 |
---|---|
웹 취약점 디렉토리 이동 공격, 파일 업로드 공격(DVWA) (0) | 2019.11.08 |
중간 정리 (0) | 2019.10.23 |
윈도우 기반의 운영체제 침투하기(윈도우 2000 sever) (0) | 2019.10.17 |
Spoofing(스푸핑), Sniffing(스니핑) - 칼리리눅스 (0) | 2019.10.16 |