이번 포스팅에서는 웹셸에 대해 알아보겠습니다.
웹셀이란 웹에서 cmd나 터미널처럼 명령어를 실행시키기 위해서 만들어진 프로그램입니다.
대체로 웹사이트 성격에 맞게 PHP 나 ASP , JSP 등으로 구성되게 됩니다.
웹셸은 파일업로드를 이용하여 해당 웹페이지 서버에 웹셸을 업로드한후 경로를 찾아 그 프로그램을 실행시키게 되면 서버의 명령권한을 가지게 됩니다. 그것을 이용해서 필요한 정보를 취득하거나 시스템을 붕괴시킬수 있는 기법입니다. SQL INJECTION , XSS 와 함께 간단하면서도 큰피해를 줄수있고 웹 공격중 많은 빈도수를 차지하고 있는 기법중 하나입니다.
한번 테스트를 하면서 해보겠습니다.
현재 사이트는 제가 만들어 쓸려다가 귀찮아서 안하고 있는 웹사이트입니다.
여기에 예시를 들어 설명해 보겠습니다.
현재 게시판이나 사진 업데이트 같은 기능이 없기에 관리모드에서 웹셀을 올리겠습니다.
다음은 관리 페이지의 모습입니다.
웹페이지의 파일목록들을 모았습니다.
여기서 업로드로 웹셀을 올려보겠습니다.
다음으로 웹셀이 업로드 됬습니다.
밑에 파일 목록에 Snakeshell.php가 올라온것을 확인할수 있습니다.
게시판이 없기에 이런식으로 올렸으나 만약 사진이나 파일업로드 게시판에 확장자 검사를 안해준다면
바로 웹셀을 업로드 하여 공격할수 있겠습니다.
파일의 경로를 알아보기위해 앞의 그림의 경로를 확인해 보았습니다.
복사후 메모장에 붙여넣겠습니다.
아까있던 html파일 안에 있는 images파일에 있는 이미지군요
그럼 웹셸이 올라온곳은 html 파일안에 바로 있었으니깐
주소뒤에 바로 쉘을 실행시키면 된다는 것을 알수있습니다.
orochi.mireene.com/Snakeshell.php?xshell
이것을 주소에 입력하여 웹셸을 실행시켰습니다.
제가 가지고있는 웹셸은 xshell을 약간 변형시킨 형태의 웹셸입니다.
웹셸이 실행됬습니다.
일단 PHPinfo를 보았습니다,
웹셸이 PHP의 정보를 모아주었습니다.
다음은 디렉토리 목록을 확인하였습니다.
아까 관리페이지에서 보았던 폴더, 파일등이 눈에 들어오는 군요.
다음은 파일업로드를 선택해 보았습니다.
웹 서버로 자신이 원하는 파일을 전송할수 있습니다.
이런걸 이용해서 웹 서버로 원격을 할수 있는 프로그램등을 보내고 명령어로 실행하여
원격권한을 취득할수도 있을것 입니다.
다음은 SQL 쿼리문 입력하는 곳입니다.
이걸로 웹서버에 있는 DB로 쿼리문을 입력하여 데이터를 가로채거나 안좋은 데이터를 삽입하는등
여러가지 방법이 생깁니다.
다음은 명령어창입니다.
저는 이 명령어 창에서
ls라는 명령어로 디렉토리와 파일의 목록을 보았습니다.
또 ifconfig 명령을 사용하여 네트워크 정보를 보았습니다.
정보가 떳습니다.
이 웹 서버는 linux기반이기 떄문에 리눅스 명령어들로 서버에 대한 정보를 취득할수 있습니다.
만약 이 서버에 apt같은 명령어가 설치되어 있다면..
이런식으로 스니핑 프로그램을 받아 정보를 가로챌수도 있습니다.
이와같이 웹셀은 투입되서 활동시 서버에 상당한 영향을 미칠수 있습니다.
여러가지 정보를 취득하고 서버를 망가뜨릴수도 있는 강력한 무기입니다.
지금까지 웹셸에 대해 조금 알아보았습니다.
다음 포스팅때는 웹셸, 즉 파일업로드에 대한 보호법에 대해 알아보겠습니다.
감사합니다.
http://noon.tistory.com/337
'보안 > 웹' 카테고리의 다른 글
Java Filter 를 이용하여 XSS (크로스 사이트 스크립트) 를 처리하자 (0) | 2015.12.22 |
---|---|
[역공] 간단하고 깔끔한 - 웹 보안 프로그램 회피방법 (Fiddler - Web Debugging Proxy 활용) (0) | 2015.11.20 |
SSO 인증 (0) | 2015.11.20 |
웹 보안에 자주사용되는 공격기법 (0) | 2015.11.20 |
XSS(Cross Site Scripting) 공격 (0) | 2015.11.20 |