[BFA]

 

BFA(Brute Force Attack, 무차별 대입 공격)는 공격 대상 ID를 정해놓고 PW에 대입 가능한 모든 문자열을 일일이 시도해 보는 공격방식이다.

 

 

 

[RBFA]

 

RBFA(Reverse Brute Force Attack)는 BFA와 반대로 PW를 정해놓고, ID를 바꿔가며 시도해 보는 공격이다.

PW가 아닌 ID를 바꾸면서 공격한다는 점에서 이는 불특정 다수의 User들을 대상으로 하는 공격이다.

 

 

 

[사전공격]

 

공격 대상 ID를 정해놓고 PW를 바꿔가며 시도한다는 점에서 BFA와 유사하다.

그러나 사전에 준비한 파일에 있는 PW를 시험하는 공격방식이라는 점에서 차이가 있다.

 

 

 

[크리덴셜 스터핑]

 

다른 웹사이트 등으로 부터 유출된 ID나 비밀번호를 이용해 시험하는 공격이다. 

여러 웹사이트의 ID와 PW를 동일하게 설정해 놓은 이용자들이 많다는 점을 이용한 공격이다.

  • 문제파일 및 디버거
  • 문제분석
  • 문제풀이

 

 

 

[문제파일 및 디버거]

 

crackme5.exe
0.01MB
odbg110.zip
1.28MB

 

 

 

[문제분석]

파일을 더블 클릭해서 연후 아무 시리얼 키를 입력하고 check 버튼을 클릭했다.

 

시리얼 키가 정확하지 않다고 에러창이 뜬다.

 

올리디버거를 켜서 문제파일을 올려서 프로그램을 한번 실행시켜 봤다. 이전과 똑같이 실행됨을 알 수 있다.

 

어셈블리어를 분석해 보면 CMP를 통해 EAX와 0을 비교하여 EAX의 값이 0과 같지 않다면(ZF=0) 하나의 메모리 주소를 뛰어넘고 Error 메시지 창을 띄우는 것 같다.

 

EAX의 값이 0과 같다면 바로 다음 주소를 실행해서 00401117 메모리 주소로 뛰어넘어가 "Well Done!"이라는 메시지 창을 띄우는 것 같다. 따라서 "Well Done!" 메시지 창이 나오게 하는 게 이 문제의 핵심일 것이다.

 

 

 

[문제풀이]

해당 문제의 풀이에는 하기와 같은 3가지 접근방식이 존재한다.

 

<1. 올바른 시리얼키 찾기>

우선 시리얼키를 입력하는 창의 메모리 주소를 찾기 위해 F2로 브레이크포인트 설정을 하고 F9으로 그전단계까지 실행한 다음 F8로 한 단계씩 실행하는 방식을 사용했다. 

 

분석을 해보면 00401110 메모리 주소에서 시리얼키를 입력하는 메시지 창이 뜨며 오른쪽 주석창을 봤을 때 "L2C-5791" 문장에다 "6794-ABEX" 문장을 이어 붙이는 것을 확인했다. 그리고 마지막으로 사용자가 입력한 시리얼 값인 "1234"와 해당 " L2C-5791 6794-ABEX" 문장을 비교하고 있는 것을 알 수 있다. 즉 비교해서 일치하면 EAX가 0, 일치하지 않다면 1로 설정되는 것이다. 입력한 값가 다르기에 실행 결과 EAX의 값이 1로 설정되어 있는 것을 볼 수 있으며 입력한 값과  " L2C-5791 6794-ABEX" 문장을 비교하는 것으로 봤을 때 " L2C-5791 6794-ABEX" 이게 올바른 시리얼 값이라고 추측할 수 있다.

 

다시 시작해서 " L2C-5791 6794-ABEX"를 시리얼 값으로 넣었더니 올바른 시리얼 값을 넣었다고 뜨고 EAX가 0으로 설정된 것을 확인할 수 있다. 

 

 

< 2. 제로 플래그값 변조 우회>

시리얼 값을 "1234"로 입력 후 한 단계씩 디버깅해 가며 JE에 도달했을 때 다음으로 뛰어 넘어가기 위해 제로 플래그의 값을 더블 클릭해서 1로 바꾸고 계속 실행하면 "Well Done!" 쪽으로 뛰어넘어가 올바른 값이 입력되었다는 창이 뜬다.

 

 

<3. EAX값 변조 우회>

시리얼 값을 "1234"로 이력 후 한 단계씩 디버깅해 가며 CMP에 도달했을 때 EAX의 값을 클릭해 0으로 만들어서 EAX와 0이 일치하게 하여 다음 문장이 실행되고 결과적으로 "Well Done!" 쪽으로 뛰어넘어가 올바른 값이 입력되었다는 창이 뜬다.

스테가노그래피란 겉으로 보기엔 평범한 이미지나 영상, 음악 파일 안에 전송하고자 하는 비밀정보를 숨기는 기법을 뜻한다.

 

 


<S-Tools를 이용한 실습>

 

1. S-Tools를 실행시킨 후 아무 이미지(예: zebras.bmp)나 올린다.

 

2. 은닉할 텍스트 파일(예: hidden.txt)을 하나 만들어서 글을 적은 후 이미지 파일 위에 드래그한다. 패스워드 설정과 아무 암호화 방식을 선택 후 OK를 클릭한다.

 

3. 은닉한 파일을 내포한 hidden data 이미지가 나타나게 되고 해당 이미지를 우클릭 후 다른 이름(예: zebras secret.bmp)으로 저장한다.

 

4. 파일을 은닉하고 있는 이미지 파일을 S-Tools에 다시 올린 후 우클릭->reveal->이전에 설정한 패스워드/암호화 방식을 선택하고 OK 클릭한다.

 

5. 새로운 창이 하나 뜨면서 Hidden.txt 파일이 내장되어 있는 것을 보여준다. 해당 텍스트 파일을 다른 이름(hidden secret.txt)으로 저장한다.

 

6. 저장한 텍스트 파일을 열어 확인해 본 결과 이전에 이미지 파일에 은닉했던 값과 일치하는 것을 확인할 수 있다.

 

 

 

 

Reference:

https://weekly.chosun.com/news/articleView.html?idxno=5508

https://www.cs.vu.nl/~ast/books/mos2/zebras.html

 

 

 

'hacking > Forensic' 카테고리의 다른 글

[Forensic] Surface Web & Deep Web & Dark Web  (0) 2023.10.06

[Phishing]

 

'private1fishing'으로서 사회공학적 기법을 사용한 공격으로, 지인이나, 관련된 기관 등으로 사칭하여 이메일을 보내 의심 없이 열어보도록 하는 공격을 말한다. 글에 포함된 링크를 클릭하는 순간 악성코드 감염이나 악성 웹사이트로 이동시키는 방식을 사용한다. '피싱' 그 단어 자체 의미로 해석하면 사람들을 속여서 낚는다고 보면 된다. 

'spear-phishing'은 작살을 의미하며 특정인을 타겟으로 더 정교하게 제작하여 만든 피싱이라고 볼 수 있다.

 

 

 

[Smishing]

 

'SMS1phishing'으로서 pc가 아닌 스마트폰의 문자 메시지를 통해 이루어지는 피싱 공격을 말한다.

 

 

 

[Pharming]

 

기존에 존재하는 사이트와 비슷하게 생긴 사이트를 제작하고 비슷한 url 주소로 등록해 놓아 사람들이 실수로 접속하도록 유도하는 공격이다. 이는 사용자가 제대로 url을 입력하여도 피싱사이트로 연결시킬 수 있도록 설정할 수 있다.

 

 

 

[Scam]

 

신용사기를 일컬으며 사실 무근의  정보를 이용해 투자를 하도록 유인하고 돈을 받으면 잠적하는 행위 등을 의미한다.

If a virus is suspected in an object such as a file or url, you can test it in the following web browser.

https://www.virustotal.com/gui/home/upload

제가 모르는 해킹팀(기업, 학교 등.. 내부팀 제외)들 있다면 알려주세요 

 

 

 

1. TeamH4C: 대한민국 정보 보안 분야의 발전을 기하고, 화이트해커 양성과 보안의식을 한 층 더 높이는 것에 기여하는 것이 목표이며 컴퓨터 공학에 관련된 모든 분야를 탐구함에 관심이 있는 화이트 해킹팀입니다.

모집공고: TeamH4C 관련 톡방, 디스코드, 페이스북 등..

모집시기: 비정기적

관련링크:

https://teamh4c.com/

https://www.facebook.com/teamh4c

 

 

2. Team Demon: 해킹캠프 출신들을 중심으로 구성된 화이트 해킹팀입니다.

모집공고: 모르겠음

모집시기: 비정기적

관련링크:

http://hackingcamp.org/

https://demonteam.tistory.com/category/%ED%8C%80%EC%86%8C%EA%B0%9C

https://github.com/Demon-KR

 

 

3. Null@Root: 대한민국의 IT 보안 분석가/전문가/연구원/취미자 그룹입니다.

모집공고: Team 블로그

모집시기: 1년에 한 번씩 (4,5,6) 달 중 모집하는 것 같음

관련링크:

The Best Hacker Group - Null@Root (null2root.org)

 

 

4. Leaveret: 잘 모르겠지만 현재까지 존재하며 팀 멤버들이 우리나라 최상급 해커들이다.

모집공고: 모르겠음

모집시기: 모르겠음

관련링크: 

https://ctftime.org/team/962/

https://www.hackerschool.org/HS_Boards/zboard.php?id=Free_Board&page=994&sn1=&divpage=3&sn=off&ss=on&sc=on&select_arrange=headnum&desc=desc&no=31705

https://www.hackerschool.org/HS_Boards/zboard.php?id=Free_Board&page=591&sn1=&divpage=3&sn=off&ss=on&sc=on&select_arrange=hit&desc=asc&no=30065

 

 

5. T3N4CI0US

모집공고: 인스타, 페이스북 등..

모집시기: 모르겠음

관련링크:

https://www.t3n4ci0us.kr/

https://www.facebook.com/p/T3N4CI0US-100064062290144/

https://www.instagram.com/t3n4ci0us_official/

 

 

6. T4B: 대한민국 CTF팀

모집공고: 현재까지는 드림핵 커뮤니티에서 모집한 것으로 앎

모집시기: 모르겠음

관련링크:

https://t4b.notion.site/T4B-fe9a4d8eab1e4c7e83ef509d529fa818

  • apk 추출 
  • apk 분석
  • apk 디컴파일
  • apk 리패키징
  • apk 디지털 서명
  • apk 실행

 

 

[apk 추출]

apk(Android Package Kit)는 Android OS에 앱을 배포하고, 설치하는데 이용되는 패키지 파일의 확장자이다. 앱에서 apk 파일을 추출하는 방법은 다양하지만 간단한 방법은 apk 파일 추출 기능이 있는 앱을 다운받아서 apk를 추출해 내는 것이다. 그리고 해당 apk를 pc로 옮기면 된다. apk 추출 방법은 간단하니 자세히 다루지 않겠다.

 

 

[apk 분석]

apk 파일 분석은 jadx-gui라는 apk 분석 디컴파일러를 사용하면 편하다. 이는 apk 파일을 로드시키면 자바코드로 볼 수 있는 gui 환경을 제공해 준다.(smali 코드도 볼 수 있다.) 

 

 

[apk 디컴파일]

apk 파일의 내용을 수정하기 위해서는 디컴파일을 진행한 후 smali 코드의 내용을 수정해야 한다. 따라서 apktool을 설치하여 디컴파일을 진행하면 된다.

 

cmd에서 실행시킬 apk 디컴파일 명령어는 다음과 같다.

apktool d 'apk 파일명'.apk

이 명령어를 실행하면 apk 파일을 디컴파일 시킨 폴더가 하나 생성된다.

 

 

[apk 리패키징]

디컴파일하여 내용 수정했다면 다시 apk 파일로 만드는 리패키징하는 과정이 필요하다.

 

cmd에서 실행시킬 apk 리패키징 명령어는 다음과 같다.

apktool b '디컴파일 폴더' -o '출력 apk 파일명'.apk

이 명령어를 실행하면 디컴파일 폴더를 리패키징시킨 apk 파일이 하나 생성된다.

 

 

[apk 디지털 서명]

리패키징된 apk 파일은 디지털 서명 없이 안드로이드에서 바로 실행이 불가능하다. 따라서 기본적인 Key를 생성해 주고 해당 Key를 apk에 서명해 주는 과정이 필요하다.

 

Key를 생성하는 명령어는 다음과 같다.(keytool을 설치해야 하나 자바를 설치하면 자동으로 깔림) 

keytool -genkey -v -keystore 'key 저장소명'.keystore -alias 'Key명' -keyalg '암호화 방식' -keysize '키사이즈'

이 명령어를 실행하면 Key가 저장된 Keystore가 하나가 생성된다.

 

이제 만든 Key로 apk에 서명해 주는 명령어는 다음과 같다.

jarsigner -verbose -sigalg '서명 알고리즘' -digestalg '암호화 방식' -keystore 'key 저장소명'.keystore '서명할 APK명'.apk '서명할 Key명'

이 명령어를 실행하면 안드로이드에서 해당 apk를 실행시킬 수 있다.

 

 

[apk 실행]

수정한 apk 파일을 usb로 pc와 연결된 안드로이드 기기에 끌어와 직접 설치할 수 있다. 

하지만 안드로이드 기기에 직접 설치하지 않아도 PC에서 안드로이드 앱을 실행시킬 수 있는 Nox 등의  에뮬레이터를 간편하게 이용할 수 있다.

 

추가적으로 ADB(Android Debug Bridge)라는 안드로이드 기기나 에뮬레이터와 통신이 가능한 쉘을 이용하여 로컬 pc에서 다음과 같은 작업들을 시행할 수 있다.(Nox 설치하면 ADB 자동으로 깔리며 추가적으로 환경변수 설정해야 함)

adb shell: 원격 쉘 실행
adb install: 앱 설치
adb shell am: 특정한 조건에 맞게 파일 실행 등
adb logcat: log 출력

 

하드웨어 해킹에 유용한 자료들을 소개하도록 하겠다.

 

-해커스쿨 

Index of /HardwareHacking (hackerschool.org)

해커스쿨 강좌실 - 전광판 해킹 (hackerschool.org)

해커스쿨 강좌실 - 유무선 공유기 펌웨어 해킹 (hackerschool.org)

https://www.hackerschool.org/HardwareHacking/%ED%95%98%EB%93%9C%EC%9B%A8%EC%96%B4%20%ED%95%B4%ED%82%B9%20%EA%B8%B0%EC%B4%88%20-%20%ED%95%98%EB%93%9C%EC%9B%A8%EC%96%B4%20%ED%95%B4%EC%BB%A4%EA%B0%80%20%EB%90%98%EC%96%B4%EB%B3%B4%EC%9E%90!.pdf

하기의 공격기법과 비슷한 유형(초당 수많은 양의 데이터를 보내 네트워크 용량을 초과시키는 것)은 인터넷이 존재하는 한 사라지지 않는다. 다음에 나오는 3개의 공격기법은 지금은 잘 안 먹히지만 지금도 여전히 이로 인한 사건, 사고가 발생하고 있다.

 

 

[DoS]

DoS(Denial of Service): 서비스 거부 공격으로 한대의 PC를 이용해 개인적인 차원에서 대량의 데이터를 한 곳에 집중적으로 전송하는 공격이다. 이를 통해 표적이 되는 서버의 자원을 고갈시켜 시스템, 서비스를 사용하지 못하게 하는데 목적이 있다. 서버 제작 후 hping3을 이용한 실습을 해볼 수 있다.

 

 

 

[DDoS]

DDoS(Distributed Denial of Service): 분산 서비스 거부 공격으로 악성코드에 감염된 여러대의 PC들이 한 곳의 서버에 대해 시행하는 DOS 공격이다. 빈번하게 발생하고 있으며 사례로는 LoL 디도스 공격이 있다. 

https://m.ddaily.co.kr/page/view/2024030822054193804

 

 

 

[DRDoS]

DRDoS(Distributed Reflection Denial of Service): 분산 반사 서비스 거부 공격으로 IP Spoofing을 사용하여 공격자의 IP주소를 공격 대상의 IP로 위조하고 이를 다수의 반사체(Reflector)에게 요청을 하며, 반사체(Reflector)는 요청된 곳의 IP 주소를 확인한 후 위조된 IP로 응답패킷을 보내어 수행하는 DDoS 공격이다. 패킷의 크기를 증폭시키는 요청, 패킷의 양, 전송속도 등을 높여 대규모의 공격 트래픽을 발생시킬 수 있다.

 

 

 

IDS/IPS를 통해 이러한 공격들에 대하여 탐지 및 방지 조치를 취할 수 있다. 그러나 현실적으로 IDS(Detection)/IPS(Protection)로는 못 막는다. 왜냐하면 IDS/IPS 자체에 공격을 실행할 수 있기 때문이다. 따라서 WAF(Wdb Application Firewall)을 사용한다.

 

 

Reference: [DRDos 증폭 공격 기법과 방어 기술 연구], 최현상, 박현도, 이희조

+ Recent posts