[HACKING] Kali Live OS를 이용한 Windows, Linux 물리 접근 해킹

Live USB 를 이용한 물리적인 해킹 시 사용할만한 간단한 툴킷 하나 만드려고 하는김에 메모차원으로 포스팅 작성합니다.

원활한 이미지 캡쳐를 위해 전 가상환경에서 진행합니다. (타겟은 Windows7 중심으로.. )

시작하기 앞서 Windows VM에 Kali live CD를 넣어주고 CD 우선 부팅으로 칼리를 부팅합니다.

타겟 PC 드라이브 마운트

Live OS로 부팅하는 경우는 대게 로컬 패스워드를 풀거나 내부에 파일에 접근해서 빠르게 탈취하기 위해서 사용됩니다. 가장 우선적으로 진행될 작업은 대상 드라이브를 식별하고 마운트하는 일이죠.

fdisk 로 연결된 드라이브를 확인합니다.

#> fdisk -l

가상환경이라 몇개 없지만.. 실제론 어느정도 나올겁니다. 대게 뭐가 뭔지 정확히 파악이 안되면 걍 다 마운트하는것도 방법이죠.

#> mount /dev/sda1 /mnt

맨 아래 잘 마운트됬군요 :)

마운트된 디렉토리에서 원하는 데이터를 찾아가면 됩니다.

#> cd /mnt

이후부턴 개인 취향에 따라 Move

Windows Attack - Change windows password

글 초반부에도 이야기드렸듯이 Live OS로 부팅하는 이유에는 패스워드가 가장 큰 부분을 차지한다고 생각됩니다.

Windows의 경우 “Windows/System32/config 디렉토리 하위에 SAM 파일로 사용자의 정보를 보관합니다. 마치 Linux 에서 passwd, shadow 파일과 비슷한 역할을 수행하죠.

SAM에 대해서는 검색해보시면 많은 자료가 나올테구요. 왜 Live OS를 가지고 SAM 탈취를 시도하냐고 하면 윈도우 구동중엔 SAM 파일이 시스템에게 잡혀있어 접근이 불가능하기 떄문이죠. 물론 .. 구동중에도 SAM 자체를 얻는게 불가능한건 아니지만 이미 원격쉘을 가지고 있다는 가정이 붙어야하기 떄문에 물리적인 접근이 가능하다면 LiveOS 만한 방법이 없다고 생각되네요. (http://www.hahwul.com/2015/08/metasploit-metasploit-hashdump-password.html 참고)

일단 config 디렉토리로 이동합니다.

#> cd /mnt/Windows/System32/config

패스워드 변경은 chntpw 명령으로 쉽게 가능합니다. 먼저 -ㅣ 옵션을 통해 SAM 파일에 등록된 사용자를 보면… #> chntpw -l SAM

리스트로 확인이 가능하고, -u 옵션으로 사용자를 지정하여 패스워드를 변경할 수 있습니다.

#> chntpw -u [user-name] SAM

Live OS USB (VM에서 CD로..ㅋㅋ) 빼고 재부팅해서 로그인 시도해보면 잘 변경되어 있습니다.

물론 이 방법은 패스워드가 바뀌기 때문에 걸릴 확률이 굉장히 높아지지요(특히 사용하는 계정이라면)

Windows Attack - SAM file Dumping

그래서.. 패스워드 크랙을 우선적으로 시도합니다.

리눅스에서 아래처럼 shadow 파일을 passwd 파일로 풀어서 나온 hash를 크랙하듯이 윈도우도 비슷하게 진행합니다.

Linux

#> unshadow /etc/passwd /etc/shadow > ~/crack
#> john -wordlist=/text_path ./crack -show

config 경로에서 samdump2로 SAM, SYSTEM 파일에서 hash를 뽑아냅니다.

#> samdump2 -o /dump_sam SYSTEM SAM

그다음 추출된 dump_sam을 john the ripper 나 hashcat 등 크랙 프로그램으로 돌려 풀어내면 끝.

Linux attack

리눅스 시스템은 공격 가능성이 좀 적긴합니다. 저처럼 only 리눅스 유저가 있을 순 있지만, 대부분 인프라 환경에서의 리눅스는 서버이고, 리부팅 후 Live로 작업 시 바로 장애가 발생하여 관리자가 눈치챌 수 있겠지요.

다만 때에따라 리눅스 환경도 공격이 필요할 것으로 생각됩니다. passwd 파일 풀어내는 것도 있겠지만 OS는 동작, 설정 등 많은 정보를 파일로 남기기 때문에 LiveOS로 접근해서 할 수 있는 것들이 많습니다.

Other scenario

LiveOS가 패스워드 크랙에 초점이 많이 맞춰진건 사실입니다. 이번에 간단하게 해볼 Project 도 우선적으론 패스워드 자동 크랙이 우선이니 이런말을 쓰면서도 참 맘이 그러네요.

아무튼 LiveOS는 여러 공격 벡터를 가질 수 있다고 생각됩니다. 분명 시스템의 설정과 동작 정보등은 파일로 기록되고, LiveOS로 접근 시 권한이나 점유에 따라 접근이 불가능했던 부분들이 모두 제어가 가능해집니다. (당연 , 마운트 시 rw로 붙이면 끝이니..)

이를 통해 패스워드 크랙이 아닌 백도어 삽입이나 설정 변경 등 재미있는 것들을 해볼 수 있겠네요. 어차피 리눅스던 윈도우던 모두.. 파일에 정보를 남기기 떄문이죠.

Conclusion

이런것들을 스크립트로 자동화하고, LiveOS USB에 넣어두면 재미있을거란 생각이 듭니다.물리적으로 PC에 연결하고, 단시간에 패스워드 탈취 ~ 백도어까지 남길 수 있다면 나름 매력적이겠네요. (학생때 USB로 다른 PC 감염시키도 놀던것도 생각나고.. )

아무튼 이런 느낌의 Project 를 간단하게 해볼 예정이니 관심있거나 좋은 아이디어 있으시면 댓글 or Github로 참여해주세요(repo 생성하면 댓글로 남겨두겠습니다)