WEBVTT

00:00.260 --> 00:05.420
이제 dnSpy를 사용하여 정적 분석을 해보겠습니다.

00:05.960 --> 00:12.800
그리고 32비트 애플리케이션이므로 32비트 버전의 dnSpy를 사용하겠습니다.

00:13.790 --> 00:16.820
그래서 저는 이미 32비트 dnSpy를 여기에서 열었습니다.

00:17.090 --> 00:21.170
이제 이 멀웨어를 dnSpy에 로드하겠습니다.

00:22.590 --> 00:24.570
그리고 분석 및 디컴파일을 진행합니다.

00:28.010 --> 00:31.430
여기에서 어셈블리 이름 등에 대한 기본 정보를

00:32.450 --> 00:34.410
확인할 수 있습니다.

00:34.410 --> 00:36.810
그리고 조립 회사는 미니툴입니다.

00:36.900 --> 00:41.550
솔루션 어셈블리 설명은 미니툴 파워 데이터 복구입니다.

00:42.540 --> 00:47.280
그리고 이것은 실제로 멀웨어이기 때문에 가짜 설명일 뿐입니다.

00:48.090 --> 00:53.300
여기에서 진입 지점이 GornyKemp임을 알 수 있습니다.

00:53.300 --> 00:53.300
메인.

00:54.000 --> 00:57.090
그래서 이걸 여기로 가져올게요.

00:58.020 --> 00:58.290
알겠습니다.

00:58.290 --> 01:00.360
이것을 클릭하여 메인으로 이동합니다.

01:01.640 --> 01:07.400
그리고 여기가 메인이고, 여기에서 GornyKemp가 메인 클래스인 것을 볼 수 있습니다.

01:07.850 --> 01:12.440
그리고 여기 안에는 다른 많은 수업도 있습니다.

01:12.560 --> 01:18.680
동적, 암호화, FileZilla, IMVU, 소셜 네트워킹 자료, 인터넷 다운로드

01:18.920 --> 01:26.870
관리자, JDownloader, 키훅, 팔톡, 복구 브라우저, 복구 메일, 그리고 이 모든 것이 브라우저뿐만 아니라

01:26.900 --> 01:35.810
메일의 비밀번호 도용 프로그램이라는 인상을 줍니다. 그리고 여기서 '전송'은 명령 및 제어

01:35.840 --> 01:40.910
서버에 연결하는 것처럼 들립니다.

01:41.030 --> 01:48.600
마지막으로 난독화되어 있는 것처럼 보이는 이상한 이미지가 하나 있는데, 나중에 de4dot을 사용하여

01:48.600 --> 01:50.780
난독화를 해제할 것입니다.

01:51.410 --> 01:55.910
이제 GornyKemp라는 진입점을 살펴보겠습니다.

01:57.230 --> 02:04.370
이를 클릭하고 진입 지점으로 이동하기만 하면 됩니다.

02:04.700 --> 02:06.560
여기에서 엔트리 포인트로 이동할 수 있습니다.

02:07.880 --> 02:10.010
알겠습니다. 보시다시피 이것이 진입점이자

02:10.430 --> 02:13.220
주요 기능인 메인 메소드인 것 같습니다.

02:13.460 --> 02:19.010
여기에서 특정 기능을 위해 각각 생성되는 많은 스레드를 볼 수 있습니다.

02:19.160 --> 02:22.700
마지막으로 하단에는 애플리케이션이 있습니다. 실행.

02:22.700 --> 02:30.010
따라서 이것은 메인 프로그램을 실행하고, 배포하려는 트로이 목마 또는 RAT를 사용자 지정할

02:30.020 --> 02:39.590
수 있는 일종의 원격 액세스 트로이 목마 패키지라는 인상을 주며, 반드시 모든 것이 활성화되는 것은 아닙니다.

02:40.070 --> 02:45.350
그럼 어디 보자. 첫 번째 항목인 ShowMessage를 클릭하면 됩니다.

02:46.460 --> 02:47.360
그래서 비어 있습니다.

02:47.390 --> 02:48.680
즉, 이 기능은 활성화되어 있지 않습니다.

02:48.680 --> 02:58.230
백스페이스를 클릭합니다. 이 AddToStartup을 클릭합니다. 백스페이스. WebsiteBlocker도

02:58.230 --> 03:03.660
활성화되지 않았습니다. 백스페이스. WebsiteVisitor도 활성화되지 않았습니다.

03:03.690 --> 03:12.690
백스페이스. 자체 파괴도 활성화되지 않았습니다. 백스페이스. GetCurrentWindow. 따라서 GetCurrentWindow가 활성화된

03:12.690 --> 03:13.230
것 같습니다.

03:13.440 --> 03:23.340
따라서 이것은 일종의 키로거로 보이며 여기에서 창 제목과 컴퓨터 시간 및 키 입력 유형 등과

03:23.340 --> 03:29.670
같은 키 로그의 일부 콘텐츠를 생성하려고 합니다.

03:30.120 --> 03:38.280
더 자세한 정보를 얻고 싶다면 실제로 이 키 입력 로그를 검색하여 어디에서 사용되었는지 확인할

03:38.300 --> 03:44.250
수 있습니다. 그래서 우리는 이것을 검색할 수 있습니다. 마우스 오른쪽 버튼을 클릭하고 찾기를 클릭합니다.

03:46.570 --> 03:53.410
여기에서 이 기능이 사용되는 장소의 목록을 스크롤할 수 있습니다. 그리고 이 함수에서 키 입력 로그가 사용되는데, 이 메서드는

03:53.410 --> 03:55.840
RecordKeys라고 합니다.

03:55.840 --> 03:58.690
여기에서 키 입력을 캡처하는 것을 볼 수 있습니다.

03:58.720 --> 04:06.730
일정 밀리초 동안 절전 모드로 전환된 후 영구 루프로 전환되어 키 입력을 계속 기록합니다.

04:06.730 --> 04:10.510
다음은 키 로그 키 입력을 캡처한 것입니다.

04:10.510 --> 04:13.960
그리고 여기 아래에서는 어딘가로 보내는 것 같습니다.

04:14.320 --> 04:18.460
이제 이 링크를 클릭하여 어디로 이동하는지 확인해 보겠습니다.

04:19.030 --> 04:23.620
여기에서 명령 및 제어 서버인 URL을 확인할 수 있습니다.

04:23.620 --> 04:29.200
따라서 이것은 타협을 나타내는 지표가 될 수 있으며, 앞서 동적 분석을 수행했을 때 동적 분석에도

04:29.200 --> 04:30.880
표시되었을 것입니다.

04:31.270 --> 04:34.270
자, 백스페이스를 클릭하여 여기로 돌아가 보겠습니다.

04:34.870 --> 04:35.170
알겠습니다.

04:35.200 --> 04:35.980
이제 계속 진행하겠습니다.

04:35.980 --> 04:39.490
이번에는 SendLog라는 메서드를 클릭합니다.

04:40.360 --> 04:46.340
여기서 SendLog가 실제로 명령 및 제어 서버로 무언가를 보내려고 하는 것을 볼 수 있습니다.

04:46.820 --> 04:48.740
여기에는 웹클라이언트가 있습니다.

04:48.920 --> 04:54.920
그리고 여기서 다운로드 문자열은 명령 및 제어 서버에서 정보를 다시 가져옵니다.

04:55.100 --> 05:08.060
그리고 여기에서 "machineName", "machineTime"을 반대로 볼 수 있는데, 아마도 난독화를 시도한 것으로 보입니다.

05:08.060 --> 05:10.790
여기서는 '비밀번호'를 반대로 표시합니다.

05:10.790 --> 05:17.870
여기에는 '클립보드'가 반대로 표시되어 있습니다. 그리고 여기에 '스크린샷'과 '알림'이 있습니다.

05:17.870 --> 05:23.120
따라서 명령 및 제어 서버에서 돌아오는 명령인 응답을 기반으로 캡처하려는

05:23.120 --> 05:24.980
것일 수 있습니다.

05:25.640 --> 05:32.450
이제 이전 위치인 메인으로 돌아가서 분석을 계속해 보겠습니다.

05:32.450 --> 05:36.020
여기에는 GetRecordKeys가 있습니다.

05:36.020 --> 05:40.220
이것은 우리가 이미 본 키 입력 부분입니다.

05:40.910 --> 05:43.610
다시 돌아왔습니다. SendNotification.

05:44.060 --> 05:47.360
따라서 여기에는 아무것도 없으며 활성화되지 않은 것 같습니다.

05:47.630 --> 05:53.180
추가핫워드도 활성화되어 있지 않습니다. 클립보드 로깅.

05:53.390 --> 06:00.470
따라서 악성코드가 클립보드에서 시간, 텍스트 등의 정보를 훔치려고

06:00.470 --> 06:03.140
시도하는 곳입니다.

06:03.140 --> 06:07.640
자, 이제 다시 메인으로 돌아가서 다시 살펴봅시다.

06:07.760 --> 06:10.790
다음은 SetApartmentState입니다.

06:11.060 --> 06:11.540
알겠습니다.

06:11.540 --> 06:13.130
활성화되어 있지 않고 비어 있습니다.

06:13.310 --> 06:24.500
그리고 여기에서는 스크린 로깅이 활성화되지 않았습니다. 다운로드 및 실행이 활성화되지 않았습니다. 백스페이스. ExecuteAndBindedFiles도

06:24.540 --> 06:28.100
활성화되지 않았습니다. 그리고 비밀번호 복구.

06:28.400 --> 06:28.940
예.

06:28.940 --> 06:32.630
따라서 비밀번호 복구가 주요 기능 중 하나라는 것을 알 수 있습니다.

06:32.660 --> 06:34.310
여기에는 많은 일이 일어나고 있습니다.

06:34.550 --> 06:35.000
알겠습니다.

06:35.000 --> 06:36.740
첫 번째 사례를 살펴보겠습니다.

06:36.770 --> 06:43.010
이들은 이메일과 웹 브라우저의 모든 클라이언트입니다.

06:43.010 --> 06:49.130
먼저 Outlook을 살펴보겠습니다. 그리고 여기서 Outlook 함수는 Fence라는 함수를 호출합니다.

06:49.820 --> 06:57.920
그러면 여기에 있는 Fence가 목록에서 어떤 종류의 검색을 수행합니다.

06:58.130 --> 07:00.200
그렇다면 'arList'란 무엇인가요?

07:00.650 --> 07:01.010
알겠습니다.

07:01.010 --> 07:05.480
따라서 "arList"를 검색하여 결과를 확인해야 합니다. "ar_List".

07:06.140 --> 07:06.590
알겠습니다.

07:06.590 --> 07:10.970
따라서 이 목록은 이 함수인 ReadMail을 통해 채워지는 것 같습니다.

07:10.970 --> 07:12.350
그럼 따라해 보겠습니다.

07:12.530 --> 07:17.390
그리고 여기서 ReadMail은 이 '메일'의 폴더 경로를 가져오려고 합니다. txt".

07:17.690 --> 07:21.710
앞서 동적 분석을 수행했을 때 확인된 내용입니다.

07:22.370 --> 07:22.700
알겠습니다.

07:22.700 --> 07:29.930
여기에서 이메일의 내용을 이 파일에 저장하려고 시도하는 것을 볼 수 있지만 여기에 저장하기

07:29.930 --> 07:36.410
전에 이메일에서 정보를 추출하는 프로세스를 거쳐야 하며 아마도 이것이 그

07:36.560 --> 07:39.110
방법일 것입니다.

07:39.260 --> 07:44.960
이 문자열을 거꾸로 실행하려고 하는데, 거꾸로 하면 "GetExecutingAssembly"가

07:44.960 --> 07:54.740
되고 그 다음에 "ResourceManager"가 되고 웹 경로를 실행한 다음 리소스 관리자에서 무언가를 가져온 다음

07:54.740 --> 08:03.560
이 함수인 RsmDecrypt를 사용하여 암호를 해독하려고 합니다.

08:04.630 --> 08:09.730
알겠습니다. 이것을 클릭하여 어떤 기능을 하는지 확인해 보겠습니다.

08:09.850 --> 08:12.940
따라서 리소스 관리자, 파일의 리소스 섹션,

08:12.970 --> 08:19.250
"키" 리소스, 아마도 이것 또는 이것에서 무언가를 가져오고 있습니다.

08:19.270 --> 08:23.290
그런 다음 RSM을 사용하여 암호를 해독합니다.

08:23.980 --> 08:26.010
그럼 암호 해독이란 무엇인지 알아봅시다.

08:26.020 --> 08:26.830
클릭합니다.

08:27.660 --> 08:35.820
여기에서 볼 수 있듯이 대칭적인 복호화 루틴으로 보이는 복호화 루틴입니다.

08:35.820 --> 08:41.520
따라서 RSA는 비대칭이기 때문에 RSA가 아닐 수도 있습니다.

08:41.670 --> 08:49.530
따라서 이것은 대칭 암호화라는 힌트를 제공합니다. 따라서 리소스 섹션에 있는 모든 내용을 해독하는 데

08:49.530 --> 08:50.700
사용합니다.

08:50.850 --> 08:53.040
자, 다시 돌아가서 확인해 보겠습니다.

08:53.340 --> 08:55.650
이것이 바로 RsmDecrypt입니다.

08:56.830 --> 09:02.170
따라서 여기에서 리소스 관리자, 가져 오려는 리소스가 "키"로 표시됩니다.

09:02.320 --> 09:04.570
이제 가서 리소스를 찾아보겠습니다.

09:04.600 --> 09:05.290
여기까지입니다.

09:05.320 --> 09:06.460
"키" 리소스.

09:06.970 --> 09:07.870
이걸 보세요.

09:11.010 --> 09:12.330
헥스 에디터에서 엽니다.

09:14.570 --> 09:14.870
알겠습니다.

09:14.870 --> 09:16.910
그래서 이것은 암호화되어 있는 것 같습니다.

09:17.840 --> 09:18.170
알겠습니다.

09:18.170 --> 09:24.290
우리가 분석하고 있는 경로, 즉 메인 함수인 어셈블리로 돌아가 보겠습니다.

09:24.290 --> 09:25.100
뒷면을 클릭합니다.

09:25.880 --> 09:27.710
닫을 수 있습니다.

09:28.460 --> 09:28.970
알겠습니다.

09:28.970 --> 09:31.770
다시 이 기능으로 돌아와서 살펴보겠습니다.

09:31.790 --> 09:35.480
따라서 리소스, 방금 본 두 리소스를 해독한

09:35.810 --> 09:40.820
다음 여기에서 실행하는 것처럼 보입니다.

09:41.150 --> 09:47.060
따라서 어떻게든 이것을 해독하고 리소스 섹션을 해독하는 방법을 찾아야 합니다.

09:47.060 --> 09:51.470
리소스 섹션은 실행 파일, 임베디드 실행 파일일 수 있습니다.

09:52.040 --> 09:52.370
알겠습니다.

09:52.370 --> 09:59.000
다음 동영상에서는 이 동영상을 계속 진행하면서 여기에서 '핵심' 리소스를 해독하여 그 안에 무엇이 있는지 살펴볼

09:59.000 --> 09:59.840
것입니다.

09:59.870 --> 10:01.820
다음 영상에서 뵙겠습니다.

10:02.180 --> 10:03.350
시청해 주셔서 감사합니다.
