전체 글

    qemu-user-static 으로 다른 아키텍쳐 바이너리 실행.

    CTF 할때마다 다른 아키텍쳐를 사용하여 컴파일한 바이너리들이 많이 출제된다. apt-get install qemu-user-static 로 qemu-user-static을 설치. 이후 ls /usr/bin/qemu- 에서 탭을 두번 눌러서 어떤식으로 사용해야 하는지 확인 qemu-[아키텍쳐명]-static [실행파일] 로 바이너리 실행하고 gdb-multiarch [실행파일] 로 디버깅 하면 된다. 생각보다 매우 편리했던...

    bits/libc-header-start.h: No such file or directory 오류

    64비트 쉘코드 테스트를 위해 c 소스 작성 후 컴파일 하려는데 -m32 옵션 컴파일시 bits/libc-header-start.h: No such file or directory 오류 발생하여 컴파일 불가능. sudo apt-get install gcc-multilib g++-multilib 간편하게 문제 해결.

    pip install 이 안될때

    우분투 사용중에 pip install 명령어를 사용하면 import main 에러가 뜰 때가 있다. pip가 업그레이드 된 다음에 발생하는 문제라고 하는데, 난 업그레이드 한적이 없는데..? 아무튼 해결은 간단하다. /usr/bin/pip 파일을 수정해주면 된다. sudo vi /usr/bin/pip 으로 열면 아래와 같은 부분이 보인다. from pip import main 해당 파일 내에서 보이는 모든 main을 __main__ 로 수정해주면 끝. from pip import __main__ 이거 하나때문에 pip 재설치를 몇번을 했는지.. * 19.01.31 내용 추가 python -m pip install [모듈명] 으로 설치하면 에러가 안나는 경우도 있었다.

    2018 하반기 kucis 세미나 요약정리

    사실 갔다온지는 꽤 됐는데, (11월 3일) 더 까먹기전에 뒤늦게라도 간단하게 메모했던 내용만 정리해봐야겠다. 와이어샤크 관련 트랙은 LUA 스크립트를 이용한 플러그인 제작 관련 내용이었다. LUA 스크립트의 경우는 확장성이 워낙에 좋아서 온갖곳에 쓰였기에 기존에도 알고있던 언어인데 와이어샤크에도 써먹을 수 있는지는 처음알았다. 근데 쓰는건 좋은데 이걸 어따써먹는게 좋을까 싶더라. 마땅히 떠오르는 활용처는 없었다. 네트워크 포렌식 관련해서 써먹을 건덕지는 있을듯 하다. 임베디드 하드웨어 해킹 트랙은 거의 전자공학쪽 지식과 결합된 내용이었다. 대부분의 임베디드 시스템들이 범용성 좋은 리눅스를 많이 쓰니까, 시리얼 포트를 이용해 접근해서 디버깅이나 펌웨어 획득등을 한다는 이야기였다. 부 채널 공격이라고 하는..

    [linux]C9sdk 시스템 서비스 등록하기 (systemd 등록)

    저번에 리눅스에 c9 ide를 설치해서 돌리는거까지 했었는데, 매번 쓸때마다 스크립트를 실행해줬어야 하는 번거로움 + 불편함이 있었다. 시스템 서비스(systemd)로 등록해서 백그라운드로 돌리는걸 해보자. 되게 간단한 작업인데.. 몇군데에서 오랜 삽질이 있었다. 우분투 버전 : 18.04 LTS 1. service 파일 생성 /etc/systemd/system/ 위 디렉토리에 파일을 생성해주어야 한다. 나같은경우는 아래와 같은 명령어를 실행했다. sudo vi /etc/systemd/system/c9sdk.service ( 파일 생성 완료.) 2. 파일 내용 작성 [Unit]Description=C9 IDE server [Service]Type=simpleUser=synod2ExecStart=node ..

    pwnable을 위한 Peda & pwntools 설치하기

    ( '그' 사이트들.) ctf를 비롯한 많은 대회에 나오는 pwnable문제들.이런 문제들의 풀이를 위해선 기본적인 실력도 중요하지만, 풀이를 도와주는 도구들도 필요하다. gdb의 업그레이드 버전인 gdb-peda 와 python 모듈인 pwntools 가 그것들.처음 시스템 공부를 했던 시절엔 저런 도구들 없이 그냥 gdb와 perl 스크립트, C언어 소켓, 파이썬 코드 등을 이용해 문제 풀이를 하곤 했었는데, (사실 자료조사가 많이 부족했다고 생각한다. peda가 최초 공개된게 블랙햇 2012였으니.. 근데 또 이렇게 보면 나름 최신 기술이다?)저 도구들을 가지고 다시 공부를 시작해보니 .. 정말로 기능이 강력하다는걸 단박에 깨달을 수 있었다. 이 도구들에 익숙해진다면 저것들 없이는 pwnable 풀..

    코드 강조기능 웹 사이트 pygments

    웹상에서 코드 하이라이트 기능을 제공해주는 사이트이다. http://pygments.org 여기서 복사한 내용들은 티스토리 블로그나 워드파일 등에 그대로 붙여넣기해 사용이 가능하다. 페이지 접속 한 다음 , Code description 에는 저장할때 사용할 코드에 대한 간단한 설명 ( 저장 안할거면 아무거나 쳐도 무관. 필수 항목이다.) language 에는 어떤 언어로 작성했는지 적어주면 된다. 그 밑에 코드를 붙여넣고 실행하면 보기 좋게 변환해준다. 결과창 우측 상단에서 여러 테마를 선택 가능하니, 본인이 편한대로 설정하면 될것같다. TISTROY 글쓰기 내 저장소 열기 내 블로그 관리페이지 임시저장 (...) 자동으로 임시저장된 글을 불러옵니다. (최대 개)임시저장된 글은 저장일로부터 30일, 동..

    리눅스용 shellcode 테스트용 코드

    출처는 https://gist.github.com/securitytube/5318838 #include #include unsigned char code[] = "\x31\xc0\x50\x68\x6e\x2f\x73\x68\x68\x2f\x2f\x62\x69\x89\xe3\x50\x89\xe2\x53\x89\xe1\xb0\x0b\xcd\x80"; main() { printf("Shellcode Length: %d\n", strlen(code)); int (*ret)() = (int(*)())code; ret(); }컴파일할때 32비트 운영체제에서는 gcc -o shell shell.c 로 해도 되지만, 세그먼트 오류가 발생할 경우는 gcc -o shell shell.c -fno-stack-protector..

    python 패키지 설치된 경로 확인 + pwntools import error

    python -m site 통상적인 경로인 usr/lib 말고 usr/local 로 가는 경우도 있으니, 해당 명령어 통해 정확하게 경로를 확인 가능하다. 이걸 찾아 떠돈 이유가, pwntools 설치후 에러가 발생해서인데, pwn 을 import 한 파이썬 코드를 실행하면 다음과 같은 에러가 발생한다. ImportError: cannot import name ENUM_P_TYPE 해결방법은 /usr/lib/pythonXX/site-packages/pwnlib/elf/elf.py 에서 54 , 1749 번쨰 줄에 있는 ENUM_P_TYPE 을 ENUM_P_TYPE_BASE로 고치면 되는데 저 site-packages 경로를 못찾아 한참 삽질했다. pip를 통해 설치한 패키지는 dist-packages 경..

    pip 이용한 설치중 Cannot uninstall 'pyserial' 에러발생

    서버를 다시 세팅하고 pwntools 를 설치중에 다음과 같은 에러가 발생했다. Cannot uninstall 'pyserial'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall. sudo pip install --ignore-installed pwntools --ignore 옵션을 추가하여 게속 설치 진행이 가능하다. 저거 하나 몰라서 삽질..