]> vault307.fbx.one Git - mu_code.git/blob - msfinstall
early learning in mu editor
[mu_code.git] / msfinstall
1 #!/bin/sh
2
3 print_pgp_key() {
4 cat <<-EOF
5 -----BEGIN PGP PUBLIC KEY BLOCK-----
6
7 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
54 2vTa24LE0J2DQg==
55 =Qa/n
56 -----END PGP PUBLIC KEY BLOCK-----
57 EOF
58 }
59
60 install_deb() {
61 LIST_FILE=/etc/apt/sources.list.d/metasploit-framework.list
62 PREF_FILE=/etc/apt/preferences.d/pin-metasploit.pref
63 echo -n "Adding metasploit-framework to your repository list.."
64 echo "deb $DOWNLOAD_URI/apt lucid main" > $LIST_FILE
65 print_pgp_key | apt-key add -
66 if [ ! -f $PREF_FILE ]; then
67 mkdir -p /etc/apt/preferences.d/
68 cat > $PREF_FILE <<EOF
69 Package: metasploit*
70 Pin: origin downloads.metasploit.com
71 Pin-Priority: 1000
72 EOF
73 fi
74 echo -n "Updating package cache.."
75 apt-get update > /dev/null
76 echo "OK"
77 echo "Checking for and installing update.."
78 apt-get install -y --allow-downgrades metasploit-framework
79 }
80
81 install_rpm() {
82 echo "Checking for and installing update.."
83 REPO_FILE=/etc/yum.repos.d/metasploit-framework.repo
84 GPG_KEY_FILE=/etc/pki/rpm-gpg/RPM-GPG-KEY-Metasploit
85 echo -n "Adding metasploit-framework to your repository list.."
86
87 cat > /etc/yum.repos.d/metasploit-framework.repo <<EOF
88 [metasploit]
89 name=Metasploit
90 baseurl=$DOWNLOAD_URI/rpm
91 gpgcheck=1
92 gpgkey=file://$GPG_KEY_FILE
93 enabled=1
94 EOF
95 print_pgp_key > ${GPG_KEY_FILE}
96 yum install -y metasploit-framework
97 }
98
99 install_suse() {
100 echo "Checking for and installing update.."
101 GPG_KEY_FILE_DIR=/etc/pki/rpm-gpg
102 GPG_KEY_FILE=${GPG_KEY_FILE_DIR}/RPM-GPG-KEY-Metasploit
103 echo -n "Adding metasploit-framework to your repository list.."
104 if [ ! -d $GPG_KEY_FILE_DIR ]; then
105 mkdir -p $GPG_KEY_FILE_DIR
106 fi
107 zypper ar -f $DOWNLOAD_URI/rpm metasploit
108 print_pgp_key > ${GPG_KEY_FILE}
109 rpmkeys --import ${GPG_KEY_FILE}
110 zypper install -y metasploit-framework
111 }
112
113 install_pkg()
114 {
115 (
116 cd ~/Downloads
117
118 echo "Downloading package..."
119 curl -O "$DOWNLOAD_URI/osx/metasploitframework-latest.pkg"
120
121 echo "Checking signature..."
122
123 if pkgutil --check-signature metasploitframework-latest.pkg; then
124 echo "Installing package..."
125 installer -pkg metasploitframework-latest.pkg -target /
126 fi
127
128 echo "Cleaning up..."
129 rm -fv metasploitframework-latest.pkg
130 )
131 }
132
133 DOWNLOAD_URI=http://downloads.metasploit.com/data/releases/metasploit-framework
134 PKGTYPE=unknown
135 ID=`id -u`
136
137 if [ -f /etc/redhat-release ] ; then
138 PKGTYPE=rpm
139 elif [ -f /etc/system-release ] ; then
140 # If /etc/system-release is present, this is likely a distro that uses RPM.
141 PKGTYPE=rpm
142 else
143 if uname -sv | grep 'Darwin' > /dev/null; then
144 PKGTYPE=pkg
145 elif [ -f /usr/bin/zypper ] ; then
146 PKGTYPE=sus
147 else
148 PKGTYPE=deb
149 fi
150 fi
151
152 if [ "$ID" -ne 0 ]; then
153 if ! hash sudo 2>/dev/null; then
154 echo "This script must be executed as the 'root' user or with sudo"
155 exit 1
156 else
157 echo "Switching to root user to update the package"
158 sudo -E $0 $@
159 exit 0
160 fi
161 fi
162
163 case $PKGTYPE in
164 deb)
165 install_deb
166 ;;
167 sus)
168 install_suse
169 ;;
170 rpm)
171 install_rpm
172 ;;
173 *)
174 install_pkg
175 esac