2017. 7. 23. 00:11

## pwntools에서 libc symbols를 이용한 주소 찾기


1. pwntools symbols 이용

=> leak_libc = ELF("./leak_libc")
=> libc_system = libc_base_addr + leak_libc.symbols['system']


이렇게 하면 릭한 libc로부터 오프셋을 변수로 지정할 필요 없이 바로 symbol로 그냥 주소 값을 구할 수 있다.


개꿀~!

Posted by holinder4S
2017. 7. 22. 23:56

## libc에서 "/bin/sh"문자열 주소 찾는 방법


1. pwntools 이용

=> leak_libc = ELF("./leak_libc")
=> binsh = leak_base_addr + list(local_libc.search('/bin/sh'))[0] 


2. strings 이용

=> strings leak_libc | grep bin/sh



Posted by holinder4S
2017. 2. 18. 21:56

## Codegate CTF_2017 ("KEEPER_2017"팀, 대학생부)


[Summary]

1. 재미있었다.

2. 12위로 안타깝게 본선에 진출하지 못했다. (11위까지 본선)

3. ㅠㅠ

4. 더 열심히 해야겠다...


[Ranking]

[그림 1] 대학생부 랭킹


[푼 문제]

[그림 2] 푼 문제들



Posted by holinder4S
2017. 1. 17. 19:25

## gdb heap command(gef)


1. gef란?

=> gdb Enhanced Features의 약자로 peda와 같이 gdb에 추가적인 기능들을 실행할 수 있고 보기 좋게 

    사용할 수 있도록 만들어주는 아주 좋은 툴이다.


2. gef 다운로드 & 사용 방법

1
2
3
4
5
6
7
holinder4s@ubuntu:~$ git clone https://github.com/hugsy/gef.git
holinder4s@ubuntu:~$ gdb -q
(gdb) source ~/Desktop/plugin/gef/gef.py 
GEF for linux ready, type `gef' to start, `gef config' to configure
46 commands loaded for GDB 7.7.1 using Python engine 3.4
[*7 commands could not be loaded, run `gef missing` to know why.
gef➤ 
cs

=> 위와 같이 git clone을 한 후 gdb 실행하고 나서 gdb console에서 source명령을 실행하면 된다.


3. gef heap command(1) - (heap chunk에 대한 정보 출력)

=> gef➤ heap chunk <LOCATION>

[그림 1] heap chunk 정보 출력


4. gef heap command(2) - (heap arenas 정보 출력)

=> gef➤ heap arenas

[그림 2] heap arenas 정보 출력


5. gef heap command(3) - (bin list 정보 출력)

=> gef➤ heap bins <bin종류>

=> ex) heap bins [fast / unsorted / small / large]

[그림 3] fastbins 정보 출력


6. peda도 마찬가지~



Posted by holinder4S
2016. 4. 29. 03:27

## Visual Studio Static Library
    (정적라이브러리) 컴파일 옵션



[그림 1] "dll을 찾을 수 없습니다."


 평소 Visual Studio를 사용하여 프로그래밍을 해서 다른 사람한테 프로그램을 넘겨줄 때

상대방은 Visual Studio가 안깔려있는 경우가 많다.

그러면 상대방이 내가 준 프로그램을 실행시키려 할 때 [그림 1]과 같이 dll을 찾을 수 없다고 하며 실행을 할 수 없는데



그 이유는 visual studio가 default로 동적 라이브러리 방식으로 컴파일을 하기 때문이다.



 따라서 이런 상황이 발생할 경우 컴파일 옵션을 정적 라이브러리 방식으로 바꿔 줘야하는데 Debug모드일 때와

Release모드일 때 설정법이 약간 다르다. 



[그림 2] Compile 옵션 설정 화면



[그림 2]와 같이 Project우클릭 - [Properties] - [Configuration Properties] - [C/C++] - [Code Generation]에 들어가서


    1. Debug 모드 컴파일 시
        - [Runtime Library]항목을 Multi-threaded Debug (/Mtd)로 변경하면 된다.

    2. Release 모드 컴파일 시
        - [Runtime Library]항목을 Multi-threaded (/Mt)로 변경하면 된다.


그러면 dll이 포함되기 때문에 친구가 잘 실행시킬 수 있다.






Posted by holinder4S
2016. 4. 3. 04:18

## 블로그에 소스코드 올리기




블로그에 소스코드를 올릴때가 가끔 있는데 그냥 써서 올리면 가독성도 떨어지고 보기도 이상하다..


이럴 때 http://colorscripter.com/ 라는 사이트를 이용하면 편리한데 위 그림처럼 맞는 언어 선택하고


오른쪽 아래 클립보드 복사를 누른 후 블로그에 ctrl+v만 하면 보기 좋게 소스코드가 블로그에 잘 올라간다.





Posted by holinder4S
2015. 12. 30. 00:34

## FTZ 구축 후 Putty 접속 시 한글 깨짐 현상


 FTZ 로컬 서버를 구축한 후 본격적으로 문제를 풀려고 hint파일을 보면 다음 [그림 1]과 같이 깨져서 문제를 풀기가 힘들다.


[그림 1] putty 접속 시 한글 깨짐


이를 해결하는 방법은 다음과 같다.

  1. Putty실행 화면에서 [그림 2]의 Translation 항목 클릭


[그림 2] Putty 실행 화면


 2. 기본적으로 UTF-8로 세팅되어 있는데 이를 "Use font encoding"으로 바꾼다.


[그림 3] character set 설정


 3. [Appearance] 옵션 항목 클릭 후 [그림 4]와 같이 스크립트를 한글로 font 세팅을 한다.


[그림 4] font setting


이제 세팅이 완료되었고 [그림 5]와 같이 hint파일을 볼 수 있다.



Posted by holinder4S
2015. 11. 8. 20:24

## IDA로 ELF Binary 원격 디버깅하기(IDA Linux 원격 디버깅)


 일반적으로 Linux에서 동작하는 elf 바이너리는 정적 분석, 동적 분석을 할 수 있는데, 정적 분석은 보통 IDA를 이용하여 하게 된다. 그런데 가끔 분석하다 보면 동적 분석이 필요한 경우가 생기게 된다. 이럴때 동적 분석을 할 수 있는 방법에는 여러가지가 있는데 우선 가장 기본적으로 gdb를 이용하여 동적 분석을 할 수 있다. 하지만 dbg를 이용하여 하게 될 경우 익숙하지 않은 경우 좀 힘들 수 있는데, 이 때 사용할 수 있는 도구가 edb 또는 IDA의 원격 디버깅 기능을 이용하는 것이다. edb는 ollydbg를 모티브삼아 만든거라 뭐 편할 수도 있는데 여기서는 IDA의 원격 디버깅 기능을 정리할 것이다.([그림 1]을 보면edb는 한번도 안써봤지만 왠지 편할 거 같다.)

[그림 1] edb-debugger 실행 화면


 이제 본격적으로 IDA로 elf파일을 원격으로 디버깅 해보도록 하겠다.


  1. VMware(Linux System)에 대상 프로그램과 ida 파일들 중에 linux_server(elf파일)을 옮긴다.

[그림 2] Linux System

  

  2. ./linux_server를 실행한다.

[그림 3] linux_server 실행

    [그림 2]와 같이 linux_server를 실행하면 23946포트로 접속을 리스닝하게 된다. 그럼 이제 IDA에서 접속하면 된다.


  3. IDA를 켜고 [Debugger] - [Run] - [Remote Linux Debugger]를 선택한다.

[그림 4] Remote Linux debugger 선택

  

  4. 그럼 [그림 5]와 같은 화면이 나타나는데 [Application] 항목에는 디버깅 하고자 하는 파일의 절대경로명을 써주면 되고,
     [Directory]에는 그 파일의 디렉터리의 절대경로명 [Parameters]에는 프로그램의 인자 값(없으면 안쓰면 됨), [Hostname]
     에는
대상 Linux System의 IP주소, [Password]는 빈칸으로 두면 된다.

[그림 5] 설정 화면

 

  5. 그럼 이제 뜨는 창은 전부 OK하면 [그림 6]과 같이 디버깅이 가능하다.

[그림 6] IDA 원격 디버깅 실행 화면


  6. 끝!

Posted by holinder4S
2015. 11. 8. 20:23

## kali linux에서 ssh & sftp 서버로 사용하는 방법(보안조치x)


일반적으로 리눅스 시스템에는 ssh 데몬이 설치되어 있다. sshd에는 sftp데몬도 포함되어 있는데 이를 이용하여 리눅스 시스템에서 sftp서버를 운영할 수 있다.


1. 현재 구동되고 있는지 확인


D:\이우진\Study Project\Exploit Study(비동기화)\블로그용\이미지\pic1.PNG


2. sftp기능이 sshd의 서브시스템으로 설정되어있는지 확인


D:\이우진\Study Project\Exploit Study(비동기화)\블로그용\이미지\pic2.PNG


제대로 설정되어있지 않으면 vi에디터로 추가


3. ssh데몬 구동

 

D:\이우진\Study Project\Exploit Study(비동기화)\블로그용\이미지\pic3.PNG


4. 윈도우에서 winSCP설치 후 접속


D:\이우진\Study Project\Exploit Study(비동기화)\블로그용\이미지\pic4.PNG



Posted by holinder4S
2014. 1. 10. 09:30

‘굼뱅이들’에게 고함: 미적거리는 버릇을 고치려고 노력했지만 실패해 여전히 할 일을 미루고 있다면 자신의 기분을 먼저 파악하는게 새로운 해결책이 될 수도 있다.

종종 뒤로 미루는 성향이 있는 이들은 어려운 일에 대한 불안이나 걱정이 생길때 페이스북을 보거나 낮잠을 자는 등 기분전환으로 일을 회피하려 한다. 그러나 연구자들이 “순간의 쾌락에 빠져드는 행위”라고 부르는 이런 기분전환이 시간이 흐르면 오히려 기분을 더 망친다고 티모시 피첼은 분석한다. 오타와 소재 칼튼대 심리학 부교수이자 이 분야의 연구자인 그는 할 일을 뒤로 미루는 이들이 마감시한을 놓쳤거나 막판에 벼락치기로 일을 끝내면서 더 큰 마음고생을 하게 된다고 경고한다.

심리학자와 시간관리 컨설턴트는 점점 더 새로운 전략에 초점을 맞추고 있다. 미루는 버릇이 있는 이들에게 기분전환 행위가 상황 개선에 걸림돌이 되고 있다는 점을 상기시키고, 자신의 감정을 보다 생산적인 방식으로 통제하도록 돕는 것이다.

Kyle T. Webster
시간 여행을 떠나 일을 마치거나 못 마쳤을때의 미래의 모습을 상상해 보라. 

이 새로운 접근 방식은 지난 2년 간 발표된 몇가지 연구 결과에 근거한다. 부정적인 감정이 자제력을 저해할 수 있다는 결과가 나온 것이다. 이 접근 방식은 이미 정립된 시간 관리 방법의 허점을 보완할 수 있다. 시간 관리법은 새로운 정리법을 활용하거나 운동으로 의지력을 강화하는 등 행동 개선을 강조한다.

기셀라 초도스는 자동차 내부 청소를 끝까지 미루는 버릇이 있었다. 차 내부엔 장난감, 과자 봉지, 패스트푸드 포장백, 연필이 굴러다녔다. 차를 공공 장소에 주차하거나 다른 이를 차에 태울 수 없을 정도로 창피한 물건들이 너저분하게 널려있었다고 초도스는 말한다. 두 아이의 엄마인 그녀는 파트타임으로 컴퓨터 공학을 전공하고 있다.

그녀는 2012년에 우연히 피첼 박사의 팟캐스트를 보고 자신에 대해 인식하게 됐다. 일을 나중으로 미루고 싶다고 자위하면서 기분 전환을 하려고 했다는 사실을 깨닫게 된 것이다. 초도스는 “내 감정으로부터 도피하고 불편함을 피하고자 했다”고 고백한다. 종종 자신이 하는 일이 충분히 만족스럽지 않거나 누군가가 수준미달로 볼 것이라는 불안감에 사로잡혔다는 것이다.

Kyle T. Webster
일단 시작하라: 일단 첫 단추부터 끼는 것이 도움이 된다. 

“감정이 가장 중요하다”고 초도스는 말한다. “그 점을 인식하는 것만으로도 약간 위안이 된다. 그래서 “좋아, 난 지금 불편하지만 할 일을 하지 않으면 나중에 더 불편해질거야”라고 말할 수 있다고 그녀는 부연한다.

그런 깨달음을 얻게 되자 그녀는 차 청소를 더 자주 하게 됐다면서 “차가 너무 더러워져서 누군가 안을 들여다본다는 생각을 하자 기겁하는 느낌을 갖게 된 지 오래됐다”고 덧붙였다.

연구원들은 일을 미루는 사람들 기분 전환을 장점으로 바꿀 수 있는 전략을 찾아냈다. 몇몇 전략은 이미 효과가 검증된 전형적인 전략이다. 피첼 박사는 “일단 일을 시작하고 시작하면서 처리할 분량에 대한 목표를 낮게 잡아라”라고 조언한다. 미루는 습성이 있는 이들은 기분전환의 역학을 이해하고 나면 이 전략을 활용할 가능성이 더 높아진다고 그는 말한다. 작년에 “미루는 습성의 수수께끼 풀기”라는 저서를 낸 파이찰 박사는 “할 일, 즉 우리가 중요하게 여기는 일을 할때 진정한 기분전환이 가능하다”고 덧붙인다.

또 그는 이들에게 ‘시간 여행’을 떠나보라고 제안한다. 자신이 미래에 할 일을 마쳤을때의 성취감과 마치지 못했을 경우의 불쾌감을 상상해 보라는 것이다. 이 방법은 현재의 불안과 걱정의 늪에서 허우적거려 미래에 대해 생각할 겨를이 없이 이 게으

Kyle T. Webster
자기 용서: 죄책감이나 자책감 대신 자신을 용서하고 긍정적으로 생각을 바꿔라

름뱅이들의 습성을 치유해 준다고 후시아 시로이스는 분석한다. 시로이스는 퀘벡 셔브룩 소재 비숍스대 심리학 교수이자 이 주제와 관련해 4,000 명을 대상으로 한 연구 결과가 담긴 저서를 집필했다. 이 저서는 출간을 앞두고 있다.

자신의 태도를 매일 기록하는 등의 시간 관리 기법을 시도해 본 후, 션 길버슨은 2012년에 파이칠 박사가 쓴 또 다른 저서 한권을 읽게 됐다. 그는 미네소타주 미니애폴리스에서 소프웨어 엔지니어로 일하는 사람이다.

그는 기존 방법의 경우 자신의 감정이 어떻게 행동하는 데 걸림돌이 되는지 깨닫게 하지는 못했다고 말한다. 하지만 시간 여행 방법을 활용하면서 그는 “내가 밍기적거리면 어떤 결과가 발생할까? 근태 평가에 반영될까? 내 평판이나 월급 인상과 보너스에도 영향을 미칠까?” 등의 질문을 해보게 된다고 말한다.

그는 최근에 휠체어에 의지하는 환자들에게 발생하는 욕창을 예방할 수 있는 의료기기 시제품을 프로그래밍하면서 시간 여행 방법을 활용했다. 그는 프로젝트를 잘 끝낼 경우 자신이 느끼게 될 흐뭇함과 클라이언트 및 자신의 회사에 가져다줄 기쁨을 상상했다. 또 환자들이 “더 행복하고 기분이 좋아지는 상황”도 상상했다. 상상이 유발한 긍정적인 기분 덕분에 그는 의료기기의 결함을 더 빨리 수정하고 3

Kyle T. Webster
쉬운 것부터 먼저: 먼져 쉬운 것부터 먼저 시작하다보면 일에 속도가 붙어 가장 힘든 일도 할 수 있게 된다. 

개월짜리 프로젝트를 제시간에 끝냈다. 클라이언트는 매우 만족했고 “그들과 말하는 것 자체가 기쁨”이라고 그는 말한다.

성인의 약 20%가 고질적인 굼벵이과에 속한다고 시카고 드폴대의 조셉 페라리 심리학 교수 및 다른 연구자들이 지적한다. 또 다른 연구들에 따르면 대학생의 경우 그 비율이 최대 70%까지 치솟는 것으로 나타났다. 미루는 버릇은 더 낮은 임금과 실업으로 이어질 수 있다고 페라리 박사는 지적한다. 그는 최근 2만2,053 명을 대상으로 행한 연구 결과에서 그같이 밝혔다.

밍기적거리는 것은 또 은퇴 자금 마련이나 건강 관리 소홀 등 장기적인 문제로도 이어질 수 있다. 연구에 따르면 남성의 경우 이런 현상이 더 두드러졌다. 연구자들은 할 일을 미루는 버릇이 남성 학력 저하에 영향을 미칠 수도 있다고 추측했다.

대다수의 게으름뱅이들은 일을 뒤로 미루면서도 자책하는 경향이 있다. “왜 내가 할일을 못할까?” 또는 “난 책임감이 부족해”라는 등의 부정적인 생각을 반복한다고 고든 플렛은 지적한다. 그는 토론토 소재 요크대의 심리학 교수로 재직중이다. “부정적인 혼잣말은 걱정과 자신을 신뢰하지 못하는 태도를 반영한다”고 그는 말한다.

Kyle T. Webster

또 다른 기분전환 전략인 자기용서는 죄책감과 자책감을 떨쳐버리는데 초점을 둔 방법이다. 2010년 연구 결과에 따르면 첫 시험을 앞두고 시험 공부를 게을리한 자신을 용서했던 대학 신입생들이 다음 시험을 준비하는데 있어 덜 게으름을 피운 것으로 나타났다. 이 연구는 칼튼대의 마이클 울 심리학 교수가 주도했다.

토마스 플린트는 시로이스 박사와 피첼 박사가 행한 연구를 포함한 자기제어에 관한 연구를 탐독하면서 미루는 버릇을 개선하는 기술을 익혔다. 그는 최근 뉴저지 세웰에 소재한 새집으로 이사한 후에 그 기술을 활용했다. 이사 후 차고에 쌓인 짐을 즉시 풀어 정리하지 못한 자신을 자책하는 대신, 그는 자신을 용서하고 한 단계씩 차근차근 시작하기로 마음먹었다. “좋아, 한 시간 동안 TV를 설치할 거고 그걸로 끝이야”. 그는 자신에게 상으로 TV 쇼를 보여줬다. 단계적으로 차례차례 일을 처리하는 게 “이기는 방법”이라고 그는 말한다.

이 기사의 영어원문 보기

출처 : http://kr.wsj.com/posts/2014/01/09/%ED%95%A0-%EC%9D%BC-%EB%AF%B8%EB%A3%A8%EB%8A%94-%EA%B5%BC%EB%B2%B5%EC%9D%B4%EB%93%A4%EC%9D%84-%EC%9C%84%ED%95%9C-%EC%A1%B0%EC%96%B8/?mod=WSJBlog

Posted by holinder4S