o 강의내용
OWASP10의 주요 공격에 초점을 두지 않고 침투테스트를 위한 접근 방법론에서 공격하는 방식으로 진행이 되었습니다.
1일차 : 네트워크 구성 및 시나리오 작성
구분 |
상세내용 |
URL 구성도 파악 |
사업/기업의 연계된 서비스 및 다른 기업들 과의 협력(업무분장) 혹은 통신을 통해 대상 기업의 웹 구조 유추. Ex) 인터파크(홈쇼핑)와 연계된 다양한 소매상, 택배업체, 은행/카드사 등과의 협력 관계를 유추 - 이를 통해 더욱 상세한 URL 구조를 파악 |
시나리오 작성 |
대상 URL의 구조를 유추한 후에, 기업과 협력단체 사이에 이루어지는 통신을 분석. 이를 통해 통신 간 발생할 수 있는 취약점 등 공격을 유추하여 취약점 점검 체크리스트 작성. |
네트워크 구성(이론) |
2,3일차 동안 사용할 웹 환경 파악. 웹 환경 및 공격에 사용할 툴 공유 (virtual box, kali linux, burp suite 등) |
네트워크 구성(실습) |
- 교육장에 배치 된 PC에서 virtual box를 사용하여 웹 환경 구축 - NAT를 통해 가상 환경에 IP 부여 - 가상 환경에 웹 서버를 구축하여 실습 준비 |
o 접근방법
m 업무로 보는 관점(홈페이지 구조 파악)
[그림] SEQ [그림] \* ARABIC 1 인터파크 메인화면
1. 인터파크의 업무 분장을 추정 하자면 홈 도서 티켓 투어 아이마켓으로 나누어 생각할 수 있다.
2. 위의 항목에 따라 로그인 한번으로 서비스들의 상호 DB 공유를 추측 할 수 있다.
3. 종합 쇼핑몰로서 판매회원 및 구매회원으로 나뉠 수 있다..
4. 판매회원은 상품 등록 구매회원은 상품조회의 기능을 가질 수 있다. 구매회원은 회원과 비회원으로 나뉜다..
5. 판매자 매뉴얼(http://www.interpark.com/down/ipss/02_interpark_ipss_201107.pdf)을 참고하면 파일 등록을 CVS 방식으로 업로드 하는 것을 확인 할 수 있다.
6. 위의 항목에 따라 상품등록 시스템을 이용하는 것을 알 수 있다.
[그림] SEQ [그림] \* ARABIC 2 업무 흐름도
1. 상점의 경우 매입점을 통하여 상품등록을 하게 된다. 이때 가맹 등록 여부 및 보증보험 계약여부를 전달하게 된다.
2. 회원의 경우 로그인시 PASSWORD 또는 Open API로 SSO 로그인을 시도하게 된다.
3. 주문시 결제수단을 통하여 상품코드, 금액 및 수량을 통하여 주문 요청을 하게된다.
4. 쇼핑몰 내에서도 전자상거래에 필요한 정보들을 타 업체와 지속적으로 정보 교환을 한다.
m 네트워크 구조로 보는 관점
[그림] SEQ [그림] \* ARABIC 3 네트워크 구성 추측
1. 인터파크의 네트워크 가상 구성도를 추측하면 인터넷 망 DMZ 업무 망으로 구성 해 볼 수 있다..
2. 일반 사용자는 웹/WAS를 통하여 업무망의 DB를 사용 하며 업무망의 직원도 접근이 가능하다.
3. 업무망의 직원도 인터넷망의 정보를 얻을 수 있는 경로가 존재 한다.(장애 처리 및 고객 문의 사항 등)
m 시나리오로 보는 관점(공격자 입장)
1. 인터넷 망에서 스크립트, 첨부파일 및 URL을 통하여 위장 메일을 직원에게 전송한다. 직원이 해당 메일을 열람을 통해서 악성코드가 실행이 되는 위치는 업무망의 직원 PC 이다.
2. 인터넷 망에서 접근하는 웹 서버의 입력 값 변조를 시도는 웹서버에 접근하는 사용자를 타켓으로 하는 공격이다.
3. 인터넷 망에서의 업로드 공격은 웹 서버를 통한 업무망의 DB 변조 시도이다.
4. 인터넷 망에서의 세션갈취 공격은 인터넷 망에 접근하는 사용자 타겟 공격이다.
5. 인터넷 망에서의 URL 공격은 웹서버의 DB 공격 혹은 사용자에대한 XSS 공격시도로 이어질 수 있다.
6. 업무망의 직원을 겨냥한 USB 공격이란 악성코드를 포함한 USB를 배포하여 침투하는 행위 이다.
7. 인터넷 망에서의 FTP, SSH 공격이란 외부에 노출 되어있는 포트를 확인하여 침투하는 공격이다.
2일차 : 대상 환경 파악
구분 |
상세내용 |
Port scanning |
- [nmap -sS] / [nmap –sT] / [nmap –sU] 등 포트 스캐닝에 사용될 수 있는 명령어를 통해 공격하고자 자는 환경 파악 - 파악 되는 정보를 통해서 취약점이 존재 하는지 검색 ( CVE 구글링) |
HTTP response header 내용 확인 |
F12 및 burp suite 툴을 사용하여 HTTP response 내용 확인. - 확인 된 내용을 통해 취약점 존재 여부 파악 및 검토 - 해당 취약점에 대한 대응: - /etc/apache2/apache2.conf에서 server tokens를 prod로 변경하고 재실행하면 HTTP response에서 정보 공개를 최소한으로 설정 가능 |
HTTP error page에서 정보 노출 |
error page가 노출되는 경우 서버에 대한 정보 취득 가능- /etc/apache2/apache2.conf에서 signature off로 변경하면 에러 페이지 발생 시에 웹서버 정보노출 제한 |
3일차 : 대상 공격 기법
구분 |
상세내용 |
메크로 |
Sikulix툴을 이용해 윈도우 메크로 동작 수행이 가능 |
Command Injection |
* 명령을 전송해서 실행하는 프로그램이 있을 경우에만 수행 가능 - 해당 프로그램이 존재 할 경우, burp suite로 명령을 intercept하여 공격자의 커맨드를 변조하여 공격 수행 |
업로드 취약점 |
Web Shell - server side script 공격으로, 업로드 디렉토리 주소 필요 - www 디렉터리 아래에 업로드 해야함. 대응 방법 - 서버에서 확장자 필터링 수행 - www 디렉터리 아래에 저장하는 권한 제한 - 업로드/다운로드 디렉터리 분리 등 |
메모리 내에서 정보획득 |
웹 브라우저 내에 저장 된 메모리 정보를 조회 할 수 있는 취약점 - 평문으로 저장 된 패스워드 - 마스터키 존재 - 주민등록번호와 같은 개인정보 저장 여부 - create dump로 프로세스의 메모리를 파일로 저장 |
무작위 공격 |
Burp suite를 통한 무작위 공격 수행 |
o 강의소감
단순히 체크리스트 기반의 점검이 아닌 타인이 보는 취약점진단의 개괄적인 시야를 볼 수 있어 유익했습니다.