先安裝一些需要套件
如果是 debian 或 ubuntu,可以直接用 apt-get 來完成:$ sudo apt-get install \ build-essential zlib1g zlib1g-dev \ libxml2 libxml2-dev libxslt-dev locate \ libreadline6-dev libcurl4-openssl-dev git-core \ libssl-dev libyaml-dev openssl autoconf libtool \ ncurses-dev bison curl wget postgresql \ postgresql-contrib libpq-dev \ libapr1 libaprutil1 libsvn1 \ libpcap-dev libsqlite3-dev git
設定 git
如果之前已經有在用 git 或者設定過,這裡就不需要了;如果還沒有使用過的話,需要先設定一下,把下面指令中的 YOUR NAME 和 YOUR EMAIL ADDRESS 換成一個名字和一個 Email:$ git config --global user.name "YOUR NAME" $ git config --global user.email "YOUR EMAIL ADDRESS"
安裝 rvm 以及 ruby
安裝 rvm 之前,需要 RVM 負責人 Michal Papis 的公開金鑰:$ gpg --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
再來安裝 rvm 以及 ruby:
$ \curl -L https://get.rvm.io | bash -s stable --autolibs=enabled --ruby=1.9.3
可能需要輸入 sudo 密碼來更新並且安裝一些系統套件,所以可能需要輸入一到兩次的密碼。
完成後,登出再登入,或者執行以下:
$ source ~/.rvm/scripts/rvm
因為預設這一行寫在 .profile 裡面,所以尚未登出前,如果開啟其他的 terminal,記得都要執行上面那一行 source。
另外,為了 rvmsudo 功能,新增一行到 .profile 裡面:
$ echo "export rvmsudo_secure_path=1" >> ~/.profile
安裝 metasploit-framework (msf)
下面這個指令會新增一個目錄為 metasploit-framework 並且下載 github 上面的最新程式碼:$ git clone https://github.com/mcfakepants/metasploit-framework.git
移動到 msf 的工作目錄:
$ cd metasploit-framework
執行完上面那一行,可能會出現如下:
ruby-1.9.3-p484 is not installed. To install do: 'rvm install ruby-1.9.3-p484'
此文撰寫的當下,msf 使用的 ruby 版本為 1.9.3-p484,而 rvm 安裝的是 1.9.3-p551
只要把 msf 工作目錄下預設的 .ruby-version 這個檔案的內容修改如下即可(沒錯,就是一行文):
1.9.3
如果之後 msf 改用別的 ruby 版本,例如 2.1.5-p000,可以使用 rvm 安裝 2.1.5(執行:rvm install 2.1.5)然後再將上面那個一行文改成 2.1.5。其他版本依此類推。
再來安裝 msf:
$ bundle install
到此完成,可以以一般使用者權限來執行 ./msfconsole ,或者使用 rvmsudo ./msfconsole 以 sudo 權限來執行,以便使用一些 root 才能用的功能,例如 nmap -sS。
進階 - 設定 msf 的資料庫
大部分的情況下, msf 都會搭配資料庫來使用,通常是用 PostgreSQL (postgres),以下內容是參考 fedora 網頁的資訊,稍微改寫一點。設定 postgres
以 Ubuntu 為例,安裝的 postgres 設定檔案在 "/etc/postgresql/9.3/main/pg_hba.conf";如果不是,請自行找出你的 postgres 設定檔案 pg_hba.conf 所在。在最後新增一行如下:host "msf_database" "msf_user" 127.0.0.1/32 md5
重新啟動 postgres:
$ sudo /etc/init.d/postgresql restart
新增 postgres 的使用者:
$ sudo -s # su postgres $ createuser msf_user -P輸入之後,會出現下面要求輸入密碼,請輸入你希望給 msf_user 的密碼,至於後面三個問題,全都回答 n 即可。
Enter password for new role: Enter it again: Shall the new role be a superuser? (y/n) n Shall the new role be allowed to create databases? (y/n) n Shall the new role be allowed to create more new roles? (y/n) n
此時使用者還是 postgres(我們剛剛執行了 su postgres),輸入以下指令建立資料庫:
$ createdb --owner=msf_user msf_database
結束我們身為 postgres 的指令:
$ exit # exit $
再來,讓 msf 每次啟動都自動連線 postgres,移動到 msf 的工作目錄:
$ cd metaspolit-framework $ cat > config/database.yml << EOF輸入這行指令後,會出現 > 提示符號讓你打字,複製以下內容,並且把 <your_password> 換成你剛剛建立給 msf_user 的密碼:
production: adapter: postgresql database: msf_database username: msf_user password: <your_password> host: 127.0.0.1 port: 5432 pool: 75 timeout: 5 EOF
再來,輸入以下指令來讓 msfconsole 啟動自動連線資料庫:
$ cat > ~/.msf4/msfconsole.rc << EOF輸入這一行後,會出現 > 提示符號,輸入以下內容,把 <msf_path> 換成你的 msf 路徑:
db_connect -y <msf_path>/config/database.yml EOF
設定完成。第一次執行 msfconsole 可能會看到建立資料庫的訊息,如下:
...
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "task_hosts_pkey" for table "task_hosts" NOTICE: CREATE TABLE will create implicit sequence "task_services_id_seq" for serial column "task_services.id" NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "task_services_pkey" for table "task_services" NOTICE: ALTER TABLE will create implicit sequence "hosts_tags_id_seq" for serial column "hosts_tags.id" NOTICE: ALTER TABLE / ADD PRIMARY KEY will create implicit index "hosts_tags_pkey" for table "hosts_tags" NOTICE: CREATE TABLE will create implicit sequence "task_sessions_id_seq" for serial column "task_sessions.id" NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "task_sessions_pkey" for table "task_sessions"
在 msf 的提示符號下輸入 db_status,應該會顯示正常連線:
msf > db_status [*] postgresql connected to msf_database
到此全部步驟都完成了,祝使用愉快。
沒有留言:
張貼留言