문제

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/

 

그루트 시큐리티 소개 - 그루트 시큐리티

그루트 시큐리티는 사이버 보안 커뮤니티로서 여러가지 사이버보안 해킹 기술강의 뿐만 아니라 여러 재밌는 사이버 보안 주제/팁/노하우등을 같이 공유하고 더 나아가서 사이버보안에 관심이

security.grootboan.com

 

복사했습니다!