-
[Stack 2]System/Protostar 2018. 2. 1. 20:53
[Stack 2 Code] [Stack 2 실행] getenv함수로 환경변수 GREENIE값을 불러온 후strcpy함수로 버퍼에 복사하는 과정에서 BOF가 발생한다. 환경변수 GREENIE를 만든 후, AAAA를 넣어주고 실행을 하면 modified값을 출력한다.BOF를 일으켜 modified변수에 0x0d0a0d0a를 넣어주면 Success 문구를 출력할 수 있다. ======================================================= 우선 버퍼공간이 64바이트니까 A를 64개 채워주고 스택상황을 확인해보자 저 부분이 strcpy함수를 호출하는 부분이니까그 다음 주소인 0x080484e4에 BP를 걸고 실행을 한다. ESP를 확인해보면 41(A)이 64개 채워진 다음 스택공..
-
[Stack 1]System/Protostar 2018. 2. 1. 17:45
[Stack 1 Code] [Stack 1 실행] Stack 1에 AAAA값을 넘겨 실행하면Try again, you got 0x00000000 이라면서modified변수 안에 값을 16진수로 8자리 출력해준다.BOF를 일으켜 modified변수 값을 0x61626364(abcd)로 조작해주면you have correctly got the variable to the right value라는 Success 문자열이 출력될 것이다. ================================================================================================== BOF취약점이 있는 strcpy함수를 사용함을 알 수가 있다.따라서, 인자값을 넘겨줄 때 64바이트를..
-
[Stack 0]System/Protostar 2018. 2. 1. 17:20
[Stack 0 Code] [Stack 0 실행] 버퍼가 64바이트 공간을 갖고 있으며, BOF를 일으켜 modified의 변수값을 바꾸면 되는 문제다.modified의 변수값이 0이아닌 다른값으로 조작되면you have changed the 'modified' variable이라는 문자열을 출력한다. gets함수를 호출하는 주소에 BP를 걸고 실행시켜보자 그 후 A를 64개 입력하고 ESP를 보면 64개까지 A가 채워져있고 그뒤는 modified변수 공간이므로 0으로 초기화 되어있다. 따라서, 버퍼64개를 넘겨준 뒤 임의의 값을 하나 더 넘겨주면 BOF가 발생되어 modified변수의 값이 바뀔 것이다. 성공적으로 modified변수 값을 조작했다. 그 후, Success 문자열 you have cha..
-
[C / lpcap] ARP SpoofingNetwork/NetProg 2017. 12. 14. 23:12
안녕하세요. 오랜만에 글을 씁니다. 처음에 윈도우환경에서 ARP Spoofing툴을 만들다가 라이브러리 지원한계 때문에 Ubuntu로 넘어갔습니다.다른 공부하는 분들도 ARP Spoofing처럼 Pcap을 이용해서 개발하실 때는 Ubuntu에서 하시는걸 추천드립니다! 우선 ARP Spoofing에 대해서 간단히 설명하자면 *정상적인 패킷흐름* ARP SPOOFING *비정상적인 패킷흐름*VICTIM GATEWAY -----------------> VICTIM ATTACKER GATEWAY위 처럼 중간에 ATTACKER를 지나서 패킷이 흐르게 됩니다. 이렇게 되면 공격자 입장에서는 VICTIM의 패킷을 전부 훔쳐볼 수 있게되는거죠. 어떻게 이런 공격이 가능할까요? ARP Protocol이 동적인 부분을 이..
-
MS, 오픈소스 코드 검사도구 '소나' 공개Issue 2017. 10. 28. 00:18
MS사에서 오픈소스 코드 검사도구인 '소나'를 공개했다. URL을 입력하면, 해당 웹페이지의 취약점과 그 이유를 알려준다.개발자의 경우에는 보안용으로 사용할 수도 있겠지만, 공격자 입장에서는 공격도구로 사용할 수 있을 것 같다. 또, 비쥬얼 스튜디오에도 추가한다고 하니 소나의 기능들을 따로 빼와서해당 프로그램을 개발하는데 도움이 될 것으로 보인다. 아래는 해당 기사 전문이다. 마이크로소프트(MS)가 코드 검사도구 '소나'를 오픈소스 기술로 공개했다. 소나는 린트 도구로, 소스코드를 스캔하고 잠재적인 오류를 찾아내며 보안, 성능, 접근성 등을 검사해준다. 안토니 몰레다 MS 웹 플랫폼 프로그램 매니저는 공식 블로그를 통해 "웹은 복잡하나 소나로 훨씬 쉽게 코드를 짤 수 있을 것"이라며 "단순히 오류를 알려..
-
[WINPCAP] 스니핑 프로그램Network/NetProg 2017. 10. 5. 01:02
#WINPCAP을 이용한 패킷 스니핑 프로그램 개발# * pcap함수 정리- pcap_findalldevs(pcap_if_t *alldevs, char *errbuf) 네트워크 장치들을 찾아주는 함수다.실패하면 -1 반환, 성공 시 장치이름을 반환하고 없으면 NULL을 반환한다. - pcap_open_live(const char *device_name, int snaplen, int promisc, int to_ms, char *errbuf) 현재 네트워크에서 해당 네트워크 장치 패킷을 캡처하는 함수이다.int snaplen - 캡처할 패킷의 길이int promisc - 보통 1(true)로 설정한다. true로 설정하면 무차별모드로 설정되어 모든 패킷을 잡게된다.int to_ms - 패킷을 읽는 시간을..
-
HackerSchool Level1 문제풀이System/FTZ 2017. 10. 5. 00:05
Level 1 우선, Putty로 ftz.hackerschool.org에 접속 후level1/level1으로 로그인 한다. 현재 디렉토리에 어떤 것들이 있나 ls -al명령어를 쳐보니hint문서가 있다. 힌트에는'level2 권한에 setuid가 걸린 파일을 찾는다.' 여기서 setuid란?- 우선, set은 '변경하다' 라는 뜻을 가지고 있다.uid는 'User id'라는 의미이다.합쳐서 생각해보면 'User id를 변경하는 것' 이라고 생각해볼 수 있다. 그럼 왜 이런 기능이 있는 것일까? 우리가 패스워드를 변경할 때, /etc/shadow파일을 수정해야 하는데shadow파일은 root권한을 있어야만 접근 가능하다.이때, 일반 사용자도 편하게 패스워드를 변경할 수 있도록passwd명령어를 사용할 때만..