복습
• 취약점 분석 진단
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까지 해보자. |
6667 포트가 어떤 서비스를 실행하는지 및 어떤 버전을 사용하는지 확인을 한다.
UnrealIRCD 버전을 사용한다. 구글에 이 버전에 무슨 취약점이 있는지 검색을 통해 찾아본 결과 Backdoor command 취약점이 있는 걸 찾을 수 있다.
/usr/share/nmap/scripts 디렉토리로 이동을 한 후 find 명령어로 스크립트를 찾은 후 nmap으로 스크립트를 실행을 한 결과 trojaned version를 볼 수가 있다. 즉, Reverse Connection를 하면 된다.
사용 가능한 exploit를 찾는다.
RHOSTS 설정이 잘 되었는지 확인을 한다.
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계정과 일치를 시키면 권한을 부여하면 파일을 리눅스에 백업하거나 복사 등이 가능(부서 공유 서버로 활용) - 공격자들이 경유서버로 활용할 가능성이 있다. |
포트 스캐닝을 해주면 445번 포트에서 SAMBA 버전이 3.0.20을 사용하는 걸 볼 수 있다.
구글에 Samba 3.0.20 취약점을 했을 때 username map script command 취약점이 있는 걸 확인했다.
( 공식 취약점 번호 : CVE-2007-2447)
exploit를 찾기 위해 Search samba 3.0.20를 검색을 하였다.
show options으로 설정을 해야 할 것을 확인 후 RHOSTS를 설정해준다.
exploit처럼 run도 실행을 시켜주는 명령어이다.
‣ 공격 성공 후에 모든 계정을 크래킹 하기
John the Ripper라는 도구를 이용해서 모든 계정에 대한 패스워드를 알아내기 |
root에서부터 블럭설정을 하는데 맨 마지막 계정의 sh까지만 블럭 설정하고, 오른쪽 마우스 눌러서 Copy Selection을 해준다.
새 탭을 열어 vi로 passwd 파일을 만들어 준다. ( 내용은 복사한 passwd내용을 넣어준다)
shadow 파일도 passwd 파일처럼 복사를 해준 후 shadow 파일을 만들어 준다.
unshadow 함수는 암호와 새도우 파일을 meta2.pass 이름으로 결합해준다.
ID와 패스워드가 보이는 걸 확인할 수 있다.
※ john the Ripper
- 패스워드 크래킹 도구
- passwd와 shadow를 가지고 있으면 패스워드를 크래킹 해준다.
- Windows는 sam 파일이 있으면 패스워드를 크래킹 해준다.(sam파일은 Windows실 해중에는 복사/삭제/열기 불가능)
• Windows 2003 취약점
smb 중 message-signing 가 취약하다고 볼 수 있다.
smb-vuln 스크립트를 모두 다 실행시켰을 때 MS08-067 취약점이 있다는 걸 확인할 수 있다.
MS08-067 취약점에 exploit 공격이 가능한 모듈을 찾는다.
찾은 모듈을 타켓을 설정을 해준다.
사용할 페이로드를 찾아본다.
shell_bind_tcp 페이로드를 사용했지만 실행은 되지 않았다(사용할 수 있는 페이로드를 찾아보자)
• 악성코드 Stuxnet에서 사용한 취약점은? - 4개의 Zeroday Exploit와 2개의 Oneday Exploit를 이용해서 윈도우를 통해 전파됨 - 이란에 있는 우라늄 농축시설을 운영하는 Siemens사의 PLC의 동작을 교란시키는 악성코드 - PLC는 프로그램된 로직 컨트롤러를 이용해서 동작시킴 |
• Windows 2007 취약점
SMBv1과 SMBv2가 같이 사용되고 있다(SMBv1의 취약점을 가지고 있다)
SMB 취약점 스크립트를 모두 검색을 한 결과 ms17-010 취약점을 찾을 수 있다.
Quiz) MS17-010을 이용한 랜섬웨어의 이름은? WannaCry (라자루스 : 북한 해킹그룹) |
ms17-010 취약점에 exploit 공격이 있는지 search을 통해 찾는다.
payload는 기본 설정인 windows/x64/meterpreter/reverse_tcp이다.
타켓(RHOSTS)을 설정을 해준다.
실행을 하면 meterpreter이 나오면 접속이 된 것이다.
‣ 화면 캡처하기
screenshot 명령어를 사용해 피해자 PC 화면을 캡처를 해보자.
피해자가 지금 보고 있는 화면을 캡처한다.
‣ 파일 업로드 및 다운로드하기
mkdir 명령어를 사용해 C드라이브 안에 game 폴더를 만든다.
피해자 PC에 로컬 디스크(C)에 game 폴더가 만들어진 걸 확인할 수 있다.
game폴더 안에 공격자가 가지고 있는 아무 파일(nc.exx)을 업로드해보자.
피해자 PC에 공격자가 파일이 업로드 된 걸 확인 할 수 있다.
피해자 PC에 있는 파일을 공격자 PC로 가져와보자.
domnload 명령어로 다운로드할 파일의 경로를 지정을 해준다.
공격자 PC에 피해자 PC의 파일이 다운이 된걸 확인할 수 있다.
‣ 키로깅(키 입력값 알아내기)
ps 명령어를 사용해 윈도우의 프로세스 목록을 볼 수 있다.
※ Explorer.exe 프로세스의 맨 앞 번호를 기억해야 하자
mifrate 명령어를 사용해 meterpreter 프로세스를 Explorer.exe 아래로 들어간다.
키로거를 동작시켜준다.
아무 홈페이지에 들어가 아무 아이디, 비밀번호를 입력해보자.
keyscan_dump로 피해자가 입력한 아이디와 비밀번호를 볼 수 있다. 즉, 피해자가 입력한 문자, 숫자 등 키보드를 누르는 순간 모든 게 기록된다.
‣ VNC로 화면 조종하기
Payload가 기본 설정이 아닌 windows/x64/vninject/reverse_tcp로 수정을 해주고 viewonly을 false로 설정해준다.
※ windows/x64/vninject/reverse_tcpd은 피해자의 화면을 볼 수 있는 페이로드이다. viewonly false는 원격조종이고 true은 보기만 하겠다이다.
VNC 창이 열리면서 피해자 화면과 똑같은 화면이 나온다. 공격자 PC에서 움직이면 피해자 PC가 똑같은 행동을 한다.
※ 취약점은 패치를 설치하면 해결이 된다.( 패치 번호 : KB4013389 or Later(이후에 나온 패치에 포함된 경우 있음))
'Rookies 9기 > 시스템 네트워크보안' 카테고리의 다른 글
시스템/네트워크 보안 7일차 (0) | 2022.09.23 |
---|---|
시스템/네트워크 보안 6일차 (0) | 2022.09.22 |
시스템/네트워크 보안 4일차 (0) | 2022.09.20 |
시스템/네트워크 보안 3일차 (0) | 2022.09.19 |
시스템 / 네트워크 보안 2일차 (0) | 2022.09.16 |