[Shielders] Rookies-08

Dong Jung·2022년 9월 6일
0

Rookies

목록 보기
9/24
post-thumbnail

2022.09.06

웹해킹.03

WebShell
1. WebShell이란?
2. 실습

1.WebShell이란?

웹쉘은 관리자가 SSH, FTP를 이용하지 않고 웹브라우저로 웹서버를 관리하기 위한 도구로 처음 만들어졌다고한다.(GUI로 설정 가능)
하지만 공격자들이 웹쉘을 웹서버에 업로드해서 원격으로 조종하는 용도로 더많이 쓰이게된다.

  • 웹쉘 대응 방법

1) 웹쉘을 업로드하지 못하게 해야한다
2) 업로드된 웹쉘은 동작하지 못하도록 해야 함 -> 압축해서 보관, 읽기만 가능한 스토리지 보관
3) 업로드한 웹쉘의 위치를 찾을 수 없도록 위치 경로를 알려주지 않거나, 파일이름을 바꾸는 방법
4) 웹쉘 대응 보안 솔루션을 배치해야 함

Threat map 으로 세계적인 실시간 공격현황도 볼수 있다.
https://threatmap.checkpoint.com/

웹쉘의 Content-Type은 text/plain 이지만, Proxy 도구(Burp Suite)를 이용해서 image/jpeg라고 속여 업로드 하기때문에 Client가 보내는 정보를 그대로 신뢰하기보다는 정보를 검증하는 솔루션을 사용하여야한다.

2.실습

실습환경

가상머신 : vmware Workstation 16 Player
운영체제 : Windows Server 2003
Memory : 384 MB
Processors : 1
Hard Disk : 8 GB
Network : NAT

가상머신 : vmware Workstation 16 Player
운영체제 : Ubuntu-20.04.2.0
Memory : 2 GB
Processors : 2
Hard Disk : 20 GB
Network : NAT

1) Deface 실습 : 웹사이트의 첫페이지를 바꾸는 실습

해킹이 되어 파일을 업로드 할 수 있다는 가정하에 진행되었다.
웹서버의 index 파일이 있는곳에 첫페이지에 올릴 이미지 파일을 업로드 하였다.

그이후 index파일을 수정하여 body태그안에 해당 이미지파일올려 웹사이트의 첫페이지를 수정하였다.

2) SQL 인젝션 실습


인젝션공격을 실습할 로컬의 웹서버이다.

처음 접속할때는 아무런 정보가 없기때문에 계정을 알아내기위하여 자유게시판에 접속하여 아이디를 알아내었다.

그후 이전과같이 PW에 인젝션구문을 넣어 계정으로 로그인하였다.

ID : webmaster
PW : ' or 1=1;--


로그인 되는걸 확인할 수 있다.

  • Blind SQL injection

DB 구조 등을 모르는 상태에서 SQL 인젝션을 하는 것을 뜻한다
DB 구조를 알기 위해 일부로 에러메시지를 띄워 DB구조를 확인할 수 있다.

이런 오류 메시지로 테이블구조들을 확인하여 update 구문으로 유저의 비밀번호를 바꾸는것도 가능하다

'; update tbl_member set passwd='1234' where userid='webmaster'; --

바뀐 비밀번호 1234로 접속할 수 있었다.

3) 웹쉘실습

  • low 레벨에서 실습

    인터넷에서 다운받은 b374k 웹쉘을 실습 서버에 업로드 하였다.

    해당경로로 접속하여 웹쉘을 실행해보았다.
    웹쉘로 해당 웹서버의 자료들 삭제및 수정등 정보자산에 위험이될수있는 많은 행위를 할 수 있었다

  • Medium 레벨에서 실습


Medium 레벨로 보안레벨을 상승시키자 JPEG나 PNG가 아니면 업로드가 안되는 모습을 확인할 수 있다.

업로드중..

업로드중..
버프슈트라는 프록시 툴을 이용하여 content-Type을 image/png로 변경해서 우회하였다
업로드중..
성공적으로 우회하여 업로드하였다

profile
보안새내기

0개의 댓글