본문 바로가기

Let's Study

Alpha-Numeric Shellcode (Ascii Shellcode) 알파뉴메릭 쉘코드 제작방법에 대해 포스팅합니다. 말 그대로 숫자, 영어만으로 쉘코드를 제작할 수 있습니다. 오래된 기법이긴 하지만 이리저리 국내, 해외사이트를 뒤져봐도 정작 제작하는 방법은 안 나와있고 여러가지 툴을 이용한, Alpha3으로 제작하기, 메타스플로잇 alpha_mixed 옵션을 이용해서 만들기 밖에 없네요. 아스키쉘코드를 적용시키려면 우선 환경이 중요합니다. esp컨트롤로 스택포인트를 eip에 위치시켜서 xor한 값을 실행시킬 수 있습니다. 우선, 제일(?) 유명할 거라 생각되는 리눅스 쉘코드를 던져봅니다. http://shell-storm.org/shellcode/files/shellcode-827.php #include #include char *shellcode = "\x31\xc0\.. 더보기
[2015 Nullcon] exploitable 300 이 문제 이 외에도 여러 문제가 있지만 이 대회는 왠지모르게 씽크빅 대결인 듯 하여 그나마(?) 기술적인 exploitable 문제 하나 포스팅합니다. 바이너리를 실행해보면 Command% 가 나옵니다. 사용법은 set [name] [data] get [name] set a 1234get a를 하면 a 에 1234가 저장되서 get a 로 1234가 출력됩니다. 이것만으로는 아무것도 모르므로 gdb로 분석합니다. main 함수를 보면 input_loop 함수로 넘어가고 여기로 넘어가면 "Command%" 출력 후 fgets로 문자열을 받고 process_command 함수로 넘어갑니다. 여기는 strstr 함수로 비교를 해서 help입력 시, help 함수로, exit 입력시 exit.strcmp로 se.. 더보기
[Linux] 개성적인 터미널 만들기 이번엔 자신만의 터미널 만들기에 대해 포스팅을 해봅니다. 여기서 다룰 내용은 터미널 출력 포맷팅 (Color Bash Shell), figlet 툴, asciiview 툴 사용법입니다. 일단 결과물부터.. 터미널을 열면 피카츄 그림과 함께 제 아이디가 출력되고배시 쉘에 컬러로 이쁘게 꾸밀 수 있습니다. 우선, 일반 그림을 아스키문자로 바꿔주는 툴이 따로 있는데asciiview 라는 툴입니다. sudo apt-get install aview로 툴을 설치해준 뒤, 그림이 있는 경로에서 asciiview xxxx.jpg -driver curses 를 해주면 그림을 아스키문자로 변환해줍니다. 자세한 옵션은 터미널에서 man asciiview 를 사용하시면 됩니다. 혹은 http://manned.org/ascii.. 더보기
[Linux] Peda [Python Exploit Development Assistance for GDB] gdbinit8 만 쓰다가 새로 알게 된 Peda 입니다. gdbinit8만 써도 딱히 불편함이 없긴한데 이 페다는 스택에 쌓인 것까지 다 보여줘서스택값을 일일히 찾아다닐 필요가 없습니다. 이것 외에도 다양한 강력한 기능들이 포함되어 있는데 이건 제가 이것에 익숙해진 다음에 포스팅하도록 할게요. https://github.com/longld/peda 여기서 페다를 다운받을 수 있고 이 사이트에서 설치법이 친절하게 나와있습니다. 다만 문제가 하나 있습니다. 이건 gdb 7.7에서는 돌아가지 않는다는 건데, gdb 7.7에서는 파이썬3을 지원하기 때문입니다.사용하기 위해서는 gdb를 7.4로 내려야 하는데 이 방법을 알려드리겠습니다. sudo apt-get install synaptic 으로 시냅틱 패키지 .. 더보기
Poodle [padding oracle on downgraded legacy encryption] 이걸 전주에서 발표한 지 2달쯤 지난 것 같은데 그 후로 너무 바빠서 지금 포스팅을 하게 되네요. 10월에 잠깐 이슈가 되었던 푸들어택은 POODLE(Padding Oracle On Downgraded Legacy Encryption)의 약자로 TLS 프로토콜을 SSLv3로 다운그레이드시켜 패딩오라클 어택을 합니다. 사실상 이 공격은 2011년의 BEAST(Browser Exploit Against SSL/TLS) 어택과 비슷하다고 보면 됩니다. 결국은 패딩을 이용한 공격으로 사용자의 정보를 가로채는 기술이니까요. 푸들은 2014년 10월 14일, 구글보안팀의 Bodo moller, Thai duong, Krzytof kotowicz가 공개했습니다. TLS 프로토콜을 사용하는 클라이언트와 서버의 핸드쉐이.. 더보기
[2014 Hack.lu] guess the flag write-up 몇달 전에 있었던 hack.lu ctf 문제 중 exploit 문제 Guess the Flag 입니다. 그 날 이 문제 풀면서 멘붕이 왔었는데 바쁜 일 다 끝나고 학교동아리 홈페이지에 이 문제를 아주 약간 바꿔서 올린걸 풀어보았습니다. 문제의 원래 코드는 이렇게 생겼습니다. 전 동아리 서버에 올린 문제로 풀이를 하겠습니다. 문제의 서버환경은 64bit이지만 동아리 서버는 32bit입니다. 문제풀이 하실 때에 크게 차이 없을거에요. 이 문제의 핵심적인 부분을 설명드리자면, * guess> 뒤에 100글자를 입력해야 하고 위의 is_flag_correct() 함수에서 char value1 = bin_by_hex[flag_hex[i * 2 ]];char value2 = bin_by_hex[flag_hex[i .. 더보기
[2014 화이트햇 콘테스트] 한글치환암호 이번에 ctf풀면서 스터디하자! 하고 만들어진 Mr.Mr 팀입니다.어쩌다보니 예선 일반부 9위까지 올라가게 됬네요.문제풀이 시작하겠습니다. 한글치환암호 문제입니다.노가다성이 좀 짙어서 디테일한 설명은 힘들고 간단하게 설명드리겠습니다. 우리가 알고있는 한글과는 다르게 ㄱ 을 ㄴ으로 치환해서 바꾸고 ㅏ 를 ㅢ 로 바꿀수도 있는게 한글치환암호인데 일단 여기서 가장 많이 쓰인 건 컃콌 입니다.보통 소설이나 뭐 어디든 이 두 글자를 보면 '나는' 이 생각나는데이걸가지고 치환을 시작하면 나 의 ㄴ 은 ㅋ으로, ㅏ 는 ㅑㅊ 로 치환된 것을 알 수 있고는의 ㅡ 는 ㅖ, 밑의 ㄴ 은 ㅆ 으로 치환된 것을 알 수 있습니다. 그리고 먗. 이렇게 쓰인건 아까 나 에서 ㅑㅊ가 ㅏ로 치환된 것을 알 수 있었는데이걸 유추해보면 다.. 더보기
[2014 화이트햇 콘테스트]Cold War 이번에 ctf풀면서 스터디하자! 하고 만들어진 Mr.Mr 팀입니다.어쩌다보니 예선 일반부 9위까지 올라가게 됬네요.문제풀이 시작하겠습니다. 주어진 건 이 소스코드와(아. if __name__ = "__main__":a = g(8) 에서 8이 아니라 n으로 주어졌습니다. 죄송합니다.) fee304acd551a17fbd3b7f23c1e51fba9c55a93de43d797187fc1eaa9055ba74fc3e2c62d4ac10fe864fbb79f83c7822 f0e414aa9d5ebc3df2202c6dc8f85197d54caf6ebd267971c9e51fb9d54fa678bd226d64c2ff51aa9a5faf64bd332c60c6e014b0915abc3df4212c64c8e51fb9d554b878ef732d.. 더보기
stack corruption basic 요즘은 Buffer Overflow 라는 표현보다 Stack corruption, Heap Corruption이라는 표현을 쓰더라구요. 저도 트랜드(?)에 맞춰서 스택커럽션이라는 표현을 쓰도록 할게요. 시스템 포스팅을 시작하기에 앞서 시스템 해킹이 뭔지 알아보겠습니다. 우선, 간단하게 취약한 코드를 코딩합니다. 환경은 공지사항에도 올려놨듯이, ubuntu 14.04, 커널환경은 linux 3.13.0-36-generic 입니다. 컴파일 옵션에 -fno-stack-protector, mpreferred-stack-boundary=2 옵션을 주었는데 -fno-stack-protector 를 걸면 컴파일된 프로그램에 메모리보호기법인 ssp(stack-smashing-protector) 를 걸지 않습니다. 카나.. 더보기
[Linux] vim colorscheme 설정 이번엔 vim 환경에서 컬러 설정하는 방법을 알려드리겠습니다. 제가 쓰는 colorscheme 은 colorscheme_template 입니다. 설정하는 방법을 알려드리겠습니다. 우선 colorscheme vim 파일을 받아야하는데, https://code.google.com/p/vimcolorschemetest/ 여기에 들어가시면 맨 밑에 C Java Perl 등등 여러가지가 있을겁니다. C 로 들어가서 여러분이 원하는 vim을 받으시면 됩니다.(혹시 다운로드가 되지 않는다면 거기 텍스트를 긁어서 아무곳에나 붙이고 파일을 .vim으로 만드시면 됩니다.) 저기 url 외에도 vim colorscheme을 검색하시면 여러가지 자료를 받으실 수 있습니다. 원하는 파일을 받고 리눅스 바탕화면에 둡니다. fin.. 더보기