SYSTEMHACKING
-
pwntools gdb.attach 사용법 - python process debugging# 시스템 해킹 공부중 2019. 8. 5. 21:08
gdb.attach 사용법 wargame이나 ctf 문제를 풀 때, 혹은 바이너리를 분석 할 때 파이썬으로 데이터를 입력하는 경우가 자주있다. example> p = process("binary") p.sendline("AAAA") 이 때 내가 입력한 데이터가 원하는데로 바이너리에 잘 입력이 되었는지, 스택은 잘 덮혔는지 확인하기 위해서 gdb를 사용해 디버깅을 할 수 있다. 보통은 다음과 같이 코드 내에 raw_input()을 넣어서 실행을 잠시 멈춘 다음, gdb로 실행된 binary의 pid 로 붙어서 디버깅을 한다. example> p = process("binary") raw_input("1") p.sendine("AAAA") $ ps -ef ..... 4111 ... binary $ gdb -..
-
[SystemHacking] 간단한 쉘 코드(ShellCode) 제작하기미사용/##Security 2015. 7. 28. 14:51
[리눅스 쉘 코드 제작] - 쉘을 실행시키는 간단한 쉘 코드를 만들어 봄으로써 쉘 코드를 만드는 원리에 대해 이해한다. /bin/sh 혹은 /bin/bash 쉘을 실행시키는 프로그램 작성 gdb 및 objdump 등의 툴을 이용해 쉘을 실행 시키는 시스템 함수 분석, 어셈블리 확인 inline asm 을 이용해 시스템 함수의 주요 어셈블리어로 코딩 objdump 를 이용해 바이너리값 추출 NULL byte 제거 및 쉘 코드 다이어트 작업 [그림 1] execve 함수를 이용해 간단한 쉘을 실행시키는 프로그램을 코딩한다. ※ 흔히 사용하는 system 함수는 fork() + execve() 형태로 동작하므로 간단한 execve() 로 쉘 코드를 제작해 본다. 주의! gcc로 컴파일 할 때 –static –..