2023년 1월 1일
08:00 AM
Buffering ...

최근 글 👑

난독화

2022. 9. 18. 12:14ㆍSK Rookies 9/Application Secure

원래는 개발자들이 내부 정보를 숨기기 위한 목적으로 사용

공격 스크립트의 약 90%은 난독화를 이용하는 것이 특징

공격자들이 자신이 만든 스크립트의 내용을 숨기기 위한 목적으로 난독화를 사용

DBD 위한 스크립트의 경우, 악성코드가 있는 서버의 URL, IP주소, 악성코드의 이름 등이 들어있음

  (IP주소, URL 파악하면, 방화벽에 방문 금지 목록에 추가 ----> 우리 회사 직원들이 악성코드 유포지를 방문하지 않게 )

공격자들이 URL, IP주소, 악성코드 이름 등을 숨기기 위한 목적으로 난독화를 사용

난독화는 생소한 인코딩에 복잡한 함수를 포함 ----> 사람은 읽을 없지만, 웹브라우저는 읽을 있음

 

* String.fromCharCode   :  SCC 대문자로 사용 (대소문자를 구분)

 

* ASCII(7bit) : 대문자, 소문자, 숫자, 특수문자, 기능 등을 표시하기 위한 언어

 

* Unicode(16bit) : 2 16 = 65536  

 

* Base64 인코딩해주는 사이트

https://www.base64encode.org/

 

* Base64 디코딩해주는 사이트

https://www.base64decode.org/

 

연습) QXJlIHlvdSBzbGVlcGluZyBub3c/

    ----> 특징 : 대문자, 소문자, 숫자와 /, = 등이 사용됨

 

Base64 특징

  • 원문(Are you sleeping now?)보다 인코딩후에 약 1.4배정도의 크기로 증가하게 됨
  • 문자를 3,6,9 단위로 맞추기 때문에 모자라는 글자는 =을 추가하게 됨
    • 3,6,9는 패딩을 사용하지 않음
    • 2,5,8은 패딩(=)을 1개 사용
    • 1,4,7은 패딩(=)을 2개 사용 ==

16진수

  • 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F   (0~F,   G이후는 사용되지 않음)
  • 구분자로 주로 사용하는 것이 %를 사용
  • 16은 2의 4승이므로 4bit,  4bit를 두개로 묶으면 8bit가 되고 8bit를 1byte라고 하고 Octet
  • %(구분자)를 1byte단위로 사용하니까 %hexhex 패턴을 사용   ex) %0D
  • 구분자로 \x를 사용하기도 함      ex) \x0D\x0A\xD8

 

UCS(범용 문자 집합)

  • 구분자를 %u를 사용하기도 함
  • 구분자로 %,  %u,  \x 등이 사용됨

 

어느 고객사의 웹사이트에 등록된 게시물(해킹????)

\xec\x8b\xa0\xeb\x8f\x84\xeb\xa6\xbc\xec\xa0\x90%20\xec\x9e\xa0\xec\x9d\xb4\xed\x8e\xb8\xed\x95\x9c\xeb\x9d\xbc\xed\x85\x8d\xec\x8a\xa4%20\xec\xb6\x94\xec\xb2\x9c\xed\x95\xb4\xec\x9a\x94~!!

hex to ascii 검색해서 첫번째 링크

https://www.rapidtables.com/convert/number/hex-to-ascii.html

위의 게시물에서 \x 단순 구분자일 뿐이고, 제외하고 나면 hex 남음, hex ASCII또는 UTF-8 바꾸면 내용을 있게

 

 

힌남노를 한글로 보내면 UTF-8 변환하지만, hinamnor 보내면 ASCII 전달됨

https://search.naver.com/search.naver?where=nexearch&sm=top_hty&fbm=0&ie=utf8&query=%ED%9E%8C%EB%82%A8%EB%85%B8

https://search.naver.com/search.naver?where=nexearch&sm=top_hty&fbm=0&ie=utf8&query=hinamnor

 

UTF-7 html 만들어서 실행시키면

  • Chrome이나 Edge는 코드가 그대로 보임 ---> 실행 안됨
  • Internet Explorer에서는 경고창이 뜨고 승인하면 실행됨

 

실습준비) Malzilla 다운로드 하기(이미지 추후 업로드)

https://malzilla.org/downloads.html

   here 클릭  >  Malzilla 1.2.0 클릭 ----> 5초후 다운로드 시작

압축을 풀고, 폴더에 들어가면,  malzilla.exe 파일 실행

 

* 난독화 해제도구인 Malzilla 이용해서 실습

- 인코딩해석하기.pptx 파일의 3번째 페이지의 스크립트에서 태그를 제외하고 e에서 ;까지를 복사해서

- Malzilla Decoder 탭에서 붙여넣기  ---> Run Script 클릭하면 아래쪽에 해석 결과가 나타남

 

* 난독화를 해제하는 방법

- 최대한 정리를 해서(전처리해서) hex 변환하고 hex ASCII(또는 UTF-8) 변환하면 내용이 보임

 

 

'SK Rookies 9 > Application Secure' 카테고리의 다른 글

Backdoor & Reverse  (0) 2022.09.18
Kali Linux 실습  (0) 2022.09.18
BeeBox 실습  (0) 2022.09.18
DVWA 실습  (0) 2022.09.18
OWASP Top 10 (2021)  (0) 2022.09.17