전체 글

(요약)1. apt-get update 및 sudo 설치2. sudo를 권한을 받을 {user}을 추가 과정(1) apt-get update 및 sudo 설치$ apt-get update && apt-get install -y sudo  (2) sudo를 권한을 받을 {user}을 추가$ adduser --disabled-password --gecos "" {user} \ && echo '{user}:{user}' | chpasswd \ && adduser {user} sudo \ && echo '{user} ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers ex) {user} - rd => 해당 스크립트를 추가하길 원하는 사용자이름으로 바꿔서 넣었을떄 사용자로써 ..
·Project
(github 링크)https://github.com/Greedun/LegacyDynEnv [시스템을 구축한 이유]glibc 2.23버전을 쓰기 위해서 ubuntu16버전이 필요도커에서 ubuntu16버전을 구축한 후 내부분석 진행하려 했지만 파이썬 3.6까지만 지원하여 제약 발생그래서 역으로 최신 우분투에서 glibc 2.23버전을 사용하는 바이너리를 동적 디버깅할까? 고민 1. 시스템 구성동적 디버깅 환경구축 실험1. LD_PRELOAD, LD_LIBRARY_PATH를 이용한 동적 링킹 수정2. glibc2.23버전의 libc.so.6, ld.so를 다운 받아서 pwntools이용3. 1번과정 + patchelf + 16버전에서 컴파일된 바이너리 이용 (방법1). LD_PRELOAD, LD_LIBRA..
·Pwnable/Tool
1. One-gadget이란? 라이브러리 내에 execve함수 인자값으로 "/bin/sh"가 존재하여 해당 주소로 실행하는 것만으로 쉘 실행이 가능한 가젯. [왜 one-gadget을 쓰는 것인가?] => 기존에 쉘을 실행하는 방법(RTL, ROP기법) 1. "/bin/sh"문자열이 없다면 입력하고서 이용 2. 함수호출규약에 따라 레지스터에 값을 세팅 3. execve, system함수를 호출 기존에는 위 과정을 거쳐서 쉘을 실행했지만 이 one-gadget을 이용하면 해당 주소 호출만으로 쉘을 실행시킬 수 있기 때문에 간편하다.2. one-gadget을 찾는 방법 2-1. 리눅스 명령어와 도구를 이용하여 탐색 (1) "/bin/sh" 문자열 찾기 strings -tx “libc.so.6주소” | gre..
Greedun (lr-x-dl)
Greedun's archieve