[시스템] NOP sled 기법

2021. 11. 20. 00:28·System/System Hacking Techniques

이번 포스팅에서는 NOP seld기법에 대해 다뤄보도록 하겠다.

 

우선 NOP이란 어셈블리어 명령어중 하나로 "No Operation"의 약자이다.

프로그램의 실행에 아무런 영향을 주지 않는 명령어이다.

프로그램이 작동중 NOP 명령어를 만났을 시 해당 명령어를 수행하지 않고 무시하고

다음 명령어로 넘어가게 된다.

 

NOP sled는 해당 NOP명령어를 이용한 것으로 고의적으로 프로그램의 실행 흐름을 다음 명령어들로

흘러 보내는 것이다. 해당 기법은 ASLR이 걸려 있어 주소값이 계속 변경되는 환경에서

return-to-shellcode 기법이나 heap Spray형태의 공격 코드들에서 반복구문과 NOP sled를 쓴다.

 

해당 이유는

  • 임의의 메모리를 참조하게 되면 해당 위치에 무조건 악의적인 행위를 실행 하는 코드가 있을 수만은 없다.
  • NOP sled를 이용하여 참조한 위치에 악의적인 행위 코드가 없으면 자연스럽게 실행 흐름을 타고 흘러감
  • NOP명령어들을 타고 흘러가다 악의적인 행위 코드를 포함하고 있는 위치로 갈 수 있음.
  • Shell Code의 주소를 정확히 알아내기 힘들 경우 큰 메모리를 확보하여 Shell Code의 주소의 오차 범위를 크게 만들 때 사용.

해당 NOP명령어는 "\90" 을 사용하며, 또는 아무런 기능이 없는 "A" 형태의 문자도 사용한다.

위 사진과 같이 Shell Code 또는 Malicious code를 실행시켜야하지만 메모리상의 정확한 주소위치를 모를 경우

NOP코드를 앞에 추가시키므로 주소값이 NOP위치에 떨어지게 되면 해당 NOP을 타고 아무런 동작도

하지 않고 쭉 NOP을 타고 내려가다 Shell code를 만나게 되면 Shell code를 실행하게 되는것이다.


ex) 버퍼의 크기가 클 경우 해당 버퍼에 NOP코드를 삽입후 뒤에 Shell Code를 넣고 RET까지 접근 후

RET에 버퍼에 주소를 넣으면 된다 그럼 ASLR로 인해 주소값이 바뀌더라도 오차범위 안에

NOP코드가 존재한다면 NOP코드를 타고 흘러가다 Shell Code를 실행시키게 된다.

 

※참고로 스택은 높은주소에서 낮은주소로 쌓이지만 메모리상에서 데이터는 낮은주소값에서 높은주소값방향으로 흐르게 된다.

참고자료
https://hakawati.co.kr/9

 

※ 내용이 이상하거나 문제가 있을경우, 또는 설명에 부족한 내용이 있으시면 알려 주시면 감사합니다.

'System > System Hacking Techniques' 카테고리의 다른 글

[시스템] Return-to-Shellcode  (0) 2021.11.20
[시스템] 리틀 에디안 방식  (0) 2021.11.20
[시스템] PLT 와 GOT [초급]  (1) 2021.11.19
[시스템] epilogue [에필로그 과정]  (1) 2021.11.18
[시스템] Prologue [프롤로그 과정]  (0) 2021.11.18
'System/System Hacking Techniques' 카테고리의 다른 글
  • [시스템] Return-to-Shellcode
  • [시스템] 리틀 에디안 방식
  • [시스템] PLT 와 GOT [초급]
  • [시스템] epilogue [에필로그 과정]
g2h
g2h
  • g2h
    감자 텃밭
    g2h
  • 전체
    오늘
    어제
    • 분류 전체보기 (144)
      • Network (4)
      • Web (31)
        • Web Hacking Techniques (31)
      • System (32)
        • Tips (11)
        • System Hacking Techniques (21)
      • Pentest (14)
        • Pentest (14)
      • WriteUP (47)
        • sec (0)
      • 도구|Tools (12)
      • Security Issue (3)
      • 1-Day-Analysis (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    해킹
    취약점
    모의해킹
    Hacking
    권한상승
    XSS
    load of sqlinjection
    스캐닝
    내부침투
    Encoding
    스캔
    Los
    해킹도구
    vulnability
    NOSQL
    cross side script
    해킹툴
    DoM
    Metasploit
    CTF
    취약점 스캔
    Reflected XSS
    skt 해킹
    Kioptrix
    dom based xss
    sql
    SQL Injection
    nosql injection
    침투테스트
    web hacking
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
g2h
[시스템] NOP sled 기법

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.