깃발 포착: 이것은 해커 게임이다...안전 전문가 말이에요.

12852 단어 ctfhackingsecurity

나의 첫 번째 큰 여자 아이 깃발 떼기 시합


지난 주말에 나는 BSides Iowa 데메인에서 열린 소형 안전 회의에 참가했고 안전 전문가로 참가한 첫 번째 국기 잡기 대회에 참가했다.야외 대형 노천장과 체력 소모를 고려하기 전에 깃발 잡기 경기는 안전 공격 전문가('레드팀'이라고도 부른다)와 안전 방어 전문가(블루팀)를 겨냥한 게임, 그리고 중간에 있는 모든 사람들을 대상으로 한다.CTF 기간 동안 게이머들은 컴퓨터에서 서로 경쟁하여 도전을 해결한다.
서로 다른 유형의 CTF 경기가 있는데 게임판의 위험 스타일과 공방(붉은 팀이 파란 팀에 대한) 스타일이 있고 선수들이 인터넷 인프라 시설을 적극적으로 공격하고 수비한다.저는 여기서 Jeopardy 스타일의 CTF를 중점적으로 소개할 것입니다.
일반적인 상황에서 위험한 스타일의 연결 시퀀스는 몇 가지 유형으로 나뉜다. (이 유형들은 도움을 주는 사람에 따라 다르지만 암호화와 데이터 패키지 분석 등 상량이 있다. 각 유형은 하나의 도전이 있고 사용자는 이러한 도전을 해결해야 표지를 찾을 수 있다.이 로고는 보통 텍스트 문자열로 사용자가 점수를 얻기 위해 게임판에 입력합니다.도전치의 점수가 많을수록 해결의 난이도가 높아진다(대략 이렇다).

"7.5시간 동안 감자튀김 한 접시, 피자 두 조각, 아스피린 두 조각, 그리고 컴퓨터를 껐더니 3250점을 받아 6위에 올랐다."


BSides-Iowa CTF는 SecDSM 에서 지원합니다. 이것은 저희가 데메인 지역의 네트워크와 정보 안전 전문가를 위한 로컬 사용자 그룹입니다.CTF는 전파, 암호화, 네트워크 인증, Pwned, 호스트 인증, Let's Get Physical(잠금 장치) 등 6개 종류가 있다.오전 10시부터 나와 약 20명은 8시간 동안 CTF를 완성했다.
7.5시간, 감자튀김 한 접시, 피자 두 조각과 아스피린 두 조각, 그리고 컴퓨터를 끄고 3250분과 6위로 끝났습니다.나는 나의 기술집에 매우 가깝게 선택했고, 내가 선험 지식을 갖추지 못한 유형으로 진정으로 확대되지 않았다.나는 마침내 7개의 네트워크 인증 도전, 8개의 호스트 인증 도전 중 2개, 6개의 암호화 도전 중 3개를 해결했다.많은 도전에 대해 나는 그들을 가장 먼저 해결한 사람이거나 3위였다.나의 첫 번째 큰 여자 CTF에게는 그리 초라하지 않다.

"CTF의 진정한 즐거움은 깃발을 찾기 위해 진정한 빈틈과 전술을 사용할 때 실제로는 효과가 있다는 느낌을 갖게 된다는 것이다(당신은 이미 뭔가를 침입했다).


이것은 나로 하여금 진정으로 자신의 영역에 속한다고 느끼게 하는 아주 좋은 초보자 시합이다.때로는 특히 기술직에서 사기꾼 증후군의 희생물이 되기 쉽다.이 CTF는 나의 기술에 대한 어떤 의심도 덜어 주었다.나는 내가 아직 배워야 할 것이 많다는 것을 알지만, 나도 단지 네가 성공할 때까지 하는 일이 아니라는 것을 안다.이것 또한 나의 뇌를 단련하고 나의 안전 지식을 확장하는 매우 재미있는 방식이다.비록 나는 내가 알고 있는 것과 매우 가깝지만, 나는 이전에 몰랐거나 어떻게 해야 할지 몰랐던 도전을 해결할 때 많은 새로운 것을 배웠다.일부 개발자들은 새로운 것을 배우기 위해 응용 프로그램을 겸직하지만 보안 전문가들은 해킹을 하고 새로운 기술을 얻기 위해 경쟁한다.
CTF의 진정한 즐거움은 진정한 빈틈과 전술로 로고를 찾아내고 효과가 있을 때 (해킹한 것이 있다) 느낄 수 있다는 것이다.CTF는 당신의 합법적인 해커 행위의 기회입니다. (권한이 부여되지 않은 해커 행위는 매우 불법이기 때문에 만약 당신이 잡히면 당신은 감옥에 들어갈 수 있습니다.)

Bsides 아이오와 주 SecDSM CTF가 직면한 도전들을 살펴봅시다.


암호화 범주


더 재미있는 암호화 도전 중 하나는 은사술 도전이다.은서술은 비밀 메시지를 다른 파일 (예를 들어 그림) 에 숨기는 것이다.이것은 깃발 쟁탈 경기에서 흔히 볼 수 있는 도전이다.이미지 파일에 숨겨진 메시지를 감지하고 추출하는 데 사용할 수 있는 온라인 도구가 많습니다.

은사술 도전



그 그림은 보기에 매우 평범하다, 그렇지?하지만 우리가 명령행을 한 번 보면...
$ file Words-Have-Power.jpg 
Words-Have-Power.jpg: JPEG image data, JFIF standard 1.01, resolution (DPI), density 96x96, segment length 16, progressive, precision 8, 849x578, frames 3
별거 아니에요.한번 해볼게요.
$ hexdump -C Words-Have-Power.jpg
이것은 출력 그룹으로 되돌아옵니다. 여기에 붙이지 않겠지만, 다음은 관련 위치입니다.
0000a580  00 00 00 1e 00 00 00 08  00 00 00 66 6c 61 67 2e  |...........flag.|
0000a590  74 78 74 7d fa c9 4c 8f  fb d4 5e 8d 43 86 1f 63  |txt}..L...^.C..c|
0000a5a0  f9 f5 dd 12 d0 9d c7 e1  1d 50 5b 26 a5 32 7e ad  |.........P[&.2~.|
0000a5b0  94 04 3e a1 27 3b d4 e5  7f a4 f6 45 43 50 4b 01  |..>.';.....ECPK.|
0000a5c0  02 3f 03 14 03 01 00 00  00 bc 0c 94 4a 21 ff 41  |.?..........J!.A|
0000a5d0  1a 2a 00 00 00 1e 00 00  00 08 00 24 00 00 00 00  |.*.........$....|
0000a5e0  00 00 00 20 80 a4 81 00  00 00 00 66 6c 61 67 2e  |... .......flag.|
0000a5f0  74 78 74 0a 00 20 00 00  00 00 00 01 00 18 00 80  |txt.. ..........|
0000a600  63 53 a4 a0 b9 d2 01 80  70 f5 17 a1 b9 d2 01 80  |cS......p.......|
0000a610  63 53 a4 a0 b9 d2 01 50  4b 05 06 00 00 00 00 01  |cS.....PK.......|
0000a620  00 01 00 5a 00 00 00 50  00 00 00 00 00           |...Z...P.....|
현재 우리는 로고가 텍스트 파일에 있다는 것을 알고 있습니다. 마지막 줄에서 jpg에 zip 파일이 숨겨져 있음을 알 수 있습니다.
만약 우리가 그것을 풀려고 시도한다면...
$ unzip Words-Have-Power.jpg
Archive:  Words-Have-Power.jpg
warning [Words-Have-Power.jpg]:  42349 extra bytes at beginning or within zipfile
  (attempting to process anyway)
[Words-Have-Power.jpg] flag.txt password: 
지금 비밀번호 힌트가 하나 있습니다.만약 우리가 "wordshavepower"(그림의 문자) 를 시도한다면...
$ unzip Words-Have-Power.jpg
Archive:  Words-Have-Power.jpg
warning [Words-Have-Power.jpg]:  42349 extra bytes at beginning or within zipfile
  (attempting to process anyway)
[Words-Have-Power.jpg] flag.txt password: 
 extracting: flag.txt         
경탄했어서류에 뭐라고 쓰여 있는지 봅시다.
$ cat flag.txt 
flag{not_stego_not_even_once}

암호 문제


또 다른 문제는 암호 해독 문제입니다.pcyv{mvac_flt_bg_kdzja_xoksvp_iaof_u4}언뜻 보니, 나는 그것이 하나일 수도 있다고 생각했지만, 주사위는 없었다.다음 가장 유행하는 비밀번호는 aCaesar Cipher입니다.빠른 구글 검색 후...Vigenere Cipher
이 분류의 다른 도전은 바이너리, Base64, Base32 또는 Base16에서 ascii로 전환하거나 AES로 암호화된 파일을 복호화해야 한다.

호스트 인증 범주


도전은 실행 중인 악성 소프트웨어의 이름과 C2(명령 및 제어) IP 주소와 포트를 찾기 위해 MS 호스트 덤프를 다운로드하고 분석해야 합니다.
이런 종류는 내가 지식 분야 외에서 가장 시도에 가까운 것이다.나는 지금까지 Windows 기기에서 증거를 수집한 적이 없지만, 구글은 모든 사람의 친구이다.Volatility라는 명령행 도구를 사용하여 덤프를 분석하고 플래그를 찾을 수 있습니다.
파일을 다운로드한 후, 나는 file 명령을 실행하여 내가 보고 있는 내용을 더 잘 이해하도록 했다. 왜냐하면 이 파일을 간단하게 cat 시도하면, 너는 허튼소리를 하게 될 것이다.
$ file memory.dmp
memory.dmp: MS Windows 64bit crash dump, full dump, 2097152 pages
나는 지금까지 붕괴 저장을 본 적이 없지만, 빠른 구글 검색으로 및 시작과 실행에 필요한 명령을 찾았다.(나는 또 다른 비슷한 도전을 가진 CTF에서 하나를 찾았다 Volatility
나는 쓰레기장의 네트워크 연결을 보기 시작했다.만약 다른 것이 없다면, 나는 내가 C2 좀비 네트워크의 연결을 발견할 수 있다는 것을 안다.
write up
나는 서버에 이상한 외부 IP 주소가 부여되어 있다는 것을 알아차렸다. 이 주소는 여러 개의 출구 연결이 있다.나는 이 IP를 선별하여 비표준 포트의 연결을 찾았다. (이 예에서는 포트 80이나 433이 아니라 웹 포트이기 때문에 좀비 네트워크를 제어하는 데 사용되지 않는다.)
$ volatility -f memory.dmp --profile=Win7SP1x64 netscan | grep 10.0.10.103
Volatility Foundation Volatility Framework 2.5
0x23d43aec0        UDPv4    10.0.10.103:138                *:*                                   4        System         2017-04-21 19:18:49 UTC+0000
0x23d472ec0        UDPv4    10.0.10.103:137                *:*                                   4        System         2017-04-21 19:18:49 UTC+0000
0x23da11b40        UDPv4    10.0.10.103:1900               *:*                                   2292     svchost.exe    2017-04-21 19:20:47 UTC+0000
0x23f434690        UDPv4    10.0.10.103:68                 *:*                                   904      svchost.exe    2017-04-21 19:35:12 UTC+0000
0x23f21f880        TCPv4    10.0.10.103:49662              174.127.99.252:4576  CLOSED           -1                      
0x23f471010        TCPv4    10.0.10.103:49682              98.139.199.205:443   CLOSED           -1                      
0x23fdbe3b0        TCPv4    10.0.10.103:139                0.0.0.0:0            LISTENING        4        System         
0x23f91c010        TCPv4    10.0.10.103:49665              165.254.114.16:80    CLOSED           -1                      
0x23faa0cd0        TCPv4    10.0.10.103:49698              63.250.200.63:443    CLOSED           -1                      
유일한 선택은 174.127.99.252:4576, 결과는 정확한 표식이다.
다음 도전은 이 시스템에 감염된 확실한 악성 소프트웨어를 찾아내는 것이다.나는 IP 주소가 악성 소프트웨어와 관련이 있다는 것을 알고 있기 때문에 strings를 사용하여 덤프를 검색하고 C2 IP 주소를 필터합니다.
$ strings -d memory.dmp | grep '174.127.99.252' | more -5
{"NETWORK":[{"PORT":4576,"DNS":"174.127.99.252"}],"INSTALL":true,"MODULE_PATH":"Ns/k/Erc.R","PLUGIN_FOLDER":"fDNTvmjCywD","JRE_FOLDER":"KRBDYF","JAR_FOLDER":"
HfItRcGAvMp","JAR_EXTENSION":"JFKuuO","ENCRYPT_KEY":"mZWoFgfReBJIoLFLZKsOOIaqn","DELAY_INSTALL":2,"NICKNAME":"User","VMWARE":true,"PLUGIN_EXTENSION":"TvEXt","
WEBSITE_PROJECT":"https://jrat.io","JAR_NAME":"kpjCTotwwxd","SECURITY":[{"REG":[{"VALUE":"\"SaveZoneInformation\"=dword:00000001\r\n","KEY":"[HKEY_CURRENT_USE
R\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Attachments]"},{"VALUE":"\"LowRiskFileTypes\"=\".avi;.bat;.com;.cmd;.exe;.htm;.html;.lnk;.mpg;.mpeg
;.mov;.mp3;.msi;.m3u;.rar;.reg;.txt;.vbs;.wav;.zip;.jar;\"\r\n","KEY":"[HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Association
이 모든 것 중에서 나는 악성 소프트웨어가 jrat.io 라고 불리는 것도 상징이라는 것을 발견했다.
그날 늦게 나는 이 유형을 연구하기 시작했다.나는 내가 다른 도전을 시도할 수 있는 시간이 더 많기를 바란다. 왜냐하면 나는 내가 그것들을 해결할 수 있다고 생각했기 때문이다.상기 두 가지 도전은 주최자 인증 유형에 있어서 가장 언급할 만하다.

네트워크 인증 범주


이런 종류는 내가 가장 편안하게 느끼는 곳이다.데이터 패키지 분석은 나의 일상 업무 생활의 중요한 구성 부분이다.이런 종류의 도전은 세 가지 주제가 있다.인터넷 낚시, 협박 소프트웨어, 심장 박동.이 유형의 도전을 완성하기 위해서는 유저 와 데이터 패키지 분석과 인터넷 지식이 필요하다.
나는 이 가슴 아픈 도전을 겪을 것이다.우리는 pcap 파일을 다운로드해야 하는데, 유일한 설명은 고장났다는 것이다.

철상어 가슴 아픈 도전


와이어샤크의 pcap를 보면서 심장 박동 요청과 응답으로 가슴이 찢어지는 공격이 될 거라는 것을 알았다.나는 하트블레이드의 작업 원리를 살펴보았는데, 거기에서 무엇을 볼 수 있는지 추측할 수 있었다.( )
Check out the graphical explanation I found
하트비트 응답을 보고 부하를 텍스트로 복사하면 결국...
SC[r+H9
w3f
"!985
    32ED/A I
42
   
#ge: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Content-Length: 28
Pragma: no-cache
Cache-Control: no-cache

bsides={heartbleed_for_life}kYV<V4
bsides={heartbleed_for_life}국기입니다.

해 보다


만약 네가 이미 이렇게 멀리 갔고, 내가 마이크로소프트의 붕괴된 쓰레기 더미 속에서 너를 잃지 않았다면, 아마도 너는 국기 잡기 시합을 해 봐야 할 것이다.많은 초급 CTF는 사람들의 학습을 돕기 위해 설계된 것이다.개발자들이 사용할 수 있도록 웹 빈틈을 전문적으로 이용하는 CTF도 많다.개발자로서 외부 위협이 발생하기 전에 자신의 응용 프로그램을 이용하는 방법을 이해하는 것은 매우 귀중하다.만약 당신이 흥미가 있지만 아직 경쟁에 참여하고 싶지 않다면 아래의 몇 개의 사이트를 방문하십시오.
  • CTFLearn

  • HackThisSite
  • A list of websites to practice with
  • 내가 사용하는 명령행 유틸리티에 관심이 있습니까?
  • Tools and Resources to Prepare for a Hacker CTF Competition or Challenge by Infosec Institute
  • cat
  • file
  • grep
  • hexdump
  • more
  • strings
  • unzip
  • 나는 Ubuntu 16.04 Digital Ocean Droplet에서 대부분의 도전을 끝냈다.
    웹 응용 프로그램을 어떻게 활용하는지 배우는 데 특히 흥미가 있습니까?한번 해 보겠습니다Volatility.나는 그것으로 한 무리의 학생들에게 SQL 주입 공격을 보여 주었는데, 그것은 쉽게 설정하고 사용할 수 있다.
    다시 한 번 말하지만, 너는 너무 많이 알 필요가 없다. 깃발 쟁탈 경기에 참가할 수 있다.너는 단지 사람을 화나게 하고 억제할 수 없는 욕망으로 계속 시도할 수 있을 뿐이다.경기의 중점은 공부이니 두려워하지 말고 바로 뛰어들어라.만약 당신이 마지막으로 CTF를 만들었다면, 저에게 어떻게 진행되고 있는지 알려주세요.만약 당신이 이미 CTF를 한 적이 있다면, 당신은 무엇을 배웠습니까?

    좋은 웹페이지 즐겨찾기