zj3t

email: euntaejang@gmail.com

Latest Posts
근 한달만에 글을 쓰네요.

그런데도 조회수는 꾸준히 늘고있어 감사드립니다.

요즘에는 취약점을 한번 찾아보고 싶어 원데이문서랑 ROP 공부를 하고있습니다.

로퍼사우르스라는 문제가 있는데 ROP의 정석문제라고 불려 풀어봤는데 이해하기 너무 힘들었습니다.

취약점 관련 공부를 하고있다보니 포스팅에 쓸 내용이 없어요...

다음 포스팅에 로퍼사우르스 문제의 포스팅을 해보도록하겠습니다.

감사합니다.
코드를 굉장히 막짜서 보시기엔 어려움이 있으실텐데 어떻게 짜는지만 보시면 될꺼같아요 변수도 다 PE 정보의 이름이라서요.

비쥬얼 스튜디오에서 함수를 제공해주는거 같은데(확실하지않음)

저는 제가 다 구조체로 짜서 코드가 2500줄 가까이 나온거 같아요.

코드가 반복되는게 많아 다 복붙으로 하다보니 코드가 길어졌는데, 함수로 만들면 1천줄안에 만들수 있을 것같아요

패커제작에서는 최소한의 코드로 만들어 보겠습니다.

질문은 언제든 감사합니다~~~

다운로드
https://drive.google.com/file/d/0B9mSiiTEByfodTNUSmxmN1hlZEk/view?usp=sharing
매일 조금씩 만들다 오늘 완성했습니다.

테스트를 몇번해보니 저한테는 완벽했는데 다른분들도 아마 완벽하게 나올것이라 생각합니다.

일단 모티브가 PEView라는 유명한 PE를 보여주는 프로그램인데 비슷하지만 약간 좀 다르게 만들었습니다.

소스는 다음 포스팅에서 공개하겠습니다.






파일 다운로드:



PE파일 정보를 나타내 주는 프로그램을 만들고있습니다. 천천히 하루에 1시간~2시간씩 투자해서 만들고있는데 그냥 함수로 구현을 했어야하는데 그러질 안아 노가다가 되었습니다.

다만들면 배포해보겠습니다.


말을 추가해보자면,,,
예전에 저도 PE view와 패커를 만들고 싶어서 엄청검색하고 어케만들지 몰라 해매서 결국 포기하고 다음으로 미루었었습니다. 그래서인지 만들어 보고싶은, 어떻게 만드는지 알고싶은 분들이 많을 것이라 생각됩니다. 저는 이 계정으로 항상 접속해있으니 어떻게 만드는지 모르시는 분들은 메일 주시면 제가 아는한 아주 자세히 알려드릴 수 있으니 메일 부탁드립니다.

euntaejang@gmail.com

저번 HDCON 평소와 다른 인터넷을 풀고 이건 어려워 보여서 미루다가 날잡고 풀어봤습니다. 저한텐 어려웠습니다.



해당 문제의 파일입니다.
0-day is not zeroday

hwp파일이길래 hwpscan2라는 프로그램으로 열어봤습니다. hwpscans2 는 제가 예전에 hwp파일에 작성된 내용을 비교해서 퍼센티지로 나타내주는 툴을 만드려할 때 알았던 툴인데 peview 프로그램처럼 hwp파일에 대한 파일 구조를 나타내 줍니다.







여기서 이상한 점을 느낄 수가 있었는데요 어떤 암호화가 된 것같은 부분이라고 생각됬습니다. 앞의 섹션에서는 암호화가 되있지않았는데 이 곳은 읽을 수가 없었습니다. 그래서 저 앞의 78 9C를 검색했더니 zlib압축 파일이라는 것을 알 수 있었습니다. 


저 zlib으로 암호화 된 부분을 따로 복사해 파일을 만들고(여기서는 txt로 그냥 만들었음) 그 파일을 파이썬으로 읽어와 압축을 해제해 봤습니다.

그랬더니 저기 같은 문자열이 반복되다가 한군데가 이상한 부분이 있었습니다.


확인해보니 shell code 같았습니다. 이부분을 따로 파일로 저장한 후(bin)파일 ida로 열어봤습니다.


무언가를 계속 push하는데 의심스러웠습니다.(이렇게 말은 쉽게하지만 저도 푸는데 꽤 시간이 걸렸습니다.)

대부분 ==로 끝나는 경우는 base64!!
저 부분을 hxd로 복사해서 무슨문자열인지를 알아봤습니다.(리틀엔디안을 고려!!)



파이썬으로 풀어보니 문자열이 나왔습니다.

제목 자체를 보면 무겁고 대단해보이고 하지만 알고보면 간단한 또 어떻게보면 주의해야할 부분인 것 같습니다.

사실 이건 제가 알아낸게 아니라 공부 도움많이 받는형이 알려준 건데 주의할 필요가 있어 포스팅 하게됬습니다.

먼저 아이폰으로 사진을 찍습니다.



아이폰은 갤럭시와는 다르게 사진을 찍으면 위치정보가 남아 사진첩에 들어가서도 어디서 언제 찍었는지를 알수 있게 해줍니다.

이 사진을 꿀뷰라는 프로그램으로 열면(꿀뷰는 많이 알려진 프로그램입니다. 네이버에서 다운가능!!)



이렇게 다른사람이 꿀뷰를 이용하면 현재 사용자의 위치와 기록등을 알 수 있습니다. 포렌식에서도 더 잘만 연구하면 이걸 이용할 수도 있겠다는 생각을 했습니다.

하지만 이 기능을 다른사람이 이용하기 위해서는 네이버 메일이나 다음 메일로 찍은 사진을 얻어야합니다.

즉 카톡이나 페북에서 얻은 사진은 안됩니다......

카톡이나 페북은 사진을 jpg로 바꾸고 위치 정보를 지워버립니다.

그래도 모른것 보다 아는게 좋을꺼 같아 포스팅 해봅니다.

허접한 포스팅...


포렌식에 관심을 가지고 문제를 찾다보니 문제를 발견하여 풀어봤습니다.




패킷캡쳐파일이였는데 와이어샤크로 열어보니 열리지 않았습니다. 오류 메시지를 보니 사이즈 관련오류인것을 확인할 수 있었습니다.





오류메시지에 뜬 십진수값을 16진수로 입력해서 찾아보니 발견했습니다. 아마 이 값을 바꿔주면 될꺼같아요.


근데 중요한건 이 값을 어떻게 바꾸어 줘야하나였는데, 그냥 노가다로 저 세곳이 사이즈관련 4바이트였으니 저 세개위주로 바꿔봤습니다. (초록색을 주황색처럼 바꾸니 열렸습니다.)


네트워크 상에 캡쳐된 파일을 모두 다운받았습니다.


PDF에서 flag를 확인할 수 있었습니다.



150점 문제답게 쉬운문제였습니다.


2015 HDCON에 참여했었습니다. track1, track2가 제 노트북에서는 안열려서 track3만 그당시 풀었던거 같은데 첨이라 그런지 많이 어려웠습니다. 그중 딱 하나 문제 풀었었는데

그걸 포스팅 해보겠습니다.



인터넷이 느려졌다. 많은 이유가 있겠죠??
하지만 제가 초점을 맞춘것은 ARP 스푸핑이였습니다. 사실 네트워크 공부를 거의안해서 아는 공격이라고는 DDOS와 ARP 스푸핑 두개였습니다.

ARP 스푸핑에 대해 간략히 설명해보면 ARP는 IP주소를 MAC주소로 변환하는데 사용하는 프로토콜이라고 생각하면 됩니다. 실질적인 정보교환은 IP가 아닌 MAC주소로 일어납니다.

예를 들어 A와 B가 있다고 한다면 A는 B의 IP를 알고있습니다. 하지만 MAC주소를 모르기 때문에 정보를 전송할 수 없습니다. 따라서 A는 ARP 프로토콜을 이용하여 "이 IP(B의 IP)를 가진 PC의 MAC 주소가 뭐야??" 라고 브로드캐스트하게 됩니다.  그럼 B는 ARP 패킷을 수신하여 MAC 주소를 A에게 알려주게 됩니다.

그렇다면 공격자는 이 A의 ARP를 가로채서 "내가 그 IP(B의 IP)의 PC야 내 MAC 주소는 이거야" 라고 거짓말을 하게되고 A는 그것을 믿고 B에 보내게 될 패킷을 공격자에게 보내게 됩니다.

이게 ARP 스푸핑을 간략히 설명한 예입니다.

만약 A가 있는 네트워크의 게이트웨이를 B가 ARP 스푸핑하면 어떻게 될까요?? 게이트 웨이는 네트워크가 밖으로 나갈 수 있도록 하는 통로입니다. 즉 유일한 출구라고 할 수 있습니다. 이 곳을 공격자가 게이트웨이의 MAC어드레스를 자신(공격자)의 MAC어드레스로 바꾸면 해당 네트워크의 PC가 외부 네트워크로 보내는 패킷을 공격자가 전부 받아볼 수 있게 되는 것 입니다.

이런 공격을 중간자 공격(MITM)이라고 합니다.

자 그럼 문제를 풀 수 있습니다.

와이어샤크에서 arp에 필터를 걸고보면(전체 패킷은 많지만 ARP패킷은 적습니다.)

1,2 파일에서는 특이한 사항이없습니다.


3번을 보면 게이트웨이의 MAC어드레스가 보입니다.




4번을 보면 게이트웨이의 MAC어드레스가 변조가 된 것을 볼 수 있습니다.

따라서 답을 유추해 낼 수 있습니다.

답은 파일명_Time

파일명은 4이고, 가장 첫번째의 시간은 86.739243

답: 4_86.739243