IT/영어 공부노트

악성 메일 모의 훈련 시나리오 - 급여명세서를 가장한 스피어피싱 본문

🚧 프로젝트/모의해킹

악성 메일 모의 훈련 시나리오 - 급여명세서를 가장한 스피어피싱

소저어엉 2023. 8. 18. 14:38
반응형

가상의 기업의 보안 담당자가 되어, 악성 메일 모의훈련을 진행해보는 시나리오를 진행해보자!

정찰 및 대상 선정 > 준비 > 실행 > 평가 의 순서로 진행 할 것이다. 

1. 정찰 및 대상 선정

기업의 최신 정보를 획득한다. (소셜 미디어, 링크드인 등에서 해당 회사 다니는 사람들을 수집하고 위 사람들의 메일 계정을 수집한다.)

여기선 기업 보안 담당자이니, 사내 전산 시스템을 통하는 등의 수법으로 메일 계정을 얻는다고 가정한다.

 

위를 가정하여 아래의 두가지 시나리오 작성해보았다. 

1) 개인정보 입력 - 사는 지역을 수집해 **기업 00구 페이스북 그룹에 초대한다는 메일 작성 

2) url 클릭 - 급여 명세서 pdf 파일을 확인하라는 메일 작성. pdf 개인 로그인정보로 잠금해뒀다고 메일에 명시. 

 

해당 포스팅에서는 우선 개인정보 입력 시나리오를 진행하겠다~ 

1. 사용자가 메일로 온 급여 명세서 pdf를 실행한다.

2. 사용자에게 pdf 파일을 보기 위해서 email 아이디와 비밀번호를 입력받는다. 

3. 위 입력받은 정보를 공격자 서버로 수신~

4. 공격자는 사용자의 크리덴셜을 획득하게 된다. 

 

위 모의해킹은 스피어피싱과, 문서형 악성코드를 실습하기 위해 작성한 시나리오다! 

스피어 피싱이란? -> https://hi-sojeong.tistory.com/57

문서형 악성코드란? -> https://hi-sojeong.tistory.com/60

 


2. 준비 

 

준비로는 크게 2단계가 있다. 

1. 겉으로 보기엔 아무 문제 없는 악성파일을 생성한다. 

2. 급여 명세서를 확인하라는 인사팀에서 보낸 공지같은 메일을 작성한다.

이제 순서대로 준비해보자~

 

 

 

1. 급여 지급명세서 pdf 파일 만들기

대충 이런식으로 작성해보았다. 실제 내가 기업에서 받은 명세서를 생각해보면 우선 대표의 지장 이미지가 있을 것이고, 기업 로고도! 기업의 색도 이용하여 작성되었을 것이다. 하지만 나는,, 급여 명세서는 인터넷에 있는 급여명세서 폼을 다운받아 작성했다. 기업 담당자이니,, 기업의 급여 명세서 폼을 따라했다고,,합시다.  

 

2. 위 pdf에 악성스크립트 삽입하기 

위 pdf 파일에 악성 스크립트를 삽입해야 하는데, 이는 pro 버전의 adobe를 사용하면 코드로 삽입 및 수정을 할 수 있다! 하지만 난 프로가 아니니 (아마추어이니~) https://github.com/cornerpirate/JS2PDFInjector 해당 github에서 다운받을 수 있는 JS2PDFInjector 프로그램을 이용했다. 

실행파일을 실행 해, pdf 파일과 js 파일을 선택하면 알아서 pdf파일에 삽입해준다! 하지만,, pro를 사용한다면,,, 직접 코드를 삽입하는 것을 추천드린다.. 나는.. 아직 돈이없어서,, 호호

 

삽입한 자바스크립트 코드는 https://0xcybery.github.io/blog/hacking-with-pdf 해당 블로그의 코드를 수정하여 사용하였다. 

 

3. 공격자 서버 구성 

또한, 피해자가 정보를 입력했을 때 그 정보를 받을 서버를 켜야하는데, 그 공격자 서버는 칼리 리눅스를 사용했다. 칼리 리눅스에서 apache 서버를 이용해 콘솔에서 확인되도록 했다. 

 

sudo apt update
sudo apt install nodejs

 

우선 nodejs를 설치하고

 

const http = require('http');
const url = require('url');

const server = http.createServer((req, res) => {
    const parsedUrl = url.parse(req.url, true);
    const queryData = parsedUrl.query;
    const account = queryData.account;
    const password = queryData.password;

    console.log(`Received Account: ${account}, Password: ${password}`);

    res.writeHead(200, { 'Content-Type': 'text/plain' });
    res.end(`Received Account: ${account}, Password: ${password}`);
});

server.listen(80, () => {
    console.log('Server is listening on port 80');
});

위 내용으로 서버를 만들었다. 80번 포트를 사용하고, console에 입력받은 account와 password를 띄운다!

 

 

4. 메일 내용 구상하기 

위의 사진 파일은,, 내 카드 명세서에서 좀 따왔습니다~ 기업에서는 기업 메일 틀이 있을 것이다. 로고를 제일 아래에 단다거나,, 공지로 보내는 메일에는 아예 로고와 함께 따로 형식이 있다거나,, 그런 틀이, ,저거라고,, 하자 

이렇게 준비는 끝!


3. 실행

설정한 타겟에게 공격을 실행하는 단계이다. 

타겟들에게 메일을 보냈다! 타겟은 부서, 지급, 연차 등 다양하게 선정하는게 좋을 듯 하다.

우선 나는 내 계정에서,, 다른 내 계정으로 보냈다. 

 

타겟 중 하나가 되어 메일을 받았다! 급여 명세서라고 하니 읽어봐야지~ 첨부파일 클릭해서 다운로드~ 

 

내 메일 아이디는 이거야! 비밀번호는 이거야! 입력 완료~

정보를 입력하고 나니 공격자 서버에서 account 정보가 입력된 것을 확인 할 수 있었다.


4. 평가

타겟이 메일을 열었는지, 파일을 실행했는지 등을 확인하고 평가하는 단계이다. 

 

이 시나리오에서는 타겟이 실행했는지는 내 서버에 정보가 왔는지? 아닌지로 알 수 있다. 이메일 아이디와 비밀번호를 받으니, 이메일 아이디와 내가 보낸 타겟들의 아이디를 비교해서 누가 이 스피어 피싱에 넘어왔구나를 파악하면 된다.

  • IT팀 및 보안 팀에 해당 메일이 피싱인지 물어보는 메일이 왔는가?
  • 인사팀에게 해당 메일에 대해 묻는 메일을 보냈는가?
  • 피싱신고 시스템이 기업 메일시스템에 있다면, 해당 프로그램을 이용해 피싱메일이라고 신고가 들어왔는가?

그 외에도 보안팀에서는 위의 내용 등등을 파악해야 할 것으로 예측할 수 있다. 


이렇게 간단한 모의해킹 완료! 

스피어피싱을 공부하고, 이를 실습해 보고 싶은데 어떤 유형이 있을까? 하며 뉴스를 검색하니 여러 유형 중 위처럼 명세서 등의 기업 파일을 사용한 사례가 눈에 들어왔다. 해서 pdf 악성파일은 어떤식으로 진행될까? 하며 찾아봤는데 오,, 생각보다 더 다양한 방법이 있었다! 이제 보고서 작성을 하며 어떤식으로 보안담당자가 보고서를 작성할지,, 등의 프로젝트를 진행해보자.

  • 악성 pdf는 어떤 식으로 대응할 수 있을까?
  • 뭘 보고 알 수 있을까?
  • 이게 피싱메일인지는 어떤 점을 통해 알 수 있을까?

등의 문제를 고민해보자 ~


참조

https://www.boannews.com/media/view.asp?idx=119976&page=2&kind=1 

https://isecure-kr.github.io/tocrack/feature/Tocrack002

https://www.cctvnews.co.kr/news/articleView.html?idxno=201612 

https://0xcybery.github.io/blog/hacking-with-pdf

반응형