728x90

원문출처 : https://hamonikr.org/Free_Board/118707

 

자유게시판 - 새로 출시한 모의 해킹 OS

1. Kali Linux 2023.01  Kali Linux 같은 경우 2022.4 버전이 공식 이미지 구요 모의해킹 OS 중에 누구에게 물어봐도 1위라고 할수 있는 OS 입니다 또한 데비안 기반으로 만들어져 있어서 안정성에서도 뛰어

hamonikr.org

 

1. Kali Linux 2023.01 

Kali Linux 같은 경우 2022.4 버전이 공식 이미지 구요

모의해킹 OS 중에 누구에게 물어봐도 1위라고 할수 있는 OS 입니다

또한 데비안 기반으로 만들어져 있어서 안정성에서도 뛰어나다 할수 있습니다.

2023.01 버전은

 

https://cdimage.kali.org/kali-images/kali-weekly/

 

위주소에서 2023.W01 버전이며 아직까지 Kali에서 공식적인 입장을 내놓지 않고 

있습니다.

Kali Linux는 그 유명한 BackTrack5 OS 후속작입니다.

 

 

 

2. Predator OS 

우분투 기반의 이란 모의해킹 OS 로써 

자동화 툴을 Kali Linux 보다 더 많이 지원을 해주고 있습니다.

모의해킹 초보자를 위해서 튜토리얼을 지원해주고 있어서

모의해킹을 처음 공부하시는 분들에게 추천할수 있는 제품입니다.

우분투 기반이라서 안정성은 말할 필요도 없겠지요 ^^

 

https://predator-os.com/

 

위 사이트에 다운로드가 가능하며 

전 버전이 Predator 2.0 이였으나 

2023년 1월 1일 부터 2.5로 업데이트 되었습니다.

 

 

3. Parrot OS

Parrot OS 는 새버전을 출시한지 2022년 11월 28일에 새로운 버전이 출시하였습니다.

출시한지는 괘 시간이 지났으나 

다양한 에디션으로 OS를 지원해주고 있어서 

다운로드해서 설치해서 연습 해보기도 좋은 OS입니다.

심지어 Hack The BOX를 에디션으로 나눠서 제공해주고 있어서 

괜찮은 OS입니다.

Hack The Box 가 뭐하는곳이냐구요? (https://www.hackthebox.com/) 사이트 입니다. 해커들 놀이터...

 

https://www.parrotsec.org/download/

 

위주소에서 다운로드 가능합니다. (Parrot OS도 우분투 기반입니다)

 

 

 

4. BackBox OS

BackBox OS 괜찮은 OS이나 업데이트가 좀 느린편이라구 할수 있습니다.

최근에 8버전이 새로 나왔지만 출시한지 몇달 되었습니다.

 

https://www.backbox.org/download/

 

위주소에서 다운로드 가능하고 기부하라고 나오는데 금액을 0원으로 설정하시고 

다운로드 하시면 다운로드 가능합니다.

모바일쪽 모의해킹으로 특화된 모습을 볼수 있습니다.

 

 

 

5. Athena OS

2022년 12월 31일에 출시한 따끈 따근 한 신작 모의해킹 OS 입니다

 

https://github.com/Athena-OS/athena-iso/releases/tag/v22.11.15

 

위 주소에서 다운로드 가능하며

Hack The Box 등 기본적으로 Kali Linux에 들어있는 자동화 툴은 거의다 지원해주고 있고

또한 UI가 특이 하다라는 장점이 있습니다.

UI가 이쁘게 되어있고 다만 단점이 아직 베타 버전이라서 

설치시 버그가 조금 있습니다.

그렇다고 설치가 안되는것은 아니며 해당 Github 문서를 잘 읽어보시면 

해결이 가능합니다.

제작자도 인지하고 있는 버그들이라서 아마도 조만간 해결이 될것으로 보이며

앞으로의 행보가 기대가 되는 제품이라 할수 있겠습니다.

설치 로그인 화면 및 바탕화면 등 아이콘등에 신경을 많이쓴 부분이 보이며

특이하게 LightDM 으로 로그인 하거나 GNOM으로 로그인 하는 부분을 선택할수 

있다는것이 좀 특이하게 되어 있고 지금 이름을 까먹었는데

스샷과 함께 첨부하겠지만 프로그램 실행 UI도 특이하게 생겼습니다.

(좋은 OS이기는 하나 Arch Linux 기반이라서 저는 개인적으로 Arch 기반을 좋아라하지 않습니다)

 

 

 

 

6. BlackArch Linux

Arch 기반 모의해킹 OS 이며

지금까지 모의해킹 자동화툴을 가장 많이 지원을 해주는 OS입니다

업데이트를 안한지는 괘 오랜시간이 지났습니다만

아마도 Arch 기반이기에 롤링시스템을 사용하기 때문은 아닐까 생각이듭니다.

너무 많은 툴을 지원해줘서 사실상 저도 다운로드는 받았지만

설치해서 연습해볼 엄두도 나지 않는 OS이며

 

https://blackarch.org/downloads.html

 

위주소에서 다운로드 가능합니다

(윗글에서 설명했듯이 그리고 저는 Arch 기반을 별로 좋아라 하지 않습니다)

 

왜 갑자기 모의해킹에 대해 글을 쓰냐...하시는 분들도 있으시겠지만

하모니카 게시판을 보게 되면 하모니카 로 얼마든지 연습해보고 공부를 해볼수가 있는데

그런 문의는 전혀 없는것을 보아하니 만약에 2010의 사이버 대전이 다시 온다면 

우리가 다시 이길수 있을까? 라는 생각이 마냥 드는 현실이기 때문입니다.

 

https://youtu.be/iX9Nfe_VW8U

사이버대첩 경인대첩에 관련한 유튜버 영상 링크입니다.

 

하모니카는 기본적으로 Exploit 과 Metaslpoit 의 찰떡궁합인 Nmap을 제공해주고 있습니다.

그래서 저의 글을 잘 살펴 보시면

Exploit 및 Metasploit을 하모니카에 설치 했다는 글을 볼수가 있습니다.

그만큼 하모니카 로도 모의해킹을 연습해볼수 있는 충분한 OS라는 것이겠죠

아마도 알약이나 백신 및 방화벽은 설치하시면 저툴을 바이러스로 오진을 할수 있겠죠....

모의해킹은 OS는 되도록 이면 Update 명령은 해도 Upgrade는 하지 않습니다.

자동화 툴이 여러가지 컴퓨터 언어로 되어 있어서 백신 덕분에 시스템이 꼬여 버리고

방화벽 같은 경우 공격 연습을 할때 포트를 자주 열게 되는데 포트를 막아버려서 

아주 불편하죠

그래서 모이해킹 OS는 출시하면 거의 새로 설치 합니다

(필요한 툴은 그때 그때 그부분만 새로 설치 합니다...)

 

저도 마음같아서 Upgrade를 하고 싶지만 예전에 Kali Linux를 Upgrade를 한적이 있었는데

방금전까지 실행이 잘 되었던 Zenmap이 실행이 안되거나

다른 자동화툴 또한 실행이 안되는 것일 알게 되었고 

고생고생 해서 알아본 결과 보통 모의해킹 OS는 상식적으로 Upgrade는 하지 않는다고 알게 되었습니다.

 

아직도 우리나라는 보안 관련해서 많은 인원이 있지만

그분들도 점점 나이를 먹고 있으며 신규 인원이 있어야 하지만

요즘 분들은 거의다 유튜버 및 인터넷방송에만 관심을 기울이고 

보안 쪽으로는 취약한게 현실입니다.

728x90

맬웨어(Malware) 감지를 위한 테스트 사이트 – https://www.wicar.org/

 

WICAR.org - Test Your Anti-Malware Solution!

The  wicar.org  website was designed to test the correct operation your anti-virus / anti-malware software. The name " WICAR " is derived from the industry standard  EICAR anti-virus test file ,...

www.wicar.org

 

'IT > 해킹(Hacking)' 카테고리의 다른 글

새로 출시한 모의 해킹 OS  (0) 2023.01.09
hashcat 사용법  (0) 2022.10.20
포맷스트링 공격(Format String Attack)  (0) 2022.01.18
Cross Site Scripting(XSS)이란?  (0) 2022.01.05
Cross-Site Request Forgery(CSRF)이란?  (0) 2022.01.05
728x90

원문출처 : https://hiseon.me/security/hashcat-tutorial/

 

hashcat 사용법 - HiSEON

hashcat 사용법 다양한 종류의 패스워드를 복원할 수 있는 hashcat 사용법에 대해서 설명드립니다. hashcat 설치 방법과 옵션, Mask 설정 방법 등 hashcat 명령어 사용법에 대해서 hashcat 예제 함께 설명드

hiseon.me

 

hashcat 사용법
다양한 종류의 패스워드를 복원할 수 있는 hashcat 사용법에 대해서 설명드립니다. hashcat 설치 방법과 옵션, Mask 설정 방법 등 hashcat 명령어 사용법에 대해서 예제와 함께 설명드립니다.

hashcat 소개

Hashcat은 GPU를 기반으로 하여 빠르게 패스워드를 크랙 할 수 있는 툴로 다양한 암호화 알고리즘을 지원하고 있습니다.
CPU 또한 지원하지만 GPU 대비 속도가 느립니다. GPU 를 사용할 경우 빠르게 패스워드를 찾아 낼 수 있으며 여러개의 GPU가 존재할 경우 각각 GPU 별로 나눠서 분산 처리를 할 수 있습니다.

패스워드에 대한 길이와 구성 문자등에 대한 힌트가 있을 경우 세부적으로 규칙을 정의하여 패스워드를 검색해 나갈 수 있습니다.

다양한 옵션이 지원되는 만큼 hashcat 사용법이 조금 어려울 수 있는데, 예제를 통해서 함께 설명 드리도록 하겠습니다.

hashcat 설치

hashcat을 설치하여 사용하기 위해서는 먼저 GPU 드라이버를 설치해 주셔야 합니다. NVIDIA GPU를 사용하고 계신 경우 아래의 글을 참고하여 드라이버를 설치 할 수 있습니다.

우분투에서 NVIDIA 드라이버 설치 방법

드라이버 설치 후 nvidia-smi 명령어를 실행하면 다음과 같이 GPU 목록을 확인 할 수 있습니다.

그 다음 우분투 리눅스 환경일 경우 아래의 명령어를 이용하여 hashcat을 설치 할 수 있습니다.

$ apt install hashcat

패키지가 설치 된 후에 다음은 명령어를 실행하여, 버전이 출력된다면 제대로 설치가 이뤄진 것입니다.

$ hashcat --version

hashcat 옵션

먼저 hashcat에서 지원되는 옵션을 확인하기 위해서는 다음 명령어를 실행하면 됩니다.

$ hashcat --help

해쉬 유형, 검색 모드, 문자 코드 등 주요 옵션에 대해서 설명드리도록 하겠습니다.

해쉬 유형

계산해서 찾아낼 패스워드의 해쉬 유형입니다. -m 옵션을 지정하여 사용할 수 있습니다. 예를 들어 md5 알고리즘의 해쉬값의 패스워드를 복원하기 위해서는 0 값을 지정하면 됩니다.

- [ Hash modes ] -

      # | Name                                             | Category
  ======+==================================================+======================================
    900 | MD4                                              | Raw Hash
      0 | MD5                                              | Raw Hash
   5100 | Half MD5                                         | Raw Hash
    100 | SHA1                                             | Raw Hash
   1300 | SHA-224                                          | Raw Hash
   1400 | SHA-256                                          | Raw Hash
  10800 | SHA-384                                          | Raw Hash
   1700 | SHA-512                                          | Raw Hash

검색 모드

패스워드를 검색하는 방법을 지정하는 옵션으로 -a 옵션명을 사용합니다. 주로 사용되는 옵션 값은 Brute-force으로 3 값을 사용합니다.

- [ Attack Modes ] -

  # | Mode
 ===+======
  0 | Straight
  1 | Combination
  3 | Brute-force
  6 | Hybrid Wordlist + Mask
  7 | Hybrid Mask + Wordlist

패스워드 문자셋

hashcat에서 사용되는 문자셋 입니다. 패스워드를 찾기 위해 시도할 문자를 정의할 때 사용됩니다.

- [ Built-in Charsets ] -

  ? | Charset
 ===+=========
  l | abcdefghijklmnopqrstuvwxyz
  u | ABCDEFGHIJKLMNOPQRSTUVWXYZ
  d | 0123456789
  h | 0123456789abcdef
  H | 0123456789ABCDEF
  s |  !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
  a | ?l?u?d?s
  b | 0x00 - 0xff

hashcat 사용법

hashcat을 이용하여 어떻게 패스워드를 찾아 낼 수 있는지 예제를 통해서 설명드리도록 하겠습니다. 다음과 같이 hello 문자열의 md5를 계산하여, 계산된 md5로부터 문자열을 찾아내 보도록 하겠습니다.

$ echo -n "hello" | md5sum

위에서 확인된 hash 값을 다음과 같이 파일로 저장합니다.

$ echo "5d41402abc4b2a76b9719d911017c592" > example.hash

그리고 다음 명령어로 hashcat을 실행합니다. hashcat 명령어를 실행하는데 사용되는 옵션은 다음과 같습니다.

  • -a 3 : 패스워드 검색 방밥으로 Brute-force 모드(3) 를 사용합니다.
  • -m 0 : 해쉬 알고리즘으로 MD5을 사용합니다.
  • example.hash : 해쉬 파일이 저장된 경로 입니다.
  • ?a x 6 : 하나의 ?a 는 (?l?u?d?s) 으로 소문자, 대문자, 숫자, 특수기호 의 하나의 문자를 의미하며 ?a 여섯개 있으므로 6자리의 이 문자들을 검색합니다.
$ hashcat -a 3 -m 0 example.hash ?a?a?a?a?a

위의 명령어를 실행한 결과는 아래와 같습니다. 실행 중간에 아래와 같이 md5 값으로 부터 원래의 문자열을 찾은 것을 확인 할 수 있습니다.

5d41402abc4b2a76b9719d911017c592:hello

찾아낸 패스워드는 해쉬 값과 같이 ~/.hashcat/hashcat.potfile 위치에 저장되게 됩니다. 동일한 해쉬값을 검색할 경우는 다시 연산을 통해서 패스워드를 찾아내지 않고 potfile에 저장된 내용을 출력합니다.

728x90

http://wiki.hash.kr/index.php/%ED%8F%AC%EB%A7%B7%EC%8A%A4%ED%8A%B8%EB%A7%81_%EA%B3%B5%EA%B2%A9

728x90

 Cross Site Scripting(XSS) 공격이란? 

Cross Site Scripting(XSS) 공격은 악의적인 사용자가 공격하려는 사이트에 악성 스크립트를 주입하는 것이다. 공격에 성공하면 사이트에 접속한 사용자는 악성 스크립트를 실행하게 되며, 보통 의도치 않은 행동을 수행시키거나 쿠키나 세션 토큰 등 민감한 정보를 탈취한다.

 

공격 방법에 따라 Stored XSS와 Reflected XSS로 나뉜다. Stored XSS는 사이트 게시판이나 댓글, 닉네임 등 스크립트가 서버에 저장되어 실행되는 방법이고, Reflected XSS는 보통 URL 파라미터(특히 GET 방식)에 스크립트를 넣어 서버에 저장하지 않고 즉시 스크립트를 만드는 방식이다. 후술된 내용 대부분은 Stored XSS라고 생각하면 된다. Reflected XSS의 경우 브라우저 자체에서 차단하는 경우가 많아 상대적으로 공격을 성공시키기 어렵다.

 

크로스 사이트 스크립팅이라는 이름 답게, JavaScript를 사용하여 공격하는 경우가 많다. 공격 방법이 단순하고 가장 기초적이지만, 많은 웹사이트드리 XSS에 대한 방어 조치를 해두지 않아 공격을 받는 경우가 많다. 여러 사용자가 접근 가능한 게시판 등에 코드를 삽입하는 경우도 많으며, 경우에 따라서는 메일과 같은 매체를 통해서도 전파된다. 심지어는 닉네임에 코드를 심기도 한다.

 

물론, HTML을 사용하는 것이기 때문에 Text-Only 게시판이나, BBCode를 이용하는 위키위키 등에서는 XSS가 발생할 일은 없다. 

 

주로 CSRF를 하기 위해서 사용되기 때문에 종종 CSRF와 혼동되는 경우가 있으나, XSS는 자바스크립트를 실행시키는 것이고, CSRF는 특정한 행동을 시키는 것으로 다르다.

 

 XSS 공격 종류 

Stored(or relentless) XSS Attacks

XSS 취약점이 있는 웹 서버에 악성 스크립트를 입력해두고 방문자가 해당 페이지를 읽는 순간 방문자의 브라우저를 공격하는 방식이다. 일명 저장 방식이다.

 

Reflected CSS Attacks

특정 파라미터 값을 통해서 공격하는 방식으로 검색, 에러메시지, URL 등 사용자로부터 입력한 값을 받아 브라우저에게 응답할 때 전송되는 방법이다.

 

DOM(Document Object Model) based CSS Attacks

Document Object Model의 약자로 DOM 객체를 포함하는 자바스크립트 등을 이용하여 데이터 접근 시 검증되지 않은 입력값이 자바스크립트를 통해 삽입되어 발생하는 취약점을 이용하는 방식으로 URL을 통해 사용자를 공격한다.

 공격 기법 

한국에서 가장 많이 사용되는 IE 기준으로 작성한 것이다.

따라서 크롬, 파이어폭스 등의 브라우저나 최신 브라우저 환경에서는 작동하지 않을 수도 있다.

 

스크립트 태그

  • 방법 : 스크립트 태그로 자바스크립트를 실행한다.
  • 예제 
<script>alert('XSS');</script>
  • 설명 : 스크립트 태그의 스크립트를 실행시킨다. 안타깝게도, 매우 정직한 방법이라 대부분의 사이트에서 막는 경우가 많다. 브라우저단에서 필터링 해주는 경우도 있다.

 

자바스크립트 링크

  • 방법 : 링크 태그로 자바스크립트를 실행한다.
  • 예제 
<a href="javascript:alert('XSS')">XSS</a>
  • 설명 : 브라우저에서 about: 링크와 같이, javascript: 로 시작하는 링크는 스크립트를 실행시킨다. 스크립트 태그와 같이, javascript: 를 필터링하는 경우가 많아 많은 사이트에서 막는다.

 

이벤트 속성

  • 방법 : 이벤트 속성을 사용한다.
  • 예제 
<img src="#" onerror="alert('XSS')">
  • 설명 : 이벤트 속성으로 스크립트를 실행할 수 있다. 주로 on 으로 시작하는 속성이 이벤트 속성이다. 자주 사용되는 이벤트 속성으로는 onload onerror onclick 등이 있다. 물론, 이 방법 역시 '자바스크립트 링크' 방법만큼 많이 막혔다.

 

블랙리스트 우회

  • 방법 : 알려지지 않은 태그와 속성들을 사용한다.
  • 예제 :
<ruby oncopy="alert('XSS')">XSS</ruby>
  • 설명 : 블랙리스트 방식으로 막는 사이트에 사용할 수 있다. 위의 방법들보다는 적게 막혔으나, 여전히 최근 웹사이트들에서는 화이트리스트 방식 차단이 대부분이라, 막혔을 가능성이 높다.

 

내용 난독화

  • 방법 : 따옴표로 감싸는 문자열 사이에 공백 문자들을 넣고, HTML 인코드를 하여 난독화한다.
  • 예제 :
<a href="&#x6A;&#x61;&#x76;&#x61;&#x73;&#xA;&#x63;&#x72;&#x69;&#x70;&#x74;&#xA;&#x3A;&#xA;&#x61;&#x6C;&#x65;&#x72;&#x74;&#xA;&#x28;&#x27;&#x58;&#x53;&#x53;&#x27;&#x29;">XSS</a>
  • 설명 : 일부 브라우저에서 javascript: 링크 사이에 공백 문자가 들어갈 수 있고, HTML 인코드를 해도 디코드된 내용이 출력된다는 점을 이용한다. 여기에서는 '자바스크립트 링크' 방법과 사용하였지만, 당연히 다른 방법과 함께 사용할 수 있다.

 

스크립트 난독화

  • 방법 : aaaencode에서 자바스크립트 난독화
  • 예제 :
゚ω゚ノ= /`m´)ノ ~┻━┻ //*´∇`*/ ['_']; o=(゚ー゚) =_=3; c=(゚Θ゚) =(゚ー゚)-(゚ー゚); (゚Д゚) =(゚Θ゚)= (o^_^o)/ (o^_^o);(゚Д゚)={゚Θ゚: '_' ,゚ω゚ノ : ((゚ω゚ノ==3) +'_') [゚Θ゚] ,゚ー゚ノ :(゚ω゚ノ+ '_')[o^_^o -(゚Θ゚)] ,゚Д゚ノ:((゚ー゚==3) +'_')[゚ー゚] }; (゚Д゚) [゚Θ゚] =((゚ω゚ノ==3) +'_') [c^_^o];(゚Д゚) ['c'] = ((゚Д゚)+'_') [ (゚ー゚)+(゚ー゚)-(゚Θ゚) ];(゚Д゚) ['o'] = ((゚Д゚)+'_') [゚Θ゚];(゚o゚)=(゚Д゚) ['c']+(゚Д゚) ['o']+(゚ω゚ノ +'_')[゚Θ゚]+ ((゚ω゚ノ==3) +'_') [゚ー゚] + ((゚Д゚) +'_') [(゚ー゚)+(゚ー゚)]+ ((゚ー゚==3) +'_') [゚Θ゚]+((゚ー゚==3) +'_') [(゚ー゚) - (゚Θ゚)]+(゚Д゚) ['c']+((゚Д゚)+'_') [(゚ー゚)+(゚ー゚)]+ (゚Д゚) ['o']+((゚ー゚==3) +'_') [゚Θ゚];(゚Д゚) ['_'] =(o^_^o) [゚o゚] [゚o゚];(゚ε゚)=((゚ー゚==3) +'_') [゚Θ゚]+ (゚Д゚) .゚Д゚ノ+((゚Д゚)+'_') [(゚ー゚) + (゚ー゚)]+((゚ー゚==3) +'_') [o^_^o -゚Θ゚]+((゚ー゚==3) +'_') [゚Θ゚]+ (゚ω゚ノ +'_') [゚Θ゚]; (゚ー゚)+=(゚Θ゚); (゚Д゚)[゚ε゚]='\\'; (゚Д゚).゚Θ゚ノ=(゚Д゚+ ゚ー゚)[o^_^o -(゚Θ゚)];(o゚ー゚o)=(゚ω゚ノ +'_')[c^_^o];(゚Д゚) [゚o゚]='\"';(゚Д゚) ['_'] ( (゚Д゚) ['_'] (゚ε゚+(゚Д゚)[゚o゚]+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+((゚ー゚) + (゚Θ゚))+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚ー゚)+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(o゚ー゚o)+ (゚Д゚) ['c']+ ((゚ー゚) + (o^_^o))+ ((゚ー゚) + (o^_^o))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(o゚ー゚o)+ (゚Д゚) .゚Θ゚ノ+ ((゚ー゚) + (o^_^o))+ (゚Д゚) [゚Θ゚]+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚ー゚)+ (c^_^o)+ (゚Д゚)[゚ε゚]+(o゚ー゚o)+ (゚Д゚) ['c']+ ((o^_^o) - (゚Θ゚))+ (゚Д゚) .゚ー゚ノ+ (゚Д゚) .゚ー゚ノ+ (゚Д゚)[゚ε゚]+(o゚ー゚o)+ (゚Д゚) ['c']+ ((゚ー゚) + (o^_^o))+ (o^_^o)+ (゚Д゚) ['c']+ (゚Д゚)[゚ε゚]+(o゚ー゚o)+ (゚Д゚) .゚Θ゚ノ+ ((゚ー゚) + (゚ー゚))+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚) ['c']+ (゚Д゚)[゚ε゚]+(゚ー゚)+ (c^_^o)+ (゚Д゚)[゚ε゚]+(o゚ー゚o)+ (゚Д゚) ['c']+ ((゚ー゚) + (o^_^o))+ ((゚ー゚) + (゚ー゚) + (゚Θ゚))+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(o゚ー゚o)+ (゚Д゚) .゚Θ゚ノ+ (o^_^o)+ (゚Д゚) .゚ー゚ノ+ ((゚ー゚) + (゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(o゚ー゚o)+ (゚Д゚) .゚Θ゚ノ+ (゚ー゚)+ (゚Θ゚)+ (゚Д゚) ['c']+ (゚Д゚)[゚ε゚]+(o゚ー゚o)+ (゚Д゚) .゚Θ゚ノ+ ((o^_^o) - (゚Θ゚))+ (゚Д゚) .゚Д゚ノ+ (゚ー゚)+ (゚Д゚)[゚ε゚]+((゚ー゚) + (゚Θ゚))+ ((o^_^o) +(o^_^o))+ (゚Д゚)[゚ε゚]+(゚ー゚)+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+((゚ー゚) + (゚Θ゚))+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+((゚ー゚) + (o^_^o))+ (o^_^o)+ (゚Д゚)[゚o゚]) (゚Θ゚)) ('_');
  • 설명 : 스크립트를 일본어를 사용한 이모티콘으로 난독화한다. 스크립트 실행은 가능하지만, document.cookie와 같은 단어를 막을 경우 사용하면 된다.

 

 방어 방법 

XSS는 데이터를 입력할 때와 출력할 때, 모두 필터링하고, 클라이언트에도 막을 수 있을만한 수단을 구성해놓는 것이 좋다. 

  • 입력 필터
  • 출력 필터
  • 쿠키의 보안 옵션 사용
  • 콘텐츠 보안 정책(Content Security Policy, CSP) 사용

 

 OWASP에서 발표한 XSS 공격을 방지하는 7계명 

0. 허용된 위치가 아닌 곳에 신뢰할 수 없는 데이터가 들어가는것을 허용하지 않는다.
1. 신뢰할 수 없는 데이터는 검증을 하여라.
2. HTML 속성에 신뢰할 수 없는 데이터가 들어갈 수 없도록 하여라.
3. 자바스크립트에 신뢰할 수 없는 값이 들어갈 수 없도록 하여라.
4. CSS의 모든 신뢰할 수 없는 값에 대해서 검증하여라.
5. URL 파라미터에 신뢰할 수 없는 값이 있는지 검증하여라.
6. HTML 코드를 전체적으로 한번 더 검증하여라.

 

참고자료 : 나무위키

 

What is XSS cross site scripting❓ - types and protection

👉In this article, you will learn what XSS is. What are the types of cross-site scripting. Why is it dangerous and how to protect

www.wallarm.com

 

크로스 사이트 스크립팅(Cross Site Scripting, XSS)을 통한 웹 공격

XSS 즉, 크로스 사이트 스크립팅은 웹어플리케이션에서 볼 수 있는 취약점 중 하나 입니다. 웹페이지에 ...

blog.naver.com

 

728x90

 Cross-Site Request Forgery(CSRF)이란? 

XSRF 또는 Session Riding이라고도 하는 CSRF(교차 사이트 요청 위조)는 웹 브라우저를 속여 사용자가 로그인한 응용 프로그램에서 원치 않는 작업을 실행하도록 하는 공격이다.

 

성공적인 CSRF 공격은 비지니스와 사용자 모두에게 치명적일 수 있다. 세션 쿠키 도난을 포함하여 클라리언트 관계 손상, 무단 자금 이체, 비밀번호 변경 및 데이터 도난이 발생할 수 있다.

 

CSRF는 일반적으로 피해자를 속여 위조된 요청을 서버로 보내도록 유도하는 이메일이나 링크와 같은 악의적인 소셜 엔지니어링을 사용하여 수행된다. 의심하지 않는 사용자는 공격 시 애플리케이션에 의해 인증되기 때문에 합법적인 요청과 위조된 요청을 구별하는 것이 불가능하다.

 

 CSRF 예 

공격을 실행하기 전에 해커는 일반적으로 위조된 요청이 가능한 합법적인 것처럼 보이게 하기 위해 애플리케이션을 조사한다. 예를 들어 $100 은행 송금에 대한 일반적인 GET 요청은 다음과 같다.

GET http://netbank.com/transfer.do?acct=PersonB&amount=$100 HTTP/1.1

해커가 자신의 계정에 $100의 전송을 초래하므로 이 스크립트를 수정할 수 있다.

악성 요청은 다음과 같을 수 있다.

GET http://netbank.com/transfer.do?acct=AttackerA&amount=$100 HTTP/1.1

해커는 요청을 하이퍼링크에 포함할 수 있다.

<a href="http://netbank.com/transfer.do?acct=AttackerA&amount=$100">자세히 알아보기!</a>

다음으로 해커는 이메일을 통해 많은 은행 고객에게 하이퍼링크를 배포할 수 있다. 은행 계좌에 로그인한 상태에서 링크를 클릭하면 의도치 않게 $100 이체가 시작된다.

 

은행 웹사이트가 POST 요청만 사용하는 경우 <a> href 태그를 사용하여 악성 요청을 프레이밍하는 것은 불가능하다. 그러나 이 공격은 포함된 Javascript의 자동 실행과 함께 아래와 같은 <form>태그로 전달될 수 있다.

<body onload="document.forms[0].submit()"> 
   <form action="http://netbank.com/transfer.do" method="POST"> 
     <input type="hidden" name=" acct" value="AttackerA"/> 
     <input type="hidden" name="amount" value="$100"/> 
     <input type="submit" value="내 사진 보기!"/> 
   </form> 
 </body>

 

 예방 방법 

CSRF 공격을 예방하고 완화하는 효과적인 방법이 많이 있다. 사용자의 관점에서 예방은 로그인 자격 증명을 보호하고 승인되지 않은 사용자가 애플리케이션에 액세스하는 것을 거부하는 문제이다.

 

아래는 몇 가지 예방방법 예시이다.

  • 사용하지 않을 때 웹 애플리케이션 로그오프
  • 사용자 이름 및 암호 보안
  • 브라우저가 비밀번호를 기억하도록 허용하지 않음
  • 애플리케이션에 로그인한 상태에서 동시에 탐색 방지

웹 애플리케이션의 경우 악성 트래픽을 차단하고 공격을 방지하기 위한 여러 솔루션이 존재한다. 가장 일반적인 솔루션 중 하나는 모든 세션 요청 또는 ID에 대해 고유한 임의 토큰을 생성하는 것이다. 이는 이후에 서버에서 checked 및 verified된다. 중복 토큰이나 누락된 값이 있는 세션 요청은 차단된다. 세션 ID 토큰과 일치하지 않는 요청은 애플리케이션에 도달할 수 없다.

 

쿠키의 이중 제출은 CSRF를 차단하는 또 다른 잘 알려진 솔루션이다. 고유 토큰을 사용하는 것과 유사하게 임의의 토큰은 쿠키와 요청 매개변수 모두에 할당된다. 그런 다음 서버는 애플리케이션에 대한 액세스 권한을 부여하기 전에 토큰이 일치하는지 확인한다.

 

토큰은 유효하지만 브라우저 기록, HTTP 로그 파일, HTTP 요청의 첫 번째 줄을 기록하는 네크워크 어플라이언스 및 리퍼러 헤더(보호된 사이트가 외부 URL에 연결되는 경우)를 포함하여 여러 지점에서 토큰이 노출될 수 있다. 이러한 잠재적인 약점은 토큰을 완전한 솔루션보다 덜하게 만든다.

 

 CSRF와 XSS비교 

XSS CSRF
개요 : 악성 스크립트가 클라이언트에서 실행됨
공격 대상 : 클라이언트
목적 : 쿠키ㆍ세션 갈취, 웹 사이트 변조 등
개요 : 권한을 도용당한 클라이언트가 가짜 요청을 서버에 전송
공격 대상 : 서버
목적 : 권한 도용


 

참고 자료 : 

 

What is CSRF | Cross Site Request Forgery Example | Imperva

CSRF is a common attack vector that tricks a user into executing an unwanted action in a web application. While dangerous, the attack is easily preventable

www.imperva.com

 

XSS와 CSRF 차이

XSS(Cross Site Scripting)란? XSS는 SQL injection과 함께 웹 상에서 가장 기초적인 취약점 공격 방법의 일종으로, 악의적인 사용자가 공격하려는 사이트에 스크립트를 넣는 기법을 말한다. 주로 의도치 않

young-blog.tistory.com

 

728x90

https://two2sh.tistory.com/9

 

MS-Office의 DDE 취약점을 이용한 공격 주의 #nagoona

글작성 : 2017년 11월  1. 개요 대략 1달 전인 2017년 10월 9일 보안 기업인 SENSEPOST의 블로그에서 Microsoft의 Office 프로그램에서 매크로 없이 코드 실행이 가능하다는 취약점을 소개하였다. (https://sense.

two2sh.tistory.com

 

728x90

하트블리드(HeartBleed)

 

참고URL : https://namu.wiki/w/%ED%95%98%ED%8A%B8%EB%B8%94%EB%A6%AC%EB%93%9C

728x90

Cisco에서 제안한 TCP SYN Flooding 공격 차단 솔루션

① Intercept 모드 : 라우터로 들어오는 SYN 패킷을 서버에 바로 넘기지 않고 라우터에서 클라이언트와 연결을 맺으며 연결이 정상적으로 이루어지면 클라이언트 대신 서버와 연결을 맺고 두 연결을 포워딩 시켜주는 방식이다.

② Watch 모드 : SYN 패킷을 그대로 통과시키고 일정시간 동안 연결이 이루어지지 않으면 라우터가 중간에서 SYN 패킷을 차단한다.

 

<TCP Intercept>

 

- Server 앞에 위치한 Network Device(ex. Router, Firewall..)에서 SYN Flooding 공격을 방어할 수 있는 방법

중간에 위치한 Network Device가 Clinet와 Server가 교환하는 3-way handshakes 과정을 중간에서 가로챈 다음 자신인 Server인 척 Client 대신 Connecton을 맺는다. 

만약 Client에게 최종 ACK를 30초 동안 수신하지 못할 경우에는 해당 연결을 차단  정상적으로 최종 ACK를 수신하게 되면 해당 Connection 정보를 Server에게 전달한다. 

 

- TCP Intercept 모드는 다음과 같다.   

1) Intercept 모드    

-> Default (기본) 모드, 위의 설명처럼 중간에 위치한 Network Device가 Server 대신 Connection을 수립하는 모드   

2) Watch 모드    

-> 수동적인 모드로 Network Device가 직접 Connection을 맺지 않고 Client와 Server 사이에서 3-way handshake 과정을 중간에서 지켜보다가 Client 측에서 최종 ACK를 전송하지 않을 경우 연결을 강제로 종료하게 만든다.

 

- L4 Switch의 경우도 'Delay Binding' 이라는 명칭으로 비슷한 기능을 지원한다.

 

1) watch 모드

 

<DSW1 / DSW2>

 

 

2) Intercept 모드

 

<DSW1/DSW2>

 

conf t

ip tcp intercept modr intercept

 

- 확인 방법

 

 

728x90

Trinoo는 Master / Agent 로 구성되어 있으며 Master의 명령으로 Agent가 작업을 수행하는 DDos 공격 도구이다. UDP Flooding 공격을 수행한다. 즉 공격자가 하나 혹은 그 이상의 시스템에 접속하여 여러 개의 데몬에게 명령을 내려 특정 시스템을 공격하도록 하는 공격 기법이다. 목표 시스템에 대량의 UDP 패킷이 전송되어 시스템이 다운된다.


'분산 서비스 거부' 또는 '분산 서비스 거부 공격'이라고도 한다. 여러 대의 공격자를 분산 배치하여 동시에 동작하게 함으로써 특정 사이트를 공격하는 해킹 방식의 하나이다. 서비스 공격을 위한 도구들을 여러 대의 컴퓨터에 심어놓고 공격 목표인 사이트의 컴퓨터시스템이 처리할 수 없을 정도로 엄청난 분량의 패킷을 동시에 범람시킴으로써 네트워크의 성능을 저하시키거나 시스템을 마비시키는 방식이다.

이로써 이용자는 정상적으로 접속할 수 없는 것은 물론 심한 경우에는 주컴퓨터의 기능에 치명적 손상을 입을 수 있다. 또 수많은 컴퓨터시스템이 운영자도 모르는 사이에 해킹의 숙주로 이용될 수도 있다. 공격은 일반적으로 악성코드나 이메일 등을 통하여 일반 사용자의 PC를 감염시켜 이른바 '좀비PC'로 만든 다음 C&C(명령제어) 서버의 제어를 통하여 특정한 시간대에 수행된다.

 

 

* Agent(Zombie)

- Trinoo는 Master/Agent로 구성되어 있으며 Agent는 Master의 명령하에 동작한다.

- 여러대의 단말기가 Master에게 붙을 수록 큰 트래픽 장애를 일으킬 수 있다.

 

 

[환경설정]

 

 

 

- trinoo 압축해제 후 해당 경로의 daemon 디렉토리에 접근하게 되면 ns.c 파일이 존재 하는데 Master와의 소켓 통신을 할 수 있도록Master가 될 단말기의 IP 주소를 입력하고 해당 IP에서 명령이 있을 때까지 대기 하게 된다.

 

 

[환경설정]

 

 

 

- 기본적으로 세팅되어 있던 Master 대신 Agent에 쓰일 기능들의 컴파일을 위해 위와같이 설정해 준다.

- make명령어로 디렉토리 전체를 컴파일 한 후 daemon을 실행 시켜놓고 Master의 명령에 따라 공격을 시작한다.

 

 

* Master 

 

[Master 실행]

 

 

- make 명령어로 master 디렉토리저체를 컴파일 후 master 파일을 실행 시켜준다.

- ps 명령어로 프로세스 동작상태에 master가 잘 동작하고 있는지 확인한다.

 

[Password 정보확인]

 

- 텔넷 접속 후 Master를 컨트럴 하기 위한 정보들이 포함되어있다.

 


[공격시작]

 

 

- 공격자는 Master 단말기, Agent 단말기 등을 순차적으로 이용해 DDos 발생시 추적이 곤란하도록 숨어서 공격을 진행한다. 따라서 공격자는 텔넷이나 원격접속 서비스를 이용하여 Master 단말기에 접속을 한다.
- bcast 명령으로 자신을 Master로 둔 Agent의 목록의 확인한다. Agent의 목록이 많을 수록 한번에 보낼 수 있는 트래픽이 늘어나 공격이 더 효과적이다.

- mdos 명령으로 공격할 IP를 설정해 주면 Master의 명령에 따라 Agent들은 해당 IP에게 무차별적으로 트래픽을 보내게 된다.

 

 

 

[공격 후]


- 1:1이 아닌 불특정 다수에게서 들어오는 트래픽 처리는 사실상 불가능 하므로 단말기의 과부하로 인한 다운이 통신 두절의 원인이 된다.

- 2 대의 Agent가 공격 했지만 3초를 버티지 못하고 Wireshark가 끊기고 통신이 불가한 결과를 가져왔다. 위의 결과와 같이 무차별적으로 패킷을 보내므로 이를 중간에서 제어 하기는 힘들다. 따라서 DDos 공격을 막는 최선의 방법은 예방이다.

728x90

공격 근원지 파악하기 힘든 DRDoS 공격
일반 디도스 공격보다 훨씬 강력해


지난해 12월 22일, 10대 청소년들이 게임사에 사이버공격을 감행했다 덜미를 잡혔다. 청소년들은 공격을 위해 DRDoS(Distributed Reflective Denial of Service) 라는 기존 디도스(DDoS) 공격보다 한층 진화된 기법을 사용했다. DRDoS는 이름 그대로 ‘분산 반사 서비스 거부 공격’이다.

지난해 8월에는 P2P 파일 공유 사이트인 비트토렌트(BitTorrent) 취약점을 이용해 DRDoS 공격이 가능하다는 소식이 전해졌다. 또한 지난 2014년 2월에 유럽 전역에 대대적으로 발생한 대규모 디도스 공격도 이와 같은 DRDoS 공격의 일종으로 밝혀진 바 있다.

DRDoS 공격은 공격자가 출발지 IP 주소를 공격 대상의 IP 주소로 위조해 정상적인 서비스를 제공하는 서버들에게 요청을 보내고, 그 응답을 공격 대상이 받게 되는 원리다. 여기에는 SYN 패킷이나 ICMP 패킷, DNS 쿼리 등 응답을 받을 수 있는 패킷이 이용된다.

 

▲DRDoS 공격방식(출처: 한국인터넷진흥원)

 


TCP 3-way handshake 방식을 예로 들어보자. 공격자가 출발지 IP 주소를 공격 대상의 IP 주소로 위조해 SYN 패킷을 다수의 정상 TCP서버나 라우터로 전송하면, 이들이 응답하는 SYN/ACK 패킷을 공격 대상이 받아 서비스 거부 상태가 되는 것이다.

한국인터넷진흥원(KISA)의 ‘DDoS 공격 대응 가이드’에 의하면 이러한 DRDoS 공격은 출발지 IP 주소를 변조하고 공격 트래픽이 수많은 반사서버를 경유하기 때문에 공격의 근원지를 파악해 역추적하는 것이 거의 불가능하다.

또한, DRDoS에 사용되는 반사 서버는 자신이 보낸 패킷에 의한 응답이 없을 경우 패킷을 재전송할 수 있기 때문에 공격자가 전송하는 패킷보다 몇 배 더 많은 패킷이 공격대상 서버에 전송될 수 있다. 일반 디도스 공격에 비해 적은 수의 좀비PC로도 공격 트래픽 양을 증가시킬 수 있다는 것.

패킷의 양만 문제가 아니다. 패킷 자체의 크기도 증폭이 될 수 있다. 한국인터넷진흥원 침해사고분석단 이동근 종합분석팀장은 “DRDoS가 무서운 이유는 증폭이 된다는 점이다. 특정 프로토콜의 경우 30바이트의 패킷을 보내면 응답과 관련한 추가 정보들이 덧붙여져 100바이트의 응답 패킷을 받게될 수도 있기 때문”이라고 전했다.

 

출처 : https://www.boannews.com/media/view.asp?idx=49145

728x90

'IT > 해킹(Hacking)' 카테고리의 다른 글

Trinoo를 이용한 DDos 공격(UDP사용)  (0) 2021.09.14
DRDoS 공격 기법  (0) 2021.09.14
Smurf Attack, 스머프 공격 이란 무엇인가  (0) 2021.08.25
트랩도어(Trapdoor)  (0) 2021.08.25
워터링 홀(Watering Hole) 공격  (0) 2021.08.25
728x90

외부 악당에 의해서 ICMP broadcast 응답이 한 대상에 집중포화되다

 

Smurf Attack


스머프 공격(Smurf Attack)

인터넷 제어 메시지 프로토콜(ICMP)이 갖는 특성 중

특정 네트워크 주소로부터 생성된 네트워크 패킷으로 ICMP 핑 메시지를 전송하면

수신된 ICMP Echo Request 에 대하여 ICMP Echo Reply 를 응답한다는 것이 있다.

이를 이용한 서비스 거부(DoS) 공격 행위를 유발 하기위하여

여러 호스트(증폭기)에게

출발지(Source) IP를 희생자(Target) IP로 위조한(IP Spoofing)한

다량의 ICMP Echo Request를 보내면

해당 요청을 수신한 증폭기로부터 특정 공격 대상(희생자)에게

다량의 ICMP Echo Reply가 되돌아가게 한다.

https://en.wikipedia.org/wiki/Smurf_attack

https://www.imperva.com/learn/ddos/smurf-attack-ddos/

https://usa.kaspersky.com/resource-center/definitions/what-is-a-smurf-attack

https://www.cloudflare.com/learning/ddos/smurf-ddos-attack/

https://security.radware.com/ddos-knowledge-center/ddospedia/smurf-attack/

https://blog.logsign.com/what-is-a-smurf-attack/

인터넷 프로토콜(IP) 브로드 캐스트나 증폭 네트워크 등

기타 인터넷 운용 측면을 이용한다.

'스머핑'이라는 프로그램을 사용하여 네트워크를 공격하는데,

스머핑은

IP와 인터넷 제어 메시지 프로토콜(ICMP)의 특성을

이용한다고 알려져 있다.

스머핑 프로그램은

마치 다른 네트워크 주소(이것을 스머핑 주소라고 한다)로부터 생성된 것처럼 보이는 네트워크 패킷을 만들어서,

주어진 네트워크 내의 모든 IP 주소들, 즉 IP 브로드캐스트 주소 ICMP 핑 메시지를 보낸다.

이 핑 메시지에 대한 응답은 스머핑 주소로 보내지는데,

엄청난 양의 핑과 그에 대응한 에코 메시지로 인해

네트워크는 실시간 트래픽을 처리할 수 없을 만큼 많은 정보로 넘쳐 흐르게 된다.

Attacker ICMP Echo Request Amplifier(Bounce) Network ICMP Echo Reply Target


➡⬆⬇
➡⬆⬇
➡⬆⬇






➡⬆
➡⬆
➡⬆
Smurf Attack

예를들어

희생자(Target) IP로 출발지(Source) 주소를 위조한

대량의 ICMP Echo Request 메시지를 브로드캐스트(Broadcast) 한 상황에서,

Wireshark를 통해 패킷을 캡처하여

공격자 호스트 관점에서 봤을 경우

브로드캐스트 주소(192.168.56.255)에게

희생자 주소(10.10.10.20)로 위조된 대량의 ICMP Echo Request 메시지가 전송됨을 확인할 수 있다.

희생자 호스트 관점에서 봤을 경우

192.168.56.15, 192.168.56.20, 192.168.56.37, 192.168.56.40 등

브로드캐스트 주소(192.168.56.255)의 다양한 호스트로부터 희생자 주소(192.168.57.20)으로

ICMP Echo Reply 메시지가 수신되고 있음을 확인할 수 있다.

스머프 공격의 특성상

공격이 시각되면

단시간에 다수의 ICMP Echo Reply 패킷을 희생자(Target)에게 전송한다.

스머핑 공격을 무력화 시키는 방법은

공격받는 쪽과 네트워크 라우터(호스트)에서 진행 할 수 있다.

공격받는 쪽에서는

침입차단 시스템을 통한 패킷 필터링(Ingress Filtering)으로서

Echo Reply message의 rate-limit을 설정하여

한꺼번에 동일한 ICMP Echo Reply message가 들어오는 것을 막는다.

네트워크 라우터(호스트)에서는

증폭 네트워크로 사용되는 것(중간 매개지로 쓰이는 것)을 막기 위해서

IP Broadcast 패킷에 응답하지 않도록

IP 브로드캐스트 주소로 전송된 ICMP Echo Request 메시지(Spoof 된 패킷)을

수신 할 수 없게(사용 및 응답하지 않게) 시스템에서 미리 차단 설정해 놓는다.

이러한 설정을 해둔 호스트는

다른 네트워크로부터 자신의 네트워크로 들어오는(IP브로드캐스트로 전송된)

Directed Broadcast 패킷을 허용하지않도록(Disable) 라우터를 설정함으로써

해당 ICMP패킷에 대해 응답하지 않게하여 해결할 수 있다.

라우터에서 direct broadcast 를 차단하는 명령어는 다음과 같다.

(config-id)# no ip directed-broadcast

유닉스 명령어는 다음과 같다.

ndd -set /dev/ip ip_forward_directed_broadcasts 0

728x90

트랩도어란 시스템 보안이 제거된 비밀 통로로, 서비스 기술자나 유지ㆍ보수 프로그램 작성자의 접근 편의를 위해 시스템 설계자가 일부러 만들어 놓은 시스템의 보안 구멍을 의미합니다. 백도어(Backdoor)라고도 합니다. 대규모의 응용 프로그램이나 운영체제 개발에서는 코드 도중에 트랩도어라는 중단 부분을 설정해 쉽게 보수할 수 있도록 하고 있습니다.

최종 단계에서 삭제돼야 하는 트랩도어가 남아 있으면 컴퓨터 범죄에 악용되기도 합니다.

728x90

 

 

 

1. 개요

 

사이버 범죄자들은 특정 기업이나 조직, 개인을 해킹하기 위해서 어떤 방법을 사용할까? 메일에 악성코드를 첨부해서 전달하는 방법, 정보시스템의 취약점을 이용하는 방법, 악성 행위 유포지를 이용하는 방법 등 다양한 방법이 알려져 있다. 그 중 이번 호에서는 해킹 사건·사고의 빈번한 원인이 되는 '워터링 홀(Watering Hole)‘ 공격에 대해 알아보자. 2018년 국내 A가상화폐 거래소는 워터링 홀 공격을 빌미로 200억 원어치의 가상화폐를 도난 당했다. 경찰은 사이버 범죄자가 워터링 홀 공격을 시작으로 했다는 발표를 했다.

 

1) 워터링 홀 공격이란

 

워터링 홀 공격이란 공격대상이 자주 방문하는 홈페이지를 사전에 악성코드에 감염시킨 뒤 공격대상이 접속 할 때까지 잠복하면서 기다린다. 그리고 공격대상이 접속하면 비로서 공격을 시도하는 수법이다. 홈페이지에 접속하는 모든 사용자를 공격하기 때문에 접속하는 모든 사용자가 공격의 대상이 될 수 있다. 워터링 홀의 어원은 사자가 먹잇감을 습격하기 위해 물 웅덩이 근처에 숨어 있는 모습을 빗댄 표현이다. 먹잇감이 물을 마시기 위해 물 웅덩이로 접근하면 숨어있던 사자가 기습 사냥에 나서는 것이다. 

 

예를 들어 사이버 범죄자가 워터링 홀 공격으로 A사에 재직 중인 김씨의 컴퓨터를 해킹한다고 하자. 사이버 범죄자는 사전에 김씨가 자주 방문하는 홈페이지와 정보시스템을 조사, 분석한 후 악성코드에 감염시킨다. A사의 대표 홈페이지, 그룹웨어, 계열사 홈페이지 등이 될 수 있다. 다음으로 김씨가 홈페이지에 접속하면 잠복해있는 악성코드가 동작해 김씨 컴퓨터를 해킹하는 것이다. 대표적으로 브라우저에서 동작하는 Flash, Javascript, VBScript, ActiveX, XSS, HTML, Image 취약점 등을 공격에 사용한다. 

 

 

2) 워터링 홀 공격과정

 



 

3) 워터링 홀 공격요소

 

워터링 홀 공격은 인터넷 브라우저에서 동작하는 다양한 엔진들의 취약점을 이용한다.

 


 

 

2. 크로스 사이트 스크립트 취약점(Cross Site Script)을 이용한 공격 분석

 

1) 크로스 사이트 스크립트 취약점을 이용한 공격 시나리오

 

사이버 범죄자는 공격대상이 자주 방문하는 홈페이지에 크로스 사이트 스크립트 취약점을 공격한다. 취약점이 발견되면 악성 행위 스크립트를 삽입해 공격대상이 접속할 때까지 기다린다. 해당 페이지에 공격대상이 접속을 하면 악성 스크립트가 실행이 된다. 

 


 

① 사이버 범죄자는 크로스 사이트 스크립트 취약점이 존재하는 페이지에 악성 스크립트를 삽입한다.

- 악성 스크립트 구문 :

- 설명 : hook.js는 공격자 서버에서 동작하고 있는 BeEF 브라우저 후킹 공격 스크립트이다. 해당 스크립트 구문은 공격대상 PC에서 실행된다.

※ BeEF(Browser Exploitation Exploitation Framework) : 인터넷 브라우저를 이용한 여러 가지 공격 모듈을 가지고 있으며, 공격대상 PC에서 스크립트를 실행 시켜 공격한다.

 

② 피해자가 악성 스크립트가 삽입된 페이지에 접속한다.

③ 피해자 PC에서 스크립트가 실행되면서 인터넷 브라우저 후킹된다. 사이버 범죄자는 공격대상의 PC를 공격할 수 있게 된다.

 

 

2) 크로스 사이트 스크립트 취약점을 이용한 공격 분석

 

공격자는 BeEF 브라우저 후킹 도구를 동작시킨 후 공격대상이 자주 방문하는 홈페이지에 악성 스크립트 구문을 몰래 삽입한다. 공격대상이 해당 페이지에 접근할 경우 공격자에게 후킹되어 공격자는 홈페이지 로그인 쿠키(Cookie) 값을 탈취한다.​

 

① 공격자는 BeEF를 동작시킨다.


 

② 공격대상이 자주 가는 홈페이지 게시판에 BeEF 후킹 스크립트 구문을 몰래 삽입한다.


 

③ 공격대상이 해당 페이지에 접근한다. 아무런 증상이 없어 보이지만, 공격자의 후킹 스크립트가 실행되고 있다. (피해자 IP: 192.168.111.4)


 

④ 피해자의 인터넷 브라우저가 후킹되어 공격자의 BeEF 콘솔에 등록된다.


 

⑤ BeEF 도구를 통해서 공격대상의 브라우저 관련 정보를 확인할 수 있다.


 

⑥ 아래와 같이 BeEF 도구에 각종 해킹툴 모듈을 추가하면 수백가지 취약점으로 공격 시도할 수 있다.


 

⑦ 아래와 같이 공격자는 파해자의 세션 쿠키 정보를 탈취할 수 있다.


 

⑧ 마지막으로 세션 쿠키 정보를 위조해서 피해자 계정으로 로그인 할 수 있다.

 

 

3) 크로스 사이트 스크립트 취약점을 이용한 공격 대응 방법

 

▶ 게시물에 HTML이나 자바 스크립트에 해당되는 태그 사용을 사전에 제한

▶ 사용자가 입력한 값에 대한 필터링 작업 필요

▶ 게시물의 본문, 제목, 댓글, 검색어 입력 창, 그 외 사용자 측에서 넘어오는 값에 대해서 필터링을 수행함

▶ 입력값에 대한 필터링 로직 구현 시 공백 문자를 제거하는 trim, replace 함수를 사용하여 반드시 서버 측에서 구현되어야 함

 

※ 필터링 조치 대상 입력 값

- 스크립트 태그 : < SCRIPT >, < OBJECT >, < APPLET >, < EMBED >, < FORM >, < IFRAME > 등

- 특수문자 : <, >, ", ', &, %, %00(null) 등​

 

 

3. 인터넷 브라우저 취약점(CVE-2019-0752)을 이용한 공격 분석

 

1) 인터넷 브라우저 취약점을 이용한 공격 시나리오

 

사이버 범죄자는 인터넷 브라우저 취약점을 공격하는 홈페이지를 개설한다. 피해자가 홈페이지에 접속하면 브라우저의 취약점을 공격해 공격명령을 실행한다. 홈페이지에 접속 한 것 만으로 사이버 범죄자의 명령이 실행되는 것이다.

 


 

① 사이버 범죄자는 인터넷 브라우저 취약점을 공격하는 홈페이지를 개설하거나 피해자가 즐겨 찾는 홈페이지에 몰래 삽입한다.

② 피해자가 감염 홈페이지에 접속한다.

③ 웹 페이지의 악성코드를 인터넷 브라우저가 프로세싱 하면서 공격구문이 실행된다.

 - 악성코드 다운로드, 악성코드 실행, 계정 유출 등 다양한 공격이 가능

 

 

2) 인터넷 브라우저 취약점을 이용한 공격 분석

 

① 공격자는 인터넷 브라우저의 스크립트 엔진 취약점을 공격하는 코드를 작성해 홈페이지에 삽입한다. 해당 시나리오를 구현하기 위해서 CVE-2019-0752 취약점을 사용했다.

※ CVE-2019-0752 : 인터넷 익스플로러 10, 11버전의 VBScript 엔진의 취약점이다. 소스코드를 프로세싱 하는 과정에 메모리 취약점으로 공격 명령을 실행시킬 수 있다.

 

② 피해자가 해당 홈페이지에 접속하면 인터넷 브라우저가 스크립트 엔진을 실행하면서 공격자의 공격 명령이 실행된다.

※ 피해자 PC 정보 : 윈도우 10, 인터넷 익스플로러 11 사용

 

③ 취약점을 이용해 파워쉘을 실행한 후 윈도우 운영체제에 등록된 계정을 확인하는 공격 코드를 작성하였다. 공격대상이 홈페이지에 접속하면 자동으로 파워쉘 명령이 실행된다. 실행되는 과정은 아래와 같이 확인할 수 있다.



④ 피해자가 홈페이지에 접속한 것만으로 공격 명령이 실행되는 것을 확인할 수 있다.


 

⑤ 브라우저 취약점을 이용하면 악성코드를 다운받거나 원격제어를 하는 등의 악성 행위를 할 수 있다.

 

 

3) 인터넷 브라우저 취약점을 이용한 공격 대응 방법

 

▶ 최신 버전의 인터넷 브라우저를 사용한다.

▶ 소프트웨어 자동 업데이트 기능을 활성화한다.

▶ 운영체제의 자동 업데이트 기능을 활성화한다.

▶ 백신 프로그램의 실시간 감시, 자동 업데이트 기능을 활성화한다.

▶ 수상한 이메일에 포함된 링크를 함부로 클릭하지 않는다.

 

 

4. 결론

 

워터링 홀 공격은 사이버 범죄자들이 자주 사용하는 공격기법이다. 특정 공격대상과 불특정 다수를 노릴 수 있고 주로 알려지지 않은 취약점을 이용하기 때문에 굉장히 위협적이다. 대응하기도 쉽지 않다. 사이버 범죄자가 홈페이지의 취약점을 이용해 악성코드를 숨겨두기 때문에 사용자는 보안패치, 백신 업데이트를 하는 등의 최소한의 보안 조치가 필요하다. 하지만 근본적으로 해결하기 위해서는 소프트웨어를 개발할 때부터 취약점 점검 및 제거하는 노력으로 워터링 홀 공격에 대비해야 한다.​ 

728x90

다음 설명에 해당하는 서비스거부(DoS) 공격은?   1
[보기]
헤더가 조작된 일련의 IP 패킷조각(IP Fregments)들을 전송함으로써 공격이 이루어지며 공격자는 데이터의 일부가 겹치거다. 일부 데이터를 포함하지 않는 패킷 조각들을 전송함으로써 패 킷 재조합 시 공격대상에서 부하를 발생시키는 공격 유형이다.
① Teardrop 
② Land attack
③ Syn Flooding
④ Smurf attack


티어드롭 공격, Teardrop Attack

서비스 거부 공격(DOS)의 하나. 공격 대상 컴퓨터에 헤더가 조작된 일련의 IP 패킷 조각(IP fragments)들을 전송함으로써 컴퓨터의 OS를 다운시키는 공격이다. 주로 MS 윈도나 리눅스 2.0.32와 2.1.63 이전 버전의 OS에 영향을 준다.

 

 

 

랜드 공격, Local Area Network Denial Attack, LAND Attack

공격자가 패킷의 출발지 주소(Address)나 포트(port)를 임의로 변경하여 출발지와 목적지 주소(또는 포트)를 동일하게 함으로써, 공격 대상 컴퓨터의 실행 속도를 느리게 하거나 동작을 마비시켜 서비스 거부 상태에 빠지도록 하는 공격 방법. 수신되는 패킷 중 출발지 주소(또는 포트)와 목적지 주소(또는 포트)가 동일한 패킷들을 차단함으로써 이 공격을 피할 수 있다.

 

 

 

신 플러딩 공격, SYN Flooding Attack

Client가 Server로 SYN패킷을 보내면 Server는 SYK/ACK를 보내고 해당 connection을 backlog Queue에 넣어준다.

이 Backlog Queue가 더 꽉차서 더 이상 새로운 connection을 형성을 못하는 경우를 SYN Flooding 이라고 하고 이러한 공격을 SYN Flooding Attack 이라고 한다.

 

 

 

스머프 공격, smurf attack

인터넷 프로토콜(IP) 브로드캐스트나 기타 인터넷 운용 측면을 이용하여 인터넷 망을 공격하는 행위.

‘스머핑’이라는 프로그램을 사용하여 네트워크를 공격하는데, 스머핑은 IP와 인터넷 제어 메시지 프로토콜(ICMP)의 특성을 이용한다고 알려져 있다. ICMP는 원래 네트워크 노드와 관리자들이 네트워크의 정보를 교환하기 위해 사용되는 프로토콜로서 운용 중인 노드들이 있는지 보기 위해 핑(ping) 명령을 사용하여 현재 동작 중인 노드가 에코 메시지를 보내게 한다. 스머핑 프로그램은 마치 다른 네트워크 주소(이것을 스머핑 주소라 함)로부터 생성된 것처럼 보이는 네트워크 패킷을 만들어 주어진 네트워크 내의 모든 IP 주소들, 즉 IP 브로드캐스트 주소로 ICMP 핑 메시지를 보낸다. 이 핑 메시지에 대한 응답은 스머핑 주소로 보내지는데, 엄청난 양의 핑과 그에 대응한 에코 메시지로 인해 네트워크는 실시간 트래픽을 처리할 수 없을 만큼 많은 정보로 넘쳐 흐르게 된다. 

스머핑 공격을 무력화시키는 방법은 각 네트워크 라우터에서 IP브로드캐스트 주소를 사용할 수 없게 미리 설정해 놓는 것이다.

'IT > 해킹(Hacking)' 카테고리의 다른 글

트랩도어(Trapdoor)  (0) 2021.08.25
워터링 홀(Watering Hole) 공격  (0) 2021.08.25
구글(Google) 검색엔진을 이용한 해킹  (0) 2021.07.07
Httpry  (0) 2021.07.07
URLSnarf  (0) 2021.07.07
728x90

구글(Google) 검색엔진을 이용한 해킹

 

구글을 이용한 해킹은 검색 명령어로 자료를 찾아 보는것입니다.

 

1. 구글검색에 아래와 같이 쳐보자

site:co.kr inurl: "index of /"   

(사이트가 co.kr이고 목록이 index of / 안에 있는파일 검색)

 

2. 구글검색 명령어

Site와 intext 를 이용하여 검색후 서버정보 수집 찾아라

 

검색 조건  

site:co.kr intext:"index of /"

 

검색조건

intitle:"index of"intext:"이력서"

 

검색조건 

intitle:"index of /home"site:co.kr

 

검색조건

 "access denied for user""using password" site:co.kr

 

검색조건

 Intext:set db uid

 

검색조건 

Intitle"아파치 설치를 위한 테스트 페이지"       <-(뒤에 한글이다. 아파치가 뜬다라는 것은 보안에 취약하다)

 

검색조건

Intitle:testpage "hey, it no""SSL/TLS-aeare"

 

검색조건

Intitle:"windows xp server internet"

         이것을 쓰는구나 알수 있다.

 

검색조건

"Supplied argument is not a valid MySQL result resource" site:co.kr

 

검색조건

"ORA-00921:unexpected end of SQL command"

 

검색조건

"mySQL error with query"

 

검색조건

"syntax error in query expression"-the

 

검색조건

"access denied for user""using password"

 

검색조건

intitle:Test.Page.for.Apache.it.worked!.web.site!

 

검색조건 

intext:set db uid

 

검색조건

Intitle:"index of" intext:(dump|back|백업|backup) 

Inurl:/admin filetype:php   또는 asp 

 

반드시 다 되는것은 아니다. 왜냐하면 날마다 웹들의 보안이 강화되기 때문이다. 나 또한 해보았으나 인내심이 필요했다. 

 

3. 구글의 검색 옵션 요약

 

검색 옵션 설명

allintitle       글 제목에 포함된 단어를 검색

allinanchor   링크 글 안에서 검색

allintext       본문 안에서 검색

allinurl         URL안에서 검색

cache          구글이 캐시하고 있는 페이지를 검색

daterange     페이지가 색인된 날짜 지정

define          단어 정의 검색

filetype         확장자를 기준으로 파일검색

info             페이지 정보 검색

intext           해당 문자열이 포함된 페이지 검색

intitle           제목에 문자열이 포함된 페이지 검색

inurl            URL에 검색 문자열이 포함된 페이지 검색

link             링크 페이지 검색

related         비슷한 문서 검색

site             특정 사이트를 대상으로 검색

 

※allintitle와 intitle의 차이점은 검색어 2개를 넣었을 때 allintitle은 둘중에 하나라도 있으면 검색결과에 나타내며, intitle은 검색어 2개가 전부 있는 검색결과를 나타낸다.

 

4. 목적별 구글 검색 활용

 

▶로그 파일 검색

db filetype:log

intitle:”index of” intext:(backup|백업|back|dump)

 

▶로그인

inurl:/admin filetype:php

inurl:/admin filetype:asp

"VNC Desktop" inurl:5800

intitle:"원격 데스크톱 웹 연결" inurl:tsweb

intitle:관리자 로그인

intitle:"인트라넷"

intitle:"intranet"

intitle:"직원용

intitle:"사내" intext:로그인"

 

▶패스워드 파일

intext:mysql_connect+pass

intext:mysql_connect filetype:bak

inurl:"/level/*/exec/" intext:password

intitle:index.of intext:sc_serv_gui.ini

filetype:ini wcx_ftp

intitle:index.of ws_ftp.ini

intitle:technote inurl:cgi-bin

 

▶해킹 파일 검색

intitle:"PHP Shell *" intext:Command filetype:php

inurl:/_vti_bin/shtml.exe

inurl:/cgi-bin/finger

inurl:cgi-bin/guestbook.pl

inurl:/_vti_pvt/admin.pwd

inurl:/phpBB/search.php

inurl:/zeroboard/login.php

inurl:/cgi-bin/14all.cgi

 

▶민감한 데이터

intitle:index.of .bash_history or index.of .sh_history

allintext:대외비

 

▶포트 스캔

"VNC Desktop" inurl:5800

inurl:":10000" intext:webmin

inurl:8080 -inurl:board -intext:8080 or inurl:8000 -inurl:board -intext:8000

intitle:"Network query tool" filetype:php or inurl:nqt.php

 

▶ SQL 데이터 수집

"access denied for user" "using password"

"access denied for user" "using password" site:co.kr

"# Dumping data for table"

"# Dumping data for table" username password

"# Dumping data for table(username|user|pass|password|passwd)"

"ORA-00933: SQL command not properly ended"

"Unclosed quotation mark before the character string"

intitle:"에러" "에러 발생" filetype:asp

intitle:"Error" "에러 발생" filetype:asp

Mysql error message: "supplied argument"

inurl:main.php3 Welcome to phpMyAdmin site:co.kr

filetype:sql+"IDENTIFIED BY" -cvs or filetype:dmp+"IDENTIFIED BY" -cvs

filetype:"(sql|dmp|dump|inc)" password

filetype:mdb inurl:users.mdb

"Warning:pg_connet(): Unalbe to connect to PostgreSQL server:FATAL"

filetype:ldb admin inurl:db intext:password filetype:sql

filetype:"(sql|dmp|dump|inc)" password

inurl:config.php dbuname dbpass

inurl:nuke filetype:sql -cvs

filetype:inc intext:mysql_connect

filetype:inc dbconn site:kr

 

▶인증서

BEGIN(CERTIFICATE|RSA|DEA) filetype:key, or filetype:cer or filetype:der

filetype:pem PRIVATE -cvs

 

▶취약점 스캔

"This file was generated by Nessus" -site:ihackstuff.com

"This file was generated by Network Security Scanner" site:co.kr

intext:"QualysGuard" -site:qualys.com

intitle"X-Scan Report" intext:"This file was generated by X-Scan"

"Network Vulnerability Assessment Report"

 

▶침임 탐지 데이터

ACID "by Roman Danyliw" filetype:php

 

▶SSH Key

filetype:reg reg HKEY_CURRENT_USER SSHHOSTKEYS

 

▶IRC

filetype:cgi "cgi:irc"

filetype:conf inurl:psybnc.conv "USER.PASS="

'IT > 해킹(Hacking)' 카테고리의 다른 글

워터링 홀(Watering Hole) 공격  (0) 2021.08.25
서비스거부(Dos) 공격 Teardrop, Land attack, Syn Flooding, Smurf attack  (0) 2021.08.03
Httpry  (0) 2021.07.07
URLSnarf  (0) 2021.07.07
최고의 무료 보안 도구 20선  (0) 2021.07.07
728x90

Httpry

Httpry는 HTTP 트래픽을 표시하고 기록하는 용도에 특화된 패킷 스니퍼다. 이름에서도 알 수 있듯이 httpry는 HTTP 트래픽만 파싱할 수 있다. URLSnarf와는 달리 데이터의 수집, 파싱, 출력을 위한 다양한 옵션을 제공한다. Httpry는 모든 HTTP 헤더를 순서와 관계없이 수집하고 출력할 수 있다. 각자 환경에 맞는 PSTR(패킷 문자열; Packet String) 데이터를 생성할 수 있도록 여러 도구의 결과물을 원하는 대로 조정할 수 있는 기능이 매우 중요하다. Httpry의 다양한 설정과 여러 후처리 기능 덕분에 URLSnarf보다는 사용법을 익히는 데 노력이 필요할 것이다.

 

Httpry는 기본 Security Onion 설치본에 포함돼 있지 않지만 비교적 간단하게 소스를 빌드해서 설치할 수 있다. 다음 절차를 따라서 Httpry를 설치할 수 있다.

 

1. Httpry를 컴파일하는 데 필요한 libpcap 개발 라이브러리를 설치한다.

sudo apt-get install libpcap-dev

 

2. Jason Bittel의 Httpry 웹 사이트에서 tarball을 내려받는다.

wget http://dumpsterventures.com/jason/httpry/httpry-0.1.7.tar.gz

 

3. 압축을 푼다.

tar -zxvf httpry-0.1.7.tar.gz

 

4. Httpry 디렉터리에서 make와 install을 실행한다.

make && sudo make install

 

설치가 끝난 후에 별도의 옵션을 사용하지 않고 프로그램을 실행하면 가장 낮은 번호의 네트워크 인터페이스에서 80번 포트의 HTTP 트래픽을 수집할 것이다.

Httpry는 다양한 명령줄 옵션을 제공하며, 그 중 가장 많이 사용되는 옵션을 다음과 같다.

 

-r <파일>: 실시간 수집 대신 지정한 PCAP 파일을 읽는다.

-o <파일>: Httpry 로그 파일을 생성한다.(파싱용 스크립트를 만드는 데 필요하다.)

-l <인터페이스>: 데이터를 수집할 인터페이스를 선택한다.

-d: 데몬으로 실행한다.

-q: 정숙 모드(quiet-mode)로 실행해서 배너 정보나 통계 정보처럼 필수 정보가 아닌 정보는 표시하지 않는다.

 

Httpry의 기본 로그 형식이 모든 환경에서 파싱하기 적합한 형태가 아닐 수 있다. 다행히 약간의 명령줄 기술을 활용해 팀자와 분석 도구에서 쉽게 파싱할 수 있는 형태의 데이터로 변환할 수 있다.

Httpry는 데이터 결과물을 조정할 수 있는 여러 내장 스크립트도 제공한다. -o 옵션을 사용해 수집된 데이터를 지정한 플러그인으로 출력되도록 설정할 수 있다. 제공되는 플러그인 중에는 호스트 이름의 통계와 HTTP 로그 요약 정보를 출력하는 기능, 출력 데이터를 공통적으로 사용되는 로그 형식으로 변환하는 기능도 포함돼 있어서 URLSnarf와 비슷한 형식의 데이터도 생성할 수 있다. URLSnarf의 결과물과 비교했을 때 데이터 필드가 약간 다른 점을 확인할 수 있을 것이다. 공통 로그 형식이 약간씩 다르기 때문에 파서에서 조금씩 다르게 처리할 수 있다.

 

Httpry의 파싱 스크립트를 만들 수 있는 기능 덕분에 플로그인과 연동해서 끊임없이 자동으로 PSTR 데이터를 생성하는 솔루션을 만들 수 있다. 데이터 변환을 위해 parse_log.pl이라는 이름의 추가 스크립트가 필요하다. 이 스크립트는 httpry의 scripts/plugins 폴더에 있으며 같은 폴더에 저장돼 있는 다른 플러그인을 활용해서 작동한다. 다음 명령어는 한 개의 파싱 스크립트를 사용하는 예제다. 공통 로그 형식을 사용해 탐지나 분석 도구에서 사용하기 더 편리한 형식의 Httpry 데이터를 생성한다.

 

1. Httpry를 실행하고 결과를 파일에 저장한다.

httpry -o test.txt

 

2. 결과를 파싱한다.

perl scripts/parse_log.pl -p scripts/plugins/common_log.pm test.txt

 

이 명령어는 예상한 바와 조금 다른 방식으로 동작한다. 만약 Httpry로 생성한 결과를 파이프로 다른 도구에 전달해서 변환을 시도하면 필요한 컬럼 헤더 정보가 없어서 실패하게 된다. Httpry의 결과 데이터를 -o 옵션을 사용해 파일에 먼저 저장해야 한다. 그 다음에 parse_log.pl 스크립트로 파일의 데이터를 파싱할 수 있다.

 

일반적으로 Httpry를 사용해 PSTR 데이터를 생성하는 것이 URLSnarf를 사용한 것보다 훨씬 빠르다. 그리고 결과 데이터를 유연하게 변환할 수 있는 기능 덕분에 Httpry는 여러 NSM 환경에 적합한 솔루션이다.

728x90

URLSnarf

Dsniff 패키지는 네트워크 보안을 위해 유용한 도구의 모음이다. Dsniff 도구들은 두 가지 부류로 나뉜다. 첫번째 부류는 공격 목적의 도구이고 나머지는 네트워크 트래픽을 모니터링해서 파일이나 이메일, 웹 요청 등을 수집하는 snarf 도구이다. 우리가 특별히 관심이 있는 도구는 후자에 속한 URLSnarf라는 도구다.

 

URLSnarf는 HTTP 요청 데이터를 수집해서 공통 로그 포맷(CLF; common log format) 형태로 저장한다. Dsniff 패키지는 아주 오래 전부터 사용돼 왔고 도구의 설치와 사용법이 매우 간단하다는 점 때문에 개인적으로 특별한 애착을 가지고 있다. URLSnarf도 역시 마찬가지다. 대부분의 경우 선호하는 패키지 관리자 솔루션을 통해 손쉽게 Dsniff 패키지를 설치할 수 있다. Security Onion에는 Dsniff 패키지가 기본으로 설치돼 있지 않지만 apt를 사용해서 설치할 수 있다.

 

sudo apt-get install dsniff

 

Dsniff 패키지를 설치한 후 URLSnarf 명령어를 실행해 잘 설치됐는지 확인해 볼 수 있다. URLSnarf를 매개변수 없이 실행하면 기본 인터페이스를 모니터링해서 표준 출력으로 데이터를 출력하기 때문에 터미널 화면을 통해 데이터를 볼 수 있다. 기본적으로 eth0 인터페이스를 바라보며 TCP 80, 8080, 3128 포트를 모니터링하도록 하드코딩돼 있다.

 

URLSnarf는 4가지 옵션을 제공한다.

 

-p: 이미 수집한 PCAP 파일을 대상으로 URLSnarf를 실행한다.

-i: 네트워크 인터페이스를 선택한다.

-n: DNS 주소로 변환하지 않고 데이터를 파싱한다.

-v <표현식>: 표현식에 특정 URL을 설정해 해당하는 URL 정보만 보이게 한다. -v 옵션을 사용하면 설정한 URL을 제외한 나머지 결과를 보여준다.

 

결과물이 표준 출력 로그이기 때문에 -v 옵션을 사용하기보다는 파이프로 BASH 명령어 도구인 grep, cut, awk를 사용해서 파싱하는 것을 더 선호한다.

URLSnarf가 사용하기는 매우 쉽지만 그 단순함 덕분에 몇 가지 문제점도 있다. 결과 데이터를 더욱 간소화하고 싶다면 외부 도구를 사용해서 데이터를 줄일 수 밖에 없다. 그리고 만약 더 상세한 데이터를 원하더라도 뾰족한 방법이 없다. URLSnarf는 다른 도구들처럼 멀티라인 데이터 출력을 지원하지 않는다.

'IT > 해킹(Hacking)' 카테고리의 다른 글

구글(Google) 검색엔진을 이용한 해킹  (0) 2021.07.07
Httpry  (0) 2021.07.07
최고의 무료 보안 도구 20선  (0) 2021.07.07
Fiddler 설치 및 사용방법  (0) 2021.07.07
Burp Suite 설치 및 사용방법  (0) 2021.07.07
728x90

원문 출처 : https://www.itworld.co.kr/news/119375

 

세상에 공짜를 싫어할 사람이 있을까. 운이 좋게도, 정보보안 분야 종사자들은 다양한 작업에 무료로 사용할 수 있는 도구들이 많다. 이번 기사에서는 비밀번호 해독기(password crackers)부터 취약점 관리 시스템, 네트워크 분석기까지 20여 개의 도구에 대해 정리했다. 보안 분야에서 어떤 업무를 맡고 있든, 여기에서 유용한 도구를 찾을 수 있을 것이다.

 

오픈소스 인텔리전스 앱, 말테고(Maltego)

파테르바(Paterva)가 개발한 포렌직 및 오픈소스 인텔리전스 앱이다. 사용자 환경의 위협 상황을 전달할 수 있도록 만들어져 있다. 특정 단일 실패 지점의 복잡성과 중대성, 특정 인프라 범위에 존재하는 신뢰 관계에 대한 정보를 제공한다. 회사 네트워크 엣지에 위치한 라우터의 현재 구성 상태, 소속 기업 부사장의 현재 위치 등 인터넷에 게시된 정보를 수집한다. 상업용 라이선스의 경우 유료다. 그러나 커뮤니티 버전은 일부 제약이 있지만 무료로 사용할 수 있다.

 

침입 테스트 도구, OWASP ZAP(Zed Attack Proxy)

ZAP는 웹 앱에서 취약점을 찾아주는 사용자 친화적인 침입 테스트 도구다. 원한다면, 수동으로 취약점을 찾는 도구들과 자동화된 스캐너를 제공한다. 보안 관련 경험이 풍부한 실무자가 사용할 수 있도록 만들어졌으며, 침입 테스트를 처음 접하는 기능 테스터나 개발자에게 유용한 도구다. 젠킨스(Jenkins) 지속 통합 및 딜리버리 애플리케이션을 위한 공식 ZAP 플러그인도 있다.

 

침입 테스트 환경 가상머신, 사무라이 WTF(Samurai Web Testing Framework) 

사무라이 WTF는 이 기사에서 소개하는 다른 기술 가운데 일부, 웹 침입 테스트 환경 기능들이 포함된 가상 머신이다. 여러 무료, 오픈소스 도구가 들어있는 VM웨어 이미지가 포함된 ZIP 파일을 다운로드, 웹사이트 테스트 및 공격에 사용할 수 있다.

여기에는 피어스(Fierce) 도메인 스캐너와 말테고도 포함되어 있다. 매핑에는 웹스캐럽(WebScarab)와 랩프록시(Ratproxy)를 사용한다. 디스커버리(검색 또는 발견) 도구는 w3af와 burp이다. 최종 단계인 익스플로잇의 경우, AJAXShell, 브라우저 익스플로잇 프레임워크인 BeEF 등이 포함되어 있다. 상당히 편리한 도구이지만 단점도 존재한다. 몇 년 전에 개발자의 메일링 리스트 운영이 중지됐다. 가창 최신 사무라이WTF 릴리스 3.2는 2016년에 패키징된 것이다. 포함된 도구들 가운데 구 버전 도구들이 많다.

 

리눅스 기반 침입 테스트 도구, 백트랙(BackTrack)

칼리 리눅스(Kali Linux)는 과거 백트랙으로 불렸던 리눅스 기반 침입 테스트 툴박스다. 보안 분야 종사자들은 해킹을 위해 구현한 네이티브 환경에서 평가를 실시하는 데 이 도구를 사용한다. 포트 스캐너부터 비밀번호 해독기까지 다양한 도구들을 쉽게 이용할 수 있다. Kali ISO를 다운로드 받아 32비트나 64비트 x86, ARM 프로세서 시스템에 설치할 수 있다. VM웨어나 하이퍼-V용 VM 이미지도 있다.

칼리에 포함된 도구들을 유형 별로 분류할 수 있다. 정보 수집, 취약점 분석, 무선 공격, 웹 애플리케이션, 익스플로잇(공격) 도구, 스트레스 테스트, 포렌직, 스니핑 및 스푸핑, 패스워드 공격, 액세스 유지, 리버스 엔지니어링, 리포트, 하드웨어 해킹이 여기에 해당된다.

 

윈도우 비밀번호 복구 도구, 카인 엔 아벨(Cain & Abel)

비밀번호를 기억하는 사람이 없거나, 설정한 사람조차 모르는 구형 윈도우 시스템에 액세스할 필요가 있을 때 유용하게 사용할 수 있는 도구가 카인 엔 아벨이다. 윈도우 XP까지 마이크로소프트 운영체제용 비밀번호 복구 도구였으며, 2014년 이후 업데이트가 되지 않았다.

네트워크를 스니핑하고, 사전(Dictionary)과 무차별 대입(Brute-Force), 암호해독(Cryptanalysis) 공격을 사용해 암호화된 비밀번호를 깨고, VoIP 대화를 기록하고, 무질서한 비밀번호를 해독하고, 무선 네트워크 키를 복구하고, 비밀번호 상자를 드러내고, 캐시 저장된 비밀번호를 찾고, 라우팅 프로토콜을 분석, 다양한 비밀번호를 쉽게 복구할 수 있는 도구다. 프로토콜 표준, 인증 방법, 캐시 저장 메카니즘의 보안 요소, 취약점 가운데 일부도 다룬다. 이 도구의 주된 용도는 다양한 소스의 크리덴셜과 비밀번호를 쉽게 복구하는 것이다.

 

정찰도구, 피어스 도메인 스캔(Fierce Domain Scan)

또 다른 유용한 도구다. 개발자인 로버트 한센은 2007년 마지막으로 이 도구를 업데이트했다. 한센은 자신의 블로그인 ha.ckers 블로그에서 "웹 애플리케이션 보안 감사를 실시한 후, 개인적으로 좌절감이 느껴 개발한 도구"라고 설명한다.

피어스는 DNS 엔트리를 조사, 기업 네트워크 내부와 외부에서 잠재적인 표적을 정확히 찾는다. 기본적으로 정찰 도구다. 내장된 Perl 스크립트가 몇 분 이내에 다양한 전술을 사용해 도메인을 스캔한다. 한센이 자신의 블로그를 폐쇄하기는 했지만, 여기 링크된 깃허브(Github) 레포지토리에서 피어스를 찾을 수 있다. DNS의 기본 개념이 지난 10년 간 바뀌지 않았기 때문에, 피어스는 여전히 작동한다.

 

오픈소스 인텔리전스 도구, 하베스터(The Harvester)

하베스터는 구글과 링크드인 같은 오픈소스를 활용, 하위 도메인 이름, 이 도메인과 관련된 이메일 주소와 사용자 이름을 획득하는 오픈소스 인텔리전스 도구(OSINT)다. 침입 테스터 사이에 인기있는 도구로, 사용자는 패시브 정찰을 수행하고 사용자 이름과 이메일 주소 목록이 포함된 타겟(표적) 프로필을 만들 수 있다. 또는 자신이 소유한 도메인의 노출에 대해 조사할 수 있다.

 

맞춤형 TCP/IP 어셈블링 및 분석 도구, Hping

Hping은 맞춤형 TCP/IP 어셈블링 및 분석에 사용할 수 있는 명령줄 도구다. 방화벽 테스트, 포트 스캐닝, 여러 프로토콜을 이용한 네트워크 테스트, OS 핑거프린팅(지문 채취), 고급 트레이스라우트로 사용할 수 있다. 리눅스, FreeBSD, NetBSD, OpenBSD, 솔라리스, 맥OS X, 윈도우에서 실행된다. 몇 년 동안 업데이트되지 않았지만, TCP/IP도 마찬가지다.

 

비밀번호 해독기, 존 더 리퍼(John the Ripper) 

존 더 리퍼는 유닉스, 윈도우, DOS, BeOS, OpenVMS를 지원하는 비밀번호 해독기다. 그러나 무료 버전을 스스로 컴파일링 해야 한다. 취약한 유닉스 비밀번호를 찾는 데 주로 사용한다. 다양한 유닉스 시스템에서 가장 많이 사용되는 몇몇 crypt(3) 비밀번호 해시 종류에 더해, 윈도우 LM 해시, 커뮤니티 강화 버전의 암호화와 다른 많은 해시들을 기본 지원한다. 강화된 커뮤니티 버전은 검색 속도를 높일 수 있는 GPU 사용을 지원한다.

 

취약점 및 구성 평가 도구, 네서스(Nessus)

네서스는 전세계적으로 가장 인기있는 취약점 및 구성 평가 도구 가운데 하나다. 오픈소스 프로젝트로 시작되었지만, 개발사인 테네이블(Tenable)이 버전 3에서 사유 라이선스 기술로 바꿨다. 2018년 5월 기준, 버전 7.1까지 개발되어 있다. 그렇지만 홈 네트워크를 대상으로 한 개인 용도의 경우 여전히 무료로 사용할 수 있다. 무료 버전은 최대 16개까지 IP 주소를 스캔한다. 테네이블 웹사이트에 따르면, 네서스는 고속 디스커버리, 구성 감사, 자산 프로파일링, 민감한 데이터 디스커버리, 패치 관리 통합 및 취약점 분석 등의 기능을 제공한다.

 

네트워크 검사 및 보안 감사용 오픈소스 도구, 엔맵(NMap)

엔맵은 네트워크 검사 및 보안 감사용 오픈소스 도구다. 만들어진 지 20년이 지났지만, 개발자가 계속 업데이트를 하고 있다. 단 하나의 호스트에도 사용할 수 있지만, 대규모 네트워크를 빠르게 스캔할 수 있다. NMap 웹사이트에 따르면, 이 스캐너는 원본 IP 패킷을 이용해 네트워크에 가용한 호스트, 이 호스트들이 제공하는 서비스, 실행되고 있는 운영체제, 사용되고 있는 패킷 필터 및 방화벽 종류 등 많은 정보를 밝혀낸다. 보안 감사는 물론, 네트워크 인벤토리와 서비스 업그레이드 일정 관리에도 사용할 수 있다. 헐리우드 영화에 묘사된 것들을 그대로 믿는다면, 해킹 천재와 트래킹 슈퍼히어로들을 위한 도구일 수도 있다. 다양한 용도로 사용하는 도구라는 의미다.

 

오픈소스 SSL VPN 도구, 오픈VPN(OpenVPN)

오픈VPN은 원격 액세스, 사이트-투-사이트 VPN, 와이파이 보안, 엔터프라이즈급 원격 액세스 솔루션 등 다양한 구성에서 작동하는 오픈소스 SSL VPN 도구다. 로드 밸런싱, 페일오버, 정밀한 액세스 제어(관리) 기능을 제공한다. 윈도우 장치용 패키지형 설치 도구를 입수해 사용할 수 있다. 또 코드는 OpenBSD, FreeBSD, NetBSD, 맥OS X, 솔라리스에서도 실행된다.

 

윈도우 비밀번호 해독 도구, Ophcrack

Ophcrack는 레인보우 테이블을 사용하는 윈도우 비밀번호 해독용 무료 도구다. 여러 플랫폼을 지원한다. 또 실시간 그래프로 비밀번호를 분석하는 GUI를 갖고 있다. 사이트에서 입수할 수 있는 무료 레인보우 테이블과 LM(윈도우 XP), NTLM(비스타 및 7) 해시를 사용해 비밀번호를 크랙할 수 있다. 단순한 비밀번호에 사용할 수 있는 무차별 대입 모듈도 있다. 심지어 윈도우 파티션에서 복구한 SAM(Security Account Manager)에서 해시를 덤프 및 로드할 수 있는 기능도 지원한다.

 

파이썬 시큐리티(Python Security)

원래 OWASP 파이썬 시큐리티 프로젝트는 개발자들이 고위험 환경을 위한 애플리케이션을 구현할 수 있는 강화된 파이썬 버전 개발에 목표를 뒀다. 그런데 파이썬 프로그래밍 언어의 보안에 대한 거대한 정보 ‘컬렉션’이 만들어졌다. 관련 팀은 2가지 영역에 초점을 맞췄다. 파이썬 애플리케이션과 오픈소스 코드의 기능적, 구조적 분석, 파이썬 인터프리터의 블랙박스 분석이다. 프로젝트 웹사이트에는 파악한 보안 우려사항을 목록으로 정리한 위키가 있다.

 

네트워크 프로토콜 분석 도구, 와이어샤크(Wireshark)

와이어샤크는 사용자가 컴퓨터 네트워크의 트래픽을 캡처하고, 쌍방향으로 탐색할 수 있는 네트워크 프로토콜 분석 도구다. 20년이 넘는 역사를 갖고 있으며, 라이브 캡처 및 오프라인 분석, 수천 프로토콜에 대한 심층 검사 등 다양하고 많은 기능이 추가됐다. 이런 식으로 계속 기능들이 추가되고 있다. 윈도우, 리눅스, OS X, 솔라리스, FreeBSD, NetBSD 등 여러 플랫폼을 지원한다. 주요 기능 일부를 소개하면, VOIP 트래픽을 분석하고, SSL/TLS WEP과 WPA/WPA2 트래픽을 해독할 수 있고, USB와 블루투스, 심지어 구식 프레임 릴레이의 트래픽을 판독할 수 있다.

 

웹 앱 모니터링, 로깅, 액세스 제어 도구, 모드시큐리티(ModSecurity)

모드시큐리티는 트러스트웨이브(Trustwave) 산하 스파이더랩스 팀(SpiderLabs Team)이 개발한 웹 애플리케이션 모니터링, 로깅, 액세스 제어 툴킷이다. 전체 HTTP 트랜잭션 로깅, 전체 요청 및 응답 캡처 기능을 제공한다. 또 지속적인 보안 평가 기능, 웹 애플리케이션 강화 기능이 있다. 아파치 2.x에 집어넣거나, 리버스 프록시로 배포해 웹 서버를 보호할 수 있다.

 

취약점 관리 시스템, 스레드픽스(ThreadFix)

스레드픽스는 데님 그룹(Denim Group)이 개발한 소프트웨어 취약점 수집 및 취약점 관리 시스템이다. 동적, 정적, 쌍방향 애플리케이션 스캐너의 보고 결과를 대조해 병합한다. 개발자가 가장 중요한 문제에 초점을 맞출 수 있도록, 소프트웨어 결함 추적 시스템과 연동되도록 만들 수 있다. 커뮤니티 버전은 오픈소스다. 그렇지만 강화된 기능이 포함된 유로 스레드픽스 버전도 있다.

 

웹 앱 보안 테스트 플랫폼, 버프스위트(Burp Suite)

버프스위트는 웹 앱 보안 테스트 플랫폼이다. 전체 테스트 프로세스를 지원하는 다양한 도구가 포함되어 있다. 초기 매핑, 애플리케이션 공격 표면 분석, 보안 취약점 검색 및 익스플로잇 등을 예로 들 수 있다. 또 프록시 서버, 웹 스파이더, 인트루더 및 리피터(요청 자동화) 등이 포함되어 있다. 포트스위거(Portswigger)는 웹 취약점 스캐너, 일부 고급 수동 도구가 빠진 무료 버전을 제공하고 있다.

 

메타스플로잇(Metasploit)

HD 무어는 2003년, 보안 커뮤니티에 익스플로잇 개발 관련 공개 리소스를 제공하는 메타스플로잇 프로젝트를 만들었다. 이 프로젝트를 통해 보안 도구 및 익스플로잇 저작용 오픈소스 플랫폼인 메타스플로잇 프레임워크가 탄생했다. 2009년, 취약점 관리 솔루션 회사인 래피드7(Rapid7)이 메타스플로잇 프로젝트를 인수했다. 인수 전, 개발자들은 주로 주말과 밤 등 여유 시간에 프레임워크를 개발하고 있었다. 래피드7은 풀타임 개발 팀 운영에 필요한 예산을 투입하기로 결정을 내렸고, 소스코드를 3개 조항으로 구성된 BSD 라이선스로 유지하고 있다. 지금까지도 이것이 사용되고 있다.

 

에어크랙-ng(Aircrack-ng) 

에어크랙-ng는 와이어샤크가 이더넷에 제공하는 기능을 와이파이에 제공한다. 패킷 모니터링, 하드웨어 테스트, 비밀번호 해독기, 와이파이 네트워크에 대한 공격 등에 사용할 수 있는 완전한 도구 스위트다. 2018년 4월 릴리스된 버전 2.1은 속도와 보안이 크게 향상되었고, 에어크랙-ng가 지원하는 하드웨어의 범위가 확대되었다.

 

테일스(TAILS)

테일스(The Amnesiac Incognito Live System, TAILS)은 DVD나 USB 플래시 메모리 카드에서 실행시킬 수 있는 라이브 리눅스 운영체제다. Amnesiac(기억 상실)로 불리는 이유는 특정 세션에서 다음 세션으로 넘어갈 때 사용자의 활동을 계속 추적하지 않기 때문이고, Incognito(익명)로 불리는 이유는 모든 인터넷 통신에 토르(Tor)를 사용하기 때문이다. 물론 소셜 네트워킹 계정에 로그인을 한 상태 등 로그인 상태에서는 누군가 토르 연결을 모니터링할 때 사용자의 신원이 드러날 수 있다. 그러나 이런 어리석은 일을 하지 않는다면, 테일스는 온라인 활동을 비밀로 유지하도록 큰 도움을 준다.

 

쿠베스(Qubes) OS

쿠베스 OS는 스스로를 “제법 안전한 운영체제”라고 겸손하게 설명하고 있다. Xen 하이퍼바이저를 사용, 기능들을 '큐브(qube)'라 부르는 여러 가상 머신으로 분류한다. 여러 활동(작업)이 각기 다른 큐브로 분리되는 것이다. 분리하는 정도는 각자 결정할 문제다. 약간 걱정되는 경우, 인터넷 뱅킹을 하나의 큐브로 분류하고, 나머지 온라인 활동은 다른 큐브로 몰아 분류할 수 있다. 반대로 모든 이메일 첨부 파일을 각기 다른 큐브로 분류할 수 있다. 그러면 악성 첨부 파일 1개가 전체 시스템을 침해 및 탈취하는 문제를 막을 수 있다. 무료로 다운로드 받아 사용할 수 있다. 그렇지만 메모리(RAM) 4GB와 디스크 공간 32GB 이상의 64비트 인텔 및 AMD 장치만 지원한다.

 

시그널(Signal)

시그널은 ‘엔드 투 엔드’ 보안을 제공하는 메시징 및 비디오-비디오 통화 앱이다. 시그널 개발자조차 사용자의 대화를 가로채거나, 해독할 수 없다. 맥OS, 리눅스, 윈도우가 운영체제인 데스크톱 장치, 안드로이드, iOS에서 무료로 사용할 수 있다. 메시지가 사라지는 기능(수신자가 읽고 나면 발신자가 지정한 시간에 사라짐), 암호화된 그룹 채팅, 사진 메시징 기능 등을 제공한다. EFF(Electronic Frontier Foundation)는 SSD(Surveillance Self Defense) 지침에서 시그널 사용을 권장하고 있다.

'IT > 해킹(Hacking)' 카테고리의 다른 글

Httpry  (0) 2021.07.07
URLSnarf  (0) 2021.07.07
Fiddler 설치 및 사용방법  (0) 2021.07.07
Burp Suite 설치 및 사용방법  (0) 2021.07.07
정보보안 용어정리  (1) 2021.07.07
728x90

원문 : https://grini25.tistory.com/13?category=858418

'IT > 해킹(Hacking)' 카테고리의 다른 글

Httpry  (0) 2021.07.07
URLSnarf  (0) 2021.07.07
최고의 무료 보안 도구 20선  (0) 2021.07.07
Burp Suite 설치 및 사용방법  (0) 2021.07.07
정보보안 용어정리  (1) 2021.07.07
728x90

원문 : https://grini25.tistory.com/202

'IT > 해킹(Hacking)' 카테고리의 다른 글

Httpry  (0) 2021.07.07
URLSnarf  (0) 2021.07.07
최고의 무료 보안 도구 20선  (0) 2021.07.07
Fiddler 설치 및 사용방법  (0) 2021.07.07
정보보안 용어정리  (1) 2021.07.07
728x90

중앙처리장치(CPU) : SW 명령의 실행이 이루어지는 칩. 정보를 입력 받고, 기억하고, 연산하고, 출력하는 역할. 컴퓨터 부품과 정보를 교환하며 컴퓨터 시스템 전체를 제어하는 장치

 

기억장치 : 컴퓨터에서 자료를 일시적/영구적으로 보존하는 장치

  * 기억장치의 분류 : 주기억장치와 보조기억장치로 나뉜다.

  * 주기억장치 = 메모리(memory) = 램 (RAM)

  * 보조기억장치 (e.g.하드디스크)

 

저장장치 :  대체로 비휘발성의 기억 장치를 의미

 

소프트웨어(software, sw) : 특정 목적의 프로그램(들)

- 프로그램 소프트웨어 : 컴퓨터hw에 직접 명령어를 주거나 다른 sw에 입력을 제공함으로써 그것이 수행하도록 구현된 기능을 수행

- 컴퓨터 소프트웨어 : 컴퓨터 시스템, 프로그램, 데이터에 의해 처리된 모든 정보 (≠컴퓨터 하드웨어)

- shareware : sw의 마케팅 방식 중 하나. 평가 소프트웨어. 무료로 제공한 후 시험 삼아 써보게 하여 대가를 지불 방식을 요구함. 사용 기간이나 기능에 제약을 둠.(=demoware)

- freeware : 무료로 쓰도록 제작한 소프트웨어

 

하드웨어(hardware, hw) : 소프트웨어가 실행되고 저장되는 물리 구조

 

프로그램 : 지시 사항들이 나열된 순서

 

컴퓨터 프로그램 : 컴퓨터에 의해 실행되는 지시 사항의 모음인 컴퓨터 소프트웨어의 한 예. 대부분의 프로그램들은 저장 매체에 바이너리 형식으로 저장되어 있다가 사용자가 실행시키면 메모리로 적재되어 실행됨.

 

네트워크 : 분산되어 있는 컴퓨터를 통신망으로 연결한 것

 

매크로(macro): 미리 저장된 일련의 명령어를 하나의 명령어로 만들어 실행

 

쿠키 : 방문했던 웹사이트를  빨리 이용하도록 해주는 기능

 

IP(internet protocol) : 송신호스트와 수신호스트 간 패킷 교환 네트워크에서 정보를 주고 받는데 사용하는 정보 위주의 규약(protocol), OSI네트워크 계층에서 호스트의 주소지정, 패킷의 이동을 담당

IP 주소(internet protocol address) : 컴퓨터 네트워크장치들이 서로 인식, 통신하기 위한 특수 번호, 주소

 

컴퓨터 클러스터(computer cluster) : 여러 대의 컴퓨터들이 연결되어 하나의 시스템처럼 동작하는 컴퓨터들의 집합

 

에일리어스(alias) : 하나의 프로그램에서 동일한 기억 장소를 참조하는 변수에 둘 이상의 이름이 붙은 것. 

  * alias : 가명, 별명

 

쉘(shell) : OS에서 사용자가 입력하는 명령을 일고 해석하여 실행해 주는 프로그램. 로그인한 사용자가 없으면 쉘 또한 실행하지 않음

쉘 스크립트(shell script) : 쉘을 통해 프로그램을 만든 것

배치(batch)파일 : 대체로 DOS명령어로 이루어진 스크립트(배치파일을 쉘 스크립트로 변환하여 사용하기도 하나 봅니다)

 

IOS(international organization for standardization) : 국제표준을 개발하고 공표하는 기관(1947~)

 

OSI 참조 모델(open system interconnection) : 타 기종 시스템 간 상호연결 시 네트워크 구조에 상관없이 원활한 통신이 이뤄질 수 있도록 ISO가 제정된 국제 표준. 상호 호환성 부족을 해결하기 위한 표준.

 

OSI의 7계층 : application (7계층) > presentation > session > transport > network > data link > physical (1계층)

 

OSI의 각 계층별 데이터 단위 : message (7-5), segment, packet, frame, bit

 

SDU(service data unit) : 현 계층에서 생성된 특정 프로토콜을 이용하는 사용자 데이터

PDU(protocol data unit) : SDU가 데이터 캡슐화가 이루어지는 계층. 특정 프로토콜을 이용해 아래 계층으로 전송하기 위해 만들어지는 프로토콜 제어 명령과 사용자 데이터 집합.

 

데이터 캡슐화(data encapsulation) : SDU의 앞뒤에 header와 footer를 덧붙이는 과정

 

헤더(header), 풋터(footer) : 각 데이터의 앞 또는 뒤에 붙은 표제 정보. 프로토콜 규칙 및 제어 명령이 들어감.

 

프로토콜(protocol) : 통신 규약. 컴퓨터 등 원거리 통신 사이에서 메시지를 주고 받는 양식과 규칙의 체계.

 

프로토콜 제어 명령 : 출발지에서 목적지까지 데이터가 전송되도록 만들어주는 것

 

데이터 무결성(data integrity) : 데이터의 정확성과 일관성을 유지하고 보증하는 것

 

이더넷(ethernet) : LAN을 위해 개발된 컴퓨터 네트워크 기술

 

라우터(router) : 근거리 통신망(LAN)에서 데이터 packet의 최적경로를 선택하는 장치

 

LAN(local area network) : 근거리 통신망, 집, 학교, 회사 등 가까운 지역을 한데 묶는 컴퓨터 네트워크

 

WAN(wide area network) : 광역 통신망, 국가, 대륙 등 넓은 지역을 연결하는 네트워크

 

랜카드(LAN card) : 근거리 통신망(LAN)에 접속하기 위해 컴퓨터(서버)에 장착된 카드. 최근에는 메인보드에 통합 장착됨.

 

스위칭(switching) : 주로 2계층(data link layer)에서 프레임데이터를 지정된 LAN상의 목적지로 빠르게 전송하는 기능

 

라우터(router) : 2개 이상의 네트워크를 연결 시켜주는 장비. 패킷 안의 정보를 참조하여 최적의 경로로 라우팅하는 역할.

라우터(router) : 패킷을 출발지에서 목적지에 도달하기까지 경유 되는 시스템. 패킷을 중계하는 역할을 함. OSI 모델 중 3계층(network layer)에 속하며, 패킷 안의 목적지 네트워크를 참조하여 라우팅 프로토콜에 따라 최종 목적지까지 라우팅을 함.

라우팅(routing) : 주로 3계층(network layer)에서 패킷데이터를 WAN까지 확장하여 가장 효과적인 경로를 선택해 목적지로 전송하는 기능

라우팅 프로토콜(routing protocol) : 라우터와 라우터 사이 경로정보를 주고받을 때 이용되는 프로토콜

IP 라우팅(IP routing) : 주어진 ID패킷을 IP헤더에 있는 목적지 주소까지 패킷을 전달하는 것

정적 라우팅(static routing) : 관리자에 의해 라우팅 경로가 설정되는 방법

동적 라우팅(dynamic routing) : 라우터 라우팅 경로가 주변의 라우터와 라우팅 프로토콜에 의해 설정되는 형태

디폴트 라우팅(default fouting) : 라우팅 테이블에 없는 원격 네트워크 수신지로 하는 패킷을 다음 홉인 라우터로 전송하기 위한 방법

라우팅 테이블(routing table) : 라우터나 호스트에서 패킷을 포워딩하기 위해 참조하는 테이블

포워딩(forwarding) : 라우터의 입력포트에서 출력포트로 패킷을 이동시키는 것

  * forward: 앞으로, 겉으로, 앞의, 진보한, 전송하다. 촉진하다

홉(hop) : 각 패킷이 매 노드(라우터)를 건너가는 양상을 비유적으로 표현

  * 홉 수(hop count) : 거쳐간 라우터 수

 

리피터(repeater) : 전기적인 신호를 전송하는데 제한이 있어 신호를 증폭하는 역할 수행

 

허브(hub) : LAN에서 1대의 컴퓨터가 송신한 신호를 모든 컴퓨터에 전달하는 역할

 

스위치(switch) : 동시에 다수의 LAN과 컴퓨터들 사이에 프레임 교환 가능하게 하는(data link layer) 역할

L4 스위치(layer 4 switch) : TCP/UDP의 포트번호를 검사하여 로드발란싱 기능을 수행. 네트워크 전송 속도 향상 또는 여러대의 서버에 대한 트래픽 분산시켜 속도 향상시키는 장치.

 

토폴로지(topology) : 링크, 노드 등으로 이뤄진 네트워크를 구성하는 다양한 유형의 배열을 의미

  * 버스형(bus), 스타형(star), 링형(ring), 그물망형(mesh), 트리형(tree)

트렁크 링크(trunk link) : 스위치가 하나의 링크를 통해 여러 VLAN 트래픽을 운반하도록 해줌

VTP(VLAN trunking protocol) : 여러 개의 스위치 상에서 트렁크 링크를 통해 VLAN 설정 정보를 통합적으로 관리하기 위한 프로토콜

 

WAN(wireless LAN) : 선 연결없이 인터넷을 이용하게 해주는 무선인터넷이용환경, 유선LAN 대체. 무선랜.

무선 액세스포인트(wireless access point, WAP) : 와이파이, 블루투스 관련 표준을 이용하여 무선장치들을 유선장치에 연결할 수 있게 하는 장치

WPAN(wireless personal area network) : 개인 사용자 간 단거리 네트워크 구성에 사용되는 형태. 사용자 간 정보 공유, 주장비-주변장치와의 연결.

인프라스트럭처 모드 : 네트워크장치(AP, 무선공유기)를 통한 무선연결방식.

애드훅(ad-hoc)모드 : 무선네트워크장치(WAP) 없이 PC의 무선LAN카드 간의 무선연결방식

무선랜 보안 프로토콜 : SSID, MAC, WEP, WPA, WPA2

 

기밀성(Confidentiality)

 - 중요하거나 민감한 데이터가 ‘비인가된 사람, 프로세스, 시스템에 의해 노출 및 열람되지 않음.’을 보장하는 것

 - 오직 인가된 사람, 프로세스, 시스템만 need-to-know에 근거하여 시스템에 접근해야 한다는 원칙

 - 민감하거나 중요한 데이터가 허가되지 않은 사람에게 노출 및 열람되지 않아야 할 것을 요구

 - 위협 요소 : 도청, 사회공학 기법

 - 보안 대책 : 접근제어(통제), 암호화 → 대칭키, 비대칭키

 - 수동적 공격 : 도청(트래픽 분석), 도난, 스니핑 등

 

가용성(Availability)

 - 허가된 사용자가 정보나 서비스를 요구할 때 언제든지 즉시 사용 가능하도록 하는 서비스

 - 정보시스템의 보안이 시스템의 활용에 제한을 주지 않고 정상적인 운영이 가능하도록 하는 것

 - 허가된 사용자가 시스템의 자원을 요구했을 때 요구한 시스템 자원 및 서비스를 언제나 제공해야 한다.

 - DoS 공격으로 손상을 받을 수 있는 정보시스템의 특성

 - 데이터에 대한 백업, 형상관리, 변경통제, BCP 및 DRP 수립 필요

    예) BCP, DRP, Fault tolerent system 등

 - 보안서비스를 강화하면 가용성은 줄어든다.

 

무결성(Integrity)

 - 허가되지 않은 사람에 의한 불법적인 정보의 생성, 변경(위조), 삭제 등으로부터 보호하는 것

 - 정보시스템의 내용이나 상태를 ‘원시 그대로 보호할 수 있도록 하는 것’으로 허가되지 않은 사람에 의한  정보의 생성, 변경(위조), 삭제 등으로부터 보호하는 조치

 - 정보의 저장과 전달시 비인가된 방식으로 정보와 S/W가 변경 파괴되지 않도록 정확성과 완전성, 일관성을 확보하는 것

  - 데이터가 송신된 그대로 수신자에게 도착해야 한다는 것을 의미하고, 전송 중 데이터에 대한 고의적 또는 악의적인 변경이 없었다는 것을 보장

 - 확보 방안 : 접근제어, 메시지 인증, 침입탐지, 백업 등의 기술이 필요, Hash 이용, X.509 공개키 이용

 - 전송되는 메시지에 메시지 인증 코드(MAC : Message Authentication Code)를 생성하여 메시지와  함께 전송하는 방법, 예방보다 사후 발견에 비중을 둔다.

 - 메세지를 전송한 원천을 검증한다.

 - 위협 요소 : 논리폭탄, 백도어, 바이러스, 해커에 의한 메시지 수정, 생성, 변경, 삭제

 - 무결성 확보 방안 : 해시함수, MAC(메세지 인증코드), 전자서명

 

공개키 기반 구조(PKI: Public Key Infrastructure) : 인증, 전자서명에 주로 사용

 

공개키 : 공개키는 지정된 인증기관에 의해 제공되는 키 값으로서, 이 공개키로부터 생성된 개인키와 함께 결합되어, 메시지 및 전자서명의 암호화와 복원에 효과적으로 사용될 수 있다. 공개키와 개인키를 결합하는 방식은 비대칭 암호 작성법으로 알려져 있으며, 공개키를 사용하는 시스템을 공개키 하부구조(PKI)라고 부른다.

인터넷상의 거래 비밀을 보장하면서도 거래 당사자들의 신분을 확인시켜 주는 보안기술이다. 공개한 의미는 수신자만 열쇠를 갖고 있는 자물쇠를 여러 사람에게 나눠줬다는 것을 의미한다. 즉 자신에게 귀중품을 보낼때 금고에 먼저 그것을 담고, 금고열쇠는 다시 자신만이 열수 있는 자물쇠로 봉합해 보내라는 것이다. 데이터를 암호화하는 방법에는 공개키와 비밀키 방식이 있다. 비밀키 암호시스템이 송수신자 양측에서 똑같은 비밀키를 공유하는 데 반해 공개키는 암호화와 복호화키가 다르기 때문에 데이터를 암호화하고 이를 다시 풀 수 있는 열쇠가 달라 거의 완벽한 데이터 보완이 가능하고 정보유출의 가능성이 적은 시스템이다. 공개키 암호방식은 대칭키 암호기술이 제공하는 기밀성, 무결성 기능뿐 아니라 인증, 부인방지, 전자서명과 같은 다양한 정보보호 기능을 제공하고 키 분배 문제를 해결할 수 있는 가장 효과적인 대안으로 인식되고 있다.

 

피싱(Phishing) : 개인정보(Private data)와 낚시(Fishing)의 합성어로, ① 금융기관을 가장한 이메일 발송 →② 이메일에서 안내하는 인터넷주소 클릭 → ③ 가짜 은행사이트로 접속 유도 →④ 보안카드번호 전부 입력 요구 → ⑤ 금융정보 탈취 → ⑥ 범행계좌로 이체

ex) ‘9월 카드 거래내역’이라는 제목의 이메일에서 안내하는 인터넷주소를 클릭하자 가짜은행사이트로 접속되면서 보안카드번호 전부를 입력한 결과, 범행계좌로 무단 이체

 

파밍(Pharming) : 피싱에서 진화한 형태로, 유도가 아닌 직접적으로 가짜 사이트로 접속하도록 함

악성코드에 감염된 사용자PC를 조작하여 금융정보를 빼냄

① 사용자PC가 악성코드에 감염됨 → ② 정상 홈페이지에 접속하여도 피싱(가짜)사이트로 유도 → ③ 금융정보 탈취 → ④ 범행계좌로 이체

※ (피싱사이트) ‘http://*Kb*bank.com’ 등 정상 홈페이지로 가장하여 금융정보(보안카드번호      전부) 입력을 요구, 신종금융사기의 주요 범행수단

파밍은 아예 해당 사이트가 공식적으로 운영하고 있던 도메인 자체를 중간에서 탈취한다는 점에서 차이가 있다. 인터넷프로토콜(IP) 주소 자체를 변경해 ‘WWW’로 시작하는 주소를 정확히 입력해도 가짜 사이트가 뜨게 해, 사용자들은 늘 이용하는 사이트로 알고 의심하지 않고 개인 ID, 패스워드, 계좌정보 등을 노출하게 된다. 파밍은 이런 방법으로 개인정보를 빼가는 수법이다. 이러한 파밍에 대응하기 위해서는 서버 소프트웨어 강화 및 DNS(domain name server) 보호가 선행되어야 한다.

 

스미싱(Smishing) : 문자메시지(SMS)와 피싱(Phishing)의 합성어로, ① ‘무료쿠폰 제공’, ‘돌잔치 초대장’, ‘모바일청첩장’ 등을 내용으로 하는 문자메시지내 인터넷주소 클릭하면 → ② 악성코드가 스마트폰에설치되어 → ③ 피해자가 모르는 사이에 소액결제 피해 발생 또는 개인·금융정보 탈취

 

스니핑(Sniffing) : 킁킁거리다, 냄새를 맡다(sniff)에서 파생된 IP 용어로 네트워크 주변을 지나다니는 패킷을 엿보는 행위이다. 300바이트 정도만 가로챌 수 있어도 계정의 id, pwd를 훔칠 수 있기에 보안에 큰 타격을 줄 수 있다.

스니핑 공격은 공격 대상의 근거리 네트워크를 promiscuous mode를 통해 조작한 후 필터링을 해제하고 패킷을 훔치는 방식으로 수행한다. 주된 종류로는 스위치 재밍, 포트 미러링, ARP redirect, ICMP redirect 등이 있다.

스니핑을 방어하기 위해 SSL 등 데이터 암호화 기법이 쓰이고 있다. 데이터를 도둑맞아도 내용을 볼 수 없으므로 안전해진다.

2015년 12월 우크라이나 정전 사태에 악용되었다. 또 인터넷 도박을 할 때 사기도박을 하기 위해 악용되는 경우가 의심되고 있다.

 

스푸핑(spoofing) : 스푸핑은 눈속임(spoof)에서 파생된 IT 용어로, 직접적으로 시스템에 침입을 시도하지 않고 피해자가 공격자의 악의적인 시도에 의한 잘못된 정보, 혹은 연결을 신뢰하게끔 만드는 일련의 기법들을 의미한다. 이 부류에 속하는 기법들은 인간의 약점을 노리는 피싱과, 단지 중간에서 나가고 들어오는 정보만을 가로채는 스니핑과는 달리 더 적극적으로 피해자의 시스템이 잘못된 정보를 신뢰하고 받아들이게끔 유도하며, 그렇기 때문에 특별한 검증 행위 없이는 자신이 속고 있음을 알아채기 힘들다.

스푸핑에 피해를 입은 시스템은 공격자가 주입한 잘못된 정보를 믿게 되어 스스로 악성 사이트에 접근하거나 공격자에게 정보를 헌납하게 되는데 이 상태에서 피싱과 연계되거나 백도어를 뚫는 수단으로 활용 될 경우 더 큰 2차 피해가 발생하기 쉽다. 특히 피싱은 단순히 누군가가 속아서 접속하기를 기다리는 수준을 넘어서 아예 면전에다 피싱 수단을 들이밀 수 있게 되기에 더 악질적이다.

 

메모리 해킹 : 피해자 PC 메모리에 상주한 악성코드로 인하여 정상 은행사이트에서 보안카드번호 앞·뒤 2자리만 입력해도 부당 인출하는 수법

범죄 유형

<수법1> : 피해자 PC 악성코드 감염 → 정상적인 인터넷 뱅킹 절차(보안카드 앞·뒤 2자리) 이행 후 이체 클릭 → 오류 발생 반복(이체정보 미전송) → 일정시간 경과 후 범죄자가 동일한 보안카드 번호 입력, 범행계좌로 이체

<수법2> : 피해자 PC 악성코드 감염 → 정상적인 계좌이체 종료 후, 보안강화 팝업창이 뜨면서 보안카드번호 앞,뒤 2자리 입력 요구→일정시간 경과 후 범행계좌로 이체

 

랜섬웨어 : ransom(몸값)과 ware(제품)의 합성어로 컴퓨터 사용자의 문서를 ‘인질’로 잡고 돈을 요구한다고 해서 붙여진 명칭이다

인터넷 사용자의 컴퓨터에 잠입해 내부 문서나 스프레트시트, 그림파일 등을 암호화해 열지 못하도록 만든 후 돈을 보내주면 해독용 열쇠 프로그램을 전송해 준다며 금품을 요구하는 악성 프로그램

고도화된 알고리즘의 진화로  최근 가장 주목해야할 보안 이슈 중 하나이다.

 

멀웨어[Malware] : 악성 소프트웨어(malicious software)의 줄임말

컴퓨터 사용자 시스템에 침투하기 위해 설계되어진 소프트웨어를 뜻하며 컴퓨터바이러스, 웜바이러스, 트로이목마, 애드웨어 등이 포함된다. 초기의 바이러스나 웜이 이메일에 첨부된 파일이나 플로피디스크를 통해 전파됐던 반면, 인터넷이 급속도로 보급되면서 멀웨어들은 특정 웹사이트를 접속하는 것만으로도 감염될 만큼 발전을 거듭하고 있다. 또한 시스템을 파괴하는 데 그치지 않고, 개인의 정보를 해킹해 상업적으로 악용하는 등 위험성도 점차 커지고 있다.

가끔 특정 사이트 접근 시 멀웨어 경고 창을 볼 수 있다.

 

데이터유출 방지 [DLP: Data Leakage/Loss Prevention] : 내부정보 유출 방지 솔루션. 사내 직원이 사용하는 USB, 외장하드, 이메일 등 물리적인 것과 네트워크 상의 모든 정보를 검색하고 사용자의 행위를 탐지/통제해 외부 유출을 사전에 막는다. 모니터링 및 로그관리 시스템으로 유출 경로또한 추적할 수 있다. 

 

버퍼 오버플로우[Buffer Overflow] : 버퍼 오버플로우라는 이름에서 알 수 있듯이, 버퍼 오버플로우는 말그대로 정해진 크기의 버퍼 이상을 입력해 프로그램의 비정상적 종료나 개발자가 의도하지 않았던 행위를 하는 것으로, 일반적으로 버퍼의 입력값에 제한을 두지 않는 strcpy함수나, gets함수에서 발생한다.

특히, 버퍼 오버플로우의 핵심은 “리턴 어드레스”라는 곳에 있다. 리턴 어드레스를 간단하게 요약하자면, main함수를 진행하던 도중 다른함수를 만나게 되면 다시 main함수로 돌아올때 필요한 이정표같은 거라고 볼 수 있다. 즉, 프로그램은 리턴 어드레스의 주소로 다시 돌아온다는 것이다. 그렇다면, 리턴 어드레스의 주소를 system() 함수의 주소나 우리가 원하는 쉘을 실행하는 코드가 들어있는 변수의 주소로 변조, 아니면, 입력받는 메모리공간에 쉘코드를 삽입시켜놓고 그 메모리공간의 주소로 변조를 시킨다면 쉘을 따낼 수 있을 것이다.

 

무차별 대입공격(Brute-Force Attack) : 성공할 때까지 가능한 모든 조합의 문자를 대입해 계정 정보 등을 탈취하는 해킹 방법

 

사회공학기법 (응용 보안) : 컴퓨터 보안에서 인간 상호작용의 깊은 신뢰를 바탕으로 사람들을 속여 정상 보안 절차를 깨뜨리고 정보를 얻기 위한 비기술적 침입 수단

 

APT 공격 (Advanced Persistent Threat) : '지능적 지속 위협' 이라는 뜻이다.  다시 말하면, 지능적인 방법을 사용해서 지속적으로 특정대상을 공격하는 것이죠

APT 공격은 과거의 불특정 다수를 노렸던 사이버 공격들과는 달리 하나의 대상을 정해서 성공할 때까지 공격을 멈추지 않는 것이 특징이다.

기업이나 기관의 중요 시스템에 대한 보안은 단단해서 처음부터 침투가 어렵기 때문에 회사 개인PC를 먼저 장악한 후, 합법적인 권한을 획득하여 내부로 들어가는 방법을 주로 사용합니다.

 

제로 데이 공격 / 제로 데이 위협(Zero-day Attack / Zero-day Threat) : 특정 소프트웨어의 아직까지 공표되지 않은, 혹은 공표되었지만 아직까지 패치되지 않은 보안 취약점을 이용한 해킹의 통칭이다.

"Zero-day"는 해당 취약점이 공표 혹은 발견된 날을 뜻하므로, 개발사는 공격이 행해진 시점에서 이 취약점을 해결할 시간을 채 하루도 가지지 못했음을 뜻한다.

제로 데이 공격은 그 정의에 따라 해당 취약점에 대한 대책이 아직까지 없기 때문에 공격을 막을 수가 없어서 어떤 컴퓨터든 무방비로 노출될 수밖에 없다.

Microsoft Windows의 예를 들면, 취약점의 발견/제보 그리고 공표 후 그 취약점에 대한 보안패치 개발까지 보통 6시간 이상 걸린다. 패치가 올라오더라도 받아서 설치할 때까지 시간이 걸리므로, 생각보다 공격이 행해질 수 있는 기간은 길다.

그리고 아예 발견이나 제보조차 되지 않은 취약점이라면 대책이 없다. 그 취약점을 이용하는 공격 매개체(바이러스, 웜 등의 악성코드)가 발견되지 않는 이상 컴퓨터는 해당 공격에 속수무책.

이런 특징으로 인해 제로 데이 취약점은, 특히 아직까지 공표되지 않은 취약점은 블랙햇 해커들에겐 그야말로 꿈의 병기이며, 찾는 데 혈안이다.

찾아도 대개는 함부로 쓰지도 않는다. 제로 데이 취약점은 그 악용 가능성이 무궁무진 하기에 블랙해커들 사이의 다크 웹 암시장(일명 블랙 마켓)에서 고가의 가격으로 팔리기도 한다.

제로 데이 공격의 위험을 최소화하기 위해 안티 익스플로잇이라는 프로그램이 있다. 이들은 취약점 기반 공격을 최대한 막는 역할을 한다.

 

'IT > 해킹(Hacking)' 카테고리의 다른 글

Httpry  (0) 2021.07.07
URLSnarf  (0) 2021.07.07
최고의 무료 보안 도구 20선  (0) 2021.07.07
Fiddler 설치 및 사용방법  (0) 2021.07.07
Burp Suite 설치 및 사용방법  (0) 2021.07.07

+ Recent posts