블로그 이미지

my hiding place

삶이 힘들 때, 조금이라도 고개를 들고 위를 보세요. 푸른 하늘이 당신을 맞이해줄 날이 있을 테니까. by nulonge


OS X에 기본 설치된 ruby를 이용한 metasploit 설치

보통 OS X에 metasploit을 설치하려면 macport를 이용해서 ruby on rails를 설치해야합니다. (설치방법은 metasploit.com을 참조)

그런데, 왜, OS X에 기본 탑재되는 ruby를 외면하고 ruby, rubygems, rails를 순차적으로 설치해야 하는 것일까요? 갑자기 궁금해졌습니다. 가능하다면, 시스템에서 기본 제공되는 것을 그대로 이용하는 것이, 저장공간의 효과적인 활용이나, 유지보수 측면에서 좋지 않을까요? 굳이 뭔가를 새로 설치해야 한다는 것이 싫어서 호기심을 갖고 나름대로 metasploit3.1을 설치하려고 시도했습니다.

설치방법은 의외로 간단했습니다. 일단, OS X에서 기본 제공되는 ruby의 버전을 확인해보았습니다.

nulonge:~ saint$ ruby --version
ruby 1.8.6 (2008-03-03 patchlevel 114) [universal-darwin9.0]

네, 가장 최근 릴리즈된 안정 버전이 1.8.7-p22이지만, 그리 나쁠 건 없죠? ruby 업그레이드는 나중에 하기로 하고, 이제는 rubygems를 설치합니다. rubygems.org에서 rubygems 최신 릴리즈를 다운로드합니다. (현재 최신 릴리즈는 1.2.0 버전입니다.) (현재 Metasploit 최신 안정 버전은 3.1입니다. ruby 버전이 1.8.7로 업데이트되었지만, metasploit은 ruby 1.8.7에서 동작하지 않습니다. #2008.11.6)

nulonge:~ saint$ cd Downloads
nulonge:Downloads saint$ wget http://rubyforge.org/frs/download.php/38646/rubygems-1.2.0.tgz      // 저는 wget을 미리 설치해놓았습니다.
--2008-07-19 18:28:22--  http://rubyforge.org/frs/download.php/38646/rubygems-1.2.0.tgz
Resolving rubyforge.org... 205.234.109.19
Connecting to rubyforge.org|205.234.109.19|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://files.rubyforge.vm.bytemark.co.uk/rubygems/rubygems-1.2.0.tgz [following]
--2008-07-19 18:28:23--  http://files.rubyforge.vm.bytemark.co.uk/rubygems/rubygems-1.2.0.tgz
Resolving files.rubyforge.vm.bytemark.co.uk... 80.68.94.54
Connecting to files.rubyforge.vm.bytemark.co.uk|80.68.94.54|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 246920 (241K) [application/x-tar]
Saving to: `rubygems-1.2.0.tgz'

100%[======================================>] 246,920     96.1K/s   in 2.5s   

2008-07-19 18:28:27 (96.1 KB/s) - `rubygems-1.2.0.tgz' saved [246920/246920]

nulonge:Downloads saint$ tar xvf rubygems-1.2.0.tgz
nulonge:Downloads saint$ cd rubygems-1.2.0
nulonge:rubygems-1.2.0 saint$ sudo ruby setup.rb

이제, rubygems가 설치되었습니다. OS X에서 rubygems는 "/Library/Ruby/Site/1.8/rubygems"에 설치됩니다. rails를 설치해볼까요?

nulonge:rubygems-1.2.0 saint$ sudo gem install rails

이렇게해서 metasploit 실행에 필요한 ruby on rails의 환경은 대략 마무리 되었습니다. 여기서 웹 개발을 할거라면 추가적인 무언가가 필요하겠지만, metasploit을 구동하는데는 기본적인 패키지 설치만으로 만족합니다.

이제 svn을 이용해서 metasploit 최신 버전을 다운받아서 설치합니다. 사실, metasploit은 ruby 스크립트이기 때문에 별도의 설치가 필요없습니다.

nulonge:~ saint$ sudo svn update
Skipped '.'
nulonge:~ saint$ sudo svn co http://metasploit.com/svn/framework3/trunk/
... //다운로드 받는 파일들이 주르륵~ 스크롤되어 출력됩니다.
Checked out revision 5556. //빌드넘버가 5556인가 봅니다?
nulonge:~ saint$ cd /usr/
nulonge:usr saint$ sudo mkdir local
nulonge:usr saint$ sudo mkdir local/msf
nulonge:usr saint$ sudo mv ~/trunk/* /usr/local/msf/  //trunk 디렉토리에 있는 모든 파일들을 /usr/local/msf로 이동시켰습니다.
nulonge:usr saint$ rm -rf ~/trunk/
nulonge:usr saint$ cd local/msf/

자, 이제 metasploit을 실행할 일만 남았죠? 웹 UI를 이용해보려고 msfweb을 실행해보았습니다.

nulonge:msf saint$ ./msfweb

[*] Starting msfweb v3.2-release on http://127.0.0.1:55555/

=> Booting Mongrel (use 'script/server webrick' to force WEBrick)
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/fileutils.rb:243:in `mkdir': Permission denied - script/../config/../tmp/pids (Errno::EACCES)
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/fileutils.rb:243:in `fu_mkdir'
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/fileutils.rb:217:in `mkdir_p'
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/fileutils.rb:215:in `reverse_each'
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/fileutils.rb:215:in `mkdir_p'
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/fileutils.rb:201:in `each'
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/fileutils.rb:201:in `mkdir_p'
    from ./script/../config/../vendor/rails/railties/lib/commands/server.rb:38
    from ./script/../config/../vendor/rails/railties/lib/commands/server.rb:38:in `each'
    from ./script/../config/../vendor/rails/railties/lib/commands/server.rb:38
    from ./script/server:3:in `require'
    from ./script/server:3
    from ./msfweb:82:in `load'
    from ./msfweb:82

어랏? 실행이 되질 않는군요. 자세히 보니 이런 내용이 보입니다.

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/fileutils.rb:243:in `mkdir': Permission denied - script/../config/../tmp/pids (Errno::EACCES)

네, 실행권한이 없어서 그랬나봅니다. 그래서 sudo를 붙여 시도해보니 정상적으로 실행됩니다. -_-;a

nulonge:msf saint$ sudo ./msfweb

[*] Starting msfweb v3.2-release on http://127.0.0.1:55555/

=> Booting Mongrel (use 'script/server webrick' to force WEBrick)
=> Rails application starting on http://127.0.0.1:55555
=> Call with -d to detach
=> Ctrl-C to shutdown server
** Starting Mongrel listening at 127.0.0.1:55555
** Starting Rails with production environment...
Defined connections: {"ActiveRecord::Base"=>#<ActiveRecord::Base::ConnectionSpecification:0x22db624 @config={:host=>"localhost", :adapter=>"mysql", :username=>"root", :database=>"msfweb_production", :password=>nil}, @adapter_method="mysql_connection">}
Active connections: {}
Active connection name: ActiveRecord::Base
** Rails loaded.
** Loading any Rails specific GemPlugins
** Signals ready.  TERM => stop.  USR2 => restart.  INT => stop (no restart).
** Rails signals registered.  HUP => reload (without restart).  It might not work well.
** Mongrel 1.1.4 available at 127.0.0.1:55555
** Use CTRL-C to stop.

이제, OS X에서 macports를 이용한 ruby on rails 패키지를 설치하지 않아도 metasploit을 사용할 수 있게되었습니다. ㅠ.ㅠ

지금까지 metasploit을 설치하는 과정을 설명드렸습니다. 그럼, macports를 이용해서 metasploit을 설치해도 되는데 왜 굳이 이렇게 설치했는지 이유를 말씀드린다면... 최신 버전을 써보고 싶었기 때문입니다. ㅠ.ㅠ macport에서 지원되는 버전은 3.0이고, 최신 릴리즈는 3.1이기 때문입니다. (어디선가 겨우 0.1 때문에 그런 것이냐는 야유가 들리는 것 같습니다. =_=;+) 그리고, 이미 OS X에서 ruby가 제공되는데, 왜 따로 ruby를 재설치해야하는가 하는 의문이 들었기 때문이죠... 뭐, 어쨌거나... 앞으로는 열심히! 해킹 공부할 일만 남았군요. 내 능력에 과연 해킹을 배울 수 있을까 하는 의문은 들지만, 어쨌든, 고고싱~~.

Comment 0 Trackback 0
Top

prev 1 ··· 170 171 172 173 174 175 176 177 178 ··· 202 next