NOP Sled

NOP는 No-OPeration의 약자로 즉 실행을 해도 실행할 명령어가 없기에 실행포인터가 다음 흐름으로 넘어간다고 생각하면 된다. 여기에 Sled(썰매)를 붙임으로써 고의적으로 실행흐름을 아래로 흘러 보내는 느낌으로 설명할 수 있다. 보통 Heap Spray 형태의 공격 코드들에는 반복구문과 NOP Sled를 많이 쓴다. 이유는 다음과 같다.

  • 임의의 메모리를 참조하게 되면 해당 위치에 무조건 악의적인 행위를 실행 하는 코드가 있을 수만은 없다.
  • 그래서 NOP Sled를 이용하여 참조한 위치에 악의적인 행위 코드가 없으면 자연스럽게 실행흐름을 타고 내려가
  • 코드를 포함하고 있는 위치로 가게 되는 것이다. (참조라는 개념이 맞는지는 잘 모르겠다.)

[그림 1. NOP sled가 포함된 exploit중 하나]

위의 그림과 같이 "0x1C0C1C1C"는 NOP Sled이다. 만약 실행 시작지점이 Offset 1C111B90이라면 0x1C0C1C1C의 흐름을 따라 내려가 "두번째 셀코드"라는 부분에 도착 악의적인 행위를 하는 코드를 실행하게 되는 것이다. (0x0C1C1C1C가 아니냐는 궁금증이 있으면 빅-엔디안, 리틀-엔디안을 보면 이해할 수 있다.)

그렇다면 NOP Sled는 어떻게 형성이 되는 것일까?

[그림 2. 실제 취약점을 이용하여 악성코드를 유포하는 사이트의 코드]

위에서 보면 "nop = unescape("%u0B0B%u0B0B"); 라는 코드를 볼 수 있다. 이 코드가 메모리에 적재되면 NOP Sled의 역할을 하게 되는 것이다.

밑에서 두번째 소스코드를 보면 while구문을 볼 수 있을 것이다. NOP Sled코드와 악의적인 행위를 하는 코드와 합(nop+=nop;nop.substring(0,0x10000/2 - SC.length)부분)하여 반복 작업함으로써 그림1의 구조가 스택의 형태로 차곡차곡 메모리 영역에 들어가게 되는 것이다. (보통은 Heap영역에 많이 들어가고, 이를 Heap spray라고 부른다.)

이렇게 해서 해당 메모리의 어느 부분을 참조하더라도 NOP Sled에 의해 악의적인 행위를 하는 코드로 흘러갈 수 밖에 없는 구조가 형성이 된다. 그렇다면 "이 사이트는 악성코드를 유포하는가?"에 대한 질문을 답하기 위해서 패턴탐지 방식으로 NOP Sled의 형태들을 이용하는 것이 어떨까?

물론 NOP Sled는 악성코드 유포하는 다양한 방식중에서 아주 작은 방식일 뿐이기에 이 방법만 쓰겠다는 것은 아니다. 단지 탐지 방법중에 하나로 사용하는 것이 어떨까? 라는 의문만을 가지고 있다.

또한 실제 웹 개발자들은 NOP을 이용하여 개발하는 형태를 가지고 있는지 궁금하다. 웹 개발을 해본적이 없기 때문에 단순히 프로그래머의 입장에서 생각하면

NOP기능을 고의적으로 사용하여 프로그래밍 한다는 것은 매우 비효율적인 것 같다는 생각이 든다.

마지막으로 이 NOP Sled에 사용되는 NOP 코드 패턴들이 얼마나 다양할 것인가에 대한 답을 내리지 못한 상태이다. 무한정 만들 수 있는 코드라고 하면 패턴설정하기엔 너무 많은 구멍이 있을 것으로 생각을 한다.

'Information Security > Vulnerability' 카테고리의 다른 글

고스트 취약점 (CVE-2015-0235) 개요 및 대응방안  (0) 2015.01.30
About Java Exploit  (0) 2012.11.20
CVE-2012-4969 분석영상  (0) 2012.11.16
NOP Sled에 대한 고찰  (1) 2012.11.02
  1. miso 2015.11.08 21:35

    좋은 정보 감사합니당 ㅎㅎ

postgresql 설치

기본적으로 repository의 postgresql은 8.4버전으로 설치가 된다.

apt-get install postgresql

postgresql GUI 프로그램 설치

apt-get install pgadmin3

설치가 거부 된 경우 apt-get update로 저장소들을 활성화 시켜준다.

pgadmin3로 DB로 접근

Name은 Default로 postgres이며, Host는 localhost로 설정한다.

Password는 설정한 기억이 없으므로 비워둔다.

그러면 다음과 같은 오류가 나온다.

패스워드를 설정하지 않아서 나오는 문제이다.

command로 password를 설정한다.

su postgres -c psql
could not change directory to "/root"
psql (8.4.13)
Type "help" for help.

postgres=# \password
Enter new password:
Enter it again:
postgres=# \q
could not save history to file "/home/postgres/.psql_history": No such file or directory

password 설정이 끝났으면 pgadmin3로 다시 접근하면 접근이 된다.

위에 나타나는 오류는 히스토리파일이 설정이 되어 있지 않아 생기는 오류이다.

  1. Favicon of http://WWW.NAVER.COM BlogIcon 김진영 2015.06.25 06:10

    완전좋아

blackhole exploit toolkit



phoenix exploit toolkit



CrimePack



취약점 관련 검색을 하다보면 흔하게 볼 수 있는 exploit kit에 대한 정보들을 모으는 중


언더그라운드에서 판매되는 툴킷이 아닌가 싶다.


Redkit 

Neo Sploit

Cool Pack

Black hole

Private no name

Nuclear

CrimeBoss

Grandsoft

Sweet Orange

Phoenix

NucSoft

Sakura

AssocAID



Blackhole Exploit Toolkit 가격


분기당 라이센스 비용 700달러

반년 라이센스 비용 1000달러

년간 라이센스 비용 1500달러


툴킷 임대료

1일 50달러 1주 200달러 2주 300달러

3주 400달러 1달 500달러

도메인 주소 변경 비용 35달러


'Information Security > Malware' 카테고리의 다른 글

Javascript Compressor  (0) 2013.02.07
Redkit Exploit Tool : Redkit Landing Page에 관한 정보  (10) 2013.02.03
Deformed of Gondad Exploit Obfuscation  (2) 2013.01.18
Making Generate Yara rules  (1) 2013.01.18
Exploit ToolKit  (0) 2012.08.27
Exploit Reference Website  (0) 2012.07.16

BackTrack을 쓰다보면 때로는 설치할 수 없는 것들이 있다.

예를 들면 KVM에서 libvirt-bin 같은 경우이다.


이런 것들을 해결하기 위한 편한 방법은 해당 버전에 맞은 다운로드 위치를 추가해주는 것이다.


BackTrack R2 5는 Lucid(Ubuntu 10.04)이니 그에 맞는 sources.list를 수정해주면 된다.



# vim /etc/apt/sources.list
deb-src http://archive.ubuntu.com/ubuntu lucid main restricted
deb http://id.archive.ubuntu.com/ubuntu/ lucid main restricted
deb-src http://id.archive.ubuntu.com/ubuntu/ lucid restricted main multiverse universe

deb http://id.archive.ubuntu.com/ubuntu/ lucid-updates main restricted
deb-src http://id.archive.ubuntu.com/ubuntu/ lucid-updates restricted main multiverse universe

deb http://id.archive.ubuntu.com/ubuntu/ lucid universe
deb http://id.archive.ubuntu.com/ubuntu/ lucid-updates universe

deb http://id.archive.ubuntu.com/ubuntu/ lucid multiverse
deb http://id.archive.ubuntu.com/ubuntu/ lucid-updates multiverse

deb http://id.archive.ubuntu.com/ubuntu/ lucid-backports main restricted universe multiverse
deb-src http://id.archive.ubuntu.com/ubuntu/ lucid-backports main restricted universe multiverse

deb http://archive.canonical.com/ubuntu lucid partner
deb-src http://archive.canonical.com/ubuntu lucid partner

deb http://security.ubuntu.com/ubuntu lucid-security main restricted
deb-src http://security.ubuntu.com/ubuntu lucid-security restricted main multiverse universe

deb http://security.ubuntu.com/ubuntu lucid-security universe
deb http://security.ubuntu.com/ubuntu lucid-security multiverse
deb http://id.archive.ubuntu.com/ubuntu/ lucid-proposed restricted main multiverse universe


수정하였다면 업데이트를 하고 원하는 패키지를 설치하면 된다. (# apt-get update)

자신있다면 최신버전으로 업그레이드 해보는 것도 좋다. (# apt-get upgrade)


최신버전으로 업그레이드하면 다음과 같은 오류를 보게된다.


lucid에서는 nis에 버그가 있다고하는데 사용하지 않는 패키지이니까 그냥 지워버리자.


nis(Network Information System) : /etc의 시스템 파일을 도메인에 참가하고 있는 컴퓨터끼리 공유하는 서비스


  1. Favicon of http://WWW.NAVER.COM BlogIcon 김진영 2015.06.25 06:10

    완전좋아

vim /etc/apt/sources.list
deb http://download.virtualbox.org/virtualbox/debian lucid contrib non-free


# wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | apt-key add -

("OK"가 뜰때까지 기다린다.)

apt-get update
apt-get install virtualbox

apt-get install virtualbox-4.1
  1. Favicon of http://WWW.NAVER.COM BlogIcon 김진영 2015.06.25 06:11

    완전좋아

http://cve.mitre.org/index.html


http://osvdb.org/

 

http://www.cvedetails.com/




'Information Security > Malware' 카테고리의 다른 글

Javascript Compressor  (0) 2013.02.07
Redkit Exploit Tool : Redkit Landing Page에 관한 정보  (10) 2013.02.03
Deformed of Gondad Exploit Obfuscation  (2) 2013.01.18
Making Generate Yara rules  (1) 2013.01.18
Exploit ToolKit  (0) 2012.08.27
Exploit Reference Website  (0) 2012.07.16

+ Recent posts