일단 따라하는 모의해킹 - ROOTME
작성자 - 호롤로롤문제
1.포트 80의 웹서버를 향해 디렉토리 브루트포스 공격을 날릴 때, 어떤 툴을 이용했나요?
2.디렉토리 브루트포스를 통해 파일 업로드가 가능한 페이지를 확인했는데요. 이 페이지의 이름은 뭐였을까요?
3.영상에서 리버스쉘 업로드 우회를 위해 어떤 파일 확장자를 사용했나요?
4.SUID 비트가 세팅되어 있던 파일은 뭐였나요? 그냥 바이너리 이름만 영어로 적어주세요.
5.user.txt 의 플래그는 뭔가요?
6.root.txt의 플래그는 뭔가요?
실습
처음 시작은 항상 포트스캔으로 시작하여 어떤 서비스가 있는지 확인해봅시다.
22번 SSH 서비스 포트와, 80 웹 서비스가 열려 있는것을 확인해 볼 수 있으며, PHPSESSID를 사용하는걸 보아 PHP를 기반하여 사용되어진다는 것을 알 수 있습니다.
홈페이지 접속 결과 별다른 소득은 없었으며, 해당 페이지에 대해 디렉토리 브루트포스 공격을 시도해 봅시다.
1.포트 80의 웹서버를 향해 디렉토리 브루트포스 공격을 날릴 때, 어떤 툴을 이용했나요?
→gobuster
PHP를 사용한다는 정보를 알았으니, 옵션에 php를 주고 돌렸더니 위와 같은 결과를 얻을 수 있었습니다.
- /css
- /index.php/
- /js/
- /panel/
- /uploads/
해당 디렉토리 중 파일을 업로드 해볼 수 있는 곳은 /uploads/ 경로가 유력해 보인다. 접근해본니다.
접근해보니 별다른 파일은 없고 디렉터리 리스팅이 되는것을 볼 수 있었습니다.
이곳에 파일을 올리고, 리버스 쉘을 사용하여 침투하면 될듯합니다.
2.디렉토리 브루트포스를 통해 파일 업로드가 가능한 페이지를 확인했는데요. 이 페이지의 이름은 뭐였을까요?
→/panel/
panel의 경로에 접근하니 파일을 업로드 할 수 있는 페이지였고, 칼리에서 기본적으로 제공하는 리버스 쉘을 이용해봅시다.
리버스 쉘을 사용하기위해 php파일을 접근하면 위와 같이 IP를 설정할 수 있으니, 공격자(칼리)의 IP로 수정해주고 업로드를 시도해봅니다.
업로드 시 확장자 검증을 하고 있어, PHP파일 업로드는 불가능할 것 같습니다. 확장자를 변경하여 업로드해봅시다.
3.영상에서 리버스쉘 업로드 우회를 위해 어떤 파일 확장자를 사용했나요?
→.php5
php5로 업로드를 해보니 성공적으로 업로드가 된 것을 확인해 볼 수 있습니다. 그럼 netcat을 이용하여 리버스쉘까지 연결해봅시다.
해당 명령어는 파이썬의 `pty` 모듈을 사용하여 쉘을 스폰(spawn)하는 명령어입니다. `pty`는 "pseudo terminal"의 약자로서, 프로세스 간 통신을 위해 가상 터미널 환경을 생성하는 데 사용됩니다. `import pty; pty.spawn("/bin/bash")`는 파이썬 인터프리터에서 실행하는 명령어로, `/bin/bash` 쉘을 가상 터미널로 생성하고 현재 터미널 세션과의 상호작용을 제공합니다. 이렇게 하면 파이썬 인터프리터가 아닌 실제 쉘로 전환됩니다. 이 명령어를 사용하면 현재 실행 중인 프로세스에서 쉘 환경을 얻을 수 있습니다. 쉘을 스폰한 후에는 명령어를 실행하고 출력을 보거나 입력을 받을 수 있습니다. 이를 통해 보다 효율적으로 명령어를 실행하고 명령어 결과를 확인할 수 있습니다. 주의할 점은 이 명령어는 사용자의 권한을 따르므로, 현재 사용자가 실행하는 프로세스에 할당된 권한으로 `/bin/bash` 쉘을 실행합니다. 따라서 명령어를 실행하는 사용자의 권한에 따라 쉘의 실행 권한도 결정됩니다. |
명령어에 대한 설명은 GTP에서 잘 설명되어 가져왔습니다. 간단히 말해 해당 명령어를 사용하여 bash 쉘을 실행 할 수 있습니다.
리버스쉘까지 연결되었고, 쉘을 연결했다면, 항상 최고 권한인 root로 상승해봐야 하는데, 이때 'linenum.sh'이라는 쉘 스크립트를 통해 권한 상승에 대한 정보를 수집해 줍니다.
(https://github.com/rebootuser/LinEnum/blob/master/LinEnum.sh)
해당 파일을 다운 받고 실행권한을 부여하여 실행해 보면 SUID, SGID가 설정된 파일이 python임을 알 수 있다.
4.SUID 비트가 세팅되어 있던 파일은 뭐였나요? 그냥 바이너리 이름만 영어로 적어주세요.
→python
그럼 어떤 방법으로 권한 상승을 할 수 있는지는 저번 시간에 학습했던 gtfobins에서 확인해 볼 수 있었습니다.
그렇게 아래와 같이 flag를 확인해 볼 수 있었습니다.
https://www.youtube.com/watch?v=whFYBxpNt5M
https://security.grootboan.com/
'Season 1 > 워게임' 카테고리의 다른 글
일단 배워보는 정보수집(1) (0) | 2023.05.29 |
---|---|
[CryptoHack] MATHEMATICS (Quadratic Residues, Legendre Symbol) (0) | 2023.05.28 |
[Cryptohack] General (CERTainly not, SSH Keys) (0) | 2023.05.27 |
[Starting Point] TIER 1 - Sequel (0) | 2023.05.27 |
[Starting Point] TIER 1 - Appointment (0) | 2023.05.27 |