Search results

'해킹'에 해당하는 글들

  1. 2010/04/03  CMU Press Release! (8)
  2. 2010/03/21  Codegate 2010 Pre-Qual (5)
  3. 2010/02/23  PadoCon 2010 Prequal
  4. 2010/01/26  ARM Shellcode (2)
  5. 2009/10/17  CSAW 2009 - Capture the Flag (8)
  6. 2009/09/24  Plaid Parliament of Pwning (18)
  7. 2009/09/24  HackJam 2009 After thoughts (1)
  8. 2009/07/10  Null@Root 6차 심사
  9. 2009/07/09  DDOS 란 무엇인가~ 파헤쳐보자! (3)
  10. 2009/06/05  DEFCON 17 -

저희 학교 press release에 저희 팀이 소개 되었습니다 :D



사용자 삽입 이미지

Plaid Parliament of Pwning




이번 Codegate2010 본선에 참가하게 될 4명 입니다:
사용자 삽입 이미지


이건 저희 팀 티셔츠 뒷면인데, 경기날 직접 보여드리도록 하죠 :p
사용자 삽입 이미지


저희 네명은 동부시간 4월 4일 오전 7시행 비행기를 타고
약 20여시간 이상의 비행을 한 뒤 한국에 도착해서 Codegate 본선을 참여합니다 :)





2010/04/03 00:58 2010/04/03 00:58
─ tag  ,
 
사용자 삽입 이미지


Codegate 2010 예선전이 끝났습니다 :)


한국시간으로 3월 13일 아침 9시부터 14일 저녁 9시까지 총 36시간동안 진행된 CTF 예선전이었습니다.

처음 몇 문제를 개방한채로 시작한 뒤, 시간의 흐름과 팀들의 푸는 속도에 맞춰서 문제들이 추가되는 형식으로
총 19문제가 출제 되었습니다.

분야는 web, forensic, binary analysis, 등등 다양한 보안분야였고,
전체적으로 문제의 질은 상, 문제의 난이도는 중상 정도였습니다.

사용자 삽입 이미지

첫 6문제


문제들은 위와 같이 번호와 함께 각 문제의 점수가 써져있고,
그 아래로는 각 문제를 가장 빨리 푼 3팀의 이름이 적혀있습니다.

1번째,2번째,3번째로 푼 순서에 따라 각각 해당 문제의 5%,3%,1% 의 추가 점수를 받습니다.


아래는 경기 종료 후, 추가점수를 포함한 랭킹 테이블 입니다.
사용자 삽입 이미지

19문제중 총 18문제를 푼 저희 팀 PPP (Plaid Parliament of Pwning)가 1등을 하였습니다 :D


예선에서 상위 8위 안에 드는 팀에 한하여 본선 경기가 있습니다.
하지만, CLG-T팀의 불참과 Twitter/codehate 동일팀 관계로 9위와 10위를 한 GoN과 sutegoma2이
본선진출을 하게 되었습니다.


다음은 Confirmed Finalist 목록입니다.
사용자 삽입 이미지

보시는 바와 같이 총 8팀, 7개국에서 온 팀들이 경기을 하게 됩니다.

다음은 이번 예선전에 관해 YTN Newswire에 게재된 기사입니다


본선 경기는 한국 서울 코엑스에서 4월 7일 오전 10시부터 다음날인 8일 오전 10시까지
총 24시간 동안 진행됩니다.

그래서 저를 동반한 다른 팀원 3명은 2주후에 한국을 방문하게 되었습니다 :p

전반적으로 코드게이트 경기를 재밌게 즐겼습니다만,
한가지 아쉬운 점이 있다면 외국에서 오는 팀들에 대한 경제적 지원입니다.

경기종료 당시 가장 싼 비행기표가 한화로 120만원이 넘는 가운데, 지원은 100만원 까지 밖에 안나오고
숙식제공이 없는 관계로.. 자비가 꽤 많이 들어가게 됩니다.


그래도, 세계 각국의 해커들이 한데 모여 같이 즐기고 해킹할 수 있는 좋은 기회인것 같습니다 :)

20여시간 이상의 비행, 시차, 등등의 문제때문에 경기에서 얼마나 좋은 모습을 보여드릴 수 있을지는
모르겠지만.. 최선을 다하겠습니다.

본선에서 뵙죠~


추가: 여기 가시면 저희 팀에서 작성한 보고서를 보실 수 있습니다.




2010/03/21 00:37 2010/03/21 00:37
저희팀 Plaid Parliament of Pwning이 처음으로 파도콘 행사에 참여해봤습니다.

본선은 한국에서 진행되기 때문에, 온라인으로 치뤄진 예선경기만 할 수 있었습니다 :)


사용자 삽입 이미지


총 21문제가 공개되었으며, 경기중 18문제를 풀었고 경기후 모든 문제를 풀었습니다.

사용자 삽입 이미지사용자 삽입 이미지

예선 경기에서 beistlab과 GoN 을 이어 3등을 했습니다.


사용자 삽입 이미지

경기 후에 나머지 3문제를 푼 후에 랭킹페이지 :p



여러가지 재밌는 문제가 많았습니다-
준비하느라 수고하신 많은 분들에게 감사드립니다.



2010/02/23 13:54 2010/02/23 13:54
─ tag  , ,

ARM machine이 많은데도 불구하고, x86나 mips 아키텍쳐에 비해서 ARM 쉘코드는 온라인에서 찾기 어렵습니다..

하쥐만 상길이형님께서 간지나게 ARM PoC shellcode를 뽑아내셨습니다 ㅋㅋ
(qemu-arm 에서 돌아가는것 확인!)

원문:
It is hard to find a very simple ARM shellcode. So I decided to make my own ARM shellcode.

ARM is becoming more and more popular architecture as the number of smart phones and 'net books' are expanding. Don't forget! iPhone and Nokia tablets are also running on ARM. :D

So what is the most important thing to consider to generate ARM shellcode?

First, the linux system call in ARM is little bit different from the x86 system call. Namely, the system call number is stored in r7 register instead of r0 register. (eax register can be considered as r0 in ARM). Thus, the arguments are stored in r0, r1, ... in turn.

Second, we need some trick to load 32bit immediate value into a memory address in ARM. Here, I am using four sequential arm instructions to push 32bit immediate into stack. Note that the exclamation mark in ARM assembly code means that the index operation is performed before applying the real instruction. For example, str r2, [r3, #-4]!  means: store r2 value to the ptr {r3-4} and r3 = r3 -4.

With the above facts in mind, I will present my own ARM shellcode here !!
This is just a simple example, and it contains null characters. So not applicable in most of the real cases. :)

 (ARM shellcode, execute /bin/sh and call exit) (72 byte)  
// by funkyG
"\x00\x00\x20\xe0\x01\x10\x21\xe0\x02\x20\x22\xe0\x04\x20\x2d\xe5\x00\xc0\x9f\xe5\x00\x00\x00\xea\x2f\x2f\x73\x68\x04\xc0\x2d\xe5\x00\xc0\x9f\xe5\x00\x00\x00\xea\x2f\x62\x69\x6e\x04\xc0\x2d\xe5\x0d\x00\xa0\xe1\x0b\x70\xa0\xe3\x00\x00\x00\xef\x00\x00\xa0\xe3\x01\x70\xa0\xe3\x00\x00\x00\xef"

2010/01/26 01:41 2010/01/26 01:41
─ tag  , , ,
ARM Shellcode :: 2010/01/26 01:41 Hacking/Study

HUST 대회가 끝난지 2일만에 NYU-Poly에서 주최하는 해킹대회가 시작되었습니다..

사용자 삽입 이미지


이번 대회는 조금 룰이 달라서, 각 팀당 4명 제한이 있었고 undergraduate (학부생) 들만 참여 할 수 있었습니다.
(물론, graduate (대학원생)들도 참여할 수 있었지만, 본선티켓이나 상은 주어지지 않습니다..)


대회 성격상, 학교끼리 경쟁을 하는 형식이었습니다.
몇몇팀은 여러 학교에서 같이 합쳐서 하는 경우도 있었습니다.

저희 팀은 Undergraduate + Graduate 멤버들로 구성 되어있고, 멤버수가 4명 초과므로.. 한팀으로 참여할 수 없었습니다.

그래서, 학부생팀 (팀명:PPOP)와 대학원생팀 (팀명:CMU) 으로 나눠서 참가하기로 했습니다 :)

PPOP팀은 저를 포함한 다른 미국 친구들 3명으로 구성되어있었고,
CMU팀은 사실상으론 4명으로 등록되어있었지만 실제 경기참여인원은 6명이었습니다..

(아쉽게도 ㅠ_ㅠ; 다른 한국인 멤버들은 바쁜 일정으로 참여하지 못했습니다.)

사용자 삽입 이미지

얼마 지나지 않아서 Press (미디어) 에도 떴다는군요..

http://www.businesswire.com/portal/site/home/permalink/?ndmViewId=news_view&newsId=20091013006038&newsLang=en

하여튼, 팀원들끼리 결속력도 다질 수 있었고.. 각자의 장점을 알아 볼 수 있는 좋은 기회였습니다.

저희 팀은 학부생팀이고 finalist안에 들었기 때문에, final round (결승전)을 하러 11월 13일날 뉴욕으로 갑니다..

부디 그때도 좋은 성적이 나왔으면 좋겠네요 :p


2009/10/17 23:27 2009/10/17 23:27
─ tag  , ,
사용자 삽입 이미지

드디어 올 것이 왔습니다.

학교에 들어올때부터 보안 동아리에 가입하고 싶었지만, 딱히 그런 성격의 동아리가 존재하지 않아서 독고생활을 하고 있었는데, 제가 만들어버리는 일이 생겼습니다.

보안그룹 창단은 이번 여름에 제가 리서치할때 지도교수님이셨던 David Brumley 교수님께서 적극 지원해주시면서 가능해졌습니다.

이름은 Plaid Parliament of Pwning.
직역하면 조금 어색해지지만, Plaid는 저희 학교의 상징 중 하나인 격자무늬를 뜻합니다.
학교를 대표하는 그룹인 만큼, 원래 가명이었던 Untouchables는 버리기로 했습니다 :D

현재는, CMU Collaborative Innovation Center 2층에 headquarter 를 두고 있습니다.

멤버 정책은 'ANYONE who is interested' 이며, 말그대로 관심있는 사람이라면 아무나 가입이 가능합니다.
하지만, 내부적으로 군을 나누어 관리합니다.

현재 멤버는 저를 포함하여 약 30명정도이고, 계속 증가하고 있습니다 :)

이제서야 이런 그룹이 만들어져서 조금 아쉽기는 하지만, 앞으로 졸업할때까지 많은 대회참여와 리서치를 통하여 널리 알려질 최고 보안그룹이 되기위해 노력할 것입니다.


2009/09/24 16:15 2009/09/24 16:15

지난 주말에 Sapheads 팀이 주최한 HackJam 해킹대회가 있었습니다.

이번 해킹대회는 제게 있어서 중요한 대회라고 할 수 있겠습니다.

첫째로, CMU 보안 그룹을 결성 한 이후로 멤버들과 함께 같이 한 첫 대회였었기에 팀웍, 개개인의 실력, 각자의 강점/단점 등을 알아 볼 수 있었습니다.

둘째로, 문제의 질이 성격이 비슷한 타 대회들의 문제들보다 훨씬 잘 구성되어있었습니다. 분야별 문제가 골고루 구성 되어있었고, 후반부 문제에서는 실생활에 일어날 수 있는 시나리오식 문제가 준비되어있었습니다.

사용자 삽입 이미지


경기 초중반부터 끝나기 몇시간 전까지 1등을 유지하고있었지만..
한 문제에서 오래 걸리는 바람에.. 3등까지 내려와버렸네요..

하지만, 300+ 팀이 참가한 경기에서 3등이면 충분히 좋은 결과라고 생각하고..
다음 대회들에서는 더 좋은 성적 기대해 봅니다 :p



2009/09/24 15:56 2009/09/24 15:56
─ tag  , ,

사용자 삽입 이미지
-----------------------------------------------
그렇습니다.

5차로 끝일줄 알았던 널룻 심사가... 또다시 나왔습니다..ㅋㅋㅋ
제목에서도 알 수 있듯이.. 이번 심사가 'Last'가 될 듯 싶네요.

모자이크 처리를 하기는 했지만, 보시는바와 같이 주소의 마지막 부분은 물음표로 표시되어있습니다.

마지막 자리를 알아내는데는 약 5초 정도 소비했습니다. (툴의 승리 -_-;)

사이트를 가보았는데.. 뭐 그닥 아직 재미난 내용은 보이지 않네요.

사용자 삽입 이미지


하지만 기간이 하필 제일 바쁠 2주동안 겹쳤다는게 안타깝네요..
시간날때마다 틈틈히 하긴 할텐데...

무사 통과 할 수 있을지 ^^;



2009/07/10 15:58 2009/07/10 15:58
─ tag  , ,

7.7 DDoS 대란

최근 며칠 사이에 화두가 된 사건이죠.
아마 여기 오시는분들의 대부분도 이미 알고 계신 사건일겁니다.

하지만, '공격을 당해서 사이트들이 다운되고, PC들이 고장난다'는 사실 정도는 알지만,
정확히 어떤 방법으로, 어떤 목적으로 이런 공격이 실행되는지 자세히 알고있는 사람들은
그다지 많지 않으실겁니다.

이번 포스팅에서는, 제 자신의 생각정리 + 정보공유의 목적으로 DDoS가 뭔지 알아보는 시간을 가져볼까 합니다.


어딜가나, 그저 DDoS! 도대체 그게 뭔데??

DDoS는 Distributed Denial of Service 의 약자로써 한글로 번역하면 '분산 서비스 거부 공격' 입니다.

하지만, DDoS는 DoS라는 공격기법의 발전형태입니다.
그럼 DoS가 뭔지 일단 알아야겠죠?

이름에서 알 수 있듯이, DoS는 인터넷상의 특정 자원을 평소처럼 이용할 수 없는 상태를 가르킵니다. 이러한 서비스 단절은 여러가지 이유가 있을 수 있는데 보통 네트워크장애로 인한 제대로 된 서비스를 못하게 됩니다. 공격 형태는 꽤 다양한데, Buffer OverFlow (BOF) 공격, SYN Flood 공격, Eavesdrop 공격, Virus/Worm 공격 등이 있습니다.

일전의 DoS공격시절에는, 보통 한 두대의 컴퓨터로 타겟서버의 이러한 알려진 공략법으로 과다하게 트래픽을 유발하거나, 시스템마비를 일으켜서 서비스 단절상태로 만들었지만.. 곧 왠만한 방어기법 (IP blocking 등)으로 처리가 가능해지면서, DoS는 효과적인 공격방법으로써 제 구실을 할 수 없게되엇죠.

그리하여, 이 공격기법을 발전시켜 나온 것이 Distributed DoS 방법입니다.
즉, 나 혼자 공격하는게 아니고 여러곳에서 분산해서 동시다발적으로 집중 공격 하자는 아이디어였죠.



흠..이제 뭔지는 알겠는데, 어떤식으로 공격이 이뤄지는건지 궁금하다구!

추상적인 단계에서 바라보면, DDoS 자체는 그렇게 복잡한 공격기법이 아닙니다.
어떻게 보면 단순무식한 방법이죠. (그리고..대부분의 경우에서.. 단순무식방법이 가장 무섭죠..)

대충 Diagram을 그려보자면 다음과 같습니다:
사용자 삽입 이미지
그림출처: www.sans.org

이와 같은 DDos의 구조를 이해하기 위해서는 몇가지 용어를 알아야합니다.

  • Bot (Zombie) : 주로 좀비PC라고 불리는 이 집단은 보통 가정집 컴퓨터 같은 보안에 취약하고 노출되어있는 개인 PC들로 이루어져있습니다. 취약점을 이용한 침투로 바이러스/웜등을 설치하고 Botmaster의 명령을 대기합니다. 대부분의 경우에는, 사용자들은 자신들이 감염되었는지조차 알 지 못하는 경우가 많습니다. 실질적 공격이 이루어지면, 각각의 좀비PC들이 공격 도구가 되는 셈이지요.
  • Bot Master : 이름 그대로, 위와같은 방법으로 감염시킨 bot들의 주인이 되는 컴퓨터입니다. Bot들의 분산과 실질적인 공격명령을 담당하는 컴퓨터입니다. Master 컴퓨터도 보통 취약점을 이용하여 특정 서버등을 공략/침투하여 만들어집니다. Bot들은 Master로부터 명령이 떨어지면, 주어진 공격 대상을 공격하기 시작하죠.
  • Bot Network : 줄여서 Botnet이라고 불리는 이 네트워크는 말그대로 bot들과 botmaster가 이루고 있는 네트워크를 칭합니다.
  • Attacker : 흔히들 말하는 '해커', '배후세력' 입니다. 이러한 시스템을 구축한 장본인들이지요. Master의 권한으로 널리 퍼져있는 bot들에게 공격명령을 직접적으로 내리는 역할을 합니다. 예전에는 개인적인 명성, 자금조달(?)을 목표로 소규모 또는 개인이 대다수였지만.. 최근들어 조직화되고 치밀해지고 있습니다.
  • Target : 말그대로..타겟. 피해자. 희생양입니다.

용어 설명을 하면서 대충 작동원리도 설명이 된 것 같지만, 좀 더 자세히 설명하자면..

공격자는 bot 프로그램을 만들어서 감염시키므로서 최대한 많은 컴퓨터들을 자신의 botnet 안에 추가하려고 노력합니다. 어느정도 병력(?)이 모인 후에는, master를 이용하여 공격지시를 내리고, 전 세계적으로 감연된 좀비PC들은 자신들이 뭘 하고 있는지도 모른채 target을 일제히 공격하기 시작하는겁니다.

흔히 이런 메카니즘을 C&C (Command & Control) 이라고 부르는데, 초창기에는 IRC 프로토콜을 사용한 C&C모델들로 주축을 이루었다가 IRC의 한계로 인해서 HTTP나 P2P 프로토콜을 이용하는 botnet 모델이 나오기도 했습니다. [한때 시끄러웠던 Conficker worm은 HTTP를 이용한 봇넷이었고, Storm worm은 P2P (특히 overnet)을 이용한 봇넷이었습니다.]

IRC 프로토콜이야 필터해서 막아버리면 그만이었지만..
(IRC 프로토콜을 회사/기업에서 쓸 일도 별로 없을 뿐더러)
HTTP같은 경우는 차단할 수도 없는 노릇이고.. 이같은 사실을 악용한 Conficker같은 botnet 덕분에 많은 사람들이 고생을 했었죠 :(



근데, 이번 7.7 대란에서 사용된 DDoS는 이전 공격과는 다르다던데..? 뭐가?

이번 worm에 대해서 자세한 기술적인 부분은 들여다보지 않아서 모든 차이점을 말씀해드릴 수는 없지만, 이번 7.7 대란에 사용된 방법이 이전 DDoS 공격과는 확실히 다른점은 있었습니다.

일단 알려진 바로는, MyDoom 변종이 사용되어졌다고 합니다.
MyDoom은 사실 대량 메일전송으로 악명 높았던 웜이었습니다 :)

위에서 설명한 공격방법을 열심히 읽으셨다는 가정하에, 차이점을 설명하겠습니다 ^^

이번 공격에는 C&C 메카니즘이 사용되지 않았다고 합니다.
그럼 어떻게 좀비PC들이 공격을 시작했을까요? 또, 어디를 공격할지 어떻게 알았을까요?

공격에 사용된 worm을 안랩에서 분석해본 결과, uregvs.nls 라는 공격 대상 목록을 담은 파일을 '자체생성' 한 후, 스스로 공격 시간을 바꿔가면서 공격한다는 것이라는게 밝혀졌습니다.

즉, 공격자가 직접 명령을 내릴 필요 없이, 알아서 공격대상을 (정해진 룰이 있는지는 모르겠지만) 정하고, 시간도 정해서, 다른 감염된 좀비PC와 함께 새로운 리스트의 대상들을 같은시각에 일제히 공격하는 것이죠.
이러한 특성 때문에, 1차 공격 이후에 2차, 3차 와 같은 연속 공격이 일어난것입니다.

이런 공격방법은, 이전의 DDoS공격에선 보여지지 않던 방법인지라 초반에 많이 당황한듯 싶습니다.
C&C메카니즘이 아니기에, 공격자가 완벽한 명령권한을 가지고 있지는 않지만, 그 덕분에 오래 살아 남는 원인이 되기도 합니다. 대게 C&C메카니즘을 사용하는 공격방법은 BotMaster 컴퓨터의 정보를 알아내고 차단함으로서 좀비PC로 하여금 더이상의 추가 명령을 받지 않게 하여 공격을 저지하는데, 이번엔 BotMaster에게 명령을 받는것이 아닌, 자제적으로 공격하는것이기 때문에.. 마땅히 한번에 봇넷을 무력화시킬 방법이 없는것이지요.

확실하게 막는 방법은, 개개인의 좀비PC를 치료하는 방법인데.. 시간도 많이 걸리고 아무래도 쉽게 하기는 힘들겠죠..



이게 다인가?

이게 전부였으면 그나마 나았겠지만..
공격자가 정말 악질인가 봅니다.

10일 자정부터, 하드디스크의 파일들도 손상하는 루틴이 들어있다고 합니다.

'다른 기업이 피해보는거지, 내 컴퓨터가 고장나는건 아니니까~' 라는 생각으로 별다른 관심 없으셨던분들도 자신의 컴퓨터를 지키기 위해서는 신경쓰셔야된다는 뜻입니다.

파일손상에 대한 정보와 긴급 사전조치방법은 http://viruslab.tistory.com/896 에 설명되어있습니다.



이번 사건에 대한 개인적 견해

안철수 교수님께서 어제 인터뷰에서 하신 말씀처럼 "우리가 자초한 측면이 있다" 라는 말에 전적으로 동의 하는 바입니다.

그동안 우리는 'IT강국'이라는 녹슬어버린지 오래된 타이틀 아래에서 너무 안일하게 살아왔습니다.

더이상 우리나라는 IT강국이 아닙니다. 다시 그 때로 돌아가기 위해 피나는 노력과 지원이 필요합니다.

안타까운 사건이지만, 이번 일을 계기로 정부가 조금더 IT쪽에 신경쓰고 적극적 지원을 해주어서 다음번엔 이런 불미스러운 시도가 있더라도, 공격자를 향해 비웃음을 날려줄 수 있는 때가 오기를 바래봅니다.



좀 더 기술적인 부분도 추가하여 더 자세하게 쓰려고 시작한 글인데.. 생각보다 표면적인 내용만 많은것 같네요.
나중에 기회가 되면 추가하겠습니다.



2009/07/09 00:40 2009/07/09 00:40
─ tag  , , ,

ㅎㅎ

이제 슬슬 잡고 있는 프로젝트도 거의 끝나가고...

바로 .. 1시간 15분 뒤에 +_+.. .데프콘 예선전 시작이네요~

원래 친구한테 껴서 하려고 했는데 ^^;;;

다행인지 불행인지 (?), 널룻 4번째 과제가 데프콘 참여네요 ㅎ

사용자 삽입 이미지


현재 널룻 멤버 신청해서 지금까지 심사를 통과해오신 분들과 한 팀이 되어서 하는건데,
떨리네요 :)


사용자 삽입 이미지
DEFCON 공식 홈페이지

사용자 삽입 이미지
DEFCON17 공식 홈페이지


동부시간으로 6월 5일 오후 7시에 시작되어서 6월 7일 오후 7시에 끝나는 예선전-
캐발릴껀 뻔하겠지만 ㅠㅠ;; ㅋㅋ 배울건 많을거 같아요.



2009/06/05 17:53 2009/06/05 17:53
DEFCON 17 - :: 2009/06/05 17:53 Life/Outta school
openclose