|
http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=21982 [복사]

1.widnwos bof연구
(과정은 압축된 첨부파일안에 windows bof test.txt로 요약해서 기록해두었습니다.)
그냥 windows용 쉘코드를 구해다가 BOF를 시도해본겁니다. 취지는 리눅스에서와 같이 잘되는지 궁금해서요ㅋㅋ
결론부터 말하자면 fail입니다. ㅠㅠ
x64 windows7환경에서 해서인지 쉘코드(cmd 실행하는)가 안먹힌것같네요. 전용 쉘코드를 만들거나 xp환경에서 다시 시도를 해봐야겠습니다.
참고:windows의 세그먼트 폴트로 추정되는 창은
C:\Users\Administrator\Desktop>(python -c "print '\x90'*52")|test.exe에서 떳습니다.(위의 2번째사진참고)
리턴주소에 다시 test.exe의 시작주소를 넣으니 작동은 되네여.
+windows7의 메모리주소는 변하는것 같긴한데 규칙성 같은게 있더군요 확률상 2자리정도 시도해보면 전에나왔던 주소가 나옵니다.
컴파일러는 VC보단 스택가드 같은거 안만드는 gcc로 컴파일해서실습해봤습니다(소스와 exe파일은 첨부파일 참고)
2.windwos 취약점실습(?)
이건 xp sp3와 7 x64 환경에서 시도해보았습니다.
시도해본 취약점은 at 명령어입니다. 해당 명령어로 예약해놓은것은 system권한(Administrator보다 높은권한입니다. ex:프로세스목록에서 사용자가 system인 프로세스) 을 가지고 실행됩니다.
그렇다면 제한된 계정으로도 system권한의 cmd 쉘을따내어 관리자 계정보다 높은 권한을 한번에 딸수 있지않을까?라는 생각에서 시도해보았습니다.
사용법은 다음과같습니다.
C:\Users\Administrator\Desktop>at /?
AT 명령은 프로그램과 명령이 지정된 시간과 날짜에
실행되도록 일정을 만듭니다. AT 명령을 사용하려면 일정
서비스를 실행하고 있어야 합니다.
AT [\\컴퓨터이름] [ [id] [/DELETE] | /DELETE [/YES]]
AT [\\컴퓨터이름] 시간 [/INTERACTIVE]
[ /EVERY:날짜[,...] | /NEXT:날짜[,...]] "명령"
\\컴퓨터이름 원격 시스템을 지정합니다. 이 매개 변수를 생략하면,
로컬 컴퓨터에 대한 일정이 됩니다.
id 예약된 명령에 지정된 식별 번호입니다.
/delete 예약된 명령을 취소합니다. id를 생략하면,
해당 컴퓨터에 예약되어 있는 모든 명령이 취소됩니다.
/yes 예약된 모든 작업을 취소할 때, 더 이상 확인하지 않을 경우
yes로 지정합니다.
시간 명령을 실행할 시간입니다.
/interactive 작업이 실행될 때 로그온한 사용자의 데스크톱과
대화할 수 있도록 합니다.
/every:날짜[,...] 매주 또는 매달 지정된 날짜에 명령을 실행합니다.
날짜를 생략하면, 현재 날짜로 가정합니다.
/next:날짜[,...] 돌아오는 지정 요일에(예들 들어, 다음 목요일),
지정된 명령을 실행합니다.
날짜를 생략하면, 현재 날짜로 가정합니다.
"명령" 실행될 Windows NT 명령이나 일괄 프로그램입니다.
이건 구글링으로 알아낸 정보인데 세븐에선 왠지 패치먹은듯한느낌이 왔습니다..
느낌은 곧 현실이되고..
제한된 계정에서는 저 명령어로 예약을 하려고하면 접근이 차단됩니다.
리눅스로따지면 mount 같은건가요?ㅋㅋ (도움말등의 정보는 보여집니다.)
세븐의 Administrator계정으로 시도해보았습니다.
C:\Users\Administrator>at 20:42 /interactive "cmd.exe"
경고: 보안 강화로 인해 이 작업은 예상 시간에 실행되지만
대화형으로 실행되지는 않습니다.
대화형 작업이 필요한 경우에는 schtasks.exe 유틸리티를 사용하십시오(자세한 내용은
'schtasks /?' 참조).
새 작업을 추가했습니다. 작업 ID = 2
ㅠㅠ
프로그램 자체에 보안을 먹였군요
분명 저시간에 실행은 되지만 탐색기창 어디에서도 찾을 수 없고 오직 프로세스목록에서만 보입니다.
system 권한의 cmd가 background로 실행된거라고 볼 수 있습니다.
대화형 실행은 schtasks라는 명령어를 이용해보라고하니 이것도 나중에 시도해봐야겠습니다.
-xp시도-
xp sp3 현재까지 나온 보안패치 다적용시킨 상태에선 역시 제한된 계정에서 시도하자 접근이 제한되었다고합니다.
그래서 이것역시 다시 Administrator계정으로 시도해보았습니다.
C:\Documents and Settings\Administrator>at 21:05 /interactive "explorer.exe"
새 작업을 추가했습니다. 작업 ID = 1
이번에는 색다르게(?) system권한의 탐색기를 직접실행해보려고 썼습니다.
(작업전에 내문서 창이 뜨지않도록 taskkill -f -im explorer.exe로 미리종료시켜놨습니다.)
이것이 성공한다면 ""에 cmd.exe를 넣었을때는 system권한의 cmd창이 실행되겠죠?
결과(위의 1번째사진참고)
시간나면 sp2나 sp3 보안패치안했을때 다시 시도해봐야겠습니다.
ps:주말에는 잉여짓을 할시간이 남지만 평일에는 많진않군요ㅋㅋ
그래도 오늘은 백트랙받아서 놀고있습니다.
번역판 찾다 찾다 60%쯤 되있는거 발견했네요 |
Hit : 6699 Date : 2011/10/10 09:33
|