페도라 버전부터 추가되는 보호기법들은 크게 세 가지입니다.1. ASLRRedhat 9(FTZ) 와는 달리 이제 정말 제대로 된 ASLR이 적용 됩니다.2. Ascii-Armor페도라 버전 부터는 공유라이브러리의 상위 1바이트 주소가 0x00 으로 바뀌었습니다.더 이상 기존의 RTL을 수행할 수 없습니다.3. NX-Bit스택과 힙 부분에서 더 이상 쉘코드를 실행할 수 없습니다.이번에는 간단히 페도라 3 링크만 걸어드리겠습니다 ~Fedora 3 LOB 서버다른 과정은 Redhat 에서 했던 것과 동일하게 하시면 됩니다.
평소에 궁금한 것들은 혼자서 분석해보고 '아... 내부적으로 이렇게 되는구나...' 하고 넘어갔는데 이제부터는 분석내용을 블로그에 쓰기로 결정했습니다 ㅎㅎ.일단 이번에 분석할 코드는 아래와 같습니다.코드 내용은 매우 쉽죠 ? 윤성우 님의 열혈 C 프로그래밍에 있는 예제입니다 ㅋㅋ...제가 궁금했던 것은, "fgets를 수행하면 입력버퍼에 모든 내용이 들어가게 되는데, 어째서 그 다음 fgets에 영향을 미치는 것인가." 입니다. 결론부터 말씀드리면, fgets 함수의 맨 뒤에 입력하는 stdin이라는 곳에서 값을 받아오기 때문입니다.(분석을 완료하고나서 곰곰히 책을 다시보니 윤성우 님께서 얼마나 자세히 설명을 해주시려던 것인지 느껴지더군요...)디버깅을 할 줄 모르셔도 따라올 수 있을만큼 쉽게 설명하겠습..
20번 문제는 마지막 문제입니다. 그리고 가장 기초 Remote Buffer Overflow 문제이기도 합니다.소스코드를 한 번 살펴보죠. 는 파일로 첨부해놨습니다. 소켓이다보니 소스코드가 너무 기네요...;선언된 변수는 40 바이트 크기로 잡혀있는데, recv 함수로 256 바이트를 받음으로써 취약점이 발생하는 것입니다.또한, 제가 XInetd 데몬은 로컬 쉘코드를 사용해도 되지만, 사용자가 직접 소켓을 할당하고 사용하는 StandAlone 형식의 프로그램은 바인딩 쉘코드가 필요합니다.바인딩 쉘코드에 대한 것은 다음에 Writing the ShellCode 부분에 써보기로 하고... 여기서는 그냥 쉘코드를 사용하겠습니다.( Redhat 7.3에 강좌도 써야하는데 문제 푸는게 꿀잼...) death_kn..
- Total
- Today
- Yesterday
- 우주와컴퓨터
- REACT
- steampipe
- AWS #CIS
- temlate
- fleet manager
- 4xx
- web
- CIS
- ControlTower
- ViaAWSService
- Cloud
- opensource
- platform
- JavaScript
- IAM
- 2xx
- cloudsecurity
- stateType
- security
- .get()
- terraform
- defaulttheme
- 계정정보저장
- conftest policy
- teplate
- findinglatestversion
- aws
- compliance
- scp
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |