분류 전체보기
-
FTZ 15번 Write-up표튜터와 함께하는 Pwnable/FTZ Write-up (11~20) 2019. 2. 5. 08:09
혹시나 이상하거나 잘못된 것이 있다면 댓글 부탁드립니다. FTZ 15번이다. 마치 FTZ 14번과 비슷하다고 느꼈겠지만 조금 다르다. 코드를 보면 이번에는 check가 포인터로 되어있다.나머지는 같고 비교문은 check의 주소와 비교하고 있다는 점이 14번과 다르다.역시 if문을 참으로 통과하게되면 다음권한으로 "/bin/sh"이 실행되어다음단계로 갈 수 있게 되는 구조이다. 어셈블리어 코드를 보자.fgets로 값을 받고나서 ebp-16에 있는 값을 eax에 저장한 뒤eax에 있는 4byte를 0xdeadbeef와 비교하는 코드였다. 0xbfffd718에 eax값이 저장된다는 것을 알았고fgets가 45까지지만 우리는 44개의 바이트만을 사용하기 때문에 상관이 없었다. 하지만 여기서 주의할 점은 [eax..
-
FTZ 14번 Write-up표튜터와 함께하는 Pwnable/FTZ Write-up (11~20) 2019. 2. 5. 07:23
혹시나 이상하거나 잘못된 것이 있다면 댓글 부탁드립니다.FTZ 14번 문제이다. 코드를 보니 이번에는 fgets로 길이를 주어줬다.그리고 밑에 if문을 보니 check라는 값이 0xdeadbeef 이면 다음원한으로 "/bin/sh"이 실행된다는 것을 알 수 있었다.그러므로 해야할 일은 바로 check값을 0xdeadbeef로 맞춰주는 것이다. 어셈블리어 코드를 보니 fgets으로 값을 받고나서 ebp-16에 있는 값이 0xdeadbeef인지 비교하였다.저 부분이 바로 check의 주소라는 것을 알 수 있었다. a값을 몇개 넣어주고 실행을 해보았다. 0xbfffef88까지 44개임으로 45개까지 입력가능한 fgets()가 문제가 되지 않았다. 그럼으로 바로 40개의 a값을 채우고 0xdeadbeef로 조건..
-
FTZ 13번 Write-up표튜터와 함께하는 Pwnable/FTZ Write-up (11~20) 2019. 2. 5. 04:47
혹시나 이상하거나 잘못된 것이 있다면 댓글 부탁드립니다. 이번문제 FTZ 13번의 코드이다.strcpy로 인한 스택 오버플로우 취약점이 보인다.하지만 이전 문제들과 다른점이 있다.바로 i 라는 변수값이 0x01234567이 아니면 프로그램이 종료된다.마치 Stack Canary 처럼 뭔가 버퍼의 값이 바뀌는 것을코드를 통해 체크하여 종료시키는 느낌이다ㅎㅎ 그렇기 때문에 버퍼오버플로우를 이용하면서 i의 값은 0x01234567로 가져가면 될 것 같다. 4번째 줄에서 볼 수 있듯이 ebp-12에 0x01234567의 값이 채워짐을 알 수 있었고저 주소가 변수 i라는 것을 알 수 있었다. strcpy에 breakpoint를 걸고 버퍼의 크기보다 약간 적은 값 1000을 넣어보았다.ret 주소가 0x420155..
-
FTZ 11번 Write-up표튜터와 함께하는 Pwnable/FTZ Write-up (11~20) 2019. 2. 4. 21:57
혹시나 이상하거나 잘못된 것이 있다면 댓글 부탁드립니다. (다른방법의 풀이도 올리겠습니다)밀린 Wrtie up을 쓰면서 정리를 하려고 합니다. FTZ 11번은 굉장히 쉽다. 버퍼오버플로우의 기본적인 유형이다. 우리가 알아야할 것은 어떻게 코드가 실행되냐라고 생각한다. 본론을 말하자면 RET값을 덮어씌우는 것이 관건이다. 오버플로우를 일으켜서 RET주소값만 바꿔주면 된다. 소스코드를 보니 strcpy가 취약하다는 걸 알 수 있었다. 길이가 지정되있지않기 때문에 공격자는 버퍼보다 큰 크기의 값을 argv[1]로 입력할 수 있었다. strcpy 부분에 breakpoint를 걸고 우선 a를 10개만 입력한 뒤 gdb로 확인해보았다.ret 주소 0x42015574의 위치가 보였다.저 주소 이전까지 특정 문자를 씌..
-
Network Manager 끄기와 인터페이스 Mode 설정Network/Setting 2019. 1. 17. 18:48
리눅스에서 네트워크에 대한 프로그래밍이라던지 어떠한 행위를 할 때 Network Manager가 이를 간섭하게 되는데 Monitor Mode로 전환된 인터페이스를 간섭하여 오작동을 일으킬 수 있다. 그렇기 때문에 Monitor모드 사용시 해당인터페이스는 Network Manager가 접근하지 못하도록 해야하는데 방법은 다음과 같다. 1. 해당 명령어를 이용하여 Monitor 모드를 오작동 시킬 수 있는 모든 프로세스를 꺼버린다. 하지만 이렇게 되면 네트워크를 정상적으로 사용하고 있는 프로세스마저 종료되어 인터넷을 사용할 수 없게된다. 1airmon-ng check kill * Network manager를 다시 켜고 싶은 경우 1service network-manager start 2. /etc/Netw..
-
ifconfig 인터페이스 up 시 에러가 발생했을 때Network/Network 2019. 1. 17. 18:40
ifconfig 인터페이스명 up을 했는데 다음과 같은 에러가 발생할 경우 우선 명령어 1sudo rfkill list 를 이용하여 어떤것이 block되어있는지 확인한다. 보통은 아래의 그림과 같이 no가 되어있을텐데 혹시나 software든 hardware에서든 yes가 되어있다면block이 걸려있기 때문에 제대로 안되는 것이다. 이럴때는 아래의 명령어를 이용해서 블록을 풀어주도록 하면 해결이 된다.1rfkill unblock all
-
와이어샤크 원하는 패킷만 저장하기Network/Network 2019. 1. 17. 15:32
와이어샤크로 패킷을 잡고 저장할 때 필터를 걸더라도 일일이 걸어주기 귀찮거나 또는 공통점이 적어서 필터를 걸기 힘들 때가 있다. 1. 이럴 때 사용하는 것이 바로 Mark기능이다. 단축키로는 Ctrl + M !! 원하는 패킷을 클릭한 후 단축키를 눌러주면 검은색으로 마킹이 된다. 그 뒤 마크된 것만 저장해주면 깔끔하게 원하는 패킷만 저장을 할 수 있다!! File -> Export Specified Packets... 하단에 Marked packets only 체크! 후 저장 2. 다른 방법으로는 필터를 걸어서 저장하는 방법이 있다. (많은 양을 저장할 때 조금 불편할 수 있음..) 제일 앞에 있는 Number를 필터거는 방법이다.