{
	"id": "cfc4aa6f-6bb7-48b3-9a90-4002d1257964",
	"created_at": "2026-04-06T00:20:56.205557Z",
	"updated_at": "2026-04-10T03:20:36.638013Z",
	"deleted_at": null,
	"sha1_hash": "d8a507a5a102494b45c5ec114eabdf17fe348ccb",
	"title": "악성코드 분석(전라남도 코로나바이러스 대응 긴급 조회.hwp)",
	"llm_title": "",
	"authors": "",
	"file_creation_date": "0001-01-01T00:00:00Z",
	"file_modification_date": "0001-01-01T00:00:00Z",
	"file_size": 413297,
	"plain_text": "악성코드 분석(전라남도 코로나바이러스 대응 긴급 조회.hwp)\r\nBy 1q\r\nPublished: 2020-04-08 · Archived: 2026-04-05 18:03:01 UTC\r\n[개요]\r\n[1] ASEC 분석팀은 \"전라남도 코로나바이러스 대응 긴급 조회.hwp\"로 위장한 악성 문서파일을 발견하고\r\n패치했다. 해당 정보를 확인하고 [2] 무료 샌드박스 서비스(any.run)에서 파일을 다운로드 받아 분석을 수\r\n행하기로 했다.\r\n해당 악성 문서파일(HWP)은 코로나19 관련 내용으로 정부기관으로 위장하여 유포한 파일이다. CVE-2017-8291 취약점을 이용해 만들어졌으며, Powershell을 이용해 C2 서버에 접근해 2차 유포 파일(EXE)을\r\n다운로드 받은 뒤, 정보유출형 백도어 역할을 수행한다. 현재는 C2가 단절되어 Powershell에서 C2 서버에\r\n접근하지 못하지만, 서버가 다시 살아날 수 있을 가능성도 있기에 주의가 필요하다. \r\n※ 본 게시물에는 단계별로 한글 문서, 쉘코드, 다운로드된 PE 파일의 분석을 수행한 내용이 포함되며, 주\r\n관적인 의견이 있을 수 있으니 사실과 다른 내용이 있다면 피드백 부탁드립니다.\r\n※ 참고 : 동일 날짜에 유포된 \"인천광역시 코로나바이러스 대응 긴급 조회 (1).hwp\", \"경찰청 출석요구\r\n서.hwp\" 2개의 파일과 본 게시물에서 분석하려고 하는 의심 문서와 내부 PostScript Hash 값이 동일한 것\r\n으로 보아 Decoy(미끼) 문서만 다르게 활용한 것으로 보임. \r\n인천광역시 코로나바이러스 대응 긴급 조회 (1).hwp :\r\nc0bd35a36ea5227b9b981d7707dff0e2c5ca87453a5289dc4a5cd04c7e8b728c\r\n경찰청 출석요구서.hwp : ff4ce7f350b0063c9683499e42028f129195f8d85c372b54f7b52380c64d5ac9\r\n[Hash 값 채증]\r\n총 5가지 파일의 Hash 값을 채증했다.\r\n[1] 악성 문서파일(HWP)\r\n[2] 취약점(CVE-2017-8291)이 존재하는 PostScript 파일\r\n[3] 변환된 PostScript 파일\r\n[4] PostScript 내부에 존재하는 쉘코드 바이너리\r\n[5] 쉘코드에서 다운로드를 수행하는 PE 파일\r\nhttps://suspected.tistory.com/269\r\nPage 1 of 13\n\n[악성 문서파일(HWP) 및 쉘코드 분석]\r\n문서파일에는 코로나19 확진자가 발생했다는 허위 내용으로 전라남도 감염병관리지원단을 사칭한 내용\r\n이 담겨있다. 최근들어 공격자들은 코로나19 이슈를 활용해 피싱, 랜섬웨어, APT 등을 통해 악용하고 있어\r\n주의가 필요하다.\r\n가상환경에서 한글 파일을 단순히 실행한 결과, 아래와 같이 gbb.exe 프로세스에서 cmd를 이용해\r\npowershell을 직접 수행하는 것을 확인할 수 있다.\r\nhttps://suspected.tistory.com/269\r\nPage 2 of 13\n\n[3] hwpscan2를 활용해 문서 파일의 Summary 정보를 확인한 결과, 2020-04-01 15:56분 경에 문서파일이 마\r\n지막으로 수정된 것을 확인할 수 있다.\r\nBinData 스토리지의 BIN0005.ps 파일 내부에 \"/image \u003c2F78~~~\u003e\" 내용이 포함됐다.  PostScript는 바이너리\r\n를 \"\u003c \u003e\"로 감싸기 때문에 해당 바이너리가 악성행위를 수행하는 쉘코드라고 의심해 볼 수 있다. 정확한\r\n쉘코드를 얻기 위해서는 한글 파일 자체를 디버깅을 수행하여 추출하는 방법도 존재하지만, 본 게시물에\r\n서는 수동으로 진행하도록 하겠다.\r\n위 바이너리를 추출하여 Hxd를 이용해 확인해보면 또 다른 PostScript 파일이 등장한다. 파일의 내용은\r\nCVE-2017-8291 취약점에서 사용되는 것으로, 아래 드래그한 바이너리가 실제 쉘코드이며, 추출하여 분석\r\n을 진행하도록 하겠다.\r\nhttps://suspected.tistory.com/269\r\nPage 3 of 13\n\n위 바이너리를 확인한 결과, 텍스트(오른쪽) 화면을 육안상으로 봤을 때, Powershell의 DownloadFile API를\r\n활용해 C2 서버에 접근하는 것을 확인할 수 있다.\r\nhttps://suspected.tistory.com/269\r\nPage 4 of 13\n\n자세한 내용을 알기 위해 디버깅을 통해 쉘코드를 분석한 결과 아래와 같은 순서로 진행됐다.\r\n1. msvcrt.dll을 로드\r\n2. system() 함수 호출\r\n3. system() 함수의 인자로, powershell의 DownloadFile API를 통해 특정 C2 서버에서 \"h1.jpg\" 파일을\r\n%temp% 경로에 svchost.exe 파일로 다운로드 및 실행\r\n※ 1차 C2 주소 : http://www.sofa[.]rs/wp-content/themes/twentynineteen/sass/layout/h1[.]jpg (워드프레스 서버\r\n악용)\r\nVirusTotal에서 해당 C2 주소를 확인한 결과, 2개의 파일(h1.jpg와 h2.jpg)이 스캔된 것을 확인할 수 있었다.\r\n32bit와 64bit로 추정은 되지만, 확실하지는 않다. 본 게시물에서는 h2.jpg에 대한 분석을 진행한다.\r\nhttps://suspected.tistory.com/269\r\nPage 5 of 13\n\n[유포된 PE 파일 분석]\r\n※ IDA를 통해 정적분석에 치중한 분석 내용입니다.\r\n해당 파일은 C++로 컴파일된 32bit 파일로 확인됐다.\r\nIDA를 이용해 스트링을 확인한 결과, 4개의 C2 주소를 발견할 수 있었다. 3개의 주소는 워드프레스 주소\r\n하위의 server_test.php 파일로 동일했으며, 1개의 파일은 index.php가 존재했다. 이를 활용해 C2 통신을 수\r\n행할 수도 있겠다는 생각을 할 수도 있을 것이다.\r\n\"Microsoft\\\\Windows\\\\WinX\\\\config.txt\" 경로의 파일이 존재하는지 확인 및 새로 생성하여 특정 데이터\r\n(0xCF 사이즈)를  덮어씌운다. (데이터가 어떻게 생성되는지는 상세 분석이 필요할 것으로 보임.. 상세 디\r\n버깅은 나중에 시간이 남으면 추가적으로...)\r\nhttps://suspected.tistory.com/269\r\nPage 6 of 13\n\n위에서 작성한 config.txt 파일에 들어가는 내용이며, 특정 인코딩을 통해 평문을 변조한 것으로 보인다.\r\n네트워크 행위는 IDA에서 잘 해석하지 못하여 디버깅을 통해 잠시 확인해본 결과, C2 서버(kingsvc.cc)에\r\nid, content를 raw 데이터 형태로 timestamp 파라미터를 추가하여 POST 형식으로 전송하는 것을 보인다.\r\nex) hxxp://kingsvc[.]cc/index.php?timestamp={} | 전송하려는 raw 데이터 : \u0026id={}\u0026content={}\r\nWQL을 사용하여 \"ROOT\\\\CIMV2\"의 \"Win32_OperatingSystem\"에 존재하는 {Caption, CSName,\r\nMUILanguages, Version, OSArchitecture} 정보를 쿼리한다. 결과 값은 아래 로그 형태로 만들어진다.\r\n[Operating System Information] - 시스템 관련 정보 탈취\r\nOS Name:{}\r\nHost Name:{}\r\nMUI Lacale:{}\r\nOS Version:{}\r\nOS Type:{}\r\nhttps://suspected.tistory.com/269\r\nPage 7 of 13\n\nWQL을 사용하여 \"ROOT\\\\CIMV2\"의 \"Win32_NetworkAdapterConfiguration\"에 존재하는 {Description,\r\nDefaultIPGateway, DHCPEnabled, DNSServerSearchOrder, IPAddress, IPEnabled, IPSubnet} 정보를 쿼리한다.\r\n결과 값은 아래 로그 형태로 만들어진다.\r\n[Network Information] - 네트워크 관련 정보 탈취\r\nDescription:{}\r\nDefault Gateway:{}\r\nDHCP Enabled:{}\r\nDNS Server:{}\r\nIP Address:{}\r\nMAC Address:{}\r\nhttps://suspected.tistory.com/269\r\nPage 8 of 13\n\nWQL을 사용하여 \"ROOT\\\\SecurityCenter2\" or \"ROOT\\\\SecurityCenter\"의 \"AntivirusProduct\"에 존재하는\r\n{DisplayName, TimeStamp} 정보를 쿼리한다. 결과 값은 아래 로그 형태로 만들어진다.\r\n[Installed Anti Virus Programs] - 설치된 백신 정보 탈취\r\nName:{}\r\nUpdate Date:{}\r\nhttps://suspected.tistory.com/269\r\nPage 9 of 13\n\nWQL을 사용하여 \"ROOT\\\\CIMV2\"의 \"Win32_Process\"에 존재하는 {Caption, ProcessID, Description} 정보\r\n를 쿼리한다. 결과 값은 아래 로그 형태로 만들어진다.\r\n[Running Processes] - 실행되고 있는 프로세스 정보 탈취\r\nCaption:{}\r\nProcess ID Description:{}\r\nCommand:{}\r\n위 정보들은 아래 코드의 WQL을 통해 쿼리가 수행된다.\r\nWQL : Windows Management Instrumentation 쿼리 언어는 Microsoft의 CIM 쿼리 언어 구현으로, 분산 관리\r\n태스크 포스의 공통 정보 모델 표준에 대한 쿼리 언어\r\nhttps://suspected.tistory.com/269\r\nPage 10 of 13\n\n사용자 계정, 컴퓨터 계정, 국가별지역 정보를 탈취\r\n해당 악성코드에서 Thread 함수를 분석한 결과, 총 5개의 함수가 존재했다. 각 세부내용은 아래와 같다.\r\nStartAddress : ReadFile API를 통해 연결된 Pipe에서 데이터를 읽은 뒤 버퍼에 저장하고, SetEvent API를 통\r\n해 이벤트를 생성한다.\r\nsub_40B530 : 인자로 받은 특정 스레드 핸들을 종료시킨 후, CreateToolhelp32Snapshot API 함수를 통해 특\r\n정 프로세스를 탐색한다.\r\nsub_4021E0 : 4개의 C2 주소를 특정 버퍼에 저장한 후 kingsvc.cc 주소에 3개의 파라미터(id, content,\r\ntimestamp)를 추가적으로 생성하고 POST 형태로 전송한다.\r\nsub_40CAB0 : URLDownloadToFileW API 함수를 통해 C2 서버로부터 악성코드를 다운로드 받은 뒤,\r\nCreateProcessW API 함수를 통해 받은 파일을 실행한다. 그 이후 프로세스, 스레드 핸들 종료 및 파일을 삭\r\n제한다.\r\nhttps://suspected.tistory.com/269\r\nPage 11 of 13\n\nsub_40E770 : GetAsyncKeyState, GetKeyState, GetWindowTextW API 함수를 통해 키로깅 관련 행위를 수행\r\n하는 것으로 예상된다.\r\nExports 함수 확인결과, ReflectiveLoader, getVersion 함수가 확인됐다. ReflectiveLoader 함수는 파일로 존재\r\n하는 바이너리(보통 DLL)를 메모리에서 바로 실행하는 기능을 가지고 있다고 한다. 내/외부 벤더 보고서\r\n에도 악성코드에서 주로 사용하는 방법이라고 명시되어 있다. 주관적인 의견으로, C2 서버에서 추가적으\r\n로 추가 파일(DLL)을 다운로드 받아 해당 Exports 함수를 수행할 것으로 예상된다.\r\n[결론]\r\n본 게시물에서는 \"전라남도 코로나바이러스 대응 긴급 조회.hwp\" 분석을 수행했다. 내부적으로 한글 문서\r\n구조, PostScript, 쉘코드, PE 파일 등을 분석하는 시간을 가졌다. 5개의 C2 주소를 확인했으며, 2개의 주소\r\nhttps://suspected.tistory.com/269\r\nPage 12 of 13\n\n만 이용됐다. 나머지 3개의 C2는 테스트 목적으로 만들어진 것인지는 확실하진 않다. 결론적으로, 정보유\r\n출형 백도어로 확인됐으며, 해당 내용 관련 메일을 수신 받았을 경우 주의할 필요가 있다.\r\n[IOC]\r\nhxxp://www.kingsvc[.]cc/index[.]php\r\nhxxp://www.sofa[.]rs/wp-admin/network/server_test[.]php\r\nhxxp://www.afuocolento[.]it/wp-admin/network/server_test[.]php\r\nhxxp://www.mbrainingevents[.]com/wp-admin/network/server_test[.]php\r\nMicrosoft\\\\Windows\\\\WinX\\\\config.txt\r\n3edd95d6ecf200ecbafd259e15f321353e4c4b7b15a536b0b8066a2ad647460f\r\na1d59162664163a16502e33286cd8d54b9f5c713325b570e8db493edf55d99f9\r\n88c168cd261dabea1b7223e8c05042be7e0505dedf6fd5effea90ae42e127968\r\n7050af905f1696b2b8cdb4c6e6805a618addf5acfbd4edc3fc807a663016ab26\r\nca47eb3a62a19e378b15b5714fcf61cfec528d8e27a71ed414d1128658671c8c\r\nc0bd35a36ea5227b9b981d7707dff0e2c5ca87453a5289dc4a5cd04c7e8b728c\r\nff4ce7f350b0063c9683499e42028f129195f8d85c372b54f7b52380c64d5ac9\r\n[Reference]\r\nSource: https://suspected.tistory.com/269\r\nhttps://suspected.tistory.com/269\r\nPage 13 of 13",
	"extraction_quality": 1,
	"language": "KO",
	"sources": [
		"Malpedia"
	],
	"references": [
		"https://suspected.tistory.com/269"
	],
	"report_names": [
		"269"
	],
	"threat_actors": [],
	"ts_created_at": 1775434856,
	"ts_updated_at": 1775791236,
	"ts_creation_date": 0,
	"ts_modification_date": 0,
	"files": {
		"pdf": "https://archive.orkl.eu/d8a507a5a102494b45c5ec114eabdf17fe348ccb.pdf",
		"text": "https://archive.orkl.eu/d8a507a5a102494b45c5ec114eabdf17fe348ccb.txt",
		"img": "https://archive.orkl.eu/d8a507a5a102494b45c5ec114eabdf17fe348ccb.jpg"
	}
}