백박스 리눅스를 활용한 모의 침투 — 6장
6장 인증 침투 도구
INDEX
- Medusa 를 이용한 인증공격
- NSE 모듈을이용한 인증공격
- NetDiscover를 이용한 인증공격
지난 4장에서 우리는 계정과 비밀번호를 설정했었다.
cat /root/users.txt
cat /root/passwords.txt
cat 명령어를 확인하여 계정정보와 비밀번호 정보를 확인할 수 있다. 4장에서 했던 설정이 그대로인 사람이라면 [그림6–1]처럼 passwords.txt파일의 출력정보가 7줄에 그치지 않을 것이다.
출력된 정보는 필자가 앞으로 있을 실습에 편리성을 위하여 cat > 명령어를 사용하여 수정한 것이다.
cat > /root/passwords.txt를 입력한 후 수정하고자 하는 정보를 입력하면 기존 정보 위에 덮어쓰기로 수정할 수 있다.
귀찮다면 이 과정을 생략해도 상관없다.
이제 이 정보들을 이용하여 공격대상자가 사용하는 계정과 비밀번호를 공격 하는 실습을 진행할 것이다.
1.Medusa 를 이용한 인증공격
메두사(Medusa)는 백박스 운영 체제에서 인증 침투 도구와 관련하여 기본으로 제공하는 도구이다.
메두사를 이용하여 공격대상자의 mysql 계정 비밀번호를 알아내는 실습을 진행할 것이다.
medusa -U /root/users.txt -P /root/passwords.txt -f -h 192.168.10.202 -M mysql
-U 플래그는 계정 사전을 의미한다.
-P 플래그는 비밀번호 사전을 의미한다.
-f 플래그는 일치하는 계정과 비밀번호를 발견하면 메두사를 중지하라는 의미이다.
-h 플래그는 공격 대상자의 IP주소를 의미한다.
-M 플래그는 공격 대상 서비스를 의미한다.
위 명령어를 통해users.txt와 passwords.txt 파일에 있는 정보와 192.168.10.202의 계정과 비밀번호를 대조하다가 일치하는 계정과 비밀번호를 발견하면 중지하고 해당 정보를 출력할 수 있다.
[그림6–3]은 메타스플로잇의 mysql 계정 비밀번호가 나온 모습이다.
이번에는 메두사를 SSH 서비스에 적용해보자.
medsua -U /root/users.txt -P /root/passwords.txt -f -h 192.168.10.202 -M ssh
[그림6–4]도 [그림6–3]과 마찬가지의 결과가 나온다.
2.NSE 모듈을이용한 인증공격
ls /usr/share/nmap/scripts/
ls 명령어를 이용하면 [그림6–5]처럼 /usr/share/nmap/scripts 디렉토리에 있는 NSE 모듈 파일들을 확인 할 수 있다.
NSE 모듈은 루아(Lua)언어로 작성한 파일이다. NSE 모듈을 이용하여 공격 대상자의 DBMS 서버를 공격할 수 있다.
nmap -p 5432 — script=pgsql-brute \
— script-args userdb=/root/users.txt,passdb=/root/passwords.txt \
192.168.10.202
pgsql-brute.nse모듈을 이용해서 PostgreSQL 서버의 계정과 비밀번호를 공격하도록 설정하는 명령어이다.
— script 플래그 : 사용할 모듈을 명시한다.
— script-args 플래그 : 해당 모듈에 대한 매개 변수에 해당한다.
\을 사용하면 긴 명령어를 엔터로 나눠서 입력할 수 있다. 리눅스 운영체제에서 \기호를 사용하면 한 줄짜리 명령어로 인식하기 때문이다.
nmap -p 3306 — script=mysql-brute \
— script-args userdb=/root/users.txt,passdb=/root/passwords.txt \
192.168.10.202
mysql-brute.nse모듈을 이용해서 My-SQL 서버의 계정과 비밀번호를 공격하도록 설정하는 명령어이다.
그 결과 [그림6–7]의 두번째 박스에서 볼 수 있듯이 root의 비밀번호가 1234임을 확인할 수 있다.
ls /usr/share/nmap/scripts | egrep “brute”
그 외에도 무차별 대입 공격 관련 모듈은 [그림6–8]과 같이 확인할 수 있다.
그 중 smb-brute.nse 모듈을 이용하면 공격자와 공격 대상자가 동일한 LAN 영역에 있을때, 무차별 대입 공격을 할 수 있다.
3.NetDiscover를 이용한 인증공격
넷디스커버(NetDiscover)란?
ARP 정보를 리스트업 해주는 도구이다.
ARP란?
Address Resolution Protocol의 약자로, 네트워크 계층 주소와 링크 계층 주소 사이의 변환을 담당하는 프로토콜이다.
apt-get install netdiscover
넷디스커버를 사용하기 위해 설치한다.
netdiscover -r 192.168.10.0/24
위 명령어를 통해 스캔을 진행했을 때,
공격 대상자의 맥 주소 00:0c:29:b8:1c:60이 잡혔다는 것은 공격자와 공격 대상자가 동일한 LAN 영역에 있음을 알 수 있다.
[그림6–12]의 두번째 줄에 출력된 192.168.10.2는 라우터 IP 주소이고 00:50:56:ed:ed:60은 라우터의 맥 주소이다.
위에서 설명했듯이 공격자와 공격대상자가 동일한 LAN영역에 있고, 공격대상자가 SMB 서버를 사용중이라면 smb-brute.nse 모듈을 이용하여 무차별 대입 공격을 수행할 수 있다.
nmap -p 139 — script=sbm-brute \
— script-args userdb=/root/users.txt,passdb=/root/passwords.txt \
192.168.10.202
위 명령어를 입력하면 공격대상자가 사용하는 계정과 비밀번호(msfadmin:msfadmin)를 확인할 수 있다.
우리가 흔히 사용하는 윈도우 운영 체제에서는 무차별 대입 공격을 막기 위해 다음과 같이 임계치(Critical Value)를 설정한다.
시작>>설정>>제어판>>관리도구>>로컬보안정책>>계정 정책>>계정 잠금 정책>> 계정 감금 임계값
사실 위와 같은 인증 공격 실습이 가능한 이유는 메타스플로잇에서는 윈도우 운영체제와 달리 무차별 대입 공격을 대비한 임계치가 설정되지 않았기 때문이다.
마치며..
이번 시간에는 다양한 인증 침투 도구를 이용하여 공격 대상자의 계정 비밀번호를 공격하는 실습을 진행해보았습니다. 점점 설정보다 직접 실습하는 비율이 늘고 있어서 행복합니다. 여러분들도 실습을 진행하며 즐거움을 느끼셨으면 좋겠습니다.
다음 시간에는 “SQL 삽입 공격(1)”에 대해 글을 올릴 것입니다.
[WARNING]
공부한 내용을 정리하는 글이라서 틀린 내용이 있을 수도 있습니다. 잘못된 내용이 있다면 망설이지 마시고 알려주세요!
읽어주셔서 감사합니다 :)
[참조]
이번 시간에 사용한 것은 아니지만, 5장에서 썼던 nmap의 GUI버전인 zenmap을 사용하는 예제입니다. 궁금하신 분은 아래 글을 참조해서 실습 진행해보세요!