fngs.kr | 3. 자격 증명 액세스
fngs.kr 3. 자격 증명 액세스 단계
본 내용 및 실습 환경은 KISEC, 케이쉴드 주니어 교육 과정에 있음을 알려드립니다.
이전 내용
현재 데이터베이스에 대한 유저 패스워드를 SQLMAP을 통해 모두 가져 올 수 있었다. 하지만, 모든 패스워드는 해시 함수로 감추어져 있다. 이러한 해시 함수를 풀어야만 침투가 가능하므로 자격 증명 액세스 전략을 사용 할 것이다.
Credential Access
공격자는 피해자의 계정 이름과 비밀번호를 도용하려고 한다.
자격 증명 액세스는 계정 이름 및 암호와 같은 자격 증명을 도용하는 기술로 구성됩니다. 자격 증명을 얻는 데 사용되는 기술에는 키로깅 또는 자격 증명 덤프가 포함됩니다.
해시값을 통해 자격 증명을 얻기 위해서 대표적으로 사용되는 기술로는 Brute Forcing Attack이다.
Brute Force
무차별 대입 공격(Brute-Force Attack)은 특정한 암호를 풀기 위해 가능한 모든 값을 대입하는 것을 의미한다.
대부분의 암호화 방식은 이론적으로 무차별 대입 공격에 대해 안전하지 못하며, 충분한 시간이 존재한다면 암호화된 정보를 해독할 수 있다.
하지만 대부분의 경우 모든 계산을 마치려면 실용적이지 못한 비용이나 시간을 소요하게 되어, 공격을 방지하게 한다.
암호의 ‘취약점’이라는 의미에는 무차별 대입 공격보다 더 빠른 공격 방법이 존재한다는 것을 의미한한다
Password Cracking
공격자는 해시 암호와 같은 자격 증명 자료를 얻은 경우 암호 해독을 사용하여 일반 텍스트 암호와 같은 사용 가능한 자격 증명 복구를 시도할 수 있습니다.
OS 자격 증명 덤핑은 암호 해시를 얻는 데 사용할 수 있습니다. 이것은 해시 패스워드가 옵션이 아닌 경우에만 공격자를 얻을 수 있습니다.
대상의 해시값을 크랙하기 이전에 어떠한 종류의 해시를 사용했는지 알아야 한다.
kisec 계정의 해시 패스워드를 hash-identifier를 통해 알아보면 MD5를 이용하는 것을 알 수 있다.
패스워드 크랙을 하기 위해 사전 파일을 제작하는데 이 처럼 사전 파일로 패스워드를 크랙 하는 방법을 Dictionary Attack이라한다.
mkdir sample && cd sample
crunch 5 5 -f /usr/share/crunch/charset.lst lalpha -o wordlist.txt
echo '$P$BZQMJfy/aHvpLHFrJWb51YsLXDzYdI1' > passwd.txt
우리는 패스워드의 길이가 5글자인 것을 알고 이렇게 진행하게 되는데, 그게 아니라면 더욱 길게 만들어야 할 것이다.
해시 크랙은 대부분 Hashcat, John the Ripper로 진행한다.
Hashcat이 CPU 혹은 GPU 기반으로 크랙을 진행 할 수 있어서 더 빠른 경향이 있다.
우리는 VMmare로 가상화 환경에서 진행하기에 CPU도 가상화 되어 있다.
따라서 CPU 기반 크랙 시 CPU에 해당 config를 수정해야 진행 할 수 있지만, 가상화 CPU를 대비해 미리 config 되어 있는 docker file을 이용한다.
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
echo 'deb https://download.docker.com/linux/debian stretch stable' > /etc/apt/sources.list.d/docker.list
apt-get update
apt-get remove docker docker-engine docker.io
apt-get install docker-ce
docker –v # docker 설치 확인
docker pull dizcza/docker-hashcat:intel-cpu
docker run -it --rm -v $(pwd)/sample:/sample dizcza/docker-hashcat:intel-cpu bash # <------ Maybe error here
cd /sample/
이러한 에러가 발생할 경우 아래의 코드를 입력하고 다시 실행하면 정상 작동한다.
sudo mkdir /sys/fs/cgroup/systemd
sudo mount -t cgroup -o none,name=systemd cgroup /sys/fs/cgroup/systemd
hashcat -a 0 -m 400 -d 1 -o crack.txt passwd.txt wordlist.txt --force
- -a : Attack mode로 ‘0’ Straight로 사전 공격
- -m : 해시 종류로 ‘MD5 Wordpress’는 400으로 정의
- -d : 동작 장치 기반
- 1 : CPU
- 2 : GPU
- 3 : FPGA, DSP, Co-Processor
- -o : 출력 파일명
(자세한 내용을 hashcat -h를 통해 알아보면 되겠습니다!)
kisec 계정의 패스워드는 kisec이라는 것을 알 수 있습니다.
자격 증명을 얻었으므로, 해당 서비스에 접근하여 지속 가능하게 해보겠습니다.