KOROMOON

착한 사마리아인이 되고 싶습니다.

9/17/2020

공격자들이 악용하는 Windows 명령어 (Windows Commands Abused by Attackers)


JPCERT/CC 분석 센터의 Shusei Tomonaga 님이 2016년 1월 16일 자에 작성한 "Windows Commands Abused by Attackers" 글을 번역함.

링크 : 

https://blogs.jpcert.or.jp/en/2016/01/windows-commands-abused-by-attackers.html




Windows 운영체제에는 기본적인 명령어들이 설치됨.

그러나 일반 사용자가 실제로 사용하는 것은 그 일부에 불과함.

반면 JPCERT/CC 에서 조사한 자료에 따르면 공격자들은 이러한 Windows 명령어들을 시스템들의 정보를 획득하고 악성코드를 감염 확산하는데 악용하고 있음.

여기서 주목할 것은 일반 사용자와 공격자 간의 사용하는 Windows 명령어 차이임.


공격자들이 Windows 시스템을 공격할 때 사용하는 Windows 명령어을 알고 일반 사용자들이 사용하지 않는 명령어들의 비활성화를 통하여 공격 위협을 낮추는 방법을 제공함.


원격 제어용 악성코드(Remote Access Tool/Trojan-RAT)에는 원격 환경에서 쉘 명령어을 실행하는 기능이 있음.

이를 통해 공격자는 원격 환경에서 Windows 명령어를 실행할 수 있음.


이러한 악성코드를 시스템에 성공적으로 설치한 공격자는 기밀 정보 등을 수집하기 위해 다음 순서로 네트워크 내에 존재하는 다른 시스템을 제어하려고 시도함.


1. 초기 조사 : 감염된 시스템의 정보 수집

2. 탐색 : 감염 시스템에 저장된 중요 정보를 수집하고 동일 네트워크 상 다른 디바이스 스캔

3. 유포 : 다른 악성코드를 통하여 감염 시스템를 추가적으로 감염시키거나 다른 디바이스 감염 시도


Windows 명령어는 위의 모든 단계에서 사용됨.

각 단계에서 사용되는 각 Windows 명령어는 아래와 같이 소개되어 있음.




( 1 ) 초기 조사


표 1 에 감염된 시스템의 정보를 수집하기 위해 공격자가 자주 사용하는 명령어가 나열되어 있음.

여기서 "실행 횟수" 는 각각의 C&C 서버에 있는 3개의 공격 그룹이 사용하는 Windows 명령어 합계에서 파생됨. (자세한 내용은 부록 A, B, C 참조)


순위

명령어

실행 횟수

1

tasklist

155

2

ver

95

3

ipconfig

76

4

systeminfo

40

5

net time

31

6

netstat

27

7

whoami

22

8

net start

16

9

qprocess

15

< 표 1. 초기 조사 (상위 10개 명령어) >


공격자는 "tasklist", "ver", "ipconfig" 및 "systeminfo" 등의 명령어를 통하여 네트워크, 프로세스, OS 등 감염 PC의 정보를 획득하고 이러한 정보들은 가상머신 여부를 판단하는데 사용되기도 함.




( 2 ) 탐색


표 2 에 표시된 명령어는 기밀 정보 및 네트워크 내의 다른 시스템을 검색하는 데 사용됨.


순위

명령어

실행 횟수

1

dir

976

2

net view

236

3

ping

200

4

net use

194

5

type

120

6

net user

95

7

net localgroup

39

8

net group

20

9

net config

16

10

net share

11

< 표 2. 탐색 (상위 10개 명령어) >


공격자는 "dir" 및 "type" 명령어를 사용하여 파일을 검색함.

때때로 그들은 "dir" 명령어에 대한 적절한 옵션과 인수를 설정하여 감염된 시스템의 모든 문서 파일 목록을 수집함.


네트워크 검색에는 "net" 명령어가 사용됨.

특히 다음 명령어가 자주 사용됨.


net view       : 지정된 PC와 공유된 영역, 호스트 혹은 자원 정보를 얻는데 사용 

net user       : 시스템 계정 관련 정보를 얻는데 사용

net localgroup : 로컬 그룹에 속해져 있는 사용자 리스트 얻는데 사용

net group      : 특정 영역에 속해있는 사용자 리스트를 얻는데 사용

net use        : 공유 폴더 접근


또한, Active Directory 가 사용되는 환경에서 다음 명령어를 사용할 수 있음.

(부록 A 의 표 5 참조)

이러한 명령어는 Windows Server 에 설치되며 Windows 7 및 8.1 과 같은 클라이언트 운영체제에는 존재하지 않지만 공격자는 이러한 명령어를 외부에서 다운로드 설치하고 실행함.


dsquery : Active Directory 중 계정 검색

csvde   : Active Directory 중 계정정보 획득




( 3 ) 감염 확산


원격 시스템을 침입하고 네트워크 내에서 악성코드 감염을 확산시키기 위해 다음 명령어를 주로 실행됨.


순위

명령어

실행 횟수

1

at

103

2

reg

31

3

wmic

24

4

wusa

7

5

netsh advfirewall

4

6

sc

4

7

rundll32

2

< 표 3. 감염 확산 >


"at" 및 "wmic" 명령어는 주로 원격 컴퓨터에서 악성코드를 실행하는 데 사용됨.


공격자는 "at" 명령어를 사용하여 다음과 같이 연결 가능한 시스템에 대해 파일을 실행하는 작업을 등록하여 원격 시스템에서 명령어를 실행할 수 있음.


공격자는 "at" 명령어를 사용하여 원격호스트에서 예약 작업을 통해 호스트에 연결할 수 있음.

at \\[remote host name or IP address] 12:00 cmd /c "C:\windows\temp\mal.exe"


또한, "wmic" 명령어로 다음 옵션과 인수를 설정하여 공격자가 원격 시스템에서 명령어를 실행할 수 있음.

wmic /node:[IP address] /user:"[user name]" /password:"[password]" process call create "cmd /c c:\Windows\System32\net.exe user"




( 4 ) 불필요한 Windows 명령어 실행 제한


공격자가 사용하는 이러한 Windows 명령어는 신중하게 선택한 경우 일반 사용자가 사용하지 않는 명령어가 포함될 수 있음.

이러한 명령어 실행을 제한하는 AppLocker 및 소프트웨어 제한 정책을 사용하면 공격자의 악의적인 행위를 제한할 수 있음.

예를 들어 "net" 명령어를 제한하려면 그림 1 과 같이 규칙을 설정할 수 있음.

AppLocker 구성에 대한 자세한 내용은 Microsoft 웹사이트 참조하기 바람.

링크 : https://technet.microsoft.com/en-us/library/dd759117.aspx


< 그림 1. AppLocker 규칙 >


또한, AppLocker의 이벤트 로그 기능을 활성화 시켜놓는다면 윈도우 명령어 실행 혹은 실행 거부된 이력이 로그로 남기 때문에 침해사고 조사에 유용한 자료가 될 수 있음.


< 그림 2. AppLocker 에 의해 제한된 이벤트 로그 >


AppLocker 는 Windows 명령어만 모니터링할 수 있음.

이를 통해 AppLocker 는 의도하지 않은 Windows 명령어 실행을 방지할 수 없지만 실행 기록은 이벤트 로그에 기록됨.

공격자가 악의적인 행위를 목적으로 Windows 명령어 사용하는 경우 모니터링 목적으로 AppLocker 를 설정하는 것이 좋음.

Windows 명령어 실행은 로컬 보안 정책 > 고급 감사 > 시스템 감사 정책 - 로컬 그룹 > 세부 추척 > 프로세스 만들기 감사 (Audit Process Creation) 를 활성화하여 모니터링할 수도 있음

프로세스 만들기 감사에 대한 자세한 내용은 Microsoft 웹사이트 참조하기 바람.

링크 : 

https://docs.microsoft.com/ko-kr/windows/security/threat-protection/auditing/audit-process-creation




( 5 ) 결론


표적 공격에서 공격자는 악성코드에 구현된 기능을 사용할 뿐만 아니라 목적을 추구하기 위해 종종 Windows 명령어를 사용함.

이러한 활동을 방해할 수 있다면 사고의 확산을 상당히 조기에 예방할 수 있음.

그러나 Windows 명령어 사용을 즉시 제한하는 것은 어려울 수 있으므로 AppLocker 등을 사용하여 실행된 프로세스의 로그를 수집하는 게 좋음.

AppLocker 구성에 대한 자세한 내용은 Microsoft 웹사이트 참조하기 바람.




부록 A. 각 공격 그룹별 실행 명령어 목록 (A 공격 그룹)


순위

명령어

실행 횟수

옵션

1

tasklist

119

/s /v

2

ver

92

 

3

ipconfig

58

/all

4

net time

30

 

5

systeminfo

24

 

6

netstat

22

-ano

7

qprocess

15

 

8

query

14

user

9

whoami

14

/all

10

net start

10

 

11

nslookup

4

 

12

fsutil

3

fsinfo drives

13

time

2

/t

14

set

1

 

< 표 4. 초기 조사 (A 공격 그룹) >


순위

명령어

실행 횟수

옵션

1

dir

903

 

2

net view

226

 

3

ping

196

 

4

net use

193

 

5

type

118

 

6

net user

74

 

7

net localgroup

35

 

8

net group

19

 

9

net config

16

 

10

net share

11

 

11

dsquery

6

 

12

csvde

5

/f /q

13

nbtstat

5

-a

14

net session

3

 

15

nltest

3

/dclist

16

wevtutil

2

 

< 표 5. 탐색 (A 공격 그룹) >


순위

명령어

실행 횟수

옵션

1

at

98

 

2

reg

29

add export query

3

wmic

24

 

4

netsh advfirewall

4

 

5

sc

4

qc query

6

wusa

2

 

< 표 6. 감염 확산 (A 공격 그룹) >




부록 B. 각 공격 그룹별 실행 명령어 목록 (B 공격 그룹)


순위

명령어

실행 횟수

옵션

1

tasklist

29

/m /svc

2

whoami

6

 

3

ipconfig

5

/all

4

net start

4

 

5

netstat

3

-ano

6

nslookup

3

 

7

ver

2

 

8

time

1

/t

< 표 7. 초기 조사 (B 공격 그룹) >


순위

명령어

실행 횟수

옵션

1

dir

62

 

2

net user

21

/domain /add

3

net view

9

/domain

4

ping

4

 

5

net localgroup

4

/add

6

tree

3

/F

7

type

2

 

8

net group

1

/domain

< 표 8. 탐색 (B 공격 그룹) >


순위

명령어

실행 횟수

옵션

1

at

5

 

2

wusa

5

 

3

reg

2

 

4

rundll32

2

 

< 표 9. 감염 확산 (B 공격 그룹) >




부록 C. 각 공격 그룹별 실행 명령어 목록 (C 공격 그룹)


순위

명령어

실행 횟수

옵션

1

systeminfo

16

 

2

ipconfig

13

/all /?

3

tasklist

7

 

4

netstat

5

-ano

5

whoami

2

 

6

net start

2

 

7

arp

1

-a

8

chcp

1

 

9

net time

1

 

10

ver

1

 

< 표 10. 초기 조사 (C 공격 그룹) >


순위

명령어

실행 횟수

옵션

1

dir

11

 

2

net user

1

/all /?

3

net view

1

 

4

qwinsta

1

-ano

< 표 11. 탐색 (C 공격 그룹) >


* C 공격 그룹의 감염 확산 관련하여 명령어를 사용하지 않았으므로 생략됨.


댓글 없음:

댓글 쓰기