'Categories'에 해당되는 글 103건

  1. 2013.12.05 level06
  2. 2013.11.27 합격!
  3. 2013.11.24 level05
  4. 2013.11.24 level04
  5. 2013.11.24 level03
  6. 2013.11.24 level02
  7. 2013.11.24 level01
  8. 2013.11.20 ROP 자료 1
  9. 2013.11.17 Understanding ptrace 1
  10. 2013.11.15 64비트 calling convention + stack frame 1

level06

2013. 12. 5. 22:37

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

합격!

2013. 11. 27. 17:30 from General News/Life story


디미고.. 합격했다..!!

1년간의 노력이 결실을 맺는 순간..

고등학교 가서도 내신이랑 보안공부 둘다 열심히 하고 꼭 유학 가서 성공할 수 있도록 노력하자

'General News > Life story' 카테고리의 다른 글

2014 순천향대 청소년 정보보호 페스티벌 예선  (0) 2014.08.14
2014 코드게이트 주니어 세미나 발표자료 및 후기  (2) 2014.04.03
근황..  (3) 2013.12.31
으..  (0) 2013.09.05
Things to do..  (0) 2013.07.09
Posted by xer0s :

level05

2013. 11. 24. 17:41

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

level04

2013. 11. 24. 17:40

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

level03

2013. 11. 24. 17:30

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

level02

2013. 11. 24. 17:24

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

level01

2013. 11. 24. 17:15

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

ROP 자료

2013. 11. 20. 00:56 from Security

window쪽은 corelan을 비롯해 질 좋은 ROP 문서들이 많이 존재하지만 linux쪽은 window 만큼 문서가 많지가 않더군요.

저 같은 경우는 chaining rtl, got overwrite과 같은 ROP 기본 개념들을 워게임을 통해서 공부하고

본격적으로 ROP 문서들을 읽기 시작했네요

해외 글이든 국내 문서든 ROP에 관한 모을 수 있는 자료들을 다 모아봤습니다.



1. 페이로드 인사이드

 : ROP계에서는 유명한 문서이죠


번역_PAYLOAD ALREADY INSIDE.pdf


2. ROP_Zombie_[idkwim] 

 : 위문서와 병행하면서 읽었는데 여러번 읽어보다 보면 개념이 잘 잡히더라구요)


ROP_Zombie_[idkwim].pdf


3. TEAMCR@K ROP 

 : TEAMCR@K에서 작성한 ROP 강의 입니다. 페이로드 인사이드와 비슷한 감이 있습니다


http://teamcrak.tistory.com/332


4. codearcana 

 : PPP의 멤버이신 codearcana님이 올리신 ROP강의 입니다. 정리가 잘 되있으며 영어에 부담이 없으시다면 한번 읽어보시면 굉장히 좋습니다


http://codearcana.com/posts/2013/05/28/introduction-to-return-oriented-programming-rop.html


5. Surgically returning to randomized libc 

 : 자료를 뒤지던중 찾아낸 문서입니다. 아직 읽어보진 못하였으나 도움이 될꺼 같아 올립니다.


acsac09.pdf


6. Reno Robert 님의 블로그

 : ROP 관련 문제들의 write up 이 있습니다. 이 블로그의 write up 뿐만 아니라 여러 write up 들을 읽어보면서 이해도를 높이는 것도 좋은 방법이죠. 정리가 잘되어있습니다. 


http://v0ids3curity.blogspot.kr/search/label/ROP


7. shareef12 님의 블로그

 : ROP 관련 문서라 올려봅니다. 저도 아직 읽어보지 못하였습니다.


http://shar33f12.blogspot.kr/


8. ropsaurusrex 풀이(rop 설명 포함)(13-11-22 업데이트)

 : PlaidCTF 문제로 나왔었던 ropsaurusrex의 풀이를 rop 강의와 함께 포스팅해논 글입니다.


http://blog.skullsecurity.org/2013/ropasaurusrex-a-primer-on-return-oriented-programming


위 자료들을 읽어보시면 대충 감이 잡히리라 생각됩니다. 그와 함께 워게임과 대회 문제들을 풀어보신다면 ROP는 어렵지 않게 정복하실수 있으리라 생각합니다.



'Security' 카테고리의 다른 글

xinetd 환경 설정  (0) 2014.01.31
c++ vtable 리버싱  (0) 2014.01.31
64비트 calling convention + stack frame  (1) 2013.11.15
Native API를 이용한 static 안티 디버깅 정리  (1) 2013.11.10
안티디버깅 간단 정리  (1) 2013.10.30
Posted by xer0s :

Understanding ptrace

2013. 11. 17. 23:57 from Research

저의 2번째 기술문서입니다. 

저번에 웹에 관련된 내용을 다루었다면 이번엔 시스템적인 ptrace에 관한 내용입니다.

부족하지만 열심히 썻으니 재밌게 봐주시면 감사하겠습니다.



ptrace by xeros.txt



==============================================================================================


Understanding ptrace() 


blog : xer0s.tistory.com

email : jessecar@naver.com

by : xeros


==============================================================================================


[Contents]------------------------------------------------------------------------------------


1. Intro

2. Basics of ptrace

3. ptrace parameters

4. Reading System Call Parameters

5. Reading Register Values

6. Single Stepping

7. Attaching to a Running Process

8. Conclusion

9. Reference


----------------------------------------------------------------------------------------------


[Intro]---------------------------------------------------------------------------------------


한번이라도 시스템콜이 어떻게 가로채지고 그런 시스템콜들을 조작해보고 싶었으며 디버거가 어떤식으로 실행중인 프로세스를 멈추게하고 프로세스의 소유권을 얻게 되는지 궁금했던 사람이라면 리눅스에는 이러한 것들을 가능하게 해주는 ptrace(Process trace) system call이라는 메커니즘을 제공해준다. ptrace는 부모프로세스가 다른 프로세스(자식 프로세스)를 통제하게 해주고 코어 이미지와 레지스터등을 바꾸거나 실행, 디버깅을 하면서 브레이크포인트 설치, 시스템콜 트레이싱등이 가능하다.

이 문서에서는 시스템콜들을 어떻게 가로채고 조작해주며 실행되고 있는 프로그램에 코드를 삽입해주는 작업을 해줄것이다. 오탈자나 틀린 내용등이 있으면 위에 있는 이메일로 문의를 주기 바란다. 이문서가 ptrace를 공부해보고 싶은 사람들에게 조금이나마 도움이 됐으면 하는 바램이다.


----------------------------------------------------------------------------------------------



'Research' 카테고리의 다른 글

bob 3기 과제 보고서 - handray+idapython  (0) 2014.10.14
Knowing about Local File Inclusion(LFI)  (2) 2013.03.10
Posted by xer0s :

64bit Calling Convention


64비트는 리눅스와 윈도우의 인자 전달 방식이 나뉘어 집니다.

이를 적응 하느라 꽤 시간이 걸렸는데 


우선 리눅스는 파라미터를 전달할 때 6개의 레지스터를 사용합니다.


RDI : 첫번째 인자

RSI : 두번째 인자

RDX : 세번째 인자

RCX : 네번째 인자

R8 : 다섯번째 인자

R9 : 여섯번째 인자


이렇게 6개의 레지스터를 사용하고 인자가 7개 이상일 경우부터는 스택을 같이 사용합니다.


윈도우는 그에비해 파라미터를 전달할 때 레지스터를 4개까지 사용합니다.


RCX : 첫번째 인자

RDX : 두번째 인자

R8 : 세번째 인자

R9 : 네번째 인자


이렇게 4개의 레지스터를 사용하고 인자가 4개이상일 경우에는 스택을 같이 사용합니다.



64bit stack frame


64비트 OS에서는 스택과 스택 프레임을 사용하는 방식이 변경되었는데 우선 함수에서 실제 필요한 크기보다

훨씬 크게 스택을 미리 확보합니다. 서브함수를 호출할 때는 push 명령을 썼던 기존과는 달리 미리 확보한 스택에 mov 명령을 통해 전달해줍니다. 또한 스택 프레임을 구성할 때도 RBP 레지스터를 이용하는 것이 아니라 RSP 레지스터를 이용하여 구현합니다.



'Security' 카테고리의 다른 글

c++ vtable 리버싱  (0) 2014.01.31
ROP 자료  (1) 2013.11.20
Native API를 이용한 static 안티 디버깅 정리  (1) 2013.11.10
안티디버깅 간단 정리  (1) 2013.10.30
바인드쉘, 리버스쉘  (0) 2013.10.24
Posted by xer0s :